scripts/inspectDocs/inspectDocs.go (519 lines of code) (raw):
package main
import (
"bufio"
"fmt"
"os"
"path/filepath"
"regexp"
"strings"
)
var TerraformProviderPath string
func main() {
if len(os.Args) < 2 {
fmt.Println("请传入一个参数:terraform项目地址")
os.Exit(1)
}
TerraformProviderPath = os.Args[1]
mp := make(map[string]string)
for k, v := range Mp {
mp[v] = k
}
dirPath := TerraformProviderPath + "/alibabacloudstack"
files, err := os.ReadDir(dirPath)
if err != nil {
fmt.Println("Error reading directory:", err)
return
}
for _, file := range files {
fullFilePath := filepath.Join(dirPath, file.Name())
if strings.HasSuffix(fullFilePath, "test.go") {
continue
}
if strings.HasSuffix(fullFilePath, ".go") {
processSource(fullFilePath)
}
}
//处理docs
dirPath = TerraformProviderPath + "/website/docs/d"
files, err = os.ReadDir(dirPath)
if err != nil {
fmt.Println("Error reading directory:", err)
return
}
for _, file := range files {
fullFilePath := filepath.Join(dirPath, file.Name())
processDocs(fullFilePath)
}
dirPath = TerraformProviderPath + "/website/docs/r"
files, err = os.ReadDir(dirPath)
if err != nil {
fmt.Println("Error reading directory:", err)
return
}
for _, file := range files {
fullFilePath := filepath.Join(dirPath, file.Name())
processDocs(fullFilePath)
}
// // 打印结果
// for _, s := range sources {
// fmt.Printf("Source name: %s\nFields: %v\n", s.name, s.field)
// fmt.Println()
// }
// for _, s := range docs {
// fmt.Printf("docs name: %s\nFields: %v\n", s.name, s.field)
// fmt.Println()
// }
for _, s := range sources {
filename := strings.TrimPrefix(s.filename, "../../")
doc, ok := mp[s.name]
if !ok {
fmt.Println("[失败] 文件:", filename, " 文档:")
continue
}
field_mp := make(map[string]interface{})
for i := 0; i < len(s.field); i++ {
field := s.field[i]
field_mp[field] = struct{}{}
}
var d *source = nil
for _, de := range docs {
if doc != de.name {
continue
}
d = de
for i := 0; i < len(d.field); i++ {
field := d.field[i]
delete(field_mp, field)
}
break
}
if d == nil {
fmt.Println("[失败] 文件:", filename, " 文档:")
continue
}
if len(field_mp) == 0 {
continue
}
docname := strings.TrimPrefix(d.filename, "../../")
fmt.Println("[失败] 文件:", filename, " 文档:", docname)
for k, _ := range field_mp {
fmt.Println(" 参数: ", k, " 缺少")
}
}
}
type source struct {
filename string
name string
field []string
}
var sources []*source
var docs []*source
var currentSource *source
var readingFields bool
func processSource(filePath string) {
file, err := os.Open(filePath)
if err != nil {
fmt.Println("Error opening file:", err)
return
}
defer file.Close()
scanner := bufio.NewScanner(file)
fieldRegex := regexp.MustCompile(`^\s*\"(\w+)\"`)
for scanner.Scan() {
line := scanner.Text()
heads := strings.Fields(line)
if len(heads) >= 4 && heads[2] == "*schema.Resource" && heads[3] == "{" {
readingFields = true
currentSource = &source{
name: heads[1][:len(heads[1])-2],
filename: filePath,
}
sources = append(sources, currentSource)
} else if readingFields {
line = strings.TrimSpace(line) // 去除每行的空格
if len(line) == 0 { // 忽略空行
continue
}
if strings.HasSuffix(line, "{") {
matches := fieldRegex.FindStringSubmatch(line)
if len(matches) > 1 {
currentSource.field = append(currentSource.field, matches[1])
}
}
if strings.HasSuffix(line, "}") {
readingFields = false
}
}
}
if err := scanner.Err(); err != nil {
fmt.Println("Error reading file:", err)
}
}
func processDocs(filePath string) {
fieldPattern := regexp.MustCompile(`^\*\s*` + "`" + `([^` + "`" + `]+)` + "`")
file, err := os.Open(filePath)
if err != nil {
panic(err)
}
defer file.Close()
scanner := bufio.NewScanner(file)
var newSource *source
for scanner.Scan() {
line := strings.TrimSpace(scanner.Text())
if strings.HasPrefix(line, "# alibabacloudstack") {
newSource = &source{
name: strings.ReplaceAll(line, "\\_", "_"),
filename: filePath,
}
newSource.name = strings.TrimPrefix(newSource.name, "# ")
docs = append(docs, newSource)
} else if matches := fieldPattern.FindStringSubmatch(line); matches != nil {
// 使用正则表达式匹配和提取字段名称
if len(matches) > 1 {
// 第一个捕获组是我们感兴趣的字段名
fieldName := matches[1]
// 确保docs不为空
if len(docs) > 0 {
// 添加字段到最新的source实例
docs[len(docs)-1].field = append(docs[len(docs)-1].field, fieldName)
}
}
}
}
if err := scanner.Err(); err != nil {
panic(err)
}
}
var Mp = map[string]string{
"alibabacloudstack_account": "dataSourceAlibabacloudStackAccount",
"alibabacloudstack_adb_clusters": "dataSourceAlibabacloudStackAdbDbClusters",
"alibabacloudstack_adb_zones": "dataSourceAlibabacloudStackAdbZones",
"alibabacloudstack_adb_db_clusters": "dataSourceAlibabacloudStackAdbDbClusters",
"alibabacloudstack_api_gateway_apis": "dataSourceAlibabacloudStackApiGatewayApis",
"alibabacloudstack_api_gateway_apps": "dataSourceAlibabacloudStackApiGatewayApps",
"alibabacloudstack_api_gateway_groups": "dataSourceAlibabacloudStackApiGatewayGroups",
"alibabacloudstack_api_gateway_service": "dataSourceAlibabacloudStackApiGatewayService",
"alibabacloudstack_ascm_resource_groups": "dataSourceAlibabacloudStackAscmResourceGroups",
"alibabacloudstack_ascm_users": "dataSourceAlibabacloudStackAscmUsers",
"alibabacloudstack_ascm_user_groups": "dataSourceAlibabacloudStackAscmUserGroups",
"alibabacloudstack_ascm_logon_policies": "dataSourceAlibabacloudStackAscmLogonPolicies",
"alibabacloudstack_ascm_ram_service_roles": "dataSourceAlibabacloudStackAscmRamServiceRoles",
"alibabacloudstack_ascm_organizations": "dataSourceAlibabacloudStackAscmOrganizations",
"alibabacloudstack_ascm_instance_families": "dataSourceAlibabacloudStackInstanceFamilies",
"alibabacloudstack_ascm_regions_by_product": "dataSourceAlibabacloudStackRegionsByProduct",
"alibabacloudstack_ascm_service_cluster_by_product": "dataSourceAlibabacloudStackServiceClusterByProduct",
"alibabacloudstack_ascm_ecs_instance_families": "dataSourceAlibabacloudStackEcsInstanceFamilies",
"alibabacloudstack_ascm_specific_fields": "dataSourceAlibabacloudStackSpecificFields",
"alibabacloudstack_ascm_environment_services_by_product": "dataSourceAlibabacloudStackAscmEnvironmentServicesByProduct",
"alibabacloudstack_ascm_password_policies": "dataSourceAlibabacloudStackAscmPasswordPolicies",
"alibabacloudstack_ascm_quotas": "dataSourceAlibabacloudStackQuotas",
"alibabacloudstack_ascm_metering_query_ecs": "dataSourceAlibabacloudstackAscmMeteringQueryEcs",
"alibabacloudstack_ascm_roles": "dataSourceAlibabacloudStackAscmRoles",
"alibabacloudstack_ascm_ram_policies": "dataSourceAlibabacloudStackAscmRamPolicies",
"alibabacloudstack_ascm_ram_policies_for_user": "dataSourceAlibabacloudStackAscmRamPoliciesForUser",
"alibabacloudstack_common_bandwidth_packages": "dataSourceAlibabacloudStackCommonBandwidthPackages",
"alibabacloudstack_cr_ee_instances": "dataSourceAlibabacloudStackCrEeInstances",
"alibabacloudstack_cr_ee_namespaces": "dataSourceAlibabacloudStackCrEeNamespaces",
"alibabacloudstack_cr_ee_repos": "dataSourceAlibabacloudStackCrEeRepos",
"alibabacloudstack_cr_ee_sync_rules": "dataSourceAlibabacloudStackCrEeSyncRules",
"alibabacloudstack_cr_namespaces": "dataSourceAlibabacloudStackCRNamespaces",
"alibabacloudstack_cr_repos": "dataSourceAlibabacloudStackCRRepos",
"alibabacloudstack_cs_kubernetes_clusters": "dataSourceAlibabacloudStackCSKubernetesClusters",
"alibabacloudstack_cms_alarm_contacts": "dataSourceAlibabacloudstackCmsAlarmContacts",
"alibabacloudstack_cms_alarm_contact_groups": "dataSourceAlibabacloudstackCmsAlarmContactGroups",
"alibabacloudstack_cms_project_meta": "dataSourceAlibabacloudstackCmsProjectMeta",
"alibabacloudstack_cms_metric_metalist": "dataSourceAlibabacloudstackCmsMetricMetalist",
"alibabacloudstack_cms_alarms": "dataSourceAlibabacloudstackCmsAlarms",
"alibabacloudstack_datahub_service": "dataSourceAlibabacloudStackDatahubService",
"alibabacloudstack_db_instances": "dataSourceAlibabacloudStackDBInstances",
"alibabacloudstack_db_zones": "dataSourceAlibabacloudStackDBZones",
"alibabacloudstack_disks": "dataSourceAlibabacloudStackDisks",
"alibabacloudstack_dns_records": "dataSourceAlibabacloudStackDnsRecords",
"alibabacloudstack_dns_groups": "dataSourceAlibabacloudStackDnsGroups",
"alibabacloudstack_drds_instances": "dataSourceAlibabacloudStackDRDSInstances",
"alibabacloudstack_dms_enterprise_instances": "dataSourceAlibabacloudStackDmsEnterpriseInstances",
"alibabacloudstack_dms_enterprise_users": "dataSourceAlibabacloudStackDmsEnterpriseUsers",
"alibabacloudstack_ecs_commands": "dataSourceAlibabacloudStackEcsCommands",
"alibabacloudstack_ecs_deployment_sets": "dataSourceAlibabacloudStackEcsDeploymentSets",
"alibabacloudstack_ecs_hpc_clusters": "dataSourceAlibabacloudStackEcsHpcClusters",
"alibabacloudstack_ecs_dedicated_hosts": "dataSourceAlibabacloudStackEcsDedicatedHosts",
"alibabacloudstack_edas_deploy_groups": "dataSourceAlibabacloudStackEdasDeployGroups",
"alibabacloudstack_edas_clusters": "dataSourceAlibabacloudStackEdasClusters",
"alibabacloudstack_edas_applications": "dataSourceAlibabacloudStackEdasApplications",
"alibabacloudstack_eips": "dataSourceAlibabacloudStackEips",
"alibabacloudstack_ess_scaling_configurations": "dataSourceAlibabacloudStackEssScalingConfigurations",
"alibabacloudstack_ess_scaling_groups": "dataSourceAlibabacloudStackEssScalingGroups",
"alibabacloudstack_ess_lifecycle_hooks": "dataSourceAlibabacloudStackEssLifecycleHooks",
"alibabacloudstack_ess_notifications": "dataSourceAlibabacloudStackEssNotifications",
"alibabacloudstack_ess_scaling_rules": "dataSourceAlibabacloudStackEssScalingRules",
"alibabacloudstack_ess_scheduled_tasks": "dataSourceAlibabacloudStackEssScheduledTasks",
"alibabacloudstack_forward_entries": "dataSourceAlibabacloudStackForwardEntries",
"alibabacloudstack_gpdb_accounts": "dataSourceAlibabacloudStackGpdbAccounts",
"alibabacloudstack_gpdb_instances": "dataSourceAlibabacloudStackGpdbInstances",
"alibabacloudstack_hbase_instances": "dataSourceAlibabacloudStackHBaseInstances",
"alibabacloudstack_instances": "dataSourceAlibabacloudStackInstances",
"alibabacloudstack_instance_type_families": "dataSourceAlibabacloudStackInstanceTypeFamilies",
"alibabacloudstack_instance_types": "dataSourceAlibabacloudStackInstanceTypes",
"alibabacloudstack_images": "dataSourceAlibabacloudStackImages",
"alibabacloudstack_key_pairs": "dataSourceAlibabacloudStackKeyPairs",
"alibabacloudstack_kms_aliases": "dataSourceAlibabacloudStackKmsAliases",
"alibabacloudstack_kms_ciphertext": "dataSourceAlibabacloudStackKmsCiphertext",
"alibabacloudstack_kms_keys": "dataSourceAlibabacloudStackKmsKeys",
"alibabacloudstack_kms_secrets": "dataSourceAlibabacloudStackKmsSecrets",
"alibabacloudstack_kvstore_instances": "dataSourceAlibabacloudStackKVStoreInstances",
"alibabacloudstack_kvstore_zones": "dataSourceAlibabacloudStackKVStoreZones",
"alibabacloudstack_kvstore_instance_classes": "dataSourceAlibabacloudStackKVStoreInstanceClasses",
"alibabacloudstack_kvstore_instance_engines": "dataSourceAlibabacloudStackKVStoreInstanceEngines",
"alibabacloudstack_mongodb_instances": "dataSourceAlibabacloudStackMongoDBInstances",
"alibabacloudstack_mongodb_zones": "dataSourceAlibabacloudStackMongoDBZones",
"alibabacloudstack_maxcompute_cus": "dataSourceAlibabacloudStackMaxcomputeCus",
"alibabacloudstack_maxcompute_users": "dataSourceAlibabacloudStackMaxcomputeUsers",
"alibabacloudstack_maxcompute_clusters": "dataSourceAlibabacloudStackMaxcomputeClusters",
"alibabacloudstack_maxcompute_cluster_qutaos": "dataSourceAlibabacloudStackMaxcomputeClusterQutaos",
"alibabacloudstack_maxcompute_projects": "dataSourceAlibabacloudStackMaxcomputeProjects",
"alibabacloudstack_nas_zones": "dataSourceAlibabacloudStackNasZones",
"alibabacloudstack_nas_protocols": "dataSourceAlibabacloudStackNasProtocols",
"alibabacloudstack_nas_file_systems": "dataSourceAlibabacloudStackFileSystems",
"alibabacloudstack_nas_mount_targets": "dataSourceAlibabacloudStackNasMountTargets",
"alibabacloudstack_nas_access_rules": "dataSourceAlibabacloudStackAccessRules",
"alibabacloudstack_nat_gateways": "dataSourceAlibabacloudStackNatGateways",
"alibabacloudstack_network_acls": "dataSourceAlibabacloudStackNetworkAcls",
"alibabacloudstack_network_interfaces": "dataSourceAlibabacloudStackNetworkInterfaces",
"alibabacloudstack_oss_buckets": "dataSourceAlibabacloudStackOssBuckets",
"alibabacloudstack_oss_bucket_objects": "dataSourceAlibabacloudStackOssBucketObjects",
"alibabacloudstack_ons_instances": "dataSourceAlibabacloudStackOnsInstances",
"alibabacloudstack_ons_topics": "dataSourceAlibabacloudStackOnsTopics",
"alibabacloudstack_ons_groups": "dataSourceAlibabacloudStackOnsGroups",
"alibabacloudstack_ots_tables": "dataSourceAlibabacloudStackOtsTables",
"alibabacloudstack_ots_instances": "dataSourceAlibabacloudStackOtsInstances",
"alibabacloudstack_ots_instances_attachment": "dataSourceAlibabacloudStackOtsInstanceAttachments",
"alibabacloudstack_ots_service": "dataSourceAlibabacloudStackOtsService",
"alibabacloudstack_quick_bi_users": "dataSourceAlibabacloudStackQuickBiUsers",
"alibabacloudstack_router_interfaces": "dataSourceAlibabacloudStackRouterInterfaces",
"alibabacloudstack_ram_service_role_products": "dataSourceAlibabacloudstackRamServiceRoleProducts",
"alibabacloudstack_route_tables": "dataSourceAlibabacloudStackRouteTables",
"alibabacloudstack_route_entries": "dataSourceAlibabacloudStackRouteEntries",
"alibabacloudstack_ros_stacks": "dataSourceAlibabacloudStackRosStacks",
"alibabacloudstack_ros_templates": "dataSourceAlibabacloudStackRosTemplates",
"alibabacloudstack_security_groups": "dataSourceAlibabacloudStackSecurityGroups",
"alibabacloudstack_security_group_rules": "dataSourceAlibabacloudStackSecurityGroupRules",
"alibabacloudstack_snapshots": "dataSourceAlibabacloudStackSnapshots",
"alibabacloudstack_slb_listeners": "dataSourceAlibabacloudStackSlbListeners",
"alibabacloudstack_slb_server_groups": "dataSourceAlibabacloudStackSlbServerGroups",
"alibabacloudstack_slb_acls": "dataSourceAlibabacloudStackSlbAcls",
"alibabacloudstack_slb_domain_extensions": "dataSourceAlibabacloudStackSlbDomainExtensions",
"alibabacloudstack_slb_rules": "dataSourceAlibabacloudStackSlbRules",
"alibabacloudstack_slb_master_slave_server_groups": "dataSourceAlibabacloudStackSlbMasterSlaveServerGroups",
"alibabacloudstack_slbs": "dataSourceAlibabacloudStackSlbs",
"alibabacloudstack_slb_zones": "dataSourceAlibabacloudStackSlbZones",
"alibabacloudstack_snat_entries": "dataSourceAlibabacloudStackSnatEntries",
"alibabacloudstack_slb_server_certificates": "dataSourceAlibabacloudStackSlbServerCertificates",
"alibabacloudstack_slb_ca_certificates": "dataSourceAlibabacloudStackSlbCACertificates",
"alibabacloudstack_slb_backend_servers": "dataSourceAlibabacloudStackSlbBackendServers",
"alibabacloudstack_tsdb_zones": "dataSourceAlibabacloudStackTsdbZones",
"alibabacloudstack_vpn_gateways": "dataSourceAlibabacloudStackVpnGateways",
"alibabacloudstack_vpn_customer_gateways": "dataSourceAlibabacloudStackVpnCustomerGateways",
"alibabacloudstack_vpn_connections": "dataSourceAlibabacloudStackVpnConnections",
"alibabacloudstack_vpc_ipv6_gateways": "dataSourceAlibabacloudStackVpcIpv6Gateways",
"alibabacloudstack_vpc_ipv6_egress_rules": "dataSourceAlibabacloudStackVpcIpv6EgressRules",
"alibabacloudstack_vpc_ipv6_addresses": "dataSourceAlibabacloudStackVpcIpv6Addresses",
"alibabacloudstack_vpc_ipv6_internet_bandwidths": "dataSourceAlibabacloudStackVpcIpv6InternetBandwidths",
"alibabacloudstack_vswitches": "dataSourceAlibabacloudStackVSwitches",
"alibabacloudstack_vpcs": "dataSourceAlibabacloudStackVpcs",
"alibabacloudstack_zones": "dataSourceAlibabacloudStackZones",
"alibabacloudstack_elasticsearch_instances": "dataSourceAlibabacloudStackElasticsearch",
"alibabacloudstack_elasticsearch_zones": "dataSourceAlibabacloudStackElaticsearchZones",
"alibabacloudstack_ehpc_job_templates": "dataSourceAlibabacloudStackEhpcJobTemplates",
"alibabacloudstack_oos_executions": "dataSourceAlibabacloudStackOosExecutions",
"alibabacloudstack_oos_templates": "dataSourceAlibabacloudStackOosTemplates",
"alibabacloudstack_express_connect_physical_connections": "dataSourceAlibabacloudStackExpressConnectPhysicalConnections",
"alibabacloudstack_express_connect_access_points": "dataSourceAlibabacloudStackExpressConnectAccessPoints",
"alibabacloudstack_express_connect_virtual_border_routers": "dataSourceAlibabacloudStackExpressConnectVirtualBorderRouters",
"alibabacloudStack_cloud_firewall_control_policies": "dataSourceAlibabacloudStackCloudFirewallControlPolicies",
"alibabacloudstack_ecs_ebs_storage_sets": "dataSourceAlibabacloudStackEcsEbsStorageSets",
"alibabacloudstack_ess_scaling_configuration": "resourceAlibabacloudStackEssScalingConfiguration",
"alibabacloudstack_adb_account": "resourceAlibabacloudStackAdbAccount",
"alibabacloudstack_adb_backup_policy": "resourceAlibabacloudStackAdbBackupPolicy",
"alibabacloudstack_adb_cluster": "resourceAlibabacloudStackAdbDbCluster",
"alibabacloudstack_adb_connection": "resourceAlibabacloudStackAdbConnection",
"alibabacloudstack_adb_db_cluster": "resourceAlibabacloudStackAdbDbCluster",
"alibabacloudstack_alikafka_sasl_acl": "resourceAlibabacloudStackAlikafkaSaslAcl",
"alibabacloudstack_alikafka_sasl_user": "resourceAlibabacloudStackAlikafkaSaslUser",
"alibabacloudstack_alikafka_topic": "resourceAlibabacloudStackAlikafkaTopic",
"alibabacloudstack_api_gateway_api": "resourceAlibabacloudStackApigatewayApi",
"alibabacloudstack_api_gateway_app": "resourceAlibabacloudStackApigatewayApp",
"alibabacloudstack_api_gateway_app_attachment": "resourceAliyunApigatewayAppAttachment",
"alibabacloudstack_api_gateway_group": "resourceAlibabacloudStackApigatewayGroup",
"alibabacloudstack_api_gateway_vpc_access": "resourceAlibabacloudStackApigatewayVpc",
"alibabacloudstack_application_deployment": "resourceAlibabacloudStackEdasApplicationPackageAttachment",
"alibabacloudstack_ascm_custom_role": "resourceAlibabacloudStackAscmRole",
"alibabacloudstack_ascm_logon_policy": "resourceAlibabacloudStackLogonPolicy",
"alibabacloudstack_ascm_organization": "resourceAlibabacloudStackAscmOrganization",
"alibabacloudstack_ascm_password_policy": "resourceAlibabacloudStackAscmPasswordPolicy",
"alibabacloudstack_ascm_quota": "resourceAlibabacloudStackAscmQuota",
"alibabacloudstack_ascm_ram_policy": "resourceAlibabacloudStackAscmRamPolicy",
"alibabacloudstack_ascm_ram_policy_for_role": "resourceAlibabacloudStackAscmRamPolicyForRole",
"alibabacloudstack_ascm_ram_role": "resourceAlibabacloudStackAscmRamRole",
"alibabacloudstack_ascm_resource_group": "resourceAlibabacloudStackAscmResourceGroup",
"alibabacloudstack_ascm_user": "resourceAlibabacloudStackAscmUser",
"alibabacloudstack_ascm_user_group": "resourceAlibabacloudStackAscmUserGroup",
"alibabacloudstack_ascm_user_group_resource_set_binding": "resourceAlibabacloudStackAscmUserGroupResourceSetBinding",
"alibabacloudstack_ascm_user_group_role_binding": "resourceAlibabacloudStackAscmUserGroupRoleBinding",
"alibabacloudstack_ascm_user_role_binding": "resourceAlibabacloudStackAscmUserRoleBinding",
"alibabacloudstack_ascm_usergroup_user": "resourceAlibabacloudStackAscmUserGroupUser",
"alibabacloudstack_cms_alarm": "resourceAlibabacloudStackCmsAlarm",
"alibabacloudstack_cms_alarm_contact": "resourceAlibabacloudstackCmsAlarmContact",
"alibabacloudstack_cms_alarm_contact_group": "resourceAlibabacloudstackCmsAlarmContactGroup",
"alibabacloudstack_cms_site_monitor": "resourceAlibabacloudStackCmsSiteMonitor",
"alibabacloudstack_common_bandwidth_package": "resourceAlibabacloudStackCommonBandwidthPackage",
"alibabacloudstack_common_bandwidth_package_attachment": "resourceAlibabacloudStackCommonBandwidthPackageAttachment",
"alibabacloudstack_cr_ee_namespace": "resourceAlibabacloudStackCrEeNamespace",
"alibabacloudstack_cr_ee_repo": "resourceAlibabacloudStackCrEeRepo",
"alibabacloudstack_cr_ee_sync_rule": "resourceAlibabacloudStackCrEeSyncRule",
"alibabacloudstack_cr_namespace": "resourceAlibabacloudStackCRNamespace",
"alibabacloudstack_cr_repo": "resourceAlibabacloudStackCRRepo",
"alibabacloudstack_cs_kubernetes": "resourceAlibabacloudStackCSKubernetes",
"alibabacloudstack_cs_kubernetes_node_pool": "resourceAlibabacloudStackCSKubernetesNodePool",
"alibabacloudstack_datahub_project": "resourceAlibabacloudStackDatahubProject",
"alibabacloudstack_datahub_subscription": "resourceAlibabacloudStackDatahubSubscription",
"alibabacloudstack_datahub_topic": "resourceAlibabacloudStackDatahubTopic",
"alibabacloudstack_db_account": "resourceAlibabacloudStackDBAccount",
"alibabacloudstack_db_account_privilege": "resourceAlibabacloudStackDBAccountPrivilege",
"alibabacloudstack_db_backup_policy": "resourceAlibabacloudStackDBBackupPolicy",
"alibabacloudstack_db_connection": "resourceAlibabacloudStackDBConnection",
"alibabacloudstack_db_database": "resourceAlibabacloudStackDBDatabase",
"alibabacloudstack_db_instance": "resourceAlibabacloudStackDBInstance",
"alibabacloudstack_db_read_write_splitting_connection": "resourceAlibabacloudStackDBReadWriteSplittingConnection",
"alibabacloudstack_db_readonly_instance": "resourceAlibabacloudStackDBReadonlyInstance",
"alibabacloudstack_disk": "resourceAlibabacloudStackDisk",
"alibabacloudstack_disk_attachment": "resourceAlibabacloudStackDiskAttachment",
"alibabacloudstack_dms_enterprise_instance": "resourceAlibabacloudStackDmsEnterpriseInstance",
"alibabacloudstack_dms_enterprise_user": "resourceAlibabacloudStackDmsEnterpriseUser",
"alibabacloudstack_dns_domain": "resourceAlibabacloudStackDnsDomain",
"alibabacloudstack_dns_domain_attachment": "resourceAlibabacloudStackDnsDomainAttachment",
"alibabacloudstack_dns_group": "resourceAlibabacloudStackDnsGroup",
"alibabacloudstack_dns_record": "resourceAlibabacloudStackDnsRecord",
"alibabacloudstack_drds_instance": "resourceAlibabacloudStackDRDSInstance",
"alibabacloudstack_dts_subscription_job": "resourceAlibabacloudStackDtsSubscriptionJob",
"alibabacloudstack_dts_synchronization_instance": "resourceAlibabacloudStackDtsSynchronizationInstance",
"alibabacloudstack_dts_synchronization_job": "resourceAlibabacloudStackDtsSynchronizationJob",
"alibabacloudstack_ecs_command": "resourceAlibabacloudStackEcsCommand",
"alibabacloudstack_ecs_dedicated_host": "resourceAlibabacloudStackEcsDedicatedHost",
"alibabacloudstack_ecs_deployment_set": "resourceAlibabacloudStackEcsDeploymentSet",
"alibabacloudstack_ecs_hpc_cluster": "resourceAlibabacloudStackEcsHpcCluster",
"alibabacloudstack_ecs_ebs_storage_set": "resourceAlibabacloudStackEcsEbsStorageSets",
"alibabacloudstack_edas_application": "resourceAlibabacloudStackEdasApplication",
"alibabacloudstack_edas_application_scale": "resourceAlibabacloudStackEdasInstanceApplicationAttachment",
"alibabacloudstack_edas_cluster": "resourceAlibabacloudStackEdasCluster",
"alibabacloudstack_edas_deploy_group": "resourceAlibabacloudStackEdasDeployGroup",
"alibabacloudstack_edas_instance_cluster_attachment": "resourceAlibabacloudStackEdasInstanceClusterAttachment",
"alibabacloudstack_edas_k8s_application": "resourceAlibabacloudStackEdasK8sApplication",
"alibabacloudstack_edas_k8s_cluster": "resourceAlibabacloudStackEdasK8sCluster",
"alibabacloudstack_edas_slb_attachment": "resourceAlibabacloudStackEdasSlbAttachment",
"alibabacloudstack_ehpc_job_template": "resourceAlibabacloudStackEhpcJobTemplate",
"alibabacloudstack_eip": "resourceAlibabacloudStackEip",
"alibabacloudstack_eip_association": "resourceAlibabacloudStackEipAssociation",
"alibabacloudstack_ess_alarm": "resourceAlibabacloudStackEssAlarm",
"alibabacloudstack_ess_attachment": "resourceAlibabacloudstackEssAttachment",
"alibabacloudstack_ess_lifecycle_hook": "resourceAlibabacloudStackEssLifecycleHook",
"alibabacloudstack_ess_notification": "resourceAlibabacloudStackEssNotification",
"alibabacloudstack_ess_scaling_group": "resourceAlibabacloudStackEssScalingGroup",
"alibabacloudstack_ess_scaling_rule": "resourceAlibabacloudStackEssScalingRule",
"alibabacloudstack_ess_scalinggroup_vserver_groups": "resourceAlibabacloudStackEssScalingGroupVserverGroups",
"alibabacloudstack_ess_scheduled_task": "resourceAlibabacloudStackEssScheduledTask",
"alibabacloudstack_forward_entry": "resourceAlibabacloudStackForwardEntry",
"alibabacloudstack_gpdb_account": "resourceAlibabacloudStackGpdbAccount",
"alibabacloudstack_gpdb_connection": "resourceAlibabacloudStackGpdbConnection",
"alibabacloudstack_gpdb_instance": "resourceAlibabacloudStackGpdbInstance",
"alibabacloudstack_hbase_instance": "resourceAlibabacloudStackHBaseInstance",
"alibabacloudstack_image": "resourceAlibabacloudStackImage",
"alibabacloudstack_image_copy": "resourceAlibabacloudStackImageCopy",
"alibabacloudstack_image_export": "resourceAlibabacloudStackImageExport",
"alibabacloudstack_image_import": "resourceAlibabacloudStackImageImport",
"alibabacloudstack_image_share_permission": "resourceAlibabacloudStackImageSharePermission",
"alibabacloudstack_instance": "resourceAlibabacloudStackInstance",
"alibabacloudstack_key_pair": "resourceAlibabacloudStackKeyPair",
"alibabacloudstack_key_pair_attachment": "resourceAlibabacloudStackKeyPairAttachment",
"alibabacloudstack_kms_alias": "resourceAlibabacloudStackKmsAlias",
// "alibabacloudstack_kms_ciphertext": "resourceAlibabacloudStackKmsCiphertext",
"alibabacloudstack_kms_key": "resourceAlibabacloudStackKmsKey",
"alibabacloudstack_kms_secret": "resourceAlibabacloudStackKmsSecret",
"alibabacloudstack_kvstore_account": "resourceAlibabacloudStackKVstoreAccount",
"alibabacloudstack_kvstore_backup_policy": "resourceAlibabacloudStackKVStoreBackupPolicy",
"alibabacloudstack_kvstore_connection": "resourceAlibabacloudStackKvstoreConnection",
"alibabacloudstack_kvstore_instance": "resourceAlibabacloudStackKVStoreInstance",
"alibabacloudstack_launch_template": "resourceAlibabacloudStackLaunchTemplate",
"alibabacloudstack_log_machine_group": "resourceAlibabacloudStackLogMachineGroup",
"alibabacloudstack_log_project": "resourceAlibabacloudStackLogProject",
"alibabacloudstack_log_store": "resourceAlibabacloudStackLogStore",
"alibabacloudstack_log_store_index": "resourceAlibabacloudStackLogStoreIndex",
"alibabacloudstack_logtail_attachment": "resourceAlibabacloudStackLogtailAttachment",
"alibabacloudstack_logtail_config": "resourceAlibabacloudStackLogtailConfig",
"alibabacloudstack_maxcompute_project": "resourceAlibabacloudStackMaxcomputeProject",
"alibabacloudstack_maxcompute_user": "resourceAlibabacloudStackMaxcomputeUser",
"alibabacloudstack_maxcompute_cu": "resourceAlibabacloudStackMaxcomputeCu",
"alibabacloudstack_mongodb_instance": "resourceAlibabacloudStackMongoDBInstance",
"alibabacloudstack_mongodb_sharding_instance": "resourceAlibabacloudStackMongoDBShardingInstance",
"alibabacloudstack_nas_access_group": "resourceAlibabacloudStackNasAccessGroup",
"alibabacloudstack_nas_access_rule": "resourceAlibabacloudStackNasAccessRule",
"alibabacloudstack_nas_file_system": "resourceAlibabacloudStackNasFileSystem",
"alibabacloudstack_nas_mount_target": "resourceAlibabacloudStackNasMountTarget",
"alibabacloudstack_nat_gateway": "resourceAlibabacloudStackNatGateway",
"alibabacloudstack_network_acl": "resourceAlibabacloudStackNetworkAcl",
"alibabacloudstack_network_acl_attachment": "resourceAlibabacloudStackNetworkAclAttachment",
"alibabacloudstack_network_acl_entries": "resourceAlibabacloudStackNetworkAclEntries",
"alibabacloudstack_network_interface": "resourceAlibabacloudStackNetworkInterface",
"alibabacloudstack_network_interface_attachment": "resourceNetworkInterfaceAttachment",
"alibabacloudstack_ons_group": "resourceAlibabacloudStackOnsGroup",
"alibabacloudstack_ons_instance": "resourceAlibabacloudStackOnsInstance",
"alibabacloudstack_ons_topic": "resourceAlibabacloudStackOnsTopic",
"alibabacloudstack_oss_bucket": "resourceAlibabacloudStackOssBucket",
"alibabacloudstack_oss_bucket_quota": "resourceAlibabacloudStackOssBucketQuota",
"alibabacloudstack_oss_bucket_kms": "resourceAlibabacloudStackOssBucketKms",
"alibabacloudstack_oss_bucket_object": "resourceAlibabacloudStackOssBucketObject",
"alibabacloudstack_ots_instance": "resourceAlibabacloudStackOtsInstance",
"alibabacloudstack_ots_instance_attachment": "resourceAlibabacloudStackOtsInstanceAttachment",
"alibabacloudstack_ots_table": "resourceAlibabacloudStackOtsTable",
"alibabacloudstack_quick_bi_user": "resourceAlibabacloudStackQuickBiUser",
"alibabacloudstack_quick_bi_user_group": "resourceAlibabacloudStackQuickBiUserGroup",
"alibabacloudstack_quick_bi_workspace": "resourceAlibabacloudStackQuickBiWorkspace",
"alibabacloudstack_ram_role_attachment": "resourceAlibabacloudStackRamRoleAttachment",
"alibabacloudstack_reserved_instance": "resourceAlibabacloudStackReservedInstance",
"alibabacloudstack_ros_stack": "resourceAlibabacloudStackRosStack",
"alibabacloudstack_ros_template": "resourceAlibabacloudStackRosTemplate",
"alibabacloudstack_route_entry": "resourceAlibabacloudStackRouteEntry",
"alibabacloudstack_route_table": "resourceAlibabacloudStackRouteTable",
"alibabacloudstack_route_table_attachment": "resourceAlibabacloudStackRouteTableAttachment",
"alibabacloudstack_router_interface": "resourceAlibabacloudStackRouterInterface",
"alibabacloudstack_router_interface_connection": "resourceAlibabacloudStackRouterInterfaceConnection",
"alibabacloudstack_security_group": "resourceAlibabacloudStackSecurityGroup",
"alibabacloudstack_security_group_rule": "resourceAlibabacloudStackSecurityGroupRule",
"alibabacloudstack_slb": "resourceAlibabacloudStackSlb",
"alibabacloudstack_slb_acl": "resourceAlibabacloudStackSlbAcl",
"alibabacloudstack_slb_backend_server": "resourceAlibabacloudStackSlbBackendServer",
"alibabacloudstack_slb_ca_certificate": "resourceAlibabacloudStackSlbCACertificate",
"alibabacloudstack_slb_domain_extension": "resourceAlibabacloudStackSlbDomainExtension",
"alibabacloudstack_slb_listener": "resourceAlibabacloudStackSlbListener",
"alibabacloudstack_slb_master_slave_server_group": "resourceAlibabacloudStackSlbMasterSlaveServerGroup",
"alibabacloudstack_slb_rule": "resourceAlibabacloudStackSlbRule",
"alibabacloudstack_slb_server_certificate": "resourceAlibabacloudStackSlbServerCertificate",
"alibabacloudstack_slb_server_group": "resourceAlibabacloudStackSlbServerGroup",
"alibabacloudstack_snapshot": "resourceAlibabacloudStackSnapshot",
"alibabacloudstack_snapshot_policy": "resourceAlibabacloudStackSnapshotPolicy",
"alibabacloudstack_snat_entry": "resourceAlibabacloudStackSnatEntry",
"alibabacloudstack_vpc": "resourceAlibabacloudStackVpc",
"alibabacloudstack_vpc_ipv6_egress_rule": "resourceAlibabacloudStackVpcIpv6EgressRule",
"alibabacloudstack_vpc_ipv6_gateway": "resourceAlibabacloudStackVpcIpv6Gateway",
"alibabacloudstack_vpc_ipv6_internet_bandwidth": "resourceAlibabacloudStackVpcIpv6InternetBandwidth",
"alibabacloudstack_vpn_connection": "resourceAlibabacloudStackVpnConnection",
"alibabacloudstack_vpn_customer_gateway": "resourceAlibabacloudStackVpnCustomerGateway",
"alibabacloudstack_vpn_gateway": "resourceAlibabacloudStackVpnGateway",
"alibabacloudstack_vpn_route_entry": "resourceAlibabacloudStackVpnRouteEntry",
"alibabacloudstack_vswitch": "resourceAlibabacloudStackSwitch",
"alibabacloudstack_data_works_folder": "resourceAlibabacloudStackDataWorksFolder",
"alibabacloudstack_data_works_connection": "resourceAlibabacloudStackDataWorksConnection",
"alibabacloudstack_data_works_user": "resourceAlibabacloudStackDataWorksUser",
"alibabacloudstack_data_works_project": "resourceAlibabacloudStackDataWorksProject",
"alibabacloudstack_data_works_user_role_binding": "resourceAlibabacloudStackDataWorksUserRoleBinding",
"alibabacloudstack_data_works_remind": "resourceAlibabacloudStackDataWorksRemind",
"alibabacloudstack_elasticsearch_instance": "resourceAlibabacloudStackElasticsearch",
"alibabacloudstack_dbs_backup_plan": "resourceAlibabacloudStackDbsBackupPlan",
"alibabacloudstack_express_connect_physical_connection": "resourceAlibabacloudStackExpressConnectPhysicalConnection",
"alibabacloudstack_express_connect_virtual_border_router": "resourceAlibabacloudStackExpressConnectVirtualBorderRouter",
"alibabacloudstack_oos_template": "resourceAlibabacloudStackOosTemplate",
"alibabacloudstack_oos_execution": "resourceAlibabacloudStackOosExecution",
"alibabacloudstack_arms_alert_contact": "resourceAlibabacloudStackArmsAlertContact",
"alibabacloudstack_arms_alert_contact_group": "resourceAlibabacloudStackArmsAlertContactGroup",
"alibabacloudstack_arms_dispatch_rule": "resourceAlibabacloudStackArmsDispatchRule",
"alibabacloudstack_arms_prometheus_alert_rule": "resourceAlibabacloudStackArmsPrometheusAlertRule",
"alibabacloudstack_elasticsearch_k8s_instance": "resourceAlibabacloudStackElasticsearchOnk8s",
"alibabacloudstack_cloud_firewall_control_policy": "resourceAlibabacloudStackCloudFirewallControlPolicy",
"alibabacloudstack_cloud_firewall_control_policy_order": "resourceAlibabacloudStackCloudFirewallControlPolicyOrder",
"alibabacloudstack_csb_project": "resourceAlibabacloudStackCsbProject",
"alibabacloudstack_graph_database_db_instance": "resourceAlibabacloudStackGraphDatabaseDbInstance",
}