//package com.ruoyi.aicall.tencent;
//
//import com.tencentcloudapi.common.AbstractModel;
//
//import com.tencentcloudapi.common.Credential;
//import com.tencentcloudapi.common.profile.ClientProfile;
//import com.tencentcloudapi.common.profile.HttpProfile;
//import com.tencentcloudapi.common.exception.TencentCloudSDKException;
//import com.tencentcloudapi.lighthouse.v20200324.LighthouseClient;
//import com.tencentcloudapi.lighthouse.v20200324.models.*;
//import lombok.extern.slf4j.Slf4j;
//
//import java.util.Arrays;
//
//@Slf4j
//public class TencentCloudManage
//{
//    public static void main(String [] args) {
//        String secretId = "";
//        String secretKey = "";
//        String region = "";
//
//    }
//
//
//    public void describeInstances(String secretId, String secretKey, String region) {
//        try{
//            // 密钥信息从环境变量读取，需要提前在环境变量中设置 TENCENTCLOUD_SECRET_ID 和 TENCENTCLOUD_SECRET_KEY
//            // 使用环境变量方式可以避免密钥硬编码在代码中，提高安全性
//            // 生产环境建议使用更安全的密钥管理方案，如密钥管理系统(KMS)、容器密钥注入等
//            // 请参见：https://cloud.tencent.com/document/product/1278/85305
//            // 密钥可前往官网控制台 https://console.cloud.tencent.com/cam/capi 进行获取
//            Credential cred = new Credential(secretId, secretKey);
//            // 使用临时密钥示例
//            // Credential cred = new Credential("SecretId", "SecretKey", "Token");
//            // 实例化一个http选项，可选的，没有特殊需求可以跳过
//            HttpProfile httpProfile = new HttpProfile();
//            httpProfile.setEndpoint("lighthouse.tencentcloudapi.com");
//            // 实例化一个client选项，可选的，没有特殊需求可以跳过
//            ClientProfile clientProfile = new ClientProfile();
//            clientProfile.setHttpProfile(httpProfile);
//            // 实例化要请求产品的client对象,clientProfile是可选的
//            LighthouseClient client = new LighthouseClient(cred, region, clientProfile);
//            // 实例化一个请求对象,每个接口都会对应一个request对象
//            DescribeInstancesRequest req = new DescribeInstancesRequest();
//
//            // 返回的resp是一个DescribeInstancesResponse的实例，与请求对象对应
//            DescribeInstancesResponse resp = client.DescribeInstances(req);
//            // 输出json格式的字符串回包
//            log.info(AbstractModel.toJsonString(resp));
//        } catch (TencentCloudSDKException e) {
//            log.info(e.toString());
//        }
//    }
//
//    public void describeFirewallRules(String secretId, String secretKey, String region, String instanceId){
//        try{
//            // 密钥信息从环境变量读取，需要提前在环境变量中设置 TENCENTCLOUD_SECRET_ID 和 TENCENTCLOUD_SECRET_KEY
//            // 使用环境变量方式可以避免密钥硬编码在代码中，提高安全性
//            // 生产环境建议使用更安全的密钥管理方案，如密钥管理系统(KMS)、容器密钥注入等
//            // 请参见：https://cloud.tencent.com/document/product/1278/85305
//            // 密钥可前往官网控制台 https://console.cloud.tencent.com/cam/capi 进行获取
//            Credential cred = new Credential(secretId, secretKey);
//            // 使用临时密钥示例
//            // Credential cred = new Credential("SecretId", "SecretKey", "Token");
//            // 实例化一个http选项，可选的，没有特殊需求可以跳过
//            HttpProfile httpProfile = new HttpProfile();
//            httpProfile.setEndpoint("lighthouse.tencentcloudapi.com");
//            // 实例化一个client选项，可选的，没有特殊需求可以跳过
//            ClientProfile clientProfile = new ClientProfile();
//            clientProfile.setHttpProfile(httpProfile);
//            // 实例化要请求产品的client对象,clientProfile是可选的
//            LighthouseClient client = new LighthouseClient(cred, region, clientProfile);
//            // 实例化一个请求对象,每个接口都会对应一个request对象
//            DescribeFirewallRulesRequest req = new DescribeFirewallRulesRequest();
//            req.setInstanceId(instanceId);
//
//            // 返回的resp是一个DescribeFirewallRulesResponse的实例，与请求对象对应
//            DescribeFirewallRulesResponse resp = client.DescribeFirewallRules(req);
//            // 输出json格式的字符串回包
//            log.info(AbstractModel.toJsonString(resp));
//        } catch (TencentCloudSDKException e) {
//            log.info(e.toString());
//        }
//    }
//
//    public void createFirewallRules(String secretId, String secretKey, String region, String instanceId, String allowedIp){
//
//        try{
//            // 密钥信息从环境变量读取，需要提前在环境变量中设置 TENCENTCLOUD_SECRET_ID 和 TENCENTCLOUD_SECRET_KEY
//            // 使用环境变量方式可以避免密钥硬编码在代码中，提高安全性
//            // 生产环境建议使用更安全的密钥管理方案，如密钥管理系统(KMS)、容器密钥注入等
//            // 请参见：https://cloud.tencent.com/document/product/1278/85305
//            // 密钥可前往官网控制台 https://console.cloud.tencent.com/cam/capi 进行获取
//            // 接口文档：https://console.cloud.tencent.com/api/explorer?Product=lighthouse&Version=2020-03-24&Action=DescribeFirewallRules
//
//            Credential cred = new Credential(secretId, secretKey);
//            // 使用临时密钥示例
//            // Credential cred = new Credential("SecretId", "SecretKey", "Token");
//            // 实例化一个http选项，可选的，没有特殊需求可以跳过
//            HttpProfile httpProfile = new HttpProfile();
//            httpProfile.setEndpoint("lighthouse.tencentcloudapi.com");
//            // 实例化一个client选项，可选的，没有特殊需求可以跳过
//            ClientProfile clientProfile = new ClientProfile();
//            clientProfile.setHttpProfile(httpProfile);
//            // 实例化要请求产品的client对象,clientProfile是可选的
//            LighthouseClient client = new LighthouseClient(cred, region, clientProfile);
//            // 实例化一个请求对象,每个接口都会对应一个request对象
//            CreateFirewallRulesRequest req = new CreateFirewallRulesRequest();
//            req.setInstanceId(instanceId);
//            FirewallRule[] firewallRules1 = new FirewallRule[1];
//            FirewallRule firewallRule1 = new FirewallRule();
//            firewallRule1.setPort("5080");
//            firewallRule1.setProtocol("UDP");
//
//            // 关键：设置CIDR表示的IP范围，限制只有指定IP可以访问
//            // 支持格式：单个IP (如 "1.1.1.1/32") 或 IP段 (如 "192.168.1.0/24")
//            // 多个IP用逗号分隔，如 "1.1.1.1/32,2.2.2.2/32"
//            firewallRule1.setCidrBlock(allowedIp + "/32");
//            // 可选：设置防火墙规则备注/描述
//            firewallRule1.setFirewallRuleDescription("允许指定IP访问5080 UDP端口");
//            // 设置动作，默认为ACCEPT（接受），可选值：ACCEPT/DROP
//            firewallRule1.setAction("ACCEPT");
//
//            firewallRules1[0] = firewallRule1;
//            req.setFirewallRules(firewallRules1);
//
//            // 返回的resp是一个CreateFirewallRulesResponse的实例，与请求对象对应
//            CreateFirewallRulesResponse resp = client.CreateFirewallRules(req);
//            // 输出json格式的字符串回包
//            log.info(AbstractModel.toJsonString(resp));
//        } catch (TencentCloudSDKException e) {
//            log.info(e.toString());
//        }
//    }
//
//    public void deleteFirewallRules(String secretId, String secretKey, String region, String instanceId, String allowedIp){
//        try{
//            // 密钥信息从环境变量读取，需要提前在环境变量中设置 TENCENTCLOUD_SECRET_ID 和 TENCENTCLOUD_SECRET_KEY
//            // 使用环境变量方式可以避免密钥硬编码在代码中，提高安全性
//            // 生产环境建议使用更安全的密钥管理方案，如密钥管理系统(KMS)、容器密钥注入等
//            // 请参见：https://cloud.tencent.com/document/product/1278/85305
//            // 密钥可前往官网控制台 https://console.cloud.tencent.com/cam/capi 进行获取
//            Credential cred = new Credential(secretId, secretKey);
//            // 使用临时密钥示例
//            // Credential cred = new Credential("SecretId", "SecretKey", "Token");
//            // 实例化一个http选项，可选的，没有特殊需求可以跳过
//            HttpProfile httpProfile = new HttpProfile();
//            httpProfile.setEndpoint("lighthouse.tencentcloudapi.com");
//            // 实例化一个client选项，可选的，没有特殊需求可以跳过
//            ClientProfile clientProfile = new ClientProfile();
//            clientProfile.setHttpProfile(httpProfile);
//            // 实例化要请求产品的client对象,clientProfile是可选的
//            LighthouseClient client = new LighthouseClient(cred, region, clientProfile);
//            // 实例化一个请求对象,每个接口都会对应一个request对象
//            DeleteFirewallRulesRequest req = new DeleteFirewallRulesRequest();
//            req.setInstanceId(instanceId);
//
//            FirewallRule[] firewallRules1 = new FirewallRule[1];
//            FirewallRule firewallRule1 = new FirewallRule();
//            firewallRule1.setProtocol("UDP");
//            firewallRule1.setPort("5080");
//            firewallRule1.setCidrBlock(allowedIp + "/32");
//            firewallRules1[0] = firewallRule1;
//            req.setFirewallRules(firewallRules1);
//
//            // 返回的resp是一个DeleteFirewallRulesResponse的实例，与请求对象对应
//            DeleteFirewallRulesResponse resp = client.DeleteFirewallRules(req);
//            // 输出json格式的字符串回包
//            log.info(AbstractModel.toJsonString(resp));
//        } catch (TencentCloudSDKException e) {
//            log.info(e.toString());
//        }
//    }
//}
