├── .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 |
--------------------------------------------------------------------------------