├── .editorconfig ├── .eslintrc.js ├── .github └── ISSUE_TEMPLATE │ ├── bug_report.md │ └── feature_request.md ├── .gitignore ├── .travis.yml ├── .vscode ├── extensions.json ├── launch.json ├── settings.json └── tasks.json ├── .vscodeignore ├── CHANGELOG.md ├── COPYING ├── README-zh.md ├── README.md ├── fileicons ├── seti.woff └── vs-seti-icon-theme.json ├── language-configuration.json ├── media ├── aliyun-serverless-extension.png ├── changelog │ ├── v1.1.0 │ │ ├── local-opt.gif │ │ ├── multi-account-region-switch.gif │ │ └── multi-debug-session.gif │ ├── v1.10.0 │ │ ├── cronExpression.png │ │ └── invokePanel.gif │ ├── v1.11.0 │ │ ├── copy-paste.gif │ │ └── invokePanel.gif │ ├── v1.12.0 │ │ ├── funfile-completion.gif │ │ └── memorySize-tip.gif │ ├── v1.13.0 │ │ └── language-suggestion.gif │ ├── v1.14.0 │ │ └── changelog.gif │ ├── v1.15.0 │ │ ├── flow-info.gif │ │ ├── startExec.gif │ │ └── updateFlow.gif │ ├── v1.16.0 │ │ ├── localGraph.gif │ │ ├── remoteGraph.gif │ │ └── remoteInvoke.gif │ ├── v1.18.0 │ │ ├── codeuri-config.gif │ │ ├── instanceConcurrency.gif │ │ └── remote-panel.gif │ ├── v1.19.0 │ │ ├── documentSymbol.gif │ │ ├── fcConsole.gif │ │ └── ramPolicy.gif │ ├── v1.2.0 │ │ ├── fun-import.gif │ │ ├── remote-resource-panel.gif │ │ └── template-jump.gif │ ├── v1.3.0 │ │ ├── menu-added.gif │ │ ├── template-auto-complete.gif │ │ └── template-resource-url.gif │ ├── v1.4.0 │ │ ├── template-highlight.gif │ │ ├── template-icon.gif │ │ └── template-validate.gif │ ├── v1.5.0 │ │ ├── local-resource-nas.gif │ │ ├── local-resource-trigger.gif │ │ ├── partial-deploy.gif │ │ └── rainbow.gif │ ├── v1.6.0 │ │ ├── multi-tmp.gif │ │ ├── quick-ros.gif │ │ └── template-hover.gif │ ├── v1.7.0 │ │ ├── install.gif │ │ └── runtime-lib-refer.gif │ ├── v1.8.0 │ │ ├── fun-sbox.gif │ │ └── tpl-event.gif │ └── v1.9.0 │ │ ├── funfile.gif │ │ └── http-trigger.gif ├── dark │ ├── boolean.svg │ ├── box.svg │ ├── cdn_events.svg │ ├── choice.svg │ ├── code.svg │ ├── debug.svg │ ├── dependency.svg │ ├── deploy.svg │ ├── document.svg │ ├── download.svg │ ├── edit.svg │ ├── execution.svg │ ├── fail.svg │ ├── fc.svg │ ├── flow.svg │ ├── fnf.svg │ ├── folder.svg │ ├── foreach.svg │ ├── function.svg │ ├── goto.svg │ ├── http.svg │ ├── invoke.svg │ ├── log.svg │ ├── loop.svg │ ├── mns_topic.svg │ ├── nas.svg │ ├── number.svg │ ├── oss.svg │ ├── parallel.svg │ ├── pass.svg │ ├── plus.svg │ ├── project-init.svg │ ├── rds.svg │ ├── refresh.svg │ ├── ros.svg │ ├── string.svg │ ├── succeed.svg │ ├── tablestore.svg │ ├── task.svg │ ├── timer.svg │ └── wait.svg ├── fc.svg ├── fnf.svg ├── light │ ├── boolean.svg │ ├── box.svg │ ├── cdn_events.svg │ ├── choice.svg │ ├── code.svg │ ├── debug.svg │ ├── dependency.svg │ ├── deploy.svg │ ├── document.svg │ ├── download.svg │ ├── edit.svg │ ├── execution.svg │ ├── fail.svg │ ├── fc.svg │ ├── flow.svg │ ├── fnf.svg │ ├── folder.svg │ ├── foreach.svg │ ├── function.svg │ ├── goto.svg │ ├── http.svg │ ├── invoke.svg │ ├── log.svg │ ├── loop.svg │ ├── mns_topic.svg │ ├── nas.svg │ ├── number.svg │ ├── oss.svg │ ├── parallel.svg │ ├── pass.svg │ ├── plus.svg │ ├── project-init.svg │ ├── rds.svg │ ├── refresh.svg │ ├── ros.svg │ ├── string.svg │ ├── succeed.svg │ ├── tablestore.svg │ ├── task.svg │ ├── timer.svg │ └── wait.svg └── snapshot │ ├── bind-account-result.png │ ├── bind-account-toast.png │ ├── bind-account.png │ ├── create-func-result.png │ ├── create-func-toast.png │ ├── create-func-under-service.png │ ├── create-func-under-tmp.png │ ├── create-func.png │ ├── deploy-result.png │ ├── deploy-under-func.png │ ├── deploy-under-service.png │ ├── deploy-under-tmp.png │ ├── deploy.png │ ├── goto-template.png │ ├── local-debug-result.png │ ├── local-debug.png │ ├── local-invoke-event.png │ ├── local-invoke-result.png │ ├── local-invoke.png │ ├── remote-invoke-event.png │ ├── remote-invoke-result.png │ ├── remote-invoke.png │ ├── switch-region.png │ ├── tmp-auto-complete.png │ ├── tmp-hover.png │ ├── tmp-validate.png │ └── two-dimension-code.png ├── package-lock.json ├── package.json ├── resources ├── font-awesome │ ├── css │ │ └── font-awesome.min.css │ └── fonts │ │ ├── FontAwesome.otf │ │ ├── fontawesome-webfont.eot │ │ ├── fontawesome-webfont.svg │ │ ├── fontawesome-webfont.ttf │ │ ├── fontawesome-webfont.woff │ │ └── fontawesome-webfont.woff2 ├── monaco-editor │ └── min │ │ └── vs │ │ ├── base │ │ └── worker │ │ │ └── workerMain.js │ │ ├── basic-languages │ │ ├── apex │ │ │ └── apex.js │ │ ├── azcli │ │ │ └── azcli.js │ │ ├── bat │ │ │ └── bat.js │ │ ├── clojure │ │ │ └── clojure.js │ │ ├── coffee │ │ │ └── coffee.js │ │ ├── cpp │ │ │ └── cpp.js │ │ ├── csharp │ │ │ └── csharp.js │ │ ├── csp │ │ │ └── csp.js │ │ ├── css │ │ │ └── css.js │ │ ├── dockerfile │ │ │ └── dockerfile.js │ │ ├── fsharp │ │ │ └── fsharp.js │ │ ├── go │ │ │ └── go.js │ │ ├── graphql │ │ │ └── graphql.js │ │ ├── handlebars │ │ │ └── handlebars.js │ │ ├── html │ │ │ └── html.js │ │ ├── ini │ │ │ └── ini.js │ │ ├── java │ │ │ └── java.js │ │ ├── javascript │ │ │ └── javascript.js │ │ ├── kotlin │ │ │ └── kotlin.js │ │ ├── less │ │ │ └── less.js │ │ ├── lua │ │ │ └── lua.js │ │ ├── markdown │ │ │ └── markdown.js │ │ ├── msdax │ │ │ └── msdax.js │ │ ├── mysql │ │ │ └── mysql.js │ │ ├── objective-c │ │ │ └── objective-c.js │ │ ├── pascal │ │ │ └── pascal.js │ │ ├── perl │ │ │ └── perl.js │ │ ├── pgsql │ │ │ └── pgsql.js │ │ ├── php │ │ │ └── php.js │ │ ├── postiats │ │ │ └── postiats.js │ │ ├── powerquery │ │ │ └── powerquery.js │ │ ├── powershell │ │ │ └── powershell.js │ │ ├── pug │ │ │ └── pug.js │ │ ├── python │ │ │ └── python.js │ │ ├── r │ │ │ └── r.js │ │ ├── razor │ │ │ └── razor.js │ │ ├── redis │ │ │ └── redis.js │ │ ├── redshift │ │ │ └── redshift.js │ │ ├── ruby │ │ │ └── ruby.js │ │ ├── rust │ │ │ └── rust.js │ │ ├── sb │ │ │ └── sb.js │ │ ├── scheme │ │ │ └── scheme.js │ │ ├── scss │ │ │ └── scss.js │ │ ├── shell │ │ │ └── shell.js │ │ ├── solidity │ │ │ └── solidity.js │ │ ├── sql │ │ │ └── sql.js │ │ ├── st │ │ │ └── st.js │ │ ├── swift │ │ │ └── swift.js │ │ ├── tcl │ │ │ └── tcl.js │ │ ├── typescript │ │ │ └── typescript.js │ │ ├── vb │ │ │ └── vb.js │ │ ├── xml │ │ │ └── xml.js │ │ └── yaml │ │ │ └── yaml.js │ │ ├── editor │ │ ├── editor.main.css │ │ ├── editor.main.js │ │ ├── editor.main.nls.de.js │ │ ├── editor.main.nls.es.js │ │ ├── editor.main.nls.fr.js │ │ ├── editor.main.nls.it.js │ │ ├── editor.main.nls.ja.js │ │ ├── editor.main.nls.js │ │ ├── editor.main.nls.ko.js │ │ ├── editor.main.nls.ru.js │ │ ├── editor.main.nls.zh-cn.js │ │ └── editor.main.nls.zh-tw.js │ │ ├── language │ │ ├── css │ │ │ ├── cssMode.js │ │ │ └── cssWorker.js │ │ ├── html │ │ │ ├── htmlMode.js │ │ │ └── htmlWorker.js │ │ ├── json │ │ │ ├── jsonMode.js │ │ │ └── jsonWorker.js │ │ └── typescript │ │ │ ├── tsMode.js │ │ │ └── tsWorker.js │ │ └── loader.js └── web │ ├── flow │ ├── .env │ ├── package-lock.json │ ├── package.json │ ├── public │ │ ├── index.html │ │ └── manifest.json │ ├── scripts │ │ └── build-non-split.js │ ├── src │ │ ├── App.css │ │ ├── App.tsx │ │ ├── components │ │ │ ├── IconButton │ │ │ │ ├── index.css │ │ │ │ └── index.tsx │ │ │ ├── ReactJson │ │ │ │ └── index.tsx │ │ │ ├── TabPanel │ │ │ │ └── index.tsx │ │ │ ├── TableCell │ │ │ │ └── index.tsx │ │ │ └── Tabs │ │ │ │ └── index.tsx │ │ ├── containers │ │ │ ├── DefinitionGraph │ │ │ │ └── index.tsx │ │ │ ├── ExecutionHistory │ │ │ │ └── index.tsx │ │ │ ├── ExecutionInfo │ │ │ │ └── index.tsx │ │ │ ├── ExecutionList │ │ │ │ └── index.tsx │ │ │ ├── ExecutionStart │ │ │ │ └── index.tsx │ │ │ ├── FlowDefinition │ │ │ │ └── index.tsx │ │ │ ├── FlowDefinitionGraph │ │ │ │ └── index.tsx │ │ │ ├── FlowInfo │ │ │ │ └── index.tsx │ │ │ └── fc │ │ │ │ ├── FunctionInfo │ │ │ │ ├── index.css │ │ │ │ └── index.tsx │ │ │ │ ├── FunctionList │ │ │ │ └── index.tsx │ │ │ │ ├── ServiceInfo │ │ │ │ └── index.tsx │ │ │ │ └── TriggerList │ │ │ │ └── index.tsx │ │ ├── declarations.d.ts │ │ ├── index.css │ │ ├── index.tsx │ │ ├── mocks │ │ │ └── mock.ts │ │ ├── props.d.ts │ │ ├── react-app-env.d.ts │ │ ├── routes │ │ │ └── fc │ │ │ │ └── index.tsx │ │ ├── serviceWorker.ts │ │ ├── services │ │ │ └── service.ts │ │ └── utils │ │ │ ├── graph │ │ │ ├── constants.ts │ │ │ ├── description.ts │ │ │ └── graph.ts │ │ │ ├── schema.ts │ │ │ └── utils.ts │ └── tsconfig.json │ ├── function │ ├── index.html │ └── style.css │ ├── localInvoke │ ├── index.html │ └── style.css │ ├── service │ ├── index.html │ └── style.css │ └── trigger │ ├── cdn_events │ └── index.html │ ├── http │ └── index.html │ ├── log │ └── index.html │ ├── mns_topic │ └── index.html │ ├── oss │ └── index.html │ ├── rds │ └── index.html │ ├── style.css │ ├── tablestore │ └── index.html │ └── timer │ └── index.html ├── snippets.json ├── src ├── commands │ ├── bindAccount.ts │ ├── copyPasteFunction.ts │ ├── createEventFile.ts │ ├── createFunction.ts │ ├── deploy.ts │ ├── deployFunction.ts │ ├── deployService.ts │ ├── fnf │ │ ├── createRemoteFlow.ts │ │ ├── gotoFnFConsole.ts │ │ ├── showDefinitionGraph.ts │ │ └── showRemoteFlowInfo.ts │ ├── gotoFCConsole.ts │ ├── gotoFlowCode.ts │ ├── gotoFlowDefinition.ts │ ├── gotoFunctionCode.ts │ ├── gotoFunctionDefinition.ts │ ├── gotoNasDefinition.ts │ ├── gotoServiceDefinition.ts │ ├── gotoTemplate.ts │ ├── gotoTriggerDefinition.ts │ ├── importFunction.ts │ ├── importService.ts │ ├── initProject.ts │ ├── installPackage.ts │ ├── localDebugFunction.ts │ ├── localInvokeConfig.ts │ ├── localInvokeFunction.ts │ ├── localStartFunction.ts │ ├── openNasLocalDir.ts │ ├── referRuntimeLib.ts │ ├── remoteInvokeFunction.ts │ ├── reportIssue.ts │ ├── showLocalInvokePanel.ts │ ├── showRegionStatus.ts │ ├── showRemoteFunctionInfo.ts │ ├── showRemoteServiceInfo.ts │ ├── showRemoteTriggerInfo.ts │ ├── showUpdateNotification.ts │ ├── startLocalSandbox.ts │ ├── switchAccount.ts │ ├── switchEventFile.ts │ ├── switchOrBindAccount.ts │ ├── switchRegion.ts │ ├── switchRegionOrAccount.ts │ ├── syncNas.ts │ ├── viewDocumentation.ts │ ├── viewQuickStart.ts │ └── viewSource.ts ├── completions │ ├── FlowDefinitionCompletionProvider.ts │ ├── FunfileCompletionProvider.ts │ └── ROSTemplateCompletionProvider.ts ├── decorations │ └── RainbowDecorator.ts ├── definitions │ └── ROSTemplateDefinitionProvider.ts ├── descriptors │ └── descriptor.ts ├── diagnostics │ ├── FlowDefinitionDiagnosticsProvider.ts │ └── ROSTemplateDiagnosticsProvider.ts ├── documentSymbols │ └── ROSTemplateDocumentSymbolProvider.ts ├── extension.ts ├── extensionVariables.ts ├── hovers │ ├── FlowDefinitionHoverProvider.ts │ └── ROSTemplateHoverProvider.ts ├── language-service │ ├── jsonSchema.ts │ ├── model │ │ └── customTags.ts │ ├── parser │ │ └── jsonParser.ts │ ├── schema │ │ ├── flowSchema.json │ │ ├── ros │ │ │ ├── ALIYUN-ACTIONTRAIL-Trail.json │ │ │ ├── ALIYUN-ACTIONTRAIL-TrailLogging.json │ │ │ ├── ALIYUN-ARMS-AlertContact.json │ │ │ ├── ALIYUN-ARMS-AlertContactGroup.json │ │ │ ├── ALIYUN-ARMS-RetcodeApp.json │ │ │ ├── ALIYUN-ApiGateway-Api.json │ │ │ ├── ALIYUN-ApiGateway-App.json │ │ │ ├── ALIYUN-ApiGateway-Authorization.json │ │ │ ├── ALIYUN-ApiGateway-CustomDomain.json │ │ │ ├── ALIYUN-ApiGateway-Deployment.json │ │ │ ├── ALIYUN-ApiGateway-Group.json │ │ │ ├── ALIYUN-ApiGateway-Signature.json │ │ │ ├── ALIYUN-ApiGateway-SignatureBinding.json │ │ │ ├── ALIYUN-ApiGateway-StageConfig.json │ │ │ ├── ALIYUN-ApiGateway-TrafficControl.json │ │ │ ├── ALIYUN-ApiGateway-TrafficControlBinding.json │ │ │ ├── ALIYUN-ApiGateway-VpcAccessConfig.json │ │ │ ├── ALIYUN-BSS-WaitOrder.json │ │ │ ├── ALIYUN-CAS-Certificate.json │ │ │ ├── ALIYUN-CDN-Domain.json │ │ │ ├── ALIYUN-CDN-DomainConfig.json │ │ │ ├── ALIYUN-CEN-CenBandwidthLimit.json │ │ │ ├── ALIYUN-CEN-CenBandwidthPackage.json │ │ │ ├── ALIYUN-CEN-CenBandwidthPackageAssociation.json │ │ │ ├── ALIYUN-CEN-CenInstance.json │ │ │ ├── ALIYUN-CEN-CenInstanceAttachment.json │ │ │ ├── ALIYUN-CEN-RouteEntry.json │ │ │ ├── ALIYUN-CLOUDFW-AddressBook.json │ │ │ ├── ALIYUN-CLOUDFW-ControlPolicy.json │ │ │ ├── ALIYUN-CMS-EventRule.json │ │ │ ├── ALIYUN-CMS-EventRuleTargets.json │ │ │ ├── ALIYUN-CMS-MonitorGroup.json │ │ │ ├── ALIYUN-CR-Namespace.json │ │ │ ├── ALIYUN-CR-Repository.json │ │ │ ├── ALIYUN-CS-KubernetesCluster.json │ │ │ ├── ALIYUN-CS-ManagedKubernetesCluster.json │ │ │ ├── ALIYUN-DATAHUB-Project.json │ │ │ ├── ALIYUN-DATAHUB-Topic.json │ │ │ ├── ALIYUN-DNS-Domain.json │ │ │ ├── ALIYUN-DNS-DomainGroup.json │ │ │ ├── ALIYUN-DNS-DomainRecord.json │ │ │ ├── ALIYUN-DRDS-DrdsInstance.json │ │ │ ├── ALIYUN-DTS-MigrationJob.json │ │ │ ├── ALIYUN-DTS-SynchronizationJob.json │ │ │ ├── ALIYUN-ECI-ContainerGroup.json │ │ │ ├── ALIYUN-ECI-ImageCache.json │ │ │ ├── ALIYUN-ECS-AssignIpv6Addresses.json │ │ │ ├── ALIYUN-ECS-AssignPrivateIpAddresses.json │ │ │ ├── ALIYUN-ECS-AutoProvisioningGroup.json │ │ │ ├── ALIYUN-ECS-AutoSnapshotPolicy.json │ │ │ ├── ALIYUN-ECS-BandwidthPackage.json │ │ │ ├── ALIYUN-ECS-Command.json │ │ │ ├── ALIYUN-ECS-CopyImage.json │ │ │ ├── ALIYUN-ECS-CustomImage.json │ │ │ ├── ALIYUN-ECS-DedicatedHost.json │ │ │ ├── ALIYUN-ECS-DeploymentSet.json │ │ │ ├── ALIYUN-ECS-Disk.json │ │ │ ├── ALIYUN-ECS-DiskAttachment.json │ │ │ ├── ALIYUN-ECS-ForwardEntry.json │ │ │ ├── ALIYUN-ECS-HpcCluster.json │ │ │ ├── ALIYUN-ECS-Instance.json │ │ │ ├── ALIYUN-ECS-InstanceClone.json │ │ │ ├── ALIYUN-ECS-InstanceGroup.json │ │ │ ├── ALIYUN-ECS-InstanceGroupClone.json │ │ │ ├── ALIYUN-ECS-Invocation.json │ │ │ ├── ALIYUN-ECS-JoinSecurityGroup.json │ │ │ ├── ALIYUN-ECS-LaunchTemplate.json │ │ │ ├── ALIYUN-ECS-NatGateway.json │ │ │ ├── ALIYUN-ECS-NetworkInterface.json │ │ │ ├── ALIYUN-ECS-NetworkInterfaceAttachment.json │ │ │ ├── ALIYUN-ECS-NetworkInterfacePermission.json │ │ │ ├── ALIYUN-ECS-PrepayInstance.json │ │ │ ├── ALIYUN-ECS-PrepayInstanceGroupClone.json │ │ │ ├── ALIYUN-ECS-Route.json │ │ │ ├── ALIYUN-ECS-SNatEntry.json │ │ │ ├── ALIYUN-ECS-SSHKeyPair.json │ │ │ ├── ALIYUN-ECS-SSHKeyPairAttachment.json │ │ │ ├── ALIYUN-ECS-SecurityGroup.json │ │ │ ├── ALIYUN-ECS-SecurityGroupClone.json │ │ │ ├── ALIYUN-ECS-SecurityGroupEgress.json │ │ │ ├── ALIYUN-ECS-SecurityGroupIngress.json │ │ │ ├── ALIYUN-ECS-Snapshot.json │ │ │ ├── ALIYUN-ECS-VPC.json │ │ │ ├── ALIYUN-ECS-VSwitch.json │ │ │ ├── ALIYUN-EDAS-Application.json │ │ │ ├── ALIYUN-EDAS-Cluster.json │ │ │ ├── ALIYUN-EDAS-ClusterMember.json │ │ │ ├── ALIYUN-EDAS-DeployGroup.json │ │ │ ├── ALIYUN-EDAS-UserDefineRegion.json │ │ │ ├── ALIYUN-EHPC-Cluster.json │ │ │ ├── ALIYUN-EMR-Cluster.json │ │ │ ├── ALIYUN-ESS-AlarmTask.json │ │ │ ├── ALIYUN-ESS-AlarmTaskEnable.json │ │ │ ├── ALIYUN-ESS-LifecycleHook.json │ │ │ ├── ALIYUN-ESS-ScalingConfiguration.json │ │ │ ├── ALIYUN-ESS-ScalingGroup.json │ │ │ ├── ALIYUN-ESS-ScalingGroupEnable.json │ │ │ ├── ALIYUN-ESS-ScalingRule.json │ │ │ ├── ALIYUN-ESS-ScheduledTask.json │ │ │ ├── ALIYUN-ElasticSearch-Instance.json │ │ │ ├── ALIYUN-FC-Alias.json │ │ │ ├── ALIYUN-FC-CustomDomain.json │ │ │ ├── ALIYUN-FC-Function.json │ │ │ ├── ALIYUN-FC-FunctionInvoker.json │ │ │ ├── ALIYUN-FC-Service.json │ │ │ ├── ALIYUN-FC-Trigger.json │ │ │ ├── ALIYUN-FC-Version.json │ │ │ ├── ALIYUN-FNF-Flow.json │ │ │ ├── ALIYUN-FOAS-Cluster.json │ │ │ ├── ALIYUN-FOAS-Project.json │ │ │ ├── ALIYUN-IOT-Device.json │ │ │ ├── ALIYUN-IOT-DeviceGroup.json │ │ │ ├── ALIYUN-IOT-Product.json │ │ │ ├── ALIYUN-KAFKA-Topic.json │ │ │ ├── ALIYUN-KMS-Alias.json │ │ │ ├── ALIYUN-KMS-Key.json │ │ │ ├── ALIYUN-MEMCACHE-Instance.json │ │ │ ├── ALIYUN-MNS-Queue.json │ │ │ ├── ALIYUN-MNS-Subscription.json │ │ │ ├── ALIYUN-MNS-Topic.json │ │ │ ├── ALIYUN-MONGODB-Instance.json │ │ │ ├── ALIYUN-MarketPlace-Order.json │ │ │ ├── ALIYUN-NAS-AccessGroup.json │ │ │ ├── ALIYUN-NAS-AccessRule.json │ │ │ ├── ALIYUN-NAS-FileSystem.json │ │ │ ├── ALIYUN-NAS-MountTarget.json │ │ │ ├── ALIYUN-OOS-Execution.json │ │ │ ├── ALIYUN-OOS-Template.json │ │ │ ├── ALIYUN-OSS-Bucket.json │ │ │ ├── ALIYUN-OTS-Instance.json │ │ │ ├── ALIYUN-OTS-Table.json │ │ │ ├── ALIYUN-OTS-VpcBinder.json │ │ │ ├── ALIYUN-POLARDB-Account.json │ │ │ ├── ALIYUN-POLARDB-AccountPrivilege.json │ │ │ ├── ALIYUN-POLARDB-DBCluster.json │ │ │ ├── ALIYUN-POLARDB-DBClusterAccessWhiteList.json │ │ │ ├── ALIYUN-POLARDB-DBClusterEndpoint.json │ │ │ ├── ALIYUN-POLARDB-DBClusterEndpointAddress.json │ │ │ ├── ALIYUN-POLARDB-DBInstance.json │ │ │ ├── ALIYUN-POLARDB-DBNodes.json │ │ │ ├── ALIYUN-PVTZ-Zone.json │ │ │ ├── ALIYUN-PVTZ-ZoneRecord.json │ │ │ ├── ALIYUN-PVTZ-ZoneVpcBinder.json │ │ │ ├── ALIYUN-RAM-AccessKey.json │ │ │ ├── ALIYUN-RAM-AttachPolicyToRole.json │ │ │ ├── ALIYUN-RAM-Group.json │ │ │ ├── ALIYUN-RAM-ManagedPolicy.json │ │ │ ├── ALIYUN-RAM-Role.json │ │ │ ├── ALIYUN-RAM-User.json │ │ │ ├── ALIYUN-RAM-UserToGroupAddition.json │ │ │ ├── ALIYUN-RDS-Account.json │ │ │ ├── ALIYUN-RDS-AccountPrivilege.json │ │ │ ├── ALIYUN-RDS-DBInstance.json │ │ │ ├── ALIYUN-RDS-DBInstanceParameterGroup.json │ │ │ ├── ALIYUN-RDS-DBInstanceSecurityIps.json │ │ │ ├── ALIYUN-RDS-PrepayDBInstance.json │ │ │ ├── ALIYUN-RDS-ReadOnlyDBInstance.json │ │ │ ├── ALIYUN-REDIS-Account.json │ │ │ ├── ALIYUN-REDIS-Instance.json │ │ │ ├── ALIYUN-REDIS-PrepayInstance.json │ │ │ ├── ALIYUN-REDIS-Whitelist.json │ │ │ ├── ALIYUN-ROCKETMQ-Group.json │ │ │ ├── ALIYUN-ROCKETMQ-Instance.json │ │ │ ├── ALIYUN-ROCKETMQ-Topic.json │ │ │ ├── ALIYUN-ROS-CustomResource.json │ │ │ ├── ALIYUN-ROS-Stack.json │ │ │ ├── ALIYUN-ROS-WaitCondition.json │ │ │ ├── ALIYUN-ROS-WaitConditionHandle.json │ │ │ ├── ALIYUN-SAG-ACL.json │ │ │ ├── ALIYUN-SAG-ACLAssociation.json │ │ │ ├── ALIYUN-SAG-ACLRule.json │ │ │ ├── ALIYUN-SAG-CloudConnectNetwork.json │ │ │ ├── ALIYUN-SAG-GrantCcnToCen.json │ │ │ ├── ALIYUN-SAG-SmartAccessGatewayBinding.json │ │ │ ├── ALIYUN-SLB-AccessControl.json │ │ │ ├── ALIYUN-SLB-BackendServerAttachment.json │ │ │ ├── ALIYUN-SLB-BackendServerToVServerGroupAddition.json │ │ │ ├── ALIYUN-SLB-Certificate.json │ │ │ ├── ALIYUN-SLB-DomainExtension.json │ │ │ ├── ALIYUN-SLB-Listener.json │ │ │ ├── ALIYUN-SLB-LoadBalancer.json │ │ │ ├── ALIYUN-SLB-LoadBalancerClone.json │ │ │ ├── ALIYUN-SLB-MasterSlaveServerGroup.json │ │ │ ├── ALIYUN-SLB-Rule.json │ │ │ ├── ALIYUN-SLB-VServerGroup.json │ │ │ ├── ALIYUN-SLS-ApplyConfigToMachineGroup.json │ │ │ ├── ALIYUN-SLS-Index.json │ │ │ ├── ALIYUN-SLS-Logstore.json │ │ │ ├── ALIYUN-SLS-LogtailConfig.json │ │ │ ├── ALIYUN-SLS-MachineGroup.json │ │ │ ├── ALIYUN-SLS-Project.json │ │ │ ├── ALIYUN-UIS-Uis.json │ │ │ ├── ALIYUN-UIS-UisConnection.json │ │ │ ├── ALIYUN-UIS-UisNode.json │ │ │ ├── ALIYUN-VPC-CommonBandwidthPackage.json │ │ │ ├── ALIYUN-VPC-CommonBandwidthPackageIp.json │ │ │ ├── ALIYUN-VPC-CustomerGateway.json │ │ │ ├── ALIYUN-VPC-EIP.json │ │ │ ├── ALIYUN-VPC-EIPAssociation.json │ │ │ ├── ALIYUN-VPC-PeeringRouterInterfaceBinding.json │ │ │ ├── ALIYUN-VPC-PeeringRouterInterfaceConnection.json │ │ │ ├── ALIYUN-VPC-RouteTable.json │ │ │ ├── ALIYUN-VPC-RouteTableAssociation.json │ │ │ ├── ALIYUN-VPC-RouterInterface.json │ │ │ ├── ALIYUN-VPC-SnatEntry.json │ │ │ ├── ALIYUN-VPC-SslVpnClientCert.json │ │ │ ├── ALIYUN-VPC-SslVpnServer.json │ │ │ ├── ALIYUN-VPC-VpnConnection.json │ │ │ ├── ALIYUN-VPC-VpnGateway.json │ │ │ ├── ALIYUN-VS-Group.json │ │ │ ├── ALIYUN-WAF-AclRule.json │ │ │ ├── ALIYUN-WAF-DomainConfig.json │ │ │ └── ALIYUN-WAF-WafSwitch.json │ │ └── rosSchema.ts │ └── services │ │ └── jsonSchemaService.ts ├── lens │ ├── FunctionComputeLensLocalInvokePanelItem.ts │ ├── ServerlessLensConfigItem.ts │ ├── ServerlessLensDebugItem.ts │ ├── ServerlessLensInvokeItem.ts │ └── ServerlessLensProvider.ts ├── models │ ├── events.ts │ └── resource.ts ├── parser │ ├── ASTNode.ts │ ├── ArrayASTNode.ts │ ├── BooleanASTNode.ts │ ├── ItemASTNode.ts │ ├── NullASTNode.ts │ ├── NumberASTNode.ts │ ├── ObjectASTNode.ts │ ├── PropertyASTNode.ts │ ├── SlotASTNode.ts │ ├── StringASTNode.ts │ └── parser.ts ├── schema │ ├── constants.ts │ └── schema.ts ├── services │ ├── BaseService.ts │ ├── FunService.ts │ ├── FunctionComputeService.ts │ ├── FunctionFlowService.ts │ └── TemplateService.ts ├── test │ ├── extension.test.ts │ └── index.ts ├── tree │ ├── LocalResourceProvider.ts │ ├── RemoteResourceExplorer.ts │ └── fnf │ │ └── FnFRemoteResourceProvider.ts ├── types.ts ├── types │ └── @alicloud │ │ └── fc2 │ │ └── index.d.ts ├── ui │ └── MultiStepInput.ts ├── utils │ ├── channel.ts │ ├── config.ts │ ├── constants.ts │ ├── cpUtils.ts │ ├── document.ts │ ├── file.ts │ ├── fun.ts │ ├── localConfig.ts │ ├── output.ts │ ├── runtime.ts │ ├── template.ts │ ├── templateUtil.ts │ ├── terminal.ts │ └── visitor.ts ├── validate │ └── validateFunInstalled.ts └── webview │ ├── AbstractFlowPanelCreator.ts │ ├── AbstractInfoPanelCreator.ts │ ├── FlowDefinitionPanelCreator.ts │ ├── FlowInfoPanelCreator.ts │ ├── FunctionInfoPanelCreator.ts │ ├── IInfoPanelCreator.ts │ ├── LocalInvokePanelCreator.ts │ ├── PanelManager.ts │ ├── ServiceInfoPanelCreator.ts │ └── TriggerInfoPanelCreator.ts ├── syntaxes └── funfile.tmLanguage.json ├── templates ├── dotnetcore-helloworld │ ├── App.cs │ └── project.csproj ├── dotnetcore-http │ ├── App.cs │ └── project.csproj ├── fun.sh ├── java-helloworld │ ├── pom.xml │ └── src │ │ └── main │ │ └── java │ │ └── example │ │ └── App.java ├── java-http │ ├── pom.xml │ └── src │ │ └── main │ │ └── java │ │ └── example │ │ └── App.java ├── lib │ ├── nodejs │ │ └── package.json │ ├── python2.7 │ │ └── requirements.txt │ └── python3 │ │ └── requirements.txt ├── nodejs-helloworld │ └── index.js ├── nodejs-http │ └── index.js ├── php-helloworld │ └── index.php ├── php-http │ └── index.php ├── python-helloworld │ └── index.py └── python-http │ └── index.py ├── tsconfig.json └── tslint.json /.editorconfig: -------------------------------------------------------------------------------- 1 | # http://editorconfig.org 2 | 3 | root = true 4 | 5 | # 对所有文件生效 6 | [*] 7 | charset = utf-8 8 | indent_style = space 9 | indent_size = 2 10 | end_of_line = lf 11 | insert_final_newline = true 12 | trim_trailing_whitespace = true 13 | 14 | # 对后缀名为 md 的文件生效 15 | [*.md] 16 | trim_trailing_whitespace = false 17 | -------------------------------------------------------------------------------- /.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | parser: "@typescript-eslint/parser", 3 | plugins: ["@typescript-eslint"], 4 | env: { 5 | node: true, 6 | }, 7 | rules: { 8 | "@typescript-eslint/indent": ["error", 2], 9 | "max-len": ["error", { 10 | "code": 120 11 | }], 12 | "quotes": [1, "single", { "avoidEscape": true }], 13 | "comma-spacing": ["error", { 14 | "before": false, 15 | "after": true, 16 | }] 17 | }, 18 | parserOptions: { 19 | "ecmaVersion": 6, 20 | "sourceType": "module", 21 | "ecmaFeatures": { 22 | "jsx": true 23 | } 24 | } 25 | }; 26 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help us improve 4 | title: '' 5 | labels: bug 6 | assignees: ChanDaoH 7 | 8 | --- 9 | 10 | **Describe the bug** 11 | A clear and concise description of what the bug is. 12 | 13 | **To Reproduce** 14 | Steps to reproduce the behavior: 15 | 1. Go to '...' 16 | 2. Click on '....' 17 | 3. Scroll down to '....' 18 | 4. See error 19 | 20 | **Expected behavior** 21 | A clear and concise description of what you expected to happen. 22 | 23 | **Screenshots** 24 | If applicable, add screenshots to help explain your problem. 25 | 26 | **Desktop (please complete the following information):** 27 | - OS: [e.g. Windows8, MacOS 10.14.5] 28 | - VSCode Version: [e.g. 1.36.1] 29 | - Aliyun Serverless Extension Version [e.g. 1.2.0] 30 | 31 | 32 | **Additional context** 33 | Add any other context about the problem here. 34 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | title: '' 5 | labels: enhancement 6 | assignees: vangie 7 | 8 | --- 9 | 10 | **Is your feature request related to a problem? Please describe.** 11 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] 12 | 13 | **Describe the solution you'd like** 14 | A clear and concise description of what you want to happen. 15 | 16 | **Describe alternatives you've considered** 17 | A clear and concise description of any alternative solutions or features you've considered. 18 | 19 | **Additional context** 20 | Add any other context or screenshots about the feature request here. 21 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | out 2 | node_modules 3 | .vscode-test/ 4 | *.vsix 5 | **/.DS_Store 6 | **/build 7 | .idea -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | sudo: true 2 | 3 | language: node_js 4 | 5 | node_js: 6 | - '10' 7 | 8 | os: 9 | - linux 10 | 11 | services: 12 | - xvfb 13 | 14 | install: 15 | - npm install 16 | - npm run vscode:prepublish 17 | 18 | script: 19 | - npm test --silent 20 | - npm run lint 21 | -------------------------------------------------------------------------------- /.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | // See http://go.microsoft.com/fwlink/?LinkId=827846 3 | // for the documentation about the extensions.json format 4 | "recommendations": [ 5 | "ms-vscode.vscode-typescript-tslint-plugin" 6 | ] 7 | } 8 | -------------------------------------------------------------------------------- /.vscode/launch.json: -------------------------------------------------------------------------------- 1 | // A launch configuration that compiles the extension and then opens it inside a new window 2 | // Use IntelliSense to learn about possible attributes. 3 | // Hover to view descriptions of existing attributes. 4 | // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 5 | { 6 | "version": "0.2.0", 7 | "configurations": [{ 8 | "name": "Run Extension", 9 | "type": "extensionHost", 10 | "request": "launch", 11 | "runtimeExecutable": "${execPath}", 12 | "args": [ 13 | "--extensionDevelopmentPath=${workspaceFolder}" 14 | ], 15 | "outFiles": [ 16 | "${workspaceFolder}/out/**/*.js" 17 | ], 18 | "preLaunchTask": "npm: watch" 19 | }, 20 | { 21 | "name": "Extension Tests", 22 | "type": "extensionHost", 23 | "request": "launch", 24 | "runtimeExecutable": "${execPath}", 25 | "args": [ 26 | "--extensionDevelopmentPath=${workspaceFolder}", 27 | "--extensionTestsPath=${workspaceFolder}/out/test" 28 | ], 29 | "outFiles": [ 30 | "${workspaceFolder}/out/test/**/*.js" 31 | ], 32 | "preLaunchTask": "npm: watch" 33 | } 34 | ] 35 | } 36 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | // Place your settings in this file to overwrite default and user settings. 2 | { 3 | "files.exclude": { 4 | "out": false // set this to true to hide the "out" folder with the compiled JS files 5 | }, 6 | "search.exclude": { 7 | "out": true // set this to false to include "out" folder in search results 8 | }, 9 | // Turn off tsc task auto detection since we have the necessary tasks as npm scripts 10 | "typescript.tsc.autoDetect": "off" 11 | } 12 | -------------------------------------------------------------------------------- /.vscode/tasks.json: -------------------------------------------------------------------------------- 1 | // See https://go.microsoft.com/fwlink/?LinkId=733558 2 | // for the documentation about the tasks.json format 3 | { 4 | "version": "2.0.0", 5 | "tasks": [ 6 | { 7 | "type": "npm", 8 | "script": "watch", 9 | "problemMatcher": "$tsc-watch", 10 | "isBackground": true, 11 | "presentation": { 12 | "reveal": "never" 13 | }, 14 | "group": { 15 | "kind": "build", 16 | "isDefault": true 17 | } 18 | } 19 | ] 20 | } 21 | -------------------------------------------------------------------------------- /.vscodeignore: -------------------------------------------------------------------------------- 1 | media/changelog 2 | media/snapshot 3 | resources/web/flow 4 | !resources/web/flow/build 5 | -------------------------------------------------------------------------------- /fileicons/seti.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/serverless-vscode/52306319fdf111846c0058abc5b0adc45dbc7a25/fileicons/seti.woff -------------------------------------------------------------------------------- /language-configuration.json: -------------------------------------------------------------------------------- 1 | { 2 | "comments": { 3 | "lineComment": "#" 4 | }, 5 | "brackets": [ 6 | ["{", "}"], 7 | ["[", "]"], 8 | ["(", ")"] 9 | ], 10 | "autoClosingPairs": [ 11 | ["{", "}"], 12 | ["[", "]"], 13 | ["(", ")"], 14 | ["\"", "\""], 15 | ["'", "'"] 16 | ], 17 | "surroundingPairs": [ 18 | ["{", "}"], 19 | ["[", "]"], 20 | ["(", ")"], 21 | ["\"", "\""], 22 | ["'", "'"] 23 | ] 24 | } 25 | -------------------------------------------------------------------------------- /media/aliyun-serverless-extension.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/serverless-vscode/52306319fdf111846c0058abc5b0adc45dbc7a25/media/aliyun-serverless-extension.png -------------------------------------------------------------------------------- /media/changelog/v1.1.0/local-opt.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/serverless-vscode/52306319fdf111846c0058abc5b0adc45dbc7a25/media/changelog/v1.1.0/local-opt.gif -------------------------------------------------------------------------------- /media/changelog/v1.1.0/multi-account-region-switch.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/serverless-vscode/52306319fdf111846c0058abc5b0adc45dbc7a25/media/changelog/v1.1.0/multi-account-region-switch.gif -------------------------------------------------------------------------------- /media/changelog/v1.1.0/multi-debug-session.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/serverless-vscode/52306319fdf111846c0058abc5b0adc45dbc7a25/media/changelog/v1.1.0/multi-debug-session.gif -------------------------------------------------------------------------------- /media/changelog/v1.10.0/cronExpression.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/serverless-vscode/52306319fdf111846c0058abc5b0adc45dbc7a25/media/changelog/v1.10.0/cronExpression.png -------------------------------------------------------------------------------- /media/changelog/v1.10.0/invokePanel.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/serverless-vscode/52306319fdf111846c0058abc5b0adc45dbc7a25/media/changelog/v1.10.0/invokePanel.gif -------------------------------------------------------------------------------- /media/changelog/v1.11.0/copy-paste.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/serverless-vscode/52306319fdf111846c0058abc5b0adc45dbc7a25/media/changelog/v1.11.0/copy-paste.gif -------------------------------------------------------------------------------- /media/changelog/v1.11.0/invokePanel.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/serverless-vscode/52306319fdf111846c0058abc5b0adc45dbc7a25/media/changelog/v1.11.0/invokePanel.gif -------------------------------------------------------------------------------- /media/changelog/v1.12.0/funfile-completion.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/serverless-vscode/52306319fdf111846c0058abc5b0adc45dbc7a25/media/changelog/v1.12.0/funfile-completion.gif -------------------------------------------------------------------------------- /media/changelog/v1.12.0/memorySize-tip.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/serverless-vscode/52306319fdf111846c0058abc5b0adc45dbc7a25/media/changelog/v1.12.0/memorySize-tip.gif -------------------------------------------------------------------------------- /media/changelog/v1.13.0/language-suggestion.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/serverless-vscode/52306319fdf111846c0058abc5b0adc45dbc7a25/media/changelog/v1.13.0/language-suggestion.gif -------------------------------------------------------------------------------- /media/changelog/v1.14.0/changelog.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/serverless-vscode/52306319fdf111846c0058abc5b0adc45dbc7a25/media/changelog/v1.14.0/changelog.gif -------------------------------------------------------------------------------- /media/changelog/v1.15.0/flow-info.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/serverless-vscode/52306319fdf111846c0058abc5b0adc45dbc7a25/media/changelog/v1.15.0/flow-info.gif -------------------------------------------------------------------------------- /media/changelog/v1.15.0/startExec.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/serverless-vscode/52306319fdf111846c0058abc5b0adc45dbc7a25/media/changelog/v1.15.0/startExec.gif -------------------------------------------------------------------------------- /media/changelog/v1.15.0/updateFlow.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/serverless-vscode/52306319fdf111846c0058abc5b0adc45dbc7a25/media/changelog/v1.15.0/updateFlow.gif -------------------------------------------------------------------------------- /media/changelog/v1.16.0/localGraph.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/serverless-vscode/52306319fdf111846c0058abc5b0adc45dbc7a25/media/changelog/v1.16.0/localGraph.gif -------------------------------------------------------------------------------- /media/changelog/v1.16.0/remoteGraph.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/serverless-vscode/52306319fdf111846c0058abc5b0adc45dbc7a25/media/changelog/v1.16.0/remoteGraph.gif -------------------------------------------------------------------------------- /media/changelog/v1.16.0/remoteInvoke.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/serverless-vscode/52306319fdf111846c0058abc5b0adc45dbc7a25/media/changelog/v1.16.0/remoteInvoke.gif -------------------------------------------------------------------------------- /media/changelog/v1.18.0/codeuri-config.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/serverless-vscode/52306319fdf111846c0058abc5b0adc45dbc7a25/media/changelog/v1.18.0/codeuri-config.gif -------------------------------------------------------------------------------- /media/changelog/v1.18.0/instanceConcurrency.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/serverless-vscode/52306319fdf111846c0058abc5b0adc45dbc7a25/media/changelog/v1.18.0/instanceConcurrency.gif -------------------------------------------------------------------------------- /media/changelog/v1.18.0/remote-panel.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/serverless-vscode/52306319fdf111846c0058abc5b0adc45dbc7a25/media/changelog/v1.18.0/remote-panel.gif -------------------------------------------------------------------------------- /media/changelog/v1.19.0/documentSymbol.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/serverless-vscode/52306319fdf111846c0058abc5b0adc45dbc7a25/media/changelog/v1.19.0/documentSymbol.gif -------------------------------------------------------------------------------- /media/changelog/v1.19.0/fcConsole.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/serverless-vscode/52306319fdf111846c0058abc5b0adc45dbc7a25/media/changelog/v1.19.0/fcConsole.gif -------------------------------------------------------------------------------- /media/changelog/v1.19.0/ramPolicy.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/serverless-vscode/52306319fdf111846c0058abc5b0adc45dbc7a25/media/changelog/v1.19.0/ramPolicy.gif -------------------------------------------------------------------------------- /media/changelog/v1.2.0/fun-import.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/serverless-vscode/52306319fdf111846c0058abc5b0adc45dbc7a25/media/changelog/v1.2.0/fun-import.gif -------------------------------------------------------------------------------- /media/changelog/v1.2.0/remote-resource-panel.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/serverless-vscode/52306319fdf111846c0058abc5b0adc45dbc7a25/media/changelog/v1.2.0/remote-resource-panel.gif -------------------------------------------------------------------------------- /media/changelog/v1.2.0/template-jump.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/serverless-vscode/52306319fdf111846c0058abc5b0adc45dbc7a25/media/changelog/v1.2.0/template-jump.gif -------------------------------------------------------------------------------- /media/changelog/v1.3.0/menu-added.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/serverless-vscode/52306319fdf111846c0058abc5b0adc45dbc7a25/media/changelog/v1.3.0/menu-added.gif -------------------------------------------------------------------------------- /media/changelog/v1.3.0/template-auto-complete.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/serverless-vscode/52306319fdf111846c0058abc5b0adc45dbc7a25/media/changelog/v1.3.0/template-auto-complete.gif -------------------------------------------------------------------------------- /media/changelog/v1.3.0/template-resource-url.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/serverless-vscode/52306319fdf111846c0058abc5b0adc45dbc7a25/media/changelog/v1.3.0/template-resource-url.gif -------------------------------------------------------------------------------- /media/changelog/v1.4.0/template-highlight.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/serverless-vscode/52306319fdf111846c0058abc5b0adc45dbc7a25/media/changelog/v1.4.0/template-highlight.gif -------------------------------------------------------------------------------- /media/changelog/v1.4.0/template-icon.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/serverless-vscode/52306319fdf111846c0058abc5b0adc45dbc7a25/media/changelog/v1.4.0/template-icon.gif -------------------------------------------------------------------------------- /media/changelog/v1.4.0/template-validate.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/serverless-vscode/52306319fdf111846c0058abc5b0adc45dbc7a25/media/changelog/v1.4.0/template-validate.gif -------------------------------------------------------------------------------- /media/changelog/v1.5.0/local-resource-nas.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/serverless-vscode/52306319fdf111846c0058abc5b0adc45dbc7a25/media/changelog/v1.5.0/local-resource-nas.gif -------------------------------------------------------------------------------- /media/changelog/v1.5.0/local-resource-trigger.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/serverless-vscode/52306319fdf111846c0058abc5b0adc45dbc7a25/media/changelog/v1.5.0/local-resource-trigger.gif -------------------------------------------------------------------------------- /media/changelog/v1.5.0/partial-deploy.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/serverless-vscode/52306319fdf111846c0058abc5b0adc45dbc7a25/media/changelog/v1.5.0/partial-deploy.gif -------------------------------------------------------------------------------- /media/changelog/v1.5.0/rainbow.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/serverless-vscode/52306319fdf111846c0058abc5b0adc45dbc7a25/media/changelog/v1.5.0/rainbow.gif -------------------------------------------------------------------------------- /media/changelog/v1.6.0/multi-tmp.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/serverless-vscode/52306319fdf111846c0058abc5b0adc45dbc7a25/media/changelog/v1.6.0/multi-tmp.gif -------------------------------------------------------------------------------- /media/changelog/v1.6.0/quick-ros.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/serverless-vscode/52306319fdf111846c0058abc5b0adc45dbc7a25/media/changelog/v1.6.0/quick-ros.gif -------------------------------------------------------------------------------- /media/changelog/v1.6.0/template-hover.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/serverless-vscode/52306319fdf111846c0058abc5b0adc45dbc7a25/media/changelog/v1.6.0/template-hover.gif -------------------------------------------------------------------------------- /media/changelog/v1.7.0/install.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/serverless-vscode/52306319fdf111846c0058abc5b0adc45dbc7a25/media/changelog/v1.7.0/install.gif -------------------------------------------------------------------------------- /media/changelog/v1.7.0/runtime-lib-refer.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/serverless-vscode/52306319fdf111846c0058abc5b0adc45dbc7a25/media/changelog/v1.7.0/runtime-lib-refer.gif -------------------------------------------------------------------------------- /media/changelog/v1.8.0/fun-sbox.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/serverless-vscode/52306319fdf111846c0058abc5b0adc45dbc7a25/media/changelog/v1.8.0/fun-sbox.gif -------------------------------------------------------------------------------- /media/changelog/v1.8.0/tpl-event.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/serverless-vscode/52306319fdf111846c0058abc5b0adc45dbc7a25/media/changelog/v1.8.0/tpl-event.gif -------------------------------------------------------------------------------- /media/changelog/v1.9.0/funfile.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/serverless-vscode/52306319fdf111846c0058abc5b0adc45dbc7a25/media/changelog/v1.9.0/funfile.gif -------------------------------------------------------------------------------- /media/changelog/v1.9.0/http-trigger.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/serverless-vscode/52306319fdf111846c0058abc5b0adc45dbc7a25/media/changelog/v1.9.0/http-trigger.gif -------------------------------------------------------------------------------- /media/dark/boolean.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /media/dark/box.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /media/dark/code.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /media/dark/dependency.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /media/dark/deploy.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /media/dark/document.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /media/dark/download.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /media/dark/edit.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /media/dark/execution.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /media/dark/fail.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /media/dark/flow.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /media/dark/folder.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /media/dark/foreach.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /media/dark/function.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /media/dark/goto.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /media/dark/http.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /media/dark/invoke.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /media/dark/loop.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /media/dark/oss.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /media/dark/parallel.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /media/dark/plus.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /media/dark/rds.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /media/dark/refresh.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /media/dark/succeed.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /media/dark/tablestore.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /media/dark/wait.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /media/light/boolean.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /media/light/box.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /media/light/code.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /media/light/dependency.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /media/light/deploy.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /media/light/document.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /media/light/download.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /media/light/edit.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /media/light/execution.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /media/light/fail.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /media/light/flow.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /media/light/folder.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /media/light/foreach.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /media/light/function.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /media/light/goto.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /media/light/http.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /media/light/invoke.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /media/light/loop.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /media/light/oss.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /media/light/parallel.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /media/light/plus.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /media/light/rds.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /media/light/refresh.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /media/light/succeed.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /media/light/tablestore.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /media/light/wait.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /media/snapshot/bind-account-result.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/serverless-vscode/52306319fdf111846c0058abc5b0adc45dbc7a25/media/snapshot/bind-account-result.png -------------------------------------------------------------------------------- /media/snapshot/bind-account-toast.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/serverless-vscode/52306319fdf111846c0058abc5b0adc45dbc7a25/media/snapshot/bind-account-toast.png -------------------------------------------------------------------------------- /media/snapshot/bind-account.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/serverless-vscode/52306319fdf111846c0058abc5b0adc45dbc7a25/media/snapshot/bind-account.png -------------------------------------------------------------------------------- /media/snapshot/create-func-result.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/serverless-vscode/52306319fdf111846c0058abc5b0adc45dbc7a25/media/snapshot/create-func-result.png -------------------------------------------------------------------------------- /media/snapshot/create-func-toast.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/serverless-vscode/52306319fdf111846c0058abc5b0adc45dbc7a25/media/snapshot/create-func-toast.png -------------------------------------------------------------------------------- /media/snapshot/create-func-under-service.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/serverless-vscode/52306319fdf111846c0058abc5b0adc45dbc7a25/media/snapshot/create-func-under-service.png -------------------------------------------------------------------------------- /media/snapshot/create-func-under-tmp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/serverless-vscode/52306319fdf111846c0058abc5b0adc45dbc7a25/media/snapshot/create-func-under-tmp.png -------------------------------------------------------------------------------- /media/snapshot/create-func.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/serverless-vscode/52306319fdf111846c0058abc5b0adc45dbc7a25/media/snapshot/create-func.png -------------------------------------------------------------------------------- /media/snapshot/deploy-result.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/serverless-vscode/52306319fdf111846c0058abc5b0adc45dbc7a25/media/snapshot/deploy-result.png -------------------------------------------------------------------------------- /media/snapshot/deploy-under-func.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/serverless-vscode/52306319fdf111846c0058abc5b0adc45dbc7a25/media/snapshot/deploy-under-func.png -------------------------------------------------------------------------------- /media/snapshot/deploy-under-service.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/serverless-vscode/52306319fdf111846c0058abc5b0adc45dbc7a25/media/snapshot/deploy-under-service.png -------------------------------------------------------------------------------- /media/snapshot/deploy-under-tmp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/serverless-vscode/52306319fdf111846c0058abc5b0adc45dbc7a25/media/snapshot/deploy-under-tmp.png -------------------------------------------------------------------------------- /media/snapshot/deploy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/serverless-vscode/52306319fdf111846c0058abc5b0adc45dbc7a25/media/snapshot/deploy.png -------------------------------------------------------------------------------- /media/snapshot/goto-template.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/serverless-vscode/52306319fdf111846c0058abc5b0adc45dbc7a25/media/snapshot/goto-template.png -------------------------------------------------------------------------------- /media/snapshot/local-debug-result.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/serverless-vscode/52306319fdf111846c0058abc5b0adc45dbc7a25/media/snapshot/local-debug-result.png -------------------------------------------------------------------------------- /media/snapshot/local-debug.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/serverless-vscode/52306319fdf111846c0058abc5b0adc45dbc7a25/media/snapshot/local-debug.png -------------------------------------------------------------------------------- /media/snapshot/local-invoke-event.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/serverless-vscode/52306319fdf111846c0058abc5b0adc45dbc7a25/media/snapshot/local-invoke-event.png -------------------------------------------------------------------------------- /media/snapshot/local-invoke-result.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/serverless-vscode/52306319fdf111846c0058abc5b0adc45dbc7a25/media/snapshot/local-invoke-result.png -------------------------------------------------------------------------------- /media/snapshot/local-invoke.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/serverless-vscode/52306319fdf111846c0058abc5b0adc45dbc7a25/media/snapshot/local-invoke.png -------------------------------------------------------------------------------- /media/snapshot/remote-invoke-event.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/serverless-vscode/52306319fdf111846c0058abc5b0adc45dbc7a25/media/snapshot/remote-invoke-event.png -------------------------------------------------------------------------------- /media/snapshot/remote-invoke-result.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/serverless-vscode/52306319fdf111846c0058abc5b0adc45dbc7a25/media/snapshot/remote-invoke-result.png -------------------------------------------------------------------------------- /media/snapshot/remote-invoke.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/serverless-vscode/52306319fdf111846c0058abc5b0adc45dbc7a25/media/snapshot/remote-invoke.png -------------------------------------------------------------------------------- /media/snapshot/switch-region.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/serverless-vscode/52306319fdf111846c0058abc5b0adc45dbc7a25/media/snapshot/switch-region.png -------------------------------------------------------------------------------- /media/snapshot/tmp-auto-complete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/serverless-vscode/52306319fdf111846c0058abc5b0adc45dbc7a25/media/snapshot/tmp-auto-complete.png -------------------------------------------------------------------------------- /media/snapshot/tmp-hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/serverless-vscode/52306319fdf111846c0058abc5b0adc45dbc7a25/media/snapshot/tmp-hover.png -------------------------------------------------------------------------------- /media/snapshot/tmp-validate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/serverless-vscode/52306319fdf111846c0058abc5b0adc45dbc7a25/media/snapshot/tmp-validate.png -------------------------------------------------------------------------------- /media/snapshot/two-dimension-code.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/serverless-vscode/52306319fdf111846c0058abc5b0adc45dbc7a25/media/snapshot/two-dimension-code.png -------------------------------------------------------------------------------- /resources/font-awesome/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/serverless-vscode/52306319fdf111846c0058abc5b0adc45dbc7a25/resources/font-awesome/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /resources/font-awesome/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/serverless-vscode/52306319fdf111846c0058abc5b0adc45dbc7a25/resources/font-awesome/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /resources/font-awesome/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/serverless-vscode/52306319fdf111846c0058abc5b0adc45dbc7a25/resources/font-awesome/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /resources/font-awesome/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/serverless-vscode/52306319fdf111846c0058abc5b0adc45dbc7a25/resources/font-awesome/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /resources/font-awesome/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/serverless-vscode/52306319fdf111846c0058abc5b0adc45dbc7a25/resources/font-awesome/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /resources/web/flow/.env: -------------------------------------------------------------------------------- 1 | PUBLIC_URL=./ -------------------------------------------------------------------------------- /resources/web/flow/public/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "short_name": "Flow", 3 | "name": "Flow", 4 | "start_url": ".", 5 | "display": "standalone", 6 | "theme_color": "#000000", 7 | "background_color": "#ffffff" 8 | } 9 | -------------------------------------------------------------------------------- /resources/web/flow/scripts/build-non-split.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | // Disables code splitting into chunks 4 | // See https://github.com/facebook/create-react-app/issues/5306#issuecomment-433425838 5 | 6 | const rewire = require("rewire"); 7 | const defaults = rewire("react-scripts/scripts/build.js"); 8 | let config = defaults.__get__("config"); 9 | 10 | config.optimization.splitChunks = { 11 | cacheGroups: { 12 | default: false 13 | } 14 | }; 15 | 16 | config.optimization.runtimeChunk = false; 17 | -------------------------------------------------------------------------------- /resources/web/flow/src/components/IconButton/index.css: -------------------------------------------------------------------------------- 1 | .MuiIconButton-root.Mui-disabled { 2 | color: inherit !important; 3 | } 4 | -------------------------------------------------------------------------------- /resources/web/flow/src/components/IconButton/index.tsx: -------------------------------------------------------------------------------- 1 | import IconButton from '@material-ui/core/IconButton'; 2 | import { withStyles } from '@material-ui/core/styles'; 3 | import './index.css' 4 | 5 | const NewIconButton = withStyles({ 6 | root: { 7 | color: 'inherit', 8 | } 9 | })(IconButton); 10 | 11 | export default NewIconButton; 12 | -------------------------------------------------------------------------------- /resources/web/flow/src/components/ReactJson/index.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import ReactJson from 'react-json-view'; 3 | 4 | const NewReactJSON: React.FunctionComponent<{ jsonStr: string }> = ({ jsonStr }) => { 5 | return ( 6 | 15 | ) 16 | } 17 | 18 | export default NewReactJSON; 19 | -------------------------------------------------------------------------------- /resources/web/flow/src/components/TabPanel/index.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import Box from '@material-ui/core/Box'; 3 | 4 | interface TabPanelProps { 5 | children?: React.ReactNode; 6 | index: any; 7 | value: any; 8 | } 9 | 10 | function TabPanel(props: TabPanelProps) { 11 | const { children, value, index } = props; 12 | 13 | return ( 14 | value === index ? {children} : null 15 | ); 16 | } 17 | 18 | export default TabPanel; 19 | -------------------------------------------------------------------------------- /resources/web/flow/src/components/TableCell/index.tsx: -------------------------------------------------------------------------------- 1 | import TableCell from '@material-ui/core/TableCell'; 2 | import { withStyles } from '@material-ui/core/styles'; 3 | 4 | const NewTableCell = withStyles({ 5 | head: { 6 | color: 'inherit', 7 | }, 8 | body: { 9 | color: 'inherit', 10 | }, 11 | footer: { 12 | color: 'inherit', 13 | } 14 | })(TableCell); 15 | 16 | export default NewTableCell; 17 | -------------------------------------------------------------------------------- /resources/web/flow/src/components/Tabs/index.tsx: -------------------------------------------------------------------------------- 1 | import Tabs from '@material-ui/core/Tabs'; 2 | import { withStyles } from '@material-ui/core/styles'; 3 | 4 | const NewTabs = withStyles({ 5 | root: { 6 | backgroundColor: 'rgba(0, 0, 0, .03)', 7 | }, 8 | indicator: { 9 | backgroundColor: '#1890ff', 10 | } 11 | })(Tabs); 12 | 13 | export default NewTabs; 14 | -------------------------------------------------------------------------------- /resources/web/flow/src/containers/FlowDefinition/index.tsx: -------------------------------------------------------------------------------- 1 | import React, { useEffect, useState, Fragment } from 'react'; 2 | import { getInstance } from '../../services/service'; 3 | import { DefinitionGraph } from '../DefinitionGraph'; 4 | import IconButton from '../../components/IconButton'; 5 | import Refresh from '@material-ui/icons/Refresh'; 6 | 7 | export const FlowDefinition = () => { 8 | const service = getInstance(); 9 | const [definition, setDefinition] = useState(''); 10 | 11 | const describeFlowDefinition = async () => { 12 | const data = await service.request({ 13 | command: 'describeFlowDefinition', 14 | }); 15 | const { Definition: newDefinition = '' } = data; 16 | setDefinition(newDefinition); 17 | } 18 | 19 | useEffect(() => { 20 | describeFlowDefinition(); 21 | }, []); 22 | 23 | return ( 24 | 25 | 26 | 30 | 31 | 32 | 33 | 34 | ) 35 | } 36 | -------------------------------------------------------------------------------- /resources/web/flow/src/containers/fc/FunctionInfo/index.css: -------------------------------------------------------------------------------- 1 | .vscode-dark #eventSelect { 2 | background-color: #212121; 3 | color: #d3d5e0; 4 | } 5 | 6 | #eventSelect { 7 | appearance: none; 8 | -webkit-appearance: none; 9 | -moz-appearance: none; 10 | border-radius: 2px; 11 | border: 1px solid rgba(115, 118, 128, 0.5); 12 | padding: 8px 30px 8px 10px; 13 | width: 200px; 14 | font-size: 12px; 15 | } 16 | 17 | #eventLabel { 18 | font-size: 12px; 19 | } 20 | -------------------------------------------------------------------------------- /resources/web/flow/src/declarations.d.ts: -------------------------------------------------------------------------------- 1 | interface VscodeApi { postMessage: (data: any) => void; } 2 | declare function acquireVsCodeApi(): VscodeApi; 3 | -------------------------------------------------------------------------------- /resources/web/flow/src/index.css: -------------------------------------------------------------------------------- 1 | code { 2 | font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', 3 | monospace; 4 | } 5 | -------------------------------------------------------------------------------- /resources/web/flow/src/index.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import ReactDOM from 'react-dom'; 3 | import './index.css'; 4 | import App from './App'; 5 | import * as serviceWorker from './serviceWorker'; 6 | 7 | ReactDOM.render(, document.getElementById('root')); 8 | 9 | // If you want your app to work offline and load faster, you can change 10 | // unregister() to register() below. Note this comes with some pitfalls. 11 | // Learn more about service workers: https://bit.ly/CRA-PWA 12 | serviceWorker.unregister(); 13 | -------------------------------------------------------------------------------- /resources/web/flow/src/props.d.ts: -------------------------------------------------------------------------------- 1 | import * as H from 'history'; 2 | 3 | export interface HistoryProps { 4 | history: H.History; 5 | } 6 | 7 | export interface FlowInfoProps extends HistoryProps { 8 | } 9 | 10 | export interface ExecutionListProps extends HistoryProps { 11 | flowName: string; 12 | } 13 | 14 | export interface ExecutionStartProps { 15 | flowName: string; 16 | onClose: () => void; 17 | onSuccess: (executionName: string) => void; 18 | } 19 | 20 | export interface DefinitionGraphProps { 21 | definition: string; 22 | } 23 | -------------------------------------------------------------------------------- /resources/web/flow/src/react-app-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /resources/web/flow/src/routes/fc/index.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { 3 | Switch, 4 | Route, 5 | } from 'react-router-dom'; 6 | import { ServiceInfo } from '../../containers/fc/ServiceInfo'; 7 | import { FunctionInfo } from '../../containers/fc/FunctionInfo'; 8 | 9 | export const FCRouter = () => { 10 | return ( 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | ) 20 | } 21 | -------------------------------------------------------------------------------- /resources/web/flow/src/utils/graph/description.ts: -------------------------------------------------------------------------------- 1 | 2 | export interface StepDescriptor { 3 | type: string, 4 | name: string, 5 | end?: boolean, 6 | catch?: { errors: string[], goto: string, steps?: StepDescriptor[] }[], 7 | [s: string]: any, 8 | } 9 | 10 | export interface CellMap { 11 | [s: string]: Cell; 12 | } 13 | 14 | export interface Cell { 15 | id: string, 16 | type?: string, 17 | label: string, 18 | parent?: any, 19 | depth: number; 20 | isRoot?: boolean; 21 | style?: string; 22 | width?: number; 23 | height?: number; 24 | } 25 | 26 | export interface Edge { 27 | source: string, 28 | target: string, 29 | label?: string, 30 | } 31 | 32 | export type GraphCell = any; 33 | export type GraphEdge = any; 34 | -------------------------------------------------------------------------------- /resources/web/flow/src/utils/schema.ts: -------------------------------------------------------------------------------- 1 | import * as YAML from 'js-yaml'; 2 | import * as _ from 'lodash'; 3 | 4 | const functionNames = [ 5 | 'Ref', 6 | 'GetAtt', 7 | ]; 8 | 9 | const yamlType = (name: string, kind: 'sequence' | 'scalar' | 'mapping') => { 10 | return new YAML.Type(`!${name}`, { 11 | kind, 12 | construct: data => { 13 | return data.toString(); 14 | } 15 | }); 16 | } 17 | 18 | const createSchema = () => { 19 | const types = _.flatten( 20 | _.map(functionNames, functionName => 21 | _.map(['mapping', 'scalar', 'sequence'], kind => yamlType(functionName, kind as any)) 22 | ) 23 | ); 24 | return YAML.Schema.create(types); 25 | }; 26 | 27 | export const schema = createSchema(); 28 | -------------------------------------------------------------------------------- /resources/web/flow/src/utils/utils.ts: -------------------------------------------------------------------------------- 1 | import uuidv4 from 'uuid/v4'; 2 | 3 | export const generateUUID = () => { 4 | return uuidv4(); 5 | } 6 | -------------------------------------------------------------------------------- /resources/web/flow/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "es5", 4 | "lib": [ 5 | "dom", 6 | "dom.iterable", 7 | "esnext" 8 | ], 9 | "allowJs": true, 10 | "skipLibCheck": true, 11 | "esModuleInterop": true, 12 | "allowSyntheticDefaultImports": true, 13 | "strict": true, 14 | "forceConsistentCasingInFileNames": true, 15 | "module": "esnext", 16 | "moduleResolution": "node", 17 | "resolveJsonModule": true, 18 | "isolatedModules": true, 19 | "noEmit": true, 20 | "jsx": "react" 21 | }, 22 | "include": [ 23 | "src" 24 | ] 25 | } 26 | -------------------------------------------------------------------------------- /src/commands/deploy.ts: -------------------------------------------------------------------------------- 1 | import * as vscode from 'vscode'; 2 | import * as path from 'path'; 3 | import { ext } from '../extensionVariables'; 4 | import { serverlessCommands } from '../utils/constants'; 5 | import { recordPageView } from '../utils/visitor'; 6 | import { FunService } from '../services/FunService'; 7 | import { TemplateResource } from '../models/resource'; 8 | 9 | export function deploy(context: vscode.ExtensionContext) { 10 | context.subscriptions.push(vscode.commands.registerCommand(serverlessCommands.DEPLOY.id, 11 | async (node?: TemplateResource) => { 12 | recordPageView('/deploy'); 13 | if (!ext.cwd) { 14 | vscode.window.showErrorMessage('Not supported in empty workspace'); 15 | return; 16 | } 17 | await process(node ? node.templatePath : path.resolve(ext.cwd, './template.yml')); 18 | }) 19 | ); 20 | } 21 | 22 | async function process(templatePath: string) { 23 | if (!ext.cwd) { 24 | vscode.window.showErrorMessage('Please open a workspace'); 25 | return; 26 | } 27 | 28 | const funService = new FunService(templatePath); 29 | funService.deploy(); 30 | setTimeout(() => { 31 | vscode.commands.executeCommand(serverlessCommands.REFRESH_REMOTE_RESOURCE.id); 32 | }, 5000); 33 | } 34 | -------------------------------------------------------------------------------- /src/commands/fnf/gotoFnFConsole.ts: -------------------------------------------------------------------------------- 1 | import * as vscode from 'vscode'; 2 | import * as open from 'open'; 3 | import { recordPageView } from '../../utils/visitor'; 4 | import { serverlessCommands, ALIYUN_FUNCTION_FLOW_CONSOLE_URL } from '../../utils/constants'; 5 | 6 | export function gotoFnFConsole(context: vscode.ExtensionContext) { 7 | context.subscriptions.push(vscode.commands.registerCommand(serverlessCommands.FNF_GOTO_CONSOLE.id, 8 | async () => { 9 | recordPageView('/gotoFnFConsole'); 10 | open(ALIYUN_FUNCTION_FLOW_CONSOLE_URL); 11 | } 12 | )); 13 | } 14 | -------------------------------------------------------------------------------- /src/commands/fnf/showDefinitionGraph.ts: -------------------------------------------------------------------------------- 1 | import * as vscode from 'vscode'; 2 | import * as path from 'path'; 3 | import { recordPageView } from '../../utils/visitor'; 4 | import { serverlessCommands } from '../../utils/constants'; 5 | import { PanelManager } from '../../webview/PanelManager' 6 | import { FlowDefinitionPanelCreator } from '../../webview/FlowDefinitionPanelCreator'; 7 | 8 | let panelManager: PanelManager; 9 | 10 | export function showDefinitionGraph(context: vscode.ExtensionContext) { 11 | const creator = new FlowDefinitionPanelCreator(context.extensionPath); 12 | panelManager = new PanelManager(creator, vscode.ViewColumn.Beside); 13 | context.subscriptions.push(vscode.commands.registerCommand( 14 | serverlessCommands.FNF_SHOW_DEFINITION_GRAPH.id, 15 | async (uri: vscode.Uri) => { 16 | recordPageView('/showDefinitionGraph'); 17 | await processCommand(uri).catch(ex => vscode.window.showErrorMessage(ex.message)); 18 | } 19 | )); 20 | } 21 | 22 | async function processCommand(uri: vscode.Uri) { 23 | const panelTitle = path.basename(uri.fsPath); 24 | const panel = panelManager.getOrCreatePanel(panelTitle, uri); 25 | panelManager.showPanel(panel); 26 | } 27 | -------------------------------------------------------------------------------- /src/commands/gotoFCConsole.ts: -------------------------------------------------------------------------------- 1 | import * as vscode from 'vscode'; 2 | import * as open from 'open'; 3 | import { recordPageView } from '../utils/visitor'; 4 | import { serverlessCommands, ALIYUN_FUNCTION_COMPUTE_CONSOLE_URL } from '../utils/constants'; 5 | 6 | export function gotoFCConsole(context: vscode.ExtensionContext) { 7 | context.subscriptions.push(vscode.commands.registerCommand(serverlessCommands.FC_GOTO_CONSOLE.id, 8 | async () => { 9 | recordPageView('/gotoFCConsole'); 10 | open(ALIYUN_FUNCTION_COMPUTE_CONSOLE_URL); 11 | } 12 | )); 13 | } 14 | -------------------------------------------------------------------------------- /src/commands/gotoTemplate.ts: -------------------------------------------------------------------------------- 1 | import * as vscode from 'vscode'; 2 | import { ext } from '../extensionVariables'; 3 | import { serverlessCommands } from '../utils/constants'; 4 | import { isPathExists } from '../utils/file'; 5 | import { recordPageView } from '../utils/visitor'; 6 | 7 | export function gotoTemplate(context: vscode.ExtensionContext) { 8 | context.subscriptions.push(vscode.commands.registerCommand(serverlessCommands.GOTO_TEMPLATE.id, 9 | async (templatePath: string) => { 10 | recordPageView('/gotoTemplate'); 11 | await process(templatePath); 12 | } 13 | )); 14 | } 15 | 16 | async function process(templatePath: string) { 17 | if (!ext.cwd) { 18 | vscode.window.showErrorMessage('Please open a workspace'); 19 | return; 20 | } 21 | 22 | if (!isPathExists(templatePath)) { 23 | vscode.window.showErrorMessage(`${templatePath} did not found`); 24 | return; 25 | } 26 | 27 | const document = await vscode.workspace.openTextDocument(vscode.Uri.file(templatePath)); 28 | await vscode.window.showTextDocument(document, { 29 | preserveFocus: true, 30 | preview: true, 31 | }); 32 | } 33 | -------------------------------------------------------------------------------- /src/commands/reportIssue.ts: -------------------------------------------------------------------------------- 1 | import * as vscode from 'vscode'; 2 | import { recordPageView } from '../utils/visitor'; 3 | import { serverlessCommands, SERVERLESS_EXTENTION_REPORT_ISSUE_URL } from '../utils/constants'; 4 | import * as open from 'open'; 5 | 6 | export function reportIssue(context: vscode.ExtensionContext) { 7 | context.subscriptions.push(vscode.commands.registerCommand(serverlessCommands.REPORT_ISSUE.id, 8 | async () => { 9 | recordPageView('/reportIssue'); 10 | open(SERVERLESS_EXTENTION_REPORT_ISSUE_URL); 11 | })) 12 | ; 13 | } 14 | -------------------------------------------------------------------------------- /src/commands/startLocalSandbox.ts: -------------------------------------------------------------------------------- 1 | import * as vscode from 'vscode'; 2 | import { recordPageView } from '../utils/visitor'; 3 | import { FunService } from '../services/FunService'; 4 | import { serverlessCommands } from '../utils/constants'; 5 | import { Resource, FunctionResource, ResourceType } from '../models/resource'; 6 | 7 | export function startLocalSandbox(context: vscode.ExtensionContext) { 8 | context.subscriptions.push(vscode.commands.registerCommand( 9 | serverlessCommands.START_LOCAL_SANDBOX.id, 10 | async (node: Resource) => { 11 | recordPageView('/startLocalSandbox'); 12 | if (node.resourceType !== ResourceType.Function) { 13 | return; 14 | } 15 | const funcRes = node as FunctionResource; 16 | await process(funcRes.serviceName, funcRes.functionName, funcRes.templatePath as string); 17 | } 18 | )); 19 | } 20 | 21 | async function process(serviceName: string, functionName: string, templatePath: string) { 22 | const funService = new FunService(templatePath); 23 | funService.installSbox(serviceName, functionName); 24 | } 25 | -------------------------------------------------------------------------------- /src/commands/switchEventFile.ts: -------------------------------------------------------------------------------- 1 | import * as vscode from 'vscode'; 2 | import { recordPageView } from '../utils/visitor'; 3 | import { serverlessCommands } from '../utils/constants'; 4 | import { setEventFilePath } from '../utils/localConfig'; 5 | 6 | export function switchEventFile(context: vscode.ExtensionContext) { 7 | context.subscriptions.push(vscode.commands.registerCommand(serverlessCommands.SWITCH_EVENT_FILE.id, 8 | async ( 9 | templatePath: string, 10 | serviceName: string, 11 | functionName: string, 12 | codeUri: string, 13 | eventFilePath: string, 14 | ) => { 15 | recordPageView('/switchEventFile'); 16 | await setEventFilePath(templatePath, serviceName, functionName, codeUri, eventFilePath) 17 | .catch(ex => vscode.window.showErrorMessage(ex.message)); 18 | } 19 | )); 20 | } 21 | -------------------------------------------------------------------------------- /src/commands/syncNas.ts: -------------------------------------------------------------------------------- 1 | import * as vscode from 'vscode'; 2 | import { ext } from '../extensionVariables'; 3 | import { serverlessCommands } from '../utils/constants'; 4 | import { recordPageView } from '../utils/visitor'; 5 | import { Resource, ResourceType, NasResource } from '../models/resource'; 6 | import { FunService } from '../services/FunService'; 7 | 8 | export function syncNas(context: vscode.ExtensionContext) { 9 | context.subscriptions.push(vscode.commands.registerCommand(serverlessCommands.SYNC_NAS.id, 10 | async (node: Resource) => { 11 | recordPageView('/syncNas'); 12 | if (node.resourceType !== ResourceType.Nas) { 13 | return; 14 | } 15 | const nasRes = node as NasResource; 16 | await process(nasRes.serviceName, nasRes.mountDir, nasRes.templatePath as string); 17 | } 18 | )); 19 | } 20 | 21 | async function process(serviceName: string, mountDir: string, templatePath: string) { 22 | if (!ext.cwd) { 23 | vscode.window.showErrorMessage('Please open a workspace'); 24 | return; 25 | } 26 | 27 | const funService = new FunService(templatePath); 28 | funService.syncNas(serviceName, mountDir === 'Auto' ? '/mnt/auto' : mountDir); 29 | } 30 | -------------------------------------------------------------------------------- /src/commands/viewDocumentation.ts: -------------------------------------------------------------------------------- 1 | import * as vscode from 'vscode'; 2 | import { recordPageView } from '../utils/visitor'; 3 | import { serverlessCommands, SERVERLESS_EXTENTION_DOCUMENTATION_URL } from '../utils/constants'; 4 | import * as open from 'open'; 5 | 6 | export function viewDocumentation(context: vscode.ExtensionContext) { 7 | context.subscriptions.push(vscode.commands.registerCommand(serverlessCommands.VIEW_DOCUMENTATION.id, 8 | async () => { 9 | recordPageView('/viewDocumentation'); 10 | open(SERVERLESS_EXTENTION_DOCUMENTATION_URL); 11 | })) 12 | ; 13 | } 14 | -------------------------------------------------------------------------------- /src/commands/viewQuickStart.ts: -------------------------------------------------------------------------------- 1 | import * as vscode from 'vscode'; 2 | import { recordPageView } from '../utils/visitor'; 3 | import { serverlessCommands, SERVERLESS_EXTENTION_QUICKSTART_URL } from '../utils/constants'; 4 | import * as open from 'open'; 5 | 6 | export function viewQuickStart(context: vscode.ExtensionContext) { 7 | context.subscriptions.push(vscode.commands.registerCommand(serverlessCommands.VIEW_QUICK_START.id, 8 | async () => { 9 | recordPageView('/viewQuickStart'); 10 | open(SERVERLESS_EXTENTION_QUICKSTART_URL); 11 | })) 12 | ; 13 | } 14 | -------------------------------------------------------------------------------- /src/commands/viewSource.ts: -------------------------------------------------------------------------------- 1 | import * as vscode from 'vscode'; 2 | import { recordPageView } from '../utils/visitor'; 3 | import { serverlessCommands, SERVERLESS_EXTENTION_SOURCE_URL } from '../utils/constants'; 4 | import * as open from 'open'; 5 | 6 | export function viewSource(context: vscode.ExtensionContext) { 7 | context.subscriptions.push(vscode.commands.registerCommand(serverlessCommands.VIEW_SOURCE_ON_GITHUB.id, 8 | async () => { 9 | recordPageView('/viewSource'); 10 | open(SERVERLESS_EXTENTION_SOURCE_URL); 11 | })) 12 | ; 13 | } 14 | -------------------------------------------------------------------------------- /src/descriptors/descriptor.ts: -------------------------------------------------------------------------------- 1 | export interface ResourceDescriptor { 2 | 3 | } 4 | 5 | export interface ServiceDescriptor extends ResourceDescriptor { 6 | serviceName: string; 7 | } 8 | 9 | export interface FunctionDescriptor extends ResourceDescriptor { 10 | serviceName: string; 11 | functionName: string; 12 | } 13 | 14 | export interface TriggerDescriptor extends ResourceDescriptor { 15 | serviceName: string; 16 | functionName: string; 17 | triggerName: string; 18 | triggerType: string; 19 | } 20 | 21 | export interface InvokeDescriptor extends ResourceDescriptor { 22 | templatePath: string; 23 | serviceName: string; 24 | functionName: string; 25 | codeUri: string; 26 | } 27 | 28 | export interface FlowDescriptor extends ResourceDescriptor { 29 | flowName: string; 30 | } 31 | -------------------------------------------------------------------------------- /src/extensionVariables.ts: -------------------------------------------------------------------------------- 1 | import * as vscode from 'vscode'; 2 | import { Resource } from './models/resource'; 3 | 4 | export namespace ext { 5 | export let context: vscode.ExtensionContext; 6 | export let cwd: string | undefined; 7 | export let localResourceTreeView: vscode.TreeView; 8 | } 9 | -------------------------------------------------------------------------------- /src/language-service/schema/ros/ALIYUN-ACTIONTRAIL-TrailLogging.json: -------------------------------------------------------------------------------- 1 | { 2 | "$id": "ALIYUN::ACTIONTRAIL::TrailLogging", 3 | "type": "object", 4 | "properties": { 5 | "Type": { 6 | "type": "string", 7 | "enum": [ 8 | "ALIYUN::ACTIONTRAIL::TrailLogging" 9 | ] 10 | }, 11 | "Properties": { 12 | "type": "object", 13 | "properties": { 14 | "Enable": { 15 | "type": "boolean" 16 | }, 17 | "Name": { 18 | "type": "string" 19 | } 20 | }, 21 | "required": [ 22 | "Enable", 23 | "Name" 24 | ], 25 | "additionalProperties": false, 26 | "document": { 27 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::ACTIONTRAIL::TrailLogging" 28 | } 29 | } 30 | }, 31 | "required": [ 32 | "Type", 33 | "Properties" 34 | ], 35 | "document": { 36 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::ACTIONTRAIL::TrailLogging" 37 | }, 38 | "insertText": "${1:TrailLogging}:\n Type: ALIYUN::ACTIONTRAIL::TrailLogging\n Properties:\n " 39 | } -------------------------------------------------------------------------------- /src/language-service/schema/ros/ALIYUN-ARMS-RetcodeApp.json: -------------------------------------------------------------------------------- 1 | { 2 | "$id": "ALIYUN::ARMS::RetcodeApp", 3 | "type": "object", 4 | "properties": { 5 | "Type": { 6 | "type": "string", 7 | "enum": [ 8 | "ALIYUN::ARMS::RetcodeApp" 9 | ] 10 | }, 11 | "Properties": { 12 | "type": "object", 13 | "properties": { 14 | "RetcodeAppType": { 15 | "type": "string" 16 | }, 17 | "RetcodeAppName": { 18 | "type": "string" 19 | }, 20 | "RegionId": { 21 | "type": "string" 22 | } 23 | }, 24 | "required": [ 25 | "RetcodeAppType", 26 | "RetcodeAppName", 27 | "RegionId" 28 | ], 29 | "additionalProperties": false, 30 | "document": { 31 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::ARMS::RetcodeApp" 32 | } 33 | } 34 | }, 35 | "required": [ 36 | "Type", 37 | "Properties" 38 | ], 39 | "document": { 40 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::ARMS::RetcodeApp" 41 | }, 42 | "insertText": "${1:RetcodeApp}:\n Type: ALIYUN::ARMS::RetcodeApp\n Properties:\n " 43 | } -------------------------------------------------------------------------------- /src/language-service/schema/ros/ALIYUN-ApiGateway-App.json: -------------------------------------------------------------------------------- 1 | { 2 | "$id": "ALIYUN::ApiGateway::App", 3 | "type": "object", 4 | "properties": { 5 | "Type": { 6 | "type": "string", 7 | "enum": [ 8 | "ALIYUN::ApiGateway::App" 9 | ] 10 | }, 11 | "Properties": { 12 | "type": "object", 13 | "properties": { 14 | "Description": { 15 | "type": "string" 16 | }, 17 | "AppName": { 18 | "type": "string" 19 | } 20 | }, 21 | "required": [ 22 | "AppName" 23 | ], 24 | "additionalProperties": false, 25 | "document": { 26 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::ApiGateway::App" 27 | } 28 | } 29 | }, 30 | "required": [ 31 | "Type", 32 | "Properties" 33 | ], 34 | "document": { 35 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::ApiGateway::App" 36 | }, 37 | "insertText": "${1:App}:\n Type: ALIYUN::ApiGateway::App\n Properties:\n " 38 | } -------------------------------------------------------------------------------- /src/language-service/schema/ros/ALIYUN-ApiGateway-Group.json: -------------------------------------------------------------------------------- 1 | { 2 | "$id": "ALIYUN::ApiGateway::Group", 3 | "type": "object", 4 | "properties": { 5 | "Type": { 6 | "type": "string", 7 | "enum": [ 8 | "ALIYUN::ApiGateway::Group" 9 | ] 10 | }, 11 | "Properties": { 12 | "type": "object", 13 | "properties": { 14 | "GroupName": { 15 | "type": "string" 16 | }, 17 | "Description": { 18 | "type": "string" 19 | }, 20 | "InstanceId": { 21 | "type": "string" 22 | } 23 | }, 24 | "required": [ 25 | "GroupName" 26 | ], 27 | "additionalProperties": false, 28 | "document": { 29 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::ApiGateway::Group" 30 | } 31 | } 32 | }, 33 | "required": [ 34 | "Type", 35 | "Properties" 36 | ], 37 | "document": { 38 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::ApiGateway::Group" 39 | }, 40 | "insertText": "${1:Group}:\n Type: ALIYUN::ApiGateway::Group\n Properties:\n " 41 | } -------------------------------------------------------------------------------- /src/language-service/schema/ros/ALIYUN-ApiGateway-Signature.json: -------------------------------------------------------------------------------- 1 | { 2 | "$id": "ALIYUN::ApiGateway::Signature", 3 | "type": "object", 4 | "properties": { 5 | "Type": { 6 | "type": "string", 7 | "enum": [ 8 | "ALIYUN::ApiGateway::Signature" 9 | ] 10 | }, 11 | "Properties": { 12 | "type": "object", 13 | "properties": { 14 | "SignatureSecret": { 15 | "type": "string" 16 | }, 17 | "SignatureName": { 18 | "type": "string" 19 | }, 20 | "SignatureKey": { 21 | "type": "string" 22 | } 23 | }, 24 | "required": [ 25 | "SignatureSecret", 26 | "SignatureName", 27 | "SignatureKey" 28 | ], 29 | "additionalProperties": false, 30 | "document": { 31 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::ApiGateway::Signature" 32 | } 33 | } 34 | }, 35 | "required": [ 36 | "Type", 37 | "Properties" 38 | ], 39 | "document": { 40 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::ApiGateway::Signature" 41 | }, 42 | "insertText": "${1:Signature}:\n Type: ALIYUN::ApiGateway::Signature\n Properties:\n " 43 | } -------------------------------------------------------------------------------- /src/language-service/schema/ros/ALIYUN-ApiGateway-StageConfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "$id": "ALIYUN::ApiGateway::StageConfig", 3 | "type": "object", 4 | "properties": { 5 | "Type": { 6 | "type": "string", 7 | "enum": [ 8 | "ALIYUN::ApiGateway::StageConfig" 9 | ] 10 | }, 11 | "Properties": { 12 | "type": "object", 13 | "properties": { 14 | "Variables": { 15 | "type": "object" 16 | }, 17 | "StageName": { 18 | "type": "string" 19 | }, 20 | "GroupId": { 21 | "type": "string" 22 | } 23 | }, 24 | "required": [ 25 | "Variables", 26 | "StageName", 27 | "GroupId" 28 | ], 29 | "additionalProperties": false, 30 | "document": { 31 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::ApiGateway::StageConfig" 32 | } 33 | } 34 | }, 35 | "required": [ 36 | "Type", 37 | "Properties" 38 | ], 39 | "document": { 40 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::ApiGateway::StageConfig" 41 | }, 42 | "insertText": "${1:StageConfig}:\n Type: ALIYUN::ApiGateway::StageConfig\n Properties:\n " 43 | } -------------------------------------------------------------------------------- /src/language-service/schema/ros/ALIYUN-BSS-WaitOrder.json: -------------------------------------------------------------------------------- 1 | { 2 | "$id": "ALIYUN::BSS::WaitOrder", 3 | "type": "object", 4 | "properties": { 5 | "Type": { 6 | "type": "string", 7 | "enum": [ 8 | "ALIYUN::BSS::WaitOrder" 9 | ] 10 | }, 11 | "Properties": { 12 | "type": "object", 13 | "properties": { 14 | "CancelOnDelete": { 15 | "type": "boolean" 16 | }, 17 | "OrderIds": { 18 | "type": "array" 19 | }, 20 | "WaitForOrderProduced": { 21 | "type": "boolean" 22 | } 23 | }, 24 | "required": [ 25 | "OrderIds" 26 | ], 27 | "additionalProperties": false, 28 | "document": { 29 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::BSS::WaitOrder" 30 | } 31 | } 32 | }, 33 | "required": [ 34 | "Type", 35 | "Properties" 36 | ], 37 | "document": { 38 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::BSS::WaitOrder" 39 | }, 40 | "insertText": "${1:WaitOrder}:\n Type: ALIYUN::BSS::WaitOrder\n Properties:\n " 41 | } -------------------------------------------------------------------------------- /src/language-service/schema/ros/ALIYUN-CDN-DomainConfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "$id": "ALIYUN::CDN::DomainConfig", 3 | "type": "object", 4 | "properties": { 5 | "Type": { 6 | "type": "string", 7 | "enum": [ 8 | "ALIYUN::CDN::DomainConfig" 9 | ] 10 | }, 11 | "Properties": { 12 | "type": "object", 13 | "properties": { 14 | "Functions": { 15 | "type": "string" 16 | }, 17 | "DomainNames": { 18 | "type": "string" 19 | } 20 | }, 21 | "required": [ 22 | "Functions", 23 | "DomainNames" 24 | ], 25 | "additionalProperties": false, 26 | "document": { 27 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::CDN::DomainConfig" 28 | } 29 | } 30 | }, 31 | "required": [ 32 | "Type", 33 | "Properties" 34 | ], 35 | "document": { 36 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::CDN::DomainConfig" 37 | }, 38 | "insertText": "${1:DomainConfig}:\n Type: ALIYUN::CDN::DomainConfig\n Properties:\n " 39 | } -------------------------------------------------------------------------------- /src/language-service/schema/ros/ALIYUN-CEN-CenBandwidthPackageAssociation.json: -------------------------------------------------------------------------------- 1 | { 2 | "$id": "ALIYUN::CEN::CenBandwidthPackageAssociation", 3 | "type": "object", 4 | "properties": { 5 | "Type": { 6 | "type": "string", 7 | "enum": [ 8 | "ALIYUN::CEN::CenBandwidthPackageAssociation" 9 | ] 10 | }, 11 | "Properties": { 12 | "type": "object", 13 | "properties": { 14 | "CenId": { 15 | "type": "string" 16 | }, 17 | "CenBandwidthPackageId": { 18 | "type": "string" 19 | } 20 | }, 21 | "required": [ 22 | "CenId", 23 | "CenBandwidthPackageId" 24 | ], 25 | "additionalProperties": false, 26 | "document": { 27 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::CEN::CenBandwidthPackageAssociation" 28 | } 29 | } 30 | }, 31 | "required": [ 32 | "Type", 33 | "Properties" 34 | ], 35 | "document": { 36 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::CEN::CenBandwidthPackageAssociation" 37 | }, 38 | "insertText": "${1:CenBandwidthPackageAssociation}:\n Type: ALIYUN::CEN::CenBandwidthPackageAssociation\n Properties:\n " 39 | } -------------------------------------------------------------------------------- /src/language-service/schema/ros/ALIYUN-CEN-CenInstance.json: -------------------------------------------------------------------------------- 1 | { 2 | "$id": "ALIYUN::CEN::CenInstance", 3 | "type": "object", 4 | "properties": { 5 | "Type": { 6 | "type": "string", 7 | "enum": [ 8 | "ALIYUN::CEN::CenInstance" 9 | ] 10 | }, 11 | "Properties": { 12 | "type": "object", 13 | "properties": { 14 | "Description": { 15 | "type": "string" 16 | }, 17 | "Name": { 18 | "type": "string" 19 | } 20 | }, 21 | "required": [], 22 | "additionalProperties": false, 23 | "document": { 24 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::CEN::CenInstance" 25 | } 26 | } 27 | }, 28 | "required": [ 29 | "Type", 30 | "Properties" 31 | ], 32 | "document": { 33 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::CEN::CenInstance" 34 | }, 35 | "insertText": "${1:CenInstance}:\n Type: ALIYUN::CEN::CenInstance\n Properties:\n " 36 | } -------------------------------------------------------------------------------- /src/language-service/schema/ros/ALIYUN-CMS-MonitorGroup.json: -------------------------------------------------------------------------------- 1 | { 2 | "$id": "ALIYUN::CMS::MonitorGroup", 3 | "type": "object", 4 | "properties": { 5 | "Type": { 6 | "type": "string", 7 | "enum": [ 8 | "ALIYUN::CMS::MonitorGroup" 9 | ] 10 | }, 11 | "Properties": { 12 | "type": "object", 13 | "properties": { 14 | "GroupName": { 15 | "type": "string" 16 | }, 17 | "ContactGroups": { 18 | "type": "string" 19 | } 20 | }, 21 | "required": [ 22 | "GroupName" 23 | ], 24 | "additionalProperties": false, 25 | "document": { 26 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::CMS::MonitorGroup" 27 | } 28 | } 29 | }, 30 | "required": [ 31 | "Type", 32 | "Properties" 33 | ], 34 | "document": { 35 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::CMS::MonitorGroup" 36 | }, 37 | "insertText": "${1:MonitorGroup}:\n Type: ALIYUN::CMS::MonitorGroup\n Properties:\n " 38 | } -------------------------------------------------------------------------------- /src/language-service/schema/ros/ALIYUN-CR-Namespace.json: -------------------------------------------------------------------------------- 1 | { 2 | "$id": "ALIYUN::CR::Namespace", 3 | "type": "object", 4 | "properties": { 5 | "Type": { 6 | "type": "string", 7 | "enum": [ 8 | "ALIYUN::CR::Namespace" 9 | ] 10 | }, 11 | "Properties": { 12 | "type": "object", 13 | "properties": { 14 | "AutoCreate": { 15 | "type": "boolean" 16 | }, 17 | "DefaultVisibility": { 18 | "type": "string" 19 | }, 20 | "Namespace": { 21 | "type": "string" 22 | } 23 | }, 24 | "required": [ 25 | "Namespace" 26 | ], 27 | "additionalProperties": false, 28 | "document": { 29 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::CR::Namespace" 30 | } 31 | } 32 | }, 33 | "required": [ 34 | "Type", 35 | "Properties" 36 | ], 37 | "document": { 38 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::CR::Namespace" 39 | }, 40 | "insertText": "${1:Namespace}:\n Type: ALIYUN::CR::Namespace\n Properties:\n " 41 | } -------------------------------------------------------------------------------- /src/language-service/schema/ros/ALIYUN-DATAHUB-Project.json: -------------------------------------------------------------------------------- 1 | { 2 | "$id": "ALIYUN::DATAHUB::Project", 3 | "type": "object", 4 | "properties": { 5 | "Type": { 6 | "type": "string", 7 | "enum": [ 8 | "ALIYUN::DATAHUB::Project" 9 | ] 10 | }, 11 | "Properties": { 12 | "type": "object", 13 | "properties": { 14 | "Comment": { 15 | "type": "string" 16 | }, 17 | "ProjectName": { 18 | "type": "string" 19 | } 20 | }, 21 | "required": [ 22 | "Comment", 23 | "ProjectName" 24 | ], 25 | "additionalProperties": false, 26 | "document": { 27 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::DATAHUB::Project" 28 | } 29 | } 30 | }, 31 | "required": [ 32 | "Type", 33 | "Properties" 34 | ], 35 | "document": { 36 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::DATAHUB::Project" 37 | }, 38 | "insertText": "${1:Project}:\n Type: ALIYUN::DATAHUB::Project\n Properties:\n " 39 | } -------------------------------------------------------------------------------- /src/language-service/schema/ros/ALIYUN-DNS-Domain.json: -------------------------------------------------------------------------------- 1 | { 2 | "$id": "ALIYUN::DNS::Domain", 3 | "type": "object", 4 | "properties": { 5 | "Type": { 6 | "type": "string", 7 | "enum": [ 8 | "ALIYUN::DNS::Domain" 9 | ] 10 | }, 11 | "Properties": { 12 | "type": "object", 13 | "properties": { 14 | "DomainName": { 15 | "type": "string" 16 | }, 17 | "GroupId": { 18 | "type": "string" 19 | } 20 | }, 21 | "required": [ 22 | "DomainName" 23 | ], 24 | "additionalProperties": false, 25 | "document": { 26 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::DNS::Domain" 27 | } 28 | } 29 | }, 30 | "required": [ 31 | "Type", 32 | "Properties" 33 | ], 34 | "document": { 35 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::DNS::Domain" 36 | }, 37 | "insertText": "${1:Domain}:\n Type: ALIYUN::DNS::Domain\n Properties:\n " 38 | } -------------------------------------------------------------------------------- /src/language-service/schema/ros/ALIYUN-DNS-DomainGroup.json: -------------------------------------------------------------------------------- 1 | { 2 | "$id": "ALIYUN::DNS::DomainGroup", 3 | "type": "object", 4 | "properties": { 5 | "Type": { 6 | "type": "string", 7 | "enum": [ 8 | "ALIYUN::DNS::DomainGroup" 9 | ] 10 | }, 11 | "Properties": { 12 | "type": "object", 13 | "properties": { 14 | "GroupName": { 15 | "type": "string" 16 | } 17 | }, 18 | "required": [ 19 | "GroupName" 20 | ], 21 | "additionalProperties": false, 22 | "document": { 23 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::DNS::DomainGroup" 24 | } 25 | } 26 | }, 27 | "required": [ 28 | "Type", 29 | "Properties" 30 | ], 31 | "document": { 32 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::DNS::DomainGroup" 33 | }, 34 | "insertText": "${1:DomainGroup}:\n Type: ALIYUN::DNS::DomainGroup\n Properties:\n " 35 | } -------------------------------------------------------------------------------- /src/language-service/schema/ros/ALIYUN-ECS-AssignIpv6Addresses.json: -------------------------------------------------------------------------------- 1 | { 2 | "$id": "ALIYUN::ECS::AssignIpv6Addresses", 3 | "type": "object", 4 | "properties": { 5 | "Type": { 6 | "type": "string", 7 | "enum": [ 8 | "ALIYUN::ECS::AssignIpv6Addresses" 9 | ] 10 | }, 11 | "Properties": { 12 | "type": "object", 13 | "properties": { 14 | "Ipv6AddressCount": { 15 | "type": "integer" 16 | }, 17 | "Ipv6Addresses": { 18 | "type": "array" 19 | }, 20 | "NetworkInterfaceId": { 21 | "type": "string" 22 | } 23 | }, 24 | "required": [ 25 | "NetworkInterfaceId" 26 | ], 27 | "additionalProperties": false, 28 | "document": { 29 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::ECS::AssignIpv6Addresses" 30 | } 31 | } 32 | }, 33 | "required": [ 34 | "Type", 35 | "Properties" 36 | ], 37 | "document": { 38 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::ECS::AssignIpv6Addresses" 39 | }, 40 | "insertText": "${1:AssignIpv6Addresses}:\n Type: ALIYUN::ECS::AssignIpv6Addresses\n Properties:\n " 41 | } -------------------------------------------------------------------------------- /src/language-service/schema/ros/ALIYUN-ECS-AssignPrivateIpAddresses.json: -------------------------------------------------------------------------------- 1 | { 2 | "$id": "ALIYUN::ECS::AssignPrivateIpAddresses", 3 | "type": "object", 4 | "properties": { 5 | "Type": { 6 | "type": "string", 7 | "enum": [ 8 | "ALIYUN::ECS::AssignPrivateIpAddresses" 9 | ] 10 | }, 11 | "Properties": { 12 | "type": "object", 13 | "properties": { 14 | "SecondaryPrivateIpAddressCount": { 15 | "type": "integer" 16 | }, 17 | "PrivateIpAddresses": { 18 | "type": "array" 19 | }, 20 | "NetworkInterfaceId": { 21 | "type": "string" 22 | } 23 | }, 24 | "required": [ 25 | "NetworkInterfaceId" 26 | ], 27 | "additionalProperties": false, 28 | "document": { 29 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::ECS::AssignPrivateIpAddresses" 30 | } 31 | } 32 | }, 33 | "required": [ 34 | "Type", 35 | "Properties" 36 | ], 37 | "document": { 38 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::ECS::AssignPrivateIpAddresses" 39 | }, 40 | "insertText": "${1:AssignPrivateIpAddresses}:\n Type: ALIYUN::ECS::AssignPrivateIpAddresses\n Properties:\n " 41 | } -------------------------------------------------------------------------------- /src/language-service/schema/ros/ALIYUN-ECS-DeploymentSet.json: -------------------------------------------------------------------------------- 1 | { 2 | "$id": "ALIYUN::ECS::DeploymentSet", 3 | "type": "object", 4 | "properties": { 5 | "Type": { 6 | "type": "string", 7 | "enum": [ 8 | "ALIYUN::ECS::DeploymentSet" 9 | ] 10 | }, 11 | "Properties": { 12 | "type": "object", 13 | "properties": { 14 | "OnUnableToRedeployFailedInstance": { 15 | "type": "string" 16 | }, 17 | "Description": { 18 | "type": "string" 19 | }, 20 | "DeploymentSetName": { 21 | "type": "string" 22 | } 23 | }, 24 | "required": [], 25 | "additionalProperties": false, 26 | "document": { 27 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::ECS::DeploymentSet" 28 | } 29 | } 30 | }, 31 | "required": [ 32 | "Type", 33 | "Properties" 34 | ], 35 | "document": { 36 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::ECS::DeploymentSet" 37 | }, 38 | "insertText": "${1:DeploymentSet}:\n Type: ALIYUN::ECS::DeploymentSet\n Properties:\n " 39 | } -------------------------------------------------------------------------------- /src/language-service/schema/ros/ALIYUN-ECS-HpcCluster.json: -------------------------------------------------------------------------------- 1 | { 2 | "$id": "ALIYUN::ECS::HpcCluster", 3 | "type": "object", 4 | "properties": { 5 | "Type": { 6 | "type": "string", 7 | "enum": [ 8 | "ALIYUN::ECS::HpcCluster" 9 | ] 10 | }, 11 | "Properties": { 12 | "type": "object", 13 | "properties": { 14 | "Description": { 15 | "type": "string" 16 | }, 17 | "Name": { 18 | "type": "string" 19 | } 20 | }, 21 | "required": [ 22 | "Name" 23 | ], 24 | "additionalProperties": false, 25 | "document": { 26 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::ECS::HpcCluster" 27 | } 28 | } 29 | }, 30 | "required": [ 31 | "Type", 32 | "Properties" 33 | ], 34 | "document": { 35 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::ECS::HpcCluster" 36 | }, 37 | "insertText": "${1:HpcCluster}:\n Type: ALIYUN::ECS::HpcCluster\n Properties:\n " 38 | } -------------------------------------------------------------------------------- /src/language-service/schema/ros/ALIYUN-ECS-Invocation.json: -------------------------------------------------------------------------------- 1 | { 2 | "$id": "ALIYUN::ECS::Invocation", 3 | "type": "object", 4 | "properties": { 5 | "Type": { 6 | "type": "string", 7 | "enum": [ 8 | "ALIYUN::ECS::Invocation" 9 | ] 10 | }, 11 | "Properties": { 12 | "type": "object", 13 | "properties": { 14 | "Timed": { 15 | "type": "boolean" 16 | }, 17 | "Frequency": { 18 | "type": "string" 19 | }, 20 | "CommandId": { 21 | "type": "string" 22 | }, 23 | "InstanceIds": { 24 | "type": "array" 25 | } 26 | }, 27 | "required": [ 28 | "CommandId", 29 | "InstanceIds" 30 | ], 31 | "additionalProperties": false, 32 | "document": { 33 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::ECS::Invocation" 34 | } 35 | } 36 | }, 37 | "required": [ 38 | "Type", 39 | "Properties" 40 | ], 41 | "document": { 42 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::ECS::Invocation" 43 | }, 44 | "insertText": "${1:Invocation}:\n Type: ALIYUN::ECS::Invocation\n Properties:\n " 45 | } -------------------------------------------------------------------------------- /src/language-service/schema/ros/ALIYUN-ECS-NetworkInterfaceAttachment.json: -------------------------------------------------------------------------------- 1 | { 2 | "$id": "ALIYUN::ECS::NetworkInterfaceAttachment", 3 | "type": "object", 4 | "properties": { 5 | "Type": { 6 | "type": "string", 7 | "enum": [ 8 | "ALIYUN::ECS::NetworkInterfaceAttachment" 9 | ] 10 | }, 11 | "Properties": { 12 | "type": "object", 13 | "properties": { 14 | "InstanceId": { 15 | "type": "string" 16 | }, 17 | "NetworkInterfaceId": { 18 | "type": "string" 19 | } 20 | }, 21 | "required": [ 22 | "InstanceId", 23 | "NetworkInterfaceId" 24 | ], 25 | "additionalProperties": false, 26 | "document": { 27 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::ECS::NetworkInterfaceAttachment" 28 | } 29 | } 30 | }, 31 | "required": [ 32 | "Type", 33 | "Properties" 34 | ], 35 | "document": { 36 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::ECS::NetworkInterfaceAttachment" 37 | }, 38 | "insertText": "${1:NetworkInterfaceAttachment}:\n Type: ALIYUN::ECS::NetworkInterfaceAttachment\n Properties:\n " 39 | } -------------------------------------------------------------------------------- /src/language-service/schema/ros/ALIYUN-ECS-SNatEntry.json: -------------------------------------------------------------------------------- 1 | { 2 | "$id": "ALIYUN::ECS::SNatEntry", 3 | "type": "object", 4 | "properties": { 5 | "Type": { 6 | "type": "string", 7 | "enum": [ 8 | "ALIYUN::ECS::SNatEntry" 9 | ] 10 | }, 11 | "Properties": { 12 | "type": "object", 13 | "properties": { 14 | "SourceVSwitchId": { 15 | "type": "string" 16 | }, 17 | "SNatTableId": { 18 | "type": "string" 19 | }, 20 | "SNatIp": { 21 | "type": "string" 22 | } 23 | }, 24 | "required": [ 25 | "SourceVSwitchId", 26 | "SNatTableId", 27 | "SNatIp" 28 | ], 29 | "additionalProperties": false, 30 | "document": { 31 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::ECS::SNatEntry" 32 | } 33 | } 34 | }, 35 | "required": [ 36 | "Type", 37 | "Properties" 38 | ], 39 | "document": { 40 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::ECS::SNatEntry" 41 | }, 42 | "insertText": "${1:SNatEntry}:\n Type: ALIYUN::ECS::SNatEntry\n Properties:\n " 43 | } -------------------------------------------------------------------------------- /src/language-service/schema/ros/ALIYUN-ECS-SSHKeyPair.json: -------------------------------------------------------------------------------- 1 | { 2 | "$id": "ALIYUN::ECS::SSHKeyPair", 3 | "type": "object", 4 | "properties": { 5 | "Type": { 6 | "type": "string", 7 | "enum": [ 8 | "ALIYUN::ECS::SSHKeyPair" 9 | ] 10 | }, 11 | "Properties": { 12 | "type": "object", 13 | "properties": { 14 | "KeyPairName": { 15 | "type": "string" 16 | }, 17 | "ResourceGroupId": { 18 | "type": "string" 19 | }, 20 | "PublicKeyBody": { 21 | "type": "string" 22 | } 23 | }, 24 | "required": [ 25 | "KeyPairName" 26 | ], 27 | "additionalProperties": false, 28 | "document": { 29 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::ECS::SSHKeyPair" 30 | } 31 | } 32 | }, 33 | "required": [ 34 | "Type", 35 | "Properties" 36 | ], 37 | "document": { 38 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::ECS::SSHKeyPair" 39 | }, 40 | "insertText": "${1:SSHKeyPair}:\n Type: ALIYUN::ECS::SSHKeyPair\n Properties:\n " 41 | } -------------------------------------------------------------------------------- /src/language-service/schema/ros/ALIYUN-ECS-SSHKeyPairAttachment.json: -------------------------------------------------------------------------------- 1 | { 2 | "$id": "ALIYUN::ECS::SSHKeyPairAttachment", 3 | "type": "object", 4 | "properties": { 5 | "Type": { 6 | "type": "string", 7 | "enum": [ 8 | "ALIYUN::ECS::SSHKeyPairAttachment" 9 | ] 10 | }, 11 | "Properties": { 12 | "type": "object", 13 | "properties": { 14 | "KeyPairName": { 15 | "type": "string" 16 | }, 17 | "InstanceIds": { 18 | "type": "array" 19 | } 20 | }, 21 | "required": [ 22 | "KeyPairName", 23 | "InstanceIds" 24 | ], 25 | "additionalProperties": false, 26 | "document": { 27 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::ECS::SSHKeyPairAttachment" 28 | } 29 | } 30 | }, 31 | "required": [ 32 | "Type", 33 | "Properties" 34 | ], 35 | "document": { 36 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::ECS::SSHKeyPairAttachment" 37 | }, 38 | "insertText": "${1:SSHKeyPairAttachment}:\n Type: ALIYUN::ECS::SSHKeyPairAttachment\n Properties:\n " 39 | } -------------------------------------------------------------------------------- /src/language-service/schema/ros/ALIYUN-ECS-Snapshot.json: -------------------------------------------------------------------------------- 1 | { 2 | "$id": "ALIYUN::ECS::Snapshot", 3 | "type": "object", 4 | "properties": { 5 | "Type": { 6 | "type": "string", 7 | "enum": [ 8 | "ALIYUN::ECS::Snapshot" 9 | ] 10 | }, 11 | "Properties": { 12 | "type": "object", 13 | "properties": { 14 | "Description": { 15 | "type": "string" 16 | }, 17 | "Timeout": { 18 | "type": "integer" 19 | }, 20 | "SnapshotName": { 21 | "type": "string" 22 | }, 23 | "DiskId": { 24 | "type": "string" 25 | } 26 | }, 27 | "required": [ 28 | "DiskId" 29 | ], 30 | "additionalProperties": false, 31 | "document": { 32 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::ECS::Snapshot" 33 | } 34 | } 35 | }, 36 | "required": [ 37 | "Type", 38 | "Properties" 39 | ], 40 | "document": { 41 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::ECS::Snapshot" 42 | }, 43 | "insertText": "${1:Snapshot}:\n Type: ALIYUN::ECS::Snapshot\n Properties:\n " 44 | } -------------------------------------------------------------------------------- /src/language-service/schema/ros/ALIYUN-EDAS-ClusterMember.json: -------------------------------------------------------------------------------- 1 | { 2 | "$id": "ALIYUN::EDAS::ClusterMember", 3 | "type": "object", 4 | "properties": { 5 | "Type": { 6 | "type": "string", 7 | "enum": [ 8 | "ALIYUN::EDAS::ClusterMember" 9 | ] 10 | }, 11 | "Properties": { 12 | "type": "object", 13 | "properties": { 14 | "ClusterId": { 15 | "type": "string" 16 | }, 17 | "InstanceIds": { 18 | "type": "array" 19 | }, 20 | "Password": { 21 | "type": "string" 22 | } 23 | }, 24 | "required": [ 25 | "ClusterId", 26 | "InstanceIds", 27 | "Password" 28 | ], 29 | "additionalProperties": false, 30 | "document": { 31 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::EDAS::ClusterMember" 32 | } 33 | } 34 | }, 35 | "required": [ 36 | "Type", 37 | "Properties" 38 | ], 39 | "document": { 40 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::EDAS::ClusterMember" 41 | }, 42 | "insertText": "${1:ClusterMember}:\n Type: ALIYUN::EDAS::ClusterMember\n Properties:\n " 43 | } -------------------------------------------------------------------------------- /src/language-service/schema/ros/ALIYUN-EDAS-DeployGroup.json: -------------------------------------------------------------------------------- 1 | { 2 | "$id": "ALIYUN::EDAS::DeployGroup", 3 | "type": "object", 4 | "properties": { 5 | "Type": { 6 | "type": "string", 7 | "enum": [ 8 | "ALIYUN::EDAS::DeployGroup" 9 | ] 10 | }, 11 | "Properties": { 12 | "type": "object", 13 | "properties": { 14 | "GroupName": { 15 | "type": "string" 16 | }, 17 | "AppId": { 18 | "type": "string" 19 | } 20 | }, 21 | "required": [ 22 | "GroupName", 23 | "AppId" 24 | ], 25 | "additionalProperties": false, 26 | "document": { 27 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::EDAS::DeployGroup" 28 | } 29 | } 30 | }, 31 | "required": [ 32 | "Type", 33 | "Properties" 34 | ], 35 | "document": { 36 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::EDAS::DeployGroup" 37 | }, 38 | "insertText": "${1:DeployGroup}:\n Type: ALIYUN::EDAS::DeployGroup\n Properties:\n " 39 | } -------------------------------------------------------------------------------- /src/language-service/schema/ros/ALIYUN-ESS-AlarmTaskEnable.json: -------------------------------------------------------------------------------- 1 | { 2 | "$id": "ALIYUN::ESS::AlarmTaskEnable", 3 | "type": "object", 4 | "properties": { 5 | "Type": { 6 | "type": "string", 7 | "enum": [ 8 | "ALIYUN::ESS::AlarmTaskEnable" 9 | ] 10 | }, 11 | "Properties": { 12 | "type": "object", 13 | "properties": { 14 | "Enable": { 15 | "type": "boolean" 16 | }, 17 | "AlarmTaskId": { 18 | "type": "string" 19 | } 20 | }, 21 | "required": [ 22 | "Enable", 23 | "AlarmTaskId" 24 | ], 25 | "additionalProperties": false, 26 | "document": { 27 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::ESS::AlarmTaskEnable" 28 | } 29 | } 30 | }, 31 | "required": [ 32 | "Type", 33 | "Properties" 34 | ], 35 | "document": { 36 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::ESS::AlarmTaskEnable" 37 | }, 38 | "insertText": "${1:AlarmTaskEnable}:\n Type: ALIYUN::ESS::AlarmTaskEnable\n Properties:\n " 39 | } -------------------------------------------------------------------------------- /src/language-service/schema/ros/ALIYUN-FC-Version.json: -------------------------------------------------------------------------------- 1 | { 2 | "$id": "ALIYUN::FC::Version", 3 | "type": "object", 4 | "properties": { 5 | "Type": { 6 | "type": "string", 7 | "enum": [ 8 | "ALIYUN::FC::Version" 9 | ] 10 | }, 11 | "Properties": { 12 | "type": "object", 13 | "properties": { 14 | "Description": { 15 | "type": "string" 16 | }, 17 | "ServiceName": { 18 | "type": "string" 19 | } 20 | }, 21 | "required": [ 22 | "ServiceName" 23 | ], 24 | "additionalProperties": false, 25 | "document": { 26 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::FC::Version" 27 | } 28 | } 29 | }, 30 | "required": [ 31 | "Type", 32 | "Properties" 33 | ], 34 | "document": { 35 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::FC::Version" 36 | }, 37 | "insertText": "${1:Version}:\n Type: ALIYUN::FC::Version\n Properties:\n " 38 | } -------------------------------------------------------------------------------- /src/language-service/schema/ros/ALIYUN-FNF-Flow.json: -------------------------------------------------------------------------------- 1 | { 2 | "$id": "ALIYUN::FNF::Flow", 3 | "type": "object", 4 | "properties": { 5 | "Type": { 6 | "type": "string", 7 | "enum": [ 8 | "ALIYUN::FNF::Flow" 9 | ] 10 | }, 11 | "Properties": { 12 | "type": "object", 13 | "properties": { 14 | "Description": { 15 | "type": "string" 16 | }, 17 | "RequestId": { 18 | "type": "string" 19 | }, 20 | "Definition": { 21 | "type": "string" 22 | }, 23 | "RoleArn": { 24 | "type": "string" 25 | }, 26 | "Name": { 27 | "type": "string" 28 | } 29 | }, 30 | "required": [ 31 | "Definition", 32 | "Name" 33 | ], 34 | "additionalProperties": false, 35 | "document": { 36 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::FNF::Flow" 37 | } 38 | } 39 | }, 40 | "required": [ 41 | "Type", 42 | "Properties" 43 | ], 44 | "document": { 45 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::FNF::Flow" 46 | }, 47 | "insertText": "${1:Flow}:\n Type: ALIYUN::FNF::Flow\n Properties:\n " 48 | } -------------------------------------------------------------------------------- /src/language-service/schema/ros/ALIYUN-IOT-DeviceGroup.json: -------------------------------------------------------------------------------- 1 | { 2 | "$id": "ALIYUN::IOT::DeviceGroup", 3 | "type": "object", 4 | "properties": { 5 | "Type": { 6 | "type": "string", 7 | "enum": [ 8 | "ALIYUN::IOT::DeviceGroup" 9 | ] 10 | }, 11 | "Properties": { 12 | "type": "object", 13 | "properties": { 14 | "GroupName": { 15 | "type": "string" 16 | }, 17 | "IotInstanceId": { 18 | "type": "string" 19 | }, 20 | "SuperGroupId": { 21 | "type": "string" 22 | }, 23 | "GroupDesc": { 24 | "type": "string" 25 | } 26 | }, 27 | "required": [ 28 | "GroupName" 29 | ], 30 | "additionalProperties": false, 31 | "document": { 32 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::IOT::DeviceGroup" 33 | } 34 | } 35 | }, 36 | "required": [ 37 | "Type", 38 | "Properties" 39 | ], 40 | "document": { 41 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::IOT::DeviceGroup" 42 | }, 43 | "insertText": "${1:DeviceGroup}:\n Type: ALIYUN::IOT::DeviceGroup\n Properties:\n " 44 | } -------------------------------------------------------------------------------- /src/language-service/schema/ros/ALIYUN-KAFKA-Topic.json: -------------------------------------------------------------------------------- 1 | { 2 | "$id": "ALIYUN::KAFKA::Topic", 3 | "type": "object", 4 | "properties": { 5 | "Type": { 6 | "type": "string", 7 | "enum": [ 8 | "ALIYUN::KAFKA::Topic" 9 | ] 10 | }, 11 | "Properties": { 12 | "type": "object", 13 | "properties": { 14 | "PartitionNum": { 15 | "type": "integer" 16 | }, 17 | "InstanceId": { 18 | "type": "string" 19 | }, 20 | "Topic": { 21 | "type": "string" 22 | }, 23 | "Remark": { 24 | "type": "string" 25 | } 26 | }, 27 | "required": [ 28 | "InstanceId", 29 | "Topic", 30 | "Remark" 31 | ], 32 | "additionalProperties": false, 33 | "document": { 34 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::KAFKA::Topic" 35 | } 36 | } 37 | }, 38 | "required": [ 39 | "Type", 40 | "Properties" 41 | ], 42 | "document": { 43 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::KAFKA::Topic" 44 | }, 45 | "insertText": "${1:Topic}:\n Type: ALIYUN::KAFKA::Topic\n Properties:\n " 46 | } -------------------------------------------------------------------------------- /src/language-service/schema/ros/ALIYUN-KMS-Alias.json: -------------------------------------------------------------------------------- 1 | { 2 | "$id": "ALIYUN::KMS::Alias", 3 | "type": "object", 4 | "properties": { 5 | "Type": { 6 | "type": "string", 7 | "enum": [ 8 | "ALIYUN::KMS::Alias" 9 | ] 10 | }, 11 | "Properties": { 12 | "type": "object", 13 | "properties": { 14 | "AliasName": { 15 | "type": "string" 16 | }, 17 | "KeyId": { 18 | "type": "string" 19 | } 20 | }, 21 | "required": [ 22 | "AliasName", 23 | "KeyId" 24 | ], 25 | "additionalProperties": false, 26 | "document": { 27 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::KMS::Alias" 28 | } 29 | } 30 | }, 31 | "required": [ 32 | "Type", 33 | "Properties" 34 | ], 35 | "document": { 36 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::KMS::Alias" 37 | }, 38 | "insertText": "${1:Alias}:\n Type: ALIYUN::KMS::Alias\n Properties:\n " 39 | } -------------------------------------------------------------------------------- /src/language-service/schema/ros/ALIYUN-KMS-Key.json: -------------------------------------------------------------------------------- 1 | { 2 | "$id": "ALIYUN::KMS::Key", 3 | "type": "object", 4 | "properties": { 5 | "Type": { 6 | "type": "string", 7 | "enum": [ 8 | "ALIYUN::KMS::Key" 9 | ] 10 | }, 11 | "Properties": { 12 | "type": "object", 13 | "properties": { 14 | "Description": { 15 | "type": "string" 16 | }, 17 | "PendingWindowInDays": { 18 | "type": "integer" 19 | }, 20 | "KeyUsage": { 21 | "type": "string" 22 | }, 23 | "Enable": { 24 | "type": "boolean" 25 | } 26 | }, 27 | "required": [], 28 | "additionalProperties": false, 29 | "document": { 30 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::KMS::Key" 31 | } 32 | } 33 | }, 34 | "required": [ 35 | "Type", 36 | "Properties" 37 | ], 38 | "document": { 39 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::KMS::Key" 40 | }, 41 | "insertText": "${1:Key}:\n Type: ALIYUN::KMS::Key\n Properties:\n " 42 | } -------------------------------------------------------------------------------- /src/language-service/schema/ros/ALIYUN-MNS-Topic.json: -------------------------------------------------------------------------------- 1 | { 2 | "$id": "ALIYUN::MNS::Topic", 3 | "type": "object", 4 | "properties": { 5 | "Type": { 6 | "type": "string", 7 | "enum": [ 8 | "ALIYUN::MNS::Topic" 9 | ] 10 | }, 11 | "Properties": { 12 | "type": "object", 13 | "properties": { 14 | "MaximumMessageSize": { 15 | "type": "integer" 16 | }, 17 | "LoggingEnabled": { 18 | "type": "boolean" 19 | }, 20 | "TopicName": { 21 | "type": "string" 22 | } 23 | }, 24 | "required": [ 25 | "TopicName" 26 | ], 27 | "additionalProperties": false, 28 | "document": { 29 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::MNS::Topic" 30 | } 31 | } 32 | }, 33 | "required": [ 34 | "Type", 35 | "Properties" 36 | ], 37 | "document": { 38 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::MNS::Topic" 39 | }, 40 | "insertText": "${1:Topic}:\n Type: ALIYUN::MNS::Topic\n Properties:\n " 41 | } -------------------------------------------------------------------------------- /src/language-service/schema/ros/ALIYUN-NAS-AccessGroup.json: -------------------------------------------------------------------------------- 1 | { 2 | "$id": "ALIYUN::NAS::AccessGroup", 3 | "type": "object", 4 | "properties": { 5 | "Type": { 6 | "type": "string", 7 | "enum": [ 8 | "ALIYUN::NAS::AccessGroup" 9 | ] 10 | }, 11 | "Properties": { 12 | "type": "object", 13 | "properties": { 14 | "AccessGroupType": { 15 | "type": "string" 16 | }, 17 | "Description": { 18 | "type": "string" 19 | }, 20 | "AccessGroupName": { 21 | "type": "string" 22 | } 23 | }, 24 | "required": [ 25 | "AccessGroupType", 26 | "AccessGroupName" 27 | ], 28 | "additionalProperties": false, 29 | "document": { 30 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::NAS::AccessGroup" 31 | } 32 | } 33 | }, 34 | "required": [ 35 | "Type", 36 | "Properties" 37 | ], 38 | "document": { 39 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::NAS::AccessGroup" 40 | }, 41 | "insertText": "${1:AccessGroup}:\n Type: ALIYUN::NAS::AccessGroup\n Properties:\n " 42 | } -------------------------------------------------------------------------------- /src/language-service/schema/ros/ALIYUN-NAS-FileSystem.json: -------------------------------------------------------------------------------- 1 | { 2 | "$id": "ALIYUN::NAS::FileSystem", 3 | "type": "object", 4 | "properties": { 5 | "Type": { 6 | "type": "string", 7 | "enum": [ 8 | "ALIYUN::NAS::FileSystem" 9 | ] 10 | }, 11 | "Properties": { 12 | "type": "object", 13 | "properties": { 14 | "StorageType": { 15 | "type": "string" 16 | }, 17 | "Description": { 18 | "type": "string" 19 | }, 20 | "ZoneId": { 21 | "type": "string" 22 | }, 23 | "ProtocolType": { 24 | "type": "string" 25 | } 26 | }, 27 | "required": [ 28 | "StorageType", 29 | "ProtocolType" 30 | ], 31 | "additionalProperties": false, 32 | "document": { 33 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::NAS::FileSystem" 34 | } 35 | } 36 | }, 37 | "required": [ 38 | "Type", 39 | "Properties" 40 | ], 41 | "document": { 42 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::NAS::FileSystem" 43 | }, 44 | "insertText": "${1:FileSystem}:\n Type: ALIYUN::NAS::FileSystem\n Properties:\n " 45 | } -------------------------------------------------------------------------------- /src/language-service/schema/ros/ALIYUN-OOS-Template.json: -------------------------------------------------------------------------------- 1 | { 2 | "$id": "ALIYUN::OOS::Template", 3 | "type": "object", 4 | "properties": { 5 | "Type": { 6 | "type": "string", 7 | "enum": [ 8 | "ALIYUN::OOS::Template" 9 | ] 10 | }, 11 | "Properties": { 12 | "type": "object", 13 | "properties": { 14 | "Content": { 15 | "type": "string" 16 | }, 17 | "TemplateName": { 18 | "type": "string" 19 | }, 20 | "Tags": { 21 | "type": "object" 22 | } 23 | }, 24 | "required": [ 25 | "Content", 26 | "TemplateName" 27 | ], 28 | "additionalProperties": false, 29 | "document": { 30 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::OOS::Template" 31 | } 32 | } 33 | }, 34 | "required": [ 35 | "Type", 36 | "Properties" 37 | ], 38 | "document": { 39 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::OOS::Template" 40 | }, 41 | "insertText": "${1:Template}:\n Type: ALIYUN::OOS::Template\n Properties:\n " 42 | } -------------------------------------------------------------------------------- /src/language-service/schema/ros/ALIYUN-OTS-Instance.json: -------------------------------------------------------------------------------- 1 | { 2 | "$id": "ALIYUN::OTS::Instance", 3 | "type": "object", 4 | "properties": { 5 | "Type": { 6 | "type": "string", 7 | "enum": [ 8 | "ALIYUN::OTS::Instance" 9 | ] 10 | }, 11 | "Properties": { 12 | "type": "object", 13 | "properties": { 14 | "InstanceName": { 15 | "type": "string" 16 | }, 17 | "Description": { 18 | "type": "string" 19 | }, 20 | "Network": { 21 | "type": "string" 22 | }, 23 | "ClusterType": { 24 | "type": "string" 25 | }, 26 | "Tags": { 27 | "type": "array" 28 | } 29 | }, 30 | "required": [ 31 | "InstanceName" 32 | ], 33 | "additionalProperties": false, 34 | "document": { 35 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::OTS::Instance" 36 | } 37 | } 38 | }, 39 | "required": [ 40 | "Type", 41 | "Properties" 42 | ], 43 | "document": { 44 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::OTS::Instance" 45 | }, 46 | "insertText": "${1:Instance}:\n Type: ALIYUN::OTS::Instance\n Properties:\n " 47 | } -------------------------------------------------------------------------------- /src/language-service/schema/ros/ALIYUN-OTS-VpcBinder.json: -------------------------------------------------------------------------------- 1 | { 2 | "$id": "ALIYUN::OTS::VpcBinder", 3 | "type": "object", 4 | "properties": { 5 | "Type": { 6 | "type": "string", 7 | "enum": [ 8 | "ALIYUN::OTS::VpcBinder" 9 | ] 10 | }, 11 | "Properties": { 12 | "type": "object", 13 | "properties": { 14 | "InstanceName": { 15 | "type": "string" 16 | }, 17 | "Vpcs": { 18 | "type": "array" 19 | } 20 | }, 21 | "required": [ 22 | "InstanceName", 23 | "Vpcs" 24 | ], 25 | "additionalProperties": false, 26 | "document": { 27 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::OTS::VpcBinder" 28 | } 29 | } 30 | }, 31 | "required": [ 32 | "Type", 33 | "Properties" 34 | ], 35 | "document": { 36 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::OTS::VpcBinder" 37 | }, 38 | "insertText": "${1:VpcBinder}:\n Type: ALIYUN::OTS::VpcBinder\n Properties:\n " 39 | } -------------------------------------------------------------------------------- /src/language-service/schema/ros/ALIYUN-POLARDB-DBNodes.json: -------------------------------------------------------------------------------- 1 | { 2 | "$id": "ALIYUN::POLARDB::DBNodes", 3 | "type": "object", 4 | "properties": { 5 | "Type": { 6 | "type": "string", 7 | "enum": [ 8 | "ALIYUN::POLARDB::DBNodes" 9 | ] 10 | }, 11 | "Properties": { 12 | "type": "object", 13 | "properties": { 14 | "Amount": { 15 | "type": "integer" 16 | }, 17 | "DBClusterId": { 18 | "type": "string" 19 | } 20 | }, 21 | "required": [ 22 | "Amount", 23 | "DBClusterId" 24 | ], 25 | "additionalProperties": false, 26 | "document": { 27 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::POLARDB::DBNodes" 28 | } 29 | } 30 | }, 31 | "required": [ 32 | "Type", 33 | "Properties" 34 | ], 35 | "document": { 36 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::POLARDB::DBNodes" 37 | }, 38 | "insertText": "${1:DBNodes}:\n Type: ALIYUN::POLARDB::DBNodes\n Properties:\n " 39 | } -------------------------------------------------------------------------------- /src/language-service/schema/ros/ALIYUN-PVTZ-Zone.json: -------------------------------------------------------------------------------- 1 | { 2 | "$id": "ALIYUN::PVTZ::Zone", 3 | "type": "object", 4 | "properties": { 5 | "Type": { 6 | "type": "string", 7 | "enum": [ 8 | "ALIYUN::PVTZ::Zone" 9 | ] 10 | }, 11 | "Properties": { 12 | "type": "object", 13 | "properties": { 14 | "ZoneName": { 15 | "type": "string" 16 | }, 17 | "ProxyPattern": { 18 | "type": "string" 19 | }, 20 | "Remark": { 21 | "type": "string" 22 | } 23 | }, 24 | "required": [ 25 | "ZoneName" 26 | ], 27 | "additionalProperties": false, 28 | "document": { 29 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::PVTZ::Zone" 30 | } 31 | } 32 | }, 33 | "required": [ 34 | "Type", 35 | "Properties" 36 | ], 37 | "document": { 38 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::PVTZ::Zone" 39 | }, 40 | "insertText": "${1:Zone}:\n Type: ALIYUN::PVTZ::Zone\n Properties:\n " 41 | } -------------------------------------------------------------------------------- /src/language-service/schema/ros/ALIYUN-PVTZ-ZoneVpcBinder.json: -------------------------------------------------------------------------------- 1 | { 2 | "$id": "ALIYUN::PVTZ::ZoneVpcBinder", 3 | "type": "object", 4 | "properties": { 5 | "Type": { 6 | "type": "string", 7 | "enum": [ 8 | "ALIYUN::PVTZ::ZoneVpcBinder" 9 | ] 10 | }, 11 | "Properties": { 12 | "type": "object", 13 | "properties": { 14 | "Vpcs": { 15 | "type": "array" 16 | }, 17 | "ZoneId": { 18 | "type": "string" 19 | } 20 | }, 21 | "required": [ 22 | "Vpcs", 23 | "ZoneId" 24 | ], 25 | "additionalProperties": false, 26 | "document": { 27 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::PVTZ::ZoneVpcBinder" 28 | } 29 | } 30 | }, 31 | "required": [ 32 | "Type", 33 | "Properties" 34 | ], 35 | "document": { 36 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::PVTZ::ZoneVpcBinder" 37 | }, 38 | "insertText": "${1:ZoneVpcBinder}:\n Type: ALIYUN::PVTZ::ZoneVpcBinder\n Properties:\n " 39 | } -------------------------------------------------------------------------------- /src/language-service/schema/ros/ALIYUN-RAM-AccessKey.json: -------------------------------------------------------------------------------- 1 | { 2 | "$id": "ALIYUN::RAM::AccessKey", 3 | "type": "object", 4 | "properties": { 5 | "Type": { 6 | "type": "string", 7 | "enum": [ 8 | "ALIYUN::RAM::AccessKey" 9 | ] 10 | }, 11 | "Properties": { 12 | "type": "object", 13 | "properties": { 14 | "UserName": { 15 | "type": "string" 16 | } 17 | }, 18 | "required": [ 19 | "UserName" 20 | ], 21 | "additionalProperties": false, 22 | "document": { 23 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::RAM::AccessKey" 24 | } 25 | } 26 | }, 27 | "required": [ 28 | "Type", 29 | "Properties" 30 | ], 31 | "document": { 32 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::RAM::AccessKey" 33 | }, 34 | "insertText": "${1:AccessKey}:\n Type: ALIYUN::RAM::AccessKey\n Properties:\n " 35 | } -------------------------------------------------------------------------------- /src/language-service/schema/ros/ALIYUN-RAM-AttachPolicyToRole.json: -------------------------------------------------------------------------------- 1 | { 2 | "$id": "ALIYUN::RAM::AttachPolicyToRole", 3 | "type": "object", 4 | "properties": { 5 | "Type": { 6 | "type": "string", 7 | "enum": [ 8 | "ALIYUN::RAM::AttachPolicyToRole" 9 | ] 10 | }, 11 | "Properties": { 12 | "type": "object", 13 | "properties": { 14 | "PolicyType": { 15 | "type": "string" 16 | }, 17 | "RoleName": { 18 | "type": "string" 19 | }, 20 | "PolicyName": { 21 | "type": "string" 22 | } 23 | }, 24 | "required": [ 25 | "PolicyType", 26 | "RoleName", 27 | "PolicyName" 28 | ], 29 | "additionalProperties": false, 30 | "document": { 31 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::RAM::AttachPolicyToRole" 32 | } 33 | } 34 | }, 35 | "required": [ 36 | "Type", 37 | "Properties" 38 | ], 39 | "document": { 40 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::RAM::AttachPolicyToRole" 41 | }, 42 | "insertText": "${1:AttachPolicyToRole}:\n Type: ALIYUN::RAM::AttachPolicyToRole\n Properties:\n " 43 | } -------------------------------------------------------------------------------- /src/language-service/schema/ros/ALIYUN-RAM-Group.json: -------------------------------------------------------------------------------- 1 | { 2 | "$id": "ALIYUN::RAM::Group", 3 | "type": "object", 4 | "properties": { 5 | "Type": { 6 | "type": "string", 7 | "enum": [ 8 | "ALIYUN::RAM::Group" 9 | ] 10 | }, 11 | "Properties": { 12 | "type": "object", 13 | "properties": { 14 | "GroupName": { 15 | "type": "string" 16 | }, 17 | "Policies": { 18 | "type": "array" 19 | }, 20 | "Comments": { 21 | "type": "string" 22 | } 23 | }, 24 | "required": [ 25 | "GroupName" 26 | ], 27 | "additionalProperties": false, 28 | "document": { 29 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::RAM::Group" 30 | } 31 | } 32 | }, 33 | "required": [ 34 | "Type", 35 | "Properties" 36 | ], 37 | "document": { 38 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::RAM::Group" 39 | }, 40 | "insertText": "${1:Group}:\n Type: ALIYUN::RAM::Group\n Properties:\n " 41 | } -------------------------------------------------------------------------------- /src/language-service/schema/ros/ALIYUN-RAM-Role.json: -------------------------------------------------------------------------------- 1 | { 2 | "$id": "ALIYUN::RAM::Role", 3 | "type": "object", 4 | "properties": { 5 | "Type": { 6 | "type": "string", 7 | "enum": [ 8 | "ALIYUN::RAM::Role" 9 | ] 10 | }, 11 | "Properties": { 12 | "type": "object", 13 | "properties": { 14 | "RoleName": { 15 | "type": "string" 16 | }, 17 | "Description": { 18 | "type": "string" 19 | }, 20 | "Policies": { 21 | "type": "array" 22 | }, 23 | "AssumeRolePolicyDocument": { 24 | "type": "object" 25 | } 26 | }, 27 | "required": [ 28 | "RoleName", 29 | "AssumeRolePolicyDocument" 30 | ], 31 | "additionalProperties": false, 32 | "document": { 33 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::RAM::Role" 34 | } 35 | } 36 | }, 37 | "required": [ 38 | "Type", 39 | "Properties" 40 | ], 41 | "document": { 42 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::RAM::Role" 43 | }, 44 | "insertText": "${1:Role}:\n Type: ALIYUN::RAM::Role\n Properties:\n " 45 | } -------------------------------------------------------------------------------- /src/language-service/schema/ros/ALIYUN-RAM-UserToGroupAddition.json: -------------------------------------------------------------------------------- 1 | { 2 | "$id": "ALIYUN::RAM::UserToGroupAddition", 3 | "type": "object", 4 | "properties": { 5 | "Type": { 6 | "type": "string", 7 | "enum": [ 8 | "ALIYUN::RAM::UserToGroupAddition" 9 | ] 10 | }, 11 | "Properties": { 12 | "type": "object", 13 | "properties": { 14 | "GroupName": { 15 | "type": "string" 16 | }, 17 | "Users": { 18 | "type": "array" 19 | } 20 | }, 21 | "required": [ 22 | "GroupName", 23 | "Users" 24 | ], 25 | "additionalProperties": false, 26 | "document": { 27 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::RAM::UserToGroupAddition" 28 | } 29 | } 30 | }, 31 | "required": [ 32 | "Type", 33 | "Properties" 34 | ], 35 | "document": { 36 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::RAM::UserToGroupAddition" 37 | }, 38 | "insertText": "${1:UserToGroupAddition}:\n Type: ALIYUN::RAM::UserToGroupAddition\n Properties:\n " 39 | } -------------------------------------------------------------------------------- /src/language-service/schema/ros/ALIYUN-RDS-DBInstanceParameterGroup.json: -------------------------------------------------------------------------------- 1 | { 2 | "$id": "ALIYUN::RDS::DBInstanceParameterGroup", 3 | "type": "object", 4 | "properties": { 5 | "Type": { 6 | "type": "string", 7 | "enum": [ 8 | "ALIYUN::RDS::DBInstanceParameterGroup" 9 | ] 10 | }, 11 | "Properties": { 12 | "type": "object", 13 | "properties": { 14 | "Parameters": { 15 | "type": "array" 16 | }, 17 | "DBInstanceId": { 18 | "type": "string" 19 | }, 20 | "Forcerestart": { 21 | "type": "string" 22 | } 23 | }, 24 | "required": [ 25 | "Parameters", 26 | "DBInstanceId" 27 | ], 28 | "additionalProperties": false, 29 | "document": { 30 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::RDS::DBInstanceParameterGroup" 31 | } 32 | } 33 | }, 34 | "required": [ 35 | "Type", 36 | "Properties" 37 | ], 38 | "document": { 39 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::RDS::DBInstanceParameterGroup" 40 | }, 41 | "insertText": "${1:DBInstanceParameterGroup}:\n Type: ALIYUN::RDS::DBInstanceParameterGroup\n Properties:\n " 42 | } -------------------------------------------------------------------------------- /src/language-service/schema/ros/ALIYUN-REDIS-Whitelist.json: -------------------------------------------------------------------------------- 1 | { 2 | "$id": "ALIYUN::REDIS::Whitelist", 3 | "type": "object", 4 | "properties": { 5 | "Type": { 6 | "type": "string", 7 | "enum": [ 8 | "ALIYUN::REDIS::Whitelist" 9 | ] 10 | }, 11 | "Properties": { 12 | "type": "object", 13 | "properties": { 14 | "SecurityIpGroupAttribute": { 15 | "type": "string" 16 | }, 17 | "SecurityIps": { 18 | "type": "string" 19 | }, 20 | "InstanceId": { 21 | "type": "string" 22 | }, 23 | "SecurityIpGroupName": { 24 | "type": "string" 25 | } 26 | }, 27 | "required": [ 28 | "SecurityIps", 29 | "InstanceId" 30 | ], 31 | "additionalProperties": false, 32 | "document": { 33 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::REDIS::Whitelist" 34 | } 35 | } 36 | }, 37 | "required": [ 38 | "Type", 39 | "Properties" 40 | ], 41 | "document": { 42 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::REDIS::Whitelist" 43 | }, 44 | "insertText": "${1:Whitelist}:\n Type: ALIYUN::REDIS::Whitelist\n Properties:\n " 45 | } -------------------------------------------------------------------------------- /src/language-service/schema/ros/ALIYUN-ROCKETMQ-Group.json: -------------------------------------------------------------------------------- 1 | { 2 | "$id": "ALIYUN::ROCKETMQ::Group", 3 | "type": "object", 4 | "properties": { 5 | "Type": { 6 | "type": "string", 7 | "enum": [ 8 | "ALIYUN::ROCKETMQ::Group" 9 | ] 10 | }, 11 | "Properties": { 12 | "type": "object", 13 | "properties": { 14 | "GroupType": { 15 | "type": "string" 16 | }, 17 | "InstanceId": { 18 | "type": "string" 19 | }, 20 | "Remark": { 21 | "type": "string" 22 | }, 23 | "GroupId": { 24 | "type": "string" 25 | } 26 | }, 27 | "required": [ 28 | "InstanceId", 29 | "GroupId" 30 | ], 31 | "additionalProperties": false, 32 | "document": { 33 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::ROCKETMQ::Group" 34 | } 35 | } 36 | }, 37 | "required": [ 38 | "Type", 39 | "Properties" 40 | ], 41 | "document": { 42 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::ROCKETMQ::Group" 43 | }, 44 | "insertText": "${1:Group}:\n Type: ALIYUN::ROCKETMQ::Group\n Properties:\n " 45 | } -------------------------------------------------------------------------------- /src/language-service/schema/ros/ALIYUN-ROCKETMQ-Instance.json: -------------------------------------------------------------------------------- 1 | { 2 | "$id": "ALIYUN::ROCKETMQ::Instance", 3 | "type": "object", 4 | "properties": { 5 | "Type": { 6 | "type": "string", 7 | "enum": [ 8 | "ALIYUN::ROCKETMQ::Instance" 9 | ] 10 | }, 11 | "Properties": { 12 | "type": "object", 13 | "properties": { 14 | "InstanceName": { 15 | "type": "string" 16 | }, 17 | "Remark": { 18 | "type": "string" 19 | } 20 | }, 21 | "required": [ 22 | "InstanceName" 23 | ], 24 | "additionalProperties": false, 25 | "document": { 26 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::ROCKETMQ::Instance" 27 | } 28 | } 29 | }, 30 | "required": [ 31 | "Type", 32 | "Properties" 33 | ], 34 | "document": { 35 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::ROCKETMQ::Instance" 36 | }, 37 | "insertText": "${1:Instance}:\n Type: ALIYUN::ROCKETMQ::Instance\n Properties:\n " 38 | } -------------------------------------------------------------------------------- /src/language-service/schema/ros/ALIYUN-ROS-CustomResource.json: -------------------------------------------------------------------------------- 1 | { 2 | "$id": "ALIYUN::ROS::CustomResource", 3 | "type": "object", 4 | "properties": { 5 | "Type": { 6 | "type": "string", 7 | "enum": [ 8 | "ALIYUN::ROS::CustomResource" 9 | ] 10 | }, 11 | "Properties": { 12 | "type": "object", 13 | "properties": { 14 | "ServiceToken": { 15 | "type": "string" 16 | }, 17 | "Parameters": { 18 | "type": "object" 19 | }, 20 | "Timeout": { 21 | "type": "number" 22 | } 23 | }, 24 | "required": [ 25 | "ServiceToken", 26 | "Timeout" 27 | ], 28 | "additionalProperties": false, 29 | "document": { 30 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::ROS::CustomResource" 31 | } 32 | } 33 | }, 34 | "required": [ 35 | "Type", 36 | "Properties" 37 | ], 38 | "document": { 39 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::ROS::CustomResource" 40 | }, 41 | "insertText": "${1:CustomResource}:\n Type: ALIYUN::ROS::CustomResource\n Properties:\n " 42 | } -------------------------------------------------------------------------------- /src/language-service/schema/ros/ALIYUN-ROS-Stack.json: -------------------------------------------------------------------------------- 1 | { 2 | "$id": "ALIYUN::ROS::Stack", 3 | "type": "object", 4 | "properties": { 5 | "Type": { 6 | "type": "string", 7 | "enum": [ 8 | "ALIYUN::ROS::Stack" 9 | ] 10 | }, 11 | "Properties": { 12 | "type": "object", 13 | "properties": { 14 | "TemplateURL": { 15 | "type": "string" 16 | }, 17 | "Parameters": { 18 | "type": "object" 19 | }, 20 | "TimeoutMins": { 21 | "type": "number" 22 | } 23 | }, 24 | "required": [ 25 | "TemplateURL" 26 | ], 27 | "additionalProperties": false, 28 | "document": { 29 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::ROS::Stack" 30 | } 31 | } 32 | }, 33 | "required": [ 34 | "Type", 35 | "Properties" 36 | ], 37 | "document": { 38 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::ROS::Stack" 39 | }, 40 | "insertText": "${1:Stack}:\n Type: ALIYUN::ROS::Stack\n Properties:\n " 41 | } -------------------------------------------------------------------------------- /src/language-service/schema/ros/ALIYUN-ROS-WaitCondition.json: -------------------------------------------------------------------------------- 1 | { 2 | "$id": "ALIYUN::ROS::WaitCondition", 3 | "type": "object", 4 | "properties": { 5 | "Type": { 6 | "type": "string", 7 | "enum": [ 8 | "ALIYUN::ROS::WaitCondition" 9 | ] 10 | }, 11 | "Properties": { 12 | "type": "object", 13 | "properties": { 14 | "Timeout": { 15 | "type": "number" 16 | }, 17 | "Count": { 18 | "type": "number" 19 | }, 20 | "Handle": { 21 | "type": "string" 22 | } 23 | }, 24 | "required": [ 25 | "Timeout", 26 | "Handle" 27 | ], 28 | "additionalProperties": false, 29 | "document": { 30 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::ROS::WaitCondition" 31 | } 32 | } 33 | }, 34 | "required": [ 35 | "Type", 36 | "Properties" 37 | ], 38 | "document": { 39 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::ROS::WaitCondition" 40 | }, 41 | "insertText": "${1:WaitCondition}:\n Type: ALIYUN::ROS::WaitCondition\n Properties:\n " 42 | } -------------------------------------------------------------------------------- /src/language-service/schema/ros/ALIYUN-ROS-WaitConditionHandle.json: -------------------------------------------------------------------------------- 1 | { 2 | "$id": "ALIYUN::ROS::WaitConditionHandle", 3 | "type": "object", 4 | "properties": { 5 | "Type": { 6 | "type": "string", 7 | "enum": [ 8 | "ALIYUN::ROS::WaitConditionHandle" 9 | ] 10 | }, 11 | "Properties": { 12 | "type": "object", 13 | "properties": { 14 | "Mode": { 15 | "type": "string" 16 | }, 17 | "Count": { 18 | "type": "integer" 19 | } 20 | }, 21 | "required": [], 22 | "additionalProperties": false, 23 | "document": { 24 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::ROS::WaitConditionHandle" 25 | } 26 | } 27 | }, 28 | "required": [ 29 | "Type", 30 | "Properties" 31 | ], 32 | "document": { 33 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::ROS::WaitConditionHandle" 34 | }, 35 | "insertText": "${1:WaitConditionHandle}:\n Type: ALIYUN::ROS::WaitConditionHandle\n Properties:\n " 36 | } -------------------------------------------------------------------------------- /src/language-service/schema/ros/ALIYUN-SAG-ACL.json: -------------------------------------------------------------------------------- 1 | { 2 | "$id": "ALIYUN::SAG::ACL", 3 | "type": "object", 4 | "properties": { 5 | "Type": { 6 | "type": "string", 7 | "enum": [ 8 | "ALIYUN::SAG::ACL" 9 | ] 10 | }, 11 | "Properties": { 12 | "type": "object", 13 | "properties": { 14 | "Name": { 15 | "type": "string" 16 | } 17 | }, 18 | "required": [ 19 | "Name" 20 | ], 21 | "additionalProperties": false, 22 | "document": { 23 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::SAG::ACL" 24 | } 25 | } 26 | }, 27 | "required": [ 28 | "Type", 29 | "Properties" 30 | ], 31 | "document": { 32 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::SAG::ACL" 33 | }, 34 | "insertText": "${1:ACL}:\n Type: ALIYUN::SAG::ACL\n Properties:\n " 35 | } -------------------------------------------------------------------------------- /src/language-service/schema/ros/ALIYUN-SAG-ACLAssociation.json: -------------------------------------------------------------------------------- 1 | { 2 | "$id": "ALIYUN::SAG::ACLAssociation", 3 | "type": "object", 4 | "properties": { 5 | "Type": { 6 | "type": "string", 7 | "enum": [ 8 | "ALIYUN::SAG::ACLAssociation" 9 | ] 10 | }, 11 | "Properties": { 12 | "type": "object", 13 | "properties": { 14 | "AclId": { 15 | "type": "string" 16 | }, 17 | "SmartAGId": { 18 | "type": "string" 19 | } 20 | }, 21 | "required": [ 22 | "AclId", 23 | "SmartAGId" 24 | ], 25 | "additionalProperties": false, 26 | "document": { 27 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::SAG::ACLAssociation" 28 | } 29 | } 30 | }, 31 | "required": [ 32 | "Type", 33 | "Properties" 34 | ], 35 | "document": { 36 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::SAG::ACLAssociation" 37 | }, 38 | "insertText": "${1:ACLAssociation}:\n Type: ALIYUN::SAG::ACLAssociation\n Properties:\n " 39 | } -------------------------------------------------------------------------------- /src/language-service/schema/ros/ALIYUN-SAG-CloudConnectNetwork.json: -------------------------------------------------------------------------------- 1 | { 2 | "$id": "ALIYUN::SAG::CloudConnectNetwork", 3 | "type": "object", 4 | "properties": { 5 | "Type": { 6 | "type": "string", 7 | "enum": [ 8 | "ALIYUN::SAG::CloudConnectNetwork" 9 | ] 10 | }, 11 | "Properties": { 12 | "type": "object", 13 | "properties": { 14 | "IsDefault": { 15 | "type": "boolean" 16 | }, 17 | "Description": { 18 | "type": "string" 19 | }, 20 | "Name": { 21 | "type": "string" 22 | } 23 | }, 24 | "required": [], 25 | "additionalProperties": false, 26 | "document": { 27 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::SAG::CloudConnectNetwork" 28 | } 29 | } 30 | }, 31 | "required": [ 32 | "Type", 33 | "Properties" 34 | ], 35 | "document": { 36 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::SAG::CloudConnectNetwork" 37 | }, 38 | "insertText": "${1:CloudConnectNetwork}:\n Type: ALIYUN::SAG::CloudConnectNetwork\n Properties:\n " 39 | } -------------------------------------------------------------------------------- /src/language-service/schema/ros/ALIYUN-SAG-GrantCcnToCen.json: -------------------------------------------------------------------------------- 1 | { 2 | "$id": "ALIYUN::SAG::GrantCcnToCen", 3 | "type": "object", 4 | "properties": { 5 | "Type": { 6 | "type": "string", 7 | "enum": [ 8 | "ALIYUN::SAG::GrantCcnToCen" 9 | ] 10 | }, 11 | "Properties": { 12 | "type": "object", 13 | "properties": { 14 | "CenUid": { 15 | "type": "string" 16 | }, 17 | "CcnInstanceId": { 18 | "type": "string" 19 | }, 20 | "CenInstanceId": { 21 | "type": "string" 22 | } 23 | }, 24 | "required": [ 25 | "CenUid", 26 | "CcnInstanceId", 27 | "CenInstanceId" 28 | ], 29 | "additionalProperties": false, 30 | "document": { 31 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::SAG::GrantCcnToCen" 32 | } 33 | } 34 | }, 35 | "required": [ 36 | "Type", 37 | "Properties" 38 | ], 39 | "document": { 40 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::SAG::GrantCcnToCen" 41 | }, 42 | "insertText": "${1:GrantCcnToCen}:\n Type: ALIYUN::SAG::GrantCcnToCen\n Properties:\n " 43 | } -------------------------------------------------------------------------------- /src/language-service/schema/ros/ALIYUN-SAG-SmartAccessGatewayBinding.json: -------------------------------------------------------------------------------- 1 | { 2 | "$id": "ALIYUN::SAG::SmartAccessGatewayBinding", 3 | "type": "object", 4 | "properties": { 5 | "Type": { 6 | "type": "string", 7 | "enum": [ 8 | "ALIYUN::SAG::SmartAccessGatewayBinding" 9 | ] 10 | }, 11 | "Properties": { 12 | "type": "object", 13 | "properties": { 14 | "CcnId": { 15 | "type": "string" 16 | }, 17 | "SmartAGId": { 18 | "type": "string" 19 | } 20 | }, 21 | "required": [ 22 | "CcnId", 23 | "SmartAGId" 24 | ], 25 | "additionalProperties": false, 26 | "document": { 27 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::SAG::SmartAccessGatewayBinding" 28 | } 29 | } 30 | }, 31 | "required": [ 32 | "Type", 33 | "Properties" 34 | ], 35 | "document": { 36 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::SAG::SmartAccessGatewayBinding" 37 | }, 38 | "insertText": "${1:SmartAccessGatewayBinding}:\n Type: ALIYUN::SAG::SmartAccessGatewayBinding\n Properties:\n " 39 | } -------------------------------------------------------------------------------- /src/language-service/schema/ros/ALIYUN-SLB-AccessControl.json: -------------------------------------------------------------------------------- 1 | { 2 | "$id": "ALIYUN::SLB::AccessControl", 3 | "type": "object", 4 | "properties": { 5 | "Type": { 6 | "type": "string", 7 | "enum": [ 8 | "ALIYUN::SLB::AccessControl" 9 | ] 10 | }, 11 | "Properties": { 12 | "type": "object", 13 | "properties": { 14 | "AclEntrys": { 15 | "type": "array" 16 | }, 17 | "AddressIPVersion": { 18 | "type": "string" 19 | }, 20 | "AclName": { 21 | "type": "string" 22 | } 23 | }, 24 | "required": [ 25 | "AclName" 26 | ], 27 | "additionalProperties": false, 28 | "document": { 29 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::SLB::AccessControl" 30 | } 31 | } 32 | }, 33 | "required": [ 34 | "Type", 35 | "Properties" 36 | ], 37 | "document": { 38 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::SLB::AccessControl" 39 | }, 40 | "insertText": "${1:AccessControl}:\n Type: ALIYUN::SLB::AccessControl\n Properties:\n " 41 | } -------------------------------------------------------------------------------- /src/language-service/schema/ros/ALIYUN-SLB-BackendServerToVServerGroupAddition.json: -------------------------------------------------------------------------------- 1 | { 2 | "$id": "ALIYUN::SLB::BackendServerToVServerGroupAddition", 3 | "type": "object", 4 | "properties": { 5 | "Type": { 6 | "type": "string", 7 | "enum": [ 8 | "ALIYUN::SLB::BackendServerToVServerGroupAddition" 9 | ] 10 | }, 11 | "Properties": { 12 | "type": "object", 13 | "properties": { 14 | "VServerGroupId": { 15 | "type": "string" 16 | }, 17 | "BackendServers": { 18 | "type": "array" 19 | } 20 | }, 21 | "required": [ 22 | "VServerGroupId", 23 | "BackendServers" 24 | ], 25 | "additionalProperties": false, 26 | "document": { 27 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::SLB::BackendServerToVServerGroupAddition" 28 | } 29 | } 30 | }, 31 | "required": [ 32 | "Type", 33 | "Properties" 34 | ], 35 | "document": { 36 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::SLB::BackendServerToVServerGroupAddition" 37 | }, 38 | "insertText": "${1:BackendServerToVServerGroupAddition}:\n Type: ALIYUN::SLB::BackendServerToVServerGroupAddition\n Properties:\n " 39 | } -------------------------------------------------------------------------------- /src/language-service/schema/ros/ALIYUN-SLB-Rule.json: -------------------------------------------------------------------------------- 1 | { 2 | "$id": "ALIYUN::SLB::Rule", 3 | "type": "object", 4 | "properties": { 5 | "Type": { 6 | "type": "string", 7 | "enum": [ 8 | "ALIYUN::SLB::Rule" 9 | ] 10 | }, 11 | "Properties": { 12 | "type": "object", 13 | "properties": { 14 | "ListenerPort": { 15 | "type": "integer" 16 | }, 17 | "RuleList": { 18 | "type": "array" 19 | }, 20 | "LoadBalancerId": { 21 | "type": "string" 22 | } 23 | }, 24 | "required": [ 25 | "ListenerPort", 26 | "RuleList", 27 | "LoadBalancerId" 28 | ], 29 | "additionalProperties": false, 30 | "document": { 31 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::SLB::Rule" 32 | } 33 | } 34 | }, 35 | "required": [ 36 | "Type", 37 | "Properties" 38 | ], 39 | "document": { 40 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::SLB::Rule" 41 | }, 42 | "insertText": "${1:Rule}:\n Type: ALIYUN::SLB::Rule\n Properties:\n " 43 | } -------------------------------------------------------------------------------- /src/language-service/schema/ros/ALIYUN-SLB-VServerGroup.json: -------------------------------------------------------------------------------- 1 | { 2 | "$id": "ALIYUN::SLB::VServerGroup", 3 | "type": "object", 4 | "properties": { 5 | "Type": { 6 | "type": "string", 7 | "enum": [ 8 | "ALIYUN::SLB::VServerGroup" 9 | ] 10 | }, 11 | "Properties": { 12 | "type": "object", 13 | "properties": { 14 | "VServerGroupName": { 15 | "type": "string" 16 | }, 17 | "LoadBalancerId": { 18 | "type": "string" 19 | }, 20 | "BackendServers": { 21 | "type": "array" 22 | } 23 | }, 24 | "required": [ 25 | "VServerGroupName", 26 | "LoadBalancerId", 27 | "BackendServers" 28 | ], 29 | "additionalProperties": false, 30 | "document": { 31 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::SLB::VServerGroup" 32 | } 33 | } 34 | }, 35 | "required": [ 36 | "Type", 37 | "Properties" 38 | ], 39 | "document": { 40 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::SLB::VServerGroup" 41 | }, 42 | "insertText": "${1:VServerGroup}:\n Type: ALIYUN::SLB::VServerGroup\n Properties:\n " 43 | } -------------------------------------------------------------------------------- /src/language-service/schema/ros/ALIYUN-SLS-ApplyConfigToMachineGroup.json: -------------------------------------------------------------------------------- 1 | { 2 | "$id": "ALIYUN::SLS::ApplyConfigToMachineGroup", 3 | "type": "object", 4 | "properties": { 5 | "Type": { 6 | "type": "string", 7 | "enum": [ 8 | "ALIYUN::SLS::ApplyConfigToMachineGroup" 9 | ] 10 | }, 11 | "Properties": { 12 | "type": "object", 13 | "properties": { 14 | "GroupName": { 15 | "type": "string" 16 | }, 17 | "ConfigName": { 18 | "type": "string" 19 | }, 20 | "ProjectName": { 21 | "type": "string" 22 | } 23 | }, 24 | "required": [], 25 | "additionalProperties": false, 26 | "document": { 27 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::SLS::ApplyConfigToMachineGroup" 28 | } 29 | } 30 | }, 31 | "required": [ 32 | "Type", 33 | "Properties" 34 | ], 35 | "document": { 36 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::SLS::ApplyConfigToMachineGroup" 37 | }, 38 | "insertText": "${1:ApplyConfigToMachineGroup}:\n Type: ALIYUN::SLS::ApplyConfigToMachineGroup\n Properties:\n " 39 | } -------------------------------------------------------------------------------- /src/language-service/schema/ros/ALIYUN-SLS-Project.json: -------------------------------------------------------------------------------- 1 | { 2 | "$id": "ALIYUN::SLS::Project", 3 | "type": "object", 4 | "properties": { 5 | "Type": { 6 | "type": "string", 7 | "enum": [ 8 | "ALIYUN::SLS::Project" 9 | ] 10 | }, 11 | "Properties": { 12 | "type": "object", 13 | "properties": { 14 | "Description": { 15 | "type": "string" 16 | }, 17 | "Name": { 18 | "type": "string" 19 | } 20 | }, 21 | "required": [ 22 | "Name" 23 | ], 24 | "additionalProperties": false, 25 | "document": { 26 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::SLS::Project" 27 | } 28 | } 29 | }, 30 | "required": [ 31 | "Type", 32 | "Properties" 33 | ], 34 | "document": { 35 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::SLS::Project" 36 | }, 37 | "insertText": "${1:Project}:\n Type: ALIYUN::SLS::Project\n Properties:\n " 38 | } -------------------------------------------------------------------------------- /src/language-service/schema/ros/ALIYUN-UIS-Uis.json: -------------------------------------------------------------------------------- 1 | { 2 | "$id": "ALIYUN::UIS::Uis", 3 | "type": "object", 4 | "properties": { 5 | "Type": { 6 | "type": "string", 7 | "enum": [ 8 | "ALIYUN::UIS::Uis" 9 | ] 10 | }, 11 | "Properties": { 12 | "type": "object", 13 | "properties": { 14 | "Description": { 15 | "type": "string" 16 | }, 17 | "Name": { 18 | "type": "string" 19 | } 20 | }, 21 | "required": [], 22 | "additionalProperties": false, 23 | "document": { 24 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::UIS::Uis" 25 | } 26 | } 27 | }, 28 | "required": [ 29 | "Type", 30 | "Properties" 31 | ], 32 | "document": { 33 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::UIS::Uis" 34 | }, 35 | "insertText": "${1:Uis}:\n Type: ALIYUN::UIS::Uis\n Properties:\n " 36 | } -------------------------------------------------------------------------------- /src/language-service/schema/ros/ALIYUN-VPC-CommonBandwidthPackageIp.json: -------------------------------------------------------------------------------- 1 | { 2 | "$id": "ALIYUN::VPC::CommonBandwidthPackageIp", 3 | "type": "object", 4 | "properties": { 5 | "Type": { 6 | "type": "string", 7 | "enum": [ 8 | "ALIYUN::VPC::CommonBandwidthPackageIp" 9 | ] 10 | }, 11 | "Properties": { 12 | "type": "object", 13 | "properties": { 14 | "Eips": { 15 | "type": "array" 16 | }, 17 | "BandwidthPackageId": { 18 | "type": "string" 19 | } 20 | }, 21 | "required": [ 22 | "Eips", 23 | "BandwidthPackageId" 24 | ], 25 | "additionalProperties": false, 26 | "document": { 27 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::VPC::CommonBandwidthPackageIp" 28 | } 29 | } 30 | }, 31 | "required": [ 32 | "Type", 33 | "Properties" 34 | ], 35 | "document": { 36 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::VPC::CommonBandwidthPackageIp" 37 | }, 38 | "insertText": "${1:CommonBandwidthPackageIp}:\n Type: ALIYUN::VPC::CommonBandwidthPackageIp\n Properties:\n " 39 | } -------------------------------------------------------------------------------- /src/language-service/schema/ros/ALIYUN-VPC-CustomerGateway.json: -------------------------------------------------------------------------------- 1 | { 2 | "$id": "ALIYUN::VPC::CustomerGateway", 3 | "type": "object", 4 | "properties": { 5 | "Type": { 6 | "type": "string", 7 | "enum": [ 8 | "ALIYUN::VPC::CustomerGateway" 9 | ] 10 | }, 11 | "Properties": { 12 | "type": "object", 13 | "properties": { 14 | "Description": { 15 | "type": "string" 16 | }, 17 | "IpAddress": { 18 | "type": "string" 19 | }, 20 | "Name": { 21 | "type": "string" 22 | } 23 | }, 24 | "required": [ 25 | "IpAddress" 26 | ], 27 | "additionalProperties": false, 28 | "document": { 29 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::VPC::CustomerGateway" 30 | } 31 | } 32 | }, 33 | "required": [ 34 | "Type", 35 | "Properties" 36 | ], 37 | "document": { 38 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::VPC::CustomerGateway" 39 | }, 40 | "insertText": "${1:CustomerGateway}:\n Type: ALIYUN::VPC::CustomerGateway\n Properties:\n " 41 | } -------------------------------------------------------------------------------- /src/language-service/schema/ros/ALIYUN-VPC-EIPAssociation.json: -------------------------------------------------------------------------------- 1 | { 2 | "$id": "ALIYUN::VPC::EIPAssociation", 3 | "type": "object", 4 | "properties": { 5 | "Type": { 6 | "type": "string", 7 | "enum": [ 8 | "ALIYUN::VPC::EIPAssociation" 9 | ] 10 | }, 11 | "Properties": { 12 | "type": "object", 13 | "properties": { 14 | "PrivateIpAddress": { 15 | "type": "string" 16 | }, 17 | "InstanceId": { 18 | "type": "string" 19 | }, 20 | "Mode": { 21 | "type": "string" 22 | }, 23 | "AllocationId": { 24 | "type": "string" 25 | } 26 | }, 27 | "required": [ 28 | "InstanceId", 29 | "AllocationId" 30 | ], 31 | "additionalProperties": false, 32 | "document": { 33 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::VPC::EIPAssociation" 34 | } 35 | } 36 | }, 37 | "required": [ 38 | "Type", 39 | "Properties" 40 | ], 41 | "document": { 42 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::VPC::EIPAssociation" 43 | }, 44 | "insertText": "${1:EIPAssociation}:\n Type: ALIYUN::VPC::EIPAssociation\n Properties:\n " 45 | } -------------------------------------------------------------------------------- /src/language-service/schema/ros/ALIYUN-VPC-PeeringRouterInterfaceConnection.json: -------------------------------------------------------------------------------- 1 | { 2 | "$id": "ALIYUN::VPC::PeeringRouterInterfaceConnection", 3 | "type": "object", 4 | "properties": { 5 | "Type": { 6 | "type": "string", 7 | "enum": [ 8 | "ALIYUN::VPC::PeeringRouterInterfaceConnection" 9 | ] 10 | }, 11 | "Properties": { 12 | "type": "object", 13 | "properties": { 14 | "OppositeInterfaceId": { 15 | "type": "string" 16 | }, 17 | "RouterInterfaceId": { 18 | "type": "string" 19 | } 20 | }, 21 | "required": [ 22 | "OppositeInterfaceId", 23 | "RouterInterfaceId" 24 | ], 25 | "additionalProperties": false, 26 | "document": { 27 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::VPC::PeeringRouterInterfaceConnection" 28 | } 29 | } 30 | }, 31 | "required": [ 32 | "Type", 33 | "Properties" 34 | ], 35 | "document": { 36 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::VPC::PeeringRouterInterfaceConnection" 37 | }, 38 | "insertText": "${1:PeeringRouterInterfaceConnection}:\n Type: ALIYUN::VPC::PeeringRouterInterfaceConnection\n Properties:\n " 39 | } -------------------------------------------------------------------------------- /src/language-service/schema/ros/ALIYUN-VPC-RouteTable.json: -------------------------------------------------------------------------------- 1 | { 2 | "$id": "ALIYUN::VPC::RouteTable", 3 | "type": "object", 4 | "properties": { 5 | "Type": { 6 | "type": "string", 7 | "enum": [ 8 | "ALIYUN::VPC::RouteTable" 9 | ] 10 | }, 11 | "Properties": { 12 | "type": "object", 13 | "properties": { 14 | "Description": { 15 | "type": "string" 16 | }, 17 | "VpcId": { 18 | "type": "string" 19 | }, 20 | "RouteTableName": { 21 | "type": "string" 22 | } 23 | }, 24 | "required": [ 25 | "VpcId" 26 | ], 27 | "additionalProperties": false, 28 | "document": { 29 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::VPC::RouteTable" 30 | } 31 | } 32 | }, 33 | "required": [ 34 | "Type", 35 | "Properties" 36 | ], 37 | "document": { 38 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::VPC::RouteTable" 39 | }, 40 | "insertText": "${1:RouteTable}:\n Type: ALIYUN::VPC::RouteTable\n Properties:\n " 41 | } -------------------------------------------------------------------------------- /src/language-service/schema/ros/ALIYUN-VPC-RouteTableAssociation.json: -------------------------------------------------------------------------------- 1 | { 2 | "$id": "ALIYUN::VPC::RouteTableAssociation", 3 | "type": "object", 4 | "properties": { 5 | "Type": { 6 | "type": "string", 7 | "enum": [ 8 | "ALIYUN::VPC::RouteTableAssociation" 9 | ] 10 | }, 11 | "Properties": { 12 | "type": "object", 13 | "properties": { 14 | "RouteTableId": { 15 | "type": "string" 16 | }, 17 | "VSwitchId": { 18 | "type": "string" 19 | } 20 | }, 21 | "required": [ 22 | "RouteTableId", 23 | "VSwitchId" 24 | ], 25 | "additionalProperties": false, 26 | "document": { 27 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::VPC::RouteTableAssociation" 28 | } 29 | } 30 | }, 31 | "required": [ 32 | "Type", 33 | "Properties" 34 | ], 35 | "document": { 36 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::VPC::RouteTableAssociation" 37 | }, 38 | "insertText": "${1:RouteTableAssociation}:\n Type: ALIYUN::VPC::RouteTableAssociation\n Properties:\n " 39 | } -------------------------------------------------------------------------------- /src/language-service/schema/ros/ALIYUN-VPC-SnatEntry.json: -------------------------------------------------------------------------------- 1 | { 2 | "$id": "ALIYUN::VPC::SnatEntry", 3 | "type": "object", 4 | "properties": { 5 | "Type": { 6 | "type": "string", 7 | "enum": [ 8 | "ALIYUN::VPC::SnatEntry" 9 | ] 10 | }, 11 | "Properties": { 12 | "type": "object", 13 | "properties": { 14 | "SnatEntryName": { 15 | "type": "string" 16 | }, 17 | "SourceVSwitchIds": { 18 | "type": "array" 19 | }, 20 | "SnatIp": { 21 | "type": "string" 22 | }, 23 | "SnatTableId": { 24 | "type": "string" 25 | } 26 | }, 27 | "required": [ 28 | "SnatIp", 29 | "SnatTableId" 30 | ], 31 | "additionalProperties": false, 32 | "document": { 33 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::VPC::SnatEntry" 34 | } 35 | } 36 | }, 37 | "required": [ 38 | "Type", 39 | "Properties" 40 | ], 41 | "document": { 42 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::VPC::SnatEntry" 43 | }, 44 | "insertText": "${1:SnatEntry}:\n Type: ALIYUN::VPC::SnatEntry\n Properties:\n " 45 | } -------------------------------------------------------------------------------- /src/language-service/schema/ros/ALIYUN-VPC-SslVpnClientCert.json: -------------------------------------------------------------------------------- 1 | { 2 | "$id": "ALIYUN::VPC::SslVpnClientCert", 3 | "type": "object", 4 | "properties": { 5 | "Type": { 6 | "type": "string", 7 | "enum": [ 8 | "ALIYUN::VPC::SslVpnClientCert" 9 | ] 10 | }, 11 | "Properties": { 12 | "type": "object", 13 | "properties": { 14 | "SslVpnServerId": { 15 | "type": "string" 16 | }, 17 | "Name": { 18 | "type": "string" 19 | } 20 | }, 21 | "required": [ 22 | "SslVpnServerId" 23 | ], 24 | "additionalProperties": false, 25 | "document": { 26 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::VPC::SslVpnClientCert" 27 | } 28 | } 29 | }, 30 | "required": [ 31 | "Type", 32 | "Properties" 33 | ], 34 | "document": { 35 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::VPC::SslVpnClientCert" 36 | }, 37 | "insertText": "${1:SslVpnClientCert}:\n Type: ALIYUN::VPC::SslVpnClientCert\n Properties:\n " 38 | } -------------------------------------------------------------------------------- /src/language-service/schema/ros/ALIYUN-WAF-WafSwitch.json: -------------------------------------------------------------------------------- 1 | { 2 | "$id": "ALIYUN::WAF::WafSwitch", 3 | "type": "object", 4 | "properties": { 5 | "Type": { 6 | "type": "string", 7 | "enum": [ 8 | "ALIYUN::WAF::WafSwitch" 9 | ] 10 | }, 11 | "Properties": { 12 | "type": "object", 13 | "properties": { 14 | "InstanceId": { 15 | "type": "string" 16 | }, 17 | "Region": { 18 | "type": "string" 19 | }, 20 | "ServiceOn": { 21 | "type": "integer" 22 | }, 23 | "Domain": { 24 | "type": "string" 25 | } 26 | }, 27 | "required": [ 28 | "InstanceId", 29 | "ServiceOn", 30 | "Domain" 31 | ], 32 | "additionalProperties": false, 33 | "document": { 34 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::WAF::WafSwitch" 35 | } 36 | } 37 | }, 38 | "required": [ 39 | "Type", 40 | "Properties" 41 | ], 42 | "document": { 43 | "default": "https://rosnext.console.aliyun.com/resourceType/ALIYUN::WAF::WafSwitch" 44 | }, 45 | "insertText": "${1:WafSwitch}:\n Type: ALIYUN::WAF::WafSwitch\n Properties:\n " 46 | } -------------------------------------------------------------------------------- /src/lens/FunctionComputeLensLocalInvokePanelItem.ts: -------------------------------------------------------------------------------- 1 | import * as vscode from 'vscode'; 2 | import { serverlessCommands } from '../utils/constants'; 3 | 4 | export class FunctionComputeLensLocalInvokePanelItem extends vscode.CodeLens { 5 | constructor(commandRange: vscode.Range, ...item: any[]) { 6 | super(commandRange, { 7 | title: 'Invoke Panel', 8 | command: serverlessCommands.SHOW_LOCAL_INVOKE_PANEL.id, 9 | arguments: item, 10 | }) 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/lens/ServerlessLensConfigItem.ts: -------------------------------------------------------------------------------- 1 | import * as vscode from 'vscode'; 2 | import { serverlessCommands } from '../utils/constants'; 3 | export class ServerlessLensConfigItem extends vscode.CodeLens { 4 | constructor(commandRange: vscode.Range, ...item: any[]) { 5 | super(commandRange, { 6 | title: 'Invoke Config', 7 | command: serverlessCommands.LOCAL_INVOKE_CONFIG.id, 8 | arguments: item, 9 | }) 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/lens/ServerlessLensDebugItem.ts: -------------------------------------------------------------------------------- 1 | import * as vscode from 'vscode'; 2 | import { serverlessCommands } from '../utils/constants'; 3 | 4 | export class SeverlessLensDebugItem extends vscode.CodeLens { 5 | constructor(commandRange: vscode.Range, ...item: any[]) { 6 | super(commandRange, { 7 | title: 'Local Debug', 8 | command: serverlessCommands.LOCAL_DEBUG.id, 9 | arguments: item, 10 | }) 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/lens/ServerlessLensInvokeItem.ts: -------------------------------------------------------------------------------- 1 | import * as vscode from 'vscode'; 2 | import { serverlessCommands } from '../utils/constants'; 3 | export class SeverlessLensInvokeItem extends vscode.CodeLens { 4 | constructor(commandRange: vscode.Range, ...item: any[]) { 5 | super(commandRange, { 6 | title: 'Local Run', 7 | command: serverlessCommands.LOCAL_RUN.id, 8 | arguments: item, 9 | }) 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/models/events.ts: -------------------------------------------------------------------------------- 1 | import * as vscode from 'vscode'; 2 | import { FunctionDescriptor } from '../descriptors/descriptor'; 3 | 4 | export const templateChangeEventEmitter = new vscode.EventEmitter(); 5 | export const localStartChangeEventEmitter = new vscode.EventEmitter(); 6 | -------------------------------------------------------------------------------- /src/parser/BooleanASTNode.ts: -------------------------------------------------------------------------------- 1 | import { ASTNode } from './ASTNode'; 2 | 3 | export class BooleanASTNode extends ASTNode { 4 | private value: boolean | string 5 | 6 | constructor( 7 | parent: ASTNode | undefined, 8 | value: boolean | string, 9 | start: number, 10 | end: number 11 | ) { 12 | super(parent, 'boolean', start, end); 13 | this.value = value; 14 | } 15 | 16 | getValue() { 17 | return this.value; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/parser/ItemASTNode.ts: -------------------------------------------------------------------------------- 1 | import { SlotASTNode } from './SlotASTNode'; 2 | 3 | export class ItemASTNode extends SlotASTNode { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /src/parser/NullASTNode.ts: -------------------------------------------------------------------------------- 1 | import { ASTNode } from './ASTNode'; 2 | 3 | export class NullASTNode extends ASTNode { 4 | constructor( 5 | parent: ASTNode | undefined, 6 | start: number, 7 | end: number) { 8 | super(parent, 'null', start, end); 9 | } 10 | 11 | getValue(): any { 12 | return null; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/parser/SlotASTNode.ts: -------------------------------------------------------------------------------- 1 | import { ASTNode } from './ASTNode'; 2 | 3 | export class SlotASTNode extends ASTNode { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /src/parser/StringASTNode.ts: -------------------------------------------------------------------------------- 1 | import { ASTNode } from './ASTNode'; 2 | 3 | export class StringASTNode extends ASTNode { 4 | isKey: boolean; 5 | value: string; 6 | 7 | constructor( 8 | parent: ASTNode | undefined, 9 | isKey: boolean, 10 | start: number, 11 | end: number, 12 | ) { 13 | super(parent, 'string', start, end); 14 | this.isKey = isKey; 15 | this.value = ''; 16 | } 17 | 18 | getValue(): any { 19 | return this.value; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/test/extension.test.ts: -------------------------------------------------------------------------------- 1 | // 2 | // Note: This example test is leveraging the Mocha test framework. 3 | // Please refer to their documentation on https://mochajs.org/ for help. 4 | // 5 | 6 | // The module 'assert' provides assertion methods from node 7 | import * as assert from 'assert'; 8 | 9 | // You can import and use all API from the 'vscode' module 10 | // as well as import your extension to test it 11 | // import * as vscode from 'vscode'; 12 | // import * as myExtension from '../extension'; 13 | 14 | // Defines a Mocha test suite to group tests of similar kind together 15 | suite('Extension Tests', function () { 16 | // Defines a Mocha unit test 17 | }); 18 | -------------------------------------------------------------------------------- /src/test/index.ts: -------------------------------------------------------------------------------- 1 | // 2 | // PLEASE DO NOT MODIFY / DELETE UNLESS YOU KNOW WHAT YOU ARE DOING 3 | // 4 | // This file is providing the test runner to use when running extension tests. 5 | // By default the test runner in use is Mocha based. 6 | // 7 | // You can provide your own test runner if you want to override it by exporting 8 | // a function run(testsRoot: string, clb: (error: Error, failures?: number) => void): void 9 | // that the extension host can call to run the tests. The test runner is expected to use console.log 10 | // to report the results back to the caller. When the tests are finished, return 11 | // a possible error to the callback or null if none. 12 | 13 | import * as testRunner from 'vscode/lib/testrunner'; 14 | 15 | // You can directly control Mocha options by configuring the test runner below 16 | // See https://github.com/mochajs/mocha/wiki/Using-mocha-programmatically#set-options 17 | // for more info 18 | testRunner.configure({ 19 | ui: 'tdd', // the TDD UI is being used in extension.test.ts (suite, test, etc.) 20 | useColors: true // colored output from test results 21 | }); 22 | 23 | module.exports = testRunner; 24 | -------------------------------------------------------------------------------- /src/types.ts: -------------------------------------------------------------------------------- 1 | type Tpl = { 2 | ROSTemplateFormatVersion?: string; 3 | Transform?: string; 4 | Resources?: TplResource; 5 | } 6 | 7 | type TplResource = { 8 | [key: string]: TplResourceElement; 9 | } 10 | 11 | interface TplResourceElementSupplement { 12 | [key: string]: TplResourceElementElement; 13 | } 14 | 15 | type TplResourceElement = TplResourceElementSupplement & { 16 | Type: string; 17 | } 18 | 19 | type TplResourceElementElement = { 20 | Type: string; 21 | Properties: { 22 | Handler: string; 23 | Runtime: string; 24 | Timeout: number; 25 | MemorySize: number; 26 | CodeUri: string; 27 | }; 28 | } 29 | -------------------------------------------------------------------------------- /src/types/@alicloud/fc2/index.d.ts: -------------------------------------------------------------------------------- 1 | declare module '@alicloud/fc2' { 2 | type Service = { 3 | serviceName: string, 4 | description: string, 5 | role: string, 6 | } 7 | 8 | type Function = { 9 | functionId: string, 10 | functionName: string, 11 | description: string, 12 | runtime: string, 13 | handler: string, 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/utils/channel.ts: -------------------------------------------------------------------------------- 1 | import * as vscode from 'vscode' 2 | 3 | let _channel: vscode.OutputChannel; 4 | 5 | export function getFunctionComputeOutputChannel(): vscode.OutputChannel { 6 | if (!_channel) { 7 | _channel = vscode.window.createOutputChannel('Function Compute'); 8 | } 9 | return _channel; 10 | } 11 | -------------------------------------------------------------------------------- /src/utils/output.ts: -------------------------------------------------------------------------------- 1 | import { getFunctionComputeOutputChannel } from './channel'; 2 | 3 | export function log(message: any) { 4 | const channel = getFunctionComputeOutputChannel(); 5 | channel.appendLine(message); 6 | } 7 | 8 | export function error(message: any) { 9 | const channel = getFunctionComputeOutputChannel(); 10 | channel.appendLine(message); 11 | channel.show(); 12 | } 13 | 14 | export async function output(func: () => Promise) { 15 | const oldLog = console.log; 16 | const oldErr = console.error; 17 | console.log = log; 18 | console.error = error; 19 | try { 20 | return await func(); 21 | } finally { 22 | console.log = oldLog; 23 | console.error = oldErr; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/utils/templateUtil.ts: -------------------------------------------------------------------------------- 1 | import * as vscode from 'vscode'; 2 | import * as path from 'path'; 3 | 4 | export class TemplateUtil { 5 | getTemplateFilePath(): string | undefined { 6 | const cwd = vscode.workspace.rootPath; 7 | if (!cwd) { 8 | return; 9 | } 10 | return path.join(cwd, 'template.yaml'); 11 | } 12 | 13 | 14 | } 15 | 16 | -------------------------------------------------------------------------------- /src/utils/visitor.ts: -------------------------------------------------------------------------------- 1 | import * as vscode from 'vscode'; 2 | import * as fs from 'fs'; 3 | import * as os from 'os'; 4 | import * as path from 'path'; 5 | import { isPathExists, createFile } from '../utils/file'; 6 | 7 | const ua = require('universal-analytics'); 8 | const uuidv4 = require('uuid/v4'); 9 | let machineId = ''; 10 | 11 | const confFilePath = path.join(os.homedir(), '.fc-vscode-extension', 'machine.dat'); 12 | 13 | if (!isPathExists(confFilePath)) { 14 | machineId = uuidv4(); 15 | if (createFile(confFilePath)) { 16 | try { 17 | fs.writeFileSync(confFilePath, machineId); 18 | } catch (err) { 19 | vscode.window.showErrorMessage(err.message); 20 | } 21 | } 22 | } else { 23 | try { 24 | machineId = fs.readFileSync(confFilePath, 'utf8'); 25 | } catch (ex) { 26 | machineId = uuidv4(); 27 | } 28 | } 29 | 30 | const visitor = ua('UA-141899077-1', machineId); 31 | 32 | export function recordPageView(page: string) { 33 | visitor.pageview(page).send(); 34 | } 35 | -------------------------------------------------------------------------------- /src/validate/validateFunInstalled.ts: -------------------------------------------------------------------------------- 1 | import { cpUtils } from '../utils/cpUtils'; 2 | 3 | export async function validateFunInstalled(): Promise { 4 | try { 5 | await cpUtils.executeCommand(undefined, undefined, 'fun', '--version'); 6 | return true; 7 | } catch (err) { 8 | return false; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/webview/IInfoPanelCreator.ts: -------------------------------------------------------------------------------- 1 | import * as vscode from 'vscode'; 2 | import { ResourceDescriptor } from '../descriptors/descriptor'; 3 | 4 | export interface IInfoPanelCreator { 5 | create(descriptor: T | undefined, column?: vscode.ViewColumn): vscode.WebviewPanel; 6 | } 7 | -------------------------------------------------------------------------------- /templates/dotnetcore-helloworld/App.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.IO; 3 | using System.Text; 4 | using Microsoft.Extensions.Logging; 5 | using Aliyun.Serverless.Core; 6 | 7 | namespace example 8 | { 9 | public class App 10 | { 11 | public static string StreamToString(Stream stream) 12 | { 13 | using (StreamReader reader = new StreamReader(stream, Encoding.UTF8)) 14 | { 15 | return reader.ReadToEnd(); 16 | } 17 | } 18 | 19 | public Stream HandleRequest(Stream input, IFcContext context) 20 | { 21 | ILogger logger = context.Logger; 22 | logger.LogInformation(String.Format("Event {0} ", StreamToString(input))); 23 | logger.LogInformation(String.Format("Context {0} ", Newtonsoft.Json.JsonConvert.SerializeObject(context))); 24 | logger.LogInformation(String.Format("Handle request {0} ", context.RequestId)); 25 | 26 | byte[] data = Encoding.UTF8.GetBytes("Hello World!"); 27 | MemoryStream output = new MemoryStream(); 28 | output.Write(data, 0, data.Length); 29 | output.Flush(); 30 | return output; 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /templates/dotnetcore-helloworld/project.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Library 5 | netcoreapp2.1 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /templates/dotnetcore-http/App.cs: -------------------------------------------------------------------------------- 1 | using System.Threading.Tasks; 2 | using Microsoft.AspNetCore.Hosting; 3 | using Microsoft.AspNetCore.Http; 4 | using Aliyun.Serverless.Core; 5 | using Aliyun.Serverless.Core.Http; 6 | 7 | namespace example 8 | { 9 | public class App: FcHttpEntrypoint 10 | { 11 | protected override void Init(IWebHostBuilder builder) 12 | { } 13 | 14 | public override async Task HandleRequest(HttpRequest request, HttpResponse response, IFcContext fcContext) 15 | { 16 | response.StatusCode = 200; 17 | response.ContentType = "text/plain"; 18 | response.Headers.Add("customheader", "v1"); 19 | await response.WriteAsync("hello world"); 20 | return response; 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /templates/dotnetcore-http/project.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Library 5 | netcoreapp2.1 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /templates/fun.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | ELECTRON="{{ELECTRON}}" 4 | FUN="{{FUN}}" 5 | 6 | if [ "$1" = "--electron-path" ]; then 7 | echo $ELECTRON 8 | exit 0 9 | fi 10 | 11 | if [ "$1" = "--fun-path" ]; then 12 | echo $FUN 13 | exit 0 14 | fi 15 | 16 | ELECTRON_RUN_AS_NODE=1 exec "$ELECTRON" "$FUN" "$@" 17 | -------------------------------------------------------------------------------- /templates/java-helloworld/pom.xml: -------------------------------------------------------------------------------- 1 | 3 | 4.0.0 4 | example 5 | fc-java-helloworld 6 | jar 7 | 1.0-SNAPSHOT 8 | fc-java-helloworld 9 | 10 | 11 | 12 | junit 13 | junit 14 | 3.8.1 15 | test 16 | 17 | 18 | com.aliyun.fc.runtime 19 | fc-java-core 20 | 1.3.0 21 | 22 | 23 | 24 | 25 | 1.8 26 | 1.8 27 | true 28 | 29 | 30 | -------------------------------------------------------------------------------- /templates/java-helloworld/src/main/java/example/App.java: -------------------------------------------------------------------------------- 1 | package example; 2 | 3 | import java.io.IOException; 4 | import java.io.InputStream; 5 | import java.io.OutputStream; 6 | 7 | import com.aliyun.fc.runtime.Context; 8 | import com.aliyun.fc.runtime.StreamRequestHandler; 9 | import com.aliyun.fc.runtime.FunctionInitializer; 10 | 11 | /** 12 | * Hello world! 13 | * 14 | */ 15 | public class App implements StreamRequestHandler, FunctionInitializer { 16 | 17 | public void initialize(Context context) throws IOException { 18 | //TODO 19 | } 20 | 21 | @Override 22 | public void handleRequest( 23 | InputStream inputStream, OutputStream outputStream, Context context) throws IOException { 24 | outputStream.write(new String("hello world\n").getBytes()); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /templates/java-http/pom.xml: -------------------------------------------------------------------------------- 1 | 3 | 4.0.0 4 | example 5 | fc-java-http 6 | jar 7 | 1.0-SNAPSHOT 8 | fc-java-http 9 | 10 | 11 | 12 | junit 13 | junit 14 | 3.8.1 15 | test 16 | 17 | 18 | com.aliyun.fc.runtime 19 | fc-java-core 20 | 1.3.0 21 | 22 | 23 | 24 | 25 | 1.8 26 | 1.8 27 | true 28 | 29 | 30 | -------------------------------------------------------------------------------- /templates/lib/nodejs/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": { 3 | "co": "4.6.0", 4 | "gm": "1.23.0", 5 | "ali-oss": "4.10.1", 6 | "aliyun-sdk": "1.11.10", 7 | "@alicloud/fc": "1.2.2", 8 | "tablestore": "4.2.0", 9 | "@alicloud/fc2": "2.1.0", 10 | "body": "5.1.0", 11 | "raw-body": "2.3.2", 12 | "@alicloud/pop-core": "1.7.0" 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /templates/lib/python2.7/requirements.txt: -------------------------------------------------------------------------------- 1 | numpy==1.13.3 2 | scipy==1.0.0.0 3 | wand==0.4.4 4 | opencv-python==3.3.0.10 5 | matplotlib==2.0.2 6 | scrapy==1.4.0 7 | cbor==1.0.0 8 | aliyun-fc==0.6 9 | aliyun-fc2==2.1.0 10 | tablestore==4.6.0 11 | aliyun-python-sdk-core==2.9.5 12 | aliyun-python-sdk-iot==6.1.0 13 | aliyun-python-sdk-ecs==4.10.1 14 | aliyun-python-sdk-vpc==3.0.2 15 | aliyun-python-sdk-rds==2.1.4 16 | aliyun-python-sdk-kms==2.5.0 17 | aliyun-python-sdk-imm==1.3.4 18 | aliyun-log-python-sdk==0.6.38 19 | aliyun-python-sdk-ram==3.0.0 20 | aliyun-python-sdk-sts==3.0.0 21 | aliyun-mns==1.1.5 22 | aliyun-python-sdk-cdn==2.6.2 23 | oss2==2.6.0 24 | -------------------------------------------------------------------------------- /templates/lib/python3/requirements.txt: -------------------------------------------------------------------------------- 1 | aliyun-fc==0.6 2 | aliyun-fc2==2.1.0 3 | aliyun-python-sdk-core-v3==2.9.4 4 | aliyun-python-sdk-iot==6.1.0 5 | aliyun-python-sdk-ecs==4.10.1 6 | aliyun-python-sdk-vpc==3.0.2 7 | aliyun-python-sdk-rds==2.1.4 8 | aliyun-python-sdk-kms==2.5.0 9 | aliyun-python-sdk-imm==1.3.4 10 | aliyun-log-python-sdk==0.6.38 11 | aliyun-python-sdk-ram==3.0.0 12 | aliyun-python-sdk-sts==3.0.0 13 | aliyun-mns==1.1.5 14 | aliyun-python-sdk-cdn==2.6.2 15 | oss2==2.6.0 16 | -------------------------------------------------------------------------------- /templates/nodejs-helloworld/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | /* 3 | if you open the initializer feature, please implement the initializer function, as below: 4 | module.exports.initializer = function(context, callback) { 5 | console.log('initializing'); 6 | callback(null, ''); 7 | }; 8 | */ 9 | module.exports.handler = function(event, context, callback) { 10 | console.log(new String(event)); 11 | callback(null, 'hello world'); 12 | } -------------------------------------------------------------------------------- /templates/php-helloworld/index.php: -------------------------------------------------------------------------------- 1 | info('initializing'); 8 | } 9 | */ 10 | 11 | function handler($event, $context) { 12 | $logger = $GLOBALS['fcLogger']; 13 | $logger->info('hello world'); 14 | return 'hello world'; 15 | } -------------------------------------------------------------------------------- /templates/php-http/index.php: -------------------------------------------------------------------------------- 1 | getBody()->getContents(); 14 | $queries = $request->getQueryParams(); 15 | $method = $request->getMethod(); 16 | $headers = $request->getHeaders(); 17 | $path = $request->getAttribute('path'); 18 | $requestURI = $request->getAttribute('requestURI'); 19 | $clientIP = $request->getAttribute('clientIP'); 20 | */ 21 | 22 | return new Response( 23 | 200, 24 | array( 25 | 'content-type' => 'text/plain', 26 | 'custom_header1' => 'v1', 27 | 'custom_header2' => ['v2', 'v3'], 28 | ), 29 | 'hello world' 30 | ); 31 | } 32 | -------------------------------------------------------------------------------- /templates/python-helloworld/index.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | import logging 3 | 4 | # if you open the initializer feature, please implement the initializer function, as below: 5 | # def initializer(context): 6 | # logger = logging.getLogger() 7 | # logger.info('initializing') 8 | 9 | def handler(event, context): 10 | logger = logging.getLogger() 11 | logger.info('hello world') 12 | return 'hello world' -------------------------------------------------------------------------------- /templates/python-http/index.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | import logging 4 | HELLO_WORLD = b'Hello world!\n' 5 | 6 | # if you open the initializer feature, please implement the initializer function, as below: 7 | # def initializer(context): 8 | # logger = logging.getLogger() 9 | # logger.info('initializing') 10 | 11 | 12 | def handler(environ, start_response): 13 | context = environ['fc.context'] 14 | request_uri = environ['fc.request_uri'] 15 | for k, v in environ.items(): 16 | if k.startswith('HTTP_'): 17 | # process custom request headers 18 | pass 19 | # do something here 20 | status = '200 OK' 21 | response_headers = [('Content-type', 'text/plain')] 22 | start_response(status, response_headers) 23 | return [HELLO_WORLD] -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "module": "commonjs", 4 | "target": "es6", 5 | "outDir": "out", 6 | "lib": [ 7 | "es6" 8 | ], 9 | "sourceMap": true, 10 | "rootDir": "src", 11 | "strict": true /* enable all strict type-checking options */ 12 | /* Additional Checks */ 13 | // "noImplicitReturns": true, /* Report error when not all code paths in function return a value. */ 14 | // "noFallthroughCasesInSwitch": true, /* Report errors for fallthrough cases in switch statement. */ 15 | // "noUnusedParameters": true, /* Report errors on unused parameters. */ 16 | }, 17 | "exclude": [ 18 | "resources", 19 | "node_modules", 20 | ".vscode-test" 21 | ] 22 | } 23 | -------------------------------------------------------------------------------- /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 | } 16 | --------------------------------------------------------------------------------