├── .gitignore ├── Comments.tmPreferences ├── Completions ├── Data Sources.sublime-completions └── Resources.sublime-completions ├── Default.sublime-commands ├── Gemfile ├── Gemfile.lock ├── LICENSE ├── Main.sublime-menu ├── README.md ├── Rakefile ├── Snippets ├── atlas.sublime-snippet ├── data.sublime-snippet ├── interpolation.sublime-snippet ├── module.sublime-snippet ├── module_github.sublime-snippet ├── module_github_private.sublime-snippet ├── module_path.sublime-snippet ├── output.sublime-snippet ├── provider.sublime-snippet ├── provisioner.sublime-snippet ├── resource.sublime-snippet ├── variable.sublime-snippet ├── variable_list.sublime-snippet ├── variable_map.sublime-snippet ├── variable_reference.sublime-snippet └── variable_string.sublime-snippet ├── Symbols.tmPreferences ├── Terraform.sublime-settings ├── Terraform.sublime-syntax └── fmt.py /.gitignore: -------------------------------------------------------------------------------- 1 | /.bundle/ 2 | /vendor/ 3 | -------------------------------------------------------------------------------- /Comments.tmPreferences: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | name 6 | Comments 7 | scope 8 | source.terraform 9 | settings 10 | 11 | shellVariables 12 | 13 | 14 | name 15 | TM_COMMENT_START 16 | value 17 | # 18 | 19 | 20 | name 21 | TM_COMMENT_START_2 22 | value 23 | /* 24 | 25 | 26 | name 27 | TM_COMMENT_END_2 28 | value 29 | */ 30 | 31 | 32 | 33 | uuid 34 | 9060ca81-906d-4f19-a91a-159f4eb119d6 35 | 36 | 37 | -------------------------------------------------------------------------------- /Completions/Data Sources.sublime-completions: -------------------------------------------------------------------------------- 1 | { 2 | "scope": "meta.data-source.type.terraform", 3 | "completions": [ 4 | "alicloud_account", 5 | "alicloud_db_instances", 6 | "alicloud_disks", 7 | "alicloud_dns_domain_groups", 8 | "alicloud_dns_domain_records", 9 | "alicloud_dns_domains", 10 | "alicloud_dns_groups", 11 | "alicloud_dns_records", 12 | "alicloud_eips", 13 | "alicloud_fc_functions", 14 | "alicloud_fc_services", 15 | "alicloud_fc_triggers", 16 | "alicloud_images", 17 | "alicloud_instance_types", 18 | "alicloud_instances", 19 | "alicloud_key_pairs", 20 | "alicloud_kms_keys", 21 | "alicloud_kvstore_instances", 22 | "alicloud_mongo_instances", 23 | "alicloud_oss_bucket_objects", 24 | "alicloud_oss_buckets", 25 | "alicloud_pvtz_zone_records", 26 | "alicloud_pvtz_zones", 27 | "alicloud_ram_account_alias", 28 | "alicloud_ram_account_aliases", 29 | "alicloud_ram_groups", 30 | "alicloud_ram_policies", 31 | "alicloud_ram_roles", 32 | "alicloud_ram_users", 33 | "alicloud_regions", 34 | "alicloud_router_interfaces", 35 | "alicloud_security_group_rules", 36 | "alicloud_security_groups", 37 | "alicloud_slb_attachments", 38 | "alicloud_slb_listeners", 39 | "alicloud_slb_rules", 40 | "alicloud_slb_server_groups", 41 | "alicloud_slbs", 42 | "alicloud_vpcs", 43 | "alicloud_vswitches", 44 | "alicloud_zones", 45 | "archive_file", 46 | "aws_acm_certificate", 47 | "aws_acmpca_certificate_authority", 48 | "aws_alb", 49 | "aws_alb_listener", 50 | "aws_alb_target_group", 51 | "aws_ami", 52 | "aws_ami_ids", 53 | "aws_api_gateway_resource", 54 | "aws_api_gateway_rest_api", 55 | "aws_arn", 56 | "aws_autoscaling_groups", 57 | "aws_availability_zone", 58 | "aws_availability_zones", 59 | "aws_batch_compute_environment", 60 | "aws_batch_job_queue", 61 | "aws_billing_service_account", 62 | "aws_caller_identity", 63 | "aws_canonical_user_id", 64 | "aws_cloudformation_export", 65 | "aws_cloudformation_stack", 66 | "aws_cloudtrail_service_account", 67 | "aws_cloudwatch_log_group", 68 | "aws_codecommit_repository", 69 | "aws_cognito_user_pools", 70 | "aws_db_cluster_snapshot", 71 | "aws_db_instance", 72 | "aws_db_snapshot", 73 | "aws_dx_gateway", 74 | "aws_dynamodb_table", 75 | "aws_ebs_snapshot", 76 | "aws_ebs_snapshot_ids", 77 | "aws_ebs_volume", 78 | "aws_ecr_repository", 79 | "aws_ecs_cluster", 80 | "aws_ecs_container_definition", 81 | "aws_ecs_service", 82 | "aws_ecs_task_definition", 83 | "aws_efs_file_system", 84 | "aws_efs_mount_target", 85 | "aws_eip", 86 | "aws_eks_cluster", 87 | "aws_elastic_beanstalk_hosted_zone", 88 | "aws_elastic_beanstalk_solution_stack", 89 | "aws_elasticache_cluster", 90 | "aws_elasticache_replication_group", 91 | "aws_elb", 92 | "aws_elb_hosted_zone_id", 93 | "aws_elb_service_account", 94 | "aws_glue_script", 95 | "aws_iam_account_alias", 96 | "aws_iam_group", 97 | "aws_iam_instance_profile", 98 | "aws_iam_policy", 99 | "aws_iam_policy_document", 100 | "aws_iam_role", 101 | "aws_iam_server_certificate", 102 | "aws_iam_user", 103 | "aws_inspector_rules_packages", 104 | "aws_instance", 105 | "aws_instances", 106 | "aws_internet_gateway", 107 | "aws_iot_endpoint", 108 | "aws_ip_ranges", 109 | "aws_kinesis_stream", 110 | "aws_kms_alias", 111 | "aws_kms_ciphertext", 112 | "aws_kms_key", 113 | "aws_kms_secret", 114 | "aws_kms_secrets", 115 | "aws_lambda_function", 116 | "aws_lambda_invocation", 117 | "aws_launch_configuration", 118 | "aws_lb", 119 | "aws_lb_listener", 120 | "aws_lb_target_group", 121 | "aws_mq_broker", 122 | "aws_nat_gateway", 123 | "aws_network_acls", 124 | "aws_network_interface", 125 | "aws_network_interfaces", 126 | "aws_partition", 127 | "aws_prefix_list", 128 | "aws_pricing_product", 129 | "aws_rds_cluster", 130 | "aws_redshift_cluster", 131 | "aws_redshift_service_account", 132 | "aws_region", 133 | "aws_route", 134 | "aws_route53_zone", 135 | "aws_route_table", 136 | "aws_route_tables", 137 | "aws_s3_bucket", 138 | "aws_s3_bucket_object", 139 | "aws_secretsmanager_secret", 140 | "aws_secretsmanager_secret_version", 141 | "aws_security_group", 142 | "aws_security_groups", 143 | "aws_sns_topic", 144 | "aws_sqs_queue", 145 | "aws_ssm_parameter", 146 | "aws_storagegateway_local_disk", 147 | "aws_subnet", 148 | "aws_subnet_ids", 149 | "aws_vpc", 150 | "aws_vpc_dhcp_options", 151 | "aws_vpc_endpoint", 152 | "aws_vpc_endpoint_service", 153 | "aws_vpc_peering_connection", 154 | "aws_vpcs", 155 | "aws_vpn_gateway", 156 | "azurerm_app_service", 157 | "azurerm_app_service_plan", 158 | "azurerm_application_security_group", 159 | "azurerm_azuread_application", 160 | "azurerm_azuread_service_principal", 161 | "azurerm_builtin_role_definition", 162 | "azurerm_cdn_profile", 163 | "azurerm_client_config", 164 | "azurerm_container_registry", 165 | "azurerm_cosmosdb_account", 166 | "azurerm_data_lake_store", 167 | "azurerm_dns_zone", 168 | "azurerm_eventhub_namespace", 169 | "azurerm_image", 170 | "azurerm_key_vault", 171 | "azurerm_key_vault_access_policy", 172 | "azurerm_key_vault_secret", 173 | "azurerm_kubernetes_cluster", 174 | "azurerm_log_analytics_workspace", 175 | "azurerm_logic_app_workflow", 176 | "azurerm_managed_disk", 177 | "azurerm_management_group", 178 | "azurerm_network_interface", 179 | "azurerm_network_security_group", 180 | "azurerm_notification_hub_namespace", 181 | "azurerm_platform_image", 182 | "azurerm_public_ip", 183 | "azurerm_public_ips", 184 | "azurerm_recovery_services_vault", 185 | "azurerm_resource_group", 186 | "azurerm_role_definition", 187 | "azurerm_route_table", 188 | "azurerm_scheduler_job_collection", 189 | "azurerm_storage_account", 190 | "azurerm_storage_account_sas", 191 | "azurerm_subnet", 192 | "azurerm_subscription", 193 | "azurerm_subscriptions", 194 | "azurerm_traffic_manager_geographical_location", 195 | "azurerm_virtual_network", 196 | "azurerm_virtual_network_gateway", 197 | "azurestack_network_interface", 198 | "azurestack_network_security_group", 199 | "azurestack_public_ip", 200 | "azurestack_resource_group", 201 | "azurestack_route_table", 202 | "azurestack_storage_account", 203 | "azurestack_subnet", 204 | "azurestack_virtual_network", 205 | "azurestack_virtual_network_gateway", 206 | "brightbox_database_type", 207 | "brightbox_image", 208 | "brightbox_server_group", 209 | "circonus_account", 210 | "circonus_collector", 211 | "cloudflare_ip_ranges", 212 | "cloudstack_template", 213 | "consul_agent_config", 214 | "consul_agent_self", 215 | "consul_key_prefix", 216 | "consul_keys", 217 | "consul_nodes", 218 | "consul_service", 219 | "consul_services", 220 | "digitalocean_image", 221 | "dns_a_record_set", 222 | "dns_aaaa_record_set", 223 | "dns_cname_record_set", 224 | "dns_ns_record_set", 225 | "dns_ptr_record_set", 226 | "dns_txt_record_set", 227 | "docker_registry_image", 228 | "external", 229 | "fastly_ip_ranges", 230 | "file", 231 | "flexibleengine_networking_network_v2", 232 | "flexibleengine_networking_secgroup_v2", 233 | "flexibleengine_rds_flavors_v1", 234 | "flexibleengine_s3_bucket_object", 235 | "flexibleengine_vpc_peering_connection_v2", 236 | "flexibleengine_vpc_route_ids_v2", 237 | "flexibleengine_vpc_route_v2", 238 | "flexibleengine_vpc_subnet_ids_v1", 239 | "flexibleengine_vpc_subnet_v1", 240 | "flexibleengine_vpc_v1", 241 | "github_ip_ranges", 242 | "github_repositories", 243 | "github_repository", 244 | "github_team", 245 | "github_user", 246 | "google_active_folder", 247 | "google_billing_account", 248 | "google_client_config", 249 | "google_cloudfunctions_function", 250 | "google_compute_address", 251 | "google_compute_backend_service", 252 | "google_compute_default_service_account", 253 | "google_compute_forwarding_rule", 254 | "google_compute_global_address", 255 | "google_compute_image", 256 | "google_compute_instance_group", 257 | "google_compute_lb_ip_ranges", 258 | "google_compute_network", 259 | "google_compute_region_instance_group", 260 | "google_compute_regions", 261 | "google_compute_ssl_policy", 262 | "google_compute_subnetwork", 263 | "google_compute_vpn_gateway", 264 | "google_compute_zones", 265 | "google_container_cluster", 266 | "google_container_engine_versions", 267 | "google_container_registry_image", 268 | "google_container_registry_repository", 269 | "google_dns_managed_zone", 270 | "google_folder", 271 | "google_iam_policy", 272 | "google_kms_secret", 273 | "google_netblock_ip_ranges", 274 | "google_organization", 275 | "google_project", 276 | "google_project_services", 277 | "google_service_account", 278 | "google_service_account_key", 279 | "google_storage_object_signed_url", 280 | "google_storage_project_service_account", 281 | "hcloud_floating_ip", 282 | "hcloud_image", 283 | "hcloud_ssh_key", 284 | "heroku_app", 285 | "heroku_space", 286 | "heroku_space_peering_info", 287 | "huaweicloud_images_image_v2", 288 | "huaweicloud_kms_data_key_v1", 289 | "huaweicloud_kms_key_v1", 290 | "huaweicloud_networking_network_v2", 291 | "huaweicloud_networking_secgroup_v2", 292 | "huaweicloud_networking_subnet_v2", 293 | "huaweicloud_rds_flavors_v1", 294 | "huaweicloud_rts_software_config_v1", 295 | "huaweicloud_rts_stack_resource_v1", 296 | "huaweicloud_rts_stack_v1", 297 | "huaweicloud_s3_bucket_object", 298 | "huaweicloud_sfs_file_sharing_v2", 299 | "huaweicloud_vpc_peering_connection_v2", 300 | "huaweicloud_vpc_route_ids_v2", 301 | "huaweicloud_vpc_route_v2", 302 | "huaweicloud_vpc_subnet_ids_v1", 303 | "huaweicloud_vpc_subnet_v1", 304 | "huaweicloud_vpc_v1", 305 | "ignition_config", 306 | "ignition_directory", 307 | "ignition_disk", 308 | "ignition_file", 309 | "ignition_filesystem", 310 | "ignition_group", 311 | "ignition_link", 312 | "ignition_networkd_unit", 313 | "ignition_raid", 314 | "ignition_systemd_unit", 315 | "ignition_user", 316 | "key_transaction", 317 | "kubernetes_service", 318 | "kubernetes_storage_class", 319 | "logentries_logset", 320 | "logicmonitor_collectors", 321 | "logicmonitor_device_group", 322 | "newrelic_application", 323 | "nomad_regions", 324 | "nsxt_edge_cluster", 325 | "nsxt_logical_tier0_router", 326 | "nsxt_ns_serivce", 327 | "nsxt_switching_profile", 328 | "nsxt_transport_zone", 329 | "oci_audit_configuration", 330 | "oci_audit_events", 331 | "oci_containerengine_cluster_kube_config", 332 | "oci_containerengine_cluster_option", 333 | "oci_containerengine_clusters", 334 | "oci_containerengine_node_pool", 335 | "oci_containerengine_node_pool_option", 336 | "oci_containerengine_node_pools", 337 | "oci_containerengine_work_request_errors", 338 | "oci_containerengine_work_request_log_entries", 339 | "oci_containerengine_work_requests", 340 | "oci_core_boot_volume_attachments", 341 | "oci_core_boot_volume_backup", 342 | "oci_core_boot_volume_backups", 343 | "oci_core_boot_volumes", 344 | "oci_core_console_histories", 345 | "oci_core_console_history_data", 346 | "oci_core_cpes", 347 | "oci_core_cross_connect", 348 | "oci_core_cross_connect_group", 349 | "oci_core_cross_connect_groups", 350 | "oci_core_cross_connect_locations", 351 | "oci_core_cross_connect_port_speed_shapes", 352 | "oci_core_cross_connect_status", 353 | "oci_core_cross_connects", 354 | "oci_core_dhcp_options", 355 | "oci_core_drg_attachments", 356 | "oci_core_drgs", 357 | "oci_core_fast_connect_provider_service", 358 | "oci_core_fast_connect_provider_services", 359 | "oci_core_images", 360 | "oci_core_instance_console_connections", 361 | "oci_core_instance_credentials", 362 | "oci_core_instances", 363 | "oci_core_internet_gateways", 364 | "oci_core_ip_sec_connections", 365 | "oci_core_ipsec_config", 366 | "oci_core_ipsec_status", 367 | "oci_core_letter_of_authority", 368 | "oci_core_local_peering_gateways", 369 | "oci_core_peer_region_for_remote_peerings", 370 | "oci_core_private_ips", 371 | "oci_core_public_ip", 372 | "oci_core_public_ips", 373 | "oci_core_remote_peering_connections", 374 | "oci_core_route_tables", 375 | "oci_core_security_lists", 376 | "oci_core_service_gateways", 377 | "oci_core_services", 378 | "oci_core_shapes", 379 | "oci_core_subnets", 380 | "oci_core_vcns", 381 | "oci_core_virtual_circuit", 382 | "oci_core_virtual_circuit_bandwidth_shapes", 383 | "oci_core_virtual_circuit_public_prefixes", 384 | "oci_core_virtual_circuits", 385 | "oci_core_vnic", 386 | "oci_core_vnic_attachments", 387 | "oci_core_volume_attachments", 388 | "oci_core_volume_backup_policies", 389 | "oci_core_volume_backup_policy_assignments", 390 | "oci_core_volume_backups", 391 | "oci_core_volume_group_backups", 392 | "oci_core_volume_groups", 393 | "oci_core_volumes", 394 | "oci_database_autonomous_data_warehouse", 395 | "oci_database_autonomous_data_warehouse_backup", 396 | "oci_database_autonomous_data_warehouse_backups", 397 | "oci_database_autonomous_data_warehouses", 398 | "oci_database_autonomous_database", 399 | "oci_database_autonomous_database_backup", 400 | "oci_database_autonomous_database_backups", 401 | "oci_database_autonomous_databases", 402 | "oci_database_backups", 403 | "oci_database_database", 404 | "oci_database_databases", 405 | "oci_database_db_home", 406 | "oci_database_db_home_patch_history_entries", 407 | "oci_database_db_home_patches", 408 | "oci_database_db_homes", 409 | "oci_database_db_node", 410 | "oci_database_db_nodes", 411 | "oci_database_db_system_patch_history_entries", 412 | "oci_database_db_system_patches", 413 | "oci_database_db_system_shapes", 414 | "oci_database_db_systems", 415 | "oci_database_db_versions", 416 | "oci_dns_records", 417 | "oci_dns_zones", 418 | "oci_email_sender", 419 | "oci_email_senders", 420 | "oci_email_suppression", 421 | "oci_email_suppressions", 422 | "oci_file_storage_export_sets", 423 | "oci_file_storage_exports", 424 | "oci_file_storage_file_systems", 425 | "oci_file_storage_mount_targets", 426 | "oci_file_storage_snapshots", 427 | "oci_identity_api_keys", 428 | "oci_identity_auth_tokens", 429 | "oci_identity_availability_domains", 430 | "oci_identity_compartments", 431 | "oci_identity_customer_secret_keys", 432 | "oci_identity_dynamic_groups", 433 | "oci_identity_fault_domains", 434 | "oci_identity_groups", 435 | "oci_identity_identity_providers", 436 | "oci_identity_idp_group_mappings", 437 | "oci_identity_policies", 438 | "oci_identity_region_subscriptions", 439 | "oci_identity_regions", 440 | "oci_identity_smtp_credentials", 441 | "oci_identity_swift_passwords", 442 | "oci_identity_tag_namespaces", 443 | "oci_identity_tags", 444 | "oci_identity_tenancy", 445 | "oci_identity_user_group_memberships", 446 | "oci_identity_users", 447 | "oci_load_balancer_backend_health", 448 | "oci_load_balancer_backend_set_health", 449 | "oci_load_balancer_backend_sets", 450 | "oci_load_balancer_backends", 451 | "oci_load_balancer_certificates", 452 | "oci_load_balancer_health", 453 | "oci_load_balancer_hostnames", 454 | "oci_load_balancer_load_balancers", 455 | "oci_load_balancer_path_route_sets", 456 | "oci_load_balancer_policies", 457 | "oci_load_balancer_protocols", 458 | "oci_load_balancer_shapes", 459 | "oci_objectstorage_bucket_summaries", 460 | "oci_objectstorage_namespace", 461 | "oci_objectstorage_objects", 462 | "oci_objectstorage_preauthrequest", 463 | "oci_objectstorage_preauthrequests", 464 | "opc_compute_image_list_entry", 465 | "opc_compute_ip_address_reservation", 466 | "opc_compute_ip_reservation", 467 | "opc_compute_machine_image", 468 | "opc_compute_network_interface", 469 | "opc_compute_ssh_key", 470 | "opc_compute_storage_volume_snapshot", 471 | "opc_compute_vnic", 472 | "openstack_compute_flavor_v2", 473 | "openstack_compute_keypair_v2", 474 | "openstack_dns_zone_v2", 475 | "openstack_fw_policy_v1", 476 | "openstack_identity_auth_scope_v3", 477 | "openstack_identity_endpoint_v3", 478 | "openstack_identity_group_v3", 479 | "openstack_identity_project_v3", 480 | "openstack_identity_role_v3", 481 | "openstack_identity_user_v3", 482 | "openstack_images_image_v2", 483 | "openstack_networking_floatingip_v2", 484 | "openstack_networking_network_v2", 485 | "openstack_networking_router_v2", 486 | "openstack_networking_secgroup_v2", 487 | "openstack_networking_subnet_v2", 488 | "openstack_networking_subnetpool_v2", 489 | "opentelekomcloud_images_image_v2", 490 | "opentelekomcloud_kms_data_key_v1", 491 | "opentelekomcloud_kms_key_v1", 492 | "opentelekomcloud_networking_network_v2", 493 | "opentelekomcloud_networking_secgroup_v2", 494 | "opentelekomcloud_rds_flavor_v1", 495 | "opentelekomcloud_s3_bucket_object", 496 | "opsgenie_user", 497 | "oraclepaas_database_service_instance", 498 | "ovh_cloud_region", 499 | "ovh_cloud_regions", 500 | "ovh_domain_zone", 501 | "ovh_iploadbalancing", 502 | "ovh_me_paymentmean_bankaccount", 503 | "ovh_me_paymentmean_creditcard", 504 | "ovh_publiccloud_region", 505 | "ovh_publiccloud_regions", 506 | "pagerduty_escalation_policy", 507 | "pagerduty_extension_schema", 508 | "pagerduty_schedule", 509 | "pagerduty_team", 510 | "pagerduty_user", 511 | "pagerduty_vendor", 512 | "panos_dhcp_interface_info", 513 | "panos_system_info", 514 | "precreated_ip_block", 515 | "profitbricks_datacenter", 516 | "profitbricks_image", 517 | "profitbricks_location", 518 | "profitbricks_resource", 519 | "profitbricks_snapshot", 520 | "rancher_certificate", 521 | "rancher_environment", 522 | "rancher_setting", 523 | "rightscale_cloud", 524 | "rightscale_credential", 525 | "rightscale_datacenter", 526 | "rightscale_deployment", 527 | "rightscale_image", 528 | "rightscale_instance", 529 | "rightscale_instance_type", 530 | "rightscale_multi_cloud_image", 531 | "rightscale_network", 532 | "rightscale_network_gateway", 533 | "rightscale_route_table", 534 | "rightscale_security_group", 535 | "rightscale_server", 536 | "rightscale_server_template", 537 | "rightscale_ssh_key", 538 | "rightscale_subnet", 539 | "rightscale_volume", 540 | "rightscale_volume_snapshot", 541 | "rightscale_volume_type", 542 | "runscope_bucket", 543 | "runscope_buckets", 544 | "runscope_integration", 545 | "runscope_integrations", 546 | "scaleway_bootscript", 547 | "scaleway_image", 548 | "scaleway_security_group", 549 | "scaleway_volume", 550 | "telefonicaopencloud_dns_zone_v2", 551 | "telefonicaopencloud_networking_network_v2", 552 | "telefonicaopencloud_networking_secgroup_v2", 553 | "telefonicaopencloud_networking_subnet_v2", 554 | "telefonicaopencloud_s3_bucket_object", 555 | "template_cloudinit_config", 556 | "template_file", 557 | "terraform_remote_state", 558 | "tls_public_key", 559 | "triton_account", 560 | "triton_datacenter", 561 | "triton_fabric_network", 562 | "triton_fabric_vlan", 563 | "triton_image", 564 | "triton_network", 565 | "vault_approle_auth_backend_role_id", 566 | "vault_aws_access_credentials", 567 | "vault_generic_secret", 568 | "vsphere_compute_cluster", 569 | "vsphere_custom_attribute", 570 | "vsphere_datacenter", 571 | "vsphere_datastore", 572 | "vsphere_datastore_cluster", 573 | "vsphere_distributed_virtual_switch", 574 | "vsphere_host", 575 | "vsphere_network", 576 | "vsphere_resource_pool", 577 | "vsphere_tag", 578 | "vsphere_tag_category", 579 | "vsphere_virtual_machine", 580 | "vsphere_vmfs_disks" 581 | ] 582 | } -------------------------------------------------------------------------------- /Completions/Resources.sublime-completions: -------------------------------------------------------------------------------- 1 | { 2 | "scope": "meta.resource.type.terraform", 3 | "completions": [ 4 | "Resource", 5 | "acme_certificate", 6 | "acme_registration", 7 | "alicloud_cdn_domain", 8 | "alicloud_cen_bandwidth_package", 9 | "alicloud_cen_instance", 10 | "alicloud_cen_instance_attachment", 11 | "alicloud_cms_alarm", 12 | "alicloud_container_cluster", 13 | "alicloud_cs_application", 14 | "alicloud_cs_kubernetes", 15 | "alicloud_cs_swarm", 16 | "alicloud_db_account", 17 | "alicloud_db_account_privilege", 18 | "alicloud_db_backup_policy", 19 | "alicloud_db_connection", 20 | "alicloud_db_database", 21 | "alicloud_db_instance", 22 | "alicloud_disk", 23 | "alicloud_disk_attachment", 24 | "alicloud_dns", 25 | "alicloud_dns_group", 26 | "alicloud_dns_record", 27 | "alicloud_eip", 28 | "alicloud_eip_association", 29 | "alicloud_ess_alarm", 30 | "alicloud_ess_attachment", 31 | "alicloud_ess_lifecycle_hook", 32 | "alicloud_ess_scaling_configuration", 33 | "alicloud_ess_scaling_group", 34 | "alicloud_ess_scaling_rule", 35 | "alicloud_ess_schedule", 36 | "alicloud_fc_function", 37 | "alicloud_fc_service", 38 | "alicloud_fc_trigger", 39 | "alicloud_forward_entry", 40 | "alicloud_instance", 41 | "alicloud_key_pair", 42 | "alicloud_key_pair_attachment", 43 | "alicloud_kms_key", 44 | "alicloud_kvstore_backup_policy", 45 | "alicloud_kvstore_instance", 46 | "alicloud_log_machine_group", 47 | "alicloud_log_project", 48 | "alicloud_log_store", 49 | "alicloud_log_store_index", 50 | "alicloud_nat_gateway", 51 | "alicloud_oss_bucket", 52 | "alicloud_oss_bucket_object", 53 | "alicloud_ots_instance", 54 | "alicloud_ots_instance_attachment", 55 | "alicloud_ots_table", 56 | "alicloud_pvtz_zone", 57 | "alicloud_pvtz_zone_attachment", 58 | "alicloud_pvtz_zone_record", 59 | "alicloud_ram_access_key", 60 | "alicloud_ram_account_alias", 61 | "alicloud_ram_alias", 62 | "alicloud_ram_group", 63 | "alicloud_ram_group_membership", 64 | "alicloud_ram_group_policy_attachment", 65 | "alicloud_ram_login_profile", 66 | "alicloud_ram_policy", 67 | "alicloud_ram_role", 68 | "alicloud_ram_role_attachment", 69 | "alicloud_ram_role_policy_attachment", 70 | "alicloud_ram_user", 71 | "alicloud_ram_user_policy_attachment", 72 | "alicloud_route_entry", 73 | "alicloud_router_interface", 74 | "alicloud_router_interface_connection", 75 | "alicloud_security_group", 76 | "alicloud_security_group_rule", 77 | "alicloud_slb", 78 | "alicloud_slb_attachment", 79 | "alicloud_slb_listener", 80 | "alicloud_slb_rule", 81 | "alicloud_slb_server_group", 82 | "alicloud_snat_entry", 83 | "alicloud_ssl_vpn_cert_client", 84 | "alicloud_ssl_vpn_server", 85 | "alicloud_vpc", 86 | "alicloud_vpn_connection", 87 | "alicloud_vpn_customer_gateway", 88 | "alicloud_vpn_gateway", 89 | "alicloud_vswitch", 90 | "arukas_container", 91 | "aws_acm_certificate", 92 | "aws_acm_certificate_validation", 93 | "aws_acmpca_certificate_authority", 94 | "aws_alb", 95 | "aws_alb_listener", 96 | "aws_alb_listener_certificate", 97 | "aws_alb_listener_rule", 98 | "aws_alb_target_group", 99 | "aws_alb_target_group_attachment", 100 | "aws_ami", 101 | "aws_ami_copy", 102 | "aws_ami_from_instance", 103 | "aws_ami_launch_permission", 104 | "aws_api_gateway_account", 105 | "aws_api_gateway_api_key", 106 | "aws_api_gateway_authorizer", 107 | "aws_api_gateway_base_path_mapping", 108 | "aws_api_gateway_client_certificate", 109 | "aws_api_gateway_deployment", 110 | "aws_api_gateway_documentation_part", 111 | "aws_api_gateway_documentation_version", 112 | "aws_api_gateway_domain_name", 113 | "aws_api_gateway_gateway_response", 114 | "aws_api_gateway_integration", 115 | "aws_api_gateway_integration_response", 116 | "aws_api_gateway_method", 117 | "aws_api_gateway_method_response", 118 | "aws_api_gateway_method_settings", 119 | "aws_api_gateway_model", 120 | "aws_api_gateway_request_validator", 121 | "aws_api_gateway_resource", 122 | "aws_api_gateway_rest_api", 123 | "aws_api_gateway_stage", 124 | "aws_api_gateway_usage_plan", 125 | "aws_api_gateway_usage_plan_key", 126 | "aws_api_gateway_vpc_link", 127 | "aws_app_cookie_stickiness_policy", 128 | "aws_appautoscaling_policy", 129 | "aws_appautoscaling_scheduled_action", 130 | "aws_appautoscaling_target", 131 | "aws_appsync_api_key", 132 | "aws_appsync_datasource", 133 | "aws_appsync_graphql_api", 134 | "aws_athena_database", 135 | "aws_athena_named_query", 136 | "aws_autoscaling_attachment", 137 | "aws_autoscaling_group", 138 | "aws_autoscaling_lifecycle_hook", 139 | "aws_autoscaling_notification", 140 | "aws_autoscaling_policy", 141 | "aws_autoscaling_schedule", 142 | "aws_batch_compute_environment", 143 | "aws_batch_job_definition", 144 | "aws_batch_job_queue", 145 | "aws_budgets_budget", 146 | "aws_cloud9_environment_ec2", 147 | "aws_cloudformation_stack", 148 | "aws_cloudfront_distribution", 149 | "aws_cloudfront_origin_access_identity", 150 | "aws_cloudfront_public_key", 151 | "aws_cloudtrail", 152 | "aws_cloudwatch_dashboard", 153 | "aws_cloudwatch_event_permission", 154 | "aws_cloudwatch_event_rule", 155 | "aws_cloudwatch_event_target", 156 | "aws_cloudwatch_log_destination", 157 | "aws_cloudwatch_log_destination_policy", 158 | "aws_cloudwatch_log_group", 159 | "aws_cloudwatch_log_metric_filter", 160 | "aws_cloudwatch_log_resource_policy", 161 | "aws_cloudwatch_log_stream", 162 | "aws_cloudwatch_log_subscription_filter", 163 | "aws_cloudwatch_metric_alarm", 164 | "aws_codebuild_project", 165 | "aws_codebuild_webhook", 166 | "aws_codecommit_repository", 167 | "aws_codecommit_trigger", 168 | "aws_codedeploy_app", 169 | "aws_codedeploy_deployment_config", 170 | "aws_codedeploy_deployment_group", 171 | "aws_codepipeline", 172 | "aws_cognito_identity_pool", 173 | "aws_cognito_identity_pool_roles_attachment", 174 | "aws_cognito_identity_provider", 175 | "aws_cognito_resource_server", 176 | "aws_cognito_user_group", 177 | "aws_cognito_user_pool", 178 | "aws_cognito_user_pool_client", 179 | "aws_cognito_user_pool_domain", 180 | "aws_config_aggregate_authorization", 181 | "aws_config_config_rule", 182 | "aws_config_configuration_aggregator", 183 | "aws_config_configuration_recorder", 184 | "aws_config_configuration_recorder_status", 185 | "aws_config_delivery_channel", 186 | "aws_customer_gateway", 187 | "aws_dax_cluster", 188 | "aws_dax_parameter_group", 189 | "aws_dax_subnet_group", 190 | "aws_db_cluster_snapshot", 191 | "aws_db_event_subscription", 192 | "aws_db_instance", 193 | "aws_db_option_group", 194 | "aws_db_parameter_group", 195 | "aws_db_security_group", 196 | "aws_db_snapshot", 197 | "aws_db_subnet_group", 198 | "aws_default_network_acl", 199 | "aws_default_route_table", 200 | "aws_default_security_group", 201 | "aws_default_subnet", 202 | "aws_default_vpc", 203 | "aws_default_vpc_dhcp_options", 204 | "aws_devicefarm_project", 205 | "aws_directory_service_conditional_forwarder", 206 | "aws_directory_service_directory", 207 | "aws_dms_certificate", 208 | "aws_dms_endpoint", 209 | "aws_dms_replication_instance", 210 | "aws_dms_replication_subnet_group", 211 | "aws_dms_replication_task", 212 | "aws_dx_bgp_peer", 213 | "aws_dx_connection", 214 | "aws_dx_connection_association", 215 | "aws_dx_gateway", 216 | "aws_dx_gateway_association", 217 | "aws_dx_hosted_private_virtual_interface", 218 | "aws_dx_hosted_private_virtual_interface_accepter", 219 | "aws_dx_hosted_public_virtual_interface", 220 | "aws_dx_hosted_public_virtual_interface_accepter", 221 | "aws_dx_lag", 222 | "aws_dx_private_virtual_interface", 223 | "aws_dx_public_virtual_interface", 224 | "aws_dynamodb_global_table", 225 | "aws_dynamodb_table", 226 | "aws_dynamodb_table_item", 227 | "aws_ebs_snapshot", 228 | "aws_ebs_volume", 229 | "aws_ecr_lifecycle_policy", 230 | "aws_ecr_repository", 231 | "aws_ecr_repository_policy", 232 | "aws_ecs_cluster", 233 | "aws_ecs_service", 234 | "aws_ecs_task_definition", 235 | "aws_efs_file_system", 236 | "aws_efs_mount_target", 237 | "aws_egress_only_internet_gateway", 238 | "aws_eip", 239 | "aws_eip_association", 240 | "aws_eks_cluster", 241 | "aws_elastic_beanstalk_application", 242 | "aws_elastic_beanstalk_application_version", 243 | "aws_elastic_beanstalk_configuration_template", 244 | "aws_elastic_beanstalk_environment", 245 | "aws_elasticache_cluster", 246 | "aws_elasticache_parameter_group", 247 | "aws_elasticache_replication_group", 248 | "aws_elasticache_security_group", 249 | "aws_elasticache_subnet_group", 250 | "aws_elasticsearch_domain", 251 | "aws_elasticsearch_domain_policy", 252 | "aws_elastictranscoder_pipeline", 253 | "aws_elastictranscoder_preset", 254 | "aws_elb", 255 | "aws_elb_attachment", 256 | "aws_emr_cluster", 257 | "aws_emr_instance_group", 258 | "aws_emr_security_configuration", 259 | "aws_flow_log", 260 | "aws_gamelift_alias", 261 | "aws_gamelift_build", 262 | "aws_gamelift_fleet", 263 | "aws_glacier_vault", 264 | "aws_glue_catalog_database", 265 | "aws_glue_catalog_table", 266 | "aws_glue_classifier", 267 | "aws_glue_connection", 268 | "aws_glue_crawler", 269 | "aws_glue_job", 270 | "aws_glue_trigger", 271 | "aws_guardduty_detector", 272 | "aws_guardduty_ipset", 273 | "aws_guardduty_member", 274 | "aws_guardduty_threatintelset", 275 | "aws_iam_access_key", 276 | "aws_iam_account_alias", 277 | "aws_iam_account_password_policy", 278 | "aws_iam_group", 279 | "aws_iam_group_membership", 280 | "aws_iam_group_policy", 281 | "aws_iam_group_policy_attachment", 282 | "aws_iam_instance_profile", 283 | "aws_iam_openid_connect_provider", 284 | "aws_iam_policy", 285 | "aws_iam_policy_attachment", 286 | "aws_iam_role", 287 | "aws_iam_role_policy", 288 | "aws_iam_role_policy_attachment", 289 | "aws_iam_saml_provider", 290 | "aws_iam_server_certificate", 291 | "aws_iam_service_linked_role", 292 | "aws_iam_user", 293 | "aws_iam_user_group_membership", 294 | "aws_iam_user_login_profile", 295 | "aws_iam_user_policy", 296 | "aws_iam_user_policy_attachment", 297 | "aws_iam_user_ssh_key", 298 | "aws_inspector_assessment_target", 299 | "aws_inspector_assessment_template", 300 | "aws_inspector_resource_group", 301 | "aws_instance", 302 | "aws_internet_gateway", 303 | "aws_iot_certificate", 304 | "aws_iot_policy", 305 | "aws_iot_thing", 306 | "aws_iot_thing_type", 307 | "aws_iot_topic_rule", 308 | "aws_key_pair", 309 | "aws_kinesis_firehose_delivery_stream", 310 | "aws_kinesis_stream", 311 | "aws_kms_alias", 312 | "aws_kms_grant", 313 | "aws_kms_key", 314 | "aws_lambda_alias", 315 | "aws_lambda_event_source_mapping", 316 | "aws_lambda_function", 317 | "aws_lambda_permission", 318 | "aws_launch_configuration", 319 | "aws_launch_template", 320 | "aws_lb", 321 | "aws_lb_cookie_stickiness_policy", 322 | "aws_lb_listener", 323 | "aws_lb_listener_certificate", 324 | "aws_lb_listener_rule", 325 | "aws_lb_ssl_negotiation_policy", 326 | "aws_lb_target_group", 327 | "aws_lb_target_group_attachment", 328 | "aws_lightsail_domain", 329 | "aws_lightsail_instance", 330 | "aws_lightsail_key_pair", 331 | "aws_lightsail_static_ip", 332 | "aws_lightsail_static_ip_attachment", 333 | "aws_load_balancer_backend_server_policy", 334 | "aws_load_balancer_listener_policy", 335 | "aws_load_balancer_policy", 336 | "aws_macie_member_account_association", 337 | "aws_macie_s3_bucket_association", 338 | "aws_main_route_table_association", 339 | "aws_media_store_container", 340 | "aws_media_store_container_policy", 341 | "aws_mq_broker", 342 | "aws_mq_configuration", 343 | "aws_nat_gateway", 344 | "aws_neptune_cluster", 345 | "aws_neptune_cluster_instance", 346 | "aws_neptune_cluster_parameter_group", 347 | "aws_neptune_cluster_snapshot", 348 | "aws_neptune_event_subscription", 349 | "aws_neptune_parameter_group", 350 | "aws_neptune_subnet_group", 351 | "aws_network_acl", 352 | "aws_network_acl_rule", 353 | "aws_network_interface", 354 | "aws_network_interface_attachment", 355 | "aws_network_interface_sg_attachment", 356 | "aws_opsworks_application", 357 | "aws_opsworks_custom_layer", 358 | "aws_opsworks_ganglia_layer", 359 | "aws_opsworks_haproxy_layer", 360 | "aws_opsworks_instance", 361 | "aws_opsworks_java_app_layer", 362 | "aws_opsworks_memcached_layer", 363 | "aws_opsworks_mysql_layer", 364 | "aws_opsworks_nodejs_app_layer", 365 | "aws_opsworks_permission", 366 | "aws_opsworks_php_app_layer", 367 | "aws_opsworks_rails_app_layer", 368 | "aws_opsworks_rds_db_instance", 369 | "aws_opsworks_stack", 370 | "aws_opsworks_static_web_layer", 371 | "aws_opsworks_user_profile", 372 | "aws_organizations_account", 373 | "aws_organizations_organization", 374 | "aws_organizations_policy", 375 | "aws_organizations_policy_attachment", 376 | "aws_placement_group", 377 | "aws_proxy_protocol_policy", 378 | "aws_rds_cluster", 379 | "aws_rds_cluster_instance", 380 | "aws_rds_cluster_parameter_group", 381 | "aws_redshift_cluster", 382 | "aws_redshift_parameter_group", 383 | "aws_redshift_security_group", 384 | "aws_redshift_subnet_group", 385 | "aws_route", 386 | "aws_route53_delegation_set", 387 | "aws_route53_health_check", 388 | "aws_route53_query_log", 389 | "aws_route53_record", 390 | "aws_route53_zone", 391 | "aws_route53_zone_association", 392 | "aws_route_table", 393 | "aws_route_table_association", 394 | "aws_s3_bucket", 395 | "aws_s3_bucket_inventory", 396 | "aws_s3_bucket_metric", 397 | "aws_s3_bucket_notification", 398 | "aws_s3_bucket_object", 399 | "aws_s3_bucket_policy", 400 | "aws_secretsmanager_secret", 401 | "aws_secretsmanager_secret_version", 402 | "aws_security_group", 403 | "aws_security_group_rule", 404 | "aws_service_discovery_private_dns_namespace", 405 | "aws_service_discovery_public_dns_namespace", 406 | "aws_service_discovery_service", 407 | "aws_servicecatalog_portfolio", 408 | "aws_ses_active_receipt_rule_set", 409 | "aws_ses_configuration_set", 410 | "aws_ses_domain_dkim", 411 | "aws_ses_domain_identity", 412 | "aws_ses_domain_identity_verification", 413 | "aws_ses_domain_mail_from", 414 | "aws_ses_event_destination", 415 | "aws_ses_identity_notification_topic", 416 | "aws_ses_receipt_filter", 417 | "aws_ses_receipt_rule", 418 | "aws_ses_receipt_rule_set", 419 | "aws_ses_template", 420 | "aws_sfn_activity", 421 | "aws_sfn_state_machine", 422 | "aws_simpledb_domain", 423 | "aws_snapshot_create_volume_permission", 424 | "aws_sns_platform_application", 425 | "aws_sns_sms_preferences", 426 | "aws_sns_topic", 427 | "aws_sns_topic_policy", 428 | "aws_sns_topic_subscription", 429 | "aws_spot_datafeed_subscription", 430 | "aws_spot_fleet_request", 431 | "aws_spot_instance_request", 432 | "aws_sqs_queue", 433 | "aws_sqs_queue_policy", 434 | "aws_ssm_activation", 435 | "aws_ssm_association", 436 | "aws_ssm_document", 437 | "aws_ssm_maintenance_window", 438 | "aws_ssm_maintenance_window_target", 439 | "aws_ssm_maintenance_window_task", 440 | "aws_ssm_parameter", 441 | "aws_ssm_patch_baseline", 442 | "aws_ssm_patch_group", 443 | "aws_ssm_resource_data_sync", 444 | "aws_storagegateway_cache", 445 | "aws_storagegateway_cached_iscsi_volume", 446 | "aws_storagegateway_gateway", 447 | "aws_storagegateway_nfs_file_share", 448 | "aws_storagegateway_smb_file_share", 449 | "aws_storagegateway_upload_buffer", 450 | "aws_storagegateway_working_storage", 451 | "aws_subnet", 452 | "aws_swf_domain", 453 | "aws_volume_attachment", 454 | "aws_vpc", 455 | "aws_vpc_dhcp_options", 456 | "aws_vpc_dhcp_options_association", 457 | "aws_vpc_endpoint", 458 | "aws_vpc_endpoint_connection_notification", 459 | "aws_vpc_endpoint_route_table_association", 460 | "aws_vpc_endpoint_service", 461 | "aws_vpc_endpoint_service_allowed_principal", 462 | "aws_vpc_endpoint_subnet_association", 463 | "aws_vpc_ipv4_cidr_block_association", 464 | "aws_vpc_peering_connection", 465 | "aws_vpc_peering_connection_accepter", 466 | "aws_vpc_peering_connection_options", 467 | "aws_vpn_connection", 468 | "aws_vpn_connection_route", 469 | "aws_vpn_gateway", 470 | "aws_vpn_gateway_attachment", 471 | "aws_vpn_gateway_route_propagation", 472 | "aws_waf_byte_match_set", 473 | "aws_waf_geo_match_set", 474 | "aws_waf_ipset", 475 | "aws_waf_rate_based_rule", 476 | "aws_waf_regex_match_set", 477 | "aws_waf_regex_pattern_set", 478 | "aws_waf_rule", 479 | "aws_waf_rule_group", 480 | "aws_waf_size_constraint_set", 481 | "aws_waf_sql_injection_match_set", 482 | "aws_waf_web_acl", 483 | "aws_waf_xss_match_set", 484 | "aws_wafregional_byte_match_set", 485 | "aws_wafregional_geo_match_set", 486 | "aws_wafregional_ipset", 487 | "aws_wafregional_rate_based_rule", 488 | "aws_wafregional_regex_match_set", 489 | "aws_wafregional_regex_pattern_set", 490 | "aws_wafregional_rule", 491 | "aws_wafregional_rule_group", 492 | "aws_wafregional_size_constraint_set", 493 | "aws_wafregional_sql_injection_match_set", 494 | "aws_wafregional_web_acl", 495 | "aws_wafregional_web_acl_association", 496 | "aws_wafregional_xss_match_set", 497 | "azurerm_app_service", 498 | "azurerm_app_service_active_slot", 499 | "azurerm_app_service_custom_hostname_binding", 500 | "azurerm_app_service_plan", 501 | "azurerm_app_service_slot", 502 | "azurerm_application_gateway", 503 | "azurerm_application_insights", 504 | "azurerm_application_security_group", 505 | "azurerm_automation_account", 506 | "azurerm_automation_credential", 507 | "azurerm_automation_runbook", 508 | "azurerm_automation_schedule", 509 | "azurerm_autoscale_setting", 510 | "azurerm_availability_set", 511 | "azurerm_azuread_application", 512 | "azurerm_azuread_service_principal", 513 | "azurerm_azuread_service_principal_password", 514 | "azurerm_cdn_endpoint", 515 | "azurerm_cdn_profile", 516 | "azurerm_container_group", 517 | "azurerm_container_registry", 518 | "azurerm_container_service", 519 | "azurerm_cosmosdb_account", 520 | "azurerm_data_lake_analytics_account", 521 | "azurerm_data_lake_analytics_firewall_rule", 522 | "azurerm_data_lake_store", 523 | "azurerm_data_lake_store_firewall_rule", 524 | "azurerm_dns_a_record", 525 | "azurerm_dns_aaaa_record", 526 | "azurerm_dns_caa_record", 527 | "azurerm_dns_cname_record", 528 | "azurerm_dns_mx_record", 529 | "azurerm_dns_ns_record", 530 | "azurerm_dns_ptr_record", 531 | "azurerm_dns_srv_record", 532 | "azurerm_dns_txt_record", 533 | "azurerm_dns_zone", 534 | "azurerm_eventgrid_topic", 535 | "azurerm_eventhub", 536 | "azurerm_eventhub_authorization_rule", 537 | "azurerm_eventhub_consumer_group", 538 | "azurerm_eventhub_namespace", 539 | "azurerm_express_route_circuit", 540 | "azurerm_express_route_circuit_authorization", 541 | "azurerm_express_route_circuit_peering", 542 | "azurerm_firewall", 543 | "azurerm_firewall_network_rule_collection", 544 | "azurerm_function_app", 545 | "azurerm_image", 546 | "azurerm_iothub", 547 | "azurerm_key_vault", 548 | "azurerm_key_vault_access_policy", 549 | "azurerm_key_vault_certificate", 550 | "azurerm_key_vault_key", 551 | "azurerm_key_vault_secret", 552 | "azurerm_kubernetes_cluster", 553 | "azurerm_lb", 554 | "azurerm_lb_backend_address_pool", 555 | "azurerm_lb_nat_pool", 556 | "azurerm_lb_nat_rule", 557 | "azurerm_lb_probe", 558 | "azurerm_lb_rule", 559 | "azurerm_local_network_gateway", 560 | "azurerm_log_analytics_solution", 561 | "azurerm_log_analytics_workspace", 562 | "azurerm_logic_app_action_custom", 563 | "azurerm_logic_app_action_http", 564 | "azurerm_logic_app_trigger_custom", 565 | "azurerm_logic_app_trigger_http_request", 566 | "azurerm_logic_app_trigger_recurrence", 567 | "azurerm_logic_app_workflow", 568 | "azurerm_managed_disk", 569 | "azurerm_management_group", 570 | "azurerm_management_lock", 571 | "azurerm_metric_alertrule", 572 | "azurerm_monitor_action_group", 573 | "azurerm_mysql_configuration", 574 | "azurerm_mysql_database", 575 | "azurerm_mysql_firewall_rule", 576 | "azurerm_mysql_server", 577 | "azurerm_mysql_virtual_network_rule", 578 | "azurerm_network_interface", 579 | "azurerm_network_security_group", 580 | "azurerm_network_security_rule", 581 | "azurerm_network_watcher", 582 | "azurerm_notification_hub", 583 | "azurerm_notification_hub_authorization_rule", 584 | "azurerm_notification_hub_namespace", 585 | "azurerm_packet_capture", 586 | "azurerm_policy_assignment", 587 | "azurerm_policy_definition", 588 | "azurerm_postgresql_configuration", 589 | "azurerm_postgresql_database", 590 | "azurerm_postgresql_firewall_rule", 591 | "azurerm_postgresql_server", 592 | "azurerm_postgresql_virtual_network_rule", 593 | "azurerm_public_ip", 594 | "azurerm_recovery_services_vault", 595 | "azurerm_redis_cache", 596 | "azurerm_redis_firewall_rule", 597 | "azurerm_relay_namespace", 598 | "azurerm_resource_group", 599 | "azurerm_role_assignment", 600 | "azurerm_role_definition", 601 | "azurerm_route", 602 | "azurerm_route_table", 603 | "azurerm_scheduler_job", 604 | "azurerm_scheduler_job_collection", 605 | "azurerm_search_service", 606 | "azurerm_service_fabric_cluster", 607 | "azurerm_servicebus_namespace", 608 | "azurerm_servicebus_namespace_authorization_rule", 609 | "azurerm_servicebus_queue", 610 | "azurerm_servicebus_queue_authorization_rule", 611 | "azurerm_servicebus_subscription", 612 | "azurerm_servicebus_subscription_rule", 613 | "azurerm_servicebus_topic", 614 | "azurerm_servicebus_topic_authorization_rule", 615 | "azurerm_snapshot", 616 | "azurerm_sql_active_directory_administrator", 617 | "azurerm_sql_database", 618 | "azurerm_sql_elasticpool", 619 | "azurerm_sql_firewall_rule", 620 | "azurerm_sql_server", 621 | "azurerm_sql_virtual_network_rule", 622 | "azurerm_storage_account", 623 | "azurerm_storage_blob", 624 | "azurerm_storage_container", 625 | "azurerm_storage_queue", 626 | "azurerm_storage_share", 627 | "azurerm_storage_table", 628 | "azurerm_subnet", 629 | "azurerm_template_deployment", 630 | "azurerm_traffic_manager_endpoint", 631 | "azurerm_traffic_manager_profile", 632 | "azurerm_user_assigned_identity", 633 | "azurerm_virtual_machine", 634 | "azurerm_virtual_machine_data_disk_attachment", 635 | "azurerm_virtual_machine_extension", 636 | "azurerm_virtual_machine_scale_set", 637 | "azurerm_virtual_network", 638 | "azurerm_virtual_network_gateway", 639 | "azurerm_virtual_network_gateway_connection", 640 | "azurerm_virtual_network_peering", 641 | "azurestack_availability_set", 642 | "azurestack_dns_a_record", 643 | "azurestack_dns_zone", 644 | "azurestack_lb", 645 | "azurestack_lb_backend_address_pool", 646 | "azurestack_lb_nat_pool", 647 | "azurestack_lb_nat_rule", 648 | "azurestack_lb_probe", 649 | "azurestack_lb_rule", 650 | "azurestack_local_network_gateway", 651 | "azurestack_network_interface", 652 | "azurestack_network_security_group", 653 | "azurestack_network_security_rule", 654 | "azurestack_public_ip", 655 | "azurestack_resource_group", 656 | "azurestack_route", 657 | "azurestack_route_table", 658 | "azurestack_storage_account", 659 | "azurestack_storage_blob", 660 | "azurestack_storage_container", 661 | "azurestack_subnet", 662 | "azurestack_template_deployment", 663 | "azurestack_virtual_machine", 664 | "azurestack_virtual_machine_extension", 665 | "azurestack_virtual_machine_scale_set", 666 | "azurestack_virtual_network", 667 | "azurestack_virtual_network_gateway", 668 | "bitbucket_default_reviewers", 669 | "bitbucket_hook", 670 | "bitbucket_repository", 671 | "brightbox_cloudip", 672 | "brightbox_container", 673 | "brightbox_database_server", 674 | "brightbox_firewall_policy", 675 | "brightbox_firewall_rule", 676 | "brightbox_load_balancer", 677 | "brightbox_server", 678 | "brightbox_server_group", 679 | "chef_data_bag", 680 | "chef_data_bag_item", 681 | "chef_environment", 682 | "chef_node", 683 | "chef_role", 684 | "circonus_check", 685 | "circonus_contact_group", 686 | "circonus_graph", 687 | "circonus_metric", 688 | "circonus_metric_cluster", 689 | "circonus_rule_set", 690 | "clc_group", 691 | "clc_load_balancer", 692 | "clc_load_balancer_pool", 693 | "clc_public_ip", 694 | "clc_server", 695 | "cloudflare_access_rule", 696 | "cloudflare_load_balancer", 697 | "cloudflare_load_balancer_monitor", 698 | "cloudflare_load_balancer_pool", 699 | "cloudflare_page_rule", 700 | "cloudflare_rate_limit", 701 | "cloudflare_record", 702 | "cloudflare_worker_route", 703 | "cloudflare_worker_script", 704 | "cloudflare_zone_lockdown", 705 | "cloudflare_zone_settings_override", 706 | "cloudscale_floating_ip", 707 | "cloudscale_server", 708 | "cloudstack_affinity_group", 709 | "cloudstack_disk", 710 | "cloudstack_egress_firewall", 711 | "cloudstack_firewall", 712 | "cloudstack_instance", 713 | "cloudstack_ipaddress", 714 | "cloudstack_loadbalancer_rule", 715 | "cloudstack_network", 716 | "cloudstack_network_acl", 717 | "cloudstack_network_acl_rule", 718 | "cloudstack_nic", 719 | "cloudstack_port_forward", 720 | "cloudstack_private_gateway", 721 | "cloudstack_secondary_ipaddress", 722 | "cloudstack_security_group", 723 | "cloudstack_security_group_rule", 724 | "cloudstack_ssh_keypair", 725 | "cloudstack_static_nat", 726 | "cloudstack_static_route", 727 | "cloudstack_template", 728 | "cloudstack_vpc", 729 | "cloudstack_vpn_connection", 730 | "cloudstack_vpn_customer_gateway", 731 | "cloudstack_vpn_gateway", 732 | "cobbler_distro", 733 | "cobbler_kickstart_file", 734 | "cobbler_profile", 735 | "cobbler_repo", 736 | "cobbler_snippet", 737 | "cobbler_system", 738 | "consul_agent_service", 739 | "consul_catalog_entry", 740 | "consul_intention", 741 | "consul_key_prefix", 742 | "consul_keys", 743 | "consul_node", 744 | "consul_prepared_query", 745 | "consul_service", 746 | "datadog_downtime", 747 | "datadog_monitor", 748 | "datadog_timeboard", 749 | "datadog_user", 750 | "digitalocean_certificate", 751 | "digitalocean_domain", 752 | "digitalocean_droplet", 753 | "digitalocean_firewall", 754 | "digitalocean_floating_ip", 755 | "digitalocean_loadbalancer", 756 | "digitalocean_record", 757 | "digitalocean_ssh_key", 758 | "digitalocean_tag", 759 | "digitalocean_volume", 760 | "dme_record", 761 | "dns_a_record_set", 762 | "dns_aaaa_record_set", 763 | "dns_cname_record", 764 | "dns_ns_record_set", 765 | "dns_ptr_record", 766 | "dnsimple_record", 767 | "docker_config", 768 | "docker_container", 769 | "docker_image", 770 | "docker_network", 771 | "docker_secret", 772 | "docker_service", 773 | "docker_volume", 774 | "docs-oneandone-datasource-instance-size", 775 | "dyn_record", 776 | "elastigroup_aws", 777 | "fastly_service_v1", 778 | "file", 779 | "flexibleengine_blockstorage_volume_v2", 780 | "flexibleengine_compute_floatingip_associate_v2", 781 | "flexibleengine_compute_floatingip_v2", 782 | "flexibleengine_compute_instance_v2", 783 | "flexibleengine_compute_keypair_v2", 784 | "flexibleengine_compute_servergroup_v2", 785 | "flexibleengine_compute_volume_attach_v2", 786 | "flexibleengine_dns_recordset_v2", 787 | "flexibleengine_dns_zone_v2", 788 | "flexibleengine_drs_replication_v2", 789 | "flexibleengine_drs_replicationconsistencygroup_v2", 790 | "flexibleengine_elb_backend", 791 | "flexibleengine_elb_health", 792 | "flexibleengine_elb_listener", 793 | "flexibleengine_elb_loadbalancer", 794 | "flexibleengine_nat_gateway_v2", 795 | "flexibleengine_nat_snat_rule_v2", 796 | "flexibleengine_networking_floatingip_v2", 797 | "flexibleengine_networking_network_v2", 798 | "flexibleengine_networking_port_v2", 799 | "flexibleengine_networking_router_interface_v2", 800 | "flexibleengine_networking_router_route_v2", 801 | "flexibleengine_networking_router_v2", 802 | "flexibleengine_networking_secgroup_rule_v2", 803 | "flexibleengine_networking_secgroup_v2", 804 | "flexibleengine_networking_subnet_v2", 805 | "flexibleengine_networking_vip_associate_v2", 806 | "flexibleengine_networking_vip_v2", 807 | "flexibleengine_s3-bucket-object", 808 | "flexibleengine_s3_bucket", 809 | "flexibleengine_s3_object_policy", 810 | "flexibleengine_vpc_peering_connection_accepter_v2", 811 | "flexibleengine_vpc_peering_connection_v2", 812 | "flexibleengine_vpc_route_v2", 813 | "flexibleengine_vpc_subnet_v1", 814 | "flexibleengine_vpc_v1", 815 | "github_branch_protection", 816 | "github_issue_label", 817 | "github_membership", 818 | "github_organization_project", 819 | "github_organization_webhook", 820 | "github_project_column", 821 | "github_repository", 822 | "github_repository_collaborator", 823 | "github_repository_deploy_key", 824 | "github_repository_project", 825 | "github_repository_webhook", 826 | "github_team", 827 | "github_team_membership", 828 | "github_team_repository", 829 | "github_user_gpg_key", 830 | "github_user_ssh_key", 831 | "gitlab_deploy_key", 832 | "gitlab_group", 833 | "gitlab_label", 834 | "gitlab_project", 835 | "gitlab_project_hook", 836 | "gitlab_user", 837 | "google_bigquery_dataset", 838 | "google_bigquery_table", 839 | "google_bigtable_instance", 840 | "google_bigtable_table", 841 | "google_binary_authorization_attestor", 842 | "google_binary_authorization_policy", 843 | "google_cloudbuild_trigger", 844 | "google_cloudfunctions_function", 845 | "google_cloudiot_registry", 846 | "google_compute_address", 847 | "google_compute_attached_disk", 848 | "google_compute_autoscaler", 849 | "google_compute_backend_bucket", 850 | "google_compute_backend_service", 851 | "google_compute_disk", 852 | "google_compute_firewall", 853 | "google_compute_forwarding_rule", 854 | "google_compute_global_address", 855 | "google_compute_global_forwarding_rule", 856 | "google_compute_health_check", 857 | "google_compute_http_health_check", 858 | "google_compute_https_health_check", 859 | "google_compute_image", 860 | "google_compute_instance", 861 | "google_compute_instance_from_template", 862 | "google_compute_instance_group", 863 | "google_compute_instance_group_manager", 864 | "google_compute_instance_template", 865 | "google_compute_network", 866 | "google_compute_network_peering", 867 | "google_compute_project_metadata", 868 | "google_compute_project_metadata_item", 869 | "google_compute_region_autoscaler", 870 | "google_compute_region_backend_service", 871 | "google_compute_region_disk", 872 | "google_compute_region_instance_group_manager", 873 | "google_compute_route", 874 | "google_compute_router", 875 | "google_compute_router_interface", 876 | "google_compute_router_peer", 877 | "google_compute_security_policy", 878 | "google_compute_shared_vpc_host_project", 879 | "google_compute_shared_vpc_service_project", 880 | "google_compute_snapshot", 881 | "google_compute_ssl_certificate", 882 | "google_compute_ssl_policy", 883 | "google_compute_subnetwork", 884 | "google_compute_subnetwork_iam_binding", 885 | "google_compute_subnetwork_iam_member", 886 | "google_compute_subnetwork_iam_policy", 887 | "google_compute_target_http_proxy", 888 | "google_compute_target_https_proxy", 889 | "google_compute_target_pool", 890 | "google_compute_target_ssl_proxy", 891 | "google_compute_target_tcp_proxy", 892 | "google_compute_url_map", 893 | "google_compute_vpn_gateway", 894 | "google_compute_vpn_tunnel", 895 | "google_container_analysis_note", 896 | "google_container_cluster", 897 | "google_container_node_pool", 898 | "google_dataflow_job", 899 | "google_dataproc_cluster", 900 | "google_dataproc_job", 901 | "google_dns_managed_zone", 902 | "google_dns_record_set", 903 | "google_endpoints_service", 904 | "google_folder", 905 | "google_folder_iam_binding", 906 | "google_folder_iam_member", 907 | "google_folder_iam_policy", 908 | "google_folder_organization_policy", 909 | "google_kms_crypto_key", 910 | "google_kms_crypto_key_iam_binding", 911 | "google_kms_crypto_key_iam_member", 912 | "google_kms_key_ring", 913 | "google_kms_key_ring_iam_binding", 914 | "google_kms_key_ring_iam_member", 915 | "google_kms_key_ring_iam_policy", 916 | "google_logging_billing_account_exclusion", 917 | "google_logging_billing_account_sink", 918 | "google_logging_folder_exclusion", 919 | "google_logging_folder_sink", 920 | "google_logging_organization_exclusion", 921 | "google_logging_organization_sink", 922 | "google_logging_project_exclusion", 923 | "google_logging_project_sink", 924 | "google_organization_iam_binding", 925 | "google_organization_iam_custom_role", 926 | "google_organization_iam_member", 927 | "google_organization_iam_policy", 928 | "google_organization_policy", 929 | "google_project", 930 | "google_project_iam_binding", 931 | "google_project_iam_custom_role", 932 | "google_project_iam_member", 933 | "google_project_iam_policy", 934 | "google_project_organization_policy", 935 | "google_project_service", 936 | "google_project_services", 937 | "google_project_usage_export_bucket", 938 | "google_pubsub_subscription", 939 | "google_pubsub_subscription_iam_binding", 940 | "google_pubsub_subscription_iam_member", 941 | "google_pubsub_subscription_iam_policy", 942 | "google_pubsub_topic", 943 | "google_pubsub_topic_iam_binding", 944 | "google_pubsub_topic_iam_member", 945 | "google_pubsub_topic_iam_policy", 946 | "google_redis_instance", 947 | "google_resource_manager_lien", 948 | "google_runtimeconfig_config", 949 | "google_runtimeconfig_variable", 950 | "google_service_account", 951 | "google_service_account_iam_binding", 952 | "google_service_account_iam_member", 953 | "google_service_account_iam_policy", 954 | "google_service_account_key", 955 | "google_sourcerepo_repository", 956 | "google_spanner_database", 957 | "google_spanner_database_iam_binding", 958 | "google_spanner_database_iam_member", 959 | "google_spanner_database_iam_policy", 960 | "google_spanner_instance", 961 | "google_spanner_instance_iam_binding", 962 | "google_spanner_instance_iam_member", 963 | "google_spanner_instance_iam_policy", 964 | "google_sql_database", 965 | "google_sql_database_instance", 966 | "google_sql_user", 967 | "google_storage_bucket", 968 | "google_storage_bucket_acl", 969 | "google_storage_bucket_iam_binding", 970 | "google_storage_bucket_iam_member", 971 | "google_storage_bucket_object", 972 | "google_storage_default_object_acl", 973 | "google_storage_notification", 974 | "google_storage_object_acl", 975 | "grafana_alert_notification", 976 | "grafana_dashboard", 977 | "grafana_data_source", 978 | "grafana_organization", 979 | "hcloud_floating_ip", 980 | "hcloud_floating_ip_assignment", 981 | "hcloud_rdns", 982 | "hcloud_server", 983 | "hcloud_ssh_key", 984 | "heroku_addon", 985 | "heroku_addon_attachment", 986 | "heroku_app", 987 | "heroku_app_feature", 988 | "heroku_app_release", 989 | "heroku_cert", 990 | "heroku_domain", 991 | "heroku_drain", 992 | "heroku_formation", 993 | "heroku_pipeline", 994 | "heroku_pipeline_coupling", 995 | "heroku_slug", 996 | "heroku_space", 997 | "heroku_space_app_access", 998 | "heroku_space_inbound_ruleset", 999 | "heroku_space_peering_connection_accepter", 1000 | "heroku_space_vpn_connection", 1001 | "heroku_team_collaborator", 1002 | "heroku_team_member", 1003 | "huaweicloud_as_configuration_v1", 1004 | "huaweicloud_as_group_v1", 1005 | "huaweicloud_as_policy_v1", 1006 | "huaweicloud_blockstorage_volume_v2", 1007 | "huaweicloud_ces-alarmrule", 1008 | "huaweicloud_compute_floatingip_associate_v2", 1009 | "huaweicloud_compute_floatingip_v2", 1010 | "huaweicloud_compute_instance_v2", 1011 | "huaweicloud_compute_keypair_v2", 1012 | "huaweicloud_compute_secgroup_v2", 1013 | "huaweicloud_compute_servergroup_v2", 1014 | "huaweicloud_compute_volume_attach_v2", 1015 | "huaweicloud_dns_recordset_v2", 1016 | "huaweicloud_dns_zone_v2", 1017 | "huaweicloud_elb_backendecs", 1018 | "huaweicloud_elb_healthcheck", 1019 | "huaweicloud_elb_listener", 1020 | "huaweicloud_elb_loadbalancer", 1021 | "huaweicloud_fw_firewall_group_v2", 1022 | "huaweicloud_fw_policy_v2", 1023 | "huaweicloud_fw_rule_v2", 1024 | "huaweicloud_iam_agency_v3", 1025 | "huaweicloud_images_image_v2", 1026 | "huaweicloud_kms_key_v1", 1027 | "huaweicloud_lb_listener_v2", 1028 | "huaweicloud_lb_loadbalancer_v2", 1029 | "huaweicloud_lb_member_v2", 1030 | "huaweicloud_lb_monitor_v2", 1031 | "huaweicloud_lb_pool_v2", 1032 | "huaweicloud_nat_gateway_v2", 1033 | "huaweicloud_nat_snat_rule_v2", 1034 | "huaweicloud_networking_floatingip_v2", 1035 | "huaweicloud_networking_network_v2", 1036 | "huaweicloud_networking_port_v2", 1037 | "huaweicloud_networking_router_interface_v2", 1038 | "huaweicloud_networking_router_route_v2", 1039 | "huaweicloud_networking_router_v2", 1040 | "huaweicloud_networking_secgroup_rule_v2", 1041 | "huaweicloud_networking_secgroup_v2", 1042 | "huaweicloud_networking_subnet_v2", 1043 | "huaweicloud_rds_instance_v1", 1044 | "huaweicloud_rts_software_config_v1", 1045 | "huaweicloud_rts_stack_v1", 1046 | "huaweicloud_s3-bucket-object", 1047 | "huaweicloud_s3_bucket", 1048 | "huaweicloud_s3_object_policy", 1049 | "huaweicloud_sfs_file_system_v2", 1050 | "huaweicloud_smn_subscription_v2", 1051 | "huaweicloud_smn_topic_v2", 1052 | "huaweicloud_vpc_eip_v1", 1053 | "huaweicloud_vpc_peering_connection_accepter_v2", 1054 | "huaweicloud_vpc_peering_connection_v2", 1055 | "huaweicloud_vpc_route_v2", 1056 | "huaweicloud_vpc_subnet_v1", 1057 | "huaweicloud_vpc_v1", 1058 | "icinga2_checkcommand", 1059 | "icinga2_host", 1060 | "icinga2_hostgroup", 1061 | "icinga2_service", 1062 | "influxdb_continuous_query", 1063 | "influxdb_database", 1064 | "influxdb_user", 1065 | "kubernetes_config_map", 1066 | "kubernetes_horizontal_pod_autoscaler", 1067 | "kubernetes_limit_range", 1068 | "kubernetes_namespace", 1069 | "kubernetes_persistent_volume", 1070 | "kubernetes_persistent_volume_claim", 1071 | "kubernetes_pod", 1072 | "kubernetes_replication_controller", 1073 | "kubernetes_resource_quota", 1074 | "kubernetes_secret", 1075 | "kubernetes_service", 1076 | "kubernetes_service_account", 1077 | "kubernetes_storage_class", 1078 | "librato_alert", 1079 | "librato_metric", 1080 | "librato_service", 1081 | "librato_space", 1082 | "librato_space_chart", 1083 | "logentries_log", 1084 | "logentries_logset", 1085 | "logicmonitor_collector", 1086 | "logicmonitor_collectorgroup", 1087 | "logicmonitor_device", 1088 | "logicmonitor_devicegroup", 1089 | "mailgun_domain", 1090 | "mysql_database", 1091 | "mysql_grant", 1092 | "mysql_user", 1093 | "netlify_build_hook", 1094 | "netlify_deploy_key", 1095 | "netlify_hook", 1096 | "netlify_site", 1097 | "newrelic_alert_channel", 1098 | "newrelic_alert_condition", 1099 | "newrelic_alert_policy", 1100 | "newrelic_alert_policy_channel", 1101 | "newrelic_dashboard", 1102 | "newrelic_infra_alert_condition", 1103 | "newrelic_nrql_alert_condition", 1104 | "nomad_acl_policy", 1105 | "nomad_acl_token", 1106 | "nomad_job", 1107 | "nomad_namespace", 1108 | "nomad_quota_specification", 1109 | "nomad_sentinel_policy", 1110 | "ns1_apikey", 1111 | "ns1_datafeed", 1112 | "ns1_datasource", 1113 | "ns1_monitoringjob", 1114 | "ns1_notifylist", 1115 | "ns1_record", 1116 | "ns1_team", 1117 | "ns1_user", 1118 | "ns1_zone", 1119 | "nsxt_algorithm_type_ns_service", 1120 | "nsxt_dhcp_relay_profile", 1121 | "nsxt_dhcp_relay_service", 1122 | "nsxt_ether_type_ns_service", 1123 | "nsxt_firewall_section", 1124 | "nsxt_icmp_type_ns_service", 1125 | "nsxt_igmp_type_ns_service", 1126 | "nsxt_ip_protocol_ns_service", 1127 | "nsxt_ip_set", 1128 | "nsxt_l4_port_set_ns_service", 1129 | "nsxt_logical_port", 1130 | "nsxt_logical_router_downlink_port", 1131 | "nsxt_logical_router_link_port_on_tier0", 1132 | "nsxt_logical_router_link_port_on_tier1", 1133 | "nsxt_logical_switch", 1134 | "nsxt_logical_tier1_router", 1135 | "nsxt_nat_rule", 1136 | "nsxt_ns_group", 1137 | "nsxt_static_route", 1138 | "nsxt_vm_tags", 1139 | "oci_audit_configuration", 1140 | "oci_containerengine_cluster", 1141 | "oci_containerengine_node_pool", 1142 | "oci_core_boot_volume_backup", 1143 | "oci_core_console_history", 1144 | "oci_core_cpe", 1145 | "oci_core_cross_connect", 1146 | "oci_core_cross_connect_group", 1147 | "oci_core_dhcp_options", 1148 | "oci_core_drg", 1149 | "oci_core_drg_attachment", 1150 | "oci_core_image", 1151 | "oci_core_instance", 1152 | "oci_core_instance_console_connection", 1153 | "oci_core_internet_gateway", 1154 | "oci_core_ipsec", 1155 | "oci_core_local_peering_gateway", 1156 | "oci_core_private_ip", 1157 | "oci_core_public_ip", 1158 | "oci_core_remote_peering_connection", 1159 | "oci_core_route_table", 1160 | "oci_core_security_list", 1161 | "oci_core_service_gateway", 1162 | "oci_core_subnet", 1163 | "oci_core_vcn", 1164 | "oci_core_virtual_circuit", 1165 | "oci_core_vnic_attachment", 1166 | "oci_core_volume", 1167 | "oci_core_volume_attachment", 1168 | "oci_core_volume_backup", 1169 | "oci_core_volume_backup_policy_assignment", 1170 | "oci_core_volume_group", 1171 | "oci_core_volume_group_backup", 1172 | "oci_database_autonomous_data_warehouse", 1173 | "oci_database_autonomous_data_warehouse_backup", 1174 | "oci_database_autonomous_database", 1175 | "oci_database_autonomous_database_backup", 1176 | "oci_database_backup", 1177 | "oci_database_db_system", 1178 | "oci_dns_record", 1179 | "oci_dns_zone", 1180 | "oci_email_sender", 1181 | "oci_email_suppression", 1182 | "oci_file_storage_export", 1183 | "oci_file_storage_export_set", 1184 | "oci_file_storage_file_system", 1185 | "oci_file_storage_mount_target", 1186 | "oci_file_storage_snapshot", 1187 | "oci_identity_api_key", 1188 | "oci_identity_auth_token", 1189 | "oci_identity_compartment", 1190 | "oci_identity_customer_secret_key", 1191 | "oci_identity_dynamic_group", 1192 | "oci_identity_group", 1193 | "oci_identity_identity_provider", 1194 | "oci_identity_idp_group_mapping", 1195 | "oci_identity_policy", 1196 | "oci_identity_smtp_credential", 1197 | "oci_identity_swift_password", 1198 | "oci_identity_tag", 1199 | "oci_identity_tag_namespace", 1200 | "oci_identity_ui_password", 1201 | "oci_identity_user", 1202 | "oci_identity_user_group_membership", 1203 | "oci_load_balancer_backend", 1204 | "oci_load_balancer_backend_set", 1205 | "oci_load_balancer_certificate", 1206 | "oci_load_balancer_hostname", 1207 | "oci_load_balancer_listener", 1208 | "oci_load_balancer_load_balancer", 1209 | "oci_load_balancer_path_route_set", 1210 | "oci_objectstorage_bucket", 1211 | "oci_objectstorage_object", 1212 | "oci_objectstorage_preauthrequest", 1213 | "oneandone_baremetal", 1214 | "oneandone_block_storage", 1215 | "oneandone_firewall_policy", 1216 | "oneandone_loadbalancer", 1217 | "oneandone_monitoring_policy", 1218 | "oneandone_private_network", 1219 | "oneandone_public_ip", 1220 | "oneandone_server", 1221 | "oneandone_shared_storage", 1222 | "oneandone_ssh_key", 1223 | "oneandone_vpn", 1224 | "opc_compute_acl", 1225 | "opc_compute_image_list", 1226 | "opc_compute_image_list_entry", 1227 | "opc_compute_instance", 1228 | "opc_compute_ip_address_association", 1229 | "opc_compute_ip_address_prefix_set", 1230 | "opc_compute_ip_address_reservation", 1231 | "opc_compute_ip_association", 1232 | "opc_compute_ip_network", 1233 | "opc_compute_ip_network_exchange", 1234 | "opc_compute_ip_reservation", 1235 | "opc_compute_machine_image", 1236 | "opc_compute_orchestrated_instance", 1237 | "opc_compute_route", 1238 | "opc_compute_sec_rule", 1239 | "opc_compute_security_application", 1240 | "opc_compute_security_association", 1241 | "opc_compute_security_ip_list", 1242 | "opc_compute_security_list", 1243 | "opc_compute_security_protocol", 1244 | "opc_compute_security_rule", 1245 | "opc_compute_ssh_key", 1246 | "opc_compute_storage_volume", 1247 | "opc_compute_storage_volume_attachment", 1248 | "opc_compute_storage_volume_snapshot", 1249 | "opc_compute_vnic_set", 1250 | "opc_lbaas_certificate", 1251 | "opc_lbaas_listener", 1252 | "opc_lbaas_load_balancer", 1253 | "opc_lbaas_policy", 1254 | "opc_lbaas_server_pool", 1255 | "opc_storage_container", 1256 | "opc_storage_object", 1257 | "openstack_blockstorage_volume_attach_v2", 1258 | "openstack_blockstorage_volume_attach_v3", 1259 | "openstack_blockstorage_volume_v1", 1260 | "openstack_blockstorage_volume_v2", 1261 | "openstack_blockstorage_volume_v3", 1262 | "openstack_compute_flavor_v2", 1263 | "openstack_compute_floatingip_associate_v2", 1264 | "openstack_compute_floatingip_v2", 1265 | "openstack_compute_instance_v2", 1266 | "openstack_compute_keypair_v2", 1267 | "openstack_compute_secgroup_v2", 1268 | "openstack_compute_servergroup_v2", 1269 | "openstack_compute_volume_attach_v2", 1270 | "openstack_containerinfra_clustertemplate_v1", 1271 | "openstack_db_configuration_v1", 1272 | "openstack_db_database_v1", 1273 | "openstack_db_instance_v1", 1274 | "openstack_db_user_v1", 1275 | "openstack_dns_recordset_v2", 1276 | "openstack_dns_zone_v2", 1277 | "openstack_fw_firewall_v1", 1278 | "openstack_fw_policy_v1", 1279 | "openstack_fw_rule_v1", 1280 | "openstack_identity_project_v3", 1281 | "openstack_identity_role_assignment_v3", 1282 | "openstack_identity_role_v3", 1283 | "openstack_identity_user_v3", 1284 | "openstack_images_image_v2", 1285 | "openstack_lb_listener_v2", 1286 | "openstack_lb_loadbalancer_v2", 1287 | "openstack_lb_member_v1", 1288 | "openstack_lb_member_v2", 1289 | "openstack_lb_monitor_v1", 1290 | "openstack_lb_monitor_v2", 1291 | "openstack_lb_pool_v1", 1292 | "openstack_lb_pool_v2", 1293 | "openstack_lb_vip_v1", 1294 | "openstack_networking_floatingip_associate_v2", 1295 | "openstack_networking_floatingip_v2", 1296 | "openstack_networking_network_v2", 1297 | "openstack_networking_port_v2", 1298 | "openstack_networking_router_interface_v2", 1299 | "openstack_networking_router_route_v2", 1300 | "openstack_networking_router_v2", 1301 | "openstack_networking_secgroup_rule_v2", 1302 | "openstack_networking_secgroup_v2", 1303 | "openstack_networking_subnet_route_v2", 1304 | "openstack_networking_subnet_v2", 1305 | "openstack_networking_subnetpool_v2", 1306 | "openstack_objectstorage_container_v1", 1307 | "openstack_objectstorage_object_v1", 1308 | "openstack_objectstorage_tempurl_v1", 1309 | "openstack_vpnaas_endpoint_group_v2", 1310 | "openstack_vpnaas_ike_policy_v2", 1311 | "openstack_vpnaas_ipsec_policy_v2", 1312 | "openstack_vpnaas_service_v2", 1313 | "openstack_vpnaas_site_connection_v2", 1314 | "opentelekomcloud_blockstorage_volume_v2", 1315 | "opentelekomcloud_ces_alarmrule", 1316 | "opentelekomcloud_compute_floatingip_associate_v2", 1317 | "opentelekomcloud_compute_floatingip_v2", 1318 | "opentelekomcloud_compute_instance_v2", 1319 | "opentelekomcloud_compute_keypair_v2", 1320 | "opentelekomcloud_compute_secgroup_v2", 1321 | "opentelekomcloud_compute_servergroup_v2", 1322 | "opentelekomcloud_compute_volume_attach_v2", 1323 | "opentelekomcloud_dns_recordset_v2", 1324 | "opentelekomcloud_dns_zone_v2", 1325 | "opentelekomcloud_elb_backend", 1326 | "opentelekomcloud_elb_health", 1327 | "opentelekomcloud_elb_listener", 1328 | "opentelekomcloud_elb_loadbalancer", 1329 | "opentelekomcloud_fw_firewall_group_v2", 1330 | "opentelekomcloud_fw_policy_v2", 1331 | "opentelekomcloud_fw_rule_v2", 1332 | "opentelekomcloud_images_image_v2", 1333 | "opentelekomcloud_kms_key_v1", 1334 | "opentelekomcloud_lb_listener_v2", 1335 | "opentelekomcloud_lb_loadbalancer_v2", 1336 | "opentelekomcloud_lb_member_v2", 1337 | "opentelekomcloud_lb_monitor_v2", 1338 | "opentelekomcloud_lb_pool_v2", 1339 | "opentelekomcloud_networking_floatingip_v2", 1340 | "opentelekomcloud_networking_network_v2", 1341 | "opentelekomcloud_networking_port_v2", 1342 | "opentelekomcloud_networking_router_interface_v2", 1343 | "opentelekomcloud_networking_router_route_v2", 1344 | "opentelekomcloud_networking_router_v2", 1345 | "opentelekomcloud_networking_secgroup_rule_v2", 1346 | "opentelekomcloud_networking_secgroup_v2", 1347 | "opentelekomcloud_networking_subnet_v2", 1348 | "opentelekomcloud_rds_instance_v1", 1349 | "opentelekomcloud_s3-bucket-object", 1350 | "opentelekomcloud_s3_bucket", 1351 | "opentelekomcloud_s3_object_policy", 1352 | "opentelekomcloud_smn_subscription_v2", 1353 | "opentelekomcloud_smn_topic_v2", 1354 | "opentelekomcloud_vpc_eip_v1", 1355 | "opsgenie_team", 1356 | "opsgenie_user", 1357 | "oraclepaas_application_container", 1358 | "oraclepaas_database_access_rule", 1359 | "oraclepaas_database_service_instance", 1360 | "oraclepaas_java_access_rule", 1361 | "oraclepaas_java_service_instance", 1362 | "oraclepaas_mysql_access_rule", 1363 | "oraclepaas_mysql_service_instance", 1364 | "ovh_cloud_network_private", 1365 | "ovh_cloud_network_private_subnet", 1366 | "ovh_cloud_user", 1367 | "ovh_domain_zone_record", 1368 | "ovh_domain_zone_redirection", 1369 | "ovh_iploadbalancing_http_route", 1370 | "ovh_iploadbalancing_http_route_rule", 1371 | "ovh_iploadbalancing_tcp_farm", 1372 | "ovh_iploadbalancing_tcp_farm_server", 1373 | "ovh_publiccloud_private_network", 1374 | "ovh_publiccloud_private_network_subnet", 1375 | "ovh_publiccloud_user", 1376 | "ovh_vrack_cloudproject", 1377 | "ovh_vrack_publiccloud_attachment", 1378 | "packet_device", 1379 | "packet_organization", 1380 | "packet_project", 1381 | "packet_ssh_key", 1382 | "packet_volume", 1383 | "packet_volume_attachment", 1384 | "pagerduty_addon", 1385 | "pagerduty_escalation_policy", 1386 | "pagerduty_extension", 1387 | "pagerduty_maintenance_window", 1388 | "pagerduty_schedule", 1389 | "pagerduty_service", 1390 | "pagerduty_service_integration", 1391 | "pagerduty_team", 1392 | "pagerduty_team_membership", 1393 | "pagerduty_user", 1394 | "pagerduty_user_contact_method", 1395 | "panos_address_group", 1396 | "panos_address_object", 1397 | "panos_administrative_tag", 1398 | "panos_dag_tags", 1399 | "panos_edl", 1400 | "panos_ethernet_interface", 1401 | "panos_general_settings", 1402 | "panos_ike_crypto_profile", 1403 | "panos_ike_gateway", 1404 | "panos_ipsec_crypto_profile", 1405 | "panos_ipsec_tunnel", 1406 | "panos_ipsec_tunnel_proxy_id_ipv4", 1407 | "panos_license_api_key", 1408 | "panos_licensing", 1409 | "panos_loopback_interface", 1410 | "panos_management_profile", 1411 | "panos_nat_policy", 1412 | "panos_nat_rule", 1413 | "panos_panorama_address_group", 1414 | "panos_panorama_address_object", 1415 | "panos_panorama_administrative_tag", 1416 | "panos_panorama_device_group", 1417 | "panos_panorama_device_group_entry", 1418 | "panos_panorama_edl", 1419 | "panos_panorama_ethernet_interface", 1420 | "panos_panorama_ike_crypto_profile", 1421 | "panos_panorama_ike_gateway", 1422 | "panos_panorama_ipsec_crypto_profile", 1423 | "panos_panorama_ipsec_tunnel", 1424 | "panos_panorama_ipsec_tunnel_proxy_id_ipv4", 1425 | "panos_panorama_loopback_interface", 1426 | "panos_panorama_management_profile", 1427 | "panos_panorama_nat_policy", 1428 | "panos_panorama_nat_rule", 1429 | "panos_panorama_security_policies", 1430 | "panos_panorama_security_policy", 1431 | "panos_panorama_security_policy_group", 1432 | "panos_panorama_security_rule_group", 1433 | "panos_panorama_service_group", 1434 | "panos_panorama_service_object", 1435 | "panos_panorama_static_route_ipv4", 1436 | "panos_panorama_template", 1437 | "panos_panorama_template_entry", 1438 | "panos_panorama_template_stack", 1439 | "panos_panorama_template_stack_entry", 1440 | "panos_panorama_template_variable", 1441 | "panos_panorama_tunnel_interface", 1442 | "panos_panorama_virtual_router", 1443 | "panos_panorama_vlan_interface", 1444 | "panos_panorama_zone", 1445 | "panos_security_policies", 1446 | "panos_security_policy", 1447 | "panos_security_policy_group", 1448 | "panos_security_rule_group", 1449 | "panos_service_group", 1450 | "panos_service_object", 1451 | "panos_static_route_ipv4", 1452 | "panos_telemetry", 1453 | "panos_tunnel_interface", 1454 | "panos_virtual_router", 1455 | "panos_vlan_interface", 1456 | "panos_zone", 1457 | "postgresql_database", 1458 | "postgresql_extension", 1459 | "postgresql_role", 1460 | "postgresql_schema", 1461 | "powerdns_record", 1462 | "profitbricks_datacenter", 1463 | "profitbricks_firewall", 1464 | "profitbricks_group", 1465 | "profitbricks_ipblock", 1466 | "profitbricks_ipfailover", 1467 | "profitbricks_lan", 1468 | "profitbricks_loadbalancer", 1469 | "profitbricks_nic", 1470 | "profitbricks_server", 1471 | "profitbricks_share", 1472 | "profitbricks_snapshot", 1473 | "profitbricks_user", 1474 | "profitbricks_volume", 1475 | "rabbitmq_binding", 1476 | "rabbitmq_exchange", 1477 | "rabbitmq_permissions", 1478 | "rabbitmq_policy", 1479 | "rabbitmq_queue", 1480 | "rabbitmq_user", 1481 | "rabbitmq_vhost", 1482 | "rancher_certificate", 1483 | "rancher_environment", 1484 | "rancher_host", 1485 | "rancher_registration_token", 1486 | "rancher_registry", 1487 | "rancher_registry_credential", 1488 | "rancher_secret", 1489 | "rancher_stack", 1490 | "rancher_volume", 1491 | "random_id", 1492 | "random_integer", 1493 | "random_pet", 1494 | "random_shuffle", 1495 | "random_string", 1496 | "rds_instance_v1", 1497 | "rightscale_credential", 1498 | "rightscale_cwf_process", 1499 | "rightscale_deployment", 1500 | "rightscale_instance", 1501 | "rightscale_network", 1502 | "rightscale_network_gateway", 1503 | "rightscale_route", 1504 | "rightscale_route_table", 1505 | "rightscale_security_group", 1506 | "rightscale_security_group_rule", 1507 | "rightscale_server", 1508 | "rightscale_server_array", 1509 | "rightscale_ssh_key", 1510 | "rightscale_subnet", 1511 | "rundeck_job", 1512 | "rundeck_private_key", 1513 | "rundeck_project", 1514 | "rundeck_public_key", 1515 | "runscope_bucket", 1516 | "runscope_environment", 1517 | "runscope_schedule", 1518 | "runscope_step", 1519 | "runscope_test", 1520 | "scaleway_ip", 1521 | "scaleway_security_group", 1522 | "scaleway_security_group_rule", 1523 | "scaleway_server", 1524 | "scaleway_ssh_key", 1525 | "scaleway_token", 1526 | "scaleway_user_data", 1527 | "scaleway_volume", 1528 | "scaleway_volume_attachment", 1529 | "smn_subscription_v2", 1530 | "smn_topic_v2", 1531 | "ssh_key", 1532 | "statuscake_test", 1533 | "subscription", 1534 | "template_dir", 1535 | "tfe_organization", 1536 | "tfe_organization_token", 1537 | "tfe_sentinel_policy", 1538 | "tfe_ssh_key", 1539 | "tfe_team", 1540 | "tfe_team_access", 1541 | "tfe_team_member", 1542 | "tfe_team_members", 1543 | "tfe_team_token", 1544 | "tfe_variable", 1545 | "tfe_workspace", 1546 | "tls_cert_request", 1547 | "tls_locally_signed_cert", 1548 | "tls_private_key", 1549 | "tls_self_signed_cert", 1550 | "triton_fabric", 1551 | "triton_firewall_rule", 1552 | "triton_instance_template", 1553 | "triton_key", 1554 | "triton_machine", 1555 | "triton_service_group", 1556 | "triton_snapshot", 1557 | "triton_vlan", 1558 | "ultradns_dirpool", 1559 | "ultradns_probe_http", 1560 | "ultradns_probe_ping", 1561 | "ultradns_record", 1562 | "ultradns_tcpool", 1563 | "vault_approle_auth_backend_login", 1564 | "vault_approle_auth_backend_role", 1565 | "vault_approle_auth_backend_role_secret_id", 1566 | "vault_auth_backend", 1567 | "vault_aws_auth_backend_cert", 1568 | "vault_aws_auth_backend_client", 1569 | "vault_aws_auth_backend_identity_whitelist", 1570 | "vault_aws_auth_backend_login", 1571 | "vault_aws_auth_backend_role", 1572 | "vault_aws_auth_backend_role_tag", 1573 | "vault_aws_auth_backend_sts_role", 1574 | "vault_aws_secret_backend", 1575 | "vault_aws_secret_backend_role", 1576 | "vault_cert_auth_backend_role", 1577 | "vault_consul_secret_backend", 1578 | "vault_database_secret_backend_connection", 1579 | "vault_database_secret_backend_role", 1580 | "vault_gcp_auth_backend_role", 1581 | "vault_generic_secret", 1582 | "vault_generic_secret", 1583 | "vault_ldap_auth_backend_group", 1584 | "vault_ldap_auth_backend_user", 1585 | "vault_ldap_backend", 1586 | "vault_mount", 1587 | "vault_okta_auth_backend", 1588 | "vault_okta_auth_backend", 1589 | "vault_okta_auth_backend_group", 1590 | "vault_okta_auth_backend_user", 1591 | "vault_policy", 1592 | "vault_token_auth_backend_role", 1593 | "vcd_dnat", 1594 | "vcd_edgegateway_vpn", 1595 | "vcd_firewall_rules", 1596 | "vcd_network", 1597 | "vcd_snat", 1598 | "vcd_vapp", 1599 | "vcd_vapp_vm", 1600 | "virtual_guest", 1601 | "vsphere_compute_cluster", 1602 | "vsphere_compute_cluster_host_group", 1603 | "vsphere_compute_cluster_vm_affinity_rule", 1604 | "vsphere_compute_cluster_vm_anti_affinity_rule", 1605 | "vsphere_compute_cluster_vm_dependency_rule", 1606 | "vsphere_compute_cluster_vm_group", 1607 | "vsphere_compute_cluster_vm_host_rule", 1608 | "vsphere_custom_attribute", 1609 | "vsphere_datacenter", 1610 | "vsphere_datastore_cluster", 1611 | "vsphere_datastore_cluster_vm_anti_affinity_rule", 1612 | "vsphere_distributed_port_group", 1613 | "vsphere_distributed_virtual_switch", 1614 | "vsphere_dpm_host_override", 1615 | "vsphere_drs_vm_override", 1616 | "vsphere_file", 1617 | "vsphere_folder", 1618 | "vsphere_ha_vm_override", 1619 | "vsphere_host_port_group", 1620 | "vsphere_host_virtual_switch", 1621 | "vsphere_license", 1622 | "vsphere_nas_datastore", 1623 | "vsphere_resource_pool", 1624 | "vsphere_storage_drs_vm_override", 1625 | "vsphere_tag", 1626 | "vsphere_tag_category", 1627 | "vsphere_virtual_disk", 1628 | "vsphere_virtual_machine", 1629 | "vsphere_virtual_machine_snapshot", 1630 | "vsphere_vmfs_datastore" 1631 | ] 1632 | } -------------------------------------------------------------------------------- /Default.sublime-commands: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "caption": "Terraform: Format", 4 | "command": "terraform_fmt" 5 | }, 6 | { 7 | "command": "edit_settings", 8 | "args": { "base_file": "${packages}/sublime-terraform/Terraform.sublime-settings" }, 9 | "caption": "Preferences: Terraform Settings" 10 | }, 11 | ] 12 | -------------------------------------------------------------------------------- /Gemfile: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | source "https://rubygems.org" 3 | 4 | gem "nokogiri" 5 | gem "rake" 6 | -------------------------------------------------------------------------------- /Gemfile.lock: -------------------------------------------------------------------------------- 1 | GEM 2 | remote: https://rubygems.org/ 3 | specs: 4 | mini_portile2 (2.4.0) 5 | nokogiri (1.10.5) 6 | mini_portile2 (~> 2.4.0) 7 | rake (13.0.1) 8 | 9 | PLATFORMS 10 | ruby 11 | 12 | DEPENDENCIES 13 | nokogiri 14 | rake 15 | 16 | BUNDLED WITH 17 | 1.17.3 18 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Original work Copyright (c) 2016 Alex Louden 4 | Modified work Copyright (c) 2017 Tamás Michelberger 5 | 6 | Permission is hereby granted, free of charge, to any person obtaining a copy 7 | of this software and associated documentation files (the "Software"), to deal 8 | in the Software without restriction, including without limitation the rights 9 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | copies of the Software, and to permit persons to whom the Software is 11 | furnished to do so, subject to the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be included in all 14 | copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 22 | SOFTWARE. 23 | -------------------------------------------------------------------------------- /Main.sublime-menu: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "caption": "Preferences", 4 | "mnemonic": "n", 5 | "id": "preferences", 6 | "children": 7 | [ 8 | { 9 | "caption": "Package Settings", 10 | "mnemonic": "P", 11 | "id": "package-settings", 12 | "children": 13 | [ 14 | { 15 | "caption": "Terraform", 16 | "id": "terraform", 17 | "children": 18 | [ 19 | { 20 | "command": "edit_settings", 21 | "args": { "base_file": "${packages}/sublime-terraform/Terraform.sublime-settings" }, 22 | "caption": "Settings" 23 | }, 24 | ] 25 | } 26 | ] 27 | } 28 | ] 29 | } 30 | ] 31 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Terraform support for Sublime Text 3 2 | ==================================== 3 | 4 | Fork of [Terraform.tmLanguage][base_repo] with some sweet improvements. 5 | 6 | ### Features: 7 | 8 | * Syntax highlighting for `.tf` and `.tfvars` files. 9 | * Format on save using `terraform fmt` (only available in version >= 0.6.15) 10 | * Code completion for resources and data sources 11 | * Support [`bat`](https://github.com/sharkdp/bat) 12 | * Snippets 13 | 14 | Installation 15 | ------------ 16 | 17 | ### Using Package Control 18 | 19 | 1. Having [Package Control](https://packagecontrol.io/installation) installed 20 | 2. Open the palette by pressing `Ctrl+Shift+P` (Win, Linux) or `Cmd+Shift+P` (OS X). 21 | 3. Select _"Package Control: Add Repository"_ 22 | 4. Enter `https://github.com/tmichel/sublime-terraform` 23 | 5. Open command palette again 24 | 6. Select _"Package Control: Install Package"_ 25 | 7. Select _"sublime-terraform"_ 26 | 27 | ### Manually 28 | 29 | 1. Open the Sublime Text Packages folder 30 | - OS X: `~/Library/Application Support/Sublime Text 3/Packages/` 31 | - Windows: `%APPDATA%/Sublime Text 3/Packages/` 32 | - Linux (Ubuntu/Debian): `~/.config/sublime-text-3/Packages/` 33 | 34 | 2. Clone this repo: 35 | 36 | $ git clone https://github.com/tmichel/sublime-terraform 37 | 38 | ## Configuration 39 | 40 | The defaults are available in the [Terraform.sublime-settings][settings_file] 41 | file. 42 | 43 | ## Development 44 | 45 | To update the completion files you will need Ruby 2.2+ 46 | 47 | 1. Install Ruby 48 | 2. `bundle install` 49 | 3. `bundle exec rake completions` 50 | 51 | [base_repo]: github.com/alexlouden/Terraform.tmLanguage 52 | [settings_file]: Terraform.sublime-settings 53 | -------------------------------------------------------------------------------- /Rakefile: -------------------------------------------------------------------------------- 1 | require "nokogiri" 2 | require "net/http" 3 | require "uri" 4 | require "json" 5 | 6 | BASE_URL = "https://www.terraform.io" 7 | RESOURCE_PATTERN = %r{^/docs/providers/\w+/r} 8 | DATA_SOURCE_PATTERN = %r{^/docs/providers/\w+/d/} 9 | 10 | desc "Generate completion files" 11 | task :completions do 12 | completions = Hash.new { |h,k| h[k] = [] } 13 | get_providers.each do |provider, uri| 14 | completions[:resources] += get_terraform_resource_keys(uri, RESOURCE_PATTERN) 15 | completions[:data_sources] += get_terraform_resource_keys(uri, DATA_SOURCE_PATTERN) 16 | end 17 | 18 | completions[:data_sources] << "external" 19 | 20 | write_completion_file("Resources", scope: "meta.resource.type.terraform", completions: completions[:resources].sort) 21 | write_completion_file("Data Sources", scope: "meta.data-source.type.terraform", completions: completions[:data_sources].sort) 22 | end 23 | 24 | desc "List providers" 25 | task :providers do 26 | puts get_providers.map(&:first) 27 | end 28 | 29 | def write_completion_file(name, completions={}) 30 | File.open("Completions/#{name}.sublime-completions", "w") do |f| 31 | f.write(JSON.pretty_generate(completions)) 32 | end 33 | end 34 | 35 | def get_terraform_resource_keys(uri, href_pattern) 36 | html = download_and_parse(uri) 37 | html.css(".nav.docs-sidenav ul.nav > li > a").select { |a| a["href"] =~ href_pattern }.map { |a| a.text } 38 | end 39 | 40 | def download_and_parse(uri) 41 | resp = Net::HTTP.get(uri) 42 | Nokogiri::HTML(resp) 43 | end 44 | 45 | def get_providers 46 | uri = URI("https://www.terraform.io/docs/providers/index.html") 47 | html = download_and_parse(uri) 48 | html.search('li > a[href^="/docs/providers"]').map do |a| 49 | [a, URI(BASE_URL + a["href"].to_s)] 50 | end 51 | end 52 | -------------------------------------------------------------------------------- /Snippets/atlas.sublime-snippet: -------------------------------------------------------------------------------- 1 | 2 | 7 | atlas 8 | source.terraform 9 | atlas block 10 | 11 | -------------------------------------------------------------------------------- /Snippets/data.sublime-snippet: -------------------------------------------------------------------------------- 1 | 2 | 7 | data 8 | source.terraform 9 | data source block 10 | 11 | -------------------------------------------------------------------------------- /Snippets/interpolation.sublime-snippet: -------------------------------------------------------------------------------- 1 | 2 | 5 | $ 6 | string.quoted.double.terraform 7 | String interpolation 8 | 9 | -------------------------------------------------------------------------------- /Snippets/module.sublime-snippet: -------------------------------------------------------------------------------- 1 | 2 | 8 | module 9 | source.terraform 10 | module block 11 | 12 | -------------------------------------------------------------------------------- /Snippets/module_github.sublime-snippet: -------------------------------------------------------------------------------- 1 | 2 | 8 | moduleG 9 | source.terraform 10 | module (github public) 11 | 12 | -------------------------------------------------------------------------------- /Snippets/module_github_private.sublime-snippet: -------------------------------------------------------------------------------- 1 | 2 | 8 | moduleGS 9 | source.terraform 10 | module (github ssh) 11 | 12 | -------------------------------------------------------------------------------- /Snippets/module_path.sublime-snippet: -------------------------------------------------------------------------------- 1 | 2 | 8 | moduleP 9 | source.terraform 10 | module (path) 11 | 12 | -------------------------------------------------------------------------------- /Snippets/output.sublime-snippet: -------------------------------------------------------------------------------- 1 | 2 | 7 | output 8 | source.terraform 9 | output block 10 | 11 | -------------------------------------------------------------------------------- /Snippets/provider.sublime-snippet: -------------------------------------------------------------------------------- 1 | 2 | 7 | provider 8 | source.terraform 9 | provider block 10 | 11 | -------------------------------------------------------------------------------- /Snippets/provisioner.sublime-snippet: -------------------------------------------------------------------------------- 1 | 2 | 7 | provisioner 8 | source.terraform 9 | provisioner block 10 | 11 | -------------------------------------------------------------------------------- /Snippets/resource.sublime-snippet: -------------------------------------------------------------------------------- 1 | 2 | 7 | resource 8 | source.terraform 9 | resource block 10 | 11 | -------------------------------------------------------------------------------- /Snippets/variable.sublime-snippet: -------------------------------------------------------------------------------- 1 | 2 | 8 | variable 9 | source.terraform 10 | variable (inferred type) 11 | 12 | -------------------------------------------------------------------------------- /Snippets/variable_list.sublime-snippet: -------------------------------------------------------------------------------- 1 | 2 | 9 | variableL 10 | source.terraform 11 | variable (list) 12 | 13 | -------------------------------------------------------------------------------- /Snippets/variable_map.sublime-snippet: -------------------------------------------------------------------------------- 1 | 2 | 12 | variableM 13 | source.terraform 14 | variable (map) 15 | 16 | -------------------------------------------------------------------------------- /Snippets/variable_reference.sublime-snippet: -------------------------------------------------------------------------------- 1 | 2 | 5 | var 6 | source.terraform 7 | variable reference 8 | 9 | -------------------------------------------------------------------------------- /Snippets/variable_string.sublime-snippet: -------------------------------------------------------------------------------- 1 | 2 | 9 | variableS 10 | source.terraform 11 | variable (string) 12 | 13 | -------------------------------------------------------------------------------- /Symbols.tmPreferences: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | scope 5 | source.terraform entity.name.resource 6 | settings 7 | 8 | showInSymbolList 9 | 1 10 | showInIndexedSymbolList 11 | 1 12 | symbolTransformation 13 | 14 | s/\{//; 15 | s/" "/./; 16 | s/"//g; 17 | s/(\w+)\s(.*)/\2 \(\1\)/ 18 | 19 | symbolIndexTransformation 20 | 21 | s/\{//; 22 | s/" "/./; 23 | s/"//g; 24 | s/(\w+)\s(.*)/\2 \(\1\)/ 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /Terraform.sublime-settings: -------------------------------------------------------------------------------- 1 | { 2 | // Path of the terraform binary. 3 | "terraform_path": "terraform", 4 | 5 | // Format terraform source files on save using terraform fmt 6 | "format_on_save": true, 7 | } 8 | -------------------------------------------------------------------------------- /Terraform.sublime-syntax: -------------------------------------------------------------------------------- 1 | %YAML 1.2 2 | --- 3 | # http://www.sublimetext.com/docs/3/syntax.html 4 | name: Terraform 5 | file_extensions: 6 | - tf 7 | - tfvars 8 | - .terragrunt 9 | scope: source.terraform 10 | contexts: 11 | main: 12 | - match: "#" 13 | comment: Comments 14 | captures: 15 | 0: punctuation.definition.comment.terraform 16 | push: 17 | - meta_scope: comment.line.number-sign.terraform 18 | - match: $\n? 19 | captures: 20 | 0: punctuation.definition.comment.terraform 21 | pop: true 22 | - match: /\* 23 | comment: Block comments 24 | captures: 25 | 0: punctuation.definition.comment.terraform 26 | push: 27 | - meta_scope: comment.block.terraform 28 | - match: \*/ 29 | captures: 30 | 0: punctuation.definition.comment.terraform 31 | pop: true 32 | - match: // 33 | comment: Line comment 34 | scope: punctuation.definition.comment.terraform 35 | push: 36 | - meta_scope: comment.line.double-slash.terraform 37 | - match: $\n? 38 | captures: 39 | 0: punctuation.definition.comment.terraform 40 | pop: true 41 | - match: \b(true|false|yes|no|on|off)\b 42 | comment: Language constants (true, false, yes, no, on, off) 43 | scope: constant.language.terraform 44 | - match: '\b([0-9]+)([kKmMgG]b?)?\b' 45 | comment: Numbers 46 | scope: constant.numeric.terraform 47 | - match: '\b(0x[0-9A-Fa-f]+)([kKmMgG]b?)?\b' 48 | comment: Hex numbers 49 | scope: constant.numeric.terraform 50 | - match: '((resource)\s+((")(\w+)?("))\s+((")([\w-]+)?(")))\s*\{' 51 | scope: meta.resource.terraform 52 | captures: 53 | 1: entity.name.resource.terraform 54 | 2: storage.type.function.terraform 55 | 3: string.quoted.double.terraform 56 | 4: punctuation.definition.string.begin.terraform 57 | 5: meta.resource.type.terraform 58 | 6: punctuation.definition.string.end.terraform 59 | 7: string.quoted.double.terraform 60 | 8: punctuation.definition.string.begin.terraform 61 | 9: meta.resource.name.terraform 62 | 10: punctuation.definition.string.end.terraform 63 | - match: '((data)\s+((")(\w+)?("))\s+((")([\w-]+)?(")))\s*\{' 64 | scope: meta.data-source.terraform 65 | captures: 66 | 1: entity.name.resource.terraform 67 | 2: storage.type.function.terraform 68 | 3: string.quoted.double.terraform 69 | 4: punctuation.definition.string.begin.terraform 70 | 5: meta.data-source.type.terraform 71 | 6: punctuation.definition.string.end.terraform 72 | 7: string.quoted.double.terraform 73 | 8: punctuation.definition.string.begin.terraform 74 | 9: meta.data-source.name.terraform 75 | 10: punctuation.definition.string.end.terraform 76 | - match: '((provider|provisioner|variable|module|atlas)\s+(")([\w-]+)?("))\s*{' 77 | captures: 78 | 1: entity.name.resource.terraform 79 | 2: storage.type.function.terraform 80 | 3: string.terraform punctuation.definition.string.begin.terraform 81 | 4: string.quoted.double.terraform 82 | 5: string.terraform punctuation.definition.string.end.terraform 83 | - match: '((output)\s+(")([-\w\.]+)("))\s*{' 84 | captures: 85 | 1: entity.name.resource.terraform 86 | 2: storage.type.function.terraform 87 | 3: string.terraform punctuation.definition.string.begin.terraform 88 | 4: string.quoted.double.terraform 89 | 5: string.terraform punctuation.definition.string.end.terraform 90 | - match: ^\s*(locals|terraform)\s*{ 91 | captures: 92 | 1: storage.type.function.terraform 93 | push: 94 | - meta_content_scope: meta.block.terraform 95 | - match: '^\s*}' 96 | pop: true 97 | - include: main 98 | - match: '([\w_-]+)\s*(=)\s*' 99 | comment: Value assignments (left hand side not in double quotes) 100 | scope: meta.identifier.terraform 101 | captures: 102 | 1: variable.assignment.terraform 103 | 2: keyword.operator.terraform 104 | - match: '(")([\w_-]+)(")\s*(=)\s*' 105 | comment: Value assignments (left hand side in double quotes) 106 | scope: meta.identifier.terraform 107 | captures: 108 | 1: punctuation.quote.double.terraform 109 | 2: variable.assignment.terraform 110 | 3: punctuation.quote.double.terraform 111 | 4: keyword.operator.terraform 112 | - include: strings 113 | - include: operators 114 | - match: '\b(var|local|module|data|path|count)\b' 115 | scope: keyword.other.terraform 116 | - match: '\bnull\b' 117 | scope: variable.language.terraform 118 | strings: 119 | - match: '"' 120 | comment: Strings 121 | scope: punctuation.definition.string.begin.terraform 122 | push: 123 | - meta_scope: string.quoted.double.terraform 124 | - match: '"' 125 | scope: punctuation.definition.string.end.terraform 126 | pop: true 127 | - include: interpolation 128 | - include: string_placeholder 129 | - include: string_escaped_char 130 | - match: '<<(\w+)' 131 | scope: punctuation.definition.string.begin.terraform 132 | comment: Heredoc 133 | push: 134 | - meta_scope: string.heredoc.terraform 135 | - match: '^\1' 136 | scope: punctuation.definition.string.end.terraform 137 | pop: true 138 | - include: interpolation 139 | - match: <<-(\w+) 140 | scope: punctuation.definition.string.begin.terraform 141 | comment: Indented heredoc 142 | push: 143 | - meta_scope: string.heredoc.terraform 144 | - match: ^\s*\1 145 | scope: punctuation.definition.string.end.terraform 146 | pop: true 147 | - include: interpolation 148 | interpolation: 149 | - match: '\$\{' 150 | scope: punctuation.section.embed.begin.terraform 151 | push: 152 | - meta_scope: meta.embed.terraform 153 | - match: '\}' 154 | scope: punctuation.section.embed.end.terraform 155 | pop: true 156 | - include: interpolated_terraform 157 | interpolated_terraform: 158 | - include: variable_reference 159 | - include: function 160 | - include: operators 161 | - include: interpolation 162 | - include: strings 163 | function: 164 | - match: '(\w+)\(' 165 | comment: functions in interpolations 166 | captures: 167 | 1: support.function.terraform 168 | push: 169 | - include: variable_reference 170 | - include: function 171 | - include: main 172 | - match: '\)' 173 | pop: true 174 | operators: 175 | - match: '\?|:' 176 | scope: keyword.operator.conditional.terraform 177 | - match: '==|!=|>|<|>=|<=|&&|\|\||!' 178 | scope: keyword.operator.comparison.terraform 179 | - match: (%|&|\*|\+|\-|/) 180 | scope: keyword.operator.arithmetic.terraform 181 | variable_reference: 182 | - match: '\b(self|count|path|var|local)\b\.?' 183 | captures: 184 | 1: keyword.other.terraform 185 | string_placeholder: 186 | - match: |- 187 | (?x)% 188 | [#0\- +']* # flags 189 | (\[\d+\])? # field (argument #) 190 | [,;:_]? # separator character (AltiVec) 191 | ((-?\d+)|(\[\d+\])?\*)? # minimum field width 192 | (\.((-?\d+)|(\[\d+\])?\*)?)? # precision 193 | [diouxXDOUeEfFgGaAcCsSpqnvtTbyYhHmMzZ%] # conversion type 194 | scope: constant.other.placeholder.terraform 195 | - match: "%" 196 | scope: invalid.illegal.placeholder.terraform 197 | string_escaped_char: 198 | - match: '\\(\\|[abfnrutv''"]|x\h{2}|u\h{4}|U\h{8}|[0-7]{3})' 199 | scope: constant.character.escape.terraform 200 | - match: \\. 201 | scope: invalid.illegal.unknown-escape.terraform 202 | 203 | -------------------------------------------------------------------------------- /fmt.py: -------------------------------------------------------------------------------- 1 | import sublime 2 | import sublime_plugin 3 | 4 | import subprocess 5 | import io 6 | from os import path 7 | 8 | class TerraformFmtOnSave(sublime_plugin.EventListener): 9 | def on_pre_save(self, view): 10 | if not is_terraform_source(view): 11 | return 12 | 13 | view.run_command('terraform_fmt') 14 | 15 | 16 | class TerraformFmt(sublime_plugin.TextCommand): 17 | def is_enabled(self): 18 | settings = sublime.load_settings('Terraform.sublime-settings') 19 | fmt_enabled = settings.get('format_on_save', True) 20 | 21 | return fmt_enabled and is_terraform_source(self.view) and not is_var_file(self.view) 22 | 23 | 24 | def run(self, edit): 25 | res = self.run_fmt() 26 | if res is None: 27 | return 28 | 29 | # Replace the buffer with terraform fmt output. 30 | self.view.replace(edit, sublime.Region(0, self.view.size()), res) 31 | 32 | # Hide errors panel 33 | self.view.window().run_command('hide_panel', { 'panel': 'output.terraform_syntax_errors' }) 34 | 35 | 36 | def run_fmt(self): 37 | with self.popen_terraform_fmt() as p: 38 | stdout, stderr = [str(s, self.encoding()) for s in p.communicate(input=self.view_content_bytes())] 39 | 40 | # Something went wrong 41 | if p.returncode != 0: 42 | self.show_syntax_errors(stderr) 43 | return None 44 | 45 | return stdout 46 | 47 | 48 | def popen_terraform_fmt(self): 49 | cmd = sublime.load_settings('Terraform.sublime-settings').get('terraform_path', 'terraform') 50 | cwd = path.dirname(self.view.file_name()); 51 | 52 | return subprocess.Popen( 53 | [cmd, 'fmt', '-no-color', '-'], 54 | stdout=subprocess.PIPE, 55 | stderr=subprocess.PIPE, 56 | stdin=subprocess.PIPE, 57 | cwd=cwd) 58 | 59 | 60 | def view_content_bytes(self): 61 | region = sublime.Region(0, self.view.size()) 62 | buf = self.view.substr(region) 63 | return bytes(buf, self.encoding()) 64 | 65 | 66 | def encoding(self): 67 | enc = self.view.encoding() 68 | 69 | # When a selection is active the encoding is undefined. Fall back to utf-8 70 | # by default. 71 | if enc == "Undefined": 72 | return "UTF-8" 73 | 74 | return enc 75 | 76 | 77 | def show_syntax_errors(self, stderr): 78 | panel_name = 'terraform_syntax_errors' 79 | 80 | window = self.view.window() 81 | window.destroy_output_panel(panel_name) 82 | panel = window.create_output_panel(panel_name) 83 | panel.set_syntax_file('Packages/Text/Plain text.tmLanguage') 84 | panel.settings().set('line_numbers', False) 85 | panel.settings().set('result_file_regex', r'^\s*on (.+) line (\d+):') 86 | panel.settings().set('result_base_dir', path.dirname(self.view.file_name())) 87 | panel.set_scratch(True) 88 | panel.run_command('append', {'characters': stderr.replace('', path.basename(self.view.file_name()))}) 89 | panel.set_read_only(True) 90 | window.run_command('show_panel', { 'panel': 'output.' + panel_name }) 91 | 92 | 93 | def is_var_file(view): 94 | _, ext = path.splitext(view.file_name()) 95 | return ext == '.tfvars' 96 | 97 | 98 | def is_terraform_source(view): 99 | tp = 0 100 | sel = view.sel() 101 | if sel is not None: 102 | tp = sel[0].begin() 103 | 104 | return view.match_selector(tp, 'source.terraform') 105 | --------------------------------------------------------------------------------