/* * 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.Ssm.V20190923 { using Newtonsoft.Json; using System.Threading.Tasks; using TencentCloud.Common; using TencentCloud.Common.Profile; using TencentCloud.Ssm.V20190923.Models; public class SsmClient : AbstractClient{ private const string endpoint = "ssm.tencentcloudapi.com"; private const string version = "2019-09-23"; /// /// Client constructor. /// /// Credentials. /// Region name, such as "ap-guangzhou". public SsmClient(Credential credential, string region) : this(credential, region, new ClientProfile()) { } /// /// Client Constructor. /// /// Credentials. /// Region name, such as "ap-guangzhou". /// Client profiles. public SsmClient(Credential credential, string region, ClientProfile profile) : base(endpoint, version, credential, region, profile) { } /// /// 创建新的凭据信息,通过KMS进行加密保护。每个Region最多可创建存储1000个凭据信息。 /// /// /// public async Task CreateSecret(CreateSecretRequest req) { JsonResponseModel rsp = null; try { var strResp = await this.InternalRequest(req, "CreateSecret"); rsp = JsonConvert.DeserializeObject>(strResp); } catch (JsonSerializationException e) { throw new TencentCloudSDKException(e.Message); } return rsp.Response; } /// /// 创建新的凭据信息,通过KMS进行加密保护。每个Region最多可创建存储1000个凭据信息。 /// /// /// public CreateSecretResponse CreateSecretSync(CreateSecretRequest req) { JsonResponseModel rsp = null; try { var strResp = this.InternalRequestSync(req, "CreateSecret"); rsp = JsonConvert.DeserializeObject>(strResp); } catch (JsonSerializationException e) { throw new TencentCloudSDKException(e.Message); } return rsp.Response; } /// /// 删除指定的凭据信息,可以通过RecoveryWindowInDays参数设置立即删除或者计划删除。对于计划删除的凭据,在删除日期到达之前状态为 PendingDelete,并可以通过RestoreSecret 进行恢复,超出指定删除日期之后会被彻底删除。您必须先通过 DisableSecret 停用凭据后才可以进行(计划)删除操作。 /// /// /// public async Task DeleteSecret(DeleteSecretRequest req) { JsonResponseModel rsp = null; try { var strResp = await this.InternalRequest(req, "DeleteSecret"); rsp = JsonConvert.DeserializeObject>(strResp); } catch (JsonSerializationException e) { throw new TencentCloudSDKException(e.Message); } return rsp.Response; } /// /// 删除指定的凭据信息,可以通过RecoveryWindowInDays参数设置立即删除或者计划删除。对于计划删除的凭据,在删除日期到达之前状态为 PendingDelete,并可以通过RestoreSecret 进行恢复,超出指定删除日期之后会被彻底删除。您必须先通过 DisableSecret 停用凭据后才可以进行(计划)删除操作。 /// /// /// public DeleteSecretResponse DeleteSecretSync(DeleteSecretRequest req) { JsonResponseModel rsp = null; try { var strResp = this.InternalRequestSync(req, "DeleteSecret"); rsp = JsonConvert.DeserializeObject>(strResp); } catch (JsonSerializationException e) { throw new TencentCloudSDKException(e.Message); } return rsp.Response; } /// /// 该接口用于直接删除指定凭据下的单个版本凭据,删除操作立即生效,对所有状态下的凭据版本都可以删除。 /// /// /// public async Task DeleteSecretVersion(DeleteSecretVersionRequest req) { JsonResponseModel rsp = null; try { var strResp = await this.InternalRequest(req, "DeleteSecretVersion"); rsp = JsonConvert.DeserializeObject>(strResp); } catch (JsonSerializationException e) { throw new TencentCloudSDKException(e.Message); } return rsp.Response; } /// /// 该接口用于直接删除指定凭据下的单个版本凭据,删除操作立即生效,对所有状态下的凭据版本都可以删除。 /// /// /// public DeleteSecretVersionResponse DeleteSecretVersionSync(DeleteSecretVersionRequest req) { JsonResponseModel rsp = null; try { var strResp = this.InternalRequestSync(req, "DeleteSecretVersion"); rsp = JsonConvert.DeserializeObject>(strResp); } catch (JsonSerializationException e) { throw new TencentCloudSDKException(e.Message); } return rsp.Response; } /// /// 获取凭据的详细属性信息。 /// /// /// public async Task DescribeSecret(DescribeSecretRequest req) { JsonResponseModel rsp = null; try { var strResp = await this.InternalRequest(req, "DescribeSecret"); rsp = JsonConvert.DeserializeObject>(strResp); } catch (JsonSerializationException e) { throw new TencentCloudSDKException(e.Message); } return rsp.Response; } /// /// 获取凭据的详细属性信息。 /// /// /// public DescribeSecretResponse DescribeSecretSync(DescribeSecretRequest req) { JsonResponseModel rsp = null; try { var strResp = this.InternalRequestSync(req, "DescribeSecret"); rsp = JsonConvert.DeserializeObject>(strResp); } catch (JsonSerializationException e) { throw new TencentCloudSDKException(e.Message); } return rsp.Response; } /// /// 停用指定的凭据,停用后状态为 Disabled,无法通过接口获取该凭据的明文。 /// /// /// public async Task DisableSecret(DisableSecretRequest req) { JsonResponseModel rsp = null; try { var strResp = await this.InternalRequest(req, "DisableSecret"); rsp = JsonConvert.DeserializeObject>(strResp); } catch (JsonSerializationException e) { throw new TencentCloudSDKException(e.Message); } return rsp.Response; } /// /// 停用指定的凭据,停用后状态为 Disabled,无法通过接口获取该凭据的明文。 /// /// /// public DisableSecretResponse DisableSecretSync(DisableSecretRequest req) { JsonResponseModel rsp = null; try { var strResp = this.InternalRequestSync(req, "DisableSecret"); rsp = JsonConvert.DeserializeObject>(strResp); } catch (JsonSerializationException e) { throw new TencentCloudSDKException(e.Message); } return rsp.Response; } /// /// 该接口用于开启凭据,状态为Enabled。可以通过 GetSecretValue 接口获取凭据明文。处于PendingDelete状态的凭据不能直接开启,需要通过RestoreSecret 恢复后再开启使用。 /// /// /// public async Task EnableSecret(EnableSecretRequest req) { JsonResponseModel rsp = null; try { var strResp = await this.InternalRequest(req, "EnableSecret"); rsp = JsonConvert.DeserializeObject>(strResp); } catch (JsonSerializationException e) { throw new TencentCloudSDKException(e.Message); } return rsp.Response; } /// /// 该接口用于开启凭据,状态为Enabled。可以通过 GetSecretValue 接口获取凭据明文。处于PendingDelete状态的凭据不能直接开启,需要通过RestoreSecret 恢复后再开启使用。 /// /// /// public EnableSecretResponse EnableSecretSync(EnableSecretRequest req) { JsonResponseModel rsp = null; try { var strResp = this.InternalRequestSync(req, "EnableSecret"); rsp = JsonConvert.DeserializeObject>(strResp); } catch (JsonSerializationException e) { throw new TencentCloudSDKException(e.Message); } return rsp.Response; } /// /// 获取控制台展示region列表 /// /// /// public async Task GetRegions(GetRegionsRequest req) { JsonResponseModel rsp = null; try { var strResp = await this.InternalRequest(req, "GetRegions"); rsp = JsonConvert.DeserializeObject>(strResp); } catch (JsonSerializationException e) { throw new TencentCloudSDKException(e.Message); } return rsp.Response; } /// /// 获取控制台展示region列表 /// /// /// public GetRegionsResponse GetRegionsSync(GetRegionsRequest req) { JsonResponseModel rsp = null; try { var strResp = this.InternalRequestSync(req, "GetRegions"); rsp = JsonConvert.DeserializeObject>(strResp); } catch (JsonSerializationException e) { throw new TencentCloudSDKException(e.Message); } return rsp.Response; } /// /// 获取指定凭据名称和版本的凭据明文信息,只能获取启用状态的凭据明文。 /// /// /// public async Task GetSecretValue(GetSecretValueRequest req) { JsonResponseModel rsp = null; try { var strResp = await this.InternalRequest(req, "GetSecretValue"); rsp = JsonConvert.DeserializeObject>(strResp); } catch (JsonSerializationException e) { throw new TencentCloudSDKException(e.Message); } return rsp.Response; } /// /// 获取指定凭据名称和版本的凭据明文信息,只能获取启用状态的凭据明文。 /// /// /// public GetSecretValueResponse GetSecretValueSync(GetSecretValueRequest req) { JsonResponseModel rsp = null; try { var strResp = this.InternalRequestSync(req, "GetSecretValue"); rsp = JsonConvert.DeserializeObject>(strResp); } catch (JsonSerializationException e) { throw new TencentCloudSDKException(e.Message); } return rsp.Response; } /// /// 该接口用户获取用户SecretsManager服务开通状态。 /// /// /// public async Task GetServiceStatus(GetServiceStatusRequest req) { JsonResponseModel rsp = null; try { var strResp = await this.InternalRequest(req, "GetServiceStatus"); rsp = JsonConvert.DeserializeObject>(strResp); } catch (JsonSerializationException e) { throw new TencentCloudSDKException(e.Message); } return rsp.Response; } /// /// 该接口用户获取用户SecretsManager服务开通状态。 /// /// /// public GetServiceStatusResponse GetServiceStatusSync(GetServiceStatusRequest req) { JsonResponseModel rsp = null; try { var strResp = this.InternalRequestSync(req, "GetServiceStatus"); rsp = JsonConvert.DeserializeObject>(strResp); } catch (JsonSerializationException e) { throw new TencentCloudSDKException(e.Message); } return rsp.Response; } /// /// 该接口用于获取指定凭据下的版本列表信息 /// /// /// public async Task ListSecretVersionIds(ListSecretVersionIdsRequest req) { JsonResponseModel rsp = null; try { var strResp = await this.InternalRequest(req, "ListSecretVersionIds"); rsp = JsonConvert.DeserializeObject>(strResp); } catch (JsonSerializationException e) { throw new TencentCloudSDKException(e.Message); } return rsp.Response; } /// /// 该接口用于获取指定凭据下的版本列表信息 /// /// /// public ListSecretVersionIdsResponse ListSecretVersionIdsSync(ListSecretVersionIdsRequest req) { JsonResponseModel rsp = null; try { var strResp = this.InternalRequestSync(req, "ListSecretVersionIds"); rsp = JsonConvert.DeserializeObject>(strResp); } catch (JsonSerializationException e) { throw new TencentCloudSDKException(e.Message); } return rsp.Response; } /// /// 该接口用于获取所有凭据的详细列表,可以指定过滤字段、排序方式等。 /// /// /// public async Task ListSecrets(ListSecretsRequest req) { JsonResponseModel rsp = null; try { var strResp = await this.InternalRequest(req, "ListSecrets"); rsp = JsonConvert.DeserializeObject>(strResp); } catch (JsonSerializationException e) { throw new TencentCloudSDKException(e.Message); } return rsp.Response; } /// /// 该接口用于获取所有凭据的详细列表,可以指定过滤字段、排序方式等。 /// /// /// public ListSecretsResponse ListSecretsSync(ListSecretsRequest req) { JsonResponseModel rsp = null; try { var strResp = this.InternalRequestSync(req, "ListSecrets"); rsp = JsonConvert.DeserializeObject>(strResp); } catch (JsonSerializationException e) { throw new TencentCloudSDKException(e.Message); } return rsp.Response; } /// /// 该接口在指定名称的凭据下增加新版本的凭据内容,一个凭据下最多可以支持10个版本。只能对处于Enabled 和 Disabled 状态的凭据添加新的版本。 /// /// /// public async Task PutSecretValue(PutSecretValueRequest req) { JsonResponseModel rsp = null; try { var strResp = await this.InternalRequest(req, "PutSecretValue"); rsp = JsonConvert.DeserializeObject>(strResp); } catch (JsonSerializationException e) { throw new TencentCloudSDKException(e.Message); } return rsp.Response; } /// /// 该接口在指定名称的凭据下增加新版本的凭据内容,一个凭据下最多可以支持10个版本。只能对处于Enabled 和 Disabled 状态的凭据添加新的版本。 /// /// /// public PutSecretValueResponse PutSecretValueSync(PutSecretValueRequest req) { JsonResponseModel rsp = null; try { var strResp = this.InternalRequestSync(req, "PutSecretValue"); rsp = JsonConvert.DeserializeObject>(strResp); } catch (JsonSerializationException e) { throw new TencentCloudSDKException(e.Message); } return rsp.Response; } /// /// 该接口用于恢复计划删除(PendingDelete状态)中的凭据,取消计划删除。取消计划删除的凭据将处于Disabled 状态,如需恢复使用,通过EnableSecret 接口开启凭据。 /// /// /// public async Task RestoreSecret(RestoreSecretRequest req) { JsonResponseModel rsp = null; try { var strResp = await this.InternalRequest(req, "RestoreSecret"); rsp = JsonConvert.DeserializeObject>(strResp); } catch (JsonSerializationException e) { throw new TencentCloudSDKException(e.Message); } return rsp.Response; } /// /// 该接口用于恢复计划删除(PendingDelete状态)中的凭据,取消计划删除。取消计划删除的凭据将处于Disabled 状态,如需恢复使用,通过EnableSecret 接口开启凭据。 /// /// /// public RestoreSecretResponse RestoreSecretSync(RestoreSecretRequest req) { JsonResponseModel rsp = null; try { var strResp = this.InternalRequestSync(req, "RestoreSecret"); rsp = JsonConvert.DeserializeObject>(strResp); } catch (JsonSerializationException e) { throw new TencentCloudSDKException(e.Message); } return rsp.Response; } /// /// 该接口用于修改指定凭据的描述信息,仅能修改Enabled 和 Disabled 状态的凭据。 /// /// /// public async Task UpdateDescription(UpdateDescriptionRequest req) { JsonResponseModel rsp = null; try { var strResp = await this.InternalRequest(req, "UpdateDescription"); rsp = JsonConvert.DeserializeObject>(strResp); } catch (JsonSerializationException e) { throw new TencentCloudSDKException(e.Message); } return rsp.Response; } /// /// 该接口用于修改指定凭据的描述信息,仅能修改Enabled 和 Disabled 状态的凭据。 /// /// /// public UpdateDescriptionResponse UpdateDescriptionSync(UpdateDescriptionRequest req) { JsonResponseModel rsp = null; try { var strResp = this.InternalRequestSync(req, "UpdateDescription"); rsp = JsonConvert.DeserializeObject>(strResp); } catch (JsonSerializationException e) { throw new TencentCloudSDKException(e.Message); } return rsp.Response; } /// /// 该接口用于更新指定凭据名称和版本号的内容,调用该接口会对新的凭据内容加密后覆盖旧的内容。仅允许更新Enabled 和 Disabled 状态的凭据。 /// /// /// public async Task UpdateSecret(UpdateSecretRequest req) { JsonResponseModel rsp = null; try { var strResp = await this.InternalRequest(req, "UpdateSecret"); rsp = JsonConvert.DeserializeObject>(strResp); } catch (JsonSerializationException e) { throw new TencentCloudSDKException(e.Message); } return rsp.Response; } /// /// 该接口用于更新指定凭据名称和版本号的内容,调用该接口会对新的凭据内容加密后覆盖旧的内容。仅允许更新Enabled 和 Disabled 状态的凭据。 /// /// /// public UpdateSecretResponse UpdateSecretSync(UpdateSecretRequest req) { JsonResponseModel rsp = null; try { var strResp = this.InternalRequestSync(req, "UpdateSecret"); rsp = JsonConvert.DeserializeObject>(strResp); } catch (JsonSerializationException e) { throw new TencentCloudSDKException(e.Message); } return rsp.Response; } } }