/* * Copyright (c) 2018 THL A29 Limited, a Tencent company. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ namespace TencentCloud.Es.V20180416 { using Newtonsoft.Json; using System.Threading.Tasks; using TencentCloud.Common; using TencentCloud.Common.Profile; using TencentCloud.Es.V20180416.Models; public class EsClient : AbstractClient{ private const string endpoint = "es.tencentcloudapi.com"; private const string version = "2018-04-16"; /// /// Client constructor. /// /// Credentials. /// Region name, such as "ap-guangzhou". public EsClient(Credential credential, string region) : this(credential, region, new ClientProfile()) { } /// /// Client Constructor. /// /// Credentials. /// Region name, such as "ap-guangzhou". /// Client profiles. public EsClient(Credential credential, string region, ClientProfile profile) : base(endpoint, version, credential, region, profile) { } /// /// 创建指定规格的ES集群实例 /// /// /// public async Task CreateInstance(CreateInstanceRequest req) { JsonResponseModel rsp = null; try { var strResp = await this.InternalRequest(req, "CreateInstance"); rsp = JsonConvert.DeserializeObject>(strResp); } catch (JsonSerializationException e) { throw new TencentCloudSDKException(e.Message); } return rsp.Response; } /// /// 创建指定规格的ES集群实例 /// /// /// public CreateInstanceResponse CreateInstanceSync(CreateInstanceRequest req) { JsonResponseModel rsp = null; try { var strResp = this.InternalRequestSync(req, "CreateInstance"); rsp = JsonConvert.DeserializeObject>(strResp); } catch (JsonSerializationException e) { throw new TencentCloudSDKException(e.Message); } return rsp.Response; } /// /// 销毁集群实例 /// /// /// public async Task DeleteInstance(DeleteInstanceRequest req) { JsonResponseModel rsp = null; try { var strResp = await this.InternalRequest(req, "DeleteInstance"); rsp = JsonConvert.DeserializeObject>(strResp); } catch (JsonSerializationException e) { throw new TencentCloudSDKException(e.Message); } return rsp.Response; } /// /// 销毁集群实例 /// /// /// public DeleteInstanceResponse DeleteInstanceSync(DeleteInstanceRequest req) { JsonResponseModel rsp = null; try { var strResp = this.InternalRequestSync(req, "DeleteInstance"); rsp = JsonConvert.DeserializeObject>(strResp); } catch (JsonSerializationException e) { throw new TencentCloudSDKException(e.Message); } return rsp.Response; } /// /// 查询用户该地域下符合条件的ES集群的日志 /// /// /// public async Task DescribeInstanceLogs(DescribeInstanceLogsRequest req) { JsonResponseModel rsp = null; try { var strResp = await this.InternalRequest(req, "DescribeInstanceLogs"); rsp = JsonConvert.DeserializeObject>(strResp); } catch (JsonSerializationException e) { throw new TencentCloudSDKException(e.Message); } return rsp.Response; } /// /// 查询用户该地域下符合条件的ES集群的日志 /// /// /// public DescribeInstanceLogsResponse DescribeInstanceLogsSync(DescribeInstanceLogsRequest req) { JsonResponseModel rsp = null; try { var strResp = this.InternalRequestSync(req, "DescribeInstanceLogs"); rsp = JsonConvert.DeserializeObject>(strResp); } catch (JsonSerializationException e) { throw new TencentCloudSDKException(e.Message); } return rsp.Response; } /// /// 查询实例指定条件下的操作记录 /// /// /// public async Task DescribeInstanceOperations(DescribeInstanceOperationsRequest req) { JsonResponseModel rsp = null; try { var strResp = await this.InternalRequest(req, "DescribeInstanceOperations"); rsp = JsonConvert.DeserializeObject>(strResp); } catch (JsonSerializationException e) { throw new TencentCloudSDKException(e.Message); } return rsp.Response; } /// /// 查询实例指定条件下的操作记录 /// /// /// public DescribeInstanceOperationsResponse DescribeInstanceOperationsSync(DescribeInstanceOperationsRequest req) { JsonResponseModel rsp = null; try { var strResp = this.InternalRequestSync(req, "DescribeInstanceOperations"); rsp = JsonConvert.DeserializeObject>(strResp); } catch (JsonSerializationException e) { throw new TencentCloudSDKException(e.Message); } return rsp.Response; } /// /// 查询用户该地域下符合条件的所有实例 /// /// /// public async Task DescribeInstances(DescribeInstancesRequest req) { JsonResponseModel rsp = null; try { var strResp = await this.InternalRequest(req, "DescribeInstances"); rsp = JsonConvert.DeserializeObject>(strResp); } catch (JsonSerializationException e) { throw new TencentCloudSDKException(e.Message); } return rsp.Response; } /// /// 查询用户该地域下符合条件的所有实例 /// /// /// public DescribeInstancesResponse DescribeInstancesSync(DescribeInstancesRequest req) { JsonResponseModel rsp = null; try { var strResp = this.InternalRequestSync(req, "DescribeInstances"); rsp = JsonConvert.DeserializeObject>(strResp); } catch (JsonSerializationException e) { throw new TencentCloudSDKException(e.Message); } return rsp.Response; } /// /// 重启ES集群实例(用于系统版本更新等操作) /// /// /// public async Task RestartInstance(RestartInstanceRequest req) { JsonResponseModel rsp = null; try { var strResp = await this.InternalRequest(req, "RestartInstance"); rsp = JsonConvert.DeserializeObject>(strResp); } catch (JsonSerializationException e) { throw new TencentCloudSDKException(e.Message); } return rsp.Response; } /// /// 重启ES集群实例(用于系统版本更新等操作) /// /// /// public RestartInstanceResponse RestartInstanceSync(RestartInstanceRequest req) { JsonResponseModel rsp = null; try { var strResp = this.InternalRequestSync(req, "RestartInstance"); rsp = JsonConvert.DeserializeObject>(strResp); } catch (JsonSerializationException e) { throw new TencentCloudSDKException(e.Message); } return rsp.Response; } /// /// 对集群进行节点规格变更,修改实例名称,修改配置,重置密码, 添加Kibana黑白名单等操作。参数中InstanceId为必传参数,ForceRestart为选填参数,剩余参数传递组合及含义如下: /// - InstanceName:修改实例名称(仅用于标识实例) /// - NodeInfoList: 修改节点配置(节点横向扩缩容,纵向扩缩容,增加主节点,增加冷节点等) /// - EsConfig:修改集群配置 /// - Password:修改默认用户elastic的密码 /// - EsAcl:修改访问控制列表 /// - CosBackUp: 设置集群COS自动备份信息 /// 以上参数组合只能传递一种,多传或少传均会导致请求失败 /// /// /// public async Task UpdateInstance(UpdateInstanceRequest req) { JsonResponseModel rsp = null; try { var strResp = await this.InternalRequest(req, "UpdateInstance"); rsp = JsonConvert.DeserializeObject>(strResp); } catch (JsonSerializationException e) { throw new TencentCloudSDKException(e.Message); } return rsp.Response; } /// /// 对集群进行节点规格变更,修改实例名称,修改配置,重置密码, 添加Kibana黑白名单等操作。参数中InstanceId为必传参数,ForceRestart为选填参数,剩余参数传递组合及含义如下: /// - InstanceName:修改实例名称(仅用于标识实例) /// - NodeInfoList: 修改节点配置(节点横向扩缩容,纵向扩缩容,增加主节点,增加冷节点等) /// - EsConfig:修改集群配置 /// - Password:修改默认用户elastic的密码 /// - EsAcl:修改访问控制列表 /// - CosBackUp: 设置集群COS自动备份信息 /// 以上参数组合只能传递一种,多传或少传均会导致请求失败 /// /// /// public UpdateInstanceResponse UpdateInstanceSync(UpdateInstanceRequest req) { JsonResponseModel rsp = null; try { var strResp = this.InternalRequestSync(req, "UpdateInstance"); rsp = JsonConvert.DeserializeObject>(strResp); } catch (JsonSerializationException e) { throw new TencentCloudSDKException(e.Message); } return rsp.Response; } /// /// 升级ES集群版本 /// /// /// public async Task UpgradeInstance(UpgradeInstanceRequest req) { JsonResponseModel rsp = null; try { var strResp = await this.InternalRequest(req, "UpgradeInstance"); rsp = JsonConvert.DeserializeObject>(strResp); } catch (JsonSerializationException e) { throw new TencentCloudSDKException(e.Message); } return rsp.Response; } /// /// 升级ES集群版本 /// /// /// public UpgradeInstanceResponse UpgradeInstanceSync(UpgradeInstanceRequest req) { JsonResponseModel rsp = null; try { var strResp = this.InternalRequestSync(req, "UpgradeInstance"); rsp = JsonConvert.DeserializeObject>(strResp); } catch (JsonSerializationException e) { throw new TencentCloudSDKException(e.Message); } return rsp.Response; } /// /// 升级ES商业特性 /// /// /// public async Task UpgradeLicense(UpgradeLicenseRequest req) { JsonResponseModel rsp = null; try { var strResp = await this.InternalRequest(req, "UpgradeLicense"); rsp = JsonConvert.DeserializeObject>(strResp); } catch (JsonSerializationException e) { throw new TencentCloudSDKException(e.Message); } return rsp.Response; } /// /// 升级ES商业特性 /// /// /// public UpgradeLicenseResponse UpgradeLicenseSync(UpgradeLicenseRequest req) { JsonResponseModel rsp = null; try { var strResp = this.InternalRequestSync(req, "UpgradeLicense"); rsp = JsonConvert.DeserializeObject>(strResp); } catch (JsonSerializationException e) { throw new TencentCloudSDKException(e.Message); } return rsp.Response; } } }