tencentcloud-sdk-tdmq 3.0.690 → 3.0.692
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/VERSION +1 -1
- data/lib/v20200217/client.rb +72 -0
- data/lib/v20200217/models.rb +258 -0
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7dddf5ce6855f5503fc558c6a6d73f4c6563f68b
|
4
|
+
data.tar.gz: 8ba3c53434ba9f794b39876fc4ea0f8c9df3a572
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3cd3896e5ad60dbd1b91c0621eed798882fdfae19dd6abdf1fba264b28eb249233207146e336b5f726ed826df2fb40b3d9988e09046358e5f99103729ba12ea1
|
7
|
+
data.tar.gz: 83a4454491645ad14d6c3611c85c66293e9438d7475d4bbcc12c5365724f6100f148bc9ce1c173c7ce1cb9328820549180df12b3ed4049695daca05b25eb8698
|
data/lib/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
3.0.
|
1
|
+
3.0.692
|
data/lib/v20200217/client.rb
CHANGED
@@ -1661,6 +1661,30 @@ module TencentCloud
|
|
1661
1661
|
raise TencentCloud::Common::TencentCloudSDKException.new(nil, e.inspect)
|
1662
1662
|
end
|
1663
1663
|
|
1664
|
+
# 获取消费详情列表
|
1665
|
+
|
1666
|
+
# @param request: Request instance for DescribeRocketMQConsumeStats.
|
1667
|
+
# @type request: :class:`Tencentcloud::tdmq::V20200217::DescribeRocketMQConsumeStatsRequest`
|
1668
|
+
# @rtype: :class:`Tencentcloud::tdmq::V20200217::DescribeRocketMQConsumeStatsResponse`
|
1669
|
+
def DescribeRocketMQConsumeStats(request)
|
1670
|
+
body = send_request('DescribeRocketMQConsumeStats', request.serialize)
|
1671
|
+
response = JSON.parse(body)
|
1672
|
+
if response['Response'].key?('Error') == false
|
1673
|
+
model = DescribeRocketMQConsumeStatsResponse.new
|
1674
|
+
model.deserialize(response['Response'])
|
1675
|
+
model
|
1676
|
+
else
|
1677
|
+
code = response['Response']['Error']['Code']
|
1678
|
+
message = response['Response']['Error']['Message']
|
1679
|
+
reqid = response['Response']['RequestId']
|
1680
|
+
raise TencentCloud::Common::TencentCloudSDKException.new(code, message, reqid)
|
1681
|
+
end
|
1682
|
+
rescue TencentCloud::Common::TencentCloudSDKException => e
|
1683
|
+
raise e
|
1684
|
+
rescue StandardError => e
|
1685
|
+
raise TencentCloud::Common::TencentCloudSDKException.new(nil, e.inspect)
|
1686
|
+
end
|
1687
|
+
|
1664
1688
|
# 获取指定消费组下当前客户端的连接情况
|
1665
1689
|
|
1666
1690
|
# @param request: Request instance for DescribeRocketMQConsumerConnections.
|
@@ -2093,6 +2117,30 @@ module TencentCloud
|
|
2093
2117
|
raise TencentCloud::Common::TencentCloudSDKException.new(nil, e.inspect)
|
2094
2118
|
end
|
2095
2119
|
|
2120
|
+
# 消息查询
|
2121
|
+
|
2122
|
+
# @param request: Request instance for DescribeTopicMsgs.
|
2123
|
+
# @type request: :class:`Tencentcloud::tdmq::V20200217::DescribeTopicMsgsRequest`
|
2124
|
+
# @rtype: :class:`Tencentcloud::tdmq::V20200217::DescribeTopicMsgsResponse`
|
2125
|
+
def DescribeTopicMsgs(request)
|
2126
|
+
body = send_request('DescribeTopicMsgs', request.serialize)
|
2127
|
+
response = JSON.parse(body)
|
2128
|
+
if response['Response'].key?('Error') == false
|
2129
|
+
model = DescribeTopicMsgsResponse.new
|
2130
|
+
model.deserialize(response['Response'])
|
2131
|
+
model
|
2132
|
+
else
|
2133
|
+
code = response['Response']['Error']['Code']
|
2134
|
+
message = response['Response']['Error']['Message']
|
2135
|
+
reqid = response['Response']['RequestId']
|
2136
|
+
raise TencentCloud::Common::TencentCloudSDKException.new(code, message, reqid)
|
2137
|
+
end
|
2138
|
+
rescue TencentCloud::Common::TencentCloudSDKException => e
|
2139
|
+
raise e
|
2140
|
+
rescue StandardError => e
|
2141
|
+
raise TencentCloud::Common::TencentCloudSDKException.new(nil, e.inspect)
|
2142
|
+
end
|
2143
|
+
|
2096
2144
|
# 获取环境下主题列表
|
2097
2145
|
|
2098
2146
|
# @param request: Request instance for DescribeTopics.
|
@@ -2907,6 +2955,30 @@ module TencentCloud
|
|
2907
2955
|
raise TencentCloud::Common::TencentCloudSDKException.new(nil, e.inspect)
|
2908
2956
|
end
|
2909
2957
|
|
2958
|
+
# Rocketmq消费验证
|
2959
|
+
|
2960
|
+
# @param request: Request instance for VerifyRocketMQConsume.
|
2961
|
+
# @type request: :class:`Tencentcloud::tdmq::V20200217::VerifyRocketMQConsumeRequest`
|
2962
|
+
# @rtype: :class:`Tencentcloud::tdmq::V20200217::VerifyRocketMQConsumeResponse`
|
2963
|
+
def VerifyRocketMQConsume(request)
|
2964
|
+
body = send_request('VerifyRocketMQConsume', request.serialize)
|
2965
|
+
response = JSON.parse(body)
|
2966
|
+
if response['Response'].key?('Error') == false
|
2967
|
+
model = VerifyRocketMQConsumeResponse.new
|
2968
|
+
model.deserialize(response['Response'])
|
2969
|
+
model
|
2970
|
+
else
|
2971
|
+
code = response['Response']['Error']['Code']
|
2972
|
+
message = response['Response']['Error']['Message']
|
2973
|
+
reqid = response['Response']['RequestId']
|
2974
|
+
raise TencentCloud::Common::TencentCloudSDKException.new(code, message, reqid)
|
2975
|
+
end
|
2976
|
+
rescue TencentCloud::Common::TencentCloudSDKException => e
|
2977
|
+
raise e
|
2978
|
+
rescue StandardError => e
|
2979
|
+
raise TencentCloud::Common::TencentCloudSDKException.new(nil, e.inspect)
|
2980
|
+
end
|
2981
|
+
|
2910
2982
|
|
2911
2983
|
end
|
2912
2984
|
end
|
data/lib/v20200217/models.rb
CHANGED
@@ -919,6 +919,58 @@ module TencentCloud
|
|
919
919
|
end
|
920
920
|
end
|
921
921
|
|
922
|
+
# 消费详情
|
923
|
+
class ConsumerStats < TencentCloud::Common::AbstractModel
|
924
|
+
# @param TopicName: 主题名
|
925
|
+
# 注意:此字段可能返回 null,表示取不到有效值。
|
926
|
+
# @type TopicName: String
|
927
|
+
# @param BrokerName: 所属Broker
|
928
|
+
# 注意:此字段可能返回 null,表示取不到有效值。
|
929
|
+
# @type BrokerName: String
|
930
|
+
# @param QueueId: 队列编号
|
931
|
+
# 注意:此字段可能返回 null,表示取不到有效值。
|
932
|
+
# @type QueueId: Integer
|
933
|
+
# @param ConsumerClientId: 消费者ID
|
934
|
+
# 注意:此字段可能返回 null,表示取不到有效值。
|
935
|
+
# @type ConsumerClientId: String
|
936
|
+
# @param ConsumerOffset: 消费位点
|
937
|
+
# 注意:此字段可能返回 null,表示取不到有效值。
|
938
|
+
# @type ConsumerOffset: Integer
|
939
|
+
# @param BrokerOffset: 服务端位点
|
940
|
+
# 注意:此字段可能返回 null,表示取不到有效值。
|
941
|
+
# @type BrokerOffset: Integer
|
942
|
+
# @param DiffTotal: 消息堆积条数
|
943
|
+
# 注意:此字段可能返回 null,表示取不到有效值。
|
944
|
+
# @type DiffTotal: Integer
|
945
|
+
# @param LastTimestamp: 最近消费时间
|
946
|
+
# 注意:此字段可能返回 null,表示取不到有效值。
|
947
|
+
# @type LastTimestamp: Integer
|
948
|
+
|
949
|
+
attr_accessor :TopicName, :BrokerName, :QueueId, :ConsumerClientId, :ConsumerOffset, :BrokerOffset, :DiffTotal, :LastTimestamp
|
950
|
+
|
951
|
+
def initialize(topicname=nil, brokername=nil, queueid=nil, consumerclientid=nil, consumeroffset=nil, brokeroffset=nil, difftotal=nil, lasttimestamp=nil)
|
952
|
+
@TopicName = topicname
|
953
|
+
@BrokerName = brokername
|
954
|
+
@QueueId = queueid
|
955
|
+
@ConsumerClientId = consumerclientid
|
956
|
+
@ConsumerOffset = consumeroffset
|
957
|
+
@BrokerOffset = brokeroffset
|
958
|
+
@DiffTotal = difftotal
|
959
|
+
@LastTimestamp = lasttimestamp
|
960
|
+
end
|
961
|
+
|
962
|
+
def deserialize(params)
|
963
|
+
@TopicName = params['TopicName']
|
964
|
+
@BrokerName = params['BrokerName']
|
965
|
+
@QueueId = params['QueueId']
|
966
|
+
@ConsumerClientId = params['ConsumerClientId']
|
967
|
+
@ConsumerOffset = params['ConsumerOffset']
|
968
|
+
@BrokerOffset = params['BrokerOffset']
|
969
|
+
@DiffTotal = params['DiffTotal']
|
970
|
+
@LastTimestamp = params['LastTimestamp']
|
971
|
+
end
|
972
|
+
end
|
973
|
+
|
922
974
|
# 消费进度详情
|
923
975
|
class ConsumersSchedule < TencentCloud::Common::AbstractModel
|
924
976
|
# @param Partitions: 当前分区id。
|
@@ -4836,6 +4888,57 @@ module TencentCloud
|
|
4836
4888
|
end
|
4837
4889
|
end
|
4838
4890
|
|
4891
|
+
# DescribeRocketMQConsumeStats请求参数结构体
|
4892
|
+
class DescribeRocketMQConsumeStatsRequest < TencentCloud::Common::AbstractModel
|
4893
|
+
# @param ClusterId: 实例ID
|
4894
|
+
# @type ClusterId: String
|
4895
|
+
# @param NamespaceId: 命名空间
|
4896
|
+
# @type NamespaceId: String
|
4897
|
+
# @param ConsumerGroup: 消费组
|
4898
|
+
# @type ConsumerGroup: String
|
4899
|
+
|
4900
|
+
attr_accessor :ClusterId, :NamespaceId, :ConsumerGroup
|
4901
|
+
|
4902
|
+
def initialize(clusterid=nil, namespaceid=nil, consumergroup=nil)
|
4903
|
+
@ClusterId = clusterid
|
4904
|
+
@NamespaceId = namespaceid
|
4905
|
+
@ConsumerGroup = consumergroup
|
4906
|
+
end
|
4907
|
+
|
4908
|
+
def deserialize(params)
|
4909
|
+
@ClusterId = params['ClusterId']
|
4910
|
+
@NamespaceId = params['NamespaceId']
|
4911
|
+
@ConsumerGroup = params['ConsumerGroup']
|
4912
|
+
end
|
4913
|
+
end
|
4914
|
+
|
4915
|
+
# DescribeRocketMQConsumeStats返回参数结构体
|
4916
|
+
class DescribeRocketMQConsumeStatsResponse < TencentCloud::Common::AbstractModel
|
4917
|
+
# @param ConsumerStatsList: 消费详情列表
|
4918
|
+
# @type ConsumerStatsList: Array
|
4919
|
+
# @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
|
4920
|
+
# @type RequestId: String
|
4921
|
+
|
4922
|
+
attr_accessor :ConsumerStatsList, :RequestId
|
4923
|
+
|
4924
|
+
def initialize(consumerstatslist=nil, requestid=nil)
|
4925
|
+
@ConsumerStatsList = consumerstatslist
|
4926
|
+
@RequestId = requestid
|
4927
|
+
end
|
4928
|
+
|
4929
|
+
def deserialize(params)
|
4930
|
+
unless params['ConsumerStatsList'].nil?
|
4931
|
+
@ConsumerStatsList = []
|
4932
|
+
params['ConsumerStatsList'].each do |i|
|
4933
|
+
consumerstats_tmp = ConsumerStats.new
|
4934
|
+
consumerstats_tmp.deserialize(i)
|
4935
|
+
@ConsumerStatsList << consumerstats_tmp
|
4936
|
+
end
|
4937
|
+
end
|
4938
|
+
@RequestId = params['RequestId']
|
4939
|
+
end
|
4940
|
+
end
|
4941
|
+
|
4839
4942
|
# DescribeRocketMQConsumerConnections请求参数结构体
|
4840
4943
|
class DescribeRocketMQConsumerConnectionsRequest < TencentCloud::Common::AbstractModel
|
4841
4944
|
# @param ClusterId: 集群ID
|
@@ -6227,6 +6330,81 @@ module TencentCloud
|
|
6227
6330
|
end
|
6228
6331
|
end
|
6229
6332
|
|
6333
|
+
# DescribeTopicMsgs请求参数结构体
|
6334
|
+
class DescribeTopicMsgsRequest < TencentCloud::Common::AbstractModel
|
6335
|
+
# @param EnvironmentId: 环境(命名空间)名称。
|
6336
|
+
# @type EnvironmentId: String
|
6337
|
+
# @param TopicName: 主题名。
|
6338
|
+
# @type TopicName: String
|
6339
|
+
# @param StartTime: 开始时间。
|
6340
|
+
# @type StartTime: String
|
6341
|
+
# @param EndTime: 结束时间。
|
6342
|
+
# @type EndTime: String
|
6343
|
+
# @param Offset: 起始下标,不填默认为0。
|
6344
|
+
# @type Offset: Integer
|
6345
|
+
# @param Limit: 返回数量,不填则默认为10,最大值为20。
|
6346
|
+
# @type Limit: Integer
|
6347
|
+
# @param MsgId: 消息ID。
|
6348
|
+
# @type MsgId: String
|
6349
|
+
# @param ClusterId: Pulsar 集群的ID
|
6350
|
+
# @type ClusterId: String
|
6351
|
+
|
6352
|
+
attr_accessor :EnvironmentId, :TopicName, :StartTime, :EndTime, :Offset, :Limit, :MsgId, :ClusterId
|
6353
|
+
|
6354
|
+
def initialize(environmentid=nil, topicname=nil, starttime=nil, endtime=nil, offset=nil, limit=nil, msgid=nil, clusterid=nil)
|
6355
|
+
@EnvironmentId = environmentid
|
6356
|
+
@TopicName = topicname
|
6357
|
+
@StartTime = starttime
|
6358
|
+
@EndTime = endtime
|
6359
|
+
@Offset = offset
|
6360
|
+
@Limit = limit
|
6361
|
+
@MsgId = msgid
|
6362
|
+
@ClusterId = clusterid
|
6363
|
+
end
|
6364
|
+
|
6365
|
+
def deserialize(params)
|
6366
|
+
@EnvironmentId = params['EnvironmentId']
|
6367
|
+
@TopicName = params['TopicName']
|
6368
|
+
@StartTime = params['StartTime']
|
6369
|
+
@EndTime = params['EndTime']
|
6370
|
+
@Offset = params['Offset']
|
6371
|
+
@Limit = params['Limit']
|
6372
|
+
@MsgId = params['MsgId']
|
6373
|
+
@ClusterId = params['ClusterId']
|
6374
|
+
end
|
6375
|
+
end
|
6376
|
+
|
6377
|
+
# DescribeTopicMsgs返回参数结构体
|
6378
|
+
class DescribeTopicMsgsResponse < TencentCloud::Common::AbstractModel
|
6379
|
+
# @param TotalCount: 总记录数。
|
6380
|
+
# @type TotalCount: Integer
|
6381
|
+
# @param TopicMsgLogSets: 消息日志列表。
|
6382
|
+
# @type TopicMsgLogSets: Array
|
6383
|
+
# @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
|
6384
|
+
# @type RequestId: String
|
6385
|
+
|
6386
|
+
attr_accessor :TotalCount, :TopicMsgLogSets, :RequestId
|
6387
|
+
|
6388
|
+
def initialize(totalcount=nil, topicmsglogsets=nil, requestid=nil)
|
6389
|
+
@TotalCount = totalcount
|
6390
|
+
@TopicMsgLogSets = topicmsglogsets
|
6391
|
+
@RequestId = requestid
|
6392
|
+
end
|
6393
|
+
|
6394
|
+
def deserialize(params)
|
6395
|
+
@TotalCount = params['TotalCount']
|
6396
|
+
unless params['TopicMsgLogSets'].nil?
|
6397
|
+
@TopicMsgLogSets = []
|
6398
|
+
params['TopicMsgLogSets'].each do |i|
|
6399
|
+
msglog_tmp = MsgLog.new
|
6400
|
+
msglog_tmp.deserialize(i)
|
6401
|
+
@TopicMsgLogSets << msglog_tmp
|
6402
|
+
end
|
6403
|
+
end
|
6404
|
+
@RequestId = params['RequestId']
|
6405
|
+
end
|
6406
|
+
end
|
6407
|
+
|
6230
6408
|
# DescribeTopics请求参数结构体
|
6231
6409
|
class DescribeTopicsRequest < TencentCloud::Common::AbstractModel
|
6232
6410
|
# @param EnvironmentId: 环境(命名空间)名称。
|
@@ -7744,6 +7922,34 @@ module TencentCloud
|
|
7744
7922
|
end
|
7745
7923
|
end
|
7746
7924
|
|
7925
|
+
# 消息日志
|
7926
|
+
class MsgLog < TencentCloud::Common::AbstractModel
|
7927
|
+
# @param MsgId: 消息ID。
|
7928
|
+
# @type MsgId: String
|
7929
|
+
# @param ProducerName: 生产者名称。
|
7930
|
+
# @type ProducerName: String
|
7931
|
+
# @param ProduceTime: 生产时间。
|
7932
|
+
# @type ProduceTime: String
|
7933
|
+
# @param ProducerAddr: 生产客户端地址。
|
7934
|
+
# @type ProducerAddr: String
|
7935
|
+
|
7936
|
+
attr_accessor :MsgId, :ProducerName, :ProduceTime, :ProducerAddr
|
7937
|
+
|
7938
|
+
def initialize(msgid=nil, producername=nil, producetime=nil, produceraddr=nil)
|
7939
|
+
@MsgId = msgid
|
7940
|
+
@ProducerName = producername
|
7941
|
+
@ProduceTime = producetime
|
7942
|
+
@ProducerAddr = produceraddr
|
7943
|
+
end
|
7944
|
+
|
7945
|
+
def deserialize(params)
|
7946
|
+
@MsgId = params['MsgId']
|
7947
|
+
@ProducerName = params['ProducerName']
|
7948
|
+
@ProduceTime = params['ProduceTime']
|
7949
|
+
@ProducerAddr = params['ProducerAddr']
|
7950
|
+
end
|
7951
|
+
end
|
7952
|
+
|
7747
7953
|
# 分区topic
|
7748
7954
|
class PartitionsTopic < TencentCloud::Common::AbstractModel
|
7749
7955
|
# @param AverageMsgSize: 最后一次间隔内发布消息的平均byte大小。
|
@@ -10856,6 +11062,58 @@ module TencentCloud
|
|
10856
11062
|
end
|
10857
11063
|
end
|
10858
11064
|
|
11065
|
+
# VerifyRocketMQConsume请求参数结构体
|
11066
|
+
class VerifyRocketMQConsumeRequest < TencentCloud::Common::AbstractModel
|
11067
|
+
# @param ClusterId: 集群id
|
11068
|
+
# @type ClusterId: String
|
11069
|
+
# @param NamespaceId: 命名空间
|
11070
|
+
# @type NamespaceId: String
|
11071
|
+
# @param GroupId: 消费组ID
|
11072
|
+
# @type GroupId: String
|
11073
|
+
# @param MsgId: 消息id
|
11074
|
+
# @type MsgId: String
|
11075
|
+
# @param ClientId: 客户端ID
|
11076
|
+
# @type ClientId: String
|
11077
|
+
# @param TopicName: topic名称
|
11078
|
+
# @type TopicName: String
|
11079
|
+
|
11080
|
+
attr_accessor :ClusterId, :NamespaceId, :GroupId, :MsgId, :ClientId, :TopicName
|
11081
|
+
|
11082
|
+
def initialize(clusterid=nil, namespaceid=nil, groupid=nil, msgid=nil, clientid=nil, topicname=nil)
|
11083
|
+
@ClusterId = clusterid
|
11084
|
+
@NamespaceId = namespaceid
|
11085
|
+
@GroupId = groupid
|
11086
|
+
@MsgId = msgid
|
11087
|
+
@ClientId = clientid
|
11088
|
+
@TopicName = topicname
|
11089
|
+
end
|
11090
|
+
|
11091
|
+
def deserialize(params)
|
11092
|
+
@ClusterId = params['ClusterId']
|
11093
|
+
@NamespaceId = params['NamespaceId']
|
11094
|
+
@GroupId = params['GroupId']
|
11095
|
+
@MsgId = params['MsgId']
|
11096
|
+
@ClientId = params['ClientId']
|
11097
|
+
@TopicName = params['TopicName']
|
11098
|
+
end
|
11099
|
+
end
|
11100
|
+
|
11101
|
+
# VerifyRocketMQConsume返回参数结构体
|
11102
|
+
class VerifyRocketMQConsumeResponse < TencentCloud::Common::AbstractModel
|
11103
|
+
# @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
|
11104
|
+
# @type RequestId: String
|
11105
|
+
|
11106
|
+
attr_accessor :RequestId
|
11107
|
+
|
11108
|
+
def initialize(requestid=nil)
|
11109
|
+
@RequestId = requestid
|
11110
|
+
end
|
11111
|
+
|
11112
|
+
def deserialize(params)
|
11113
|
+
@RequestId = params['RequestId']
|
11114
|
+
end
|
11115
|
+
end
|
11116
|
+
|
10859
11117
|
# vhost使用配额信息
|
10860
11118
|
class VirtualHostQuota < TencentCloud::Common::AbstractModel
|
10861
11119
|
# @param MaxVirtualHost: 允许创建最大vhost数
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tencentcloud-sdk-tdmq
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.0.
|
4
|
+
version: 3.0.692
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tencent Cloud
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-11-
|
11
|
+
date: 2023-11-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: tencentcloud-sdk-common
|
@@ -34,8 +34,8 @@ extensions: []
|
|
34
34
|
extra_rdoc_files: []
|
35
35
|
files:
|
36
36
|
- lib/tencentcloud-sdk-tdmq.rb
|
37
|
-
- lib/v20200217/client.rb
|
38
37
|
- lib/v20200217/models.rb
|
38
|
+
- lib/v20200217/client.rb
|
39
39
|
- lib/VERSION
|
40
40
|
homepage: https://github.com/TencentCloud/tencentcloud-sdk-ruby
|
41
41
|
licenses:
|