From 177b913da65b9eae7cb0de5a1f2e02aa98ce094f Mon Sep 17 00:00:00 2001 From: SevenEarth <391613297@qq.com> Date: Wed, 20 Sep 2023 15:14:55 +0800 Subject: [PATCH] feat/private_dns --- tencentcloud/extension_privatedns.go | 5 + tencentcloud/provider.go | 558 +++++++++--------- ...urce_tc_private_dns_zone_vpc_attachment.go | 308 ++++++++++ ...tc_private_dns_zone_vpc_attachment_test.go | 64 ++ .../service_tencentcloud_private_dns.go | 74 ++- 5 files changed, 729 insertions(+), 280 deletions(-) create mode 100644 tencentcloud/resource_tc_private_dns_zone_vpc_attachment.go create mode 100644 tencentcloud/resource_tc_private_dns_zone_vpc_attachment_test.go diff --git a/tencentcloud/extension_privatedns.go b/tencentcloud/extension_privatedns.go index bb81d6d883..bf0f0440f5 100644 --- a/tencentcloud/extension_privatedns.go +++ b/tencentcloud/extension_privatedns.go @@ -19,3 +19,8 @@ var CNAME_SPEEDUP_STATUS = []string{ CNAME_SPEEDUP_STATUS_ENABLED, CNAME_SPEEDUP_STATUS_DISABLED, } + +const ( + ADD_VPC_SET = "vpc_set" + ADD_ACCOUNT_VPC_SET = "account_vpc_set" +) diff --git a/tencentcloud/provider.go b/tencentcloud/provider.go index 263ddc6c23..b856983efe 100644 --- a/tencentcloud/provider.go +++ b/tencentcloud/provider.go @@ -2773,285 +2773,285 @@ func Provider() *schema.Provider { "tencentcloud_dnspod_record": resourceTencentCloudDnspodRecord(), "tencentcloud_private_dns_zone": resourceTencentCloudPrivateDnsZone(), "tencentcloud_private_dns_record": resourceTencentCloudPrivateDnsRecord(), - //"tencentcloud_private_dns_zone_vpc_attachment": resourceTencentCloudPrivateDnsZoneVpcAttachment(), - "tencentcloud_cls_logset": resourceTencentCloudClsLogset(), - "tencentcloud_cls_topic": resourceTencentCloudClsTopic(), - "tencentcloud_cls_config": resourceTencentCloudClsConfig(), - "tencentcloud_cls_config_extra": resourceTencentCloudClsConfigExtra(), - "tencentcloud_cls_config_attachment": resourceTencentCloudClsConfigAttachment(), - "tencentcloud_cls_machine_group": resourceTencentCloudClsMachineGroup(), - "tencentcloud_cls_cos_shipper": resourceTencentCloudClsCosShipper(), - "tencentcloud_cls_index": resourceTencentCloudClsIndex(), - "tencentcloud_cls_alarm": resourceTencentCloudClsAlarm(), - "tencentcloud_cls_alarm_notice": resourceTencentCloudClsAlarmNotice(), - "tencentcloud_cls_ckafka_consumer": resourceTencentCloudClsCkafkaConsumer(), - "tencentcloud_cls_cos_recharge": resourceTencentCloudClsCosRecharge(), - "tencentcloud_cls_export": resourceTencentCloudClsExport(), - "tencentcloud_cls_data_transform": resourceTencentCloudClsDataTransform(), - "tencentcloud_lighthouse_instance": resourceTencentCloudLighthouseInstance(), - "tencentcloud_lighthouse_firewall_template": resourceTencentCloudLighthouseFirewallTemplate(), - "tencentcloud_tem_environment": resourceTencentCloudTemEnvironment(), - "tencentcloud_tem_application": resourceTencentCloudTemApplication(), - "tencentcloud_tem_workload": resourceTencentCloudTemWorkload(), - "tencentcloud_tem_app_config": resourceTencentCloudTemAppConfig(), - "tencentcloud_tem_log_config": resourceTencentCloudTemLogConfig(), - "tencentcloud_tem_scale_rule": resourceTencentCloudTemScaleRule(), - "tencentcloud_tem_gateway": resourceTencentCloudTemGateway(), - "tencentcloud_tem_application_service": resourceTencentCloudTemApplicationService(), - "tencentcloud_teo_zone": resourceTencentCloudTeoZone(), - "tencentcloud_teo_zone_setting": resourceTencentCloudTeoZoneSetting(), - "tencentcloud_teo_origin_group": resourceTencentCloudTeoOriginGroup(), - "tencentcloud_teo_rule_engine": resourceTencentCloudTeoRuleEngine(), - "tencentcloud_teo_application_proxy": resourceTencentCloudTeoApplicationProxy(), - "tencentcloud_teo_application_proxy_rule": resourceTencentCloudTeoApplicationProxyRule(), - "tencentcloud_tcm_mesh": resourceTencentCloudTcmMesh(), - "tencentcloud_tcm_cluster_attachment": resourceTencentCloudTcmClusterAttachment(), - "tencentcloud_tcm_prometheus_attachment": resourceTencentCloudTcmPrometheusAttachment(), - "tencentcloud_tcm_tracing_config": resourceTencentCloudTcmTracingConfig(), - "tencentcloud_tcm_access_log_config": resourceTencentCloudTcmAccessLogConfig(), - "tencentcloud_ses_domain": resourceTencentCloudSesDomain(), - "tencentcloud_ses_template": resourceTencentCloudSesTemplate(), - "tencentcloud_ses_email_address": resourceTencentCloudSesEmailAddress(), - "tencentcloud_ses_receiver": resourceTencentCloudSesReceiver(), - "tencentcloud_ses_send_email": resourceTencentCloudSesSendEmail(), - "tencentcloud_ses_batch_send_email": resourceTencentCloudSesBatchSendEmail(), - "tencentcloud_ses_verify_domain": resourceTencentCloudSesVerifyDomain(), - "tencentcloud_sms_sign": resourceTencentCloudSmsSign(), - "tencentcloud_sms_template": resourceTencentCloudSmsTemplate(), - "tencentcloud_dcdb_account": resourceTencentCloudDcdbAccount(), - "tencentcloud_dcdb_hourdb_instance": resourceTencentCloudDcdbHourdbInstance(), - "tencentcloud_dcdb_security_group_attachment": resourceTencentCloudDcdbSecurityGroupAttachment(), - "tencentcloud_dcdb_db_instance": resourceTencentCloudDcdbDbInstance(), - "tencentcloud_dcdb_account_privileges": resourceTencentCloudDcdbAccountPrivileges(), - "tencentcloud_dcdb_db_parameters": resourceTencentCloudDcdbDbParameters(), - "tencentcloud_dcdb_encrypt_attributes_config": resourceTencentCloudDcdbEncryptAttributesConfig(), - "tencentcloud_dcdb_db_sync_mode_config": resourceTencentCloudDcdbDbSyncModeConfig(), - "tencentcloud_dcdb_instance_config": resourceTencentCloudDcdbInstanceConfig(), - "tencentcloud_dcdb_activate_hour_instance_operation": resourceTencentCloudDcdbActivateHourInstanceOperation(), - "tencentcloud_dcdb_isolate_hour_instance_operation": resourceTencentCloudDcdbIsolateHourInstanceOperation(), - "tencentcloud_dcdb_cancel_dcn_job_operation": resourceTencentCloudDcdbCancelDcnJobOperation(), - "tencentcloud_dcdb_flush_binlog_operation": resourceTencentCloudDcdbFlushBinlogOperation(), - "tencentcloud_dcdb_switch_db_instance_ha_operation": resourceTencentCloudDcdbSwitchDbInstanceHaOperation(), - "tencentcloud_cat_task_set": resourceTencentCloudCatTaskSet(), - "tencentcloud_mariadb_dedicatedcluster_db_instance": resourceTencentCloudMariadbDedicatedclusterDbInstance(), - "tencentcloud_mariadb_instance": resourceTencentCloudMariadbInstance(), - "tencentcloud_mariadb_hour_db_instance": resourceTencentCloudMariadbHourDbInstance(), - "tencentcloud_mariadb_account": resourceTencentCloudMariadbAccount(), - "tencentcloud_mariadb_parameters": resourceTencentCloudMariadbParameters(), - "tencentcloud_mariadb_log_file_retention_period": resourceTencentCloudMariadbLogFileRetentionPeriod(), - "tencentcloud_mariadb_security_groups": resourceTencentCloudMariadbSecurityGroups(), - "tencentcloud_mariadb_encrypt_attributes": resourceTencentCloudMariadbEncryptAttributes(), - "tencentcloud_mariadb_account_privileges": resourceTencentCloudMariadbAccountPrivileges(), - "tencentcloud_mariadb_operate_hour_db_instance": resourceTencentCloudMariadbOperateHourDbInstance(), - "tencentcloud_mariadb_backup_time": resourceTencentCloudMariadbBackupTime(), - "tencentcloud_mariadb_cancel_dcn_job": resourceTencentCloudMariadbCancelDcnJob(), - "tencentcloud_mariadb_flush_binlog": resourceTencentCloudMariadbFlushBinlog(), - "tencentcloud_mariadb_switch_ha": resourceTencentCloudMariadbSwitchHA(), - "tencentcloud_mariadb_restart_instance": resourceTencentCloudMariadbRestartInstance(), - "tencentcloud_mariadb_renew_instance": resourceTencentCloudMariadbRenewInstance(), - "tencentcloud_mariadb_instance_config": resourceTencentCloudMariadbInstanceConfig(), - "tencentcloud_tdcpg_cluster": resourceTencentCloudTdcpgCluster(), - "tencentcloud_tdcpg_instance": resourceTencentCloudTdcpgInstance(), - "tencentcloud_css_watermark": resourceTencentCloudCssWatermark(), - "tencentcloud_css_pull_stream_task": resourceTencentCloudCssPullStreamTask(), - "tencentcloud_css_live_transcode_template": resourceTencentCloudCssLiveTranscodeTemplate(), - "tencentcloud_css_live_transcode_rule_attachment": resourceTencentCloudCssLiveTranscodeRuleAttachment(), - "tencentcloud_css_domain": resourceTencentCloudCssDomain(), - "tencentcloud_css_authenticate_domain_owner_operation": resourceTencentCloudCssAuthenticateDomainOwnerOperation(), - "tencentcloud_css_play_domain_cert_attachment": resourceTencentCloudCssPlayDomainCertAttachment(), - "tencentcloud_css_play_auth_key_config": resourceTencentCloudCssPlayAuthKeyConfig(), - "tencentcloud_css_push_auth_key_config": resourceTencentCloudCssPushAuthKeyConfig(), - "tencentcloud_pts_project": resourceTencentCloudPtsProject(), - "tencentcloud_pts_alert_channel": resourceTencentCloudPtsAlertChannel(), - "tencentcloud_pts_scenario": resourceTencentCloudPtsScenario(), - "tencentcloud_pts_file": resourceTencentCloudPtsFile(), - "tencentcloud_pts_job": resourceTencentCloudPtsJob(), - "tencentcloud_pts_cron_job": resourceTencentCloudPtsCronJob(), - "tencentcloud_tat_command": resourceTencentCloudTatCommand(), - "tencentcloud_tat_invoker": resourceTencentCloudTatInvoker(), - "tencentcloud_tat_invoker_config": resourceTencentCloudTatInvokerConfig(), - "tencentcloud_tat_invocation_invoke_attachment": resourceTencentCloudTatInvocationInvokeAttachment(), - "tencentcloud_tat_invocation_command_attachment": resourceTencentCloudTatInvocationCommandAttachment(), - "tencentcloud_organization_org_node": resourceTencentCloudOrganizationOrgNode(), - "tencentcloud_organization_org_member": resourceTencentCloudOrganizationOrgMember(), - "tencentcloud_organization_policy_sub_account_attachment": resourceTencentCloudOrganizationPolicySubAccountAttachment(), - "tencentcloud_dbbrain_sql_filter": resourceTencentCloudDbbrainSqlFilter(), - "tencentcloud_dbbrain_security_audit_log_export_task": resourceTencentCloudDbbrainSecurityAuditLogExportTask(), - "tencentcloud_dbbrain_db_diag_report_task": resourceTencentCloudDbbrainDbDiagReportTask(), - "tencentcloud_dbbrain_modify_diag_db_instance_operation": resourceTencentCloudDbbrainModifyDiagDbInstanceOperation(), - "tencentcloud_dbbrain_tdsql_audit_log": resourceTencentCloudDbbrainTdsqlAuditLog(), - "tencentcloud_rum_project": resourceTencentCloudRumProject(), - "tencentcloud_rum_taw_instance": resourceTencentCloudRumTawInstance(), - "tencentcloud_rum_whitelist": resourceTencentCloudRumWhitelist(), - "tencentcloud_rum_offline_log_config_attachment": resourceTencentCloudRumOfflineLogConfigAttachment(), - "tencentcloud_tdmq_rocketmq_cluster": resourceTencentCloudTdmqRocketmqCluster(), - "tencentcloud_tdmq_rocketmq_namespace": resourceTencentCloudTdmqRocketmqNamespace(), - "tencentcloud_tdmq_rocketmq_role": resourceTencentCloudTdmqRocketmqRole(), - "tencentcloud_tdmq_rocketmq_topic": resourceTencentCloudTdmqRocketmqTopic(), - "tencentcloud_tdmq_rocketmq_group": resourceTencentCloudTdmqRocketmqGroup(), - "tencentcloud_tdmq_rocketmq_environment_role": resourceTencentCloudTdmqRocketmqEnvironmentRole(), - "tencentcloud_tdmq_rocketmq_vip_instance": resourceTencentCloudTdmqRocketmqVipInstance(), - "tencentcloud_trocket_rocketmq_instance": resourceTencentCloudTrocketRocketmqInstance(), - "tencentcloud_trocket_rocketmq_topic": resourceTencentCloudTrocketRocketmqTopic(), - "tencentcloud_trocket_rocketmq_consumer_group": resourceTencentCloudTrocketRocketmqConsumerGroup(), - "tencentcloud_dts_sync_job": resourceTencentCloudDtsSyncJob(), - "tencentcloud_dts_sync_config": resourceTencentCloudDtsSyncConfig(), - "tencentcloud_dts_sync_check_job_operation": resourceTencentCloudDtsSyncCheckJobOperation(), - "tencentcloud_dts_sync_job_resume_operation": resourceTencentCloudDtsSyncJobResumeOperation(), - "tencentcloud_dts_sync_job_start_operation": resourceTencentCloudDtsSyncJobStartOperation(), - "tencentcloud_dts_sync_job_stop_operation": resourceTencentCloudDtsSyncJobStopOperation(), - "tencentcloud_dts_sync_job_resize_operation": resourceTencentCloudDtsSyncJobResizeOperation(), - "tencentcloud_dts_sync_job_recover_operation": resourceTencentCloudDtsSyncJobRecoverOperation(), - "tencentcloud_dts_sync_job_isolate_operation": resourceTencentCloudDtsSyncJobIsolateOperation(), - "tencentcloud_dts_sync_job_continue_operation": resourceTencentCloudDtsSyncJobContinueOperation(), - "tencentcloud_dts_sync_job_pause_operation": resourceTencentCloudDtsSyncJobPauseOperation(), - "tencentcloud_dts_migrate_service": resourceTencentCloudDtsMigrateService(), - "tencentcloud_dts_migrate_job": resourceTencentCloudDtsMigrateJob(), - "tencentcloud_dts_migrate_job_config": resourceTencentCloudDtsMigrateJobConfig(), - "tencentcloud_dts_migrate_job_start_operation": resourceTencentCloudDtsMigrateJobStartOperation(), - "tencentcloud_dts_migrate_job_resume_operation": resourceTencentCloudDtsMigrateJobResumeOperation(), - "tencentcloud_dts_compare_task_stop_operation": resourceTencentCloudDtsCompareTaskStopOperation(), - "tencentcloud_dts_compare_task": resourceTencentCloudDtsCompareTask(), - "tencentcloud_cvm_hpc_cluster": resourceTencentCloudCvmHpcCluster(), - "tencentcloud_vpc_flow_log": resourceTencentCloudVpcFlowLog(), - "tencentcloud_vpc_end_point_service": resourceTencentCloudVpcEndPointService(), - "tencentcloud_vpc_end_point": resourceTencentCloudVpcEndPoint(), - "tencentcloud_vpc_end_point_service_white_list": resourceTencentCloudVpcEndPointServiceWhiteList(), - "tencentcloud_vpc_enable_end_point_connect": resourceTencentCloudVpcEnableEndPointConnect(), - "tencentcloud_ci_bucket_attachment": resourceTencentCloudCiBucketAttachment(), - "tencentcloud_tcmq_queue": resourceTencentCloudTcmqQueue(), - "tencentcloud_tcmq_topic": resourceTencentCloudTcmqTopic(), - "tencentcloud_tcmq_subscribe": resourceTencentCloudTcmqSubscribe(), - "tencentcloud_ci_bucket_pic_style": resourceTencentCloudCiBucketPicStyle(), - "tencentcloud_ci_hot_link": resourceTencentCloudCiHotLink(), - "tencentcloud_ci_media_snapshot_template": resourceTencentCloudCiMediaSnapshotTemplate(), - "tencentcloud_ci_media_transcode_template": resourceTencentCloudCiMediaTranscodeTemplate(), - "tencentcloud_ci_media_animation_template": resourceTencentCloudCiMediaAnimationTemplate(), - "tencentcloud_ci_media_concat_template": resourceTencentCloudCiMediaConcatTemplate(), - "tencentcloud_ci_media_video_process_template": resourceTencentCloudCiMediaVideoProcessTemplate(), - "tencentcloud_ci_media_video_montage_template": resourceTencentCloudCiMediaVideoMontageTemplate(), - "tencentcloud_ci_media_voice_separate_template": resourceTencentCloudCiMediaVoiceSeparateTemplate(), - "tencentcloud_ci_media_super_resolution_template": resourceTencentCloudCiMediaSuperResolutionTemplate(), - "tencentcloud_ci_media_pic_process_template": resourceTencentCloudCiMediaPicProcessTemplate(), - "tencentcloud_ci_media_watermark_template": resourceTencentCloudCiMediaWatermarkTemplate(), - "tencentcloud_ci_media_tts_template": resourceTencentCloudCiMediaTtsTemplate(), - "tencentcloud_ci_media_transcode_pro_template": resourceTencentCloudCiMediaTranscodeProTemplate(), - "tencentcloud_ci_media_smart_cover_template": resourceTencentCloudCiMediaSmartCoverTemplate(), - "tencentcloud_ci_media_speech_recognition_template": resourceTencentCloudCiMediaSpeechRecognitionTemplate(), - "tencentcloud_ci_guetzli": resourceTencentCloudCIGuetzli(), - "tencentcloud_ci_original_image_protection": resourceTencentCloudCIOriginalImageProtection(), - "tencentcloud_cynosdb_audit_log_file": resourceTencentCloudCynosdbAuditLogFile(), - "tencentcloud_cynosdb_security_group": resourceTencentCloudCynosdbSecurityGroup(), - "tencentcloud_dayu_ddos_ip_attachment_v2": resourceTencentCloudDayuDDosIpAttachmentV2(), - "tencentcloud_tsf_microservice": resourceTencentCloudTsfMicroservice(), - "tencentcloud_tsf_application_config": resourceTencentCloudTsfApplicationConfig(), - "tencentcloud_cvm_launch_template": resourceTencentCloudCvmLaunchTemplate(), - "tencentcloud_tsf_cluster": resourceTencentCloudTsfCluster(), - "tencentcloud_tsf_api_group": resourceTencentCloudTsfApiGroup(), - "tencentcloud_tsf_namespace": resourceTencentCloudTsfNamespace(), - "tencentcloud_tsf_path_rewrite": resourceTencentCloudTsfPathRewrite(), - "tencentcloud_tsf_unit_rule": resourceTencentCloudTsfUnitRule(), - "tencentcloud_tsf_task": resourceTencentCloudTsfTask(), - "tencentcloud_tsf_config_template": resourceTencentCloudTsfConfigTemplate(), - "tencentcloud_tsf_api_rate_limit_rule": resourceTencentCloudTsfApiRateLimitRule(), - "tencentcloud_tsf_application_release_config": resourceTencentCloudTsfApplicationReleaseConfig(), - "tencentcloud_tsf_lane": resourceTencentCloudTsfLane(), - "tencentcloud_tsf_lane_rule": resourceTencentCloudTsfLaneRule(), - "tencentcloud_tsf_group": resourceTencentCloudTsfGroup(), - "tencentcloud_tsf_repository": resourceTencentCloudTsfRepository(), - "tencentcloud_tsf_application": resourceTencentCloudTsfApplication(), - "tencentcloud_tsf_application_public_config_release": resourceTencentCloudTsfApplicationPublicConfigRelease(), - "tencentcloud_tsf_application_public_config": resourceTencentCloudTsfApplicationPublicConfig(), - "tencentcloud_tsf_application_file_config_release": resourceTencentCloudTsfApplicationFileConfigRelease(), - "tencentcloud_tsf_instances_attachment": resourceTencentCloudTsfInstancesAttachment(), - "tencentcloud_tsf_bind_api_group": resourceTencentCloudTsfBindApiGroup(), - "tencentcloud_tsf_application_file_config": resourceTencentCloudTsfApplicationFileConfig(), - "tencentcloud_tsf_enable_unit_rule": resourceTencentCloudTsfEnableUnitRule(), - "tencentcloud_tsf_deploy_container_group": resourceTencentCloudTsfDeployContainerGroup(), - "tencentcloud_tsf_deploy_vm_group": resourceTencentCloudTsfDeployVmGroup(), - "tencentcloud_tsf_release_api_group": resourceTencentCloudTsfReleaseApiGroup(), - "tencentcloud_tsf_operate_container_group": resourceTencentCloudTsfOperateContainerGroup(), - "tencentcloud_tsf_operate_group": resourceTencentCloudTsfOperateGroup(), - "tencentcloud_tsf_unit_namespace": resourceTencentCloudTsfUnitNamespace(), - "tencentcloud_mps_workflow": resourceTencentCloudMpsWorkflow(), - "tencentcloud_mps_transcode_template": resourceTencentCloudMpsTranscodeTemplate(), - "tencentcloud_mps_watermark_template": resourceTencentCloudMpsWatermarkTemplate(), - "tencentcloud_mps_image_sprite_template": resourceTencentCloudMpsImageSpriteTemplate(), - "tencentcloud_mps_snapshot_by_timeoffset_template": resourceTencentCloudMpsSnapshotByTimeoffsetTemplate(), - "tencentcloud_mps_sample_snapshot_template": resourceTencentCloudMpsSampleSnapshotTemplate(), - "tencentcloud_mps_animated_graphics_template": resourceTencentCloudMpsAnimatedGraphicsTemplate(), - "tencentcloud_mps_ai_recognition_template": resourceTencentCloudMpsAiRecognitionTemplate(), - "tencentcloud_mps_ai_analysis_template": resourceTencentCloudMpsAiAnalysisTemplate(), - "tencentcloud_mps_adaptive_dynamic_streaming_template": resourceTencentCloudMpsAdaptiveDynamicStreamingTemplate(), - "tencentcloud_mps_person_sample": resourceTencentCloudMpsPersonSample(), - "tencentcloud_cbs_disk_backup": resourceTencentCloudCbsDiskBackup(), - "tencentcloud_cbs_snapshot_share_permission": resourceTencentCloudCbsSnapshotSharePermission(), - "tencentcloud_cbs_disk_backup_rollback_operation": resourceTencentCloudCbsDiskBackupRollbackOperation(), - "tencentcloud_chdfs_access_group": resourceTencentCloudChdfsAccessGroup(), - "tencentcloud_chdfs_access_rule": resourceTencentCloudChdfsAccessRule(), - "tencentcloud_chdfs_file_system": resourceTencentCloudChdfsFileSystem(), - "tencentcloud_chdfs_life_cycle_rule": resourceTencentCloudChdfsLifeCycleRule(), - "tencentcloud_chdfs_mount_point": resourceTencentCloudChdfsMountPoint(), - "tencentcloud_chdfs_mount_point_attachment": resourceTencentCloudChdfsMountPointAttachment(), - "tencentcloud_mdl_stream_live_input": resourceTencentCloudMdlStreamLiveInput(), - "tencentcloud_lighthouse_blueprint": resourceTencentCloudLighthouseBlueprint(), - "tencentcloud_cvm_launch_template_version": resourceTencentCloudCvmLaunchTemplateVersion(), - "tencentcloud_apm_instance": resourceTencentCloudApmInstance(), - "tencentcloud_cvm_launch_template_default_version": resourceTencentCloudCvmLaunchTemplateDefaultVersion(), - "tencentcloud_lighthouse_firewall_rule": resourceTencentCloudLighthouseFirewallRule(), - "tencentcloud_cvm_security_group_attachment": resourceTencentCloudCvmSecurityGroupAttachment(), - "tencentcloud_cvm_reboot_instance": resourceTencentCloudCvmRebootInstance(), - "tencentcloud_cvm_chc_config": resourceTencentCloudCvmChcConfig(), - "tencentcloud_cvm_sync_image": resourceTencentCloudCvmSyncImage(), - "tencentcloud_cvm_renew_instance": resourceTencentCloudCvmRenewInstance(), - "tencentcloud_cvm_export_images": resourceTencentCloudCvmExportImages(), - "tencentcloud_cvm_image_share_permission": resourceTencentCloudCvmImageSharePermission(), - "tencentcloud_cvm_import_image": resourceTencentCloudCvmImportImage(), - "tencentcloud_cvm_renew_host": resourceTencentCloudCvmRenewHost(), - "tencentcloud_cvm_program_fpga_image": resourceTencentCloudCvmProgramFpgaImage(), - "tencentcloud_cvm_modify_instance_disk_type": resourceTencentCloudCvmModifyInstanceDiskType(), - "tencentcloud_lighthouse_disk_backup": resourceTencentCloudLighthouseDiskBackup(), - "tencentcloud_lighthouse_apply_disk_backup": resourceTencentCloudLighthouseApplyDiskBackup(), - "tencentcloud_lighthouse_disk_attachment": resourceTencentCloudLighthouseDiskAttachment(), - "tencentcloud_lighthouse_key_pair": resourceTencentCloudLighthouseKeyPair(), - "tencentcloud_lighthouse_snapshot": resourceTencentCloudLighthouseSnapshot(), - "tencentcloud_lighthouse_apply_instance_snapshot": resourceTencentCloudLighthouseApplyInstanceSnapshot(), - "tencentcloud_lighthouse_start_instance": resourceTencentCloudLighthouseStartInstance(), - "tencentcloud_lighthouse_stop_instance": resourceTencentCloudLighthouseStopInstance(), - "tencentcloud_lighthouse_reboot_instance": resourceTencentCloudLighthouseRebootInstance(), - "tencentcloud_lighthouse_key_pair_attachment": resourceTencentCloudLighthouseKeyPairAttachment(), - "tencentcloud_lighthouse_disk": resourceTencentCloudLighthouseDisk(), - "tencentcloud_lighthouse_renew_disk": resourceTencentCloudLighthouseRenewDisk(), - "tencentcloud_lighthouse_renew_instance": resourceTencentCloudLighthouseRenewInstance(), - "tencentcloud_clickhouse_backup": resourceTencentCloudClickhouseBackup(), - "tencentcloud_clickhouse_backup_strategy": resourceTencentCloudClickhouseBackupStrategy(), - "tencentcloud_clickhouse_recover_backup_job": resourceTencentCloudClickhouseRecoverBackupJob(), - "tencentcloud_clickhouse_delete_backup_data": resourceTencentCloudClickhouseDeleteBackupData(), - "tencentcloud_clickhouse_account": resourceTencentCloudClickhouseAccount(), - "tencentcloud_clickhouse_account_permission": resourceTencentCloudClickhouseAccountPermission(), - "tencentcloud_api_gateway_api_doc": resourceTencentCloudAPIGatewayAPIDoc(), - "tencentcloud_api_gateway_api_app": resourceTencentCloudAPIGatewayAPIApp(), - "tencentcloud_tse_instance": resourceTencentCloudTseInstance(), - "tencentcloud_tse_cngw_gateway": resourceTencentCloudTseCngwGateway(), - "tencentcloud_tse_cngw_group": resourceTencentCloudTseCngwGroup(), - "tencentcloud_tse_cngw_service": resourceTencentCloudTseCngwService(), - "tencentcloud_tse_cngw_service_rate_limit": resourceTencentCloudTseCngwServiceRateLimit(), - "tencentcloud_tse_cngw_route": resourceTencentCloudTseCngwRoute(), - "tencentcloud_tse_cngw_route_rate_limit": resourceTencentCloudTseCngwRouteRateLimit(), - "tencentcloud_tse_cngw_canary_rule": resourceTencentCloudTseCngwCanaryRule(), - "tencentcloud_clickhouse_instance": resourceTencentCloudClickhouseInstance(), - "tencentcloud_cls_kafka_recharge": resourceTencentCloudClsKafkaRecharge(), - "tencentcloud_cls_scheduled_sql": resourceTencentCloudClsScheduledSql(), - "tencentcloud_eb_event_transform": resourceTencentCloudEbEventTransform(), - "tencentcloud_eb_event_bus": resourceTencentCloudEbEventBus(), - "tencentcloud_eb_event_rule": resourceTencentCloudEbEventRule(), - "tencentcloud_eb_event_target": resourceTencentCloudEbEventTarget(), - "tencentcloud_eb_put_events": resourceTencentCloudEbPutEvents(), - "tencentcloud_eb_event_connector": resourceTencentCloudEbEventConnector(), - "tencentcloud_dlc_work_group": resourceTencentCloudDlcWorkGroup(), - "tencentcloud_dlc_user": resourceTencentCloudDlcUser(), - "tencentcloud_wedata_rule_template": resourceTencentCloudWedataRuleTemplate(), - "tencentcloud_ssl_commit_certificate_information": resourceTencentCloudSslCommitCertificateInformation(), + "tencentcloud_private_dns_zone_vpc_attachment": resourceTencentCloudPrivateDnsZoneVpcAttachment(), + "tencentcloud_cls_logset": resourceTencentCloudClsLogset(), + "tencentcloud_cls_topic": resourceTencentCloudClsTopic(), + "tencentcloud_cls_config": resourceTencentCloudClsConfig(), + "tencentcloud_cls_config_extra": resourceTencentCloudClsConfigExtra(), + "tencentcloud_cls_config_attachment": resourceTencentCloudClsConfigAttachment(), + "tencentcloud_cls_machine_group": resourceTencentCloudClsMachineGroup(), + "tencentcloud_cls_cos_shipper": resourceTencentCloudClsCosShipper(), + "tencentcloud_cls_index": resourceTencentCloudClsIndex(), + "tencentcloud_cls_alarm": resourceTencentCloudClsAlarm(), + "tencentcloud_cls_alarm_notice": resourceTencentCloudClsAlarmNotice(), + "tencentcloud_cls_ckafka_consumer": resourceTencentCloudClsCkafkaConsumer(), + "tencentcloud_cls_cos_recharge": resourceTencentCloudClsCosRecharge(), + "tencentcloud_cls_export": resourceTencentCloudClsExport(), + "tencentcloud_cls_data_transform": resourceTencentCloudClsDataTransform(), + "tencentcloud_lighthouse_instance": resourceTencentCloudLighthouseInstance(), + "tencentcloud_lighthouse_firewall_template": resourceTencentCloudLighthouseFirewallTemplate(), + "tencentcloud_tem_environment": resourceTencentCloudTemEnvironment(), + "tencentcloud_tem_application": resourceTencentCloudTemApplication(), + "tencentcloud_tem_workload": resourceTencentCloudTemWorkload(), + "tencentcloud_tem_app_config": resourceTencentCloudTemAppConfig(), + "tencentcloud_tem_log_config": resourceTencentCloudTemLogConfig(), + "tencentcloud_tem_scale_rule": resourceTencentCloudTemScaleRule(), + "tencentcloud_tem_gateway": resourceTencentCloudTemGateway(), + "tencentcloud_tem_application_service": resourceTencentCloudTemApplicationService(), + "tencentcloud_teo_zone": resourceTencentCloudTeoZone(), + "tencentcloud_teo_zone_setting": resourceTencentCloudTeoZoneSetting(), + "tencentcloud_teo_origin_group": resourceTencentCloudTeoOriginGroup(), + "tencentcloud_teo_rule_engine": resourceTencentCloudTeoRuleEngine(), + "tencentcloud_teo_application_proxy": resourceTencentCloudTeoApplicationProxy(), + "tencentcloud_teo_application_proxy_rule": resourceTencentCloudTeoApplicationProxyRule(), + "tencentcloud_tcm_mesh": resourceTencentCloudTcmMesh(), + "tencentcloud_tcm_cluster_attachment": resourceTencentCloudTcmClusterAttachment(), + "tencentcloud_tcm_prometheus_attachment": resourceTencentCloudTcmPrometheusAttachment(), + "tencentcloud_tcm_tracing_config": resourceTencentCloudTcmTracingConfig(), + "tencentcloud_tcm_access_log_config": resourceTencentCloudTcmAccessLogConfig(), + "tencentcloud_ses_domain": resourceTencentCloudSesDomain(), + "tencentcloud_ses_template": resourceTencentCloudSesTemplate(), + "tencentcloud_ses_email_address": resourceTencentCloudSesEmailAddress(), + "tencentcloud_ses_receiver": resourceTencentCloudSesReceiver(), + "tencentcloud_ses_send_email": resourceTencentCloudSesSendEmail(), + "tencentcloud_ses_batch_send_email": resourceTencentCloudSesBatchSendEmail(), + "tencentcloud_ses_verify_domain": resourceTencentCloudSesVerifyDomain(), + "tencentcloud_sms_sign": resourceTencentCloudSmsSign(), + "tencentcloud_sms_template": resourceTencentCloudSmsTemplate(), + "tencentcloud_dcdb_account": resourceTencentCloudDcdbAccount(), + "tencentcloud_dcdb_hourdb_instance": resourceTencentCloudDcdbHourdbInstance(), + "tencentcloud_dcdb_security_group_attachment": resourceTencentCloudDcdbSecurityGroupAttachment(), + "tencentcloud_dcdb_db_instance": resourceTencentCloudDcdbDbInstance(), + "tencentcloud_dcdb_account_privileges": resourceTencentCloudDcdbAccountPrivileges(), + "tencentcloud_dcdb_db_parameters": resourceTencentCloudDcdbDbParameters(), + "tencentcloud_dcdb_encrypt_attributes_config": resourceTencentCloudDcdbEncryptAttributesConfig(), + "tencentcloud_dcdb_db_sync_mode_config": resourceTencentCloudDcdbDbSyncModeConfig(), + "tencentcloud_dcdb_instance_config": resourceTencentCloudDcdbInstanceConfig(), + "tencentcloud_dcdb_activate_hour_instance_operation": resourceTencentCloudDcdbActivateHourInstanceOperation(), + "tencentcloud_dcdb_isolate_hour_instance_operation": resourceTencentCloudDcdbIsolateHourInstanceOperation(), + "tencentcloud_dcdb_cancel_dcn_job_operation": resourceTencentCloudDcdbCancelDcnJobOperation(), + "tencentcloud_dcdb_flush_binlog_operation": resourceTencentCloudDcdbFlushBinlogOperation(), + "tencentcloud_dcdb_switch_db_instance_ha_operation": resourceTencentCloudDcdbSwitchDbInstanceHaOperation(), + "tencentcloud_cat_task_set": resourceTencentCloudCatTaskSet(), + "tencentcloud_mariadb_dedicatedcluster_db_instance": resourceTencentCloudMariadbDedicatedclusterDbInstance(), + "tencentcloud_mariadb_instance": resourceTencentCloudMariadbInstance(), + "tencentcloud_mariadb_hour_db_instance": resourceTencentCloudMariadbHourDbInstance(), + "tencentcloud_mariadb_account": resourceTencentCloudMariadbAccount(), + "tencentcloud_mariadb_parameters": resourceTencentCloudMariadbParameters(), + "tencentcloud_mariadb_log_file_retention_period": resourceTencentCloudMariadbLogFileRetentionPeriod(), + "tencentcloud_mariadb_security_groups": resourceTencentCloudMariadbSecurityGroups(), + "tencentcloud_mariadb_encrypt_attributes": resourceTencentCloudMariadbEncryptAttributes(), + "tencentcloud_mariadb_account_privileges": resourceTencentCloudMariadbAccountPrivileges(), + "tencentcloud_mariadb_operate_hour_db_instance": resourceTencentCloudMariadbOperateHourDbInstance(), + "tencentcloud_mariadb_backup_time": resourceTencentCloudMariadbBackupTime(), + "tencentcloud_mariadb_cancel_dcn_job": resourceTencentCloudMariadbCancelDcnJob(), + "tencentcloud_mariadb_flush_binlog": resourceTencentCloudMariadbFlushBinlog(), + "tencentcloud_mariadb_switch_ha": resourceTencentCloudMariadbSwitchHA(), + "tencentcloud_mariadb_restart_instance": resourceTencentCloudMariadbRestartInstance(), + "tencentcloud_mariadb_renew_instance": resourceTencentCloudMariadbRenewInstance(), + "tencentcloud_mariadb_instance_config": resourceTencentCloudMariadbInstanceConfig(), + "tencentcloud_tdcpg_cluster": resourceTencentCloudTdcpgCluster(), + "tencentcloud_tdcpg_instance": resourceTencentCloudTdcpgInstance(), + "tencentcloud_css_watermark": resourceTencentCloudCssWatermark(), + "tencentcloud_css_pull_stream_task": resourceTencentCloudCssPullStreamTask(), + "tencentcloud_css_live_transcode_template": resourceTencentCloudCssLiveTranscodeTemplate(), + "tencentcloud_css_live_transcode_rule_attachment": resourceTencentCloudCssLiveTranscodeRuleAttachment(), + "tencentcloud_css_domain": resourceTencentCloudCssDomain(), + "tencentcloud_css_authenticate_domain_owner_operation": resourceTencentCloudCssAuthenticateDomainOwnerOperation(), + "tencentcloud_css_play_domain_cert_attachment": resourceTencentCloudCssPlayDomainCertAttachment(), + "tencentcloud_css_play_auth_key_config": resourceTencentCloudCssPlayAuthKeyConfig(), + "tencentcloud_css_push_auth_key_config": resourceTencentCloudCssPushAuthKeyConfig(), + "tencentcloud_pts_project": resourceTencentCloudPtsProject(), + "tencentcloud_pts_alert_channel": resourceTencentCloudPtsAlertChannel(), + "tencentcloud_pts_scenario": resourceTencentCloudPtsScenario(), + "tencentcloud_pts_file": resourceTencentCloudPtsFile(), + "tencentcloud_pts_job": resourceTencentCloudPtsJob(), + "tencentcloud_pts_cron_job": resourceTencentCloudPtsCronJob(), + "tencentcloud_tat_command": resourceTencentCloudTatCommand(), + "tencentcloud_tat_invoker": resourceTencentCloudTatInvoker(), + "tencentcloud_tat_invoker_config": resourceTencentCloudTatInvokerConfig(), + "tencentcloud_tat_invocation_invoke_attachment": resourceTencentCloudTatInvocationInvokeAttachment(), + "tencentcloud_tat_invocation_command_attachment": resourceTencentCloudTatInvocationCommandAttachment(), + "tencentcloud_organization_org_node": resourceTencentCloudOrganizationOrgNode(), + "tencentcloud_organization_org_member": resourceTencentCloudOrganizationOrgMember(), + "tencentcloud_organization_policy_sub_account_attachment": resourceTencentCloudOrganizationPolicySubAccountAttachment(), + "tencentcloud_dbbrain_sql_filter": resourceTencentCloudDbbrainSqlFilter(), + "tencentcloud_dbbrain_security_audit_log_export_task": resourceTencentCloudDbbrainSecurityAuditLogExportTask(), + "tencentcloud_dbbrain_db_diag_report_task": resourceTencentCloudDbbrainDbDiagReportTask(), + "tencentcloud_dbbrain_modify_diag_db_instance_operation": resourceTencentCloudDbbrainModifyDiagDbInstanceOperation(), + "tencentcloud_dbbrain_tdsql_audit_log": resourceTencentCloudDbbrainTdsqlAuditLog(), + "tencentcloud_rum_project": resourceTencentCloudRumProject(), + "tencentcloud_rum_taw_instance": resourceTencentCloudRumTawInstance(), + "tencentcloud_rum_whitelist": resourceTencentCloudRumWhitelist(), + "tencentcloud_rum_offline_log_config_attachment": resourceTencentCloudRumOfflineLogConfigAttachment(), + "tencentcloud_tdmq_rocketmq_cluster": resourceTencentCloudTdmqRocketmqCluster(), + "tencentcloud_tdmq_rocketmq_namespace": resourceTencentCloudTdmqRocketmqNamespace(), + "tencentcloud_tdmq_rocketmq_role": resourceTencentCloudTdmqRocketmqRole(), + "tencentcloud_tdmq_rocketmq_topic": resourceTencentCloudTdmqRocketmqTopic(), + "tencentcloud_tdmq_rocketmq_group": resourceTencentCloudTdmqRocketmqGroup(), + "tencentcloud_tdmq_rocketmq_environment_role": resourceTencentCloudTdmqRocketmqEnvironmentRole(), + "tencentcloud_tdmq_rocketmq_vip_instance": resourceTencentCloudTdmqRocketmqVipInstance(), + "tencentcloud_trocket_rocketmq_instance": resourceTencentCloudTrocketRocketmqInstance(), + "tencentcloud_trocket_rocketmq_topic": resourceTencentCloudTrocketRocketmqTopic(), + "tencentcloud_trocket_rocketmq_consumer_group": resourceTencentCloudTrocketRocketmqConsumerGroup(), + "tencentcloud_dts_sync_job": resourceTencentCloudDtsSyncJob(), + "tencentcloud_dts_sync_config": resourceTencentCloudDtsSyncConfig(), + "tencentcloud_dts_sync_check_job_operation": resourceTencentCloudDtsSyncCheckJobOperation(), + "tencentcloud_dts_sync_job_resume_operation": resourceTencentCloudDtsSyncJobResumeOperation(), + "tencentcloud_dts_sync_job_start_operation": resourceTencentCloudDtsSyncJobStartOperation(), + "tencentcloud_dts_sync_job_stop_operation": resourceTencentCloudDtsSyncJobStopOperation(), + "tencentcloud_dts_sync_job_resize_operation": resourceTencentCloudDtsSyncJobResizeOperation(), + "tencentcloud_dts_sync_job_recover_operation": resourceTencentCloudDtsSyncJobRecoverOperation(), + "tencentcloud_dts_sync_job_isolate_operation": resourceTencentCloudDtsSyncJobIsolateOperation(), + "tencentcloud_dts_sync_job_continue_operation": resourceTencentCloudDtsSyncJobContinueOperation(), + "tencentcloud_dts_sync_job_pause_operation": resourceTencentCloudDtsSyncJobPauseOperation(), + "tencentcloud_dts_migrate_service": resourceTencentCloudDtsMigrateService(), + "tencentcloud_dts_migrate_job": resourceTencentCloudDtsMigrateJob(), + "tencentcloud_dts_migrate_job_config": resourceTencentCloudDtsMigrateJobConfig(), + "tencentcloud_dts_migrate_job_start_operation": resourceTencentCloudDtsMigrateJobStartOperation(), + "tencentcloud_dts_migrate_job_resume_operation": resourceTencentCloudDtsMigrateJobResumeOperation(), + "tencentcloud_dts_compare_task_stop_operation": resourceTencentCloudDtsCompareTaskStopOperation(), + "tencentcloud_dts_compare_task": resourceTencentCloudDtsCompareTask(), + "tencentcloud_cvm_hpc_cluster": resourceTencentCloudCvmHpcCluster(), + "tencentcloud_vpc_flow_log": resourceTencentCloudVpcFlowLog(), + "tencentcloud_vpc_end_point_service": resourceTencentCloudVpcEndPointService(), + "tencentcloud_vpc_end_point": resourceTencentCloudVpcEndPoint(), + "tencentcloud_vpc_end_point_service_white_list": resourceTencentCloudVpcEndPointServiceWhiteList(), + "tencentcloud_vpc_enable_end_point_connect": resourceTencentCloudVpcEnableEndPointConnect(), + "tencentcloud_ci_bucket_attachment": resourceTencentCloudCiBucketAttachment(), + "tencentcloud_tcmq_queue": resourceTencentCloudTcmqQueue(), + "tencentcloud_tcmq_topic": resourceTencentCloudTcmqTopic(), + "tencentcloud_tcmq_subscribe": resourceTencentCloudTcmqSubscribe(), + "tencentcloud_ci_bucket_pic_style": resourceTencentCloudCiBucketPicStyle(), + "tencentcloud_ci_hot_link": resourceTencentCloudCiHotLink(), + "tencentcloud_ci_media_snapshot_template": resourceTencentCloudCiMediaSnapshotTemplate(), + "tencentcloud_ci_media_transcode_template": resourceTencentCloudCiMediaTranscodeTemplate(), + "tencentcloud_ci_media_animation_template": resourceTencentCloudCiMediaAnimationTemplate(), + "tencentcloud_ci_media_concat_template": resourceTencentCloudCiMediaConcatTemplate(), + "tencentcloud_ci_media_video_process_template": resourceTencentCloudCiMediaVideoProcessTemplate(), + "tencentcloud_ci_media_video_montage_template": resourceTencentCloudCiMediaVideoMontageTemplate(), + "tencentcloud_ci_media_voice_separate_template": resourceTencentCloudCiMediaVoiceSeparateTemplate(), + "tencentcloud_ci_media_super_resolution_template": resourceTencentCloudCiMediaSuperResolutionTemplate(), + "tencentcloud_ci_media_pic_process_template": resourceTencentCloudCiMediaPicProcessTemplate(), + "tencentcloud_ci_media_watermark_template": resourceTencentCloudCiMediaWatermarkTemplate(), + "tencentcloud_ci_media_tts_template": resourceTencentCloudCiMediaTtsTemplate(), + "tencentcloud_ci_media_transcode_pro_template": resourceTencentCloudCiMediaTranscodeProTemplate(), + "tencentcloud_ci_media_smart_cover_template": resourceTencentCloudCiMediaSmartCoverTemplate(), + "tencentcloud_ci_media_speech_recognition_template": resourceTencentCloudCiMediaSpeechRecognitionTemplate(), + "tencentcloud_ci_guetzli": resourceTencentCloudCIGuetzli(), + "tencentcloud_ci_original_image_protection": resourceTencentCloudCIOriginalImageProtection(), + "tencentcloud_cynosdb_audit_log_file": resourceTencentCloudCynosdbAuditLogFile(), + "tencentcloud_cynosdb_security_group": resourceTencentCloudCynosdbSecurityGroup(), + "tencentcloud_dayu_ddos_ip_attachment_v2": resourceTencentCloudDayuDDosIpAttachmentV2(), + "tencentcloud_tsf_microservice": resourceTencentCloudTsfMicroservice(), + "tencentcloud_tsf_application_config": resourceTencentCloudTsfApplicationConfig(), + "tencentcloud_cvm_launch_template": resourceTencentCloudCvmLaunchTemplate(), + "tencentcloud_tsf_cluster": resourceTencentCloudTsfCluster(), + "tencentcloud_tsf_api_group": resourceTencentCloudTsfApiGroup(), + "tencentcloud_tsf_namespace": resourceTencentCloudTsfNamespace(), + "tencentcloud_tsf_path_rewrite": resourceTencentCloudTsfPathRewrite(), + "tencentcloud_tsf_unit_rule": resourceTencentCloudTsfUnitRule(), + "tencentcloud_tsf_task": resourceTencentCloudTsfTask(), + "tencentcloud_tsf_config_template": resourceTencentCloudTsfConfigTemplate(), + "tencentcloud_tsf_api_rate_limit_rule": resourceTencentCloudTsfApiRateLimitRule(), + "tencentcloud_tsf_application_release_config": resourceTencentCloudTsfApplicationReleaseConfig(), + "tencentcloud_tsf_lane": resourceTencentCloudTsfLane(), + "tencentcloud_tsf_lane_rule": resourceTencentCloudTsfLaneRule(), + "tencentcloud_tsf_group": resourceTencentCloudTsfGroup(), + "tencentcloud_tsf_repository": resourceTencentCloudTsfRepository(), + "tencentcloud_tsf_application": resourceTencentCloudTsfApplication(), + "tencentcloud_tsf_application_public_config_release": resourceTencentCloudTsfApplicationPublicConfigRelease(), + "tencentcloud_tsf_application_public_config": resourceTencentCloudTsfApplicationPublicConfig(), + "tencentcloud_tsf_application_file_config_release": resourceTencentCloudTsfApplicationFileConfigRelease(), + "tencentcloud_tsf_instances_attachment": resourceTencentCloudTsfInstancesAttachment(), + "tencentcloud_tsf_bind_api_group": resourceTencentCloudTsfBindApiGroup(), + "tencentcloud_tsf_application_file_config": resourceTencentCloudTsfApplicationFileConfig(), + "tencentcloud_tsf_enable_unit_rule": resourceTencentCloudTsfEnableUnitRule(), + "tencentcloud_tsf_deploy_container_group": resourceTencentCloudTsfDeployContainerGroup(), + "tencentcloud_tsf_deploy_vm_group": resourceTencentCloudTsfDeployVmGroup(), + "tencentcloud_tsf_release_api_group": resourceTencentCloudTsfReleaseApiGroup(), + "tencentcloud_tsf_operate_container_group": resourceTencentCloudTsfOperateContainerGroup(), + "tencentcloud_tsf_operate_group": resourceTencentCloudTsfOperateGroup(), + "tencentcloud_tsf_unit_namespace": resourceTencentCloudTsfUnitNamespace(), + "tencentcloud_mps_workflow": resourceTencentCloudMpsWorkflow(), + "tencentcloud_mps_transcode_template": resourceTencentCloudMpsTranscodeTemplate(), + "tencentcloud_mps_watermark_template": resourceTencentCloudMpsWatermarkTemplate(), + "tencentcloud_mps_image_sprite_template": resourceTencentCloudMpsImageSpriteTemplate(), + "tencentcloud_mps_snapshot_by_timeoffset_template": resourceTencentCloudMpsSnapshotByTimeoffsetTemplate(), + "tencentcloud_mps_sample_snapshot_template": resourceTencentCloudMpsSampleSnapshotTemplate(), + "tencentcloud_mps_animated_graphics_template": resourceTencentCloudMpsAnimatedGraphicsTemplate(), + "tencentcloud_mps_ai_recognition_template": resourceTencentCloudMpsAiRecognitionTemplate(), + "tencentcloud_mps_ai_analysis_template": resourceTencentCloudMpsAiAnalysisTemplate(), + "tencentcloud_mps_adaptive_dynamic_streaming_template": resourceTencentCloudMpsAdaptiveDynamicStreamingTemplate(), + "tencentcloud_mps_person_sample": resourceTencentCloudMpsPersonSample(), + "tencentcloud_cbs_disk_backup": resourceTencentCloudCbsDiskBackup(), + "tencentcloud_cbs_snapshot_share_permission": resourceTencentCloudCbsSnapshotSharePermission(), + "tencentcloud_cbs_disk_backup_rollback_operation": resourceTencentCloudCbsDiskBackupRollbackOperation(), + "tencentcloud_chdfs_access_group": resourceTencentCloudChdfsAccessGroup(), + "tencentcloud_chdfs_access_rule": resourceTencentCloudChdfsAccessRule(), + "tencentcloud_chdfs_file_system": resourceTencentCloudChdfsFileSystem(), + "tencentcloud_chdfs_life_cycle_rule": resourceTencentCloudChdfsLifeCycleRule(), + "tencentcloud_chdfs_mount_point": resourceTencentCloudChdfsMountPoint(), + "tencentcloud_chdfs_mount_point_attachment": resourceTencentCloudChdfsMountPointAttachment(), + "tencentcloud_mdl_stream_live_input": resourceTencentCloudMdlStreamLiveInput(), + "tencentcloud_lighthouse_blueprint": resourceTencentCloudLighthouseBlueprint(), + "tencentcloud_cvm_launch_template_version": resourceTencentCloudCvmLaunchTemplateVersion(), + "tencentcloud_apm_instance": resourceTencentCloudApmInstance(), + "tencentcloud_cvm_launch_template_default_version": resourceTencentCloudCvmLaunchTemplateDefaultVersion(), + "tencentcloud_lighthouse_firewall_rule": resourceTencentCloudLighthouseFirewallRule(), + "tencentcloud_cvm_security_group_attachment": resourceTencentCloudCvmSecurityGroupAttachment(), + "tencentcloud_cvm_reboot_instance": resourceTencentCloudCvmRebootInstance(), + "tencentcloud_cvm_chc_config": resourceTencentCloudCvmChcConfig(), + "tencentcloud_cvm_sync_image": resourceTencentCloudCvmSyncImage(), + "tencentcloud_cvm_renew_instance": resourceTencentCloudCvmRenewInstance(), + "tencentcloud_cvm_export_images": resourceTencentCloudCvmExportImages(), + "tencentcloud_cvm_image_share_permission": resourceTencentCloudCvmImageSharePermission(), + "tencentcloud_cvm_import_image": resourceTencentCloudCvmImportImage(), + "tencentcloud_cvm_renew_host": resourceTencentCloudCvmRenewHost(), + "tencentcloud_cvm_program_fpga_image": resourceTencentCloudCvmProgramFpgaImage(), + "tencentcloud_cvm_modify_instance_disk_type": resourceTencentCloudCvmModifyInstanceDiskType(), + "tencentcloud_lighthouse_disk_backup": resourceTencentCloudLighthouseDiskBackup(), + "tencentcloud_lighthouse_apply_disk_backup": resourceTencentCloudLighthouseApplyDiskBackup(), + "tencentcloud_lighthouse_disk_attachment": resourceTencentCloudLighthouseDiskAttachment(), + "tencentcloud_lighthouse_key_pair": resourceTencentCloudLighthouseKeyPair(), + "tencentcloud_lighthouse_snapshot": resourceTencentCloudLighthouseSnapshot(), + "tencentcloud_lighthouse_apply_instance_snapshot": resourceTencentCloudLighthouseApplyInstanceSnapshot(), + "tencentcloud_lighthouse_start_instance": resourceTencentCloudLighthouseStartInstance(), + "tencentcloud_lighthouse_stop_instance": resourceTencentCloudLighthouseStopInstance(), + "tencentcloud_lighthouse_reboot_instance": resourceTencentCloudLighthouseRebootInstance(), + "tencentcloud_lighthouse_key_pair_attachment": resourceTencentCloudLighthouseKeyPairAttachment(), + "tencentcloud_lighthouse_disk": resourceTencentCloudLighthouseDisk(), + "tencentcloud_lighthouse_renew_disk": resourceTencentCloudLighthouseRenewDisk(), + "tencentcloud_lighthouse_renew_instance": resourceTencentCloudLighthouseRenewInstance(), + "tencentcloud_clickhouse_backup": resourceTencentCloudClickhouseBackup(), + "tencentcloud_clickhouse_backup_strategy": resourceTencentCloudClickhouseBackupStrategy(), + "tencentcloud_clickhouse_recover_backup_job": resourceTencentCloudClickhouseRecoverBackupJob(), + "tencentcloud_clickhouse_delete_backup_data": resourceTencentCloudClickhouseDeleteBackupData(), + "tencentcloud_clickhouse_account": resourceTencentCloudClickhouseAccount(), + "tencentcloud_clickhouse_account_permission": resourceTencentCloudClickhouseAccountPermission(), + "tencentcloud_api_gateway_api_doc": resourceTencentCloudAPIGatewayAPIDoc(), + "tencentcloud_api_gateway_api_app": resourceTencentCloudAPIGatewayAPIApp(), + "tencentcloud_tse_instance": resourceTencentCloudTseInstance(), + "tencentcloud_tse_cngw_gateway": resourceTencentCloudTseCngwGateway(), + "tencentcloud_tse_cngw_group": resourceTencentCloudTseCngwGroup(), + "tencentcloud_tse_cngw_service": resourceTencentCloudTseCngwService(), + "tencentcloud_tse_cngw_service_rate_limit": resourceTencentCloudTseCngwServiceRateLimit(), + "tencentcloud_tse_cngw_route": resourceTencentCloudTseCngwRoute(), + "tencentcloud_tse_cngw_route_rate_limit": resourceTencentCloudTseCngwRouteRateLimit(), + "tencentcloud_tse_cngw_canary_rule": resourceTencentCloudTseCngwCanaryRule(), + "tencentcloud_clickhouse_instance": resourceTencentCloudClickhouseInstance(), + "tencentcloud_cls_kafka_recharge": resourceTencentCloudClsKafkaRecharge(), + "tencentcloud_cls_scheduled_sql": resourceTencentCloudClsScheduledSql(), + "tencentcloud_eb_event_transform": resourceTencentCloudEbEventTransform(), + "tencentcloud_eb_event_bus": resourceTencentCloudEbEventBus(), + "tencentcloud_eb_event_rule": resourceTencentCloudEbEventRule(), + "tencentcloud_eb_event_target": resourceTencentCloudEbEventTarget(), + "tencentcloud_eb_put_events": resourceTencentCloudEbPutEvents(), + "tencentcloud_eb_event_connector": resourceTencentCloudEbEventConnector(), + "tencentcloud_dlc_work_group": resourceTencentCloudDlcWorkGroup(), + "tencentcloud_dlc_user": resourceTencentCloudDlcUser(), + "tencentcloud_wedata_rule_template": resourceTencentCloudWedataRuleTemplate(), + "tencentcloud_ssl_commit_certificate_information": resourceTencentCloudSslCommitCertificateInformation(), }, ConfigureFunc: providerConfigure, diff --git a/tencentcloud/resource_tc_private_dns_zone_vpc_attachment.go b/tencentcloud/resource_tc_private_dns_zone_vpc_attachment.go new file mode 100644 index 0000000000..6d7aeb3804 --- /dev/null +++ b/tencentcloud/resource_tc_private_dns_zone_vpc_attachment.go @@ -0,0 +1,308 @@ +/* +Provides a resource to create a PrivateDns zone_vpc_attachment + +~> **NOTE:** If you need to bind account A to account B's VPC resources, you need to first grant role authorization to account A. + +Example Usage + +Append VPC associated with private dns zone + +```hcl +resource "tencentcloud_private_dns_zone_vpc_attachment" "example" { + zone_id = "zone-6t11lof0" + + vpc_set { + uniq_vpc_id = "vpc-jdx11z0t" + region = "ap-guangzhou" + } +} +``` + +Add VPC information for associated accounts in the private dns zone + +```hcl +resource "tencentcloud_private_dns_zone_vpc_attachment" "example" { + zone_id = "zone-6t11lof0" + + account_vpc_set { + uniq_vpc_id = "vpc-82znjzn3" + region = "ap-guangzhou" + uin = "100017155920" + } +} +``` + +Import + +PrivateDns zone_vpc_attachment can be imported using the id, e.g. + +``` +terraform import tencentcloud_private_dns_zone_vpc_attachment.example zone_vpc_attachment_id +``` +*/ +package tencentcloud + +import ( + "context" + "fmt" + "log" + "strings" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + privatedns "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/privatedns/v20201028" + "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/internal/helper" +) + +func resourceTencentCloudPrivateDnsZoneVpcAttachment() *schema.Resource { + return &schema.Resource{ + Create: resourceTencentCloudPrivateDnsZoneVpcAttachmentCreate, + Read: resourceTencentCloudPrivateDnsZoneVpcAttachmentRead, + Delete: resourceTencentCloudPrivateDnsZoneVpcAttachmentDelete, + Importer: &schema.ResourceImporter{ + State: schema.ImportStatePassthrough, + }, + Schema: map[string]*schema.Schema{ + "zone_id": { + Required: true, + ForceNew: true, + Type: schema.TypeString, + Description: "PrivateZone ID.", + }, + "vpc_set": { + Optional: true, + ForceNew: true, + MaxItems: 1, + ExactlyOneOf: []string{"account_vpc_set"}, + Type: schema.TypeList, + Description: "New add vpc info.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "uniq_vpc_id": { + Type: schema.TypeString, + Required: true, + Description: "Uniq Vpc Id.", + }, + "region": { + Type: schema.TypeString, + Required: true, + Description: "Vpc region.", + }, + }, + }, + }, + "account_vpc_set": { + Optional: true, + ForceNew: true, + MaxItems: 1, + ExactlyOneOf: []string{"vpc_set"}, + Type: schema.TypeList, + Description: "New add account vpc info.", + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "uniq_vpc_id": { + Type: schema.TypeString, + Required: true, + Description: "Uniq Vpc Id.", + }, + "region": { + Type: schema.TypeString, + Required: true, + Description: "Vpc region.", + }, + "uin": { + Type: schema.TypeString, + Required: true, + Description: "Vpc owner uin. To grant role authorization to this account.", + }, + }, + }, + }, + }, + } +} + +func resourceTencentCloudPrivateDnsZoneVpcAttachmentCreate(d *schema.ResourceData, meta interface{}) error { + defer logElapsed("resource.tencentcloud_private_dns_zone_vpc_attachment.create")() + defer inconsistentCheck(d, meta)() + + var ( + logId = getLogId(contextNil) + request = privatedns.NewAddSpecifyPrivateZoneVpcRequest() + zoneId string + vpcType string + uniqVpcId string + region string + uin string + ) + + if v, ok := d.GetOk("zone_id"); ok { + request.ZoneId = helper.String(v.(string)) + zoneId = v.(string) + } + + if v, ok := d.GetOk("vpc_set"); ok { + vpcType = ADD_VPC_SET + for _, item := range v.([]interface{}) { + dMap := item.(map[string]interface{}) + vpcInfo := new(privatedns.VpcInfo) + if v, ok := dMap["uniq_vpc_id"]; ok { + vpcInfo.UniqVpcId = helper.String(v.(string)) + uniqVpcId = v.(string) + } + + if v, ok := dMap["region"]; ok { + vpcInfo.Region = helper.String(v.(string)) + region = v.(string) + } + + request.VpcSet = append(request.VpcSet, vpcInfo) + } + } + + if v, ok := d.GetOk("account_vpc_set"); ok { + vpcType = ADD_ACCOUNT_VPC_SET + for _, item := range v.([]interface{}) { + dMap := item.(map[string]interface{}) + accountVpcInfo := new(privatedns.AccountVpcInfo) + if v, ok := dMap["uniq_vpc_id"]; ok { + accountVpcInfo.UniqVpcId = helper.String(v.(string)) + uniqVpcId = v.(string) + } + + if v, ok := dMap["region"]; ok { + accountVpcInfo.Region = helper.String(v.(string)) + region = v.(string) + } + + if v, ok := dMap["uin"]; ok { + accountVpcInfo.Uin = helper.String(v.(string)) + uin = v.(string) + } + + request.AccountVpcSet = append(request.AccountVpcSet, accountVpcInfo) + } + } + + err := resource.Retry(writeRetryTimeout, func() *resource.RetryError { + result, e := meta.(*TencentCloudClient).apiV3Conn.UsePrivateDnsClient().AddSpecifyPrivateZoneVpc(request) + if e != nil { + return retryError(e) + } else { + log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, request.GetAction(), request.ToJsonString(), result.ToJsonString()) + } + + return nil + }) + + if err != nil { + log.Printf("[CRITAL]%s create PrivateDns ZoneVpcAttachment failed, reason:%+v", logId, err) + return err + } + + d.SetId(strings.Join([]string{zoneId, vpcType, uniqVpcId, region, uin}, FILED_SP)) + + return resourceTencentCloudPrivateDnsZoneVpcAttachmentRead(d, meta) +} + +func resourceTencentCloudPrivateDnsZoneVpcAttachmentRead(d *schema.ResourceData, meta interface{}) error { + defer logElapsed("resource.tencentcloud_private_dns_zone_vpc_attachment.read")() + defer inconsistentCheck(d, meta)() + + var ( + logId = getLogId(contextNil) + ctx = context.WithValue(context.TODO(), logIdKey, logId) + service = PrivateDnsService{client: meta.(*TencentCloudClient).apiV3Conn} + ) + + idSplit := strings.Split(d.Id(), FILED_SP) + if len(idSplit) != 5 { + return fmt.Errorf("id is broken,%s", idSplit) + } + + zoneId := idSplit[0] + vpcType := idSplit[1] + uniqVpcId := idSplit[2] + region := idSplit[3] + uin := idSplit[4] + + ZoneVpcAttachment, err := service.DescribePrivateDnsZoneVpcAttachmentById(ctx, zoneId) + if err != nil { + return err + } + + if ZoneVpcAttachment == nil { + d.SetId("") + log.Printf("[WARN]%s resource `PrivateDnsZoneVpcAttachment` [%s] not found, please check if it has been deleted.\n", logId, d.Id()) + return nil + } + + if ZoneVpcAttachment.ZoneId != nil { + _ = d.Set("zone_id", ZoneVpcAttachment.ZoneId) + } + + if vpcType == ADD_VPC_SET { + if ZoneVpcAttachment.VpcSet != nil { + vpcSetList := []interface{}{} + for _, vpcSet := range ZoneVpcAttachment.VpcSet { + vpcSetMap := map[string]interface{}{} + + if *vpcSet.UniqVpcId == uniqVpcId && *vpcSet.Region == region { + vpcSetMap["uniq_vpc_id"] = *vpcSet.UniqVpcId + vpcSetMap["region"] = *vpcSet.Region + vpcSetList = append(vpcSetList, vpcSetMap) + break + } + } + + _ = d.Set("vpc_set", vpcSetList) + } + } else { + if ZoneVpcAttachment.AccountVpcSet != nil { + accountVpcSetList := []interface{}{} + for _, accountVpcSet := range ZoneVpcAttachment.AccountVpcSet { + accountVpcSetMap := map[string]interface{}{} + + if *accountVpcSet.UniqVpcId == uniqVpcId && *accountVpcSet.Region == region && *accountVpcSet.Uin == uin { + accountVpcSetMap["uniq_vpc_id"] = *accountVpcSet.UniqVpcId + accountVpcSetMap["region"] = *accountVpcSet.Region + accountVpcSetMap["uin"] = *accountVpcSet.Uin + accountVpcSetList = append(accountVpcSetList, accountVpcSetMap) + break + } + } + + _ = d.Set("account_vpc_set", accountVpcSetList) + } + } + + return nil +} + +func resourceTencentCloudPrivateDnsZoneVpcAttachmentDelete(d *schema.ResourceData, meta interface{}) error { + defer logElapsed("resource.tencentcloud_private_dns_zone_vpc_attachment.delete")() + defer inconsistentCheck(d, meta)() + + var ( + logId = getLogId(contextNil) + ctx = context.WithValue(context.TODO(), logIdKey, logId) + service = PrivateDnsService{client: meta.(*TencentCloudClient).apiV3Conn} + ) + + idSplit := strings.Split(d.Id(), FILED_SP) + if len(idSplit) != 5 { + return fmt.Errorf("id is broken,%s", idSplit) + } + + zoneId := idSplit[0] + vpcType := idSplit[1] + uniqVpcId := idSplit[2] + region := idSplit[3] + uin := idSplit[4] + + if err := service.DeletePrivateDnsZoneVpcAttachmentById(ctx, zoneId, vpcType, uniqVpcId, region, uin); err != nil { + return err + } + + return nil +} diff --git a/tencentcloud/resource_tc_private_dns_zone_vpc_attachment_test.go b/tencentcloud/resource_tc_private_dns_zone_vpc_attachment_test.go new file mode 100644 index 0000000000..89464bdb51 --- /dev/null +++ b/tencentcloud/resource_tc_private_dns_zone_vpc_attachment_test.go @@ -0,0 +1,64 @@ +package tencentcloud + +import ( + "testing" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" +) + +// go test -i; go test -test.run TestAccTencentCloudPrivateDnsZoneVpcAttachmentResource_basic -v +func TestAccTencentCloudPrivateDnsZoneVpcAttachmentResource_basic(t *testing.T) { + t.Parallel() + resource.Test(t, resource.TestCase{ + PreCheck: func() { + testAccPreCheck(t) + }, + Providers: testAccProviders, + Steps: []resource.TestStep{ + { + Config: testAccPrivateDnsZoneVpcAttachment, + Check: resource.ComposeTestCheckFunc( + resource.TestCheckResourceAttrSet("tencentcloud_private_dns_zone_vpc_attachment.example1", "id"), + ), + }, + { + ResourceName: "tencentcloud_private_dns_zone_vpc_attachment.example1", + ImportState: true, + ImportStateVerify: true, + }, + { + Config: testAccPrivateDnsZoneAccountVpcAttachment, + Check: resource.ComposeTestCheckFunc( + resource.TestCheckResourceAttrSet("tencentcloud_private_dns_zone_vpc_attachment.example2", "id"), + ), + }, + { + ResourceName: "tencentcloud_private_dns_zone_vpc_attachment.example2", + ImportState: true, + ImportStateVerify: true, + }, + }, + }) +} + +const testAccPrivateDnsZoneVpcAttachment = ` +resource "tencentcloud_private_dns_zone_vpc_attachment" "example1" { + zone_id = "zone-980faacc" + + vpc_set { + uniq_vpc_id = "vpc-86v957zb" + region = "ap-guangzhou" + } +} +` + +const testAccPrivateDnsZoneAccountVpcAttachment = ` +resource "tencentcloud_private_dns_zone_vpc_attachment" "example2" { + zone_id = "zone-980faacc" + + account_vpc_set { + uniq_vpc_id = "vpc-axrsmmrv" + region = "ap-guangzhou" + uin = "100022770164" + } +}` diff --git a/tencentcloud/service_tencentcloud_private_dns.go b/tencentcloud/service_tencentcloud_private_dns.go index 7631f8aa02..82161e8a1d 100644 --- a/tencentcloud/service_tencentcloud_private_dns.go +++ b/tencentcloud/service_tencentcloud_private_dns.go @@ -5,7 +5,7 @@ import ( "log" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" - + "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common" privatedns "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/privatedns/v20201028" "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/connectivity" "github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/ratelimit" @@ -77,3 +77,75 @@ getMoreData: recordInfos = append(recordInfos, response.Response.RecordSet...) goto getMoreData } + +func (me *PrivateDnsService) DescribePrivateDnsZoneVpcAttachmentById(ctx context.Context, zoneId string) (ZoneVpcAttachment *privatedns.PrivateZone, errRet error) { + logId := getLogId(ctx) + + request := privatedns.NewDescribePrivateZoneRequest() + request.ZoneId = &zoneId + + defer func() { + if errRet != nil { + log.Printf("[CRITAL]%s api[%s] fail, request body [%s], reason[%s]\n", logId, request.GetAction(), request.ToJsonString(), errRet.Error()) + } + }() + + ratelimit.Check(request.GetAction()) + + response, err := me.client.UsePrivateDnsClient().DescribePrivateZone(request) + if err != nil { + errRet = err + return + } + + log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, request.GetAction(), request.ToJsonString(), response.ToJsonString()) + + if response.Response.PrivateZone == nil { + return + } + + ZoneVpcAttachment = response.Response.PrivateZone + + return +} + +func (me *PrivateDnsService) DeletePrivateDnsZoneVpcAttachmentById(ctx context.Context, zoneId, vpcType, uniqVpcId, region, uin string) (errRet error) { + logId := getLogId(ctx) + + request := privatedns.NewDeleteSpecifyPrivateZoneVpcRequest() + request.ZoneId = &zoneId + if vpcType == ADD_VPC_SET { + request.VpcSet = []*privatedns.VpcInfo{ + { + UniqVpcId: common.StringPtr(uniqVpcId), + Region: common.StringPtr(region), + }, + } + } else { + request.AccountVpcSet = []*privatedns.AccountVpcInfo{ + { + UniqVpcId: common.StringPtr(uniqVpcId), + Region: common.StringPtr(region), + Uin: common.StringPtr(uin), + }, + } + } + + defer func() { + if errRet != nil { + log.Printf("[CRITAL]%s api[%s] fail, request body [%s], reason[%s]\n", logId, request.GetAction(), request.ToJsonString(), errRet.Error()) + } + }() + + ratelimit.Check(request.GetAction()) + + response, err := me.client.UsePrivateDnsClient().DeleteSpecifyPrivateZoneVpc(request) + if err != nil { + errRet = err + return + } + + log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, request.GetAction(), request.ToJsonString(), response.ToJsonString()) + + return +}