├── .eslintrc.js ├── .github ├── PULL_REQUEST_TEMPLATE.md ├── dependabot.yml └── workflows │ ├── branch-pr-release.yaml │ ├── publish.yaml │ └── template-schema-updater.yaml ├── .gitignore ├── .vscode ├── launch.json ├── settings.json └── tasks.json ├── .vscodeignore ├── CHANGELOG.md ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE ├── NOTICE ├── README.md ├── client ├── .vscodeignore ├── logo.png ├── package-lock.json ├── package.json ├── src │ ├── @types │ │ └── node-yaml-parser.d.ts │ ├── extension.ts │ └── test │ │ ├── runTest.ts │ │ └── suite │ │ ├── completion.test.ts │ │ ├── fixtures │ │ ├── completion │ │ │ ├── completion.yaml │ │ │ └── completion2.yaml │ │ ├── hover │ │ │ └── hover.yaml │ │ ├── test.json │ │ └── validation │ │ │ ├── a template.yaml │ │ │ ├── bad.json │ │ │ ├── bad.yaml │ │ │ ├── good.yaml │ │ │ ├── not_template.yaml │ │ │ ├── preview.yaml │ │ │ ├── still_a_template.yaml │ │ │ └── still_a_template_2.yaml │ │ ├── helper.ts │ │ ├── hover.test.ts │ │ ├── index.ts │ │ ├── preview.test.ts │ │ └── validation.test.ts └── tsconfig.json ├── images ├── features.png └── settings.png ├── logo.png ├── package-lock.json ├── package.json ├── resources ├── open-preview-dark.svg └── open-preview-light.svg ├── server ├── package-lock.json ├── package.json ├── schema │ ├── base.schema.json │ ├── conditions.schema.json │ ├── intrinsics.schema.json │ ├── mappings.schema.json │ ├── parameters.schema.json │ ├── resource.attributes.schema.json │ ├── resources.schema.json │ ├── resources │ │ ├── alexa-ask-skill.json │ │ ├── aws-accessanalyzer-analyzer.json │ │ ├── aws-acmpca-certificate.json │ │ ├── aws-acmpca-certificateauthority.json │ │ ├── aws-acmpca-certificateauthorityactivation.json │ │ ├── aws-acmpca-permission.json │ │ ├── aws-amazonmq-broker.json │ │ ├── aws-amazonmq-configuration.json │ │ ├── aws-amazonmq-configurationassociation.json │ │ ├── aws-amplify-app.json │ │ ├── aws-amplify-branch.json │ │ ├── aws-amplify-domain.json │ │ ├── aws-amplifyuibuilder-component.json │ │ ├── aws-amplifyuibuilder-form.json │ │ ├── aws-amplifyuibuilder-theme.json │ │ ├── aws-apigateway-account.json │ │ ├── aws-apigateway-apikey.json │ │ ├── aws-apigateway-authorizer.json │ │ ├── aws-apigateway-basepathmapping.json │ │ ├── aws-apigateway-basepathmappingv2.json │ │ ├── aws-apigateway-clientcertificate.json │ │ ├── aws-apigateway-deployment.json │ │ ├── aws-apigateway-documentationpart.json │ │ ├── aws-apigateway-documentationversion.json │ │ ├── aws-apigateway-domainname.json │ │ ├── aws-apigateway-domainnameaccessassociation.json │ │ ├── aws-apigateway-domainnamev2.json │ │ ├── aws-apigateway-gatewayresponse.json │ │ ├── aws-apigateway-method.json │ │ ├── aws-apigateway-model.json │ │ ├── aws-apigateway-requestvalidator.json │ │ ├── aws-apigateway-resource.json │ │ ├── aws-apigateway-restapi.json │ │ ├── aws-apigateway-stage.json │ │ ├── aws-apigateway-usageplan.json │ │ ├── aws-apigateway-usageplankey.json │ │ ├── aws-apigateway-vpclink.json │ │ ├── aws-apigatewayv2-api.json │ │ ├── aws-apigatewayv2-apigatewaymanagedoverrides.json │ │ ├── aws-apigatewayv2-apimapping.json │ │ ├── aws-apigatewayv2-authorizer.json │ │ ├── aws-apigatewayv2-deployment.json │ │ ├── aws-apigatewayv2-domainname.json │ │ ├── aws-apigatewayv2-integration.json │ │ ├── aws-apigatewayv2-integrationresponse.json │ │ ├── aws-apigatewayv2-model.json │ │ ├── aws-apigatewayv2-route.json │ │ ├── aws-apigatewayv2-routeresponse.json │ │ ├── aws-apigatewayv2-stage.json │ │ ├── aws-apigatewayv2-vpclink.json │ │ ├── aws-appconfig-application.json │ │ ├── aws-appconfig-configurationprofile.json │ │ ├── aws-appconfig-deployment.json │ │ ├── aws-appconfig-deploymentstrategy.json │ │ ├── aws-appconfig-environment.json │ │ ├── aws-appconfig-extension.json │ │ ├── aws-appconfig-extensionassociation.json │ │ ├── aws-appconfig-hostedconfigurationversion.json │ │ ├── aws-appflow-connector.json │ │ ├── aws-appflow-connectorprofile.json │ │ ├── aws-appflow-flow.json │ │ ├── aws-appintegrations-application.json │ │ ├── aws-appintegrations-dataintegration.json │ │ ├── aws-appintegrations-eventintegration.json │ │ ├── aws-applicationautoscaling-scalabletarget.json │ │ ├── aws-applicationautoscaling-scalingpolicy.json │ │ ├── aws-applicationinsights-application.json │ │ ├── aws-applicationsignals-discovery.json │ │ ├── aws-applicationsignals-servicelevelobjective.json │ │ ├── aws-appmesh-gatewayroute.json │ │ ├── aws-appmesh-mesh.json │ │ ├── aws-appmesh-route.json │ │ ├── aws-appmesh-virtualgateway.json │ │ ├── aws-appmesh-virtualnode.json │ │ ├── aws-appmesh-virtualrouter.json │ │ ├── aws-appmesh-virtualservice.json │ │ ├── aws-apprunner-autoscalingconfiguration.json │ │ ├── aws-apprunner-observabilityconfiguration.json │ │ ├── aws-apprunner-service.json │ │ ├── aws-apprunner-vpcconnector.json │ │ ├── aws-apprunner-vpcingressconnection.json │ │ ├── aws-appstream-appblock.json │ │ ├── aws-appstream-appblockbuilder.json │ │ ├── aws-appstream-application.json │ │ ├── aws-appstream-applicationentitlementassociation.json │ │ ├── aws-appstream-applicationfleetassociation.json │ │ ├── aws-appstream-directoryconfig.json │ │ ├── aws-appstream-entitlement.json │ │ ├── aws-appstream-fleet.json │ │ ├── aws-appstream-imagebuilder.json │ │ ├── aws-appstream-stack.json │ │ ├── aws-appstream-stackfleetassociation.json │ │ ├── aws-appstream-stackuserassociation.json │ │ ├── aws-appstream-user.json │ │ ├── aws-appsync-api.json │ │ ├── aws-appsync-apicache.json │ │ ├── aws-appsync-apikey.json │ │ ├── aws-appsync-channelnamespace.json │ │ ├── aws-appsync-datasource.json │ │ ├── aws-appsync-domainname.json │ │ ├── aws-appsync-domainnameapiassociation.json │ │ ├── aws-appsync-functionconfiguration.json │ │ ├── aws-appsync-graphqlapi.json │ │ ├── aws-appsync-graphqlschema.json │ │ ├── aws-appsync-resolver.json │ │ ├── aws-appsync-sourceapiassociation.json │ │ ├── aws-apptest-testcase.json │ │ ├── aws-aps-rulegroupsnamespace.json │ │ ├── aws-aps-scraper.json │ │ ├── aws-aps-workspace.json │ │ ├── aws-arczonalshift-autoshiftobservernotificationstatus.json │ │ ├── aws-arczonalshift-zonalautoshiftconfiguration.json │ │ ├── aws-athena-capacityreservation.json │ │ ├── aws-athena-datacatalog.json │ │ ├── aws-athena-namedquery.json │ │ ├── aws-athena-preparedstatement.json │ │ ├── aws-athena-workgroup.json │ │ ├── aws-auditmanager-assessment.json │ │ ├── aws-autoscaling-autoscalinggroup.json │ │ ├── aws-autoscaling-launchconfiguration.json │ │ ├── aws-autoscaling-lifecyclehook.json │ │ ├── aws-autoscaling-scalingpolicy.json │ │ ├── aws-autoscaling-scheduledaction.json │ │ ├── aws-autoscaling-warmpool.json │ │ ├── aws-autoscalingplans-scalingplan.json │ │ ├── aws-b2bi-capability.json │ │ ├── aws-b2bi-partnership.json │ │ ├── aws-b2bi-profile.json │ │ ├── aws-b2bi-transformer.json │ │ ├── aws-backup-backupplan.json │ │ ├── aws-backup-backupselection.json │ │ ├── aws-backup-backupvault.json │ │ ├── aws-backup-framework.json │ │ ├── aws-backup-logicallyairgappedbackupvault.json │ │ ├── aws-backup-reportplan.json │ │ ├── aws-backup-restoretestingplan.json │ │ ├── aws-backup-restoretestingselection.json │ │ ├── aws-backupgateway-hypervisor.json │ │ ├── aws-batch-computeenvironment.json │ │ ├── aws-batch-consumableresource.json │ │ ├── aws-batch-jobdefinition.json │ │ ├── aws-batch-jobqueue.json │ │ ├── aws-batch-schedulingpolicy.json │ │ ├── aws-bcmdataexports-export.json │ │ ├── aws-bedrock-agent.json │ │ ├── aws-bedrock-agentalias.json │ │ ├── aws-bedrock-applicationinferenceprofile.json │ │ ├── aws-bedrock-blueprint.json │ │ ├── aws-bedrock-dataautomationproject.json │ │ ├── aws-bedrock-datasource.json │ │ ├── aws-bedrock-flow.json │ │ ├── aws-bedrock-flowalias.json │ │ ├── aws-bedrock-flowversion.json │ │ ├── aws-bedrock-guardrail.json │ │ ├── aws-bedrock-guardrailversion.json │ │ ├── aws-bedrock-knowledgebase.json │ │ ├── aws-bedrock-prompt.json │ │ ├── aws-bedrock-promptversion.json │ │ ├── aws-billingconductor-billinggroup.json │ │ ├── aws-billingconductor-customlineitem.json │ │ ├── aws-billingconductor-pricingplan.json │ │ ├── aws-billingconductor-pricingrule.json │ │ ├── aws-budgets-budget.json │ │ ├── aws-budgets-budgetsaction.json │ │ ├── aws-cassandra-keyspace.json │ │ ├── aws-cassandra-table.json │ │ ├── aws-cassandra-type.json │ │ ├── aws-ce-anomalymonitor.json │ │ ├── aws-ce-anomalysubscription.json │ │ ├── aws-ce-costcategory.json │ │ ├── aws-certificatemanager-account.json │ │ ├── aws-certificatemanager-certificate.json │ │ ├── aws-chatbot-customaction.json │ │ ├── aws-chatbot-microsoftteamschannelconfiguration.json │ │ ├── aws-chatbot-slackchannelconfiguration.json │ │ ├── aws-cleanrooms-analysistemplate.json │ │ ├── aws-cleanrooms-collaboration.json │ │ ├── aws-cleanrooms-configuredtable.json │ │ ├── aws-cleanrooms-configuredtableassociation.json │ │ ├── aws-cleanrooms-idmappingtable.json │ │ ├── aws-cleanrooms-idnamespaceassociation.json │ │ ├── aws-cleanrooms-membership.json │ │ ├── aws-cleanrooms-privacybudgettemplate.json │ │ ├── aws-cleanroomsml-trainingdataset.json │ │ ├── aws-cloud9-environmentec2.json │ │ ├── aws-cloudformation-customresource.json │ │ ├── aws-cloudformation-guardhook.json │ │ ├── aws-cloudformation-hookdefaultversion.json │ │ ├── aws-cloudformation-hooktypeconfig.json │ │ ├── aws-cloudformation-hookversion.json │ │ ├── aws-cloudformation-lambdahook.json │ │ ├── aws-cloudformation-macro.json │ │ ├── aws-cloudformation-moduledefaultversion.json │ │ ├── aws-cloudformation-moduleversion.json │ │ ├── aws-cloudformation-publictypeversion.json │ │ ├── aws-cloudformation-publisher.json │ │ ├── aws-cloudformation-resourcedefaultversion.json │ │ ├── aws-cloudformation-resourceversion.json │ │ ├── aws-cloudformation-stack.json │ │ ├── aws-cloudformation-stackset.json │ │ ├── aws-cloudformation-typeactivation.json │ │ ├── aws-cloudformation-waitcondition.json │ │ ├── aws-cloudformation-waitconditionhandle.json │ │ ├── aws-cloudfront-anycastiplist.json │ │ ├── aws-cloudfront-cachepolicy.json │ │ ├── aws-cloudfront-cloudfrontoriginaccessidentity.json │ │ ├── aws-cloudfront-continuousdeploymentpolicy.json │ │ ├── aws-cloudfront-distribution.json │ │ ├── aws-cloudfront-function.json │ │ ├── aws-cloudfront-keygroup.json │ │ ├── aws-cloudfront-keyvaluestore.json │ │ ├── aws-cloudfront-monitoringsubscription.json │ │ ├── aws-cloudfront-originaccesscontrol.json │ │ ├── aws-cloudfront-originrequestpolicy.json │ │ ├── aws-cloudfront-publickey.json │ │ ├── aws-cloudfront-realtimelogconfig.json │ │ ├── aws-cloudfront-responseheaderspolicy.json │ │ ├── aws-cloudfront-streamingdistribution.json │ │ ├── aws-cloudfront-vpcorigin.json │ │ ├── aws-cloudtrail-channel.json │ │ ├── aws-cloudtrail-dashboard.json │ │ ├── aws-cloudtrail-eventdatastore.json │ │ ├── aws-cloudtrail-resourcepolicy.json │ │ ├── aws-cloudtrail-trail.json │ │ ├── aws-cloudwatch-alarm.json │ │ ├── aws-cloudwatch-anomalydetector.json │ │ ├── aws-cloudwatch-compositealarm.json │ │ ├── aws-cloudwatch-dashboard.json │ │ ├── aws-cloudwatch-insightrule.json │ │ ├── aws-cloudwatch-metricstream.json │ │ ├── aws-codeartifact-domain.json │ │ ├── aws-codeartifact-packagegroup.json │ │ ├── aws-codeartifact-repository.json │ │ ├── aws-codebuild-fleet.json │ │ ├── aws-codebuild-project.json │ │ ├── aws-codebuild-reportgroup.json │ │ ├── aws-codebuild-sourcecredential.json │ │ ├── aws-codecommit-repository.json │ │ ├── aws-codeconnections-connection.json │ │ ├── aws-codedeploy-application.json │ │ ├── aws-codedeploy-deploymentconfig.json │ │ ├── aws-codedeploy-deploymentgroup.json │ │ ├── aws-codeguruprofiler-profilinggroup.json │ │ ├── aws-codegurureviewer-repositoryassociation.json │ │ ├── aws-codepipeline-customactiontype.json │ │ ├── aws-codepipeline-pipeline.json │ │ ├── aws-codepipeline-webhook.json │ │ ├── aws-codestar-githubrepository.json │ │ ├── aws-codestarconnections-connection.json │ │ ├── aws-codestarconnections-repositorylink.json │ │ ├── aws-codestarconnections-syncconfiguration.json │ │ ├── aws-codestarnotifications-notificationrule.json │ │ ├── aws-cognito-identitypool.json │ │ ├── aws-cognito-identitypoolprincipaltag.json │ │ ├── aws-cognito-identitypoolroleattachment.json │ │ ├── aws-cognito-logdeliveryconfiguration.json │ │ ├── aws-cognito-managedloginbranding.json │ │ ├── aws-cognito-userpool.json │ │ ├── aws-cognito-userpoolclient.json │ │ ├── aws-cognito-userpooldomain.json │ │ ├── aws-cognito-userpoolgroup.json │ │ ├── aws-cognito-userpoolidentityprovider.json │ │ ├── aws-cognito-userpoolresourceserver.json │ │ ├── aws-cognito-userpoolriskconfigurationattachment.json │ │ ├── aws-cognito-userpooluicustomizationattachment.json │ │ ├── aws-cognito-userpooluser.json │ │ ├── aws-cognito-userpoolusertogroupattachment.json │ │ ├── aws-comprehend-documentclassifier.json │ │ ├── aws-comprehend-flywheel.json │ │ ├── aws-config-aggregationauthorization.json │ │ ├── aws-config-configrule.json │ │ ├── aws-config-configurationaggregator.json │ │ ├── aws-config-configurationrecorder.json │ │ ├── aws-config-conformancepack.json │ │ ├── aws-config-deliverychannel.json │ │ ├── aws-config-organizationconfigrule.json │ │ ├── aws-config-organizationconformancepack.json │ │ ├── aws-config-remediationconfiguration.json │ │ ├── aws-config-storedquery.json │ │ ├── aws-connect-agentstatus.json │ │ ├── aws-connect-approvedorigin.json │ │ ├── aws-connect-contactflow.json │ │ ├── aws-connect-contactflowmodule.json │ │ ├── aws-connect-contactflowversion.json │ │ ├── aws-connect-emailaddress.json │ │ ├── aws-connect-evaluationform.json │ │ ├── aws-connect-hoursofoperation.json │ │ ├── aws-connect-instance.json │ │ ├── aws-connect-instancestorageconfig.json │ │ ├── aws-connect-integrationassociation.json │ │ ├── aws-connect-phonenumber.json │ │ ├── aws-connect-predefinedattribute.json │ │ ├── aws-connect-prompt.json │ │ ├── aws-connect-queue.json │ │ ├── aws-connect-quickconnect.json │ │ ├── aws-connect-routingprofile.json │ │ ├── aws-connect-rule.json │ │ ├── aws-connect-securitykey.json │ │ ├── aws-connect-securityprofile.json │ │ ├── aws-connect-tasktemplate.json │ │ ├── aws-connect-trafficdistributiongroup.json │ │ ├── aws-connect-user.json │ │ ├── aws-connect-userhierarchygroup.json │ │ ├── aws-connect-userhierarchystructure.json │ │ ├── aws-connect-view.json │ │ ├── aws-connect-viewversion.json │ │ ├── aws-connectcampaigns-campaign.json │ │ ├── aws-connectcampaignsv2-campaign.json │ │ ├── aws-controltower-enabledbaseline.json │ │ ├── aws-controltower-enabledcontrol.json │ │ ├── aws-controltower-landingzone.json │ │ ├── aws-cur-reportdefinition.json │ │ ├── aws-customerprofiles-calculatedattributedefinition.json │ │ ├── aws-customerprofiles-domain.json │ │ ├── aws-customerprofiles-eventstream.json │ │ ├── aws-customerprofiles-eventtrigger.json │ │ ├── aws-customerprofiles-integration.json │ │ ├── aws-customerprofiles-objecttype.json │ │ ├── aws-customerprofiles-segmentdefinition.json │ │ ├── aws-databrew-dataset.json │ │ ├── aws-databrew-job.json │ │ ├── aws-databrew-project.json │ │ ├── aws-databrew-recipe.json │ │ ├── aws-databrew-ruleset.json │ │ ├── aws-databrew-schedule.json │ │ ├── aws-datapipeline-pipeline.json │ │ ├── aws-datasync-agent.json │ │ ├── aws-datasync-locationazureblob.json │ │ ├── aws-datasync-locationefs.json │ │ ├── aws-datasync-locationfsxlustre.json │ │ ├── aws-datasync-locationfsxontap.json │ │ ├── aws-datasync-locationfsxopenzfs.json │ │ ├── aws-datasync-locationfsxwindows.json │ │ ├── aws-datasync-locationhdfs.json │ │ ├── aws-datasync-locationnfs.json │ │ ├── aws-datasync-locationobjectstorage.json │ │ ├── aws-datasync-locations3.json │ │ ├── aws-datasync-locationsmb.json │ │ ├── aws-datasync-storagesystem.json │ │ ├── aws-datasync-task.json │ │ ├── aws-datazone-connection.json │ │ ├── aws-datazone-datasource.json │ │ ├── aws-datazone-domain.json │ │ ├── aws-datazone-environment.json │ │ ├── aws-datazone-environmentactions.json │ │ ├── aws-datazone-environmentblueprintconfiguration.json │ │ ├── aws-datazone-environmentprofile.json │ │ ├── aws-datazone-groupprofile.json │ │ ├── aws-datazone-project.json │ │ ├── aws-datazone-projectmembership.json │ │ ├── aws-datazone-subscriptiontarget.json │ │ ├── aws-datazone-userprofile.json │ │ ├── aws-dax-cluster.json │ │ ├── aws-dax-parametergroup.json │ │ ├── aws-dax-subnetgroup.json │ │ ├── aws-deadline-farm.json │ │ ├── aws-deadline-fleet.json │ │ ├── aws-deadline-licenseendpoint.json │ │ ├── aws-deadline-limit.json │ │ ├── aws-deadline-meteredproduct.json │ │ ├── aws-deadline-monitor.json │ │ ├── aws-deadline-queue.json │ │ ├── aws-deadline-queueenvironment.json │ │ ├── aws-deadline-queuefleetassociation.json │ │ ├── aws-deadline-queuelimitassociation.json │ │ ├── aws-deadline-storageprofile.json │ │ ├── aws-detective-graph.json │ │ ├── aws-detective-memberinvitation.json │ │ ├── aws-detective-organizationadmin.json │ │ ├── aws-devicefarm-devicepool.json │ │ ├── aws-devicefarm-instanceprofile.json │ │ ├── aws-devicefarm-networkprofile.json │ │ ├── aws-devicefarm-project.json │ │ ├── aws-devicefarm-testgridproject.json │ │ ├── aws-devicefarm-vpceconfiguration.json │ │ ├── aws-devopsguru-loganomalydetectionintegration.json │ │ ├── aws-devopsguru-notificationchannel.json │ │ ├── aws-devopsguru-resourcecollection.json │ │ ├── aws-directoryservice-microsoftad.json │ │ ├── aws-directoryservice-simplead.json │ │ ├── aws-dlm-lifecyclepolicy.json │ │ ├── aws-dms-certificate.json │ │ ├── aws-dms-datamigration.json │ │ ├── aws-dms-dataprovider.json │ │ ├── aws-dms-endpoint.json │ │ ├── aws-dms-eventsubscription.json │ │ ├── aws-dms-instanceprofile.json │ │ ├── aws-dms-migrationproject.json │ │ ├── aws-dms-replicationconfig.json │ │ ├── aws-dms-replicationinstance.json │ │ ├── aws-dms-replicationsubnetgroup.json │ │ ├── aws-dms-replicationtask.json │ │ ├── aws-docdb-dbcluster.json │ │ ├── aws-docdb-dbclusterparametergroup.json │ │ ├── aws-docdb-dbinstance.json │ │ ├── aws-docdb-dbsubnetgroup.json │ │ ├── aws-docdb-eventsubscription.json │ │ ├── aws-docdbelastic-cluster.json │ │ ├── aws-dsql-cluster.json │ │ ├── aws-dynamodb-globaltable.json │ │ ├── aws-dynamodb-table.json │ │ ├── aws-ec2-capacityreservation.json │ │ ├── aws-ec2-capacityreservationfleet.json │ │ ├── aws-ec2-carriergateway.json │ │ ├── aws-ec2-clientvpnauthorizationrule.json │ │ ├── aws-ec2-clientvpnendpoint.json │ │ ├── aws-ec2-clientvpnroute.json │ │ ├── aws-ec2-clientvpntargetnetworkassociation.json │ │ ├── aws-ec2-customergateway.json │ │ ├── aws-ec2-dhcpoptions.json │ │ ├── aws-ec2-ec2fleet.json │ │ ├── aws-ec2-egressonlyinternetgateway.json │ │ ├── aws-ec2-eip.json │ │ ├── aws-ec2-eipassociation.json │ │ ├── aws-ec2-enclavecertificateiamroleassociation.json │ │ ├── aws-ec2-flowlog.json │ │ ├── aws-ec2-gatewayroutetableassociation.json │ │ ├── aws-ec2-host.json │ │ ├── aws-ec2-instance.json │ │ ├── aws-ec2-instanceconnectendpoint.json │ │ ├── aws-ec2-internetgateway.json │ │ ├── aws-ec2-ipam.json │ │ ├── aws-ec2-ipamallocation.json │ │ ├── aws-ec2-ipampool.json │ │ ├── aws-ec2-ipampoolcidr.json │ │ ├── aws-ec2-ipamresourcediscovery.json │ │ ├── aws-ec2-ipamresourcediscoveryassociation.json │ │ ├── aws-ec2-ipamscope.json │ │ ├── aws-ec2-keypair.json │ │ ├── aws-ec2-launchtemplate.json │ │ ├── aws-ec2-localgatewayroute.json │ │ ├── aws-ec2-localgatewayroutetable.json │ │ ├── aws-ec2-localgatewayroutetablevirtualinterfacegroupassociation.json │ │ ├── aws-ec2-localgatewayroutetablevpcassociation.json │ │ ├── aws-ec2-natgateway.json │ │ ├── aws-ec2-networkacl.json │ │ ├── aws-ec2-networkaclentry.json │ │ ├── aws-ec2-networkinsightsaccessscope.json │ │ ├── aws-ec2-networkinsightsaccessscopeanalysis.json │ │ ├── aws-ec2-networkinsightsanalysis.json │ │ ├── aws-ec2-networkinsightspath.json │ │ ├── aws-ec2-networkinterface.json │ │ ├── aws-ec2-networkinterfaceattachment.json │ │ ├── aws-ec2-networkinterfacepermission.json │ │ ├── aws-ec2-networkperformancemetricsubscription.json │ │ ├── aws-ec2-placementgroup.json │ │ ├── aws-ec2-prefixlist.json │ │ ├── aws-ec2-route.json │ │ ├── aws-ec2-routeserver.json │ │ ├── aws-ec2-routeserverassociation.json │ │ ├── aws-ec2-routeserverendpoint.json │ │ ├── aws-ec2-routeserverpeer.json │ │ ├── aws-ec2-routeserverpropagation.json │ │ ├── aws-ec2-routetable.json │ │ ├── aws-ec2-securitygroup.json │ │ ├── aws-ec2-securitygroupegress.json │ │ ├── aws-ec2-securitygroupingress.json │ │ ├── aws-ec2-securitygroupvpcassociation.json │ │ ├── aws-ec2-snapshotblockpublicaccess.json │ │ ├── aws-ec2-spotfleet.json │ │ ├── aws-ec2-subnet.json │ │ ├── aws-ec2-subnetcidrblock.json │ │ ├── aws-ec2-subnetnetworkaclassociation.json │ │ ├── aws-ec2-subnetroutetableassociation.json │ │ ├── aws-ec2-trafficmirrorfilter.json │ │ ├── aws-ec2-trafficmirrorfilterrule.json │ │ ├── aws-ec2-trafficmirrorsession.json │ │ ├── aws-ec2-trafficmirrortarget.json │ │ ├── aws-ec2-transitgateway.json │ │ ├── aws-ec2-transitgatewayattachment.json │ │ ├── aws-ec2-transitgatewayconnect.json │ │ ├── aws-ec2-transitgatewaymulticastdomain.json │ │ ├── aws-ec2-transitgatewaymulticastdomainassociation.json │ │ ├── aws-ec2-transitgatewaymulticastgroupmember.json │ │ ├── aws-ec2-transitgatewaymulticastgroupsource.json │ │ ├── aws-ec2-transitgatewaypeeringattachment.json │ │ ├── aws-ec2-transitgatewayroute.json │ │ ├── aws-ec2-transitgatewayroutetable.json │ │ ├── aws-ec2-transitgatewayroutetableassociation.json │ │ ├── aws-ec2-transitgatewayroutetablepropagation.json │ │ ├── aws-ec2-transitgatewayvpcattachment.json │ │ ├── aws-ec2-verifiedaccessendpoint.json │ │ ├── aws-ec2-verifiedaccessgroup.json │ │ ├── aws-ec2-verifiedaccessinstance.json │ │ ├── aws-ec2-verifiedaccesstrustprovider.json │ │ ├── aws-ec2-volume.json │ │ ├── aws-ec2-volumeattachment.json │ │ ├── aws-ec2-vpc.json │ │ ├── aws-ec2-vpcblockpublicaccessexclusion.json │ │ ├── aws-ec2-vpcblockpublicaccessoptions.json │ │ ├── aws-ec2-vpccidrblock.json │ │ ├── aws-ec2-vpcdhcpoptionsassociation.json │ │ ├── aws-ec2-vpcendpoint.json │ │ ├── aws-ec2-vpcendpointconnectionnotification.json │ │ ├── aws-ec2-vpcendpointservice.json │ │ ├── aws-ec2-vpcendpointservicepermissions.json │ │ ├── aws-ec2-vpcgatewayattachment.json │ │ ├── aws-ec2-vpcpeeringconnection.json │ │ ├── aws-ec2-vpnconnection.json │ │ ├── aws-ec2-vpnconnectionroute.json │ │ ├── aws-ec2-vpngateway.json │ │ ├── aws-ec2-vpngatewayroutepropagation.json │ │ ├── aws-ecr-publicrepository.json │ │ ├── aws-ecr-pullthroughcacherule.json │ │ ├── aws-ecr-registrypolicy.json │ │ ├── aws-ecr-replicationconfiguration.json │ │ ├── aws-ecr-repository.json │ │ ├── aws-ecr-repositorycreationtemplate.json │ │ ├── aws-ecs-capacityprovider.json │ │ ├── aws-ecs-cluster.json │ │ ├── aws-ecs-clustercapacityproviderassociations.json │ │ ├── aws-ecs-primarytaskset.json │ │ ├── aws-ecs-service.json │ │ ├── aws-ecs-taskdefinition.json │ │ ├── aws-ecs-taskset.json │ │ ├── aws-efs-accesspoint.json │ │ ├── aws-efs-filesystem.json │ │ ├── aws-efs-mounttarget.json │ │ ├── aws-eks-accessentry.json │ │ ├── aws-eks-addon.json │ │ ├── aws-eks-cluster.json │ │ ├── aws-eks-fargateprofile.json │ │ ├── aws-eks-identityproviderconfig.json │ │ ├── aws-eks-nodegroup.json │ │ ├── aws-eks-podidentityassociation.json │ │ ├── aws-elasticache-cachecluster.json │ │ ├── aws-elasticache-globalreplicationgroup.json │ │ ├── aws-elasticache-parametergroup.json │ │ ├── aws-elasticache-replicationgroup.json │ │ ├── aws-elasticache-securitygroup.json │ │ ├── aws-elasticache-securitygroupingress.json │ │ ├── aws-elasticache-serverlesscache.json │ │ ├── aws-elasticache-subnetgroup.json │ │ ├── aws-elasticache-user.json │ │ ├── aws-elasticache-usergroup.json │ │ ├── aws-elasticbeanstalk-application.json │ │ ├── aws-elasticbeanstalk-applicationversion.json │ │ ├── aws-elasticbeanstalk-configurationtemplate.json │ │ ├── aws-elasticbeanstalk-environment.json │ │ ├── aws-elasticloadbalancing-loadbalancer.json │ │ ├── aws-elasticloadbalancingv2-listener.json │ │ ├── aws-elasticloadbalancingv2-listenercertificate.json │ │ ├── aws-elasticloadbalancingv2-listenerrule.json │ │ ├── aws-elasticloadbalancingv2-loadbalancer.json │ │ ├── aws-elasticloadbalancingv2-targetgroup.json │ │ ├── aws-elasticloadbalancingv2-truststore.json │ │ ├── aws-elasticloadbalancingv2-truststorerevocation.json │ │ ├── aws-elasticsearch-domain.json │ │ ├── aws-emr-cluster.json │ │ ├── aws-emr-instancefleetconfig.json │ │ ├── aws-emr-instancegroupconfig.json │ │ ├── aws-emr-securityconfiguration.json │ │ ├── aws-emr-step.json │ │ ├── aws-emr-studio.json │ │ ├── aws-emr-studiosessionmapping.json │ │ ├── aws-emr-walworkspace.json │ │ ├── aws-emrcontainers-virtualcluster.json │ │ ├── aws-emrserverless-application.json │ │ ├── aws-entityresolution-idmappingworkflow.json │ │ ├── aws-entityresolution-idnamespace.json │ │ ├── aws-entityresolution-matchingworkflow.json │ │ ├── aws-entityresolution-policystatement.json │ │ ├── aws-entityresolution-schemamapping.json │ │ ├── aws-events-apidestination.json │ │ ├── aws-events-archive.json │ │ ├── aws-events-connection.json │ │ ├── aws-events-endpoint.json │ │ ├── aws-events-eventbus.json │ │ ├── aws-events-eventbuspolicy.json │ │ ├── aws-events-rule.json │ │ ├── aws-eventschemas-discoverer.json │ │ ├── aws-eventschemas-registry.json │ │ ├── aws-eventschemas-registrypolicy.json │ │ ├── aws-eventschemas-schema.json │ │ ├── aws-evidently-experiment.json │ │ ├── aws-evidently-feature.json │ │ ├── aws-evidently-launch.json │ │ ├── aws-evidently-project.json │ │ ├── aws-evidently-segment.json │ │ ├── aws-finspace-environment.json │ │ ├── aws-fis-experimenttemplate.json │ │ ├── aws-fis-targetaccountconfiguration.json │ │ ├── aws-fms-notificationchannel.json │ │ ├── aws-fms-policy.json │ │ ├── aws-fms-resourceset.json │ │ ├── aws-forecast-dataset.json │ │ ├── aws-forecast-datasetgroup.json │ │ ├── aws-frauddetector-detector.json │ │ ├── aws-frauddetector-entitytype.json │ │ ├── aws-frauddetector-eventtype.json │ │ ├── aws-frauddetector-label.json │ │ ├── aws-frauddetector-list.json │ │ ├── aws-frauddetector-outcome.json │ │ ├── aws-frauddetector-variable.json │ │ ├── aws-fsx-datarepositoryassociation.json │ │ ├── aws-fsx-filesystem.json │ │ ├── aws-fsx-snapshot.json │ │ ├── aws-fsx-storagevirtualmachine.json │ │ ├── aws-fsx-volume.json │ │ ├── aws-gamelift-alias.json │ │ ├── aws-gamelift-build.json │ │ ├── aws-gamelift-containerfleet.json │ │ ├── aws-gamelift-containergroupdefinition.json │ │ ├── aws-gamelift-fleet.json │ │ ├── aws-gamelift-gameservergroup.json │ │ ├── aws-gamelift-gamesessionqueue.json │ │ ├── aws-gamelift-location.json │ │ ├── aws-gamelift-matchmakingconfiguration.json │ │ ├── aws-gamelift-matchmakingruleset.json │ │ ├── aws-gamelift-script.json │ │ ├── aws-gameliftstreams-application.json │ │ ├── aws-gameliftstreams-streamgroup.json │ │ ├── aws-globalaccelerator-accelerator.json │ │ ├── aws-globalaccelerator-crossaccountattachment.json │ │ ├── aws-globalaccelerator-endpointgroup.json │ │ ├── aws-globalaccelerator-listener.json │ │ ├── aws-glue-classifier.json │ │ ├── aws-glue-connection.json │ │ ├── aws-glue-crawler.json │ │ ├── aws-glue-customentitytype.json │ │ ├── aws-glue-database.json │ │ ├── aws-glue-datacatalogencryptionsettings.json │ │ ├── aws-glue-dataqualityruleset.json │ │ ├── aws-glue-devendpoint.json │ │ ├── aws-glue-job.json │ │ ├── aws-glue-mltransform.json │ │ ├── aws-glue-partition.json │ │ ├── aws-glue-registry.json │ │ ├── aws-glue-schema.json │ │ ├── aws-glue-schemaversion.json │ │ ├── aws-glue-schemaversionmetadata.json │ │ ├── aws-glue-securityconfiguration.json │ │ ├── aws-glue-table.json │ │ ├── aws-glue-tableoptimizer.json │ │ ├── aws-glue-trigger.json │ │ ├── aws-glue-usageprofile.json │ │ ├── aws-glue-workflow.json │ │ ├── aws-grafana-workspace.json │ │ ├── aws-greengrass-connectordefinition.json │ │ ├── aws-greengrass-connectordefinitionversion.json │ │ ├── aws-greengrass-coredefinition.json │ │ ├── aws-greengrass-coredefinitionversion.json │ │ ├── aws-greengrass-devicedefinition.json │ │ ├── aws-greengrass-devicedefinitionversion.json │ │ ├── aws-greengrass-functiondefinition.json │ │ ├── aws-greengrass-functiondefinitionversion.json │ │ ├── aws-greengrass-group.json │ │ ├── aws-greengrass-groupversion.json │ │ ├── aws-greengrass-loggerdefinition.json │ │ ├── aws-greengrass-loggerdefinitionversion.json │ │ ├── aws-greengrass-resourcedefinition.json │ │ ├── aws-greengrass-resourcedefinitionversion.json │ │ ├── aws-greengrass-subscriptiondefinition.json │ │ ├── aws-greengrass-subscriptiondefinitionversion.json │ │ ├── aws-greengrassv2-componentversion.json │ │ ├── aws-greengrassv2-deployment.json │ │ ├── aws-groundstation-config.json │ │ ├── aws-groundstation-dataflowendpointgroup.json │ │ ├── aws-groundstation-missionprofile.json │ │ ├── aws-guardduty-detector.json │ │ ├── aws-guardduty-filter.json │ │ ├── aws-guardduty-ipset.json │ │ ├── aws-guardduty-malwareprotectionplan.json │ │ ├── aws-guardduty-master.json │ │ ├── aws-guardduty-member.json │ │ ├── aws-guardduty-publishingdestination.json │ │ ├── aws-guardduty-threatintelset.json │ │ ├── aws-healthimaging-datastore.json │ │ ├── aws-healthlake-fhirdatastore.json │ │ ├── aws-iam-accesskey.json │ │ ├── aws-iam-group.json │ │ ├── aws-iam-grouppolicy.json │ │ ├── aws-iam-instanceprofile.json │ │ ├── aws-iam-managedpolicy.json │ │ ├── aws-iam-oidcprovider.json │ │ ├── aws-iam-policy.json │ │ ├── aws-iam-role.json │ │ ├── aws-iam-rolepolicy.json │ │ ├── aws-iam-samlprovider.json │ │ ├── aws-iam-servercertificate.json │ │ ├── aws-iam-servicelinkedrole.json │ │ ├── aws-iam-user.json │ │ ├── aws-iam-userpolicy.json │ │ ├── aws-iam-usertogroupaddition.json │ │ ├── aws-iam-virtualmfadevice.json │ │ ├── aws-identitystore-group.json │ │ ├── aws-identitystore-groupmembership.json │ │ ├── aws-imagebuilder-component.json │ │ ├── aws-imagebuilder-containerrecipe.json │ │ ├── aws-imagebuilder-distributionconfiguration.json │ │ ├── aws-imagebuilder-image.json │ │ ├── aws-imagebuilder-imagepipeline.json │ │ ├── aws-imagebuilder-imagerecipe.json │ │ ├── aws-imagebuilder-infrastructureconfiguration.json │ │ ├── aws-imagebuilder-lifecyclepolicy.json │ │ ├── aws-imagebuilder-workflow.json │ │ ├── aws-inspector-assessmenttarget.json │ │ ├── aws-inspector-assessmenttemplate.json │ │ ├── aws-inspector-resourcegroup.json │ │ ├── aws-inspectorv2-cisscanconfiguration.json │ │ ├── aws-inspectorv2-filter.json │ │ ├── aws-internetmonitor-monitor.json │ │ ├── aws-invoicing-invoiceunit.json │ │ ├── aws-iot-accountauditconfiguration.json │ │ ├── aws-iot-authorizer.json │ │ ├── aws-iot-billinggroup.json │ │ ├── aws-iot-cacertificate.json │ │ ├── aws-iot-certificate.json │ │ ├── aws-iot-certificateprovider.json │ │ ├── aws-iot-command.json │ │ ├── aws-iot-custommetric.json │ │ ├── aws-iot-dimension.json │ │ ├── aws-iot-domainconfiguration.json │ │ ├── aws-iot-fleetmetric.json │ │ ├── aws-iot-jobtemplate.json │ │ ├── aws-iot-logging.json │ │ ├── aws-iot-mitigationaction.json │ │ ├── aws-iot-policy.json │ │ ├── aws-iot-policyprincipalattachment.json │ │ ├── aws-iot-provisioningtemplate.json │ │ ├── aws-iot-resourcespecificlogging.json │ │ ├── aws-iot-rolealias.json │ │ ├── aws-iot-scheduledaudit.json │ │ ├── aws-iot-securityprofile.json │ │ ├── aws-iot-softwarepackage.json │ │ ├── aws-iot-softwarepackageversion.json │ │ ├── aws-iot-thing.json │ │ ├── aws-iot-thinggroup.json │ │ ├── aws-iot-thingprincipalattachment.json │ │ ├── aws-iot-thingtype.json │ │ ├── aws-iot-topicrule.json │ │ ├── aws-iot-topicruledestination.json │ │ ├── aws-iotanalytics-channel.json │ │ ├── aws-iotanalytics-dataset.json │ │ ├── aws-iotanalytics-datastore.json │ │ ├── aws-iotanalytics-pipeline.json │ │ ├── aws-iotcoredeviceadvisor-suitedefinition.json │ │ ├── aws-iotevents-alarmmodel.json │ │ ├── aws-iotevents-detectormodel.json │ │ ├── aws-iotevents-input.json │ │ ├── aws-iotfleethub-application.json │ │ ├── aws-iotfleetwise-campaign.json │ │ ├── aws-iotfleetwise-decodermanifest.json │ │ ├── aws-iotfleetwise-fleet.json │ │ ├── aws-iotfleetwise-modelmanifest.json │ │ ├── aws-iotfleetwise-signalcatalog.json │ │ ├── aws-iotfleetwise-statetemplate.json │ │ ├── aws-iotfleetwise-vehicle.json │ │ ├── aws-iotsitewise-accesspolicy.json │ │ ├── aws-iotsitewise-asset.json │ │ ├── aws-iotsitewise-assetmodel.json │ │ ├── aws-iotsitewise-dashboard.json │ │ ├── aws-iotsitewise-dataset.json │ │ ├── aws-iotsitewise-gateway.json │ │ ├── aws-iotsitewise-portal.json │ │ ├── aws-iotsitewise-project.json │ │ ├── aws-iotthingsgraph-flowtemplate.json │ │ ├── aws-iottwinmaker-componenttype.json │ │ ├── aws-iottwinmaker-entity.json │ │ ├── aws-iottwinmaker-scene.json │ │ ├── aws-iottwinmaker-syncjob.json │ │ ├── aws-iottwinmaker-workspace.json │ │ ├── aws-iotwireless-destination.json │ │ ├── aws-iotwireless-deviceprofile.json │ │ ├── aws-iotwireless-fuotatask.json │ │ ├── aws-iotwireless-multicastgroup.json │ │ ├── aws-iotwireless-networkanalyzerconfiguration.json │ │ ├── aws-iotwireless-partneraccount.json │ │ ├── aws-iotwireless-serviceprofile.json │ │ ├── aws-iotwireless-taskdefinition.json │ │ ├── aws-iotwireless-wirelessdevice.json │ │ ├── aws-iotwireless-wirelessdeviceimporttask.json │ │ ├── aws-iotwireless-wirelessgateway.json │ │ ├── aws-ivs-channel.json │ │ ├── aws-ivs-encoderconfiguration.json │ │ ├── aws-ivs-ingestconfiguration.json │ │ ├── aws-ivs-playbackkeypair.json │ │ ├── aws-ivs-playbackrestrictionpolicy.json │ │ ├── aws-ivs-publickey.json │ │ ├── aws-ivs-recordingconfiguration.json │ │ ├── aws-ivs-stage.json │ │ ├── aws-ivs-storageconfiguration.json │ │ ├── aws-ivs-streamkey.json │ │ ├── aws-ivschat-loggingconfiguration.json │ │ ├── aws-ivschat-room.json │ │ ├── aws-kafkaconnect-connector.json │ │ ├── aws-kafkaconnect-customplugin.json │ │ ├── aws-kafkaconnect-workerconfiguration.json │ │ ├── aws-kendra-datasource.json │ │ ├── aws-kendra-faq.json │ │ ├── aws-kendra-index.json │ │ ├── aws-kendraranking-executionplan.json │ │ ├── aws-kinesis-resourcepolicy.json │ │ ├── aws-kinesis-stream.json │ │ ├── aws-kinesis-streamconsumer.json │ │ ├── aws-kinesisanalytics-application.json │ │ ├── aws-kinesisanalytics-applicationoutput.json │ │ ├── aws-kinesisanalytics-applicationreferencedatasource.json │ │ ├── aws-kinesisanalyticsv2-application.json │ │ ├── aws-kinesisanalyticsv2-applicationcloudwatchloggingoption.json │ │ ├── aws-kinesisanalyticsv2-applicationoutput.json │ │ ├── aws-kinesisanalyticsv2-applicationreferencedatasource.json │ │ ├── aws-kinesisfirehose-deliverystream.json │ │ ├── aws-kinesisvideo-signalingchannel.json │ │ ├── aws-kinesisvideo-stream.json │ │ ├── aws-kms-alias.json │ │ ├── aws-kms-key.json │ │ ├── aws-kms-replicakey.json │ │ ├── aws-lakeformation-datacellsfilter.json │ │ ├── aws-lakeformation-datalakesettings.json │ │ ├── aws-lakeformation-permissions.json │ │ ├── aws-lakeformation-principalpermissions.json │ │ ├── aws-lakeformation-resource.json │ │ ├── aws-lakeformation-tag.json │ │ ├── aws-lakeformation-tagassociation.json │ │ ├── aws-lambda-alias.json │ │ ├── aws-lambda-codesigningconfig.json │ │ ├── aws-lambda-eventinvokeconfig.json │ │ ├── aws-lambda-eventsourcemapping.json │ │ ├── aws-lambda-function.json │ │ ├── aws-lambda-layerversion.json │ │ ├── aws-lambda-layerversionpermission.json │ │ ├── aws-lambda-permission.json │ │ ├── aws-lambda-url.json │ │ ├── aws-lambda-version.json │ │ ├── aws-launchwizard-deployment.json │ │ ├── aws-lex-bot.json │ │ ├── aws-lex-botalias.json │ │ ├── aws-lex-botversion.json │ │ ├── aws-lex-resourcepolicy.json │ │ ├── aws-licensemanager-grant.json │ │ ├── aws-licensemanager-license.json │ │ ├── aws-lightsail-alarm.json │ │ ├── aws-lightsail-bucket.json │ │ ├── aws-lightsail-certificate.json │ │ ├── aws-lightsail-container.json │ │ ├── aws-lightsail-database.json │ │ ├── aws-lightsail-disk.json │ │ ├── aws-lightsail-distribution.json │ │ ├── aws-lightsail-instance.json │ │ ├── aws-lightsail-loadbalancer.json │ │ ├── aws-lightsail-loadbalancertlscertificate.json │ │ ├── aws-lightsail-staticip.json │ │ ├── aws-location-apikey.json │ │ ├── aws-location-geofencecollection.json │ │ ├── aws-location-map.json │ │ ├── aws-location-placeindex.json │ │ ├── aws-location-routecalculator.json │ │ ├── aws-location-tracker.json │ │ ├── aws-location-trackerconsumer.json │ │ ├── aws-logs-accountpolicy.json │ │ ├── aws-logs-delivery.json │ │ ├── aws-logs-deliverydestination.json │ │ ├── aws-logs-deliverysource.json │ │ ├── aws-logs-destination.json │ │ ├── aws-logs-integration.json │ │ ├── aws-logs-loganomalydetector.json │ │ ├── aws-logs-loggroup.json │ │ ├── aws-logs-logstream.json │ │ ├── aws-logs-metricfilter.json │ │ ├── aws-logs-querydefinition.json │ │ ├── aws-logs-resourcepolicy.json │ │ ├── aws-logs-subscriptionfilter.json │ │ ├── aws-logs-transformer.json │ │ ├── aws-lookoutequipment-inferencescheduler.json │ │ ├── aws-lookoutmetrics-alert.json │ │ ├── aws-lookoutmetrics-anomalydetector.json │ │ ├── aws-lookoutvision-project.json │ │ ├── aws-m2-application.json │ │ ├── aws-m2-deployment.json │ │ ├── aws-m2-environment.json │ │ ├── aws-macie-allowlist.json │ │ ├── aws-macie-customdataidentifier.json │ │ ├── aws-macie-findingsfilter.json │ │ ├── aws-macie-session.json │ │ ├── aws-managedblockchain-accessor.json │ │ ├── aws-managedblockchain-member.json │ │ ├── aws-managedblockchain-node.json │ │ ├── aws-mediaconnect-bridge.json │ │ ├── aws-mediaconnect-bridgeoutput.json │ │ ├── aws-mediaconnect-bridgesource.json │ │ ├── aws-mediaconnect-flow.json │ │ ├── aws-mediaconnect-flowentitlement.json │ │ ├── aws-mediaconnect-flowoutput.json │ │ ├── aws-mediaconnect-flowsource.json │ │ ├── aws-mediaconnect-flowvpcinterface.json │ │ ├── aws-mediaconnect-gateway.json │ │ ├── aws-mediaconvert-jobtemplate.json │ │ ├── aws-mediaconvert-preset.json │ │ ├── aws-mediaconvert-queue.json │ │ ├── aws-medialive-channel.json │ │ ├── aws-medialive-channelplacementgroup.json │ │ ├── aws-medialive-cloudwatchalarmtemplate.json │ │ ├── aws-medialive-cloudwatchalarmtemplategroup.json │ │ ├── aws-medialive-cluster.json │ │ ├── aws-medialive-eventbridgeruletemplate.json │ │ ├── aws-medialive-eventbridgeruletemplategroup.json │ │ ├── aws-medialive-input.json │ │ ├── aws-medialive-inputsecuritygroup.json │ │ ├── aws-medialive-multiplex.json │ │ ├── aws-medialive-multiplexprogram.json │ │ ├── aws-medialive-network.json │ │ ├── aws-medialive-sdisource.json │ │ ├── aws-medialive-signalmap.json │ │ ├── aws-mediapackage-asset.json │ │ ├── aws-mediapackage-channel.json │ │ ├── aws-mediapackage-originendpoint.json │ │ ├── aws-mediapackage-packagingconfiguration.json │ │ ├── aws-mediapackage-packaginggroup.json │ │ ├── aws-mediapackagev2-channel.json │ │ ├── aws-mediapackagev2-channelgroup.json │ │ ├── aws-mediapackagev2-channelpolicy.json │ │ ├── aws-mediapackagev2-originendpoint.json │ │ ├── aws-mediapackagev2-originendpointpolicy.json │ │ ├── aws-mediastore-container.json │ │ ├── aws-mediatailor-channel.json │ │ ├── aws-mediatailor-channelpolicy.json │ │ ├── aws-mediatailor-livesource.json │ │ ├── aws-mediatailor-playbackconfiguration.json │ │ ├── aws-mediatailor-sourcelocation.json │ │ ├── aws-mediatailor-vodsource.json │ │ ├── aws-memorydb-acl.json │ │ ├── aws-memorydb-cluster.json │ │ ├── aws-memorydb-multiregioncluster.json │ │ ├── aws-memorydb-parametergroup.json │ │ ├── aws-memorydb-subnetgroup.json │ │ ├── aws-memorydb-user.json │ │ ├── aws-msk-batchscramsecret.json │ │ ├── aws-msk-cluster.json │ │ ├── aws-msk-clusterpolicy.json │ │ ├── aws-msk-configuration.json │ │ ├── aws-msk-replicator.json │ │ ├── aws-msk-serverlesscluster.json │ │ ├── aws-msk-vpcconnection.json │ │ ├── aws-mwaa-environment.json │ │ ├── aws-neptune-dbcluster.json │ │ ├── aws-neptune-dbclusterparametergroup.json │ │ ├── aws-neptune-dbinstance.json │ │ ├── aws-neptune-dbparametergroup.json │ │ ├── aws-neptune-dbsubnetgroup.json │ │ ├── aws-neptune-eventsubscription.json │ │ ├── aws-neptunegraph-graph.json │ │ ├── aws-neptunegraph-privategraphendpoint.json │ │ ├── aws-networkfirewall-firewall.json │ │ ├── aws-networkfirewall-firewallpolicy.json │ │ ├── aws-networkfirewall-loggingconfiguration.json │ │ ├── aws-networkfirewall-rulegroup.json │ │ ├── aws-networkfirewall-tlsinspectionconfiguration.json │ │ ├── aws-networkmanager-connectattachment.json │ │ ├── aws-networkmanager-connectpeer.json │ │ ├── aws-networkmanager-corenetwork.json │ │ ├── aws-networkmanager-customergatewayassociation.json │ │ ├── aws-networkmanager-device.json │ │ ├── aws-networkmanager-directconnectgatewayattachment.json │ │ ├── aws-networkmanager-globalnetwork.json │ │ ├── aws-networkmanager-link.json │ │ ├── aws-networkmanager-linkassociation.json │ │ ├── aws-networkmanager-site.json │ │ ├── aws-networkmanager-sitetositevpnattachment.json │ │ ├── aws-networkmanager-transitgatewaypeering.json │ │ ├── aws-networkmanager-transitgatewayregistration.json │ │ ├── aws-networkmanager-transitgatewayroutetableattachment.json │ │ ├── aws-networkmanager-vpcattachment.json │ │ ├── aws-notifications-channelassociation.json │ │ ├── aws-notifications-eventrule.json │ │ ├── aws-notifications-managednotificationaccountcontactassociation.json │ │ ├── aws-notifications-managednotificationadditionalchannelassociation.json │ │ ├── aws-notifications-notificationconfiguration.json │ │ ├── aws-notifications-notificationhub.json │ │ ├── aws-notificationscontacts-emailcontact.json │ │ ├── aws-oam-link.json │ │ ├── aws-oam-sink.json │ │ ├── aws-omics-annotationstore.json │ │ ├── aws-omics-referencestore.json │ │ ├── aws-omics-rungroup.json │ │ ├── aws-omics-sequencestore.json │ │ ├── aws-omics-variantstore.json │ │ ├── aws-omics-workflow.json │ │ ├── aws-opensearchserverless-accesspolicy.json │ │ ├── aws-opensearchserverless-collection.json │ │ ├── aws-opensearchserverless-index.json │ │ ├── aws-opensearchserverless-lifecyclepolicy.json │ │ ├── aws-opensearchserverless-securityconfig.json │ │ ├── aws-opensearchserverless-securitypolicy.json │ │ ├── aws-opensearchserverless-vpcendpoint.json │ │ ├── aws-opensearchservice-application.json │ │ ├── aws-opensearchservice-domain.json │ │ ├── aws-opsworks-app.json │ │ ├── aws-opsworks-elasticloadbalancerattachment.json │ │ ├── aws-opsworks-instance.json │ │ ├── aws-opsworks-layer.json │ │ ├── aws-opsworks-stack.json │ │ ├── aws-opsworks-userprofile.json │ │ ├── aws-opsworks-volume.json │ │ ├── aws-opsworkscm-server.json │ │ ├── aws-organizations-account.json │ │ ├── aws-organizations-organization.json │ │ ├── aws-organizations-organizationalunit.json │ │ ├── aws-organizations-policy.json │ │ ├── aws-organizations-resourcepolicy.json │ │ ├── aws-osis-pipeline.json │ │ ├── aws-panorama-applicationinstance.json │ │ ├── aws-panorama-package.json │ │ ├── aws-panorama-packageversion.json │ │ ├── aws-paymentcryptography-alias.json │ │ ├── aws-paymentcryptography-key.json │ │ ├── aws-pcaconnectorad-connector.json │ │ ├── aws-pcaconnectorad-directoryregistration.json │ │ ├── aws-pcaconnectorad-serviceprincipalname.json │ │ ├── aws-pcaconnectorad-template.json │ │ ├── aws-pcaconnectorad-templategroupaccesscontrolentry.json │ │ ├── aws-pcaconnectorscep-challenge.json │ │ ├── aws-pcaconnectorscep-connector.json │ │ ├── aws-pcs-cluster.json │ │ ├── aws-pcs-computenodegroup.json │ │ ├── aws-pcs-queue.json │ │ ├── aws-personalize-dataset.json │ │ ├── aws-personalize-datasetgroup.json │ │ ├── aws-personalize-schema.json │ │ ├── aws-personalize-solution.json │ │ ├── aws-pinpoint-admchannel.json │ │ ├── aws-pinpoint-apnschannel.json │ │ ├── aws-pinpoint-apnssandboxchannel.json │ │ ├── aws-pinpoint-apnsvoipchannel.json │ │ ├── aws-pinpoint-apnsvoipsandboxchannel.json │ │ ├── aws-pinpoint-app.json │ │ ├── aws-pinpoint-applicationsettings.json │ │ ├── aws-pinpoint-baiduchannel.json │ │ ├── aws-pinpoint-campaign.json │ │ ├── aws-pinpoint-emailchannel.json │ │ ├── aws-pinpoint-emailtemplate.json │ │ ├── aws-pinpoint-eventstream.json │ │ ├── aws-pinpoint-gcmchannel.json │ │ ├── aws-pinpoint-inapptemplate.json │ │ ├── aws-pinpoint-pushtemplate.json │ │ ├── aws-pinpoint-segment.json │ │ ├── aws-pinpoint-smschannel.json │ │ ├── aws-pinpoint-smstemplate.json │ │ ├── aws-pinpoint-voicechannel.json │ │ ├── aws-pinpointemail-configurationset.json │ │ ├── aws-pinpointemail-configurationseteventdestination.json │ │ ├── aws-pinpointemail-dedicatedippool.json │ │ ├── aws-pinpointemail-identity.json │ │ ├── aws-pipes-pipe.json │ │ ├── aws-proton-environmentaccountconnection.json │ │ ├── aws-proton-environmenttemplate.json │ │ ├── aws-proton-servicetemplate.json │ │ ├── aws-qbusiness-application.json │ │ ├── aws-qbusiness-dataaccessor.json │ │ ├── aws-qbusiness-datasource.json │ │ ├── aws-qbusiness-index.json │ │ ├── aws-qbusiness-permission.json │ │ ├── aws-qbusiness-plugin.json │ │ ├── aws-qbusiness-retriever.json │ │ ├── aws-qbusiness-webexperience.json │ │ ├── aws-qldb-ledger.json │ │ ├── aws-qldb-stream.json │ │ ├── aws-quicksight-analysis.json │ │ ├── aws-quicksight-custompermissions.json │ │ ├── aws-quicksight-dashboard.json │ │ ├── aws-quicksight-dataset.json │ │ ├── aws-quicksight-datasource.json │ │ ├── aws-quicksight-folder.json │ │ ├── aws-quicksight-refreshschedule.json │ │ ├── aws-quicksight-template.json │ │ ├── aws-quicksight-theme.json │ │ ├── aws-quicksight-topic.json │ │ ├── aws-quicksight-vpcconnection.json │ │ ├── aws-ram-permission.json │ │ ├── aws-ram-resourceshare.json │ │ ├── aws-rbin-rule.json │ │ ├── aws-rds-customdbengineversion.json │ │ ├── aws-rds-dbcluster.json │ │ ├── aws-rds-dbclusterparametergroup.json │ │ ├── aws-rds-dbinstance.json │ │ ├── aws-rds-dbparametergroup.json │ │ ├── aws-rds-dbproxy.json │ │ ├── aws-rds-dbproxyendpoint.json │ │ ├── aws-rds-dbproxytargetgroup.json │ │ ├── aws-rds-dbsecuritygroup.json │ │ ├── aws-rds-dbsecuritygroupingress.json │ │ ├── aws-rds-dbshardgroup.json │ │ ├── aws-rds-dbsubnetgroup.json │ │ ├── aws-rds-eventsubscription.json │ │ ├── aws-rds-globalcluster.json │ │ ├── aws-rds-integration.json │ │ ├── aws-rds-optiongroup.json │ │ ├── aws-redshift-cluster.json │ │ ├── aws-redshift-clusterparametergroup.json │ │ ├── aws-redshift-clustersecuritygroup.json │ │ ├── aws-redshift-clustersecuritygroupingress.json │ │ ├── aws-redshift-clustersubnetgroup.json │ │ ├── aws-redshift-endpointaccess.json │ │ ├── aws-redshift-endpointauthorization.json │ │ ├── aws-redshift-eventsubscription.json │ │ ├── aws-redshift-integration.json │ │ ├── aws-redshift-scheduledaction.json │ │ ├── aws-redshiftserverless-namespace.json │ │ ├── aws-redshiftserverless-workgroup.json │ │ ├── aws-refactorspaces-application.json │ │ ├── aws-refactorspaces-environment.json │ │ ├── aws-refactorspaces-route.json │ │ ├── aws-refactorspaces-service.json │ │ ├── aws-rekognition-collection.json │ │ ├── aws-rekognition-project.json │ │ ├── aws-rekognition-streamprocessor.json │ │ ├── aws-resiliencehub-app.json │ │ ├── aws-resiliencehub-resiliencypolicy.json │ │ ├── aws-resourceexplorer2-defaultviewassociation.json │ │ ├── aws-resourceexplorer2-index.json │ │ ├── aws-resourceexplorer2-view.json │ │ ├── aws-resourcegroups-group.json │ │ ├── aws-resourcegroups-tagsynctask.json │ │ ├── aws-robomaker-fleet.json │ │ ├── aws-robomaker-robot.json │ │ ├── aws-robomaker-robotapplication.json │ │ ├── aws-robomaker-robotapplicationversion.json │ │ ├── aws-robomaker-simulationapplication.json │ │ ├── aws-robomaker-simulationapplicationversion.json │ │ ├── aws-rolesanywhere-crl.json │ │ ├── aws-rolesanywhere-profile.json │ │ ├── aws-rolesanywhere-trustanchor.json │ │ ├── aws-route53-cidrcollection.json │ │ ├── aws-route53-dnssec.json │ │ ├── aws-route53-healthcheck.json │ │ ├── aws-route53-hostedzone.json │ │ ├── aws-route53-keysigningkey.json │ │ ├── aws-route53-recordset.json │ │ ├── aws-route53-recordsetgroup.json │ │ ├── aws-route53profiles-profile.json │ │ ├── aws-route53profiles-profileassociation.json │ │ ├── aws-route53profiles-profileresourceassociation.json │ │ ├── aws-route53recoverycontrol-cluster.json │ │ ├── aws-route53recoverycontrol-controlpanel.json │ │ ├── aws-route53recoverycontrol-routingcontrol.json │ │ ├── aws-route53recoverycontrol-safetyrule.json │ │ ├── aws-route53recoveryreadiness-cell.json │ │ ├── aws-route53recoveryreadiness-readinesscheck.json │ │ ├── aws-route53recoveryreadiness-recoverygroup.json │ │ ├── aws-route53recoveryreadiness-resourceset.json │ │ ├── aws-route53resolver-firewalldomainlist.json │ │ ├── aws-route53resolver-firewallrulegroup.json │ │ ├── aws-route53resolver-firewallrulegroupassociation.json │ │ ├── aws-route53resolver-outpostresolver.json │ │ ├── aws-route53resolver-resolverconfig.json │ │ ├── aws-route53resolver-resolverdnssecconfig.json │ │ ├── aws-route53resolver-resolverendpoint.json │ │ ├── aws-route53resolver-resolverqueryloggingconfig.json │ │ ├── aws-route53resolver-resolverqueryloggingconfigassociation.json │ │ ├── aws-route53resolver-resolverrule.json │ │ ├── aws-route53resolver-resolverruleassociation.json │ │ ├── aws-rum-appmonitor.json │ │ ├── aws-s3-accessgrant.json │ │ ├── aws-s3-accessgrantsinstance.json │ │ ├── aws-s3-accessgrantslocation.json │ │ ├── aws-s3-accesspoint.json │ │ ├── aws-s3-bucket.json │ │ ├── aws-s3-bucketpolicy.json │ │ ├── aws-s3-multiregionaccesspoint.json │ │ ├── aws-s3-multiregionaccesspointpolicy.json │ │ ├── aws-s3-storagelens.json │ │ ├── aws-s3-storagelensgroup.json │ │ ├── aws-s3express-bucketpolicy.json │ │ ├── aws-s3express-directorybucket.json │ │ ├── aws-s3objectlambda-accesspoint.json │ │ ├── aws-s3objectlambda-accesspointpolicy.json │ │ ├── aws-s3outposts-accesspoint.json │ │ ├── aws-s3outposts-bucket.json │ │ ├── aws-s3outposts-bucketpolicy.json │ │ ├── aws-s3outposts-endpoint.json │ │ ├── aws-s3tables-tablebucket.json │ │ ├── aws-s3tables-tablebucketpolicy.json │ │ ├── aws-sagemaker-app.json │ │ ├── aws-sagemaker-appimageconfig.json │ │ ├── aws-sagemaker-cluster.json │ │ ├── aws-sagemaker-coderepository.json │ │ ├── aws-sagemaker-dataqualityjobdefinition.json │ │ ├── aws-sagemaker-device.json │ │ ├── aws-sagemaker-devicefleet.json │ │ ├── aws-sagemaker-domain.json │ │ ├── aws-sagemaker-endpoint.json │ │ ├── aws-sagemaker-endpointconfig.json │ │ ├── aws-sagemaker-featuregroup.json │ │ ├── aws-sagemaker-image.json │ │ ├── aws-sagemaker-imageversion.json │ │ ├── aws-sagemaker-inferencecomponent.json │ │ ├── aws-sagemaker-inferenceexperiment.json │ │ ├── aws-sagemaker-mlflowtrackingserver.json │ │ ├── aws-sagemaker-model.json │ │ ├── aws-sagemaker-modelbiasjobdefinition.json │ │ ├── aws-sagemaker-modelcard.json │ │ ├── aws-sagemaker-modelexplainabilityjobdefinition.json │ │ ├── aws-sagemaker-modelpackage.json │ │ ├── aws-sagemaker-modelpackagegroup.json │ │ ├── aws-sagemaker-modelqualityjobdefinition.json │ │ ├── aws-sagemaker-monitoringschedule.json │ │ ├── aws-sagemaker-notebookinstance.json │ │ ├── aws-sagemaker-notebookinstancelifecycleconfig.json │ │ ├── aws-sagemaker-partnerapp.json │ │ ├── aws-sagemaker-pipeline.json │ │ ├── aws-sagemaker-project.json │ │ ├── aws-sagemaker-space.json │ │ ├── aws-sagemaker-studiolifecycleconfig.json │ │ ├── aws-sagemaker-userprofile.json │ │ ├── aws-sagemaker-workteam.json │ │ ├── aws-scheduler-schedule.json │ │ ├── aws-scheduler-schedulegroup.json │ │ ├── aws-sdb-domain.json │ │ ├── aws-secretsmanager-resourcepolicy.json │ │ ├── aws-secretsmanager-rotationschedule.json │ │ ├── aws-secretsmanager-secret.json │ │ ├── aws-secretsmanager-secrettargetattachment.json │ │ ├── aws-securityhub-automationrule.json │ │ ├── aws-securityhub-configurationpolicy.json │ │ ├── aws-securityhub-delegatedadmin.json │ │ ├── aws-securityhub-findingaggregator.json │ │ ├── aws-securityhub-hub.json │ │ ├── aws-securityhub-insight.json │ │ ├── aws-securityhub-organizationconfiguration.json │ │ ├── aws-securityhub-policyassociation.json │ │ ├── aws-securityhub-productsubscription.json │ │ ├── aws-securityhub-securitycontrol.json │ │ ├── aws-securityhub-standard.json │ │ ├── aws-securitylake-awslogsource.json │ │ ├── aws-securitylake-datalake.json │ │ ├── aws-securitylake-subscriber.json │ │ ├── aws-securitylake-subscribernotification.json │ │ ├── aws-servicecatalog-acceptedportfolioshare.json │ │ ├── aws-servicecatalog-cloudformationproduct.json │ │ ├── aws-servicecatalog-cloudformationprovisionedproduct.json │ │ ├── aws-servicecatalog-launchnotificationconstraint.json │ │ ├── aws-servicecatalog-launchroleconstraint.json │ │ ├── aws-servicecatalog-launchtemplateconstraint.json │ │ ├── aws-servicecatalog-portfolio.json │ │ ├── aws-servicecatalog-portfolioprincipalassociation.json │ │ ├── aws-servicecatalog-portfolioproductassociation.json │ │ ├── aws-servicecatalog-portfolioshare.json │ │ ├── aws-servicecatalog-resourceupdateconstraint.json │ │ ├── aws-servicecatalog-serviceaction.json │ │ ├── aws-servicecatalog-serviceactionassociation.json │ │ ├── aws-servicecatalog-stacksetconstraint.json │ │ ├── aws-servicecatalog-tagoption.json │ │ ├── aws-servicecatalog-tagoptionassociation.json │ │ ├── aws-servicecatalogappregistry-application.json │ │ ├── aws-servicecatalogappregistry-attributegroup.json │ │ ├── aws-servicecatalogappregistry-attributegroupassociation.json │ │ ├── aws-servicecatalogappregistry-resourceassociation.json │ │ ├── aws-servicediscovery-httpnamespace.json │ │ ├── aws-servicediscovery-instance.json │ │ ├── aws-servicediscovery-privatednsnamespace.json │ │ ├── aws-servicediscovery-publicdnsnamespace.json │ │ ├── aws-servicediscovery-service.json │ │ ├── aws-ses-configurationset.json │ │ ├── aws-ses-configurationseteventdestination.json │ │ ├── aws-ses-contactlist.json │ │ ├── aws-ses-dedicatedippool.json │ │ ├── aws-ses-emailidentity.json │ │ ├── aws-ses-mailmanageraddoninstance.json │ │ ├── aws-ses-mailmanageraddonsubscription.json │ │ ├── aws-ses-mailmanagerarchive.json │ │ ├── aws-ses-mailmanageringresspoint.json │ │ ├── aws-ses-mailmanagerrelay.json │ │ ├── aws-ses-mailmanagerruleset.json │ │ ├── aws-ses-mailmanagertrafficpolicy.json │ │ ├── aws-ses-receiptfilter.json │ │ ├── aws-ses-receiptrule.json │ │ ├── aws-ses-receiptruleset.json │ │ ├── aws-ses-template.json │ │ ├── aws-ses-vdmattributes.json │ │ ├── aws-shield-drtaccess.json │ │ ├── aws-shield-proactiveengagement.json │ │ ├── aws-shield-protection.json │ │ ├── aws-shield-protectiongroup.json │ │ ├── aws-signer-profilepermission.json │ │ ├── aws-signer-signingprofile.json │ │ ├── aws-simspaceweaver-simulation.json │ │ ├── aws-sns-subscription.json │ │ ├── aws-sns-topic.json │ │ ├── aws-sns-topicinlinepolicy.json │ │ ├── aws-sns-topicpolicy.json │ │ ├── aws-sqs-queue.json │ │ ├── aws-sqs-queueinlinepolicy.json │ │ ├── aws-sqs-queuepolicy.json │ │ ├── aws-ssm-association.json │ │ ├── aws-ssm-document.json │ │ ├── aws-ssm-maintenancewindow.json │ │ ├── aws-ssm-maintenancewindowtarget.json │ │ ├── aws-ssm-maintenancewindowtask.json │ │ ├── aws-ssm-parameter.json │ │ ├── aws-ssm-patchbaseline.json │ │ ├── aws-ssm-resourcedatasync.json │ │ ├── aws-ssm-resourcepolicy.json │ │ ├── aws-ssmcontacts-contact.json │ │ ├── aws-ssmcontacts-contactchannel.json │ │ ├── aws-ssmcontacts-plan.json │ │ ├── aws-ssmcontacts-rotation.json │ │ ├── aws-ssmincidents-replicationset.json │ │ ├── aws-ssmincidents-responseplan.json │ │ ├── aws-ssmquicksetup-configurationmanager.json │ │ ├── aws-sso-application.json │ │ ├── aws-sso-applicationassignment.json │ │ ├── aws-sso-assignment.json │ │ ├── aws-sso-instance.json │ │ ├── aws-sso-instanceaccesscontrolattributeconfiguration.json │ │ ├── aws-sso-permissionset.json │ │ ├── aws-stepfunctions-activity.json │ │ ├── aws-stepfunctions-statemachine.json │ │ ├── aws-stepfunctions-statemachinealias.json │ │ ├── aws-stepfunctions-statemachineversion.json │ │ ├── aws-supportapp-accountalias.json │ │ ├── aws-supportapp-slackchannelconfiguration.json │ │ ├── aws-supportapp-slackworkspaceconfiguration.json │ │ ├── aws-synthetics-canary.json │ │ ├── aws-synthetics-group.json │ │ ├── aws-systemsmanagersap-application.json │ │ ├── aws-timestream-database.json │ │ ├── aws-timestream-influxdbinstance.json │ │ ├── aws-timestream-scheduledquery.json │ │ ├── aws-timestream-table.json │ │ ├── aws-transfer-agreement.json │ │ ├── aws-transfer-certificate.json │ │ ├── aws-transfer-connector.json │ │ ├── aws-transfer-profile.json │ │ ├── aws-transfer-server.json │ │ ├── aws-transfer-user.json │ │ ├── aws-transfer-webapp.json │ │ ├── aws-transfer-workflow.json │ │ ├── aws-verifiedpermissions-identitysource.json │ │ ├── aws-verifiedpermissions-policy.json │ │ ├── aws-verifiedpermissions-policystore.json │ │ ├── aws-verifiedpermissions-policytemplate.json │ │ ├── aws-voiceid-domain.json │ │ ├── aws-vpclattice-accesslogsubscription.json │ │ ├── aws-vpclattice-authpolicy.json │ │ ├── aws-vpclattice-listener.json │ │ ├── aws-vpclattice-resourceconfiguration.json │ │ ├── aws-vpclattice-resourcegateway.json │ │ ├── aws-vpclattice-resourcepolicy.json │ │ ├── aws-vpclattice-rule.json │ │ ├── aws-vpclattice-service.json │ │ ├── aws-vpclattice-servicenetwork.json │ │ ├── aws-vpclattice-servicenetworkresourceassociation.json │ │ ├── aws-vpclattice-servicenetworkserviceassociation.json │ │ ├── aws-vpclattice-servicenetworkvpcassociation.json │ │ ├── aws-vpclattice-targetgroup.json │ │ ├── aws-waf-bytematchset.json │ │ ├── aws-waf-ipset.json │ │ ├── aws-waf-rule.json │ │ ├── aws-waf-sizeconstraintset.json │ │ ├── aws-waf-sqlinjectionmatchset.json │ │ ├── aws-waf-webacl.json │ │ ├── aws-waf-xssmatchset.json │ │ ├── aws-wafregional-bytematchset.json │ │ ├── aws-wafregional-geomatchset.json │ │ ├── aws-wafregional-ipset.json │ │ ├── aws-wafregional-ratebasedrule.json │ │ ├── aws-wafregional-regexpatternset.json │ │ ├── aws-wafregional-rule.json │ │ ├── aws-wafregional-sizeconstraintset.json │ │ ├── aws-wafregional-sqlinjectionmatchset.json │ │ ├── aws-wafregional-webacl.json │ │ ├── aws-wafregional-webaclassociation.json │ │ ├── aws-wafregional-xssmatchset.json │ │ ├── aws-wafv2-ipset.json │ │ ├── aws-wafv2-loggingconfiguration.json │ │ ├── aws-wafv2-regexpatternset.json │ │ ├── aws-wafv2-rulegroup.json │ │ ├── aws-wafv2-webacl.json │ │ ├── aws-wafv2-webaclassociation.json │ │ ├── aws-wisdom-aiagent.json │ │ ├── aws-wisdom-aiagentversion.json │ │ ├── aws-wisdom-aiguardrail.json │ │ ├── aws-wisdom-aiguardrailversion.json │ │ ├── aws-wisdom-aiprompt.json │ │ ├── aws-wisdom-aipromptversion.json │ │ ├── aws-wisdom-assistant.json │ │ ├── aws-wisdom-assistantassociation.json │ │ ├── aws-wisdom-knowledgebase.json │ │ ├── aws-wisdom-messagetemplate.json │ │ ├── aws-wisdom-messagetemplateversion.json │ │ ├── aws-workspaces-connectionalias.json │ │ ├── aws-workspaces-workspace.json │ │ ├── aws-workspaces-workspacespool.json │ │ ├── aws-workspacesthinclient-environment.json │ │ ├── aws-workspacesweb-browsersettings.json │ │ ├── aws-workspacesweb-dataprotectionsettings.json │ │ ├── aws-workspacesweb-identityprovider.json │ │ ├── aws-workspacesweb-ipaccesssettings.json │ │ ├── aws-workspacesweb-networksettings.json │ │ ├── aws-workspacesweb-portal.json │ │ ├── aws-workspacesweb-truststore.json │ │ ├── aws-workspacesweb-useraccessloggingsettings.json │ │ ├── aws-workspacesweb-usersettings.json │ │ ├── aws-xray-group.json │ │ ├── aws-xray-resourcepolicy.json │ │ ├── aws-xray-samplingrule.json │ │ └── aws-xray-transactionsearchconfig.json │ └── types.schema.json ├── src │ ├── cfnServerInit.ts │ ├── cfnSettings.ts │ ├── requestTypes.ts │ ├── server.ts │ ├── server │ │ └── handlers │ │ │ ├── helpers.ts │ │ │ ├── languageHandlers.ts │ │ │ ├── notificationHandler.ts │ │ │ ├── settingsHandler.ts │ │ │ └── validationHandler.ts │ ├── service │ │ ├── cfnLanguageService.ts │ │ └── services │ │ │ ├── cfnValidation.ts │ │ │ └── cfnVersion.ts │ ├── utils │ │ ├── cfnParser.ts │ │ └── markdownString.ts │ └── vscode-json-languageservice.d.ts └── tsconfig.json ├── tsconfig.base.json ├── tslint.json └── vsc-extension-quickstart.md /.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | "env": { 3 | "browser": true, 4 | "es6": true, 5 | "node": true 6 | }, 7 | "parser": "@typescript-eslint/parser", 8 | "plugins": [ 9 | "@typescript-eslint" 10 | ], 11 | "parserOptions": { 12 | "sourceType": "module" 13 | }, 14 | "ignorePatterns": ["server/node_modules/", "client/node_modules/"], 15 | "rules": { 16 | "@typescript-eslint/naming-convention": "warn", 17 | "@typescript-eslint/member-delimiter-style": [ 18 | "warn", 19 | { 20 | "multiline": { 21 | "delimiter": "semi", 22 | "requireLast": true 23 | }, 24 | "singleline": { 25 | "delimiter": "semi", 26 | "requireLast": false 27 | } 28 | } 29 | ], 30 | "@typescript-eslint/semi": [ 31 | "warn", 32 | "always" 33 | ], 34 | "curly": "warn", 35 | "eqeqeq": [ 36 | "warn", 37 | "always" 38 | ], 39 | "no-redeclare": "warn", 40 | "no-throw-literal": "warn", 41 | "no-unused-expressions": "warn" 42 | } 43 | }; 44 | -------------------------------------------------------------------------------- /.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | *Issue #, if available:* 2 | 3 | *Description of changes:* 4 | 5 | 6 | By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license. 7 | -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | --- 2 | version: 2 3 | updates: 4 | - package-ecosystem: "github-actions" 5 | directory: "/" 6 | schedule: 7 | interval: "monthly" 8 | 9 | - package-ecosystem: "npm" 10 | directory: "/client" 11 | schedule: 12 | interval: "monthly" 13 | labels: 14 | - "client" 15 | - "dependencies" 16 | - "npm" 17 | 18 | - package-ecosystem: "npm" 19 | directory: "/server" 20 | schedule: 21 | interval: "monthly" 22 | labels: 23 | - "dependencies" 24 | - "npm" 25 | - "server" 26 | -------------------------------------------------------------------------------- /.github/workflows/branch-pr-release.yaml: -------------------------------------------------------------------------------- 1 | on: 2 | push: 3 | branches: 4 | - main 5 | pull_request: 6 | branches: 7 | - main 8 | jobs: 9 | build: 10 | strategy: 11 | fail-fast: false 12 | matrix: 13 | os: [macos-latest, ubuntu-latest, windows-latest] 14 | runs-on: ${{ matrix.os }} 15 | steps: 16 | - name: Checkout 17 | uses: actions/checkout@v4 18 | - name: Setup Node.js 19 | uses: actions/setup-node@v4 20 | with: 21 | node-version: 18.x 22 | - name: Set up Python 23 | uses: actions/setup-python@v5 24 | with: 25 | python-version: "3.x" 26 | - name: Setup NPM 27 | run: | 28 | npm install 29 | npm run compile 30 | - name: Setup cfn-lint 31 | run: | 32 | pip install cfn-lint 33 | pip install pydot 34 | - run: npm run lint 35 | - run: npm run prettier 36 | if: runner.os == 'Linux' 37 | - run: xvfb-run -a npm run test 38 | if: runner.os == 'Linux' 39 | - run: npm run test 40 | if: runner.os != 'Linux' 41 | -------------------------------------------------------------------------------- /.github/workflows/publish.yaml: -------------------------------------------------------------------------------- 1 | name: Upload package to VSCode Marketplace 2 | 3 | on: 4 | release: 5 | types: [published] 6 | 7 | jobs: 8 | deploy: 9 | runs-on: ubuntu-latest 10 | steps: 11 | - uses: actions/checkout@v4 12 | - uses: actions/setup-node@v4 13 | with: 14 | node-version: 20 15 | - run: npm ci 16 | - name: Publish to Open VSX Registry 17 | uses: HaaLeo/publish-vscode-extension@v2 18 | id: publishToOpenVSX 19 | with: 20 | pat: ${{ secrets.OVSX_PAT }} 21 | - name: Publish to Visual Studio Marketplace 22 | uses: HaaLeo/publish-vscode-extension@v2 23 | with: 24 | pat: ${{ secrets.VSCE_PAT }} 25 | registryUrl: https://marketplace.visualstudio.com 26 | extensionFile: ${{ steps.publishToOpenVSX.outputs.vsixPath }} 27 | -------------------------------------------------------------------------------- /.github/workflows/template-schema-updater.yaml: -------------------------------------------------------------------------------- 1 | name: Update CloudFormation schemas 2 | on: 3 | schedule: 4 | - cron: '0 */8 * * *' 5 | workflow_dispatch: # Enables on-demand/manual triggering: https://docs.github.com/en/free-pro-team@latest/actions/managing-workflow-runs/manually-running-a-workflow 6 | jobs: 7 | schema-updater: 8 | runs-on: ubuntu-latest 9 | steps: 10 | - uses: actions/checkout@v4 11 | - uses: actions/checkout@v4 12 | with: 13 | repository: aws-cloudformation/aws-cloudformation-template-schema 14 | path: aws-cloudformation-template-schema 15 | ref: main 16 | - uses: actions/setup-python@v5 17 | with: 18 | python-version: '3.9' 19 | - name: Install Poetry 20 | uses: snok/install-poetry@v1 21 | - run: | 22 | cd aws-cloudformation-template-schema 23 | poetry install 24 | poetry run cfn-template-schema generate --output-folder specs --type language-server 25 | rm -Rf ../server/schema/* 26 | mv specs/* ../server/schema/ 27 | cd .. 28 | rm -rf aws-cloudformation-template-schema 29 | - uses: peter-evans/create-pull-request@v7 30 | with: 31 | commit-message: | 32 | CloudFormation Template Schema upgrade 33 | https://github.com/aws-cloudformation/cloudformation-template-schema/tree/main 34 | delete-branch: true 35 | title: CloudFormation Template Schema upgrade 36 | body: | 37 | https://github.com/aws-cloudformation/cloudformation-template-schema/tree/main 38 | 39 | If tests are stuck on https://github.com/peter-evans/create-pull-request/issues/48: 40 | ["Manually close pull requests and immediately reopen them. This will enable `on: pull_request` workflows to run and be added as checks."](https://github.com/peter-evans/create-pull-request/blob/master/docs/concepts-guidelines.md#triggering-further-workflow-runs) 41 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | out 2 | node_modules 3 | .vscode-test/ 4 | *.vsix 5 | client/server 6 | .DS_Store 7 | npm-debug.log 8 | Thumbs.db 9 | */node_modules/ 10 | */out/ 11 | -------------------------------------------------------------------------------- /.vscode/launch.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "0.2.0", 3 | "configurations": [ 4 | { 5 | "type": "extensionHost", 6 | "request": "launch", 7 | "name": "Launch Extension", 8 | "runtimeExecutable": "${execPath}", 9 | "args": [ 10 | "--disable-extensions", 11 | "--extensionDevelopmentPath=${workspaceRoot}" 12 | ], 13 | "env": { 14 | "PATH": "${env:PATH}" 15 | }, 16 | "stopOnEntry": false, 17 | "sourceMaps": true, 18 | "outFiles": [ 19 | "${workspaceRoot}/client/out/**/*.js" 20 | ] 21 | // "preLaunchTask": "watch" 22 | }, 23 | { 24 | "type": "node", 25 | "request": "attach", 26 | "name": "Attach to Server", 27 | "address": "localhost", 28 | "protocol": "inspector", 29 | "port": 6010, 30 | "sourceMaps": true, 31 | "outFiles": [ 32 | "${workspaceRoot}/server/out/**/*.js" 33 | ] 34 | }, 35 | { 36 | "name": "Run Extension Tests", 37 | "type": "extensionHost", 38 | "request": "launch", 39 | "runtimeExecutable": "${execPath}", 40 | "args": [ 41 | "--extensionDevelopmentPath=${workspaceFolder}", 42 | "--extensionTestsPath=${workspaceFolder}/client/out/test/suite/index" 43 | ], 44 | "outFiles": [ 45 | "${workspaceFolder}/client/out/test/**/*.js" 46 | ], 47 | "preLaunchTask": "npm: watch:client" 48 | } 49 | ] 50 | } -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "cSpell.words": [ 3 | "jong", 4 | "kddejong", 5 | "languageclient", 6 | "vscode" 7 | ], 8 | "editor.insertSpaces": false, 9 | "editor.tabSize": 4, 10 | "eslint.enable": false, 11 | "eslint.trace.server": "off", 12 | "files.exclude": { 13 | "out": false 14 | }, 15 | "files.trimTrailingWhitespace": true, 16 | "search.exclude": { 17 | "out": true, 18 | "server": true 19 | }, 20 | "tslint.enable": false, 21 | "typescript.tsdk": "./node_modules/typescript/lib" 22 | } 23 | -------------------------------------------------------------------------------- /.vscode/tasks.json: -------------------------------------------------------------------------------- 1 | { 2 | // See https://go.microsoft.com/fwlink/?LinkId=733558 3 | // for the documentation about the tasks.json format 4 | "version": "2.0.0", 5 | "tasks": [ 6 | { 7 | "label": "watch", 8 | "dependsOn": [ 9 | "npm: watch:client", 10 | "npm: watch:server" 11 | ], 12 | "group": { 13 | "kind": "build", 14 | "isDefault": true 15 | }, 16 | "problemMatcher": [] 17 | }, 18 | { 19 | "type": "npm", 20 | "script": "watch:client", 21 | "isBackground": true, 22 | "group": "build", 23 | "presentation": { 24 | "reveal": "never", 25 | "panel": "dedicated" 26 | }, 27 | "problemMatcher": [ 28 | "$tsc-watch" 29 | ] 30 | }, 31 | { 32 | "type": "npm", 33 | "script": "watch:server", 34 | "isBackground": true, 35 | "group": "build", 36 | "presentation": { 37 | "reveal": "never", 38 | "panel": "dedicated" 39 | }, 40 | "problemMatcher": [ 41 | "$tsc-watch" 42 | ] 43 | }, 44 | { 45 | "type": "npm", 46 | "script": "test", 47 | "group": "test", 48 | "problemMatcher": [] 49 | } 50 | ] 51 | } -------------------------------------------------------------------------------- /.vscodeignore: -------------------------------------------------------------------------------- 1 | .vscode/** 2 | .vscode-test/** 3 | out/test/** 4 | out/**/*.map 5 | src/** 6 | .gitignore 7 | tsconfig.json 8 | vsc-extension-quickstart.md 9 | tslint.json -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | ## Code of Conduct 2 | This project has adopted the [Amazon Open Source Code of Conduct](https://aws.github.io/code-of-conduct). 3 | For more information see the [Code of Conduct FAQ](https://aws.github.io/code-of-conduct-faq) or contact 4 | opensource-codeofconduct@amazon.com with any additional questions or comments. 5 | -------------------------------------------------------------------------------- /NOTICE: -------------------------------------------------------------------------------- 1 | AWS Cfn Lint Visual Studio Code 2 | Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 3 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # vscode-cfn-lint 2 | [![Version](https://img.shields.io/visual-studio-marketplace/v/kddejong.vscode-cfn-lint.svg?style=flat)](https://marketplace.visualstudio.com/items?itemName=kddejong.vscode-cfn-lint) 3 | [![Version](https://img.shields.io/visual-studio-marketplace/d/kddejong.vscode-cfn-lint.svg?style=flat)](https://marketplace.visualstudio.com/items?itemName=kddejong.vscode-cfn-lint) 4 | 5 | VS Code CloudFormation Linter uses cfn-lint to lint your CloudFormation templates. 6 | [cfn-lint logo] 7 | 8 | ## Features 9 | 10 | - Uses [cfn-lint](https://github.com/aws-cloudformation/cfn-python-lint) to parse the template and show problems with it. 11 | 12 | - Uses [pydot](https://pypi.org/project/pydot/) to preview the template as a graph of resources. 13 | 14 | ![features](/images/features.png) 15 | 16 | ## Requirements 17 | 18 | Requires `cfn-lint` to be installed: `pip install cfn-lint`. 19 | 20 | If you want to be able to preview templates as graphs, you also need to install `pydot`: `pip install pydot`. 21 | 22 | ## Extension Settings 23 | 24 | * `cfnLint.path`: path to the `cfn-lint` command, optionally including [parameters](https://github.com/aws-cloudformation/cfn-python-lint/#parameters) as well: 25 | 26 | ![](/images/settings.png) 27 | 28 | ## Community 29 | 30 | Join us on Discord! Connect & interact with CloudFormation developers & 31 | experts, find channels to discuss and get help for cfn-lint, CloudFormation registry, StackSets, 32 | Guard and more: 33 | 34 | [![Join our Discord](https://discordapp.com/api/guilds/981586120448020580/widget.png?style=banner3)](https://discord.gg/9zpd7TTRwq) 35 | 36 | ## Contribute 37 | 38 | The code for this plugin can be found on GitHub at [awslabs/aws-cfn-lint-visual-studio-code](https://github.com/awslabs/aws-cfn-lint-visual-studio-code) 39 | -------------------------------------------------------------------------------- /client/.vscodeignore: -------------------------------------------------------------------------------- 1 | .vscode/** 2 | typings/** 3 | out/test/** 4 | test/** 5 | src/** 6 | **/*.map 7 | .gitignore 8 | tsconfig.json 9 | vsc-extension-quickstart.md -------------------------------------------------------------------------------- /client/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-cloudformation/cfn-lint-visual-studio-code/c2bbd2d1e0b3c0167b38649c8d4f99e5a73efc1f/client/logo.png -------------------------------------------------------------------------------- /client/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "vscode-cfn-lint", 3 | "description": "CloudFormation Linter", 4 | "author": "Kevin DeJong", 5 | "license": "Apache-2.0", 6 | "version": "0.0.1", 7 | "icon": "logo.png", 8 | "repository": { 9 | "type": "git", 10 | "url": "https://github.com/awslabs/aws-cfn-lint-visual-studio-code.git" 11 | }, 12 | "engines": { 13 | "vscode": "^1.52.0" 14 | }, 15 | "bugs": { 16 | "url": "https://github.com/awslabs/aws-cfn-lint-visual-studio-code/issues" 17 | }, 18 | "scripts": {}, 19 | "devDependencies": { 20 | "@types/mocha": "^10.0.10", 21 | "@types/vscode": "1.99.1", 22 | "@vscode/test-electron": "^2.4.1", 23 | "glob": "^11.0.2", 24 | "mocha": "^11.2.2" 25 | }, 26 | "dependencies": { 27 | "@types/lodash": "^4.17.15", 28 | "lodash": "^4.17.21", 29 | "node-yaml-parser": "^0.0.9", 30 | "vscode-languageclient": "~9.0.1", 31 | "vscode-uri": "^3.0.8" 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /client/src/@types/node-yaml-parser.d.ts: -------------------------------------------------------------------------------- 1 | declare module "node-yaml-parser" { 2 | export function parse(text: string): { 3 | readonly documents: YamlDocument[]; 4 | readonly lineLengths: number[]; 5 | }; 6 | export function findNodeAtPosition( 7 | documents: YamlDocument[], 8 | lineLengths: number[], 9 | line: number, 10 | char: number 11 | ): YamlMatchedElement; 12 | 13 | export interface YamlNode { 14 | readonly kind: string; 15 | readonly raw: string; 16 | readonly startPosition: number; 17 | readonly endPosition: number; 18 | readonly parent?: YamlNode; 19 | } 20 | 21 | export interface YamlDocument { 22 | readonly nodes: YamlNode[]; 23 | readonly errors: string[]; 24 | } 25 | 26 | export interface YamlMatchedElement { 27 | readonly matchedNode: YamlNode; 28 | readonly matchedDocument: YamlDocument; 29 | } 30 | 31 | export interface Util { 32 | isKey(node: YamlNode): boolean; 33 | } 34 | 35 | export const util: Util; 36 | } 37 | -------------------------------------------------------------------------------- /client/src/test/runTest.ts: -------------------------------------------------------------------------------- 1 | import * as path from "path"; 2 | import * as os from "os"; 3 | import { runTests } from "@vscode/test-electron"; 4 | 5 | async function main() { 6 | try { 7 | // The folder containing the Extension Manifest package.json 8 | // Passed to `--extensionDevelopmentPath` 9 | const extensionDevelopmentPath = path.resolve(__dirname, "../../../"); 10 | 11 | // The path to the extension test runner script 12 | // Passed to --extensionTestsPath 13 | const extensionTestsPath = path.resolve(__dirname, "./suite/index"); 14 | 15 | // Download VS Code, unzip it and run the integration test 16 | await runTests({ 17 | extensionDevelopmentPath, 18 | extensionTestsPath, 19 | launchArgs: ["--disable-extensions", "--user-data-dir", `${os.tmpdir()}`], 20 | }); 21 | } catch (err) { 22 | console.error(`Failed to run tests: ${err}`); 23 | process.exit(1); 24 | } 25 | } 26 | 27 | main(); 28 | -------------------------------------------------------------------------------- /client/src/test/suite/fixtures/completion/completion.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-cloudformation/cfn-lint-visual-studio-code/c2bbd2d1e0b3c0167b38649c8d4f99e5a73efc1f/client/src/test/suite/fixtures/completion/completion.yaml -------------------------------------------------------------------------------- /client/src/test/suite/fixtures/completion/completion2.yaml: -------------------------------------------------------------------------------- 1 | 2 | Parameters: 3 | Vpc: 4 | Type: AWS::EC2::VPC::Id 5 | Resources: 6 | Subnet1: 7 | Type: AWS::EC2::Subnet 8 | Properties: 9 | VpcId: !Ref Vpc 10 | Subnet2: 11 | Type: AWS::EC2::Subnet 12 | Properties: 13 | VpcId: 14 | Ref: V 15 | RouteTable1: 16 | Type: AWS::EC2::RouteTable 17 | Properties: 18 | VpcId: !Ref V 19 | Subnet1RouteTable1: 20 | Type: AWS::EC2::SubnetRouteTableAssociation 21 | Properties: 22 | RouteTableId: !R 23 | SubnetId: !Ref Subnet1 24 | -------------------------------------------------------------------------------- /client/src/test/suite/fixtures/hover/hover.yaml: -------------------------------------------------------------------------------- 1 | 2 | Parameters: 3 | Vpc: 4 | Type: AWS::EC2::VPC::Id 5 | Resources: 6 | Subnet1: 7 | Type: AWS::EC2::Subnet 8 | Properties: 9 | VpcId: !Ref Vpc 10 | Subnet2: 11 | Type: AWS::EC2::Subnet 12 | Properties: 13 | VpcId: 14 | Ref: Vpc 15 | RouteTable1: 16 | Type: AWS::EC2::RouteTable 17 | Properties: 18 | VpcId: !Ref Vpc 19 | Subnet1RouteTable1: 20 | Type: AWS::EC2::SubnetRouteTableAssociation 21 | Properties: 22 | RouteTableId: !Ref RouteTable1 23 | SubnetId: 24 | Ref: Subnet1 25 | -------------------------------------------------------------------------------- /client/src/test/suite/fixtures/test.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-cloudformation/cfn-lint-visual-studio-code/c2bbd2d1e0b3c0167b38649c8d4f99e5a73efc1f/client/src/test/suite/fixtures/test.json -------------------------------------------------------------------------------- /client/src/test/suite/fixtures/validation/a template.yaml: -------------------------------------------------------------------------------- 1 | AWSTemplateFormatVersion: "2010-09-09" 2 | Resources: 3 | RootRole: 4 | Type: "AWS::IAM::Role" 5 | Properties: 6 | BadKey: GoodValue 7 | AssumeRolePolicyDocument: 8 | Version: "2012-10-17" 9 | Statement: 10 | - 11 | Effect: "Allow" 12 | Principal: 13 | Service: 14 | - "ec2.amazonaws.com" 15 | Action: 16 | - "sts:AssumeRole" 17 | Path: "/" 18 | Policies: 19 | - 20 | PolicyName: "root" 21 | PolicyDocument: 22 | Version: "2012-10-17" 23 | Statement: 24 | - 25 | Effect: "Allow" 26 | Action: "*" 27 | Resource: "*" -------------------------------------------------------------------------------- /client/src/test/suite/fixtures/validation/bad.json: -------------------------------------------------------------------------------- 1 | { 2 | "AWSTemplateFormatVersion": "2010-09-09", 3 | "Description": "A sample template", 4 | "Errors": { "Catch": "Missing" }, 5 | "Parameters": { 6 | "myParam": { 7 | "Type": "String", 8 | "Default": "String", 9 | "Description": "String" 10 | } 11 | }, 12 | "Resources": { 13 | "MyEC2Instance1": { 14 | "Type": "AWS::EC2::Instance1" 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /client/src/test/suite/fixtures/validation/bad.yaml: -------------------------------------------------------------------------------- 1 | AWSTemplateFormatVersion: "2010-09-09" 2 | Description: A sample template 3 | Errors: 4 | Catch: Missing 5 | Parameters: 6 | myParam: 7 | Type: String 8 | Default: String 9 | Description: String 10 | Resources: 11 | ## Missing Properties 12 | MyEC2Instance1: 13 | Type: "AWS::EC2::Instance1" 14 | MyEC2Instance2: 15 | Type: "AWS::EC2::Instance" 16 | Bucket: 17 | Type: AWS::S3::Bucket 18 | Properties: 19 | BucketName: !Ref MyEC2Instance1 20 | -------------------------------------------------------------------------------- /client/src/test/suite/fixtures/validation/good.yaml: -------------------------------------------------------------------------------- 1 | AWSTemplateFormatVersion: "2010-09-09" 2 | Description: A sample template 3 | Resources: 4 | RootRole: 5 | Type: "AWS::IAM::Role" 6 | Properties: 7 | AssumeRolePolicyDocument: 8 | Version: "2012-10-17" 9 | Statement: 10 | - 11 | Effect: "Allow" 12 | Principal: 13 | Service: 14 | - "ec2.amazonaws.com" 15 | Action: 16 | - "sts:AssumeRole" 17 | Path: "/" 18 | Policies: 19 | - 20 | PolicyName: "root" 21 | PolicyDocument: 22 | Version: "2012-10-17" 23 | Statement: 24 | - 25 | Effect: "Allow" 26 | Action: "*" 27 | Resource: "*" 28 | RolePolicies: 29 | Type: "AWS::IAM::Policy" 30 | Properties: 31 | PolicyName: "root" 32 | PolicyDocument: 33 | Version: "2012-10-17" 34 | Statement: 35 | - 36 | Effect: "Allow" 37 | Action: "*" 38 | Resource: "*" 39 | Roles: 40 | - 41 | Ref: "RootRole" 42 | RootInstanceProfile: 43 | Type: "AWS::IAM::InstanceProfile" 44 | Properties: 45 | Path: "/" 46 | Roles: 47 | - 48 | Ref: "RootRole" 49 | -------------------------------------------------------------------------------- /client/src/test/suite/fixtures/validation/not_template.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | NotEven: A valid CloudFormation template -------------------------------------------------------------------------------- /client/src/test/suite/fixtures/validation/preview.yaml: -------------------------------------------------------------------------------- 1 | Resources: 2 | bucket: 3 | Type: AWS::S3::Bucket 4 | bucket2: 5 | Type: AWS::S3::Bucket 6 | DependsOn: 7 | - bucket -------------------------------------------------------------------------------- /client/src/test/suite/fixtures/validation/still_a_template.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | Resources: 3 | RootRole: 4 | Type: AWS::IAM::Role 5 | Properties: 6 | BadKey: Value 7 | AssumeRolePolicyDocument: 8 | Version: "2012-10-17" 9 | Statement: 10 | - Effect: "Allow" 11 | Principal: 12 | Service: 13 | - "ec2.amazonaws.com" 14 | Action: 15 | - "sts:AssumeRole" 16 | Path: "/" 17 | Policies: 18 | - PolicyName: "root" 19 | PolicyDocument: 20 | Version: "2012-10-17" 21 | Statement: 22 | - Effect: "Allow" 23 | Action: "*" 24 | Resource: "*" 25 | -------------------------------------------------------------------------------- /client/src/test/suite/fixtures/validation/still_a_template_2.yaml: -------------------------------------------------------------------------------- 1 | Resources: 2 | RootRole: 3 | Type: "AWS::IAM::Role" 4 | Properties: 5 | BadKey: GoodValue 6 | AssumeRolePolicyDocument: 7 | Version: "2012-10-17" 8 | Statement: 9 | - Effect: "Allow" 10 | Principal: 11 | Service: 12 | - "ec2.amazonaws.com" 13 | Action: 14 | - "sts:AssumeRole" 15 | Path: "/" 16 | Policies: 17 | - PolicyName: "root" 18 | PolicyDocument: 19 | Version: "2012-10-17" 20 | Statement: 21 | - Effect: "Allow" 22 | Action: "*" 23 | Resource: "*" 24 | -------------------------------------------------------------------------------- /client/src/test/suite/hover.test.ts: -------------------------------------------------------------------------------- 1 | import * as vscode from "vscode"; 2 | import assert = require("assert"); 3 | import { getDocUri, activate } from "./helper"; 4 | 5 | suite("Should hover", () => { 6 | test("Hover on !Ref to parameter", async () => { 7 | const docUri = getDocUri("hover", "hover.yaml"); 8 | await activate(docUri); 9 | 10 | await testHover( 11 | docUri, 12 | new vscode.Position(17, 20), 13 | "\n```\n(Parameter) Vpc: AWS::EC2::VPC::Id\n```\n" 14 | ); 15 | }); 16 | test("Hover on !Ref to resource", async () => { 17 | const docUri = getDocUri("hover", "hover.yaml"); 18 | await activate(docUri); 19 | 20 | await testHover( 21 | docUri, 22 | new vscode.Position(21, 31), 23 | "\n```\n(Resource) RouteTable1: AWS::EC2::RouteTable\n```\n" 24 | ); 25 | }); 26 | test("Hover on Ref: to resource", async () => { 27 | const docUri = getDocUri("hover", "hover.yaml"); 28 | await activate(docUri); 29 | 30 | await testHover( 31 | docUri, 32 | new vscode.Position(23, 17), 33 | "\n```\n(Resource) Subnet1: AWS::EC2::Subnet\n```\n" 34 | ); 35 | }); 36 | test("Hover on Ref: to parameter", async () => { 37 | const docUri = getDocUri("hover", "hover.yaml"); 38 | await activate(docUri); 39 | 40 | await testHover( 41 | docUri, 42 | new vscode.Position(13, 15), 43 | "\n```\n(Parameter) Vpc: AWS::EC2::VPC::Id\n```\n" 44 | ); 45 | }); 46 | }); 47 | 48 | export async function testHover( 49 | docUri: vscode.Uri, 50 | position: vscode.Position, 51 | expectedHover: string 52 | ): Promise { 53 | // Executing the command `vscode.executeHoverProvider` to simulate triggering hover 54 | const actualHovers = (await vscode.commands.executeCommand( 55 | "vscode.executeHoverProvider", 56 | docUri, 57 | position 58 | )) as vscode.Hover[]; 59 | 60 | const actualHover = actualHovers[0]; 61 | const gotMessage = (actualHover.contents[0]).value; 62 | assert.equal(expectedHover, gotMessage); 63 | } 64 | -------------------------------------------------------------------------------- /client/src/test/suite/index.ts: -------------------------------------------------------------------------------- 1 | import * as path from "path"; 2 | import Mocha from "mocha"; 3 | import { glob } from "glob"; 4 | 5 | export function run(): Promise { 6 | // Create the mocha test 7 | const mocha = new Mocha({ 8 | ui: "tdd", 9 | timeout: 50000, 10 | }); 11 | 12 | const testsRoot = path.resolve(__dirname, ".."); 13 | 14 | return new Promise((c, e) => { 15 | glob("**/**.test.js", { cwd: testsRoot }) 16 | .then(function (files: string[]) { 17 | // Add files to the test suite 18 | files.forEach((f) => mocha.addFile(path.resolve(testsRoot, f))); 19 | 20 | try { 21 | // Run the mocha test 22 | mocha.run((failures) => { 23 | if (failures > 0) { 24 | e(new Error(`${failures} tests failed.`)); 25 | } else { 26 | c(); 27 | } 28 | }); 29 | } catch (err) { 30 | e(err); 31 | } 32 | }) 33 | .catch(function (err) { 34 | return e(err); 35 | }); 36 | }); 37 | } 38 | -------------------------------------------------------------------------------- /client/src/test/suite/preview.test.ts: -------------------------------------------------------------------------------- 1 | import * as assert from "assert"; 2 | import * as fs from "fs"; 3 | import { getDocUri, activate, activateAndPreview, getDocPath } from "./helper"; 4 | 5 | suite("Previews should work", () => { 6 | const fixtureFolder = "validation"; 7 | const docUri = "preview.yaml"; 8 | const dotUri = "preview.yaml.dot"; 9 | 10 | test("Does NOT create .dot file if a preview was not requested", async () => { 11 | await activate(getDocUri(fixtureFolder, docUri)); 12 | 13 | assert.strictEqual(!fs.existsSync(getDocPath(fixtureFolder, dotUri)), true); 14 | }); 15 | 16 | test("Does create .dot file if a preview was requested", async () => { 17 | await activateAndPreview(getDocUri(fixtureFolder, docUri)); 18 | 19 | assert.strictEqual(fs.existsSync(getDocPath(fixtureFolder, dotUri)), true); 20 | 21 | // cleanup 22 | fs.unlinkSync(getDocPath(fixtureFolder, dotUri)); 23 | }); 24 | }); 25 | -------------------------------------------------------------------------------- /client/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.base.json", 3 | "compilerOptions": { 4 | "target": "es6", 5 | "module": "commonjs", 6 | "moduleResolution": "node", 7 | "rootDir": "src", 8 | "outDir": "out", 9 | "lib": [ "es6" ], 10 | "sourceMap": true, 11 | "esModuleInterop": true, 12 | }, 13 | "exclude": [ 14 | "node_modules" 15 | ] 16 | } -------------------------------------------------------------------------------- /images/features.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-cloudformation/cfn-lint-visual-studio-code/c2bbd2d1e0b3c0167b38649c8d4f99e5a73efc1f/images/features.png -------------------------------------------------------------------------------- /images/settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-cloudformation/cfn-lint-visual-studio-code/c2bbd2d1e0b3c0167b38649c8d4f99e5a73efc1f/images/settings.png -------------------------------------------------------------------------------- /logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-cloudformation/cfn-lint-visual-studio-code/c2bbd2d1e0b3c0167b38649c8d4f99e5a73efc1f/logo.png -------------------------------------------------------------------------------- /resources/open-preview-dark.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /resources/open-preview-light.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /server/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "vscode-cfn-lint", 3 | "description": "CloudFormation Lint Server", 4 | "author": "Kevin DeJong", 5 | "license": "Apache-2.0", 6 | "version": "0.0.1", 7 | "publisher": "", 8 | "repository": { 9 | "type": "git", 10 | "url": "https://github.com/awslabs/aws-cfn-lint-visual-studio-code.git" 11 | }, 12 | "engines": { 13 | "node": "*" 14 | }, 15 | "dependencies": { 16 | "@types/node-fetch": "^2.6.9", 17 | "fast-json-patch": "^3.1.1", 18 | "node-fetch": "^2.7.0", 19 | "semver": "^7.7.1", 20 | "vscode-languageserver": "^9.0.0", 21 | "vscode-languageserver-textdocument": "^1.0.12", 22 | "vscode-languageserver-types": "^3.17.5", 23 | "vscode-uri": "^3.0.8", 24 | "yaml-language-server": "^1.18.0" 25 | }, 26 | "scripts": {} 27 | } 28 | -------------------------------------------------------------------------------- /server/schema/mappings.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://aws.amazon.com/cloudformation/template/mappings", 4 | "type": "object", 5 | "definitions": { 6 | "Attribute": { 7 | "$comment": "Attribute defines the content of a Mapping", 8 | "type": "object", 9 | "patternProperties": { 10 | "^[a-zA-Z0-9._-]{1,255}$": { 11 | "type": [ 12 | "boolean", 13 | "integer", 14 | "number", 15 | "string" 16 | ] 17 | } 18 | }, 19 | "minProperties": 1, 20 | "additionalProperties": false 21 | } 22 | }, 23 | "properties": { 24 | "Mappings": { 25 | "type": "object", 26 | "patternProperties": { 27 | "^[a-zA-Z0-9._-]{1,255}$": { 28 | "$ref": "#/definitions/Attribute" 29 | } 30 | }, 31 | "minProperties": 1, 32 | "additionalProperties": false 33 | } 34 | }, 35 | "additionalProperties": false, 36 | "description": "CFN template JSON specification for using the mappings capability" 37 | } -------------------------------------------------------------------------------- /server/schema/resource.attributes.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://aws.amazon.com/cloudformation/resource-attributes", 4 | "title": "Product", 5 | "description": "CFN JSON specification generated from version 68.1.0", 6 | "type": "object", 7 | "definitions": { 8 | "ResourceAttributes": { 9 | "type": "object", 10 | "properties": { 11 | "DeletionPolicy": { 12 | "description": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html", 13 | "type": "string", 14 | "enum": [ 15 | "Delete", 16 | "Retain", 17 | "Snapshot" 18 | ] 19 | }, 20 | "UpdateReplacePolicy": { 21 | "description": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-updatereplacepolicy.html", 22 | "type": "string", 23 | "enum": [ 24 | "Delete", 25 | "Retain", 26 | "Snapshot" 27 | ] 28 | }, 29 | "Metadata": { 30 | "description": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html", 31 | "type": "object" 32 | }, 33 | "CreationPolicy": { 34 | "description": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-creationpolicy.html", 35 | "type": "object" 36 | }, 37 | "UpdatePolicy": { 38 | "description": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-updatepolicy.html", 39 | "type": "object" 40 | }, 41 | "DependsOn": { 42 | "type": [ 43 | "string", 44 | "array" 45 | ], 46 | "items": { 47 | "type": "string" 48 | } 49 | } 50 | } 51 | } 52 | } 53 | } -------------------------------------------------------------------------------- /server/schema/resources/aws-amazonmq-configurationassociation.json: -------------------------------------------------------------------------------- 1 | { 2 | "typeName": "AWS::AmazonMQ::ConfigurationAssociation", 3 | "description": "Resource Type definition for AWS::AmazonMQ::ConfigurationAssociation", 4 | "additionalProperties": false, 5 | "properties": { 6 | "Id": { 7 | "type": "string", 8 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 9 | }, 10 | "Broker": { 11 | "type": "string", 12 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" 13 | }, 14 | "Configuration": { 15 | "$ref": "#/definitions/ConfigurationId" 16 | } 17 | }, 18 | "definitions": { 19 | "ConfigurationId": { 20 | "type": "object", 21 | "additionalProperties": false, 22 | "properties": { 23 | "Revision": { 24 | "type": "integer", 25 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Integer \nUpdate requires: No interruption\n" 26 | }, 27 | "Id": { 28 | "type": "string", 29 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" 30 | } 31 | }, 32 | "required": [ 33 | "Revision", 34 | "Id" 35 | ], 36 | "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" 37 | } 38 | }, 39 | "required": [ 40 | "Configuration", 41 | "Broker" 42 | ], 43 | "createOnlyProperties": [ 44 | "/properties/Broker" 45 | ], 46 | "primaryIdentifier": [ 47 | "/properties/Id" 48 | ], 49 | "readOnlyProperties": [ 50 | "/properties/Id" 51 | ], 52 | "attributes": { 53 | "Id": { 54 | "type": "string", 55 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 56 | } 57 | } 58 | } -------------------------------------------------------------------------------- /server/schema/resources/aws-apigateway-account.json: -------------------------------------------------------------------------------- 1 | { 2 | "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-apigateway", 3 | "tagging": { 4 | "taggable": false 5 | }, 6 | "handlers": { 7 | "read": { 8 | "permissions": [ 9 | "apigateway:GET" 10 | ] 11 | }, 12 | "create": { 13 | "permissions": [ 14 | "apigateway:PATCH", 15 | "iam:GetRole", 16 | "iam:PassRole" 17 | ] 18 | }, 19 | "update": { 20 | "permissions": [ 21 | "apigateway:PATCH", 22 | "iam:GetRole", 23 | "iam:PassRole" 24 | ] 25 | }, 26 | "delete": { 27 | "permissions": [ 28 | "apigateway:PATCH" 29 | ] 30 | } 31 | }, 32 | "typeName": "AWS::ApiGateway::Account", 33 | "readOnlyProperties": [ 34 | "/properties/Id" 35 | ], 36 | "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.", 37 | "additionalProperties": false, 38 | "primaryIdentifier": [ 39 | "/properties/Id" 40 | ], 41 | "properties": { 42 | "Id": { 43 | "description": "", 44 | "type": "string", 45 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 46 | }, 47 | "CloudWatchRoleArn": { 48 | "description": "", 49 | "type": "string", 50 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" 51 | } 52 | }, 53 | "attributes": { 54 | "Id": { 55 | "description": "", 56 | "type": "string", 57 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 58 | } 59 | } 60 | } -------------------------------------------------------------------------------- /server/schema/resources/aws-applicationsignals-discovery.json: -------------------------------------------------------------------------------- 1 | { 2 | "typeName": "AWS::ApplicationSignals::Discovery", 3 | "description": "Resource Type definition for AWS::ApplicationSignals::Discovery", 4 | "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-applicationsignals", 5 | "definitions": { 6 | "AccountId": { 7 | "description": "The identifier for the specified AWS account.", 8 | "type": "string", 9 | "maxLength": 12, 10 | "minLength": 12, 11 | "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" 12 | } 13 | }, 14 | "properties": { 15 | "AccountId": { 16 | "$ref": "#/definitions/AccountId" 17 | } 18 | }, 19 | "additionalProperties": false, 20 | "required": [], 21 | "readOnlyProperties": [ 22 | "/properties/AccountId" 23 | ], 24 | "primaryIdentifier": [ 25 | "/properties/AccountId" 26 | ], 27 | "handlers": { 28 | "create": { 29 | "permissions": [ 30 | "application-signals:StartDiscovery", 31 | "application-signals:ListServices", 32 | "iam:CreateServiceLinkedRole" 33 | ] 34 | }, 35 | "read": { 36 | "permissions": [ 37 | "application-signals:ListServices" 38 | ] 39 | }, 40 | "update": { 41 | "permissions": [ 42 | "application-signals:ListServices" 43 | ] 44 | }, 45 | "delete": { 46 | "permissions": [ 47 | "application-signals:ListServices" 48 | ] 49 | }, 50 | "list": { 51 | "permissions": [ 52 | "application-signals:ListServices" 53 | ] 54 | } 55 | }, 56 | "tagging": { 57 | "taggable": false 58 | }, 59 | "attributes": { 60 | "AccountId": { 61 | "$ref": "#/definitions/AccountId" 62 | } 63 | } 64 | } -------------------------------------------------------------------------------- /server/schema/resources/aws-appstream-applicationentitlementassociation.json: -------------------------------------------------------------------------------- 1 | { 2 | "typeName": "AWS::AppStream::ApplicationEntitlementAssociation", 3 | "description": "Resource Type definition for AWS::AppStream::ApplicationEntitlementAssociation", 4 | "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-appstream.git", 5 | "definitions": {}, 6 | "properties": { 7 | "StackName": { 8 | "type": "string", 9 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" 10 | }, 11 | "EntitlementName": { 12 | "type": "string", 13 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" 14 | }, 15 | "ApplicationIdentifier": { 16 | "type": "string", 17 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" 18 | } 19 | }, 20 | "additionalProperties": false, 21 | "tagging": { 22 | "taggable": false 23 | }, 24 | "required": [ 25 | "StackName", 26 | "EntitlementName", 27 | "ApplicationIdentifier" 28 | ], 29 | "createOnlyProperties": [ 30 | "/properties/StackName", 31 | "/properties/EntitlementName", 32 | "/properties/ApplicationIdentifier" 33 | ], 34 | "primaryIdentifier": [ 35 | "/properties/StackName", 36 | "/properties/EntitlementName", 37 | "/properties/ApplicationIdentifier" 38 | ], 39 | "handlers": { 40 | "create": { 41 | "permissions": [ 42 | "appstream:AssociateApplicationToEntitlement", 43 | "appstream:ListEntitledApplications" 44 | ] 45 | }, 46 | "read": { 47 | "permissions": [ 48 | "appstream:ListEntitledApplications" 49 | ] 50 | }, 51 | "delete": { 52 | "permissions": [ 53 | "appstream:DisassociateApplicationFromEntitlement", 54 | "appstream:ListEntitledApplications" 55 | ] 56 | } 57 | }, 58 | "attributes": {} 59 | } -------------------------------------------------------------------------------- /server/schema/resources/aws-appstream-applicationfleetassociation.json: -------------------------------------------------------------------------------- 1 | { 2 | "typeName": "AWS::AppStream::ApplicationFleetAssociation", 3 | "description": "Resource Type definition for AWS::AppStream::ApplicationFleetAssociation", 4 | "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-appstream.git", 5 | "definitions": { 6 | "Arn": { 7 | "type": "string", 8 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" 9 | } 10 | }, 11 | "properties": { 12 | "FleetName": { 13 | "type": "string", 14 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" 15 | }, 16 | "ApplicationArn": { 17 | "$ref": "#/definitions/Arn" 18 | } 19 | }, 20 | "additionalProperties": false, 21 | "tagging": { 22 | "taggable": false 23 | }, 24 | "required": [ 25 | "FleetName", 26 | "ApplicationArn" 27 | ], 28 | "createOnlyProperties": [ 29 | "/properties/FleetName", 30 | "/properties/ApplicationArn" 31 | ], 32 | "primaryIdentifier": [ 33 | "/properties/FleetName", 34 | "/properties/ApplicationArn" 35 | ], 36 | "handlers": { 37 | "create": { 38 | "permissions": [ 39 | "appstream:AssociateApplicationFleet", 40 | "appstream:DescribeApplicationFleetAssociations" 41 | ] 42 | }, 43 | "read": { 44 | "permissions": [ 45 | "appstream:DescribeApplicationFleetAssociations" 46 | ] 47 | }, 48 | "delete": { 49 | "permissions": [ 50 | "appstream:DisassociateApplicationFleet", 51 | "appstream:DescribeApplicationFleetAssociations" 52 | ] 53 | } 54 | }, 55 | "attributes": {} 56 | } -------------------------------------------------------------------------------- /server/schema/resources/aws-appstream-stackfleetassociation.json: -------------------------------------------------------------------------------- 1 | { 2 | "typeName": "AWS::AppStream::StackFleetAssociation", 3 | "description": "Resource Type definition for AWS::AppStream::StackFleetAssociation", 4 | "additionalProperties": false, 5 | "properties": { 6 | "Id": { 7 | "type": "string", 8 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 9 | }, 10 | "FleetName": { 11 | "type": "string", 12 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" 13 | }, 14 | "StackName": { 15 | "type": "string", 16 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" 17 | } 18 | }, 19 | "required": [ 20 | "FleetName", 21 | "StackName" 22 | ], 23 | "primaryIdentifier": [ 24 | "/properties/Id" 25 | ], 26 | "readOnlyProperties": [ 27 | "/properties/Id" 28 | ], 29 | "attributes": { 30 | "Id": { 31 | "type": "string", 32 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 33 | } 34 | } 35 | } -------------------------------------------------------------------------------- /server/schema/resources/aws-appstream-stackuserassociation.json: -------------------------------------------------------------------------------- 1 | { 2 | "typeName": "AWS::AppStream::StackUserAssociation", 3 | "description": "Resource Type definition for AWS::AppStream::StackUserAssociation", 4 | "additionalProperties": false, 5 | "properties": { 6 | "Id": { 7 | "type": "string", 8 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 9 | }, 10 | "SendEmailNotification": { 11 | "type": "boolean", 12 | "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: Replacement\n" 13 | }, 14 | "UserName": { 15 | "type": "string", 16 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" 17 | }, 18 | "StackName": { 19 | "type": "string", 20 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" 21 | }, 22 | "AuthenticationType": { 23 | "type": "string", 24 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" 25 | } 26 | }, 27 | "required": [ 28 | "StackName", 29 | "UserName", 30 | "AuthenticationType" 31 | ], 32 | "createOnlyProperties": [ 33 | "/properties/StackName", 34 | "/properties/AuthenticationType", 35 | "/properties/SendEmailNotification", 36 | "/properties/UserName" 37 | ], 38 | "primaryIdentifier": [ 39 | "/properties/Id" 40 | ], 41 | "readOnlyProperties": [ 42 | "/properties/Id" 43 | ], 44 | "attributes": { 45 | "Id": { 46 | "type": "string", 47 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 48 | } 49 | } 50 | } -------------------------------------------------------------------------------- /server/schema/resources/aws-appstream-user.json: -------------------------------------------------------------------------------- 1 | { 2 | "typeName": "AWS::AppStream::User", 3 | "description": "Resource Type definition for AWS::AppStream::User", 4 | "additionalProperties": false, 5 | "properties": { 6 | "Id": { 7 | "type": "string", 8 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 9 | }, 10 | "UserName": { 11 | "type": "string", 12 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" 13 | }, 14 | "FirstName": { 15 | "type": "string", 16 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" 17 | }, 18 | "MessageAction": { 19 | "type": "string", 20 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" 21 | }, 22 | "LastName": { 23 | "type": "string", 24 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" 25 | }, 26 | "AuthenticationType": { 27 | "type": "string", 28 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" 29 | } 30 | }, 31 | "required": [ 32 | "UserName", 33 | "AuthenticationType" 34 | ], 35 | "createOnlyProperties": [ 36 | "/properties/FirstName", 37 | "/properties/MessageAction", 38 | "/properties/LastName", 39 | "/properties/AuthenticationType", 40 | "/properties/UserName" 41 | ], 42 | "primaryIdentifier": [ 43 | "/properties/Id" 44 | ], 45 | "readOnlyProperties": [ 46 | "/properties/Id" 47 | ], 48 | "attributes": { 49 | "Id": { 50 | "type": "string", 51 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 52 | } 53 | } 54 | } -------------------------------------------------------------------------------- /server/schema/resources/aws-appsync-apicache.json: -------------------------------------------------------------------------------- 1 | { 2 | "typeName": "AWS::AppSync::ApiCache", 3 | "description": "Resource Type definition for AWS::AppSync::ApiCache", 4 | "additionalProperties": false, 5 | "properties": { 6 | "Type": { 7 | "type": "string", 8 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" 9 | }, 10 | "TransitEncryptionEnabled": { 11 | "type": "boolean", 12 | "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" 13 | }, 14 | "HealthMetricsConfig": { 15 | "type": "string", 16 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" 17 | }, 18 | "AtRestEncryptionEnabled": { 19 | "type": "boolean", 20 | "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" 21 | }, 22 | "Id": { 23 | "type": "string", 24 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 25 | }, 26 | "ApiId": { 27 | "type": "string", 28 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" 29 | }, 30 | "ApiCachingBehavior": { 31 | "type": "string", 32 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" 33 | }, 34 | "Ttl": { 35 | "type": "number", 36 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Number \nUpdate requires: No interruption\n" 37 | } 38 | }, 39 | "required": [ 40 | "Type", 41 | "ApiId", 42 | "ApiCachingBehavior", 43 | "Ttl" 44 | ], 45 | "createOnlyProperties": [ 46 | "/properties/ApiId" 47 | ], 48 | "primaryIdentifier": [ 49 | "/properties/Id" 50 | ], 51 | "readOnlyProperties": [ 52 | "/properties/Id" 53 | ], 54 | "attributes": { 55 | "Id": { 56 | "type": "string", 57 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 58 | } 59 | } 60 | } -------------------------------------------------------------------------------- /server/schema/resources/aws-appsync-graphqlschema.json: -------------------------------------------------------------------------------- 1 | { 2 | "typeName": "AWS::AppSync::GraphQLSchema", 3 | "description": "Resource Type definition for AWS::AppSync::GraphQLSchema", 4 | "additionalProperties": false, 5 | "properties": { 6 | "Id": { 7 | "type": "string", 8 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 9 | }, 10 | "Definition": { 11 | "type": "string", 12 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" 13 | }, 14 | "DefinitionS3Location": { 15 | "type": "string", 16 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" 17 | }, 18 | "ApiId": { 19 | "type": "string", 20 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" 21 | } 22 | }, 23 | "required": [ 24 | "ApiId" 25 | ], 26 | "createOnlyProperties": [ 27 | "/properties/ApiId" 28 | ], 29 | "primaryIdentifier": [ 30 | "/properties/Id" 31 | ], 32 | "readOnlyProperties": [ 33 | "/properties/Id" 34 | ], 35 | "attributes": { 36 | "Id": { 37 | "type": "string", 38 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 39 | } 40 | } 41 | } -------------------------------------------------------------------------------- /server/schema/resources/aws-certificatemanager-account.json: -------------------------------------------------------------------------------- 1 | { 2 | "typeName": "AWS::CertificateManager::Account", 3 | "description": "Resource schema for AWS::CertificateManager::Account.", 4 | "definitions": { 5 | "ExpiryEventsConfiguration": { 6 | "type": "object", 7 | "additionalProperties": false, 8 | "properties": { 9 | "DaysBeforeExpiry": { 10 | "type": "integer", 11 | "minimum": 1, 12 | "maximum": 45, 13 | "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" 14 | } 15 | }, 16 | "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" 17 | }, 18 | "AccountId": { 19 | "type": "string", 20 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" 21 | } 22 | }, 23 | "properties": { 24 | "ExpiryEventsConfiguration": { 25 | "$ref": "#/definitions/ExpiryEventsConfiguration" 26 | }, 27 | "AccountId": { 28 | "$ref": "#/definitions/AccountId" 29 | } 30 | }, 31 | "required": [ 32 | "ExpiryEventsConfiguration" 33 | ], 34 | "readOnlyProperties": [ 35 | "/properties/AccountId" 36 | ], 37 | "primaryIdentifier": [ 38 | "/properties/AccountId" 39 | ], 40 | "handlers": { 41 | "create": { 42 | "permissions": [ 43 | "acm:GetAccountConfiguration", 44 | "acm:PutAccountConfiguration" 45 | ] 46 | }, 47 | "read": { 48 | "permissions": [ 49 | "acm:GetAccountConfiguration" 50 | ] 51 | }, 52 | "update": { 53 | "permissions": [ 54 | "acm:GetAccountConfiguration", 55 | "acm:PutAccountConfiguration" 56 | ] 57 | }, 58 | "delete": { 59 | "permissions": [ 60 | "acm:GetAccountConfiguration", 61 | "acm:PutAccountConfiguration" 62 | ] 63 | } 64 | }, 65 | "additionalProperties": false, 66 | "attributes": { 67 | "AccountId": { 68 | "$ref": "#/definitions/AccountId" 69 | } 70 | } 71 | } -------------------------------------------------------------------------------- /server/schema/resources/aws-cloudformation-customresource.json: -------------------------------------------------------------------------------- 1 | { 2 | "typeName": "AWS::CloudFormation::CustomResource", 3 | "description": "Resource Type definition for AWS::CloudFormation::CustomResource", 4 | "additionalProperties": false, 5 | "properties": { 6 | "ServiceToken": { 7 | "type": "string", 8 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" 9 | }, 10 | "ServiceTimeout": { 11 | "type": "integer", 12 | "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" 13 | }, 14 | "Id": { 15 | "type": "string", 16 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 17 | } 18 | }, 19 | "required": [ 20 | "ServiceToken" 21 | ], 22 | "createOnlyProperties": [ 23 | "/properties/ServiceToken" 24 | ], 25 | "primaryIdentifier": [ 26 | "/properties/Id" 27 | ], 28 | "readOnlyProperties": [ 29 | "/properties/Id" 30 | ], 31 | "attributes": { 32 | "Id": { 33 | "type": "string", 34 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 35 | } 36 | } 37 | } -------------------------------------------------------------------------------- /server/schema/resources/aws-cloudformation-macro.json: -------------------------------------------------------------------------------- 1 | { 2 | "typeName": "AWS::CloudFormation::Macro", 3 | "description": "Resource Type definition for AWS::CloudFormation::Macro", 4 | "additionalProperties": false, 5 | "properties": { 6 | "Id": { 7 | "type": "string", 8 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 9 | }, 10 | "Description": { 11 | "type": "string", 12 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" 13 | }, 14 | "FunctionName": { 15 | "type": "string", 16 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" 17 | }, 18 | "LogGroupName": { 19 | "type": "string", 20 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" 21 | }, 22 | "LogRoleARN": { 23 | "type": "string", 24 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" 25 | }, 26 | "Name": { 27 | "type": "string", 28 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" 29 | } 30 | }, 31 | "required": [ 32 | "FunctionName", 33 | "Name" 34 | ], 35 | "createOnlyProperties": [ 36 | "/properties/Name" 37 | ], 38 | "primaryIdentifier": [ 39 | "/properties/Id" 40 | ], 41 | "readOnlyProperties": [ 42 | "/properties/Id" 43 | ], 44 | "attributes": { 45 | "Id": { 46 | "type": "string", 47 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 48 | } 49 | } 50 | } -------------------------------------------------------------------------------- /server/schema/resources/aws-cloudformation-waitcondition.json: -------------------------------------------------------------------------------- 1 | { 2 | "typeName": "AWS::CloudFormation::WaitCondition", 3 | "description": "Resource Type definition for AWS::CloudFormation::WaitCondition", 4 | "additionalProperties": false, 5 | "properties": { 6 | "Id": { 7 | "type": "string", 8 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 9 | }, 10 | "Data": { 11 | "type": "object", 12 | "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\nRead only property: Yes" 13 | }, 14 | "Count": { 15 | "type": "integer", 16 | "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" 17 | }, 18 | "Handle": { 19 | "type": "string", 20 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" 21 | }, 22 | "Timeout": { 23 | "type": "string", 24 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" 25 | } 26 | }, 27 | "readOnlyProperties": [ 28 | "/properties/Data", 29 | "/properties/Id" 30 | ], 31 | "primaryIdentifier": [ 32 | "/properties/Id" 33 | ], 34 | "attributes": { 35 | "Id": { 36 | "type": "string", 37 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 38 | }, 39 | "Data": { 40 | "type": "object", 41 | "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\nRead only property: Yes" 42 | } 43 | } 44 | } -------------------------------------------------------------------------------- /server/schema/resources/aws-cloudformation-waitconditionhandle.json: -------------------------------------------------------------------------------- 1 | { 2 | "typeName": "AWS::CloudFormation::WaitConditionHandle", 3 | "description": "Resource Type definition for AWS::CloudFormation::WaitConditionHandle", 4 | "additionalProperties": false, 5 | "properties": { 6 | "Id": { 7 | "type": "string", 8 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 9 | } 10 | }, 11 | "primaryIdentifier": [ 12 | "/properties/Id" 13 | ], 14 | "readOnlyProperties": [ 15 | "/properties/Id" 16 | ], 17 | "attributes": { 18 | "Id": { 19 | "type": "string", 20 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 21 | } 22 | } 23 | } -------------------------------------------------------------------------------- /server/schema/resources/aws-cloudwatch-insightrule.json: -------------------------------------------------------------------------------- 1 | { 2 | "typeName": "AWS::CloudWatch::InsightRule", 3 | "description": "Resource Type definition for AWS::CloudWatch::InsightRule", 4 | "additionalProperties": false, 5 | "properties": { 6 | "RuleState": { 7 | "type": "string", 8 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" 9 | }, 10 | "Id": { 11 | "type": "string", 12 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 13 | }, 14 | "Arn": { 15 | "type": "string", 16 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 17 | }, 18 | "RuleBody": { 19 | "type": "string", 20 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" 21 | }, 22 | "RuleName": { 23 | "type": "string", 24 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" 25 | }, 26 | "Tags": { 27 | "$ref": "#/definitions/Tags" 28 | } 29 | }, 30 | "definitions": { 31 | "Tags": { 32 | "type": "object", 33 | "additionalProperties": false, 34 | "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" 35 | } 36 | }, 37 | "required": [ 38 | "RuleState", 39 | "RuleBody", 40 | "RuleName" 41 | ], 42 | "createOnlyProperties": [ 43 | "/properties/RuleName" 44 | ], 45 | "primaryIdentifier": [ 46 | "/properties/Id" 47 | ], 48 | "readOnlyProperties": [ 49 | "/properties/Id", 50 | "/properties/Arn" 51 | ], 52 | "attributes": { 53 | "Id": { 54 | "type": "string", 55 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 56 | }, 57 | "Arn": { 58 | "type": "string", 59 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 60 | } 61 | } 62 | } -------------------------------------------------------------------------------- /server/schema/resources/aws-codebuild-sourcecredential.json: -------------------------------------------------------------------------------- 1 | { 2 | "typeName": "AWS::CodeBuild::SourceCredential", 3 | "description": "Resource Type definition for AWS::CodeBuild::SourceCredential", 4 | "additionalProperties": false, 5 | "properties": { 6 | "ServerType": { 7 | "type": "string", 8 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" 9 | }, 10 | "Token": { 11 | "type": "string", 12 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" 13 | }, 14 | "AuthType": { 15 | "type": "string", 16 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" 17 | }, 18 | "Id": { 19 | "type": "string", 20 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 21 | }, 22 | "Username": { 23 | "type": "string", 24 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" 25 | } 26 | }, 27 | "required": [ 28 | "ServerType", 29 | "Token", 30 | "AuthType" 31 | ], 32 | "createOnlyProperties": [ 33 | "/properties/ServerType" 34 | ], 35 | "primaryIdentifier": [ 36 | "/properties/Id" 37 | ], 38 | "readOnlyProperties": [ 39 | "/properties/Id" 40 | ], 41 | "attributes": { 42 | "Id": { 43 | "type": "string", 44 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 45 | } 46 | } 47 | } -------------------------------------------------------------------------------- /server/schema/resources/aws-cognito-userpooluicustomizationattachment.json: -------------------------------------------------------------------------------- 1 | { 2 | "typeName": "AWS::Cognito::UserPoolUICustomizationAttachment", 3 | "description": "Resource Type definition for AWS::Cognito::UserPoolUICustomizationAttachment", 4 | "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", 5 | "tagging": { 6 | "taggable": false, 7 | "tagOnCreate": false, 8 | "tagUpdatable": false, 9 | "cloudFormationSystemTags": false 10 | }, 11 | "properties": { 12 | "UserPoolId": { 13 | "type": "string", 14 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" 15 | }, 16 | "ClientId": { 17 | "type": "string", 18 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" 19 | }, 20 | "CSS": { 21 | "type": "string", 22 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" 23 | } 24 | }, 25 | "additionalProperties": false, 26 | "required": [ 27 | "UserPoolId", 28 | "ClientId" 29 | ], 30 | "primaryIdentifier": [ 31 | "/properties/UserPoolId", 32 | "/properties/ClientId" 33 | ], 34 | "createOnlyProperties": [ 35 | "/properties/UserPoolId", 36 | "/properties/ClientId" 37 | ], 38 | "handlers": { 39 | "create": { 40 | "permissions": [ 41 | "cognito-idp:SetUICustomization", 42 | "cognito-idp:GetUICustomization" 43 | ], 44 | "timeoutInMinutes": 2 45 | }, 46 | "read": { 47 | "permissions": [ 48 | "cognito-idp:GetUICustomization" 49 | ] 50 | }, 51 | "update": { 52 | "permissions": [ 53 | "cognito-idp:SetUICustomization" 54 | ], 55 | "timeoutInMinutes": 2 56 | }, 57 | "delete": { 58 | "permissions": [ 59 | "cognito-idp:SetUICustomization", 60 | "cognito-idp:GetUICustomization" 61 | ], 62 | "timeoutInMinutes": 2 63 | } 64 | }, 65 | "attributes": {} 66 | } -------------------------------------------------------------------------------- /server/schema/resources/aws-cognito-userpoolusertogroupattachment.json: -------------------------------------------------------------------------------- 1 | { 2 | "typeName": "AWS::Cognito::UserPoolUserToGroupAttachment", 3 | "description": "Resource Type definition for AWS::Cognito::UserPoolUserToGroupAttachment", 4 | "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", 5 | "properties": { 6 | "UserPoolId": { 7 | "type": "string", 8 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" 9 | }, 10 | "Username": { 11 | "type": "string", 12 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" 13 | }, 14 | "GroupName": { 15 | "type": "string", 16 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" 17 | } 18 | }, 19 | "tagging": { 20 | "taggable": false, 21 | "tagOnCreate": false, 22 | "tagUpdatable": false, 23 | "cloudFormationSystemTags": false 24 | }, 25 | "additionalProperties": false, 26 | "required": [ 27 | "UserPoolId", 28 | "Username", 29 | "GroupName" 30 | ], 31 | "createOnlyProperties": [ 32 | "/properties/UserPoolId", 33 | "/properties/GroupName", 34 | "/properties/Username" 35 | ], 36 | "primaryIdentifier": [ 37 | "/properties/UserPoolId", 38 | "/properties/GroupName", 39 | "/properties/Username" 40 | ], 41 | "handlers": { 42 | "create": { 43 | "permissions": [ 44 | "cognito-idp:AdminAddUserToGroup", 45 | "cognito-idp:AdminListGroupsForUser" 46 | ], 47 | "timeoutInMinutes": 2 48 | }, 49 | "delete": { 50 | "permissions": [ 51 | "cognito-idp:AdminRemoveUserFromGroup", 52 | "cognito-idp:AdminListGroupsForUser" 53 | ], 54 | "timeoutInMinutes": 2 55 | }, 56 | "read": { 57 | "permissions": [ 58 | "cognito-idp:AdminListGroupsForUser" 59 | ] 60 | } 61 | }, 62 | "attributes": {} 63 | } -------------------------------------------------------------------------------- /server/schema/resources/aws-dax-parametergroup.json: -------------------------------------------------------------------------------- 1 | { 2 | "typeName": "AWS::DAX::ParameterGroup", 3 | "description": "Resource Type definition for AWS::DAX::ParameterGroup", 4 | "additionalProperties": false, 5 | "properties": { 6 | "ParameterNameValues": { 7 | "type": "object", 8 | "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" 9 | }, 10 | "Description": { 11 | "type": "string", 12 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" 13 | }, 14 | "Id": { 15 | "type": "string", 16 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 17 | }, 18 | "ParameterGroupName": { 19 | "type": "string", 20 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" 21 | } 22 | }, 23 | "createOnlyProperties": [ 24 | "/properties/ParameterGroupName" 25 | ], 26 | "primaryIdentifier": [ 27 | "/properties/Id" 28 | ], 29 | "readOnlyProperties": [ 30 | "/properties/Id" 31 | ], 32 | "attributes": { 33 | "Id": { 34 | "type": "string", 35 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 36 | } 37 | } 38 | } -------------------------------------------------------------------------------- /server/schema/resources/aws-dax-subnetgroup.json: -------------------------------------------------------------------------------- 1 | { 2 | "typeName": "AWS::DAX::SubnetGroup", 3 | "description": "Resource Type definition for AWS::DAX::SubnetGroup", 4 | "additionalProperties": false, 5 | "properties": { 6 | "Description": { 7 | "type": "string", 8 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" 9 | }, 10 | "Id": { 11 | "type": "string", 12 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 13 | }, 14 | "SubnetIds": { 15 | "type": "array", 16 | "uniqueItems": false, 17 | "items": { 18 | "type": "string", 19 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" 20 | }, 21 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" 22 | }, 23 | "SubnetGroupName": { 24 | "type": "string", 25 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" 26 | } 27 | }, 28 | "required": [ 29 | "SubnetIds" 30 | ], 31 | "createOnlyProperties": [ 32 | "/properties/SubnetGroupName" 33 | ], 34 | "primaryIdentifier": [ 35 | "/properties/Id" 36 | ], 37 | "readOnlyProperties": [ 38 | "/properties/Id" 39 | ], 40 | "attributes": { 41 | "Id": { 42 | "type": "string", 43 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 44 | } 45 | } 46 | } -------------------------------------------------------------------------------- /server/schema/resources/aws-devopsguru-loganomalydetectionintegration.json: -------------------------------------------------------------------------------- 1 | { 2 | "typeName": "AWS::DevOpsGuru::LogAnomalyDetectionIntegration", 3 | "description": "This resource schema represents the LogAnomalyDetectionIntegration resource in the Amazon DevOps Guru.", 4 | "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", 5 | "definitions": { 6 | "AccountId": { 7 | "description": "User account id, used as the primary identifier for the resource", 8 | "type": "string", 9 | "markdownDescription": "User account id, used as the primary identifier for the resource\n\n---\n\nRequired: No \nType: String \nPattern: ^\\d{12}$ \nUpdate requires: No interruption\n" 10 | } 11 | }, 12 | "tagging": { 13 | "taggable": false 14 | }, 15 | "properties": { 16 | "AccountId": { 17 | "$ref": "#/definitions/AccountId" 18 | } 19 | }, 20 | "additionalProperties": false, 21 | "readOnlyProperties": [ 22 | "/properties/AccountId" 23 | ], 24 | "primaryIdentifier": [ 25 | "/properties/AccountId" 26 | ], 27 | "handlers": { 28 | "create": { 29 | "permissions": [ 30 | "devops-guru:DescribeServiceIntegration", 31 | "devops-guru:UpdateServiceIntegration", 32 | "logs:TagLogGroup", 33 | "logs:UntagLogGroup" 34 | ] 35 | }, 36 | "read": { 37 | "permissions": [ 38 | "devops-guru:DescribeServiceIntegration" 39 | ] 40 | }, 41 | "update": { 42 | "permissions": [ 43 | "devops-guru:UpdateServiceIntegration", 44 | "logs:TagLogGroup", 45 | "logs:UntagLogGroup" 46 | ] 47 | }, 48 | "delete": { 49 | "permissions": [ 50 | "devops-guru:DescribeServiceIntegration", 51 | "devops-guru:UpdateServiceIntegration", 52 | "logs:TagLogGroup", 53 | "logs:UntagLogGroup" 54 | ] 55 | }, 56 | "list": { 57 | "permissions": [ 58 | "devops-guru:DescribeServiceIntegration" 59 | ] 60 | } 61 | }, 62 | "attributes": { 63 | "AccountId": { 64 | "$ref": "#/definitions/AccountId" 65 | } 66 | } 67 | } -------------------------------------------------------------------------------- /server/schema/resources/aws-dms-certificate.json: -------------------------------------------------------------------------------- 1 | { 2 | "typeName": "AWS::DMS::Certificate", 3 | "description": "Resource Type definition for AWS::DMS::Certificate", 4 | "additionalProperties": false, 5 | "properties": { 6 | "Id": { 7 | "type": "string", 8 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 9 | }, 10 | "CertificateIdentifier": { 11 | "type": "string", 12 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" 13 | }, 14 | "CertificatePem": { 15 | "type": "string", 16 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" 17 | }, 18 | "CertificateWallet": { 19 | "type": "string", 20 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" 21 | } 22 | }, 23 | "createOnlyProperties": [ 24 | "/properties/CertificateIdentifier", 25 | "/properties/CertificatePem", 26 | "/properties/CertificateWallet" 27 | ], 28 | "primaryIdentifier": [ 29 | "/properties/Id" 30 | ], 31 | "readOnlyProperties": [ 32 | "/properties/Id" 33 | ], 34 | "attributes": { 35 | "Id": { 36 | "type": "string", 37 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 38 | } 39 | } 40 | } -------------------------------------------------------------------------------- /server/schema/resources/aws-ec2-clientvpnauthorizationrule.json: -------------------------------------------------------------------------------- 1 | { 2 | "typeName": "AWS::EC2::ClientVpnAuthorizationRule", 3 | "description": "Resource Type definition for AWS::EC2::ClientVpnAuthorizationRule", 4 | "additionalProperties": false, 5 | "properties": { 6 | "Id": { 7 | "type": "string", 8 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 9 | }, 10 | "ClientVpnEndpointId": { 11 | "type": "string", 12 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" 13 | }, 14 | "Description": { 15 | "type": "string", 16 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" 17 | }, 18 | "AccessGroupId": { 19 | "type": "string", 20 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" 21 | }, 22 | "TargetNetworkCidr": { 23 | "type": "string", 24 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" 25 | }, 26 | "AuthorizeAllGroups": { 27 | "type": "boolean", 28 | "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: Replacement\n" 29 | } 30 | }, 31 | "required": [ 32 | "ClientVpnEndpointId", 33 | "TargetNetworkCidr" 34 | ], 35 | "createOnlyProperties": [ 36 | "/properties/ClientVpnEndpointId", 37 | "/properties/AuthorizeAllGroups", 38 | "/properties/Description", 39 | "/properties/AccessGroupId", 40 | "/properties/TargetNetworkCidr" 41 | ], 42 | "primaryIdentifier": [ 43 | "/properties/Id" 44 | ], 45 | "readOnlyProperties": [ 46 | "/properties/Id" 47 | ], 48 | "attributes": { 49 | "Id": { 50 | "type": "string", 51 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 52 | } 53 | } 54 | } -------------------------------------------------------------------------------- /server/schema/resources/aws-ec2-clientvpnroute.json: -------------------------------------------------------------------------------- 1 | { 2 | "typeName": "AWS::EC2::ClientVpnRoute", 3 | "description": "Resource Type definition for AWS::EC2::ClientVpnRoute", 4 | "additionalProperties": false, 5 | "properties": { 6 | "Id": { 7 | "type": "string", 8 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 9 | }, 10 | "ClientVpnEndpointId": { 11 | "type": "string", 12 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" 13 | }, 14 | "TargetVpcSubnetId": { 15 | "type": "string", 16 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" 17 | }, 18 | "Description": { 19 | "type": "string", 20 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" 21 | }, 22 | "DestinationCidrBlock": { 23 | "type": "string", 24 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" 25 | } 26 | }, 27 | "required": [ 28 | "ClientVpnEndpointId", 29 | "TargetVpcSubnetId", 30 | "DestinationCidrBlock" 31 | ], 32 | "createOnlyProperties": [ 33 | "/properties/ClientVpnEndpointId", 34 | "/properties/DestinationCidrBlock", 35 | "/properties/Description", 36 | "/properties/TargetVpcSubnetId" 37 | ], 38 | "primaryIdentifier": [ 39 | "/properties/Id" 40 | ], 41 | "readOnlyProperties": [ 42 | "/properties/Id" 43 | ], 44 | "attributes": { 45 | "Id": { 46 | "type": "string", 47 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 48 | } 49 | } 50 | } -------------------------------------------------------------------------------- /server/schema/resources/aws-ec2-clientvpntargetnetworkassociation.json: -------------------------------------------------------------------------------- 1 | { 2 | "typeName": "AWS::EC2::ClientVpnTargetNetworkAssociation", 3 | "description": "Resource Type definition for AWS::EC2::ClientVpnTargetNetworkAssociation", 4 | "additionalProperties": false, 5 | "properties": { 6 | "Id": { 7 | "type": "string", 8 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 9 | }, 10 | "ClientVpnEndpointId": { 11 | "type": "string", 12 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" 13 | }, 14 | "SubnetId": { 15 | "type": "string", 16 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" 17 | } 18 | }, 19 | "required": [ 20 | "ClientVpnEndpointId", 21 | "SubnetId" 22 | ], 23 | "createOnlyProperties": [ 24 | "/properties/ClientVpnEndpointId", 25 | "/properties/SubnetId" 26 | ], 27 | "readOnlyProperties": [ 28 | "/properties/Id" 29 | ], 30 | "primaryIdentifier": [ 31 | "/properties/Id" 32 | ], 33 | "attributes": { 34 | "Id": { 35 | "type": "string", 36 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 37 | } 38 | } 39 | } -------------------------------------------------------------------------------- /server/schema/resources/aws-ec2-networkinterfacepermission.json: -------------------------------------------------------------------------------- 1 | { 2 | "typeName": "AWS::EC2::NetworkInterfacePermission", 3 | "description": "Resource Type definition for AWS::EC2::NetworkInterfacePermission", 4 | "additionalProperties": false, 5 | "properties": { 6 | "Id": { 7 | "type": "string", 8 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 9 | }, 10 | "AwsAccountId": { 11 | "type": "string", 12 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" 13 | }, 14 | "NetworkInterfaceId": { 15 | "type": "string", 16 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" 17 | }, 18 | "Permission": { 19 | "type": "string", 20 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" 21 | } 22 | }, 23 | "required": [ 24 | "AwsAccountId", 25 | "NetworkInterfaceId", 26 | "Permission" 27 | ], 28 | "createOnlyProperties": [ 29 | "/properties/AwsAccountId", 30 | "/properties/Permission", 31 | "/properties/NetworkInterfaceId" 32 | ], 33 | "readOnlyProperties": [ 34 | "/properties/Id" 35 | ], 36 | "primaryIdentifier": [ 37 | "/properties/Id" 38 | ], 39 | "attributes": { 40 | "Id": { 41 | "type": "string", 42 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 43 | } 44 | } 45 | } -------------------------------------------------------------------------------- /server/schema/resources/aws-ec2-routeserverassociation.json: -------------------------------------------------------------------------------- 1 | { 2 | "typeName": "AWS::EC2::RouteServerAssociation", 3 | "description": "VPC Route Server Association", 4 | "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", 5 | "definitions": {}, 6 | "properties": { 7 | "RouteServerId": { 8 | "description": "Route Server ID", 9 | "type": "string", 10 | "markdownDescription": "Route Server ID\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" 11 | }, 12 | "VpcId": { 13 | "description": "VPC ID", 14 | "type": "string", 15 | "markdownDescription": "VPC ID\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" 16 | } 17 | }, 18 | "additionalProperties": false, 19 | "required": [ 20 | "RouteServerId", 21 | "VpcId" 22 | ], 23 | "primaryIdentifier": [ 24 | "/properties/RouteServerId", 25 | "/properties/VpcId" 26 | ], 27 | "createOnlyProperties": [ 28 | "/properties/RouteServerId", 29 | "/properties/VpcId" 30 | ], 31 | "tagging": { 32 | "taggable": false, 33 | "tagOnCreate": false, 34 | "tagUpdatable": false, 35 | "cloudFormationSystemTags": false 36 | }, 37 | "handlers": { 38 | "create": { 39 | "permissions": [ 40 | "ec2:AssociateRouteServer", 41 | "ec2:GetRouteServerAssociations" 42 | ] 43 | }, 44 | "read": { 45 | "permissions": [ 46 | "ec2:GetRouteServerAssociations" 47 | ] 48 | }, 49 | "delete": { 50 | "permissions": [ 51 | "ec2:GetRouteServerAssociations", 52 | "ec2:DisassociateRouteServer" 53 | ] 54 | }, 55 | "list": { 56 | "permissions": [ 57 | "ec2:DescribeRouteServers", 58 | "ec2:GetRouteServerAssociations" 59 | ] 60 | } 61 | }, 62 | "attributes": {} 63 | } -------------------------------------------------------------------------------- /server/schema/resources/aws-ec2-routeserverpropagation.json: -------------------------------------------------------------------------------- 1 | { 2 | "typeName": "AWS::EC2::RouteServerPropagation", 3 | "description": "VPC Route Server Propagation", 4 | "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", 5 | "definitions": {}, 6 | "properties": { 7 | "RouteServerId": { 8 | "description": "Route Server ID", 9 | "type": "string", 10 | "markdownDescription": "Route Server ID\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" 11 | }, 12 | "RouteTableId": { 13 | "description": "Route Table ID", 14 | "type": "string", 15 | "markdownDescription": "Route Table ID\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" 16 | } 17 | }, 18 | "additionalProperties": false, 19 | "required": [ 20 | "RouteServerId", 21 | "RouteTableId" 22 | ], 23 | "primaryIdentifier": [ 24 | "/properties/RouteServerId", 25 | "/properties/RouteTableId" 26 | ], 27 | "createOnlyProperties": [ 28 | "/properties/RouteServerId", 29 | "/properties/RouteTableId" 30 | ], 31 | "tagging": { 32 | "taggable": false, 33 | "tagOnCreate": false, 34 | "tagUpdatable": false, 35 | "cloudFormationSystemTags": false 36 | }, 37 | "handlers": { 38 | "create": { 39 | "permissions": [ 40 | "ec2:EnableRouteServerPropagation", 41 | "ec2:GetRouteServerPropagations" 42 | ] 43 | }, 44 | "read": { 45 | "permissions": [ 46 | "ec2:GetRouteServerPropagations" 47 | ] 48 | }, 49 | "delete": { 50 | "permissions": [ 51 | "ec2:GetRouteServerPropagations", 52 | "ec2:DisableRouteServerPropagation" 53 | ] 54 | }, 55 | "list": { 56 | "permissions": [ 57 | "ec2:DescribeRouteServers", 58 | "ec2:GetRouteServerPropagations" 59 | ] 60 | } 61 | }, 62 | "attributes": {} 63 | } -------------------------------------------------------------------------------- /server/schema/resources/aws-ec2-vpcdhcpoptionsassociation.json: -------------------------------------------------------------------------------- 1 | { 2 | "typeName": "AWS::EC2::VPCDHCPOptionsAssociation", 3 | "description": "Associates a set of DHCP options with a VPC, or associates no DHCP options with the VPC.", 4 | "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ec2.git", 5 | "properties": { 6 | "DhcpOptionsId": { 7 | "type": "string", 8 | "description": "The ID of the DHCP options set, or default to associate no DHCP options with the VPC.", 9 | "markdownDescription": "The ID of the DHCP options set, or default to associate no DHCP options with the VPC.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" 10 | }, 11 | "VpcId": { 12 | "type": "string", 13 | "description": "The ID of the VPC.", 14 | "markdownDescription": "The ID of the VPC.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" 15 | } 16 | }, 17 | "additionalProperties": false, 18 | "required": [ 19 | "VpcId", 20 | "DhcpOptionsId" 21 | ], 22 | "tagging": { 23 | "taggable": false, 24 | "tagOnCreate": false, 25 | "tagUpdatable": false, 26 | "cloudFormationSystemTags": false 27 | }, 28 | "createOnlyProperties": [ 29 | "/properties/DhcpOptionsId", 30 | "/properties/VpcId" 31 | ], 32 | "primaryIdentifier": [ 33 | "/properties/DhcpOptionsId", 34 | "/properties/VpcId" 35 | ], 36 | "replacementStrategy": "delete_then_create", 37 | "handlers": { 38 | "create": { 39 | "permissions": [ 40 | "ec2:AssociateDhcpOptions" 41 | ] 42 | }, 43 | "update": { 44 | "permissions": [ 45 | "ec2:AssociateDhcpOptions" 46 | ] 47 | }, 48 | "delete": { 49 | "permissions": [ 50 | "ec2:AssociateDhcpOptions" 51 | ] 52 | }, 53 | "read": { 54 | "permissions": [ 55 | "ec2:DescribeVpcs" 56 | ] 57 | }, 58 | "list": { 59 | "permissions": [ 60 | "ec2:DescribeVpcs" 61 | ] 62 | } 63 | }, 64 | "attributes": {} 65 | } -------------------------------------------------------------------------------- /server/schema/resources/aws-ec2-vpnconnectionroute.json: -------------------------------------------------------------------------------- 1 | { 2 | "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ec2.git", 3 | "tagging": { 4 | "taggable": false 5 | }, 6 | "handlers": { 7 | "read": { 8 | "permissions": [ 9 | "ec2:DescribeVpnConnections" 10 | ] 11 | }, 12 | "create": { 13 | "permissions": [ 14 | "ec2:CreateVpnConnectionRoute", 15 | "ec2:DescribeVpnConnections" 16 | ] 17 | }, 18 | "list": { 19 | "permissions": [ 20 | "ec2:DescribeVpnConnections" 21 | ] 22 | }, 23 | "delete": { 24 | "permissions": [ 25 | "ec2:DeleteVpnConnectionRoute", 26 | "ec2:DescribeVpnConnections" 27 | ] 28 | } 29 | }, 30 | "typeName": "AWS::EC2::VPNConnectionRoute", 31 | "description": "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*.", 32 | "createOnlyProperties": [ 33 | "/properties/DestinationCidrBlock", 34 | "/properties/VpnConnectionId" 35 | ], 36 | "additionalProperties": false, 37 | "primaryIdentifier": [ 38 | "/properties/DestinationCidrBlock", 39 | "/properties/VpnConnectionId" 40 | ], 41 | "properties": { 42 | "DestinationCidrBlock": { 43 | "description": "The CIDR block associated with the local subnet of the customer network.", 44 | "type": "string", 45 | "markdownDescription": "The CIDR block associated with the local subnet of the customer network.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" 46 | }, 47 | "VpnConnectionId": { 48 | "description": "The ID of the VPN connection.", 49 | "type": "string", 50 | "markdownDescription": "The ID of the VPN connection.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" 51 | } 52 | }, 53 | "required": [ 54 | "DestinationCidrBlock", 55 | "VpnConnectionId" 56 | ], 57 | "attributes": {} 58 | } -------------------------------------------------------------------------------- /server/schema/resources/aws-elasticache-securitygroup.json: -------------------------------------------------------------------------------- 1 | { 2 | "typeName": "AWS::ElastiCache::SecurityGroup", 3 | "description": "Resource Type definition for AWS::ElastiCache::SecurityGroup", 4 | "additionalProperties": false, 5 | "properties": { 6 | "Tags": { 7 | "type": "array", 8 | "uniqueItems": false, 9 | "items": { 10 | "$ref": "#/definitions/Tag" 11 | }, 12 | "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" 13 | }, 14 | "Description": { 15 | "type": "string", 16 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" 17 | }, 18 | "Id": { 19 | "type": "string", 20 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 21 | } 22 | }, 23 | "definitions": { 24 | "Tag": { 25 | "type": "object", 26 | "additionalProperties": false, 27 | "properties": { 28 | "Value": { 29 | "type": "string", 30 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" 31 | }, 32 | "Key": { 33 | "type": "string", 34 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" 35 | } 36 | }, 37 | "required": [ 38 | "Value", 39 | "Key" 40 | ], 41 | "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" 42 | } 43 | }, 44 | "required": [ 45 | "Description" 46 | ], 47 | "primaryIdentifier": [ 48 | "/properties/Id" 49 | ], 50 | "readOnlyProperties": [ 51 | "/properties/Id" 52 | ], 53 | "attributes": { 54 | "Id": { 55 | "type": "string", 56 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 57 | } 58 | } 59 | } -------------------------------------------------------------------------------- /server/schema/resources/aws-elasticache-securitygroupingress.json: -------------------------------------------------------------------------------- 1 | { 2 | "typeName": "AWS::ElastiCache::SecurityGroupIngress", 3 | "description": "Resource Type definition for AWS::ElastiCache::SecurityGroupIngress", 4 | "additionalProperties": false, 5 | "properties": { 6 | "Id": { 7 | "type": "string", 8 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 9 | }, 10 | "CacheSecurityGroupName": { 11 | "type": "string", 12 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" 13 | }, 14 | "EC2SecurityGroupName": { 15 | "type": "string", 16 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" 17 | }, 18 | "EC2SecurityGroupOwnerId": { 19 | "type": "string", 20 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" 21 | } 22 | }, 23 | "required": [ 24 | "EC2SecurityGroupName", 25 | "CacheSecurityGroupName" 26 | ], 27 | "primaryIdentifier": [ 28 | "/properties/Id" 29 | ], 30 | "readOnlyProperties": [ 31 | "/properties/Id" 32 | ], 33 | "attributes": { 34 | "Id": { 35 | "type": "string", 36 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 37 | } 38 | } 39 | } -------------------------------------------------------------------------------- /server/schema/resources/aws-elasticloadbalancingv2-listenercertificate.json: -------------------------------------------------------------------------------- 1 | { 2 | "typeName": "AWS::ElasticLoadBalancingV2::ListenerCertificate", 3 | "description": "Resource Type definition for AWS::ElasticLoadBalancingV2::ListenerCertificate", 4 | "additionalProperties": false, 5 | "properties": { 6 | "ListenerArn": { 7 | "type": "string", 8 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" 9 | }, 10 | "Certificates": { 11 | "type": "array", 12 | "uniqueItems": true, 13 | "items": { 14 | "$ref": "#/definitions/Certificate" 15 | }, 16 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" 17 | }, 18 | "Id": { 19 | "type": "string", 20 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 21 | } 22 | }, 23 | "definitions": { 24 | "Certificate": { 25 | "type": "object", 26 | "additionalProperties": false, 27 | "properties": { 28 | "CertificateArn": { 29 | "type": "string", 30 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" 31 | } 32 | }, 33 | "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" 34 | } 35 | }, 36 | "required": [ 37 | "ListenerArn", 38 | "Certificates" 39 | ], 40 | "createOnlyProperties": [ 41 | "/properties/ListenerArn" 42 | ], 43 | "primaryIdentifier": [ 44 | "/properties/Id" 45 | ], 46 | "readOnlyProperties": [ 47 | "/properties/Id" 48 | ], 49 | "attributes": { 50 | "Id": { 51 | "type": "string", 52 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 53 | } 54 | } 55 | } -------------------------------------------------------------------------------- /server/schema/resources/aws-emr-securityconfiguration.json: -------------------------------------------------------------------------------- 1 | { 2 | "typeName": "AWS::EMR::SecurityConfiguration", 3 | "description": "Use a SecurityConfiguration resource to configure data encryption, Kerberos authentication, and Amazon S3 authorization for EMRFS.", 4 | "tagging": { 5 | "taggable": false 6 | }, 7 | "properties": { 8 | "Name": { 9 | "description": "The name of the security configuration.", 10 | "type": "string", 11 | "markdownDescription": "The name of the security configuration.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" 12 | }, 13 | "SecurityConfiguration": { 14 | "description": "The security configuration details in JSON format.", 15 | "type": [ 16 | "object", 17 | "string" 18 | ], 19 | "markdownDescription": "The security configuration details in JSON format.\n\n---\n\nRequired: Yes \nType: ['object', 'string'] \nUpdate requires: Replacement\n" 20 | } 21 | }, 22 | "additionalProperties": false, 23 | "required": [ 24 | "SecurityConfiguration" 25 | ], 26 | "createOnlyProperties": [ 27 | "/properties/Name", 28 | "/properties/SecurityConfiguration" 29 | ], 30 | "primaryIdentifier": [ 31 | "/properties/Name" 32 | ], 33 | "handlers": { 34 | "create": { 35 | "permissions": [ 36 | "elasticmapreduce:CreateSecurityConfiguration", 37 | "elasticmapreduce:DescribeSecurityConfiguration" 38 | ] 39 | }, 40 | "read": { 41 | "permissions": [ 42 | "elasticmapreduce:DescribeSecurityConfiguration" 43 | ] 44 | }, 45 | "delete": { 46 | "permissions": [ 47 | "elasticmapreduce:DeleteSecurityConfiguration" 48 | ] 49 | }, 50 | "list": { 51 | "permissions": [ 52 | "elasticmapreduce:ListSecurityConfigurations" 53 | ] 54 | } 55 | }, 56 | "attributes": {} 57 | } -------------------------------------------------------------------------------- /server/schema/resources/aws-eventschemas-registrypolicy.json: -------------------------------------------------------------------------------- 1 | { 2 | "typeName": "AWS::EventSchemas::RegistryPolicy", 3 | "description": "Resource Type definition for AWS::EventSchemas::RegistryPolicy", 4 | "additionalProperties": false, 5 | "properties": { 6 | "Id": { 7 | "type": "string", 8 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 9 | }, 10 | "Policy": { 11 | "type": "object", 12 | "markdownDescription": "\n\n---\n\nRequired: Yes \nUpdate requires: No interruption\n" 13 | }, 14 | "RegistryName": { 15 | "type": "string", 16 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" 17 | }, 18 | "RevisionId": { 19 | "type": "string", 20 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" 21 | } 22 | }, 23 | "required": [ 24 | "RegistryName", 25 | "Policy" 26 | ], 27 | "readOnlyProperties": [ 28 | "/properties/Id" 29 | ], 30 | "primaryIdentifier": [ 31 | "/properties/Id" 32 | ], 33 | "handlers": { 34 | "create": { 35 | "permissions": [ 36 | "schemas:PutResourcePolicy", 37 | "schemas:GetResourcePolicy", 38 | "schemas:DescribeRegistry" 39 | ] 40 | }, 41 | "delete": { 42 | "permissions": [ 43 | "schemas:DeleteResourcePolicy", 44 | "schemas:GetResourcePolicy" 45 | ] 46 | }, 47 | "update": { 48 | "permissions": [ 49 | "schemas:PutResourcePolicy", 50 | "schemas:GetResourcePolicy" 51 | ] 52 | }, 53 | "read": { 54 | "permissions": [ 55 | "schemas:GetResourcePolicy" 56 | ] 57 | } 58 | }, 59 | "tagging": { 60 | "taggable": false 61 | }, 62 | "attributes": { 63 | "Id": { 64 | "type": "string", 65 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 66 | } 67 | } 68 | } -------------------------------------------------------------------------------- /server/schema/resources/aws-fms-notificationchannel.json: -------------------------------------------------------------------------------- 1 | { 2 | "typeName": "AWS::FMS::NotificationChannel", 3 | "description": "Designates the IAM role and Amazon Simple Notification Service (SNS) topic that AWS Firewall Manager uses to record SNS logs.", 4 | "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-fms.git", 5 | "definitions": { 6 | "ResourceArn": { 7 | "description": "A resource ARN.", 8 | "type": "string", 9 | "minLength": 1, 10 | "maxLength": 1024, 11 | "markdownDescription": "A resource ARN.\n\n---\n\nRequired: No \nType: String \nMinimum Length: 1 \nMaximum Length: 1024 \nPattern: ^([^\\s]+)$ \nUpdate requires: No interruption\n" 12 | } 13 | }, 14 | "properties": { 15 | "SnsRoleName": { 16 | "$ref": "#/definitions/ResourceArn" 17 | }, 18 | "SnsTopicArn": { 19 | "$ref": "#/definitions/ResourceArn" 20 | } 21 | }, 22 | "required": [ 23 | "SnsRoleName", 24 | "SnsTopicArn" 25 | ], 26 | "handlers": { 27 | "create": { 28 | "permissions": [ 29 | "fms:PutNotificationChannel", 30 | "iam:PassRole" 31 | ] 32 | }, 33 | "update": { 34 | "permissions": [ 35 | "fms:PutNotificationChannel", 36 | "iam:PassRole" 37 | ] 38 | }, 39 | "read": { 40 | "permissions": [ 41 | "fms:GetNotificationChannel" 42 | ] 43 | }, 44 | "delete": { 45 | "permissions": [ 46 | "fms:DeleteNotificationChannel" 47 | ] 48 | }, 49 | "list": { 50 | "permissions": [ 51 | "fms:GetNotificationChannel" 52 | ] 53 | } 54 | }, 55 | "primaryIdentifier": [ 56 | "/properties/SnsTopicArn" 57 | ], 58 | "additionalProperties": false, 59 | "attributes": {} 60 | } -------------------------------------------------------------------------------- /server/schema/resources/aws-glue-customentitytype.json: -------------------------------------------------------------------------------- 1 | { 2 | "typeName": "AWS::Glue::CustomEntityType", 3 | "description": "Resource Type definition for AWS::Glue::CustomEntityType", 4 | "additionalProperties": false, 5 | "properties": { 6 | "RegexString": { 7 | "type": "string", 8 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" 9 | }, 10 | "ContextWords": { 11 | "type": "array", 12 | "uniqueItems": false, 13 | "items": { 14 | "type": "string", 15 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" 16 | }, 17 | "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" 18 | }, 19 | "Id": { 20 | "type": "string", 21 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 22 | }, 23 | "Tags": { 24 | "type": "object", 25 | "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" 26 | }, 27 | "Name": { 28 | "type": "string", 29 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" 30 | } 31 | }, 32 | "primaryIdentifier": [ 33 | "/properties/Id" 34 | ], 35 | "readOnlyProperties": [ 36 | "/properties/Id" 37 | ], 38 | "attributes": { 39 | "Id": { 40 | "type": "string", 41 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 42 | } 43 | } 44 | } -------------------------------------------------------------------------------- /server/schema/resources/aws-glue-workflow.json: -------------------------------------------------------------------------------- 1 | { 2 | "typeName": "AWS::Glue::Workflow", 3 | "description": "Resource Type definition for AWS::Glue::Workflow", 4 | "additionalProperties": false, 5 | "properties": { 6 | "Description": { 7 | "type": "string", 8 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" 9 | }, 10 | "Id": { 11 | "type": "string", 12 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 13 | }, 14 | "Tags": { 15 | "type": "object", 16 | "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" 17 | }, 18 | "DefaultRunProperties": { 19 | "type": "object", 20 | "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" 21 | }, 22 | "Name": { 23 | "type": "string", 24 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" 25 | }, 26 | "MaxConcurrentRuns": { 27 | "type": "integer", 28 | "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: No interruption\n" 29 | } 30 | }, 31 | "createOnlyProperties": [ 32 | "/properties/Name" 33 | ], 34 | "primaryIdentifier": [ 35 | "/properties/Id" 36 | ], 37 | "readOnlyProperties": [ 38 | "/properties/Id" 39 | ], 40 | "attributes": { 41 | "Id": { 42 | "type": "string", 43 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 44 | } 45 | } 46 | } -------------------------------------------------------------------------------- /server/schema/resources/aws-iam-accesskey.json: -------------------------------------------------------------------------------- 1 | { 2 | "typeName": "AWS::IAM::AccessKey", 3 | "description": "Resource Type definition for AWS::IAM::AccessKey", 4 | "additionalProperties": false, 5 | "properties": { 6 | "Id": { 7 | "type": "string", 8 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 9 | }, 10 | "SecretAccessKey": { 11 | "type": "string", 12 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 13 | }, 14 | "Serial": { 15 | "type": "integer", 16 | "markdownDescription": "\n\n---\n\nRequired: No \nType: Integer \nUpdate requires: Replacement\n" 17 | }, 18 | "Status": { 19 | "type": "string", 20 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" 21 | }, 22 | "UserName": { 23 | "type": "string", 24 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" 25 | } 26 | }, 27 | "required": [ 28 | "UserName" 29 | ], 30 | "readOnlyProperties": [ 31 | "/properties/SecretAccessKey", 32 | "/properties/Id" 33 | ], 34 | "createOnlyProperties": [ 35 | "/properties/UserName", 36 | "/properties/Serial" 37 | ], 38 | "primaryIdentifier": [ 39 | "/properties/Id" 40 | ], 41 | "attributes": { 42 | "Id": { 43 | "type": "string", 44 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 45 | }, 46 | "SecretAccessKey": { 47 | "type": "string", 48 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 49 | } 50 | } 51 | } -------------------------------------------------------------------------------- /server/schema/resources/aws-iam-usertogroupaddition.json: -------------------------------------------------------------------------------- 1 | { 2 | "typeName": "AWS::IAM::UserToGroupAddition", 3 | "description": "Resource Type definition for AWS::IAM::UserToGroupAddition", 4 | "additionalProperties": false, 5 | "properties": { 6 | "Id": { 7 | "type": "string", 8 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 9 | }, 10 | "GroupName": { 11 | "type": "string", 12 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" 13 | }, 14 | "Users": { 15 | "type": "array", 16 | "uniqueItems": false, 17 | "items": { 18 | "type": "string", 19 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" 20 | }, 21 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" 22 | } 23 | }, 24 | "required": [ 25 | "GroupName", 26 | "Users" 27 | ], 28 | "primaryIdentifier": [ 29 | "/properties/Id" 30 | ], 31 | "readOnlyProperties": [ 32 | "/properties/Id" 33 | ], 34 | "attributes": { 35 | "Id": { 36 | "type": "string", 37 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 38 | } 39 | } 40 | } -------------------------------------------------------------------------------- /server/schema/resources/aws-inspector-assessmenttarget.json: -------------------------------------------------------------------------------- 1 | { 2 | "typeName": "AWS::Inspector::AssessmentTarget", 3 | "description": "Resource Type definition for AWS::Inspector::AssessmentTarget", 4 | "additionalProperties": false, 5 | "properties": { 6 | "Arn": { 7 | "type": "string", 8 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 9 | }, 10 | "AssessmentTargetName": { 11 | "type": "string", 12 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" 13 | }, 14 | "ResourceGroupArn": { 15 | "type": "string", 16 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" 17 | } 18 | }, 19 | "readOnlyProperties": [ 20 | "/properties/Arn" 21 | ], 22 | "createOnlyProperties": [ 23 | "/properties/AssessmentTargetName" 24 | ], 25 | "primaryIdentifier": [ 26 | "/properties/Arn" 27 | ], 28 | "taggable": false, 29 | "handlers": { 30 | "create": { 31 | "permissions": [ 32 | "inspector:CreateAssessmentTarget", 33 | "inspector:ListAssessmentTargets", 34 | "inspector:DescribeAssessmentTargets" 35 | ] 36 | }, 37 | "update": { 38 | "permissions": [ 39 | "inspector:DescribeAssessmentTargets", 40 | "inspector:UpdateAssessmentTarget" 41 | ] 42 | }, 43 | "read": { 44 | "permissions": [ 45 | "inspector:DescribeAssessmentTargets" 46 | ] 47 | }, 48 | "delete": { 49 | "permissions": [ 50 | "inspector:DeleteAssessmentTarget" 51 | ] 52 | }, 53 | "list": { 54 | "permissions": [ 55 | "inspector:ListAssessmentTargets" 56 | ] 57 | } 58 | }, 59 | "attributes": { 60 | "Arn": { 61 | "type": "string", 62 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 63 | } 64 | } 65 | } -------------------------------------------------------------------------------- /server/schema/resources/aws-iot-policyprincipalattachment.json: -------------------------------------------------------------------------------- 1 | { 2 | "typeName": "AWS::IoT::PolicyPrincipalAttachment", 3 | "description": "Resource Type definition for AWS::IoT::PolicyPrincipalAttachment", 4 | "additionalProperties": false, 5 | "properties": { 6 | "Id": { 7 | "type": "string", 8 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 9 | }, 10 | "PolicyName": { 11 | "type": "string", 12 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" 13 | }, 14 | "Principal": { 15 | "type": "string", 16 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" 17 | } 18 | }, 19 | "required": [ 20 | "Principal", 21 | "PolicyName" 22 | ], 23 | "createOnlyProperties": [ 24 | "/properties/PolicyName", 25 | "/properties/Principal" 26 | ], 27 | "primaryIdentifier": [ 28 | "/properties/Id" 29 | ], 30 | "readOnlyProperties": [ 31 | "/properties/Id" 32 | ], 33 | "attributes": { 34 | "Id": { 35 | "type": "string", 36 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 37 | } 38 | } 39 | } -------------------------------------------------------------------------------- /server/schema/resources/aws-iot-thingprincipalattachment.json: -------------------------------------------------------------------------------- 1 | { 2 | "typeName": "AWS::IoT::ThingPrincipalAttachment", 3 | "description": "Resource Type definition for AWS::IoT::ThingPrincipalAttachment", 4 | "additionalProperties": false, 5 | "properties": { 6 | "Id": { 7 | "type": "string", 8 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 9 | }, 10 | "Principal": { 11 | "type": "string", 12 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" 13 | }, 14 | "ThingName": { 15 | "type": "string", 16 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" 17 | } 18 | }, 19 | "required": [ 20 | "Principal", 21 | "ThingName" 22 | ], 23 | "createOnlyProperties": [ 24 | "/properties/ThingName", 25 | "/properties/Principal" 26 | ], 27 | "primaryIdentifier": [ 28 | "/properties/Id" 29 | ], 30 | "readOnlyProperties": [ 31 | "/properties/Id" 32 | ], 33 | "attributes": { 34 | "Id": { 35 | "type": "string", 36 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 37 | } 38 | } 39 | } -------------------------------------------------------------------------------- /server/schema/resources/aws-iotthingsgraph-flowtemplate.json: -------------------------------------------------------------------------------- 1 | { 2 | "typeName": "AWS::IoTThingsGraph::FlowTemplate", 3 | "description": "Resource Type definition for AWS::IoTThingsGraph::FlowTemplate", 4 | "additionalProperties": false, 5 | "properties": { 6 | "Id": { 7 | "type": "string", 8 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 9 | }, 10 | "CompatibleNamespaceVersion": { 11 | "type": "number", 12 | "markdownDescription": "\n\n---\n\nRequired: No \nType: Number \nUpdate requires: No interruption\n" 13 | }, 14 | "Definition": { 15 | "$ref": "#/definitions/DefinitionDocument" 16 | } 17 | }, 18 | "definitions": { 19 | "DefinitionDocument": { 20 | "type": "object", 21 | "additionalProperties": false, 22 | "properties": { 23 | "Language": { 24 | "type": "string", 25 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" 26 | }, 27 | "Text": { 28 | "type": "string", 29 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" 30 | } 31 | }, 32 | "required": [ 33 | "Language", 34 | "Text" 35 | ], 36 | "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" 37 | } 38 | }, 39 | "required": [ 40 | "Definition" 41 | ], 42 | "primaryIdentifier": [ 43 | "/properties/Id" 44 | ], 45 | "readOnlyProperties": [ 46 | "/properties/Id" 47 | ], 48 | "attributes": { 49 | "Id": { 50 | "type": "string", 51 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 52 | } 53 | } 54 | } -------------------------------------------------------------------------------- /server/schema/resources/aws-kinesisanalyticsv2-applicationcloudwatchloggingoption.json: -------------------------------------------------------------------------------- 1 | { 2 | "typeName": "AWS::KinesisAnalyticsV2::ApplicationCloudWatchLoggingOption", 3 | "description": "Resource Type definition for AWS::KinesisAnalyticsV2::ApplicationCloudWatchLoggingOption", 4 | "additionalProperties": false, 5 | "properties": { 6 | "Id": { 7 | "type": "string", 8 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 9 | }, 10 | "ApplicationName": { 11 | "type": "string", 12 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" 13 | }, 14 | "CloudWatchLoggingOption": { 15 | "$ref": "#/definitions/CloudWatchLoggingOption" 16 | } 17 | }, 18 | "definitions": { 19 | "CloudWatchLoggingOption": { 20 | "type": "object", 21 | "additionalProperties": false, 22 | "properties": { 23 | "LogStreamARN": { 24 | "type": "string", 25 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" 26 | } 27 | }, 28 | "required": [ 29 | "LogStreamARN" 30 | ], 31 | "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" 32 | } 33 | }, 34 | "required": [ 35 | "CloudWatchLoggingOption", 36 | "ApplicationName" 37 | ], 38 | "createOnlyProperties": [ 39 | "/properties/ApplicationName" 40 | ], 41 | "primaryIdentifier": [ 42 | "/properties/Id" 43 | ], 44 | "readOnlyProperties": [ 45 | "/properties/Id" 46 | ], 47 | "attributes": { 48 | "Id": { 49 | "type": "string", 50 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 51 | } 52 | } 53 | } -------------------------------------------------------------------------------- /server/schema/resources/aws-lakeformation-resource.json: -------------------------------------------------------------------------------- 1 | { 2 | "typeName": "AWS::LakeFormation::Resource", 3 | "description": "Resource Type definition for AWS::LakeFormation::Resource", 4 | "additionalProperties": false, 5 | "properties": { 6 | "ResourceArn": { 7 | "type": "string", 8 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" 9 | }, 10 | "WithFederation": { 11 | "type": "boolean", 12 | "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" 13 | }, 14 | "Id": { 15 | "type": "string", 16 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 17 | }, 18 | "HybridAccessEnabled": { 19 | "type": "boolean", 20 | "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" 21 | }, 22 | "UseServiceLinkedRole": { 23 | "type": "boolean", 24 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Boolean \nUpdate requires: No interruption\n" 25 | }, 26 | "RoleArn": { 27 | "type": "string", 28 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" 29 | } 30 | }, 31 | "required": [ 32 | "ResourceArn", 33 | "UseServiceLinkedRole" 34 | ], 35 | "createOnlyProperties": [ 36 | "/properties/ResourceArn" 37 | ], 38 | "primaryIdentifier": [ 39 | "/properties/Id" 40 | ], 41 | "readOnlyProperties": [ 42 | "/properties/Id" 43 | ], 44 | "attributes": { 45 | "Id": { 46 | "type": "string", 47 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 48 | } 49 | } 50 | } -------------------------------------------------------------------------------- /server/schema/resources/aws-location-trackerconsumer.json: -------------------------------------------------------------------------------- 1 | { 2 | "typeName": "AWS::Location::TrackerConsumer", 3 | "description": "Definition of AWS::Location::TrackerConsumer Resource Type", 4 | "tagging": { 5 | "taggable": false, 6 | "tagOnCreate": false, 7 | "tagUpdatable": false, 8 | "cloudFormationSystemTags": false 9 | }, 10 | "properties": { 11 | "ConsumerArn": { 12 | "type": "string", 13 | "maxLength": 1600, 14 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMaximum Length: 1600 \nPattern: ^arn(:[a-z0-9]+([.-][a-z0-9]+)*){2}(:([a-z0-9]+([.-][a-z0-9]+)*)?){2}:([^/].*)?$ \nUpdate requires: Replacement\n" 15 | }, 16 | "TrackerName": { 17 | "type": "string", 18 | "maxLength": 100, 19 | "minLength": 1, 20 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 100 \nPattern: ^[-._\\w]+$ \nUpdate requires: Replacement\n" 21 | } 22 | }, 23 | "additionalProperties": false, 24 | "required": [ 25 | "ConsumerArn", 26 | "TrackerName" 27 | ], 28 | "createOnlyProperties": [ 29 | "/properties/TrackerName", 30 | "/properties/ConsumerArn" 31 | ], 32 | "primaryIdentifier": [ 33 | "/properties/TrackerName", 34 | "/properties/ConsumerArn" 35 | ], 36 | "handlers": { 37 | "create": { 38 | "permissions": [ 39 | "geo:AssociateTrackerConsumer", 40 | "geo:ListTrackerConsumers" 41 | ] 42 | }, 43 | "delete": { 44 | "permissions": [ 45 | "geo:DisassociateTrackerConsumer", 46 | "geo:ListTrackerConsumers" 47 | ] 48 | }, 49 | "list": { 50 | "permissions": [ 51 | "geo:ListTrackerConsumers" 52 | ] 53 | }, 54 | "read": { 55 | "permissions": [ 56 | "geo:ListTrackerConsumers" 57 | ] 58 | } 59 | }, 60 | "attributes": {} 61 | } -------------------------------------------------------------------------------- /server/schema/resources/aws-logs-logstream.json: -------------------------------------------------------------------------------- 1 | { 2 | "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-logs.git", 3 | "tagging": { 4 | "taggable": false 5 | }, 6 | "handlers": { 7 | "read": { 8 | "permissions": [ 9 | "logs:DescribeLogStreams" 10 | ] 11 | }, 12 | "create": { 13 | "permissions": [ 14 | "logs:CreateLogStream", 15 | "logs:DescribeLogStreams" 16 | ] 17 | }, 18 | "list": { 19 | "permissions": [ 20 | "logs:DescribeLogStreams" 21 | ], 22 | "handlerSchema": { 23 | "properties": { 24 | "LogGroupName": { 25 | "$ref": "resource-schema.json#/properties/LogGroupName" 26 | } 27 | }, 28 | "required": [ 29 | "LogGroupName" 30 | ] 31 | } 32 | }, 33 | "delete": { 34 | "permissions": [ 35 | "logs:DeleteLogStream" 36 | ] 37 | } 38 | }, 39 | "typeName": "AWS::Logs::LogStream", 40 | "description": "Resource Type definition for AWS::Logs::LogStream", 41 | "createOnlyProperties": [ 42 | "/properties/LogGroupName", 43 | "/properties/LogStreamName" 44 | ], 45 | "additionalProperties": false, 46 | "primaryIdentifier": [ 47 | "/properties/LogGroupName", 48 | "/properties/LogStreamName" 49 | ], 50 | "properties": { 51 | "LogStreamName": { 52 | "description": "The name of the log stream. The name must be unique wihtin the log group.", 53 | "type": "string", 54 | "markdownDescription": "The name of the log stream. The name must be unique wihtin the log group.\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" 55 | }, 56 | "LogGroupName": { 57 | "description": "The name of the log group where the log stream is created.", 58 | "type": "string", 59 | "markdownDescription": "The name of the log group where the log stream is created.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" 60 | } 61 | }, 62 | "required": [ 63 | "LogGroupName" 64 | ], 65 | "attributes": {} 66 | } -------------------------------------------------------------------------------- /server/schema/resources/aws-logs-resourcepolicy.json: -------------------------------------------------------------------------------- 1 | { 2 | "typeName": "AWS::Logs::ResourcePolicy", 3 | "description": "The resource schema for AWSLogs ResourcePolicy", 4 | "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-logs.git", 5 | "properties": { 6 | "PolicyName": { 7 | "description": "A name for resource policy", 8 | "type": "string", 9 | "minLength": 1, 10 | "maxLength": 255, 11 | "markdownDescription": "A name for resource policy\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 255 \nPattern: ^([^:*\\/]+\\/?)*[^:*\\/]+$ \nUpdate requires: Replacement\n" 12 | }, 13 | "PolicyDocument": { 14 | "description": "The policy document", 15 | "type": "string", 16 | "minLength": 1, 17 | "maxLength": 5120, 18 | "markdownDescription": "The policy document\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 1 \nMaximum Length: 5120 \nPattern: [\\u0009\\u000A\\u000D\\u0020-\\u00FF]+ \nUpdate requires: No interruption\n" 19 | } 20 | }, 21 | "additionalProperties": false, 22 | "tagging": { 23 | "taggable": false 24 | }, 25 | "primaryIdentifier": [ 26 | "/properties/PolicyName" 27 | ], 28 | "createOnlyProperties": [ 29 | "/properties/PolicyName" 30 | ], 31 | "handlers": { 32 | "create": { 33 | "permissions": [ 34 | "logs:PutResourcePolicy", 35 | "logs:DescribeResourcePolicies" 36 | ] 37 | }, 38 | "read": { 39 | "permissions": [ 40 | "logs:DescribeResourcePolicies" 41 | ] 42 | }, 43 | "update": { 44 | "permissions": [ 45 | "logs:PutResourcePolicy", 46 | "logs:DescribeResourcePolicies", 47 | "logs:DeleteResourcePolicy" 48 | ] 49 | }, 50 | "delete": { 51 | "permissions": [ 52 | "logs:DeleteResourcePolicy" 53 | ] 54 | }, 55 | "list": { 56 | "permissions": [ 57 | "logs:DescribeResourcePolicies" 58 | ] 59 | } 60 | }, 61 | "required": [ 62 | "PolicyName", 63 | "PolicyDocument" 64 | ], 65 | "attributes": {} 66 | } -------------------------------------------------------------------------------- /server/schema/resources/aws-mediaconvert-preset.json: -------------------------------------------------------------------------------- 1 | { 2 | "typeName": "AWS::MediaConvert::Preset", 3 | "description": "Resource Type definition for AWS::MediaConvert::Preset", 4 | "additionalProperties": false, 5 | "properties": { 6 | "Category": { 7 | "type": "string", 8 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" 9 | }, 10 | "Description": { 11 | "type": "string", 12 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" 13 | }, 14 | "SettingsJson": { 15 | "type": "object", 16 | "markdownDescription": "\n\n---\n\nRequired: Yes \nUpdate requires: No interruption\n" 17 | }, 18 | "Id": { 19 | "type": "string", 20 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 21 | }, 22 | "Arn": { 23 | "type": "string", 24 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 25 | }, 26 | "Tags": { 27 | "type": "object", 28 | "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" 29 | }, 30 | "Name": { 31 | "type": "string", 32 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" 33 | } 34 | }, 35 | "required": [ 36 | "SettingsJson" 37 | ], 38 | "createOnlyProperties": [ 39 | "/properties/Name" 40 | ], 41 | "primaryIdentifier": [ 42 | "/properties/Id" 43 | ], 44 | "readOnlyProperties": [ 45 | "/properties/Id", 46 | "/properties/Arn" 47 | ], 48 | "attributes": { 49 | "Id": { 50 | "type": "string", 51 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 52 | }, 53 | "Arn": { 54 | "type": "string", 55 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 56 | } 57 | } 58 | } -------------------------------------------------------------------------------- /server/schema/resources/aws-medialive-inputsecuritygroup.json: -------------------------------------------------------------------------------- 1 | { 2 | "typeName": "AWS::MediaLive::InputSecurityGroup", 3 | "description": "Resource Type definition for AWS::MediaLive::InputSecurityGroup", 4 | "additionalProperties": false, 5 | "properties": { 6 | "Id": { 7 | "type": "string", 8 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 9 | }, 10 | "Arn": { 11 | "type": "string", 12 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 13 | }, 14 | "WhitelistRules": { 15 | "type": "array", 16 | "uniqueItems": false, 17 | "items": { 18 | "$ref": "#/definitions/InputWhitelistRuleCidr" 19 | }, 20 | "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" 21 | }, 22 | "Tags": { 23 | "type": "object", 24 | "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: Replacement\n" 25 | } 26 | }, 27 | "definitions": { 28 | "InputWhitelistRuleCidr": { 29 | "type": "object", 30 | "additionalProperties": false, 31 | "properties": { 32 | "Cidr": { 33 | "type": "string", 34 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" 35 | } 36 | }, 37 | "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" 38 | } 39 | }, 40 | "createOnlyProperties": [ 41 | "/properties/Tags" 42 | ], 43 | "primaryIdentifier": [ 44 | "/properties/Id" 45 | ], 46 | "readOnlyProperties": [ 47 | "/properties/Id", 48 | "/properties/Arn" 49 | ], 50 | "attributes": { 51 | "Id": { 52 | "type": "string", 53 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 54 | }, 55 | "Arn": { 56 | "type": "string", 57 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 58 | } 59 | } 60 | } -------------------------------------------------------------------------------- /server/schema/resources/aws-mediatailor-channelpolicy.json: -------------------------------------------------------------------------------- 1 | { 2 | "typeName": "AWS::MediaTailor::ChannelPolicy", 3 | "description": "Definition of AWS::MediaTailor::ChannelPolicy Resource Type", 4 | "tagging": { 5 | "taggable": false, 6 | "tagOnCreate": false, 7 | "tagUpdatable": false, 8 | "cloudFormationSystemTags": false 9 | }, 10 | "properties": { 11 | "ChannelName": { 12 | "type": "string", 13 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" 14 | }, 15 | "Policy": { 16 | "type": [ 17 | "object", 18 | "string" 19 | ], 20 | "description": "

