Files
g.hnyhua.cn/TencentCloud/Es/V20180416/EsClient.cs
2026-02-07 15:48:27 +08:00

431 lines
18 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/*
* 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";
/// <summary>
/// Client constructor.
/// </summary>
/// <param name="credential">Credentials.</param>
/// <param name="region">Region name, such as "ap-guangzhou".</param>
public EsClient(Credential credential, string region)
: this(credential, region, new ClientProfile())
{
}
/// <summary>
/// Client Constructor.
/// </summary>
/// <param name="credential">Credentials.</param>
/// <param name="region">Region name, such as "ap-guangzhou".</param>
/// <param name="profile">Client profiles.</param>
public EsClient(Credential credential, string region, ClientProfile profile)
: base(endpoint, version, credential, region, profile)
{
}
/// <summary>
/// 创建指定规格的ES集群实例
/// </summary>
/// <param name="req"><see cref="CreateInstanceRequest"/></param>
/// <returns><see cref="CreateInstanceResponse"/></returns>
public async Task<CreateInstanceResponse> CreateInstance(CreateInstanceRequest req)
{
JsonResponseModel<CreateInstanceResponse> rsp = null;
try
{
var strResp = await this.InternalRequest(req, "CreateInstance");
rsp = JsonConvert.DeserializeObject<JsonResponseModel<CreateInstanceResponse>>(strResp);
}
catch (JsonSerializationException e)
{
throw new TencentCloudSDKException(e.Message);
}
return rsp.Response;
}
/// <summary>
/// 创建指定规格的ES集群实例
/// </summary>
/// <param name="req"><see cref="CreateInstanceRequest"/></param>
/// <returns><see cref="CreateInstanceResponse"/></returns>
public CreateInstanceResponse CreateInstanceSync(CreateInstanceRequest req)
{
JsonResponseModel<CreateInstanceResponse> rsp = null;
try
{
var strResp = this.InternalRequestSync(req, "CreateInstance");
rsp = JsonConvert.DeserializeObject<JsonResponseModel<CreateInstanceResponse>>(strResp);
}
catch (JsonSerializationException e)
{
throw new TencentCloudSDKException(e.Message);
}
return rsp.Response;
}
/// <summary>
/// 销毁集群实例
/// </summary>
/// <param name="req"><see cref="DeleteInstanceRequest"/></param>
/// <returns><see cref="DeleteInstanceResponse"/></returns>
public async Task<DeleteInstanceResponse> DeleteInstance(DeleteInstanceRequest req)
{
JsonResponseModel<DeleteInstanceResponse> rsp = null;
try
{
var strResp = await this.InternalRequest(req, "DeleteInstance");
rsp = JsonConvert.DeserializeObject<JsonResponseModel<DeleteInstanceResponse>>(strResp);
}
catch (JsonSerializationException e)
{
throw new TencentCloudSDKException(e.Message);
}
return rsp.Response;
}
/// <summary>
/// 销毁集群实例
/// </summary>
/// <param name="req"><see cref="DeleteInstanceRequest"/></param>
/// <returns><see cref="DeleteInstanceResponse"/></returns>
public DeleteInstanceResponse DeleteInstanceSync(DeleteInstanceRequest req)
{
JsonResponseModel<DeleteInstanceResponse> rsp = null;
try
{
var strResp = this.InternalRequestSync(req, "DeleteInstance");
rsp = JsonConvert.DeserializeObject<JsonResponseModel<DeleteInstanceResponse>>(strResp);
}
catch (JsonSerializationException e)
{
throw new TencentCloudSDKException(e.Message);
}
return rsp.Response;
}
/// <summary>
/// 查询用户该地域下符合条件的ES集群的日志
/// </summary>
/// <param name="req"><see cref="DescribeInstanceLogsRequest"/></param>
/// <returns><see cref="DescribeInstanceLogsResponse"/></returns>
public async Task<DescribeInstanceLogsResponse> DescribeInstanceLogs(DescribeInstanceLogsRequest req)
{
JsonResponseModel<DescribeInstanceLogsResponse> rsp = null;
try
{
var strResp = await this.InternalRequest(req, "DescribeInstanceLogs");
rsp = JsonConvert.DeserializeObject<JsonResponseModel<DescribeInstanceLogsResponse>>(strResp);
}
catch (JsonSerializationException e)
{
throw new TencentCloudSDKException(e.Message);
}
return rsp.Response;
}
/// <summary>
/// 查询用户该地域下符合条件的ES集群的日志
/// </summary>
/// <param name="req"><see cref="DescribeInstanceLogsRequest"/></param>
/// <returns><see cref="DescribeInstanceLogsResponse"/></returns>
public DescribeInstanceLogsResponse DescribeInstanceLogsSync(DescribeInstanceLogsRequest req)
{
JsonResponseModel<DescribeInstanceLogsResponse> rsp = null;
try
{
var strResp = this.InternalRequestSync(req, "DescribeInstanceLogs");
rsp = JsonConvert.DeserializeObject<JsonResponseModel<DescribeInstanceLogsResponse>>(strResp);
}
catch (JsonSerializationException e)
{
throw new TencentCloudSDKException(e.Message);
}
return rsp.Response;
}
/// <summary>
/// 查询实例指定条件下的操作记录
/// </summary>
/// <param name="req"><see cref="DescribeInstanceOperationsRequest"/></param>
/// <returns><see cref="DescribeInstanceOperationsResponse"/></returns>
public async Task<DescribeInstanceOperationsResponse> DescribeInstanceOperations(DescribeInstanceOperationsRequest req)
{
JsonResponseModel<DescribeInstanceOperationsResponse> rsp = null;
try
{
var strResp = await this.InternalRequest(req, "DescribeInstanceOperations");
rsp = JsonConvert.DeserializeObject<JsonResponseModel<DescribeInstanceOperationsResponse>>(strResp);
}
catch (JsonSerializationException e)
{
throw new TencentCloudSDKException(e.Message);
}
return rsp.Response;
}
/// <summary>
/// 查询实例指定条件下的操作记录
/// </summary>
/// <param name="req"><see cref="DescribeInstanceOperationsRequest"/></param>
/// <returns><see cref="DescribeInstanceOperationsResponse"/></returns>
public DescribeInstanceOperationsResponse DescribeInstanceOperationsSync(DescribeInstanceOperationsRequest req)
{
JsonResponseModel<DescribeInstanceOperationsResponse> rsp = null;
try
{
var strResp = this.InternalRequestSync(req, "DescribeInstanceOperations");
rsp = JsonConvert.DeserializeObject<JsonResponseModel<DescribeInstanceOperationsResponse>>(strResp);
}
catch (JsonSerializationException e)
{
throw new TencentCloudSDKException(e.Message);
}
return rsp.Response;
}
/// <summary>
/// 查询用户该地域下符合条件的所有实例
/// </summary>
/// <param name="req"><see cref="DescribeInstancesRequest"/></param>
/// <returns><see cref="DescribeInstancesResponse"/></returns>
public async Task<DescribeInstancesResponse> DescribeInstances(DescribeInstancesRequest req)
{
JsonResponseModel<DescribeInstancesResponse> rsp = null;
try
{
var strResp = await this.InternalRequest(req, "DescribeInstances");
rsp = JsonConvert.DeserializeObject<JsonResponseModel<DescribeInstancesResponse>>(strResp);
}
catch (JsonSerializationException e)
{
throw new TencentCloudSDKException(e.Message);
}
return rsp.Response;
}
/// <summary>
/// 查询用户该地域下符合条件的所有实例
/// </summary>
/// <param name="req"><see cref="DescribeInstancesRequest"/></param>
/// <returns><see cref="DescribeInstancesResponse"/></returns>
public DescribeInstancesResponse DescribeInstancesSync(DescribeInstancesRequest req)
{
JsonResponseModel<DescribeInstancesResponse> rsp = null;
try
{
var strResp = this.InternalRequestSync(req, "DescribeInstances");
rsp = JsonConvert.DeserializeObject<JsonResponseModel<DescribeInstancesResponse>>(strResp);
}
catch (JsonSerializationException e)
{
throw new TencentCloudSDKException(e.Message);
}
return rsp.Response;
}
/// <summary>
/// 重启ES集群实例(用于系统版本更新等操作)
/// </summary>
/// <param name="req"><see cref="RestartInstanceRequest"/></param>
/// <returns><see cref="RestartInstanceResponse"/></returns>
public async Task<RestartInstanceResponse> RestartInstance(RestartInstanceRequest req)
{
JsonResponseModel<RestartInstanceResponse> rsp = null;
try
{
var strResp = await this.InternalRequest(req, "RestartInstance");
rsp = JsonConvert.DeserializeObject<JsonResponseModel<RestartInstanceResponse>>(strResp);
}
catch (JsonSerializationException e)
{
throw new TencentCloudSDKException(e.Message);
}
return rsp.Response;
}
/// <summary>
/// 重启ES集群实例(用于系统版本更新等操作)
/// </summary>
/// <param name="req"><see cref="RestartInstanceRequest"/></param>
/// <returns><see cref="RestartInstanceResponse"/></returns>
public RestartInstanceResponse RestartInstanceSync(RestartInstanceRequest req)
{
JsonResponseModel<RestartInstanceResponse> rsp = null;
try
{
var strResp = this.InternalRequestSync(req, "RestartInstance");
rsp = JsonConvert.DeserializeObject<JsonResponseModel<RestartInstanceResponse>>(strResp);
}
catch (JsonSerializationException e)
{
throw new TencentCloudSDKException(e.Message);
}
return rsp.Response;
}
/// <summary>
/// 对集群进行节点规格变更,修改实例名称,修改配置,重置密码, 添加Kibana黑白名单等操作。参数中InstanceId为必传参数ForceRestart为选填参数剩余参数传递组合及含义如下
/// - InstanceName修改实例名称(仅用于标识实例)
/// - NodeInfoList: 修改节点配置(节点横向扩缩容,纵向扩缩容,增加主节点,增加冷节点等)
/// - EsConfig修改集群配置
/// - Password修改默认用户elastic的密码
/// - EsAcl修改访问控制列表
/// - CosBackUp: 设置集群COS自动备份信息
/// 以上参数组合只能传递一种,多传或少传均会导致请求失败
/// </summary>
/// <param name="req"><see cref="UpdateInstanceRequest"/></param>
/// <returns><see cref="UpdateInstanceResponse"/></returns>
public async Task<UpdateInstanceResponse> UpdateInstance(UpdateInstanceRequest req)
{
JsonResponseModel<UpdateInstanceResponse> rsp = null;
try
{
var strResp = await this.InternalRequest(req, "UpdateInstance");
rsp = JsonConvert.DeserializeObject<JsonResponseModel<UpdateInstanceResponse>>(strResp);
}
catch (JsonSerializationException e)
{
throw new TencentCloudSDKException(e.Message);
}
return rsp.Response;
}
/// <summary>
/// 对集群进行节点规格变更,修改实例名称,修改配置,重置密码, 添加Kibana黑白名单等操作。参数中InstanceId为必传参数ForceRestart为选填参数剩余参数传递组合及含义如下
/// - InstanceName修改实例名称(仅用于标识实例)
/// - NodeInfoList: 修改节点配置(节点横向扩缩容,纵向扩缩容,增加主节点,增加冷节点等)
/// - EsConfig修改集群配置
/// - Password修改默认用户elastic的密码
/// - EsAcl修改访问控制列表
/// - CosBackUp: 设置集群COS自动备份信息
/// 以上参数组合只能传递一种,多传或少传均会导致请求失败
/// </summary>
/// <param name="req"><see cref="UpdateInstanceRequest"/></param>
/// <returns><see cref="UpdateInstanceResponse"/></returns>
public UpdateInstanceResponse UpdateInstanceSync(UpdateInstanceRequest req)
{
JsonResponseModel<UpdateInstanceResponse> rsp = null;
try
{
var strResp = this.InternalRequestSync(req, "UpdateInstance");
rsp = JsonConvert.DeserializeObject<JsonResponseModel<UpdateInstanceResponse>>(strResp);
}
catch (JsonSerializationException e)
{
throw new TencentCloudSDKException(e.Message);
}
return rsp.Response;
}
/// <summary>
/// 升级ES集群版本
/// </summary>
/// <param name="req"><see cref="UpgradeInstanceRequest"/></param>
/// <returns><see cref="UpgradeInstanceResponse"/></returns>
public async Task<UpgradeInstanceResponse> UpgradeInstance(UpgradeInstanceRequest req)
{
JsonResponseModel<UpgradeInstanceResponse> rsp = null;
try
{
var strResp = await this.InternalRequest(req, "UpgradeInstance");
rsp = JsonConvert.DeserializeObject<JsonResponseModel<UpgradeInstanceResponse>>(strResp);
}
catch (JsonSerializationException e)
{
throw new TencentCloudSDKException(e.Message);
}
return rsp.Response;
}
/// <summary>
/// 升级ES集群版本
/// </summary>
/// <param name="req"><see cref="UpgradeInstanceRequest"/></param>
/// <returns><see cref="UpgradeInstanceResponse"/></returns>
public UpgradeInstanceResponse UpgradeInstanceSync(UpgradeInstanceRequest req)
{
JsonResponseModel<UpgradeInstanceResponse> rsp = null;
try
{
var strResp = this.InternalRequestSync(req, "UpgradeInstance");
rsp = JsonConvert.DeserializeObject<JsonResponseModel<UpgradeInstanceResponse>>(strResp);
}
catch (JsonSerializationException e)
{
throw new TencentCloudSDKException(e.Message);
}
return rsp.Response;
}
/// <summary>
/// 升级ES商业特性
/// </summary>
/// <param name="req"><see cref="UpgradeLicenseRequest"/></param>
/// <returns><see cref="UpgradeLicenseResponse"/></returns>
public async Task<UpgradeLicenseResponse> UpgradeLicense(UpgradeLicenseRequest req)
{
JsonResponseModel<UpgradeLicenseResponse> rsp = null;
try
{
var strResp = await this.InternalRequest(req, "UpgradeLicense");
rsp = JsonConvert.DeserializeObject<JsonResponseModel<UpgradeLicenseResponse>>(strResp);
}
catch (JsonSerializationException e)
{
throw new TencentCloudSDKException(e.Message);
}
return rsp.Response;
}
/// <summary>
/// 升级ES商业特性
/// </summary>
/// <param name="req"><see cref="UpgradeLicenseRequest"/></param>
/// <returns><see cref="UpgradeLicenseResponse"/></returns>
public UpgradeLicenseResponse UpgradeLicenseSync(UpgradeLicenseRequest req)
{
JsonResponseModel<UpgradeLicenseResponse> rsp = null;
try
{
var strResp = this.InternalRequestSync(req, "UpgradeLicense");
rsp = JsonConvert.DeserializeObject<JsonResponseModel<UpgradeLicenseResponse>>(strResp);
}
catch (JsonSerializationException e)
{
throw new TencentCloudSDKException(e.Message);
}
return rsp.Response;
}
}
}