@volcengine/pulumi-volcenginecc 0.0.43 → 0.0.44

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (134) hide show
  1. package/cloudmonitor/eventRule.d.ts +226 -0
  2. package/cloudmonitor/eventRule.js +126 -0
  3. package/cloudmonitor/eventRule.js.map +1 -0
  4. package/cloudmonitor/getEventRule.d.ts +65 -0
  5. package/cloudmonitor/getEventRule.js +28 -0
  6. package/cloudmonitor/getEventRule.js.map +1 -0
  7. package/cloudmonitor/getEventRules.d.ts +22 -0
  8. package/cloudmonitor/getEventRules.js +24 -0
  9. package/cloudmonitor/getEventRules.js.map +1 -0
  10. package/cloudmonitor/index.d.ts +9 -0
  11. package/cloudmonitor/index.js +12 -1
  12. package/cloudmonitor/index.js.map +1 -1
  13. package/cr/getVpcEndpoint.d.ts +45 -0
  14. package/cr/getVpcEndpoint.js +28 -0
  15. package/cr/getVpcEndpoint.js.map +1 -0
  16. package/cr/getVpcEndpoints.d.ts +22 -0
  17. package/cr/getVpcEndpoints.js +24 -0
  18. package/cr/getVpcEndpoints.js.map +1 -0
  19. package/cr/index.d.ts +9 -0
  20. package/cr/index.js +12 -1
  21. package/cr/index.js.map +1 -1
  22. package/cr/vpcEndpoint.d.ts +62 -0
  23. package/cr/vpcEndpoint.js +66 -0
  24. package/cr/vpcEndpoint.js.map +1 -0
  25. package/dns/backupSchedule.d.ts +89 -0
  26. package/dns/backupSchedule.js +80 -0
  27. package/dns/backupSchedule.js.map +1 -0
  28. package/dns/getBackupSchedule.d.ts +48 -0
  29. package/dns/getBackupSchedule.js +28 -0
  30. package/dns/getBackupSchedule.js.map +1 -0
  31. package/dns/getBackupSchedules.d.ts +22 -0
  32. package/dns/getBackupSchedules.js +24 -0
  33. package/dns/getBackupSchedules.js.map +1 -0
  34. package/dns/index.d.ts +9 -0
  35. package/dns/index.js +12 -1
  36. package/dns/index.js.map +1 -1
  37. package/gtm/getPolicies.d.ts +22 -0
  38. package/gtm/getPolicies.js +24 -0
  39. package/gtm/getPolicies.js.map +1 -0
  40. package/gtm/getPolicy.d.ts +65 -0
  41. package/gtm/getPolicy.js +28 -0
  42. package/gtm/getPolicy.js.map +1 -0
  43. package/gtm/index.d.ts +9 -0
  44. package/gtm/index.js +12 -1
  45. package/gtm/index.js.map +1 -1
  46. package/gtm/policy.d.ts +114 -0
  47. package/gtm/policy.js +76 -0
  48. package/gtm/policy.js.map +1 -0
  49. package/kafka/getGroup.d.ts +65 -0
  50. package/kafka/getGroup.js +28 -0
  51. package/kafka/getGroup.js.map +1 -0
  52. package/kafka/getGroups.d.ts +22 -0
  53. package/kafka/getGroups.js +24 -0
  54. package/kafka/getGroups.js.map +1 -0
  55. package/kafka/group.d.ts +127 -0
  56. package/kafka/group.js +93 -0
  57. package/kafka/group.js.map +1 -0
  58. package/kafka/index.d.ts +9 -0
  59. package/kafka/index.js +12 -1
  60. package/kafka/index.js.map +1 -1
  61. package/package.json +1 -1
  62. package/rdsmysql/allowList.d.ts +1 -0
  63. package/rdsmysql/allowList.js +1 -1
  64. package/rdsmysql/allowList.js.map +1 -1
  65. package/rocketmq/accessKey.d.ts +126 -0
  66. package/rocketmq/accessKey.js +80 -0
  67. package/rocketmq/accessKey.js.map +1 -0
  68. package/rocketmq/getAccessKey.d.ts +73 -0
  69. package/rocketmq/getAccessKey.js +28 -0
  70. package/rocketmq/getAccessKey.js.map +1 -0
  71. package/rocketmq/getAccessKeys.d.ts +22 -0
  72. package/rocketmq/getAccessKeys.js +24 -0
  73. package/rocketmq/getAccessKeys.js.map +1 -0
  74. package/rocketmq/index.d.ts +9 -0
  75. package/rocketmq/index.js +12 -1
  76. package/rocketmq/index.js.map +1 -1
  77. package/tls/etl.d.ts +222 -0
  78. package/tls/etl.js +113 -0
  79. package/tls/etl.js.map +1 -0
  80. package/tls/getEtl.d.ts +109 -0
  81. package/tls/getEtl.js +28 -0
  82. package/tls/getEtl.js.map +1 -0
  83. package/tls/getEtls.d.ts +22 -0
  84. package/tls/getEtls.js +24 -0
  85. package/tls/getEtls.js.map +1 -0
  86. package/tls/getHost.d.ts +52 -0
  87. package/tls/getHost.js +28 -0
  88. package/tls/getHost.js.map +1 -0
  89. package/tls/getHostGroup.d.ts +113 -0
  90. package/tls/getHostGroup.js +28 -0
  91. package/tls/getHostGroup.js.map +1 -0
  92. package/tls/getHostGroups.d.ts +22 -0
  93. package/tls/getHostGroups.js +24 -0
  94. package/tls/getHostGroups.js.map +1 -0
  95. package/tls/getHosts.d.ts +22 -0
  96. package/tls/getHosts.js +24 -0
  97. package/tls/getHosts.js.map +1 -0
  98. package/tls/host.d.ts +97 -0
  99. package/tls/host.js +82 -0
  100. package/tls/host.js.map +1 -0
  101. package/tls/hostGroup.d.ts +254 -0
  102. package/tls/hostGroup.js +121 -0
  103. package/tls/hostGroup.js.map +1 -0
  104. package/tls/index.d.ts +27 -0
  105. package/tls/index.js +35 -1
  106. package/tls/index.js.map +1 -1
  107. package/tos/bucket.d.ts +12 -0
  108. package/tos/bucket.js +2 -0
  109. package/tos/bucket.js.map +1 -1
  110. package/tos/bucketMirrorBack.d.ts +62 -0
  111. package/tos/bucketMirrorBack.js +63 -0
  112. package/tos/bucketMirrorBack.js.map +1 -0
  113. package/tos/bucketRename.d.ts +74 -0
  114. package/tos/bucketRename.js +72 -0
  115. package/tos/bucketRename.js.map +1 -0
  116. package/tos/getBucket.d.ts +4 -0
  117. package/tos/getBucket.js.map +1 -1
  118. package/tos/getBucketMirrorBack.d.ts +45 -0
  119. package/tos/getBucketMirrorBack.js +28 -0
  120. package/tos/getBucketMirrorBack.js.map +1 -0
  121. package/tos/getBucketMirrorBacks.d.ts +22 -0
  122. package/tos/getBucketMirrorBacks.js +24 -0
  123. package/tos/getBucketMirrorBacks.js.map +1 -0
  124. package/tos/getBucketRename.d.ts +44 -0
  125. package/tos/getBucketRename.js +28 -0
  126. package/tos/getBucketRename.js.map +1 -0
  127. package/tos/getBucketRenames.d.ts +22 -0
  128. package/tos/getBucketRenames.js +24 -0
  129. package/tos/getBucketRenames.js.map +1 -0
  130. package/tos/index.d.ts +18 -0
  131. package/tos/index.js +23 -1
  132. package/tos/index.js.map +1 -1
  133. package/types/input.d.ts +925 -144
  134. package/types/output.d.ts +2306 -642
package/types/output.d.ts CHANGED
@@ -9802,6 +9802,36 @@ export declare namespace cr {
9802
9802
  */
9803
9803
  value: string;
9804
9804
  }
9805
+ interface GetVpcEndpointVpc {
9806
+ /**
9807
+ * Primary account ID for the VPC
9808
+ */
9809
+ accountId: number;
9810
+ /**
9811
+ * Creation time
9812
+ */
9813
+ createTime: string;
9814
+ /**
9815
+ * IP address of the image repository within the VPC
9816
+ */
9817
+ ip: string;
9818
+ /**
9819
+ * VPC region
9820
+ */
9821
+ region: string;
9822
+ /**
9823
+ * Access endpoint status: Enabling: in progress. Enabled: enabled. Disabling: in progress. Failed: failed.
9824
+ */
9825
+ status: string;
9826
+ /**
9827
+ * Subnet ID
9828
+ */
9829
+ subnetId: string;
9830
+ /**
9831
+ * VPC ID。
9832
+ */
9833
+ vpcId: string;
9834
+ }
9805
9835
  interface RegistryEndpoint {
9806
9836
  aclPolicies: outputs.cr.RegistryEndpointAclPolicy[];
9807
9837
  /**
@@ -9849,6 +9879,20 @@ export declare namespace cr {
9849
9879
  */
9850
9880
  value: string;
9851
9881
  }
9882
+ interface VpcEndpointVpc {
9883
+ /**
9884
+ * Primary account ID for the VPC
9885
+ */
9886
+ accountId: number;
9887
+ /**
9888
+ * Subnet ID
9889
+ */
9890
+ subnetId: string;
9891
+ /**
9892
+ * VPC ID。
9893
+ */
9894
+ vpcId: string;
9895
+ }
9852
9896
  }
