/*
* 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.Ckafka.V20190819.Models
{
using Newtonsoft.Json;
using System.Collections.Generic;
using TencentCloud.Common;
public class CreateAclRequest : AbstractModel
{
///
/// 实例id信息
///
[JsonProperty("InstanceId")]
public string InstanceId{ get; set; }
///
/// Acl资源类型,(0:UNKNOWN,1:ANY,2:TOPIC,3:GROUP,4:CLUSTER,5:TRANSACTIONAL_ID),当前只有TOPIC,其它字段用于后续兼容开源kafka的acl时使用
///
[JsonProperty("ResourceType")]
public long? ResourceType{ get; set; }
///
/// 资源名称,和resourceType相关,如当resourceType为TOPIC时,则该字段表示topic名称,当resourceType为GROUP时,该字段表示group名称
///
[JsonProperty("ResourceName")]
public string ResourceName{ get; set; }
///
/// Acl操作方式,(0:UNKNOWN,1:ANY,2:ALL,3:READ,4:WRITE,5:CREATE,6:DELETE,7:ALTER,8:DESCRIBE,9:CLUSTER_ACTION,10:DESCRIBE_CONFIGS,11:ALTER_CONFIGS)
///
[JsonProperty("Operation")]
public long? Operation{ get; set; }
///
/// 权限类型,(0:UNKNOWN,1:ANY,2:DENY,3:ALLOW),当前ckakfa支持ALLOW(相当于白名单),其它用于后续兼容开源kafka的acl时使用
///
[JsonProperty("PermissionType")]
public long? PermissionType{ get; set; }
///
/// 默认为\*,表示任何host都可以访问,当前ckafka不支持host为\*,但是后面开源kafka的产品化会直接支持
///
[JsonProperty("Host")]
public string Host{ get; set; }
///
/// 用户列表,默认为*,表示任何user都可以访问,当前用户只能是用户列表中包含的用户
///
[JsonProperty("Principal")]
public string Principal{ get; set; }
///
/// For internal usage only. DO NOT USE IT.
///
internal override void ToMap(Dictionary map, string prefix)
{
this.SetParamSimple(map, prefix + "InstanceId", this.InstanceId);
this.SetParamSimple(map, prefix + "ResourceType", this.ResourceType);
this.SetParamSimple(map, prefix + "ResourceName", this.ResourceName);
this.SetParamSimple(map, prefix + "Operation", this.Operation);
this.SetParamSimple(map, prefix + "PermissionType", this.PermissionType);
this.SetParamSimple(map, prefix + "Host", this.Host);
this.SetParamSimple(map, prefix + "Principal", this.Principal);
}
}
}