Copy disabled (too large)
Download .txt
Showing preview only (105,154K chars total). Download the full file to get everything.
Repository: juliosueiras/vim-terraform-completion
Branch: master
Commit: 125d0e892f5f
Files: 1379
Total size: 100.0 MB
Directory structure:
gitextract_vuj6chnl/
├── .gitignore
├── .gitmodules
├── .tfcompleterc
├── .travis.yml
├── CHANGELOG.md
├── COMMUNITY_PROVIDER_VERSIONS.md
├── CONTRIBUTORS.md
├── CUSTOM_PROVIDER.md
├── DEMO.md
├── Dockerfile
├── Dockerfile_base
├── Gemfile
├── LICENSE.md
├── PROVIDER_VERSIONS.md
├── README.md
├── addon-info.json
├── autoload/
│ └── terraformcomplete.vim
├── check_new_provider
├── community/
│ ├── backup_community.json
│ ├── community-index.html
│ ├── community.json
│ ├── schemas.rb
│ └── test.rb
├── community_provider_json/
│ ├── acme/
│ │ ├── master/
│ │ │ └── acme.json
│ │ ├── v0.3.0/
│ │ │ └── acme.json
│ │ ├── v0.4.0/
│ │ │ └── acme.json
│ │ └── v0.5.0/
│ │ └── acme.json
│ ├── ad/
│ │ └── master/
│ │ └── ad.json
│ ├── akamai/
│ │ └── master/
│ │ └── akamai.json
│ ├── apigee/
│ │ ├── master/
│ │ │ └── apigee.json
│ │ ├── v0.0.1/
│ │ │ └── apigee.json
│ │ └── v0.0.9/
│ │ └── apigee.json
│ ├── artifactory/
│ │ ├── v0.0.1/
│ │ │ └── artifactory.json
│ │ ├── v0.0.2/
│ │ │ └── artifactory.json
│ │ ├── v1.0.1/
│ │ │ └── artifactory.json
│ │ ├── v1.1.0/
│ │ │ └── artifactory.json
│ │ ├── v1.2.0/
│ │ │ └── artifactory.json
│ │ ├── v1.2.1/
│ │ │ └── artifactory.json
│ │ ├── v1.2.2/
│ │ │ └── artifactory.json
│ │ └── v1.2.3/
│ │ └── artifactory.json
│ ├── avi/
│ │ ├── 17.2.9/
│ │ │ └── avi.json
│ │ └── master/
│ │ └── avi.json
│ ├── aviatrix/
│ │ └── master/
│ │ └── aviatrix.json
│ ├── cloudamqp/
│ │ └── master/
│ │ └── cloudamqp.json
│ ├── cloudkarafka/
│ │ └── master/
│ │ └── cloudkarafka.json
│ ├── cloudmqtt/
│ │ └── master/
│ │ └── cloudmqtt.json
│ ├── concourse/
│ │ └── master/
│ │ └── concourse.json
│ ├── couchdb/
│ │ └── master/
│ │ └── couchdb.json
│ ├── ct/
│ │ └── v0.3.0/
│ │ └── ct.json
│ ├── dockermachine/
│ │ ├── 0.1.4/
│ │ │ └── dockermachine.json
│ │ └── master/
│ │ └── dockermachine.json
│ ├── dominos/
│ │ └── master/
│ │ └── dominos.json
│ ├── drp/
│ │ ├── v0.0.1/
│ │ │ └── drp.json
│ │ ├── v0.7.0/
│ │ │ └── drp.json
│ │ ├── v0.7.1/
│ │ │ └── drp.json
│ │ ├── v0.7.2/
│ │ │ └── drp.json
│ │ ├── v0.7.3/
│ │ │ └── drp.json
│ │ ├── v0.7.4/
│ │ │ └── drp.json
│ │ ├── v0.7.5/
│ │ │ └── drp.json
│ │ ├── v0.7.6/
│ │ │ └── drp.json
│ │ ├── v0.7.7/
│ │ │ └── drp.json
│ │ └── v0.7.8/
│ │ └── drp.json
│ ├── esxi/
│ │ └── master/
│ │ └── esxi.json
│ ├── filesystem/
│ │ └── master/
│ │ └── filesystem.json
│ ├── gandi/
│ │ └── master/
│ │ └── gandi.json
│ ├── glue/
│ │ └── master/
│ │ └── glue.json
│ ├── gocd/
│ │ ├── 0.1.21/
│ │ │ └── gocd.json
│ │ └── master/
│ │ └── gocd.json
│ ├── googlecalendar/
│ │ ├── master/
│ │ │ └── googlecalendar.json
│ │ └── v0.1.0/
│ │ └── googlecalendar.json
│ ├── gsuite/
│ │ ├── master/
│ │ │ └── gsuite.json
│ │ ├── v0.1.0/
│ │ │ └── gsuite.json
│ │ ├── v0.1.1/
│ │ │ └── gsuite.json
│ │ ├── v0.1.2/
│ │ │ └── gsuite.json
│ │ ├── v0.1.3/
│ │ │ └── gsuite.json
│ │ ├── v0.1.4/
│ │ │ └── gsuite.json
│ │ ├── v0.1.5/
│ │ │ └── gsuite.json
│ │ └── v0.1.7/
│ │ └── gsuite.json
│ ├── hcloud/
│ │ ├── master/
│ │ │ └── hcloud.json
│ │ ├── v1.0.0/
│ │ │ └── hcloud.json
│ │ └── v1.1.0/
│ │ └── hcloud.json
│ ├── helm/
│ │ ├── master/
│ │ │ └── helm.json
│ │ ├── v0.1.0/
│ │ │ └── helm.json
│ │ ├── v0.2.0/
│ │ │ └── helm.json
│ │ ├── v0.3.0/
│ │ │ └── helm.json
│ │ ├── v0.3.1/
│ │ │ └── helm.json
│ │ ├── v0.3.2/
│ │ │ └── helm.json
│ │ ├── v0.4.0/
│ │ │ └── helm.json
│ │ ├── v0.5.0/
│ │ │ └── helm.json
│ │ └── v0.5.1/
│ │ └── helm.json
│ ├── hiera/
│ │ └── v.0.1.0/
│ │ └── hiera.json
│ ├── httpfileupload/
│ │ └── master/
│ │ └── httpfileupload.json
│ ├── ibm/
│ │ ├── v0.10.0/
│ │ │ └── ibm.json
│ │ ├── v0.12.0/
│ │ │ └── ibm.json
│ │ ├── v0.4.0/
│ │ │ └── ibm.json
│ │ ├── v0.5.0/
│ │ │ └── ibm.json
│ │ ├── v0.5.1/
│ │ │ └── ibm.json
│ │ ├── v0.6.0/
│ │ │ └── ibm.json
│ │ ├── v0.7.0/
│ │ │ └── ibm.json
│ │ ├── v0.8.0/
│ │ │ └── ibm.json
│ │ ├── v0.9.0/
│ │ │ └── ibm.json
│ │ └── v0.9.1/
│ │ └── ibm.json
│ ├── infoblox/
│ │ ├── 0.1.11/
│ │ │ └── infoblox.json
│ │ └── master/
│ │ └── infoblox.json
│ ├── jira/
│ │ ├── 0.1.0/
│ │ │ └── jira.json
│ │ └── master/
│ │ └── jira.json
│ ├── kafka/
│ │ ├── master/
│ │ │ └── kafka.json
│ │ ├── v0.1.0/
│ │ │ └── kafka.json
│ │ └── v0.1.1/
│ │ └── kafka.json
│ ├── keboola/
│ │ └── master/
│ │ └── keboola.json
│ ├── kibana/
│ │ ├── master/
│ │ │ └── kibana.json
│ │ ├── v0.1.0/
│ │ │ └── kibana.json
│ │ ├── v0.1.1/
│ │ │ └── kibana.json
│ │ ├── v0.1.2/
│ │ │ └── kibana.json
│ │ ├── v0.2.0/
│ │ │ └── kibana.json
│ │ ├── v0.3.0/
│ │ │ └── kibana.json
│ │ ├── v0.4.0/
│ │ │ └── kibana.json
│ │ ├── v0.5.0/
│ │ │ └── kibana.json
│ │ ├── v0.5.1/
│ │ │ └── kibana.json
│ │ └── v0.6.0/
│ │ └── kibana.json
│ ├── kong/
│ │ ├── master/
│ │ │ └── kong.json
│ │ ├── v0.1.0/
│ │ │ └── kong.json
│ │ ├── v0.10.0/
│ │ │ └── kong.json
│ │ ├── v0.11.0/
│ │ │ └── kong.json
│ │ ├── v0.12.0/
│ │ │ └── kong.json
│ │ ├── v0.13.0/
│ │ │ └── kong.json
│ │ ├── v0.14.0/
│ │ │ └── kong.json
│ │ ├── v0.2.0/
│ │ │ └── kong.json
│ │ ├── v0.3.0/
│ │ │ └── kong.json
│ │ ├── v0.4.0/
│ │ │ └── kong.json
│ │ ├── v0.5.0/
│ │ │ └── kong.json
│ │ ├── v0.6.0/
│ │ │ └── kong.json
│ │ ├── v0.7.0/
│ │ │ └── kong.json
│ │ ├── v0.8.0/
│ │ │ └── kong.json
│ │ ├── v0.9.0/
│ │ │ └── kong.json
│ │ ├── v1.1.0/
│ │ │ └── kong.json
│ │ └── v1.5.0/
│ │ └── kong.json
│ ├── kubernetes/
│ │ └── sl1pm4t/
│ │ └── kubernetes.json
│ ├── lxd/
│ │ ├── v1.0.0/
│ │ │ └── lxd.json
│ │ ├── v1.1.0/
│ │ │ └── lxd.json
│ │ └── v1.1.1/
│ │ └── lxd.json
│ ├── matchbox/
│ │ ├── master/
│ │ │ └── matchbox.json
│ │ ├── v0.1.0/
│ │ │ └── matchbox.json
│ │ ├── v0.1.1/
│ │ │ └── matchbox.json
│ │ ├── v0.1.2/
│ │ │ └── matchbox.json
│ │ ├── v0.2.0/
│ │ │ └── matchbox.json
│ │ ├── v0.2.1/
│ │ │ └── matchbox.json
│ │ └── v0.2.2/
│ │ └── matchbox.json
│ ├── minikube/
│ │ └── master/
│ │ └── minikube.json
│ ├── mongodbatlas/
│ │ ├── master/
│ │ │ └── mongodbatlas.json
│ │ ├── v0.0.1/
│ │ │ └── mongodbatlas.json
│ │ ├── v0.0.2/
│ │ │ └── mongodbatlas.json
│ │ ├── v0.1.0/
│ │ │ └── mongodbatlas.json
│ │ ├── v0.2.0/
│ │ │ └── mongodbatlas.json
│ │ ├── v0.2.1/
│ │ │ └── mongodbatlas.json
│ │ ├── v0.2.2/
│ │ │ └── mongodbatlas.json
│ │ ├── v0.4.2/
│ │ │ └── mongodbatlas.json
│ │ ├── v0.4.3/
│ │ │ └── mongodbatlas.json
│ │ ├── v0.4.4/
│ │ │ └── mongodbatlas.json
│ │ ├── v0.4.5/
│ │ │ └── mongodbatlas.json
│ │ ├── v0.5.0/
│ │ │ └── mongodbatlas.json
│ │ └── v0.6.1/
│ │ └── mongodbatlas.json
│ ├── netlify/
│ │ └── master/
│ │ └── netlify.json
│ ├── nifi/
│ │ └── develop/
│ │ └── nifi.json
│ ├── nutanix/
│ │ └── master/
│ │ └── nutanix.json
│ ├── odl/
│ │ └── master/
│ │ └── odl.json
│ ├── oneview/
│ │ └── master/
│ │ └── oneview.json
│ ├── packer/
│ │ ├── 0.1.0/
│ │ │ └── packer.json
│ │ ├── master/
│ │ │ └── packer.json
│ │ └── vsphere/
│ │ └── packer.json
│ ├── pass/
│ │ ├── 1.0.1/
│ │ │ └── pass.json
│ │ └── master/
│ │ └── pass.json
│ ├── puppetca/
│ │ ├── 1.0.1/
│ │ │ └── puppetca.json
│ │ └── master/
│ │ └── puppetca.json
│ ├── puppetdb/
│ │ ├── 0.1.1/
│ │ │ └── puppetdb.json
│ │ └── master/
│ │ └── puppetdb.json
│ ├── qingcloud/
│ │ ├── master/
│ │ │ └── qingcloud.json
│ │ ├── v1.0.0/
│ │ │ └── qingcloud.json
│ │ ├── v1.0.1/
│ │ │ └── qingcloud.json
│ │ ├── v1.1/
│ │ │ └── qingcloud.json
│ │ ├── v1.2.0/
│ │ │ └── qingcloud.json
│ │ ├── v1.2.1/
│ │ │ └── qingcloud.json
│ │ └── v1.2.2/
│ │ └── qingcloud.json
│ ├── razor/
│ │ └── master/
│ │ └── razor.json
│ ├── redshift/
│ │ └── master/
│ │ └── redshift.json
│ ├── restapi/
│ │ ├── master/
│ │ │ └── restapi.json
│ │ └── v0.1.0/
│ │ └── restapi.json
│ ├── rke/
│ │ ├── 0.2.0/
│ │ │ └── rke.json
│ │ ├── 0.3.4/
│ │ │ └── rke.json
│ │ └── master/
│ │ └── rke.json
│ ├── runscope/
│ │ ├── master/
│ │ │ └── runscope.json
│ │ ├── v0.5.6/
│ │ │ └── runscope.json
│ │ └── v0.5.7/
│ │ └── runscope.json
│ ├── sakuracloud/
│ │ ├── master/
│ │ │ └── sakuracloud.json
│ │ ├── v1.0.0/
│ │ │ └── sakuracloud.json
│ │ ├── v1.0.1/
│ │ │ └── sakuracloud.json
│ │ ├── v1.0.2/
│ │ │ └── sakuracloud.json
│ │ ├── v1.0.3/
│ │ │ └── sakuracloud.json
│ │ ├── v1.0.4/
│ │ │ └── sakuracloud.json
│ │ ├── v1.0.5/
│ │ │ └── sakuracloud.json
│ │ ├── v1.1.0/
│ │ │ └── sakuracloud.json
│ │ ├── v1.1.1/
│ │ │ └── sakuracloud.json
│ │ ├── v1.1.2/
│ │ │ └── sakuracloud.json
│ │ └── v1.3.2/
│ │ └── sakuracloud.json
│ ├── scvmm/
│ │ └── master/
│ │ └── scvmm.json
│ ├── sentry/
│ │ ├── master/
│ │ │ └── sentry.json
│ │ ├── v0.2.0/
│ │ │ └── sentry.json
│ │ ├── v0.3.0/
│ │ │ └── sentry.json
│ │ ├── v0.3.1/
│ │ │ └── sentry.json
│ │ └── v0.4.0/
│ │ └── sentry.json
│ ├── servicenow/
│ │ └── master/
│ │ └── servicenow.json
│ ├── signalform/
│ │ ├── v1.0/
│ │ │ └── signalform.json
│ │ ├── v1.1/
│ │ │ └── signalform.json
│ │ ├── v1.2/
│ │ │ └── signalform.json
│ │ ├── v1.3/
│ │ │ └── signalform.json
│ │ ├── v1.4/
│ │ │ └── signalform.json
│ │ ├── v1.5/
│ │ │ └── signalform.json
│ │ ├── v1.6/
│ │ │ └── signalform.json
│ │ ├── v1.7/
│ │ │ └── signalform.json
│ │ ├── v1.8/
│ │ │ └── signalform.json
│ │ ├── v1.9/
│ │ │ └── signalform.json
│ │ └── v1.9.1/
│ │ └── signalform.json
│ ├── stateful/
│ │ └── v1.0.0/
│ │ └── stateful.json
│ ├── vra/
│ │ └── master/
│ │ └── vra.json
│ └── windns/
│ └── v0.2.0/
│ └── windns.json
├── ctags/
│ └── terraform.ctags
├── dicts/
│ ├── provider_acme.dicts
│ ├── provider_alicloud.dicts
│ ├── provider_archive.dicts
│ ├── provider_arukas.dicts
│ ├── provider_atlas.dicts
│ ├── provider_aws.dicts
│ ├── provider_azure.dicts
│ ├── provider_azuread.dicts
│ ├── provider_azurerm.dicts
│ ├── provider_azurestack.dicts
│ ├── provider_bigip.dicts
│ ├── provider_bitbucket.dicts
│ ├── provider_brightbox.dicts
│ ├── provider_chef.dicts
│ ├── provider_circonus.dicts
│ ├── provider_clc.dicts
│ ├── provider_cloudflare.dicts
│ ├── provider_cloudscale.dicts
│ ├── provider_cloudstack.dicts
│ ├── provider_cobbler.dicts
│ ├── provider_consul.dicts
│ ├── provider_datadog.dicts
│ ├── provider_digitalocean.dicts
│ ├── provider_dme.dicts
│ ├── provider_dns.dicts
│ ├── provider_dnsimple.dicts
│ ├── provider_docker.dicts
│ ├── provider_dyn.dicts
│ ├── provider_external.dicts
│ ├── provider_fastly.dicts
│ ├── provider_flexibleengine.dicts
│ ├── provider_github.dicts
│ ├── provider_gitlab.dicts
│ ├── provider_google.dicts
│ ├── provider_grafana.dicts
│ ├── provider_hcloud.dicts
│ ├── provider_hedvig.dicts
│ ├── provider_helm.dicts
│ ├── provider_heroku.dicts
│ ├── provider_http.dicts
│ ├── provider_huaweicloud.dicts
│ ├── provider_icinga2.dicts
│ ├── provider_ignition.dicts
│ ├── provider_influxdb.dicts
│ ├── provider_kubernetes.dicts
│ ├── provider_librato.dicts
│ ├── provider_linode.dicts
│ ├── provider_local.dicts
│ ├── provider_logentries.dicts
│ ├── provider_logicmonitor.dicts
│ ├── provider_mailgun.dicts
│ ├── provider_mysql.dicts
│ ├── provider_netlify.dicts
│ ├── provider_newrelic.dicts
│ ├── provider_nomad.dicts
│ ├── provider_ns1.dicts
│ ├── provider_nsxt.dicts
│ ├── provider_null.dicts
│ ├── provider_nutanix.dicts
│ ├── provider_oci.dicts
│ ├── provider_oneandone.dicts
│ ├── provider_opc.dicts
│ ├── provider_openstack.dicts
│ ├── provider_opentelekomcloud.dicts
│ ├── provider_opsgenie.dicts
│ ├── provider_oraclepaas.dicts
│ ├── provider_ovh.dicts
│ ├── provider_packet.dicts
│ ├── provider_pagerduty.dicts
│ ├── provider_panos.dicts
│ ├── provider_postgresql.dicts
│ ├── provider_powerdns.dicts
│ ├── provider_profitbricks.dicts
│ ├── provider_rabbitmq.dicts
│ ├── provider_rancher.dicts
│ ├── provider_random.dicts
│ ├── provider_rightscale.dicts
│ ├── provider_rundeck.dicts
│ ├── provider_runscope.dicts
│ ├── provider_scaleway.dicts
│ ├── provider_selvpc.dicts
│ ├── provider_skytap.dicts
│ ├── provider_softlayer.dicts
│ ├── provider_spotinst.dicts
│ ├── provider_statuscake.dicts
│ ├── provider_telefonicaopencloud.dicts
│ ├── provider_template.dicts
│ ├── provider_tencentcloud.dicts
│ ├── provider_terraform.dicts
│ ├── provider_tfe.dicts
│ ├── provider_tls.dicts
│ ├── provider_triton.dicts
│ ├── provider_ucloud.dicts
│ ├── provider_ultradns.dicts
│ ├── provider_vault.dicts
│ ├── provider_vcd.dicts
│ ├── provider_vsphere.dicts
│ ├── terraform_snippets_dict
│ └── tfcompleterc_dict
├── dissect.rb
├── doc/
│ └── vim-terraform-completion.txt
├── example.vimrc
├── extra_json/
│ ├── base.json
│ └── functions.json
├── ftdetect/
│ └── tfcompleterc.vim
├── ftplugin/
│ ├── terraform/
│ │ └── completion.vim
│ ├── terraform_tagbar.vim
│ └── tfcompleterc.vim
├── generate-schema/
│ └── generate-schema.go
├── generate_provider_snippets.rb
├── generate_snippets.rb
├── get_all_version_schema.rb
├── module.rb
├── provider_json/
│ ├── acme/
│ │ ├── 1.0.1/
│ │ │ └── acme.json
│ │ ├── 1.1.0/
│ │ │ └── acme.json
│ │ ├── 1.1.1/
│ │ │ └── acme.json
│ │ ├── 1.3.1/
│ │ │ └── acme.json
│ │ └── 1.3.4/
│ │ └── acme.json
│ ├── alicloud/
│ │ ├── 0.1.0/
│ │ │ └── alicloud.json
│ │ ├── 0.1.1/
│ │ │ └── alicloud.json
│ │ ├── 1.10.0/
│ │ │ └── alicloud.json
│ │ ├── 1.11.0/
│ │ │ └── alicloud.json
│ │ ├── 1.12.0/
│ │ │ └── alicloud.json
│ │ ├── 1.13.0/
│ │ │ └── alicloud.json
│ │ ├── 1.14.0/
│ │ │ └── alicloud.json
│ │ ├── 1.15.0/
│ │ │ └── alicloud.json
│ │ ├── 1.16.0/
│ │ │ └── alicloud.json
│ │ ├── 1.17.0/
│ │ │ └── alicloud.json
│ │ ├── 1.18.0/
│ │ │ └── alicloud.json
│ │ ├── 1.19.0/
│ │ │ └── alicloud.json
│ │ ├── 1.2.0/
│ │ │ └── alicloud.json
│ │ ├── 1.20.0/
│ │ │ └── alicloud.json
│ │ ├── 1.21.0/
│ │ │ └── alicloud.json
│ │ ├── 1.22.0/
│ │ │ └── alicloud.json
│ │ ├── 1.23.0/
│ │ │ └── alicloud.json
│ │ ├── 1.24.0/
│ │ │ └── alicloud.json
│ │ ├── 1.25.0/
│ │ │ └── alicloud.json
│ │ ├── 1.26.0/
│ │ │ └── alicloud.json
│ │ ├── 1.27.0/
│ │ │ └── alicloud.json
│ │ ├── 1.28.0/
│ │ │ └── alicloud.json
│ │ ├── 1.29.0/
│ │ │ └── alicloud.json
│ │ ├── 1.30.0/
│ │ │ └── alicloud.json
│ │ ├── 1.31.0/
│ │ │ └── alicloud.json
│ │ ├── 1.32.0/
│ │ │ └── alicloud.json
│ │ ├── 1.32.1/
│ │ │ └── alicloud.json
│ │ ├── 1.33.0/
│ │ │ └── alicloud.json
│ │ ├── 1.34.0/
│ │ │ └── alicloud.json
│ │ ├── 1.35.0/
│ │ │ └── alicloud.json
│ │ ├── 1.36.0/
│ │ │ └── alicloud.json
│ │ ├── 1.37.0/
│ │ │ └── alicloud.json
│ │ ├── 1.38.0/
│ │ │ └── alicloud.json
│ │ ├── 1.39.0/
│ │ │ └── alicloud.json
│ │ ├── 1.40.0/
│ │ │ └── alicloud.json
│ │ ├── 1.41.0/
│ │ │ └── alicloud.json
│ │ ├── 1.43.0/
│ │ │ └── alicloud.json
│ │ ├── 1.5.0/
│ │ │ └── alicloud.json
│ │ ├── 1.5.1/
│ │ │ └── alicloud.json
│ │ ├── 1.5.2/
│ │ │ └── alicloud.json
│ │ ├── 1.5.3/
│ │ │ └── alicloud.json
│ │ ├── 1.52.0/
│ │ │ └── alicloud.json
│ │ ├── 1.52.2/
│ │ │ └── alicloud.json
│ │ ├── 1.6.0/
│ │ │ └── alicloud.json
│ │ ├── 1.7.0/
│ │ │ └── alicloud.json
│ │ ├── 1.7.1/
│ │ │ └── alicloud.json
│ │ ├── 1.7.2/
│ │ │ └── alicloud.json
│ │ ├── 1.8.0/
│ │ │ └── alicloud.json
│ │ ├── 1.8.1/
│ │ │ └── alicloud.json
│ │ ├── 1.9.0/
│ │ │ └── alicloud.json
│ │ ├── 1.9.1/
│ │ │ └── alicloud.json
│ │ ├── 1.9.2/
│ │ │ └── alicloud.json
│ │ ├── 1.9.3/
│ │ │ └── alicloud.json
│ │ ├── 1.9.4/
│ │ │ └── alicloud.json
│ │ ├── 1.9.5/
│ │ │ └── alicloud.json
│ │ └── 1.9.6/
│ │ └── alicloud.json
│ ├── archive/
│ │ ├── 0.1.0/
│ │ │ └── archive.json
│ │ ├── 1.0.0/
│ │ │ └── archive.json
│ │ ├── 1.0.1/
│ │ │ └── archive.json
│ │ ├── 1.0.2/
│ │ │ └── archive.json
│ │ ├── 1.0.3/
│ │ │ └── archive.json
│ │ ├── 1.1.0/
│ │ │ └── archive.json
│ │ ├── 1.2.0/
│ │ │ └── archive.json
│ │ ├── 1.2.1/
│ │ │ └── archive.json
│ │ └── 1.2.2/
│ │ └── archive.json
│ ├── arukas/
│ │ ├── 0.1.0/
│ │ │ └── arukas.json
│ │ ├── 1.0.0/
│ │ │ └── arukas.json
│ │ └── 1.1.0/
│ │ └── arukas.json
│ ├── atlas/
│ │ ├── 0.1.0/
│ │ │ └── atlas.json
│ │ └── 0.1.1/
│ │ └── atlas.json
│ ├── aws/
│ │ ├── 0.1.0/
│ │ │ └── aws.json
│ │ ├── 0.1.1/
│ │ │ └── aws.json
│ │ ├── 0.1.2/
│ │ │ └── aws.json
│ │ ├── 0.1.3/
│ │ │ └── aws.json
│ │ ├── 0.1.4/
│ │ │ └── aws.json
│ │ ├── 1.0.0/
│ │ │ └── aws.json
│ │ ├── 1.1.0/
│ │ │ └── aws.json
│ │ ├── 1.10.0/
│ │ │ └── aws.json
│ │ ├── 1.11.0/
│ │ │ └── aws.json
│ │ ├── 1.12.0/
│ │ │ └── aws.json
│ │ ├── 1.13.0/
│ │ │ └── aws.json
│ │ ├── 1.14.0/
│ │ │ └── aws.json
│ │ ├── 1.14.1/
│ │ │ └── aws.json
│ │ ├── 1.15.0/
│ │ │ └── aws.json
│ │ ├── 1.16.0/
│ │ │ └── aws.json
│ │ ├── 1.17.0/
│ │ │ └── aws.json
│ │ ├── 1.18.0/
│ │ │ └── aws.json
│ │ ├── 1.19.0/
│ │ │ └── aws.json
│ │ ├── 1.2.0/
│ │ │ └── aws.json
│ │ ├── 1.20.0/
│ │ │ └── aws.json
│ │ ├── 1.21.0/
│ │ │ └── aws.json
│ │ ├── 1.22.0/
│ │ │ └── aws.json
│ │ ├── 1.23.0/
│ │ │ └── aws.json
│ │ ├── 1.24.0/
│ │ │ └── aws.json
│ │ ├── 1.25.0/
│ │ │ └── aws.json
│ │ ├── 1.26.0/
│ │ │ └── aws.json
│ │ ├── 1.27.0/
│ │ │ └── aws.json
│ │ ├── 1.28.0/
│ │ │ └── aws.json
│ │ ├── 1.29.0/
│ │ │ └── aws.json
│ │ ├── 1.3.0/
│ │ │ └── aws.json
│ │ ├── 1.3.1/
│ │ │ └── aws.json
│ │ ├── 1.30.0/
│ │ │ └── aws.json
│ │ ├── 1.31.0/
│ │ │ └── aws.json
│ │ ├── 1.32.0/
│ │ │ └── aws.json
│ │ ├── 1.33.0/
│ │ │ └── aws.json
│ │ ├── 1.34.0/
│ │ │ └── aws.json
│ │ ├── 1.35.0/
│ │ │ └── aws.json
│ │ ├── 1.36.0/
│ │ │ └── aws.json
│ │ ├── 1.37.0/
│ │ │ └── aws.json
│ │ ├── 1.38.0/
│ │ │ └── aws.json
│ │ ├── 1.39.0/
│ │ │ └── aws.json
│ │ ├── 1.4.0/
│ │ │ └── aws.json
│ │ ├── 1.40.0/
│ │ │ └── aws.json
│ │ ├── 1.41.0/
│ │ │ └── aws.json
│ │ ├── 1.42.0/
│ │ │ └── aws.json
│ │ ├── 1.43.0/
│ │ │ └── aws.json
│ │ ├── 1.43.2/
│ │ │ └── aws.json
│ │ ├── 1.45.0/
│ │ │ └── aws.json
│ │ ├── 1.46.0/
│ │ │ └── aws.json
│ │ ├── 1.49.0/
│ │ │ └── aws.json
│ │ ├── 1.5.0/
│ │ │ └── aws.json
│ │ ├── 1.50.0/
│ │ │ └── aws.json
│ │ ├── 1.51.0/
│ │ │ └── aws.json
│ │ ├── 1.52.0/
│ │ │ └── aws.json
│ │ ├── 1.54.0/
│ │ │ └── aws.json
│ │ ├── 1.55.0/
│ │ │ └── aws.json
│ │ ├── 1.56.0/
│ │ │ └── aws.json
│ │ ├── 1.57.0/
│ │ │ └── aws.json
│ │ ├── 1.59.0/
│ │ │ └── aws.json
│ │ ├── 1.6.0/
│ │ │ └── aws.json
│ │ ├── 1.60.0/
│ │ │ └── aws.json
│ │ ├── 1.7.0/
│ │ │ └── aws.json
│ │ ├── 1.7.1/
│ │ │ └── aws.json
│ │ ├── 1.8.0/
│ │ │ └── aws.json
│ │ ├── 1.9.0/
│ │ │ └── aws.json
│ │ ├── 2.0.0/
│ │ │ └── aws.json
│ │ ├── 2.1.0/
│ │ │ └── aws.json
│ │ ├── 2.11.0/
│ │ │ └── aws.json
│ │ ├── 2.19.0/
│ │ │ └── aws.json
│ │ ├── 2.2.0/
│ │ │ └── aws.json
│ │ ├── 2.21.1/
│ │ │ └── aws.json
│ │ ├── 2.3.0/
│ │ │ └── aws.json
│ │ ├── 2.4.0/
│ │ │ └── aws.json
│ │ ├── 2.5.0/
│ │ │ └── aws.json
│ │ ├── 2.6.0/
│ │ │ └── aws.json
│ │ ├── 2.7.0/
│ │ │ └── aws.json
│ │ └── 2.8.0/
│ │ └── aws.json
│ ├── azure/
│ │ ├── 0.1.0/
│ │ │ └── azure.json
│ │ └── 0.1.1/
│ │ └── azure.json
│ ├── azuread/
│ │ ├── 0.1.0/
│ │ │ └── azuread.json
│ │ ├── 0.2.0/
│ │ │ └── azuread.json
│ │ ├── 0.3.1/
│ │ │ └── azuread.json
│ │ ├── 0.4.0/
│ │ │ └── azuread.json
│ │ └── 0.5.1/
│ │ └── azuread.json
│ ├── azurerm/
│ │ ├── 0.1.0/
│ │ │ └── azurerm.json
│ │ ├── 0.1.1/
│ │ │ └── azurerm.json
│ │ ├── 0.1.2/
│ │ │ └── azurerm.json
│ │ ├── 0.1.3/
│ │ │ └── azurerm.json
│ │ ├── 0.1.4/
│ │ │ └── azurerm.json
│ │ ├── 0.1.5/
│ │ │ └── azurerm.json
│ │ ├── 0.1.6/
│ │ │ └── azurerm.json
│ │ ├── 0.1.7/
│ │ │ └── azurerm.json
│ │ ├── 0.2.0/
│ │ │ └── azurerm.json
│ │ ├── 0.2.1/
│ │ │ └── azurerm.json
│ │ ├── 0.2.2/
│ │ │ └── azurerm.json
│ │ ├── 0.3.0/
│ │ │ └── azurerm.json
│ │ ├── 0.3.1/
│ │ │ └── azurerm.json
│ │ ├── 0.3.2/
│ │ │ └── azurerm.json
│ │ ├── 0.3.3/
│ │ │ └── azurerm.json
│ │ ├── 1.0.0/
│ │ │ └── azurerm.json
│ │ ├── 1.0.1/
│ │ │ └── azurerm.json
│ │ ├── 1.1.0/
│ │ │ └── azurerm.json
│ │ ├── 1.1.1/
│ │ │ └── azurerm.json
│ │ ├── 1.1.2/
│ │ │ └── azurerm.json
│ │ ├── 1.10.0/
│ │ │ └── azurerm.json
│ │ ├── 1.11.0/
│ │ │ └── azurerm.json
│ │ ├── 1.12.0/
│ │ │ └── azurerm.json
│ │ ├── 1.13.0/
│ │ │ └── azurerm.json
│ │ ├── 1.14.0/
│ │ │ └── azurerm.json
│ │ ├── 1.15.0/
│ │ │ └── azurerm.json
│ │ ├── 1.16.0/
│ │ │ └── azurerm.json
│ │ ├── 1.17.0/
│ │ │ └── azurerm.json
│ │ ├── 1.18.0/
│ │ │ └── azurerm.json
│ │ ├── 1.19.0/
│ │ │ └── azurerm.json
│ │ ├── 1.2.0/
│ │ │ └── azurerm.json
│ │ ├── 1.20.0/
│ │ │ └── azurerm.json
│ │ ├── 1.21.0/
│ │ │ └── azurerm.json
│ │ ├── 1.22.1/
│ │ │ └── azurerm.json
│ │ ├── 1.23.0/
│ │ │ └── azurerm.json
│ │ ├── 1.24.0/
│ │ │ └── azurerm.json
│ │ ├── 1.25.0/
│ │ │ └── azurerm.json
│ │ ├── 1.27.1/
│ │ │ └── azurerm.json
│ │ ├── 1.28.0/
│ │ │ └── azurerm.json
│ │ ├── 1.3.0/
│ │ │ └── azurerm.json
│ │ ├── 1.3.1/
│ │ │ └── azurerm.json
│ │ ├── 1.3.2/
│ │ │ └── azurerm.json
│ │ ├── 1.3.3/
│ │ │ └── azurerm.json
│ │ ├── 1.31.0/
│ │ │ └── azurerm.json
│ │ ├── 1.32.0/
│ │ │ └── azurerm.json
│ │ ├── 1.4.0/
│ │ │ └── azurerm.json
│ │ ├── 1.5.0/
│ │ │ └── azurerm.json
│ │ ├── 1.6.0/
│ │ │ └── azurerm.json
│ │ ├── 1.7.0/
│ │ │ └── azurerm.json
│ │ ├── 1.8.0/
│ │ │ └── azurerm.json
│ │ └── 1.9.0/
│ │ └── azurerm.json
│ ├── azurestack/
│ │ ├── 0.1.0/
│ │ │ └── azurestack.json
│ │ ├── 0.2.0/
│ │ │ └── azurestack.json
│ │ ├── 0.3.0/
│ │ │ └── azurestack.json
│ │ ├── 0.4.0/
│ │ │ └── azurestack.json
│ │ ├── 0.5.0/
│ │ │ └── azurestack.json
│ │ ├── 0.6.0/
│ │ │ └── azurestack.json
│ │ └── 0.8.1/
│ │ └── azurestack.json
│ ├── bigip/
│ │ ├── 0.12.0/
│ │ │ └── bigip.json
│ │ ├── 0.12.1/
│ │ │ └── bigip.json
│ │ ├── 0.12.2/
│ │ │ └── bigip.json
│ │ └── 0.12.3/
│ │ └── bigip.json
│ ├── bitbucket/
│ │ ├── 0.1.0/
│ │ │ └── bitbucket.json
│ │ ├── 1.0.0/
│ │ │ └── bitbucket.json
│ │ └── 1.1.0/
│ │ └── bitbucket.json
│ ├── brightbox/
│ │ ├── 1.0.5/
│ │ │ └── brightbox.json
│ │ ├── 1.0.6/
│ │ │ └── brightbox.json
│ │ ├── 1.1.0/
│ │ │ └── brightbox.json
│ │ ├── 1.1.1/
│ │ │ └── brightbox.json
│ │ ├── 1.1.2/
│ │ │ └── brightbox.json
│ │ └── 1.2.0/
│ │ └── brightbox.json
│ ├── chef/
│ │ ├── 0.1.0/
│ │ │ └── chef.json
│ │ └── 0.2.0/
│ │ └── chef.json
│ ├── circonus/
│ │ ├── 0.1.0/
│ │ │ └── circonus.json
│ │ ├── 0.1.1/
│ │ │ └── circonus.json
│ │ └── 0.2.0/
│ │ └── circonus.json
│ ├── clc/
│ │ └── 0.1.0/
│ │ └── clc.json
│ ├── cloudflare/
│ │ ├── 0.1.0/
│ │ │ └── cloudflare.json
│ │ ├── 1.0.0/
│ │ │ └── cloudflare.json
│ │ ├── 1.1.0/
│ │ │ └── cloudflare.json
│ │ ├── 1.10.0/
│ │ │ └── cloudflare.json
│ │ ├── 1.11.0/
│ │ │ └── cloudflare.json
│ │ ├── 1.12.0/
│ │ │ └── cloudflare.json
│ │ ├── 1.13.0/
│ │ │ └── cloudflare.json
│ │ ├── 1.14.0/
│ │ │ └── cloudflare.json
│ │ ├── 1.16.1/
│ │ │ └── cloudflare.json
│ │ ├── 1.2.0/
│ │ │ └── cloudflare.json
│ │ ├── 1.3.0/
│ │ │ └── cloudflare.json
│ │ ├── 1.4.0/
│ │ │ └── cloudflare.json
│ │ ├── 1.5.0/
│ │ │ └── cloudflare.json
│ │ ├── 1.6.0/
│ │ │ └── cloudflare.json
│ │ ├── 1.7.0/
│ │ │ └── cloudflare.json
│ │ ├── 1.8.0/
│ │ │ └── cloudflare.json
│ │ └── 1.9.0/
│ │ └── cloudflare.json
│ ├── cloudscale/
│ │ ├── 1.0.0/
│ │ │ └── cloudscale.json
│ │ ├── 1.0.1/
│ │ │ └── cloudscale.json
│ │ ├── 1.1.0/
│ │ │ └── cloudscale.json
│ │ └── 2.0.0/
│ │ └── cloudscale.json
│ ├── cloudstack/
│ │ ├── 0.1.0/
│ │ │ └── cloudstack.json
│ │ ├── 0.1.1/
│ │ │ └── cloudstack.json
│ │ ├── 0.1.2/
│ │ │ └── cloudstack.json
│ │ ├── 0.1.3/
│ │ │ └── cloudstack.json
│ │ ├── 0.1.4/
│ │ │ └── cloudstack.json
│ │ ├── 0.1.5/
│ │ │ └── cloudstack.json
│ │ ├── 0.2.0/
│ │ │ └── cloudstack.json
│ │ └── 0.3.0/
│ │ └── cloudstack.json
│ ├── cobbler/
│ │ ├── 0.1.0/
│ │ │ └── cobbler.json
│ │ ├── 1.0.0/
│ │ │ └── cobbler.json
│ │ ├── 1.0.1/
│ │ │ └── cobbler.json
│ │ └── 1.1.0/
│ │ └── cobbler.json
│ ├── consul/
│ │ ├── 0.1.0/
│ │ │ └── consul.json
│ │ ├── 1.0.0/
│ │ │ └── consul.json
│ │ ├── 1.1.0/
│ │ │ └── consul.json
│ │ ├── 2.0.0/
│ │ │ └── consul.json
│ │ ├── 2.1.0/
│ │ │ └── consul.json
│ │ ├── 2.2.0/
│ │ │ └── consul.json
│ │ ├── 2.3.0/
│ │ │ └── consul.json
│ │ └── 2.5.0/
│ │ └── consul.json
│ ├── datadog/
│ │ ├── 0.1.0/
│ │ │ └── datadog.json
│ │ ├── 0.1.1/
│ │ │ └── datadog.json
│ │ ├── 1.0.0/
│ │ │ └── datadog.json
│ │ ├── 1.0.1/
│ │ │ └── datadog.json
│ │ ├── 1.0.2/
│ │ │ └── datadog.json
│ │ ├── 1.0.3/
│ │ │ └── datadog.json
│ │ ├── 1.0.4/
│ │ │ └── datadog.json
│ │ ├── 1.1.0/
│ │ │ └── datadog.json
│ │ ├── 1.2.0/
│ │ │ └── datadog.json
│ │ ├── 1.3.0/
│ │ │ └── datadog.json
│ │ ├── 1.4.0/
│ │ │ └── datadog.json
│ │ ├── 1.5.0/
│ │ │ └── datadog.json
│ │ ├── 1.6.0/
│ │ │ └── datadog.json
│ │ ├── 1.7.0/
│ │ │ └── datadog.json
│ │ ├── 1.8.0/
│ │ │ └── datadog.json
│ │ ├── 1.9.0/
│ │ │ └── datadog.json
│ │ ├── 2.0.2/
│ │ │ └── datadog.json
│ │ └── 2.1.0/
│ │ └── datadog.json
│ ├── digitalocean/
│ │ ├── 0.1.0/
│ │ │ └── digitalocean.json
│ │ ├── 0.1.1/
│ │ │ └── digitalocean.json
│ │ ├── 0.1.2/
│ │ │ └── digitalocean.json
│ │ ├── 0.1.3/
│ │ │ └── digitalocean.json
│ │ ├── 1.0.0/
│ │ │ └── digitalocean.json
│ │ ├── 1.0.1/
│ │ │ └── digitalocean.json
│ │ ├── 1.0.2/
│ │ │ └── digitalocean.json
│ │ ├── 1.1.0/
│ │ │ └── digitalocean.json
│ │ ├── 1.2.0/
│ │ │ └── digitalocean.json
│ │ ├── 1.3.0/
│ │ │ └── digitalocean.json
│ │ └── 1.5.0/
│ │ └── digitalocean.json
│ ├── dme/
│ │ └── 0.1.0/
│ │ └── dme.json
│ ├── dns/
│ │ ├── 0.1.0/
│ │ │ └── dns.json
│ │ ├── 0.1.1/
│ │ │ └── dns.json
│ │ ├── 1.0.0/
│ │ │ └── dns.json
│ │ ├── 2.0.0/
│ │ │ └── dns.json
│ │ ├── 2.1.0/
│ │ │ └── dns.json
│ │ ├── 2.1.1/
│ │ │ └── dns.json
│ │ └── 2.2.0/
│ │ └── dns.json
│ ├── dnsimple/
│ │ ├── 0.1.0/
│ │ │ └── dnsimple.json
│ │ └── 0.2.0/
│ │ └── dnsimple.json
│ ├── docker/
│ │ ├── 0.1.0/
│ │ │ └── docker.json
│ │ ├── 0.1.1/
│ │ │ └── docker.json
│ │ ├── 1.0.0/
│ │ │ └── docker.json
│ │ ├── 1.0.1/
│ │ │ └── docker.json
│ │ ├── 1.0.2/
│ │ │ └── docker.json
│ │ ├── 1.0.3/
│ │ │ └── docker.json
│ │ ├── 1.0.4/
│ │ │ └── docker.json
│ │ ├── 1.1.0/
│ │ │ └── docker.json
│ │ ├── 1.1.1/
│ │ │ └── docker.json
│ │ ├── 2.0.0/
│ │ │ └── docker.json
│ │ └── 2.1.0/
│ │ └── docker.json
│ ├── dyn/
│ │ ├── 0.1.0/
│ │ │ └── dyn.json
│ │ ├── 1.0.0/
│ │ │ └── dyn.json
│ │ ├── 1.1.0/
│ │ │ └── dyn.json
│ │ └── 1.2.0/
│ │ └── dyn.json
│ ├── external/
│ │ ├── 0.1.0/
│ │ │ └── external.json
│ │ ├── 1.0.0/
│ │ │ └── external.json
│ │ ├── 1.1.0/
│ │ │ └── external.json
│ │ ├── 1.1.1/
│ │ │ └── external.json
│ │ ├── 1.1.2/
│ │ │ └── external.json
│ │ └── 1.2.0/
│ │ └── external.json
│ ├── fastly/
│ │ ├── 0.1.0/
│ │ │ └── fastly.json
│ │ ├── 0.1.1/
│ │ │ └── fastly.json
│ │ ├── 0.1.2/
│ │ │ └── fastly.json
│ │ ├── 0.1.3/
│ │ │ └── fastly.json
│ │ ├── 0.1.4/
│ │ │ └── fastly.json
│ │ ├── 0.2.0/
│ │ │ └── fastly.json
│ │ ├── 0.3.0/
│ │ │ └── fastly.json
│ │ ├── 0.4.0/
│ │ │ └── fastly.json
│ │ ├── 0.5.0/
│ │ │ └── fastly.json
│ │ ├── 0.6.0/
│ │ │ └── fastly.json
│ │ └── 0.8.1/
│ │ └── fastly.json
│ ├── flexibleengine/
│ │ ├── 1.0.0/
│ │ │ └── flexibleengine.json
│ │ ├── 1.0.1/
│ │ │ └── flexibleengine.json
│ │ ├── 1.1.0/
│ │ │ └── flexibleengine.json
│ │ ├── 1.2.0/
│ │ │ └── flexibleengine.json
│ │ ├── 1.2.1/
│ │ │ └── flexibleengine.json
│ │ ├── 1.3.1/
│ │ │ └── flexibleengine.json
│ │ ├── 1.4.0/
│ │ │ └── flexibleengine.json
│ │ ├── 1.5.0/
│ │ │ └── flexibleengine.json
│ │ └── 1.6.0/
│ │ └── flexibleengine.json
│ ├── github/
│ │ ├── 0.1.0/
│ │ │ └── github.json
│ │ ├── 0.1.1/
│ │ │ └── github.json
│ │ ├── 0.1.2/
│ │ │ └── github.json
│ │ ├── 1.0.0/
│ │ │ └── github.json
│ │ ├── 1.1.0/
│ │ │ └── github.json
│ │ ├── 1.2.1/
│ │ │ └── github.json
│ │ ├── 1.3.0/
│ │ │ └── github.json
│ │ ├── 2.0.0/
│ │ │ └── github.json
│ │ ├── 2.1.0/
│ │ │ └── github.json
│ │ └── 2.2.0/
│ │ └── github.json
│ ├── gitlab/
│ │ ├── 0.1.0/
│ │ │ └── gitlab.json
│ │ ├── 1.0.0/
│ │ │ └── gitlab.json
│ │ ├── 1.1.0/
│ │ │ └── gitlab.json
│ │ ├── 1.2.0/
│ │ │ └── gitlab.json
│ │ ├── 1.3.0/
│ │ │ └── gitlab.json
│ │ ├── 2.0.0/
│ │ │ └── gitlab.json
│ │ └── 2.2.0/
│ │ └── gitlab.json
│ ├── google/
│ │ ├── 0.1.0/
│ │ │ └── google.json
│ │ ├── 0.1.1/
│ │ │ └── google.json
│ │ ├── 0.1.2/
│ │ │ └── google.json
│ │ ├── 0.1.3/
│ │ │ └── google.json
│ │ ├── 1.0.0/
│ │ │ └── google.json
│ │ ├── 1.0.1/
│ │ │ └── google.json
│ │ ├── 1.1.0/
│ │ │ └── google.json
│ │ ├── 1.1.1/
│ │ │ └── google.json
│ │ ├── 1.10.0/
│ │ │ └── google.json
│ │ ├── 1.11.0/
│ │ │ └── google.json
│ │ ├── 1.12.0/
│ │ │ └── google.json
│ │ ├── 1.13.0/
│ │ │ └── google.json
│ │ ├── 1.14.0/
│ │ │ └── google.json
│ │ ├── 1.15.0/
│ │ │ └── google.json
│ │ ├── 1.16.0/
│ │ │ └── google.json
│ │ ├── 1.16.1/
│ │ │ └── google.json
│ │ ├── 1.16.2/
│ │ │ └── google.json
│ │ ├── 1.17.1/
│ │ │ └── google.json
│ │ ├── 1.18.0/
│ │ │ └── google.json
│ │ ├── 1.19.0/
│ │ │ └── google.json
│ │ ├── 1.19.1/
│ │ │ └── google.json
│ │ ├── 1.2.0/
│ │ │ └── google.json
│ │ ├── 1.20.0/
│ │ │ └── google.json
│ │ ├── 1.3.0/
│ │ │ └── google.json
│ │ ├── 1.4.0/
│ │ │ └── google.json
│ │ ├── 1.5.0/
│ │ │ └── google.json
│ │ ├── 1.6.0/
│ │ │ └── google.json
│ │ ├── 1.7.0/
│ │ │ └── google.json
│ │ ├── 1.8.0/
│ │ │ └── google.json
│ │ ├── 1.9.0/
│ │ │ └── google.json
│ │ ├── 2.0.0/
│ │ │ └── google.json
│ │ ├── 2.1.0/
│ │ │ └── google.json
│ │ ├── 2.10.0/
│ │ │ └── google.json
│ │ ├── 2.11.0/
│ │ │ └── google.json
│ │ ├── 2.2.0/
│ │ │ └── google.json
│ │ ├── 2.3.0/
│ │ │ └── google.json
│ │ ├── 2.4.0/
│ │ │ └── google.json
│ │ ├── 2.5.0/
│ │ │ └── google.json
│ │ ├── 2.5.1/
│ │ │ └── google.json
│ │ ├── 2.7.0/
│ │ │ └── google.json
│ │ ├── beta_1.19.0/
│ │ │ └── google.json
│ │ ├── beta_1.20.0/
│ │ │ └── google.json
│ │ └── beta_2.3.0/
│ │ └── google.json
│ ├── grafana/
│ │ ├── 0.1.0/
│ │ │ └── grafana.json
│ │ ├── 1.0.0/
│ │ │ └── grafana.json
│ │ ├── 1.0.1/
│ │ │ └── grafana.json
│ │ ├── 1.0.2/
│ │ │ └── grafana.json
│ │ ├── 1.1.0/
│ │ │ └── grafana.json
│ │ ├── 1.2.0/
│ │ │ └── grafana.json
│ │ ├── 1.3.0/
│ │ │ └── grafana.json
│ │ ├── 1.4.0/
│ │ │ └── grafana.json
│ │ └── 1.5.0/
│ │ └── grafana.json
│ ├── hcloud/
│ │ ├── 1.10.0/
│ │ │ └── hcloud.json
│ │ ├── 1.11.0/
│ │ │ └── hcloud.json
│ │ ├── 1.2.0/
│ │ │ └── hcloud.json
│ │ ├── 1.3.0/
│ │ │ └── hcloud.json
│ │ ├── 1.4.0/
│ │ │ └── hcloud.json
│ │ ├── 1.5.0/
│ │ │ └── hcloud.json
│ │ ├── 1.6.0/
│ │ │ └── hcloud.json
│ │ ├── 1.7.0/
│ │ │ └── hcloud.json
│ │ ├── 1.8.0/
│ │ │ └── hcloud.json
│ │ └── 1.9.0/
│ │ └── hcloud.json
│ ├── hedvig/
│ │ ├── 1.0.1/
│ │ │ └── hedvig.json
│ │ ├── 1.0.2/
│ │ │ └── hedvig.json
│ │ ├── 1.0.3/
│ │ │ └── hedvig.json
│ │ └── 1.0.4/
│ │ └── hedvig.json
│ ├── helm/
│ │ ├── 0.1.0/
│ │ │ └── helm.json
│ │ ├── 0.10.0/
│ │ │ └── helm.json
│ │ ├── 0.6.0/
│ │ │ └── helm.json
│ │ ├── 0.6.2/
│ │ │ └── helm.json
│ │ ├── 0.7.0/
│ │ │ └── helm.json
│ │ ├── 0.8.0/
│ │ │ └── helm.json
│ │ ├── 0.9.0/
│ │ │ └── helm.json
│ │ └── 0.9.1/
│ │ └── helm.json
│ ├── heroku/
│ │ ├── 0.1.0/
│ │ │ └── heroku.json
│ │ ├── 0.1.1/
│ │ │ └── heroku.json
│ │ ├── 0.1.2/
│ │ │ └── heroku.json
│ │ ├── 1.0.0/
│ │ │ └── heroku.json
│ │ ├── 1.0.1/
│ │ │ └── heroku.json
│ │ ├── 1.0.2/
│ │ │ └── heroku.json
│ │ ├── 1.1.0/
│ │ │ └── heroku.json
│ │ ├── 1.1.1/
│ │ │ └── heroku.json
│ │ ├── 1.2.0/
│ │ │ └── heroku.json
│ │ ├── 1.3.0/
│ │ │ └── heroku.json
│ │ ├── 1.4.0/
│ │ │ └── heroku.json
│ │ ├── 1.5.0/
│ │ │ └── heroku.json
│ │ ├── 1.6.0/
│ │ │ └── heroku.json
│ │ ├── 1.7.0/
│ │ │ └── heroku.json
│ │ ├── 1.7.1/
│ │ │ └── heroku.json
│ │ ├── 1.7.2/
│ │ │ └── heroku.json
│ │ ├── 1.7.3/
│ │ │ └── heroku.json
│ │ ├── 1.7.4/
│ │ │ └── heroku.json
│ │ ├── 1.8.0/
│ │ │ └── heroku.json
│ │ ├── 1.9.0/
│ │ │ └── heroku.json
│ │ ├── 2.0.3/
│ │ │ └── heroku.json
│ │ └── 2.1.0/
│ │ └── heroku.json
│ ├── http/
│ │ ├── 0.1.0/
│ │ │ └── http.json
│ │ ├── 1.0.0/
│ │ │ └── http.json
│ │ ├── 1.0.1/
│ │ │ └── http.json
│ │ ├── 1.1.0/
│ │ │ └── http.json
│ │ └── 1.1.1/
│ │ └── http.json
│ ├── huaweicloud/
│ │ ├── 1.0.0/
│ │ │ └── huaweicloud.json
│ │ ├── 1.1.0/
│ │ │ └── huaweicloud.json
│ │ ├── 1.2.0/
│ │ │ └── huaweicloud.json
│ │ ├── 1.3.0/
│ │ │ └── huaweicloud.json
│ │ ├── 1.4.0/
│ │ │ └── huaweicloud.json
│ │ ├── 1.5.0/
│ │ │ └── huaweicloud.json
│ │ └── 1.6.0/
│ │ └── huaweicloud.json
│ ├── icinga2/
│ │ ├── 0.1.0/
│ │ │ └── icinga2.json
│ │ ├── 0.1.1/
│ │ │ └── icinga2.json
│ │ └── 0.2.0/
│ │ └── icinga2.json
│ ├── ignition/
│ │ ├── 0.1.0/
│ │ │ └── ignition.json
│ │ ├── 0.2.0/
│ │ │ └── ignition.json
│ │ ├── 1.0.0/
│ │ │ └── ignition.json
│ │ ├── 1.0.1/
│ │ │ └── ignition.json
│ │ └── 1.1.0/
│ │ └── ignition.json
│ ├── influxdb/
│ │ ├── 0.1.0/
│ │ │ └── influxdb.json
│ │ ├── 1.0.0/
│ │ │ └── influxdb.json
│ │ ├── 1.0.1/
│ │ │ └── influxdb.json
│ │ ├── 1.0.2/
│ │ │ └── influxdb.json
│ │ ├── 1.0.3/
│ │ │ └── influxdb.json
│ │ ├── 1.1.0/
│ │ │ └── influxdb.json
│ │ └── 1.2.0/
│ │ └── influxdb.json
│ ├── kubernetes/
│ │ ├── 0.1.0/
│ │ │ └── kubernetes.json
│ │ ├── 0.1.1/
│ │ │ └── kubernetes.json
│ │ ├── 0.1.2/
│ │ │ └── kubernetes.json
│ │ ├── 1.0.0/
│ │ │ └── kubernetes.json
│ │ ├── 1.0.1/
│ │ │ └── kubernetes.json
│ │ ├── 1.1.0/
│ │ │ └── kubernetes.json
│ │ ├── 1.2.0/
│ │ │ └── kubernetes.json
│ │ ├── 1.3.0/
│ │ │ └── kubernetes.json
│ │ ├── 1.4.0/
│ │ │ └── kubernetes.json
│ │ ├── 1.5.0/
│ │ │ └── kubernetes.json
│ │ ├── 1.5.1/
│ │ │ └── kubernetes.json
│ │ ├── 1.5.2/
│ │ │ └── kubernetes.json
│ │ ├── 1.6.0/
│ │ │ └── kubernetes.json
│ │ ├── 1.6.2/
│ │ │ └── kubernetes.json
│ │ ├── 1.7.0/
│ │ │ └── kubernetes.json
│ │ ├── 1.8.0/
│ │ │ └── kubernetes.json
│ │ └── 1.8.1/
│ │ └── kubernetes.json
│ ├── librato/
│ │ └── 0.1.0/
│ │ └── librato.json
│ ├── linode/
│ │ ├── 1.0.0/
│ │ │ └── linode.json
│ │ ├── 1.1.0/
│ │ │ └── linode.json
│ │ ├── 1.2.0/
│ │ │ └── linode.json
│ │ ├── 1.3.0/
│ │ │ └── linode.json
│ │ ├── 1.4.0/
│ │ │ └── linode.json
│ │ ├── 1.5.0/
│ │ │ └── linode.json
│ │ ├── 1.6.0/
│ │ │ └── linode.json
│ │ ├── 1.7.0/
│ │ │ └── linode.json
│ │ └── 1.8.0/
│ │ └── linode.json
│ ├── local/
│ │ ├── 0.1.0/
│ │ │ └── local.json
│ │ ├── 1.0.0/
│ │ │ └── local.json
│ │ ├── 1.1.0/
│ │ │ └── local.json
│ │ ├── 1.2.0/
│ │ │ └── local.json
│ │ ├── 1.2.1/
│ │ │ └── local.json
│ │ ├── 1.2.2/
│ │ │ └── local.json
│ │ └── 1.3.0/
│ │ └── local.json
│ ├── logentries/
│ │ ├── 0.1.0/
│ │ │ └── logentries.json
│ │ └── 1.0.0/
│ │ └── logentries.json
│ ├── logicmonitor/
│ │ ├── 1.0.0/
│ │ │ └── logicmonitor.json
│ │ ├── 1.1.0/
│ │ │ └── logicmonitor.json
│ │ ├── 1.2.0/
│ │ │ └── logicmonitor.json
│ │ └── 1.2.1/
│ │ └── logicmonitor.json
│ ├── mailgun/
│ │ └── 0.1.0/
│ │ └── mailgun.json
│ ├── mysql/
│ │ ├── 0.1.0/
│ │ │ └── mysql.json
│ │ ├── 1.0.0/
│ │ │ └── mysql.json
│ │ ├── 1.0.1/
│ │ │ └── mysql.json
│ │ ├── 1.1.0/
│ │ │ └── mysql.json
│ │ ├── 1.5.0/
│ │ │ └── mysql.json
│ │ ├── 1.5.1/
│ │ │ └── mysql.json
│ │ ├── 1.6.0/
│ │ │ └── mysql.json
│ │ └── 1.7.0/
│ │ └── mysql.json
│ ├── netlify/
│ │ ├── 0.1.0/
│ │ │ └── netlify.json
│ │ └── 0.3.0/
│ │ └── netlify.json
│ ├── newrelic/
│ │ ├── 0.1.0/
│ │ │ └── newrelic.json
│ │ ├── 0.1.1/
│ │ │ └── newrelic.json
│ │ ├── 1.0.0/
│ │ │ └── newrelic.json
│ │ ├── 1.0.1/
│ │ │ └── newrelic.json
│ │ ├── 1.1.0/
│ │ │ └── newrelic.json
│ │ ├── 1.2.0/
│ │ │ └── newrelic.json
│ │ ├── 1.3.0/
│ │ │ └── newrelic.json
│ │ ├── 1.4.0/
│ │ │ └── newrelic.json
│ │ ├── 1.5.0/
│ │ │ └── newrelic.json
│ │ └── 1.5.1/
│ │ └── newrelic.json
│ ├── nomad/
│ │ ├── 0.1.0/
│ │ │ └── nomad.json
│ │ ├── 1.0.0/
│ │ │ └── nomad.json
│ │ ├── 1.1.0/
│ │ │ └── nomad.json
│ │ ├── 1.2.0/
│ │ │ └── nomad.json
│ │ ├── 1.3.0/
│ │ │ └── nomad.json
│ │ └── 1.4.0/
│ │ └── nomad.json
│ ├── ns1/
│ │ ├── 0.1.0/
│ │ │ └── ns1.json
│ │ ├── 1.0.0/
│ │ │ └── ns1.json
│ │ ├── 1.1.0/
│ │ │ └── ns1.json
│ │ ├── 1.1.2/
│ │ │ └── ns1.json
│ │ ├── 1.2.0/
│ │ │ └── ns1.json
│ │ ├── 1.3.0/
│ │ │ └── ns1.json
│ │ ├── 1.3.1/
│ │ │ └── ns1.json
│ │ ├── 1.4.0/
│ │ │ └── ns1.json
│ │ └── 1.4.1/
│ │ └── ns1.json
│ ├── nsxt/
│ │ ├── 1.0.0/
│ │ │ └── nsxt.json
│ │ └── 1.1.0/
│ │ └── nsxt.json
│ ├── null/
│ │ ├── 0.1.0/
│ │ │ └── null.json
│ │ ├── 1.0.0/
│ │ │ └── null.json
│ │ ├── 2.0.0/
│ │ │ └── null.json
│ │ ├── 2.1.0/
│ │ │ └── null.json
│ │ ├── 2.1.1/
│ │ │ └── null.json
│ │ └── 2.1.2/
│ │ └── null.json
│ ├── nutanix/
│ │ ├── 1.0.0/
│ │ │ └── nutanix.json
│ │ └── 1.0.1/
│ │ └── nutanix.json
│ ├── oci/
│ │ ├── 3.1.1/
│ │ │ └── oci.json
│ │ ├── 3.11.1/
│ │ │ └── oci.json
│ │ ├── 3.12.0/
│ │ │ └── oci.json
│ │ ├── 3.19.0/
│ │ │ └── oci.json
│ │ ├── 3.2.0/
│ │ │ └── oci.json
│ │ ├── 3.20.0/
│ │ │ └── oci.json
│ │ ├── 3.23.0/
│ │ │ └── oci.json
│ │ ├── 3.3.0/
│ │ │ └── oci.json
│ │ ├── 3.4.0/
│ │ │ └── oci.json
│ │ └── 3.8.0/
│ │ └── oci.json
│ ├── oneandone/
│ │ ├── 0.1.0/
│ │ │ └── oneandone.json
│ │ ├── 1.0.0/
│ │ │ └── oneandone.json
│ │ ├── 1.1.0/
│ │ │ └── oneandone.json
│ │ ├── 1.2.0/
│ │ │ └── oneandone.json
│ │ └── 1.3.0/
│ │ └── oneandone.json
│ ├── opc/
│ │ ├── 0.1.0/
│ │ │ └── opc.json
│ │ ├── 0.1.1/
│ │ │ └── opc.json
│ │ ├── 0.1.2/
│ │ │ └── opc.json
│ │ ├── 0.1.3/
│ │ │ └── opc.json
│ │ ├── 1.0.0/
│ │ │ └── opc.json
│ │ ├── 1.0.1/
│ │ │ └── opc.json
│ │ ├── 1.1.0/
│ │ │ └── opc.json
│ │ ├── 1.1.1/
│ │ │ └── opc.json
│ │ ├── 1.1.2/
│ │ │ └── opc.json
│ │ ├── 1.2.0/
│ │ │ └── opc.json
│ │ ├── 1.2.1/
│ │ │ └── opc.json
│ │ ├── 1.3.0/
│ │ │ └── opc.json
│ │ ├── 1.3.1/
│ │ │ └── opc.json
│ │ ├── 1.3.2/
│ │ │ └── opc.json
│ │ ├── 1.3.3/
│ │ │ └── opc.json
│ │ ├── 1.3.4/
│ │ │ └── opc.json
│ │ ├── 1.3.5/
│ │ │ └── opc.json
│ │ └── 1.3.6/
│ │ └── opc.json
│ ├── openstack/
│ │ ├── 0.1.0/
│ │ │ └── openstack.json
│ │ ├── 0.2.0/
│ │ │ └── openstack.json
│ │ ├── 0.2.1/
│ │ │ └── openstack.json
│ │ ├── 0.2.2/
│ │ │ └── openstack.json
│ │ ├── 0.3.0/
│ │ │ └── openstack.json
│ │ ├── 1.0.0/
│ │ │ └── openstack.json
│ │ ├── 1.1.0/
│ │ │ └── openstack.json
│ │ ├── 1.10.0/
│ │ │ └── openstack.json
│ │ ├── 1.11.0/
│ │ │ └── openstack.json
│ │ ├── 1.12.0/
│ │ │ └── openstack.json
│ │ ├── 1.13.0/
│ │ │ └── openstack.json
│ │ ├── 1.14.0/
│ │ │ └── openstack.json
│ │ ├── 1.15.0/
│ │ │ └── openstack.json
│ │ ├── 1.16.0/
│ │ │ └── openstack.json
│ │ ├── 1.17.0/
│ │ │ └── openstack.json
│ │ ├── 1.19.0/
│ │ │ └── openstack.json
│ │ ├── 1.2.0/
│ │ │ └── openstack.json
│ │ ├── 1.20.0/
│ │ │ └── openstack.json
│ │ ├── 1.3.0/
│ │ │ └── openstack.json
│ │ ├── 1.4.0/
│ │ │ └── openstack.json
│ │ ├── 1.5.0/
│ │ │ └── openstack.json
│ │ ├── 1.6.0/
│ │ │ └── openstack.json
│ │ ├── 1.7.0/
│ │ │ └── openstack.json
│ │ ├── 1.8.0/
│ │ │ └── openstack.json
│ │ └── 1.9.0/
│ │ └── openstack.json
│ ├── opentelekomcloud/
│ │ ├── 1.0.0/
│ │ │ └── opentelekomcloud.json
│ │ ├── 1.1.0/
│ │ │ └── opentelekomcloud.json
│ │ ├── 1.10.0/
│ │ │ └── opentelekomcloud.json
│ │ ├── 1.2.0/
│ │ │ └── opentelekomcloud.json
│ │ ├── 1.3.0/
│ │ │ └── opentelekomcloud.json
│ │ ├── 1.4.0/
│ │ │ └── opentelekomcloud.json
│ │ ├── 1.5.1/
│ │ │ └── opentelekomcloud.json
│ │ ├── 1.5.2/
│ │ │ └── opentelekomcloud.json
│ │ ├── 1.6.0/
│ │ │ └── opentelekomcloud.json
│ │ ├── 1.6.1/
│ │ │ └── opentelekomcloud.json
│ │ ├── 1.7.0/
│ │ │ └── opentelekomcloud.json
│ │ └── 1.8.0/
│ │ └── opentelekomcloud.json
│ ├── opsgenie/
│ │ └── 0.1.0/
│ │ └── opsgenie.json
│ ├── oraclepaas/
│ │ ├── 1.0.0/
│ │ │ └── oraclepaas.json
│ │ ├── 1.1.1/
│ │ │ └── oraclepaas.json
│ │ ├── 1.2.0/
│ │ │ └── oraclepaas.json
│ │ ├── 1.2.1/
│ │ │ └── oraclepaas.json
│ │ ├── 1.3.0/
│ │ │ └── oraclepaas.json
│ │ ├── 1.3.1/
│ │ │ └── oraclepaas.json
│ │ ├── 1.3.2/
│ │ │ └── oraclepaas.json
│ │ ├── 1.4.1/
│ │ │ └── oraclepaas.json
│ │ ├── 1.4.2/
│ │ │ └── oraclepaas.json
│ │ ├── 1.4.3/
│ │ │ └── oraclepaas.json
│ │ ├── 1.5.0/
│ │ │ └── oraclepaas.json
│ │ ├── 1.5.1/
│ │ │ └── oraclepaas.json
│ │ └── 1.5.2/
│ │ └── oraclepaas.json
│ ├── ovh/
│ │ ├── 0.1.0/
│ │ │ └── ovh.json
│ │ ├── 0.1.1/
│ │ │ └── ovh.json
│ │ ├── 0.2.0/
│ │ │ └── ovh.json
│ │ ├── 0.3.0/
│ │ │ └── ovh.json
│ │ └── 0.5.0/
│ │ └── ovh.json
│ ├── packet/
│ │ ├── 0.1.0/
│ │ │ └── packet.json
│ │ ├── 1.0.0/
│ │ │ └── packet.json
│ │ ├── 1.1.0/
│ │ │ └── packet.json
│ │ ├── 1.2.0/
│ │ │ └── packet.json
│ │ ├── 1.2.1/
│ │ │ └── packet.json
│ │ ├── 1.2.2/
│ │ │ └── packet.json
│ │ ├── 1.2.3/
│ │ │ └── packet.json
│ │ ├── 1.2.4/
│ │ │ └── packet.json
│ │ ├── 1.2.5/
│ │ │ └── packet.json
│ │ ├── 1.3.2/
│ │ │ └── packet.json
│ │ ├── 1.4.1/
│ │ │ └── packet.json
│ │ ├── 1.5.0/
│ │ │ └── packet.json
│ │ ├── 1.6.0/
│ │ │ └── packet.json
│ │ ├── 1.7.0/
│ │ │ └── packet.json
│ │ ├── 1.7.2/
│ │ │ └── packet.json
│ │ ├── 2.0.0/
│ │ │ └── packet.json
│ │ ├── 2.1.0/
│ │ │ └── packet.json
│ │ ├── 2.2.0/
│ │ │ └── packet.json
│ │ └── 2.2.1/
│ │ └── packet.json
│ ├── pagerduty/
│ │ ├── 0.1.0/
│ │ │ └── pagerduty.json
│ │ ├── 0.1.1/
│ │ │ └── pagerduty.json
│ │ ├── 0.1.2/
│ │ │ └── pagerduty.json
│ │ ├── 0.1.3/
│ │ │ └── pagerduty.json
│ │ ├── 1.0.0/
│ │ │ └── pagerduty.json
│ │ ├── 1.1.0/
│ │ │ └── pagerduty.json
│ │ ├── 1.1.1/
│ │ │ └── pagerduty.json
│ │ ├── 1.2.0/
│ │ │ └── pagerduty.json
│ │ ├── 1.2.1/
│ │ │ └── pagerduty.json
│ │ └── 1.3.0/
│ │ └── pagerduty.json
│ ├── panos/
│ │ ├── 1.0.0/
│ │ │ └── panos.json
│ │ ├── 1.1.0/
│ │ │ └── panos.json
│ │ ├── 1.2.0/
│ │ │ └── panos.json
│ │ ├── 1.3.0/
│ │ │ └── panos.json
│ │ ├── 1.4.0/
│ │ │ └── panos.json
│ │ ├── 1.4.1/
│ │ │ └── panos.json
│ │ ├── 1.5.1/
│ │ │ └── panos.json
│ │ └── 1.5.2/
│ │ └── panos.json
│ ├── postgresql/
│ │ ├── 0.1.0/
│ │ │ └── postgresql.json
│ │ ├── 0.1.1/
│ │ │ └── postgresql.json
│ │ ├── 0.1.2/
│ │ │ └── postgresql.json
│ │ ├── 0.1.3/
│ │ │ └── postgresql.json
│ │ ├── 0.2.0/
│ │ │ └── postgresql.json
│ │ ├── 0.2.1/
│ │ │ └── postgresql.json
│ │ ├── 0.3.0/
│ │ │ └── postgresql.json
│ │ ├── 0.4.0/
│ │ │ └── postgresql.json
│ │ └── 1.1.0/
│ │ └── postgresql.json
│ ├── powerdns/
│ │ └── 0.1.0/
│ │ └── powerdns.json
│ ├── profitbricks/
│ │ ├── 0.1.0/
│ │ │ └── profitbricks.json
│ │ ├── 0.1.1/
│ │ │ └── profitbricks.json
│ │ ├── 0.1.2/
│ │ │ └── profitbricks.json
│ │ ├── 1.0.0/
│ │ │ └── profitbricks.json
│ │ ├── 1.0.1/
│ │ │ └── profitbricks.json
│ │ ├── 1.1.0/
│ │ │ └── profitbricks.json
│ │ ├── 1.1.1/
│ │ │ └── profitbricks.json
│ │ ├── 1.2.0/
│ │ │ └── profitbricks.json
│ │ ├── 1.2.1/
│ │ │ └── profitbricks.json
│ │ ├── 1.3.1/
│ │ │ └── profitbricks.json
│ │ ├── 1.3.2/
│ │ │ └── profitbricks.json
│ │ ├── 1.3.3/
│ │ │ └── profitbricks.json
│ │ ├── 1.4.0/
│ │ │ └── profitbricks.json
│ │ ├── 1.4.1/
│ │ │ └── profitbricks.json
│ │ ├── 1.4.2/
│ │ │ └── profitbricks.json
│ │ ├── 1.4.3/
│ │ │ └── profitbricks.json
│ │ └── 1.4.4/
│ │ └── profitbricks.json
│ ├── rabbitmq/
│ │ ├── 0.1.0/
│ │ │ └── rabbitmq.json
│ │ ├── 0.2.0/
│ │ │ └── rabbitmq.json
│ │ ├── 1.0.0/
│ │ │ └── rabbitmq.json
│ │ └── 1.1.0/
│ │ └── rabbitmq.json
│ ├── rancher/
│ │ ├── 0.1.0/
│ │ │ └── rancher.json
│ │ ├── 0.1.1/
│ │ │ └── rancher.json
│ │ ├── 0.2.0/
│ │ │ └── rancher.json
│ │ ├── 1.0.0/
│ │ │ └── rancher.json
│ │ ├── 1.1.0/
│ │ │ └── rancher.json
│ │ ├── 1.1.1/
│ │ │ └── rancher.json
│ │ ├── 1.2.0/
│ │ │ └── rancher.json
│ │ ├── 1.2.1/
│ │ │ └── rancher.json
│ │ ├── 1.3.0/
│ │ │ └── rancher.json
│ │ └── 1.4.0/
│ │ └── rancher.json
│ ├── random/
│ │ ├── 0.1.0/
│ │ │ └── random.json
│ │ ├── 1.0.0/
│ │ │ └── random.json
│ │ ├── 1.1.0/
│ │ │ └── random.json
│ │ ├── 1.2.0/
│ │ │ └── random.json
│ │ ├── 1.3.0/
│ │ │ └── random.json
│ │ ├── 1.3.1/
│ │ │ └── random.json
│ │ ├── 2.0.0/
│ │ │ └── random.json
│ │ ├── 2.1.0/
│ │ │ └── random.json
│ │ ├── 2.1.1/
│ │ │ └── random.json
│ │ └── 2.1.2/
│ │ └── random.json
│ ├── rightscale/
│ │ ├── 1.3.0/
│ │ │ └── rightscale.json
│ │ └── 1.3.1/
│ │ └── rightscale.json
│ ├── rundeck/
│ │ ├── 0.1.0/
│ │ │ └── rundeck.json
│ │ ├── 0.2.0/
│ │ │ └── rundeck.json
│ │ └── 0.3.0/
│ │ └── rundeck.json
│ ├── runscope/
│ │ ├── 0.1.0/
│ │ │ └── runscope.json
│ │ ├── 0.2.0/
│ │ │ └── runscope.json
│ │ ├── 0.3.0/
│ │ │ └── runscope.json
│ │ ├── 0.4.0/
│ │ │ └── runscope.json
│ │ ├── 0.5.0/
│ │ │ └── runscope.json
│ │ └── 0.6.0/
│ │ └── runscope.json
│ ├── scaleway/
│ │ ├── 0.1.0/
│ │ │ └── scaleway.json
│ │ ├── 0.1.1/
│ │ │ └── scaleway.json
│ │ ├── 1.0.0/
│ │ │ └── scaleway.json
│ │ ├── 1.0.1/
│ │ │ └── scaleway.json
│ │ ├── 1.1.0/
│ │ │ └── scaleway.json
│ │ ├── 1.10.0/
│ │ │ └── scaleway.json
│ │ ├── 1.2.0/
│ │ │ └── scaleway.json
│ │ ├── 1.3.0/
│ │ │ └── scaleway.json
│ │ ├── 1.4.0/
│ │ │ └── scaleway.json
│ │ ├── 1.4.1/
│ │ │ └── scaleway.json
│ │ ├── 1.5.0/
│ │ │ └── scaleway.json
│ │ ├── 1.5.1/
│ │ │ └── scaleway.json
│ │ ├── 1.6.0/
│ │ │ └── scaleway.json
│ │ ├── 1.7.0/
│ │ │ └── scaleway.json
│ │ ├── 1.8.0/
│ │ │ └── scaleway.json
│ │ ├── 1.9.1/
│ │ │ └── scaleway.json
│ │ └── 1.9.2/
│ │ └── scaleway.json
│ ├── selectel/
│ │ ├── 2.0.0/
│ │ │ └── selectel.json
│ │ ├── 2.1.0/
│ │ │ └── selectel.json
│ │ ├── 2.2.0/
│ │ │ └── selectel.json
│ │ └── 2.3.0/
│ │ └── selectel.json
│ ├── selvpc/
│ │ ├── 0.3.0/
│ │ │ └── selvpc.json
│ │ ├── 1.0.0/
│ │ │ └── selvpc.json
│ │ └── 1.1.0/
│ │ └── selvpc.json
│ ├── skytap/
│ │ ├── 0.11.1/
│ │ │ └── skytap.json
│ │ └── 0.9.0/
│ │ └── skytap.json
│ ├── softlayer/
│ │ └── 0.0.1/
│ │ └── softlayer.json
│ ├── spotinst/
│ │ ├── 0.1.0/
│ │ │ └── spotinst.json
│ │ ├── 1.0.0/
│ │ │ └── spotinst.json
│ │ ├── 1.1.0/
│ │ │ └── spotinst.json
│ │ ├── 1.1.1/
│ │ │ └── spotinst.json
│ │ ├── 1.10.0/
│ │ │ └── spotinst.json
│ │ ├── 1.11.0/
│ │ │ └── spotinst.json
│ │ ├── 1.12.0/
│ │ │ └── spotinst.json
│ │ ├── 1.13.0/
│ │ │ └── spotinst.json
│ │ ├── 1.13.2/
│ │ │ └── spotinst.json
│ │ ├── 1.13.3/
│ │ │ └── spotinst.json
│ │ ├── 1.2.0/
│ │ │ └── spotinst.json
│ │ ├── 1.3.0/
│ │ │ └── spotinst.json
│ │ ├── 1.4.0/
│ │ │ └── spotinst.json
│ │ ├── 1.5.0/
│ │ │ └── spotinst.json
│ │ ├── 1.6.0/
│ │ │ └── spotinst.json
│ │ ├── 1.6.1/
│ │ │ └── spotinst.json
│ │ ├── 1.7.0/
│ │ │ └── spotinst.json
│ │ ├── 1.8.0/
│ │ │ └── spotinst.json
│ │ └── 1.9.0/
│ │ └── spotinst.json
│ ├── statuscake/
│ │ ├── 0.1.0/
│ │ │ └── statuscake.json
│ │ ├── 0.2.0/
│ │ │ └── statuscake.json
│ │ └── 1.0.0/
│ │ └── statuscake.json
│ ├── telefonicaopencloud/
│ │ └── 1.0.0/
│ │ └── telefonicaopencloud.json
│ ├── template/
│ │ ├── 0.1.0/
│ │ │ └── template.json
│ │ ├── 0.1.1/
│ │ │ └── template.json
│ │ ├── 1.0.0/
│ │ │ └── template.json
│ │ ├── 2.0.0/
│ │ │ └── template.json
│ │ ├── 2.1.0/
│ │ │ └── template.json
│ │ ├── 2.1.1/
│ │ │ └── template.json
│ │ └── 2.1.2/
│ │ └── template.json
│ ├── tencentcloud/
│ │ ├── 1.11.0/
│ │ │ └── tencentcloud.json
│ │ ├── 1.13.0/
│ │ │ └── tencentcloud.json
│ │ ├── 1.2.2/
│ │ │ └── tencentcloud.json
│ │ ├── 1.3.0/
│ │ │ └── tencentcloud.json
│ │ ├── 1.4.0/
│ │ │ └── tencentcloud.json
│ │ ├── 1.5.0/
│ │ │ └── tencentcloud.json
│ │ └── 1.7.0/
│ │ └── tencentcloud.json
│ ├── terraform/
│ │ ├── 0.1.0/
│ │ │ └── terraform.json
│ │ ├── 1.0.0/
│ │ │ └── terraform.json
│ │ ├── 1.0.1/
│ │ │ └── terraform.json
│ │ └── 1.0.2/
│ │ └── terraform.json
│ ├── tfe/
│ │ ├── 0.1.0/
│ │ │ └── tfe.json
│ │ ├── 0.10.1/
│ │ │ └── tfe.json
│ │ ├── 0.2.0/
│ │ │ └── tfe.json
│ │ ├── 0.3.0/
│ │ │ └── tfe.json
│ │ ├── 0.4.0/
│ │ │ └── tfe.json
│ │ ├── 0.5.0/
│ │ │ └── tfe.json
│ │ ├── 0.6.0/
│ │ │ └── tfe.json
│ │ ├── 0.7.1/
│ │ │ └── tfe.json
│ │ ├── 0.8.1/
│ │ │ └── tfe.json
│ │ ├── 0.8.2/
│ │ │ └── tfe.json
│ │ └── 0.9.0/
│ │ └── tfe.json
│ ├── tls/
│ │ ├── 0.1.0/
│ │ │ └── tls.json
│ │ ├── 1.0.0/
│ │ │ └── tls.json
│ │ ├── 1.0.1/
│ │ │ └── tls.json
│ │ ├── 1.1.0/
│ │ │ └── tls.json
│ │ ├── 1.2.0/
│ │ │ └── tls.json
│ │ ├── 2.0.0/
│ │ │ └── tls.json
│ │ └── 2.0.1/
│ │ └── tls.json
│ ├── triton/
│ │ ├── 0.1.0/
│ │ │ └── triton.json
│ │ ├── 0.1.1/
│ │ │ └── triton.json
│ │ ├── 0.1.2/
│ │ │ └── triton.json
│ │ ├── 0.1.3/
│ │ │ └── triton.json
│ │ ├── 0.2.0/
│ │ │ └── triton.json
│ │ ├── 0.2.1/
│ │ │ └── triton.json
│ │ ├── 0.3.0/
│ │ │ └── triton.json
│ │ ├── 0.4.0/
│ │ │ └── triton.json
│ │ ├── 0.4.1/
│ │ │ └── triton.json
│ │ ├── 0.4.2/
│ │ │ └── triton.json
│ │ ├── 0.5.0/
│ │ │ └── triton.json
│ │ └── 0.5.1/
│ │ └── triton.json
│ ├── ucloud/
│ │ ├── 1.0.0/
│ │ │ └── ucloud.json
│ │ ├── 1.1.0/
│ │ │ └── ucloud.json
│ │ ├── 1.11.0/
│ │ │ └── ucloud.json
│ │ ├── 1.11.1/
│ │ │ └── ucloud.json
│ │ ├── 1.2.1/
│ │ │ └── ucloud.json
│ │ ├── 1.3.1/
│ │ │ └── ucloud.json
│ │ ├── 1.4.0/
│ │ │ └── ucloud.json
│ │ ├── 1.5.0/
│ │ │ └── ucloud.json
│ │ ├── 1.6.0/
│ │ │ └── ucloud.json
│ │ └── 1.9.0/
│ │ └── ucloud.json
│ ├── ultradns/
│ │ └── 0.1.0/
│ │ └── ultradns.json
│ ├── vault/
│ │ ├── 0.1.0/
│ │ │ └── vault.json
│ │ ├── 1.0.0/
│ │ │ └── vault.json
│ │ ├── 1.1.0/
│ │ │ └── vault.json
│ │ ├── 1.1.1/
│ │ │ └── vault.json
│ │ ├── 1.1.2/
│ │ │ └── vault.json
│ │ ├── 1.1.3/
│ │ │ └── vault.json
│ │ ├── 1.1.4/
│ │ │ └── vault.json
│ │ ├── 1.2.0/
│ │ │ └── vault.json
│ │ ├── 1.3.1/
│ │ │ └── vault.json
│ │ ├── 1.4.1/
│ │ │ └── vault.json
│ │ ├── 1.5.0/
│ │ │ └── vault.json
│ │ ├── 1.6.0/
│ │ │ └── vault.json
│ │ ├── 1.7.0/
│ │ │ └── vault.json
│ │ ├── 1.8.0/
│ │ │ └── vault.json
│ │ └── 2.1.0/
│ │ └── vault.json
│ ├── vcd/
│ │ ├── 0.1.0/
│ │ │ └── vcd.json
│ │ ├── 0.1.1/
│ │ │ └── vcd.json
│ │ ├── 0.1.2/
│ │ │ └── vcd.json
│ │ ├── 0.1.3/
│ │ │ └── vcd.json
│ │ ├── 1.0.0/
│ │ │ └── vcd.json
│ │ ├── 2.0.0/
│ │ │ └── vcd.json
│ │ ├── 2.1.0/
│ │ │ └── vcd.json
│ │ ├── 2.2.0/
│ │ │ └── vcd.json
│ │ └── 2.3.0/
│ │ └── vcd.json
│ ├── vsphere/
│ │ ├── 0.1.0/
│ │ │ └── vsphere.json
│ │ ├── 0.2.0/
│ │ │ └── vsphere.json
│ │ ├── 0.2.1/
│ │ │ └── vsphere.json
│ │ ├── 0.2.2/
│ │ │ └── vsphere.json
│ │ ├── 0.3.0/
│ │ │ └── vsphere.json
│ │ ├── 0.4.0/
│ │ │ └── vsphere.json
│ │ ├── 0.4.1/
│ │ │ └── vsphere.json
│ │ ├── 0.4.2/
│ │ │ └── vsphere.json
│ │ ├── 1.0.0/
│ │ │ └── vsphere.json
│ │ ├── 1.0.1/
│ │ │ └── vsphere.json
│ │ ├── 1.0.2/
│ │ │ └── vsphere.json
│ │ ├── 1.0.3/
│ │ │ └── vsphere.json
│ │ ├── 1.1.0/
│ │ │ └── vsphere.json
│ │ ├── 1.1.1/
│ │ │ └── vsphere.json
│ │ ├── 1.10.0/
│ │ │ └── vsphere.json
│ │ ├── 1.11.0/
│ │ │ └── vsphere.json
│ │ ├── 1.12.0/
│ │ │ └── vsphere.json
│ │ ├── 1.2.0/
│ │ │ └── vsphere.json
│ │ ├── 1.3.0/
│ │ │ └── vsphere.json
│ │ ├── 1.3.1/
│ │ │ └── vsphere.json
│ │ ├── 1.3.2/
│ │ │ └── vsphere.json
│ │ ├── 1.3.3/
│ │ │ └── vsphere.json
│ │ ├── 1.4.0/
│ │ │ └── vsphere.json
│ │ ├── 1.4.1/
│ │ │ └── vsphere.json
│ │ ├── 1.5.0/
│ │ │ └── vsphere.json
│ │ ├── 1.6.0/
│ │ │ └── vsphere.json
│ │ ├── 1.7.0/
│ │ │ └── vsphere.json
│ │ ├── 1.8.0/
│ │ │ └── vsphere.json
│ │ ├── 1.8.1/
│ │ │ └── vsphere.json
│ │ ├── 1.9.0/
│ │ │ └── vsphere.json
│ │ └── 1.9.1/
│ │ └── vsphere.json
│ └── yandex/
│ ├── 0.1.15/
│ │ └── yandex.json
│ ├── 0.1.16/
│ │ └── yandex.json
│ ├── 0.2.0/
│ │ └── yandex.json
│ ├── 0.3.0/
│ │ └── yandex.json
│ ├── 0.4.0/
│ │ └── yandex.json
│ ├── 0.4.1/
│ │ └── yandex.json
│ ├── 0.5.0/
│ │ └── yandex.json
│ ├── 0.5.1/
│ │ └── yandex.json
│ ├── 0.5.2/
│ │ └── yandex.json
│ └── 0.8.2/
│ └── yandex.json
├── provider_json_backup/
│ ├── alicloud.json
│ ├── archive.json
│ ├── arukas.json
│ ├── atlas.json
│ ├── aws.json
│ ├── azure.json
│ ├── azurerm.json
│ ├── bitbucket.json
│ ├── chef.json
│ ├── circonus.json
│ ├── clc.json
│ ├── cloudflare.json
│ ├── cloudstack.json
│ ├── cobbler.json
│ ├── consul.json
│ ├── datadog.json
│ ├── digitalocean.json
│ ├── dme.json
│ ├── dns.json
│ ├── dnsimple.json
│ ├── docker.json
│ ├── dyn.json
│ ├── external.json
│ ├── fastly.json
│ ├── github.json
│ ├── gitlab.json
│ ├── google.json
│ ├── grafana.json
│ ├── heroku.json
│ ├── http.json
│ ├── icinga2.json
│ ├── ignition.json
│ ├── influxdb.json
│ ├── kubernetes.json
│ ├── librato.json
│ ├── local.json
│ ├── logentries.json
│ ├── mailgun.json
│ ├── mysql.json
│ ├── newrelic.json
│ ├── nomad.json
│ ├── ns1.json
│ ├── null.json
│ ├── oneandone.json
│ ├── opc.json
│ ├── openstack.json
│ ├── opsgenie.json
│ ├── ovh.json
│ ├── packet.json
│ ├── pagerduty.json
│ ├── postgresql.json
│ ├── powerdns.json
│ ├── profitbricks.json
│ ├── rabbitmq.json
│ ├── rancher.json
│ ├── random.json
│ ├── rundeck.json
│ ├── scaleway.json
│ ├── softlayer.json
│ ├── spotinst.json
│ ├── statuscake.json
│ ├── template.json
│ ├── terraform.json
│ ├── tls.json
│ ├── triton.json
│ ├── ultradns.json
│ ├── vault.json
│ ├── vcd.json
│ └── vsphere.json
├── providers_list.txt
├── routine_update.rb
├── run-test
├── schemas-extractor/
│ └── schemas/
│ └── .gitkeep
├── syntax_checkers/
│ └── terraform/
│ ├── terraform_validate.vim
│ ├── tffilter.vim
│ └── tflint.vim
├── tags_urls.txt
├── test-vim-terraform-completion
├── tests/
│ ├── README.md
│ ├── data.vader
│ ├── module.vader
│ ├── modules/
│ │ ├── outputs.tf
│ │ └── variables.tf
│ ├── plug.vim
│ └── resource.vader
├── tests.vimrc
├── update_community_provider_md.rb
├── update_provider_md.rb
├── update_tfcompleterc.rb
├── update_versions.rb
├── utils/
│ ├── generate_provider_data
│ ├── get_doc
│ ├── lookup_attrs
│ └── terraform_validate_filter
└── version_dissect.rb
================================================
FILE CONTENTS
================================================
================================================
FILE: .gitignore
================================================
# Created by https://www.gitignore.io/api/ruby,vim,linux
### Linux ###
*~
# temporary files which can be created if a process still has a handle open of a deleted file
.fuse_hidden*
# KDE directory preferences
.directory
# Linux trash folder which might appear on any partition or disk
.Trash-*
# .nfs files are created when an open file is removed but is still being accessed
.nfs*
### Ruby ###
*.gem
*.rbc
/.config
/coverage/
/InstalledFiles
/pkg/
/spec/reports/
/spec/examples.txt
/test/tmp/
/test/version_tmp/
/tmp/
# Used by dotenv library to load environment variables.
# .env
## Specific to RubyMotion:
.dat*
.repl_history
build/
*.bridgesupport
build-iPhoneOS/
build-iPhoneSimulator/
## Specific to RubyMotion (use of CocoaPods):
#
# We recommend against adding the Pods directory to your .gitignore. However
# you should judge for yourself, the pros and cons are mentioned at:
# https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control
#
# vendor/Pods/
## Documentation cache and generated files:
/.yardoc/
/_yardoc/
/rdoc/
## Environment normalization:
/.bundle/
/vendor/bundle
/lib/bundler/man/
# for a library or gem, you might want to ignore these files since the code is
# intended to run in multiple environments; otherwise, check them in:
# Gemfile.lock
# .ruby-version
# .ruby-gemset
# unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
.rvmrc
### Vim ###
# swap
[._]*.s[a-v][a-z]
[._]*.sw[a-p]
[._]s[a-v][a-z]
[._]sw[a-p]
# session
Session.vim
# temporary
.netrwhist
# auto-generated tag files
tags
# End of https://www.gitignore.io/api/ruby,vim,linux
================================================
FILE: .gitmodules
================================================
[submodule "snippets"]
path = snippets
url = https://github.com/juliosueiras/vim-terraform-snippets
================================================
FILE: .tfcompleterc
================================================
acme=1.3.4
alicloud=1.52.2
archive=1.2.2
arukas=1.1.0
atlas=0.1.1
aws=2.21.1
azuread=0.5.1
azure=0.1.1
azurerm=1.32.0
azurestack=0.8.1
bigip=0.12.3
bitbucket=1.1.0
brightbox=1.2.0
chef=0.2.0
circonus=0.2.0
clc=0.1.0
cloudflare=1.16.1
cloudscale=2.0.0
cloudstack=0.3.0
cobbler=1.1.0
consul=2.5.0
datadog=2.1.0
digitalocean=1.5.0
dme=0.1.0
dns=2.2.0
dnsimple=0.2.0
docker=2.1.0
dyn=1.2.0
external=1.2.0
fastly=0.8.1
flexibleengine=1.6.0
github=2.2.0
gitlab=2.2.0
google=2.11.0
grafana=1.5.0
hcloud=1.11.0
hedvig=1.0.4
helm=0.10.0
heroku=2.1.0
http=1.1.1
huaweicloud=1.6.0
icinga2=0.2.0
ignition=1.1.0
influxdb=1.2.0
kubernetes=1.8.1
librato=0.1.0
linode=1.8.0
local=1.3.0
logentries=1.0.0
logicmonitor=1.2.1
mailgun=0.1.0
mysql=1.7.0
netlify=0.3.0
newrelic=1.5.1
nomad=1.4.0
ns1=1.4.1
nsxt=1.1.0
null=2.1.2
nutanix=1.0.1
oci=3.35.0
oneandone=1.3.0
opc=1.3.6
openstack=1.20.0
opentelekomcloud=1.10.0
opsgenie=0.1.0
oraclepaas=1.5.2
ovh=0.5.0
packet=2.2.1
pagerduty=1.3.0
panos=1.5.2
postgresql=1.1.0
powerdns=0.1.0
profitbricks=1.4.4
rabbitmq=1.1.0
rancher=1.4.0
random=2.1.2
rightscale=1.3.1
rundeck=0.3.0
runscope=0.6.0
scaleway=1.10.0
selectel=2.3.0
skytap=0.11.1
softlayer=0.0.1
spotinst=1.13.3
statuscake=1.0.0
telefonicaopencloud=1.0.0
template=2.1.2
tencentcloud=1.13.0
terraform=1.0.2
tfe=0.10.1
tls=2.0.1
triton=0.5.1
ucloud=1.11.1
ultradns=0.1.0
vault=2.1.0
vcd=2.3.0
vsphere=1.12.0
yandex=0.8.2
================================================
FILE: .travis.yml
================================================
sudo: required
language: ruby
rvm: 2.3.1
env:
- VIM_TYPE=nvim
- VIM_TYPE=vim
services:
- docker
before_script:
- git clone https://github.com/junegunn/vader.vim
script:
- ./test-vim-terraform-completion
================================================
FILE: CHANGELOG.md
================================================
# Changelog
## **Disclamier:** Have to mostly use asciinema due to my laptop take foerever to do gifs
## 2018-04-20
- Added Evaluation of Interpolation
[](https://asciinema.org/a/177322)
## 2018-02-23
- Added Resource/Data interpolation from other files
[](https://asciinema.org/a/S6x9eVEht2ppT5fMcS9IvLJiz)
## 2018-01-18
- Added version based completion
- Added Bots for auto update for provider(daily check)
- Fix several bugs relating to attribute subcompletion
## 2017-12-06
- Nested Block Completion
[](https://asciinema.org/a/151238)
## 2017-11-23
- Terraform Module Registry Name Completion
[](https://asciinema.org/a/azFU126p6SCkrOtuNWnSynyR0)
## 2017-11-22
- Terraform Module Registry support
[](https://asciinema.org/a/UMLMCyYmd3sY4uwEhzTKG2L1m)
## 2017-05-22
### New Feature
- Deoplete Support
[](https://asciinema.org/a/121802)
- Open Doc in a browser(need to make sure windows and mac work), key is `<leader>o`
## 2017-05-20
### New Feature
- Lookup Attribute Data
- If you have terraform.tfstate in your folder, then using `<leader>a` can show the data of the attribute
[](https://asciinema.org/a/121638)
## 2017-05-20
### Improvement
- Plan have color now

## 2017-05-18
### New Feature
- Run(`<leader>rr`) and Fold Output
[](https://asciinema.org/a/121068)
- Run as Async Job
[](https://asciinema.org/a/121097)
### Improvement
- Module completion for subpath of github/bitbucket
## 2017-05-15
### Remove
- Version based completion is remove due to load time, storage, and the docs are inconsistent
### Improvement
- All data and resources arguments have type with it now
- Block completion is complete , thanks to data from [VladRassokhin](https://github.com/VladRassokhin/)
## 2017-05-14
### New Features
- Basic Block Completion
- Functions Completion
- Added Basic Resource Arguments
### Improvement
- Much better attribute completion
[](https://asciinema.org/a/120505)
## 2017-05-09(5 am)
### New Feature
- Support for Neomake
## 2017-05-09(3 am)
[](https://asciinema.org/a/119739)
### New Feature
- Show docs for data/resource attribute
## 2017-05-08(10 pm)
### New Feature
- Module Attribute completion(Github online, and offline
### Improvement
- Fix data interpolation from ${[name]} to ${data.[name]}
- Fix module relative lookup(now it will look in the same folder as the editing tf file)
- Fine tune some provider scrapping, where name include in the resource link(like opc)
## 2017-05-08(6 am)
### New Feature
- Moudle GitHub Argument Completion(Working on offline and attribute completion
for module)
[](https://asciinema.org/a/119591)
## 2017-05-08(4 am)
### New Feature
- Show Docs
[](https://asciinema.org/a/119587)
## 2017-05-06(3 pm)
### New Feature
- Version based Completion
## 2017-05-06(5 am)
### New Feature
- Jump Reference for Resource/Data
[](https://asciinema.org/a/119371)
## 2017-05-06(2 am)
### New Feature
- Data Completion
[](https://asciinema.org/a/119362)
## 2017-05-04(3 am)
### Improvement
- Added Tagbar config for Terraform
## 2017-05-03(Night)
### Improvement for Repo
- Added Travis and added basic test using vader.vim
## 2017-05-03(Afternoon)
### Improvement
- Now resource completion have provider as well
[](https://asciinema.org/a/cavvbxhzvtbvqnofskolgugkr)
### New Feature
- New custom linter to filter `terraform validate` and `terraform plan` using to provide line number and error message for syntastic
- introduce `g:syntastic_terraform_tf_filter` variable in vimrc for enabling terraform plan , default is 0
[](https://asciinema.org/a/118915)
## 2017-05-03(Morning 2-4 AM)
### Improvement
- Interpolation of parameter completion is much better now
[](https://asciinema.org/a/aezk645gig5i9fw8z4ampaybq)
### New Feature
- There is variable completion now, it will get the root folder level variables.tf
- NOTE: There is still to be fix dealing with function like ${file()} etc
[](https://asciinema.org/a/dm4h6mwiv6n83pcebd15tvljl)
================================================
FILE: COMMUNITY_PROVIDER_VERSIONS.md
================================================
||||||
|---|---|---|---|---|
|[](https://github.com/vancluever/terraform-provider-acme)|[](https://github.com/vancluever/terraform-provider-acme)|[](https://github.com/GSLabDev/terraform-provider-ad)|[](https://github.com/akamai/terraform-provider-akamai)|[](https://github.com/zambien/terraform-provider-apigee)|
|[](https://github.com/atlassian/terraform-provider-artifactory)|[](https://github.com/bocodigitalmedia/terraform-provider-auth0)|[](https://github.com/avinetworks/terraform-provider-avi)|[](https://github.com/AviatrixSystems/terraform-provider-aviatrix)|[](https://github.com/cathive/terraform-provider-concourse)|
|[](https://github.com/Ashald/terraform-provider-consulacl)|[](https://github.com/nicolai86/terraform-provider-couchdb)|[](https://github.com/coreos/terraform-provider-ct)|[](https://github.com/gstruct/terraform-provider-dockermachine)|[](https://github.com/artisanofcode/terraform-provider-drone)|
|[](https://github.com/callensm/terraform-provider-dropbox)|[](https://github.com/rackn/terraform-provider-drp/)|[](https://github.com/josenk/terraform-provider-esxi)|[](https://github.com/tiramiseb/terraform-provider-gandi)|[](https://github.com/MikeSouza/terraform-provider-glue)|
|[](https://github.com/drewsonne/terraform-provider-gocd)|[](https://github.com/sethvargo/terraform-provider-googlecalendar)|[](https://github.com/DeviaVir/terraform-provider-gsuite)|[](https://github.com/mcuadros/terraform-provider-helm)|[](https://github.com/ribbybibby/terraform-provider-hiera)|
|[](https://github.com/GSLabDev/terraform-provider-httpfileupload)|[](https://github.com/IBM-Cloud/terraform-provider-ibm)|[](https://github.com/IBM-Cloud/terraform-provider-ibm)|[](https://github.com/sky-uk/terraform-provider-infoblox)|[](https://github.com/anubhavmishra/terraform-provider-jira)|
|[](https://github.com/Mongey/terraform-provider-kafka)|[](https://github.com/plmwong/terraform-provider-keboola)|[](https://github.com/ewilde/terraform-provider-kibana)|[](https://github.com/kevholditch/terraform-provider-kong)|[](https://github.com/sl1pm4t/terraform-provider-lxd)|
|[](https://github.com/coreos/terraform-provider-matchbox)|[](https://github.com/jgensler8/terraform-provider-minikube)|[](https://github.com/akshaykarle/terraform-provider-mongodbatlas)|[](https://github.com/src-d/terraform-provider-online-net)|[](https://github.com/Glympse/terraform-provider-nifi)|
|[](https://github.com/GSLabDev/terraform-provider-nsxv)|[](https://github.com/nutanix/terraform-provider-nutanix)|[](https://github.com/GSLabDev/terraform-provider-odl)|[](https://github.com/HewlettPackard/terraform-provider-oneview)|[](https://github.com/dikhan/terraform-provider-openapi)|
|[](https://github.com/iij/terraform-provider-p2pub)|[](https://github.com/juliosueiras/terraform-provider-packer)|[](https://github.com/camptocamp/terraform-provider-pass)|[](https://github.com/cloudamqp/terraform-provider)|[](https://github.com/cloudkarafka/terraform-provider)|
|[](https://github.com/cloudmqtt/terraform-provider)|[](https://github.com/elephantsql/terraform-provider)|[](https://github.com/geekmuse/jumpcloud-terraform-provider)|[](https://github.com/camptocamp/terraform-provider-puppetca)|[](https://github.com/camptocamp/terraform-provider-puppetdb)|
|[](https://github.com/yunify/terraform-provider-qingcloud)|[](https://github.com/juliosueiras/terraform-provider-razor)|[](https://github.com/frankfarrell/terraform-provider-redshift)|[](https://github.com/Mastercard/terraform-provider-restapi)|[](https://github.com/yamamoto-febc/terraform-provider-rke)|
|[](https://github.com/ewilde/terraform-provider-runscope)|[](https://github.com/sacloud/terraform-provider-sakuracloud)|[](https://github.com/GSLabDev/terraform-provider-scvmm)|[](https://github.com/jianyuan/terraform-provider-sentry)|[](https://github.com/coveo/terraform-provider-servicenow)|
|[](https://github.com/SewanDevs/terraform-provider-sewan)|[](https://github.com/Yelp/terraform-provider-signalform)|[](https://github.com/ShopRunner/terraform-provider-snowflake)|[](https://github.com/alexissavin/terraform-provider-solidserver)|[](https://github.com/Ashald/terraform-provider-stateful)|
|[](https://github.com/bocodigitalmedia/terraform-provider-transloadit)|[](https://github.com/GSLabDev/terraform-provider-vra)|[](https://github.com/PortOfPortland/terraform-provider-windns)|[](https://github.com/Ashald/terraform-provider-yaml)|[](https://github.com/cormacrelf/terraform-provider-zerotier)|
================================================
FILE: CONTRIBUTORS.md
================================================
# Contributors
- [Christopher Campanale](https://github.com/ccampanale)
- Creating the Dockerfile for the plugin
- [davewongillies](https://github.com/davewongillies)
- Integrated Ctags into the plugin
- [mtchavez](https://github.com/mtchavez)
- [barlik](https://github.com/barlik)
================================================
FILE: CUSTOM_PROVIDER.md
================================================
# Completion for Custom Provider
Due to unstable and unpredicted nature of unofficial providers, the result can be vary
1. clone the desired provider repo to GOPATH
2. copy generate-schema folder(can be located at the plugin's repo) with the template generate-schema.go(credit goes to [intellij-hcl](https://github.com/VladRassokhin/intellij-hcl) )
3. replace `<url-to-provider>` with go path to the provider, check main.go of the provider, if you are unsure, replace `<provider>` with provider name, `<version>` with the version that the provider currently on, and lastly `<plugin-path>` is the full path to plugin
4. go to vim-terraform-completion and run `ruby version_dissect.rb` , check `provider_json/<provider>` to ensure the completion is generated
5. add `<provider>=<version>` to the repo's .tfcompleterc or project's .tfcompleterc
## Video Instruction:
[](https://asciinema.org/a/WlAz2luy76HLNrtVKHki6XCd8)
================================================
FILE: DEMO.md
================================================
# Asciinema Demos
## Linter Demo
[](https://asciinema.org/a/118441)
## Demo
[](https://asciinema.org/a/118064)
## New Demo with more completion
[](https://asciinema.org/a/118207)
## Paramter Completion
[](https://asciinema.org/a/118243)
## Info included
[](https://asciinema.org/a/118394)
================================================
FILE: Dockerfile
================================================
FROM juliosueiras/vim-terraform-completion-base:latest
USER root
RUN git clone https://github.com/junegunn/vader.vim
ADD tests/ tests/
COPY tests.vimrc tests.vimrc
ADD . vim-terraform-completion/
ENTRYPOINT ["/bin/bash"]
================================================
FILE: Dockerfile_base
================================================
FROM alpine:3.8 AS vim_ruby
RUN apk add --no-cache \
build-base \
ctags \
git \
libx11-dev \
libxpm-dev \
libxt-dev \
make \
ncurses-dev \
ruby \
ruby-dev
RUN git clone https://github.com/vim/vim \
&& cd vim \
&& ./configure \
--disable-gui \
--disable-netbeans \
--enable-multibyte \
--enable-rubyinterp \
--with-ruby-command=/usr/bin/ruby \
--with-features=big \
&& make install
FROM alpine:3.8
COPY --from=vim_ruby /usr/local/bin/ /usr/local/bin
COPY --from=vim_ruby /usr/local/share/vim/ /usr/local/share/vim/
RUN apk add bash neovim ruby gcc make git unzip ruby-rdoc ruby-dev terraform cmake build-base diffutils libice libsm libx11 libxt ncurses
RUN gem install neovim
================================================
FILE: Gemfile
================================================
source 'https://rubygems.org'
gem 'nokogiri'
gem 'rdoc'
================================================
FILE: LICENSE.md
================================================
The MIT License (MIT)
Copyright (c) 2017 Julio Tain Sueiras
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
================================================
FILE: PROVIDER_VERSIONS.md
================================================
||||||
|---|---|---|---|---|
|[](https://github.com/terraform-providers/terraform-provider-acme/blob/master/CHANGELOG.md)|[](https://github.com/terraform-providers/terraform-provider-alicloud/blob/master/CHANGELOG.md)|[](https://github.com/terraform-providers/terraform-provider-archive/blob/master/CHANGELOG.md)|[](https://github.com/terraform-providers/terraform-provider-arukas/blob/master/CHANGELOG.md)|[](https://github.com/terraform-providers/terraform-provider-atlas/blob/master/CHANGELOG.md)|
|[](https://github.com/terraform-providers/terraform-provider-aws/blob/master/CHANGELOG.md)|[](https://github.com/terraform-providers/terraform-provider-azuread/blob/master/CHANGELOG.md)|[](https://github.com/terraform-providers/terraform-provider-azure-classic/blob/master/CHANGELOG.md)|[](https://github.com/terraform-providers/terraform-provider-azurerm/blob/master/CHANGELOG.md)|[](https://github.com/terraform-providers/terraform-provider-azurestack/blob/master/CHANGELOG.md)|
|[](https://github.com/terraform-providers/terraform-provider-bigip/blob/master/CHANGELOG.md)|[](https://github.com/terraform-providers/terraform-provider-bitbucket/blob/master/CHANGELOG.md)|[](https://github.com/terraform-providers/terraform-provider-brightbox/blob/master/CHANGELOG.md)|[](https://github.com/terraform-providers/terraform-provider-chef/blob/master/CHANGELOG.md)|[](https://github.com/terraform-providers/terraform-provider-circonus/blob/master/CHANGELOG.md)|
|[](https://github.com/terraform-providers/terraform-provider-clc/blob/master/CHANGELOG.md)|[](https://github.com/terraform-providers/terraform-provider-cloudflare/blob/master/CHANGELOG.md)|[](https://github.com/terraform-providers/terraform-provider-cloudscale/blob/master/CHANGELOG.md)|[](https://github.com/terraform-providers/terraform-provider-cloudstack/blob/master/CHANGELOG.md)|[](https://github.com/terraform-providers/terraform-provider-cobbler/blob/master/CHANGELOG.md)|
|[](https://github.com/terraform-providers/terraform-provider-consul/blob/master/CHANGELOG.md)|[](https://github.com/terraform-providers/terraform-provider-datadog/blob/master/CHANGELOG.md)|[](https://github.com/terraform-providers/terraform-provider-digitalocean/blob/master/CHANGELOG.md)|[](https://github.com/terraform-providers/terraform-provider-dme/blob/master/CHANGELOG.md)|[](https://github.com/terraform-providers/terraform-provider-dns/blob/master/CHANGELOG.md)|
|[](https://github.com/terraform-providers/terraform-provider-dnsimple/blob/master/CHANGELOG.md)|[](https://github.com/terraform-providers/terraform-provider-docker/blob/master/CHANGELOG.md)|[](https://github.com/terraform-providers/terraform-provider-dyn/blob/master/CHANGELOG.md)|[](https://github.com/terraform-providers/terraform-provider-external/blob/master/CHANGELOG.md)|[](https://github.com/terraform-providers/terraform-provider-fastly/blob/master/CHANGELOG.md)|
|[](https://github.com/terraform-providers/terraform-provider-flexibleengine/blob/master/CHANGELOG.md)|[](https://github.com/terraform-providers/terraform-provider-github/blob/master/CHANGELOG.md)|[](https://github.com/terraform-providers/terraform-provider-gitlab/blob/master/CHANGELOG.md)|[](https://github.com/terraform-providers/terraform-provider-google/blob/master/CHANGELOG.md)|[](https://github.com/terraform-providers/terraform-provider-google-beta/blob/master/CHANGELOG.md)|
|[](https://github.com/terraform-providers/terraform-provider-grafana/blob/master/CHANGELOG.md)|[](https://github.com/terraform-providers/terraform-provider-hcloud/blob/master/CHANGELOG.md)|[](https://github.com/terraform-providers/terraform-provider-hedvig/blob/master/CHANGELOG.md)|[](https://github.com/terraform-providers/terraform-provider-helm/blob/master/CHANGELOG.md)|[](https://github.com/terraform-providers/terraform-provider-heroku/blob/master/CHANGELOG.md)|
|[](https://github.com/terraform-providers/terraform-provider-http/blob/master/CHANGELOG.md)|[](https://github.com/terraform-providers/terraform-provider-huaweicloud/blob/master/CHANGELOG.md)|[](https://github.com/terraform-providers/terraform-provider-icinga2/blob/master/CHANGELOG.md)|[](https://github.com/terraform-providers/terraform-provider-ignition/blob/master/CHANGELOG.md)|[](https://github.com/terraform-providers/terraform-provider-influxdb/blob/master/CHANGELOG.md)|
|[](https://github.com/terraform-providers/terraform-provider-kubernetes/blob/master/CHANGELOG.md)|[](https://github.com/terraform-providers/terraform-provider-librato/blob/master/CHANGELOG.md)|[](https://github.com/terraform-providers/terraform-provider-linode/blob/master/CHANGELOG.md)|[](https://github.com/terraform-providers/terraform-provider-local/blob/master/CHANGELOG.md)|[](https://github.com/terraform-providers/terraform-provider-logentries/blob/master/CHANGELOG.md)|
|[](https://github.com/terraform-providers/terraform-provider-logicmonitor/blob/master/CHANGELOG.md)|[](https://github.com/terraform-providers/terraform-provider-mailgun/blob/master/CHANGELOG.md)|[](https://github.com/terraform-providers/terraform-provider-mysql/blob/master/CHANGELOG.md)|[](https://github.com/terraform-providers/terraform-provider-netlify/blob/master/CHANGELOG.md)|[](https://github.com/terraform-providers/terraform-provider-newrelic/blob/master/CHANGELOG.md)|
|[](https://github.com/terraform-providers/terraform-provider-nomad/blob/master/CHANGELOG.md)|[](https://github.com/terraform-providers/terraform-provider-ns1/blob/master/CHANGELOG.md)|[](https://github.com/terraform-providers/terraform-provider-nsxt/blob/master/CHANGELOG.md)|[](https://github.com/terraform-providers/terraform-provider-null/blob/master/CHANGELOG.md)|[](https://github.com/terraform-providers/terraform-provider-nutanix/blob/master/CHANGELOG.md)|
|[](https://github.com/terraform-providers/terraform-provider-oci/blob/master/CHANGELOG.md)|[](https://github.com/terraform-providers/terraform-provider-oneandone/blob/master/CHANGELOG.md)|[](https://github.com/terraform-providers/terraform-provider-opc/blob/master/CHANGELOG.md)|[](https://github.com/terraform-providers/terraform-provider-openstack/blob/master/CHANGELOG.md)|[](https://github.com/terraform-providers/terraform-provider-opentelekomcloud/blob/master/CHANGELOG.md)|
|[](https://github.com/terraform-providers/terraform-provider-opsgenie/blob/master/CHANGELOG.md)|[](https://github.com/terraform-providers/terraform-provider-oraclepaas/blob/master/CHANGELOG.md)|[](https://github.com/terraform-providers/terraform-provider-ovh/blob/master/CHANGELOG.md)|[](https://github.com/terraform-providers/terraform-provider-packet/blob/master/CHANGELOG.md)|[](https://github.com/terraform-providers/terraform-provider-pagerduty/blob/master/CHANGELOG.md)|
|[](https://github.com/terraform-providers/terraform-provider-panos/blob/master/CHANGELOG.md)|[](https://github.com/terraform-providers/terraform-provider-postgresql/blob/master/CHANGELOG.md)|[](https://github.com/terraform-providers/terraform-provider-powerdns/blob/master/CHANGELOG.md)|[](https://github.com/terraform-providers/terraform-provider-profitbricks/blob/master/CHANGELOG.md)|[](https://github.com/terraform-providers/terraform-provider-rabbitmq/blob/master/CHANGELOG.md)|
|[](https://github.com/terraform-providers/terraform-provider-rancher/blob/master/CHANGELOG.md)|[](https://github.com/terraform-providers/terraform-provider-random/blob/master/CHANGELOG.md)|[](https://github.com/terraform-providers/terraform-provider-rightscale/blob/master/CHANGELOG.md)|[](https://github.com/terraform-providers/terraform-provider-rundeck/blob/master/CHANGELOG.md)|[](https://github.com/terraform-providers/terraform-provider-runscope/blob/master/CHANGELOG.md)|
|[](https://github.com/terraform-providers/terraform-provider-scaleway/blob/master/CHANGELOG.md)|[](https://github.com/terraform-providers/terraform-provider-selectel/blob/master/CHANGELOG.md)|[](https://github.com/terraform-providers/terraform-provider-skytap/blob/master/CHANGELOG.md)|[](https://github.com/terraform-providers/terraform-provider-softlayer/blob/master/CHANGELOG.md)|[](https://github.com/terraform-providers/terraform-provider-spotinst/blob/master/CHANGELOG.md)|
|[](https://github.com/terraform-providers/terraform-provider-statuscake/blob/master/CHANGELOG.md)|[](https://github.com/terraform-providers/terraform-provider-telefonicaopencloud/blob/master/CHANGELOG.md)|[](https://github.com/terraform-providers/terraform-provider-template/blob/master/CHANGELOG.md)|[](https://github.com/terraform-providers/terraform-provider-tencentcloud/blob/master/CHANGELOG.md)|[](https://github.com/terraform-providers/terraform-provider-terraform/blob/master/CHANGELOG.md)|
|[](https://github.com/terraform-providers/terraform-provider-tfe/blob/master/CHANGELOG.md)|[](https://github.com/terraform-providers/terraform-provider-tls/blob/master/CHANGELOG.md)|[](https://github.com/terraform-providers/terraform-provider-triton/blob/master/CHANGELOG.md)|[](https://github.com/terraform-providers/terraform-provider-ucloud/blob/master/CHANGELOG.md)|[](https://github.com/terraform-providers/terraform-provider-ultradns/blob/master/CHANGELOG.md)|
|[](https://github.com/terraform-providers/terraform-provider-vault/blob/master/CHANGELOG.md)|[](https://github.com/terraform-providers/terraform-provider-vcd/blob/master/CHANGELOG.md)|[](https://github.com/terraform-providers/terraform-provider-vsphere/blob/master/CHANGELOG.md)|[](https://github.com/terraform-providers/terraform-provider-yandex/blob/master/CHANGELOG.md)|
================================================
FILE: README.md
================================================
# (Neo)Vim Terraform Completion with Linter - [Demos](./DEMO.md)
**IMPORTANT: This plugin now allow version based completion**
## [Changelog](./CHANGELOG.md)
## [Provider Versions](./PROVIDER_VERSIONS.md)
## [Community Provider Versions](./COMMUNITY_PROVIDER_VERSIONS.md)
[](https://travis-ci.org/juliosueiras/vim-terraform-completion)
[](https://travis-ci.org/juliosueiras/vim-terraform-completion)

[](https://gitter.im/juliosueiras/vim-terraform-completion?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
[](https://app.fossa.io/projects/git%2Bgithub.com%2Fjuliosueiras%2Fvim-terraform-completion?ref=badge_shield)
**Terraform Module is supported(though there might be bugs)**
## Overview
[](https://asciinema.org/a/119610)
- [Vim Terraform Completion with Linter - Demos](#vim-terraform-completion-with-linter---demosdemomd)
* [Changelog](#changelog)
* [Dependencies](#dependencies)
* [Installation](#installation)
+ [NeoBundle](#neobundle)
+ [Vim-Plug](#vim-plug)
+ [Minimal Configuration](#minimal-configuration)
+ [Deoplete config](#deoplete-config)
+ [Version config](#version-config-file)
+ [Custom Provider](./CUSTOM_PROVIDER.md)
- [Community Providers](#community-providers)
- [Specific Providers Config](#specific-providers)
* [General Todo](#general-todo)
* [Todo for Terraform completion](#todo-for-terraform-completion)
* [Todo for HCL](#todo-for-hcl)
* [Todo for Improvement](#todo-for-improvement)
* [Credits](#credits)
* [Contributors](#contributors)
### Block Completions
(R) for Require , (O) for Optional and (B) for Block


## Dependencies
- [vim-terraform](https://github.com/hashivim/vim-terraform) (For FileType)
(Optional not require for completion)
- [vim-syntastic](https://github.com/vim-syntastic/syntastic) (Only for Linter)
- [neomake](https://github.com/neomake/neomake) (Only for Linter, Neovim)
- [Deoplete](https://github.com/Shougo/deoplete.nvim) (Neovim only, for completion)
- Ctags & [tagbar](https://github.com/majutsushi/tagbar) (Optional for Tag Sidebar)
## Installation
**Require `+ruby` or `+ruby/dyn` for vim & json gem for ruby as well**
Snippets completion is done through `<C-X><C-K>`
### NeoBundle
```vim
NeoBundle 'hashivim/vim-terraform'
NeoBundle 'vim-syntastic/syntastic'
NeoBundle 'juliosueiras/vim-terraform-completion'
```
### Vim-Plug
```vim
Plug 'hashivim/vim-terraform'
Plug 'vim-syntastic/syntastic'
Plug 'juliosueiras/vim-terraform-completion'
```
### Minimal Configuration
```vim
" Minimal Configuration
set nocompatible
syntax on
filetype plugin indent on
call plug#begin('~/.vim/plugged')
" (Optinal) for Tag Sidebar
" Plug 'majutsushi/tagbar'
Plug 'hashivim/vim-terraform'
Plug 'vim-syntastic/syntastic'
Plug 'juliosueiras/vim-terraform-completion'
call plug#end()
" Syntastic Config
set statusline+=%#warningmsg#
set statusline+=%{SyntasticStatuslineFlag()}
set statusline+=%*
let g:syntastic_always_populate_loc_list = 1
let g:syntastic_auto_loc_list = 1
let g:syntastic_check_on_open = 1
let g:syntastic_check_on_wq = 0
" (Optional)Remove Info(Preview) window
set completeopt-=preview
" (Optional)Hide Info(Preview) window after completions
autocmd CursorMovedI * if pumvisible() == 0|pclose|endif
autocmd InsertLeave * if pumvisible() == 0|pclose|endif
" (Optional) Enable terraform plan to be include in filter
let g:syntastic_terraform_tffilter_plan = 1
" (Optional) Default: 0, enable(1)/disable(0) plugin's keymapping
let g:terraform_completion_keys = 1
" (Optional) Default: 1, enable(1)/disable(0) terraform module registry completion
let g:terraform_registry_module_completion = 0
```
## Deoplete config
put this in your init.vim
```vim
let g:deoplete#omni_patterns = {}
let g:deoplete#omni_patterns.terraform = '[^ *\t"{=$]\w*'
let g:deoplete#enable_at_startup = 1
call deoplete#initialize()
```
**NOTE: For newer version of deoplete if the above doesn't work**
```vim
let g:deoplete#omni_patterns = {}
call deoplete#custom#option('omni_patterns', {
\ 'complete_method': 'omnifunc',
\ 'terraform': '[^ *\t"{=$]\w*',
\})
call deoplete#initialize()
```
## Version config file
by default , all providers uses the latest version, but you can add a file call `.tfcompleterc` under working directory, and content can be this:
```
vsphere=1.0.3
aws=0.1.0
```
using the syatax of `<provider>=<version>`
*Demo:*
[](https://asciinema.org/a/157636)
## Community Providers
By default no community providers is enable, to use one, first refer to COMMUNITY_PROVIDER_VERSIONS.md , then add a `.tfcompleterc` to your current working dir , for ex. to use Generic REST Api Provider, the .tfcompleterc would look like
```
restapi=master
```
## Specific Providers
### Google Beta Provider
To use completion for google beta provider, please use `.tfcompleterc` and put `google=beta_<version>`
## General Todo
<details>
<summary>Todolist</summary>
- [X] Adapt to Upcoming terraform 0.10
- [X] Added a bot for auto pushing of new provider version
- [ ] (WIP) Refactoring Regex for linter and completion, and Trying out on api based(so it can integrade with other editor) solution
- [ ] (WIP) More test cases
- [x] Support for Neomake(Require further testing)
- [X] Run terraform plan and output to a new window(`<leader>rr`)
- [X] Async Run support(For Neovim/Vim 8)
- [ ] Move regex code to a json(for easier extension)
- [x] Test from zero to useful setup using Docker
- [x] Jump Reference (Ctrl-L first time to jump to resource definition, second time
on the same line to jump back)
- [x] Show Doc (Ctrl-K)
- [x] Provide config and example
- [x] Integrate Basic `terraform validate` and `tflint` into Synstatic
- [x] Added a custom linter for providing a better error
- [ ] (WIP) Better linter
- [ ] (WIP) Full Snippets
</details>
**NOTE:** enabling deep check for tflint can be a bit slow
**NOTE:** To use `tffilter` please add `export PATH=$PATH:/path/to/this/plugin/bin` to your bashrc or zshrc
[Demo of the linter](https://asciinema.org/a/118441)
## Todo for Terraform completion
<details>
<summary>Todolist</summary>
- [X] (Require more work) Lookup Attributes data using terraform.tfstate
- [X] Evaluate Interpolation
- [ ] (WIP) Custom Provider completion, might do Rest API style due to unstable custom provider
- [ ] Provider
- [x] Completion for functions(file,etc) and basic resource arguments(count,lifecyle, etc)
- [x] Module (Make sure you run `terraform get` beforehand)
- [x] Data
- [x] Resource(with Provider)
- [x] Parameter
- [x] Adding Info to Argument and Attribute(Type not including ,since Info
already indicate it)
- [x] Variable
- [ ] Cleaner code
- [x] local/offline
- [x] Add completion tags, ingress, and other subblock
- [ ] Further seperate data source from resource
</details>
## Todo for HCL
- [ ] Add Completion for hcl
- [X] Completion for Sublock(Indicate by `Type(B)` )
## Todo for Improvement
- [X] Add Travis-CI for testing, and ensuring the completion is outputing the right completion
- [X] Look into the new module registry (Now support module name completion)
- [X] Add config for allowing multiple version for providers
## Credits
- Provider Model Extraction script adapted from [Intellij-hcl](https://github.com/VladRassokhin/intellij-hcl)
- Completion data is from Terraform Official Documentation and Model data from [Intellij-HCL](https://github.com/VladRassokhin/intellij-hcl/)
- Folding adapted from [vim-terraform](https://github.com/hashivim/vim-terraform)
## [Contributors](./CONTRIBUTORS.md)
## License
[](https://app.fossa.io/projects/git%2Bgithub.com%2Fjuliosueiras%2Fvim-terraform-completion?ref=badge_large)
================================================
FILE: addon-info.json
================================================
{
"name": "vim-terraform-completion",
"description": "A (Neo)Vim AutoCompletion Plugin for HashiCorp's Terraform",
"author": "juliosueiras",
"dependencies": {
"vim-terraform": {"type": "git", "url": "git://github.com/hashivim/vim-terraform"}
}
}
================================================
FILE: autoload/terraformcomplete.vim
================================================
if !has("ruby") && !has("ruby/dyn")
finish
endif
if exists('g:syntastic_extra_filetypes')
call add(g:syntastic_extra_filetypes, 'terraform')
else
let g:syntastic_extra_filetypes = ['terraform']
endif
if exists('g:loaded_neomake')
if !exists('g:neomake_terraform_tffilter_plan')
let g:neomake_terraform_tffilter_plan = 0
endif
if g:neomake_terraform_tffilter_plan == 0
let args = ['%:p']
else
let args = ['%:p','--with-plan']
endif
let g:neomake_terraform_terraform_validate_maker = {
\ 'exe' : 'terraform',
\ 'append_file': 0,
\ 'cwd': '%:p:h',
\ 'args': ['validate', '-no-color'],
\ 'errorformat': 'Error\ loading\ files\ Error\ parsing %f:\ At\ %l:%c:\ %m'
\ }
let g:neomake_terraform_tffilter_maker = {
\ 'exe': 'tffilter',
\ 'append_file': 0,
\ 'cwd': '%:p:h',
\ 'args': args,
\ 'errorformat': '%f:%l:%m'
\ }
let g:neomake_terraform_tflint_maker = {
\ 'exe' : 'tflint',
\ 'append_file': 0,
\ 'cwd': '%:p:h',
\ 'args': [],
\ 'errorformat': '%+P%f,%p%t%*[^:]:%l %m,%-Q'
\ }
let g:neomake_terraform_enabled_makers = ['terraform_validate', 'tflint', 'tffilter']
endif
let s:path = fnamemodify(resolve(expand('<sfile>:p')), ':h')
""
" Function to eval interpolation
function! terraformcomplete#EvalInter()
let old_pos = getpos(".")
execute 'normal! t}'
if strpart(getline(".") , 0 , getpos(".")[2]) =~ ".*{"
let a_curr = strpart(getline("."),0, getpos(".")[2])
let a_pair_text = split(a_curr, "${")[-1]
call setpos('.', old_pos)
botright new
setlocal buftype=nofile bufhidden=wipe nobuflisted noswapfile nowrap
ruby <<EOF
require 'tempfile'
result = `terraform console <<EOE 2>&1
#{Vim::evaluate("a_pair_text")}
EOE
`
file = Tempfile.new('tfconsole')
begin
file.write(result)
ensure
file.close
Vim::command("read #{file.path}")
file.unlink # deletes the temp file
end
EOF
setlocal nomodifiable
endif
endfunc
""
" Function to open the doc in browser
function! terraformcomplete#OpenDoc()
try
let a_provider = terraformcomplete#GetProvider()
let a_resource = terraformcomplete#GetResource()
let a_arg = matchlist(getline("."), '\s*\([^ ]*\)\s*=\?', '')
if len(a_arg) >= 2
let a_arg = a_arg[1]
else
let a_arg = ''
endif
if a_provider == "digitalocean"
let a_provider = "do"
endif
let a_link = 'https://www.terraform.io/docs/providers/' . a_provider
if terraformcomplete#GetType() ==? 'resource'
let a_link .= '/r'
else
let a_link .= '/d'
endif
let a_link .= '/' . a_resource . '.html\#' . a_arg
"(Windows) cmd /c start filename_or_URL
if system('uname -s') =~ 'Darwin'
silent! execute ':!open ' . a_link
silent! execute ':redraw!'
else
silent! execute ':!xdg-open ' . a_link
silent! execute ':redraw!'
endif
catch
endtry
endfunction
function! terraformcomplete#OutputFold()
let curr_line = getline(v:lnum)
if match(curr_line, '-/+ .*') >= 0
return ">1"
elseif match(curr_line, '^\* .*') >= 0
return ">1"
elseif match(curr_line, '^+ .*') >= 0
return ">1"
elseif match(curr_line, '^- .*') >= 0
return ">1"
elseif match(curr_line, '\~ .*') >= 0
return ">1"
else
return "="
end
endfunction
function! terraformcomplete#NeovimRunHandler(job_id, data, event) dict
if a:event == 'stdout'
elseif a:event == 'stderr'
else
let file = expand('%')
botright new
execute ':r ' . g:planOutputFile
setlocal buftype=nofile
setlocal bufhidden=hide
setlocal nowrap
setlocal noswapfile
setlocal readonly
setlocal foldmethod=expr
setlocal foldexpr=terraformcomplete#OutputFold()
syntax match addedItem '^+ .*'
syntax match removedItem '^- .*'
syntax match recreateItem '^-/+ .*'
syntax match changedItem '^\~ .*'
highlight addedItem guifg=#409900
highlight removedItem guifg=#BC4C4C
highlight recreateItem guifg=#409900
highlight changedItem guifg=#FFAE19
execute 'normal! GG'
noremap <silent><buffer> q :q<CR>
unlet g:planOutputFile
endif
endfunction
fun! terraformcomplete#NeovimRun()
let s:callbacks = {
\ 'on_stdout': function('terraformcomplete#NeovimRunHandler'),
\ 'on_stderr': function('terraformcomplete#NeovimRunHandler'),
\ 'on_exit': function('terraformcomplete#NeovimRunHandler')
\ }
if exists('g:planOutputFile')
echo 'Already running Plan in background'
else
echo 'Running Plan in background'
let g:planOutputFile = tempname()
let job1 = jobstart(['/bin/sh', '-c', 'terraform plan -input=false -no-color &> ' . g:planOutputFile ], extend({'shell': ''}, s:callbacks))
endif
endfun
function! terraformcomplete#AsyncRunHandler(channel)
let file = expand('%')
botright new
execute ':r ' . g:planOutputFile
setlocal buftype=nofile
setlocal bufhidden=hide
setlocal nowrap
setlocal noswapfile
setlocal readonly
setlocal foldmethod=expr
setlocal foldexpr=terraformcomplete#OutputFold()
syntax match addedItem '^+ .*'
syntax match removedItem '^- .*'
syntax match recreateItem '^-/+ .*'
syntax match changedItem '^\~ .*'
highlight addedItem guifg=#409900
highlight removedItem guifg=#BC4C4C
highlight recreateItem guifg=#409900
highlight changedItem guifg=#FFAE19
execute 'normal! GG'
noremap <silent><buffer> q :q<CR>
unlet g:planOutputFile
endfunction
fun! terraformcomplete#AsyncRun()
if v:version < 800
echoerr 'AsyncRun requires VIM version 8 or higher'
return
endif
if exists('g:planOutputFile')
echo 'Already running Plan in background'
else
echo 'Running Plan in background'
let g:planOutputFile = tempname()
call job_start(["/bin/sh", "-c", "terraform plan -input=false -no-color &> " . g:planOutputFile], {'close_cb': 'terraformcomplete#AsyncRunHandler'})
endif
endfun
fun! terraformcomplete#Run()
let file = expand('%')
botright new
setlocal buftype=nofile
setlocal bufhidden=hide
setlocal nowrap
setlocal noswapfile
setlocal readonly
silent execute ':r!terraform plan -no-color -input=false'
setlocal foldmethod=expr
setlocal foldexpr=terraformcomplete#OutputFold()
syntax match addedItem '^+ .*'
syntax match removedItem '^- .*'
syntax match recreateItem '^-/+ .*'
syntax match changed2Item '^~ .*'
highlight addedItem guifg=#409900
highlight removedItem guifg=#BC4C4C
highlight recreateItem guifg=#409900
highlight changedItem guifg=#FFAE19
noremap <silent><buffer> q :q<CR>
endfunc
let s:oldpos = []
function! terraformcomplete#JumpRef()
try
let old_pos = getpos(".")
if strpart(getline("."),0, getpos(".")[2]) =~ ".*{"
execute 'normal! t}'
let a_curr = strpart(getline("."),0, getpos(".")[2])
let a_attr = split(split(a_curr, "${")[-1], '\.')
call setpos('.', old_pos)
let s:oldpos = getpos('.')
if a_attr[0] == 'var'
call search('\s*variable\s*"' . a_attr[1] . '".*')
else
if a_attr[0] == "data"
call search('.*\s*"' . a_attr[1] . '"\s*"' . a_attr[2] . '".*')
else
call search('.*\s*"' . a_attr[0] . '"\s*"' . a_attr[1] . '".*')
endif
end
echo 'Jump to ' . a_attr[0] . '.' . a_attr[1]
else
call setpos('.', s:oldpos)
echo 'Jumping Back'
let s:oldpos = []
end
catch
endtry
endfunction
function! terraformcomplete#LookupAttr()
" TODO: Improve capture of interpolation
" let a_curr = expand("<cWORD>")
" ruby <<EOF
" temp = VIM::evaluate('a_curr')
" if temp[-1] != '.'
" temp = temp[0..-2]
" end
" if temp.match(/\${.*[^\w.-](?:(?![^\w.-]))(.*\.)[\)}]/) != nil
" res = temp.match(/\${.*[^\w.-](?:(?![^\w.-]))(.*\.)[\)}]/)[1]
" elsif temp.match(/.*\${(.*\.)}/) != nil
" res = temp.match(/.*\${(.*\.)}/)[1]
" end
" VIM::command("let a_temp_attr = '#{res}'")
" EOF
try
let a_curr_word = expand("<cWORD>")
if a_curr_word =~ '${.*}'
let a_word_array = split(matchlist(a_curr_word, '\v\$\{(.*)\}')[1], '\.')
if a_word_array[0] == 'data'
let a_look_for = a_word_array[0] . '.' . a_word_array[1] . '.' . a_word_array[2]
if len(a_word_array) > 4
let a_look_attr = a_word_array[3] . '.' . a_word_array[4]
else
let a_look_attr = a_word_array[3]
endif
else
let a_look_for = a_word_array[0] . '.' . a_word_array[1]
let a_look_attr = a_word_array[2]
endif
echo system(s:path . '/../utils/lookup_attrs ' . expand("%:p:h") . ' ' . a_look_for . ' ' . a_look_attr)
endif
catch
endtry
endfunction
function! terraformcomplete#GetDoc()
let s:curr_pos = getpos('.')
if getline(".") !~# '^\s*\(resource\|data\)\s*"'
execute '?\s*\(resource\|data\)\s*"'
endif
let a_provider = split(split(substitute(getline("."),'"', '', ''))[1], "_")[0]
let a_resource = substitute(split(split(getline("."))[1], a_provider . "_")[1], '"','','')
if getline(".") =~ '^data.*'
let s:type = 'datas'
else
let s:type = 'resources'
end
call setpos('.', s:curr_pos)
let a_curr_word = expand("<cWORD>")
let a_search_word = ''
let a_word_array = []
if a_curr_word =~ '${.*}'
let a_word_array = split(matchlist(a_curr_word, '\v\$\{(.*)\}')[1], '\.')
if a_word_array[0] == 'data'
let a_provider = split(a_word_array[1], "_")[0]
let a_resource = split(a_word_array[1], a_provider . "_")[0]
let s:type = 'datas'
let a_res_type = 'attributes'
let a_search_word = a_word_array[3]
else
let a_provider = split(a_word_array[0], "_")[0]
let a_resource = split(a_word_array[0], a_provider . "_")[0]
let s:type = 'resources'
let a_res_type = 'attributes'
let a_search_word = a_word_array[2]
endif
else
let a_search_word = a_curr_word
let a_res_type = 'arguments'
endif
let res = system(s:path . '/../utils/get_doc ' . s:path . " '" . a_search_word . "' " . a_provider . " " . a_resource . " " . s:type . " " . a_res_type)
echo substitute(res, '\n', '', '')
endfunction
fun! terraformcomplete#GetResource()
let s:curr_pos = getpos('.')
if getline(".") !~# '^\s*\(resource\|data\)\s*"'
execute '?^\s*\(resource\|data\)\s*"'
endif
let a_provider = split(split(substitute(getline("."),'"', '', ''))[1], "_")[0]
let a_resource = substitute(split(split(getline("."))[1], a_provider . "_")[1], '"','','')
call setpos('.', s:curr_pos)
unlet s:curr_pos
return a_resource
endfun
fun! terraformcomplete#GetType()
let s:curr_pos = getpos('.')
if getline(".") !~# '^\s*\(resource\|data\)\s*"'
execute '?\s*\(resource\|data\)\s*"'
endif
if getline(".") =~? "resource"
let a_res = "resource"
else
let a_res = "data"
endif
call setpos(".", s:curr_pos)
unlet s:curr_pos
return a_res
endfun
fun! terraformcomplete#GetProvider()
let s:curr_pos = getpos('.')
if getline(".") !~# '^\s*\(resource\|data\)\s*"'
execute '?^\s*\(resource\|data\)\s*"'
endif
let a_provider = split(split(substitute(getline("."),'"', '', ''))[1], "_")[0]
call setpos(".", s:curr_pos)
unlet s:curr_pos
return a_provider
endfun
function! terraformcomplete#rubyComplete(ins, provider, resource, attribute, data_or_resource, block_word)
let s:curr_pos = getpos('.')
let a_res = []
let a_resource_line = getline(s:curr_pos[1]) =~ "^[ ]*resource"
let a_data_line = getline(s:curr_pos[1]) =~ "^[ ]*data"
let a_provider_line = (strpart(getline("."),0, getpos(".")[2]) =~ '^[ ]*\(resource\|data\)[ ]*"\%["]$' || getline(s:curr_pos[1]) =~ "provider")
ruby << EOF
require 'json'
def terraform_complete(provider, resource)
begin
data = ''
if VIM::evaluate('a_provider_line') == 0 then
if File.exists? "#{VIM::evaluate('s:path')}/../provider_json/#{provider}/#{VIM::evaluate("g:terraform_versions_config")[provider]}/#{provider}.json"
File.open("#{VIM::evaluate('s:path')}/../provider_json/#{provider}/#{VIM::evaluate("g:terraform_versions_config")[provider]}/#{provider}.json", "r") do |f|
f.each_line do |line|
data = line
end
end
else
File.open("#{VIM::evaluate('s:path')}/../community_provider_json/#{provider}/#{VIM::evaluate("g:terraform_versions_config")[provider]}/#{provider}.json", "r") do |f|
f.each_line do |line|
data = line
end
end
end
parsed_data = JSON.parse(data)
block_word = VIM::evaluate('a:block_word')
if VIM::evaluate('a:attribute') == "true" then
if VIM::evaluate('a:data_or_resource') == 0 then
if block_word == "" then
result = parsed_data['datas'][resource]["attributes"]
else
result = parsed_data['datas'][resource]["attributes"]
for r in result
if r["word"] == block_word
result = r["subblock"]
end
end
end
else
if block_word == "" then
result = parsed_data['resources'][resource]["attributes"]
else
result = parsed_data['resources'][resource]["attributes"]
for r in result
if r["word"] == block_word
result = r["subblock"]
end
end
end
end
elsif VIM::evaluate('a_data_line') == 1 then
temp = parsed_data['datas'].keys
temp.delete("provider_arguments")
result = temp.map { |x|
{ "word" => x }
}
elsif VIM::evaluate('a_resource_line') == 1 then
temp = parsed_data['resources'].keys
temp.delete("provider_arguments")
result = temp.map { |x|
{ "word" => x }
}
else
if VIM::evaluate('a:data_or_resource') == 0 then
result = parsed_data['datas'][resource]["arguments"]
else
result = parsed_data['resources'][resource]["arguments"]
end
result.concat(JSON.parse(File.read("#{VIM::evaluate('s:path')}/../extra_json/base.json")))
end
elsif VIM::evaluate('a_provider_line') == 1 then
result = VIM::evaluate('g:terraform_versions_config').keys.sort.map do |value|
{ "word" => value }
end
end
return JSON.generate(result)
rescue
return []
end
end
class TerraformComplete
def initialize()
@buffer = Vim::Buffer.current
print Vim::evaluate('a:ins')
result = terraform_complete(VIM::evaluate('a:provider'), VIM::evaluate('a:resource'))
Vim::command("let a_res = #{result}")
end
end
gem = TerraformComplete.new()
EOF
let a_resource_line = 0
let a_provider_line = 0
return a_res
endfunction
fun! terraformcomplete#tfcompleterc_Complete(findstart, base)
if a:findstart
" locate the start of the word
let line = getline('.')
let start = col('.') - 1
while start > 0 && line[start - 1] =~ '\a'
let start -= 1
endwhile
return start
else
let a_res = []
for m in readfile(s:path . "/../dicts/tfcompleterc_dict")
if m =~ '^' . a:base
call add(a_res, m)
endif
endfor
return a_res
endif
endfunc
fun! terraformcomplete#Complete(findstart, base)
if a:findstart
" locate the start of the word
let line = getline('.')
let start = col('.') - 1
while start > 0 && line[start - 1] =~ '\a'
let start -= 1
endwhile
return start
else
let res = []
let final_res = []
if getline(".") =~ '\s*source\s*=\s*"'
if g:terraform_registry_module_completion
for m in terraformcomplete#GetAllRegistryModules()
if m.word =~ '^' . a:base
call add(final_res, m)
endif
endfor
return final_res
endif
endif
try
let a_provider = terraformcomplete#GetProvider()
catch
let a_provider = ''
endtry
try
let a_resource = terraformcomplete#GetResource()
catch
let a_resource = ''
endtry
let a_old_pos = getpos(".")
try
execute 'normal! [{'
let a_test_line = getline(".")
call setpos(".",a_old_pos)
let a_all_line = []
let counter = 0
while counter <= 40
let counter += 1
execute 'normal! [{'
let a_curr_line = match(getline("."), '^\s*\(resource\|data\|module\|variable\|output\|locals\|provider\)\s*"')
if a_curr_line != 0
call add(a_all_line,matchlist(getline("."), '\s*\([^ ]*\)\s*{', '')[1])
else
break
endif
endw
call setpos(".",a_old_pos)
execute 'normal! [{'
let a_nested = match(getline("."), '^\s*\(resource\|data\|module\)\s*"')
call search('^\s*\(resource\|data\|module\)\s*"', 'b')
let a_data_or_resource = matchlist(getline("."), '\s*\([^" ]*\)\s*.*', '')[1]
call setpos(".",a_old_pos)
let a_test_name = matchlist(a_test_line, '\s*\([^ ]*\)\s*{', '')[1]
ruby <<EOF
require 'json'
data = ''
if File.exists? "#{VIM::evaluate('s:path')}/../provider_json/#{VIM::evaluate('a_provider')}/#{VIM::evaluate("g:terraform_versions_config")[VIM::evaluate('a_provider')]}/#{VIM::evaluate('a_provider')}.json"
File.open("#{VIM::evaluate('s:path')}/../provider_json/#{VIM::evaluate('a_provider')}/#{VIM::evaluate("g:terraform_versions_config")[VIM::evaluate('a_provider')]}/#{VIM::evaluate('a_provider')}.json", "r") do |f|
f.each_line do |line|
data = line
end
end
else
File.open("#{VIM::evaluate('s:path')}/../community_provider_json/#{VIM::evaluate('a_provider')}/#{VIM::evaluate("g:terraform_versions_config")[VIM::evaluate('a_provider')]}/#{VIM::evaluate('a_provider')}.json", "r") do |f|
f.each_line do |line|
data = line
end
end
end
base_data = JSON.parse(File.read("#{VIM::evaluate('s:path')}/../extra_json/base.json"))
test = VIM::evaluate("a_test_name")
nested = VIM::evaluate("a_nested")
parsed_data = ''
result = JSON.parse(data)["#{VIM::evaluate('a_data_or_resource')}s"][VIM::evaluate("a_resource")]['arguments']
result.concat(base_data)
all_words = VIM::evaluate("a_all_line")
result_subblock = result
all_words.reverse.each do |word|
result_subblock = result_subblock.find {|i| i["word"] == word }["subblock"]
end
parsed_data = JSON.generate(result_subblock)
result.each do |i|
end
VIM::command("let a_res = #{parsed_data}")
EOF
return a_res
catch
endtry
call setpos(".",a_old_pos)
if strpart(getline('.'),0, getpos('.')[2]) =~ '\${[^}]*\%[}]$'
try
let a_search_continue = 1
let a_resource_list = []
let a_type_list = {}
let a_data_list = []
let a_data_type_list = {}
let a_all_res = terraformcomplete#GetAll('resource')
let a_resource_list = a_all_res[0]
let a_type_list = a_all_res[1]
call add(a_resource_list, { 'word': 'var' })
call add(a_resource_list, { 'word': 'module' })
call add(a_resource_list, { 'word': 'data' })
ruby <<EOF
require 'json'
res = JSON.parse(File.read("#{VIM::evaluate('s:path')}/../extra_json/functions.json"))
res.each do |i|
VIM::command("call add(a_resource_list, #{JSON.generate(i)})")
end
EOF
try
let a_curr = strpart(getline('.'),0, getpos('.')[2])
ruby <<EOF
temp = VIM::evaluate('a_curr')
if temp[-1] != '.'
temp = temp[0..-2]
end
#puts temp.match(/\${.*[^\w*.-](?:(?![^\w*.-]))(.*\.)$/)
if temp.match(/\${.*[^\[\]\w*.-](?:(?![^\[\]\w*.-]))(.*\.)$/) != nil
res = temp.match(/\${.*[^\[\]\w*.-](?:(?![^\[\]\w*.-]))(.*\.)$/)[1]
elsif temp.match(/.*\${(.*\.)$/) != nil
res = temp.match(/.*\${(.*\.)$/)[1]
end
#res_ar = res.split "."
#puts res_ar
#if res_ar[0] == "data" and res_ar[3] == '*'
# res_ar.delete_at 3
#elsif res_ar[2] == "*"
# res_ar.delete_at 2
#end
VIM::command("let a_temp_attr = '#{res}'")
EOF
let a_attr = split(a_temp_attr, '\.')
if len(a_attr) == 1
if a_attr[0] == "data"
let a_data_list = terraformcomplete#GetAll('data')[0]
return a_data_list
elseif a_attr[0] == "module"
let a_module_list = terraformcomplete#GetAllModule()[0]
return a_module_list
elseif a_attr[0] == "var"
ruby <<EOF
require 'json'
def terraform_get_vars()
path = "#{Vim::evaluate("expand('%:p:h')")}"
curr_file = "#{Vim::evaluate("expand('%:p')")}"
vars_file_paths = ["#{path}/variables.tf", "#{path}/vars.tf", curr_file]
vars = []
vars_file_paths.each do |file|
if File.readable? file then
vars_array = File.read(file)
vars_array = vars_array.split("\n")
vars_array = vars_array.find_all {|x| x[/variable\s*".*"/]}
vars.concat(vars_array.map {|x| { "word": x.split(" ")[1].tr("\"", '')} })
end
end
return JSON.generate(vars)
end
Vim::command("let a_vars_res = #{terraform_get_vars()}")
EOF
return a_vars_res
else
if a_type_list != {}
return a_type_list[a_attr[0]]
else
return
endif
endif
elseif len(a_attr) == 2
if a_attr[0] == "data"
let a_data_type_list = terraformcomplete#GetAll('data')[1]
return a_data_type_list[a_attr[1]]
elseif a_attr[0] == "module"
let a_file_path = expand('%:p:h')
let a_line = terraformcomplete#GetAllModule()[1][a_attr[1]][0]
let a_module_name = a_attr[1]
ruby <<EOF
require "#{Vim::evaluate("s:path")}/../module"
include ModuleUtils
name = Vim::evaluate("a_module_name")
line = Vim::evaluate("a_line")
file_path = Vim::evaluate("a_file_path")
Vim::command("let a_res = #{load_attr_module(name, line.to_s, file_path)}")
EOF
return a_res
else
let a_provider = split(a_attr[0], "_")[0]
let a_resource = split(a_attr[0], a_provider . "_")[0]
let a_data_or_resource = 1
for m in terraformcomplete#rubyComplete(a:base, a_provider, a_resource, 'true', a_data_or_resource, "")
if m.word =~ '^' . a:base
call add(res, m)
endif
endfor
return res
endif
elseif len(a_attr) == 3
if a_attr[0] == "data"
let a_res = []
let a_provider = split(a_attr[1], "_")[0]
let a_resource = split(a_attr[1], a_provider . "_")[0]
let a_data_or_resource = 0
for m in terraformcomplete#rubyComplete(a:base, a_provider, a_resource, 'true', a_data_or_resource, "")
if m.word =~ '^' . a:base
call add(a_res, m)
endif
endfor
return a_res
else
let a_provider = split(a_attr[0], "_")[0]
let a_resource = split(a_attr[0], a_provider . "_")[0]
let a_data_or_resource = 1
for m in terraformcomplete#rubyComplete(a:base, a_provider, a_resource, 'true', a_data_or_resource, "")
if m.word =~ '^' . a:base
call add(res, m)
endif
endfor
return res
endif
elseif len(a_attr) == 4
if a_attr[0] == "data"
let a_res = []
let a_provider = split(a_attr[1], "_")[0]
let a_resource = split(a_attr[1], a_provider . "_")[0]
let a_data_or_resource = 0
"if match(a_attr[3], "^[0-9*]*$") == 0
" let a_attr_block_word = a_attr[4]
"else
" let a_attr_block_word = a_attr[3]
"endif
"echo a_attr_block_word
for m in terraformcomplete#rubyComplete(a:base, a_provider, a_resource, 'true', a_data_or_resource, "")
if m.word =~ '^' . a:base
call add(a_res, m)
endif
endfor
return a_res
else
let a_provider = split(a_attr[0], "_")[0]
let a_resource = split(a_attr[0], a_provider . "_")[0]
let a_data_or_resource = 1
if match(a_attr[2], "^[0-9*]*$") == 0
let a_attr_block_word = a_attr[3]
else
let a_attr_block_word = a_attr[2]
endif
for m in terraformcomplete#rubyComplete(a:base, a_provider, a_resource, 'true', a_data_or_resource, a_attr_block_word)
if m.word =~ '^' . a:base
call add(res, m)
endif
endfor
return res
endif
elseif len(a_attr) == 5
if a_attr[0] == "data"
let a_res = []
let a_provider = split(a_attr[1], "_")[0]
let a_resource = split(a_attr[1], a_provider . "_")[0]
let a_data_or_resource = 0
if match(a_attr[3], "^[0-9*]*$") == 0
let a_attr_block_word = a_attr[4]
else
let a_attr_block_word = a_attr[3]
endif
for m in terraformcomplete#rubyComplete(a:base, a_provider, a_resource, 'true', a_data_or_resource, a_attr_block_word)
if m.word =~ '^' . a:base
call add(a_res, m)
endif
endfor
return a_res
else
let a_provider = split(a_attr[0], "_")[0]
let a_resource = split(a_attr[0], a_provider . "_")[0]
let a_data_or_resource = 1
if match(a_attr[2], "^[0-9*]*$") == 0
let a_attr_block_word = a_attr[3]
else
let a_attr_block_word = a_attr[2]
endif
for m in terraformcomplete#rubyComplete(a:base, a_provider, a_resource, 'true', a_data_or_resource, a_attr_block_word)
if m.word =~ '^' . a:base
call add(res, m)
endif
endfor
return res
endif
elseif len(a_attr) == 6
if a_attr[0] == "data"
let a_res = []
let a_provider = split(a_attr[1], "_")[0]
let a_resource = split(a_attr[1], a_provider . "_")[0]
let a_data_or_resource = 0
if match(a_attr[4], "^[0-9*]*$") == 0
let a_attr_block_word = a_attr[5]
else
let a_attr_block_word = a_attr[4]
endif
for m in terraformcomplete#rubyComplete(a:base, a_provider, a_resource, 'true', a_data_or_resource, a_attr_block_word)
if m.word =~ '^' . a:base
call add(a_res, m)
endif
endfor
return a_res
endif
else
return a_resource_list
endif
catch
return a_resource_list
endtry
catch
return a_resource_list
endtry
else
try
let s:curr_pos = getpos('.')
let s:oldline = getline('.')
call search('^\s*\(resource\|data\|module\)\s*"', 'b')
if getline('.') =~ '^\s*module'
let a_module_name = matchlist(getline("."), '^\s*module\s*"\(.*\)".*')[1]
execute '/^\s*source.*'
let a_line = getline(".")
call setpos('.', s:curr_pos)
let a_file_path = expand('%:p:h')
ruby <<EOF
require "#{Vim::evaluate("s:path")}/../module"
include ModuleUtils
name = Vim::evaluate("a_module_name")
line = Vim::evaluate("a_line")
file_path = Vim::evaluate("a_file_path")
Vim::command("let a_res = #{load_arg_module(name, line.to_s, file_path)}")
EOF
return a_res
else
if getline('.') =~ '^\s*data'
let a_data_or_resource = 0
else
let a_data_or_resource = 1
endif
call setpos('.', s:curr_pos)
for m in terraformcomplete#rubyComplete(a:base, a_provider, a_resource, 'false', a_data_or_resource, "")
if m.word =~ '^' . a:base
call add(res, m)
endif
endfor
return res
endif
catch
endtry
endif
endif
endfun
fun! terraformcomplete#GetAllModule() abort
let a_old_pos = getpos('.')
execute 'normal! gg'
let a_search_continue = 1
let a_list = []
let a_source_list = {}
if getline(".") =~ 'module\s*".*"\s*'
let temp = substitute(split(split(getline(1),'\s*module ')[0], ' ')[0], '"','','g')
let a_oldpos = getpos('.')
call search('source\s*=')
let a_source = getline('.')
call setpos('.', a_oldpos)
call add(a_list, { 'word': temp })
if has_key(a_source_list, temp) == 0
let a_source_list[temp] = []
endif
call add(a_source_list[temp], a_source )
endif
while a_search_continue != 0
let a_search_continue = search('module\s*".*"\s*', 'W')
if a_search_continue != 0
let temp = substitute(split(split(getline(a_search_continue),'module ')[0], ' ')[0], '"','','g')
let a_oldpos = getpos('.')
call search('source\s*=')
let a_source = getline(".")
call setpos('.', a_oldpos)
call add(a_list, { 'word': temp })
if has_key(a_source_list, temp) == 0
let a_source_list[temp] = []
endif
call add(a_source_list[temp], a_source )
endif
endwhile
call setpos('.', a_old_pos)
return [a_list, a_source_list]
endfunc
fun! terraformcomplete#GetAllRegistryModules() abort
let res = []
ruby <<EOF
require 'json'
require 'open-uri'
modules = []
offset = 0
loop do
d = JSON.parse(open("https://registry.terraform.io/v1/modules?limit=10000&offset=#{offset}").read);
modules.push(* d["modules"])
break if d["meta"]["next_offset"].nil?
offset = d["meta"]["next_offset"]
end
puts modules.count
data = modules.map {|m| { "word": m["id"].split("/")[0..-2].join("/") }}
Vim::command("let res = #{JSON.generate(data)}")
EOF
return res
endfunc
fun! terraformcomplete#GetAll(data_or_resource) abort
let a_old_pos = getpos('.')
execute 'normal! gg'
let a_search_continue = 1
let a_list = []
let a_type_list = {}
if getline(".") =~ '^\s*' . a:data_or_resource . '\s*"\w*"\s*"[^"]*"'
let temp = substitute(split(split(getline(a_search_continue),a:data_or_resource . ' ')[0], ' ')[0], '"','','g')
call add(a_list, { 'word': temp })
if has_key(a_type_list, temp) == 0
let a_type_list[temp] = []
endif
call add(a_type_list[temp], { 'word': substitute(split(split(getline(a_search_continue), a:data_or_resource . ' ')[0], ' ')[1], '"','','g')})
endif
while a_search_continue != 0
let a_search_continue = search('^\s*' . a:data_or_resource . '\s*"\w*"\s*"[^"]*"', 'W')
if a_search_continue != 0
let temp = substitute(split(split(getline(a_search_continue),a:data_or_resource . ' ')[0], ' ')[0], '"','','g')
call add(a_list, { 'word': temp })
if has_key(a_type_list, temp) == 0
let a_type_list[temp] = []
endif
call add(a_type_list[temp], { 'word': substitute(split(split(getline(a_search_continue), a:data_or_resource . ' ')[0], ' ')[1], '"','','g')})
endif
endwhile
call setpos('.', a_old_pos)
ruby <<EOF
data_or_resource = VIM::evaluate("a:data_or_resource")
Dir.glob('*.tf').each do |file|
File.read(file).split("\n").map {|i| i.match(/^\s*#{data_or_resource}\s*"(\w*)"\s*"([^"]*)"/) }.compact.each do |temp|
res = VIM::evaluate("has_key(a_type_list, \"#{temp[1]}\")")
if res == 0
VIM::command("let a_type_list[\"#{temp[1]}\"] = []")
end
VIM::command("call add(a_list, { 'word': \"#{temp[1]}\" })")
VIM::command("call add(a_type_list[\"#{temp[1]}\"], { 'word': \"#{temp[2]}\"})")
end
end
sorted_list = VIM::evaluate("a_list").sort_by { |item| item['word'] }
sorted_type_list = {}
VIM::evaluate("a_type_list").map do |itemName, itemList|
sorted_type_list[itemName] = itemList.sort_by { |item| item['word'] }
end
VIM::command("let a_list = #{sorted_list.to_json}")
VIM::command("let a_type_list = #{sorted_type_list.to_json}")
EOF
return [a_list, a_type_list]
endfunc
================================================
FILE: check_new_provider
================================================
#!/bin/bash
curl -s https://api.github.com/orgs/terraform-providers/repos?per_page=200 | jq .[].name | sort > temp.txt
sed -e 's;"\(.*\)";"https://api.github.com/repos/terraform-providers/\1/tags";' temp.txt > tags_urls.txt && rm temp.txt
================================================
FILE: community/backup_community.json
================================================
[
{
"versions" : [
"master",
"v0.9.1",
"v0.9.0",
"v0.8.0",
"v0.7.0",
"v0.6.0",
"v0.5.1",
"v0.5.0",
"v0.4.0"
],
"link" : "https://github.com/IBM-Cloud/terraform-provider-ibm",
"owner" : "IBM-Cloud",
"parse_target" : "ibm",
"name" : "terraform-provider-ibm"
},
{
"link" : "https://github.com/vancluever/terraform-provider-acme",
"versions" : [
"master",
"v0.5.0",
"v0.4.0",
"v0.3.0",
"v0.3.0-beta2",
"v0.2.1",
"v0.2.0",
"v0.1.0"
],
"name" : "terraform-provider-acme",
"owner" : "vancluever",
"parse_target" : "plugin/providers/acme"
},
{
"name" : "terraform-provider-ad",
"owner" : "GSLabDev",
"parse_target" : "ad",
"link" : "https://github.com/GSLabDev/terraform-provider-ad",
"versions" : [
"master"
]
},
{
"link" : "https://github.com/zambien/terraform-provider-apigee",
"versions" : [
"master",
"v0.0.9",
"v0.0.8",
"v0.0.7",
"v0.0.6",
"v0.0.5",
"v0.0.4",
"v0.0.3",
"v0.0.2",
"v0.0.1"
],
"name" : "terraform-provider-apigee",
"owner" : "zambien",
"parse_target" : "apigee"
},
{
"name" : "terraform-provider-artifactory",
"parse_target" : "pkg/artifactory",
"owner" : "atlassian",
"link" : "https://github.com/atlassian/terraform-provider-artifactory",
"versions" : [
"master",
"v1.2.2",
"v1.2.1",
"v1.2.0",
"v1.1.0",
"v1.0.1",
"v0.0.2",
"v0.0.1"
]
},
{
"name" : "terraform-provider-avi",
"parse_target" : "avi",
"owner" : "avinetworks",
"link" : "https://github.com/avinetworks/terraform-provider-avi",
"versions" : [
"master",
"17.2.9",
"17.2.7b1"
]
},
{
"versions" : [
"master"
],
"link" : "https://github.com/AviatrixSystems/terraform-provider-aviatrix",
"owner" : "AviatrixSystems",
"parse_target" : "aviatrix",
"name" : "terraform-provider-aviatrix"
},
{
"link" : "https://github.com/nicolai86/terraform-provider-couchdb",
"versions" : [
"master"
],
"name" : "terraform-provider-couchdb",
"owner" : "nicolai86",
"parse_target" : "couchdb"
},
{
"owner" : "rackn",
"parse_target" : "provider",
"name" : "terraform-provider-drp",
"versions" : [
"master",
"v1.0.5",
"v1.0.4",
"v1.0.3",
"v1.0.2",
"v1.0.1",
"v1.0.0",
"v0.9.5",
"v0.9.0",
"v0.7.8",
"v0.7.7",
"v0.7.6",
"v0.7.5",
"v0.7.4",
"v0.7.3",
"v0.7.2",
"v0.7.1",
"v0.7.0",
"v0.0.1",
"tip",
"stable"
],
"link" : "https://github.com/rackn/terraform-provider-drp/"
},
{
"name" : "terraform-provider-dockermachine",
"parse_target" : "provider",
"owner" : "gstruct",
"link" : "https://github.com/gstruct/terraform-provider-dockermachine",
"versions" : [
"master",
"0.1.4",
"0.1.3",
"0.1.2",
"0.1.1",
"0.1.0"
]
},
{
"link" : "https://github.com/tiramiseb/terraform-provider-gandi",
"versions" : [
"master"
],
"name" : "terraform-provider-gandi",
"owner" : "tiramiseb",
"parse_target" : "gandi"
},
{
"owner" : "Mastercard",
"parse_target" : "restapi",
"name" : "terraform-provider-restapi",
"versions" : [
"master",
"v0.1.0"
],
"link" : "https://github.com/Mastercard/terraform-provider-restapi"
},
{
"owner" : "MikeSouza",
"parse_target" : "glue",
"name" : "terraform-provider-glue",
"versions" : [
"master"
],
"link" : "https://github.com/MikeSouza/terraform-provider-glue"
},
{
"name" : "terraform-provider-gocd",
"parse_target" : "gocd",
"owner" : "drewsonne",
"link" : "https://github.com/drewsonne/terraform-provider-gocd",
"versions" : [
"master",
"0.1.19",
"0.1.18",
"0.1.17",
"0.1.16",
"0.1.15",
"0.1.14",
"0.1.13",
"0.1.12",
"0.1.11",
"0.1.10",
"0.1.9",
"0.1.8",
"0.1.7",
"0.1.6",
"0.1.5",
"0.1.4",
"0.1.3",
"0.1.2",
"0.1.1",
"0.1.0",
"0.0.11-rc2",
"0.0.11-rc1",
"0.0.10",
"0.0.9",
"0.0.8",
"0.0.7",
"0.0.6",
"0.0.5",
"0.0.4",
"0.0.3"
]
},
{
"link" : "https://github.com/sethvargo/terraform-provider-googlecalendar",
"versions" : [
"master",
"v0.1.0"
],
"name" : "terraform-provider-googlecalendar",
"owner" : "sethvargo",
"parse_target" : "googlecalendar"
},
{
"versions" : [
"master",
"v0.1.4",
"v0.1.3",
"v0.1.2",
"v0.1.1",
"v0.1.0"
],
"link" : "https://github.com/DeviaVir/terraform-provider-gsuite",
"owner" : "DeviaVir",
"parse_target" : "gsuite",
"name" : "terraform-provider-gsuite"
},
{
"versions" : [
"master",
"v0.5.1",
"v0.5.0",
"v0.4.0",
"v0.3.2",
"v0.3.1",
"v0.3.0",
"v0.2.0",
"v0.1.0"
],
"link" : "https://github.com/mcuadros/terraform-provider-helm",
"parse_target" : "helm",
"owner" : "mcuadros",
"name" : "terraform-provider-helm"
},
{
"versions" : [
"master",
"v1.1.0",
"v1.0.0"
],
"link" : "https://github.com/hetznercloud/terraform-provider-hcloud",
"owner" : "hetznercloud",
"parse_target" : "hcloud",
"name" : "terraform-provider-hcloud"
},
{
"name" : "terraform-provider-httpfileupload",
"parse_target" : "httpfileupload",
"owner" : "GSLabDev",
"link" : "https://github.com/GSLabDev/terraform-provider-httpfileupload",
"versions" : [
"master"
]
},
{
"name" : "terraform-provider-oneview",
"owner" : "HewlettPackard",
"parse_target" : "oneview",
"link" : "https://github.com/HewlettPackard/terraform-provider-oneview",
"versions" : [
"master"
]
},
{
"versions" : [
"master",
"0.1.11",
"0.1.10",
"0.1.9",
"0.1.8",
"0.1.7",
"0.1.6",
"0.1.5",
"0.1.4",
"0.1.3",
"0.1.2",
"0.1.1",
"0.1.0",
"0.0.13",
"0.0.12",
"0.0.11",
"0.0.10",
"0.0.9",
"0.0.8",
"0.0.7",
"0.0.6",
"0.0.5",
"0.0.4",
"0.0.3",
"0.0.2",
"0.0.1"
],
"link" : "https://github.com/sky-uk/terraform-provider-infoblox",
"owner" : "sky-uk",
"parse_target" : "infoblox",
"name" : "terraform-provider-infoblox"
},
{
"link" : "https://github.com/anubhavmishra/terraform-provider-jira",
"versions" : [
"master",
"0.1.0"
],
"name" : "terraform-provider-jira",
"owner" : "anubhavmishra",
"parse_target" : "jira"
},
{
"name" : "terraform-provider-keboola",
"parse_target" : "plugin/providers/keboola",
"owner" : "plmwong",
"link" : "https://github.com/plmwong/terraform-provider-keboola",
"versions" : [
"master"
]
},
{
"versions" : [
"master"
],
"link" : "https://github.com/Mongey/terraform-provider-kafka",
"owner" : "Mongey",
"parse_target" : "kafka",
"name" : "terraform-provider-kafka"
},
{
"versions" : [
"master",
"v0.6.0",
"v0.5.1",
"v0.5.0",
"v0.4.0",
"v0.3.0",
"v0.2.0",
"v0.1.2",
"v0.1.1",
"v0.1.0"
],
"link" : "https://github.com/ewilde/terraform-provider-kibana",
"parse_target" : "kibana",
"owner" : "ewilde",
"name" : "terraform-provider-kibana"
},
{
"parse_target" : "kong",
"owner" : "kevholditch",
"name" : "terraform-provider-kong",
"versions" : [
"master",
"v0.14.0",
"v0.13.0",
"v0.12.0",
"v0.11.0",
"v0.10.0",
"v0.9.0",
"v0.8.0",
"v0.7.0",
"v0.6.0",
"v0.5.0",
"v0.4.0",
"v0.3.0",
"v0.2.0",
"v0.1.0"
],
"link" : "https://github.com/kevholditch/terraform-provider-kong"
},
{
"parse_target" : "lxd",
"owner" : "sl1pm4t",
"name" : "terraform-provider-lxd",
"versions" : [
"master",
"v1.1.0",
"v1.0.0",
"v0.10.4",
"v0.10.0-beta2",
"v0.9.8",
"v0.9.5",
"v0.9.5beta1",
"v0.9.4",
"v0.9.3",
"v0.9.1",
"v0.9.0",
"v0.8.1",
"v0.8.0",
"v0.8.0-rc3"
],
"link" : "https://github.com/sl1pm4t/terraform-provider-lxd"
},
{
"name" : "terraform-provider-matchbox",
"owner" : "coreos",
"parse_target" : "matchbox",
"link" : "https://github.com/coreos/terraform-provider-matchbox",
"versions" : [
"master",
"v0.2.2",
"v0.2.1",
"v0.2.0",
"v0.1.2",
"v0.1.1",
"v0.1.0"
]
},
{
"link" : "https://github.com/akshaykarle/terraform-provider-mongodbatlas",
"versions" : [
"master",
"v0.4.5",
"v0.4.4",
"v0.4.3",
"v0.4.2",
"v0.2.2",
"v0.2.1",
"v0.2.0",
"v0.1.0",
"v0.0.2",
"v0.0.1",
"0.4.2",
"0.4.1",
"0.4.0",
"0.3.1",
"0.3.0"
],
"name" : "terraform-provider-mongodbatlas",
"owner" : "akshaykarle",
"parse_target" : "mongodbatlas"
},
{
"name" : "terraform-provider-nutanix",
"owner" : "nutanix",
"parse_target" : "nutanix",
"link" : "https://github.com/nutanix/terraform-provider-nutanix",
"versions" : [
"master"
]
},
{
"name" : "terraform-provider-odl",
"parse_target" : "odl",
"owner" : "GSLabDev",
"link" : "https://github.com/GSLabDev/terraform-provider-odl",
"versions" : [
"master"
]
},
{
"link" : "https://github.com/camptocamp/terraform-provider-pass",
"versions" : [
"master",
"1.0.1",
"1.0.0",
"0.1.4",
"0.1.3",
"0.1.2",
"0.1.1",
"0.1.0"
],
"name" : "terraform-provider-pass",
"owner" : "camptocamp",
"parse_target" : "pass"
},
{
"name" : "terraform-provider-puppetca",
"parse_target" : "puppetca",
"owner" : "camptocamp",
"link" : "https://github.com/camptocamp/terraform-provider-puppetca",
"versions" : [
"master",
"1.0.1",
"1.0.0"
]
},
{
"versions" : [
"master",
"0.1.1",
"0.1.0"
],
"link" : "https://github.com/camptocamp/terraform-provider-puppetdb",
"parse_target" : "puppetdb",
"owner" : "camptocamp",
"name" : "terraform-provider-puppetdb"
},
{
"name" : "terraform-provider-qingcloud",
"owner" : "yunify",
"parse_target" : "qingcloud",
"link" : "https://github.com/yunify/terraform-provider-qingcloud",
"versions" : [
"master",
"v1.2.1",
"v1.2.0",
"v1.1",
"v1.0.1",
"v1.0.0"
]
},
{
"parse_target" : "redshift",
"owner" : "frankfarrell",
"name" : "terraform-provider-redshift",
"versions" : [
"master"
],
"link" : "https://github.com/frankfarrell/terraform-provider-redshift"
},
{
"owner" : "yamamoto-febc",
"parse_target" : "rke",
"name" : "terraform-provider-rke",
"versions" : [
"master",
"0.2.0",
"0.1.0",
"0.0.1"
],
"link" : "https://github.com/yamamoto-febc/terraform-provider-rke"
},
{
"owner" : "ewilde",
"parse_target" : "runscope",
"name" : "terraform-provider-runscope",
"versions" : [
"master",
"v0.5.7",
"v0.5.6",
"v0.5.5",
"v0.5.4",
"v0.5.3",
"v0.5.2",
"v0.5.1",
"v0.5.0",
"v0.5",
"v0.4.1",
"v0.4.0",
"v0.3.1",
"v0.3.0",
"v0.2.0",
"v0.1.0"
],
"link" : "https://github.com/ewilde/terraform-provider-runscope"
},
{
"owner" : "sacloud",
"parse_target" : "sakuracloud",
"name" : "terraform-provider-sakuracloud",
"versions" : [
"master",
"v1.1.1",
"v1.1.0",
"v1.0.5",
"v1.0.4",
"v1.0.3",
"v1.0.2",
"v1.0.1",
"v1.0.0",
"v1.0.0-rc7",
"v1.0.0-rc6",
"v1.0.0-rc5",
"v1.0.0-rc4",
"v1.0.0-rc3",
"v1.0.0-rc2",
"v1.0.0-rc1",
"v0.14.0",
"v0.13.1",
"v0.13.0",
"v0.12.0",
"v0.12.0-rc1",
"v0.11.0",
"v0.10.4",
"v0.10.3",
"v0.10.2",
"v0.10.1",
"v0.10.0",
"v0.9.1",
"v0.9.0",
"v0.8.1",
"v0.8.0"
],
"link" : "https://github.com/sacloud/terraform-provider-sakuracloud"
},
{
"link" : "https://github.com/jianyuan/terraform-provider-sentry",
"versions" : [
"master",
"v0.4.0",
"v0.3.1",
"v0.3.0",
"v0.2.0",
"v0.1.0"
],
"name" : "terraform-provider-sentry",
"parse_target" : "sentry",
"owner" : "jianyuan"
},
{
"link" : "https://github.com/Yelp/terraform-provider-signalform",
"versions" : [
"master",
"v2.7.0",
"v2.6.0",
"v2.5.1",
"v2.5.0",
"v2.4.0",
"v2.3.0",
"v2.2.9",
"v2.2.8",
"v2.2.7",
"v2.2.6",
"v2.2.5",
"v2.2.4",
"v2.2.3",
"v2.2.2",
"v2.2",
"v2.1.2",
"v2.1.1",
"v2.1.0",
"v2.0",
"v1.9.1",
"v1.9",
"v1.8",
"v1.7",
"v1.6",
"v1.5",
"v1.4",
"v1.3",
"v1.2",
"v1.1",
"v1.0"
],
"name" : "terraform-provider-signalform",
"parse_target" : "signalform",
"owner" : "Yelp"
},
{
"versions" : [
"master"
],
"link" : "https://github.com/GSLabDev/terraform-provider-scvmm",
"owner" : "GSLabDev",
"parse_target" : "scvmm",
"name" : "terraform-provider-scvmm"
},
{
"link" : "https://github.com/GSLabDev/terraform-provider-vra",
"versions" : [
"master"
],
"name" : "terraform-provider-vra",
"owner" : "GSLabDev",
"parse_target" : "vra"
},
{
"link" : "https://github.com/sethvargo/terraform-provider-filesystem",
"versions" : [
"master"
],
"name" : "terraform-provider-filesystem",
"owner" : "sethvargo",
"parse_target" : "filesystem"
},
{
"link" : "https://github.com/mitchellh/terraform-provider-netlify",
"versions" : [
"master"
],
"name" : "terraform-provider-netlify",
"owner" : "mitchellh",
"parse_target" : "netlify"
}
]
================================================
FILE: community/community-index.html
================================================
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="mobile-web-app-capable" content="yes">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="Category for community-built providers.">
<link rel="apple-touch-icon" sizes="180x180" href="/assets/images/favicons/apple-touch-icon-13180a24.png">
<link rel="icon" type="image/png" href="/assets/images/favicons/favicon-32x32-62171ffd.png" sizes="32x32">
<link rel="icon" type="image/png" href="/assets/images/favicons/favicon-16x16-2821bcc8.png" sizes="16x16">
<link rel="manifest" href="/android-manifest.json">
<link rel="mask-icon" href="/assets/images/favicons/safari-pinned-tab-bab846e1.svg" color="#5C4EE5">
<meta name="msapplication-config" content="/microsoft-tile.xml" />
<meta name="theme-color" content="#ffffff">
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:site" content="@HashiCorp" />
<meta name="twitter:creator" content="@HashiCorp" />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://www.terraform.io/docs/providers/type/community-index.html" />
<meta property="og:title" content="Community Providers - Terraform by HashiCorp" />
<meta property="og:site_name" content="Terraform by HashiCorp"/>
<meta property="og:image" content="https://www.terraform.io/assets/images/og-image-f5bbc98c.png"/>
<meta property="og:image:width" content="100"/>
<meta property="og:image:height" content="100"/>
<meta property="og:description" content="Category for community-built providers." />
<title>Community Providers - Terraform by HashiCorp</title>
<!-- Stylesheets -->
<link rel="stylesheet" href="https://use.typekit.net/wxf7mfi.css">
<link href="/assets/stylesheets/application-b19bad99.css" rel="stylesheet" />
<!-- Site scripts -->
<!--[if lt IE 9]><script src="/assets/javascripts/ie-compat-c141a02d.js" defer="defer"></script><![endif]-->
<script src="/assets/javascripts/application-e080fe63.js" defer="defer"></script>
<!-- Analytics scrpts -->
<script defer>
!function(){var e=window.analytics=window.analytics||[];if(!e.initialize)if(e.invoked)window.console&&console.error&&console.error("Segment snippet included twice.");else{e.invoked=!0,e.methods=["trackSubmit","trackClick","trackLink","trackForm","pageview","identify","reset","group","track","ready","alias","debug","page","once","off","on"],e.factory=function(t){return function(){var a=Array.prototype.slice.call(arguments);return a.unshift(t),e.push(a),e}};for(var t=0;t<e.methods.length;t++){var a=e.methods[t];e[a]=e.factory(a)}e.load=function(e){var t=document.createElement("script");t.type="text/javascript",t.async=!0,t.src=("https:"===document.location.protocol?"https://":"http://")+"cdn.segment.com/analytics.js/v1/"+e+"/analytics.min.js";var a=document.getElementsByTagName("script")[0];a.parentNode.insertBefore(t,a)},e.SNIPPET_VERSION="4.0.0",e.load("EnEETDWhfxp1rp09jVvJr66LdvwI6KVP")}}();var om597a24292a958,om597a24292a958_poll=function(){var e=0;return function(t,a){clearInterval(e),e=setInterval(t,a)}}();!function(e,t,a){if(e.getElementById(a))om597a24292a958_poll(function(){if(window.om_loaded&&!om597a24292a958)return(om597a24292a958=new OptinMonsterApp).init({s:"35109.597a24292a958",staging:0,dev:0,beta:0})},25);else{var n=!1,o=e.createElement("script");o.id=a,o.src="//a.optnmstr.com/app/js/api.min.js",o.async=!0,o.onload=o.onreadystatechange=function(){if(!(n||this.readyState&&"loaded"!==this.readyState&&"complete"!==this.readyState))try{n=om_loaded=!0,(om597a24292a958=new OptinMonsterApp).init({s:"35109.597a24292a958",staging:0,dev:0,beta:0}),o.onload=o.onreadystatechange=null}catch(e){}},(document.getElementsByTagName("head")[0]||document.documentElement).appendChild(o)}}(document,0,"omapi-script");
</script>
</head>
<body id="page-docs-providers-community" class="layout-docs page-community-providers">
<svg class="hidden-print" aria-hidden="true" style="position: absolute; width: 0; height: 0;" width="0" height="0" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
<symbol id="mega-nav-icon-angle" viewBox="0 0 13 7">
<polygon points="6.5,6.5 0.7,1.6 1.3,0.8 6.5,5.2 11.7,0.8 12.3,1.6 "/>
</symbol>
<symbol id="mega-nav-icon-close" viewBox="0 0 13 15">
<path vector-effect="non-scaling-stroke" d="M1.1 14L11.9 1M11.9 14L1.1 1"/>
</symbol>
</defs>
</svg>
<div class="hidden-print mega-nav-sandbox">
<div class="mega-nav-banner">
<div class="container">
<div class="mega-nav-banner-item">
<a class="mega-nav-banner-logo" href="https://www.hashicorp.com"><img src="/assets/images/mega-nav/logo-hashicorp-wordmark-bbed0e8a.svg" alt="HashiCorp Logo" /></a>
</div>
<div class="mega-nav-banner-item">
<p class="mega-nav-tagline"><span class="visible-xs text-muted">Learn the</span><span class="hidden-xs text-muted">Learn how Terraform fits into the</span></p>
<div id="#mega-nav" class="mega-nav">
<button type="button" id="mega-nav-ctrl" class="mega-nav-ctrl">
<div class="mega-nav-ctrl-items">
<img src="/assets/images/mega-nav/logo-hashicorp-a66fda95.svg" alt="HashiCorp Logo" />
<strong>HashiCorp Suite</strong>
<span class="mega-nav-icon-outline">
<svg class="mega-nav-icon mega-nav-icon-angle-right" aria-hidden="true"><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#mega-nav-icon-angle"></use></svg><span class="visuallyhidden">Open</span>
</span>
</div>
</button>
<div id="mega-nav-body-ct" class="mega-nav-body-ct" aria-labelledby="mega-nav-ctrl">
<div class="mega-nav-body">
<button type="button" id="mega-nav-close" class="mega-nav-close"><svg class="mega-nav-icon mega-nav-icon-close" aria-hidden="true"><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#mega-nav-icon-close"></use></svg><span class="visuallyhidden">Close</span></button>
<div class="mega-nav-body-header">
<div class="mega-nav-body-header-item">
<h2 class="mega-nav-h1">Provision, Secure, Connect, and Run</h2>
<p class="mega-nav-h2">Any infrastructure for any application</p>
</div>
<div class="mega-nav-body-header-item">
<a href="https://www.hashicorp.com/" class="mega-nav-btn"><img src="/assets/images/mega-nav/logo-hashicorp-a66fda95.svg" alt="HashiCorp Logo" /> Learn the HashiCorp Enterprise Suite <svg class="mega-nav-icon mega-nav-icon-angle-right" aria-hidden="true"><use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#mega-nav-icon-angle"></use></svg></a>
</div>
</div>
<div class="mega-nav-body-grid">
<div class="mega-nav-body-grid-item">
<h3 class="mega-nav-h3">Provision</h3>
<ul class="mega-nav-grid">
<li>
<a href="https://www.vagrantup.com" class="mega-nav-grid-item mega-nav-grid-item-vagrant">
<div class="mega-nav-grid-item-img">
<img src="/assets/images/mega-nav/logo-vagrant-a7ab5898.svg" alt="Vagrant Logo" />
</div>
<b>Vagrant</b>
<ul>
<li><span class="mega-nav-tag">Build</span></li>
<li><span class="mega-nav-tag">Test</span></li>
</ul>
</a>
</li>
<li>
<a href="https://www.packer.io" class="mega-nav-grid-item mega-nav-grid-item-packer">
<div class="mega-nav-grid-item-img">
<img src="/assets/images/mega-nav/logo-packer-cb3b9b94.svg" alt="Packer Logo" />
</div>
<b>Packer</b>
<ul>
<li><span class="mega-nav-tag">Package</span></li>
</ul>
</a>
</li>
<li>
<a href="https://www.terraform.io" class="mega-nav-grid-item mega-nav-grid-item-terraform">
<div class="mega-nav-grid-item-img">
<img src="/assets/images/mega-nav/logo-terraform-ff69eaae.svg" alt="Terraform Logo" />
</div>
<b>Terraform</b>
<ul>
<li><span class="mega-nav-tag">Provision</span></li>
</ul>
</a>
</li>
</ul>
</div>
<div class="mega-nav-body-grid-item">
<h3 class="mega-nav-h3">Secure</h3>
<ul class="mega-nav-grid">
<li>
<a href="https://www.vaultproject.io" class="mega-nav-grid-item mega-nav-grid-item-vault">
<div class="mega-nav-grid-item-img">
<img src="/assets/images/mega-nav/logo-vault-0f83e3d2.svg" alt="Vault Logo" />
</div>
<b>Vault</b>
<ul>
<li><span class="mega-nav-tag">Secure</span></li>
</ul>
</a>
</li>
</ul>
</div>
<div class="mega-nav-body-grid-item">
<h3 class="mega-nav-h3">Connect</h3>
<ul class="mega-nav-grid">
<li>
<a href="https://www.consul.io" class="mega-nav-grid-item mega-nav-grid-item-consul">
<div class="mega-nav-grid-item-img">
<img src="/assets/images/mega-nav/logo-consul-c77f6844.svg" alt="Consul Logo" />
</div>
<b>Consul</b>
<ul>
<li><span class="mega-nav-tag">Connect</span></li>
</ul>
</a>
</li>
</ul>
</div>
<div class="mega-nav-body-grid-item">
<h3 class="mega-nav-h3">Run</h3>
<ul class="mega-nav-grid">
<li>
<a href="https://www.nomadproject.io" class="mega-nav-grid-item mega-nav-grid-item-nomad">
<div class="mega-nav-grid-item-img">
<img src="/assets/images/mega-nav/logo-nomad-c4c148be.svg" alt="Nomad Logo" />
</div>
<b>Nomad</b>
<ul>
<li><span class="mega-nav-tag">Run</span></li>
</ul>
</a>
</li>
</ul>
</div>
</div>
<div class="mega-nav-body-footer">
<p>Seven elements of the modern Application Lifecycle</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div id="header" class="navigation navbar-static-top hidden-print">
<div class="container">
<div class="row">
<div class="col-xs-12">
<div class="navbar-header">
<div class="navbar-brand">
<a href="/">
<svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 251 61" class="logo" height="50">
<path class="text" fill="#000" fill-rule="nonzero" d="M81.78 19.54h-8.89v-5.31H96.7v5.31h-8.9v26.53h-6"></path>
<path class="text" fill="#000" fill-rule="nonzero" d="M102.19 41.77c2.415-.012 4.814-.383 7.12-1.1l.91 4.4c-2.745.99-5.642 1.49-8.56 1.48-7.31 0-9.85-3.39-9.85-9V31.4c0-4.92 2.2-9.08 9.66-9.08s9.13 4.35 9.13 9.37v5h-13v1.2c.05 2.78 1.05 3.88 4.59 3.88zM97.65 32h7.41v-1.18c0-2.2-.67-3.73-3.54-3.73s-3.87 1.53-3.87 3.73V32zm28.54-4.33c-2.148.97-4.217 2.102-6.19 3.39v15h-5.83V22.79h4.92l.38 2.58c1.897-1.284 3.955-2.313 6.12-3.06l.6 5.36zm14.24 0c-2.14.97-4.204 2.103-6.17 3.39v15h-5.83V22.79h4.92l.38 2.58c1.897-1.284 3.955-2.313 6.12-3.06l.58 5.36zm19.51 18.4h-4.78l-.43-1.58c-2.062 1.342-4.47 2.058-6.93 2.06-4.25 0-6.07-2.92-6.07-6.93 0-4.73 2.06-6.55 6.79-6.55h5.59v-2.44c0-2.58-.72-3.49-4.45-3.49-2.17.024-4.33.266-6.45.72l-.72-4.45c2.606-.72 5.296-1.09 8-1.1 7.31 0 9.47 2.58 9.47 8.41l-.02 15.35zm-5.83-8.8h-4.3c-1.91 0-2.44.53-2.44 2.29s.53 2.34 2.34 2.34c1.544-.024 3.058-.436 4.4-1.2v-3.43zm23.75-19.79c-1.1-.237-2.224-.364-3.35-.38-2.29 0-2.63 1-2.63 2.77v2.92h5.93l-.33 4.64h-5.59v18.64h-5.83V27.43h-3.73v-4.64h3.73v-3.25c0-4.83 2.25-7.22 7.41-7.22 1.69-.006 3.372.22 5 .67l-.61 4.49zm11.38 29.07c-8 0-10.13-4.4-10.13-9.18v-5.88c0-4.78 2.15-9.18 10.13-9.18s10.13 4.4 10.13 9.18v5.88c.01 4.78-2.15 9.18-10.13 9.18zm0-19.27c-3.11 0-4.3 1.39-4.3 4v6.26c0 2.63 1.2 4 4.3 4 3.1 0 4.3-1.39 4.3-4V31.3c0-2.63-1.19-4.02-4.3-4.02zm25.14.39c-2.14.97-4.204 2.103-6.17 3.39v15h-5.83V22.79h4.92l.38 2.58c1.897-1.284 3.954-2.313 6.12-3.06l.58 5.36zm16.02 18.4V29.82c0-1.24-.53-1.86-1.86-1.86-2.137.254-4.2.934-6.07 2v16.11h-5.83V22.79h4.45l.57 2c2.906-1.47 6.088-2.315 9.34-2.48 1.843-.174 3.6.82 4.4 2.49 2.91-1.49 6.104-2.34 9.37-2.49 3.87 0 5.26 2.72 5.26 6.88v16.88h-5.83V29.82c0-1.24-.53-1.86-1.86-1.86-2.14.236-4.208.917-6.07 2v16.11h-5.87z"></path>
<path class="rect-dark" fill="#4040B2" d="M36.4 39.13l16.4-9.46V10.72L36.4 20.2"></path>
<path class="rect-light" fill="#5C4EE5" d="M18.2 10.72l16.4 9.48v18.93l-16.4-9.47"></path>
<path class="rect-light" fill="#5C4EE5" d="M0 19.09l16.4 9.47V9.62L0 .15m18.2 50.53l16.4 9.47V41.21l-16.4-9.47"></path>
</svg>
</a>
</div>
<button class="navbar-toggle" type="button">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
</div>
<div class="buttons hidden-xs">
<nav class="navigation-links" role="navigation">
<ul class="main-links nav navbar-nav navbar-right">
<li><a href="/intro/index.html">Intro</a></li>
<li><a href="/docs/index.html">Docs</a></li>
<li><a href="/guides/index.html">Guides</a></li>
<li><a href="/docs/extend/index.html">Extend</a></li>
<li><a href="https://www.hashicorp.com/products/terraform/?utm_source=oss&utm_medium=header-nav&utm_campaign=terraform">Enterprise</a></li>
<li>
<a href="/downloads.html">
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewbox="0 0 28 28" enable-background="new 0 0 28 28" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve">
<path d="M28 0H0v28h28V0zM13.8 22.9L7 17.3l2-2.4 3.2 2.6V7h3.2v10.5l3.2-2.6 2 2.4L13.8 22.9z"></path>
</svg>
Download
</a>
</li>
<li>
<a href="https://github.com/hashicorp/terraform">
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewbox="0 0 28 28" enable-background="new 0 0 28 28" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve">
<path d="M28 0H0v28h11.4c0 0 0-1.3 0-2.4C7.7 26.4 7 23.9 7 23.9 6.4 22.4 5.5 22 5.5 22c-1.2-0.8 0.1-0.8 0.1-0.8 1.3 0.1 2 1.4 2 1.4 1.2 2 3 1.4 3.8 1.1 0.1-0.8 0.5-1.4 0.9-1.8 -2.9-0.3-6-1.5-6-6.5 0-1.4 0.5-2.6 1.3-3.5C7.5 11.5 7 10.2 7.8 8.4c0 0 1.1-0.4 3.6 1.3 1-0.3 2.2-0.4 3.3-0.4 1.1 0 2.2 0.2 3.3 0.4 2.5-1.7 3.6-1.3 3.6-1.3 0.7 1.8 0.3 3.1 0.1 3.5 0.8 0.9 1.3 2.1 1.3 3.5 0 5-3.1 6.1-6 6.5 0.5 0.4 0.9 1.2 0.9 2.4 0 1.8 0 3.7 0 3.7H28V0z"></path>
</svg>
GitHub
</a>
</li>
</ul>
</nav>
</div>
</div>
</div>
</div>
</div>
<div class="sidebar-overlay"></div>
<aside class="sidebar" role="navigation">
<div class="sidebar-header">
<svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 251 61" class="logo" height="42">
<path class="text" fill="#000" fill-rule="nonzero" d="M81.78 19.54h-8.89v-5.31H96.7v5.31h-8.9v26.53h-6"></path>
<path class="text" fill="#000" fill-rule="nonzero" d="M102.19 41.77c2.415-.012 4.814-.383 7.12-1.1l.91 4.4c-2.745.99-5.642 1.49-8.56 1.48-7.31 0-9.85-3.39-9.85-9V31.4c0-4.92 2.2-9.08 9.66-9.08s9.13 4.35 9.13 9.37v5h-13v1.2c.05 2.78 1.05 3.88 4.59 3.88zM97.65 32h7.41v-1.18c0-2.2-.67-3.73-3.54-3.73s-3.87 1.53-3.87 3.73V32zm28.54-4.33c-2.148.97-4.217 2.102-6.19 3.39v15h-5.83V22.79h4.92l.38 2.58c1.897-1.284 3.955-2.313 6.12-3.06l.6 5.36zm14.24 0c-2.14.97-4.204 2.103-6.17 3.39v15h-5.83V22.79h4.92l.38 2.58c1.897-1.284 3.955-2.313 6.12-3.06l.58 5.36zm19.51 18.4h-4.78l-.43-1.58c-2.062 1.342-4.47 2.058-6.93 2.06-4.25 0-6.07-2.92-6.07-6.93 0-4.73 2.06-6.55 6.79-6.55h5.59v-2.44c0-2.58-.72-3.49-4.45-3.49-2.17.024-4.33.266-6.45.72l-.72-4.45c2.606-.72 5.296-1.09 8-1.1 7.31 0 9.47 2.58 9.47 8.41l-.02 15.35zm-5.83-8.8h-4.3c-1.91 0-2.44.53-2.44 2.29s.53 2.34 2.34 2.34c1.544-.024 3.058-.436 4.4-1.2v-3.43zm23.75-19.79c-1.1-.237-2.224-.364-3.35-.38-2.29 0-2.63 1-2.63 2.77v2.92h5.93l-.33 4.64h-5.59v18.64h-5.83V27.43h-3.73v-4.64h3.73v-3.25c0-4.83 2.25-7.22 7.41-7.22 1.69-.006 3.372.22 5 .67l-.61 4.49zm11.38 29.07c-8 0-10.13-4.4-10.13-9.18v-5.88c0-4.78 2.15-9.18 10.13-9.18s10.13 4.4 10.13 9.18v5.88c.01 4.78-2.15 9.18-10.13 9.18zm0-19.27c-3.11 0-4.3 1.39-4.3 4v6.26c0 2.63 1.2 4 4.3 4 3.1 0 4.3-1.39 4.3-4V31.3c0-2.63-1.19-4.02-4.3-4.02zm25.14.39c-2.14.97-4.204 2.103-6.17 3.39v15h-5.83V22.79h4.92l.38 2.58c1.897-1.284 3.954-2.313 6.12-3.06l.58 5.36zm16.02 18.4V29.82c0-1.24-.53-1.86-1.86-1.86-2.137.254-4.2.934-6.07 2v16.11h-5.83V22.79h4.45l.57 2c2.906-1.47 6.088-2.315 9.34-2.48 1.843-.174 3.6.82 4.4 2.49 2.91-1.49 6.104-2.34 9.37-2.49 3.87 0 5.26 2.72 5.26 6.88v16.88h-5.83V29.82c0-1.24-.53-1.86-1.86-1.86-2.14.236-4.208.917-6.07 2v16.11h-5.87z"></path>
<path class="rect-dark" fill="#4040B2" d="M36.4 39.13l16.4-9.46V10.72L36.4 20.2"></path>
<path class="rect-light" fill="#5C4EE5" d="M18.2 10.72l16.4 9.48v18.93l-16.4-9.47"></path>
<path class="rect-light" fill="#5C4EE5" d="M0 19.09l16.4 9.47V9.62L0 .15m18.2 50.53l16.4 9.47V41.21l-16.4-9.47"></path>
</svg>
</div>
<ul class="nav sidebar-nav">
<li><a href="/intro/index.html">Intro</a></li>
<li><a href="/docs/index.html">Docs</a></li>
<li><a href="/guides/index.html">Guides</a></li>
<li><a href="/docs/extend/index.html">Extend</a></li>
<li><a href="https://www.hashicorp.com/products/terraform/?utm_source=oss&utm_medium=header-nav&utm_campaign=terraform">Enterprise</a></li>
</ul>
<div class="divider"></div>
<ul class="external nav sidebar-nav">
<li>
<a href="/downloads.html">
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewbox="0 0 28 28" enable-background="new 0 0 28 28" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve">
<path d="M28 0H0v28h28V0zM13.8 22.9L7 17.3l2-2.4 3.2 2.6V7h3.2v10.5l3.2-2.6 2 2.4L13.8 22.9z"></path>
</svg>
Download
</a>
</li>
<li>
<a href="https://github.com/hashicorp/terraform">
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewbox="0 0 28 28" enable-background="new 0 0 28 28" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve">
<path d="M28 0H0v28h11.4c0 0 0-1.3 0-2.4C7.7 26.4 7 23.9 7 23.9 6.4 22.4 5.5 22 5.5 22c-1.2-0.8 0.1-0.8 0.1-0.8 1.3 0.1 2 1.4 2 1.4 1.2 2 3 1.4 3.8 1.1 0.1-0.8 0.5-1.4 0.9-1.8 -2.9-0.3-6-1.5-6-6.5 0-1.4 0.5-2.6 1.3-3.5C7.5 11.5 7 10.2 7.8 8.4c0 0 1.1-0.4 3.6 1.3 1-0.3 2.2-0.4 3.3-0.4 1.1 0 2.2 0.2 3.3 0.4 2.5-1.7 3.6-1.3 3.6-1.3 0.7 1.8 0.3 3.1 0.1 3.5 0.8 0.9 1.3 2.1 1.3 3.5 0 5-3.1 6.1-6 6.5 0.5 0.4 0.9 1.2 0.9 2.4 0 1.8 0 3.7 0 3.7H28V0z"></path>
</svg>
GitHub
</a>
</li>
</ul>
</aside>
<div class="container">
<div class="row">
<div id="docs-sidebar" class="col-sm-4 col-md-3 col-xs-12 hidden-print" role="complementary">
<ul class="nav docs-sidenav">
<li>
<a href="/docs/configuration/index.html">Configuration</a>
<ul class="nav">
<li>
<a href="/docs/configuration/load.html">Load Order and Semantics</a>
</li>
<li>
<a href="/docs/configuration/syntax.html">Configuration Syntax</a>
</li>
<li>
<a href="/docs/configuration/interpolation.html">Interpolation Syntax</a>
</li>
<li>
<a href="/docs/configuration/override.html">Overrides</a>
</li>
<li>
<a href="/docs/configuration/resources.html">Resources</a>
</li>
<li>
<a href="/docs/configuration/data-sources.html">Data Sources</a>
</li>
<li>
<a href="/docs/configuration/providers.html">Providers</a>
</li>
<li>
<a href="/docs/configuration/variables.html">Variables</a>
</li>
<li>
<a href="/docs/configuration/outputs.html">Outputs</a>
</li>
<li>
<a href="/docs/configuration/locals.html">Local Values</a>
</li>
<li>
<a href="/docs/configuration/modules.html">Modules</a>
</li>
<li>
<a href="/docs/configuration/terraform.html">Terraform</a>
</li>
<li>
<a href="/docs/configuration/terraform-enterprise.html">Terraform Push (deprecated)</a>
</li>
<li>
<a href="/docs/configuration/environment-variables.html">Environment Variables</a>
</li>
</ul>
</li>
<li>
<a href="/docs/commands/index.html">Commands (CLI)</a>
<ul class="nav">
<li>
<a href="/docs/commands/apply.html">apply</a>
</li>
<li>
<a href="/docs/commands/console.html">console</a>
</li>
<li>
<a href="/docs/commands/destroy.html">destroy</a>
</li>
<li>
<a href="/docs/commands/env.html">env</a>
</li>
<li>
<a href="/docs/commands/fmt.html">fmt</a>
</li>
<li>
<a href="/docs/commands/force-unlock.html">force-unlock</a>
</li>
<li>
<a href="/docs/commands/get.html">get</a>
</li>
<li>
<a href="/docs/commands/graph.html">graph</a>
</li>
<li>
<a href="/docs/commands/import.html">import</a>
</li>
<li>
<a href="/docs/commands/init.html">init</a>
</li>
<li>
<a href="/docs/commands/output.html">output</a>
</li>
<li>
<a href="/docs/commands/plan.html">plan</a>
</li>
<li>
<a href="/docs/commands/providers.html">providers</a>
</li>
<li>
<a href="/docs/commands/push.html">push</a>
</li>
<li>
<a href="/docs/commands/refresh.html">refresh</a>
</li>
<li>
<a href="/docs/commands/show.html">show</a>
</li>
<li>
<a href="/docs/commands/state/index.html">state</a>
</li>
<li>
<a href="/docs/commands/taint.html">taint</a>
</li>
<li>
<a href="/docs/commands/validate.html">validate</a>
</li>
<li>
<a href="/docs/commands/untaint.html">untaint</a>
</li>
<li>
<a href="/docs/commands/workspace/index.html">workspace</a>
</li>
<li>
<a href="/docs/commands/cli-config.html">CLI Config File</a>
</li>
</ul>
</li>
<li>
<a href="/docs/import/index.html">Import</a>
<ul class="nav">
<li>
<a href="/docs/import/usage.html">Usage</a>
</li>
<li>
<a href="/docs/import/importability.html">Resource Importability</a>
</li>
</ul>
</li>
<li>
<a href="/docs/state/index.html">State</a>
<ul class="nav">
<li>
<a href="/docs/state/purpose.html">Purpose</a>
</li>
<li>
<a href="/docs/state/import.html">Import Existing Resources</a>
</li>
<li>
<a href="/docs/state/locking.html">Locking</a>
</li>
<li>
<a href="/docs/state/workspaces.html">Workspaces</a>
</li>
<li>
<a href="/docs/state/remote.html">Remote State</a>
</li>
<li>
<a href="/docs/state/sensitive-data.html">Sensitive Data</a>
</li>
</ul>
</li>
<li class="active">
<a href="/docs/providers/index.html">Providers</a>
<ul class="nav">
<li>
<a href="/docs/providers/type/major-index.html">Major Cloud</a>
</li>
<li>
<a href="/docs/providers/type/cloud-index.html"> Cloud</a>
</li>
<li>
<a href="/docs/providers/type/infra-index.html">Infrastructure Software</a>
</li>
<li>
<a href="/docs/providers/type/network-index.html">Network</a>
</li>
<li>
<a href="/docs/providers/type/vcs-index.html">VCS</a>
</li>
<li>
<a href="/docs/providers/type/monitor-index.html">Monitor & System Management</a>
</li>
<li>
<a href="/docs/providers/type/database-index.html">Database</a>
</li>
<li>
<a href="/docs/providers/type/misc-index.html">Misc.</a>
</li>
<li class="active">
<a href="/docs/providers/type/community-index.html">Community</a>
</li>
</ul>
</li>
<li>
<a href="/docs/provisioners/index.html">Provisioners</a>
<ul class="nav">
<li>
<a href="/docs/provisioners/chef.html">chef</a>
</li>
<li>
<a href="/docs/provisioners/connection.html">connection</a>
</li>
<li>
<a href="/docs/provisioners/file.html">file</a>
</li>
<li>
<a href="/docs/provisioners/habitat.html">habitat</a>
</li>
<li>
<a href="/docs/provisioners/local-exec.html">local-exec</a>
</li>
<li>
<a href="/docs/provisioners/null_resource.html">null_resource</a>
</li>
<li>
<a href="/docs/provisioners/remote-exec.html">remote-exec</a>
</li>
<li>
<a href="/docs/provisioners/salt-masterless.html">salt-masterless</a>
</li>
</ul>
</li>
<li>
<a href="/docs/modules/index.html">Modules</a>
<ul class="nav">
<li>
<a href="/docs/modules/usage.html">Usage</a>
</li>
<li>
<a href="/docs/modules/sources.html">Sources</a>
</li>
<li>
<a href="/docs/registry/index.html">Registry</a>
</li>
<li>
<a href="/docs/modules/create.html">Creating Modules</a>
</li>
</ul>
</li>
<li>
<a href="/docs/backends/index.html">Backends</a>
<ul class="nav">
<li>
<a href="/docs/backends/init.html">Init</a>
</li>
<li>
<a href="/docs/backends/config.html">Configuration</a>
</li>
<li>
<a href="/docs/backends/state.html">State Storage & Locking</a>
</li>
<li>
<a href="/docs/backends/types/index.html">Backend Types</a>
</li>
</ul>
</li>
<li>
<a href="/docs/plugins/index.html">Plugins</a>
<ul class="nav">
<li>
<a href="/docs/plugins/basics.html">Basics</a>
</li>
<li>
<a href="/docs/plugins/provider.html">Provider</a>
</li>
<li>
<a href="/docs/internals/internal-plugins.html">Internals</a>
</li>
</ul>
</li>
<li>
<a href="/docs/internals/index.html">Internals</a>
<ul class="nav">
<li>
<a href="/docs/internals/debugging.html">Debugging Terraform</a>
</li>
<li>
<a href="/docs/internals/graph.html">Resource Graph</a>
</li>
<li>
<a href="/docs/internals/lifecycle.html">Resource Lifecycle</a>
</li>
<li>
<a href="/docs/internals/resource-addressing.html">Resource Addressing</a>
</li>
<li>
<a href="/docs/internals/remote-service-discovery.html">Remote Service Discovery</a>
</li>
<li>
<a href="/docs/internals/internal-plugins.html">Internal Plugins</a>
</li>
</ul>
</li>
<hr>
<li>
<a class="back" href="/docs/enterprise/index.html">Terraform Enterprise</a>
</li>
<li>
<a class="back" href="/docs/enterprise-legacy/index.html">Terraform Enterprise (legacy)</a>
</li>
</ul>
</div>
<div id="inner" class="col-sm-8 col-md-9 col-xs-12" role="main">
<h1 id="community-providers">
<a name="community-providers" class="anchor" href="#community-providers">»</a>
Community Providers
</h1>
<p>The providers listed below have been built by the community of Terraform users
and vendors. These providers are not tested nor officially maintained by
HashiCorp, and are listed here in order to help users find them easily.</p>
<p>If you have built a provider and would like to add it to this community list,
please fill out this <a href="https://docs.google.com/forms/d/e/1FAIpQLSeenG02tGEmz7pntIqMKlp5kY53f8AV5u88wJ_H1pJc2CmvKA/viewform?usp=sf_link#responses">community providers form</a>.</p>
<hr/>
<table class="table">
<p><td><a href="https://github.com/vancluever/terraform-provider-acme">ACME/Let's Encrypt</a></td>
<td><a href="https://github.com/GSLabDev/terraform-provider-ad">Active Directory</a></td>
<td><a href="https://github.com/zambien/terraform-provider-apigee">Apigee</a></td>
</tr>
<tr>
<td><a href="https://github.com/atlassian/terraform-provider-artifactory">Artifactory</a></td>
<td><a href="https://github.com/bocodigitalmedia/terraform-provider-auth0">Auth0</a></td>
<td><a href="https://github.com/avinetworks/terraform-provider-avi">AVI</a></td>
</tr>
<tr>
<td><a href="https://github.com/AviatrixSystems/terraform-provider-aviatrix">Aviatrix</a></td>
<td><a href="https://github.com/cloudamqp/terraform-provider">CloudAMQP</a></td>
<td><a href="https://github.com/cloudkarafka/terraform-provider">CloudKarafka</a></td>
</tr>
<tr>
<td><a href="https://github.com/cloudmqtt/terraform-provider">CloudMQTT</a></td>
<td><a href="https://github.com/Ashald/terraform-provider-consulacl">Consul ACL</a></td>
<td><a href="https://github.com/coreos/terraform-provider-ct">CoreOS Container Linux Configs</a></td>
</tr>
<tr>
<td><a href="https://github.com/nicolai86/terraform-provider-couchdb">CouchDB</a></td>
<td><a href="https://github.com/rackn/terraform-provider-drp/">Digital Rebar</a></td>
<td><a href="https://github.com/gstruct/terraform-provider-dockermachine">Docker Machine</a></td>
</tr>
<tr>
<td><a href="https://github.com/artisanofcode/terraform-provider-drone">Drone</a></td>
<td><a href="https://github.com/callensm/terraform-provider-dropbox">Dropbox</a></td>
<td><a href="https://github.com/alexissavin/terraform-provider-solidserver">EfficientIP</a></td>
</tr>
<tr>
<td><a href="https://github.com/elephantsql/terraform-provider">ElephantSQL</a></td>
<td><a href="https://github.com/josenk/terraform-provider-esxi">ESXI</a></td>
<td><a href="https://github.com/tiramiseb/terraform-provider-gandi">Gandi</a></td>
</tr>
<tr>
<td><a href="https://github.com/Mastercard/terraform-provider-restapi">Generic Rest API</a></td>
<td><a href="https://github.com/MikeSouza/terraform-provider-glue">Glue</a></td><br/>
<td><a href="https://github.com/drewsonne/terraform-provider-gocd">GoCD</a></td>
</tr>
<tr>
<td><a href="https://github.com/sethvargo/terraform-provider-googlecalendar">Google Calendar</a></td>
<td><a href="https://github.com/DeviaVir/terraform-provider-gsuite">Google G Suite</a></td>
<td><a href="https://github.com/mcuadros/terraform-provider-helm">Helm</a></td>
</tr>
<tr>
<td><a href="https://github.com/ribbybibby/terraform-provider-hiera">Hiera</a></td>
<td><a href="https://github.com/GSLabDev/terraform-provider-httpfileupload">HTTP File Upload</a></td>
<td><a href="https://github.com/HewlettPackard/terraform-provider-oneview">HP OneView</a></td>
</tr>
<tr>
<td><a href="https://github.com/IBM-Cloud/terraform-provider-ibm">IBM Cloud</a></td>
<td><a href="https://github.com/iij/terraform-provider-p2pub">IIJ GIO</a></td>
<td><a href="https://github.com/sky-uk/terraform-provider-infoblox">Infoblox</a></td>
</tr>
<tr>
<td><a href="https://github.com/anubhavmishra/terraform-provider-jira">Jira</a></td>
<td><a href="https://github.com/geekmuse/jumpcloud-terraform-provider">JumpCloud</a></td>
<td><a href="https://github.com/plmwong/terraform-provider-keboola">Kaboola</a></td>
</tr>
<tr>
<td><a href="https://github.com/Mongey/terraform-provider-kafka">Kafka</a></td>
<td><a href="https://github.com/ewilde/terraform-provider-kibana">Kibana</a></td>
<td><a href="https://github.com/kevholditch/terraform-provider-kong">Kong</a></td>
</tr>
<tr>
<td><a href="https://github.com/sl1pm4t/terraform-provider-lxd">LXD</a></td>
<td><a href="https://github.com/coreos/terraform-provider-matchbox">Matchbox</a></td>
<td><a href="https://github.com/akshaykarle/terraform-provider-mongodbatlas">MongoDB Atlas</a></td>
</tr>
<tr>
<td><a href="https://github.com/GSLabDev/terraform-provider-nsxv">NSX-V</a></td>
<td><a href="https://github.com/nutanix/terraform-provider-nutanix">Nutanix</a></td>
<td><a href="https://github.com/src-d/terraform-provider-online-net">Online.net</a></td>
</tr>
<tr>
<td><a href="https://github.com/GSLabDev/terraform-provider-odl">Open Day Light</a></td>
<td><a href="https://github.com/dikhan/terraform-provider-openapi">OpenAPI</a></td>
<td><a href="https://github.com/camptocamp/terraform-provider-pass">Pass</a></td>
</tr>
<tr>
<td><a href="https://github.com/camptocamp/terraform-provider-puppetca">Puppet CA</a></td>
<td><a href="https://github.com/camptocamp/terraform-provider-puppetdb">PuppetDB</a></td>
<td><a href="https://github.com/yunify/terraform-provider-qingcloud">QingCloud</a></td>
</tr>
<tr>
<td><a href="https://github.com/frankfarrell/terraform-provider-redshift">Redshift</a></td>
<td><a href="https://github.com/yamamoto-febc/terraform-provider-rke">RKE</a></td>
<td><a href="https://github.com/ewilde/terraform-provider-runscope">Runscope</a></td>
</tr>
<tr>
<td><a href="https://github.com/sacloud/terraform-provider-sakuracloud">SakuraCloud</a></td>
<td><a href="https://github.com/GSLabDev/terraform-provider-scvmm">SCVMM</a></td>
<td><a href="https://github.com/jianyuan/terraform-provider-sentry">Sentry</a></td>
</tr>
<tr>
<td><a href="https://github.com/SewanDevs/terraform-provider-sewan">Sewan</a></td>
<td><a href="https://github.com/Yelp/terraform-provider-signalform">SignalFx</a></td>
<td><a href="https://github.com/ShopRunner/terraform-provider-snowflake">Snowflake</a></td>
</tr>
<tr>
<td><a href="https://github.com/Ashald/terraform-provider-stateful">Stateful</a></td>
<td><a href="https://github.com/bocodigitalmedia/terraform-provider-transloadit">Transloadit</a></td>
<td><a href="https://github.com/PortOfPortland/terraform-provider-windns">Win DNS</a></td>
</tr>
<tr>
<td><a href="https://github.com/GSLabDev/terraform-provider-vra">vRealize Automation</a></td>
<td><a href="https://github.com/Ashald/terraform-provider-yaml">YAML</a></td>
<td><a href="https://github.com/cormacrelf/terraform-provider-zerotier">ZeroTier</a></td>
</tr></p>
</table>
</div>
</div>
</div>
<div id="footer" class="navigation hidden-print">
<div class="container">
<div class="row">
<div class="col-xs-12">
<ul class="footer-links nav navbar-nav">
<li><a href="/intro/index.html">Intro</a></li>
<li><a href="/docs/index.html">Docs</a></li>
<li><a href="/docs/extend/index.html">Extend</a></li>
<li><a href="https://www.hashicorp.com/privacy">Privacy</a></li>
<li><a href="/security.html">Security</a></li>
<li><a href="/assets/files/press-kit.zip">Press Kit</a></li>
</ul>
<ul class="footer-links nav navbar-nav navbar-right">
<li><a href="https://github.com/hashicorp/terraform/edit/master/website/docs/providers/type/community-index.html.markdown">Edit this page</a></li>
</ul>
</div>
</div>
</div>
</div>
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "Product",
"name": "Terraform",
"alternateName": "Terraform by HashiCorp",
"manufacturer": "HashiCorp",
"url": "https://www.terraform.io",
"logo": "https://www.terraform.io/assets/images/logo-hashicorp-3f10732f.svg",
"sameAs": [
"https://github.com/hashicorp/terraform"
]
}
</script>
</body>
</html>
================================================
FILE: community/community.json
================================================
[
{
"versions" : [
"master"
],
"parse_target" : "minikube",
"name" : "terraform-provider-minikube",
"owner" : "jgensler8",
"link" : "https://github.com/jgensler8/terraform-provider-minikube"
},
{
"versions" : [
"master"
],
"parse_target" : "razor",
"name" : "terraform-provider-razor",
"owner" : "juliosueiras",
"link" : "https://github.com/juliosueiras/terraform-provider-razor"
},
{
"versions" : [
"develop"
],
"parse_target" : "nifi",
"name" : "terraform-provider-nifi",
"owner" : "Glympse",
"link" : "https://github.com/Glympse/terraform-provider-nifi"
},
{
"versions" : [
"master"
],
"parse_target" : "akamai",
"name" : "terraform-provider-akamai",
"owner" : "akamai",
"link" : "https://github.com/akamai/terraform-provider-akamai"
},
{
"parse_target" : "plugin/providers/acme",
"name" : "terraform-provider-acme",
"owner" : "vancluever",
"versions" : [
"master",
"v1.0.0",
"v0.6.0",
"v0.5.0",
"v0.4.0",
"v0.3.0",
"v0.3.0-beta2",
"v0.2.1",
"v0.2.0",
"v0.1.0"
],
"link" : "https://github.com/vancluever/terraform-provider-acme"
},
{
"versions" : [
"master"
],
"parse_target" : "packer",
"name" : "terraform-provider-packer",
"owner" : "juliosueiras",
"link" : "https://github.com/juliosueiras/terraform-provider-packer"
},
{
"parse_target" : "plugin/providers/acme",
"name" : "terraform-provider-acme",
"owner" : "vancluever",
"versions" : [
"master",
"v1.0.0",
"v0.6.0",
"v0.5.0",
"v0.4.0",
"v0.3.0",
"v0.3.0-beta2",
"v0.2.1",
"v0.2.0",
"v0.1.0"
],
"link" : "https://github.com/vancluever/terraform-provider-acme"
},
{
"versions" : [
"master"
],
"link" : "https://github.com/GSLabDev/terraform-provider-ad",
"owner" : "GSLabDev",
"name" : "terraform-provider-ad",
"parse_target" : "ad"
},
{
"versions" : [
"master",
"v0.0.9",
"v0.0.8",
"v0.0.7",
"v0.0.6",
"v0.0.5",
"v0.0.4",
"v0.0.3",
"v0.0.2",
"v0.0.1"
],
"link" : "https://github.com/zambien/terraform-provider-apigee",
"owner" : "zambien",
"parse_target" : "apigee",
"name" : "terraform-provider-apigee"
},
{
"versions" : [
"master",
"v1.2.3",
"v1.2.2",
"v1.2.1",
"v1.2.0",
"v1.1.0",
"v1.0.1",
"v0.0.2",
"v0.0.1"
],
"link" : "https://github.com/atlassian/terraform-provider-artifactory",
"parse_target" : "pkg/artifactory",
"name" : "terraform-provider-artifactory",
"owner" : "atlassian"
},
{
"parse_target" : "auth0",
"name" : "terraform-provider-auth0",
"owner" : "bocodigitalmedia",
"link" : "https://github.com/bocodigitalmedia/terraform-provider-auth0",
"versions" : [
"master"
]
},
{
"parse_target" : "avi",
"name" : "terraform-provider-avi",
"owner" : "avinetworks",
"versions" : [
"master",
"17.2.9",
"17.2.7b1"
],
"link" : "https://github.com/avinetworks/terraform-provider-avi"
},
{
"versions" : [
"master"
],
"link" : "https://github.com/AviatrixSystems/terraform-provider-aviatrix",
"name" : "terraform-provider-aviatrix",
"parse_target" : "aviatrix",
"owner" : "AviatrixSystems"
},
{
"parse_target" : "provider",
"name" : "terraform-provider",
"owner" : "cloudamqp",
"versions" : [
"master"
],
"link" : "https://github.com/cloudamqp/terraform-provider"
},
{
"link" : "https://github.com/cloudkarafka/terraform-provider",
"versions" : [
"master"
],
"name" : "terraform-provider",
"parse_target" : "provider",
"owner" : "cloudkarafka"
},
{
"parse_target" : "provider",
"name" : "terraform-provider",
"owner" : "cloudmqtt",
"link" : "https://github.com/cloudmqtt/terraform-provider",
"versions" : [
"master"
]
},
{
"parse_target" : "consulacl",
"name" : "terraform-provider-consulacl",
"owner" : "Ashald",
"link" : "https://github.com/Ashald/terraform-provider-consulacl",
"versions" : [
"master",
"v1.1.0",
"v1.0.0"
]
},
{
"versions" : [
"master",
"v0.3.0",
"v0.2.1",
"v0.2.0",
"v0.1.0"
],
"link" : "https://github.com/coreos/terraform-provider-ct",
"owner" : "coreos",
"name" : "terraform-provider-ct",
"parse_target" : "ct"
},
{
"versions" : [
"master"
],
"link" : "https://github.com/nicolai86/terraform-provider-couchdb",
"parse_target" : "couchdb",
"name" : "terraform-provider-couchdb",
"owner" : "nicolai86"
},
{
"versions" : [
"master",
"v1.1.1",
"v1.1.0",
"v1.0.6",
"v1.0.5",
"v1.0.4",
"v1.0.3",
"v1.0.2",
"v1.0.1",
"v1.0.0",
"v0.9.5",
"v0.9.0",
"v0.7.8",
"v0.7.7",
"v0.7.6",
"v0.7.5",
"v0.7.4",
"v0.7.3",
"v0.7.2",
"v0.7.1",
"v0.7.0",
"v0.0.1",
"untagged-ce4bf22f459a74382826",
"tip",
"stable"
],
"link" : "https://github.com/rackn/terraform-provider-drp/",
"parse_target" : "provider",
"name" : "terraform-provider-drp",
"owner" : "rackn"
},
{
"versions" : [
"master",
"0.1.4",
"0.1.3",
"0.1.2",
"0.1.1",
"0.1.0"
],
"link" : "https://github.com/gstruct/terraform-provider-dockermachine",
"owner" : "gstruct",
"parse_target" : "provider",
"name" : "terraform-provider-dockermachine"
},
{
"link" : "https://github.com/artisanofcode/terraform-provider-drone",
"versions" : [
"master",
"v0.0.2",
"v0.0.1"
],
"owner" : "artisanofcode",
"parse_target" : "drone",
"name" : "terraform-provider-drone"
},
{
"versions" : [
"master",
"1.0.0"
],
"link" : "https://github.com/callensm/terraform-provider-dropbox",
"owner" : "callensm",
"parse_target" : "dropbox",
"name" : "terraform-provider-dropbox"
},
{
"versions" : [
"master",
"v1.0.3",
"v1.0.2",
"v1.0.1",
"v1.0.0"
],
"link" : "https://github.com/alexissavin/terraform-provider-solidserver",
"parse_target" : "solidserver",
"name" : "terraform-provider-solidserver",
"owner" : "alexissavin"
},
{
"link" : "https://github.com/elephantsql/terraform-provider",
"versions" : [
"master"
],
"owner" : "elephantsql",
"parse_target" : "provider",
"name" : "terraform-provider"
},
{
"owner" : "josenk",
"parse_target" : "esxi",
"name" : "terraform-provider-esxi",
"link" : "https://github.com/josenk/terraform-provider-esxi",
"versions" : [
"master"
]
},
{
"versions" : [
"master"
],
"link" : "https://github.com/tiramiseb/terraform-provider-gandi",
"parse_target" : "gandi",
"name" : "terraform-provider-gandi",
"owner" : "tiramiseb"
},
{
"link" : "https://github.com/Mastercard/terraform-provider-restapi",
"versions" : [
"master",
"v0.1.0"
],
"owner" : "Mastercard",
"parse_target" : "restapi",
"name" : "terraform-provider-restapi"
},
{
"link" : "https://github.com/MikeSouza/terraform-provider-glue",
"versions" : [
"master"
],
"owner" : "MikeSouza",
"name" : "terraform-provider-glue",
"parse_target" : "glue"
},
{
"parse_target" : "gocd",
"name" : "terraform-provider-gocd",
"owner" : "drewsonne",
"versions" : [
"master",
"0.1.21",
"0.1.20",
"0.1.19",
"0.1.18",
"0.1.17",
"0.1.16",
"0.1.15",
"0.1.14",
"0.1.13",
"0.1.12",
"0.1.11",
"0.1.10",
"0.1.9",
"0.1.8",
"0.1.7",
"0.1.6",
"0.1.5",
"0.1.4",
"0.1.3",
"0.1.2",
"0.1.1",
"0.1.0",
"0.0.11-rc2",
"0.0.11-rc1",
"0.0.10",
"0.0.9",
"0.0.8",
"0.0.7",
"0.0.6",
"0.0.5"
],
"link" : "https://github.com/drewsonne/terraform-provider-gocd"
},
{
"link" : "https://github.com/sethvargo/terraform-provider-googlecalendar",
"versions" : [
"master",
"v0.1.0"
],
"name" : "terraform-provider-googlecalendar",
"parse_target" : "googlecalendar",
"owner" : "sethvargo"
},
{
"owner" : "DeviaVir",
"parse_target" : "gsuite",
"name" : "terraform-provider-gsuite",
"link" : "https://github.com/DeviaVir/terraform-provider-gsuite",
"versions" : [
"master",
"v0.1.7",
"v0.1.6",
"v0.1.5",
"v0.1.4",
"v0.1.3",
"v0.1.2",
"v0.1.1",
"v0.1.0"
]
},
{
"versions" : [
"master",
"v0.5.1",
"v0.5.0",
"v0.4.0",
"v0.3.2",
"v0.3.1",
"v0.3.0",
"v0.2.0",
"v0.1.0"
],
"link" : "https://github.com/mcuadros/terraform-provider-helm",
"owner" : "mcuadros",
"parse_target" : "helm",
"name" : "terraform-provider-helm"
},
{
"parse_target" : "hiera",
"name" : "terraform-provider-hiera",
"owner" : "ribbybibby",
"versions" : [
"master",
"v.0.1.0"
],
"link" : "https://github.com/ribbybibby/terraform-provider-hiera"
},
{
"link" : "https://github.com/GSLabDev/terraform-provider-httpfileupload",
"versions" : [
"master"
],
"name" : "terraform-provider-httpfileupload",
"parse_target" : "httpfileupload",
"owner" : "GSLabDev"
},
{
"link" : "https://github.com/HewlettPackard/terraform-provider-oneview",
"versions" : [
"master"
],
"name" : "terraform-provider-oneview",
"parse_target" : "oneview",
"owner" : "HewlettPackard"
},
{
"versions" : [
"master",
"v0.11.1",
"v0.11.0",
"v0.10.0",
"v0.9.1",
"v0.9.0",
"v0.8.0",
"v0.7.0",
"v0.6.0",
"v0.5.1",
"v0.5.0",
"v0.4.0"
],
"link" : "https://github.com/IBM-Cloud/terraform-provider-ibm",
"name" : "terraform-provider-ibm",
"parse_target" : "ibm",
"owner" : "IBM-Cloud"
},
{
"versions" : [
"master",
"v0.3.0",
"v0.2.0",
"v0.1.0"
],
"link" : "https://github.com/iij/terraform-provider-p2pub",
"owner" : "iij",
"parse_target" : "p2pub",
"name" : "terraform-provider-p2pub"
},
{
"link" : "https://github.com/sky-uk/terraform-provider-infoblox",
"versions" : [
"master",
"0.1.11",
"0.1.10",
"0.1.9",
"0.1.8",
"0.1.7",
"0.1.6",
"0.1.5",
"0.1.4",
"0.1.3",
"0.1.2",
"0.1.1",
"0.1.0",
"0.0.13",
"0.0.12",
"0.0.11",
"0.0.10",
"0.0.9",
"0.0.8",
"0.0.7",
"0.0.6",
"0.0.5",
"0.0.4",
"0.0.3",
"0.0.2",
"0.0.1"
],
"owner" : "sky-uk",
"parse_target" : "infoblox",
"name" : "terraform-provider-infoblox"
},
{
"parse_target" : "jira",
"name" : "terraform-provider-jira",
"owner" : "anubhavmishra",
"link" : "https://github.com/anubhavmishra/terraform-provider-jira",
"versions" : [
"master",
"0.1.0"
]
},
{
"versions" : [
"master",
"0.0.1"
],
"link" : "https://github.com/geekmuse/jumpcloud-terraform-provider",
"name" : "jumpcloud-terraform-provider",
"parse_target" : "provider",
"owner" : "geekmuse"
},
{
"owner" : "plmwong",
"name" : "terraform-provider-keboola",
"parse_target" : "plugin/providers/keboola",
"link" : "https://github.com/plmwong/terraform-provider-keboola",
"versions" : [
"master"
]
},
{
"owner" : "Mongey",
"parse_target" : "kafka",
"name" : "terraform-provider-kafka",
"versions" : [
"master",
"v0.1.1",
"v0.1.0"
],
"link" : "https://github.com/Mongey/terraform-provider-kafka"
},
{
"versions" : [
"master",
"v0.6.0",
"v0.5.1",
"v0.5.0",
"v0.4.0",
"v0.3.0",
"v0.2.0",
"v0.1.2",
"v0.1.1",
"v0.1.0"
],
"link" : "https://github.com/ewilde/terraform-provider-kibana",
"parse_target" : "kibana",
"name" : "terraform-provider-kibana",
"owner" : "ewilde"
},
{
"owner" : "kevholditch",
"name" : "terraform-provider-kong",
"parse_target" : "kong",
"versions" : [
"master",
"v1.5.0",
"v1.4.0",
"v1.3.0",
"v1.2.0",
"v1.1.0",
"v1.0.0",
"v0.14.0",
"v0.13.0",
"v0.12.0",
"v0.11.0",
"v0.10.0",
"v0.9.0",
"v0.8.0",
"v0.7.0",
"v0.6.0",
"v0.5.0",
"v0.4.0",
"v0.3.0",
"v0.2.0",
"v0.1.0"
],
"link" : "https://github.com/kevholditch/terraform-provider-kong"
},
{
"name" : "terraform-provider-lxd",
"parse_target" : "lxd",
"owner" : "sl1pm4t",
"versions" : [
"master",
"v1.1.1",
"v1.1.0",
"v1.0.0",
"v0.10.4",
"v0.10.0-beta2",
"v0.9.8",
"v0.9.5",
"v0.9.5beta1",
"v0.9.4",
"v0.9.3",
"v0.9.1",
"v0.9.0",
"v0.8.1",
"v0.8.0",
"v0.8.0-rc3"
],
"link" : "https://github.com/sl1pm4t/terraform-provider-lxd"
},
{
"link" : "https://github.com/coreos/terraform-provider-matchbox",
"versions" : [
"master",
"v0.2.2",
"v0.2.1",
"v0.2.0",
"v0.1.2",
"v0.1.1",
"v0.1.0"
],
"parse_target" : "matchbox",
"name" : "terraform-provider-matchbox",
"owner" : "coreos"
},
{
"versions" : [
"master",
"v0.6.1",
"v0.6.0",
"v0.5.0",
"v0.4.6",
"v0.4.5",
"v0.4.4",
"v0.4.3",
"v0.4.2",
"v0.2.2",
"v0.2.1",
"v0.2.0",
"v0.1.0",
"v0.0.2",
"v0.0.1",
"0.4.2",
"0.4.1",
"0.4.0",
"0.3.1",
"0.3.0"
],
"link" : "https://github.com/akshaykarle/terraform-provider-mongodbatlas",
"name" : "terraform-provider-mongodbatlas",
"parse_target" : "mongodbatlas",
"owner" : "akshaykarle"
},
{
"parse_target" : "nsxv",
"name" : "terraform-provider-nsxv",
"owner" : "GSLabDev",
"versions" : [
"master"
],
"link" : "https://github.com/GSLabDev/terraform-provider-nsxv"
},
{
"parse_target" : "nutanix",
"name" : "terraform-provider-nutanix",
"owner" : "nutanix",
"versions" : [
"master",
"v1.0.0-rc1"
],
"link" : "https://github.com/nutanix/terraform-provider-nutanix"
},
{
"versions" : [
"master"
],
"link" : "https://github.com/src-d/terraform-provider-online-net",
"owner" : "src-d",
"name" : "terraform-provider-online-net",
"parse_target" : "net"
},
{
"name" : "terraform-provider-odl",
"parse_target" : "odl",
"owner" : "GSLabDev",
"link" : "https://github.com/GSLabDev/terraform-provider-odl",
"versions" : [
"master"
]
},
{
"parse_target" : "openapi",
"name" : "terraform-provider-openapi",
"owner" : "dikhan",
"link" : "https://github.com/dikhan/terraform-provider-openapi",
"versions" : [
"master",
"v0.1.2",
"v0.1.1",
"v0.1.0"
]
},
{
"link" : "https://github.com/camptocamp/terraform-provider-pass",
"versions" : [
"master",
"1.1.0",
"1.0.1",
"1.0.0",
"0.1.4",
"0.1.3",
"0.1.2",
"0.1.1",
"0.1.0"
],
"owner" : "camptocamp",
"parse_target" : "pass",
"name" : "terraform-provider-pass"
},
{
"versions" : [
"master",
"1.0.1",
"1.0.0"
],
"link" : "https://github.com/camptocamp/terraform-provider-puppetca",
"parse_target" : "puppetca",
"name" : "terraform-provider-puppetca",
"owner" : "camptocamp"
},
{
"link" : "https://github.com/camptocamp/terraform-provider-puppetdb",
"versions" : [
"master",
"0.1.1",
"0.1.0"
],
"name" : "terraform-provider-puppetdb",
"parse_target" : "puppetdb",
"owner" : "camptocamp"
},
{
"name" : "terraform-provider-qingcloud",
"parse_target" : "qingcloud",
"owner" : "yunify",
"versions" : [
"master",
"v1.2.2",
"v1.2.1",
"v1.2.0",
"v1.1",
"v1.0.1",
"v1.0.0"
],
"link" : "https://github.com/yunify/terraform-provider-qingcloud"
},
{
"link" : "https://github.com/frankfarrell/terraform-provider-redshift",
"versions" : [
"master"
],
"owner" : "frankfarrell",
"parse_target" : "redshift",
"name" : "terraform-provider-redshift"
},
{
"name" : "terraform-provider-rke",
"parse_target" : "rke",
"owner" : "yamamoto-febc",
"versions" : [
"master",
"0.3.4",
"0.3.3",
"0.3.2",
"0.3.1",
"0.3.0",
"0.2.1",
"0.2.0",
"0.1.0",
"0.0.1"
],
"link" : "https://github.com/yamamoto-febc/terraform-provider-rke"
},
{
"versions" : [
"master",
"v0.5.7",
"v0.5.6",
"v0.5.5",
"v0.5.4",
"v0.5.3",
"v0.5.2",
"v0.5.1",
"v0.5.0",
"v0.5",
"v0.4.1",
"v0.4.0",
"v0.3.1",
"v0.3.0",
"v0.2.0",
"v0.1.0"
],
"link" : "https://github.com/ewilde/terraform-provider-runscope",
"name" : "terraform-provider-runscope",
"parse_target" : "runscope",
"owner" : "ewilde"
},
{
"parse_target" : "sakuracloud",
"name" : "terraform-provider-sakuracloud",
"owner" : "sacloud",
"link" : "https://github.com/sacloud/terraform-provider-sakuracloud",
"versions" : [
"master",
"v1.3.2",
"v1.3.1",
"v1.3.0",
"v1.2.0",
"v1.1.3",
"v1.1.2",
"v1.1.1",
"v1.1.0",
"v1.0.5",
"v1.0.4",
"v1.0.3",
"v1.0.2",
"v1.0.1",
"v1.0.0",
"v1.0.0-rc7",
"v1.0.0-rc6",
"v1.0.0-rc5",
"v1.0.0-rc4",
"v1.0.0-rc3",
"v1.0.0-rc2",
"v1.0.0-rc1",
"v0.14.0",
"v0.13.1",
"v0.13.0",
"v0.12.0",
"v0.12.0-rc1",
"v0.11.0",
"v0.10.4",
"v0.10.3",
"v0.10.2"
]
},
{
"link" : "https://github.com/GSLabDev/terraform-provider-scvmm",
"versions" : [
"master"
],
"parse_target" : "scvmm",
"name" : "terraform-provider-scvmm",
"owner" : "GSLabDev"
},
{
"link" : "https://github.com/jianyuan/terraform-provider-sentry",
"versions" : [
"master",
"v0.4.0",
"v0.3.1",
"v0.3.0",
"v0.2.0",
"v0.1.0"
],
"name" : "terraform-provider-sentry",
"parse_target" : "sentry",
"owner" : "jianyuan"
},
{
"versions" : [
"master"
],
"link" : "https://github.com/SewanDevs/terraform-provider-sewan",
"owner" : "SewanDevs",
"name" : "terraform-provider-sewan",
"parse_target" : "sewan"
},
{
"name" : "terraform-provider-signalform",
"parse_target" : "signalform",
"owner" : "Yelp",
"versions" : [
"master",
"v2.7.0",
"v2.6.0",
"v2.5.1",
"v2.5.0",
"v2.4.0",
"v2.3.0",
"v2.2.9",
"v2.2.8",
"v2.2.7",
"v2.2.6",
"v2.2.5",
"v2.2.4",
"v2.2.3",
"v2.2.2",
"v2.2",
"v2.1.2",
"v2.1.1",
"v2.1.0",
"v2.0",
"v1.9.1",
"v1.9",
"v1.8",
"v1.7",
"v1.6",
"v1.5",
"v1.4",
"v1.3",
"v1.2",
"v1.1",
"v1.0"
],
"link" : "https://github.com/Yelp/terraform-provider-signalform"
},
{
"parse_target" : "snowflake",
"name" : "terraform-provider-snowflake",
"owner" : "ShopRunner",
"versions" : [
"master"
],
"link" : "https://github.com/ShopRunner/terraform-provider-snowflake"
},
{
"owner" : "Ashald",
"parse_target" : "stateful",
"name" : "terraform-provider-stateful",
"versions" : [
"master",
"v1.0.0"
],
"link" : "https://github.com/Ashald/terraform-provider-stateful"
},
{
"name" : "terraform-provider-transloadit",
"parse_target" : "transloadit",
"owner" : "bocodigitalmedia",
"link" : "https://github.com/bocodigitalmedia/terraform-provider-transloadit",
"versions" : [
"master"
]
},
{
"link" : "https://github.com/PortOfPortland/terraform-provider-windns",
"versions" : [
"master",
"v0.2.0",
"v0.1.0"
],
"name" : "terraform-provider-windns",
"parse_target" : "windns",
"owner" : "PortOfPortland"
},
{
"parse_target" : "vra",
"name" : "terraform-provider-vra",
"owner" : "GSLabDev",
"versions" : [
"master"
],
"link" : "https://github.com/GSLabDev/terraform-provider-vra"
},
{
"versions" : [
"master",
"v2.0.0",
"v1.0.0"
],
"link" : "https://github.com/Ashald/terraform-provider-yaml",
"name" : "terraform-provider-yaml",
"parse_target" : "yaml",
"owner" : "Ashald"
},
{
"versions" : [
"master",
"v0.2.0",
"v0.1.0",
"v0.0.1"
],
"link" : "https://github.com/cormacrelf/terraform-provider-zerotier",
"parse_target" : "zerotier",
"name" : "terraform-provider-zerotier",
"owner" : "cormacrelf"
},
{
"versions" : [
"master",
"v0.11.1",
"v0.11.0",
"v0.10.0",
"v0.9.1",
"v0.9.0",
"v0.8.0",
"v0.7.0",
"v0.6.0",
"v0.5.1",
"v0.5.0",
"v0.4.0"
],
"link" : "https://github.com/IBM-Cloud/terraform-provider-ibm",
"parse_target" : "ibm",
"name" : "terraform-provider-ibm",
"owner" : "IBM-Cloud"
}
]
================================================
FILE: community/schemas.rb
================================================
require 'json'
require 'pry'
community = JSON.parse(File.read("community.json"))
community.each do |provider|
name = provider["name"].split("-")[-1]
`mkdir ~/.go/src/github.com/#{provider["owner"]}/#{provider["name"]}/generate-schema`
version = provider["versions"][0]
puts "Start with #{provider["name"]} version #{version}"
if version != "master" and File.exists? "../schemas-extractor/community_schemas/#{name}-#{version}.json"
exit
end
if version == "master" and provider["versions"].count != 1
version = provider["versions"][1]
end
`cd ~/.go/src/github.com/#{provider["owner"]}/#{provider["name"]}/ && git checkout #{version} -f`
special = ""
if ["drp", "dockermachine"].include? provider["name"].split("-")[-1]
special = provider["name"].split("-")[-1]
end
generate_schema_file = <<EOF
// Code from https://github.com/VladRassokhin/intellij-hcl/blob/master/schemas-extractor/template/generate-schema.go
package main
import (
"github.com/hashicorp/terraform/helper/schema"
tf "github.com/hashicorp/terraform/terraform"
#{special} "github.com/#{provider["owner"]}/#{provider["name"]}/#{provider["parse_target"]}"
"encoding/json"
"fmt"
"os"
"path/filepath"
"reflect"
)
// ExportSchema should be called to export the structure
// of the provider.
func Export(p *schema.Provider) *ResourceProviderSchema {
result := new(ResourceProviderSchema)
result.Name = "#{name}"
result.Type = "provider"
result.Version = "#{version}"
result.Provider = schemaMap(p.Schema).Export()
result.Resources = make(map[string]SchemaInfo)
result.DataSources = make(map[string]SchemaInfo)
for k, r := range p.ResourcesMap {
result.Resources[k] = ExportResource(r)
}
for k, ds := range p.DataSourcesMap {
result.DataSources[k] = ExportResource(ds)
}
return result
}
func ExportResource(r *schema.Resource) SchemaInfo {
return schemaMap(r.Schema).Export()
}
// schemaMap is a wrapper that adds nice functions on top of schemas.
type schemaMap map[string]*schema.Schema
// Export exports the format of this schema.
func (m schemaMap) Export() SchemaInfo {
result := make(SchemaInfo)
for k, v := range m {
item := export(v)
result[k] = item
}
return result
}
func export(v *schema.Schema) SchemaDefinition {
item := SchemaDefinition{}
item.Type = fmt.Sprintf("%s", v.Type)
item.Optional = v.Optional
item.Required = v.Required
item.Description = v.Description
item.InputDefault = v.InputDefault
item.Computed = v.Computed
item.MaxItems = v.MaxItems
item.MinItems = v.MinItems
item.PromoteSingle = v.PromoteSingle
item.ComputedWhen = v.ComputedWhen
item.ConflictsWith = v.ConflictsWith
item.Deprecated = v.Deprecated
item.Removed = v.Removed
if v.Elem != nil {
item.Elem = exportValue(v.Elem, fmt.Sprintf("%T", v.Elem))
}
// TODO: Find better solution
if defValue, err := v.DefaultValue(); err == nil && defValue != nil && !reflect.DeepEqual(defValue, v.Default) {
item.Default = exportValue(defValue, fmt.Sprintf("%T", defValue))
}
return item
}
func exportValue(value interface{}, t string) SchemaElement {
s2, ok := value.(*schema.Schema)
if ok {
return SchemaElement{Type: "SchemaElements", ElementsType: fmt.Sprintf("%s", s2.Type)}
}
r2, ok := value.(*schema.Resource)
if ok {
return SchemaElement{Type: "SchemaInfo", Info: ExportResource(r2)}
}
return SchemaElement{Type: t, Value: fmt.Sprintf("%v", value)}
}
func Generate(provider *schema.Provider, name string, outputPath string) {
outputFilePath := filepath.Join(outputPath, fmt.Sprintf("%s.json", name))
if err := DoGenerate(provider, name, outputFilePath); err != nil {
fmt.Fprintln(os.Stderr, "Error: ", err.Error())
os.Exit(255)
}
}
func DoGenerate(provider *schema.Provider, providerName string, outputFilePath string) error {
providerJson, err := json.MarshalIndent(Export(provider), "", " ")
if err != nil {
return err
}
file, err := os.Create(outputFilePath)
if err != nil {
return err
}
defer file.Close()
_, err = file.Write(providerJson)
if err != nil {
return err
}
return file.Sync()
}
type SchemaElement struct {
// One of ValueType or "SchemaElements" or "SchemaInfo"
Type string `json:",omitempty"`
// Set for simple types (from ValueType)
Value string `json:",omitempty"`
// Set if Type == "SchemaElements"
ElementsType string `json:",omitempty"`
// Set if Type == "SchemaInfo"
Info SchemaInfo `json:",omitempty"`
}
type SchemaDefinition struct {
Type string `json:",omitempty"`
Optional bool `json:",omitempty"`
Required bool `json:",omitempty"`
Description string `json:",omitempty"`
InputDefault string `json:",omitempty"`
Computed bool `json:",omitempty"`
MaxItems int `json:",omitempty"`
MinItems int `json:",omitempty"`
PromoteSingle bool `json:",omitempty"`
ComputedWhen []string `json:",omitempty"`
ConflictsWith []string `json:",omitempty"`
Deprecated string `json:",omitempty"`
Removed string `json:",omitempty"`
Default SchemaElement `json:",omitempty"`
Elem SchemaElement `json:",omitempty"`
}
type SchemaInfo map[string]SchemaDefinition
// ResourceProviderSchema
type ResourceProviderSchema struct {
Name string `json:"name"`
Type string `json:"type"`
Version string `json:"version"`
Provider SchemaInfo `json:"provider"`
Resources map[string]SchemaInfo `json:"resources"`
DataSources map[string]SchemaInfo `json:"data-sources"`
}
func main() {
var provider tf.ResourceProvider
provider = #{name}.Provider()
Generate(provider.(*schema.Provider), "#{name}-#{version}", "/Users/fastsupport/.vim/plugged/vim-terraform-completion/schemas-extractor/community_schemas")
}
EOF
open("/Users/fastsupport/.go/src/github.com/#{provider["owner"]}/#{provider["name"]}/generate-schema/generate-schema.go", "w") do |f|
f << generate_schema_file
end
`cd ~/.go/src/github.com/#{provider["owner"]}/#{provider["name"]} && go run generate-schema/generate-schema.go`
end
================================================
FILE: community/test.rb
================================================
require 'nokogiri'
require 'json'
require 'rest-client'
require 'pry'
test = Nokogiri::HTML(File.read('community-index.html'))
hrefs = test.css("table a").collect { |i| i['href'] }
community = JSON.parse(File.read("community.json"))
new_community = []
hrefs.push("https://github.com/IBM-Cloud/terraform-provider-ibm")
hrefs.compact.each do |href|
names = href[19..-1].split("/")
if not Dir.exists? "/Users/fastsupport/.go/src/github.com/#{href[19..-1]}"
`mkdir -p ~/.go/src/github.com/#{names[0]} && cd ~/.go/src/github.com/#{names[0]} && git clone #{href}`
else
`cd ~/.go/src/github.com/#{names[0]}/#{names[1]} && git pull`
end
tags = JSON.parse(RestClient.get("https://api.github.com/repos/#{names[0]}/#{names[1]}/tags?access_token=#{ENV['GITHUB_TOKEN']}"))
tags = tags.collect {|i| i["name"]}
if not community.find {|i| i["name"] == names[1] }.nil?
parse_target = community.find {|i| i["name"] == names[1] }["parse_target"]
else
parse_target = names[1].split("-")[-1]
end
puts "Added #{names[1]}"
new_community.push({
"name": names[1],
"owner": names[0],
"parse_target": parse_target,
"link": href,
"versions": [
"master"
] + tags
})
end
open("community.json", "w+") do |f|
f << new_community.to_json
end
`cat community.json | json_pp > test.json && mv test.json community.json`
================================================
FILE: community_provider_json/acme/master/acme.json
================================================
{"provider_arguments":[],"resources":{"certificate":{"arguments":[{"word":"account_key_pem","kind":"String(R)"},{"word":"certificate_request_pem","kind":"String(O)"},{"word":"common_name","kind":"String(O)"},{"word":"dns_challenge","kind":"Set(O)(B)","subblock":[{"word":"config","kind":"Map(O)"},{"word":"provider","kind":"String(R)"}]},{"word":"http_challenge_port","kind":"Int(O)"},{"word":"key_type","kind":"String(O)"},{"word":"min_days_remaining","kind":"Int(O)"},{"word":"must_staple","kind":"Bool(O)"},{"word":"registration_url","kind":"String(R)"},{"word":"server_url","kind":"String(R)"},{"word":"subject_alternative_names","kind":"Set(O)"},{"word":"tls_challenge_port","kind":"Int(O)"}],"attributes":[{"word":"account_key_pem","kind":"String"},{"word":"account_ref","kind":"String"},{"word":"certificate_domain","kind":"String"},{"word":"certificate_pem","kind":"String"},{"word":"certificate_request_pem","kind":"String"},{"word":"certificate_url","kind":"String"},{"word":"common_name","kind":"String"},{"word":"dns_challenge","kind":"Set(B)","subblock":[{"word":"config","kind":"Map"},{"word":"provider","kind":"String"},{"word":"id","kind":"String"}]},{"word":"http_challenge_port","kind":"Int"},{"word":"issuer_pem","kind":"String"},{"word":"key_type","kind":"String"},{"word":"min_days_remaining","kind":"Int"},{"word":"must_staple","kind":"Bool"},{"word":"private_key_pem","kind":"String"},{"word":"registration_url","kind":"String"},{"word":"server_url","kind":"String"},{"word":"subject_alternative_names","kind":"Set"},{"word":"tls_challenge_port","kind":"Int"},{"word":"id","kind":"String"}]},"registration":{"arguments":[{"word":"account_key_pem","kind":"String(R)"},{"word":"email_address","kind":"String(R)"},{"word":"server_url","kind":"String(R)"}],"attributes":[{"word":"account_key_pem","kind":"String"},{"word":"email_address","kind":"String"},{"word":"registration_body","kind":"String"},{"word":"registration_new_authz_url","kind":"String"},{"word":"registration_tos_url","kind":"String"},{"word":"registration_url","kind":"String"},{"word":"server_url","kind":"String"},{"word":"id","kind":"String"}]}},"datas":{},"unknowns":{}}
================================================
FILE: community_provider_json/acme/v0.3.0/acme.json
================================================
{"provider_arguments":[],"resources":{"certificate":{"arguments":[{"word":"account_key_pem","kind":"String(R)"},{"word":"certificate_request_pem","kind":"String(O)"},{"word":"common_name","kind":"String(O)"},{"word":"dns_challenge","kind":"Set(O)(B)","subblock":[{"word":"config","kind":"Map(O)"},{"word":"provider","kind":"String(R)"}]},{"word":"http_challenge_port","kind":"Int(O)"},{"word":"key_type","kind":"String(O)"},{"word":"min_days_remaining","kind":"Int(O)"},{"word":"must_staple","kind":"Bool(O)"},{"word":"registration_url","kind":"String(R)"},{"word":"server_url","kind":"String(R)"},{"word":"subject_alternative_names","kind":"Set(O)"},{"word":"tls_challenge_port","kind":"Int(O)"}],"attributes":[{"word":"account_key_pem","kind":"String"},{"word":"account_ref","kind":"String"},{"word":"certificate_domain","kind":"String"},{"word":"certificate_pem","kind":"String"},{"word":"certificate_request_pem","kind":"String"},{"word":"certificate_url","kind":"String"},{"word":"common_name","kind":"String"},{"word":"dns_challenge","kind":"Set(B)","subblock":[{"word":"config","kind":"Map"},{"word":"provider","kind":"String"},{"word":"id","kind":"String"}]},{"word":"http_challenge_port","kind":"Int"},{"word":"issuer_pem","kind":"String"},{"word":"key_type","kind":"String"},{"word":"min_days_remaining","kind":"Int"},{"word":"must_staple","kind":"Bool"},{"word":"private_key_pem","kind":"String"},{"word":"registration_url","kind":"String"},{"word":"server_url","kind":"String"},{"word":"subject_alternative_names","kind":"Set"},{"word":"tls_challenge_port","kind":"Int"},{"word":"id","kind":"String"}]},"registration":{"arguments":[{"word":"account_key_pem","kind":"String(R)"},{"word":"email_address","kind":"String(R)"},{"word":"server_url","kind":"String(R)"}],"attributes":[{"word":"account_key_pem","kind":"String"},{"word":"email_address","kind":"String"},{"word":"registration_body","kind":"String"},{"word":"registration_new_authz_url","kind":"String"},{"word":"registration_tos_url","kind":"String"},{"word":"registration_url","kind":"String"},{"word":"server_url","kind":"String"},{"word":"id","kind":"String"}]}},"datas":{},"unknowns":{}}
================================================
FILE: community_provider_json/acme/v0.4.0/acme.json
================================================
{"provider_arguments":[],"resources":{"certificate":{"arguments":[{"word":"account_key_pem","kind":"String(R)"},{"word":"certificate_request_pem","kind":"String(O)"},{"word":"common_name","kind":"String(O)"},{"word":"dns_challenge","kind":"Set(O)(B)","subblock":[{"word":"config","kind":"Map(O)"},{"word":"provider","kind":"String(R)"}]},{"word":"http_challenge_port","kind":"Int(O)"},{"word":"key_type","kind":"String(O)"},{"word":"min_days_remaining","kind":"Int(O)"},{"word":"must_staple","kind":"Bool(O)"},{"word":"registration_url","kind":"String(R)"},{"word":"server_url","kind":"String(R)"},{"word":"subject_alternative_names","kind":"Set(O)"},{"word":"tls_challenge_port","kind":"Int(O)"}],"attributes":[{"word":"account_key_pem","kind":"String"},{"word":"account_ref","kind":"String"},{"word":"certificate_domain","kind":"String"},{"word":"certificate_pem","kind":"String"},{"word":"certificate_request_pem","kind":"String"},{"word":"certificate_url","kind":"String"},{"word":"common_name","kind":"String"},{"word":"dns_challenge","kind":"Set(B)","subblock":[{"word":"config","kind":"Map"},{"word":"provider","kind":"String"},{"word":"id","kind":"String"}]},{"word":"http_challenge_port","kind":"Int"},{"word":"issuer_pem","kind":"String"},{"word":"key_type","kind":"String"},{"word":"min_days_remaining","kind":"Int"},{"word":"must_staple","kind":"Bool"},{"word":"private_key_pem","kind":"String"},{"word":"registration_url","kind":"String"},{"word":"server_url","kind":"String"},{"word":"subject_alternative_names","kind":"Set"},{"word":"tls_challenge_port","kind":"Int"},{"word":"id","kind":"String"}]},"registration":{"arguments":[{"word":"account_key_pem","kind":"String(R)"},{"word":"email_address","kind":"String(R)"},{"word":"server_url","kind":"String(R)"}],"attributes":[{"word":"account_key_pem","kind":"String"},{"word":"email_address","kind":"String"},{"word":"registration_body","kind":"String"},{"word":"registration_new_authz_url","kind":"String"},{"word":"registration_tos_url","kind":"String"},{"word":"registration_url","kind":"String"},{"word":"server_url","kind":"String"},{"word":"id","kind":"String"}]}},"datas":{},"unknowns":{}}
================================================
FILE: community_provider_json/acme/v0.5.0/acme.json
================================================
{"provider_arguments":[],"resources":{"certificate":{"arguments":[{"word":"account_key_pem","kind":"String(R)"},{"word":"certificate_request_pem","kind":"String(O)"},{"word":"common_name","kind":"String(O)"},{"word":"dns_challenge","kind":"Set(O)(B)","subblock":[{"word":"config","kind":"Map(O)"},{"word":"provider","kind":"String(R)"}]},{"word":"http_challenge_port","kind":"Int(O)"},{"word":"key_type","kind":"String(O)"},{"word":"min_days_remaining","kind":"Int(O)"},{"word":"must_staple","kind":"Bool(O)"},{"word":"registration_url","kind":"String(R)"},{"word":"server_url","kind":"String(R)"},{"word":"subject_alternative_names","kind":"Set(O)"},{"word":"tls_challenge_port","kind":"Int(O)"}],"attributes":[{"word":"account_key_pem","kind":"String"},{"word":"account_ref","kind":"String"},{"word":"certificate_domain","kind":"String"},{"word":"certificate_pem","kind":"String"},{"word":"certificate_request_pem","kind":"String"},{"word":"certificate_url","kind":"String"},{"word":"common_name","kind":"String"},{"word":"dns_challenge","kind":"Set(B)","subblock":[{"word":"config","kind":"Map"},{"word":"provider","kind":"String"},{"word":"id","kind":"String"}]},{"word":"http_challenge_port","kind":"Int"},{"word":"issuer_pem","kind":"String"},{"word":"key_type","kind":"String"},{"word":"min_days_remaining","kind":"Int"},{"word":"must_staple","kind":"Bool"},{"word":"private_key_pem","kind":"String"},{"word":"registration_url","kind":"String"},{"word":"server_url","kind":"String"},{"word":"subject_alternative_names","kind":"Set"},{"word":"tls_challenge_port","kind":"Int"},{"word":"id","kind":"String"}]},"registration":{"arguments":[{"word":"account_key_pem","kind":"String(R)"},{"word":"email_address","kind":"String(R)"},{"word":"server_url","kind":"String(R)"}],"attributes":[{"word":"account_key_pem","kind":"String"},{"word":"email_address","kind":"String"},{"word":"registration_body","kind":"String"},{"word":"registration_new_authz_url","kind":"String"},{"word":"registration_tos_url","kind":"String"},{"word":"registration_url","kind":"String"},{"word":"server_url","kind":"String"},{"word":"id","kind":"String"}]}},"datas":{},"unknowns":{}}
================================================
FILE: community_provider_json/ad/master/ad.json
================================================
{"provider_arguments":[],"resources":{"computer":{"arguments":[{"word":"computer_name","kind":"String(R)"},{"word":"domain","kind":"String(R)"}],"attributes":[{"word":"computer_name","kind":"String"},{"word":"domain","kind":"String"},{"word":"id","kind":"String"}]}},"datas":{},"unknowns":{}}
================================================
FILE: community_provider_json/akamai/master/akamai.json
================================================
{"provider_arguments":[],"resources":{"cp_code":{"arguments":[{"word":"contract_id","kind":"String(R)"},{"word":"group_id","kind":"String(R)"},{"word":"name","kind":"String(R)"},{"word":"product_id","kind":"String(R)"}],"attributes":[{"word":"contract_id","kind":"String"},{"word":"group_id","kind":"String"},{"word":"name","kind":"String"},{"word":"product_id","kind":"String"},{"word":"id","kind":"String"}]},"fastdns_zone":{"arguments":[{"word":"a","kind":"Set(O)(B)","subblock":[{"word":"active","kind":"Bool(R)"},{"word":"name","kind":"String(R)"},{"word":"target","kind":"String(R)"},{"word":"ttl","kind":"Int(R)"}]},{"word":"aaaa","kind":"Set(O)(B)","subblock":[{"word":"active","kind":"Bool(R)"},{"word":"name","kind":"String(R)"},{"word":"target","kind":"String(R)"},{"word":"ttl","kind":"Int(R)"}]},{"word":"afsdb","kind":"Set(O)(B)","subblock":[{"word":"active","kind":"Bool(R)"},{"word":"name","kind":"String(R)"},{"word":"subtype","kind":"Int(R)"},{"word":"target","kind":"String(R)"},{"word":"ttl","kind":"Int(R)"}]},{"word":"cname","kind":"Set(O)(B)","subblock":[{"word":"active","kind":"Bool(R)"},{"word":"name","kind":"String(R)"},{"word":"target","kind":"String(R)"},{"word":"ttl","kind":"Int(R)"}]},{"word":"dnskey","kind":"Set(O)(B)","subblock":[{"word":"active","kind":"Bool(R)"},{"word":"algorithm","kind":"Int(R)"},{"word":"flags","kind":"Int(R)"},{"word":"key","kind":"String(R)"},{"word":"name","kind":"String(R)"},{"word":"protocol","kind":"Int(R)"},{"word":"ttl","kind":"Int(R)"}]},{"word":"ds","kind":"Set(O)(B)","subblock":[{"word":"active","kind":"Bool(R)"},{"word":"algorithm","kind":"Int(R)"},{"word":"digest","kind":"String(R)"},{"word":"digest_type","kind":"Int(R)"},{"word":"keytag","kind":"Int(R)"},{"word":"name","kind":"String(R)"},{"word":"ttl","kind":"Int(R)"}]},{"word":"hinfo","kind":"Set(O)(B)","subblock":[{"word":"active","kind":"Bool(R)"},{"word":"hardware","kind":"String(R)"},{"word":"name","kind":"String(R)"},{"word":"software","kind":"String(R)"},{"word":"ttl","kind":"Int(R)"}]},{"word":"hostname","kind":"String(R)"},{"word":"loc","kind":"Set(O)(B)","subblock":[{"word":"active","kind":"Bool(R)"},{"word":"name","kind":"String(R)"},{"word":"target","kind":"String(R)"},{"word":"ttl","kind":"Int(R)"}]},{"word":"mx","kind":"Set(O)(B)","subblock":[{"word":"active","kind":"Bool(R)"},{"word":"name","kind":"String(R)"},{"word":"priority","kind":"String(R)"},{"word":"target","kind":"String(R)"},{"word":"ttl","kind":"Int(R)"}]},{"word":"naptr","kind":"Set(O)(B)","subblock":[{"word":"active","kind":"Bool(R)"},{"word":"flags","kind":"String(R)"},{"word":"name","kind":"String(R)"},{"word":"order","kind":"Int(R)"},{"word":"preference","kind":"Int(R)"},{"word":"regexp","kind":"String(R)"},{"word":"replacement","kind":"String(R)"},{"word":"service","kind":"String(R)"},{"word":"ttl","kind":"Int(R)"}]},{"word":"ns","kind":"Set(O)(B)","subblock":[{"word":"active","kind":"Bool(R)"},{"word":"name","kind":"String(R)"},{"word":"target","kind":"String(R)"},{"word":"ttl","kind":"Int(R)"}]},{"word":"nsec3","kind":"Set(O)(B)","subblock":[{"word":"active","kind":"Bool(R)"},{"word":"algorithm","kind":"Int(R)"},{"word":"flags","kind":"Int(R)"},{"word":"iterations","kind":"Int(R)"},{"word":"name","kind":"String(R)"},{"word":"next_hashed_owner_name","kind":"String(R)"},{"word":"salt","kind":"String(R)"},{"word":"ttl","kind":"Int(R)"},{"word":"type_bitmaps","kind":"String(R)"}]},{"word":"nsec3param","kind":"Set(O)(B)","subblock":[{"word":"active","kind":"Bool(R)"},{"word":"algorithm","kind":"Int(R)"},{"word":"flags","kind":"Int(R)"},{"word":"iterations","kind":"Int(R)"},{"word":"name","kind":"String(R)"},{"word":"salt","kind":"String(R)"},{"word":"ttl","kind":"Int(R)"}]},{"word":"ptr","kind":"Set(O)(B)","subblock":[{"word":"active","kind":"Bool(R)"},{"word":"name","kind":"String(R)"},{"word":"target","kind":"String(R)"},{"word":"ttl","kind":"Int(R)"}]},{"word":"rp","kind":"Set(O)(B)","subblock":[{"word":"active","kind":"Bool(R)"},{"word":"mailbox","kind":"String(R)"},{"word":"name","kind":"String(R)"},{"word":"ttl","kind":"Int(R)"},{"word":"txt","kind":"String(R)"}]},{"word":"rrsig","kind":"Set(O)(B)","subblock":[{"word":"active","kind":"Bool(R)"},{"word":"algorithm","kind":"Int(R)"},{"word":"expiration","kind":"String(R)"},{"word":"inception","kind":"String(R)"},{"word":"keytag","kind":"Int(R)"},{"word":"labels","kind":"Int(R)"},{"word":"name","kind":"String(R)"},{"word":"original_ttl","kind":"Int(R)"},{"word":"signature","kind":"String(R)"},{"word":"signer","kind":"String(R)"},{"word":"ttl","kind":"Int(R)"},{"word":"type_covered","kind":"String(R)"}]},{"word":"soa","kind":"Set(O)(B)","subblock":[{"word":"contact","kind":"String(O)"},{"word":"expire","kind":"Int(O)"},{"word":"minimum","kind":"Int(O)"},{"word":"originserver","kind":"String(O)"},{"word":"refresh","kind":"Int(O)"},{"word":"retry","kind":"Int(O)"},{"word":"serial","kind":"Int(O)"},{"word":"ttl","kind":"Int(O)"}]},{"word":"spf","kind":"Set(O)(B)","subblock":[{"word":"active","kind":"Bool(R)"},{"word":"name","kind":"String(R)"},{"word":"target","kind":"String(R)"},{"word":"ttl","kind":"Int(R)"}]},{"word":"srv","kind":"Set(O)(B)","subblock":[{"word":"active","kind":"Bool(R)"},{"word":"name","kind":"String(R)"},{"word":"port","kind":"Int(R)"},{"word":"priority","kind":"Int(R)"},{"word":"target","kind":"String(R)"},{"word":"ttl","kind":"Int(R)"},{"word":"weight","kind":"Int(R)"}]},{"word":"sshfp","kind":"Set(O)(B)","subblock":[{"word":"active","kind":"Bool(R)"},{"word":"algorithm","kind":"Int(R)"},{"word":"fingerprint","kind":"String(R)"},{"word":"fingerprint_type","kind":"Int(R)"},{"word":"name","kind":"String(R)"},{"word":"ttl","kind":"Int(R)"}]},{"word":"txt","kind":"Set(O)(B)","subblock":[{"word":"active","kind":"Bool(R)"},{"word":"name","kind":"String(R)"},{"word":"target","kind":"String(R)"},{"word":"ttl","kind":"Int(R)"}]}],"attributes":[{"word":"a","kind":"Set(B)","subblock":[{"word":"active","kind":"Bool"},{"word":"name","kind":"String"},{"word":"target","kind":"String"},{"word":"ttl","kind":"Int"},{"word":"id","kind":"String"}]},{"word":"aaaa","kind":"Set(B)","subblock":[{"word":"active","kind":"Bool"},{"word":"name","kind":"String"},{"word":"target","kind":"String"},{"word":"ttl","kind":"Int"},{"word":"id","kind":"String"}]},{"word":"afsdb","kind":"Set(B)","subblock":[{"word":"active","kind":"Bool"},{"word":"name","kind":"String"},{"word":"subtype","kind":"Int"},{"word":"target","kind":"String"},{"word":"ttl","kind":"Int"},{"word":"id","kind":"String"}]},{"word":"cname","kind":"Set(B)","subblock":[{"word":"active","kind":"Bool"},{"word":"name","kind":"String"},{"word":"target","kind":"String"},{"word":"ttl","kind":"Int"},{"word":"id","kind":"String"}]},{"word":"dnskey","kind":"Set(B)","subblock":[{"word":"active","kind":"Bool"},{"word":"algorithm","kind":"Int"},{"word":"flags","kind":"Int"},{"word":"key","kind":"String"},{"word":"name","kind":"String"},{"word":"protocol","kind":"Int"},{"word":"ttl","kind":"Int"},{"word":"id","kind":"String"}]},{"word":"ds","kind":"Set(B)","subblock":[{"word":"active","kind":"Bool"},{"word":"algorithm","kind":"Int"},{"word":"digest","kind":"String"},{"word":"digest_type","kind":"Int"},{"word":"keytag","kind":"Int"},{"word":"name","kind":"String"},{"word":"ttl","kind":"Int"},{"word":"id","kind":"String"}]},{"word":"hinfo","kind":"Set(B)","subblock":[{"word":"active","kind":"Bool"},{"word":"hardware","kind":"String"},{"word":"name","kind":"String"},{"word":"software","kind":"String"},{"word":"ttl","kind":"Int"},{"word":"id","kind":"String"}]},{"word":"hostname","kind":"String"},{"word":"loc","kind":"Set(B)","subblock":[{"word":"active","kind":"Bool"},{"word":"name","kind":"String"},{"word":"target","kind":"String"},{"word":"ttl","kind":"Int"},{"word":"id","kind":"String"}]},{"word":"mx","kind":"Set(B)","subblock":[{"word":"active","kind":"Bool"},{"word":"name","kind":"String"},{"word":"priority","kind":"String"},{"word":"target","kind":"String"},{"word":"ttl","kind":"Int"},{"word":"id","kind":"String"}]},{"word":"naptr","kind":"Set(B)","subblock":[{"word":"active","kind":"Bool"},{"word":"flags","kind":"String"},{"word":"name","kind":"String"},{"word":"order","kind":"Int"},{"word":"preference","kind":"Int"},{"word":"regexp","kind":"String"},{"word":"replacement","kind":"String"},{"word":"service","kind":"String"},{"word":"ttl","kind":"Int"},{"word":"id","kind":"String"}]},{"word":"ns","kind":"Set(B)","subblock":[{"word":"active","kind":"Bool"},{"word":"name","kind":"String"},{"word":"target","kind":"String"},{"word":"ttl","kind":"Int"},{"word":"id","kind":"String"}]},{"word":"nsec3","kind":"Set(B)","subblock":[{"word":"active","kind":"Bool"},{"word":"algorithm","kind":"Int"},{"word":"flags","kind":"Int"},{"word":"iterations","kind":"Int"},{"word":"name","kind":"String"},{"word":"next_hashed_owner_name","kind":"String"},{"word":"salt","kind":"String"},{"word":"ttl","kind":"Int"},{"word":"type_bitmaps","kind":"String"},{"word":"id","kind":"String"}]},{"word":"nsec3param","kind":"Set(B)","subblock":[{"word":"active","kind":"Bool"},{"word":"algorithm","kind":"Int"},{"word":"flags","kind":"Int"},{"word":"iterations","kind":"Int"},{"word":"name","kind":"String"},{"word":"salt","kind":"String"},{"word":"ttl","kind":"Int"},{"word":"id","kind":"String"}]},{"word":"ptr","kind":"Set(B)","subblock":[{"word":"active","kind":"Bool"},{"word":"name","kind":"String"},{"word":"target","kind":"String"},{"word":"ttl","kind":"Int"},{"word":"id","kind":"String"}]},{"word":"rp","kind":"Set(B)","subblock":[{"word":"active","kind":"Bool"},{"word":"mailbox","kind":"String"},{"word":"name","kind":"String"},{"word":"ttl","kind":"Int"},{"word":"txt","kind":"String"},{"word":"id","kind":"String"}]},{"word":"rrsig","kind":"Set(B)","subblock":[{"word":"active","kind":"Bool"},{"word":"algorithm","kind":"Int"},{"word":"expiration","kind":"String"},{"word":"inception","kind":"String"},{"word":"keytag","kind":"Int"},{"word":"labels","kind":"Int"},{"word":"name","kind":"String"},{"word":"original_ttl","kind":"Int"},{"word":"signature","kind":"String"},{"word":"signer","kind":"String"},{"word":"ttl","kind":"Int"},{"word":"type_covered","kind":"String"},{"word":"id","kind":"String"}]},{"word":"soa","kind":"Set(B)","subblock":[{"word":"contact","kind":"String"},{"word":"expire","kind":"Int"},{"word":"minimum","kind":"Int"},{"word":"originserver","kind":"String"},{"word":"refresh","kind":"Int"},{"word":"retry","kind":"Int"},{"word":"serial","kind":"Int"},{"word":"ttl","kind":"Int"},{"word":"id","kind":"String"}]},{"word":"spf","kind":"Set(B)","subblock":[{"word":"active","kind":"Bool"},{"word":"name","kind":"String"},{"word":"target","kind":"String"},{"word":"ttl","kind":"Int"},{"word":"id","kind":"String"}]},{"word":"srv","kind":"Set(B)","subblock":[{"word":"active","kind":"Bool"},{"word":"name","kind":"String"},{"word":"port","kind":"Int"},{"word":"priority","kind":"Int"},{"word":"target","kind":"String"},{"word":"ttl","kind":"Int"},{"word":"weight","kind":"Int"},{"word":"id","kind":"String"}]},{"word":"sshfp","kind":"Set(B)","subblock":[{"word":"active","kind":"Bool"},{"word":"algorithm","kind":"Int"},{"word":"fingerprint","kind":"String"},{"word":"fingerprint_type","kind":"Int"},{"word":"name","kind":"String"},{"word":"ttl","kind":"Int"},{"word":"id","kind":"String"}]},{"word":"txt","kind":"Set(B)","subblock":[{"word":"active","kind":"Bool"},{"word":"name","kind":"String"},{"word":"target","kind":"String"},{"word":"ttl","kind":"Int"},{"word":"id","kind":"String"}]},{"word":"id","kind":"String"}]},"property":{"arguments":[{"word":"activate","kind":"Bool(O)"},{"word":"clone_from","kind":"Set(O)(B)","subblock":[{"word":"copy_hostnames","kind":"Bool(O)"},{"word":"etag","kind":"String(O)"},{"word":"property_id","kind":"String(R)"},{"word":"version","kind":"Int(O)"}]},{"word":"contact","kind":"Set(R)"},{"word":"contract_id","kind":"String(O)"},{"word":"cp_code","kind":"String(R)"},{"word":"edge_hostname","kind":"Map(O)"},{"word":"group_id","kind":"String(O)"},{"word":"hostname","kind":"Set(R)"},{"word":"ipv6","kind":"Bool(O)"},{"word":"name","kind":"String(R)"},{"word":"network","kind":"String(O)"},{"word":"origin","kind":"Set(O)(B)","subblock":[{"word":"cache_key_hostname","kind":"String(O)"},{"word":"compress","kind":"Bool(O)"},{"word":"enable_true_client_ip","kind":"Bool(O)"},{"word":"forward_hostname","kind":"String(O)"},{"word":"hostname","kind":"String(R)"},{"word":"is_secure","kind":"String(R)"},{"word":"port","kind":"Int(O)"}]},{"word":"product_id","kind":"String(O)"},{"word":"rule_format","kind":"String(O)"},{"word":"rules","kind":"Set(O)(B)","subblock":[{"word":"behavior","kind":"Set(O)(B)","subblock":[{"word":"name","kind":"String(R)"},{"word":"option","kind":"Set(O)(B)","subblock":[{"word":"key","kind":"String(R)"},{"word":"value","kind":"String(O)"},{"word":"values","kind":"Set(O)"}]}]},{"word":"criteria_match","kind":"String(O)"},{"word":"rule","kind":"Set(O)(B)","subblock":[{"word":"behavior","kind":"Set(O)(B)","subblock":[{"word":"name","kind":"String(R)"},{"word":"option","kind":"Set(O)(B)","subblock":[{"word":"key","kind":"String(R)"},{"word":"value","kind":"String(O)"},{"word":"values","kind":"Set(O)"}]}]},{"word":"comment","kind":"String(O)"},{"word":"criteria","kind":"Set(O)(B)","subblock":[{"word":"name","kind":"String(R)"},{"word":"option","kind":"Set(O)(B)","subblock":[{"word":"key","kind":"String(R)"},{"word":"value","kind":"String(O)"},{"word":"values","kind":"Set(O)"}]}]},{"word":"criteria_match","kind":"String(O)"},{"word":"name","kind":"String(R)"},{"word":"rule","kind":"Set(O)(B)","subblock":[{"word":"behavior","kind":"Set(O)(B)","subblock":[{"word":"name","kind":"String(R)"},{"word":"option","kind":"Set(O)(B)","subblock":[{"word":"key","kind":"String(R)"},{"word":"value","kind":"String(O)"},{"word":"values","kind":"Set(O)"}]}]},{"word":"comment","kind":"String(O)"},{"word":"criteria","kind":"Set(O)(B)","subblock":[{"word":"name","kind":"String(R)"},{"word":"option","kind":"Set(O)(B)","subblock":[{"word":"key","kind":"String(R)"},{"word":"value","kind":"String(O)"},{"word":"values","kind":"Set(O)"}]}]},{"word":"criteria_match","kind":"String(O)"},{"word":"name","kind":"String(R)"},{"word":"rule","kind":"Set(O)(B)","subblock":[{"word":"behavior","kind":"Set(O)(B)",
gitextract_vuj6chnl/ ├── .gitignore ├── .gitmodules ├── .tfcompleterc ├── .travis.yml ├── CHANGELOG.md ├── COMMUNITY_PROVIDER_VERSIONS.md ├── CONTRIBUTORS.md ├── CUSTOM_PROVIDER.md ├── DEMO.md ├── Dockerfile ├── Dockerfile_base ├── Gemfile ├── LICENSE.md ├── PROVIDER_VERSIONS.md ├── README.md ├── addon-info.json ├── autoload/ │ └── terraformcomplete.vim ├── check_new_provider ├── community/ │ ├── backup_community.json │ ├── community-index.html │ ├── community.json │ ├── schemas.rb │ └── test.rb ├── community_provider_json/ │ ├── acme/ │ │ ├── master/ │ │ │ └── acme.json │ │ ├── v0.3.0/ │ │ │ └── acme.json │ │ ├── v0.4.0/ │ │ │ └── acme.json │ │ └── v0.5.0/ │ │ └── acme.json │ ├── ad/ │ │ └── master/ │ │ └── ad.json │ ├── akamai/ │ │ └── master/ │ │ └── akamai.json │ ├── apigee/ │ │ ├── master/ │ │ │ └── apigee.json │ │ ├── v0.0.1/ │ │ │ └── apigee.json │ │ └── v0.0.9/ │ │ └── apigee.json │ ├── artifactory/ │ │ ├── v0.0.1/ │ │ │ └── artifactory.json │ │ ├── v0.0.2/ │ │ │ └── artifactory.json │ │ ├── v1.0.1/ │ │ │ └── artifactory.json │ │ ├── v1.1.0/ │ │ │ └── artifactory.json │ │ ├── v1.2.0/ │ │ │ └── artifactory.json │ │ ├── v1.2.1/ │ │ │ └── artifactory.json │ │ ├── v1.2.2/ │ │ │ └── artifactory.json │ │ └── v1.2.3/ │ │ └── artifactory.json │ ├── avi/ │ │ ├── 17.2.9/ │ │ │ └── avi.json │ │ └── master/ │ │ └── avi.json │ ├── aviatrix/ │ │ └── master/ │ │ └── aviatrix.json │ ├── cloudamqp/ │ │ └── master/ │ │ └── cloudamqp.json │ ├── cloudkarafka/ │ │ └── master/ │ │ └── cloudkarafka.json │ ├── cloudmqtt/ │ │ └── master/ │ │ └── cloudmqtt.json │ ├── concourse/ │ │ └── master/ │ │ └── concourse.json │ ├── couchdb/ │ │ └── master/ │ │ └── couchdb.json │ ├── ct/ │ │ └── v0.3.0/ │ │ └── ct.json │ ├── dockermachine/ │ │ ├── 0.1.4/ │ │ │ └── dockermachine.json │ │ └── master/ │ │ └── dockermachine.json │ ├── dominos/ │ │ └── master/ │ │ └── dominos.json │ ├── drp/ │ │ ├── v0.0.1/ │ │ │ └── drp.json │ │ ├── v0.7.0/ │ │ │ └── drp.json │ │ ├── v0.7.1/ │ │ │ └── drp.json │ │ ├── v0.7.2/ │ │ │ └── drp.json │ │ ├── v0.7.3/ │ │ │ └── drp.json │ │ ├── v0.7.4/ │ │ │ └── drp.json │ │ ├── v0.7.5/ │ │ │ └── drp.json │ │ ├── v0.7.6/ │ │ │ └── drp.json │ │ ├── v0.7.7/ │ │ │ └── drp.json │ │ └── v0.7.8/ │ │ └── drp.json │ ├── esxi/ │ │ └── master/ │ │ └── esxi.json │ ├── filesystem/ │ │ └── master/ │ │ └── filesystem.json │ ├── gandi/ │ │ └── master/ │ │ └── gandi.json │ ├── glue/ │ │ └── master/ │ │ └── glue.json │ ├── gocd/ │ │ ├── 0.1.21/ │ │ │ └── gocd.json │ │ └── master/ │ │ └── gocd.json │ ├── googlecalendar/ │ │ ├── master/ │ │ │ └── googlecalendar.json │ │ └── v0.1.0/ │ │ └── googlecalendar.json │ ├── gsuite/ │ │ ├── master/ │ │ │ └── gsuite.json │ │ ├── v0.1.0/ │ │ │ └── gsuite.json │ │ ├── v0.1.1/ │ │ │ └── gsuite.json │ │ ├── v0.1.2/ │ │ │ └── gsuite.json │ │ ├── v0.1.3/ │ │ │ └── gsuite.json │ │ ├── v0.1.4/ │ │ │ └── gsuite.json │ │ ├── v0.1.5/ │ │ │ └── gsuite.json │ │ └── v0.1.7/ │ │ └── gsuite.json │ ├── hcloud/ │ │ ├── master/ │ │ │ └── hcloud.json │ │ ├── v1.0.0/ │ │ │ └── hcloud.json │ │ └── v1.1.0/ │ │ └── hcloud.json │ ├── helm/ │ │ ├── master/ │ │ │ └── helm.json │ │ ├── v0.1.0/ │ │ │ └── helm.json │ │ ├── v0.2.0/ │ │ │ └── helm.json │ │ ├── v0.3.0/ │ │ │ └── helm.json │ │ ├── v0.3.1/ │ │ │ └── helm.json │ │ ├── v0.3.2/ │ │ │ └── helm.json │ │ ├── v0.4.0/ │ │ │ └── helm.json │ │ ├── v0.5.0/ │ │ │ └── helm.json │ │ └── v0.5.1/ │ │ └── helm.json │ ├── hiera/ │ │ └── v.0.1.0/ │ │ └── hiera.json │ ├── httpfileupload/ │ │ └── master/ │ │ └── httpfileupload.json │ ├── ibm/ │ │ ├── v0.10.0/ │ │ │ └── ibm.json │ │ ├── v0.12.0/ │ │ │ └── ibm.json │ │ ├── v0.4.0/ │ │ │ └── ibm.json │ │ ├── v0.5.0/ │ │ │ └── ibm.json │ │ ├── v0.5.1/ │ │ │ └── ibm.json │ │ ├── v0.6.0/ │ │ │ └── ibm.json │ │ ├── v0.7.0/ │ │ │ └── ibm.json │ │ ├── v0.8.0/ │ │ │ └── ibm.json │ │ ├── v0.9.0/ │ │ │ └── ibm.json │ │ └── v0.9.1/ │ │ └── ibm.json │ ├── infoblox/ │ │ ├── 0.1.11/ │ │ │ └── infoblox.json │ │ └── master/ │ │ └── infoblox.json │ ├── jira/ │ │ ├── 0.1.0/ │ │ │ └── jira.json │ │ └── master/ │ │ └── jira.json │ ├── kafka/ │ │ ├── master/ │ │ │ └── kafka.json │ │ ├── v0.1.0/ │ │ │ └── kafka.json │ │ └── v0.1.1/ │ │ └── kafka.json │ ├── keboola/ │ │ └── master/ │ │ └── keboola.json │ ├── kibana/ │ │ ├── master/ │ │ │ └── kibana.json │ │ ├── v0.1.0/ │ │ │ └── kibana.json │ │ ├── v0.1.1/ │ │ │ └── kibana.json │ │ ├── v0.1.2/ │ │ │ └── kibana.json │ │ ├── v0.2.0/ │ │ │ └── kibana.json │ │ ├── v0.3.0/ │ │ │ └── kibana.json │ │ ├── v0.4.0/ │ │ │ └── kibana.json │ │ ├── v0.5.0/ │ │ │ └── kibana.json │ │ ├── v0.5.1/ │ │ │ └── kibana.json │ │ └── v0.6.0/ │ │ └── kibana.json │ ├── kong/ │ │ ├── master/ │ │ │ └── kong.json │ │ ├── v0.1.0/ │ │ │ └── kong.json │ │ ├── v0.10.0/ │ │ │ └── kong.json │ │ ├── v0.11.0/ │ │ │ └── kong.json │ │ ├── v0.12.0/ │ │ │ └── kong.json │ │ ├── v0.13.0/ │ │ │ └── kong.json │ │ ├── v0.14.0/ │ │ │ └── kong.json │ │ ├── v0.2.0/ │ │ │ └── kong.json │ │ ├── v0.3.0/ │ │ │ └── kong.json │ │ ├── v0.4.0/ │ │ │ └── kong.json │ │ ├── v0.5.0/ │ │ │ └── kong.json │ │ ├── v0.6.0/ │ │ │ └── kong.json │ │ ├── v0.7.0/ │ │ │ └── kong.json │ │ ├── v0.8.0/ │ │ │ └── kong.json │ │ ├── v0.9.0/ │ │ │ └── kong.json │ │ ├── v1.1.0/ │ │ │ └── kong.json │ │ └── v1.5.0/ │ │ └── kong.json │ ├── kubernetes/ │ │ └── sl1pm4t/ │ │ └── kubernetes.json │ ├── lxd/ │ │ ├── v1.0.0/ │ │ │ └── lxd.json │ │ ├── v1.1.0/ │ │ │ └── lxd.json │ │ └── v1.1.1/ │ │ └── lxd.json │ ├── matchbox/ │ │ ├── master/ │ │ │ └── matchbox.json │ │ ├── v0.1.0/ │ │ │ └── matchbox.json │ │ ├── v0.1.1/ │ │ │ └── matchbox.json │ │ ├── v0.1.2/ │ │ │ └── matchbox.json │ │ ├── v0.2.0/ │ │ │ └── matchbox.json │ │ ├── v0.2.1/ │ │ │ └── matchbox.json │ │ └── v0.2.2/ │ │ └── matchbox.json │ ├── minikube/ │ │ └── master/ │ │ └── minikube.json │ ├── mongodbatlas/ │ │ ├── master/ │ │ │ └── mongodbatlas.json │ │ ├── v0.0.1/ │ │ │ └── mongodbatlas.json │ │ ├── v0.0.2/ │ │ │ └── mongodbatlas.json │ │ ├── v0.1.0/ │ │ │ └── mongodbatlas.json │ │ ├── v0.2.0/ │ │ │ └── mongodbatlas.json │ │ ├── v0.2.1/ │ │ │ └── mongodbatlas.json │ │ ├── v0.2.2/ │ │ │ └── mongodbatlas.json │ │ ├── v0.4.2/ │ │ │ └── mongodbatlas.json │ │ ├── v0.4.3/ │ │ │ └── mongodbatlas.json │ │ ├── v0.4.4/ │ │ │ └── mongodbatlas.json │ │ ├── v0.4.5/ │ │ │ └── mongodbatlas.json │ │ ├── v0.5.0/ │ │ │ └── mongodbatlas.json │ │ └── v0.6.1/ │ │ └── mongodbatlas.json │ ├── netlify/ │ │ └── master/ │ │ └── netlify.json │ ├── nifi/ │ │ └── develop/ │ │ └── nifi.json │ ├── nutanix/ │ │ └── master/ │ │ └── nutanix.json │ ├── odl/ │ │ └── master/ │ │ └── odl.json │ ├── oneview/ │ │ └── master/ │ │ └── oneview.json │ ├── packer/ │ │ ├── 0.1.0/ │ │ │ └── packer.json │ │ ├── master/ │ │ │ └── packer.json │ │ └── vsphere/ │ │ └── packer.json │ ├── pass/ │ │ ├── 1.0.1/ │ │ │ └── pass.json │ │ └── master/ │ │ └── pass.json │ ├── puppetca/ │ │ ├── 1.0.1/ │ │ │ └── puppetca.json │ │ └── master/ │ │ └── puppetca.json │ ├── puppetdb/ │ │ ├── 0.1.1/ │ │ │ └── puppetdb.json │ │ └── master/ │ │ └── puppetdb.json │ ├── qingcloud/ │ │ ├── master/ │ │ │ └── qingcloud.json │ │ ├── v1.0.0/ │ │ │ └── qingcloud.json │ │ ├── v1.0.1/ │ │ │ └── qingcloud.json │ │ ├── v1.1/ │ │ │ └── qingcloud.json │ │ ├── v1.2.0/ │ │ │ └── qingcloud.json │ │ ├── v1.2.1/ │ │ │ └── qingcloud.json │ │ └── v1.2.2/ │ │ └── qingcloud.json │ ├── razor/ │ │ └── master/ │ │ └── razor.json │ ├── redshift/ │ │ └── master/ │ │ └── redshift.json │ ├── restapi/ │ │ ├── master/ │ │ │ └── restapi.json │ │ └── v0.1.0/ │ │ └── restapi.json │ ├── rke/ │ │ ├── 0.2.0/ │ │ │ └── rke.json │ │ ├── 0.3.4/ │ │ │ └── rke.json │ │ └── master/ │ │ └── rke.json │ ├── runscope/ │ │ ├── master/ │ │ │ └── runscope.json │ │ ├── v0.5.6/ │ │ │ └── runscope.json │ │ └── v0.5.7/ │ │ └── runscope.json │ ├── sakuracloud/ │ │ ├── master/ │ │ │ └── sakuracloud.json │ │ ├── v1.0.0/ │ │ │ └── sakuracloud.json │ │ ├── v1.0.1/ │ │ │ └── sakuracloud.json │ │ ├── v1.0.2/ │ │ │ └── sakuracloud.json │ │ ├── v1.0.3/ │ │ │ └── sakuracloud.json │ │ ├── v1.0.4/ │ │ │ └── sakuracloud.json │ │ ├── v1.0.5/ │ │ │ └── sakuracloud.json │ │ ├── v1.1.0/ │ │ │ └── sakuracloud.json │ │ ├── v1.1.1/ │ │ │ └── sakuracloud.json │ │ ├── v1.1.2/ │ │ │ └── sakuracloud.json │ │ └── v1.3.2/ │ │ └── sakuracloud.json │ ├── scvmm/ │ │ └── master/ │ │ └── scvmm.json │ ├── sentry/ │ │ ├── master/ │ │ │ └── sentry.json │ │ ├── v0.2.0/ │ │ │ └── sentry.json │ │ ├── v0.3.0/ │ │ │ └── sentry.json │ │ ├── v0.3.1/ │ │ │ └── sentry.json │ │ └── v0.4.0/ │ │ └── sentry.json │ ├── servicenow/ │ │ └── master/ │ │ └── servicenow.json │ ├── signalform/ │ │ ├── v1.0/ │ │ │ └── signalform.json │ │ ├── v1.1/ │ │ │ └── signalform.json │ │ ├── v1.2/ │ │ │ └── signalform.json │ │ ├── v1.3/ │ │ │ └── signalform.json │ │ ├── v1.4/ │ │ │ └── signalform.json │ │ ├── v1.5/ │ │ │ └── signalform.json │ │ ├── v1.6/ │ │ │ └── signalform.json │ │ ├── v1.7/ │ │ │ └── signalform.json │ │ ├── v1.8/ │ │ │ └── signalform.json │ │ ├── v1.9/ │ │ │ └── signalform.json │ │ └── v1.9.1/ │ │ └── signalform.json │ ├── stateful/ │ │ └── v1.0.0/ │ │ └── stateful.json │ ├── vra/ │ │ └── master/ │ │ └── vra.json │ └── windns/ │ └── v0.2.0/ │ └── windns.json ├── ctags/ │ └── terraform.ctags ├── dicts/ │ ├── provider_acme.dicts │ ├── provider_alicloud.dicts │ ├── provider_archive.dicts │ ├── provider_arukas.dicts │ ├── provider_atlas.dicts │ ├── provider_aws.dicts │ ├── provider_azure.dicts │ ├── provider_azuread.dicts │ ├── provider_azurerm.dicts │ ├── provider_azurestack.dicts │ ├── provider_bigip.dicts │ ├── provider_bitbucket.dicts │ ├── provider_brightbox.dicts │ ├── provider_chef.dicts │ ├── provider_circonus.dicts │ ├── provider_clc.dicts │ ├── provider_cloudflare.dicts │ ├── provider_cloudscale.dicts │ ├── provider_cloudstack.dicts │ ├── provider_cobbler.dicts │ ├── provider_consul.dicts │ ├── provider_datadog.dicts │ ├── provider_digitalocean.dicts │ ├── provider_dme.dicts │ ├── provider_dns.dicts │ ├── provider_dnsimple.dicts │ ├── provider_docker.dicts │ ├── provider_dyn.dicts │ ├── provider_external.dicts │ ├── provider_fastly.dicts │ ├── provider_flexibleengine.dicts │ ├── provider_github.dicts │ ├── provider_gitlab.dicts │ ├── provider_google.dicts │ ├── provider_grafana.dicts │ ├── provider_hcloud.dicts │ ├── provider_hedvig.dicts │ ├── provider_helm.dicts │ ├── provider_heroku.dicts │ ├── provider_http.dicts │ ├── provider_huaweicloud.dicts │ ├── provider_icinga2.dicts │ ├── provider_ignition.dicts │ ├── provider_influxdb.dicts │ ├── provider_kubernetes.dicts │ ├── provider_librato.dicts │ ├── provider_linode.dicts │ ├── provider_local.dicts │ ├── provider_logentries.dicts │ ├── provider_logicmonitor.dicts │ ├── provider_mailgun.dicts │ ├── provider_mysql.dicts │ ├── provider_netlify.dicts │ ├── provider_newrelic.dicts │ ├── provider_nomad.dicts │ ├── provider_ns1.dicts │ ├── provider_nsxt.dicts │ ├── provider_null.dicts │ ├── provider_nutanix.dicts │ ├── provider_oci.dicts │ ├── provider_oneandone.dicts │ ├── provider_opc.dicts │ ├── provider_openstack.dicts │ ├── provider_opentelekomcloud.dicts │ ├── provider_opsgenie.dicts │ ├── provider_oraclepaas.dicts │ ├── provider_ovh.dicts │ ├── provider_packet.dicts │ ├── provider_pagerduty.dicts │ ├── provider_panos.dicts │ ├── provider_postgresql.dicts │ ├── provider_powerdns.dicts │ ├── provider_profitbricks.dicts │ ├── provider_rabbitmq.dicts │ ├── provider_rancher.dicts │ ├── provider_random.dicts │ ├── provider_rightscale.dicts │ ├── provider_rundeck.dicts │ ├── provider_runscope.dicts │ ├── provider_scaleway.dicts │ ├── provider_selvpc.dicts │ ├── provider_skytap.dicts │ ├── provider_softlayer.dicts │ ├── provider_spotinst.dicts │ ├── provider_statuscake.dicts │ ├── provider_telefonicaopencloud.dicts │ ├── provider_template.dicts │ ├── provider_tencentcloud.dicts │ ├── provider_terraform.dicts │ ├── provider_tfe.dicts │ ├── provider_tls.dicts │ ├── provider_triton.dicts │ ├── provider_ucloud.dicts │ ├── provider_ultradns.dicts │ ├── provider_vault.dicts │ ├── provider_vcd.dicts │ ├── provider_vsphere.dicts │ ├── terraform_snippets_dict │ └── tfcompleterc_dict ├── dissect.rb ├── doc/ │ └── vim-terraform-completion.txt ├── example.vimrc ├── extra_json/ │ ├── base.json │ └── functions.json ├── ftdetect/ │ └── tfcompleterc.vim ├── ftplugin/ │ ├── terraform/ │ │ └── completion.vim │ ├── terraform_tagbar.vim │ └── tfcompleterc.vim ├── generate-schema/ │ └── generate-schema.go ├── generate_provider_snippets.rb ├── generate_snippets.rb ├── get_all_version_schema.rb ├── module.rb ├── provider_json/ │ ├── acme/ │ │ ├── 1.0.1/ │ │ │ └── acme.json │ │ ├── 1.1.0/ │ │ │ └── acme.json │ │ ├── 1.1.1/ │ │ │ └── acme.json │ │ ├── 1.3.1/ │ │ │ └── acme.json │ │ └── 1.3.4/ │ │ └── acme.json │ ├── alicloud/ │ │ ├── 0.1.0/ │ │ │ └── alicloud.json │ │ ├── 0.1.1/ │ │ │ └── alicloud.json │ │ ├── 1.10.0/ │ │ │ └── alicloud.json │ │ ├── 1.11.0/ │ │ │ └── alicloud.json │ │ ├── 1.12.0/ │ │ │ └── alicloud.json │ │ ├── 1.13.0/ │ │ │ └── alicloud.json │ │ ├── 1.14.0/ │ │ │ └── alicloud.json │ │ ├── 1.15.0/ │ │ │ └── alicloud.json │ │ ├── 1.16.0/ │ │ │ └── alicloud.json │ │ ├── 1.17.0/ │ │ │ └── alicloud.json │ │ ├── 1.18.0/ │ │ │ └── alicloud.json │ │ ├── 1.19.0/ │ │ │ └── alicloud.json │ │ ├── 1.2.0/ │ │ │ └── alicloud.json │ │ ├── 1.20.0/ │ │ │ └── alicloud.json │ │ ├── 1.21.0/ │ │ │ └── alicloud.json │ │ ├── 1.22.0/ │ │ │ └── alicloud.json │ │ ├── 1.23.0/ │ │ │ └── alicloud.json │ │ ├── 1.24.0/ │ │ │ └── alicloud.json │ │ ├── 1.25.0/ │ │ │ └── alicloud.json │ │ ├── 1.26.0/ │ │ │ └── alicloud.json │ │ ├── 1.27.0/ │ │ │ └── alicloud.json │ │ ├── 1.28.0/ │ │ │ └── alicloud.json │ │ ├── 1.29.0/ │ │ │ └── alicloud.json │ │ ├── 1.30.0/ │ │ │ └── alicloud.json │ │ ├── 1.31.0/ │ │ │ └── alicloud.json │ │ ├── 1.32.0/ │ │ │ └── alicloud.json │ │ ├── 1.32.1/ │ │ │ └── alicloud.json │ │ ├── 1.33.0/ │ │ │ └── alicloud.json │ │ ├── 1.34.0/ │ │ │ └── alicloud.json │ │ ├── 1.35.0/ │ │ │ └── alicloud.json │ │ ├── 1.36.0/ │ │ │ └── alicloud.json │ │ ├── 1.37.0/ │ │ │ └── alicloud.json │ │ ├── 1.38.0/ │ │ │ └── alicloud.json │ │ ├── 1.39.0/ │ │ │ └── alicloud.json │ │ ├── 1.40.0/ │ │ │ └── alicloud.json │ │ ├── 1.41.0/ │ │ │ └── alicloud.json │ │ ├── 1.43.0/ │ │ │ └── alicloud.json │ │ ├── 1.5.0/ │ │ │ └── alicloud.json │ │ ├── 1.5.1/ │ │ │ └── alicloud.json │ │ ├── 1.5.2/ │ │ │ └── alicloud.json │ │ ├── 1.5.3/ │ │ │ └── alicloud.json │ │ ├── 1.52.0/ │ │ │ └── alicloud.json │ │ ├── 1.52.2/ │ │ │ └── alicloud.json │ │ ├── 1.6.0/ │ │ │ └── alicloud.json │ │ ├── 1.7.0/ │ │ │ └── alicloud.json │ │ ├── 1.7.1/ │ │ │ └── alicloud.json │ │ ├── 1.7.2/ │ │ │ └── alicloud.json │ │ ├── 1.8.0/ │ │ │ └── alicloud.json │ │ ├── 1.8.1/ │ │ │ └── alicloud.json │ │ ├── 1.9.0/ │ │ │ └── alicloud.json │ │ ├── 1.9.1/ │ │ │ └── alicloud.json │ │ ├── 1.9.2/ │ │ │ └── alicloud.json │ │ ├── 1.9.3/ │ │ │ └── alicloud.json │ │ ├── 1.9.4/ │ │ │ └── alicloud.json │ │ ├── 1.9.5/ │ │ │ └── alicloud.json │ │ └── 1.9.6/ │ │ └── alicloud.json │ ├── archive/ │ │ ├── 0.1.0/ │ │ │ └── archive.json │ │ ├── 1.0.0/ │ │ │ └── archive.json │ │ ├── 1.0.1/ │ │ │ └── archive.json │ │ ├── 1.0.2/ │ │ │ └── archive.json │ │ ├── 1.0.3/ │ │ │ └── archive.json │ │ ├── 1.1.0/ │ │ │ └── archive.json │ │ ├── 1.2.0/ │ │ │ └── archive.json │ │ ├── 1.2.1/ │ │ │ └── archive.json │ │ └── 1.2.2/ │ │ └── archive.json │ ├── arukas/ │ │ ├── 0.1.0/ │ │ │ └── arukas.json │ │ ├── 1.0.0/ │ │ │ └── arukas.json │ │ └── 1.1.0/ │ │ └── arukas.json │ ├── atlas/ │ │ ├── 0.1.0/ │ │ │ └── atlas.json │ │ └── 0.1.1/ │ │ └── atlas.json │ ├── aws/ │ │ ├── 0.1.0/ │ │ │ └── aws.json │ │ ├── 0.1.1/ │ │ │ └── aws.json │ │ ├── 0.1.2/ │ │ │ └── aws.json │ │ ├── 0.1.3/ │ │ │ └── aws.json │ │ ├── 0.1.4/ │ │ │ └── aws.json │ │ ├── 1.0.0/ │ │ │ └── aws.json │ │ ├── 1.1.0/ │ │ │ └── aws.json │ │ ├── 1.10.0/ │ │ │ └── aws.json │ │ ├── 1.11.0/ │ │ │ └── aws.json │ │ ├── 1.12.0/ │ │ │ └── aws.json │ │ ├── 1.13.0/ │ │ │ └── aws.json │ │ ├── 1.14.0/ │ │ │ └── aws.json │ │ ├── 1.14.1/ │ │ │ └── aws.json │ │ ├── 1.15.0/ │ │ │ └── aws.json │ │ ├── 1.16.0/ │ │ │ └── aws.json │ │ ├── 1.17.0/ │ │ │ └── aws.json │ │ ├── 1.18.0/ │ │ │ └── aws.json │ │ ├── 1.19.0/ │ │ │ └── aws.json │ │ ├── 1.2.0/ │ │ │ └── aws.json │ │ ├── 1.20.0/ │ │ │ └── aws.json │ │ ├── 1.21.0/ │ │ │ └── aws.json │ │ ├── 1.22.0/ │ │ │ └── aws.json │ │ ├── 1.23.0/ │ │ │ └── aws.json │ │ ├── 1.24.0/ │ │ │ └── aws.json │ │ ├── 1.25.0/ │ │ │ └── aws.json │ │ ├── 1.26.0/ │ │ │ └── aws.json │ │ ├── 1.27.0/ │ │ │ └── aws.json │ │ ├── 1.28.0/ │ │ │ └── aws.json │ │ ├── 1.29.0/ │ │ │ └── aws.json │ │ ├── 1.3.0/ │ │ │ └── aws.json │ │ ├── 1.3.1/ │ │ │ └── aws.json │ │ ├── 1.30.0/ │ │ │ └── aws.json │ │ ├── 1.31.0/ │ │ │ └── aws.json │ │ ├── 1.32.0/ │ │ │ └── aws.json │ │ ├── 1.33.0/ │ │ │ └── aws.json │ │ ├── 1.34.0/ │ │ │ └── aws.json │ │ ├── 1.35.0/ │ │ │ └── aws.json │ │ ├── 1.36.0/ │ │ │ └── aws.json │ │ ├── 1.37.0/ │ │ │ └── aws.json │ │ ├── 1.38.0/ │ │ │ └── aws.json │ │ ├── 1.39.0/ │ │ │ └── aws.json │ │ ├── 1.4.0/ │ │ │ └── aws.json │ │ ├── 1.40.0/ │ │ │ └── aws.json │ │ ├── 1.41.0/ │ │ │ └── aws.json │ │ ├── 1.42.0/ │ │ │ └── aws.json │ │ ├── 1.43.0/ │ │ │ └── aws.json │ │ ├── 1.43.2/ │ │ │ └── aws.json │ │ ├── 1.45.0/ │ │ │ └── aws.json │ │ ├── 1.46.0/ │ │ │ └── aws.json │ │ ├── 1.49.0/ │ │ │ └── aws.json │ │ ├── 1.5.0/ │ │ │ └── aws.json │ │ ├── 1.50.0/ │ │ │ └── aws.json │ │ ├── 1.51.0/ │ │ │ └── aws.json │ │ ├── 1.52.0/ │ │ │ └── aws.json │ │ ├── 1.54.0/ │ │ │ └── aws.json │ │ ├── 1.55.0/ │ │ │ └── aws.json │ │ ├── 1.56.0/ │ │ │ └── aws.json │ │ ├── 1.57.0/ │ │ │ └── aws.json │ │ ├── 1.59.0/ │ │ │ └── aws.json │ │ ├── 1.6.0/ │ │ │ └── aws.json │ │ ├── 1.60.0/ │ │ │ └── aws.json │ │ ├── 1.7.0/ │ │ │ └── aws.json │ │ ├── 1.7.1/ │ │ │ └── aws.json │ │ ├── 1.8.0/ │ │ │ └── aws.json │ │ ├── 1.9.0/ │ │ │ └── aws.json │ │ ├── 2.0.0/ │ │ │ └── aws.json │ │ ├── 2.1.0/ │ │ │ └── aws.json │ │ ├── 2.11.0/ │ │ │ └── aws.json │ │ ├── 2.19.0/ │ │ │ └── aws.json │ │ ├── 2.2.0/ │ │ │ └── aws.json │ │ ├── 2.21.1/ │ │ │ └── aws.json │ │ ├── 2.3.0/ │ │ │ └── aws.json │ │ ├── 2.4.0/ │ │ │ └── aws.json │ │ ├── 2.5.0/ │ │ │ └── aws.json │ │ ├── 2.6.0/ │ │ │ └── aws.json │ │ ├── 2.7.0/ │ │ │ └── aws.json │ │ └── 2.8.0/ │ │ └── aws.json │ ├── azure/ │ │ ├── 0.1.0/ │ │ │ └── azure.json │ │ └── 0.1.1/ │ │ └── azure.json │ ├── azuread/ │ │ ├── 0.1.0/ │ │ │ └── azuread.json │ │ ├── 0.2.0/ │ │ │ └── azuread.json │ │ ├── 0.3.1/ │ │ │ └── azuread.json │ │ ├── 0.4.0/ │ │ │ └── azuread.json │ │ └── 0.5.1/ │ │ └── azuread.json │ ├── azurerm/ │ │ ├── 0.1.0/ │ │ │ └── azurerm.json │ │ ├── 0.1.1/ │ │ │ └── azurerm.json │ │ ├── 0.1.2/ │ │ │ └── azurerm.json │ │ ├── 0.1.3/ │ │ │ └── azurerm.json │ │ ├── 0.1.4/ │ │ │ └── azurerm.json │ │ ├── 0.1.5/ │ │ │ └── azurerm.json │ │ ├── 0.1.6/ │ │ │ └── azurerm.json │ │ ├── 0.1.7/ │ │ │ └── azurerm.json │ │ ├── 0.2.0/ │ │ │ └── azurerm.json │ │ ├── 0.2.1/ │ │ │ └── azurerm.json │ │ ├── 0.2.2/ │ │ │ └── azurerm.json │ │ ├── 0.3.0/ │ │ │ └── azurerm.json │ │ ├── 0.3.1/ │ │ │ └── azurerm.json │ │ ├── 0.3.2/ │ │ │ └── azurerm.json │ │ ├── 0.3.3/ │ │ │ └── azurerm.json │ │ ├── 1.0.0/ │ │ │ └── azurerm.json │ │ ├── 1.0.1/ │ │ │ └── azurerm.json │ │ ├── 1.1.0/ │ │ │ └── azurerm.json │ │ ├── 1.1.1/ │ │ │ └── azurerm.json │ │ ├── 1.1.2/ │ │ │ └── azurerm.json │ │ ├── 1.10.0/ │ │ │ └── azurerm.json │ │ ├── 1.11.0/ │ │ │ └── azurerm.json │ │ ├── 1.12.0/ │ │ │ └── azurerm.json │ │ ├── 1.13.0/ │ │ │ └── azurerm.json │ │ ├── 1.14.0/ │ │ │ └── azurerm.json │ │ ├── 1.15.0/ │ │ │ └── azurerm.json │ │ ├── 1.16.0/ │ │ │ └── azurerm.json │ │ ├── 1.17.0/ │ │ │ └── azurerm.json │ │ ├── 1.18.0/ │ │ │ └── azurerm.json │ │ ├── 1.19.0/ │ │ │ └── azurerm.json │ │ ├── 1.2.0/ │ │ │ └── azurerm.json │ │ ├── 1.20.0/ │ │ │ └── azurerm.json │ │ ├── 1.21.0/ │ │ │ └── azurerm.json │ │ ├── 1.22.1/ │ │ │ └── azurerm.json │ │ ├── 1.23.0/ │ │ │ └── azurerm.json │ │ ├── 1.24.0/ │ │ │ └── azurerm.json │ │ ├── 1.25.0/ │ │ │ └── azurerm.json │ │ ├── 1.27.1/ │ │ │ └── azurerm.json │ │ ├── 1.28.0/ │ │ │ └── azurerm.json │ │ ├── 1.3.0/ │ │ │ └── azurerm.json │ │ ├── 1.3.1/ │ │ │ └── azurerm.json │ │ ├── 1.3.2/ │ │ │ └── azurerm.json │ │ ├── 1.3.3/ │ │ │ └── azurerm.json │ │ ├── 1.31.0/ │ │ │ └── azurerm.json │ │ ├── 1.32.0/ │ │ │ └── azurerm.json │ │ ├── 1.4.0/ │ │ │ └── azurerm.json │ │ ├── 1.5.0/ │ │ │ └── azurerm.json │ │ ├── 1.6.0/ │ │ │ └── azurerm.json │ │ ├── 1.7.0/ │ │ │ └── azurerm.json │ │ ├── 1.8.0/ │ │ │ └── azurerm.json │ │ └── 1.9.0/ │ │ └── azurerm.json │ ├── azurestack/ │ │ ├── 0.1.0/ │ │ │ └── azurestack.json │ │ ├── 0.2.0/ │ │ │ └── azurestack.json │ │ ├── 0.3.0/ │ │ │ └── azurestack.json │ │ ├── 0.4.0/ │ │ │ └── azurestack.json │ │ ├── 0.5.0/ │ │ │ └── azurestack.json │ │ ├── 0.6.0/ │ │ │ └── azurestack.json │ │ └── 0.8.1/ │ │ └── azurestack.json │ ├── bigip/ │ │ ├── 0.12.0/ │ │ │ └── bigip.json │ │ ├── 0.12.1/ │ │ │ └── bigip.json │ │ ├── 0.12.2/ │ │ │ └── bigip.json │ │ └── 0.12.3/ │ │ └── bigip.json │ ├── bitbucket/ │ │ ├── 0.1.0/ │ │ │ └── bitbucket.json │ │ ├── 1.0.0/ │ │ │ └── bitbucket.json │ │ └── 1.1.0/ │ │ └── bitbucket.json │ ├── brightbox/ │ │ ├── 1.0.5/ │ │ │ └── brightbox.json │ │ ├── 1.0.6/ │ │ │ └── brightbox.json │ │ ├── 1.1.0/ │ │ │ └── brightbox.json │ │ ├── 1.1.1/ │ │ │ └── brightbox.json │ │ ├── 1.1.2/ │ │ │ └── brightbox.json │ │ └── 1.2.0/ │ │ └── brightbox.json │ ├── chef/ │ │ ├── 0.1.0/ │ │ │ └── chef.json │ │ └── 0.2.0/ │ │ └── chef.json │ ├── circonus/ │ │ ├── 0.1.0/ │ │ │ └── circonus.json │ │ ├── 0.1.1/ │ │ │ └── circonus.json │ │ └── 0.2.0/ │ │ └── circonus.json │ ├── clc/ │ │ └── 0.1.0/ │ │ └── clc.json │ ├── cloudflare/ │ │ ├── 0.1.0/ │ │ │ └── cloudflare.json │ │ ├── 1.0.0/ │ │ │ └── cloudflare.json │ │ ├── 1.1.0/ │ │ │ └── cloudflare.json │ │ ├── 1.10.0/ │ │ │ └── cloudflare.json │ │ ├── 1.11.0/ │ │ │ └── cloudflare.json │ │ ├── 1.12.0/ │ │ │ └── cloudflare.json │ │ ├── 1.13.0/ │ │ │ └── cloudflare.json │ │ ├── 1.14.0/ │ │ │ └── cloudflare.json │ │ ├── 1.16.1/ │ │ │ └── cloudflare.json │ │ ├── 1.2.0/ │ │ │ └── cloudflare.json │ │ ├── 1.3.0/ │ │ │ └── cloudflare.json │ │ ├── 1.4.0/ │ │ │ └── cloudflare.json │ │ ├── 1.5.0/ │ │ │ └── cloudflare.json │ │ ├── 1.6.0/ │ │ │ └── cloudflare.json │ │ ├── 1.7.0/ │ │ │ └── cloudflare.json │ │ ├── 1.8.0/ │ │ │ └── cloudflare.json │ │ └── 1.9.0/ │ │ └── cloudflare.json │ ├── cloudscale/ │ │ ├── 1.0.0/ │ │ │ └── cloudscale.json │ │ ├── 1.0.1/ │ │ │ └── cloudscale.json │ │ ├── 1.1.0/ │ │ │ └── cloudscale.json │ │ └── 2.0.0/ │ │ └── cloudscale.json │ ├── cloudstack/ │ │ ├── 0.1.0/ │ │ │ └── cloudstack.json │ │ ├── 0.1.1/ │ │ │ └── cloudstack.json │ │ ├── 0.1.2/ │ │ │ └── cloudstack.json │ │ ├── 0.1.3/ │ │ │ └── cloudstack.json │ │ ├── 0.1.4/ │ │ │ └── cloudstack.json │ │ ├── 0.1.5/ │ │ │ └── cloudstack.json │ │ ├── 0.2.0/ │ │ │ └── cloudstack.json │ │ └── 0.3.0/ │ │ └── cloudstack.json │ ├── cobbler/ │ │ ├── 0.1.0/ │ │ │ └── cobbler.json │ │ ├── 1.0.0/ │ │ │ └── cobbler.json │ │ ├── 1.0.1/ │ │ │ └── cobbler.json │ │ └── 1.1.0/ │ │ └── cobbler.json │ ├── consul/ │ │ ├── 0.1.0/ │ │ │ └── consul.json │ │ ├── 1.0.0/ │ │ │ └── consul.json │ │ ├── 1.1.0/ │ │ │ └── consul.json │ │ ├── 2.0.0/ │ │ │ └── consul.json │ │ ├── 2.1.0/ │ │ │ └── consul.json │ │ ├── 2.2.0/ │ │ │ └── consul.json │ │ ├── 2.3.0/ │ │ │ └── consul.json │ │ └── 2.5.0/ │ │ └── consul.json │ ├── datadog/ │ │ ├── 0.1.0/ │ │ │ └── datadog.json │ │ ├── 0.1.1/ │ │ │ └── datadog.json │ │ ├── 1.0.0/ │ │ │ └── datadog.json │ │ ├── 1.0.1/ │ │ │ └── datadog.json │ │ ├── 1.0.2/ │ │ │ └── datadog.json │ │ ├── 1.0.3/ │ │ │ └── datadog.json │ │ ├── 1.0.4/ │ │ │ └── datadog.json │ │ ├── 1.1.0/ │ │ │ └── datadog.json │ │ ├── 1.2.0/ │ │ │ └── datadog.json │ │ ├── 1.3.0/ │ │ │ └── datadog.json │ │ ├── 1.4.0/ │ │ │ └── datadog.json │ │ ├── 1.5.0/ │ │ │ └── datadog.json │ │ ├── 1.6.0/ │ │ │ └── datadog.json │ │ ├── 1.7.0/ │ │ │ └── datadog.json │ │ ├── 1.8.0/ │ │ │ └── datadog.json │ │ ├── 1.9.0/ │ │ │ └── datadog.json │ │ ├── 2.0.2/ │ │ │ └── datadog.json │ │ └── 2.1.0/ │ │ └── datadog.json │ ├── digitalocean/ │ │ ├── 0.1.0/ │ │ │ └── digitalocean.json │ │ ├── 0.1.1/ │ │ │ └── digitalocean.json │ │ ├── 0.1.2/ │ │ │ └── digitalocean.json │ │ ├── 0.1.3/ │ │ │ └── digitalocean.json │ │ ├── 1.0.0/ │ │ │ └── digitalocean.json │ │ ├── 1.0.1/ │ │ │ └── digitalocean.json │ │ ├── 1.0.2/ │ │ │ └── digitalocean.json │ │ ├── 1.1.0/ │ │ │ └── digitalocean.json │ │ ├── 1.2.0/ │ │ │ └── digitalocean.json │ │ ├── 1.3.0/ │ │ │ └── digitalocean.json │ │ └── 1.5.0/ │ │ └── digitalocean.json │ ├── dme/ │ │ └── 0.1.0/ │ │ └── dme.json │ ├── dns/ │ │ ├── 0.1.0/ │ │ │ └── dns.json │ │ ├── 0.1.1/ │ │ │ └── dns.json │ │ ├── 1.0.0/ │ │ │ └── dns.json │ │ ├── 2.0.0/ │ │ │ └── dns.json │ │ ├── 2.1.0/ │ │ │ └── dns.json │ │ ├── 2.1.1/ │ │ │ └── dns.json │ │ └── 2.2.0/ │ │ └── dns.json │ ├── dnsimple/ │ │ ├── 0.1.0/ │ │ │ └── dnsimple.json │ │ └── 0.2.0/ │ │ └── dnsimple.json │ ├── docker/ │ │ ├── 0.1.0/ │ │ │ └── docker.json │ │ ├── 0.1.1/ │ │ │ └── docker.json │ │ ├── 1.0.0/ │ │ │ └── docker.json │ │ ├── 1.0.1/ │ │ │ └── docker.json │ │ ├── 1.0.2/ │ │ │ └── docker.json │ │ ├── 1.0.3/ │ │ │ └── docker.json │ │ ├── 1.0.4/ │ │ │ └── docker.json │ │ ├── 1.1.0/ │ │ │ └── docker.json │ │ ├── 1.1.1/ │ │ │ └── docker.json │ │ ├── 2.0.0/ │ │ │ └── docker.json │ │ └── 2.1.0/ │ │ └── docker.json │ ├── dyn/ │ │ ├── 0.1.0/ │ │ │ └── dyn.json │ │ ├── 1.0.0/ │ │ │ └── dyn.json │ │ ├── 1.1.0/ │ │ │ └── dyn.json │ │ └── 1.2.0/ │ │ └── dyn.json │ ├── external/ │ │ ├── 0.1.0/ │ │ │ └── external.json │ │ ├── 1.0.0/ │ │ │ └── external.json │ │ ├── 1.1.0/ │ │ │ └── external.json │ │ ├── 1.1.1/ │ │ │ └── external.json │ │ ├── 1.1.2/ │ │ │ └── external.json │ │ └── 1.2.0/ │ │ └── external.json │ ├── fastly/ │ │ ├── 0.1.0/ │ │ │ └── fastly.json │ │ ├── 0.1.1/ │ │ │ └── fastly.json │ │ ├── 0.1.2/ │ │ │ └── fastly.json │ │ ├── 0.1.3/ │ │ │ └── fastly.json │ │ ├── 0.1.4/ │ │ │ └── fastly.json │ │ ├── 0.2.0/ │ │ │ └── fastly.json │ │ ├── 0.3.0/ │ │ │ └── fastly.json │ │ ├── 0.4.0/ │ │ │ └── fastly.json │ │ ├── 0.5.0/ │ │ │ └── fastly.json │ │ ├── 0.6.0/ │ │ │ └── fastly.json │ │ └── 0.8.1/ │ │ └── fastly.json │ ├── flexibleengine/ │ │ ├── 1.0.0/ │ │ │ └── flexibleengine.json │ │ ├── 1.0.1/ │ │ │ └── flexibleengine.json │ │ ├── 1.1.0/ │ │ │ └── flexibleengine.json │ │ ├── 1.2.0/ │ │ │ └── flexibleengine.json │ │ ├── 1.2.1/ │ │ │ └── flexibleengine.json │ │ ├── 1.3.1/ │ │ │ └── flexibleengine.json │ │ ├── 1.4.0/ │ │ │ └── flexibleengine.json │ │ ├── 1.5.0/ │ │ │ └── flexibleengine.json │ │ └── 1.6.0/ │ │ └── flexibleengine.json │ ├── github/ │ │ ├── 0.1.0/ │ │ │ └── github.json │ │ ├── 0.1.1/ │ │ │ └── github.json │ │ ├── 0.1.2/ │ │ │ └── github.json │ │ ├── 1.0.0/ │ │ │ └── github.json │ │ ├── 1.1.0/ │ │ │ └── github.json │ │ ├── 1.2.1/ │ │ │ └── github.json │ │ ├── 1.3.0/ │ │ │ └── github.json │ │ ├── 2.0.0/ │ │ │ └── github.json │ │ ├── 2.1.0/ │ │ │ └── github.json │ │ └── 2.2.0/ │ │ └── github.json │ ├── gitlab/ │ │ ├── 0.1.0/ │ │ │ └── gitlab.json │ │ ├── 1.0.0/ │ │ │ └── gitlab.json │ │ ├── 1.1.0/ │ │ │ └── gitlab.json │ │ ├── 1.2.0/ │ │ │ └── gitlab.json │ │ ├── 1.3.0/ │ │ │ └── gitlab.json │ │ ├── 2.0.0/ │ │ │ └── gitlab.json │ │ └── 2.2.0/ │ │ └── gitlab.json │ ├── google/ │ │ ├── 0.1.0/ │ │ │ └── google.json │ │ ├── 0.1.1/ │ │ │ └── google.json │ │ ├── 0.1.2/ │ │ │ └── google.json │ │ ├── 0.1.3/ │ │ │ └── google.json │ │ ├── 1.0.0/ │ │ │ └── google.json │ │ ├── 1.0.1/ │ │ │ └── google.json │ │ ├── 1.1.0/ │ │ │ └── google.json │ │ ├── 1.1.1/ │ │ │ └── google.json │ │ ├── 1.10.0/ │ │ │ └── google.json │ │ ├── 1.11.0/ │ │ │ └── google.json │ │ ├── 1.12.0/ │ │ │ └── google.json │ │ ├── 1.13.0/ │ │ │ └── google.json │ │ ├── 1.14.0/ │ │ │ └── google.json │ │ ├── 1.15.0/ │ │ │ └── google.json │ │ ├── 1.16.0/ │ │ │ └── google.json │ │ ├── 1.16.1/ │ │ │ └── google.json │ │ ├── 1.16.2/ │ │ │ └── google.json │ │ ├── 1.17.1/ │ │ │ └── google.json │ │ ├── 1.18.0/ │ │ │ └── google.json │ │ ├── 1.19.0/ │ │ │ └── google.json │ │ ├── 1.19.1/ │ │ │ └── google.json │ │ ├── 1.2.0/ │ │ │ └── google.json │ │ ├── 1.20.0/ │ │ │ └── google.json │ │ ├── 1.3.0/ │ │ │ └── google.json │ │ ├── 1.4.0/ │ │ │ └── google.json │ │ ├── 1.5.0/ │ │ │ └── google.json │ │ ├── 1.6.0/ │ │ │ └── google.json │ │ ├── 1.7.0/ │ │ │ └── google.json │ │ ├── 1.8.0/ │ │ │ └── google.json │ │ ├── 1.9.0/ │ │ │ └── google.json │ │ ├── 2.0.0/ │ │ │ └── google.json │ │ ├── 2.1.0/ │ │ │ └── google.json │ │ ├── 2.10.0/ │ │ │ └── google.json │ │ ├── 2.11.0/ │ │ │ └── google.json │ │ ├── 2.2.0/ │ │ │ └── google.json │ │ ├── 2.3.0/ │ │ │ └── google.json │ │ ├── 2.4.0/ │ │ │ └── google.json │ │ ├── 2.5.0/ │ │ │ └── google.json │ │ ├── 2.5.1/ │ │ │ └── google.json │ │ ├── 2.7.0/ │ │ │ └── google.json │ │ ├── beta_1.19.0/ │ │ │ └── google.json │ │ ├── beta_1.20.0/ │ │ │ └── google.json │ │ └── beta_2.3.0/ │ │ └── google.json │ ├── grafana/ │ │ ├── 0.1.0/ │ │ │ └── grafana.json │ │ ├── 1.0.0/ │ │ │ └── grafana.json │ │ ├── 1.0.1/ │ │ │ └── grafana.json │ │ ├── 1.0.2/ │ │ │ └── grafana.json │ │ ├── 1.1.0/ │ │ │ └── grafana.json │ │ ├── 1.2.0/ │ │ │ └── grafana.json │ │ ├── 1.3.0/ │ │ │ └── grafana.json │ │ ├── 1.4.0/ │ │ │ └── grafana.json │ │ └── 1.5.0/ │ │ └── grafana.json │ ├── hcloud/ │ │ ├── 1.10.0/ │ │ │ └── hcloud.json │ │ ├── 1.11.0/ │ │ │ └── hcloud.json │ │ ├── 1.2.0/ │ │ │ └── hcloud.json │ │ ├── 1.3.0/ │ │ │ └── hcloud.json │ │ ├── 1.4.0/ │ │ │ └── hcloud.json │ │ ├── 1.5.0/ │ │ │ └── hcloud.json │ │ ├── 1.6.0/ │ │ │ └── hcloud.json │ │ ├── 1.7.0/ │ │ │ └── hcloud.json │ │ ├── 1.8.0/ │ │ │ └── hcloud.json │ │ └── 1.9.0/ │ │ └── hcloud.json │ ├── hedvig/ │ │ ├── 1.0.1/ │ │ │ └── hedvig.json │ │ ├── 1.0.2/ │ │ │ └── hedvig.json │ │ ├── 1.0.3/ │ │ │ └── hedvig.json │ │ └── 1.0.4/ │ │ └── hedvig.json │ ├── helm/ │ │ ├── 0.1.0/ │ │ │ └── helm.json │ │ ├── 0.10.0/ │ │ │ └── helm.json │ │ ├── 0.6.0/ │ │ │ └── helm.json │ │ ├── 0.6.2/ │ │ │ └── helm.json │ │ ├── 0.7.0/ │ │ │ └── helm.json │ │ ├── 0.8.0/ │ │ │ └── helm.json │ │ ├── 0.9.0/ │ │ │ └── helm.json │ │ └── 0.9.1/ │ │ └── helm.json │ ├── heroku/ │ │ ├── 0.1.0/ │ │ │ └── heroku.json │ │ ├── 0.1.1/ │ │ │ └── heroku.json │ │ ├── 0.1.2/ │ │ │ └── heroku.json │ │ ├── 1.0.0/ │ │ │ └── heroku.json │ │ ├── 1.0.1/ │ │ │ └── heroku.json │ │ ├── 1.0.2/ │ │ │ └── heroku.json │ │ ├── 1.1.0/ │ │ │ └── heroku.json │ │ ├── 1.1.1/ │ │ │ └── heroku.json │ │ ├── 1.2.0/ │ │ │ └── heroku.json │ │ ├── 1.3.0/ │ │ │ └── heroku.json │ │ ├── 1.4.0/ │ │ │ └── heroku.json │ │ ├── 1.5.0/ │ │ │ └── heroku.json │ │ ├── 1.6.0/ │ │ │ └── heroku.json │ │ ├── 1.7.0/ │ │ │ └── heroku.json │ │ ├── 1.7.1/ │ │ │ └── heroku.json │ │ ├── 1.7.2/ │ │ │ └── heroku.json │ │ ├── 1.7.3/ │ │ │ └── heroku.json │ │ ├── 1.7.4/ │ │ │ └── heroku.json │ │ ├── 1.8.0/ │ │ │ └── heroku.json │ │ ├── 1.9.0/ │ │ │ └── heroku.json │ │ ├── 2.0.3/ │ │ │ └── heroku.json │ │ └── 2.1.0/ │ │ └── heroku.json │ ├── http/ │ │ ├── 0.1.0/ │ │ │ └── http.json │ │ ├── 1.0.0/ │ │ │ └── http.json │ │ ├── 1.0.1/ │ │ │ └── http.json │ │ ├── 1.1.0/ │ │ │ └── http.json │ │ └── 1.1.1/ │ │ └── http.json │ ├── huaweicloud/ │ │ ├── 1.0.0/ │ │ │ └── huaweicloud.json │ │ ├── 1.1.0/ │ │ │ └── huaweicloud.json │ │ ├── 1.2.0/ │ │ │ └── huaweicloud.json │ │ ├── 1.3.0/ │ │ │ └── huaweicloud.json │ │ ├── 1.4.0/ │ │ │ └── huaweicloud.json │ │ ├── 1.5.0/ │ │ │ └── huaweicloud.json │ │ └── 1.6.0/ │ │ └── huaweicloud.json │ ├── icinga2/ │ │ ├── 0.1.0/ │ │ │ └── icinga2.json │ │ ├── 0.1.1/ │ │ │ └── icinga2.json │ │ └── 0.2.0/ │ │ └── icinga2.json │ ├── ignition/ │ │ ├── 0.1.0/ │ │ │ └── ignition.json │ │ ├── 0.2.0/ │ │ │ └── ignition.json │ │ ├── 1.0.0/ │ │ │ └── ignition.json │ │ ├── 1.0.1/ │ │ │ └── ignition.json │ │ └── 1.1.0/ │ │ └── ignition.json │ ├── influxdb/ │ │ ├── 0.1.0/ │ │ │ └── influxdb.json │ │ ├── 1.0.0/ │ │ │ └── influxdb.json │ │ ├── 1.0.1/ │ │ │ └── influxdb.json │ │ ├── 1.0.2/ │ │ │ └── influxdb.json │ │ ├── 1.0.3/ │ │ │ └── influxdb.json │ │ ├── 1.1.0/ │ │ │ └── influxdb.json │ │ └── 1.2.0/ │ │ └── influxdb.json │ ├── kubernetes/ │ │ ├── 0.1.0/ │ │ │ └── kubernetes.json │ │ ├── 0.1.1/ │ │ │ └── kubernetes.json │ │ ├── 0.1.2/ │ │ │ └── kubernetes.json │ │ ├── 1.0.0/ │ │ │ └── kubernetes.json │ │ ├── 1.0.1/ │ │ │ └── kubernetes.json │ │ ├── 1.1.0/ │ │ │ └── kubernetes.json │ │ ├── 1.2.0/ │ │ │ └── kubernetes.json │ │ ├── 1.3.0/ │ │ │ └── kubernetes.json │ │ ├── 1.4.0/ │ │ │ └── kubernetes.json │ │ ├── 1.5.0/ │ │ │ └── kubernetes.json │ │ ├── 1.5.1/ │ │ │ └── kubernetes.json │ │ ├── 1.5.2/ │ │ │ └── kubernetes.json │ │ ├── 1.6.0/ │ │ │ └── kubernetes.json │ │ ├── 1.6.2/ │ │ │ └── kubernetes.json │ │ ├── 1.7.0/ │ │ │ └── kubernetes.json │ │ ├── 1.8.0/ │ │ │ └── kubernetes.json │ │ └── 1.8.1/ │ │ └── kubernetes.json │ ├── librato/ │ │ └── 0.1.0/ │ │ └── librato.json │ ├── linode/ │ │ ├── 1.0.0/ │ │ │ └── linode.json │ │ ├── 1.1.0/ │ │ │ └── linode.json │ │ ├── 1.2.0/ │ │ │ └── linode.json │ │ ├── 1.3.0/ │ │ │ └── linode.json │ │ ├── 1.4.0/ │ │ │ └── linode.json │ │ ├── 1.5.0/ │ │ │ └── linode.json │ │ ├── 1.6.0/ │ │ │ └── linode.json │ │ ├── 1.7.0/ │ │ │ └── linode.json │ │ └── 1.8.0/ │ │ └── linode.json │ ├── local/ │ │ ├── 0.1.0/ │ │ │ └── local.json │ │ ├── 1.0.0/ │ │ │ └── local.json │ │ ├── 1.1.0/ │ │ │ └── local.json │ │ ├── 1.2.0/ │ │ │ └── local.json │ │ ├── 1.2.1/ │ │ │ └── local.json │ │ ├── 1.2.2/ │ │ │ └── local.json │ │ └── 1.3.0/ │ │ └── local.json │ ├── logentries/ │ │ ├── 0.1.0/ │ │ │ └── logentries.json │ │ └── 1.0.0/ │ │ └── logentries.json │ ├── logicmonitor/ │ │ ├── 1.0.0/ │ │ │ └── logicmonitor.json │ │ ├── 1.1.0/ │ │ │ └── logicmonitor.json │ │ ├── 1.2.0/ │ │ │ └── logicmonitor.json │ │ └── 1.2.1/ │ │ └── logicmonitor.json │ ├── mailgun/ │ │ └── 0.1.0/ │ │ └── mailgun.json │ ├── mysql/ │ │ ├── 0.1.0/ │ │ │ └── mysql.json │ │ ├── 1.0.0/ │ │ │ └── mysql.json │ │ ├── 1.0.1/ │ │ │ └── mysql.json │ │ ├── 1.1.0/ │ │ │ └── mysql.json │ │ ├── 1.5.0/ │ │ │ └── mysql.json │ │ ├── 1.5.1/ │ │ │ └── mysql.json │ │ ├── 1.6.0/ │ │ │ └── mysql.json │ │ └── 1.7.0/ │ │ └── mysql.json │ ├── netlify/ │ │ ├── 0.1.0/ │ │ │ └── netlify.json │ │ └── 0.3.0/ │ │ └── netlify.json │ ├── newrelic/ │ │ ├── 0.1.0/ │ │ │ └── newrelic.json │ │ ├── 0.1.1/ │ │ │ └── newrelic.json │ │ ├── 1.0.0/ │ │ │ └── newrelic.json │ │ ├── 1.0.1/ │ │ │ └── newrelic.json │ │ ├── 1.1.0/ │ │ │ └── newrelic.json │ │ ├── 1.2.0/ │ │ │ └── newrelic.json │ │ ├── 1.3.0/ │ │ │ └── newrelic.json │ │ ├── 1.4.0/ │ │ │ └── newrelic.json │ │ ├── 1.5.0/ │ │ │ └── newrelic.json │ │ └── 1.5.1/ │ │ └── newrelic.json │ ├── nomad/ │ │ ├── 0.1.0/ │ │ │ └── nomad.json │ │ ├── 1.0.0/ │ │ │ └── nomad.json │ │ ├── 1.1.0/ │ │ │ └── nomad.json │ │ ├── 1.2.0/ │ │ │ └── nomad.json │ │ ├── 1.3.0/ │ │ │ └── nomad.json │ │ └── 1.4.0/ │ │ └── nomad.json │ ├── ns1/ │ │ ├── 0.1.0/ │ │ │ └── ns1.json │ │ ├── 1.0.0/ │ │ │ └── ns1.json │ │ ├── 1.1.0/ │ │ │ └── ns1.json │ │ ├── 1.1.2/ │ │ │ └── ns1.json │ │ ├── 1.2.0/ │ │ │ └── ns1.json │ │ ├── 1.3.0/ │ │ │ └── ns1.json │ │ ├── 1.3.1/ │ │ │ └── ns1.json │ │ ├── 1.4.0/ │ │ │ └── ns1.json │ │ └── 1.4.1/ │ │ └── ns1.json │ ├── nsxt/ │ │ ├── 1.0.0/ │ │ │ └── nsxt.json │ │ └── 1.1.0/ │ │ └── nsxt.json │ ├── null/ │ │ ├── 0.1.0/ │ │ │ └── null.json │ │ ├── 1.0.0/ │ │ │ └── null.json │ │ ├── 2.0.0/ │ │ │ └── null.json │ │ ├── 2.1.0/ │ │ │ └── null.json │ │ ├── 2.1.1/ │ │ │ └── null.json │ │ └── 2.1.2/ │ │ └── null.json │ ├── nutanix/ │ │ ├── 1.0.0/ │ │ │ └── nutanix.json │ │ └── 1.0.1/ │ │ └── nutanix.json │ ├── oci/ │ │ ├── 3.1.1/ │ │ │ └── oci.json │ │ ├── 3.11.1/ │ │ │ └── oci.json │ │ ├── 3.12.0/ │ │ │ └── oci.json │ │ ├── 3.19.0/ │ │ │ └── oci.json │ │ ├── 3.2.0/ │ │ │ └── oci.json │ │ ├── 3.20.0/ │ │ │ └── oci.json │ │ ├── 3.23.0/ │ │ │ └── oci.json │ │ ├── 3.3.0/ │ │ │ └── oci.json │ │ ├── 3.4.0/ │ │ │ └── oci.json │ │ └── 3.8.0/ │ │ └── oci.json │ ├── oneandone/ │ │ ├── 0.1.0/ │ │ │ └── oneandone.json │ │ ├── 1.0.0/ │ │ │ └── oneandone.json │ │ ├── 1.1.0/ │ │ │ └── oneandone.json │ │ ├── 1.2.0/ │ │ │ └── oneandone.json │ │ └── 1.3.0/ │ │ └── oneandone.json │ ├── opc/ │ │ ├── 0.1.0/ │ │ │ └── opc.json │ │ ├── 0.1.1/ │ │ │ └── opc.json │ │ ├── 0.1.2/ │ │ │ └── opc.json │ │ ├── 0.1.3/ │ │ │ └── opc.json │ │ ├── 1.0.0/ │ │ │ └── opc.json │ │ ├── 1.0.1/ │ │ │ └── opc.json │ │ ├── 1.1.0/ │ │ │ └── opc.json │ │ ├── 1.1.1/ │ │ │ └── opc.json │ │ ├── 1.1.2/ │ │ │ └── opc.json │ │ ├── 1.2.0/ │ │ │ └── opc.json │ │ ├── 1.2.1/ │ │ │ └── opc.json │ │ ├── 1.3.0/ │ │ │ └── opc.json │ │ ├── 1.3.1/ │ │ │ └── opc.json │ │ ├── 1.3.2/ │ │ │ └── opc.json │ │ ├── 1.3.3/ │ │ │ └── opc.json │ │ ├── 1.3.4/ │ │ │ └── opc.json │ │ ├── 1.3.5/ │ │ │ └── opc.json │ │ └── 1.3.6/ │ │ └── opc.json │ ├── openstack/ │ │ ├── 0.1.0/ │ │ │ └── openstack.json │ │ ├── 0.2.0/ │ │ │ └── openstack.json │ │ ├── 0.2.1/ │ │ │ └── openstack.json │ │ ├── 0.2.2/ │ │ │ └── openstack.json │ │ ├── 0.3.0/ │ │ │ └── openstack.json │ │ ├── 1.0.0/ │ │ │ └── openstack.json │ │ ├── 1.1.0/ │ │ │ └── openstack.json │ │ ├── 1.10.0/ │ │ │ └── openstack.json │ │ ├── 1.11.0/ │ │ │ └── openstack.json │ │ ├── 1.12.0/ │ │ │ └── openstack.json │ │ ├── 1.13.0/ │ │ │ └── openstack.json │ │ ├── 1.14.0/ │ │ │ └── openstack.json │ │ ├── 1.15.0/ │ │ │ └── openstack.json │ │ ├── 1.16.0/ │ │ │ └── openstack.json │ │ ├── 1.17.0/ │ │ │ └── openstack.json │ │ ├── 1.19.0/ │ │ │ └── openstack.json │ │ ├── 1.2.0/ │ │ │ └── openstack.json │ │ ├── 1.20.0/ │ │ │ └── openstack.json │ │ ├── 1.3.0/ │ │ │ └── openstack.json │ │ ├── 1.4.0/ │ │ │ └── openstack.json │ │ ├── 1.5.0/ │ │ │ └── openstack.json │ │ ├── 1.6.0/ │ │ │ └── openstack.json │ │ ├── 1.7.0/ │ │ │ └── openstack.json │ │ ├── 1.8.0/ │ │ │ └── openstack.json │ │ └── 1.9.0/ │ │ └── openstack.json │ ├── opentelekomcloud/ │ │ ├── 1.0.0/ │ │ │ └── opentelekomcloud.json │ │ ├── 1.1.0/ │ │ │ └── opentelekomcloud.json │ │ ├── 1.10.0/ │ │ │ └── opentelekomcloud.json │ │ ├── 1.2.0/ │ │ │ └── opentelekomcloud.json │ │ ├── 1.3.0/ │ │ │ └── opentelekomcloud.json │ │ ├── 1.4.0/ │ │ │ └── opentelekomcloud.json │ │ ├── 1.5.1/ │ │ │ └── opentelekomcloud.json │ │ ├── 1.5.2/ │ │ │ └── opentelekomcloud.json │ │ ├── 1.6.0/ │ │ │ └── opentelekomcloud.json │ │ ├── 1.6.1/ │ │ │ └── opentelekomcloud.json │ │ ├── 1.7.0/ │ │ │ └── opentelekomcloud.json │ │ └── 1.8.0/ │ │ └── opentelekomcloud.json │ ├── opsgenie/ │ │ └── 0.1.0/ │ │ └── opsgenie.json │ ├── oraclepaas/ │ │ ├── 1.0.0/ │ │ │ └── oraclepaas.json │ │ ├── 1.1.1/ │ │ │ └── oraclepaas.json │ │ ├── 1.2.0/ │ │ │ └── oraclepaas.json │ │ ├── 1.2.1/ │ │ │ └── oraclepaas.json │ │ ├── 1.3.0/ │ │ │ └── oraclepaas.json │ │ ├── 1.3.1/ │ │ │ └── oraclepaas.json │ │ ├── 1.3.2/ │ │ │ └── oraclepaas.json │ │ ├── 1.4.1/ │ │ │ └── oraclepaas.json │ │ ├── 1.4.2/ │ │ │ └── oraclepaas.json │ │ ├── 1.4.3/ │ │ │ └── oraclepaas.json │ │ ├── 1.5.0/ │ │ │ └── oraclepaas.json │ │ ├── 1.5.1/ │ │ │ └── oraclepaas.json │ │ └── 1.5.2/ │ │ └── oraclepaas.json │ ├── ovh/ │ │ ├── 0.1.0/ │ │ │ └── ovh.json │ │ ├── 0.1.1/ │ │ │ └── ovh.json │ │ ├── 0.2.0/ │ │ │ └── ovh.json │ │ ├── 0.3.0/ │ │ │ └── ovh.json │ │ └── 0.5.0/ │ │ └── ovh.json │ ├── packet/ │ │ ├── 0.1.0/ │ │ │ └── packet.json │ │ ├── 1.0.0/ │ │ │ └── packet.json │ │ ├── 1.1.0/ │ │ │ └── packet.json │ │ ├── 1.2.0/ │ │ │ └── packet.json │ │ ├── 1.2.1/ │ │ │ └── packet.json │ │ ├── 1.2.2/ │ │ │ └── packet.json │ │ ├── 1.2.3/ │ │ │ └── packet.json │ │ ├── 1.2.4/ │ │ │ └── packet.json │ │ ├── 1.2.5/ │ │ │ └── packet.json │ │ ├── 1.3.2/ │ │ │ └── packet.json │ │ ├── 1.4.1/ │ │ │ └── packet.json │ │ ├── 1.5.0/ │ │ │ └── packet.json │ │ ├── 1.6.0/ │ │ │ └── packet.json │ │ ├── 1.7.0/ │ │ │ └── packet.json │ │ ├── 1.7.2/ │ │ │ └── packet.json │ │ ├── 2.0.0/ │ │ │ └── packet.json │ │ ├── 2.1.0/ │ │ │ └── packet.json │ │ ├── 2.2.0/ │ │ │ └── packet.json │ │ └── 2.2.1/ │ │ └── packet.json │ ├── pagerduty/ │ │ ├── 0.1.0/ │ │ │ └── pagerduty.json │ │ ├── 0.1.1/ │ │ │ └── pagerduty.json │ │ ├── 0.1.2/ │ │ │ └── pagerduty.json │ │ ├── 0.1.3/ │ │ │ └── pagerduty.json │ │ ├── 1.0.0/ │ │ │ └── pagerduty.json │ │ ├── 1.1.0/ │ │ │ └── pagerduty.json │ │ ├── 1.1.1/ │ │ │ └── pagerduty.json │ │ ├── 1.2.0/ │ │ │ └── pagerduty.json │ │ ├── 1.2.1/ │ │ │ └── pagerduty.json │ │ └── 1.3.0/ │ │ └── pagerduty.json │ ├── panos/ │ │ ├── 1.0.0/ │ │ │ └── panos.json │ │ ├── 1.1.0/ │ │ │ └── panos.json │ │ ├── 1.2.0/ │ │ │ └── panos.json │ │ ├── 1.3.0/ │ │ │ └── panos.json │ │ ├── 1.4.0/ │ │ │ └── panos.json │ │ ├── 1.4.1/ │ │ │ └── panos.json │ │ ├── 1.5.1/ │ │ │ └── panos.json │ │ └── 1.5.2/ │ │ └── panos.json │ ├── postgresql/ │ │ ├── 0.1.0/ │ │ │ └── postgresql.json │ │ ├── 0.1.1/ │ │ │ └── postgresql.json │ │ ├── 0.1.2/ │ │ │ └── postgresql.json │ │ ├── 0.1.3/ │ │ │ └── postgresql.json │ │ ├── 0.2.0/ │ │ │ └── postgresql.json │ │ ├── 0.2.1/ │ │ │ └── postgresql.json │ │ ├── 0.3.0/ │ │ │ └── postgresql.json │ │ ├── 0.4.0/ │ │ │ └── postgresql.json │ │ └── 1.1.0/ │ │ └── postgresql.json │ ├── powerdns/ │ │ └── 0.1.0/ │ │ └── powerdns.json │ ├── profitbricks/ │ │ ├── 0.1.0/ │ │ │ └── profitbricks.json │ │ ├── 0.1.1/ │ │ │ └── profitbricks.json │ │ ├── 0.1.2/ │ │ │ └── profitbricks.json │ │ ├── 1.0.0/ │ │ │ └── profitbricks.json │ │ ├── 1.0.1/ │ │ │ └── profitbricks.json │ │ ├── 1.1.0/ │ │ │ └── profitbricks.json │ │ ├── 1.1.1/ │ │ │ └── profitbricks.json │ │ ├── 1.2.0/ │ │ │ └── profitbricks.json │ │ ├── 1.2.1/ │ │ │ └── profitbricks.json │ │ ├── 1.3.1/ │ │ │ └── profitbricks.json │ │ ├── 1.3.2/ │ │ │ └── profitbricks.json │ │ ├── 1.3.3/ │ │ │ └── profitbricks.json │ │ ├── 1.4.0/ │ │ │ └── profitbricks.json │ │ ├── 1.4.1/ │ │ │ └── profitbricks.json │ │ ├── 1.4.2/ │ │ │ └── profitbricks.json │ │ ├── 1.4.3/ │ │ │ └── profitbricks.json │ │ └── 1.4.4/ │ │ └── profitbricks.json │ ├── rabbitmq/ │ │ ├── 0.1.0/ │ │ │ └── rabbitmq.json │ │ ├── 0.2.0/ │ │ │ └── rabbitmq.json │ │ ├── 1.0.0/ │ │ │ └── rabbitmq.json │ │ └── 1.1.0/ │ │ └── rabbitmq.json │ ├── rancher/ │ │ ├── 0.1.0/ │ │ │ └── rancher.json │ │ ├── 0.1.1/ │ │ │ └── rancher.json │ │ ├── 0.2.0/ │ │ │ └── rancher.json │ │ ├── 1.0.0/ │ │ │ └── rancher.json │ │ ├── 1.1.0/ │ │ │ └── rancher.json │ │ ├── 1.1.1/ │ │ │ └── rancher.json │ │ ├── 1.2.0/ │ │ │ └── rancher.json │ │ ├── 1.2.1/ │ │ │ └── rancher.json │ │ ├── 1.3.0/ │ │ │ └── rancher.json │ │ └── 1.4.0/ │ │ └── rancher.json │ ├── random/ │ │ ├── 0.1.0/ │ │ │ └── random.json │ │ ├── 1.0.0/ │ │ │ └── random.json │ │ ├── 1.1.0/ │ │ │ └── random.json │ │ ├── 1.2.0/ │ │ │ └── random.json │ │ ├── 1.3.0/ │ │ │ └── random.json │ │ ├── 1.3.1/ │ │ │ └── random.json │ │ ├── 2.0.0/ │ │ │ └── random.json │ │ ├── 2.1.0/ │ │ │ └── random.json │ │ ├── 2.1.1/ │ │ │ └── random.json │ │ └── 2.1.2/ │ │ └── random.json │ ├── rightscale/ │ │ ├── 1.3.0/ │ │ │ └── rightscale.json │ │ └── 1.3.1/ │ │ └── rightscale.json │ ├── rundeck/ │ │ ├── 0.1.0/ │ │ │ └── rundeck.json │ │ ├── 0.2.0/ │ │ │ └── rundeck.json │ │ └── 0.3.0/ │ │ └── rundeck.json │ ├── runscope/ │ │ ├── 0.1.0/ │ │ │ └── runscope.json │ │ ├── 0.2.0/ │ │ │ └── runscope.json │ │ ├── 0.3.0/ │ │ │ └── runscope.json │ │ ├── 0.4.0/ │ │ │ └── runscope.json │ │ ├── 0.5.0/ │ │ │ └── runscope.json │ │ └── 0.6.0/ │ │ └── runscope.json │ ├── scaleway/ │ │ ├── 0.1.0/ │ │ │ └── scaleway.json │ │ ├── 0.1.1/ │ │ │ └── scaleway.json │ │ ├── 1.0.0/ │ │ │ └── scaleway.json │ │ ├── 1.0.1/ │ │ │ └── scaleway.json │ │ ├── 1.1.0/ │ │ │ └── scaleway.json │ │ ├── 1.10.0/ │ │ │ └── scaleway.json │ │ ├── 1.2.0/ │ │ │ └── scaleway.json │ │ ├── 1.3.0/ │ │ │ └── scaleway.json │ │ ├── 1.4.0/ │ │ │ └── scaleway.json │ │ ├── 1.4.1/ │ │ │ └── scaleway.json │ │ ├── 1.5.0/ │ │ │ └── scaleway.json │ │ ├── 1.5.1/ │ │ │ └── scaleway.json │ │ ├── 1.6.0/ │ │ │ └── scaleway.json │ │ ├── 1.7.0/ │ │ │ └── scaleway.json │ │ ├── 1.8.0/ │ │ │ └── scaleway.json │ │ ├── 1.9.1/ │ │ │ └── scaleway.json │ │ └── 1.9.2/ │ │ └── scaleway.json │ ├── selectel/ │ │ ├── 2.0.0/ │ │ │ └── selectel.json │ │ ├── 2.1.0/ │ │ │ └── selectel.json │ │ ├── 2.2.0/ │ │ │ └── selectel.json │ │ └── 2.3.0/ │ │ └── selectel.json │ ├── selvpc/ │ │ ├── 0.3.0/ │ │ │ └── selvpc.json │ │ ├── 1.0.0/ │ │ │ └── selvpc.json │ │ └── 1.1.0/ │ │ └── selvpc.json │ ├── skytap/ │ │ ├── 0.11.1/ │ │ │ └── skytap.json │ │ └── 0.9.0/ │ │ └── skytap.json │ ├── softlayer/ │ │ └── 0.0.1/ │ │ └── softlayer.json │ ├── spotinst/ │ │ ├── 0.1.0/ │ │ │ └── spotinst.json │ │ ├── 1.0.0/ │ │ │ └── spotinst.json │ │ ├── 1.1.0/ │ │ │ └── spotinst.json │ │ ├── 1.1.1/ │ │ │ └── spotinst.json │ │ ├── 1.10.0/ │ │ │ └── spotinst.json │ │ ├── 1.11.0/ │ │ │ └── spotinst.json │ │ ├── 1.12.0/ │ │ │ └── spotinst.json │ │ ├── 1.13.0/ │ │ │ └── spotinst.json │ │ ├── 1.13.2/ │ │ │ └── spotinst.json │ │ ├── 1.13.3/ │ │ │ └── spotinst.json │ │ ├── 1.2.0/ │ │ │ └── spotinst.json │ │ ├── 1.3.0/ │ │ │ └── spotinst.json │ │ ├── 1.4.0/ │ │ │ └── spotinst.json │ │ ├── 1.5.0/ │ │ │ └── spotinst.json │ │ ├── 1.6.0/ │ │ │ └── spotinst.json │ │ ├── 1.6.1/ │ │ │ └── spotinst.json │ │ ├── 1.7.0/ │ │ │ └── spotinst.json │ │ ├── 1.8.0/ │ │ │ └── spotinst.json │ │ └── 1.9.0/ │ │ └── spotinst.json │ ├── statuscake/ │ │ ├── 0.1.0/ │ │ │ └── statuscake.json │ │ ├── 0.2.0/ │ │ │ └── statuscake.json │ │ └── 1.0.0/ │ │ └── statuscake.json │ ├── telefonicaopencloud/ │ │ └── 1.0.0/ │ │ └── telefonicaopencloud.json │ ├── template/ │ │ ├── 0.1.0/ │ │ │ └── template.json │ │ ├── 0.1.1/ │ │ │ └── template.json │ │ ├── 1.0.0/ │ │ │ └── template.json │ │ ├── 2.0.0/ │ │ │ └── template.json │ │ ├── 2.1.0/ │ │ │ └── template.json │ │ ├── 2.1.1/ │ │ │ └── template.json │ │ └── 2.1.2/ │ │ └── template.json │ ├── tencentcloud/ │ │ ├── 1.11.0/ │ │ │ └── tencentcloud.json │ │ ├── 1.13.0/ │ │ │ └── tencentcloud.json │ │ ├── 1.2.2/ │ │ │ └── tencentcloud.json │ │ ├── 1.3.0/ │ │ │ └── tencentcloud.json │ │ ├── 1.4.0/ │ │ │ └── tencentcloud.json │ │ ├── 1.5.0/ │ │ │ └── tencentcloud.json │ │ └── 1.7.0/ │ │ └── tencentcloud.json │ ├── terraform/ │ │ ├── 0.1.0/ │ │ │ └── terraform.json │ │ ├── 1.0.0/ │ │ │ └── terraform.json │ │ ├── 1.0.1/ │ │ │ └── terraform.json │ │ └── 1.0.2/ │ │ └── terraform.json │ ├── tfe/ │ │ ├── 0.1.0/ │ │ │ └── tfe.json │ │ ├── 0.10.1/ │ │ │ └── tfe.json │ │ ├── 0.2.0/ │ │ │ └── tfe.json │ │ ├── 0.3.0/ │ │ │ └── tfe.json │ │ ├── 0.4.0/ │ │ │ └── tfe.json │ │ ├── 0.5.0/ │ │ │ └── tfe.json │ │ ├── 0.6.0/ │ │ │ └── tfe.json │ │ ├── 0.7.1/ │ │ │ └── tfe.json │ │ ├── 0.8.1/ │ │ │ └── tfe.json │ │ ├── 0.8.2/ │ │ │ └── tfe.json │ │ └── 0.9.0/ │ │ └── tfe.json │ ├── tls/ │ │ ├── 0.1.0/ │ │ │ └── tls.json │ │ ├── 1.0.0/ │ │ │ └── tls.json │ │ ├── 1.0.1/ │ │ │ └── tls.json │ │ ├── 1.1.0/ │ │ │ └── tls.json │ │ ├── 1.2.0/ │ │ │ └── tls.json │ │ ├── 2.0.0/ │ │ │ └── tls.json │ │ └── 2.0.1/ │ │ └── tls.json │ ├── triton/ │ │ ├── 0.1.0/ │ │ │ └── triton.json │ │ ├── 0.1.1/ │ │ │ └── triton.json │ │ ├── 0.1.2/ │ │ │ └── triton.json │ │ ├── 0.1.3/ │ │ │ └── triton.json │ │ ├── 0.2.0/ │ │ │ └── triton.json │ │ ├── 0.2.1/ │ │ │ └── triton.json │ │ ├── 0.3.0/ │ │ │ └── triton.json │ │ ├── 0.4.0/ │ │ │ └── triton.json │ │ ├── 0.4.1/ │ │ │ └── triton.json │ │ ├── 0.4.2/ │ │ │ └── triton.json │ │ ├── 0.5.0/ │ │ │ └── triton.json │ │ └── 0.5.1/ │ │ └── triton.json │ ├── ucloud/ │ │ ├── 1.0.0/ │ │ │ └── ucloud.json │ │ ├── 1.1.0/ │ │ │ └── ucloud.json │ │ ├── 1.11.0/ │ │ │ └── ucloud.json │ │ ├── 1.11.1/ │ │ │ └── ucloud.json │ │ ├── 1.2.1/ │ │ │ └── ucloud.json │ │ ├── 1.3.1/ │ │ │ └── ucloud.json │ │ ├── 1.4.0/ │ │ │ └── ucloud.json │ │ ├── 1.5.0/ │ │ │ └── ucloud.json │ │ ├── 1.6.0/ │ │ │ └── ucloud.json │ │ └── 1.9.0/ │ │ └── ucloud.json │ ├── ultradns/ │ │ └── 0.1.0/ │ │ └── ultradns.json │ ├── vault/ │ │ ├── 0.1.0/ │ │ │ └── vault.json │ │ ├── 1.0.0/ │ │ │ └── vault.json │ │ ├── 1.1.0/ │ │ │ └── vault.json │ │ ├── 1.1.1/ │ │ │ └── vault.json │ │ ├── 1.1.2/ │ │ │ └── vault.json │ │ ├── 1.1.3/ │ │ │ └── vault.json │ │ ├── 1.1.4/ │ │ │ └── vault.json │ │ ├── 1.2.0/ │ │ │ └── vault.json │ │ ├── 1.3.1/ │ │ │ └── vault.json │ │ ├── 1.4.1/ │ │ │ └── vault.json │ │ ├── 1.5.0/ │ │ │ └── vault.json │ │ ├── 1.6.0/ │ │ │ └── vault.json │ │ ├── 1.7.0/ │ │ │ └── vault.json │ │ ├── 1.8.0/ │ │ │ └── vault.json │ │ └── 2.1.0/ │ │ └── vault.json │ ├── vcd/ │ │ ├── 0.1.0/ │ │ │ └── vcd.json │ │ ├── 0.1.1/ │ │ │ └── vcd.json │ │ ├── 0.1.2/ │ │ │ └── vcd.json │ │ ├── 0.1.3/ │ │ │ └── vcd.json │ │ ├── 1.0.0/ │ │ │ └── vcd.json │ │ ├── 2.0.0/ │ │ │ └── vcd.json │ │ ├── 2.1.0/ │ │ │ └── vcd.json │ │ ├── 2.2.0/ │ │ │ └── vcd.json │ │ └── 2.3.0/ │ │ └── vcd.json │ ├── vsphere/ │ │ ├── 0.1.0/ │ │ │ └── vsphere.json │ │ ├── 0.2.0/ │ │ │ └── vsphere.json │ │ ├── 0.2.1/ │ │ │ └── vsphere.json │ │ ├── 0.2.2/ │ │ │ └── vsphere.json │ │ ├── 0.3.0/ │ │ │ └── vsphere.json │ │ ├── 0.4.0/ │ │ │ └── vsphere.json │ │ ├── 0.4.1/ │ │ │ └── vsphere.json │ │ ├── 0.4.2/ │ │ │ └── vsphere.json │ │ ├── 1.0.0/ │ │ │ └── vsphere.json │ │ ├── 1.0.1/ │ │ │ └── vsphere.json │ │ ├── 1.0.2/ │ │ │ └── vsphere.json │ │ ├── 1.0.3/ │ │ │ └── vsphere.json │ │ ├── 1.1.0/ │ │ │ └── vsphere.json │ │ ├── 1.1.1/ │ │ │ └── vsphere.json │ │ ├── 1.10.0/ │ │ │ └── vsphere.json │ │ ├── 1.11.0/ │ │ │ └── vsphere.json │ │ ├── 1.12.0/ │ │ │ └── vsphere.json │ │ ├── 1.2.0/ │ │ │ └── vsphere.json │ │ ├── 1.3.0/ │ │ │ └── vsphere.json │ │ ├── 1.3.1/ │ │ │ └── vsphere.json │ │ ├── 1.3.2/ │ │ │ └── vsphere.json │ │ ├── 1.3.3/ │ │ │ └── vsphere.json │ │ ├── 1.4.0/ │ │ │ └── vsphere.json │ │ ├── 1.4.1/ │ │ │ └── vsphere.json │ │ ├── 1.5.0/ │ │ │ └── vsphere.json │ │ ├── 1.6.0/ │ │ │ └── vsphere.json │ │ ├── 1.7.0/ │ │ │ └── vsphere.json │ │ ├── 1.8.0/ │ │ │ └── vsphere.json │ │ ├── 1.8.1/ │ │ │ └── vsphere.json │ │ ├── 1.9.0/ │ │ │ └── vsphere.json │ │ └── 1.9.1/ │ │ └── vsphere.json │ └── yandex/ │ ├── 0.1.15/ │ │ └── yandex.json │ ├── 0.1.16/ │ │ └── yandex.json │ ├── 0.2.0/ │ │ └── yandex.json │ ├── 0.3.0/ │ │ └── yandex.json │ ├── 0.4.0/ │ │ └── yandex.json │ ├── 0.4.1/ │ │ └── yandex.json │ ├── 0.5.0/ │ │ └── yandex.json │ ├── 0.5.1/ │ │ └── yandex.json │ ├── 0.5.2/ │ │ └── yandex.json │ └── 0.8.2/ │ └── yandex.json ├── provider_json_backup/ │ ├── alicloud.json │ ├── archive.json │ ├── arukas.json │ ├── atlas.json │ ├── aws.json │ ├── azure.json │ ├── azurerm.json │ ├── bitbucket.json │ ├── chef.json │ ├── circonus.json │ ├── clc.json │ ├── cloudflare.json │ ├── cloudstack.json │ ├── cobbler.json │ ├── consul.json │ ├── datadog.json │ ├── digitalocean.json │ ├── dme.json │ ├── dns.json │ ├── dnsimple.json │ ├── docker.json │ ├── dyn.json │ ├── external.json │ ├── fastly.json │ ├── github.json │ ├── gitlab.json │ ├── google.json │ ├── grafana.json │ ├── heroku.json │ ├── http.json │ ├── icinga2.json │ ├── ignition.json │ ├── influxdb.json │ ├── kubernetes.json │ ├── librato.json │ ├── local.json │ ├── logentries.json │ ├── mailgun.json │ ├── mysql.json │ ├── newrelic.json │ ├── nomad.json │ ├── ns1.json │ ├── null.json │ ├── oneandone.json │ ├── opc.json │ ├── openstack.json │ ├── opsgenie.json │ ├── ovh.json │ ├── packet.json │ ├── pagerduty.json │ ├── postgresql.json │ ├── powerdns.json │ ├── profitbricks.json │ ├── rabbitmq.json │ ├── rancher.json │ ├── random.json │ ├── rundeck.json │ ├── scaleway.json │ ├── softlayer.json │ ├── spotinst.json │ ├── statuscake.json │ ├── template.json │ ├── terraform.json │ ├── tls.json │ ├── triton.json │ ├── ultradns.json │ ├── vault.json │ ├── vcd.json │ └── vsphere.json ├── providers_list.txt ├── routine_update.rb ├── run-test ├── schemas-extractor/ │ └── schemas/ │ └── .gitkeep ├── syntax_checkers/ │ └── terraform/ │ ├── terraform_validate.vim │ ├── tffilter.vim │ └── tflint.vim ├── tags_urls.txt ├── test-vim-terraform-completion ├── tests/ │ ├── README.md │ ├── data.vader │ ├── module.vader │ ├── modules/ │ │ ├── outputs.tf │ │ └── variables.tf │ ├── plug.vim │ └── resource.vader ├── tests.vimrc ├── update_community_provider_md.rb ├── update_provider_md.rb ├── update_tfcompleterc.rb ├── update_versions.rb ├── utils/ │ ├── generate_provider_data │ ├── get_doc │ ├── lookup_attrs │ └── terraform_validate_filter └── version_dissect.rb
SYMBOL INDEX (21 symbols across 4 files)
FILE: dissect.rb
function parse_items_attr (line 11) | def parse_items_attr(items)
function parse_items (line 36) | def parse_items(items)
function parse_arrays (line 63) | def parse_arrays(ar1, ar2)
FILE: generate-schema/generate-schema.go
function Export (line 19) | func Export(p *schema.Provider) *ResourceProviderSchema {
function ExportResource (line 39) | func ExportResource(r *schema.Resource) SchemaInfo {
type schemaMap (line 44) | type schemaMap
method Export (line 47) | func (m schemaMap) Export() SchemaInfo {
function export (line 56) | func export(v *schema.Schema) SchemaDefinition {
function exportValue (line 84) | func exportValue(value interface{}, t string) SchemaElement {
function Generate (line 96) | func Generate(provider *schema.Provider, name string, outputPath string) {
function DoGenerate (line 105) | func DoGenerate(provider *schema.Provider, providerName string, outputFi...
type SchemaElement (line 127) | type SchemaElement struct
type SchemaDefinition (line 138) | type SchemaDefinition struct
type SchemaInfo (line 159) | type SchemaInfo
type ResourceProviderSchema (line 162) | type ResourceProviderSchema struct
function main (line 171) | func main() {
FILE: generate_snippets.rb
function get_snippets (line 5) | def get_snippets(args)
FILE: module.rb
type ModuleUtils (line 7) | module ModuleUtils
function parse_link (line 8) | def parse_link(name, source)
function load_arg_module (line 23) | def load_arg_module(name, source, path)
function load_attr_module (line 43) | def load_attr_module(name,source, path)
Copy disabled (too large)
Download .json
Condensed preview — 1379 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (122,658K chars).
[
{
"path": ".gitignore",
"chars": 1658,
"preview": "\n# Created by https://www.gitignore.io/api/ruby,vim,linux\n\n### Linux ###\n*~\n\n# temporary files which can be created if a"
},
{
"path": ".gitmodules",
"chars": 102,
"preview": "[submodule \"snippets\"]\n\tpath = snippets\n\turl = https://github.com/juliosueiras/vim-terraform-snippets\n"
},
{
"path": ".tfcompleterc",
"chars": 1403,
"preview": "acme=1.3.4\nalicloud=1.52.2\narchive=1.2.2\narukas=1.1.0\natlas=0.1.1\naws=2.21.1\nazuread=0.5.1\nazure=0.1.1\nazurerm=1.32.0\naz"
},
{
"path": ".travis.yml",
"chars": 218,
"preview": "sudo: required\n\nlanguage: ruby\n\nrvm: 2.3.1\nenv:\n - VIM_TYPE=nvim\n - VIM_TYPE=vim\n\nservices:\n - docker\n\nbefore_script:"
},
{
"path": "CHANGELOG.md",
"chars": 5022,
"preview": "# Changelog\n## **Disclamier:** Have to mostly use asciinema due to my laptop take foerever to do gifs\n\n## 2018-04-20\n- A"
},
{
"path": "COMMUNITY_PROVIDER_VERSIONS.md",
"chars": 11116,
"preview": "||||||\n|---|---|---|---|---|\n|[](h"
},
{
"path": "CONTRIBUTORS.md",
"chars": 295,
"preview": "# Contributors\n\n- [Christopher Campanale](https://github.com/ccampanale)\n - Creating the Dockerfile for the plugin\n\n-"
},
{
"path": "CUSTOM_PROVIDER.md",
"chars": 989,
"preview": "# Completion for Custom Provider\n\nDue to unstable and unpredicted nature of unofficial providers, the result can be vary"
},
{
"path": "DEMO.md",
"chars": 539,
"preview": "# Asciinema Demos\n\n## Linter Demo\n\n[](https://asciinema.org/a/118441)\n\n#"
},
{
"path": "Dockerfile",
"chars": 221,
"preview": "FROM juliosueiras/vim-terraform-completion-base:latest\nUSER root\nRUN git clone https://github.com/junegunn/vader.vim\nADD"
},
{
"path": "Dockerfile_base",
"chars": 758,
"preview": "FROM alpine:3.8 AS vim_ruby\n\nRUN apk add --no-cache \\\n build-base \\\n ctags \\\n git \\\n libx11-dev \\\n "
},
{
"path": "Gemfile",
"chars": 58,
"preview": "source 'https://rubygems.org'\n\ngem 'nokogiri'\ngem 'rdoc'\n\n"
},
{
"path": "LICENSE.md",
"chars": 1086,
"preview": "\nThe MIT License (MIT)\n\nCopyright (c) 2017 Julio Tain Sueiras\n\nPermission is hereby granted, free of charge, to any pers"
},
{
"path": "PROVIDER_VERSIONS.md",
"chars": 18354,
"preview": "||||||\n|---|---|---|---|---|\n|[](h"
},
{
"path": "README.md",
"chars": 8578,
"preview": "# (Neo)Vim Terraform Completion with Linter - [Demos](./DEMO.md)\n\n**IMPORTANT: This plugin now allow version based compl"
},
{
"path": "addon-info.json",
"chars": 260,
"preview": "{\n \"name\": \"vim-terraform-completion\",\n \"description\": \"A (Neo)Vim AutoCompletion Plugin for HashiCorp's Terraform\",\n "
},
{
"path": "autoload/terraformcomplete.vim",
"chars": 35859,
"preview": "if !has(\"ruby\") && !has(\"ruby/dyn\")\n finish\nendif\n\nif exists('g:syntastic_extra_filetypes')\n call add(g:syntastic_"
},
{
"path": "check_new_provider",
"chars": 240,
"preview": "#!/bin/bash\ncurl -s https://api.github.com/orgs/terraform-providers/repos?per_page=200 | jq .[].name | sort > temp.txt\n"
},
{
"path": "community/backup_community.json",
"chars": 16230,
"preview": "[\n {\n \"versions\" : [\n \"master\",\n \"v0.9.1\",\n \"v0.9.0\",\n \"v0.8.0\",\n \"v0.7.0"
},
{
"path": "community/community-index.html",
"chars": 38250,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n <head>\n <meta charset=\"utf-8\">\n <meta name=\"mobile-web-app-capable\" content=\"ye"
},
{
"path": "community/community.json",
"chars": 24403,
"preview": "[\n {\n \"versions\" : [\n\t\t\t\t\"master\"\n ],\n \"parse_target\" : \"minikube\",\n \"name\" : \"terraform-provider-"
},
{
"path": "community/schemas.rb",
"chars": 6031,
"preview": "require 'json'\nrequire 'pry'\n\ncommunity = JSON.parse(File.read(\"community.json\"))\n\ncommunity.each do |provider|\n\nname = "
},
{
"path": "community/test.rb",
"chars": 1331,
"preview": "require 'nokogiri'\nrequire 'json'\nrequire 'rest-client'\nrequire 'pry'\n\ntest = Nokogiri::HTML(File.read('community-index"
},
{
"path": "community_provider_json/acme/master/acme.json",
"chars": 2161,
"preview": "{\"provider_arguments\":[],\"resources\":{\"certificate\":{\"arguments\":[{\"word\":\"account_key_pem\",\"kind\":\"String(R)\"},{\"word\":"
},
{
"path": "community_provider_json/acme/v0.3.0/acme.json",
"chars": 2161,
"preview": "{\"provider_arguments\":[],\"resources\":{\"certificate\":{\"arguments\":[{\"word\":\"account_key_pem\",\"kind\":\"String(R)\"},{\"word\":"
},
{
"path": "community_provider_json/acme/v0.4.0/acme.json",
"chars": 2161,
"preview": "{\"provider_arguments\":[],\"resources\":{\"certificate\":{\"arguments\":[{\"word\":\"account_key_pem\",\"kind\":\"String(R)\"},{\"word\":"
},
{
"path": "community_provider_json/acme/v0.5.0/acme.json",
"chars": 2161,
"preview": "{\"provider_arguments\":[],\"resources\":{\"certificate\":{\"arguments\":[{\"word\":\"account_key_pem\",\"kind\":\"String(R)\"},{\"word\":"
},
{
"path": "community_provider_json/ad/master/ad.json",
"chars": 292,
"preview": "{\"provider_arguments\":[],\"resources\":{\"computer\":{\"arguments\":[{\"word\":\"computer_name\",\"kind\":\"String(R)\"},{\"word\":\"doma"
},
{
"path": "community_provider_json/akamai/master/akamai.json",
"chars": 20637,
"preview": "{\"provider_arguments\":[],\"resources\":{\"cp_code\":{\"arguments\":[{\"word\":\"contract_id\",\"kind\":\"String(R)\"},{\"word\":\"group_i"
},
{
"path": "community_provider_json/apigee/master/apigee.json",
"chars": 5352,
"preview": "{\"provider_arguments\":[],\"resources\":{\"api_proxy\":{\"arguments\":[{\"word\":\"bundle\",\"kind\":\"String(R)\"},{\"word\":\"bundle_sha"
},
{
"path": "community_provider_json/apigee/v0.0.1/apigee.json",
"chars": 5352,
"preview": "{\"provider_arguments\":[],\"resources\":{\"api_proxy\":{\"arguments\":[{\"word\":\"bundle\",\"kind\":\"String(R)\"},{\"word\":\"bundle_sha"
},
{
"path": "community_provider_json/apigee/v0.0.9/apigee.json",
"chars": 5352,
"preview": "{\"provider_arguments\":[],\"resources\":{\"api_proxy\":{\"arguments\":[{\"word\":\"bundle\",\"kind\":\"String(R)\"},{\"word\":\"bundle_sha"
},
{
"path": "community_provider_json/artifactory/v0.0.1/artifactory.json",
"chars": 10002,
"preview": "{\"provider_arguments\":[],\"resources\":{\"group\":{\"arguments\":[{\"word\":\"admin_privileges\",\"kind\":\"Bool(O)\"},{\"word\":\"auto_j"
},
{
"path": "community_provider_json/artifactory/v0.0.2/artifactory.json",
"chars": 10002,
"preview": "{\"provider_arguments\":[],\"resources\":{\"group\":{\"arguments\":[{\"word\":\"admin_privileges\",\"kind\":\"Bool(O)\"},{\"word\":\"auto_j"
},
{
"path": "community_provider_json/artifactory/v1.0.1/artifactory.json",
"chars": 10002,
"preview": "{\"provider_arguments\":[],\"resources\":{\"group\":{\"arguments\":[{\"word\":\"admin_privileges\",\"kind\":\"Bool(O)\"},{\"word\":\"auto_j"
},
{
"path": "community_provider_json/artifactory/v1.1.0/artifactory.json",
"chars": 9653,
"preview": "{\"provider_arguments\":[],\"resources\":{\"group\":{\"arguments\":[{\"word\":\"admin_privileges\",\"kind\":\"Bool(O)\"},{\"word\":\"auto_j"
},
{
"path": "community_provider_json/artifactory/v1.2.0/artifactory.json",
"chars": 9746,
"preview": "{\"provider_arguments\":[],\"resources\":{\"group\":{\"arguments\":[{\"word\":\"admin_privileges\",\"kind\":\"Bool(O)\"},{\"word\":\"auto_j"
},
{
"path": "community_provider_json/artifactory/v1.2.1/artifactory.json",
"chars": 9746,
"preview": "{\"provider_arguments\":[],\"resources\":{\"group\":{\"arguments\":[{\"word\":\"admin_privileges\",\"kind\":\"Bool(O)\"},{\"word\":\"auto_j"
},
{
"path": "community_provider_json/artifactory/v1.2.2/artifactory.json",
"chars": 9746,
"preview": "{\"provider_arguments\":[],\"resources\":{\"group\":{\"arguments\":[{\"word\":\"admin_privileges\",\"kind\":\"Bool(O)\"},{\"word\":\"auto_j"
},
{
"path": "community_provider_json/artifactory/v1.2.3/artifactory.json",
"chars": 9841,
"preview": "{\"provider_arguments\":[],\"resources\":{\"group\":{\"arguments\":[{\"word\":\"admin_privileges\",\"kind\":\"Bool(O)\"},{\"word\":\"auto_j"
},
{
"path": "community_provider_json/avi/17.2.9/avi.json",
"chars": 732087,
"preview": "{\"provider_arguments\":[],\"resources\":{\"actiongroupconfig\":{\"arguments\":[{\"word\":\"action_script_config_ref\",\"kind\":\"Strin"
},
{
"path": "community_provider_json/avi/master/avi.json",
"chars": 733280,
"preview": "{\"provider_arguments\":[],\"resources\":{\"actiongroupconfig\":{\"arguments\":[{\"word\":\"action_script_config_ref\",\"kind\":\"Strin"
},
{
"path": "community_provider_json/aviatrix/master/aviatrix.json",
"chars": 14816,
"preview": "{\"provider_arguments\":[],\"resources\":{\"account\":{\"arguments\":[{\"word\":\"account_email\",\"kind\":\"String(O)\"},{\"word\":\"accou"
},
{
"path": "community_provider_json/cloudamqp/master/cloudamqp.json",
"chars": 1428,
"preview": "{\"provider_arguments\":[],\"resources\":{\"instance\":{\"arguments\":[{\"word\":\"name\",\"kind\":\"String(R)\",\"info\":\"Name of the ins"
},
{
"path": "community_provider_json/cloudkarafka/master/cloudkarafka.json",
"chars": 1205,
"preview": "{\"provider_arguments\":[],\"resources\":{\"instance\":{\"arguments\":[{\"word\":\"name\",\"kind\":\"String(R)\",\"info\":\"Name of the ins"
},
{
"path": "community_provider_json/cloudmqtt/master/cloudmqtt.json",
"chars": 729,
"preview": "{\"provider_arguments\":[],\"resources\":{\"instance\":{\"arguments\":[{\"word\":\"name\",\"kind\":\"String(R)\",\"info\":\"Name of the ins"
},
{
"path": "community_provider_json/concourse/master/concourse.json",
"chars": 1942,
"preview": "{\"provider_arguments\":[],\"resources\":{\"pipeline\":{\"arguments\":[{\"word\":\"config\",\"kind\":\"String(R)\",\"info\":\"Pipeline conf"
},
{
"path": "community_provider_json/couchdb/master/couchdb.json",
"chars": 6079,
"preview": "{\"provider_arguments\":[],\"resources\":{\"admin_user\":{\"arguments\":[{\"word\":\"name\",\"kind\":\"String(R)\",\"info\":\"Name of the a"
},
{
"path": "community_provider_json/ct/v0.3.0/ct.json",
"chars": 509,
"preview": "{\"provider_arguments\":[],\"resources\":{},\"datas\":{\"config\":{\"arguments\":[{\"word\":\"content\",\"kind\":\"String(R)\"},{\"word\":\"p"
},
{
"path": "community_provider_json/dockermachine/0.1.4/dockermachine.json",
"chars": 59851,
"preview": "{\"provider_arguments\":[],\"resources\":{\"amazonec2\":{\"arguments\":[{\"word\":\"amazonec2_access_key\",\"kind\":\"String(O)\"},{\"wor"
},
{
"path": "community_provider_json/dockermachine/master/dockermachine.json",
"chars": 59851,
"preview": "{\"provider_arguments\":[],\"resources\":{\"amazonec2\":{\"arguments\":[{\"word\":\"amazonec2_access_key\",\"kind\":\"String(O)\"},{\"wor"
},
{
"path": "community_provider_json/dominos/master/dominos.json",
"chars": 1762,
"preview": "{\"provider_arguments\":[],\"resources\":{\"order\":{\"arguments\":[{\"word\":\"address_api_object\",\"kind\":\"String(R)\"},{\"word\":\"it"
},
{
"path": "community_provider_json/drp/v0.0.1/drp.json",
"chars": 1112,
"preview": "{\"provider_arguments\":[],\"resources\":{\"instance\":{\"arguments\":[{\"word\":\"bootenv\",\"kind\":\"String(O)\"},{\"word\":\"descriptio"
},
{
"path": "community_provider_json/drp/v0.7.0/drp.json",
"chars": 1181,
"preview": "{\"provider_arguments\":[],\"resources\":{\"instance\":{\"arguments\":[{\"word\":\"bootenv\",\"kind\":\"String(O)\"},{\"word\":\"descriptio"
},
{
"path": "community_provider_json/drp/v0.7.1/drp.json",
"chars": 1181,
"preview": "{\"provider_arguments\":[],\"resources\":{\"instance\":{\"arguments\":[{\"word\":\"bootenv\",\"kind\":\"String(O)\"},{\"word\":\"descriptio"
},
{
"path": "community_provider_json/drp/v0.7.2/drp.json",
"chars": 1180,
"preview": "{\"provider_arguments\":[],\"resources\":{\"machine\":{\"arguments\":[{\"word\":\"bootenv\",\"kind\":\"String(O)\"},{\"word\":\"description"
},
{
"path": "community_provider_json/drp/v0.7.3/drp.json",
"chars": 1180,
"preview": "{\"provider_arguments\":[],\"resources\":{\"machine\":{\"arguments\":[{\"word\":\"bootenv\",\"kind\":\"String(O)\"},{\"word\":\"description"
},
{
"path": "community_provider_json/drp/v0.7.4/drp.json",
"chars": 1180,
"preview": "{\"provider_arguments\":[],\"resources\":{\"machine\":{\"arguments\":[{\"word\":\"bootenv\",\"kind\":\"String(O)\"},{\"word\":\"description"
},
{
"path": "community_provider_json/drp/v0.7.5/drp.json",
"chars": 1180,
"preview": "{\"provider_arguments\":[],\"resources\":{\"machine\":{\"arguments\":[{\"word\":\"bootenv\",\"kind\":\"String(O)\"},{\"word\":\"description"
},
{
"path": "community_provider_json/drp/v0.7.6/drp.json",
"chars": 1180,
"preview": "{\"provider_arguments\":[],\"resources\":{\"machine\":{\"arguments\":[{\"word\":\"bootenv\",\"kind\":\"String(O)\"},{\"word\":\"description"
},
{
"path": "community_provider_json/drp/v0.7.7/drp.json",
"chars": 1180,
"preview": "{\"provider_arguments\":[],\"resources\":{\"machine\":{\"arguments\":[{\"word\":\"bootenv\",\"kind\":\"String(O)\"},{\"word\":\"description"
},
{
"path": "community_provider_json/drp/v0.7.8/drp.json",
"chars": 1180,
"preview": "{\"provider_arguments\":[],\"resources\":{\"machine\":{\"arguments\":[{\"word\":\"bootenv\",\"kind\":\"String(O)\"},{\"word\":\"description"
},
{
"path": "community_provider_json/esxi/master/esxi.json",
"chars": 6165,
"preview": "{\"provider_arguments\":[],\"resources\":{\"guest\":{\"arguments\":[{\"word\":\"boot_disk_size\",\"kind\":\"String(O)\",\"info\":\"Guest bo"
},
{
"path": "community_provider_json/filesystem/master/filesystem.json",
"chars": 1795,
"preview": "{\"provider_arguments\":[],\"resources\":{\"file_reader\":{\"arguments\":[{\"word\":\"path\",\"kind\":\"String(R)\",\"info\":\"Path to read"
},
{
"path": "community_provider_json/gandi/master/gandi.json",
"chars": 816,
"preview": "{\"provider_arguments\":[],\"resources\":{\"domainattachment\":{\"arguments\":[{\"word\":\"domain\",\"kind\":\"String(R)\"},{\"word\":\"zon"
},
{
"path": "community_provider_json/glue/master/glue.json",
"chars": 1710,
"preview": "{\"provider_arguments\":[],\"resources\":{\"var_map\":{\"arguments\":[{\"word\":\"entries\",\"kind\":\"Map(R)\"},{\"word\":\"identifier\",\"k"
},
{
"path": "community_provider_json/gocd/0.1.21/gocd.json",
"chars": 7866,
"preview": "{\"provider_arguments\":[],\"resources\":{\"environment\":{\"arguments\":[{\"word\":\"name\",\"kind\":\"String(R)\"}],\"attributes\":[{\"wo"
},
{
"path": "community_provider_json/gocd/master/gocd.json",
"chars": 7866,
"preview": "{\"provider_arguments\":[],\"resources\":{\"environment\":{\"arguments\":[{\"word\":\"name\",\"kind\":\"String(R)\"}],\"attributes\":[{\"wo"
},
{
"path": "community_provider_json/googlecalendar/master/googlecalendar.json",
"chars": 1713,
"preview": "{\"provider_arguments\":[],\"resources\":{\"event\":{\"arguments\":[{\"word\":\"attendee\",\"kind\":\"Set(O)(B)\",\"subblock\":[{\"word\":\"e"
},
{
"path": "community_provider_json/googlecalendar/v0.1.0/googlecalendar.json",
"chars": 1713,
"preview": "{\"provider_arguments\":[],\"resources\":{\"event\":{\"arguments\":[{\"word\":\"attendee\",\"kind\":\"Set(O)(B)\",\"subblock\":[{\"word\":\"e"
},
{
"path": "community_provider_json/gsuite/master/gsuite.json",
"chars": 4178,
"preview": "{\"provider_arguments\":[],\"resources\":{\"group\":{\"arguments\":[{\"word\":\"description\",\"kind\":\"String(O)\"},{\"word\":\"email\",\"k"
},
{
"path": "community_provider_json/gsuite/v0.1.0/gsuite.json",
"chars": 3627,
"preview": "{\"provider_arguments\":[],\"resources\":{\"group\":{\"arguments\":[{\"word\":\"description\",\"kind\":\"String(O)\"},{\"word\":\"email\",\"k"
},
{
"path": "community_provider_json/gsuite/v0.1.1/gsuite.json",
"chars": 4178,
"preview": "{\"provider_arguments\":[],\"resources\":{\"group\":{\"arguments\":[{\"word\":\"description\",\"kind\":\"String(O)\"},{\"word\":\"email\",\"k"
},
{
"path": "community_provider_json/gsuite/v0.1.2/gsuite.json",
"chars": 4178,
"preview": "{\"provider_arguments\":[],\"resources\":{\"group\":{\"arguments\":[{\"word\":\"description\",\"kind\":\"String(O)\"},{\"word\":\"email\",\"k"
},
{
"path": "community_provider_json/gsuite/v0.1.3/gsuite.json",
"chars": 4178,
"preview": "{\"provider_arguments\":[],\"resources\":{\"group\":{\"arguments\":[{\"word\":\"description\",\"kind\":\"String(O)\"},{\"word\":\"email\",\"k"
},
{
"path": "community_provider_json/gsuite/v0.1.4/gsuite.json",
"chars": 4178,
"preview": "{\"provider_arguments\":[],\"resources\":{\"group\":{\"arguments\":[{\"word\":\"description\",\"kind\":\"String(O)\"},{\"word\":\"email\",\"k"
},
{
"path": "community_provider_json/gsuite/v0.1.5/gsuite.json",
"chars": 4178,
"preview": "{\"provider_arguments\":[],\"resources\":{\"group\":{\"arguments\":[{\"word\":\"description\",\"kind\":\"String(O)\"},{\"word\":\"email\",\"k"
},
{
"path": "community_provider_json/gsuite/v0.1.7/gsuite.json",
"chars": 4178,
"preview": "{\"provider_arguments\":[],\"resources\":{\"group\":{\"arguments\":[{\"word\":\"description\",\"kind\":\"String(O)\"},{\"word\":\"email\",\"k"
},
{
"path": "community_provider_json/hcloud/master/hcloud.json",
"chars": 1734,
"preview": "{\"provider_arguments\":[],\"resources\":{\"floating_ip\":{\"arguments\":[{\"word\":\"description\",\"kind\":\"String(O)\"},{\"word\":\"hom"
},
{
"path": "community_provider_json/hcloud/v1.0.0/hcloud.json",
"chars": 1809,
"preview": "{\"provider_arguments\":[],\"resources\":{\"floating_ip\":{\"arguments\":[{\"word\":\"description\",\"kind\":\"String(O)\"},{\"word\":\"hom"
},
{
"path": "community_provider_json/hcloud/v1.1.0/hcloud.json",
"chars": 1809,
"preview": "{\"provider_arguments\":[],\"resources\":{\"floating_ip\":{\"arguments\":[{\"word\":\"description\",\"kind\":\"String(O)\"},{\"word\":\"hom"
},
{
"path": "community_provider_json/helm/master/helm.json",
"chars": 5456,
"preview": "{\"provider_arguments\":[],\"resources\":{\"release\":{\"arguments\":[{\"word\":\"chart\",\"kind\":\"String(R)\",\"info\":\"Chart name to b"
},
{
"path": "community_provider_json/helm/v0.1.0/helm.json",
"chars": 4862,
"preview": "{\"provider_arguments\":[],\"resources\":{\"chart\":{\"arguments\":[{\"word\":\"chart\",\"kind\":\"String(R)\",\"info\":\"Chart name to be "
},
{
"path": "community_provider_json/helm/v0.2.0/helm.json",
"chars": 4864,
"preview": "{\"provider_arguments\":[],\"resources\":{\"chart\":{\"arguments\":[{\"word\":\"chart\",\"kind\":\"String(R)\",\"info\":\"Chart name to be "
},
{
"path": "community_provider_json/helm/v0.3.0/helm.json",
"chars": 5017,
"preview": "{\"provider_arguments\":[],\"resources\":{\"chart\":{\"arguments\":[{\"word\":\"chart\",\"kind\":\"String(R)\",\"info\":\"Chart name to be "
},
{
"path": "community_provider_json/helm/v0.3.1/helm.json",
"chars": 5017,
"preview": "{\"provider_arguments\":[],\"resources\":{\"chart\":{\"arguments\":[{\"word\":\"chart\",\"kind\":\"String(R)\",\"info\":\"Chart name to be "
},
{
"path": "community_provider_json/helm/v0.3.2/helm.json",
"chars": 5017,
"preview": "{\"provider_arguments\":[],\"resources\":{\"chart\":{\"arguments\":[{\"word\":\"chart\",\"kind\":\"String(R)\",\"info\":\"Chart name to be "
},
{
"path": "community_provider_json/helm/v0.4.0/helm.json",
"chars": 4748,
"preview": "{\"provider_arguments\":[],\"resources\":{\"release\":{\"arguments\":[{\"word\":\"chart\",\"kind\":\"String(R)\",\"info\":\"Chart name to b"
},
{
"path": "community_provider_json/helm/v0.5.0/helm.json",
"chars": 5277,
"preview": "{\"provider_arguments\":[],\"resources\":{\"release\":{\"arguments\":[{\"word\":\"chart\",\"kind\":\"String(R)\",\"info\":\"Chart name to b"
},
{
"path": "community_provider_json/helm/v0.5.1/helm.json",
"chars": 5456,
"preview": "{\"provider_arguments\":[],\"resources\":{\"release\":{\"arguments\":[{\"word\":\"chart\",\"kind\":\"String(R)\",\"info\":\"Chart name to b"
},
{
"path": "community_provider_json/hiera/v.0.1.0/hiera.json",
"chars": 554,
"preview": "{\"provider_arguments\":[],\"resources\":{},\"datas\":{\"\":{\"arguments\":[{\"word\":\"key\",\"kind\":\"String(R)\"}],\"attributes\":[{\"wor"
},
{
"path": "community_provider_json/httpfileupload/master/httpfileupload.json",
"chars": 486,
"preview": "{\"provider_arguments\":[],\"resources\":{\"file\":{\"arguments\":[{\"word\":\"file_path\",\"kind\":\"String(R)\",\"info\":\"Absolute filep"
},
{
"path": "community_provider_json/ibm/v0.10.0/ibm.json",
"chars": 105162,
"preview": "{\"provider_arguments\":[],\"resources\":{\"app\":{\"arguments\":[{\"word\":\"app_path\",\"kind\":\"String(R)\",\"info\":\"Define the path"
},
{
"path": "community_provider_json/ibm/v0.12.0/ibm.json",
"chars": 118109,
"preview": "{\"provider_arguments\":[],\"resources\":{\"app\":{\"arguments\":[{\"word\":\"app_path\",\"kind\":\"String(R)\",\"info\":\"Define the path"
},
{
"path": "community_provider_json/ibm/v0.4.0/ibm.json",
"chars": 48315,
"preview": "{\"provider_arguments\":[],\"resources\":{\"app\":{\"arguments\":[{\"word\":\"app_path\",\"kind\":\"String(R)\",\"info\":\"Define the path"
},
{
"path": "community_provider_json/ibm/v0.5.0/ibm.json",
"chars": 62246,
"preview": "{\"provider_arguments\":[],\"resources\":{\"app\":{\"arguments\":[{\"word\":\"app_path\",\"kind\":\"String(R)\",\"info\":\"Define the path"
},
{
"path": "community_provider_json/ibm/v0.5.1/ibm.json",
"chars": 63021,
"preview": "{\"provider_arguments\":[],\"resources\":{\"app\":{\"arguments\":[{\"word\":\"app_path\",\"kind\":\"String(R)\",\"info\":\"Define the path"
},
{
"path": "community_provider_json/ibm/v0.6.0/ibm.json",
"chars": 69058,
"preview": "{\"provider_arguments\":[],\"resources\":{\"app\":{\"arguments\":[{\"word\":\"app_path\",\"kind\":\"String(R)\",\"info\":\"Define the path"
},
{
"path": "community_provider_json/ibm/v0.7.0/ibm.json",
"chars": 84909,
"preview": "{\"provider_arguments\":[],\"resources\":{\"app\":{\"arguments\":[{\"word\":\"app_path\",\"kind\":\"String(R)\",\"info\":\"Define the path"
},
{
"path": "community_provider_json/ibm/v0.8.0/ibm.json",
"chars": 91822,
"preview": "{\"provider_arguments\":[],\"resources\":{\"app\":{\"arguments\":[{\"word\":\"app_path\",\"kind\":\"String(R)\",\"info\":\"Define the path"
},
{
"path": "community_provider_json/ibm/v0.9.0/ibm.json",
"chars": 97658,
"preview": "{\"provider_arguments\":[],\"resources\":{\"app\":{\"arguments\":[{\"word\":\"app_path\",\"kind\":\"String(R)\",\"info\":\"Define the path"
},
{
"path": "community_provider_json/ibm/v0.9.1/ibm.json",
"chars": 98351,
"preview": "{\"provider_arguments\":[],\"resources\":{\"app\":{\"arguments\":[{\"word\":\"app_path\",\"kind\":\"String(R)\",\"info\":\"Define the path"
},
{
"path": "community_provider_json/infoblox/0.1.11/infoblox.json",
"chars": 89445,
"preview": "{\"provider_arguments\":[],\"resources\":{\"admin_group\":{\"arguments\":[{\"word\":\"access_method\",\"kind\":\"List(O)\",\"info\":\"Metho"
},
{
"path": "community_provider_json/infoblox/master/infoblox.json",
"chars": 89445,
"preview": "{\"provider_arguments\":[],\"resources\":{\"admin_group\":{\"arguments\":[{\"word\":\"access_method\",\"kind\":\"List(O)\",\"info\":\"Metho"
},
{
"path": "community_provider_json/jira/0.1.0/jira.json",
"chars": 634,
"preview": "{\"provider_arguments\":[],\"resources\":{\"issue\":{\"arguments\":[{\"word\":\"assignee\",\"kind\":\"String(R)\"},{\"word\":\"description\""
},
{
"path": "community_provider_json/jira/master/jira.json",
"chars": 634,
"preview": "{\"provider_arguments\":[],\"resources\":{\"issue\":{\"arguments\":[{\"word\":\"assignee\",\"kind\":\"String(R)\"},{\"word\":\"description\""
},
{
"path": "community_provider_json/kafka/master/kafka.json",
"chars": 685,
"preview": "{\"provider_arguments\":[],\"resources\":{\"topic\":{\"arguments\":[{\"word\":\"config\",\"kind\":\"Map(O)\",\"info\":\"A map of string k/v"
},
{
"path": "community_provider_json/kafka/v0.1.0/kafka.json",
"chars": 1338,
"preview": "{\"provider_arguments\":[],\"resources\":{\"acl\":{\"arguments\":[{\"word\":\"acl_host\",\"kind\":\"String(R)\"},{\"word\":\"acl_operation\""
},
{
"path": "community_provider_json/kafka/v0.1.1/kafka.json",
"chars": 1338,
"preview": "{\"provider_arguments\":[],\"resources\":{\"acl\":{\"arguments\":[{\"word\":\"acl_host\",\"kind\":\"String(R)\"},{\"word\":\"acl_operation\""
},
{
"path": "community_provider_json/keboola/master/keboola.json",
"chars": 14107,
"preview": "{\"provider_arguments\":[],\"resources\":{\"access_token\":{\"arguments\":[{\"word\":\"bucket_permissions\",\"kind\":\"Map(O)\"},{\"word\""
},
{
"path": "community_provider_json/kibana/master/kibana.json",
"chars": 4731,
"preview": "{\"provider_arguments\":[],\"resources\":{\"dashboard\":{\"arguments\":[{\"word\":\"description\",\"kind\":\"String(O)\",\"info\":\"Descrip"
},
{
"path": "community_provider_json/kibana/v0.1.0/kibana.json",
"chars": 1819,
"preview": "{\"provider_arguments\":[],\"resources\":{\"search\":{\"arguments\":[{\"word\":\"description\",\"kind\":\"String(O)\",\"info\":\"Descriptio"
},
{
"path": "community_provider_json/kibana/v0.1.1/kibana.json",
"chars": 1819,
"preview": "{\"provider_arguments\":[],\"resources\":{\"search\":{\"arguments\":[{\"word\":\"description\",\"kind\":\"String(O)\",\"info\":\"Descriptio"
},
{
"path": "community_provider_json/kibana/v0.1.2/kibana.json",
"chars": 1819,
"preview": "{\"provider_arguments\":[],\"resources\":{\"search\":{\"arguments\":[{\"word\":\"description\",\"kind\":\"String(O)\",\"info\":\"Descriptio"
},
{
"path": "community_provider_json/kibana/v0.2.0/kibana.json",
"chars": 1819,
"preview": "{\"provider_arguments\":[],\"resources\":{\"search\":{\"arguments\":[{\"word\":\"description\",\"kind\":\"String(O)\",\"info\":\"Descriptio"
},
{
"path": "community_provider_json/kibana/v0.3.0/kibana.json",
"chars": 2642,
"preview": "{\"provider_arguments\":[],\"resources\":{\"search\":{\"arguments\":[{\"word\":\"description\",\"kind\":\"String(O)\",\"info\":\"Descriptio"
},
{
"path": "community_provider_json/kibana/v0.4.0/kibana.json",
"chars": 4591,
"preview": "{\"provider_arguments\":[],\"resources\":{\"dashboard\":{\"arguments\":[{\"word\":\"description\",\"kind\":\"String(O)\",\"info\":\"Descrip"
},
{
"path": "community_provider_json/kibana/v0.5.0/kibana.json",
"chars": 4591,
"preview": "{\"provider_arguments\":[],\"resources\":{\"dashboard\":{\"arguments\":[{\"word\":\"description\",\"kind\":\"String(O)\",\"info\":\"Descrip"
},
{
"path": "community_provider_json/kibana/v0.5.1/kibana.json",
"chars": 4591,
"preview": "{\"provider_arguments\":[],\"resources\":{\"dashboard\":{\"arguments\":[{\"word\":\"description\",\"kind\":\"String(O)\",\"info\":\"Descrip"
},
{
"path": "community_provider_json/kibana/v0.6.0/kibana.json",
"chars": 4731,
"preview": "{\"provider_arguments\":[],\"resources\":{\"dashboard\":{\"arguments\":[{\"word\":\"description\",\"kind\":\"String(O)\",\"info\":\"Descrip"
},
{
"path": "community_provider_json/kong/master/kong.json",
"chars": 5795,
"preview": "{\"provider_arguments\":[],\"resources\":{\"api\":{\"arguments\":[{\"word\":\"hosts\",\"kind\":\"List(O)\"},{\"word\":\"http_if_terminated\""
},
{
"path": "community_provider_json/kong/v0.1.0/kong.json",
"chars": 1156,
"preview": "{\"provider_arguments\":[],\"resources\":{\"api\":{\"arguments\":[{\"word\":\"hosts\",\"kind\":\"List(O)\"},{\"word\":\"http_if_terminated\""
},
{
"path": "community_provider_json/kong/v0.10.0/kong.json",
"chars": 5730,
"preview": "{\"provider_arguments\":[],\"resources\":{\"api\":{\"arguments\":[{\"word\":\"hosts\",\"kind\":\"List(O)\"},{\"word\":\"http_if_terminated\""
},
{
"path": "community_provider_json/kong/v0.11.0/kong.json",
"chars": 5795,
"preview": "{\"provider_arguments\":[],\"resources\":{\"api\":{\"arguments\":[{\"word\":\"hosts\",\"kind\":\"List(O)\"},{\"word\":\"http_if_terminated\""
},
{
"path": "community_provider_json/kong/v0.12.0/kong.json",
"chars": 5795,
"preview": "{\"provider_arguments\":[],\"resources\":{\"api\":{\"arguments\":[{\"word\":\"hosts\",\"kind\":\"List(O)\"},{\"word\":\"http_if_terminated\""
},
{
"path": "community_provider_json/kong/v0.13.0/kong.json",
"chars": 5795,
"preview": "{\"provider_arguments\":[],\"resources\":{\"api\":{\"arguments\":[{\"word\":\"hosts\",\"kind\":\"List(O)\"},{\"word\":\"http_if_terminated\""
},
{
"path": "community_provider_json/kong/v0.14.0/kong.json",
"chars": 5795,
"preview": "{\"provider_arguments\":[],\"resources\":{\"api\":{\"arguments\":[{\"word\":\"hosts\",\"kind\":\"List(O)\"},{\"word\":\"http_if_terminated\""
},
{
"path": "community_provider_json/kong/v0.2.0/kong.json",
"chars": 1380,
"preview": "{\"provider_arguments\":[],\"resources\":{\"api\":{\"arguments\":[{\"word\":\"hosts\",\"kind\":\"List(O)\"},{\"word\":\"http_if_terminated\""
},
{
"path": "community_provider_json/kong/v0.3.0/kong.json",
"chars": 2192,
"preview": "{\"provider_arguments\":[],\"resources\":{\"api\":{\"arguments\":[{\"word\":\"hosts\",\"kind\":\"List(O)\"},{\"word\":\"http_if_terminated\""
},
{
"path": "community_provider_json/kong/v0.4.0/kong.json",
"chars": 3398,
"preview": "{\"provider_arguments\":[],\"resources\":{\"api\":{\"arguments\":[{\"word\":\"hosts\",\"kind\":\"List(O)\"},{\"word\":\"http_if_terminated\""
},
{
"path": "community_provider_json/kong/v0.5.0/kong.json",
"chars": 3398,
"preview": "{\"provider_arguments\":[],\"resources\":{\"api\":{\"arguments\":[{\"word\":\"hosts\",\"kind\":\"List(O)\"},{\"word\":\"http_if_terminated\""
},
{
"path": "community_provider_json/kong/v0.6.0/kong.json",
"chars": 5401,
"preview": "{\"provider_arguments\":[],\"resources\":{\"api\":{\"arguments\":[{\"word\":\"hosts\",\"kind\":\"List(O)\"},{\"word\":\"http_if_terminated\""
},
{
"path": "community_provider_json/kong/v0.7.0/kong.json",
"chars": 5401,
"preview": "{\"provider_arguments\":[],\"resources\":{\"api\":{\"arguments\":[{\"word\":\"hosts\",\"kind\":\"List(O)\"},{\"word\":\"http_if_terminated\""
},
{
"path": "community_provider_json/kong/v0.8.0/kong.json",
"chars": 5401,
"preview": "{\"provider_arguments\":[],\"resources\":{\"api\":{\"arguments\":[{\"word\":\"hosts\",\"kind\":\"List(O)\"},{\"word\":\"http_if_terminated\""
},
{
"path": "community_provider_json/kong/v0.9.0/kong.json",
"chars": 5401,
"preview": "{\"provider_arguments\":[],\"resources\":{\"api\":{\"arguments\":[{\"word\":\"hosts\",\"kind\":\"List(O)\"},{\"word\":\"http_if_terminated\""
},
{
"path": "community_provider_json/kong/v1.1.0/kong.json",
"chars": 1156,
"preview": "{\"provider_arguments\":[],\"resources\":{\"api\":{\"arguments\":[{\"word\":\"hosts\",\"kind\":\"List(O)\"},{\"word\":\"http_if_terminated\""
},
{
"path": "community_provider_json/kong/v1.5.0/kong.json",
"chars": 7164,
"preview": "{\"provider_arguments\":[],\"resources\":{\"api\":{\"arguments\":[{\"word\":\"hosts\",\"kind\":\"List(O)\"},{\"word\":\"http_if_terminated\""
},
{
"path": "community_provider_json/kubernetes/sl1pm4t/kubernetes.json",
"chars": 1555943,
"preview": "{\"provider_arguments\":[],\"resources\":{\"cluster_role\":{\"arguments\":[{\"word\":\"metadata\",\"kind\":\"List(R)(B)\",\"info\":\"Standa"
},
{
"path": "community_provider_json/lxd/v1.0.0/lxd.json",
"chars": 5089,
"preview": "{\"provider_arguments\":[],\"resources\":{\"cached_image\":{\"arguments\":[{\"word\":\"aliases\",\"kind\":\"List(O)\"},{\"word\":\"copy_ali"
},
{
"path": "community_provider_json/lxd/v1.1.0/lxd.json",
"chars": 5978,
"preview": "{\"provider_arguments\":[],\"resources\":{\"cached_image\":{\"arguments\":[{\"word\":\"aliases\",\"kind\":\"List(O)\"},{\"word\":\"copy_ali"
},
{
"path": "community_provider_json/lxd/v1.1.1/lxd.json",
"chars": 5978,
"preview": "{\"provider_arguments\":[],\"resources\":{\"cached_image\":{\"arguments\":[{\"word\":\"aliases\",\"kind\":\"List(O)\"},{\"word\":\"copy_ali"
},
{
"path": "community_provider_json/matchbox/master/matchbox.json",
"chars": 1023,
"preview": "{\"provider_arguments\":[],\"resources\":{\"group\":{\"arguments\":[{\"word\":\"metadata\",\"kind\":\"Map(O)\"},{\"word\":\"name\",\"kind\":\"S"
},
{
"path": "community_provider_json/matchbox/v0.1.0/matchbox.json",
"chars": 853,
"preview": "{\"provider_arguments\":[],\"resources\":{\"group\":{\"arguments\":[{\"word\":\"metadata\",\"kind\":\"Map(O)\"},{\"word\":\"name\",\"kind\":\"S"
},
{
"path": "community_provider_json/matchbox/v0.1.1/matchbox.json",
"chars": 853,
"preview": "{\"provider_arguments\":[],\"resources\":{\"group\":{\"arguments\":[{\"word\":\"metadata\",\"kind\":\"Map(O)\"},{\"word\":\"name\",\"kind\":\"S"
},
{
"path": "community_provider_json/matchbox/v0.1.2/matchbox.json",
"chars": 853,
"preview": "{\"provider_arguments\":[],\"resources\":{\"group\":{\"arguments\":[{\"word\":\"metadata\",\"kind\":\"Map(O)\"},{\"word\":\"name\",\"kind\":\"S"
},
{
"path": "community_provider_json/matchbox/v0.2.0/matchbox.json",
"chars": 1023,
"preview": "{\"provider_arguments\":[],\"resources\":{\"group\":{\"arguments\":[{\"word\":\"metadata\",\"kind\":\"Map(O)\"},{\"word\":\"name\",\"kind\":\"S"
},
{
"path": "community_provider_json/matchbox/v0.2.1/matchbox.json",
"chars": 1023,
"preview": "{\"provider_arguments\":[],\"resources\":{\"group\":{\"arguments\":[{\"word\":\"metadata\",\"kind\":\"Map(O)\"},{\"word\":\"name\",\"kind\":\"S"
},
{
"path": "community_provider_json/matchbox/v0.2.2/matchbox.json",
"chars": 1023,
"preview": "{\"provider_arguments\":[],\"resources\":{\"group\":{\"arguments\":[{\"word\":\"metadata\",\"kind\":\"Map(O)\"},{\"word\":\"name\",\"kind\":\"S"
},
{
"path": "community_provider_json/minikube/master/minikube.json",
"chars": 8039,
"preview": "{\"provider_arguments\":[],\"resources\":{\"\":{\"arguments\":[{\"word\":\"apiserver_name\",\"kind\":\"String(O)\",\"info\":\"The apiserver"
},
{
"path": "community_provider_json/mongodbatlas/master/mongodbatlas.json",
"chars": 4489,
"preview": "{\"provider_arguments\":[],\"resources\":{\"cluster\":{\"arguments\":[{\"word\":\"backing_provider\",\"kind\":\"String(O)\"},{\"word\":\"ba"
},
{
"path": "community_provider_json/mongodbatlas/v0.0.1/mongodbatlas.json",
"chars": 1071,
"preview": "{\"provider_arguments\":[],\"resources\":{\"cluster\":{\"arguments\":[{\"word\":\"backing_provider\",\"kind\":\"String(O)\"},{\"word\":\"ba"
},
{
"path": "community_provider_json/mongodbatlas/v0.0.2/mongodbatlas.json",
"chars": 2522,
"preview": "{\"provider_arguments\":[],\"resources\":{\"cluster\":{\"arguments\":[{\"word\":\"backing_provider\",\"kind\":\"String(O)\"},{\"word\":\"ba"
},
{
"path": "community_provider_json/mongodbatlas/v0.1.0/mongodbatlas.json",
"chars": 3109,
"preview": "{\"provider_arguments\":[],\"resources\":{\"cluster\":{\"arguments\":[{\"word\":\"backing_provider\",\"kind\":\"String(O)\"},{\"word\":\"ba"
},
{
"path": "community_provider_json/mongodbatlas/v0.2.0/mongodbatlas.json",
"chars": 3828,
"preview": "{\"provider_arguments\":[],\"resources\":{\"cluster\":{\"arguments\":[{\"word\":\"backing_provider\",\"kind\":\"String(O)\"},{\"word\":\"ba"
},
{
"path": "community_provider_json/mongodbatlas/v0.2.1/mongodbatlas.json",
"chars": 3828,
"preview": "{\"provider_arguments\":[],\"resources\":{\"cluster\":{\"arguments\":[{\"word\":\"backing_provider\",\"kind\":\"String(O)\"},{\"word\":\"ba"
},
{
"path": "community_provider_json/mongodbatlas/v0.2.2/mongodbatlas.json",
"chars": 3828,
"preview": "{\"provider_arguments\":[],\"resources\":{\"cluster\":{\"arguments\":[{\"word\":\"backing_provider\",\"kind\":\"String(O)\"},{\"word\":\"ba"
},
{
"path": "community_provider_json/mongodbatlas/v0.4.2/mongodbatlas.json",
"chars": 4489,
"preview": "{\"provider_arguments\":[],\"resources\":{\"cluster\":{\"arguments\":[{\"word\":\"backing_provider\",\"kind\":\"String(O)\"},{\"word\":\"ba"
},
{
"path": "community_provider_json/mongodbatlas/v0.4.3/mongodbatlas.json",
"chars": 4489,
"preview": "{\"provider_arguments\":[],\"resources\":{\"cluster\":{\"arguments\":[{\"word\":\"backing_provider\",\"kind\":\"String(O)\"},{\"word\":\"ba"
},
{
"path": "community_provider_json/mongodbatlas/v0.4.4/mongodbatlas.json",
"chars": 4489,
"preview": "{\"provider_arguments\":[],\"resources\":{\"cluster\":{\"arguments\":[{\"word\":\"backing_provider\",\"kind\":\"String(O)\"},{\"word\":\"ba"
},
{
"path": "community_provider_json/mongodbatlas/v0.4.5/mongodbatlas.json",
"chars": 4489,
"preview": "{\"provider_arguments\":[],\"resources\":{\"cluster\":{\"arguments\":[{\"word\":\"backing_provider\",\"kind\":\"String(O)\"},{\"word\":\"ba"
},
{
"path": "community_provider_json/mongodbatlas/v0.5.0/mongodbatlas.json",
"chars": 5147,
"preview": "{\"provider_arguments\":[],\"resources\":{\"cluster\":{\"arguments\":[{\"word\":\"backing_provider\",\"kind\":\"String(O)\"},{\"word\":\"ba"
},
{
"path": "community_provider_json/mongodbatlas/v0.6.1/mongodbatlas.json",
"chars": 5600,
"preview": "{\"provider_arguments\":[],\"resources\":{\"cluster\":{\"arguments\":[{\"word\":\"backing_provider\",\"kind\":\"String(O)\"},{\"word\":\"ba"
},
{
"path": "community_provider_json/netlify/master/netlify.json",
"chars": 1672,
"preview": "{\"provider_arguments\":[],\"resources\":{\"build_hook\":{\"arguments\":[{\"word\":\"branch\",\"kind\":\"String(R)\"},{\"word\":\"site_id\","
},
{
"path": "community_provider_json/nifi/develop/nifi.json",
"chars": 9874,
"preview": "{\"provider_arguments\":[],\"resources\":{\"connection\":{\"arguments\":[{\"word\":\"component\",\"kind\":\"List(R)(B)\",\"subblock\":[{\"w"
},
{
"path": "community_provider_json/nutanix/master/nutanix.json",
"chars": 85145,
"preview": "{\"provider_arguments\":[],\"resources\":{\"category_key\":{\"arguments\":[{\"word\":\"api_version\",\"kind\":\"String(O)\"},{\"word\":\"de"
},
{
"path": "community_provider_json/odl/master/odl.json",
"chars": 1660,
"preview": "{\"provider_arguments\":[],\"resources\":{\"virtual_bridge\":{\"arguments\":[{\"word\":\"age_interval\",\"kind\":\"Int(O)\"},{\"word\":\"br"
},
{
"path": "community_provider_json/oneview/master/oneview.json",
"chars": 15048,
"preview": "{\"provider_arguments\":[],\"resources\":{\"ethernet_network\":{\"arguments\":[{\"word\":\"description\",\"kind\":\"String(O)\"},{\"word\""
},
{
"path": "community_provider_json/packer/0.1.0/packer.json",
"chars": 532091,
"preview": "{\"provider_arguments\":[],\"resources\":{},\"datas\":{\"json\":{\"arguments\":[{\"word\":\"builders\",\"kind\":\"List(O)(B)\",\"subblock\":"
},
{
"path": "community_provider_json/packer/master/packer.json",
"chars": 541368,
"preview": "{\"provider_arguments\":[],\"resources\":{},\"datas\":{\"json\":{\"arguments\":[{\"word\":\"builders\",\"kind\":\"List(O)(B)\",\"subblock\":"
},
{
"path": "community_provider_json/packer/vsphere/packer.json",
"chars": 573576,
"preview": "{\"provider_arguments\":[],\"resources\":{},\"datas\":{\"json\":{\"arguments\":[{\"word\":\"builders\",\"kind\":\"List(O)(B)\",\"subblock\":"
},
{
"path": "community_provider_json/pass/1.0.1/pass.json",
"chars": 1011,
"preview": "{\"provider_arguments\":[],\"resources\":{\"password\":{\"arguments\":[{\"word\":\"data\",\"kind\":\"Map(O)\",\"info\":\"additional secret "
},
{
"path": "community_provider_json/pass/master/pass.json",
"chars": 1075,
"preview": "{\"provider_arguments\":[],\"resources\":{\"password\":{\"arguments\":[{\"word\":\"data\",\"kind\":\"Map(O)\",\"info\":\"additional secret "
},
{
"path": "community_provider_json/puppetca/1.0.1/puppetca.json",
"chars": 238,
"preview": "{\"provider_arguments\":[],\"resources\":{\"certificate\":{\"arguments\":[{\"word\":\"name\",\"kind\":\"String(R)\"}],\"attributes\":[{\"wo"
},
{
"path": "community_provider_json/puppetca/master/puppetca.json",
"chars": 238,
"preview": "{\"provider_arguments\":[],\"resources\":{\"certificate\":{\"arguments\":[{\"word\":\"name\",\"kind\":\"String(R)\"}],\"attributes\":[{\"wo"
},
{
"path": "community_provider_json/puppetdb/0.1.1/puppetdb.json",
"chars": 883,
"preview": "{\"provider_arguments\":[],\"resources\":{\"node\":{\"arguments\":[{\"word\":\"certname\",\"kind\":\"String(R)\"}],\"attributes\":[{\"word\""
},
{
"path": "community_provider_json/puppetdb/master/puppetdb.json",
"chars": 883,
"preview": "{\"provider_arguments\":[],\"resources\":{\"node\":{\"arguments\":[{\"word\":\"certname\",\"kind\":\"String(R)\"}],\"attributes\":[{\"word\""
},
{
"path": "community_provider_json/qingcloud/master/qingcloud.json",
"chars": 9151,
"preview": "{\"provider_arguments\":[],\"resources\":{\"eip\":{\"arguments\":[{\"word\":\"bandwidth\",\"kind\":\"Int(R)\"},{\"word\":\"billing_mode\",\"k"
},
{
"path": "community_provider_json/qingcloud/v1.0.0/qingcloud.json",
"chars": 5831,
"preview": "{\"provider_arguments\":[],\"resources\":{\"eip\":{\"arguments\":[{\"word\":\"bandwidth\",\"kind\":\"Int(R)\"},{\"word\":\"billing_mode\",\"k"
},
{
"path": "community_provider_json/qingcloud/v1.0.1/qingcloud.json",
"chars": 5831,
"preview": "{\"provider_arguments\":[],\"resources\":{\"eip\":{\"arguments\":[{\"word\":\"bandwidth\",\"kind\":\"Int(R)\"},{\"word\":\"billing_mode\",\"k"
},
{
"path": "community_provider_json/qingcloud/v1.1/qingcloud.json",
"chars": 5831,
"preview": "{\"provider_arguments\":[],\"resources\":{\"eip\":{\"arguments\":[{\"word\":\"bandwidth\",\"kind\":\"Int(R)\"},{\"word\":\"billing_mode\",\"k"
},
{
"path": "community_provider_json/qingcloud/v1.2.0/qingcloud.json",
"chars": 9151,
"preview": "{\"provider_arguments\":[],\"resources\":{\"eip\":{\"arguments\":[{\"word\":\"bandwidth\",\"kind\":\"Int(R)\"},{\"word\":\"billing_mode\",\"k"
},
{
"path": "community_provider_json/qingcloud/v1.2.1/qingcloud.json",
"chars": 9151,
"preview": "{\"provider_arguments\":[],\"resources\":{\"eip\":{\"arguments\":[{\"word\":\"bandwidth\",\"kind\":\"Int(R)\"},{\"word\":\"billing_mode\",\"k"
},
{
"path": "community_provider_json/qingcloud/v1.2.2/qingcloud.json",
"chars": 9145,
"preview": "{\"provider_arguments\":[],\"resources\":{\"eip\":{\"arguments\":[{\"word\":\"bandwidth\",\"kind\":\"Int(R)\"},{\"word\":\"billing_mode\",\"k"
},
{
"path": "community_provider_json/razor/master/razor.json",
"chars": 2918,
"preview": "{\"provider_arguments\":[],\"resources\":{\"policy\":{\"arguments\":[{\"word\":\"after\",\"kind\":\"String(O)\"},{\"word\":\"before\",\"kind\""
},
{
"path": "community_provider_json/redshift/master/redshift.json",
"chars": 2714,
"preview": "{\"provider_arguments\":[],\"resources\":{\"database\":{\"arguments\":[{\"word\":\"connection_limit\",\"kind\":\"String(O)\"},{\"word\":\"d"
},
{
"path": "community_provider_json/restapi/master/restapi.json",
"chars": 1273,
"preview": "{\"provider_arguments\":[],\"resources\":{\"object\":{\"arguments\":[{\"word\":\"data\",\"kind\":\"String(R)\",\"info\":\"Valid JSON data t"
},
{
"path": "community_provider_json/restapi/v0.1.0/restapi.json",
"chars": 1273,
"preview": "{\"provider_arguments\":[],\"resources\":{\"object\":{\"arguments\":[{\"word\":\"data\",\"kind\":\"String(R)\",\"info\":\"Valid JSON data t"
},
{
"path": "community_provider_json/rke/0.2.0/rke.json",
"chars": 19957,
"preview": "{\"provider_arguments\":[],\"resources\":{\"cluster\":{\"arguments\":[{\"word\":\"addon_job_timeout\",\"kind\":\"Int(O)\",\"info\":\"Timeou"
},
{
"path": "community_provider_json/rke/0.3.4/rke.json",
"chars": 39198,
"preview": "{\"provider_arguments\":[],\"resources\":{\"cluster\":{\"arguments\":[{\"word\":\"addon_job_timeout\",\"kind\":\"Int(O)\",\"info\":\"Timeou"
},
{
"path": "community_provider_json/rke/master/rke.json",
"chars": 18240,
"preview": "{\"provider_arguments\":[],\"resources\":{\"cluster\":{\"arguments\":[{\"word\":\"addons\",\"kind\":\"String(O)\",\"info\":\"YAML manifest "
},
{
"path": "community_provider_json/runscope/master/runscope.json",
"chars": 5192,
"preview": "{\"provider_arguments\":[],\"resources\":{\"bucket\":{\"arguments\":[{\"word\":\"name\",\"kind\":\"String(R)\"},{\"word\":\"team_uuid\",\"kin"
},
{
"path": "community_provider_json/runscope/v0.5.6/runscope.json",
"chars": 5522,
"preview": "{\"provider_arguments\":[],\"resources\":{\"bucket\":{\"arguments\":[{\"word\":\"name\",\"kind\":\"String(R)\"},{\"word\":\"team_uuid\",\"kin"
},
{
"path": "community_provider_json/runscope/v0.5.7/runscope.json",
"chars": 5597,
"preview": "{\"provider_arguments\":[],\"resources\":{\"bucket\":{\"arguments\":[{\"word\":\"name\",\"kind\":\"String(R)\"},{\"word\":\"team_uuid\",\"kin"
},
{
"path": "community_provider_json/sakuracloud/master/sakuracloud.json",
"chars": 55061,
"preview": "{\"provider_arguments\":[],\"resources\":{\"archive\":{\"arguments\":[{\"word\":\"archive_file\",\"kind\":\"String(R)\"},{\"word\":\"descri"
},
{
"path": "community_provider_json/sakuracloud/v1.0.0/sakuracloud.json",
"chars": 52048,
"preview": "{\"provider_arguments\":[],\"resources\":{\"archive\":{\"arguments\":[{\"word\":\"archive_file\",\"kind\":\"String(R)\"},{\"word\":\"descri"
},
{
"path": "community_provider_json/sakuracloud/v1.0.1/sakuracloud.json",
"chars": 52048,
"preview": "{\"provider_arguments\":[],\"resources\":{\"archive\":{\"arguments\":[{\"word\":\"archive_file\",\"kind\":\"String(R)\"},{\"word\":\"descri"
},
{
"path": "community_provider_json/sakuracloud/v1.0.2/sakuracloud.json",
"chars": 52048,
"preview": "{\"provider_arguments\":[],\"resources\":{\"archive\":{\"arguments\":[{\"word\":\"archive_file\",\"kind\":\"String(R)\"},{\"word\":\"descri"
},
{
"path": "community_provider_json/sakuracloud/v1.0.3/sakuracloud.json",
"chars": 52048,
"preview": "{\"provider_arguments\":[],\"resources\":{\"archive\":{\"arguments\":[{\"word\":\"archive_file\",\"kind\":\"String(R)\"},{\"word\":\"descri"
},
{
"path": "community_provider_json/sakuracloud/v1.0.4/sakuracloud.json",
"chars": 52048,
"preview": "{\"provider_arguments\":[],\"resources\":{\"archive\":{\"arguments\":[{\"word\":\"archive_file\",\"kind\":\"String(R)\"},{\"word\":\"descri"
},
{
"path": "community_provider_json/sakuracloud/v1.0.5/sakuracloud.json",
"chars": 52048,
"preview": "{\"provider_arguments\":[],\"resources\":{\"archive\":{\"arguments\":[{\"word\":\"archive_file\",\"kind\":\"String(R)\"},{\"word\":\"descri"
}
]
// ... and 1179 more files (download for full content)
About this extraction
This page contains the full source code of the juliosueiras/vim-terraform-completion GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 1379 files (100.0 MB), approximately 26.3M tokens, and a symbol index with 21 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.