The IAM policy for the channel. IAM policies are used to control access to your channel.

", 21 | "markdownDescription": "

The IAM policy for the channel. IAM policies are used to control access to your channel.

\n\n---\n\nRequired: Yes \nType: ['object', 'string'] \nUpdate requires: No interruption\n" 22 | } 23 | }, 24 | "createOnlyProperties": [ 25 | "/properties/ChannelName" 26 | ], 27 | "primaryIdentifier": [ 28 | "/properties/ChannelName" 29 | ], 30 | "required": [ 31 | "ChannelName", 32 | "Policy" 33 | ], 34 | "handlers": { 35 | "create": { 36 | "permissions": [ 37 | "mediatailor:PutChannelPolicy", 38 | "mediatailor:GetChannelPolicy" 39 | ] 40 | }, 41 | "read": { 42 | "permissions": [ 43 | "mediatailor:GetChannelPolicy" 44 | ] 45 | }, 46 | "update": { 47 | "permissions": [ 48 | "mediatailor:PutChannelPolicy", 49 | "mediatailor:GetChannelPolicy" 50 | ] 51 | }, 52 | "delete": { 53 | "permissions": [ 54 | "mediatailor:DeleteChannelPolicy", 55 | "mediatailor:GetChannelPolicy" 56 | ] 57 | } 58 | }, 59 | "additionalProperties": false, 60 | "attributes": {} 61 | } -------------------------------------------------------------------------------- /server/schema/resources/aws-neptune-eventsubscription.json: -------------------------------------------------------------------------------- 1 | { 2 | "typeName": "AWS::Neptune::EventSubscription", 3 | "description": "Resource Type definition for AWS::Neptune::EventSubscription", 4 | "additionalProperties": false, 5 | "properties": { 6 | "Enabled": { 7 | "type": "boolean", 8 | "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" 9 | }, 10 | "EventCategories": { 11 | "type": "array", 12 | "uniqueItems": false, 13 | "items": { 14 | "type": "string", 15 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" 16 | }, 17 | "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" 18 | }, 19 | "SnsTopicArn": { 20 | "type": "string", 21 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" 22 | }, 23 | "SourceIds": { 24 | "type": "array", 25 | "uniqueItems": false, 26 | "items": { 27 | "type": "string", 28 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" 29 | }, 30 | "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" 31 | }, 32 | "Id": { 33 | "type": "string", 34 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 35 | }, 36 | "SourceType": { 37 | "type": "string", 38 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" 39 | } 40 | }, 41 | "createOnlyProperties": [ 42 | "/properties/SnsTopicArn" 43 | ], 44 | "primaryIdentifier": [ 45 | "/properties/Id" 46 | ], 47 | "readOnlyProperties": [ 48 | "/properties/Id" 49 | ], 50 | "attributes": { 51 | "Id": { 52 | "type": "string", 53 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 54 | } 55 | } 56 | } -------------------------------------------------------------------------------- /server/schema/resources/aws-opsworks-elasticloadbalancerattachment.json: -------------------------------------------------------------------------------- 1 | { 2 | "typeName": "AWS::OpsWorks::ElasticLoadBalancerAttachment", 3 | "description": "Resource Type definition for AWS::OpsWorks::ElasticLoadBalancerAttachment", 4 | "additionalProperties": false, 5 | "properties": { 6 | "Id": { 7 | "type": "string", 8 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 9 | }, 10 | "ElasticLoadBalancerName": { 11 | "type": "string", 12 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" 13 | }, 14 | "LayerId": { 15 | "type": "string", 16 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" 17 | } 18 | }, 19 | "required": [ 20 | "LayerId", 21 | "ElasticLoadBalancerName" 22 | ], 23 | "primaryIdentifier": [ 24 | "/properties/Id" 25 | ], 26 | "readOnlyProperties": [ 27 | "/properties/Id" 28 | ], 29 | "attributes": { 30 | "Id": { 31 | "type": "string", 32 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 33 | } 34 | } 35 | } -------------------------------------------------------------------------------- /server/schema/resources/aws-opsworks-userprofile.json: -------------------------------------------------------------------------------- 1 | { 2 | "typeName": "AWS::OpsWorks::UserProfile", 3 | "description": "Resource Type definition for AWS::OpsWorks::UserProfile", 4 | "additionalProperties": false, 5 | "properties": { 6 | "Id": { 7 | "type": "string", 8 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 9 | }, 10 | "SshUsername": { 11 | "type": "string", 12 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" 13 | }, 14 | "AllowSelfManagement": { 15 | "type": "boolean", 16 | "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" 17 | }, 18 | "IamUserArn": { 19 | "type": "string", 20 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" 21 | }, 22 | "SshPublicKey": { 23 | "type": "string", 24 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" 25 | } 26 | }, 27 | "required": [ 28 | "IamUserArn" 29 | ], 30 | "createOnlyProperties": [ 31 | "/properties/IamUserArn" 32 | ], 33 | "primaryIdentifier": [ 34 | "/properties/Id" 35 | ], 36 | "readOnlyProperties": [ 37 | "/properties/Id" 38 | ], 39 | "attributes": { 40 | "Id": { 41 | "type": "string", 42 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 43 | } 44 | } 45 | } -------------------------------------------------------------------------------- /server/schema/resources/aws-opsworks-volume.json: -------------------------------------------------------------------------------- 1 | { 2 | "typeName": "AWS::OpsWorks::Volume", 3 | "description": "Resource Type definition for AWS::OpsWorks::Volume", 4 | "additionalProperties": false, 5 | "properties": { 6 | "Id": { 7 | "type": "string", 8 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 9 | }, 10 | "Ec2VolumeId": { 11 | "type": "string", 12 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" 13 | }, 14 | "MountPoint": { 15 | "type": "string", 16 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" 17 | }, 18 | "Name": { 19 | "type": "string", 20 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" 21 | }, 22 | "StackId": { 23 | "type": "string", 24 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" 25 | } 26 | }, 27 | "required": [ 28 | "Ec2VolumeId", 29 | "StackId" 30 | ], 31 | "createOnlyProperties": [ 32 | "/properties/StackId", 33 | "/properties/Ec2VolumeId" 34 | ], 35 | "primaryIdentifier": [ 36 | "/properties/Id" 37 | ], 38 | "readOnlyProperties": [ 39 | "/properties/Id" 40 | ], 41 | "attributes": { 42 | "Id": { 43 | "type": "string", 44 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 45 | } 46 | } 47 | } -------------------------------------------------------------------------------- /server/schema/resources/aws-paymentcryptography-alias.json: -------------------------------------------------------------------------------- 1 | { 2 | "typeName": "AWS::PaymentCryptography::Alias", 3 | "description": "Definition of AWS::PaymentCryptography::Alias Resource Type", 4 | "properties": { 5 | "AliasName": { 6 | "type": "string", 7 | "maxLength": 256, 8 | "minLength": 7, 9 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 7 \nMaximum Length: 256 \nPattern: ^alias/[a-zA-Z0-9/_-]+$ \nUpdate requires: Replacement\n" 10 | }, 11 | "KeyArn": { 12 | "type": "string", 13 | "maxLength": 150, 14 | "minLength": 70, 15 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nMinimum Length: 70 \nMaximum Length: 150 \nPattern: ^arn:aws:payment-cryptography:[a-z]{2}-[a-z]{1,16}-[0-9]+:[0-9]{12}:key/[0-9a-zA-Z]{16,64}$ \nUpdate requires: No interruption\n" 16 | } 17 | }, 18 | "createOnlyProperties": [ 19 | "/properties/AliasName" 20 | ], 21 | "primaryIdentifier": [ 22 | "/properties/AliasName" 23 | ], 24 | "required": [ 25 | "AliasName" 26 | ], 27 | "handlers": { 28 | "create": { 29 | "permissions": [ 30 | "payment-cryptography:CreateAlias" 31 | ] 32 | }, 33 | "read": { 34 | "permissions": [ 35 | "payment-cryptography:GetAlias" 36 | ] 37 | }, 38 | "update": { 39 | "permissions": [ 40 | "payment-cryptography:UpdateAlias" 41 | ] 42 | }, 43 | "delete": { 44 | "permissions": [ 45 | "payment-cryptography:DeleteAlias" 46 | ] 47 | }, 48 | "list": { 49 | "permissions": [ 50 | "payment-cryptography:ListAliases" 51 | ] 52 | } 53 | }, 54 | "tagging": { 55 | "taggable": false 56 | }, 57 | "additionalProperties": false, 58 | "attributes": {} 59 | } -------------------------------------------------------------------------------- /server/schema/resources/aws-pinpoint-admchannel.json: -------------------------------------------------------------------------------- 1 | { 2 | "typeName": "AWS::Pinpoint::ADMChannel", 3 | "description": "Resource Type definition for AWS::Pinpoint::ADMChannel", 4 | "additionalProperties": false, 5 | "properties": { 6 | "Id": { 7 | "type": "string", 8 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 9 | }, 10 | "ClientSecret": { 11 | "type": "string", 12 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" 13 | }, 14 | "Enabled": { 15 | "type": "boolean", 16 | "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" 17 | }, 18 | "ClientId": { 19 | "type": "string", 20 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" 21 | }, 22 | "ApplicationId": { 23 | "type": "string", 24 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" 25 | } 26 | }, 27 | "required": [ 28 | "ApplicationId", 29 | "ClientId", 30 | "ClientSecret" 31 | ], 32 | "createOnlyProperties": [ 33 | "/properties/ApplicationId" 34 | ], 35 | "primaryIdentifier": [ 36 | "/properties/Id" 37 | ], 38 | "readOnlyProperties": [ 39 | "/properties/Id" 40 | ], 41 | "attributes": { 42 | "Id": { 43 | "type": "string", 44 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 45 | } 46 | } 47 | } -------------------------------------------------------------------------------- /server/schema/resources/aws-pinpoint-app.json: -------------------------------------------------------------------------------- 1 | { 2 | "typeName": "AWS::Pinpoint::App", 3 | "description": "Resource Type definition for AWS::Pinpoint::App", 4 | "additionalProperties": false, 5 | "properties": { 6 | "Id": { 7 | "type": "string", 8 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 9 | }, 10 | "Arn": { 11 | "type": "string", 12 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 13 | }, 14 | "Tags": { 15 | "type": "object", 16 | "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" 17 | }, 18 | "Name": { 19 | "type": "string", 20 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" 21 | } 22 | }, 23 | "required": [ 24 | "Name" 25 | ], 26 | "readOnlyProperties": [ 27 | "/properties/Arn", 28 | "/properties/Id" 29 | ], 30 | "createOnlyProperties": [ 31 | "/properties/Name" 32 | ], 33 | "primaryIdentifier": [ 34 | "/properties/Id" 35 | ], 36 | "attributes": { 37 | "Id": { 38 | "type": "string", 39 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 40 | }, 41 | "Arn": { 42 | "type": "string", 43 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 44 | } 45 | } 46 | } -------------------------------------------------------------------------------- /server/schema/resources/aws-pinpoint-baiduchannel.json: -------------------------------------------------------------------------------- 1 | { 2 | "typeName": "AWS::Pinpoint::BaiduChannel", 3 | "description": "Resource Type definition for AWS::Pinpoint::BaiduChannel", 4 | "additionalProperties": false, 5 | "properties": { 6 | "Id": { 7 | "type": "string", 8 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 9 | }, 10 | "SecretKey": { 11 | "type": "string", 12 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" 13 | }, 14 | "ApiKey": { 15 | "type": "string", 16 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" 17 | }, 18 | "Enabled": { 19 | "type": "boolean", 20 | "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" 21 | }, 22 | "ApplicationId": { 23 | "type": "string", 24 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" 25 | } 26 | }, 27 | "required": [ 28 | "ApplicationId", 29 | "SecretKey", 30 | "ApiKey" 31 | ], 32 | "createOnlyProperties": [ 33 | "/properties/ApplicationId" 34 | ], 35 | "primaryIdentifier": [ 36 | "/properties/Id" 37 | ], 38 | "readOnlyProperties": [ 39 | "/properties/Id" 40 | ], 41 | "attributes": { 42 | "Id": { 43 | "type": "string", 44 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 45 | } 46 | } 47 | } -------------------------------------------------------------------------------- /server/schema/resources/aws-pinpoint-emailchannel.json: -------------------------------------------------------------------------------- 1 | { 2 | "typeName": "AWS::Pinpoint::EmailChannel", 3 | "description": "Resource Type definition for AWS::Pinpoint::EmailChannel", 4 | "additionalProperties": false, 5 | "properties": { 6 | "ConfigurationSet": { 7 | "type": "string", 8 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" 9 | }, 10 | "FromAddress": { 11 | "type": "string", 12 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" 13 | }, 14 | "OrchestrationSendingRoleArn": { 15 | "type": "string", 16 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" 17 | }, 18 | "Enabled": { 19 | "type": "boolean", 20 | "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" 21 | }, 22 | "Id": { 23 | "type": "string", 24 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 25 | }, 26 | "ApplicationId": { 27 | "type": "string", 28 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" 29 | }, 30 | "Identity": { 31 | "type": "string", 32 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" 33 | }, 34 | "RoleArn": { 35 | "type": "string", 36 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" 37 | } 38 | }, 39 | "required": [ 40 | "FromAddress", 41 | "ApplicationId", 42 | "Identity" 43 | ], 44 | "createOnlyProperties": [ 45 | "/properties/ApplicationId" 46 | ], 47 | "primaryIdentifier": [ 48 | "/properties/Id" 49 | ], 50 | "readOnlyProperties": [ 51 | "/properties/Id" 52 | ], 53 | "attributes": { 54 | "Id": { 55 | "type": "string", 56 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 57 | } 58 | } 59 | } -------------------------------------------------------------------------------- /server/schema/resources/aws-pinpoint-eventstream.json: -------------------------------------------------------------------------------- 1 | { 2 | "typeName": "AWS::Pinpoint::EventStream", 3 | "description": "Resource Type definition for AWS::Pinpoint::EventStream", 4 | "additionalProperties": false, 5 | "properties": { 6 | "Id": { 7 | "type": "string", 8 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 9 | }, 10 | "ApplicationId": { 11 | "type": "string", 12 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" 13 | }, 14 | "DestinationStreamArn": { 15 | "type": "string", 16 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" 17 | }, 18 | "RoleArn": { 19 | "type": "string", 20 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" 21 | } 22 | }, 23 | "required": [ 24 | "ApplicationId", 25 | "DestinationStreamArn", 26 | "RoleArn" 27 | ], 28 | "createOnlyProperties": [ 29 | "/properties/ApplicationId" 30 | ], 31 | "primaryIdentifier": [ 32 | "/properties/Id" 33 | ], 34 | "readOnlyProperties": [ 35 | "/properties/Id" 36 | ], 37 | "attributes": { 38 | "Id": { 39 | "type": "string", 40 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 41 | } 42 | } 43 | } -------------------------------------------------------------------------------- /server/schema/resources/aws-pinpoint-gcmchannel.json: -------------------------------------------------------------------------------- 1 | { 2 | "typeName": "AWS::Pinpoint::GCMChannel", 3 | "description": "Resource Type definition for AWS::Pinpoint::GCMChannel", 4 | "additionalProperties": false, 5 | "properties": { 6 | "Enabled": { 7 | "type": "boolean", 8 | "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" 9 | }, 10 | "ServiceJson": { 11 | "type": "string", 12 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" 13 | }, 14 | "DefaultAuthenticationMethod": { 15 | "type": "string", 16 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" 17 | }, 18 | "ApiKey": { 19 | "type": "string", 20 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" 21 | }, 22 | "Id": { 23 | "type": "string", 24 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 25 | }, 26 | "ApplicationId": { 27 | "type": "string", 28 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" 29 | } 30 | }, 31 | "required": [ 32 | "ApplicationId" 33 | ], 34 | "createOnlyProperties": [ 35 | "/properties/ApplicationId" 36 | ], 37 | "primaryIdentifier": [ 38 | "/properties/Id" 39 | ], 40 | "readOnlyProperties": [ 41 | "/properties/Id" 42 | ], 43 | "attributes": { 44 | "Id": { 45 | "type": "string", 46 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 47 | } 48 | } 49 | } -------------------------------------------------------------------------------- /server/schema/resources/aws-pinpoint-smschannel.json: -------------------------------------------------------------------------------- 1 | { 2 | "typeName": "AWS::Pinpoint::SMSChannel", 3 | "description": "Resource Type definition for AWS::Pinpoint::SMSChannel", 4 | "additionalProperties": false, 5 | "properties": { 6 | "Id": { 7 | "type": "string", 8 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 9 | }, 10 | "ShortCode": { 11 | "type": "string", 12 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" 13 | }, 14 | "Enabled": { 15 | "type": "boolean", 16 | "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" 17 | }, 18 | "ApplicationId": { 19 | "type": "string", 20 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" 21 | }, 22 | "SenderId": { 23 | "type": "string", 24 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" 25 | } 26 | }, 27 | "required": [ 28 | "ApplicationId" 29 | ], 30 | "createOnlyProperties": [ 31 | "/properties/ApplicationId" 32 | ], 33 | "primaryIdentifier": [ 34 | "/properties/Id" 35 | ], 36 | "readOnlyProperties": [ 37 | "/properties/Id" 38 | ], 39 | "attributes": { 40 | "Id": { 41 | "type": "string", 42 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 43 | } 44 | } 45 | } -------------------------------------------------------------------------------- /server/schema/resources/aws-pinpoint-smstemplate.json: -------------------------------------------------------------------------------- 1 | { 2 | "typeName": "AWS::Pinpoint::SmsTemplate", 3 | "description": "Resource Type definition for AWS::Pinpoint::SmsTemplate", 4 | "additionalProperties": false, 5 | "properties": { 6 | "TemplateName": { 7 | "type": "string", 8 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" 9 | }, 10 | "TemplateDescription": { 11 | "type": "string", 12 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" 13 | }, 14 | "DefaultSubstitutions": { 15 | "type": "string", 16 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" 17 | }, 18 | "Id": { 19 | "type": "string", 20 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 21 | }, 22 | "Arn": { 23 | "type": "string", 24 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 25 | }, 26 | "Body": { 27 | "type": "string", 28 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" 29 | }, 30 | "Tags": { 31 | "type": "object", 32 | "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" 33 | } 34 | }, 35 | "required": [ 36 | "TemplateName", 37 | "Body" 38 | ], 39 | "createOnlyProperties": [ 40 | "/properties/TemplateName" 41 | ], 42 | "primaryIdentifier": [ 43 | "/properties/Id" 44 | ], 45 | "readOnlyProperties": [ 46 | "/properties/Id", 47 | "/properties/Arn" 48 | ], 49 | "attributes": { 50 | "Id": { 51 | "type": "string", 52 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 53 | }, 54 | "Arn": { 55 | "type": "string", 56 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 57 | } 58 | } 59 | } -------------------------------------------------------------------------------- /server/schema/resources/aws-pinpoint-voicechannel.json: -------------------------------------------------------------------------------- 1 | { 2 | "typeName": "AWS::Pinpoint::VoiceChannel", 3 | "description": "Resource Type definition for AWS::Pinpoint::VoiceChannel", 4 | "additionalProperties": false, 5 | "properties": { 6 | "Id": { 7 | "type": "string", 8 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 9 | }, 10 | "Enabled": { 11 | "type": "boolean", 12 | "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" 13 | }, 14 | "ApplicationId": { 15 | "type": "string", 16 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" 17 | } 18 | }, 19 | "required": [ 20 | "ApplicationId" 21 | ], 22 | "createOnlyProperties": [ 23 | "/properties/ApplicationId" 24 | ], 25 | "primaryIdentifier": [ 26 | "/properties/Id" 27 | ], 28 | "readOnlyProperties": [ 29 | "/properties/Id" 30 | ], 31 | "attributes": { 32 | "Id": { 33 | "type": "string", 34 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 35 | } 36 | } 37 | } -------------------------------------------------------------------------------- /server/schema/resources/aws-pinpointemail-dedicatedippool.json: -------------------------------------------------------------------------------- 1 | { 2 | "typeName": "AWS::PinpointEmail::DedicatedIpPool", 3 | "description": "Resource Type definition for AWS::PinpointEmail::DedicatedIpPool", 4 | "additionalProperties": false, 5 | "properties": { 6 | "Id": { 7 | "type": "string", 8 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 9 | }, 10 | "PoolName": { 11 | "type": "string", 12 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" 13 | }, 14 | "Tags": { 15 | "type": "array", 16 | "uniqueItems": false, 17 | "items": { 18 | "$ref": "#/definitions/Tags" 19 | }, 20 | "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" 21 | } 22 | }, 23 | "definitions": { 24 | "Tags": { 25 | "type": "object", 26 | "additionalProperties": false, 27 | "properties": { 28 | "Value": { 29 | "type": "string", 30 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" 31 | }, 32 | "Key": { 33 | "type": "string", 34 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" 35 | } 36 | }, 37 | "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" 38 | } 39 | }, 40 | "createOnlyProperties": [ 41 | "/properties/PoolName" 42 | ], 43 | "primaryIdentifier": [ 44 | "/properties/Id" 45 | ], 46 | "readOnlyProperties": [ 47 | "/properties/Id" 48 | ], 49 | "attributes": { 50 | "Id": { 51 | "type": "string", 52 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 53 | } 54 | } 55 | } -------------------------------------------------------------------------------- /server/schema/resources/aws-rds-dbsecuritygroupingress.json: -------------------------------------------------------------------------------- 1 | { 2 | "typeName": "AWS::RDS::DBSecurityGroupIngress", 3 | "description": "Resource Type definition for AWS::RDS::DBSecurityGroupIngress", 4 | "additionalProperties": false, 5 | "properties": { 6 | "Id": { 7 | "type": "string", 8 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 9 | }, 10 | "CIDRIP": { 11 | "type": "string", 12 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" 13 | }, 14 | "DBSecurityGroupName": { 15 | "type": "string", 16 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" 17 | }, 18 | "EC2SecurityGroupId": { 19 | "type": "string", 20 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" 21 | }, 22 | "EC2SecurityGroupName": { 23 | "type": "string", 24 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" 25 | }, 26 | "EC2SecurityGroupOwnerId": { 27 | "type": "string", 28 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" 29 | } 30 | }, 31 | "required": [ 32 | "DBSecurityGroupName" 33 | ], 34 | "primaryIdentifier": [ 35 | "/properties/Id" 36 | ], 37 | "readOnlyProperties": [ 38 | "/properties/Id" 39 | ], 40 | "attributes": { 41 | "Id": { 42 | "type": "string", 43 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 44 | } 45 | } 46 | } -------------------------------------------------------------------------------- /server/schema/resources/aws-redshift-clustersecuritygroup.json: -------------------------------------------------------------------------------- 1 | { 2 | "typeName": "AWS::Redshift::ClusterSecurityGroup", 3 | "description": "Resource Type definition for AWS::Redshift::ClusterSecurityGroup", 4 | "additionalProperties": false, 5 | "properties": { 6 | "Id": { 7 | "type": "string", 8 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 9 | }, 10 | "Description": { 11 | "type": "string", 12 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" 13 | }, 14 | "Tags": { 15 | "type": "array", 16 | "uniqueItems": false, 17 | "items": { 18 | "$ref": "#/definitions/Tag" 19 | }, 20 | "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" 21 | } 22 | }, 23 | "definitions": { 24 | "Tag": { 25 | "type": "object", 26 | "additionalProperties": false, 27 | "properties": { 28 | "Key": { 29 | "type": "string", 30 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" 31 | }, 32 | "Value": { 33 | "type": "string", 34 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" 35 | } 36 | }, 37 | "required": [ 38 | "Value", 39 | "Key" 40 | ], 41 | "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" 42 | } 43 | }, 44 | "required": [ 45 | "Description" 46 | ], 47 | "createOnlyProperties": [ 48 | "/properties/Description" 49 | ], 50 | "primaryIdentifier": [ 51 | "/properties/Id" 52 | ], 53 | "readOnlyProperties": [ 54 | "/properties/Id" 55 | ], 56 | "attributes": { 57 | "Id": { 58 | "type": "string", 59 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 60 | } 61 | } 62 | } -------------------------------------------------------------------------------- /server/schema/resources/aws-redshift-clustersecuritygroupingress.json: -------------------------------------------------------------------------------- 1 | { 2 | "typeName": "AWS::Redshift::ClusterSecurityGroupIngress", 3 | "description": "Resource Type definition for AWS::Redshift::ClusterSecurityGroupIngress", 4 | "additionalProperties": false, 5 | "properties": { 6 | "Id": { 7 | "type": "string", 8 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 9 | }, 10 | "CIDRIP": { 11 | "type": "string", 12 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" 13 | }, 14 | "ClusterSecurityGroupName": { 15 | "type": "string", 16 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" 17 | }, 18 | "EC2SecurityGroupName": { 19 | "type": "string", 20 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" 21 | }, 22 | "EC2SecurityGroupOwnerId": { 23 | "type": "string", 24 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" 25 | } 26 | }, 27 | "required": [ 28 | "ClusterSecurityGroupName" 29 | ], 30 | "createOnlyProperties": [ 31 | "/properties/ClusterSecurityGroupName", 32 | "/properties/CIDRIP", 33 | "/properties/EC2SecurityGroupOwnerId", 34 | "/properties/EC2SecurityGroupName" 35 | ], 36 | "primaryIdentifier": [ 37 | "/properties/Id" 38 | ], 39 | "readOnlyProperties": [ 40 | "/properties/Id" 41 | ], 42 | "attributes": { 43 | "Id": { 44 | "type": "string", 45 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 46 | } 47 | } 48 | } -------------------------------------------------------------------------------- /server/schema/resources/aws-route53-dnssec.json: -------------------------------------------------------------------------------- 1 | { 2 | "typeName": "AWS::Route53::DNSSEC", 3 | "description": "Resource used to control (enable/disable) DNSSEC in a specific hosted zone.", 4 | "properties": { 5 | "HostedZoneId": { 6 | "description": "The unique string (ID) used to identify a hosted zone.", 7 | "type": "string", 8 | "markdownDescription": "The unique string (ID) used to identify a hosted zone.\n\n---\n\nRequired: Yes \nType: String \nPattern: ^[A-Z0-9]{1,32}$ \nUpdate requires: Replacement\n" 9 | } 10 | }, 11 | "additionalProperties": false, 12 | "createOnlyProperties": [ 13 | "/properties/HostedZoneId" 14 | ], 15 | "required": [ 16 | "HostedZoneId" 17 | ], 18 | "primaryIdentifier": [ 19 | "/properties/HostedZoneId" 20 | ], 21 | "tagging": { 22 | "taggable": false 23 | }, 24 | "handlers": { 25 | "create": { 26 | "permissions": [ 27 | "route53:GetDNSSEC", 28 | "route53:EnableHostedZoneDNSSEC", 29 | "kms:DescribeKey", 30 | "kms:GetPublicKey", 31 | "kms:Sign", 32 | "kms:CreateGrant" 33 | ] 34 | }, 35 | "read": { 36 | "permissions": [ 37 | "route53:GetDNSSEC" 38 | ] 39 | }, 40 | "delete": { 41 | "permissions": [ 42 | "route53:GetDNSSEC", 43 | "route53:DisableHostedZoneDNSSEC", 44 | "kms:DescribeKey", 45 | "kms:GetPublicKey", 46 | "kms:Sign", 47 | "kms:CreateGrant" 48 | ] 49 | }, 50 | "list": { 51 | "permissions": [ 52 | "route53:GetDNSSEC", 53 | "route53:ListHostedZones" 54 | ] 55 | } 56 | }, 57 | "attributes": {} 58 | } -------------------------------------------------------------------------------- /server/schema/resources/aws-s3outposts-bucketpolicy.json: -------------------------------------------------------------------------------- 1 | { 2 | "typeName": "AWS::S3Outposts::BucketPolicy", 3 | "description": "Resource Type Definition for AWS::S3Outposts::BucketPolicy", 4 | "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-s3outposts.git", 5 | "definitions": {}, 6 | "properties": { 7 | "Bucket": { 8 | "description": "The Amazon Resource Name (ARN) of the specified bucket.", 9 | "maxLength": 2048, 10 | "minLength": 20, 11 | "type": "string", 12 | "markdownDescription": "The Amazon Resource Name (ARN) of the specified bucket.\n\n---\n\nRequired: Yes \nType: String \nMinimum Length: 20 \nMaximum Length: 2048 \nPattern: ^arn:[^:]+:s3-outposts:[a-zA-Z0-9\\-]+:\\d{12}:outpost\\/[^:]+\\/bucket\\/[^:]+$ \nUpdate requires: Replacement\n" 13 | }, 14 | "PolicyDocument": { 15 | "description": "A policy document containing permissions to add to the specified bucket.", 16 | "type": "object", 17 | "markdownDescription": "A policy document containing permissions to add to the specified bucket.\n\n---\n\nRequired: Yes \nUpdate requires: No interruption\n" 18 | } 19 | }, 20 | "tagging": { 21 | "taggable": false, 22 | "tagOnCreate": false, 23 | "tagUpdatable": false, 24 | "cloudFormationSystemTags": false 25 | }, 26 | "additionalProperties": false, 27 | "createOnlyProperties": [ 28 | "/properties/Bucket" 29 | ], 30 | "required": [ 31 | "Bucket", 32 | "PolicyDocument" 33 | ], 34 | "primaryIdentifier": [ 35 | "/properties/Bucket" 36 | ], 37 | "handlers": { 38 | "create": { 39 | "permissions": [ 40 | "s3-outposts:PutBucketPolicy", 41 | "s3-outposts:GetBucketPolicy" 42 | ] 43 | }, 44 | "read": { 45 | "permissions": [ 46 | "s3-outposts:GetBucketPolicy" 47 | ] 48 | }, 49 | "update": { 50 | "permissions": [ 51 | "s3-outposts:PutBucketPolicy", 52 | "s3-outposts:GetBucketPolicy" 53 | ] 54 | }, 55 | "delete": { 56 | "permissions": [ 57 | "s3-outposts:DeleteBucketPolicy", 58 | "s3-outposts:GetBucketPolicy" 59 | ] 60 | } 61 | }, 62 | "attributes": {} 63 | } -------------------------------------------------------------------------------- /server/schema/resources/aws-sagemaker-notebookinstancelifecycleconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "typeName": "AWS::SageMaker::NotebookInstanceLifecycleConfig", 3 | "description": "Resource Type definition for AWS::SageMaker::NotebookInstanceLifecycleConfig", 4 | "additionalProperties": false, 5 | "properties": { 6 | "Id": { 7 | "type": "string", 8 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 9 | }, 10 | "NotebookInstanceLifecycleConfigName": { 11 | "type": "string", 12 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" 13 | }, 14 | "OnStart": { 15 | "type": "array", 16 | "uniqueItems": false, 17 | "items": { 18 | "$ref": "#/definitions/NotebookInstanceLifecycleHook" 19 | }, 20 | "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" 21 | }, 22 | "OnCreate": { 23 | "type": "array", 24 | "uniqueItems": false, 25 | "items": { 26 | "$ref": "#/definitions/NotebookInstanceLifecycleHook" 27 | }, 28 | "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" 29 | } 30 | }, 31 | "definitions": { 32 | "NotebookInstanceLifecycleHook": { 33 | "type": "object", 34 | "additionalProperties": false, 35 | "properties": { 36 | "Content": { 37 | "type": "string", 38 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" 39 | } 40 | }, 41 | "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" 42 | } 43 | }, 44 | "createOnlyProperties": [ 45 | "/properties/NotebookInstanceLifecycleConfigName" 46 | ], 47 | "primaryIdentifier": [ 48 | "/properties/Id" 49 | ], 50 | "readOnlyProperties": [ 51 | "/properties/Id" 52 | ], 53 | "attributes": { 54 | "Id": { 55 | "type": "string", 56 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 57 | } 58 | } 59 | } -------------------------------------------------------------------------------- /server/schema/resources/aws-sdb-domain.json: -------------------------------------------------------------------------------- 1 | { 2 | "typeName": "AWS::SDB::Domain", 3 | "description": "Resource Type definition for AWS::SDB::Domain", 4 | "additionalProperties": false, 5 | "properties": { 6 | "Id": { 7 | "type": "string", 8 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 9 | }, 10 | "Description": { 11 | "type": "string", 12 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" 13 | } 14 | }, 15 | "primaryIdentifier": [ 16 | "/properties/Id" 17 | ], 18 | "readOnlyProperties": [ 19 | "/properties/Id" 20 | ], 21 | "attributes": { 22 | "Id": { 23 | "type": "string", 24 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 25 | } 26 | } 27 | } -------------------------------------------------------------------------------- /server/schema/resources/aws-servicecatalog-acceptedportfolioshare.json: -------------------------------------------------------------------------------- 1 | { 2 | "typeName": "AWS::ServiceCatalog::AcceptedPortfolioShare", 3 | "description": "Resource Type definition for AWS::ServiceCatalog::AcceptedPortfolioShare", 4 | "additionalProperties": false, 5 | "properties": { 6 | "Id": { 7 | "type": "string", 8 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 9 | }, 10 | "AcceptLanguage": { 11 | "type": "string", 12 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" 13 | }, 14 | "PortfolioId": { 15 | "type": "string", 16 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" 17 | } 18 | }, 19 | "required": [ 20 | "PortfolioId" 21 | ], 22 | "createOnlyProperties": [ 23 | "/properties/PortfolioId", 24 | "/properties/AcceptLanguage" 25 | ], 26 | "primaryIdentifier": [ 27 | "/properties/Id" 28 | ], 29 | "readOnlyProperties": [ 30 | "/properties/Id" 31 | ], 32 | "attributes": { 33 | "Id": { 34 | "type": "string", 35 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 36 | } 37 | } 38 | } -------------------------------------------------------------------------------- /server/schema/resources/aws-servicecatalog-launchnotificationconstraint.json: -------------------------------------------------------------------------------- 1 | { 2 | "typeName": "AWS::ServiceCatalog::LaunchNotificationConstraint", 3 | "description": "Resource Type definition for AWS::ServiceCatalog::LaunchNotificationConstraint", 4 | "additionalProperties": false, 5 | "properties": { 6 | "Id": { 7 | "type": "string", 8 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 9 | }, 10 | "Description": { 11 | "type": "string", 12 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" 13 | }, 14 | "NotificationArns": { 15 | "type": "array", 16 | "uniqueItems": false, 17 | "items": { 18 | "type": "string", 19 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" 20 | }, 21 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" 22 | }, 23 | "AcceptLanguage": { 24 | "type": "string", 25 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" 26 | }, 27 | "PortfolioId": { 28 | "type": "string", 29 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" 30 | }, 31 | "ProductId": { 32 | "type": "string", 33 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" 34 | } 35 | }, 36 | "required": [ 37 | "NotificationArns", 38 | "PortfolioId", 39 | "ProductId" 40 | ], 41 | "createOnlyProperties": [ 42 | "/properties/PortfolioId", 43 | "/properties/ProductId" 44 | ], 45 | "primaryIdentifier": [ 46 | "/properties/Id" 47 | ], 48 | "readOnlyProperties": [ 49 | "/properties/Id" 50 | ], 51 | "attributes": { 52 | "Id": { 53 | "type": "string", 54 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 55 | } 56 | } 57 | } -------------------------------------------------------------------------------- /server/schema/resources/aws-servicecatalog-launchroleconstraint.json: -------------------------------------------------------------------------------- 1 | { 2 | "typeName": "AWS::ServiceCatalog::LaunchRoleConstraint", 3 | "description": "Resource Type definition for AWS::ServiceCatalog::LaunchRoleConstraint", 4 | "additionalProperties": false, 5 | "properties": { 6 | "Description": { 7 | "type": "string", 8 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" 9 | }, 10 | "LocalRoleName": { 11 | "type": "string", 12 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" 13 | }, 14 | "AcceptLanguage": { 15 | "type": "string", 16 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" 17 | }, 18 | "PortfolioId": { 19 | "type": "string", 20 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" 21 | }, 22 | "ProductId": { 23 | "type": "string", 24 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" 25 | }, 26 | "Id": { 27 | "type": "string", 28 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 29 | }, 30 | "RoleArn": { 31 | "type": "string", 32 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" 33 | } 34 | }, 35 | "required": [ 36 | "PortfolioId", 37 | "ProductId" 38 | ], 39 | "createOnlyProperties": [ 40 | "/properties/PortfolioId", 41 | "/properties/ProductId" 42 | ], 43 | "primaryIdentifier": [ 44 | "/properties/Id" 45 | ], 46 | "readOnlyProperties": [ 47 | "/properties/Id" 48 | ], 49 | "attributes": { 50 | "Id": { 51 | "type": "string", 52 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 53 | } 54 | } 55 | } -------------------------------------------------------------------------------- /server/schema/resources/aws-servicecatalog-launchtemplateconstraint.json: -------------------------------------------------------------------------------- 1 | { 2 | "typeName": "AWS::ServiceCatalog::LaunchTemplateConstraint", 3 | "description": "Resource Type definition for AWS::ServiceCatalog::LaunchTemplateConstraint", 4 | "additionalProperties": false, 5 | "properties": { 6 | "Id": { 7 | "type": "string", 8 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 9 | }, 10 | "Description": { 11 | "type": "string", 12 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" 13 | }, 14 | "AcceptLanguage": { 15 | "type": "string", 16 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" 17 | }, 18 | "PortfolioId": { 19 | "type": "string", 20 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" 21 | }, 22 | "ProductId": { 23 | "type": "string", 24 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" 25 | }, 26 | "Rules": { 27 | "type": "string", 28 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" 29 | } 30 | }, 31 | "required": [ 32 | "PortfolioId", 33 | "ProductId", 34 | "Rules" 35 | ], 36 | "createOnlyProperties": [ 37 | "/properties/PortfolioId", 38 | "/properties/ProductId" 39 | ], 40 | "primaryIdentifier": [ 41 | "/properties/Id" 42 | ], 43 | "readOnlyProperties": [ 44 | "/properties/Id" 45 | ], 46 | "attributes": { 47 | "Id": { 48 | "type": "string", 49 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 50 | } 51 | } 52 | } -------------------------------------------------------------------------------- /server/schema/resources/aws-servicecatalog-portfolioprincipalassociation.json: -------------------------------------------------------------------------------- 1 | { 2 | "typeName": "AWS::ServiceCatalog::PortfolioPrincipalAssociation", 3 | "description": "Resource Type definition for AWS::ServiceCatalog::PortfolioPrincipalAssociation", 4 | "additionalProperties": false, 5 | "properties": { 6 | "Id": { 7 | "type": "string", 8 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 9 | }, 10 | "PrincipalARN": { 11 | "type": "string", 12 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" 13 | }, 14 | "AcceptLanguage": { 15 | "type": "string", 16 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" 17 | }, 18 | "PortfolioId": { 19 | "type": "string", 20 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" 21 | }, 22 | "PrincipalType": { 23 | "type": "string", 24 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" 25 | } 26 | }, 27 | "required": [ 28 | "PortfolioId", 29 | "PrincipalType", 30 | "PrincipalARN" 31 | ], 32 | "createOnlyProperties": [ 33 | "/properties/PortfolioId", 34 | "/properties/AcceptLanguage", 35 | "/properties/PrincipalARN", 36 | "/properties/PrincipalType" 37 | ], 38 | "primaryIdentifier": [ 39 | "/properties/Id" 40 | ], 41 | "readOnlyProperties": [ 42 | "/properties/Id" 43 | ], 44 | "attributes": { 45 | "Id": { 46 | "type": "string", 47 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 48 | } 49 | } 50 | } -------------------------------------------------------------------------------- /server/schema/resources/aws-servicecatalog-portfolioproductassociation.json: -------------------------------------------------------------------------------- 1 | { 2 | "typeName": "AWS::ServiceCatalog::PortfolioProductAssociation", 3 | "description": "Resource Type definition for AWS::ServiceCatalog::PortfolioProductAssociation", 4 | "additionalProperties": false, 5 | "properties": { 6 | "Id": { 7 | "type": "string", 8 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 9 | }, 10 | "SourcePortfolioId": { 11 | "type": "string", 12 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" 13 | }, 14 | "AcceptLanguage": { 15 | "type": "string", 16 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" 17 | }, 18 | "PortfolioId": { 19 | "type": "string", 20 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" 21 | }, 22 | "ProductId": { 23 | "type": "string", 24 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" 25 | } 26 | }, 27 | "required": [ 28 | "PortfolioId", 29 | "ProductId" 30 | ], 31 | "createOnlyProperties": [ 32 | "/properties/SourcePortfolioId", 33 | "/properties/PortfolioId", 34 | "/properties/AcceptLanguage", 35 | "/properties/ProductId" 36 | ], 37 | "primaryIdentifier": [ 38 | "/properties/Id" 39 | ], 40 | "readOnlyProperties": [ 41 | "/properties/Id" 42 | ], 43 | "attributes": { 44 | "Id": { 45 | "type": "string", 46 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 47 | } 48 | } 49 | } -------------------------------------------------------------------------------- /server/schema/resources/aws-servicecatalog-portfolioshare.json: -------------------------------------------------------------------------------- 1 | { 2 | "typeName": "AWS::ServiceCatalog::PortfolioShare", 3 | "description": "Resource Type definition for AWS::ServiceCatalog::PortfolioShare", 4 | "additionalProperties": false, 5 | "properties": { 6 | "AcceptLanguage": { 7 | "type": "string", 8 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" 9 | }, 10 | "PortfolioId": { 11 | "type": "string", 12 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" 13 | }, 14 | "AccountId": { 15 | "type": "string", 16 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" 17 | }, 18 | "ShareTagOptions": { 19 | "type": "boolean", 20 | "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" 21 | }, 22 | "Id": { 23 | "type": "string", 24 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 25 | } 26 | }, 27 | "required": [ 28 | "AccountId", 29 | "PortfolioId" 30 | ], 31 | "createOnlyProperties": [ 32 | "/properties/AcceptLanguage", 33 | "/properties/AccountId", 34 | "/properties/PortfolioId" 35 | ], 36 | "primaryIdentifier": [ 37 | "/properties/Id" 38 | ], 39 | "readOnlyProperties": [ 40 | "/properties/Id" 41 | ], 42 | "attributes": { 43 | "Id": { 44 | "type": "string", 45 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 46 | } 47 | } 48 | } -------------------------------------------------------------------------------- /server/schema/resources/aws-servicecatalog-resourceupdateconstraint.json: -------------------------------------------------------------------------------- 1 | { 2 | "typeName": "AWS::ServiceCatalog::ResourceUpdateConstraint", 3 | "description": "Resource Type definition for AWS::ServiceCatalog::ResourceUpdateConstraint", 4 | "additionalProperties": false, 5 | "properties": { 6 | "Id": { 7 | "type": "string", 8 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 9 | }, 10 | "Description": { 11 | "type": "string", 12 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" 13 | }, 14 | "AcceptLanguage": { 15 | "type": "string", 16 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" 17 | }, 18 | "TagUpdateOnProvisionedProduct": { 19 | "type": "string", 20 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" 21 | }, 22 | "PortfolioId": { 23 | "type": "string", 24 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" 25 | }, 26 | "ProductId": { 27 | "type": "string", 28 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" 29 | } 30 | }, 31 | "required": [ 32 | "TagUpdateOnProvisionedProduct", 33 | "PortfolioId", 34 | "ProductId" 35 | ], 36 | "createOnlyProperties": [ 37 | "/properties/PortfolioId", 38 | "/properties/ProductId" 39 | ], 40 | "primaryIdentifier": [ 41 | "/properties/Id" 42 | ], 43 | "readOnlyProperties": [ 44 | "/properties/Id" 45 | ], 46 | "attributes": { 47 | "Id": { 48 | "type": "string", 49 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 50 | } 51 | } 52 | } -------------------------------------------------------------------------------- /server/schema/resources/aws-servicecatalog-tagoption.json: -------------------------------------------------------------------------------- 1 | { 2 | "typeName": "AWS::ServiceCatalog::TagOption", 3 | "description": "Resource Type definition for AWS::ServiceCatalog::TagOption", 4 | "additionalProperties": false, 5 | "properties": { 6 | "Id": { 7 | "type": "string", 8 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 9 | }, 10 | "Active": { 11 | "type": "boolean", 12 | "markdownDescription": "\n\n---\n\nRequired: No \nType: Boolean \nUpdate requires: No interruption\n" 13 | }, 14 | "Value": { 15 | "type": "string", 16 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" 17 | }, 18 | "Key": { 19 | "type": "string", 20 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" 21 | } 22 | }, 23 | "required": [ 24 | "Value", 25 | "Key" 26 | ], 27 | "createOnlyProperties": [ 28 | "/properties/Value", 29 | "/properties/Key" 30 | ], 31 | "primaryIdentifier": [ 32 | "/properties/Id" 33 | ], 34 | "readOnlyProperties": [ 35 | "/properties/Id" 36 | ], 37 | "attributes": { 38 | "Id": { 39 | "type": "string", 40 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 41 | } 42 | } 43 | } -------------------------------------------------------------------------------- /server/schema/resources/aws-servicecatalog-tagoptionassociation.json: -------------------------------------------------------------------------------- 1 | { 2 | "typeName": "AWS::ServiceCatalog::TagOptionAssociation", 3 | "description": "Resource Type definition for AWS::ServiceCatalog::TagOptionAssociation", 4 | "additionalProperties": false, 5 | "properties": { 6 | "Id": { 7 | "type": "string", 8 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 9 | }, 10 | "TagOptionId": { 11 | "type": "string", 12 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" 13 | }, 14 | "ResourceId": { 15 | "type": "string", 16 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" 17 | } 18 | }, 19 | "required": [ 20 | "TagOptionId", 21 | "ResourceId" 22 | ], 23 | "createOnlyProperties": [ 24 | "/properties/TagOptionId", 25 | "/properties/ResourceId" 26 | ], 27 | "primaryIdentifier": [ 28 | "/properties/Id" 29 | ], 30 | "readOnlyProperties": [ 31 | "/properties/Id" 32 | ], 33 | "attributes": { 34 | "Id": { 35 | "type": "string", 36 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 37 | } 38 | } 39 | } -------------------------------------------------------------------------------- /server/schema/resources/aws-servicediscovery-instance.json: -------------------------------------------------------------------------------- 1 | { 2 | "typeName": "AWS::ServiceDiscovery::Instance", 3 | "description": "Resource Type definition for AWS::ServiceDiscovery::Instance", 4 | "additionalProperties": false, 5 | "properties": { 6 | "InstanceAttributes": { 7 | "type": "object", 8 | "markdownDescription": "\n\n---\n\nRequired: Yes \nUpdate requires: No interruption\n" 9 | }, 10 | "InstanceId": { 11 | "type": "string", 12 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\nRead only property: Yes" 13 | }, 14 | "ServiceId": { 15 | "type": "string", 16 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" 17 | } 18 | }, 19 | "required": [ 20 | "InstanceAttributes", 21 | "ServiceId" 22 | ], 23 | "createOnlyProperties": [ 24 | "/properties/InstanceId", 25 | "/properties/ServiceId" 26 | ], 27 | "primaryIdentifier": [ 28 | "/properties/InstanceId" 29 | ], 30 | "readOnlyProperties": [ 31 | "/properties/InstanceId" 32 | ], 33 | "attributes": { 34 | "InstanceId": { 35 | "type": "string", 36 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\nRead only property: Yes" 37 | } 38 | } 39 | } -------------------------------------------------------------------------------- /server/schema/resources/aws-ses-dedicatedippool.json: -------------------------------------------------------------------------------- 1 | { 2 | "typeName": "AWS::SES::DedicatedIpPool", 3 | "description": "Resource Type definition for AWS::SES::DedicatedIpPool", 4 | "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-ses.git", 5 | "properties": { 6 | "PoolName": { 7 | "type": "string", 8 | "description": "The name of the dedicated IP pool.", 9 | "markdownDescription": "The name of the dedicated IP pool.\n\n---\n\nRequired: No \nType: String \nPattern: ^[a-z0-9_-]{0,64}$ \nUpdate requires: Replacement\n" 10 | }, 11 | "ScalingMode": { 12 | "type": "string", 13 | "description": "Specifies whether the dedicated IP pool is managed or not. The default value is STANDARD.", 14 | "markdownDescription": "Specifies whether the dedicated IP pool is managed or not. The default value is STANDARD.\n\n---\n\nRequired: No \nType: String \nPattern: ^(STANDARD|MANAGED)$ \nUpdate requires: Some interruptions\n" 15 | } 16 | }, 17 | "additionalProperties": false, 18 | "createOnlyProperties": [ 19 | "/properties/PoolName" 20 | ], 21 | "conditionalCreateOnlyProperties": [ 22 | "/properties/ScalingMode" 23 | ], 24 | "primaryIdentifier": [ 25 | "/properties/PoolName" 26 | ], 27 | "handlers": { 28 | "create": { 29 | "permissions": [ 30 | "ses:CreateDedicatedIpPool", 31 | "ses:GetDedicatedIpPool", 32 | "ses:GetDedicatedIps" 33 | ] 34 | }, 35 | "read": { 36 | "permissions": [ 37 | "ses:GetDedicatedIpPool", 38 | "ses:GetDedicatedIps" 39 | ] 40 | }, 41 | "update": { 42 | "permissions": [ 43 | "ses:PutDedicatedIpPoolScalingAttributes", 44 | "ses:GetDedicatedIpPool" 45 | ] 46 | }, 47 | "delete": { 48 | "permissions": [ 49 | "ses:DeleteDedicatedIpPool" 50 | ] 51 | }, 52 | "list": { 53 | "permissions": [ 54 | "ses:ListDedicatedIpPools" 55 | ] 56 | } 57 | }, 58 | "attributes": {} 59 | } -------------------------------------------------------------------------------- /server/schema/resources/aws-ses-receiptruleset.json: -------------------------------------------------------------------------------- 1 | { 2 | "typeName": "AWS::SES::ReceiptRuleSet", 3 | "description": "Resource Type definition for AWS::SES::ReceiptRuleSet", 4 | "additionalProperties": false, 5 | "properties": { 6 | "Id": { 7 | "type": "string", 8 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 9 | }, 10 | "RuleSetName": { 11 | "type": "string", 12 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: Replacement\n" 13 | } 14 | }, 15 | "createOnlyProperties": [ 16 | "/properties/RuleSetName" 17 | ], 18 | "primaryIdentifier": [ 19 | "/properties/Id" 20 | ], 21 | "readOnlyProperties": [ 22 | "/properties/Id" 23 | ], 24 | "attributes": { 25 | "Id": { 26 | "type": "string", 27 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 28 | } 29 | } 30 | } -------------------------------------------------------------------------------- /server/schema/resources/aws-sns-topicinlinepolicy.json: -------------------------------------------------------------------------------- 1 | { 2 | "typeName": "AWS::SNS::TopicInlinePolicy", 3 | "description": "Schema for AWS::SNS::TopicInlinePolicy", 4 | "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-sns.git", 5 | "additionalProperties": false, 6 | "properties": { 7 | "PolicyDocument": { 8 | "description": "A policy document that contains permissions to add to the specified SNS topics.", 9 | "type": "object", 10 | "markdownDescription": "A policy document that contains permissions to add to the specified SNS topics.\n\n---\n\nRequired: Yes \nUpdate requires: No interruption\n" 11 | }, 12 | "TopicArn": { 13 | "description": "The Amazon Resource Name (ARN) of the topic to which you want to add the policy.", 14 | "type": "string", 15 | "markdownDescription": "The Amazon Resource Name (ARN) of the topic to which you want to add the policy.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" 16 | } 17 | }, 18 | "tagging": { 19 | "taggable": false, 20 | "tagOnCreate": false, 21 | "tagUpdatable": false, 22 | "cloudFormationSystemTags": false 23 | }, 24 | "required": [ 25 | "PolicyDocument", 26 | "TopicArn" 27 | ], 28 | "primaryIdentifier": [ 29 | "/properties/TopicArn" 30 | ], 31 | "createOnlyProperties": [ 32 | "/properties/TopicArn" 33 | ], 34 | "handlers": { 35 | "create": { 36 | "permissions": [ 37 | "sns:SetTopicAttributes", 38 | "sns:GetTopicAttributes" 39 | ] 40 | }, 41 | "read": { 42 | "permissions": [ 43 | "sns:GetTopicAttributes" 44 | ] 45 | }, 46 | "delete": { 47 | "permissions": [ 48 | "sns:SetTopicAttributes", 49 | "sns:GetTopicAttributes" 50 | ] 51 | }, 52 | "update": { 53 | "permissions": [ 54 | "sns:SetTopicAttributes", 55 | "sns:GetTopicAttributes" 56 | ] 57 | } 58 | }, 59 | "attributes": {} 60 | } -------------------------------------------------------------------------------- /server/schema/resources/aws-sqs-queueinlinepolicy.json: -------------------------------------------------------------------------------- 1 | { 2 | "typeName": "AWS::SQS::QueueInlinePolicy", 3 | "description": "Schema for SQS QueueInlinePolicy", 4 | "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-sqs.git", 5 | "properties": { 6 | "PolicyDocument": { 7 | "description": "A policy document that contains permissions to add to the specified SQS queue", 8 | "type": "object", 9 | "markdownDescription": "A policy document that contains permissions to add to the specified SQS queue\n\n---\n\nRequired: Yes \nUpdate requires: No interruption\n" 10 | }, 11 | "Queue": { 12 | "description": "The URL of the SQS queue.", 13 | "type": "string", 14 | "markdownDescription": "The URL of the SQS queue.\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" 15 | } 16 | }, 17 | "additionalProperties": false, 18 | "tagging": { 19 | "taggable": false, 20 | "tagOnCreate": false, 21 | "tagUpdatable": false, 22 | "cloudFormationSystemTags": false 23 | }, 24 | "required": [ 25 | "PolicyDocument", 26 | "Queue" 27 | ], 28 | "primaryIdentifier": [ 29 | "/properties/Queue" 30 | ], 31 | "createOnlyProperties": [ 32 | "/properties/Queue" 33 | ], 34 | "handlers": { 35 | "create": { 36 | "permissions": [ 37 | "sqs:SetQueueAttributes", 38 | "sqs:GetQueueAttributes", 39 | "sqs:GetQueueUrl" 40 | ] 41 | }, 42 | "read": { 43 | "permissions": [ 44 | "sqs:GetQueueAttributes", 45 | "sqs:GetQueueUrl" 46 | ] 47 | }, 48 | "delete": { 49 | "permissions": [ 50 | "sqs:SetQueueAttributes", 51 | "sqs:GetQueueAttributes" 52 | ] 53 | }, 54 | "update": { 55 | "permissions": [ 56 | "sqs:SetQueueAttributes", 57 | "sqs:GetQueueAttributes", 58 | "sqs:GetQueueUrl" 59 | ] 60 | } 61 | }, 62 | "attributes": {} 63 | } -------------------------------------------------------------------------------- /server/schema/resources/aws-vpclattice-resourcepolicy.json: -------------------------------------------------------------------------------- 1 | { 2 | "typeName": "AWS::VpcLattice::ResourcePolicy", 3 | "description": "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.", 4 | "additionalProperties": false, 5 | "properties": { 6 | "ResourceArn": { 7 | "type": "string", 8 | "minLength": 20, 9 | "maxLength": 200, 10 | "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" 11 | }, 12 | "Policy": { 13 | "type": "object", 14 | "markdownDescription": "\n\n---\n\nRequired: Yes \nUpdate requires: No interruption\n" 15 | } 16 | }, 17 | "required": [ 18 | "ResourceArn", 19 | "Policy" 20 | ], 21 | "createOnlyProperties": [ 22 | "/properties/ResourceArn" 23 | ], 24 | "primaryIdentifier": [ 25 | "/properties/ResourceArn" 26 | ], 27 | "handlers": { 28 | "create": { 29 | "permissions": [ 30 | "vpc-lattice:GetResourcePolicy", 31 | "vpc-lattice:PutResourcePolicy" 32 | ] 33 | }, 34 | "read": { 35 | "permissions": [ 36 | "vpc-lattice:GetResourcePolicy" 37 | ] 38 | }, 39 | "update": { 40 | "permissions": [ 41 | "vpc-lattice:GetResourcePolicy", 42 | "vpc-lattice:PutResourcePolicy" 43 | ] 44 | }, 45 | "delete": { 46 | "permissions": [ 47 | "vpc-lattice:GetResourcePolicy", 48 | "vpc-lattice:DeleteResourcePolicy" 49 | ] 50 | } 51 | }, 52 | "tagging": { 53 | "taggable": false 54 | }, 55 | "attributes": {} 56 | } -------------------------------------------------------------------------------- /server/schema/resources/aws-waf-ipset.json: -------------------------------------------------------------------------------- 1 | { 2 | "typeName": "AWS::WAF::IPSet", 3 | "description": "Resource Type definition for AWS::WAF::IPSet", 4 | "additionalProperties": false, 5 | "properties": { 6 | "Id": { 7 | "type": "string", 8 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 9 | }, 10 | "IPSetDescriptors": { 11 | "type": "array", 12 | "uniqueItems": true, 13 | "items": { 14 | "$ref": "#/definitions/IPSetDescriptor" 15 | }, 16 | "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" 17 | }, 18 | "Name": { 19 | "type": "string", 20 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" 21 | } 22 | }, 23 | "definitions": { 24 | "IPSetDescriptor": { 25 | "type": "object", 26 | "additionalProperties": false, 27 | "properties": { 28 | "Type": { 29 | "type": "string", 30 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" 31 | }, 32 | "Value": { 33 | "type": "string", 34 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" 35 | } 36 | }, 37 | "required": [ 38 | "Value", 39 | "Type" 40 | ], 41 | "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" 42 | } 43 | }, 44 | "required": [ 45 | "Name" 46 | ], 47 | "createOnlyProperties": [ 48 | "/properties/Name" 49 | ], 50 | "primaryIdentifier": [ 51 | "/properties/Id" 52 | ], 53 | "readOnlyProperties": [ 54 | "/properties/Id" 55 | ], 56 | "attributes": { 57 | "Id": { 58 | "type": "string", 59 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 60 | } 61 | } 62 | } -------------------------------------------------------------------------------- /server/schema/resources/aws-wafregional-geomatchset.json: -------------------------------------------------------------------------------- 1 | { 2 | "typeName": "AWS::WAFRegional::GeoMatchSet", 3 | "description": "Resource Type definition for AWS::WAFRegional::GeoMatchSet", 4 | "additionalProperties": false, 5 | "properties": { 6 | "Id": { 7 | "type": "string", 8 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 9 | }, 10 | "GeoMatchConstraints": { 11 | "type": "array", 12 | "uniqueItems": false, 13 | "items": { 14 | "$ref": "#/definitions/GeoMatchConstraint" 15 | }, 16 | "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" 17 | }, 18 | "Name": { 19 | "type": "string", 20 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" 21 | } 22 | }, 23 | "definitions": { 24 | "GeoMatchConstraint": { 25 | "type": "object", 26 | "additionalProperties": false, 27 | "properties": { 28 | "Type": { 29 | "type": "string", 30 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" 31 | }, 32 | "Value": { 33 | "type": "string", 34 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" 35 | } 36 | }, 37 | "required": [ 38 | "Value", 39 | "Type" 40 | ], 41 | "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" 42 | } 43 | }, 44 | "required": [ 45 | "Name" 46 | ], 47 | "createOnlyProperties": [ 48 | "/properties/Name" 49 | ], 50 | "primaryIdentifier": [ 51 | "/properties/Id" 52 | ], 53 | "readOnlyProperties": [ 54 | "/properties/Id" 55 | ], 56 | "attributes": { 57 | "Id": { 58 | "type": "string", 59 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 60 | } 61 | } 62 | } -------------------------------------------------------------------------------- /server/schema/resources/aws-wafregional-ipset.json: -------------------------------------------------------------------------------- 1 | { 2 | "typeName": "AWS::WAFRegional::IPSet", 3 | "description": "Resource Type definition for AWS::WAFRegional::IPSet", 4 | "additionalProperties": false, 5 | "properties": { 6 | "Id": { 7 | "type": "string", 8 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 9 | }, 10 | "IPSetDescriptors": { 11 | "type": "array", 12 | "uniqueItems": false, 13 | "items": { 14 | "$ref": "#/definitions/IPSetDescriptor" 15 | }, 16 | "markdownDescription": "\n\n---\n\nRequired: No \nType: Array \nUpdate requires: No interruption\n" 17 | }, 18 | "Name": { 19 | "type": "string", 20 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" 21 | } 22 | }, 23 | "definitions": { 24 | "IPSetDescriptor": { 25 | "type": "object", 26 | "additionalProperties": false, 27 | "properties": { 28 | "Type": { 29 | "type": "string", 30 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" 31 | }, 32 | "Value": { 33 | "type": "string", 34 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: No interruption\n" 35 | } 36 | }, 37 | "required": [ 38 | "Value", 39 | "Type" 40 | ], 41 | "markdownDescription": "\n\n---\n\nRequired: No \nUpdate requires: No interruption\n" 42 | } 43 | }, 44 | "required": [ 45 | "Name" 46 | ], 47 | "createOnlyProperties": [ 48 | "/properties/Name" 49 | ], 50 | "primaryIdentifier": [ 51 | "/properties/Id" 52 | ], 53 | "readOnlyProperties": [ 54 | "/properties/Id" 55 | ], 56 | "attributes": { 57 | "Id": { 58 | "type": "string", 59 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 60 | } 61 | } 62 | } -------------------------------------------------------------------------------- /server/schema/resources/aws-wafregional-regexpatternset.json: -------------------------------------------------------------------------------- 1 | { 2 | "typeName": "AWS::WAFRegional::RegexPatternSet", 3 | "description": "Resource Type definition for AWS::WAFRegional::RegexPatternSet", 4 | "additionalProperties": false, 5 | "properties": { 6 | "Id": { 7 | "type": "string", 8 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 9 | }, 10 | "RegexPatternStrings": { 11 | "type": "array", 12 | "uniqueItems": false, 13 | "items": { 14 | "type": "string", 15 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\n" 16 | }, 17 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: Array \nUpdate requires: No interruption\n" 18 | }, 19 | "Name": { 20 | "type": "string", 21 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" 22 | } 23 | }, 24 | "required": [ 25 | "RegexPatternStrings", 26 | "Name" 27 | ], 28 | "createOnlyProperties": [ 29 | "/properties/Name" 30 | ], 31 | "primaryIdentifier": [ 32 | "/properties/Id" 33 | ], 34 | "readOnlyProperties": [ 35 | "/properties/Id" 36 | ], 37 | "attributes": { 38 | "Id": { 39 | "type": "string", 40 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 41 | } 42 | } 43 | } -------------------------------------------------------------------------------- /server/schema/resources/aws-wafregional-webaclassociation.json: -------------------------------------------------------------------------------- 1 | { 2 | "typeName": "AWS::WAFRegional::WebACLAssociation", 3 | "description": "Resource Type definition for AWS::WAFRegional::WebACLAssociation", 4 | "additionalProperties": false, 5 | "properties": { 6 | "Id": { 7 | "type": "string", 8 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 9 | }, 10 | "ResourceArn": { 11 | "type": "string", 12 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" 13 | }, 14 | "WebACLId": { 15 | "type": "string", 16 | "markdownDescription": "\n\n---\n\nRequired: Yes \nType: String \nUpdate requires: Replacement\n" 17 | } 18 | }, 19 | "required": [ 20 | "ResourceArn", 21 | "WebACLId" 22 | ], 23 | "createOnlyProperties": [ 24 | "/properties/ResourceArn", 25 | "/properties/WebACLId" 26 | ], 27 | "primaryIdentifier": [ 28 | "/properties/Id" 29 | ], 30 | "readOnlyProperties": [ 31 | "/properties/Id" 32 | ], 33 | "attributes": { 34 | "Id": { 35 | "type": "string", 36 | "markdownDescription": "\n\n---\n\nRequired: No \nType: String \nUpdate requires: No interruption\nRead only property: Yes" 37 | } 38 | } 39 | } -------------------------------------------------------------------------------- /server/schema/types.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json-schema.org/draft-07/schema#", 3 | "$id": "https://aws.amazon.com/cloudformation/template/types.schema.json", 4 | "title": "Types", 5 | "description": "CloudFormation template JSON Schema specification for resource property types", 6 | "type": "object", 7 | "definitions": { 8 | "Scalar": { 9 | "oneOf": [ 10 | { 11 | "$ref": "intrinsics.schema.json#/definitions/FnRef" 12 | }, 13 | { 14 | "$ref": "intrinsics.schema.json#/definitions/FnGetAtt" 15 | }, 16 | { 17 | "$ref": "intrinsics.schema.json#/definitions/FnFindInMap" 18 | }, 19 | { 20 | "$ref": "intrinsics.schema.json#/definitions/FnImportValue" 21 | }, 22 | { 23 | "$ref": "intrinsics.schema.json#/definitions/FnIf" 24 | }, 25 | { 26 | "$ref": "intrinsics.schema.json#/definitions/FnSelect" 27 | }, 28 | { 29 | "$ref": "intrinsics.schema.json#/definitions/FnSub" 30 | }, 31 | { 32 | "$ref": "intrinsics.schema.json#/definitions/FnTransform" 33 | } 34 | ] 35 | }, 36 | "Array": { 37 | "oneOf": [ 38 | { 39 | "$ref": "intrinsics.schema.json#/definitions/FnGetAtt" 40 | }, 41 | { 42 | "$ref": "intrinsics.schema.json#/definitions/FnFindInMap" 43 | }, 44 | { 45 | "$ref": "intrinsics.schema.json#/definitions/FnIf" 46 | }, 47 | { 48 | "$ref": "intrinsics.schema.json#/definitions/FnSplit" 49 | }, 50 | { 51 | "$ref": "intrinsics.schema.json#/definitions/FnTransform" 52 | } 53 | ] 54 | }, 55 | "Object": { 56 | "oneOf": [ 57 | { 58 | "$ref": "intrinsics.schema.json#/definitions/FnSelect" 59 | }, 60 | { 61 | "$ref": "intrinsics.schema.json#/definitions/FnIf" 62 | }, 63 | { 64 | "$ref": "intrinsics.schema.json#/definitions/FnTransform" 65 | } 66 | ] 67 | } 68 | } 69 | } -------------------------------------------------------------------------------- /server/src/requestTypes.ts: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | /* 3 | Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 4 | 5 | Licensed under the Apache License, Version 2.0 (the "License"). 6 | You may not use this file except in compliance with the License. 7 | A copy of the License is located at 8 | 9 | http://www.apache.org/licenses/LICENSE-2.0 10 | 11 | or in the "license" file accompanying this file. This file is distributed 12 | on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 13 | express or implied. See the License for the specific language governing 14 | permissions and limitations under the License. 15 | */ 16 | 17 | import { NotificationType } from "vscode-languageserver"; 18 | 19 | export namespace RequestPreview { 20 | export const type: NotificationType<{}> = new NotificationType( 21 | "cfn/requestPreview" 22 | ); 23 | } 24 | 25 | export namespace PreviewClosed { 26 | export const type: NotificationType<{}> = new NotificationType( 27 | "cfn/previewClosed" 28 | ); 29 | } 30 | 31 | export namespace ResultLimitReachedNotification { 32 | export const type: NotificationType = new NotificationType( 33 | "cfn/resultLimitReached" 34 | ); 35 | } 36 | 37 | export namespace ValidateCfnLintVersion { 38 | export const type: NotificationType<{}> = new NotificationType( 39 | "cfn/validateCfnLintVersion" 40 | ); 41 | } 42 | -------------------------------------------------------------------------------- /server/src/server/handlers/helpers.ts: -------------------------------------------------------------------------------- 1 | export function isYaml(filename: string): Boolean { 2 | if (filename.endsWith(".yaml") || filename.endsWith(".yml")) { 3 | return true; 4 | } 5 | return false; 6 | } 7 | -------------------------------------------------------------------------------- /server/src/service/cfnLanguageService.ts: -------------------------------------------------------------------------------- 1 | import { YAMLSchemaService } from "yaml-language-server/out/server/src/languageservice/services/yamlSchemaService"; 2 | import { ClientCapabilities, Connection } from "vscode-languageserver"; 3 | import { TelemetryImpl } from "yaml-language-server/out/server/src/languageserver/telemetry"; 4 | import { SettingsState } from "yaml-language-server/out/server/src/yamlSettings"; 5 | import { 6 | LanguageService as YamlLanguageService, 7 | SchemaRequestService, 8 | WorkspaceContextService, 9 | } from "yaml-language-server"; 10 | import { getLanguageService as getYamlLanguageService } from "yaml-language-server"; 11 | 12 | export interface LanguageService extends YamlLanguageService { 13 | schemaService: YAMLSchemaService; 14 | } 15 | 16 | export function getLanguageService( 17 | schemaRequestService: SchemaRequestService, 18 | workspaceContext: WorkspaceContextService, 19 | connection: Connection, 20 | telemetry: TelemetryImpl, 21 | yamlSettings: SettingsState, 22 | clientCapabilities?: ClientCapabilities 23 | ): LanguageService { 24 | const schemaService = new YAMLSchemaService( 25 | schemaRequestService, 26 | workspaceContext 27 | ); 28 | const service = getYamlLanguageService({ 29 | schemaRequestService: schemaRequestService, 30 | workspaceContext: workspaceContext, 31 | connection: connection, 32 | telemetry: telemetry, 33 | yamlSettings: yamlSettings, 34 | clientCapabilities: clientCapabilities, 35 | }); 36 | 37 | return { 38 | ...service, 39 | schemaService: schemaService, 40 | }; 41 | } 42 | -------------------------------------------------------------------------------- /server/src/service/services/cfnVersion.ts: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | /* 3 | Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 4 | 5 | Licensed under the Apache License, Version 2.0 (the "License"). 6 | You may not use this file except in compliance with the License. 7 | A copy of the License is located at 8 | 9 | http://www.apache.org/licenses/LICENSE-2.0 10 | 11 | or in the "license" file accompanying this file. This file is distributed 12 | on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 13 | express or implied. See the License for the specific language governing 14 | permissions and limitations under the License. 15 | */ 16 | 17 | import { spawn, ChildProcess } from "child_process"; 18 | import { Diagnostic } from "vscode-languageserver"; 19 | 20 | export class CfnVersion { 21 | child: ChildProcess; 22 | diagnostics: Diagnostic[]; 23 | stdout: string; 24 | start: number; 25 | end: number; 26 | 27 | constructor(cmd: string) { 28 | this.child = spawn(cmd, ["--version"], { 29 | shell: true, 30 | }); 31 | this.start = 0; 32 | this.end = Number.MAX_VALUE; 33 | this.stdout = ""; 34 | } 35 | 36 | exec(): Promise { 37 | return new Promise((resolve, reject) => { 38 | const handlers = { 39 | resolve, 40 | reject, 41 | }; 42 | this.child.on("error", (err) => this._onError(err)); 43 | this.child.stdout.on("data", (data) => this._onStdOutData(data)); 44 | this.child.on("close", () => this._onClose(handlers)); 45 | }); 46 | } 47 | 48 | private _onError(err: Error): void { 49 | console.log(err); 50 | } 51 | 52 | private _onStdOutData(data: Buffer) { 53 | this.stdout = this.stdout.concat( 54 | data.toString().replace("cfn-lint ", "").trim() 55 | ); 56 | return; 57 | } 58 | 59 | private _onClose(handlers: any) { 60 | handlers.resolve(this.stdout); 61 | } 62 | } 63 | -------------------------------------------------------------------------------- /server/src/utils/markdownString.ts: -------------------------------------------------------------------------------- 1 | import { MarkupContent } from "vscode-languageserver-types"; 2 | 3 | // Code based on https://github.com/typescript-language-server/typescript-language-server/blob/3722b51c0ad8e758c4e42f622bbe25ae981071e1/src/utils/MarkdownString.ts 4 | export class MarkdownString { 5 | constructor(public value = "") {} 6 | 7 | appendText(value: string): MarkdownString { 8 | this.value += escapeMarkdownSyntaxTokens(value) 9 | .replace(/([ \t]+)/g, (_match, g1) => " ".repeat(g1.length)) 10 | .replace(/>/gm, "\\>") 11 | .replace(/\n/g, "\\\n"); 12 | 13 | return this; 14 | } 15 | 16 | appendMarkdown(value: string): MarkdownString { 17 | this.value += value; 18 | return this; 19 | } 20 | 21 | appendCodeblock(langId: string, code: string): MarkdownString { 22 | this.value += "\n```"; 23 | this.value += langId; 24 | this.value += "\n"; 25 | this.value += code; 26 | this.value += "\n```\n"; 27 | return this; 28 | } 29 | 30 | toMarkupContent(): MarkupContent { 31 | return { 32 | kind: "markdown", 33 | value: this.value, 34 | }; 35 | } 36 | } 37 | 38 | export function escapeMarkdownSyntaxTokens(text: string): string { 39 | // escape markdown syntax tokens: http://daringfireball.net/projects/markdown/syntax#backslash 40 | return text.replace(/[\\`*_{}[\]()#+\-!]/g, "\\$&"); 41 | } 42 | -------------------------------------------------------------------------------- /server/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.base.json", 3 | "compilerOptions": { 4 | "target": "es6", 5 | "module": "commonjs", 6 | "moduleResolution": "node", 7 | "sourceMap": true, 8 | "lib" : [ "es6" ], 9 | "outDir": "out", 10 | "rootDir": "src" 11 | }, 12 | "include": [ 13 | "src" 14 | ], 15 | "exclude": [ 16 | "node_modules" 17 | ] 18 | } -------------------------------------------------------------------------------- /tsconfig.base.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "noImplicitAny": true, 4 | "noImplicitReturns": true, 5 | "noUnusedLocals": true, 6 | "noUnusedParameters": true 7 | } 8 | } -------------------------------------------------------------------------------- /tslint.json: -------------------------------------------------------------------------------- 1 | { 2 | "rules": { 3 | "no-string-throw": true, 4 | "no-unused-expression": true, 5 | "no-duplicate-variable": true, 6 | "curly": true, 7 | "class-name": true, 8 | "semicolon": [ 9 | true, 10 | "always" 11 | ], 12 | "triple-equals": true 13 | }, 14 | "defaultSeverity": "warning" 15 | } -------------------------------------------------------------------------------- /vsc-extension-quickstart.md: -------------------------------------------------------------------------------- 1 | # Welcome to your VS Code Extension 2 | 3 | ## What's in the folder 4 | * This folder contains all of the files necessary for your extension. 5 | * `package.json` - this is the manifest file in which you declare your extension and command. 6 | The sample plugin registers a command and defines its title and command name. With this information 7 | VS Code can show the command in the command palette. It doesn’t yet need to load the plugin. 8 | * `src/extension.ts` - this is the main file where you will provide the implementation of your command. 9 | The file exports one function, `activate`, which is called the very first time your extension is 10 | activated (in this case by executing the command). Inside the `activate` function we call `registerCommand`. 11 | We pass the function containing the implementation of the command as the second parameter to 12 | `registerCommand`. 13 | 14 | ## Get up and running straight away 15 | * Press `F5` to open a new window with your extension loaded. 16 | * Run your command from the command palette by pressing (`Ctrl+Shift+P` or `Cmd+Shift+P` on Mac) and typing `Hello World`. 17 | * Set breakpoints in your code inside `src/extension.ts` to debug your extension. 18 | * Find output from your extension in the debug console. 19 | 20 | ## Make changes 21 | * You can relaunch the extension from the debug toolbar after changing code in `src/extension.ts`. 22 | * You can also reload (`Ctrl+R` or `Cmd+R` on Mac) the VS Code window with your extension to load your changes. 23 | 24 | ## Explore the API 25 | * You can open the full set of our API when you open the file `node_modules/vscode/vscode.d.ts`. 26 | 27 | ## Run tests 28 | * Open the debug viewlet (`Ctrl+Shift+D` or `Cmd+Shift+D` on Mac) and from the launch configuration dropdown pick `Launch Tests`. 29 | * Press `F5` to run the tests in a new window with your extension loaded. 30 | * See the output of the test result in the debug console. 31 | * Make changes to `test/extension.test.ts` or create new test files inside the `test` folder. 32 | * By convention, the test runner will only consider files matching the name pattern `**.test.ts`. 33 | * You can create folders inside the `test` folder to structure your tests any way you want. 34 | --------------------------------------------------------------------------------