9853
9897
  export declare namespace directconnect {
9854
9898
  interface DirectConnectGatewayAssociateCen {
@@ -14094,6 +14138,22 @@ export declare namespace fwcenter {
14094
14138
  }
14095
14139
  }
14096
14140
  export declare namespace gtm {
14141
+ interface GetPolicyStatistics {
14142
+ /**
14143
+ * Number of available addresses
14144
+ */
14145
+ activeAddr: number;
14146
+ /**
14147
+ * Number of unavailable addresses
14148
+ */
14149
+ inactiveAddr: number;
14150
+ }
14151
+ interface GetPolicyTarget {
14152
+ /**
14153
+ * Address pool ID.
14154
+ */
14155
+ poolId: string;
14156
+ }
14097
14157
  interface GetPoolAddress {
14098
14158
  /**
14099
14159
  * Address capacity
@@ -14270,6 +14330,22 @@ export declare namespace gtm {
14270
14330
  */
14271
14331
  operator: string;
14272
14332
  }
14333
+ interface PolicyStatistics {
14334
+ /**
14335
+ * Number of available addresses
14336
+ */
14337
+ activeAddr: number;
14338
+ /**
14339
+ * Number of unavailable addresses
14340
+ */
14341
+ inactiveAddr: number;
14342
+ }
14343
+ interface PolicyTarget {
14344
+ /**
14345
+ * Address pool ID.
14346
+ */
14347
+ poolId: string;
14348
+ }
14273
14349
  interface PoolAddress {
14274
14350
  /**
14275
14351
  * Address capacity
@@ -15538,6 +15614,16 @@ export declare namespace kafka {
15538
15614
  */
15539
15615
  instanceName: string;
15540
15616
  }
15617
+ interface GetGroupTag {
15618
+ /**
15619
+ * Tag key
15620
+ */
15621
+ key: string;
15622
+ /**
15623
+ * Tag value
15624
+ */
15625
+ value: string;
15626
+ }
15541
15627
  interface GetInstanceChargeInfo {
15542
15628
  /**
15543
15629
  * Whether to automatically renew the subscription instance after expiration. true - auto renewal; false (default) - no auto renewal, instance will be stopped upon expiration.
@@ -15624,6 +15710,16 @@ export declare namespace kafka {
15624
15710
  */
15625
15711
  value: string;
15626
15712
  }
15713
+ interface GroupTag {
15714
+ /**
15715
+ * Tag key
15716
+ */
15717
+ key: string;
15718
+ /**
15719
+ * Tag value
15720
+ */
15721
+ value: string;
15722
+ }
15627
15723
  interface InstanceChargeInfo {
15628
15724
  /**
15629
15725
  * Whether to automatically renew the subscription instance after expiration. true - auto renewal; false (default) - no auto renewal, instance will be stopped upon expiration.
@@ -18127,32 +18223,12 @@ export declare namespace rdsmysql {
18127
18223
  * Instance ID bound to the current allowlist.
18128
18224
  */
18129
18225
  instanceId: string;
18130
- /**
18131
- * Instance name bound to the current allowlist.
18132
- */
18133
- instanceName: string;
18134
- /**
18135
- * Instance status.
18136
- */
18137
- instanceStatus: string;
18138
- /**
18139
- * Has the latest allowlist been synchronized? Values: true: Yes. false: No. Note: When modifying the allowlist, if the instance is not running, changes to the allowlist will not be immediately synchronized to the instance.
18140
- */
18141
- isLatest: boolean;
18142
- /**
18143
- * Private network ID of the instance.
18144
- */
18145
- vpc: string;
18146
18226
  }
18147
18227
  interface AllowListSecurityGroupBindInfo {
18148
18228
  /**
18149
18229
  * Mode for associating security groups. Values: IngressDirectionIp: Inbound IP. AssociateEcsIp: Associate ECS IP. Note: In the CreateAllowList API, the BindMode and SecurityGroupId fields of SecurityGroupBindInfoObject are required.
18150
18230
  */
18151
18231
  bindMode: string;
18152
- /**
18153
- * Security group IP address list.
18154
- */
18155
- ipLists: string[];
18156
18232
  /**
18157
18233
  * Security group ID.
18158
18234
  */
@@ -20507,6 +20583,16 @@ export declare namespace redis {
20507
20583
  }
20508
20584
  }
20509
20585
  export declare namespace rocketmq {
20586
+ interface AccessKeyTopicPermission {
20587
+ /**
20588
+ * Permission type. AccessKey has permissions for this Topic. ALL: Publish and subscribe permissions. PUB: Publish permission. SUB: Subscribe permission. DENY: No publish or subscribe permissions
20589
+ */
20590
+ permission: string;
20591
+ /**
20592
+ * Topic name
20593
+ */
20594
+ topicName: string;
20595
+ }
20510
20596
  interface AllowListAssociatedInstance {
20511
20597
  /**
20512
20598
  * Instance ID
@@ -20521,6 +20607,16 @@ export declare namespace rocketmq {
20521
20607
  */
20522
20608
  vpc: string;
20523
20609
  }
20610
+ interface GetAccessKeyTopicPermission {
20611
+ /**
20612
+ * Permission type. AccessKey has permissions for this Topic. ALL: Publish and subscribe permissions. PUB: Publish permission. SUB: Subscribe permission. DENY: No publish or subscribe permissions
20613
+ */
20614
+ permission: string;
20615
+ /**
20616
+ * Topic name
20617
+ */
20618
+ topicName: string;
20619
+ }
20524
20620
  interface GetAllowListAssociatedInstance {
20525
20621
  /**
20526
20622
  * Instance ID
@@ -21473,6 +21569,24 @@ export declare namespace tls {
21473
21569
  */
21474
21570
  severity: string;
21475
21571
  }
21572
+ interface EtlTargetResource {
21573
+ /**
21574
+ * Name of the custom output target. You must use this name to refer to the output target in the data processing rules
21575
+ */
21576
+ alias: string;
21577
+ /**
21578
+ * Region of the log topic for storing processed logs
21579
+ */
21580
+ region: string;
21581
+ /**
21582
+ * Cross-account authorization role name
21583
+ */
21584
+ roleTrn: string;
21585
+ /**
21586
+ * Log topic ID for storing processed logs
21587
+ */
21588
+ topicId: string;
21589
+ }
21476
21590
  interface GetAlarmAlarmNotifyGroup {
21477
21591
  /**
21478
21592
  * Alert notification group ID.
@@ -21937,471 +22051,1611 @@ export declare namespace tls {
21937
22051
  */
21938
22052
  severity: string;
21939
22053
  }
21940
- interface GetImportTaskImportSourceInfo {
22054
+ interface GetEtlTargetResource {
21941
22055
  /**
21942
- * Kafka data source information. When sourceType is kafka, the KafkaSourceInfo field is required
22056
+ * Name of the custom output target. You must use this name to refer to the output target in the data processing rules
21943
22057
  */
21944
- kafkaSourceInfo: outputs.tls.GetImportTaskImportSourceInfoKafkaSourceInfo;
22058
+ alias: string;
21945
22059
  /**
21946
- * TOS data source information. When sourceType is tos, the TosSourceInfo field is required.
22060
+ * Log project ID for storing processed logs
21947
22061
  */
21948
- tosSourceInfo: outputs.tls.GetImportTaskImportSourceInfoTosSourceInfo;
21949
- }
21950
- interface GetImportTaskImportSourceInfoKafkaSourceInfo {
22062
+ projectId: string;
21951
22063
  /**
21952
- * Data encoding format. Available options: UTF-8, GBK.
22064
+ * Log project name for storing processed logs
21953
22065
  */
21954
- encode: string;
22066
+ projectName: string;
21955
22067
  /**
21956
- * Kafka consumer group. If not specified, the system will automatically create a Kafka consumer group.
22068
+ * Region of the log topic for storing processed logs
21957
22069
  */
21958
- group: string;
22070
+ region: string;
21959
22071
  /**
21960
- * The service addresses for different types of Kafka clusters vary. Details are as follows: Message Queue Kafka Edition: Use the access point of the Kafka instance. For more information, see Access Point. If the Kafka instance and the Log Service Project are in the same region, you can use private network access; otherwise, use public network access. Self-hosted Kafka clusters: Use the IP address and port number or the domain name and port number of the Kafka Broker. Only public network access is supported. Separate multiple service addresses with a comma (,).
22072
+ * Cross-account authorization role name
21961
22073
  */
21962
- host: string;
22074
+ roleTrn: string;
21963
22075
  /**
21964
- * Starting position for data import. Options: 0: Earliest time, start importing from the first record in the specified Kafka Topic. 1: Latest time, start importing from the most recently generated record in the specified Kafka Topic.
22076
+ * Log topic ID for storing processed logs
21965
22077
  */
21966
- initialOffset: number;
22078
+ topicId: string;
21967
22079
  /**
21968
- * If you are using Message Queue Kafka Edition, set this to the Kafka instance ID.
22080
+ * Log topic name for storing processed logs
21969
22081
  */
21970
- instanceId: string;
22082
+ topicName: string;
22083
+ }
22084
+ interface GetHostGroupRule {
21971
22085
  /**
21972
- * Whether to enable authentication. If you use a public service address, it is recommended to enable authentication.
22086
+ * Container collection rules
21973
22087
  */
21974
- isNeedAuth: boolean;
22088
+ containerRule: outputs.tls.GetHostGroupRuleContainerRule;
21975
22089
  /**
21976
- * Password authentication mechanism. Available options: PLAIN, SCRAM-SHA-256, and SCRAM-SHA-512.
22090
+ * Time when the collection configuration was created.
21977
22091
  */
21978
- mechanism: string;
22092
+ createTime: string;
21979
22093
  /**
21980
- * Kafka SASL user password for authentication.
22094
+ * Extraction rule list.
21981
22095
  */
21982
- password: string;
22096
+ excludePaths: outputs.tls.GetHostGroupRuleExcludePath[];
21983
22097
  /**
21984
- * Secure transmission protocol. Options include plaintext, sasl*ssl, ssl, and sasl*plaintext
22098
+ * Extraction rules
21985
22099
  */
21986
- protocol: string;
22100
+ extractRule: outputs.tls.GetHostGroupRuleExtractRule;
21987
22101
  /**
21988
- * Specify log time. Options: 0: Use Kafka message timestamp. 1: Use current system time.
22102
+ * Collection type. 0: Host log file. 1: K8s container standard output. 2: Log file inside K8s container.
21989
22103
  */
21990
- timeSourceDefault: number;
22104
+ inputType: number;
21991
22105
  /**
21992
- * Kafka Topic name. Separate multiple Kafka Topics with commas (,).
22106
+ * Log sample.
21993
22107
  */
21994
- topic: string;
22108
+ logSample: string;
21995
22109
  /**
21996
- * Kafka SASL username for authentication.
22110
+ * Collection modes. minimalist*log: single-line full mode. json*log: JSON mode. delimiter*log: delimiter mode. multiline*log: multi-line full mode. fullregex_log: full regex mode.
21997
22111
  */
21998
- username: string;
21999
- }
22000
- interface GetImportTaskImportSourceInfoTosSourceInfo {
22112
+ logType: string;
22001
22113
  /**
22002
- * TOS bucket name
22114
+ * Time when the collection configuration was modified.
22003
22115
  */
22004
- bucket: string;
22116
+ modifyTime: string;
22005
22117
  /**
22006
- * Compression mode for data in the TOS bucket. none: No compression. snappy: Compress using snappy. gzip: Compress using gzip. lz4: Compress using lz4.
22118
+ * Data collection path list
22007
22119
  */
22008
- compressType: string;
22120
+ paths: string[];
22009
22121
  /**
22010
- * Path of the file to be imported in the TOS bucket.
22122
+ * Running status of the collection configuration. 0: Running. 1: Paused.
22011
22123
  */
22012
- prefix: string;
22124
+ pause: number;
22013
22125
  /**
22014
- * Region where the TOS bucket is located. Cross-region data import is supported
22126
+ * Collection configuration ID.
22015
22127
  */
22016
- region: string;
22017
- }
22018
- interface GetImportTaskTargetInfo {
22128
+ ruleId: string;
22019
22129
  /**
22020
- * Log extraction rule.
22130
+ * Name of the collection configuration.
22021
22131
  */
22022
- extractRule: outputs.tls.GetImportTaskTargetInfoExtractRule;
22132
+ ruleName: string;
22023
22133
  /**
22024
- * Log sample. When LogType is set to multiline_log, you must configure log samples. It is recommended to provide more than two log entries as examples to ensure the regular expression matches the first line of each log. Use real samples from the production environment.
22134
+ * ID of the log topic to which the collection configuration belongs.
22025
22135
  */
22026
- logSample: string;
22136
+ topicId: string;
22027
22137
  /**
22028
- * Specify log parsing type during import. delimiter*log: CSV type. multiline*log: multiline full text type. minimalist*log: single line full text type. json*log: JSON type.
22138
+ * Name of the log topic associated with the collection configuration
22029
22139
  */
22030
- logType: string;
22140
+ topicName: string;
22031
22141
  /**
22032
- * Region.
22142
+ * User-defined collection rules.
22033
22143
  */
22034
- region: string;
22144
+ userDefineRule: outputs.tls.GetHostGroupRuleUserDefineRule;
22035
22145
  }
22036
- interface GetImportTaskTargetInfoExtractRule {
22037
- /**
22038
- * Basic content of log extraction rules.
22039
- */
22040
- extractRule: outputs.tls.GetImportTaskTargetInfoExtractRuleExtractRule;
22146
+ interface GetHostGroupRuleContainerRule {
22041
22147
  /**
22042
- * Number of skipped rows. Only valid when the log type is delimiterLog and the import type is tos.
22148
+ * Container name to collect. If no container name is specified, all containers in the machine group are collected. Supports regular expressions. For example, setting the container name to ^(container-test)$ collects all containers named container-test.
22043
22149
  */
22044
- skipLineCount: number;
22150
+ containerNameRegex: string;
22045
22151
  /**
22046
- * Time extraction regular expression, used to extract the time value from the TimeKey field and parse it as the collection time
22152
+ * Whether to add environment variables as log tags to the raw log data. When enabled, Log Service adds container environment variable fields to logs. Setting multiple key-value pairs adds multiple fields. For example, set Key to source and Value to data_source. If the container has the environment variable source=DC, Log Service adds the field **tag**data_source_*: DC to the log.
22047
22153
  */
22048
- timeExtractRegex: string;
22154
+ envTags: outputs.tls.GetHostGroupRuleContainerRuleEnvTag[];
22049
22155
  /**
22050
- * Time zone. Supports machine time zone (default) and custom time zone. Custom time zone supports GMT and UTC. GMT format: GMT+08:00. UTC format: Asia/Shanghai.
22156
+ * Container environment variable denylist/blocklist specifies containers to exclude from collection. If the denylist/blocklist is not enabled, all containers are collected. If enabled, Key is required and Value is optional. If Value is empty, all containers with the specified Key in their environment variables are excluded. If Value is not empty, only containers matching the key-value pair are excluded—that is, containers with the specified Key and a Value matching the given pattern. Value supports regex matching. For example, set Key to module and Value to ^(tcp|udp)$ to exclude containers with module:tcp or module:udp in their environment variables. Multiple key-value pairs use logical OR: any container matching any pair is excluded from collection. When the denylist/blocklist is enabled, Keys cannot be duplicated.
22051
22157
  */
22052
- timeZone: string;
22053
- }
22054
- interface GetImportTaskTargetInfoExtractRuleExtractRule {
22158
+ excludeContainerEnvRegexes: outputs.tls.GetHostGroupRuleContainerRuleExcludeContainerEnvRegex[];
22055
22159
  /**
22056
- * Regular expression for identifying the first line of each log. The matched part is treated as the start of the log. When LogType is set to multiline_log, you must configure a log sample
22160
+ * The container Label denylist specifies which containers to exclude from collection. If not enabled, all containers are collected. If the container Label denylist is enabled, Key is required and Value is optional. If Value is empty, all containers with the specified Key in the container Label are excluded. If Value is not empty, only containers matching the Key-Value pair are excluded, meaning only containers with the specified Key and a Value matching the pattern are excluded. Value supports regex matching. For example, set Key to app and Value to ^(test1|test2)$ to exclude containers with app:test1 or app:test2 in the container Label. The logical relationship between multiple Key-Value pairs is OR, meaning any container Label matching any pair will be excluded from collection. When enabling the container Label denylist, Keys must not be duplicated.
22057
22161
  */
22058
- beginRegex: string;
22162
+ excludeContainerLabelRegexes: outputs.tls.GetHostGroupRuleContainerRuleExcludeContainerLabelRegex[];
22059
22163
  /**
22060
- * Delimiter. Only valid when LogType is delimiter_log.
22164
+ * The container environment variable allowlist specifies which containers to collect by using environment variables as criteria. If the allowlist is not enabled, all containers are collected. When the container environment variable allowlist is enabled, you must enter key-value pairs. Key is required; Value is optional. If Value is empty: collect all containers that contain the Key in their environment variables. If Value is not empty: only collect containers where the Key exists and its value matches Value. Value supports regex matching. For example, set Key to module and Value to ^(tcp|udp)$ to collect only containers with module:tcp or module:udp in their environment variables. Multiple key-value pairs use logical OR; any container environment variable matching any key-value pair will be included in the collection scope. When the container environment variable allowlist is enabled, Keys must not be duplicated.
22061
22165
  */
22062
- delimiter: string;
22166
+ includeContainerEnvRegexes: outputs.tls.GetHostGroupRuleContainerRuleIncludeContainerEnvRegex[];
22063
22167
  /**
22064
- * Enable nanoseconds.
22168
+ * The container Label allowlist specifies which containers to collect based on container Labels. If the allowlist is not enabled, all containers are collected. When the container Label allowlist is enabled, you must enter key-value pairs. Key is required; Value is optional. If Value is empty, all containers with the specified Key in their container Label are collected. If Value is not empty, only containers with the specified Key and a Value matching the Value field are collected. Value supports regular expressions. For example, set Key to app and Value to ^(test1|test2)$ to collect only containers with app:test1 or app:test2 in their container Label. The logical relationship between multiple key-value pairs is OR; any container Label matching any key-value pair will be included in the collection scope. When the container Label allowlist is enabled, Keys must not be duplicated.
22065
22169
  */
22066
- enableNanosecond: boolean;
22170
+ includeContainerLabelRegexes: outputs.tls.GetHostGroupRuleContainerRuleIncludeContainerLabelRegex[];
22067
22171
  /**
22068
- * Filter key regular expression.
22172
+ * Kubernetes container collection rules.
22069
22173
  */
22070
- filterKeyRegexes: outputs.tls.GetImportTaskTargetInfoExtractRuleExtractRuleFilterKeyRegex[];
22174
+ kubernetesRule: outputs.tls.GetHostGroupRuleContainerRuleKubernetesRule;
22071
22175
  /**
22072
- * List of log field names (Key). Valid only when LogType is delimiter_log. Supports up to 100 field names. Duplicate field names are not allowed, and all field names cannot be left blank
22176
+ * Collection information. stdout: Container standard output (stdout). stderr: Container standard error (stderr). all: Both container standard output (stdout) and standard error (stderr).
22073
22177
  */
22074
- keys: string[];
22178
+ stream: string;
22179
+ }
22180
+ interface GetHostGroupRuleContainerRuleEnvTag {
22075
22181
  /**
22076
- * Log regular expression
22182
+ * Key.
22077
22183
  */
22078
- logRegex: string;
22184
+ key: string;
22079
22185
  /**
22080
- * Log template.
22186
+ * Value.
22081
22187
  */
22082
- logTemplate: outputs.tls.GetImportTaskTargetInfoExtractRuleExtractRuleLogTemplate;
22188
+ val: string;
22189
+ }
22190
+ interface GetHostGroupRuleContainerRuleExcludeContainerEnvRegex {
22083
22191
  /**
22084
- * Quotation mark. Content enclosed by the quotation mark will not be separated and will be parsed as a complete field. Only valid when LogType is delimiter_log.
22192
+ * Key.
22085
22193
  */
22086
- quote: string;
22194
+ key: string;
22087
22195
  /**
22088
- * Parsing format for the time field. If you use a specified time field in the log as the log timestamp, you must fill in TimeKey and TimeFormat. TimeKey and TimeFormat must be paired. For configuration details, see time format.
22196
+ * Value.
22089
22197
  */
22090
- timeFormat: string;
22198
+ val: string;
22199
+ }
22200
+ interface GetHostGroupRuleContainerRuleExcludeContainerLabelRegex {
22091
22201
  /**
22092
- * Name of the log time field. If you use a specific time field in the log as the log timestamp, you must provide both TimeKey and TimeFormat. TimeKey and TimeFormat must appear in pairs
22202
+ * Key.
22093
22203
  */
22094
- timeKey: string;
22204
+ key: string;
22095
22205
  /**
22096
- * Time sample. Used to verify whether the entered time parsing format is correct
22206
+ * Value.
22097
22207
  */
22098
- timeSample: string;
22208
+ val: string;
22209
+ }
22210
+ interface GetHostGroupRuleContainerRuleIncludeContainerEnvRegex {
22099
22211
  /**
22100
- * When uploading logs that failed to parse, specify the key name for the failed logs. UnMatchUpLoadSwitch=true and UnMatchLogKey must be used together.
22212
+ * Key.
22101
22213
  */
22102
- unMatchLogKey: string;
22214
+ key: string;
22103
22215
  /**
22104
- * Whether to upload logs that failed to parse. UnMatchUpLoadSwitch=true and UnMatchLogKey must be paired. true: Upload logs that failed to parse. false: Do not upload logs that failed to parse.
22216
+ * Value.
22105
22217
  */
22106
- unMatchUpLoadSwitch: boolean;
22218
+ val: string;
22107
22219
  }
22108
- interface GetImportTaskTargetInfoExtractRuleExtractRuleFilterKeyRegex {
22220
+ interface GetHostGroupRuleContainerRuleIncludeContainerLabelRegex {
22109
22221
  /**
22110
22222
  * Key.
22111
22223
  */
22112
22224
  key: string;
22113
22225
  /**
22114
- * Regular expression.
22226
+ * Value.
22115
22227
  */
22116
- regex: string;
22228
+ val: string;
22117
22229
  }
22118
- interface GetImportTaskTargetInfoExtractRuleExtractRuleLogTemplate {
22230
+ interface GetHostGroupRuleContainerRuleKubernetesRule {
22119
22231
  /**
22120
- * Format.
22232
+ * Whether to add Kubernetes Annotations as log tags to the raw log data. When enabled, the log service adds Kubernetes Pod Annotation fields to the logs. Setting multiple key-value pairs adds multiple fields. For example, set Key to sink and Value to data_sink. If the Pod contains the Annotation sink=ck, the log will include the field **tag**data_sink_*: ck.
22121
22233
  */
22122
- format: string;
22234
+ annotationTags: outputs.tls.GetHostGroupRuleContainerRuleKubernetesRuleAnnotationTag[];
22123
22235
  /**
22124
- * Type
22236
+ * Whether to add all Kubernetes Labels as log tags to the raw log data. When enabled, the log service adds fields for all Labels in the Kubernetes Pod to the log. For example, if the Pod has Label source=DC and destination=CS, the log will include fields **tag**source__: DC and **tag**destination__: CS.
22125
22237
  */
22126
- type: string;
22238
+ enableAllLabelTag: boolean;
22239
+ /**
22240
+ * Pod Annotation denylist is used to specify containers that are not collected. If you need to set a Pod Annotation denylist, Key is required and Value is optional. If Value is empty, all containers under Pods whose Pod Annotation contains the Key will be excluded. If Value is not empty, only containers under Pods whose Pod Annotation contains the Key and whose value matches the Value will be excluded. By default, Value uses string matching, meaning only when Value and the Pod Annotation value are exactly the same will it match. If the value starts with ^ and ends with $, it is treated as a regular expression match. For example, set Key to app and Value to ^(test1|test2)$ to match containers under Pods whose Pod Annotation contains app:test1 or app:test2. Note: The logical relationship between multiple Key-Value pairs is OR, meaning as long as the Pod Annotation matches any pair, it will be included in the collection scope. When enabling the Pod Annotation denylist, Keys must not be duplicated. For fuzzy regular expression matching, you must add .*. For example, ^(http.*)$ matches strings that start with http
22241
+ */
22242
+ excludePodAnnotationRegexes: outputs.tls.GetHostGroupRuleContainerRuleKubernetesRuleExcludePodAnnotationRegex[];
22243
+ /**
22244
+ * Specify containers to exclude from collection using the Pod Label denylist. If not enabled, all containers are collected. To set a Pod Label denylist, Key is required and Value is optional. If Value is empty, all containers with the specified Key in the Pod Label are excluded from collection. If Value is not empty, only containers with the specified Key and a Value matching the pattern are excluded. Value supports regex matching. For example, set Key to module and Value to ^(tcp|udp)$ to exclude containers with module:tcp or module:udp in the Pod Label. Note: The logical relationship between multiple Key-Value pairs is OR, meaning any Pod Label matching any pair will be excluded from collection. When enabling the Pod Label denylist, Keys must not be duplicated. For fuzzy regex matching, you must add .*. For example, ^(http.*)$ matches any string starting with http.
22245
+ */
22246
+ excludePodLabelRegexes: outputs.tls.GetHostGroupRuleContainerRuleKubernetesRuleExcludePodLabelRegex[];
22247
+ /**
22248
+ * Pod Annotation Allowlist specifies which containers to collect. If you need to set a Pod Annotation Allowlist, Key is required and Value is optional. If Value is empty, all containers in Pods with the specified Key in their Pod Annotation are matched. If Value is not empty, only containers in Pods where the Pod Annotation contains the Key and its value matches Value are matched. By default, Value uses string matching, meaning only exact matches between Value and the Pod Annotation value are considered. If Value starts with ^ and ends with $, it uses regex matching. For example, set Key to app and Value to ^(test1|test2)$ to match containers in Pods with Pod Annotation app:test1 or app:test2. Note: Multiple Key-Value pairs use logical OR, so any Pod Annotation matching any pair will be included in the collection scope. When enabling the Pod Annotation Allowlist, Keys must not be duplicated. For regex fuzzy matching, you must add .*. For example, ^(http.*)$ matches values starting with http
22249
+ */
22250
+ includePodAnnotationRegexes: outputs.tls.GetHostGroupRuleContainerRuleKubernetesRuleIncludePodAnnotationRegex[];
22251
+ /**
22252
+ * Pod label allowlist specifies which containers to collect. If the Pod label allowlist is not enabled, all containers are collected. To set a Pod label allowlist, Key is required. If Value is empty, all containers with the Key in their Pod label are collected. If Value is not empty, only containers with the Key in their Pod label and a Value matching the specified pattern are collected. Value supports regex matching. For example, set Key to module and Value to ^(tcp|udp)$ to collect only containers with module:tcp or module:udp in their Pod label. Note: The logical relationship between multiple key-value pairs is OR, meaning any matching pair will include the Pod in the collection scope. When the Pod label allowlist is enabled, Keys must be unique. For fuzzy regex matching, you must add .*. For example, ^(http.*)$ matches strings starting with http.
22253
+ */
22254
+ includePodLabelRegexes: outputs.tls.GetHostGroupRuleContainerRuleKubernetesRuleIncludePodLabelRegex[];
22255
+ /**
22256
+ * Choose whether to add Kubernetes labels as log tags to the original log data. When enabled, the log service adds Kubernetes Pod label fields to the logs. Setting multiple key-value pairs adds multiple fields. For example, set Key to source and Value to data_source. If the Pod contains the label source=DC, the log will include the field **tag**data_source_*: DC.
22257
+ */
22258
+ labelTags: outputs.tls.GetHostGroupRuleContainerRuleKubernetesRuleLabelTag[];
22259
+ /**
22260
+ * Name of the Kubernetes Namespace to be collected. If not specified, all containers are collected. Namespace names support regular expression matching. For example, setting the Namespace name to ^(tcp|udp)$ collects all containers under the tcp and udp namespaces.
22261
+ */
22262
+ namespaceNameRegex: string;
22263
+ /**
22264
+ * Pod name is used to specify the Pod(s) to be collected. If the Pod name is not specified, all containers are collected. Pod name supports regex matching. For example, setting the Pod name to ^(http.*)$ collects all containers under Pods whose names start with http.
22265
+ */
22266
+ podNameRegex: string;
22267
+ /**
22268
+ * Specify the container to collect by workload name. If no workload name is specified, all containers are collected. Workload names support regular expressions. For example, setting the workload name to ^(http.*)$ collects all containers under workloads starting with http.
22269
+ */
22270
+ workloadNameRegex: string;
22271
+ /**
22272
+ * Specify containers to collect by workload type. Only one type can be selected. If no type is specified, containers of all types will be collected. Supported workload types are: Deployment: stateless workload StatefulSet: stateful workload DaemonSet: daemon process Job: job CronJob: scheduled job
22273
+ */
22274
+ workloadType: string;
22275
+ }
22276
+ interface GetHostGroupRuleContainerRuleKubernetesRuleAnnotationTag {
22277
+ /**
22278
+ * Key.
22279
+ */
22280
+ key: string;
22281
+ /**
22282
+ * Value.
22283
+ */
22284
+ val: string;
22285
+ }
22286
+ interface GetHostGroupRuleContainerRuleKubernetesRuleExcludePodAnnotationRegex {
22287
+ /**
22288
+ * Key.
22289
+ */
22290
+ key: string;
22291
+ /**
22292
+ * Value.
22293
+ */
22294
+ val: string;
22295
+ }
22296
+ interface GetHostGroupRuleContainerRuleKubernetesRuleExcludePodLabelRegex {
22297
+ /**
22298
+ * Key.
22299
+ */
22300
+ key: string;
22301
+ /**
22302
+ * Value.
22303
+ */
22304
+ val: string;
22305
+ }
22306
+ interface GetHostGroupRuleContainerRuleKubernetesRuleIncludePodAnnotationRegex {
22307
+ /**
22308
+ * Key.
22309
+ */
22310
+ key: string;
22311
+ /**
22312
+ * Value.
22313
+ */
22314
+ val: string;
22315
+ }
22316
+ interface GetHostGroupRuleContainerRuleKubernetesRuleIncludePodLabelRegex {
22317
+ /**
22318
+ * Key.
22319
+ */
22320
+ key: string;
22321
+ /**
22322
+ * Value.
22323
+ */
22324
+ val: string;
22325
+ }
22326
+ interface GetHostGroupRuleContainerRuleKubernetesRuleLabelTag {
22327
+ /**
22328
+ * Key.
22329
+ */
22330
+ key: string;
22331
+ /**
22332
+ * Value.
22333
+ */
22334
+ val: string;
22335
+ }
22336
+ interface GetHostGroupRuleExcludePath {
22337
+ /**
22338
+ * Collection path type. File: file name. Path: directory.
22339
+ */
22340
+ type: string;
22341
+ /**
22342
+ * Collection path. Must be specified as an absolute path. When Type is Path, Value indicates a directory. When Type is File, Value indicates a file name.
22343
+ */
22344
+ value: string;
22345
+ }
22346
+ interface GetHostGroupRuleExtractRule {
22347
+ /**
22348
+ * The regex pattern required to match the first line of the log. This is valid only when LogType is multiline*log or fullregex*log. The pattern must be a valid regular expression.
22349
+ */
22350
+ beginRegex: string;
22351
+ /**
22352
+ * Log delimiter. Valid only when LogType is delimiter_log.
22353
+ */
22354
+ delimiter: string;
22355
+ /**
22356
+ * Enable nanosecond precision time. When enabled, log time parsing will report time with nanosecond precision. true: Enable nanosecond precision time. false: Disable nanosecond precision time.
22357
+ */
22358
+ enableNanosecond: boolean;
22359
+ /**
22360
+ * Filter rule list.
22361
+ */
22362
+ filterKeyRegexes: outputs.tls.GetHostGroupRuleExtractRuleFilterKeyRegex[];
22363
+ /**
22364
+ * List of log field names (Keys).
22365
+ */
22366
+ keys: string[];
22367
+ /**
22368
+ * The entire log entry must match the regular expression. This is only valid when the log type is fullregex_log. The regular expression must be valid.
22369
+ */
22370
+ logRegex: string;
22371
+ /**
22372
+ * Automatically extract log fields based on the specified log template.
22373
+ */
22374
+ logTemplate: outputs.tls.GetHostGroupRuleExtractRuleLogTemplate;
22375
+ /**
22376
+ * Quotation mark. Content enclosed by quotation marks is parsed as a complete field and not separated. Only valid when LogType is delimiter_log.
22377
+ */
22378
+ quote: string;
22379
+ /**
22380
+ * Regular expression for extracting time, used to extract the time value from the TimeKey field and parse it as the collection time.
22381
+ */
22382
+ timeExtractRegex: string;
22383
+ /**
22384
+ * Parsing format for the time field. If a specified time field in the log is used as the log timestamp, you must provide TimeKey and TimeFormat.
22385
+ */
22386
+ timeFormat: string;
22387
+ /**
22388
+ * Field name for the log time field. If a specified time field in the log is used as the log timestamp, you must provide TimeKey and TimeFormat.
22389
+ */
22390
+ timeKey: string;
22391
+ /**
22392
+ * Sample time. Used to verify whether the specified time parsing format is correct.
22393
+ */
22394
+ timeSample: string;
22395
+ /**
22396
+ * Time zone. Supports machine time zone (default) and custom time zone. Custom time zone supports GMT and UTC.
22397
+ */
22398
+ timeZone: string;
22399
+ /**
22400
+ * Key name for logs that failed to parse when uploading
22401
+ */
22402
+ unMatchLogKey: string;
22403
+ /**
22404
+ * Upload logs that failed to parse. UnMatchUpLoadSwitch=true and UnMatchLogKey must be used together. true: Upload logs that failed to parse. false: Do not upload logs that failed to parse.
22405
+ */
22406
+ unMatchUpLoadSwitch: boolean;
22407
+ }
22408
+ interface GetHostGroupRuleExtractRuleFilterKeyRegex {
22409
+ /**
22410
+ * Name of the filter field.
22411
+ */
22412
+ key: string;
22413
+ /**
22414
+ * The log content of the filter field must match the specified regular expression.
22415
+ */
22416
+ regex: string;
22417
+ }
22418
+ interface GetHostGroupRuleExtractRuleLogTemplate {
22419
+ /**
22420
+ * Log template format
22421
+ */
22422
+ format: string;
22423
+ /**
22424
+ * Log template type. Supported types: Nginx (Nginx log template type).
22425
+ */
22426
+ type: string;
22427
+ }
22428
+ interface GetHostGroupRuleUserDefineRule {
22429
+ /**
22430
+ * Advanced parameters are used for extended configuration. After enabling extended configuration, you can customize advanced behaviors of LogCollector, such as when to release file handles. Note: If multiple conditions for releasing handles are specified, the handle will be released and log file monitoring will end as soon as any condition is met.
22431
+ */
22432
+ advanced: outputs.tls.GetHostGroupRuleUserDefineRuleAdvanced;
22433
+ /**
22434
+ * Whether to upload the Label information of the host group to the log service. Disabled by default. true: LogCollector uploads the Label information of the host group to the specified field. You can specify the field name in the HostGroupLabelKey parameter. false (default): LogCollector does not upload the Label information of the host group.
22435
+ */
22436
+ enableHostGroupLabel: boolean;
22437
+ /**
22438
+ * Whether to upload the hostname field. Default is disabled. true: Adds a field to the original log to record the log source's hostname. Specify the hostname field name using HostnameKey. false (default): Does not add the hostname field.
22439
+ */
22440
+ enableHostname: boolean;
22441
+ /**
22442
+ * Whether to upload raw logs. true: Upload raw logs. false (default): Do not upload raw logs.
22443
+ */
22444
+ enableRawLog: boolean;
22445
+ /**
22446
+ * Add constant fields to logs. Constant fields must follow these restrictions: Up to 5 constant fields can be uploaded. Field name (Key) must be unique and not empty. Length: 1–128 characters, including letters, numbers, and special characters (-*./), and cannot start with an underscore. Field value (Value) must not be empty, maximum length is 512 KiB.
22447
+ */
22448
+ fields: outputs.tls.GetHostGroupRuleUserDefineRuleField[];
22449
+ /**
22450
+ * Field name used to store machine group label information.
22451
+ */
22452
+ hostGroupLabelKey: string;
22453
+ /**
22454
+ * hostname field name. Only required when EnableHostname is set to true.
22455
+ */
22456
+ hostnameKey: string;
22457
+ /**
22458
+ * Ignore log files that have not been updated for a specified duration, in hours.
22459
+ */
22460
+ ignoreOlder: number;
22461
+ /**
22462
+ * Allows multiple log file collections. Empty: Uses the log file ID (including file inode, device, and checksum of the first N bytes) to uniquely identify the log file. RuleID: Uses the collection rule ID and log file ID to uniquely identify the log file. TopicIDRuleName: Uses the log topic ID, collection rule Name, and log file ID to uniquely identify the log file.
22463
+ */
22464
+ multiCollectsType: string;
22465
+ /**
22466
+ * Rules for parsing the collection path. After setting the rule, fields in the collection path are extracted using the specified regex and added as metadata to the log data. Note: This parameter is not supported when collecting container standard output.
22467
+ */
22468
+ parsePathRule: outputs.tls.GetHostGroupRuleUserDefineRuleParsePathRule;
22469
+ /**
22470
+ * LogCollector plugin configuration. After enabling plugin configuration, you can add one or more LogCollector processor plugins to parse logs with complex or variable structures.
22471
+ */
22472
+ plugin: outputs.tls.GetHostGroupRuleUserDefineRulePlugin;
22473
+ /**
22474
+ * Original log field name. Only effective when EnableRawLog is set to true. RawLogKey defaults to **raw**, meaning the original log data will be encapsulated in the **raw** field and uploaded to the log service together with the parsed log data
22475
+ */
22476
+ rawLogKey: string;
22477
+ /**
22478
+ * Rules for routing log partitions. If this parameter is not set, logs are written using the default load balancing mode, and packets are written to any available Shard. If set, logs are collected using the HashKey routing Shard mode, and the log service writes data to the Shard containing the specified Key value.
22479
+ */
22480
+ shardHashKey: outputs.tls.GetHostGroupRuleUserDefineRuleShardHashKey;
22481
+ /**
22482
+ * LogCollector collection strategy, specifying whether LogCollector collects incremental logs or full logs. The default is false, which means full log collection. true: incremental collection. When LogCollector collects logs, it only collects newly added content in the file. When a monitored log file receives new log entries, LogCollector is triggered to collect logs. For log files being collected for the first time, LogCollector automatically determines the collection position based on the incremental threshold TailSizeKb you specify. If the new file size does not exceed the incremental threshold, collection starts from the beginning of the new file. If the new file size exceeds the incremental threshold, collection starts from the position at the end of the file minus the incremental threshold, meaning only incremental logs are collected. For log files that are not being collected for the first time, LogCollector determines the collection position based on the Checkpoint and continues collecting. false: (default) full collection. LogCollector collects logs from the beginning of each file, including historical log data.
22483
+ */
22484
+ tailFiles: boolean;
22485
+ /**
22486
+ * Incremental collection backtracking threshold, in KiB. When LogCollector uses incremental collection, for the first collection of a log file: if the new log file size does not exceed the TailSizeKb value, collection starts from the beginning of the file. If the new log file size exceeds the TailSizeKb value, collection starts from the position TailSizeKb from the end of the file.
22487
+ */
22488
+ tailSizeKb: number;
22489
+ }
22490
+ interface GetHostGroupRuleUserDefineRuleAdvanced {
22491
+ /**
22492
+ * After reading to the end of the log file, whether to release the file handle. Default is false.
22493
+ */
22494
+ closeEof: boolean;
22495
+ /**
22496
+ * Wait time before releasing log file handles. If no new logs are written to a log file for the specified duration, the handle for that log file is released. Unit: seconds. Range: 1–300 seconds. Default: 60 seconds.
22497
+ */
22498
+ closeInactive: number;
22499
+ /**
22500
+ * Whether to release the handle of the log file after it is removed. Default is false.
22501
+ */
22502
+ closeRemoved: boolean;
22503
+ /**
22504
+ * Whether to release the handle of the log file after it is renamed. Default is false.
22505
+ */
22506
+ closeRenamed: boolean;
22507
+ /**
22508
+ * Maximum duration for LogCollector to monitor log files, in seconds. The default is 0 seconds, meaning LogCollector does not limit the monitoring duration. Timing starts when LogCollector begins monitoring the log file. After the specified duration is exceeded, regardless of whether the log file has been fully read, LogCollector immediately releases the file handle and stops monitoring.
22509
+ */
22510
+ closeTimeout: number;
22511
+ /**
22512
+ * Maximum wait time when LogCollector does not read a line break. Unit: seconds. Default: 5s. LogCollector starts timing when it begins reading log file content. If no line break is read within the specified time, it will send the buffered logs. If the file write interval is large, a complete log entry may be split into two parts and written separately. Adjust this parameter based on your log write interval.
22513
+ */
22514
+ noLineTerminatorEofMaxTime: number;
22515
+ }
22516
+ interface GetHostGroupRuleUserDefineRuleField {
22517
+ /**
22518
+ * Key.
22519
+ */
22520
+ key: string;
22521
+ /**
22522
+ * Value.
22523
+ */
22524
+ val: string;
22525
+ }
22526
+ interface GetHostGroupRuleUserDefineRuleParsePathRule {
22527
+ /**
22528
+ * List of field names. Log Service parses PathSample into multiple fields using regular expressions (Regex). Keys specify the name of each field. You can configure up to 100 field names. Field names cannot be empty or duplicated.
22529
+ */
22530
+ keys: string[];
22531
+ /**
22532
+ * Sample collection path for actual scenarios. The sample path must be an absolute path. Wildcards *, ?, ** are not allowed in the sample path.
22533
+ */
22534
+ pathSample: string;
22535
+ /**
22536
+ * Regular expression used to extract the path field. It must match the example collection path; otherwise, extraction will fail.
22537
+ */
22538
+ regex: string;
22539
+ }
22540
+ interface GetHostGroupRuleUserDefineRulePlugin {
22541
+ /**
22542
+ * LogCollector plugins. For supported plugin lists and parameter descriptions, see LogCollector plugin overview.
22543
+ */
22544
+ processors: string;
22545
+ }
22546
+ interface GetHostGroupRuleUserDefineRuleShardHashKey {
22547
+ /**
22548
+ * The HashKey of the log group specifies the shard where the current log group will be written. The valid range for this parameter is [00000000000000000000000000000000-ffffffffffffffffffffffffffffffff).
22549
+ */
22550
+ hashKey: string;
22551
+ }
22552
+ interface GetImportTaskImportSourceInfo {
22553
+ /**
22554
+ * Kafka data source information. When sourceType is kafka, the KafkaSourceInfo field is required
22555
+ */
22556
+ kafkaSourceInfo: outputs.tls.GetImportTaskImportSourceInfoKafkaSourceInfo;
22557
+ /**
22558
+ * TOS data source information. When sourceType is tos, the TosSourceInfo field is required.
22559
+ */
22560
+ tosSourceInfo: outputs.tls.GetImportTaskImportSourceInfoTosSourceInfo;
22561
+ }
22562
+ interface GetImportTaskImportSourceInfoKafkaSourceInfo {
22563
+ /**
22564
+ * Data encoding format. Available options: UTF-8, GBK.
22565
+ */
22566
+ encode: string;
22567
+ /**
22568
+ * Kafka consumer group. If not specified, the system will automatically create a Kafka consumer group.
22569
+ */
22570
+ group: string;
22571
+ /**
22572
+ * The service addresses for different types of Kafka clusters vary. Details are as follows: Message Queue Kafka Edition: Use the access point of the Kafka instance. For more information, see Access Point. If the Kafka instance and the Log Service Project are in the same region, you can use private network access; otherwise, use public network access. Self-hosted Kafka clusters: Use the IP address and port number or the domain name and port number of the Kafka Broker. Only public network access is supported. Separate multiple service addresses with a comma (,).
22573
+ */
22574
+ host: string;
22575
+ /**
22576
+ * Starting position for data import. Options: 0: Earliest time, start importing from the first record in the specified Kafka Topic. 1: Latest time, start importing from the most recently generated record in the specified Kafka Topic.
22577
+ */
22578
+ initialOffset: number;
22579
+ /**
22580
+ * If you are using Message Queue Kafka Edition, set this to the Kafka instance ID.
22581
+ */
22582
+ instanceId: string;
22583
+ /**
22584
+ * Whether to enable authentication. If you use a public service address, it is recommended to enable authentication.
22585
+ */
22586
+ isNeedAuth: boolean;
22587
+ /**
22588
+ * Password authentication mechanism. Available options: PLAIN, SCRAM-SHA-256, and SCRAM-SHA-512.
22589
+ */
22590
+ mechanism: string;
22591
+ /**
22592
+ * Kafka SASL user password for authentication.
22593
+ */
22594
+ password: string;
22595
+ /**
22596
+ * Secure transmission protocol. Options include plaintext, sasl*ssl, ssl, and sasl*plaintext
22597
+ */
22598
+ protocol: string;
22599
+ /**
22600
+ * Specify log time. Options: 0: Use Kafka message timestamp. 1: Use current system time.
22601
+ */
22602
+ timeSourceDefault: number;
22603
+ /**
22604
+ * Kafka Topic name. Separate multiple Kafka Topics with commas (,).
22605
+ */
22606
+ topic: string;
22607
+ /**
22608
+ * Kafka SASL username for authentication.
22609
+ */
22610
+ username: string;
22611
+ }
22612
+ interface GetImportTaskImportSourceInfoTosSourceInfo {
22613
+ /**
22614
+ * TOS bucket name
22615
+ */
22616
+ bucket: string;
22617
+ /**
22618
+ * Compression mode for data in the TOS bucket. none: No compression. snappy: Compress using snappy. gzip: Compress using gzip. lz4: Compress using lz4.
22619
+ */
22620
+ compressType: string;
22621
+ /**
22622
+ * Path of the file to be imported in the TOS bucket.
22623
+ */
22624
+ prefix: string;
22625
+ /**
22626
+ * Region where the TOS bucket is located. Cross-region data import is supported
22627
+ */
22628
+ region: string;
22629
+ }
22630
+ interface GetImportTaskTargetInfo {
22631
+ /**
22632
+ * Log extraction rule.
22633
+ */
22634
+ extractRule: outputs.tls.GetImportTaskTargetInfoExtractRule;
22635
+ /**
22636
+ * Log sample. When LogType is set to multiline_log, you must configure log samples. It is recommended to provide more than two log entries as examples to ensure the regular expression matches the first line of each log. Use real samples from the production environment.
22637
+ */
22638
+ logSample: string;
22639
+ /**
22640
+ * Specify log parsing type during import. delimiter*log: CSV type. multiline*log: multiline full text type. minimalist*log: single line full text type. json*log: JSON type.
22641
+ */
22642
+ logType: string;
22643
+ /**
22644
+ * Region.
22645
+ */
22646
+ region: string;
22647
+ }
22648
+ interface GetImportTaskTargetInfoExtractRule {
22649
+ /**
22650
+ * Basic content of log extraction rules.
22651
+ */
22652
+ extractRule: outputs.tls.GetImportTaskTargetInfoExtractRuleExtractRule;
22653
+ /**
22654
+ * Number of skipped rows. Only valid when the log type is delimiterLog and the import type is tos.
22655
+ */
22656
+ skipLineCount: number;
22657
+ /**
22658
+ * Time extraction regular expression, used to extract the time value from the TimeKey field and parse it as the collection time
22659
+ */
22660
+ timeExtractRegex: string;
22661
+ /**
22662
+ * Time zone. Supports machine time zone (default) and custom time zone. Custom time zone supports GMT and UTC. GMT format: GMT+08:00. UTC format: Asia/Shanghai.
22663
+ */
22664
+ timeZone: string;
22665
+ }
22666
+ interface GetImportTaskTargetInfoExtractRuleExtractRule {
22667
+ /**
22668
+ * Regular expression for identifying the first line of each log. The matched part is treated as the start of the log. When LogType is set to multiline_log, you must configure a log sample
22669
+ */
22670
+ beginRegex: string;
22671
+ /**
22672
+ * Delimiter. Only valid when LogType is delimiter_log.
22673
+ */
22674
+ delimiter: string;
22675
+ /**
22676
+ * Enable nanoseconds.
22677
+ */
22678
+ enableNanosecond: boolean;
22679
+ /**
22680
+ * Filter key regular expression.
22681
+ */
22682
+ filterKeyRegexes: outputs.tls.GetImportTaskTargetInfoExtractRuleExtractRuleFilterKeyRegex[];
22683
+ /**
22684
+ * List of log field names (Key). Valid only when LogType is delimiter_log. Supports up to 100 field names. Duplicate field names are not allowed, and all field names cannot be left blank
22685
+ */
22686
+ keys: string[];
22687
+ /**
22688
+ * Log regular expression
22689
+ */
22690
+ logRegex: string;
22691
+ /**
22692
+ * Log template.
22693
+ */
22694
+ logTemplate: outputs.tls.GetImportTaskTargetInfoExtractRuleExtractRuleLogTemplate;
22695
+ /**
22696
+ * Quotation mark. Content enclosed by the quotation mark will not be separated and will be parsed as a complete field. Only valid when LogType is delimiter_log.
22697
+ */
22698
+ quote: string;
22699
+ /**
22700
+ * Parsing format for the time field. If you use a specified time field in the log as the log timestamp, you must fill in TimeKey and TimeFormat. TimeKey and TimeFormat must be paired. For configuration details, see time format.
22701
+ */
22702
+ timeFormat: string;
22703
+ /**
22704
+ * Name of the log time field. If you use a specific time field in the log as the log timestamp, you must provide both TimeKey and TimeFormat. TimeKey and TimeFormat must appear in pairs
22705
+ */
22706
+ timeKey: string;
22707
+ /**
22708
+ * Time sample. Used to verify whether the entered time parsing format is correct
22709
+ */
22710
+ timeSample: string;
22711
+ /**
22712
+ * When uploading logs that failed to parse, specify the key name for the failed logs. UnMatchUpLoadSwitch=true and UnMatchLogKey must be used together.
22713
+ */
22714
+ unMatchLogKey: string;
22715
+ /**
22716
+ * Whether to upload logs that failed to parse. UnMatchUpLoadSwitch=true and UnMatchLogKey must be paired. true: Upload logs that failed to parse. false: Do not upload logs that failed to parse.
22717
+ */
22718
+ unMatchUpLoadSwitch: boolean;
22719
+ }
22720
+ interface GetImportTaskTargetInfoExtractRuleExtractRuleFilterKeyRegex {
22721
+ /**
22722
+ * Key.
22723
+ */
22724
+ key: string;
22725
+ /**
22726
+ * Regular expression.
22727
+ */
22728
+ regex: string;
22729
+ }
22730
+ interface GetImportTaskTargetInfoExtractRuleExtractRuleLogTemplate {
22731
+ /**
22732
+ * Format.
22733
+ */
22734
+ format: string;
22735
+ /**
22736
+ * Type
22737
+ */
22738
+ type: string;
22739
+ }
22740
+ interface GetImportTaskTaskStatistics {
22741
+ /**
22742
+ * Total resource bytes enumerated
22743
+ */
22744
+ bytesTotal: number;
22745
+ /**
22746
+ * Bytes transferred.
22747
+ */
22748
+ bytesTransferred: number;
22749
+ /**
22750
+ * Number of resources failed to import.
22751
+ */
22752
+ failed: number;
22753
+ /**
22754
+ * Number of resources not found.
22755
+ */
22756
+ notExist: number;
22757
+ /**
22758
+ * Number of resources skipped during import
22759
+ */
22760
+ skipped: number;
22761
+ /**
22762
+ * Task status. Status of the import task. Preparing: Preparing for import. Importing: Importing data. Success: Import completed successfully. Failed: Import failed. Stopped: Import paused.
22763
+ */
22764
+ taskStatus: string;
22765
+ /**
22766
+ * Total number of resources enumerated.
22767
+ */
22768
+ total: number;
22769
+ /**
22770
+ * Number of records transferred.
22771
+ */
22772
+ transferred: number;
22773
+ }
22774
+ interface GetIndexFullText {
22775
+ /**
22776
+ * Case sensitivity. true: Case sensitive. false: Not case sensitive.
22777
+ */
22778
+ caseSensitive: boolean;
22779
+ /**
22780
+ * Token separators for the full-text index. Each character in the string represents a token separator. Length: 1–256 bytes. Only one or more of the following characters are supported: letters, numbers, and !@#%^&*()-_=\\"', <>/?|;:\ \r[]{}. . Supports configuring both Chinese characters and token separators simultaneously.
22781
+ */
22782
+ delimiter: string;
22783
+ /**
22784
+ * When searching, specify whether to segment Chinese content in logs according to Chinese grammar. The default is false. true: For Chinese characters in logs, segment the log according to common Chinese grammar rules. Custom segmentation symbols for Chinese content are not supported. For non-Chinese characters in logs, segment the log using the segmentation symbols specified in the parameter. false: Segment the log using the segmentation symbols specified in the parameter.
22785
+ */
22786
+ includeChinese: boolean;
22787
+ }
22788
+ interface GetIndexKeyValue {
22789
+ /**
22790
+ * Specify the field names for key-value indexing. Up to 100 fields can be added. Only letters, numbers, spaces, underscores (_), hyphens (-), and slashes (/) are supported, and field names cannot start or end with a space. Each key name must be unique within the same index. Length: 1–128 characters. For subfields in JSON-type key-value indexes, use a dot (.) to indicate the hierarchy between JSON fields. For example, if the JSON field 'namelist' contains a text-type subfield 'totalcount' and a JSON-type subfield 'info', and 'info' contains the field 'name', the field names should be configured as 'totalcount' and 'info.name' respectively.
22791
+ */
22792
+ key: string;
22793
+ /**
22794
+ * Field description information required for configuring key-value indexes.
22795
+ */
22796
+ value: outputs.tls.GetIndexKeyValueValue;
22797
+ }
22798
+ interface GetIndexKeyValueValue {
22799
+ /**
22800
+ * Indicates whether the index was added automatically. true: The index was added automatically. false: The index was not added automatically.
22801
+ */
22802
+ autoIndexFlag: boolean;
22803
+ /**
22804
+ * Whether to distinguish case. Default is false.
22805
+ */
22806
+ caseSensitive: boolean;
22807
+ /**
22808
+ * Token separators for the field. Default is empty (""). Each character in the string represents a token separator. Length: 0–256 bytes. If the length is 0, segmentation is disabled. Only one or more of the following characters are supported: letters, numbers, and !@#%^&*()-_=\\"', <>/?|;:\ \r[]{}. . Supports configuring both Chinese characters and token separators simultaneously.
22809
+ */
22810
+ delimiter: string;
22811
+ /**
22812
+ * When searching, determines whether to segment Chinese log content according to Chinese syntax. Enabled: Chinese characters in logs are segmented based on common Chinese syntax; custom segmentation for Chinese content is not supported. Non-Chinese characters in logs are segmented using the token separators specified in the parameter. Disabled: Logs are segmented using the token separators specified in the parameter.
22813
+ */
22814
+ includeChinese: boolean;
22815
+ /**
22816
+ * Create indexes for all fields with text values in the JSON field.
22817
+ */
22818
+ indexAll: boolean;
22819
+ /**
22820
+ * Enable automatic indexing and statistics for JSON fields. true: Enable automatic indexing and statistics. false: Disable automatic indexing and statistics.
22821
+ */
22822
+ indexSqlAll: boolean;
22823
+ /**
22824
+ * When ValueType is json, you can configure key-value indexes for JSON subfields using the JsonKeys field, which is an array of KeyValueInfo. Each element in the JsonKeys list is a KeyValueInfo, and you can further nest text, long, and double type subfields. For subfields in JSON key-value indexes, use . to indicate the hierarchy between JSON fields. For example, the JSON field namelist contains a text-type subfield totalcount and a JSON-type info, which itself contains the field name. Each field name should be configured as totalcount and info.name, respectively. The SqlFlag setting for subfield key-value indexes defined in JsonKeys must match their parent field, meaning they must be enabled or disabled together. The default is disabled. Subfields do not support separate settings for Delimiter, CaseSensitive, or IncludeChinese. For text-type fields, CaseSensitive, Delimiter, and IncludeChinese always inherit the parent field settings. This is only set when ValueType is json.
22825
+ */
22826
+ jsonKeys: outputs.tls.GetIndexKeyValueValueJsonKey[];
22827
+ /**
22828
+ * Whether analysis is enabled for the field. Default is false. After enabling statistical analysis, you can configure token delimiters and whether to include Chinese content.
22829
+ */
22830
+ sqlFlag: boolean;
22831
+ /**
22832
+ * Field type. Currently supports long, double, text, and json. The long and double types do not support configuring delimiters, including Chinese, or case sensitivity. Only the json type supports further configuration of JsonKeys subfields.
22833
+ */
22834
+ valueType: string;
22835
+ }
22836
+ interface GetIndexKeyValueValueJsonKey {
22837
+ /**
22838
+ * Specify the field names for key-value indexing. Up to 100 fields can be added. Only letters, numbers, spaces, underscores (_), hyphens (-), and slashes (/) are supported, and field names cannot start or end with a space. Each key name must be unique within the same index. Length: 1–128 characters. For subfields in JSON-type key-value indexes, use a dot (.) to indicate the hierarchy between JSON fields. For example, if the JSON field 'namelist' contains a text-type subfield 'totalcount' and a JSON-type subfield 'info', and 'info' contains the field 'name', the field names should be configured as 'totalcount' and 'info.name' respectively.
22839
+ */
22840
+ key: string;
22841
+ /**
22842
+ * Field description information required for configuring key-value indexes.
22843
+ */
22844
+ value: outputs.tls.GetIndexKeyValueValueJsonKeyValue;
22845
+ }
22846
+ interface GetIndexKeyValueValueJsonKeyValue {
22847
+ /**
22848
+ * Indicates whether the index was added automatically. true: The index was added automatically. false: The index was not added automatically.
22849
+ */
22850
+ autoIndexFlag: boolean;
22851
+ /**
22852
+ * Whether to distinguish case. Default is false.
22853
+ */
22854
+ caseSensitive: boolean;
22855
+ /**
22856
+ * Token separators for the field. Default is empty (""). Each character in the string represents a token separator. Length: 0–256 bytes. If the length is 0, segmentation is disabled. Only one or more of the following characters are supported: letters, numbers, and !@#%^&*()-_=\\"', <>/?|;:\ \r[]{}. . Supports configuring both Chinese characters and token separators simultaneously.
22857
+ */
22858
+ delimiter: string;
22859
+ /**
22860
+ * When searching, determines whether to segment Chinese log content according to Chinese syntax. Enabled: Chinese characters in logs are segmented based on common Chinese syntax; custom segmentation for Chinese content is not supported. Non-Chinese characters in logs are segmented using the token separators specified in the parameter. Disabled: Logs are segmented using the token separators specified in the parameter.
22861
+ */
22862
+ includeChinese: boolean;
22863
+ /**
22864
+ * Create indexes for all fields with text values in the JSON field.
22865
+ */
22866
+ indexAll: boolean;
22867
+ /**
22868
+ * Enable automatic indexing and statistics for JSON fields. true: Enable automatic indexing and statistics. false: Disable automatic indexing and statistics.
22869
+ */
22870
+ indexSqlAll: boolean;
22871
+ /**
22872
+ * Whether analysis is enabled for the field. Default is false. After enabling statistical analysis, you can configure token delimiters and whether to include Chinese content.
22873
+ */
22874
+ sqlFlag: boolean;
22875
+ /**
22876
+ * Field type. Currently supports long, double, text, and json. The long and double types do not support configuring delimiters, including Chinese, or case sensitivity. Only the json type supports further configuration of JsonKeys subfields.
22877
+ */
22878
+ valueType: string;
22879
+ }
22880
+ interface GetIndexUserInnerKeyValue {
22881
+ /**
22882
+ * Specify the field names for key-value indexing. Up to 100 fields can be added. Only letters, numbers, spaces, underscores (_), hyphens (-), and slashes (/) are supported, and field names cannot start or end with a space. Each key name must be unique within the same index. Length: 1–128 characters. For subfields in JSON-type key-value indexes, use a dot (.) to indicate the hierarchy between JSON fields. For example, if the JSON field 'namelist' contains a text-type subfield 'totalcount' and a JSON-type subfield 'info', and 'info' contains the field 'name', the field names should be configured as 'totalcount' and 'info.name' respectively.
22883
+ */
22884
+ key: string;
22885
+ /**
22886
+ * Field description information required for configuring key-value indexes.
22887
+ */
22888
+ value: outputs.tls.GetIndexUserInnerKeyValueValue;
22889
+ }
22890
+ interface GetIndexUserInnerKeyValueValue {
22891
+ /**
22892
+ * Indicates whether the index was added automatically. true: The index was added automatically. false: The index was not added automatically.
22893
+ */
22894
+ autoIndexFlag: boolean;
22895
+ /**
22896
+ * Whether to distinguish case. Default is false.
22897
+ */
22898
+ caseSensitive: boolean;
22899
+ /**
22900
+ * Token separators for the field. Default is empty (""). Each character in the string represents a token separator. Length: 0–256 bytes. If the length is 0, segmentation is disabled. Only one or more of the following characters are supported: letters, numbers, and !@#%^&*()-_=\\"', <>/?|;:\ \r[]{}. . Supports configuring both Chinese characters and token separators simultaneously.
22901
+ */
22902
+ delimiter: string;
22903
+ /**
22904
+ * When searching, determines whether to segment Chinese log content according to Chinese syntax. Enabled: Chinese characters in logs are segmented based on common Chinese syntax; custom segmentation for Chinese content is not supported. Non-Chinese characters in logs are segmented using the token separators specified in the parameter. Disabled: Logs are segmented using the token separators specified in the parameter.
22905
+ */
22906
+ includeChinese: boolean;
22907
+ /**
22908
+ * Create indexes for all fields with text values in the JSON field.
22909
+ */
22910
+ indexAll: boolean;
22911
+ /**
22912
+ * Enable automatic indexing and statistics for JSON fields. true: Enable automatic indexing and statistics. false: Disable automatic indexing and statistics.
22913
+ */
22914
+ indexSqlAll: boolean;
22915
+ /**
22916
+ * When ValueType is json, you can configure key-value indexes for JSON subfields using the JsonKeys field, which is an array of KeyValueInfo. Each element in the JsonKeys list is a KeyValueInfo, and you can further nest text, long, and double type subfields. For subfields in JSON key-value indexes, use . to indicate the hierarchy between JSON fields. For example, the JSON field namelist contains a text-type subfield totalcount and a JSON-type info, which itself contains the field name. Each field name should be configured as totalcount and info.name, respectively. The SqlFlag setting for subfield key-value indexes defined in JsonKeys must match their parent field, meaning they must be enabled or disabled together. The default is disabled. Subfields do not support separate settings for Delimiter, CaseSensitive, or IncludeChinese. For text-type fields, CaseSensitive, Delimiter, and IncludeChinese always inherit the parent field settings. This is only set when ValueType is json.
22917
+ */
22918
+ jsonKeys: outputs.tls.GetIndexUserInnerKeyValueValueJsonKey[];
22919
+ /**
22920
+ * Whether analysis is enabled for the field. Default is false. After enabling statistical analysis, you can configure token delimiters and whether to include Chinese content.
22921
+ */
22922
+ sqlFlag: boolean;
22923
+ /**
22924
+ * Field type. Currently supports long, double, text, and json. The long and double types do not support configuring delimiters, including Chinese, or case sensitivity. Only the json type supports further configuration of JsonKeys subfields.
22925
+ */
22926
+ valueType: string;
22927
+ }
22928
+ interface GetIndexUserInnerKeyValueValueJsonKey {
22929
+ /**
22930
+ * Specify the field names for key-value indexing. Up to 100 fields can be added. Only letters, numbers, spaces, underscores (_), hyphens (-), and slashes (/) are supported, and field names cannot start or end with a space. Each key name must be unique within the same index. Length: 1–128 characters. For subfields in JSON-type key-value indexes, use a dot (.) to indicate the hierarchy between JSON fields. For example, if the JSON field 'namelist' contains a text-type subfield 'totalcount' and a JSON-type subfield 'info', and 'info' contains the field 'name', the field names should be configured as 'totalcount' and 'info.name' respectively.
22931
+ */
22932
+ key: string;
22933
+ /**
22934
+ * Field description information required for configuring key-value indexes.
22935
+ */
22936
+ value: outputs.tls.GetIndexUserInnerKeyValueValueJsonKeyValue;
22937
+ }
22938
+ interface GetIndexUserInnerKeyValueValueJsonKeyValue {
22939
+ /**
22940
+ * Indicates whether the index was added automatically. true: The index was added automatically. false: The index was not added automatically.
22941
+ */
22942
+ autoIndexFlag: boolean;
22943
+ /**
22944
+ * Whether to distinguish case. Default is false.
22945
+ */
22946
+ caseSensitive: boolean;
22947
+ /**
22948
+ * Token separators for the field. Default is empty (""). Each character in the string represents a token separator. Length: 0–256 bytes. If the length is 0, segmentation is disabled. Only one or more of the following characters are supported: letters, numbers, and !@#%^&*()-_=\\"', <>/?|;:\ \r[]{}. . Supports configuring both Chinese characters and token separators simultaneously.
22949
+ */
22950
+ delimiter: string;
22951
+ /**
22952
+ * When searching, determines whether to segment Chinese log content according to Chinese syntax. Enabled: Chinese characters in logs are segmented based on common Chinese syntax; custom segmentation for Chinese content is not supported. Non-Chinese characters in logs are segmented using the token separators specified in the parameter. Disabled: Logs are segmented using the token separators specified in the parameter.
22953
+ */
22954
+ includeChinese: boolean;
22955
+ /**
22956
+ * Create indexes for all fields with text values in the JSON field.
22957
+ */
22958
+ indexAll: boolean;
22959
+ /**
22960
+ * Enable automatic indexing and statistics for JSON fields. true: Enable automatic indexing and statistics. false: Disable automatic indexing and statistics.
22961
+ */
22962
+ indexSqlAll: boolean;
22963
+ /**
22964
+ * Whether analysis is enabled for the field. Default is false. After enabling statistical analysis, you can configure token delimiters and whether to include Chinese content.
22965
+ */
22966
+ sqlFlag: boolean;
22967
+ /**
22968
+ * Field type. Currently supports long, double, text, and json. The long and double types do not support configuring delimiters, including Chinese, or case sensitivity. Only the json type supports further configuration of JsonKeys subfields.
22969
+ */
22970
+ valueType: string;
22971
+ }
22972
+ interface GetProjectTag {
22973
+ /**
22974
+ * Tag key
22975
+ */
22976
+ key: string;
22977
+ /**
22978
+ * Tag value
22979
+ */
22980
+ value: string;
22981
+ }
22982
+ interface GetRuleContainerRule {
22983
+ /**
22984
+ * Container name to collect. If no container name is specified, all containers in the machine group will be collected. Supports regex matching; for example, setting the container name to ^(container-test)$ will collect all containers named container-test.
22985
+ */
22986
+ containerNameRegex: string;
22987
+ /**
22988
+ * Whether to add environment variables as log tags to the raw log data. When enabled, the log service adds container environment variable fields to the logs. Setting multiple key-value pairs adds multiple fields. For example, set Key to source and Value to data_source. If the container has the environment variable source=DC, the log will include the field **tag**data_source_*: DC
22989
+ */
22990
+ envTags: outputs.tls.GetRuleContainerRuleEnvTag[];
22991
+ /**
22992
+ * The container environment variable denylist specifies which containers are excluded from collection. If the denylist is not enabled, all containers are collected. When the container environment variable denylist is enabled, Key is required and Value is optional. If Value is empty, all containers whose environment variables contain the Key are excluded from collection. If Value is not empty, only containers with a matching key-value pair are excluded, meaning only containers whose environment variables contain the Key and whose value matches the Value are excluded. Value supports regular expressions. For example, if Key is set to module and Value is set to ^(tcp|udp)$, containers with environment variables module:tcp or module:udp are excluded from collection. Multiple key-value pairs are evaluated with a logical OR, so any container environment variable matching any key-value pair will be excluded from collection. When the container environment variable denylist is enabled, Keys must be unique.
22993
+ */
22994
+ excludeContainerEnvRegexes: outputs.tls.GetRuleContainerRuleExcludeContainerEnvRegex[];
22995
+ /**
22996
+ * Container label denylist specifies containers to exclude from collection. If the denylist is not enabled, all containers will be collected. If the container label denylist is enabled, Key is required and Value is optional. If Value is empty, all containers with the Key in their label will be excluded. If Value is not empty, only containers matching the key-value pair will be excluded—that is, containers with the Key in their label and a Value matching the specified pattern. Value supports regex matching; for example, set Key to app and Value to ^(test1|test2)$ to exclude containers with labels app:test1 and app:test2. Multiple key-value pairs use logical OR; any container label matching any pair will be excluded from collection. When the container label denylist is enabled, Keys must not be duplicated.
22997
+ */
22998
+ excludeContainerLabelRegexes: outputs.tls.GetRuleContainerRuleExcludeContainerLabelRegex[];
22999
+ /**
23000
+ * The container environment variable allowlist specifies which containers to collect using container environment variables. If the allowlist is not enabled, all containers are collected. When the container environment variable allowlist is enabled, you must enter key-value pairs. Key is required; Value is optional. If Value is empty, all containers containing the Key in their environment variables are collected. If Value is not empty, only containers with the Key in their environment variables and a Value matching the specified value are collected. Value supports regular expression matching. For example, if Key is set to module and Value is set to ^(tcp|udp)$, only containers with module:tcp or module:udp in their environment variables are collected. The logical relationship between multiple key-value pairs is OR, meaning any container environment variable matching any key-value pair will be included in the collection scope. When the container environment variable allowlist is enabled, Keys must not be duplicated.
23001
+ */
23002
+ includeContainerEnvRegexes: outputs.tls.GetRuleContainerRuleIncludeContainerEnvRegex[];
23003
+ /**
23004
+ * The container label allowlist specifies which containers to collect based on container labels. If the allowlist is not enabled, all containers are collected. When the container label allowlist is enabled, you must specify key-value pairs. Key is required and Value is optional. If Value is empty, all containers whose labels contain the Key are collected. If Value is not empty, only containers whose labels contain the Key and whose value matches the Value are collected. Value supports regular expressions. For example, if Key is set to app and Value is set to ^(test1|test2)$, only containers with labels app:test1 or app:test2 are collected. Multiple key-value pairs are evaluated with a logical OR, so any container label matching any key-value pair will be included in the collection scope. When the container label allowlist is enabled, Keys must be unique.
23005
+ */
23006
+ includeContainerLabelRegexes: outputs.tls.GetRuleContainerRuleIncludeContainerLabelRegex[];
23007
+ /**
23008
+ * Kubernetes container collection rules.
23009
+ */
23010
+ kubernetesRule: outputs.tls.GetRuleContainerRuleKubernetesRule;
23011
+ /**
23012
+ * Collection information. stdout: Collects container standard output (stdout). stderr: Collects container standard error (stderr). all: Collects both container standard output (stdout) and standard error (stderr).
23013
+ */
23014
+ stream: string;
23015
+ }
23016
+ interface GetRuleContainerRuleEnvTag {
23017
+ /**
23018
+ * Key.
23019
+ */
23020
+ key: string;
23021
+ /**
23022
+ * Value.
23023
+ */
23024
+ val: string;
23025
+ }
23026
+ interface GetRuleContainerRuleExcludeContainerEnvRegex {
23027
+ /**
23028
+ * Key.
23029
+ */
23030
+ key: string;
23031
+ /**
23032
+ * Value.
23033
+ */
23034
+ val: string;
23035
+ }
23036
+ interface GetRuleContainerRuleExcludeContainerLabelRegex {
23037
+ /**
23038
+ * Key.
23039
+ */
23040
+ key: string;
23041
+ /**
23042
+ * Value.
23043
+ */
23044
+ val: string;
23045
+ }
23046
+ interface GetRuleContainerRuleIncludeContainerEnvRegex {
23047
+ /**
23048
+ * Key.
23049
+ */
23050
+ key: string;
23051
+ /**
23052
+ * Value.
23053
+ */
23054
+ val: string;
23055
+ }
23056
+ interface GetRuleContainerRuleIncludeContainerLabelRegex {
23057
+ /**
23058
+ * Key.
23059
+ */
23060
+ key: string;
23061
+ /**
23062
+ * Value.
23063
+ */
23064
+ val: string;
23065
+ }
23066
+ interface GetRuleContainerRuleKubernetesRule {
23067
+ /**
23068
+ * Whether to add Kubernetes Annotations as log tags to the original log data. When enabled, the log service will add fields related to Kubernetes Pod Annotations to the logs. Setting multiple key-value pairs means adding multiple fields. For example, if you set Key to sink and Value to data_sink, and the Pod contains the annotation sink=ck, a new field **tag**data_sink_*: ck will be added to the log.
23069
+ */
23070
+ annotationTags: outputs.tls.GetRuleContainerRuleKubernetesRuleAnnotationTag[];
23071
+ /**
23072
+ * Whether to add all Kubernetes Labels as log tags to the original log data. When enabled, the log service adds fields for all Labels in the Kubernetes Pod to the logs. For example, if the Pod contains Label source=DC and destination=CS, the logs will include fields **tag**source__: DC and **tag**destination__: CS.
23073
+ */
23074
+ enableAllLabelTag: boolean;
23075
+ /**
23076
+ * Pod Annotation Denylist is used to specify containers that are not collected. If you need to set a Pod Annotation Denylist, Key is required and Value is optional. If Value is empty, all containers under Pods whose Pod Annotation contains the specified Key are excluded. If Value is not empty, only containers under Pods whose Pod Annotation contains the Key and whose value matches the specified Value are excluded. By default, Value uses string matching, meaning it only matches when Value and the Pod Annotation value are exactly the same. If the value starts with ^ and ends with $, it is treated as a regular expression. For example, if Key is set to app and Value is set to ^(test1|test2)$, it matches containers under Pods with Pod Annotation app:test1 or app:test2. Note: The logical relationship between multiple Key-Value pairs is OR, meaning a Pod Annotation that matches any pair will be excluded from the collection scope. When enabling the Pod Annotation Denylist, Keys must not be duplicated. For regex fuzzy matching, you must add .*. For example, ^(http.*)$ matches strings starting with http
23077
+ */
23078
+ excludePodAnnotationRegexes: outputs.tls.GetRuleContainerRuleKubernetesRuleExcludePodAnnotationRegex[];
23079
+ /**
23080
+ * Specify containers to exclude from collection using the Pod Label denylist. If not enabled, all containers are collected. To set a Pod Label denylist, Key is required and Value is optional. If Value is empty, all containers with the specified Key in their Pod Label are excluded from collection. If Value is not empty, only containers with the specified Key and a Value matching the Value in their Pod Label are excluded. Value supports regular expressions. For example, set Key to module and Value to ^(tcp|udp)$ to exclude containers with module:tcp or module:udp in their Pod Label. Note: The logical relationship between multiple Key-Value pairs is OR. Any Pod Label matching any Key-Value pair will be excluded from collection. When enabling the Pod Label denylist, Keys must not be duplicated. For fuzzy regular expression matching, you must add .*. For example, ^(http.*)$ matches any string starting with http
23081
+ */
23082
+ excludePodLabelRegexes: outputs.tls.GetRuleContainerRuleKubernetesRuleExcludePodLabelRegex[];
23083
+ /**
23084
+ * Pod Annotation Allowlist is used to specify containers to be collected. If you need to set a Pod Annotation Allowlist, Key is required and Value is optional. If Value is empty, all containers under Pods that contain the Key in Pod Annotation will match. If Value is not empty, only containers under Pods that contain the Key and whose value matches Value in Pod Annotation will match. Value defaults to string matching, meaning only when Value and the Pod Annotation value are exactly the same will they match. If the value starts with ^ and ends with $, it is a regex match. For example, set Key to app and Value to ^(test1|test2)$ to match containers under Pods with Pod Annotation app:test1 or app:test2. Note: The logical relationship between multiple Key-Value pairs is OR, meaning as long as Pod Annotation matches any pair, it will be included in the collection scope. When enabling Pod Annotation Allowlist, Keys must not be duplicated. For regex fuzzy matching, you must add .*. For example, ^(http.*)$ matches strings starting with http.
23085
+ */
23086
+ includePodAnnotationRegexes: outputs.tls.GetRuleContainerRuleKubernetesRuleIncludePodAnnotationRegex[];
23087
+ /**
23088
+ * Pod Label Allowlist is used to specify which containers to collect. If Pod Label Allowlist is not enabled, all containers will be collected. If you need to set a Pod Label Allowlist, Key is required: if Value is empty, all containers with the Key in their Pod Label will be collected. If Value is not empty, only containers with the Key in their Pod Label and a Value matching the specified pattern will be collected; regular expression matching is supported. For example, if you set Key to module and Value to ^(tcp|udp)$, only containers with module:tcp or module:udp in their Pod Label will be collected. Note: The logical relationship between multiple key-value pairs is OR, meaning any Pod Label matching any key-value pair will be included in the collection scope. When enabling Pod Label Allowlist, Keys cannot be duplicated. For fuzzy regular expression matching, you must add .*, for example, ^(http.*)$ matches strings starting with http.
23089
+ */
23090
+ includePodLabelRegexes: outputs.tls.GetRuleContainerRuleKubernetesRuleIncludePodLabelRegex[];
23091
+ /**
23092
+ * Whether to add Kubernetes labels as log tags to the raw log data. When enabled, the log service adds Kubernetes Pod label fields to the logs. Setting multiple key-value pairs adds multiple fields. For example, if you set Key to source and Value to data_source, and the Pod contains the label source=DC, the log will include the field **tag**data_source_*: DC.
23093
+ */
23094
+ labelTags: outputs.tls.GetRuleContainerRuleKubernetesRuleLabelTag[];
23095
+ /**
23096
+ * Name of the Kubernetes Namespace to collect. If no Namespace name is specified, all containers will be collected. Namespace names support regular expression matching. For example, if you set the Namespace name to ^(tcp|udp)$, it will collect all containers under the tcp and udp namespaces.
23097
+ */
23098
+ namespaceNameRegex: string;
23099
+ /**
23100
+ * Pod name is used to specify the Pod whose containers will be collected. If no Pod name is specified, all containers will be collected. Pod name supports regular expression matching. For example, setting the Pod name to ^(http.*)$ collects all containers under Pods whose names start with http.
23101
+ */
23102
+ podNameRegex: string;
23103
+ /**
23104
+ * Specify the container to collect by workload name. If no workload name is specified, all containers are collected. Workload names support regular expressions. For example, setting the workload name to ^(http.*)$ collects all containers under workloads starting with http.
23105
+ */
23106
+ workloadNameRegex: string;
23107
+ /**
23108
+ * Specify the container to collect by workload type. Only one type can be selected. If no type is specified, containers of all types will be collected. Supported workload types: Deployment: stateless workload StatefulSet: stateful workload DaemonSet: daemon process Job: task CronJob: scheduled task
23109
+ */
23110
+ workloadType: string;
23111
+ }
23112
+ interface GetRuleContainerRuleKubernetesRuleAnnotationTag {
23113
+ /**
23114
+ * Key.
23115
+ */
23116
+ key: string;
23117
+ /**
23118
+ * Value.
23119
+ */
23120
+ val: string;
23121
+ }
23122
+ interface GetRuleContainerRuleKubernetesRuleExcludePodAnnotationRegex {
23123
+ /**
23124
+ * Key.
23125
+ */
23126
+ key: string;
23127
+ /**
23128
+ * Value.
23129
+ */
23130
+ val: string;
23131
+ }
23132
+ interface GetRuleContainerRuleKubernetesRuleExcludePodLabelRegex {
23133
+ /**
23134
+ * Key.
23135
+ */
23136
+ key: string;
23137
+ /**
23138
+ * Value.
23139
+ */
23140
+ val: string;
23141
+ }
23142
+ interface GetRuleContainerRuleKubernetesRuleIncludePodAnnotationRegex {
23143
+ /**
23144
+ * Key.
23145
+ */
23146
+ key: string;
23147
+ /**
23148
+ * Value.
23149
+ */
23150
+ val: string;
22127
23151
  }
22128
- interface GetImportTaskTaskStatistics {
23152
+ interface GetRuleContainerRuleKubernetesRuleIncludePodLabelRegex {
22129
23153
  /**
22130
- * Total resource bytes enumerated
23154
+ * Key.
22131
23155
  */
22132
- bytesTotal: number;
23156
+ key: string;
22133
23157
  /**
22134
- * Bytes transferred.
23158
+ * Value.
22135
23159
  */
22136
- bytesTransferred: number;
23160
+ val: string;
23161
+ }
23162
+ interface GetRuleContainerRuleKubernetesRuleLabelTag {
22137
23163
  /**
22138
- * Number of resources failed to import.
23164
+ * Key.
22139
23165
  */
22140
- failed: number;
23166
+ key: string;
22141
23167
  /**
22142
- * Number of resources not found.
23168
+ * Value.
22143
23169
  */
22144
- notExist: number;
23170
+ val: string;
23171
+ }
23172
+ interface GetRuleExcludePath {
22145
23173
  /**
22146
- * Number of resources skipped during import
23174
+ * Collection path type. File: File name. Path: Directory.
22147
23175
  */
22148
- skipped: number;
23176
+ type: string;
22149
23177
  /**
22150
- * Task status. Status of the import task. Preparing: Preparing for import. Importing: Importing data. Success: Import completed successfully. Failed: Import failed. Stopped: Import paused.
23178
+ * Collection path. Must be specified as an absolute path. When Type is Path, Value indicates a directory. When Type is File, Value indicates a file name.
22151
23179
  */
22152
- taskStatus: string;
23180
+ value: string;
23181
+ }
23182
+ interface GetRuleExtractRule {
22153
23183
  /**
22154
- * Total number of resources enumerated.
23184
+ * Regular expression that the first line of the log must match. Valid only when LogType is multiline*log or fullregex*log. Must be a valid regular expression.
22155
23185
  */
22156
- total: number;
23186
+ beginRegex: string;
22157
23187
  /**
22158
- * Number of records transferred.
23188
+ * Log delimiter. Valid only when LogType is delimiter_log.
22159
23189
  */
22160
- transferred: number;
23190
+ delimiter: string;
23191
+ /**
23192
+ * Enable nanosecond precision time. When enabled, log time parsing will include and report nanosecond precision. true: Enable nanosecond precision time. false: Disable nanosecond precision time.
23193
+ */
23194
+ enableNanosecond: boolean;
23195
+ /**
23196
+ * Filter rule list. When LogType is minimalist*log or multiline*log, you can configure up to 1 filter rule, and the filter field name key must be content. When LogType is delimiter*log, json*log, or fullregex*log, you can configure up to 5 filter rules, and the filter field name key cannot be duplicated or empty. The regular expression for the filter field's log content must be a valid regular expression and is limited to 256 characters.
23197
+ */
23198
+ filterKeyRegexes: outputs.tls.GetRuleExtractRuleFilterKeyRegex[];
23199
+ /**
23200
+ * List of log field names (Key). This is only valid when LogType is delimiter*log or fullregex*log. You can configure up to 100 field names. When LogType is delimiter*log, field names must be unique and cannot all be empty. When LogType is fullregex*log, field names must be unique and cannot be empty.
23201
+ */
23202
+ keys: string[];
23203
+ /**
23204
+ * The entire log must match the specified regular expression. This is only valid when the collected log type is fullregex_log. Must be a valid regular expression.
23205
+ */
23206
+ logRegex: string;
23207
+ /**
23208
+ * Automatically extract log fields based on the specified log template
23209
+ */
23210
+ logTemplate: outputs.tls.GetRuleExtractRuleLogTemplate;
23211
+ /**
23212
+ * Quoting character. Content wrapped by a quoting character will not be split but parsed as a complete field. Only valid when LogType is delimiter_log.
23213
+ */
23214
+ quote: string;
23215
+ /**
23216
+ * Regular expression for extracting time, used to extract the time value from the TimeKey field and parse it as the collection time
23217
+ */
23218
+ timeExtractRegex: string;
23219
+ /**
23220
+ * Parsing format for the time field. If you use a specific time field in the log as the log timestamp, you must provide both TimeKey and TimeFormat. TimeKey and TimeFormat must be used together.
23221
+ */
23222
+ timeFormat: string;
23223
+ /**
23224
+ * Name of the log time field. If you want to use a specific time field in the log as the log timestamp, you need to specify both TimeKey and TimeFormat. TimeKey and TimeFormat must be provided together.
23225
+ */
23226
+ timeKey: string;
23227
+ /**
23228
+ * Time sample. Used to check whether the entered time parsing format is correct.
23229
+ */
23230
+ timeSample: string;
23231
+ /**
23232
+ * Time zone. Supports machine time zone (default) and custom time zone. Custom time zone supports GMT and UTC. GMT format: GMT+08:00. UTC format: Asia/Shanghai.
23233
+ */
23234
+ timeZone: string;
23235
+ /**
23236
+ * Key name for unmatched logs.
23237
+ */
23238
+ unMatchLogKey: string;
23239
+ /**
23240
+ * Switch for uploading unmatched logs.
23241
+ */
23242
+ unMatchUpLoadSwitch: boolean;
22161
23243
  }
22162
- interface GetIndexFullText {
23244
+ interface GetRuleExtractRuleFilterKeyRegex {
23245
+ /**
23246
+ * Name of the filter field.
23247
+ */
23248
+ key: string;
23249
+ /**
23250
+ * The log content of the filter field must match the specified regular expression.
23251
+ */
23252
+ regex: string;
23253
+ }
23254
+ interface GetRuleExtractRuleLogTemplate {
23255
+ /**
23256
+ * Log template format.
23257
+ */
23258
+ format: string;
23259
+ /**
23260
+ * Log template types. Supported types: Nginx: Nginx log template.
23261
+ */
23262
+ type: string;
23263
+ }
23264
+ interface GetRuleHostGroupInfo {
23265
+ /**
23266
+ * Number of hosts with heartbeat exceptions.
23267
+ */
23268
+ abnormalHeartbeatStatusCount: number;
23269
+ /**
23270
+ * Latest agent version.
23271
+ */
23272
+ agentLatestVersion: string;
23273
+ /**
23274
+ * Whether LogCollector installed on the machine group server has automatic upgrade enabled. true: The log service will check for upgrades during a specified time period each day. If upgrade conditions are met, LogCollector will be upgraded automatically without manual intervention. false (default): LogCollector does not upgrade automatically. To use a newer version of LogCollector, refer to the LogCollector upgrade procedure.
23275
+ */
23276
+ autoUpdate: boolean;
23277
+ /**
23278
+ * Machine group creation time.
23279
+ */
23280
+ createTime: string;
23281
+ /**
23282
+ * Number of hosts.
23283
+ */
23284
+ hostCount: number;
23285
+ /**
23286
+ * Machine group ID
23287
+ */
23288
+ hostGroupId: string;
23289
+ /**
23290
+ * Name of the machine group.
23291
+ */
23292
+ hostGroupName: string;
23293
+ /**
23294
+ * Machine group type. IP: Machine IP. Label: Machine label.
23295
+ */
23296
+ hostGroupType: string;
23297
+ /**
23298
+ * Machine identifier.
23299
+ */
23300
+ hostIdentifier: string;
23301
+ /**
23302
+ * The IAM project to which the host group belongs.
23303
+ */
23304
+ iamProjectName: string;
23305
+ /**
23306
+ * Time when the machine group was modified.
23307
+ */
23308
+ modifyTime: string;
23309
+ /**
23310
+ * Number of hosts with normal heartbeat.
23311
+ */
23312
+ normalHeartbeatStatusCount: number;
23313
+ /**
23314
+ * The number of bound collection configurations.
23315
+ */
23316
+ ruleCount: number;
23317
+ /**
23318
+ * Whether to enable the Logcollector service log feature. true: enabled. false (default): disabled.
23319
+ */
23320
+ serviceLogging: boolean;
23321
+ /**
23322
+ * End time for LogCollector automatic upgrade.
23323
+ */
23324
+ updateEndTime: string;
23325
+ /**
23326
+ * LogCollector auto-update start time. Note: Only required when AutoUpdate is set to true. It is recommended to schedule auto-updates during off-peak hours. LogCollector may restart during the update process, but logs will not be lost.
23327
+ */
23328
+ updateStartTime: string;
23329
+ }
23330
+ interface GetRuleUserDefineRule {
23331
+ /**
23332
+ * The Advanced parameter is used for extended configuration. After enabling extended configuration, you can customize advanced behaviors of LogCollector, such as when to release file handles. Note: If multiple release conditions are specified, the handle is released and log file monitoring ends as soon as any condition is met.
23333
+ */
23334
+ advanced: outputs.tls.GetRuleUserDefineRuleAdvanced;
23335
+ /**
23336
+ * Whether to upload the label information of the host group to the log service. The default is off. true: LogCollector uploads the label information of the host group to the specified field. You can specify the field name in the HostGroupLabelKey parameter. false (default): Host group label information is not uploaded.
23337
+ */
23338
+ enableHostGroupLabel: boolean;
23339
+ /**
23340
+ * Upload the hostname field. Default is disabled. true: Add a field to the original log to record the source hostname. Specify the hostname field name using HostnameKey. false: (default) Do not add the hostname field.
23341
+ */
23342
+ enableHostname: boolean;
23343
+ /**
23344
+ * Upload raw logs. true: Upload raw logs. false (default): Do not upload raw logs.
23345
+ */
23346
+ enableRawLog: boolean;
23347
+ /**
23348
+ * Add constant fields to logs. Constant fields must follow these restrictions: You can upload up to 5 constant fields. Field names (Key) must be unique and not empty. Length limit: 1–128 characters, including letters, numbers, and special characters (-*./), and cannot start with an underscore. Field values (Value) must not be empty, with a maximum length of 512 KiB.
23349
+ */
23350
+ fields: outputs.tls.GetRuleUserDefineRuleField[];
23351
+ /**
23352
+ * Field name used to store machine group label information
23353
+ */
23354
+ hostGroupLabelKey: string;
23355
+ /**
23356
+ * Hostname field name. Required only when EnableHostname is true.
23357
+ */
23358
+ hostnameKey: string;
23359
+ /**
23360
+ * Ignore log files that have not been updated for a specified period (in hours).
23361
+ */
23362
+ ignoreOlder: number;
23363
+ /**
23364
+ * Allow multiple log file collections. Empty: Use log file ID (including file inode, device, and checksum of the first N bytes) to uniquely identify the log file. RuleID: Use collection rule ID and log file ID to uniquely identify the log file. TopicIDRuleName: Use log topic ID, collection rule name, and log file ID to uniquely identify the log file.
23365
+ */
23366
+ multiCollectsType: string;
23367
+ /**
23368
+ * Rule for parsing the collection path. After setting the rule, fields in the collection path are extracted using the specified regular expression and added as metadata to the log data. Note: This parameter is not supported when collecting container standard output.
23369
+ */
23370
+ parsePathRule: outputs.tls.GetRuleUserDefineRuleParsePathRule;
23371
+ /**
23372
+ * LogCollector plugin configuration. After enabling plugin configuration, you can add one or more LogCollector processor plugins to parse logs with complex or variable structures.
23373
+ */
23374
+ plugin: outputs.tls.GetRuleUserDefineRulePlugin;
23375
+ /**
23376
+ * Name of the raw log field. Only effective when EnableRawLog is set to true. RawLogKey defaults to **raw**, meaning the original log data will be encapsulated in the **raw** field and uploaded to the log service along with the parsed log data.
23377
+ */
23378
+ rawLogKey: string;
23379
+ /**
23380
+ * Rules for routing log partitions. If this parameter is not set, logs are written using the default load balancing mode, and packets are written to any available Shard. If this parameter is set, logs are collected using the HashKey routing Shard mode, and the log service writes data to the Shard containing the specified Key value
23381
+ */
23382
+ shardHashKey: outputs.tls.GetRuleUserDefineRuleShardHashKey;
23383
+ /**
23384
+ * LogCollector collection policy, which specifies whether LogCollector collects incremental logs or full logs. Default is false, meaning full log collection. true: incremental collection. LogCollector only collects newly added content in the file. When new logs are written to monitored log files, LogCollector triggers log collection. For first-time collection, LogCollector automatically determines the collection position based on the incremental threshold TailSizeKb you specify. If the new file size does not exceed the incremental threshold, collection starts from the beginning of the file. If the new file size exceeds the incremental threshold, collection starts from the position at the end of the file minus the incremental threshold, collecting only incremental logs. For subsequent collections, LogCollector determines the collection position based on Checkpoint and continues collecting. false: (default) full collection. LogCollector collects logs from the beginning of each file, including historical log data.
23385
+ */
23386
+ tailFiles: boolean;
23387
+ /**
23388
+ * Backtracking threshold for incremental collection, in KiB. When LogCollector uses incremental collection, for the first collection of a log file: If the new log file size does not exceed the TailSizeKb value, collection starts from the beginning of the file. If the new log file size exceeds the TailSizeKb value, collection starts from the position that is TailSizeKb from the end of the file.
23389
+ */
23390
+ tailSizeKb: number;
23391
+ }
23392
+ interface GetRuleUserDefineRuleAdvanced {
23393
+ /**
23394
+ * After reading to the end of the log file, choose whether to release the file handle. Default is false.
23395
+ */
23396
+ closeEof: boolean;
23397
+ /**
23398
+ * Wait time to release log file handle. If no new logs are written to the log file within the specified time, the handle for that log file is released. Unit: seconds. Range: 1–300 seconds. Default: 60 seconds.
23399
+ */
23400
+ closeInactive: number;
23401
+ /**
23402
+ * Release the file handle after the log file is removed. Default is false.
23403
+ */
23404
+ closeRemoved: boolean;
22163
23405
  /**
22164
- * Case sensitivity. true: Case sensitive. false: Not case sensitive.
23406
+ * Release the file handle after the log file is renamed. Default is false.
22165
23407
  */
22166
- caseSensitive: boolean;
23408
+ closeRenamed: boolean;
22167
23409
  /**
22168
- * Token separators for the full-text index. Each character in the string represents a token separator. Length: 1–256 bytes. Only one or more of the following characters are supported: letters, numbers, and !@#%^&*()-_=\\"', <>/?|;:\ \r[]{}. . Supports configuring both Chinese characters and token separators simultaneously.
23410
+ * Maximum monitoring duration for LogCollector log files, in seconds. The default is 0 seconds, meaning LogCollector does not limit the monitoring duration for log files. Timing starts when LogCollector begins monitoring the log file. Once the specified duration is exceeded, LogCollector immediately releases the file handle and stops monitoring, regardless of whether the log file has been fully read.
22169
23411
  */
22170
- delimiter: string;
23412
+ closeTimeout: number;
22171
23413
  /**
22172
- * When searching, specify whether to segment Chinese content in logs according to Chinese grammar. The default is false. true: For Chinese characters in logs, segment the log according to common Chinese grammar rules. Custom segmentation symbols for Chinese content are not supported. For non-Chinese characters in logs, segment the log using the segmentation symbols specified in the parameter. false: Segment the log using the segmentation symbols specified in the parameter.
23414
+ * Maximum wait time when LogCollector does not detect a line break, in seconds. The default is 5s. Timing starts when LogCollector begins reading the log file. If no line break is detected within the specified time, LogCollector sends the logs in the buffer. If the file write interval is long, a complete log entry may be split into two parts and written separately. Adjust this parameter based on your log write interval.
22173
23415
  */
22174
- includeChinese: boolean;
23416
+ noLineTerminatorEofMaxTime: number;
22175
23417
  }
22176
- interface GetIndexKeyValue {
23418
+ interface GetRuleUserDefineRuleField {
22177
23419
  /**
22178
- * Specify the field names for key-value indexing. Up to 100 fields can be added. Only letters, numbers, spaces, underscores (_), hyphens (-), and slashes (/) are supported, and field names cannot start or end with a space. Each key name must be unique within the same index. Length: 1–128 characters. For subfields in JSON-type key-value indexes, use a dot (.) to indicate the hierarchy between JSON fields. For example, if the JSON field 'namelist' contains a text-type subfield 'totalcount' and a JSON-type subfield 'info', and 'info' contains the field 'name', the field names should be configured as 'totalcount' and 'info.name' respectively.
23420
+ * Key.
22179
23421
  */
22180
23422
  key: string;
22181
23423
  /**
22182
- * Field description information required for configuring key-value indexes.
23424
+ * Value.
22183
23425
  */
22184
- value: outputs.tls.GetIndexKeyValueValue;
23426
+ val: string;
22185
23427
  }
22186
- interface GetIndexKeyValueValue {
23428
+ interface GetRuleUserDefineRuleParsePathRule {
22187
23429
  /**
22188
- * Indicates whether the index was added automatically. true: The index was added automatically. false: The index was not added automatically.
23430
+ * Field name list. The log service uses a regular expression (Regex) to parse the path sample (PathSample) into multiple fields. Keys specify the name of each field. You can configure up to 100 field names. Field names cannot be empty or duplicated.
22189
23431
  */
22190
- autoIndexFlag: boolean;
23432
+ keys: string[];
22191
23433
  /**
22192
- * Whether to distinguish case. Default is false.
23434
+ * Sample collection path for actual scenarios. The sample collection path must be an absolute path. Wildcards *, ?, ** are not allowed in the path sample.
22193
23435
  */
22194
- caseSensitive: boolean;
23436
+ pathSample: string;
22195
23437
  /**
22196
- * Token separators for the field. Default is empty (""). Each character in the string represents a token separator. Length: 0–256 bytes. If the length is 0, segmentation is disabled. Only one or more of the following characters are supported: letters, numbers, and !@#%^&*()-_=\\"', <>/?|;:\ \r[]{}. . Supports configuring both Chinese characters and token separators simultaneously.
23438
+ * Regular expression used to extract the path field. Must match the sample collection path, otherwise extraction will fail
22197
23439
  */
22198
- delimiter: string;
23440
+ regex: string;
23441
+ }
23442
+ interface GetRuleUserDefineRulePlugin {
22199
23443
  /**
22200
- * When searching, determines whether to segment Chinese log content according to Chinese syntax. Enabled: Chinese characters in logs are segmented based on common Chinese syntax; custom segmentation for Chinese content is not supported. Non-Chinese characters in logs are segmented using the token separators specified in the parameter. Disabled: Logs are segmented using the token separators specified in the parameter.
23444
+ * LogCollector plugin. For the list of supported plugins and parameter descriptions, see LogCollector plugin overview.
22201
23445
  */
22202
- includeChinese: boolean;
23446
+ processors: string;
23447
+ }
23448
+ interface GetRuleUserDefineRuleShardHashKey {
22203
23449
  /**
22204
- * Create indexes for all fields with text values in the JSON field.
23450
+ * HashKey of the log group, used to specify the shard to which the current log group will be written. The value range for this parameter is [00000000000000000000000000000000-ffffffffffffffffffffffffffffffff).
22205
23451
  */
22206
- indexAll: boolean;
23452
+ hashKey: string;
23453
+ }
23454
+ interface GetScheduleSqlTaskRequestCycle {
22207
23455
  /**
22208
- * Enable automatic indexing and statistics for JSON fields. true: Enable automatic indexing and statistics. false: Disable automatic indexing and statistics.
23456
+ * Cron expression, with a minimum granularity of minutes, using 24-hour format. For example, 0 18 * * * means execution at 18:00 every day.
22209
23457
  */
22210
- indexSqlAll: boolean;
23458
+ cronTab: string;
22211
23459
  /**
22212
- * When ValueType is json, you can configure key-value indexes for JSON subfields using the JsonKeys field, which is an array of KeyValueInfo. Each element in the JsonKeys list is a KeyValueInfo, and you can further nest text, long, and double type subfields. For subfields in JSON key-value indexes, use . to indicate the hierarchy between JSON fields. For example, the JSON field namelist contains a text-type subfield totalcount and a JSON-type info, which itself contains the field name. Each field name should be configured as totalcount and info.name, respectively. The SqlFlag setting for subfield key-value indexes defined in JsonKeys must match their parent field, meaning they must be enabled or disabled together. The default is disabled. Subfields do not support separate settings for Delimiter, CaseSensitive, or IncludeChinese. For text-type fields, CaseSensitive, Delimiter, and IncludeChinese always inherit the parent field settings. This is only set when ValueType is json.
23460
+ * If Type is set to Cron, you must also set the time zone.
22213
23461
  */
22214
- jsonKeys: outputs.tls.GetIndexKeyValueValueJsonKey[];
23462
+ cronTimeZone: string;
22215
23463
  /**
22216
- * Whether analysis is enabled for the field. Default is false. After enabling statistical analysis, you can configure token delimiters and whether to include Chinese content.
23464
+ * Scheduling period or the time point for periodic execution (minutes from 00:00). Range: 1–1440 minutes.
22217
23465
  */
22218
- sqlFlag: boolean;
23466
+ time: number;
22219
23467
  /**
22220
- * Field type. Currently supports long, double, text, and json. The long and double types do not support configuring delimiters, including Chinese, or case sensitivity. Only the json type supports further configuration of JsonKeys subfields.
23468
+ * Scheduling period type. Options: Period, Fixed, Cron.
22221
23469
  */
22222
- valueType: string;
23470
+ type: string;
22223
23471
  }
22224
- interface GetIndexKeyValueValueJsonKey {
23472
+ interface GetShipperContentInfo {
22225
23473
  /**
22226
- * Specify the field names for key-value indexing. Up to 100 fields can be added. Only letters, numbers, spaces, underscores (_), hyphens (-), and slashes (/) are supported, and field names cannot start or end with a space. Each key name must be unique within the same index. Length: 1–128 characters. For subfields in JSON-type key-value indexes, use a dot (.) to indicate the hierarchy between JSON fields. For example, if the JSON field 'namelist' contains a text-type subfield 'totalcount' and a JSON-type subfield 'info', and 'info' contains the field 'name', the field names should be configured as 'totalcount' and 'info.name' respectively.
23474
+ * CSV format log content configuration.
22227
23475
  */
22228
- key: string;
23476
+ csvInfo: outputs.tls.GetShipperContentInfoCsvInfo;
22229
23477
  /**
22230
- * Field description information required for configuring key-value indexes.
23478
+ * Log content parsing format. Delivery to TOS supports json, jsonl, csv; delivery to Kafka supports original, json.
22231
23479
  */
22232
- value: outputs.tls.GetIndexKeyValueValueJsonKeyValue;
23480
+ format: string;
23481
+ /**
23482
+ * JSON/JSONL format log content configuration.
23483
+ */
23484
+ jsonInfo: outputs.tls.GetShipperContentInfoJsonInfo;
22233
23485
  }
22234
- interface GetIndexKeyValueValueJsonKeyValue {
23486
+ interface GetShipperContentInfoCsvInfo {
22235
23487
  /**
22236
- * Indicates whether the index was added automatically. true: The index was added automatically. false: The index was not added automatically.
23488
+ * Delimiter. Supports comma, tab, pipe, semicolon, space.
22237
23489
  */
22238
- autoIndexFlag: boolean;
23490
+ delimiter: string;
22239
23491
  /**
22240
- * Whether to distinguish case. Default is false.
23492
+ * Escape character. When field content contains a delimiter, use an escape character to enclose it. Supports single quote, double quote, or empty character.
22241
23493
  */
22242
- caseSensitive: boolean;
23494
+ escapeChar: string;
22243
23495
  /**
22244
- * Token separators for the field. Default is empty (""). Each character in the string represents a token separator. Length: 0–256 bytes. If the length is 0, segmentation is disabled. Only one or more of the following characters are supported: letters, numbers, and !@#%^&*()-_=\\"', <>/?|;:\ \r[]{}. . Supports configuring both Chinese characters and token separators simultaneously.
23496
+ * Fields to be delivered. Supports letters, numbers, and _-./. Cannot start with an underscore. Length: 1–128.
22245
23497
  */
22246
- delimiter: string;
23498
+ keys: string[];
22247
23499
  /**
22248
- * When searching, determines whether to segment Chinese log content according to Chinese syntax. Enabled: Chinese characters in logs are segmented based on common Chinese syntax; custom segmentation for Chinese content is not supported. Non-Chinese characters in logs are segmented using the token separators specified in the parameter. Disabled: Logs are segmented using the token separators specified in the parameter.
23500
+ * Content for invalid field padding. Length: 0–128.
22249
23501
  */
22250
- includeChinese: boolean;
23502
+ nonFieldContent: string;
22251
23503
  /**
22252
- * Create indexes for all fields with text values in the JSON field.
23504
+ * Whether to print the key in the first row.
22253
23505
  */
22254
- indexAll: boolean;
23506
+ printHeader: boolean;
23507
+ }
23508
+ interface GetShipperContentInfoJsonInfo {
22255
23509
  /**
22256
- * Enable automatic indexing and statistics for JSON fields. true: Enable automatic indexing and statistics. false: Disable automatic indexing and statistics.
23510
+ * Enable flag.
22257
23511
  */
22258
- indexSqlAll: boolean;
23512
+ enable: boolean;
22259
23513
  /**
22260
- * Whether analysis is enabled for the field. Default is false. After enabling statistical analysis, you can configure token delimiters and whether to include Chinese content.
23514
+ * Whether to enable escaping. Must be set to true.
22261
23515
  */
22262
- sqlFlag: boolean;
23516
+ escape: boolean;
22263
23517
  /**
22264
- * Field type. Currently supports long, double, text, and json. The long and double types do not support configuring delimiters, including Chinese, or case sensitivity. Only the json type supports further configuration of JsonKeys subfields.
23518
+ * Delivery field list; if not configured, all fields will be delivered. When delivering in JSON/JSONL format, if this parameter is not set, all fields will be delivered, including **content** (required), **source**, **path**, **time**, **image_name**, **container_name**, **pod_name**, **pod_uid**, namespace, **tag****client_ip**, and **tag****receive_time**.
22265
23519
  */
22266
- valueType: string;
23520
+ keys: string[];
22267
23521
  }
22268
- interface GetIndexUserInnerKeyValue {
23522
+ interface GetShipperKafkaShipperInfo {
22269
23523
  /**
22270
- * Specify the field names for key-value indexing. Up to 100 fields can be added. Only letters, numbers, spaces, underscores (_), hyphens (-), and slashes (/) are supported, and field names cannot start or end with a space. Each key name must be unique within the same index. Length: 1–128 characters. For subfields in JSON-type key-value indexes, use a dot (.) to indicate the hierarchy between JSON fields. For example, if the JSON field 'namelist' contains a text-type subfield 'totalcount' and a JSON-type subfield 'info', and 'info' contains the field 'name', the field names should be configured as 'totalcount' and 'info.name' respectively.
23524
+ * Compression format; supports snappy, gzip, lz4, none.
22271
23525
  */
22272
- key: string;
23526
+ compress: string;
22273
23527
  /**
22274
- * Field description information required for configuring key-value indexes.
23528
+ * Delivery end time, in milliseconds. If not set, delivery continues indefinitely. Note: Milliseconds will be truncated. For example, if 1776761323455 is entered, it will become 1776761323000; if 1776761323 is entered, it will become 1776761323000.
22275
23529
  */
22276
- value: outputs.tls.GetIndexUserInnerKeyValueValue;
22277
- }
22278
- interface GetIndexUserInnerKeyValueValue {
23530
+ endTime: number;
22279
23531
  /**
22280
- * Indicates whether the index was added automatically. true: The index was added automatically. false: The index was not added automatically.
23532
+ * Kafka instance.
22281
23533
  */
22282
- autoIndexFlag: boolean;
23534
+ instance: string;
22283
23535
  /**
22284
- * Whether to distinguish case. Default is false.
23536
+ * Kafka topic name. All log data delivered through this configuration will be sent to this topic.
22285
23537
  */
22286
- caseSensitive: boolean;
23538
+ kafkaTopic: string;
22287
23539
  /**
22288
- * Token separators for the field. Default is empty (""). Each character in the string represents a token separator. Length: 0–256 bytes. If the length is 0, segmentation is disabled. Only one or more of the following characters are supported: letters, numbers, and !@#%^&*()-_=\\"', <>/?|;:\ \r[]{}. . Supports configuring both Chinese characters and token separators simultaneously.
23540
+ * Start time. If not configured, defaults to the current time. Note: Millisecond data will be ignored. For example, if 1776761323455 is entered, the result will be 1776761323000; if 1776761323 is entered, the result will be 1776761323000.
22289
23541
  */
22290
- delimiter: string;
23542
+ startTime: number;
23543
+ }
23544
+ interface GetShipperTosShipperInfo {
22291
23545
  /**
22292
- * When searching, determines whether to segment Chinese log content according to Chinese syntax. Enabled: Chinese characters in logs are segmented based on common Chinese syntax; custom segmentation for Chinese content is not supported. Non-Chinese characters in logs are segmented using the token separators specified in the parameter. Disabled: Logs are segmented using the token separators specified in the parameter.
23546
+ * Select a TOS bucket. Must be in the same region as the source log topic. Can only contain numbers, hyphens (-), and letters a–z. Must start and end with a number or letter. Length: 3–63 characters.
22293
23547
  */
22294
- includeChinese: boolean;
23548
+ bucket: string;
22295
23549
  /**
22296
- * Create indexes for all fields with text values in the JSON field.
23550
+ * Compression format; supports snappy, gzip, lz4, none.
22297
23551
  */
22298
- indexAll: boolean;
23552
+ compress: string;
22299
23553
  /**
22300
- * Enable automatic indexing and statistics for JSON fields. true: Enable automatic indexing and statistics. false: Disable automatic indexing and statistics.
23554
+ * Delivery interval in seconds, range: 300–900.
22301
23555
  */
22302
- indexSqlAll: boolean;
23556
+ interval: number;
22303
23557
  /**
22304
- * When ValueType is json, you can configure key-value indexes for JSON subfields using the JsonKeys field, which is an array of KeyValueInfo. Each element in the JsonKeys list is a KeyValueInfo, and you can further nest text, long, and double type subfields. For subfields in JSON key-value indexes, use . to indicate the hierarchy between JSON fields. For example, the JSON field namelist contains a text-type subfield totalcount and a JSON-type info, which itself contains the field name. Each field name should be configured as totalcount and info.name, respectively. The SqlFlag setting for subfield key-value indexes defined in JsonKeys must match their parent field, meaning they must be enabled or disabled together. The default is disabled. Subfields do not support separate settings for Delimiter, CaseSensitive, or IncludeChinese. For text-type fields, CaseSensitive, Delimiter, and IncludeChinese always inherit the parent field settings. This is only set when ValueType is json.
23558
+ * Maximum raw file size per partition for delivery, in MiB. Range: 5–256.
22305
23559
  */
22306
- jsonKeys: outputs.tls.GetIndexUserInnerKeyValueValueJsonKey[];
23560
+ maxSize: number;
22307
23561
  /**
22308
- * Whether analysis is enabled for the field. Default is false. After enabling statistical analysis, you can configure token delimiters and whether to include Chinese content.
23562
+ * Partition rule for log delivery. Subdirectory naming format supports strftime syntax. Default: %Y/%m/%d/%H/%M.
22309
23563
  */
22310
- sqlFlag: boolean;
23564
+ partitionFormat: string;
22311
23565
  /**
22312
- * Field type. Currently supports long, double, text, and json. The long and double types do not support configuring delimiters, including Chinese, or case sensitivity. Only the json type supports further configuration of JsonKeys subfields.
23566
+ * Top-level directory name for the bucket. Cannot start with / or \, and cannot use consecutive /. Cannot use .. as a folder name. Duplicate names are not allowed within the same bucket.
22313
23567
  */
22314
- valueType: string;
23568
+ prefix: string;
22315
23569
  }
22316
- interface GetIndexUserInnerKeyValueValueJsonKey {
23570
+ interface GetTopicTag {
22317
23571
  /**
22318
- * Specify the field names for key-value indexing. Up to 100 fields can be added. Only letters, numbers, spaces, underscores (_), hyphens (-), and slashes (/) are supported, and field names cannot start or end with a space. Each key name must be unique within the same index. Length: 1–128 characters. For subfields in JSON-type key-value indexes, use a dot (.) to indicate the hierarchy between JSON fields. For example, if the JSON field 'namelist' contains a text-type subfield 'totalcount' and a JSON-type subfield 'info', and 'info' contains the field 'name', the field names should be configured as 'totalcount' and 'info.name' respectively.
23572
+ * User tag key.
22319
23573
  */
22320
23574
  key: string;
22321
23575
  /**
22322
- * Field description information required for configuring key-value indexes.
23576
+ * User tag value.
22323
23577
  */
22324
- value: outputs.tls.GetIndexUserInnerKeyValueValueJsonKeyValue;
23578
+ value: string;
22325
23579
  }
22326
- interface GetIndexUserInnerKeyValueValueJsonKeyValue {
22327
- /**
22328
- * Indicates whether the index was added automatically. true: The index was added automatically. false: The index was not added automatically.
22329
- */
22330
- autoIndexFlag: boolean;
23580
+ interface HostGroupRule {
22331
23581
  /**
22332
- * Whether to distinguish case. Default is false.
23582
+ * Container collection rules
22333
23583
  */
22334
- caseSensitive: boolean;
23584
+ containerRule: outputs.tls.HostGroupRuleContainerRule;
22335
23585
  /**
22336
- * Token separators for the field. Default is empty (""). Each character in the string represents a token separator. Length: 0–256 bytes. If the length is 0, segmentation is disabled. Only one or more of the following characters are supported: letters, numbers, and !@#%^&*()-_=\\"', <>/?|;:\ \r[]{}. . Supports configuring both Chinese characters and token separators simultaneously.
23586
+ * Time when the collection configuration was created.
22337
23587
  */
22338
- delimiter: string;
23588
+ createTime: string;
23589
+ excludePaths: outputs.tls.HostGroupRuleExcludePath[];
22339
23590
  /**
22340
- * When searching, determines whether to segment Chinese log content according to Chinese syntax. Enabled: Chinese characters in logs are segmented based on common Chinese syntax; custom segmentation for Chinese content is not supported. Non-Chinese characters in logs are segmented using the token separators specified in the parameter. Disabled: Logs are segmented using the token separators specified in the parameter.
23591
+ * Extraction rules
22341
23592
  */
22342
- includeChinese: boolean;
23593
+ extractRule: outputs.tls.HostGroupRuleExtractRule;
22343
23594
  /**
22344
- * Create indexes for all fields with text values in the JSON field.
23595
+ * Collection type. 0: Host log file. 1: K8s container standard output. 2: Log file inside K8s container.
22345
23596
  */
22346
- indexAll: boolean;
23597
+ inputType: number;
22347
23598
  /**
22348
- * Enable automatic indexing and statistics for JSON fields. true: Enable automatic indexing and statistics. false: Disable automatic indexing and statistics.
23599
+ * Log sample.
22349
23600
  */
22350
- indexSqlAll: boolean;
23601
+ logSample: string;
22351
23602
  /**
22352
- * Whether analysis is enabled for the field. Default is false. After enabling statistical analysis, you can configure token delimiters and whether to include Chinese content.
23603
+ * Collection modes. minimalist*log: single-line full mode. json*log: JSON mode. delimiter*log: delimiter mode. multiline*log: multi-line full mode. fullregex_log: full regex mode.
22353
23604
  */
22354
- sqlFlag: boolean;
23605
+ logType: string;
22355
23606
  /**
22356
- * Field type. Currently supports long, double, text, and json. The long and double types do not support configuring delimiters, including Chinese, or case sensitivity. Only the json type supports further configuration of JsonKeys subfields.
23607
+ * Time when the collection configuration was modified.
22357
23608
  */
22358
- valueType: string;
22359
- }
22360
- interface GetProjectTag {
23609
+ modifyTime: string;
22361
23610
  /**
22362
- * Tag key
23611
+ * Data collection path list
22363
23612
  */
22364
- key: string;
23613
+ paths: string[];
22365
23614
  /**
22366
- * Tag value
23615
+ * Running status of the collection configuration. 0: Running. 1: Paused.
22367
23616
  */
22368
- value: string;
22369
- }
22370
- interface GetRuleContainerRule {
23617
+ pause: number;
22371
23618
  /**
22372
- * Container name to collect. If no container name is specified, all containers in the machine group will be collected. Supports regex matching; for example, setting the container name to ^(container-test)$ will collect all containers named container-test.
23619
+ * Collection configuration ID.
22373
23620
  */
22374
- containerNameRegex: string;
23621
+ ruleId: string;
22375
23622
  /**
22376
- * Whether to add environment variables as log tags to the raw log data. When enabled, the log service adds container environment variable fields to the logs. Setting multiple key-value pairs adds multiple fields. For example, set Key to source and Value to data_source. If the container has the environment variable source=DC, the log will include the field **tag**data_source_*: DC
23623
+ * Name of the collection configuration.
22377
23624
  */
22378
- envTags: outputs.tls.GetRuleContainerRuleEnvTag[];
23625
+ ruleName: string;
22379
23626
  /**
22380
- * The container environment variable denylist specifies which containers are excluded from collection. If the denylist is not enabled, all containers are collected. When the container environment variable denylist is enabled, Key is required and Value is optional. If Value is empty, all containers whose environment variables contain the Key are excluded from collection. If Value is not empty, only containers with a matching key-value pair are excluded, meaning only containers whose environment variables contain the Key and whose value matches the Value are excluded. Value supports regular expressions. For example, if Key is set to module and Value is set to ^(tcp|udp)$, containers with environment variables module:tcp or module:udp are excluded from collection. Multiple key-value pairs are evaluated with a logical OR, so any container environment variable matching any key-value pair will be excluded from collection. When the container environment variable denylist is enabled, Keys must be unique.
23627
+ * ID of the log topic to which the collection configuration belongs.
22381
23628
  */
22382
- excludeContainerEnvRegexes: outputs.tls.GetRuleContainerRuleExcludeContainerEnvRegex[];
23629
+ topicId: string;
22383
23630
  /**
22384
- * Container label denylist specifies containers to exclude from collection. If the denylist is not enabled, all containers will be collected. If the container label denylist is enabled, Key is required and Value is optional. If Value is empty, all containers with the Key in their label will be excluded. If Value is not empty, only containers matching the key-value pair will be excluded—that is, containers with the Key in their label and a Value matching the specified pattern. Value supports regex matching; for example, set Key to app and Value to ^(test1|test2)$ to exclude containers with labels app:test1 and app:test2. Multiple key-value pairs use logical OR; any container label matching any pair will be excluded from collection. When the container label denylist is enabled, Keys must not be duplicated.
23631
+ * Name of the log topic associated with the collection configuration
22385
23632
  */
22386
- excludeContainerLabelRegexes: outputs.tls.GetRuleContainerRuleExcludeContainerLabelRegex[];
23633
+ topicName: string;
22387
23634
  /**
22388
- * The container environment variable allowlist specifies which containers to collect using container environment variables. If the allowlist is not enabled, all containers are collected. When the container environment variable allowlist is enabled, you must enter key-value pairs. Key is required; Value is optional. If Value is empty, all containers containing the Key in their environment variables are collected. If Value is not empty, only containers with the Key in their environment variables and a Value matching the specified value are collected. Value supports regular expression matching. For example, if Key is set to module and Value is set to ^(tcp|udp)$, only containers with module:tcp or module:udp in their environment variables are collected. The logical relationship between multiple key-value pairs is OR, meaning any container environment variable matching any key-value pair will be included in the collection scope. When the container environment variable allowlist is enabled, Keys must not be duplicated.
23635
+ * User-defined collection rules.
22389
23636
  */
22390
- includeContainerEnvRegexes: outputs.tls.GetRuleContainerRuleIncludeContainerEnvRegex[];
23637
+ userDefineRule: outputs.tls.HostGroupRuleUserDefineRule;
23638
+ }
23639
+ interface HostGroupRuleContainerRule {
22391
23640
  /**
22392
- * The container label allowlist specifies which containers to collect based on container labels. If the allowlist is not enabled, all containers are collected. When the container label allowlist is enabled, you must specify key-value pairs. Key is required and Value is optional. If Value is empty, all containers whose labels contain the Key are collected. If Value is not empty, only containers whose labels contain the Key and whose value matches the Value are collected. Value supports regular expressions. For example, if Key is set to app and Value is set to ^(test1|test2)$, only containers with labels app:test1 or app:test2 are collected. Multiple key-value pairs are evaluated with a logical OR, so any container label matching any key-value pair will be included in the collection scope. When the container label allowlist is enabled, Keys must be unique.
23641
+ * Container name to collect. If no container name is specified, all containers in the machine group are collected. Supports regular expressions. For example, setting the container name to ^(container-test)$ collects all containers named container-test.
22393
23642
  */
22394
- includeContainerLabelRegexes: outputs.tls.GetRuleContainerRuleIncludeContainerLabelRegex[];
23643
+ containerNameRegex: string;
23644
+ envTags: outputs.tls.HostGroupRuleContainerRuleEnvTag[];
23645
+ excludeContainerEnvRegexes: outputs.tls.HostGroupRuleContainerRuleExcludeContainerEnvRegex[];
23646
+ excludeContainerLabelRegexes: outputs.tls.HostGroupRuleContainerRuleExcludeContainerLabelRegex[];
23647
+ includeContainerEnvRegexes: outputs.tls.HostGroupRuleContainerRuleIncludeContainerEnvRegex[];
23648
+ includeContainerLabelRegexes: outputs.tls.HostGroupRuleContainerRuleIncludeContainerLabelRegex[];
22395
23649
  /**
22396
23650
  * Kubernetes container collection rules.
22397
23651
  */
22398
- kubernetesRule: outputs.tls.GetRuleContainerRuleKubernetesRule;
23652
+ kubernetesRule: outputs.tls.HostGroupRuleContainerRuleKubernetesRule;
22399
23653
  /**
22400
- * Collection information. stdout: Collects container standard output (stdout). stderr: Collects container standard error (stderr). all: Collects both container standard output (stdout) and standard error (stderr).
23654
+ * Collection information. stdout: Container standard output (stdout). stderr: Container standard error (stderr). all: Both container standard output (stdout) and standard error (stderr).
22401
23655
  */
22402
23656
  stream: string;
22403
23657
  }
22404
- interface GetRuleContainerRuleEnvTag {
23658
+ interface HostGroupRuleContainerRuleEnvTag {
22405
23659
  /**
22406
23660
  * Key.
22407
23661
  */
@@ -22411,7 +23665,7 @@ export declare namespace tls {
22411
23665
  */
22412
23666
  val: string;
22413
23667
  }
22414
- interface GetRuleContainerRuleExcludeContainerEnvRegex {
23668
+ interface HostGroupRuleContainerRuleExcludeContainerEnvRegex {
22415
23669
  /**
22416
23670
  * Key.
22417
23671
  */
@@ -22421,7 +23675,7 @@ export declare namespace tls {
22421
23675
  */
22422
23676
  val: string;
22423
23677
  }
22424
- interface GetRuleContainerRuleExcludeContainerLabelRegex {
23678
+ interface HostGroupRuleContainerRuleExcludeContainerLabelRegex {
22425
23679
  /**
22426
23680
  * Key.
22427
23681
  */
@@ -22431,7 +23685,7 @@ export declare namespace tls {
22431
23685
  */
22432
23686
  val: string;
22433
23687
  }
22434
- interface GetRuleContainerRuleIncludeContainerEnvRegex {
23688
+ interface HostGroupRuleContainerRuleIncludeContainerEnvRegex {
22435
23689
  /**
22436
23690
  * Key.
22437
23691
  */
@@ -22441,7 +23695,7 @@ export declare namespace tls {
22441
23695
  */
22442
23696
  val: string;
22443
23697
  }
22444
- interface GetRuleContainerRuleIncludeContainerLabelRegex {
23698
+ interface HostGroupRuleContainerRuleIncludeContainerLabelRegex {
22445
23699
  /**
22446
23700
  * Key.
22447
23701
  */
@@ -22449,43 +23703,25 @@ export declare namespace tls {
22449
23703
  /**
22450
23704
  * Value.
22451
23705
  */
22452
- val: string;
22453
- }
22454
- interface GetRuleContainerRuleKubernetesRule {
22455
- /**
22456
- * Whether to add Kubernetes Annotations as log tags to the original log data. When enabled, the log service will add fields related to Kubernetes Pod Annotations to the logs. Setting multiple key-value pairs means adding multiple fields. For example, if you set Key to sink and Value to data_sink, and the Pod contains the annotation sink=ck, a new field **tag**data_sink_*: ck will be added to the log.
22457
- */
22458
- annotationTags: outputs.tls.GetRuleContainerRuleKubernetesRuleAnnotationTag[];
22459
- /**
22460
- * Whether to add all Kubernetes Labels as log tags to the original log data. When enabled, the log service adds fields for all Labels in the Kubernetes Pod to the logs. For example, if the Pod contains Label source=DC and destination=CS, the logs will include fields **tag**source__: DC and **tag**destination__: CS.
22461
- */
22462
- enableAllLabelTag: boolean;
22463
- /**
22464
- * Pod Annotation Denylist is used to specify containers that are not collected. If you need to set a Pod Annotation Denylist, Key is required and Value is optional. If Value is empty, all containers under Pods whose Pod Annotation contains the specified Key are excluded. If Value is not empty, only containers under Pods whose Pod Annotation contains the Key and whose value matches the specified Value are excluded. By default, Value uses string matching, meaning it only matches when Value and the Pod Annotation value are exactly the same. If the value starts with ^ and ends with $, it is treated as a regular expression. For example, if Key is set to app and Value is set to ^(test1|test2)$, it matches containers under Pods with Pod Annotation app:test1 or app:test2. Note: The logical relationship between multiple Key-Value pairs is OR, meaning a Pod Annotation that matches any pair will be excluded from the collection scope. When enabling the Pod Annotation Denylist, Keys must not be duplicated. For regex fuzzy matching, you must add .*. For example, ^(http.*)$ matches strings starting with http
22465
- */
22466
- excludePodAnnotationRegexes: outputs.tls.GetRuleContainerRuleKubernetesRuleExcludePodAnnotationRegex[];
22467
- /**
22468
- * Specify containers to exclude from collection using the Pod Label denylist. If not enabled, all containers are collected. To set a Pod Label denylist, Key is required and Value is optional. If Value is empty, all containers with the specified Key in their Pod Label are excluded from collection. If Value is not empty, only containers with the specified Key and a Value matching the Value in their Pod Label are excluded. Value supports regular expressions. For example, set Key to module and Value to ^(tcp|udp)$ to exclude containers with module:tcp or module:udp in their Pod Label. Note: The logical relationship between multiple Key-Value pairs is OR. Any Pod Label matching any Key-Value pair will be excluded from collection. When enabling the Pod Label denylist, Keys must not be duplicated. For fuzzy regular expression matching, you must add .*. For example, ^(http.*)$ matches any string starting with http
22469
- */
22470
- excludePodLabelRegexes: outputs.tls.GetRuleContainerRuleKubernetesRuleExcludePodLabelRegex[];
22471
- /**
22472
- * Pod Annotation Allowlist is used to specify containers to be collected. If you need to set a Pod Annotation Allowlist, Key is required and Value is optional. If Value is empty, all containers under Pods that contain the Key in Pod Annotation will match. If Value is not empty, only containers under Pods that contain the Key and whose value matches Value in Pod Annotation will match. Value defaults to string matching, meaning only when Value and the Pod Annotation value are exactly the same will they match. If the value starts with ^ and ends with $, it is a regex match. For example, set Key to app and Value to ^(test1|test2)$ to match containers under Pods with Pod Annotation app:test1 or app:test2. Note: The logical relationship between multiple Key-Value pairs is OR, meaning as long as Pod Annotation matches any pair, it will be included in the collection scope. When enabling Pod Annotation Allowlist, Keys must not be duplicated. For regex fuzzy matching, you must add .*. For example, ^(http.*)$ matches strings starting with http.
22473
- */
22474
- includePodAnnotationRegexes: outputs.tls.GetRuleContainerRuleKubernetesRuleIncludePodAnnotationRegex[];
22475
- /**
22476
- * Pod Label Allowlist is used to specify which containers to collect. If Pod Label Allowlist is not enabled, all containers will be collected. If you need to set a Pod Label Allowlist, Key is required: if Value is empty, all containers with the Key in their Pod Label will be collected. If Value is not empty, only containers with the Key in their Pod Label and a Value matching the specified pattern will be collected; regular expression matching is supported. For example, if you set Key to module and Value to ^(tcp|udp)$, only containers with module:tcp or module:udp in their Pod Label will be collected. Note: The logical relationship between multiple key-value pairs is OR, meaning any Pod Label matching any key-value pair will be included in the collection scope. When enabling Pod Label Allowlist, Keys cannot be duplicated. For fuzzy regular expression matching, you must add .*, for example, ^(http.*)$ matches strings starting with http.
22477
- */
22478
- includePodLabelRegexes: outputs.tls.GetRuleContainerRuleKubernetesRuleIncludePodLabelRegex[];
23706
+ val: string;
23707
+ }
23708
+ interface HostGroupRuleContainerRuleKubernetesRule {
23709
+ annotationTags: outputs.tls.HostGroupRuleContainerRuleKubernetesRuleAnnotationTag[];
22479
23710
  /**
22480
- * Whether to add Kubernetes labels as log tags to the raw log data. When enabled, the log service adds Kubernetes Pod label fields to the logs. Setting multiple key-value pairs adds multiple fields. For example, if you set Key to source and Value to data_source, and the Pod contains the label source=DC, the log will include the field **tag**data_source_*: DC.
23711
+ * Whether to add all Kubernetes Labels as log tags to the raw log data. When enabled, the log service adds fields for all Labels in the Kubernetes Pod to the log. For example, if the Pod has Label source=DC and destination=CS, the log will include fields **tag**source__: DC and **tag**destination__: CS.
22481
23712
  */
22482
- labelTags: outputs.tls.GetRuleContainerRuleKubernetesRuleLabelTag[];
23713
+ enableAllLabelTag: boolean;
23714
+ excludePodAnnotationRegexes: outputs.tls.HostGroupRuleContainerRuleKubernetesRuleExcludePodAnnotationRegex[];
23715
+ excludePodLabelRegexes: outputs.tls.HostGroupRuleContainerRuleKubernetesRuleExcludePodLabelRegex[];
23716
+ includePodAnnotationRegexes: outputs.tls.HostGroupRuleContainerRuleKubernetesRuleIncludePodAnnotationRegex[];
23717
+ includePodLabelRegexes: outputs.tls.HostGroupRuleContainerRuleKubernetesRuleIncludePodLabelRegex[];
23718
+ labelTags: outputs.tls.HostGroupRuleContainerRuleKubernetesRuleLabelTag[];
22483
23719
  /**
22484
- * Name of the Kubernetes Namespace to collect. If no Namespace name is specified, all containers will be collected. Namespace names support regular expression matching. For example, if you set the Namespace name to ^(tcp|udp)$, it will collect all containers under the tcp and udp namespaces.
23720
+ * Name of the Kubernetes Namespace to be collected. If not specified, all containers are collected. Namespace names support regular expression matching. For example, setting the Namespace name to ^(tcp|udp)$ collects all containers under the tcp and udp namespaces.
22485
23721
  */
22486
23722
  namespaceNameRegex: string;
22487
23723
  /**
22488
- * Pod name is used to specify the Pod whose containers will be collected. If no Pod name is specified, all containers will be collected. Pod name supports regular expression matching. For example, setting the Pod name to ^(http.*)$ collects all containers under Pods whose names start with http.
23724
+ * Pod name is used to specify the Pod(s) to be collected. If the Pod name is not specified, all containers are collected. Pod name supports regex matching. For example, setting the Pod name to ^(http.*)$ collects all containers under Pods whose names start with http.
22489
23725
  */
22490
23726
  podNameRegex: string;
22491
23727
  /**
@@ -22493,11 +23729,11 @@ export declare namespace tls {
22493
23729
  */
22494
23730
  workloadNameRegex: string;
22495
23731
  /**
22496
- * Specify the container to collect by workload type. Only one type can be selected. If no type is specified, containers of all types will be collected. Supported workload types: Deployment: stateless workload StatefulSet: stateful workload DaemonSet: daemon process Job: task CronJob: scheduled task
23732
+ * Specify containers to collect by workload type. Only one type can be selected. If no type is specified, containers of all types will be collected. Supported workload types are: Deployment: stateless workload StatefulSet: stateful workload DaemonSet: daemon process Job: job CronJob: scheduled job
22497
23733
  */
22498
23734
  workloadType: string;
22499
23735
  }
22500
- interface GetRuleContainerRuleKubernetesRuleAnnotationTag {
23736
+ interface HostGroupRuleContainerRuleKubernetesRuleAnnotationTag {
22501
23737
  /**
22502
23738
  * Key.
22503
23739
  */
@@ -22507,7 +23743,7 @@ export declare namespace tls {
22507
23743
  */
22508
23744
  val: string;
22509
23745
  }
22510
- interface GetRuleContainerRuleKubernetesRuleExcludePodAnnotationRegex {
23746
+ interface HostGroupRuleContainerRuleKubernetesRuleExcludePodAnnotationRegex {
22511
23747
  /**
22512
23748
  * Key.
22513
23749
  */
@@ -22517,7 +23753,7 @@ export declare namespace tls {
22517
23753
  */
22518
23754
  val: string;
22519
23755
  }
22520
- interface GetRuleContainerRuleKubernetesRuleExcludePodLabelRegex {
23756
+ interface HostGroupRuleContainerRuleKubernetesRuleExcludePodLabelRegex {
22521
23757
  /**
22522
23758
  * Key.
22523
23759
  */
@@ -22527,7 +23763,7 @@ export declare namespace tls {
22527
23763
  */
22528
23764
  val: string;
22529
23765
  }
22530
- interface GetRuleContainerRuleKubernetesRuleIncludePodAnnotationRegex {
23766
+ interface HostGroupRuleContainerRuleKubernetesRuleIncludePodAnnotationRegex {
22531
23767
  /**
22532
23768
  * Key.
22533
23769
  */
@@ -22537,7 +23773,7 @@ export declare namespace tls {
22537
23773
  */
22538
23774
  val: string;
22539
23775
  }
22540
- interface GetRuleContainerRuleKubernetesRuleIncludePodLabelRegex {
23776
+ interface HostGroupRuleContainerRuleKubernetesRuleIncludePodLabelRegex {
22541
23777
  /**
22542
23778
  * Key.
22543
23779
  */
@@ -22547,7 +23783,7 @@ export declare namespace tls {
22547
23783
  */
22548
23784
  val: string;
22549
23785
  }
22550
- interface GetRuleContainerRuleKubernetesRuleLabelTag {
23786
+ interface HostGroupRuleContainerRuleKubernetesRuleLabelTag {
22551
23787
  /**
22552
23788
  * Key.
22553
23789
  */
@@ -22557,9 +23793,9 @@ export declare namespace tls {
22557
23793
  */
22558
23794
  val: string;
22559
23795
  }
22560
- interface GetRuleExcludePath {
23796
+ interface HostGroupRuleExcludePath {
22561
23797
  /**
22562
- * Collection path type. File: File name. Path: Directory.
23798
+ * Collection path type. File: file name. Path: directory.
22563
23799
  */
22564
23800
  type: string;
22565
23801
  /**
@@ -22567,9 +23803,9 @@ export declare namespace tls {
22567
23803
  */
22568
23804
  value: string;
22569
23805
  }
22570
- interface GetRuleExtractRule {
23806
+ interface HostGroupRuleExtractRule {
22571
23807
  /**
22572
- * Regular expression that the first line of the log must match. Valid only when LogType is multiline*log or fullregex*log. Must be a valid regular expression.
23808
+ * The regex pattern required to match the first line of the log. This is valid only when LogType is multiline*log or fullregex*log. The pattern must be a valid regular expression.
22573
23809
  */
22574
23810
  beginRegex: string;
22575
23811
  /**
@@ -22577,59 +23813,56 @@ export declare namespace tls {
22577
23813
  */
22578
23814
  delimiter: string;
22579
23815
  /**
22580
- * Enable nanosecond precision time. When enabled, log time parsing will include and report nanosecond precision. true: Enable nanosecond precision time. false: Disable nanosecond precision time.
23816
+ * Enable nanosecond precision time. When enabled, log time parsing will report time with nanosecond precision. true: Enable nanosecond precision time. false: Disable nanosecond precision time.
22581
23817
  */
22582
23818
  enableNanosecond: boolean;
23819
+ filterKeyRegexes: outputs.tls.HostGroupRuleExtractRuleFilterKeyRegex[];
22583
23820
  /**
22584
- * Filter rule list. When LogType is minimalist*log or multiline*log, you can configure up to 1 filter rule, and the filter field name key must be content. When LogType is delimiter*log, json*log, or fullregex*log, you can configure up to 5 filter rules, and the filter field name key cannot be duplicated or empty. The regular expression for the filter field's log content must be a valid regular expression and is limited to 256 characters.
22585
- */
22586
- filterKeyRegexes: outputs.tls.GetRuleExtractRuleFilterKeyRegex[];
22587
- /**
22588
- * List of log field names (Key). This is only valid when LogType is delimiter*log or fullregex*log. You can configure up to 100 field names. When LogType is delimiter*log, field names must be unique and cannot all be empty. When LogType is fullregex*log, field names must be unique and cannot be empty.
23821
+ * List of log field names (Keys).
22589
23822
  */
22590
23823
  keys: string[];
22591
23824
  /**
22592
- * The entire log must match the specified regular expression. This is only valid when the collected log type is fullregex_log. Must be a valid regular expression.
23825
+ * The entire log entry must match the regular expression. This is only valid when the log type is fullregex_log. The regular expression must be valid.
22593
23826
  */
22594
23827
  logRegex: string;
22595
23828
  /**
22596
- * Automatically extract log fields based on the specified log template
23829
+ * Automatically extract log fields based on the specified log template.
22597
23830
  */
22598
- logTemplate: outputs.tls.GetRuleExtractRuleLogTemplate;
23831
+ logTemplate: outputs.tls.HostGroupRuleExtractRuleLogTemplate;
22599
23832
  /**
22600
- * Quoting character. Content wrapped by a quoting character will not be split but parsed as a complete field. Only valid when LogType is delimiter_log.
23833
+ * Quotation mark. Content enclosed by quotation marks is parsed as a complete field and not separated. Only valid when LogType is delimiter_log.
22601
23834
  */
22602
23835
  quote: string;
22603
23836
  /**
22604
- * Regular expression for extracting time, used to extract the time value from the TimeKey field and parse it as the collection time
23837
+ * Regular expression for extracting time, used to extract the time value from the TimeKey field and parse it as the collection time.
22605
23838
  */
22606
23839
  timeExtractRegex: string;
22607
23840
  /**
22608
- * Parsing format for the time field. If you use a specific time field in the log as the log timestamp, you must provide both TimeKey and TimeFormat. TimeKey and TimeFormat must be used together.
23841
+ * Parsing format for the time field. If a specified time field in the log is used as the log timestamp, you must provide TimeKey and TimeFormat.
22609
23842
  */
22610
23843
  timeFormat: string;
22611
23844
  /**
22612
- * Name of the log time field. If you want to use a specific time field in the log as the log timestamp, you need to specify both TimeKey and TimeFormat. TimeKey and TimeFormat must be provided together.
23845
+ * Field name for the log time field. If a specified time field in the log is used as the log timestamp, you must provide TimeKey and TimeFormat.
22613
23846
  */
22614
23847
  timeKey: string;
22615
23848
  /**
22616
- * Time sample. Used to check whether the entered time parsing format is correct.
23849
+ * Sample time. Used to verify whether the specified time parsing format is correct.
22617
23850
  */
22618
23851
  timeSample: string;
22619
23852
  /**
22620
- * Time zone. Supports machine time zone (default) and custom time zone. Custom time zone supports GMT and UTC. GMT format: GMT+08:00. UTC format: Asia/Shanghai.
23853
+ * Time zone. Supports machine time zone (default) and custom time zone. Custom time zone supports GMT and UTC.
22621
23854
  */
22622
23855
  timeZone: string;
22623
23856
  /**
22624
- * Key name for unmatched logs.
23857
+ * Key name for logs that failed to parse when uploading
22625
23858
  */
22626
23859
  unMatchLogKey: string;
22627
23860
  /**
22628
- * Switch for uploading unmatched logs.
23861
+ * Upload logs that failed to parse. UnMatchUpLoadSwitch=true and UnMatchLogKey must be used together. true: Upload logs that failed to parse. false: Do not upload logs that failed to parse.
22629
23862
  */
22630
23863
  unMatchUpLoadSwitch: boolean;
22631
23864
  }
22632
- interface GetRuleExtractRuleFilterKeyRegex {
23865
+ interface HostGroupRuleExtractRuleFilterKeyRegex {
22633
23866
  /**
22634
23867
  * Name of the filter field.
22635
23868
  */
@@ -22639,331 +23872,136 @@ export declare namespace tls {
22639
23872
  */
22640
23873
  regex: string;
22641
23874
  }
22642
- interface GetRuleExtractRuleLogTemplate {
23875
+ interface HostGroupRuleExtractRuleLogTemplate {
22643
23876
  /**
22644
- * Log template format.
23877
+ * Log template format
22645
23878
  */
22646
23879
  format: string;
22647
23880
  /**
22648
- * Log template types. Supported types: Nginx: Nginx log template.
23881
+ * Log template type. Supported types: Nginx (Nginx log template type).
22649
23882
  */
22650
23883
  type: string;
22651
23884
  }
22652
- interface GetRuleHostGroupInfo {
22653
- /**
22654
- * Number of hosts with heartbeat exceptions.
22655
- */
22656
- abnormalHeartbeatStatusCount: number;
22657
- /**
22658
- * Latest agent version.
22659
- */
22660
- agentLatestVersion: string;
22661
- /**
22662
- * Whether LogCollector installed on the machine group server has automatic upgrade enabled. true: The log service will check for upgrades during a specified time period each day. If upgrade conditions are met, LogCollector will be upgraded automatically without manual intervention. false (default): LogCollector does not upgrade automatically. To use a newer version of LogCollector, refer to the LogCollector upgrade procedure.
22663
- */
22664
- autoUpdate: boolean;
22665
- /**
22666
- * Machine group creation time.
22667
- */
22668
- createTime: string;
22669
- /**
22670
- * Number of hosts.
22671
- */
22672
- hostCount: number;
22673
- /**
22674
- * Machine group ID
22675
- */
22676
- hostGroupId: string;
22677
- /**
22678
- * Name of the machine group.
22679
- */
22680
- hostGroupName: string;
22681
- /**
22682
- * Machine group type. IP: Machine IP. Label: Machine label.
22683
- */
22684
- hostGroupType: string;
22685
- /**
22686
- * Machine identifier.
22687
- */
22688
- hostIdentifier: string;
22689
- /**
22690
- * The IAM project to which the host group belongs.
22691
- */
22692
- iamProjectName: string;
22693
- /**
22694
- * Time when the machine group was modified.
22695
- */
22696
- modifyTime: string;
22697
- /**
22698
- * Number of hosts with normal heartbeat.
22699
- */
22700
- normalHeartbeatStatusCount: number;
22701
- /**
22702
- * The number of bound collection configurations.
22703
- */
22704
- ruleCount: number;
22705
- /**
22706
- * Whether to enable the Logcollector service log feature. true: enabled. false (default): disabled.
22707
- */
22708
- serviceLogging: boolean;
22709
- /**
22710
- * End time for LogCollector automatic upgrade.
22711
- */
22712
- updateEndTime: string;
22713
- /**
22714
- * LogCollector auto-update start time. Note: Only required when AutoUpdate is set to true. It is recommended to schedule auto-updates during off-peak hours. LogCollector may restart during the update process, but logs will not be lost.
22715
- */
22716
- updateStartTime: string;
22717
- }
22718
- interface GetRuleUserDefineRule {
23885
+ interface HostGroupRuleUserDefineRule {
22719
23886
  /**
22720
- * The Advanced parameter is used for extended configuration. After enabling extended configuration, you can customize advanced behaviors of LogCollector, such as when to release file handles. Note: If multiple release conditions are specified, the handle is released and log file monitoring ends as soon as any condition is met.
23887
+ * Advanced parameters are used for extended configuration. After enabling extended configuration, you can customize advanced behaviors of LogCollector, such as when to release file handles. Note: If multiple conditions for releasing handles are specified, the handle will be released and log file monitoring will end as soon as any condition is met.
22721
23888
  */
22722
- advanced: outputs.tls.GetRuleUserDefineRuleAdvanced;
23889
+ advanced: outputs.tls.HostGroupRuleUserDefineRuleAdvanced;
22723
23890
  /**
22724
- * Whether to upload the label information of the host group to the log service. The default is off. true: LogCollector uploads the label information of the host group to the specified field. You can specify the field name in the HostGroupLabelKey parameter. false (default): Host group label information is not uploaded.
23891
+ * Whether to upload the Label information of the host group to the log service. Disabled by default. true: LogCollector uploads the Label information of the host group to the specified field. You can specify the field name in the HostGroupLabelKey parameter. false (default): LogCollector does not upload the Label information of the host group.
22725
23892
  */
22726
23893
  enableHostGroupLabel: boolean;
22727
23894
  /**
22728
- * Upload the hostname field. Default is disabled. true: Add a field to the original log to record the source hostname. Specify the hostname field name using HostnameKey. false: (default) Do not add the hostname field.
23895
+ * Whether to upload the hostname field. Default is disabled. true: Adds a field to the original log to record the log source's hostname. Specify the hostname field name using HostnameKey. false (default): Does not add the hostname field.
22729
23896
  */
22730
23897
  enableHostname: boolean;
22731
23898
  /**
22732
- * Upload raw logs. true: Upload raw logs. false (default): Do not upload raw logs.
23899
+ * Whether to upload raw logs. true: Upload raw logs. false (default): Do not upload raw logs.
22733
23900
  */
22734
23901
  enableRawLog: boolean;
23902
+ fields: outputs.tls.HostGroupRuleUserDefineRuleField[];
22735
23903
  /**
22736
- * Add constant fields to logs. Constant fields must follow these restrictions: You can upload up to 5 constant fields. Field names (Key) must be unique and not empty. Length limit: 1–128 characters, including letters, numbers, and special characters (-*./), and cannot start with an underscore. Field values (Value) must not be empty, with a maximum length of 512 KiB.
22737
- */
22738
- fields: outputs.tls.GetRuleUserDefineRuleField[];
22739
- /**
22740
- * Field name used to store machine group label information
23904
+ * Field name used to store machine group label information.
22741
23905
  */
22742
23906
  hostGroupLabelKey: string;
22743
23907
  /**
22744
- * Hostname field name. Required only when EnableHostname is true.
23908
+ * hostname field name. Only required when EnableHostname is set to true.
22745
23909
  */
22746
23910
  hostnameKey: string;
22747
23911
  /**
22748
- * Ignore log files that have not been updated for a specified period (in hours).
23912
+ * Ignore log files that have not been updated for a specified duration, in hours.
22749
23913
  */
22750
23914
  ignoreOlder: number;
22751
23915
  /**
22752
- * Allow multiple log file collections. Empty: Use log file ID (including file inode, device, and checksum of the first N bytes) to uniquely identify the log file. RuleID: Use collection rule ID and log file ID to uniquely identify the log file. TopicIDRuleName: Use log topic ID, collection rule name, and log file ID to uniquely identify the log file.
23916
+ * Allows multiple log file collections. Empty: Uses the log file ID (including file inode, device, and checksum of the first N bytes) to uniquely identify the log file. RuleID: Uses the collection rule ID and log file ID to uniquely identify the log file. TopicIDRuleName: Uses the log topic ID, collection rule Name, and log file ID to uniquely identify the log file.
22753
23917
  */
22754
23918
  multiCollectsType: string;
22755
23919
  /**
22756
- * Rule for parsing the collection path. After setting the rule, fields in the collection path are extracted using the specified regular expression and added as metadata to the log data. Note: This parameter is not supported when collecting container standard output.
23920
+ * Rules for parsing the collection path. After setting the rule, fields in the collection path are extracted using the specified regex and added as metadata to the log data. Note: This parameter is not supported when collecting container standard output.
22757
23921
  */
22758
- parsePathRule: outputs.tls.GetRuleUserDefineRuleParsePathRule;
23922
+ parsePathRule: outputs.tls.HostGroupRuleUserDefineRuleParsePathRule;
22759
23923
  /**
22760
23924
  * LogCollector plugin configuration. After enabling plugin configuration, you can add one or more LogCollector processor plugins to parse logs with complex or variable structures.
22761
23925
  */
22762
- plugin: outputs.tls.GetRuleUserDefineRulePlugin;
23926
+ plugin: outputs.tls.HostGroupRuleUserDefineRulePlugin;
22763
23927
  /**
22764
- * Name of the raw log field. Only effective when EnableRawLog is set to true. RawLogKey defaults to **raw**, meaning the original log data will be encapsulated in the **raw** field and uploaded to the log service along with the parsed log data.
23928
+ * Original log field name. Only effective when EnableRawLog is set to true. RawLogKey defaults to **raw**, meaning the original log data will be encapsulated in the **raw** field and uploaded to the log service together with the parsed log data
22765
23929
  */
22766
23930
  rawLogKey: string;
22767
23931
  /**
22768
- * Rules for routing log partitions. If this parameter is not set, logs are written using the default load balancing mode, and packets are written to any available Shard. If this parameter is set, logs are collected using the HashKey routing Shard mode, and the log service writes data to the Shard containing the specified Key value
22769
- */
22770
- shardHashKey: outputs.tls.GetRuleUserDefineRuleShardHashKey;
22771
- /**
22772
- * LogCollector collection policy, which specifies whether LogCollector collects incremental logs or full logs. Default is false, meaning full log collection. true: incremental collection. LogCollector only collects newly added content in the file. When new logs are written to monitored log files, LogCollector triggers log collection. For first-time collection, LogCollector automatically determines the collection position based on the incremental threshold TailSizeKb you specify. If the new file size does not exceed the incremental threshold, collection starts from the beginning of the file. If the new file size exceeds the incremental threshold, collection starts from the position at the end of the file minus the incremental threshold, collecting only incremental logs. For subsequent collections, LogCollector determines the collection position based on Checkpoint and continues collecting. false: (default) full collection. LogCollector collects logs from the beginning of each file, including historical log data.
22773
- */
22774
- tailFiles: boolean;
22775
- /**
22776
- * Backtracking threshold for incremental collection, in KiB. When LogCollector uses incremental collection, for the first collection of a log file: If the new log file size does not exceed the TailSizeKb value, collection starts from the beginning of the file. If the new log file size exceeds the TailSizeKb value, collection starts from the position that is TailSizeKb from the end of the file.
22777
- */
22778
- tailSizeKb: number;
22779
- }
22780
- interface GetRuleUserDefineRuleAdvanced {
22781
- /**
22782
- * After reading to the end of the log file, choose whether to release the file handle. Default is false.
22783
- */
22784
- closeEof: boolean;
22785
- /**
22786
- * Wait time to release log file handle. If no new logs are written to the log file within the specified time, the handle for that log file is released. Unit: seconds. Range: 1–300 seconds. Default: 60 seconds.
22787
- */
22788
- closeInactive: number;
22789
- /**
22790
- * Release the file handle after the log file is removed. Default is false.
22791
- */
22792
- closeRemoved: boolean;
22793
- /**
22794
- * Release the file handle after the log file is renamed. Default is false.
22795
- */
22796
- closeRenamed: boolean;
22797
- /**
22798
- * Maximum monitoring duration for LogCollector log files, in seconds. The default is 0 seconds, meaning LogCollector does not limit the monitoring duration for log files. Timing starts when LogCollector begins monitoring the log file. Once the specified duration is exceeded, LogCollector immediately releases the file handle and stops monitoring, regardless of whether the log file has been fully read.
22799
- */
22800
- closeTimeout: number;
22801
- /**
22802
- * Maximum wait time when LogCollector does not detect a line break, in seconds. The default is 5s. Timing starts when LogCollector begins reading the log file. If no line break is detected within the specified time, LogCollector sends the logs in the buffer. If the file write interval is long, a complete log entry may be split into two parts and written separately. Adjust this parameter based on your log write interval.
22803
- */
22804
- noLineTerminatorEofMaxTime: number;
22805
- }
22806
- interface GetRuleUserDefineRuleField {
22807
- /**
22808
- * Key.
22809
- */
22810
- key: string;
22811
- /**
22812
- * Value.
22813
- */
22814
- val: string;
22815
- }
22816
- interface GetRuleUserDefineRuleParsePathRule {
22817
- /**
22818
- * Field name list. The log service uses a regular expression (Regex) to parse the path sample (PathSample) into multiple fields. Keys specify the name of each field. You can configure up to 100 field names. Field names cannot be empty or duplicated.
22819
- */
22820
- keys: string[];
22821
- /**
22822
- * Sample collection path for actual scenarios. The sample collection path must be an absolute path. Wildcards *, ?, ** are not allowed in the path sample.
22823
- */
22824
- pathSample: string;
22825
- /**
22826
- * Regular expression used to extract the path field. Must match the sample collection path, otherwise extraction will fail
22827
- */
22828
- regex: string;
22829
- }
22830
- interface GetRuleUserDefineRulePlugin {
22831
- /**
22832
- * LogCollector plugin. For the list of supported plugins and parameter descriptions, see LogCollector plugin overview.
22833
- */
22834
- processors: string;
22835
- }
22836
- interface GetRuleUserDefineRuleShardHashKey {
22837
- /**
22838
- * HashKey of the log group, used to specify the shard to which the current log group will be written. The value range for this parameter is [00000000000000000000000000000000-ffffffffffffffffffffffffffffffff).
22839
- */
22840
- hashKey: string;
22841
- }
22842
- interface GetScheduleSqlTaskRequestCycle {
22843
- /**
22844
- * Cron expression, with a minimum granularity of minutes, using 24-hour format. For example, 0 18 * * * means execution at 18:00 every day.
22845
- */
22846
- cronTab: string;
22847
- /**
22848
- * If Type is set to Cron, you must also set the time zone.
22849
- */
22850
- cronTimeZone: string;
22851
- /**
22852
- * Scheduling period or the time point for periodic execution (minutes from 00:00). Range: 1–1440 minutes.
22853
- */
22854
- time: number;
22855
- /**
22856
- * Scheduling period type. Options: Period, Fixed, Cron.
22857
- */
22858
- type: string;
22859
- }
22860
- interface GetShipperContentInfo {
22861
- /**
22862
- * CSV format log content configuration.
22863
- */
22864
- csvInfo: outputs.tls.GetShipperContentInfoCsvInfo;
22865
- /**
22866
- * Log content parsing format. Delivery to TOS supports json, jsonl, csv; delivery to Kafka supports original, json.
22867
- */
22868
- format: string;
22869
- /**
22870
- * JSON/JSONL format log content configuration.
22871
- */
22872
- jsonInfo: outputs.tls.GetShipperContentInfoJsonInfo;
22873
- }
22874
- interface GetShipperContentInfoCsvInfo {
22875
- /**
22876
- * Delimiter. Supports comma, tab, pipe, semicolon, space.
22877
- */
22878
- delimiter: string;
22879
- /**
22880
- * Escape character. When field content contains a delimiter, use an escape character to enclose it. Supports single quote, double quote, or empty character.
22881
- */
22882
- escapeChar: string;
22883
- /**
22884
- * Fields to be delivered. Supports letters, numbers, and _-./. Cannot start with an underscore. Length: 1–128.
22885
- */
22886
- keys: string[];
22887
- /**
22888
- * Content for invalid field padding. Length: 0–128.
22889
- */
22890
- nonFieldContent: string;
22891
- /**
22892
- * Whether to print the key in the first row.
22893
- */
22894
- printHeader: boolean;
22895
- }
22896
- interface GetShipperContentInfoJsonInfo {
22897
- /**
22898
- * Enable flag.
23932
+ * Rules for routing log partitions. If this parameter is not set, logs are written using the default load balancing mode, and packets are written to any available Shard. If set, logs are collected using the HashKey routing Shard mode, and the log service writes data to the Shard containing the specified Key value.
22899
23933
  */
22900
- enable: boolean;
23934
+ shardHashKey: outputs.tls.HostGroupRuleUserDefineRuleShardHashKey;
22901
23935
  /**
22902
- * Whether to enable escaping. Must be set to true.
23936
+ * LogCollector collection strategy, specifying whether LogCollector collects incremental logs or full logs. The default is false, which means full log collection. true: incremental collection. When LogCollector collects logs, it only collects newly added content in the file. When a monitored log file receives new log entries, LogCollector is triggered to collect logs. For log files being collected for the first time, LogCollector automatically determines the collection position based on the incremental threshold TailSizeKb you specify. If the new file size does not exceed the incremental threshold, collection starts from the beginning of the new file. If the new file size exceeds the incremental threshold, collection starts from the position at the end of the file minus the incremental threshold, meaning only incremental logs are collected. For log files that are not being collected for the first time, LogCollector determines the collection position based on the Checkpoint and continues collecting. false: (default) full collection. LogCollector collects logs from the beginning of each file, including historical log data.
22903
23937
  */
22904
- escape: boolean;
23938
+ tailFiles: boolean;
22905
23939
  /**
22906
- * Delivery field list; if not configured, all fields will be delivered. When delivering in JSON/JSONL format, if this parameter is not set, all fields will be delivered, including **content** (required), **source**, **path**, **time**, **image_name**, **container_name**, **pod_name**, **pod_uid**, namespace, **tag****client_ip**, and **tag****receive_time**.
23940
+ * Incremental collection backtracking threshold, in KiB. When LogCollector uses incremental collection, for the first collection of a log file: if the new log file size does not exceed the TailSizeKb value, collection starts from the beginning of the file. If the new log file size exceeds the TailSizeKb value, collection starts from the position TailSizeKb from the end of the file.
22907
23941
  */
22908
- keys: string[];
23942
+ tailSizeKb: number;
22909
23943
  }
22910
- interface GetShipperKafkaShipperInfo {
23944
+ interface HostGroupRuleUserDefineRuleAdvanced {
22911
23945
  /**
22912
- * Compression format; supports snappy, gzip, lz4, none.
23946
+ * After reading to the end of the log file, whether to release the file handle. Default is false.
22913
23947
  */
22914
- compress: string;
23948
+ closeEof: boolean;
22915
23949
  /**
22916
- * Delivery end time, in milliseconds. If not set, delivery continues indefinitely. Note: Milliseconds will be truncated. For example, if 1776761323455 is entered, it will become 1776761323000; if 1776761323 is entered, it will become 1776761323000.
23950
+ * Wait time before releasing log file handles. If no new logs are written to a log file for the specified duration, the handle for that log file is released. Unit: seconds. Range: 1–300 seconds. Default: 60 seconds.
22917
23951
  */
22918
- endTime: number;
23952
+ closeInactive: number;
22919
23953
  /**
22920
- * Kafka instance.
23954
+ * Whether to release the handle of the log file after it is removed. Default is false.
22921
23955
  */
22922
- instance: string;
23956
+ closeRemoved: boolean;
22923
23957
  /**
22924
- * Kafka topic name. All log data delivered through this configuration will be sent to this topic.
23958
+ * Whether to release the handle of the log file after it is renamed. Default is false.
22925
23959
  */
22926
- kafkaTopic: string;
23960
+ closeRenamed: boolean;
22927
23961
  /**
22928
- * Start time. If not configured, defaults to the current time. Note: Millisecond data will be ignored. For example, if 1776761323455 is entered, the result will be 1776761323000; if 1776761323 is entered, the result will be 1776761323000.
23962
+ * Maximum duration for LogCollector to monitor log files, in seconds. The default is 0 seconds, meaning LogCollector does not limit the monitoring duration. Timing starts when LogCollector begins monitoring the log file. After the specified duration is exceeded, regardless of whether the log file has been fully read, LogCollector immediately releases the file handle and stops monitoring.
22929
23963
  */
22930
- startTime: number;
22931
- }
22932
- interface GetShipperTosShipperInfo {
23964
+ closeTimeout: number;
22933
23965
  /**
22934
- * Select a TOS bucket. Must be in the same region as the source log topic. Can only contain numbers, hyphens (-), and letters a–z. Must start and end with a number or letter. Length: 3–63 characters.
23966
+ * Maximum wait time when LogCollector does not read a line break. Unit: seconds. Default: 5s. LogCollector starts timing when it begins reading log file content. If no line break is read within the specified time, it will send the buffered logs. If the file write interval is large, a complete log entry may be split into two parts and written separately. Adjust this parameter based on your log write interval.
22935
23967
  */
22936
- bucket: string;
23968
+ noLineTerminatorEofMaxTime: number;
23969
+ }
23970
+ interface HostGroupRuleUserDefineRuleField {
22937
23971
  /**
22938
- * Compression format; supports snappy, gzip, lz4, none.
23972
+ * Key.
22939
23973
  */
22940
- compress: string;
23974
+ key: string;
22941
23975
  /**
22942
- * Delivery interval in seconds, range: 300–900.
23976
+ * Value.
22943
23977
  */
22944
- interval: number;
23978
+ val: string;
23979
+ }
23980
+ interface HostGroupRuleUserDefineRuleParsePathRule {
22945
23981
  /**
22946
- * Maximum raw file size per partition for delivery, in MiB. Range: 5–256.
23982
+ * List of field names. Log Service parses PathSample into multiple fields using regular expressions (Regex). Keys specify the name of each field. You can configure up to 100 field names. Field names cannot be empty or duplicated.
22947
23983
  */
22948
- maxSize: number;
23984
+ keys: string[];
22949
23985
  /**
22950
- * Partition rule for log delivery. Subdirectory naming format supports strftime syntax. Default: %Y/%m/%d/%H/%M.
23986
+ * Sample collection path for actual scenarios. The sample path must be an absolute path. Wildcards *, ?, ** are not allowed in the sample path.
22951
23987
  */
22952
- partitionFormat: string;
23988
+ pathSample: string;
22953
23989
  /**
22954
- * Top-level directory name for the bucket. Cannot start with / or \, and cannot use consecutive /. Cannot use .. as a folder name. Duplicate names are not allowed within the same bucket.
23990
+ * Regular expression used to extract the path field. It must match the example collection path; otherwise, extraction will fail.
22955
23991
  */
22956
- prefix: string;
23992
+ regex: string;
22957
23993
  }
22958
- interface GetTopicTag {
23994
+ interface HostGroupRuleUserDefineRulePlugin {
22959
23995
  /**
22960
- * User tag key.
23996
+ * LogCollector plugins. For supported plugin lists and parameter descriptions, see LogCollector plugin overview.
22961
23997
  */
22962
- key: string;
23998
+ processors: string;
23999
+ }
24000
+ interface HostGroupRuleUserDefineRuleShardHashKey {
22963
24001
  /**
22964
- * User tag value.
24002
+ * The HashKey of the log group specifies the shard where the current log group will be written. The valid range for this parameter is [00000000000000000000000000000000-ffffffffffffffffffffffffffffffff).
22965
24003
  */
22966
- value: string;
24004
+ hashKey: string;
22967
24005
  }
22968
24006
  interface ImportTaskImportSourceInfo {
22969
24007
  /**
@@ -23998,125 +25036,402 @@ export declare namespace tos {
23998
25036
  /**
23999
25037
  * Information about exported inventory files.
24000
25038
  */
24001
- fields: string[];
25039
+ fields: string[];
25040
+ }
25041
+ interface BucketInventorySchedule {
25042
+ /**
25043
+ * Export frequency for inventory files. Options: Daily: export inventory files daily. Weekly: export inventory files weekly. Once: export inventory files once.
25044
+ */
25045
+ frequency: string;
25046
+ }
25047
+ interface BucketLifecycleConfig {
25048
+ /**
25049
+ * Specify expiration attributes for unmerged multipart tasks (fragments)
25050
+ */
25051
+ abortInCompleteMultipartUpload: outputs.tos.BucketLifecycleConfigAbortInCompleteMultipartUpload;
25052
+ /**
25053
+ * Expiration attribute for deleting the latest version object in the lifecycle rule based on last modified time
25054
+ */
25055
+ expiration: outputs.tos.BucketLifecycleConfigExpiration;
25056
+ /**
25057
+ * Filter conditions for applying the rule
25058
+ */
25059
+ filter: outputs.tos.BucketLifecycleConfigFilter;
25060
+ /**
25061
+ * Rule ID
25062
+ */
25063
+ lifecycleRuleId: string;
25064
+ noCurrentVersionExpiration: outputs.tos.BucketLifecycleConfigNoCurrentVersionExpiration;
25065
+ nonCurrentVersionTransitions: outputs.tos.BucketLifecycleConfigNonCurrentVersionTransition[];
25066
+ /**
25067
+ * Prefix to which the rule applies
25068
+ */
25069
+ prefix: string;
25070
+ /**
25071
+ * Enable rule. Includes Enabled, Disabled.
25072
+ */
25073
+ status: string;
25074
+ tags: outputs.tos.BucketLifecycleConfigTag[];
25075
+ transitions: outputs.tos.BucketLifecycleConfigTransition[];
25076
+ }
25077
+ interface BucketLifecycleConfigAbortInCompleteMultipartUpload {
25078
+ /**
25079
+ * Specify lifecycle rule for unmerged multipart tasks (fragments), number of days to delete after task initialization
25080
+ */
25081
+ daysAfterInitiation: number;
25082
+ }
25083
+ interface BucketLifecycleConfigExpiration {
25084
+ /**
25085
+ * Specific date for deleting the latest version object in the lifecycle rule based on last modified time
25086
+ */
25087
+ date: string;
25088
+ /**
25089
+ * Number of days for deleting the latest version object based on last modified time in lifecycle rules
25090
+ */
25091
+ days: number;
25092
+ }
25093
+ interface BucketLifecycleConfigFilter {
25094
+ /**
25095
+ * Equality condition status. Includes Enabled, Disabled
25096
+ */
25097
+ greaterThanIncludeEqual: string;
25098
+ /**
25099
+ * Equality condition status. Includes Enabled, Disabled
25100
+ */
25101
+ lessThanIncludeEqual: string;
25102
+ /**
25103
+ * Apply rule to objects larger than the specified size
25104
+ */
25105
+ objectSizeGreaterThan: number;
25106
+ /**
25107
+ * Apply rule to objects smaller than the specified size
25108
+ */
25109
+ objectSizeLessThan: number;
25110
+ }
25111
+ interface BucketLifecycleConfigNoCurrentVersionExpiration {
25112
+ /**
25113
+ * Specific date for deleting historical version objects in the lifecycle rule based on last modified time
25114
+ */
25115
+ nonCurrentDate: string;
25116
+ /**
25117
+ * Number of days to delete historical version objects in the lifecycle rule based on last modified time
25118
+ */
25119
+ nonCurrentDays: number;
25120
+ }
25121
+ interface BucketLifecycleConfigNonCurrentVersionTransition {
25122
+ /**
25123
+ * Specific date for historical version object transition in lifecycle rules based on last modified time
25124
+ */
25125
+ nonCurrentDate: string;
25126
+ /**
25127
+ * Number of days to transition historical version objects in the lifecycle rule based on last modified time
25128
+ */
25129
+ nonCurrentDays: number;
25130
+ /**
25131
+ * Storage class. Includes STANDARD, IA, ARCHIVE*FR, INTELLIGENT*TIERING, COLD*ARCHIVE, ARCHIVE, DEEP*COLD_ARCHIVE
25132
+ */
25133
+ storageClass: string;
25134
+ }
25135
+ interface BucketLifecycleConfigTag {
25136
+ /**
25137
+ * Tag key
25138
+ */
25139
+ key: string;
25140
+ /**
25141
+ * Tag value
25142
+ */
25143
+ value: string;
25144
+ }
25145
+ interface BucketLifecycleConfigTransition {
25146
+ /**
25147
+ * Specific date for latest version object transition in lifecycle rules based on last modified time
25148
+ */
25149
+ date: string;
25150
+ /**
25151
+ * Number of days to transition the latest version object in the lifecycle rule based on last modified time
25152
+ */
25153
+ days: number;
25154
+ /**
25155
+ * Storage class for historical version object transition in lifecycle rules based on last modified time. Includes STANDARD, IA, ARCHIVE*FR, INTELLIGENT*TIERING, COLD*ARCHIVE, ARCHIVE, DEEP*COLD_ARCHIVE
25156
+ */
25157
+ storageClass: string;
25158
+ }
25159
+ interface BucketMirrorBackRule {
25160
+ /**
25161
+ * Conditions that trigger the back-to-origin function.
25162
+ */
25163
+ condition: outputs.tos.BucketMirrorBackRuleCondition;
25164
+ /**
25165
+ * Rule ID. The unique identifier for the back-to-origin rule configured on the current bucket. You can set this yourself to distinguish between multiple rules. Restrictions:
25166
+ * Characters supported: letters, numbers, - and _.
25167
+ * Maximum length: 32 characters.
25168
+ */
25169
+ id: string;
25170
+ /**
25171
+ * Back-to-origin redirect configuration.
25172
+ */
25173
+ redirect: outputs.tos.BucketMirrorBackRuleRedirect;
25174
+ }
25175
+ interface BucketMirrorBackRuleCondition {
25176
+ /**
25177
+ * Supports triggering origin fetch only for specified domains. The domain must be able to access the bucket; it is recommended to use a custom domain bound to the bucket. Limit: supports up to 30 domains.
25178
+ */
25179
+ allowHosts: string[];
25180
+ /**
25181
+ * Error code that triggers origin fetch. When a download request returns this error code, origin fetch is triggered. Limit: currently only supports 404.
25182
+ */
25183
+ httpCode: number;
25184
+ /**
25185
+ * Request types that trigger back-to-origin. Value description:
25186
+ * ["GET","HEAD"]: Both GetObject and HeadObject requests can trigger back-to-origin.
25187
+ * ["GET"]: Only GetObject requests can trigger back-to-origin.
25188
+ * Default is ["GET"].
25189
+ */
25190
+ httpMethods: string[];
25191
+ /**
25192
+ * Object name prefix for matching origin fetch objects. Limit: supports up to 512 characters.
25193
+ */
25194
+ keyPrefix: string;
25195
+ /**
25196
+ * Object name suffix for matching origin fetch objects. Limit: supports up to 512 characters.
25197
+ */
25198
+ keySuffix: string;
25199
+ }
25200
+ interface BucketMirrorBackRuleRedirect {
25201
+ fetchHeaderToMetaDataRules: outputs.tos.BucketMirrorBackRuleRedirectFetchHeaderToMetaDataRule[];
25202
+ /**
25203
+ * Whether to fetch data from the configured origin after redirection. Value description: true: Fetch data from the configured origin after redirection. false: Do not fetch data from the configured origin after redirection.
25204
+ */
25205
+ fetchSourceOnRedirect: boolean;
25206
+ /**
25207
+ * Whether to include request parameters when fetching data after redirection. If not configured, inherits PassQuery settings: true: includes request parameters. false: does not include request parameters.
25208
+ */
25209
+ fetchSourceOnRedirectWithQuery: boolean;
25210
+ /**
25211
+ * If the result of mirror origin fetch is 3xx, whether to continue redirecting to the specified Location to fetch data. Value description: true: TOS will continue to request the address corresponding to Location. false: TOS will return 302.
25212
+ */
25213
+ followRedirect: boolean;
25214
+ /**
25215
+ * Specify the headers to include when mirroring back to origin.
25216
+ */
25217
+ mirrorHeader: outputs.tos.BucketMirrorBackRuleRedirectMirrorHeader;
25218
+ /**
25219
+ * List of origin response headers allowed to be passed through directly.
25220
+ */
25221
+ passHeaderFromSources: string[];
25222
+ /**
25223
+ * Whether to include request parameters when performing redirect or mirror back-to-origin rules. Value description:
25224
+ * true: Include request parameters.
25225
+ * false: Do not include request parameters.
25226
+ */
25227
+ passQuery: boolean;
25228
+ /**
25229
+ * List of origin response status codes allowed to be passed through directly.
25230
+ */
25231
+ passStatusCodeFromSources: number[];
25232
+ /**
25233
+ * Back-to-origin address configuration when the origin server is a private bucket.
25234
+ */
25235
+ privateSource: outputs.tos.BucketMirrorBackRuleRedirectPrivateSource;
25236
+ /**
25237
+ * Back-to-origin address configuration when the origin server is a public bucket.
25238
+ */
25239
+ publicSource: outputs.tos.BucketMirrorBackRuleRedirectPublicSource;
25240
+ /**
25241
+ * Specify redirect type. Value range: Mirror: Mirror origin fetch. Async: Redirect origin fetch.
25242
+ */
25243
+ redirectType: string;
25244
+ /**
25245
+ * Define transformations for the object name when requesting the origin server.
25246
+ */
25247
+ transform: outputs.tos.BucketMirrorBackRuleRedirectTransform;
25248
+ }
25249
+ interface BucketMirrorBackRuleRedirectFetchHeaderToMetaDataRule {
25250
+ /**
25251
+ * Suffix appended when writing object metadata.
25252
+ */
25253
+ metaDataSuffix: string;
25254
+ /**
25255
+ * Origin response header name.
25256
+ */
25257
+ sourceHeader: string;
25258
+ }
25259
+ interface BucketMirrorBackRuleRedirectMirrorHeader {
25260
+ /**
25261
+ * Whether to forward all HTTP headers to the origin. Values: true: forwards all HTTP headers to the origin. false: does not forward all HTTP headers to the origin. The following HTTP header types are not supported for forwarding: Host, Content-Length, Date, Authorization.
25262
+ */
25263
+ passAll: boolean;
25264
+ /**
25265
+ * Pass the specified headers to the origin server. Limit: up to 64.
25266
+ */
25267
+ passes: string[];
25268
+ /**
25269
+ * Prohibit forwarding specified headers to the origin. Limit: maximum 64.
25270
+ */
25271
+ removes: string[];
25272
+ sets: outputs.tos.BucketMirrorBackRuleRedirectMirrorHeaderSet[];
25273
+ }
25274
+ interface BucketMirrorBackRuleRedirectMirrorHeaderSet {
25275
+ /**
25276
+ * Request header name.
25277
+ */
25278
+ key: string;
25279
+ /**
25280
+ * Request header value.
25281
+ */
25282
+ value: string;
25283
+ }
25284
+ interface BucketMirrorBackRuleRedirectPrivateSource {
25285
+ /**
25286
+ * Back-to-origin address configuration when the origin server is a private bucket.
25287
+ */
25288
+ sourceEndpoint: outputs.tos.BucketMirrorBackRuleRedirectPrivateSourceSourceEndpoint;
25289
+ }
25290
+ interface BucketMirrorBackRuleRedirectPrivateSourceSourceEndpoint {
25291
+ followers: outputs.tos.BucketMirrorBackRuleRedirectPrivateSourceSourceEndpointFollower[];
25292
+ primaries: outputs.tos.BucketMirrorBackRuleRedirectPrivateSourceSourceEndpointPrimary[];
25293
+ }
25294
+ interface BucketMirrorBackRuleRedirectPrivateSourceSourceEndpointFollower {
25295
+ /**
25296
+ * Name of the origin fetch bucket. Required when the origin is a private bucket.
25297
+ */
25298
+ bucketName: string;
25299
+ /**
25300
+ * Private back-to-origin authentication method. Required when the origin server is a private bucket.
25301
+ */
25302
+ credentialProvider: outputs.tos.BucketMirrorBackRuleRedirectPrivateSourceSourceEndpointFollowerCredentialProvider;
25303
+ /**
25304
+ * Access domain name of the origin service provider, excluding bucket name, maximum length 255. Required for private buckets.
25305
+ */
25306
+ endpoint: string;
25307
+ }
25308
+ interface BucketMirrorBackRuleRedirectPrivateSourceSourceEndpointFollowerCredentialProvider {
25309
+ /**
25310
+ * Region where the origin fetch bucket is located. Required when using AK/SK authentication.
25311
+ */
25312
+ region: string;
25313
+ /**
25314
+ * Name of AssumeRole. Only when fetching from a private TOS bucket can AssumeRole be used for authentication. Role authentication and AK/SK authentication are mutually exclusive and cannot be set simultaneously.
25315
+ */
25316
+ role: string;
25317
+ /**
25318
+ * Authenticate using AK/SK.
25319
+ */
25320
+ staticCredential: outputs.tos.BucketMirrorBackRuleRedirectPrivateSourceSourceEndpointFollowerCredentialProviderStaticCredential;
24002
25321
  }
24003
- interface BucketInventorySchedule {
25322
+ interface BucketMirrorBackRuleRedirectPrivateSourceSourceEndpointFollowerCredentialProviderStaticCredential {
24004
25323
  /**
24005
- * Export frequency for inventory files. Options: Daily: export inventory files daily. Weekly: export inventory files weekly. Once: export inventory files once.
25324
+ * AccessKey ID of the origin bucket. Required when using AK/SK authentication.
24006
25325
  */
24007
- frequency: string;
24008
- }
24009
- interface BucketLifecycleConfig {
25326
+ ak: string;
24010
25327
  /**
24011
- * Specify expiration attributes for unmerged multipart tasks (fragments)
25328
+ * SecretKey for the back-to-origin bucket. Required when using AK/SK authentication.
24012
25329
  */
24013
- abortInCompleteMultipartUpload: outputs.tos.BucketLifecycleConfigAbortInCompleteMultipartUpload;
25330
+ sk: string;
24014
25331
  /**
24015
- * Expiration attribute for deleting the latest version object in the lifecycle rule based on last modified time
25332
+ * Encryption method used for SecretKey. Values:
25333
+ * Empty: SecretKey is in plaintext. After receiving the SecretKey, the server will encrypt and store it.
25334
+ * AES256: SecretKey has been encrypted using the AES256 algorithm on the server side. After receiving the SecretKey, the server will parse and encrypt it for storage.
25335
+ * Note: When a back-to-origin rule is created for the first time, the SecretKey is encrypted with AES256. If you modify the back-to-origin rule without changing the SecretKey parameter, you must first decrypt the SecretKey and then re-encrypt it for storage. Therefore, when calling the PutBucketMirrorBack API to modify the back-to-origin rule and only changing other parameters (not the SecretKey), you can set SKEncryptType to AES256.
24016
25336
  */
24017
- expiration: outputs.tos.BucketLifecycleConfigExpiration;
25337
+ skEncryptType: string;
24018
25338
  /**
24019
- * Filter conditions for applying the rule
25339
+ * Origin service provider. Values: BOS: Baidu Cloud. S3: Other cloud providers using the S3 storage protocol.
24020
25340
  */
24021
- filter: outputs.tos.BucketLifecycleConfigFilter;
25341
+ storageVendor: string;
25342
+ }
25343
+ interface BucketMirrorBackRuleRedirectPrivateSourceSourceEndpointPrimary {
24022
25344
  /**
24023
- * Rule ID
25345
+ * Name of the origin fetch bucket. Required when the origin is a private bucket.
24024
25346
  */
24025
- lifecycleRuleId: string;
24026
- noCurrentVersionExpiration: outputs.tos.BucketLifecycleConfigNoCurrentVersionExpiration;
24027
- nonCurrentVersionTransitions: outputs.tos.BucketLifecycleConfigNonCurrentVersionTransition[];
25347
+ bucketName: string;
24028
25348
  /**
24029
- * Prefix to which the rule applies
25349
+ * Private back-to-origin authentication method. Required when the origin server is a private bucket.
24030
25350
  */
24031
- prefix: string;
25351
+ credentialProvider: outputs.tos.BucketMirrorBackRuleRedirectPrivateSourceSourceEndpointPrimaryCredentialProvider;
24032
25352
  /**
24033
- * Enable rule. Includes Enabled, Disabled.
25353
+ * Access domain name of the origin service provider, excluding bucket name, maximum length 255. Required for private buckets.
24034
25354
  */
24035
- status: string;
24036
- tags: outputs.tos.BucketLifecycleConfigTag[];
24037
- transitions: outputs.tos.BucketLifecycleConfigTransition[];
25355
+ endpoint: string;
24038
25356
  }
24039
- interface BucketLifecycleConfigAbortInCompleteMultipartUpload {
25357
+ interface BucketMirrorBackRuleRedirectPrivateSourceSourceEndpointPrimaryCredentialProvider {
24040
25358
  /**
24041
- * Specify lifecycle rule for unmerged multipart tasks (fragments), number of days to delete after task initialization
25359
+ * Region where the origin fetch bucket is located. Required when using AK/SK authentication.
24042
25360
  */
24043
- daysAfterInitiation: number;
24044
- }
24045
- interface BucketLifecycleConfigExpiration {
25361
+ region: string;
24046
25362
  /**
24047
- * Specific date for deleting the latest version object in the lifecycle rule based on last modified time
25363
+ * Name of AssumeRole. Only when fetching from a private TOS bucket can AssumeRole be used for authentication. Role authentication and AK/SK authentication are mutually exclusive and cannot be set simultaneously.
24048
25364
  */
24049
- date: string;
25365
+ role: string;
24050
25366
  /**
24051
- * Number of days for deleting the latest version object based on last modified time in lifecycle rules
25367
+ * Authenticate using AK/SK.
24052
25368
  */
24053
- days: number;
25369
+ staticCredential: outputs.tos.BucketMirrorBackRuleRedirectPrivateSourceSourceEndpointPrimaryCredentialProviderStaticCredential;
24054
25370
  }
24055
- interface BucketLifecycleConfigFilter {
25371
+ interface BucketMirrorBackRuleRedirectPrivateSourceSourceEndpointPrimaryCredentialProviderStaticCredential {
24056
25372
  /**
24057
- * Equality condition status. Includes Enabled, Disabled
25373
+ * AccessKey ID of the origin bucket. Required when using AK/SK authentication.
24058
25374
  */
24059
- greaterThanIncludeEqual: string;
25375
+ ak: string;
24060
25376
  /**
24061
- * Equality condition status. Includes Enabled, Disabled
25377
+ * SecretKey for the back-to-origin bucket. Required when using AK/SK authentication.
24062
25378
  */
24063
- lessThanIncludeEqual: string;
25379
+ sk: string;
24064
25380
  /**
24065
- * Apply rule to objects larger than the specified size
25381
+ * Encryption method used for SecretKey. Values:
25382
+ * Empty: SecretKey is in plaintext. After receiving the SecretKey, the server will encrypt and store it.
25383
+ * AES256: SecretKey has been encrypted using the AES256 algorithm on the server side. After receiving the SecretKey, the server will parse and encrypt it for storage.
25384
+ * Note: When a back-to-origin rule is created for the first time, the SecretKey is encrypted with AES256. If you modify the back-to-origin rule without changing the SecretKey parameter, you must first decrypt the SecretKey and then re-encrypt it for storage. Therefore, when calling the PutBucketMirrorBack API to modify the back-to-origin rule and only changing other parameters (not the SecretKey), you can set SKEncryptType to AES256.
24066
25385
  */
24067
- objectSizeGreaterThan: number;
25386
+ skEncryptType: string;
24068
25387
  /**
24069
- * Apply rule to objects smaller than the specified size
25388
+ * Origin service provider. Values: BOS: Baidu Cloud. S3: Other cloud providers using the S3 storage protocol.
24070
25389
  */
24071
- objectSizeLessThan: number;
25390
+ storageVendor: string;
24072
25391
  }
24073
- interface BucketLifecycleConfigNoCurrentVersionExpiration {
25392
+ interface BucketMirrorBackRuleRedirectPublicSource {
24074
25393
  /**
24075
- * Specific date for deleting historical version objects in the lifecycle rule based on last modified time
25394
+ * Whether to always use the configured origin address.
24076
25395
  */
24077
- nonCurrentDate: string;
25396
+ fixedEndpoint: boolean;
24078
25397
  /**
24079
- * Number of days to delete historical version objects in the lifecycle rule based on last modified time
25398
+ * Publicly accessible origin address.
24080
25399
  */
24081
- nonCurrentDays: number;
25400
+ sourceEndpoint: outputs.tos.BucketMirrorBackRuleRedirectPublicSourceSourceEndpoint;
24082
25401
  }
24083
- interface BucketLifecycleConfigNonCurrentVersionTransition {
24084
- /**
24085
- * Specific date for historical version object transition in lifecycle rules based on last modified time
24086
- */
24087
- nonCurrentDate: string;
25402
+ interface BucketMirrorBackRuleRedirectPublicSourceSourceEndpoint {
24088
25403
  /**
24089
- * Number of days to transition historical version objects in the lifecycle rule based on last modified time
25404
+ * Origin address. Limit: Maximum length 255, supports up to 5 origin fetch addresses. When all origin fetches fail in Primary, an origin is selected from this configuration.
24090
25405
  */
24091
- nonCurrentDays: number;
25406
+ followers: string[];
24092
25407
  /**
24093
- * Storage class. Includes STANDARD, IA, ARCHIVE*FR, INTELLIGENT*TIERING, COLD*ARCHIVE, ARCHIVE, DEEP*COLD_ARCHIVE
25408
+ * Origin address. Limit: Maximum length 255, supports up to 5 origin fetch addresses.
24094
25409
  */
24095
- storageClass: string;
25410
+ primaries: string[];
24096
25411
  }
24097
- interface BucketLifecycleConfigTag {
25412
+ interface BucketMirrorBackRuleRedirectTransform {
24098
25413
  /**
24099
- * Tag key
25414
+ * Object name prefix to be replaced when requesting the origin.
24100
25415
  */
24101
- key: string;
25416
+ replaceKeyPrefix: outputs.tos.BucketMirrorBackRuleRedirectTransformReplaceKeyPrefix;
24102
25417
  /**
24103
- * Tag value
25418
+ * Prefix added before the object name when requesting the origin server. Limit: up to 512 characters.
24104
25419
  */
24105
- value: string;
24106
- }
24107
- interface BucketLifecycleConfigTransition {
25420
+ withKeyPrefix: string;
24108
25421
  /**
24109
- * Specific date for latest version object transition in lifecycle rules based on last modified time
25422
+ * Prefix added before the object name when requesting the origin server. Limit: up to 512 characters.
24110
25423
  */
24111
- date: string;
25424
+ withKeySuffix: string;
25425
+ }
25426
+ interface BucketMirrorBackRuleRedirectTransformReplaceKeyPrefix {
24112
25427
  /**
24113
- * Number of days to transition the latest version object in the lifecycle rule based on last modified time
25428
+ * Object name prefix to be replaced when requesting the origin. Limit: Supports up to 512 characters.
24114
25429
  */
24115
- days: number;
25430
+ keyPrefix: string;
24116
25431
  /**
24117
- * Storage class for historical version object transition in lifecycle rules based on last modified time. Includes STANDARD, IA, ARCHIVE*FR, INTELLIGENT*TIERING, COLD*ARCHIVE, ARCHIVE, DEEP*COLD_ARCHIVE
25432
+ * Value of the object name prefix after replacement when requesting the origin. Limit: Supports up to 512 characters.
24118
25433
  */
24119
- storageClass: string;
25434
+ replaceWith: string;
24120
25435
  }
24121
25436
  interface BucketNotificationNotificationRule {
24122
25437
  /**
@@ -24206,6 +25521,36 @@ export declare namespace tos {
24206
25521
  */
24207
25522
  value: string;
24208
25523
  }
25524
+ interface BucketObjectLockConfiguration {
25525
+ /**
25526
+ * Enable retention policy Only Enabled is supported, which means the retention policy is enabled
25527
+ */
25528
+ objectLockEnabled: string;
25529
+ /**
25530
+ * Bucket retention policy rules
25531
+ */
25532
+ rule: outputs.tos.BucketObjectLockConfigurationRule;
25533
+ }
25534
+ interface BucketObjectLockConfigurationRule {
25535
+ /**
25536
+ * Default bucket retention policy
25537
+ */
25538
+ defaultRetention: outputs.tos.BucketObjectLockConfigurationRuleDefaultRetention;
25539
+ }
25540
+ interface BucketObjectLockConfigurationRuleDefaultRetention {
25541
+ /**
25542
+ * Object lock days Objects cannot be deleted or overwritten during the specified number of days. Measured in days
25543
+ */
25544
+ days: number;
25545
+ /**
25546
+ * Retention policy mode Only COMPLIANCE is supported, which means compliance mode. In this mode, no user can delete or overwrite locked objects during the retention period
25547
+ */
25548
+ mode: string;
25549
+ /**
25550
+ * Object lock years Objects cannot be deleted or overwritten during the specified number of years. Measured in years, with one year equal to 365 days
25551
+ */
25552
+ years: number;
25553
+ }
24209
25554
  interface BucketRealtimeLogRealTimeLog {
24210
25555
  /**
24211
25556
  * Role name. Used to grant TOS Object Storage permission to create resources such as projects and topics in Log Service TLS and to write logs
@@ -24477,6 +25822,295 @@ export declare namespace tos {
24477
25822
  */
24478
25823
  storageClass: string;
24479
25824
  }
25825
+ interface GetBucketMirrorBackRule {
25826
+ /**
25827
+ * Conditions that trigger the back-to-origin function.
25828
+ */
25829
+ condition: outputs.tos.GetBucketMirrorBackRuleCondition;
25830
+ /**
25831
+ * Rule ID. The unique identifier for the back-to-origin rule configured on the current bucket. You can set this yourself to distinguish between multiple rules. Restrictions:
25832
+ * Characters supported: letters, numbers, - and _.
25833
+ * Maximum length: 32 characters.
25834
+ */
25835
+ id: string;
25836
+ /**
25837
+ * Back-to-origin redirect configuration.
25838
+ */
25839
+ redirect: outputs.tos.GetBucketMirrorBackRuleRedirect;
25840
+ }
25841
+ interface GetBucketMirrorBackRuleCondition {
25842
+ /**
25843
+ * Supports triggering origin fetch only for specified domains. The domain must be able to access the bucket; it is recommended to use a custom domain bound to the bucket. Limit: supports up to 30 domains.
25844
+ */
25845
+ allowHosts: string[];
25846
+ /**
25847
+ * Error code that triggers origin fetch. When a download request returns this error code, origin fetch is triggered. Limit: currently only supports 404.
25848
+ */
25849
+ httpCode: number;
25850
+ /**
25851
+ * Request types that trigger back-to-origin. Value description:
25852
+ * ["GET","HEAD"]: Both GetObject and HeadObject requests can trigger back-to-origin.
25853
+ * ["GET"]: Only GetObject requests can trigger back-to-origin.
25854
+ * Default is ["GET"].
25855
+ */
25856
+ httpMethods: string[];
25857
+ /**
25858
+ * Object name prefix for matching origin fetch objects. Limit: supports up to 512 characters.
25859
+ */
25860
+ keyPrefix: string;
25861
+ /**
25862
+ * Object name suffix for matching origin fetch objects. Limit: supports up to 512 characters.
25863
+ */
25864
+ keySuffix: string;
25865
+ }
25866
+ interface GetBucketMirrorBackRuleRedirect {
25867
+ /**
25868
+ * List of rules for writing origin response headers to object metadata.
25869
+ */
25870
+ fetchHeaderToMetaDataRules: outputs.tos.GetBucketMirrorBackRuleRedirectFetchHeaderToMetaDataRule[];
25871
+ /**
25872
+ * Whether to fetch data from the configured origin after redirection. Value description: true: Fetch data from the configured origin after redirection. false: Do not fetch data from the configured origin after redirection.
25873
+ */
25874
+ fetchSourceOnRedirect: boolean;
25875
+ /**
25876
+ * Whether to include request parameters when fetching data after redirection. If not configured, inherits PassQuery settings: true: includes request parameters. false: does not include request parameters.
25877
+ */
25878
+ fetchSourceOnRedirectWithQuery: boolean;
25879
+ /**
25880
+ * If the result of mirror origin fetch is 3xx, whether to continue redirecting to the specified Location to fetch data. Value description: true: TOS will continue to request the address corresponding to Location. false: TOS will return 302.
25881
+ */
25882
+ followRedirect: boolean;
25883
+ /**
25884
+ * Specify the headers to include when mirroring back to origin.
25885
+ */
25886
+ mirrorHeader: outputs.tos.GetBucketMirrorBackRuleRedirectMirrorHeader;
25887
+ /**
25888
+ * List of origin response headers allowed to be passed through directly.
25889
+ */
25890
+ passHeaderFromSources: string[];
25891
+ /**
25892
+ * Whether to include request parameters when performing redirect or mirror back-to-origin rules. Value description:
25893
+ * true: Include request parameters.
25894
+ * false: Do not include request parameters.
25895
+ */
25896
+ passQuery: boolean;
25897
+ /**
25898
+ * List of origin response status codes allowed to be passed through directly.
25899
+ */
25900
+ passStatusCodeFromSources: number[];
25901
+ /**
25902
+ * Back-to-origin address configuration when the origin server is a private bucket.
25903
+ */
25904
+ privateSource: outputs.tos.GetBucketMirrorBackRuleRedirectPrivateSource;
25905
+ /**
25906
+ * Back-to-origin address configuration when the origin server is a public bucket.
25907
+ */
25908
+ publicSource: outputs.tos.GetBucketMirrorBackRuleRedirectPublicSource;
25909
+ /**
25910
+ * Specify redirect type. Value range: Mirror: Mirror origin fetch. Async: Redirect origin fetch.
25911
+ */
25912
+ redirectType: string;
25913
+ /**
25914
+ * Define transformations for the object name when requesting the origin server.
25915
+ */
25916
+ transform: outputs.tos.GetBucketMirrorBackRuleRedirectTransform;
25917
+ }
25918
+ interface GetBucketMirrorBackRuleRedirectFetchHeaderToMetaDataRule {
25919
+ /**
25920
+ * Suffix appended when writing object metadata.
25921
+ */
25922
+ metaDataSuffix: string;
25923
+ /**
25924
+ * Origin response header name.
25925
+ */
25926
+ sourceHeader: string;
25927
+ }
25928
+ interface GetBucketMirrorBackRuleRedirectMirrorHeader {
25929
+ /**
25930
+ * Whether to forward all HTTP headers to the origin. Values: true: forwards all HTTP headers to the origin. false: does not forward all HTTP headers to the origin. The following HTTP header types are not supported for forwarding: Host, Content-Length, Date, Authorization.
25931
+ */
25932
+ passAll: boolean;
25933
+ /**
25934
+ * Pass the specified headers to the origin server. Limit: up to 64.
25935
+ */
25936
+ passes: string[];
25937
+ /**
25938
+ * Prohibit forwarding specified headers to the origin. Limit: maximum 64.
25939
+ */
25940
+ removes: string[];
25941
+ /**
25942
+ * List of request headers to add or overwrite during origin fetch.
25943
+ */
25944
+ sets: outputs.tos.GetBucketMirrorBackRuleRedirectMirrorHeaderSet[];
25945
+ }
25946
+ interface GetBucketMirrorBackRuleRedirectMirrorHeaderSet {
25947
+ /**
25948
+ * Request header name.
25949
+ */
25950
+ key: string;
25951
+ /**
25952
+ * Request header value.
25953
+ */
25954
+ value: string;
25955
+ }
25956
+ interface GetBucketMirrorBackRuleRedirectPrivateSource {
25957
+ /**
25958
+ * Back-to-origin address configuration when the origin server is a private bucket.
25959
+ */
25960
+ sourceEndpoint: outputs.tos.GetBucketMirrorBackRuleRedirectPrivateSourceSourceEndpoint;
25961
+ }
25962
+ interface GetBucketMirrorBackRuleRedirectPrivateSourceSourceEndpoint {
25963
+ /**
25964
+ * Backup private origin node list.
25965
+ */
25966
+ followers: outputs.tos.GetBucketMirrorBackRuleRedirectPrivateSourceSourceEndpointFollower[];
25967
+ /**
25968
+ * Origin address for requests. Supports up to 5 origin fetch addresses. Required when the origin is a private bucket.
25969
+ */
25970
+ primaries: outputs.tos.GetBucketMirrorBackRuleRedirectPrivateSourceSourceEndpointPrimary[];
25971
+ }
25972
+ interface GetBucketMirrorBackRuleRedirectPrivateSourceSourceEndpointFollower {
25973
+ /**
25974
+ * Name of the origin fetch bucket. Required when the origin is a private bucket.
25975
+ */
25976
+ bucketName: string;
25977
+ /**
25978
+ * Private back-to-origin authentication method. Required when the origin server is a private bucket.
25979
+ */
25980
+ credentialProvider: outputs.tos.GetBucketMirrorBackRuleRedirectPrivateSourceSourceEndpointFollowerCredentialProvider;
25981
+ /**
25982
+ * Access domain name of the origin service provider, excluding bucket name, maximum length 255. Required for private buckets.
25983
+ */
25984
+ endpoint: string;
25985
+ }
25986
+ interface GetBucketMirrorBackRuleRedirectPrivateSourceSourceEndpointFollowerCredentialProvider {
25987
+ /**
25988
+ * Region where the origin fetch bucket is located. Required when using AK/SK authentication.
25989
+ */
25990
+ region: string;
25991
+ /**
25992
+ * Name of AssumeRole. Only when fetching from a private TOS bucket can AssumeRole be used for authentication. Role authentication and AK/SK authentication are mutually exclusive and cannot be set simultaneously.
25993
+ */
25994
+ role: string;
25995
+ /**
25996
+ * Authenticate using AK/SK.
25997
+ */
25998
+ staticCredential: outputs.tos.GetBucketMirrorBackRuleRedirectPrivateSourceSourceEndpointFollowerCredentialProviderStaticCredential;
25999
+ }
26000
+ interface GetBucketMirrorBackRuleRedirectPrivateSourceSourceEndpointFollowerCredentialProviderStaticCredential {
26001
+ /**
26002
+ * AccessKey ID of the origin bucket. Required when using AK/SK authentication.
26003
+ */
26004
+ ak: string;
26005
+ /**
26006
+ * SecretKey for the back-to-origin bucket. Required when using AK/SK authentication.
26007
+ */
26008
+ sk: string;
26009
+ /**
26010
+ * Encryption method used for SecretKey. Values:
26011
+ * Empty: SecretKey is in plaintext. After receiving the SecretKey, the server will encrypt and store it.
26012
+ * AES256: SecretKey has been encrypted using the AES256 algorithm on the server side. After receiving the SecretKey, the server will parse and encrypt it for storage.
26013
+ * Note: When a back-to-origin rule is created for the first time, the SecretKey is encrypted with AES256. If you modify the back-to-origin rule without changing the SecretKey parameter, you must first decrypt the SecretKey and then re-encrypt it for storage. Therefore, when calling the PutBucketMirrorBack API to modify the back-to-origin rule and only changing other parameters (not the SecretKey), you can set SKEncryptType to AES256.
26014
+ */
26015
+ skEncryptType: string;
26016
+ /**
26017
+ * Origin service provider. Values: BOS: Baidu Cloud. S3: Other cloud providers using the S3 storage protocol.
26018
+ */
26019
+ storageVendor: string;
26020
+ }
26021
+ interface GetBucketMirrorBackRuleRedirectPrivateSourceSourceEndpointPrimary {
26022
+ /**
26023
+ * Name of the origin fetch bucket. Required when the origin is a private bucket.
26024
+ */
26025
+ bucketName: string;
26026
+ /**
26027
+ * Private back-to-origin authentication method. Required when the origin server is a private bucket.
26028
+ */
26029
+ credentialProvider: outputs.tos.GetBucketMirrorBackRuleRedirectPrivateSourceSourceEndpointPrimaryCredentialProvider;
26030
+ /**
26031
+ * Access domain name of the origin service provider, excluding bucket name, maximum length 255. Required for private buckets.
26032
+ */
26033
+ endpoint: string;
26034
+ }
26035
+ interface GetBucketMirrorBackRuleRedirectPrivateSourceSourceEndpointPrimaryCredentialProvider {
26036
+ /**
26037
+ * Region where the origin fetch bucket is located. Required when using AK/SK authentication.
26038
+ */
26039
+ region: string;
26040
+ /**
26041
+ * Name of AssumeRole. Only when fetching from a private TOS bucket can AssumeRole be used for authentication. Role authentication and AK/SK authentication are mutually exclusive and cannot be set simultaneously.
26042
+ */
26043
+ role: string;
26044
+ /**
26045
+ * Authenticate using AK/SK.
26046
+ */
26047
+ staticCredential: outputs.tos.GetBucketMirrorBackRuleRedirectPrivateSourceSourceEndpointPrimaryCredentialProviderStaticCredential;
26048
+ }
26049
+ interface GetBucketMirrorBackRuleRedirectPrivateSourceSourceEndpointPrimaryCredentialProviderStaticCredential {
26050
+ /**
26051
+ * AccessKey ID of the origin bucket. Required when using AK/SK authentication.
26052
+ */
26053
+ ak: string;
26054
+ /**
26055
+ * SecretKey for the back-to-origin bucket. Required when using AK/SK authentication.
26056
+ */
26057
+ sk: string;
26058
+ /**
26059
+ * Encryption method used for SecretKey. Values:
26060
+ * Empty: SecretKey is in plaintext. After receiving the SecretKey, the server will encrypt and store it.
26061
+ * AES256: SecretKey has been encrypted using the AES256 algorithm on the server side. After receiving the SecretKey, the server will parse and encrypt it for storage.
26062
+ * Note: When a back-to-origin rule is created for the first time, the SecretKey is encrypted with AES256. If you modify the back-to-origin rule without changing the SecretKey parameter, you must first decrypt the SecretKey and then re-encrypt it for storage. Therefore, when calling the PutBucketMirrorBack API to modify the back-to-origin rule and only changing other parameters (not the SecretKey), you can set SKEncryptType to AES256.
26063
+ */
26064
+ skEncryptType: string;
26065
+ /**
26066
+ * Origin service provider. Values: BOS: Baidu Cloud. S3: Other cloud providers using the S3 storage protocol.
26067
+ */
26068
+ storageVendor: string;
26069
+ }
26070
+ interface GetBucketMirrorBackRuleRedirectPublicSource {
26071
+ /**
26072
+ * Whether to always use the configured origin address.
26073
+ */
26074
+ fixedEndpoint: boolean;
26075
+ /**
26076
+ * Publicly accessible origin address.
26077
+ */
26078
+ sourceEndpoint: outputs.tos.GetBucketMirrorBackRuleRedirectPublicSourceSourceEndpoint;
26079
+ }
26080
+ interface GetBucketMirrorBackRuleRedirectPublicSourceSourceEndpoint {
26081
+ /**
26082
+ * Origin address. Limit: Maximum length 255, supports up to 5 origin fetch addresses. When all origin fetches fail in Primary, an origin is selected from this configuration.
26083
+ */
26084
+ followers: string[];
26085
+ /**
26086
+ * Origin address. Limit: Maximum length 255, supports up to 5 origin fetch addresses.
26087
+ */
26088
+ primaries: string[];
26089
+ }
26090
+ interface GetBucketMirrorBackRuleRedirectTransform {
26091
+ /**
26092
+ * Object name prefix to be replaced when requesting the origin.
26093
+ */
26094
+ replaceKeyPrefix: outputs.tos.GetBucketMirrorBackRuleRedirectTransformReplaceKeyPrefix;
26095
+ /**
26096
+ * Prefix added before the object name when requesting the origin server. Limit: up to 512 characters.
26097
+ */
26098
+ withKeyPrefix: string;
26099
+ /**
26100
+ * Prefix added before the object name when requesting the origin server. Limit: up to 512 characters.
26101
+ */
26102
+ withKeySuffix: string;
26103
+ }
26104
+ interface GetBucketMirrorBackRuleRedirectTransformReplaceKeyPrefix {
26105
+ /**
26106
+ * Object name prefix to be replaced when requesting the origin. Limit: Supports up to 512 characters.
26107
+ */
26108
+ keyPrefix: string;
26109
+ /**
26110
+ * Value of the object name prefix after replacement when requesting the origin. Limit: Supports up to 512 characters.
26111
+ */
26112
+ replaceWith: string;
26113
+ }
24480
26114
  interface GetBucketNotificationNotificationRule {
24481
26115
  /**
24482
26116
  * Event notification delivery targets. Must include at least one target and supports up to five different targets.
@@ -24577,6 +26211,36 @@ export declare namespace tos {
24577
26211
  */
24578
26212
  value: string;
24579
26213
  }
26214
+ interface GetBucketObjectLockConfiguration {
26215
+ /**
26216
+ * Enable retention policy Only Enabled is supported, which means the retention policy is enabled
26217
+ */
26218
+ objectLockEnabled: string;
26219
+ /**
26220
+ * Bucket retention policy rules
26221
+ */
26222
+ rule: outputs.tos.GetBucketObjectLockConfigurationRule;
26223
+ }
26224
+ interface GetBucketObjectLockConfigurationRule {
26225
+ /**
26226
+ * Default bucket retention policy
26227
+ */
26228
+ defaultRetention: outputs.tos.GetBucketObjectLockConfigurationRuleDefaultRetention;
26229
+ }
26230
+ interface GetBucketObjectLockConfigurationRuleDefaultRetention {
26231
+ /**
26232
+ * Object lock days Objects cannot be deleted or overwritten during the specified number of days. Measured in days
26233
+ */
26234
+ days: number;
26235
+ /**
26236
+ * Retention policy mode Only COMPLIANCE is supported, which means compliance mode. In this mode, no user can delete or overwrite locked objects during the retention period
26237
+ */
26238
+ mode: string;
26239
+ /**
26240
+ * Object lock years Objects cannot be deleted or overwritten during the specified number of years. Measured in years, with one year equal to 365 days
26241
+ */
26242
+ years: number;
26243
+ }
24580
26244
  interface GetBucketRealtimeLogRealTimeLog {
24581
26245
  /**
24582
26246
  * Role name. Used to grant TOS Object Storage permission to create resources such as projects and topics in Log Service TLS and to write logs