/// /// import type { AxiosRequestConfig, Method } from "axios"; import { ServiceOptionsBase } from "../../base/types"; export interface TlsCreateAPIParams { method: Method; version?: string; queryKeys?: string[]; axiosConfig?: Omit; } export interface TlsServiceOptions extends Omit { version?: string; } export type Protocol = "https:" | "http:"; export interface IDescribeProjectsReq { /** 分页页码 */ PageNumber?: number; /** 页面大小 */ PageSize?: number; /** project name匹配字符串,用于模糊匹配 */ ProjectName?: string; /** project id匹配字符串,用于模糊匹配 */ ProjectId?: string; } export interface IProjectDescribeResp { CreateTime: string; Description: string; InnerNetDomain: string; ProjectId: string; ProjectName: string; TopicCount: number; IamProjectName?: string; Tags?: Array<{ Key: string; Value: string; }>; } export interface IProjectDescribeProjectsResp { Projects: Array; Total: number; } export interface IDescribeProjectReq { /** 日志项目的uuid。 */ ProjectId: string; } export interface IProjectCreateReq { /** 日志项目描述信息: 不支持<>、'、\、\\; 长度为0~64个字符。 */ Description?: string; /** Project的名称:名称必须唯一,不能与Region下其他名称冲突;名称只能由小写字母、数字和-组成; 必须以小写字母或者数字开头和结尾; 名称的长度在3-63个字符以内。 */ ProjectName: string; /** 公共参数,详见产品支持的 地域列表。 */ Region: string; } export interface IProjectCreateResp { ProjectId: string; } export interface IProjectModifyReq { /** 日志项目描述信息: 不支持<>、'、\、\\; 长度为0~64个字符。 */ Description?: string; /** Project的uuid。 */ ProjectId: string; /** Project的名称: 名称必须唯一,不能与全网其他名称冲突;名称只能由小写字母、数字和-组成;必须以小写字母或者数字开头和结尾;名称的长度在3-63个字符以内。 */ ProjectName?: string; } export type IProjectModifyResp = { [key: string]: any; }; export interface IProjectDeleteReq { /** 日志项目的uuid。 */ ProjectId: string; } export type IProjectDeleteResp = { [key: string]: any; }; export interface IDescribeTopicsReq { /** 分页,默认从1开始。 */ PageNumber?: number; /** 分页大小限制,默认为20,最大为100。 */ PageSize?: number; /** topic名称,作为模糊查询使用。TopicName和TopicId只能提供一个。 */ TopicName?: string; /** TopicId,作为模糊查询使用。 */ TopicId?: string; /** 日志项目ID */ ProjectId: string; } export interface ITopicDescribeResp { CreateTime: string; Description: string; ModifyTime: string; ProjectId: string; ShardCount: number; TopicId: string; TopicName: string; Ttl: number; } export interface ITopicDescribeTopicsResp { Topics: Array; Total: number; } export interface IDescribeTopicReq { /** 主题id */ TopicId: string; } export interface ITopicDescribeResp { CreateTime: string; Description: string; ModifyTime: string; ProjectId: string; ShardCount: number; TopicId: string; TopicName: string; Ttl: number; } export interface ITopicCreateReq { /** 日志主题描述信息:不支持<>、'、\、\\;长度为0-64个字符。 */ Description?: string; /** 日志主题所属的日志项目uuid。 */ ProjectId: string; /** 日志主题的日志分区个数: 当前支持配置1-10个。 */ ShardCount: number; /** 日志主题名称:同一个日志项目下,日志主题名称不可重复;只能包括小写字母、数字、-;必须以小写字母或者数字开头和结尾;长度为3-63字符。 */ TopicName: string; /** 数据的保存时间,单位为天,取值范围为1~3650。 */ Ttl: number; } export interface ITopicCreateResp { TopicId: string; } export interface ITopicModifyReq { /** 日志主题描述信息:不支持<>、'、\、\\;长度为0-64个字符。 */ Description?: string; /** 日志主题ID。 */ TopicId: string; /** 日志主题名称:同一个日志项目下,日志主题名称不可重复;只能包括小写字母、数字、-;必须以小写字母或者数字开头和结尾;长度为3-63字符。 */ TopicName?: string; /** 数据的保存时间,单位为天,取值范围为1~3650。 */ Ttl?: number; /** 是否开启分区的自动分裂功能。 */ AutoSplit?: boolean; /** 分区的最大分裂数,取值范围为1~256,默认为256。 */ MaxSplitShard?: number; /** 是否开启WebTracking功能。 */ EnableTracking?: boolean; /** 是否开启记录外网IP功能。默认为开启状态。 */ LogPublicIP?: boolean; /** 是否开启分层存储。 */ EnableHotTtl?: boolean; /** 标准存储时长,取值范围为7~3650天,默认为30天。 */ HotTtl?: number; /** 低频存储时长,取值范围为30~3650天。 */ ColdTtl?: number; /** 归档存储时长,取值范围为60~3650天。 */ ArchiveTtl?: number; } export type ITopicModifyResp = { [key: string]: any; }; export interface ITopicDeleteReq { /** 日志主题ID。 */ TopicId: string; } export type ITopicDeleteResp = { [key: string]: any; }; export interface IDescribeIndexReq { /** 主题id */ TopicId: string; } export interface IIndexFullTextInfo { /** 是否大小写敏感:true为大小写敏感;false为大小写不敏感。 */ CaseSensitive: boolean; /** 全文索引的分词符。 - 字符串中每个字符代表一个分词符。 - 长度为1-256字节。 - 仅支持以下字符中的一种或者多种 !@#%^&*()-_=\"', <>/?|;: \n\t\r[]{}。 - 包含中文和分词符不能同时配置。 */ Delimiter: string; /** 默认为false。 */ IncludeChinese?: boolean; } export interface IIndexValue { /** 是否区分大小写,默认为false。 */ CaseSensitive?: boolean; /** 字段的分词符,默认为空("")。 - 字符串中每个字符代表一个分词符。 - 长度为0-256字节,长度为0时不分词。 - 仅支持以下字符中的一种或者多种 !@#%^&*()-_=\"', <>/?|;: \n\t\r[]{}。 - 包含中文和分词符不能同时配置。 */ Delimiter?: string; /** 是否包含中文,默认为空(""),包含中文和分词符不能同时配置。 */ IncludeChinese?: boolean; /** 字段是否开启分析功能,默认为空(""),开启统计分析功能后,不能配置分词符和包含中文。 */ SqlFlag?: boolean; /** 字段类型。 - 目前支持 long - 整型,double - 浮点型,text - 字符串。 - long和double类型不支持配置分词符、包含中文、大小写敏感。 */ ValueType: string; /** 是否为 JSON 字段中所有值为文本的字段创建索引。 */ IndexAll?: boolean; /** JSON 子字段的索引,其值为 KeyValueInfo 数组。 */ JsonKeys?: Array<{ Key: string; Value: IIndexValue; }>; /** 该索引是否是自动索引添加。 */ AutoIndexFlag?: boolean; } export interface IIndexKeyValueInfo { /** 需要配置键值索引的字段名称。 - 仅支持字母、数字和_-./,并且不支持以_开头。 - 同一个索引中key名称唯一。 - 长度为1-128。 */ Key: string; /** 需要配置键值索引的字段描述信息。 */ Value: IIndexValue; } export interface IIndexDescribeIndexResp { CreateTime: string; FullText?: IIndexFullTextInfo; KeyValue: Array; ModifyTime: string; TopicId: string; UserInnerKeyValue: Array; EnableAutoIndex: boolean; MaxTextLen: number; } export interface IIndexCreateReq { /** 全文索引配置。 */ FullText?: IIndexFullTextInfo; /** 键值索引配置。 */ KeyValue?: Array; /** 日志主题ID。 */ TopicId: string; } export interface IIndexCreateResp { TopicId: string; } export interface IIndexModifyReq { /** 全文索引配置。注意:此字段为null或者不配置,表示不开启全文索引。 */ FullText?: IIndexFullTextInfo; /** 键值索引配置。注意:此字段为null或者不配置,表示不开启键值索引。 */ KeyValue?: Array; /** 日志主题ID。 */ TopicId: string; } export type IIndexModifyResp = { [key: string]: any; }; export interface IIndexDeleteReq { /** 日志主题ID。 */ TopicId: string; } export type IIndexDeleteResp = { [key: string]: any; }; export interface IDescribeShardsReq { /** 主题id */ TopicId: string; /** 分页,默认从1开始 */ PageNumber?: number; /** 分页大小限制,默认为20,最大为100。 */ PageSize?: number; } export interface IShardQueryResp { ExclusiveEndKey: string; InclusiveBeginKey: string; ModifyTime: string; ShardId: number; Status: string; StopWriteTime: string; TopicId: string; } export interface IShardDescribeShardsResp { Shards: Array; Total: number; } export interface IDaoPlugin { processors?: Array>; } export interface IDaoParsePathRule { Keys?: string[]; Regex?: string; PathSample?: string; } export interface IDaoShardHashKey { HashKey?: string; } export interface IDaoAdvanced { CloseEOF?: boolean; CloseRemoved?: boolean; CloseRenamed?: boolean; CloseTimeout?: number; CloseInactive?: number; NoLineTerminatorEOFMaxTime?: number; } export interface IDaoUserDefineRule { Fields?: Record; Plugin?: IDaoPlugin; Advanced?: IDaoAdvanced; RawLogKey?: string; TailFiles?: boolean; HostnameKey?: string; EnableRawLog?: boolean; ShardHashKey?: IDaoShardHashKey; ParsePathRule?: IDaoParsePathRule; EnableHostname?: boolean; HostGroupLabelKey?: string; EnableHostGroupLabel?: boolean; TailSizeKb?: number; IgnoreOlder?: number; MultiCollectsType?: string; } export interface IDaoKubernetesRule { /** 通过Pod名称指定待采集的容器,支持正则匹配。例如设置为"PodNameRegex":"^(nginx-log-demo.*)$",表示匹配以nginx-log-demo开头的Pod下的所有容器。 */ ExcludePodLabelRegex?: Record; /** 通过Pod Label黑名单排除不采集的容器。如果您要设置Pod Label黑名单,那么Key必填,Value可选填。 - 如果Value为空,则Pod Label中包含Key的Pod下的容器都被排除。 - 如果Value不为空,则Pod Label中包含Key=Value的Pod下的容器才会被排除。 - Value默认为字符串匹配,即只有Value和Pod Label的值完全相同才会匹配。如果该值以^开头并且以$结尾,则为正则匹配。例如设置Key为app,设置Value为^(test1|test2)$,表示匹配Pod Label中包含app:test1、app:test2的Pod下的容器。 多个黑名单之间为或关系,即只要容器Label满足任一黑名单对即可被排除。 */ IncludePodLabelRegex?: Record; /** 设置Kubernetes Label日志标签后,日志服务将在日志中新增Kubernetes Label相关字段。例如设置LabelKey为app,设置LabelValue为k8s_label_app,当Kubernetes中包含Label app=serviceA时,会将该信息添加到日志中,即添加字段__tag__k8s_label_app__: serviceA。 */ LabelTag?: Record; /** 通过Namespace名称指定采集的容器,支持正则匹配。例如设置为"NamespaceNameRegex":"^(default|nginx)$",表示匹配nginx命名空间、default命名空间下的所有容器。 */ NamespaceNameRegex?: string; /** 通过Pod Label白名单指定待采集的容器。如果您要设置Pod Label白名单,那么Key必填,Value可选填。 - 如果Value为空,则Pod Label中包含Key的Pod下的容器都匹配。 - 如果Value不为空,则Pod Label中包含Key=Value的Pod下的容器才匹配。 - Value默认为字符串匹配,即只有Value和Pod Label的值完全相同才会匹配。如果该值以^开头并且以$结尾,则为正则匹配。例如设置Key为app,设置Value为^(test1|test2)$,表示匹配Pod Label中包含app:test1、app:test2的Pod下的容器。 多个白名单之间为或关系,即只要Pod的Label满足任一白名单即可匹配。 */ PodNameRegex?: string; /** 通过工作负载名称指定采集的容器,支持正则匹配。例如设置为"WorkloadNameRegex":"^(nginx-deployment.*)$",表示匹配以nginx-deployment开头的工作负载下的所有容器。 */ WorkloadNameRegex?: string; /** 通过工作负载的类型指定采集的容器。例如设置为"WorkloadType":"Deployment",表示匹配Deployment类型工作负载下的所有容器。 - Deployment: 无状态 - StatefulSet: 有状态 - DaemonSet: 守护进程 - Job: 任务 - CronJob: 定时任务 */ WorkloadType?: string; } export interface IDaoContainerRule { /** 通过容器名称指定待采集的容器,支持正则匹配。例如设置为"ContainerNameRegex":"^(container-test)$",表示匹配所有名为container-test的容器。 */ ContainerNameRegex?: string; /** 设置环境变量日志标签后,日志服务将在日志中新增环境变量相关字段。例如设置EnvKey为VERSION,设置EnvValue为env_version,当容器中包含环境变量VERSION=v1.0.0时,会将该信息添加到日志中,即添加字段__tag__env_version__: v1.0.0。 */ EnvTag?: Record; /** 通过容器环境变量黑名单排除不采集的容器。 如果要容器设置环境变量黑名单,则Key必填。 - 如果Value不为空,则只排除在容器环境变量中包含Key=Value的容器。 - 如果Value为空,则排除所有在容器环境变量中包含Key的容器。 说明: - 多个键值对之间为或关系,即只要容器环境变量满足任一键值对即不被采集。 - Value默认为字符串匹配,即只有Value和容器环境变量完全相同才会匹配。如果该值以^开头并且以$结尾,则为正则匹配,例如:Value配置为^(kube-system|istio-system)$,可同时匹配kube-system和istio-system。 */ ExcludeContainerEnvRegex?: Record; /** 通过容器Label黑名单排除不采集的容器。 如果要设置容器Label黑名单,则Key必填。 - 如果Value不为空,则只排除在容器Label中包含Key=Value的容器。 - 如果Value为空,则排除所有在容器Label中包含Key的容器。 说明: - 多个键值对之间为或关系,即只要容器Label满足任一键值对即不被采集。 - Value默认为字符串匹配,即只有Value和容器Label完全相同才会匹配。如果该值以^开头并且以$结尾,则为正则匹配,例如:Value配置为^(kube-system|istio-system)$,可同时匹配kube-system和istio-system。 - 请勿设置相同的Key,如果重名只生效一个。 */ ExcludeContainerLabelRegex?: Record; /** 通过容器环境变量白名单指定待采集的容器。 如果要设置容器环境变量白名单,则Key必填。 - 如果Value不为空,则只采集在容器环境变量中包含Key=Value的容器。 - 如果Value为空,则采集所有在容器环境变量中包含Key的容器。 说明: - 多个键值对之间为或关系,即只要容器环境变量满足任一键值对即可被采集。 - Value默认为字符串匹配,即只有Value和容器环境变量完全相同才会匹配。如果该值以^开头并且以$结尾,则为正则匹配,例如:Value配置为^(kube-system|istio-system)$,可同时匹配kube-system和istio-system。 */ IncludeContainerEnvRegex?: Record; /** 通过容器Label白名单指定待采集的容器。 如果要设置容器Label白名单,则Key必填。 - 如果Value不为空,则只采集在容器Label中包含Key=Value的容器。 - 如果Value为空,则采集所有在容器Label中包含Key的容器。 说明: - 多个键值对之间为或关系,即只要容器Label满足任一键值对即可被采集。 - Value默认为字符串匹配,即只有Value和容器Label完全相同才会匹配。如果该值以^开头并且以$结尾,则为正则匹配,例如:Value配置为^(kube-system|istio-system)$,可同时匹配kube-system和istio-system。 - 请勿设置相同的Key,如果重名只生效一个。 */ IncludeContainerLabelRegex?: Record; /** Kubernetes容器的采集规则 */ KubernetesRule?: IDaoKubernetesRule; /** stdout-采集容器标准输出stdout。 stderr-采集容器标准错stderr。 all-采集容器标准输出stdout和容器标准错stderr。 默认值是all */ Stream?: string; } export interface IDaoExcludePath { /** 类型,File或Path。 */ Type?: string; /** 当Type是Path时,Value表示一个目录。 - Value必须是一个绝对路径;支持完整匹配和通配符模式匹配,通配符只支持“*”、“?”,不支持“**”通配符。 当Type是File时,Value表示一个文件名称。 - Value必须是一个绝对路径; - 支持完整匹配和通配符模式匹配,通配符只支持“**”、“*”、“?”,但是最多只能配置1个“**”通配符。 */ Value?: string; } export interface IDaoFilterKeyRegex { /** 过滤字段的名字key。 */ Key?: string; /** 过滤字段的日志内容需要匹配的regex。 */ Regex?: string; } export interface IDaoLogTemplate { Type?: string; Format?: string; } export interface IDaoExtractRule { /** 第一行日志需要匹配的regex;\n当且仅当采集的日志类型为multiline_log时有效;\n必须是合法的正则表达式; */ BeginRegex?: string; /** 分隔符;\n当且仅当采集的日志类型为delimiter_log时有效 */ Delimiter?: string; /** 过滤规则列表。 - 当采集的日志类型为minimalist_log或multiline_log时, 最多能够配置1条过滤规则,并且过滤字段的名字key必须为__content__。 - 当采集的日志类型为delimiter_log、json_log或fullregex_log时, 最多能够配置5条过滤规则,并且过滤字段的名字key不能重复、不能为空,命名规则同「索引配置」的key名称。过滤字段的日志内容需要匹配的regex必须是合法的正则表达式,并且长度限制是256个字符。 */ FilterKeyRegex?: Array; /** 用户自定义的每个字段的名字key列表;当且仅当采集的日志类型为delimiter_log或fullregex_log时有效。 - 最多能够配置100个名字key。 - 命名规则同「索引配置」的key名称。 - 当采集的日志类型为delimiter_log时, 不能配置非空、重复的名字key,不能全部配置为空的名字key。 - 当采集的日志类型为fullregex_log时,不能配置重复的名字key, 不能配置空的名字key。 */ Keys?: Array; /** 整条日志需要匹配的regex;当且仅当采集的日志类型为fullregex_log时有效;必须是合法的正则表达式。 */ LogRegex?: string; /** 时间字段的格式。 - TimeKey和TimeFormat必须成对出现。 - 参考c语言的strftime函数对于format参数的说明:https://man7.org/linux/man-pages/man3/strftime.3.html */ TimeFormat?: string; /** 时间字段的名字key。 - TimeKey和TimeFormat必须成对出现。 - 命名规则同「索引配置」的key名称。 */ TimeKey?: string; /** 当上传解析失败的日志时,解析失败的日志的key名称。 - UnMatchUpLoadSwitch=true和UnMatchLogKey必须成对出现。 - 命名规则同「索引配置」的key名称。 */ UnMatchLogKey?: string; /** 是否上传解析失败的日志。 - UnMatchUpLoadSwitch=true和UnMatchLogKey必须成对出现。 - true表示上传解析失败的日志,false表示不上传解析失败的日志。 */ UnMatchUpLoadSwitch?: boolean; Quote?: string; TimeZone?: string; LogTemplate?: IDaoLogTemplate; TimeExtractRegex?: string; EnableNanosecond?: boolean; /** 时间样例。用于判断填写的时间解析格式是否正确。 */ TimeSample?: string; } export interface IRuleCreateReq { /** 容器采集规则 */ ContainerRule?: IDaoContainerRule; /** 采集黑名单列表: 最多能够创建10个采集黑名单。 当InputType=0时: - 当Type是Path时,Value表示一个目录。支持完整匹配和通配符模式匹配,通配符只支持“*”、“?”,不支持“**”通配符。 - 当Type是File时,Value表示一个文件名称。支持完整匹配和通配符模式匹配,通配符只支持“**”、“*”、“?”,但是最多只能配置1个“**”通配符。 当InputType=1时: - 不允许配置采集黑名单列表。 当InputType=2时: - 当Type是Path时,Value表示一个目录。仅支持完整匹配,不支持通配符模式匹配。 - 当Type是File时,Value表示一个文件名称。目录部分仅支持完整匹配,不支持通配符模式匹配。文件名称部分支持完整匹配和通配符模式匹配,通配符只支持“*”、“?”。 */ ExcludePaths?: Array; /** 提取规则: 如果配置非minimalist_log或者非json_log的采集的日志类型,那么必须同时配置提取规则。 */ ExtractRule?: IDaoExtractRule; /** 采集类型: - 0:宿主机日志文件 - 1:k8s容器标准输出 - 2:k8s容器内日志文件 当创建采集配置时,如果用户没有配置采集的类型,那么采集的类型默认值是0。 */ InputType?: number; /** 日志样例:日志样例的长度必须不大于3000个字符 */ LogSample?: string; /** 采集的日志类型: - minimalist_log代表极简日志; - delimiter_log代表分隔符格式日志; - json_log代表json格式日志; - multiline_log代表多行日志; - fullregex_log代表完整正则日志; - 当创建采集配置时,如果用户没有配置采集的日志类型,那么采集的日志类型默认值是minimalist_log。 */ LogType?: "minimalist_log" | "delimiter_log" | "json_log" | "multiline_log" | "fullregex_log"; /** 采集路径列表: - 最多能够创建10个采集路径; - 采集路径必须是一个绝对路径; 当InputType=0时: - 采集路径支持完整匹配和通配符模式匹配,通配符只支持"**"、"*"、"?",但是最多只能配置1个"**"通配符. 当InputType=1时: - 不允许配置采集路径列表 当InputType=2时: - 目录部分仅支持完整匹配,不支持通配符模式匹配。文件名称部分支持完整匹配和通配符模式匹配,通配符只支持"*","?". */ Paths: Array; /** 采集配置的名称: - 在一个Topic中唯一; - 长度限制为3-63个字符,只能包含小写字母、数字和短划线(-),必须以小写字母或者数字开头和结尾。 */ RuleName: string; /** 采集配置所属于的日志主题ID,即TopicID。 */ TopicId: string; /** 用户自定义的采集规则: 用户自定义的采集规则必须是一个Json格式的字符串。 */ UserDefineRule?: string; } export interface IRuleCreateResp { /** 采集配置的ID */ RuleId: string; } export interface IRuleDeleteReq { /** 采集配置的ID。 */ RuleId: string; } export type IRuleDeleteResp = { [key: string]: any; }; export interface IRuleModifyReq { /** 容器采集规则 */ ContainerRule?: IDaoContainerRule; /** 采集黑名单列表: 最多能够创建10个采集黑名单。 当InputType=0时: - 当Type是Path时,Value表示一个目录。支持完整匹配和通配符模式匹配,通配符只支持“*”、“?”,不支持“**”通配符。 - 当Type是File时,Value表示一个文件名称。支持完整匹配和通配符模式匹配,通配符只支持“**”、“*”、“?”,但是最多只能配置1个“**”通配符。 当InputType=1时: - 不允许配置采集黑名单列表。 当InputType=2时: - 当Type是Path时,Value表示一个目录。仅支持完整匹配,不支持通配符模式匹配。 - 当Type是File时,Value表示一个文件名称。目录部分仅支持完整匹配,不支持通配符模式匹配。文件名称部分支持完整匹配和通配符模式匹配,通配符只支持“*”、“?”。 */ ExcludePaths?: Array; /** 提取规则: 如果配置非minimalist_log或者非json_log的采集的日志类型,那么必须同时配置提取规则。 */ ExtractRule?: IDaoExtractRule; /** 采集类型: - 0:宿主机日志文件 - 1:k8s容器标准输出 - 2:k8s容器内日志文件 只要修改容器采集规则,无论是否修改采集的类型,采集的类型必须配置。 */ InputType?: number; /** 日志样例: 日志样例的长度必须不大于3000个字符 */ LogSample?: string; /** 采集的日志类型: - minimalist_log代表极简日志; - delimiter_log代表分隔符格式日志; - json_log代表json格式日志; - multiline_log代表多行日志; - fullregex_log代表完整正则日志; 只要修改提取规则,无论是否修改采集的日志类型,采集的日志类型必须配置。 */ LogType?: "minimalist_log" | "delimiter_log" | "json_log" | "multiline_log" | "fullregex_log"; /** 是否暂停采集配置。1: 暂停采集配置。0:不暂停采集配置。 */ Pause?: number; /** 采集路径列表: - 最多能够创建10个采集路径; 采集路径必须是一个绝对路径; 当InputType=0时: - 当Type是Path时,Value表示一个目录。支持完整匹配和通配符模式匹配,通配符只支持“*”、“?”,不支持“**”通配符。 - 当Type是File时,Value表示一个文件名称。支持完整匹配和通配符模式匹配,通配符只支持“**”、“*”、“?”,但是最多只能配置1个“**”通配符。 当InputType=1时: - 不允许配置采集黑名单列表。 当InputType=2时: - 当Type是Path时,Value表示一个目录。仅支持完整匹配,不支持通配符模式匹配。 - 当Type是File时,Value表示一个文件名称。目录部分仅支持完整匹配,不支持通配符模式匹配。文件名称部分支持完整匹配和通配符模式匹配,通配符只支持“*”、“?”。 */ Paths?: Array; /** 采集配置的ID。 */ RuleId: string; /** 采集配置的名称: - 在一个Topic中唯一; - 长度限制为3-63个字符,只能包含小写字母、数字和短划线(-),必须以小写字母或者数字开头和结尾。 */ RuleName?: string; /** 用户自定义的采集规则: 用户自定义的采集规则必须是一个Json格式的字符串。 */ UserDefineRule?: string; } export type IRuleModifyResp = { [key: string]: any; }; export interface IDescribeRuleReq { /** 采集配置的ID。 */ RuleId: string; } export interface IRestHostGroupInfo { AbnormalHeartbeatStatusCount?: number; AgentLatestVersion?: string; AutoUpdate?: boolean; CreateTime?: string; HostCount?: number; HostGroupId?: string; HostGroupName?: string; HostGroupType?: string; HostIdentifier?: string; IamProjectName?: string; ModifyTime?: string; NormalHeartbeatStatusCount?: number; RuleCount?: number; UpdateEndTime?: string; UpdateStartTime?: string; ServiceLogging?: boolean; } export interface IRuleRuleInfo { ContainerRule?: IDaoContainerRule; CreateTime?: string; ExcludePaths?: Array; ExtractRule?: IDaoExtractRule; InputType?: number; LogSample?: string; LogType?: string; ModifyTime?: string; Paths?: Array; RuleId?: string; RuleName?: string; TopicId?: string; TopicName?: string; UserDefineRule?: string; Pause?: number; } export interface IRuleDescribeResp { HostGroupInfos: Array; ProjectId: string; ProjectName: string; RuleInfo: IRuleRuleInfo; TopicId: string; TopicName: string; } export interface IDescribeRulesReq { /** 采集配置所属于的项目的ID。 */ ProjectId: string; /** 采集配置所属于的项目的名称。 */ ProjectName?: string; /** IAM 日志项目名称。 */ IamProjectName?: string; /** 采集配置的ID关键词,支持模糊搜索。 */ RuleId?: string; /** 采集配置的名称关键词,支持模糊搜索。 */ RuleName?: string; /** 日志主题的ID关键词,支持模糊搜索。 */ TopicId?: string; /** 日志主题的名称关键词,支持模糊搜索。 */ TopicName?: string; /** 分页查询时的页码。默认为 1,即从第一页数据开始返回。 */ PageNumber?: number; /** 采集模式。 */ LogType?: string; /** 分页大小。默认为 20,最大为 100。 */ PageSize?: number; /** 是否暂停采集配置,0代表开启,1代表暂停 */ Pause?: number; } export interface IRuleDescribeAllResp { RuleInfos: Array; Total: number; } export interface IRuleBindRuleReq { /** 机器组的ID列表。 */ HostGroupIds: Array; /** 采集配置的ID。 */ RuleId: string; } export type IRuleBindRuleResp = { [key: string]: any; }; export interface IRuleUnbindRuleReq { /** 机器组的ID列表。 */ HostGroupIds: Array; /** 采集配置的ID。 */ RuleId: string; } export type IRuleUnbindRuleResp = { [key: string]: any; }; export interface IHostGroupCreateReq { /** 是否支持自动更新 */ AutoUpdate?: boolean; /** 机器组的名称。 */ HostGroupName: string; /** 机器组的类型: IP表示机器IP; Label表示机器标识。 */ HostGroupType: "IP" | "Label"; /** 机器标识符。 */ HostIdentifier?: string; /** 机器IP列表。 */ HostIpList?: Array; /** 升级结束时间 */ UpdateEndTime?: string; /** 升级开始时间 */ UpdateStartTime?: string; } export interface IHostGroupCreateResp { HostGroupId: string; } export interface IHostGroupDeleteReq { /** 机器组的Id。 */ HostGroupId: string; } export type IHostGroupDeleteResp = { [key: string]: any; }; export interface IHostGroupModifyReq { /** 是否支持自动更新 */ AutoUpdate?: boolean; /** 机器组Id。 */ HostGroupId: string; /** 机器组的名称。 */ HostGroupName?: string; /** 机器组的类型:IP表示机器IP;Label表示机器标识。 */ HostGroupType?: "IP" | "Label"; /** 机器标识符 */ HostIdentifier?: string; /** 机器IP列表。 */ HostIpList?: Array; /** 升级结束时间 */ UpdateEndTime?: string; /** 升级开始时间 */ UpdateStartTime?: string; /** 是否开启LogCollector服务日志功能 */ ServiceLogging?: boolean; } export type IHostGroupModifyResp = { [key: string]: any; }; export interface IDescribeHostGroupReq { /** 机器组Id */ HostGroupId: string; } export interface IHostHostInfo { HeartbeatStatus?: number; Ip?: string; LogCollectorVersion?: string; } export interface IHostGroupHostGroupHostsRulesInfo { HostGroupInfo?: IRestHostGroupInfo; HostInfos?: Array; RuleInfos?: Array; } export interface IHostGroupDescribeResp { HostGroupHostsRulesInfo: IHostGroupHostGroupHostsRulesInfo; } export interface IDescribeHostGroupsReq { /** 机器组的Id,可支持模糊查询。 */ HostGroupId?: string; /** 机器组的名称,可支持模糊查询。 */ HostGroupName?: string; /** 机器组是否支持自动升级 */ AutoUpdate?: boolean; /** 页偏移量,初始值为1。 */ PageNumber?: number; /** 单页最大机器组数量。 */ PageSize?: number; } export interface IHostGroupDescribeAllResp { HostGroupHostsRulesInfos: Array; Total: number; } export interface IDescribeHostsReq { /** 机器组的Id。 */ HostGroupId: string; /** 机器IP,作为模糊查询使用。 */ Ip?: string; /** 机器心跳状态。 */ HeartbeatStatus?: number; /** 页偏移量,初始值为1。 */ PageNumber?: number; /** 单页最大HostGroup数量。 */ PageSize?: number; } export interface IHostDescribeAllResp { HostInfos: Array; Total: number; } export interface IHostDeleteReq { /** 机器组的Id。 */ HostGroupId: string; /** 机器的IP。 */ Ip: string; } export type IHostDeleteResp = { [key: string]: any; }; export interface IDescribeHostGroupRulesReq { /** 机器组的ID。 */ HostGroupId?: string; /** 页偏移量,页偏移量的初始值为1。 */ PageNumber?: number; /** 页大小。 */ PageSize?: number; } export interface IHostGroupDescribeHostGroupRulesResp { RuleInfos: Array; Total: number; } export interface IDaoQueryRequest { /** 查询范围终止时间相对当前的历史时间,单位为分钟,取值为非正,须大于StartTimeOffset,最大值为0,最小值为-1440。 */ EndTimeOffset: number; /** 告警对象序号;从1开始递增。 */ Number: number; /** 查询语句,支持的最大长度为1024。 */ Query: string; /** 查询范围起始时间相对当前的历史时间,单位为分钟,取值为非正,最大值为0,最小值为-1440。 */ StartTimeOffset: number; /** 告警策略执行的topicId。 */ TopicId: string; /** 告警策略执行的TopicName。 */ TopicName?: string; /** 查询是否使用整点时间,空白时默认为Relative。 */ TimeSpanType?: string; /** 对时间进行取整,即对分钟、小时取整(Second,Minute,Hour)。 */ TruncatedTime?: string; /** 查询结束时间范围单位, 默认值为分钟,支持秒/分钟/小时(Second,Minute,Hour)。 */ EndTimeOffsetUnit?: string; /** 查询开始时间范围单位, 默认值为分钟,支持秒/分钟/小时(Second,Minute,Hour)。 */ StartTimeOffsetUnit?: string; } export interface IDaoRequestCycle { /** 执行的周期,或者定制执行的时间节点。单位为分钟,取值范围为1~1440。 */ Time?: number; /** 可选值:Period-周期执行;Fixed-定期执行。 */ Type: string; /** Cron表达式,日志服务通过 Cron 表达式指定告警任务定时执行。Cron 表达式的最小粒度为分钟,24 小时制。例如 `0 18 * * *`表示每天 18 点整执行一次告警任务。 */ CronTab?: string; } export interface IAlarmPeriodSetting { /** 短信告警周期,单位为分钟,取值范围为 10~1440。 */ SMS?: number; /** 邮件告警周期,单位为分钟,取值范围为 1~1440。 */ Email?: number; /** 电话告警周期,单位为分钟,取值范围为 10~1440。 */ Phone?: number; /** 自定义 Webhook 告警周期,单位为分钟,取值范围为 1~1440。 */ GeneralWebhook?: number; } export interface IJoinConfig { /** 使用左联或右联时的表达式。 */ Condition?: string; /** 集合操作类型。可选值: CrossJoin(笛卡尔积)、LeftJoin(左联)、RightJoin(右联)、InnerJoin(内联)、FullJoin(全联)。 */ SetOperationType: string; } export interface ITriggerCondition { /** 告警通知的级别,即告警的严重程度。支持设置为 `notice`、`warning` 或 `critical`,严重程度递增。默认为 `notice`。 */ Severity?: string; /** 告警触发条件表达式。 */ Condition?: string; /** 有数据、有特定条数据场景下的数值表达式,通过 `__count__`来实现。 */ CountCondition?: string; /** 开启后,集合操作后结果为空集时,触发一条独立的无数据告警。 */ NoData?: boolean; } export interface IAlarmPolicyCreateReq { /** 告警策略名称。 - 同一个日志项目下,告警策略名称不可重复。 - 只能包括小写字母、数字、- - 必须以小写字母或者数字开头和结尾。 - 长度为3-63字符。 */ AlarmName: string; /** 告警对应的通知列表 */ AlarmNotifyGroup: Array; /** 告警重复的周期。单位是分钟。取值范围是0~1440。 */ AlarmPeriod: number; /** 告警触发条件 */ Condition: string; /** 告警策略所属的ProjectId */ ProjectId: string; /** 查询或者分析命令,支持1-3条 */ QueryRequest: Array; /** 查询或分析请求的执行周期 */ RequestCycle: IDaoRequestCycle; /** 是否开启告警策略。默认值为true */ Status?: boolean; /** 持续周期。持续满足触发条件TriggerPeriod个周期后,再进行告警;最小值为1,最大值为10,默认为1。 */ TriggerPeriod: number; /** 用户自定义告警内容 */ UserDefineMsg?: string; /** 告警通知的级别,即告警的严重程度。支持设置为 `notice`、`warning` 或 `critical`。默认为 `notice`。 */ Severity?: string; /** 告警通知发送的周期。当告警持续触发次数达到指定限额 **TriggerPeriod** 时,日志服务会根据指定的周期发送告警通知。取值范围是 10~1440,单位:分钟。 */ AlarmPeriodDetail?: IAlarmPeriodSetting; /** 告警检索分析结果集合操作的相关配置。日志服务将一个检索分析结果作为一个集合,并基于集合结果判断是否触发告警。 */ JoinConfigurations?: Array; /** 告警触发条件列表。最多可配置 10 条告警触发条件。 */ TriggerConditions?: Array; /** 是否发送告警恢复通知,不填该参数,默认为true。 */ SendResolved?: boolean; } export interface IAlarmPolicyCreateResp { AlarmId: string; } export interface IAlarmPolicyDeleteReq { /** 创建时返回的告警策略id */ AlarmId: string; } export type IAlarmPolicyDeleteResp = { [key: string]: any; }; export interface IDescribeAlarmsReq { /** 日志项目 ID。为空时,表示在当前账号下的所有项目范围内筛选告警策略。 */ ProjectId?: string; /** 分页页码 */ PageNumber?: number; /** 页面大小 */ PageSize?: number; /** 告警策略名称,支持模糊匹配。 */ AlarmName?: string; /** 告警策略Id */ AlarmId?: string; /** 监控对象的TopicId */ TopicId?: string; /** 监控对象的TopicName */ TopicName?: string; /** 是否开启告警策略 */ Status?: string; } export interface IGeneralWebhookHeaderKV { /** 自定义请求头的 Key。 */ key?: string; /** 自定义请求头的 Value。 */ value?: string; } export interface IAlarmNoticeGroupReceiver { /** 允许接收信息的开始时间。 */ EndTime: string; /** 通知接收渠道,暂仅支持Email和Sms。Email-邮件;Sms-短信。 */ ReceiverChannels: Array; /** 接收者的名字。这里前端通过list所有用户选择用户,不涉及该限制长度1~64,仅支持英文、数字、下划线、"."、"-"、"@" */ ReceiverNames: Array; /** 接受者类型。可选值:User-用户ID;暂不支持其余接收者类型。 */ ReceiverType: string; /** 允许接收信息的开始时间。 */ StartTime: string; /** 自定义接口回调地址。 */ GeneralWebhookUrl?: string; /** 自定义 WebHook 请求体。 */ GeneralWebhookBody?: string; /** 通过 Webhook 集成配置发送通知到飞书、钉钉或企业微信时,需要提醒的用户名。 */ AlarmWebhookAtUsers?: Array; /** 通过 Webhook 集成配置发送通知到飞书、钉钉或企业微信时,是否提醒所有人。 */ AlarmWebhookIsAtAll?: boolean; /** 通过 Webhook 集成配置发送通知到飞书、钉钉或企业微信时,需要提醒的用户组名称。 */ AlarmWebhookAtGroups?: Array; /** 自定义接口回调方法,仅支持设置为 POST 或 PUT。 */ GeneralWebhookMethod?: string; /** 自定义接口回调请求头。 */ GeneralWebhookHeaders?: Array; /** 告警内容模版 ID。 */ AlarmContentTemplateId?: string; /** 告警 Webhook 集成配置的 ID。 */ AlarmWebhookIntegrationId?: string; /** 告警 Webhook 集成配置的名称。 */ AlarmWebhookIntegrationName?: string; } export interface IRuleNode { /** 当前节点类型。可选值:Operation-操作节点;Condition-条件节点 */ Type?: string; /** 节点值。 */ Value?: Array; /** 子节点。 */ Children?: Array; } export interface INoticeRule { /** 是否继续进入下一层的条件判断。 */ HasNext?: boolean; /** 规则节点。 */ RuleNode?: IRuleNode; /** 后面是否存在结束节点。 */ HasEndNode?: boolean; /** 通知渠道相关信息。 */ ReceiverInfos?: Array; } export interface IAlarmNoticeGroupNotifyGroupsInfo { AlarmNotifyGroupId?: string; AlarmNotifyGroupName?: string; CreateTime?: string; ModifyTime?: string; NotifyType?: Array; Receivers?: Array; IamProjectName?: string; NoticeRules?: Array; } export interface IAlarm_policyQueryResp { AlarmId: string; AlarmName: string; AlarmNotifyGroup: Array; AlarmPeriod: number; /** 告警通知发送的周期配置。 */ AlarmPeriodDetail?: IAlarmPeriodSetting; Condition: string; CreateTime: string; /** 告警检索分析结果集合操作的相关配置。 */ JoinConfigurations?: Array; ModifyTime: string; ProjectId: string; QueryRequest: Array; RequestCycle: IDaoRequestCycle; /** 是否发送告警恢复通知。 */ SendResolved?: boolean; /** 告警通知的级别,即告警的严重程度。 */ Severity?: string; Status: boolean; /** 告警触发条件列表。 */ TriggerConditions?: Array; TriggerPeriod: number; UserDefineMsg: string; } export interface IAlarmPolicyDescribeResp { Alarms: Array; Total: number; } export interface IAlarmPolicyModifyReq { /** 告警策略Id */ AlarmId: string; /** 告警策略名称。 - 同一个日志项目下,告警策略名称不可重复。 - 只能包括小写字母、数字、- - 必须以小写字母或者数字开头和结尾。 - 长度为3-63字符。 */ AlarmName?: string; /** 告警对应的通知列表 */ AlarmNotifyGroup?: Array; /** 告警重复的周期。单位是分钟。取值范围是10~1440。 一个手机号码每天最多收到50条告警短信,且与火山引擎其他消息通知服务共用短信额度 */ AlarmPeriod?: number; /** 告警通知的级别,即告警的严重程度。支持设置为 notice、warning 或 critical。默认为 notice。 */ Severity?: string; /** 告警通知发送的周期。当告警持续触发次数达到指定限额 TriggerPeriod 时,日志服务会根据指定的周期发送告警通知。 */ AlarmPeriodDetail?: IAlarmPeriodSetting; /** 告警触发条件 */ Condition?: string; /** 查询或者分析命令,支持1-3条 */ QueryRequest?: Array; /** 查询或分析请求的执行周期 */ RequestCycle?: IDaoRequestCycle; /** 是否开启告警策略。默认值为true */ Status?: boolean; /** 持续周期。持续满足触发条件TriggerPeriod个周期后,再进行告警;最小值为1,最大值为10,默认为1。 */ TriggerPeriod?: number; /** 用户自定义告警内容 */ UserDefineMsg?: string; /** 告警检索分析结果集合操作的相关配置。日志服务将一个检索分析结果作为一个集合,并基于集合结果判断是否触发告警。 */ JoinConfigurations?: Array; /** 告警触发条件列表。最多可配置 10 条告警触发条件。 */ TriggerConditions?: Array; /** 是否发送告警恢复通知,不填该参数,默认为true。 */ SendResolved?: boolean; } export type IAlarmPolicyModifyResp = { [key: string]: any; }; export interface IAlarmNoticeGroupCreateResp { AlarmNotifyGroupId: string; } export interface IAlarmNoticeGroupCreateReq { /** 告警通知组名称。 - 同一个账户下,通知组名称不可重复。 - 只能包括小写字母、数字、-。 - 必须以小写字母或者数字开头和结尾。 - 长度为3-63字符。 */ AlarmNotifyGroupName: string; /** 告警通知的类型。可选值,选择一个或者多个:Trigger-告警触发;Recovery-告警恢复。 */ NotifyType?: Array; /** 告警对应的通知列表,最少1一个,最大支持10个。 */ Receivers?: Array; /** 告警组所属的 IAM 项目名称。未指定此参数时,日志服务会将告警组添加到名为 `default`的 IAM 项目中。 */ IamProjectName?: string; /** 告警通知组的相关配置。当指定 NoticeRules 时,NotifyType 和 Receivers 字段将被忽略,由规则中的 ReceiverInfos 控制通知渠道。 */ NoticeRules?: Array; } export interface IProjectDescribeProjectsResp { Projects: Array; Total: number; } export interface IAlarmNoticeGroupDeleteReq { /** 创建时返回的NotifyGroupId */ AlarmNotifyGroupId: string; } export type IAlarmNoticeGroupDeleteResp = { [key: string]: any; }; export interface IAlarmNoticeGroupModifyReq { /** 通知组id */ AlarmNotifyGroupId: string; /** 告警通知组名称。 - 同一个账户下,通知组名称不可重复。 - 只能包括小写字母、数字、-。 - 必须以小写字母或者数字开头和结尾。 - 长度为3-63字符。 */ AlarmNotifyGroupName?: string; /** 告警通知的类型。可选值,选择一个或者多个:Trigger-告警触发;Recovery-告警恢复。 */ NotifyType?: Array; /** 告警对应的通知列表。 */ Receivers?: Array; /** 告警通知组的相关配置。当指定 NoticeRules 时,NotifyType 和 Receivers 字段将被忽略,由规则中的 ReceiverInfos 控制通知渠道。 */ NoticeRules?: Array; } export type IAlarmNoticeGroupModifyResp = { [key: string]: any; }; export interface IDescribeNotifyGroupReq { /** 告警通知组名称 */ AlarmNotifyGroupName?: string; /** 告警通知组Id */ AlarmNotifyGroupId?: string; /** 接收用户名 */ ReceiverName?: string; /** 根据告警组所属的 IAM 项目名称进行筛选。精确匹配。 */ IamProjectName?: string; /** 分页页码 */ PageNumber?: number; /** 页面大小 */ PageSize?: number; } export interface IAlarmNoticeGroupDescribeResp { AlarmNotifyGroups: Array; Total: number; } export interface IWebTracksReq { /** 日志项目 ID。 */ ProjectId: string; /** 日志主题 ID。 */ TopicId: string; /** * 日志组(LogGroup),表示由多个 Log 组成的集合,一个 Log 表示一条日志。 * 一个 LogGroup 中 Log 个数不能超过 10000。 */ Logs: Array>; /** 日志来源,一般使用机器 IP 作为标识。 */ Source?: string; } export type IWebTracksResp = { [key: string]: any; }; export interface IRegionTopic { /** 检索所在地域标识,对应后端 Region 字段。 */ Region: string; /** 检索的目标 Topic 标识,对应后端 Topic 字段。 */ Topic: string; } export interface IIndexSearchLogsReq { /** 翻页加载更多日志时使用,透传上次返回的 context 值,获取后续的日志内容。 */ Context?: string; /** 查询结束时间点。Unix 时间戳格式,表示从 1970-1-1 00:00:00 UTC 计算起的秒数。 */ EndTime: number; /** 是否返回高亮结果。 */ HighLight?: boolean; /** 返回的日志条数,上限为 1_000_000,且单次返回日志体积不超过约 20MB。 */ Limit: number; /** 查询语句,语句长度最大为 4096 字节。 */ Query: string; /** 按日志时间戳顺序返回日志,精确到秒: - desc:(默认值)按照时间逆序返回日志,新的日志在前。 - asc:按照时间顺序返回日志,旧的日志在前。 */ Sort?: string; /** 查询开始时间点。Unix 时间戳格式,表示从 1970-1-1 00:00:00 UTC 计算起的秒数。 */ StartTime: number; /** 要检索的日志主题 ID。 */ TopicId: string; /** 是否使用精确查询。 */ AccurateQuery?: boolean; /** 深翻页偏移量,对应后端 Offset 字段。 */ Offset?: number; /** 是否必须返回完整结果。为 true 时若查询因超时被截断将返回错误,对应后端 MustComplete 字段。 */ MustComplete?: boolean; /** 多 Region/Topic 检索时指定的检索范围列表,对应后端 RegionTopics 字段。 */ RegionTopics?: Array; } export interface IEsclientAnalysisResult { Data?: Array>; Schema?: Array; Type?: Record; } export interface ISearchLogsError { /** 多 Topic 检索场景下出错的 TopicId。 */ TopicId?: string; /** 对应错误信息。 */ ErrorMsg?: string; } export interface IEsclientResult { Analysis?: boolean; AnalysisResult?: IEsclientAnalysisResult; Context?: string; Count?: number; HighLight?: Array>; HitCount?: number; Limit?: number; ListOver?: boolean; Logs?: Array>; ResultStatus?: string; /** 本次检索所使用的时间,单位为毫秒。 */ ElapsedMillisecond?: number; /** 多 Topic 检索场景下的错误信息列表。 */ Errors?: Array; } export interface LogContent { Key: string; Value: string; } export interface Log { Time: number; Contents: LogContent[]; } export interface LogTag { Key: string; Value: string; } export interface LogGroup { Logs: Log[]; Source: string; LogTags: LogTag[]; FileName: string; ContextFlow?: string; } export interface LogGroupList { LogGroups: LogGroup[]; } export interface IPutLogsReq { /** 日志主题id */ TopicId: string; CompressType?: "lz4" | "zlib"; HashKey?: string; LogGroupList: Buffer; /** 请求体原始大小,单位为字节,对应 x-tls-bodyrawsize 头;不传时由 SDK 自动按 LogGroupList 长度填充。 */ BodyRawSize?: number; ContentMD5?: string; } export type IPutLogsResp = { [key: string]: any; }; export interface IDescribeTraceInstancesReq { /** 分页,默认从1开始。 */ PageNumber?: number; /** 分页大小限制,默认为20,最大为100。 */ PageSize?: number; /** Trace实例名称,作为模糊查询使用。TraceInstanceName和TraceInstanceId只能提供一个。 */ TraceInstanceName?: string; /** Trace实例ID,作为模糊查询使用。 */ TraceInstanceId?: string; /** 日志项目ID */ ProjectId?: string; /** 日志项目名称。 */ ProjectName?: string; /** Trace实例的状态。 */ Status?: string; /** IAM日志项目名称 */ IamProjectName?: string; /** CS账号渠道标识,用于区分不同的账号来源或渠道,例如区分不同 CS 账号或环境。 */ CsAccountChannel?: string; } export declare enum TraceInstanceStatus { "CREATING" = "CREATING", "CREATED" = "CREATED", "DELETING" = "DELETING" } /** Trace 实例后端存储配置。 */ export interface IBackendConfig { /** 数据的保存时间,单位为天,取值范围为 1~3650。 */ Ttl?: number; /** 是否开启冷热存储。开启后,配合 HotTtl、ColdTtl、ArchiveTtl 将数据分层存储;默认 false。 */ EnableHotTtl?: boolean; /** 标准存储时长,单位为天,取值范围为 7~3650。 */ HotTtl?: number; /** 低频存储时长,单位为天,取值范围为 30~3650。 */ ColdTtl?: number; /** 归档存储时长,单位为天,取值范围为 60~3650。 */ ArchiveTtl?: number; /** 是否开启分区的自动分裂功能。 */ AutoSplit?: boolean; /** Shard 的最大分裂个数。 */ MaxSplitPartitions?: number; } export interface ITraceInsDescribeResp { CreateTime: string; DependencyTopicId: string; DependencyTopicTopicName: string; Description: string; ModifyTime: string; ProjectId: string; ProjectName: string; TraceInstanceId: string; TraceInstanceName: string; TraceInstanceStatus: TraceInstanceStatus; TraceTopicId: string; TraceTopicName: string; /** Trace 实例的后端配置。 */ BackendConfig?: IBackendConfig; /** CS 账号渠道标识,用于区分不同的账号来源或环境。 */ CsAccountChannel?: string; } export interface ITraceInsDescribeTraceInstancesResp { Total: number; TraceInstances: Array; } export interface ITraceInsDeleteReq { /** Trace实例ID。 */ TraceInstanceId: string; } export interface IDeleteTraceInstanceReq { /** 请求参数 */ data: ITraceInsDeleteReq; } export type ITraceInsDeleteResp = Record; export interface ITraceInsCreateReq { /** Trace实例描述信息:不支持<>、'、、;长度为0-64个字符。 */ Description?: string; /** 日志主题所属的日志项目uuid。 */ ProjectId: string; /** Trace实例名称:同一个日志项目下,日志主题名称不可重复;只能包括小写字母、数字、中文和短划线(-);必须以小写字母、中文或者数字开头和结尾;长度为3~30字符。 */ TraceInstanceName: string; /** Trace 实例的后端配置,用于设置分层存储与自动分裂等策略。 */ BackendConfig?: IBackendConfig; } export interface ICreateTraceInstanceReq { /** 请求参数 */ data: ITraceInsCreateReq; } export interface ITraceInsCreateResp { TraceInstanceId: string; } export interface ITraceInsModifyReq { /** 日志主题描述信息:不支持<>、'、、;长度为0-64个字符。 */ Description?: string; /** Trace实例ID。 */ TraceInstanceId: string; /** Trace 实例的后端配置,用于在 ModifyTraceInstance 接口中调整日志存储的分层策略和自动分裂配置。 */ BackendConfig?: IBackendConfig; } export interface IModifyTraceInstanceReq { /** 请求参数 */ data: ITraceInsModifyReq; } export type ITraceInsModifyResp = Record; export interface IDescribeTraceInstanceReq { /** Trace实例id */ TraceInstanceId: string; } export interface ITraceKeyValue { /** Key。 */ Key: string; /** 具体取值。 */ Value: string; } export interface ITraceResource { /** 属性列表。 */ Attributes: Array; } export interface ITraceInstrumentationLibrary { /** 库名称。 */ Name: string; /** 库版本。 */ Version: string; } export interface ITraceStatus { /** 错误消息。 */ Message: string; /** 状态码: "UNSET", "OK", "ERROR"。 */ Code: string; } export interface ITraceSpanEvent { /** 时间戳,单位为微秒。 */ Timestamp: number; /** Event 名称。 */ Name: string; /** 属性列表。 */ Attributes: Array; } export interface ITraceSpanLink { /** TraceID 唯一标识一个 trace。 */ TraceId: string; /** 在一个 trace 中 SpanID 唯一标识一个 span。 */ SpanId: string; /** Trace 状态。 */ TraceState: string; /** Span 属性列表。 */ Attributes: Array; } export interface ITraceSpan { /** TraceID 唯一标识一个 trace。 */ TraceId: string; /** 在一个 trace 中 SpanID 唯一标识一个 span。 */ SpanId: string; /** Trace 状态。 */ TraceState: string; /** 父 SpanID。 */ ParentSpanId: string; /** Span 名称。 */ Name: string; /** Span 类型。 */ Kind: string; /** Span 开始时间,单位为微秒。 */ StartTime: number; /** Span 结束时间,单位为微秒。 */ EndTime: number; /** Span 属性列表。 */ Attributes: Array; /** Span event 列表。 */ Events: Array; /** Span Link 列表。 */ Links: Array; /** Span 状态。 */ Status: ITraceStatus; /** 资源信息。 */ Resource: ITraceResource; /** Instrumentation 库信息。 */ InstrumentationLibrary: ITraceInstrumentationLibrary; } export interface ITrace { /** Span 列表。 */ Spans: Array; } export interface IUnionTraceInstanceID { /** Trace 实例 ID。 */ TraceInstanceId: string; } export interface IDescribeTraceReq { /** Trace 实例 ID。 */ TraceInstanceId: string; /** Trace ID。 */ TraceId: string; /** 联合查询的 Trace 实例列表。 */ UnionTraceInstanceIds?: Array; } export interface IDescribeTraceResp { /** Trace 详情。 */ Trace: ITrace; } export interface ITraceQueryParameters { /** Trace ID。 */ TraceId?: string; /** 服务名称。 */ ServiceName?: string; /** 操作名称。 */ OperationName?: string; /** Span 类型。 */ Kind?: string; /** Attributes 中字段为 key,value 为该字段可能的取值。 */ Attributes?: Record; /** Span 最小开始时间的微秒时间戳。 */ StartTimeMin?: number; /** Span 最大开始时间的微秒时间戳。 */ StartTimeMax?: number; /** Duration 的最小值,单位为微秒。 */ DurationMin?: number; /** Duration 的最大值,单位为微秒。 */ DurationMax?: number; /** Trace 状态码。 */ StatusCode?: string; /** Offset。 */ Offset?: number; /** Limit,必填,(0, 100]。 */ Limit: number; /** 排序字段: Kind、Name、ServiceName、Start、End、Duration 等。 */ Order?: string; /** 是否升序。 */ Asc?: boolean; } export interface ITraceInfo { /** TraceID。 */ TraceId: string; /** 服务名称。 */ ServiceName: string; /** 操作名称。 */ OperationName: string; /** Attributes 中字段为 key,value 为该字段可能的取值。 */ Attributes: Record; /** 开始时间,单位为微秒。 */ StartTime: number; /** 结束时间,单位为微秒。 */ EndTime: number; /** Duration,单位为微秒。 */ Duration: number; /** Trace 状态码。 */ StatusCode: string; } export interface ISearchTracesReq { /** Trace 实例 ID。 */ TraceInstanceId: string; /** 查询条件。 */ Query: ITraceQueryParameters; } export interface ISearchTracesResp { /** 总条数。 */ Total: number; /** Trace 详情列表。 */ TraceInfos: Array; } export interface IHistogramInfoV1 { /** 子区间中对应搜索结果的数量,即该时段内符合条件的日志条数 */ Count: number; /** 查询的结束时间点 */ EndTime: number; /** 查询的开始时间点 */ StartTime: number; /** * 查询的状态 * - complete:查询完成,返回结果完整 * - incomplete:查询完成,返回部分结果 * - error:查询未完成,返回错误 * - time_out:查询超时,返回的结果可能不完整 */ ResultStatus: string; } export interface IDescribeHistogramV1Req { /** 查询结束时间点。Unix 时间戳格式,表示从 1970-1-1 00:00:00 UTC 计算起的秒数,EndTime 必须大于 StartTime。 */ EndTime: number; /** 直方图的子区间长度,单位为秒。该值必须大于 1。默认情况下 Interval = (EndTime-StartTime)/60 并向上取整,最多可指定 60 个子区间。 */ Interval?: number; /** 查询语句,语句长度最大为 4KiB。日志服务支持的检索语法请参考检索语法。 */ Query: string; /** 查询开始时间点。Unix 时间戳格式,表示从 1970-1-1 00:00:00 UTC 计算起的秒数。 */ StartTime: number; /** 要检索的日志主题 ID。 */ TopicId: string; /** 多 Region/Topic 检索时指定的检索范围列表,对应后端 RegionTopics 字段。 */ RegionTopics?: Array; } export interface IDescribeHistogramV1Resp { /** 所有子区间的结果集 */ Histogram: Array; /** * 查询的状态 * - complete:查询完成,返回结果完整 * - incomplete:查询完成,返回部分结果 * - error:查询未完成,返回错误 * - time_out:查询超时,返回的结果可能不完整 */ ResultStatus: string; /** 此次请求所有直方图数据总和,即对应时间内符合条件的日志条数 */ TotalCount: number; } export interface IManualShardSplitReq { /** 日志主题 ID */ TopicId: string; /** 待手动分裂的日志分区 ID */ ShardId: number; /** 分区的分裂数量。应为非零偶数,例如 2、4、8 或 16。分裂后读写状态分区总数不能超过 256 个。 */ Number: number; } export interface IManualShardSplitResp { /** 日志分区的范围等详细信息 */ Shards: Array; } export interface IDescribeCursorReq { TopicId: string; ShardId: number; From: string; } export interface IDescribeCursorResp { Cursor: string; } export interface IDeleteAbnormalHostsReq { /** 心跳异常机器对应的的机器组 ID。 */ HostGroupId: string; } export type IDeleteAbnormalHostsResp = { [key: string]: any; }; export interface IModifyHostGroupsAutoUpdateReq { /** 机器组 ID 列表。 */ HostGroupIds: Array; /** * 机器组服务器中安装的 LogCollector 是否开启自动升级功能。 * * * true:日志服务将会在每天的指定时间段进行升级前检查,若满足升级条件,则自动升级 LogCollector,无需手动操作。 * * false:(默认)LogCollector 不自动升级,如需使用更高版本的 LogCollector,请参考升级 LogCollector操作。 * * 仅 LogCollector V1.0.8 及后续版本支持自动升级。 */ AutoUpdate: boolean; /** * LogCollector 的自动升级的开始时间。 * * * 仅在 AutoUpdate 为 true 时需要设置。 * * 自动升级时间建议设置为业务低峰期,自动升级过程中可能会重启 LogCollector,但不会丢失日志。 */ UpdateStartTime?: string; /** LogCollector 的自动升级的结束时间。 */ UpdateEndTime?: string; } export type IModifyHostGroupsAutoUpdateResp = { [key: string]: any; }; export interface ICancelDownloadTaskReq { /** 下载任务 ID。 */ TaskId: string; } export type ICancelDownloadTaskResp = { [key: string]: any; }; export interface ICsvInfo { Keys: Array; Delimiter: string; EscapeChar: string; PrintHeader: boolean; NonFieldContent: string; } export interface IJsonInfo { Keys?: Array; Enable: boolean; Escape?: boolean; } export interface IContentInfo { Format?: string; CsvInfo?: ICsvInfo; JsonInfo?: IJsonInfo; } export interface IKafkaShipperInfo { /** 投递结束时间,毫秒时间戳,如果不配置,则会一直投递。 */ EndTime?: number; /** 压缩格式,当前支持 snappy、gzip、lz4、none。 */ Compress: string; /** Kafka 实例。 */ Instance: string; /** 投递开始时间,毫秒时间戳,如果不配置,默认为当前时间。 */ StartTime?: number; /** Kafka Topic 名称。 */ KafkaTopic: string; } export interface ITosShipperInfo { /** 对象存储桶名称。 */ Bucket: string; /** 存储桶的顶级目录名称。 */ Prefix?: string; /** 每个分区(Shard)最大可投递的原始文件大小,单位为 MiB。 */ MaxSize?: number; /** 压缩格式。 */ Compress?: string; /** 投递时间间隔,单位为秒。 */ Interval?: number; /** 投递日志的分区规则。 */ PartitionFormat?: string; } export interface IModifyShipperReq { ShipperId: string; ShipperName?: string; ShipperType?: string; Status?: boolean; RoleTrn?: string; ContentInfo?: IContentInfo; KafkaShipperInfo?: IKafkaShipperInfo; TosShipperInfo?: ITosShipperInfo; } export type IModifyShipperResp = { [key: string]: any; }; export interface IDeleteETLTaskReq { /** 待删除的加工任务的 ID。 */ TaskId: string; } export type IDeleteETLTaskResp = { [key: string]: any; }; export interface IDescribeETLTaskReq { /** 待查询的加工任务 ID。 */ TaskId: string; } export interface ITargetResourcesResp { /** 自定义输出目标的名称。 */ Alias?: string; /** 用于存储加工后日志的日志主题 ID。 */ TopicId?: string; /** 用于存储加工后日志的日志项目 ID。 */ ProjectId?: string; /** 用于存储加工后日志的日志项目名称。 */ ProjectName?: string; /** 用于存储加工后日志的日志项目所属地域。 */ Region?: string; /** 用于存储加工后日志的日志主题名称。 */ TopicName?: string; /** 跨账号授权角色名。 */ RoleTrn?: string; } export interface IDescribeETLTaskResp { /** 加工任务的创建时间。 */ CreateTime?: string; /** DSL 类型,固定为 NORMAL。 */ DSLType?: string; /** 数据加工任务的描述信息。 */ Description?: string; /** 任务调度状态。 */ ETLStatus?: string; /** 是否启用数据任务。 */ Enable?: boolean; /** 待加工数据的开始时间,空代表加工所有历史数据。 */ FromTime?: number; /** 最近启动时间。 */ LastEnableTime?: string; /** 加工任务的修改时间。 */ ModifyTime?: string; /** 加工任务名称。 */ Name?: string; /** 待加工数据所在的日志项目 ID。 */ ProjectId?: string; /** 待加工数据所在的日志项目名称。 */ ProjectName?: string; /** 加工规则。 */ Script?: string; /** 待加工数据所在的日志主题 ID。 */ SourceTopicId?: string; /** 待加工数据所在的日志主题名称。 */ SourceTopicName?: string; /** 输出目标的相关信息。 */ TargetResources?: Array; /** 加工任务 ID。 */ TaskId?: string; /** 任务类型,固定为 Resident。 */ TaskType?: string; /** 日志加工数据范围的结束时间,空代表无限制。 */ ToTime?: number; } export interface IDescribeETLTasksReq { /** 分页页码 */ PageNumber?: number; /** 页面大小 */ PageSize?: number; /** 项目ID */ ProjectId?: string; /** 任务名称,支持模糊匹配 */ TaskName?: string; /** 任务ID */ TaskId?: string; /** 任务状态 */ Status?: string; /** 创建时间起始时间戳 */ CreateTimeStart?: number; /** 创建时间结束时间戳 */ CreateTimeEnd?: number; } export interface IETLTaskInfo { /** 任务ID */ TaskId: string; /** 任务名称 */ TaskName: string; /** 项目ID */ ProjectId: string; /** 任务描述 */ Description?: string; /** 任务状态 */ Status: string; /** 创建时间 */ CreateTime: string; /** 修改时间 */ ModifyTime: string; /** 任务配置信息 */ TaskConfig?: { [key: string]: any; }; /** 错误信息 */ ErrorMessage?: string; } export interface IDescribeETLTasksResp { /** 任务列表 */ Tasks: Array; /** 总数量 */ Total: number; } export interface ITargetResource { /** 自定义输出目标的名称,用于数据加工规则中引用。 */ Alias: string; /** 输出目标日志主题 ID。 */ TopicId: string; /** 输出目标日志主题所在的地域。 */ Region: string; /** 跨账号服务角色 TRN,用于跨账号访问目标日志服务资源。 */ ServiceTrn?: string; /** 跨账号授权角色名 TRN,用于其他账号的数据加工任务授权。 */ RoleTrn?: string; /** 代理接入点名称,用于跨地域访问 TLS 时指定的 ProxyPoint。 */ ProxyPoint?: string; /** 代理访问的 Endpoint,当配置 ProxyPoint 时必填。 */ Endpoint?: string; } export interface IModifyETLTaskReq { /** 数据加工任务的描述信息。

* 不支持 `<>、'、\\、\\\\`。
* 长度为 0~64 个字符。 */ Description?: string; /** 加工任务名称。 */ Name?: string; /** 加工规则。 */ Script?: string; /** 输出目标的相关信息。 */ TargetResources?: Array; /** 加工任务 ID。 */ TaskId: string; } export type IModifyETLTaskResp = { [key: string]: any; }; /** CreateETLTask */ export interface ICreateETLTaskReq { /** DSL 类型,固定为 NORMAL。 */ DSLType: "NORMAL"; /** 数据加工任务的描述信息。 */ Description?: string; /** 是否启用该数据加工任务,true 表示启用,false 表示关闭。 */ Enable: boolean; /** 待加工数据的起始时间戳(Unix 时间戳)。 */ FromTime?: number; /** 数据加工任务的名称。 */ Name: string; /** 数据加工规则。 */ Script: string; /** 待加工数据的源日志主题 ID。 */ SourceTopicId: string; /** 输出目标的相关信息数组。 */ TargetResources: Array; /** 任务类型,固定为 Resident(常驻任务)。 */ TaskType: "Resident"; /** 待加工数据的结束时间戳(Unix 时间戳)。 */ ToTime?: number; } export interface ICreateETLTaskResp { /** 数据加工任务的 ID。 */ TaskId: string; } export interface IDeleteImportTaskReq { /** 待删除的数据导入任务的 ID。 */ TaskId: string; } export type IDeleteImportTaskResp = { [key: string]: any; }; export interface ITosSourceInfo { /** 日志文件所在的 TOS 存储桶。 */ Bucket?: string; /** 待导入的文件在 TOS 存储桶中的路径。 */ Prefix?: string; /** TOS 存储桶所在的地域。支持跨地域导入数据。 */ Region?: string; /** TOS 存储桶中数据的压缩模式。none:无压缩;snappy:使用 snappy 进行压缩;gzip:使用 gzip 进行压缩;lz4:使用 lz4 进行压缩。 */ CompressType?: string; } export interface IKafkaSourceInfo { /** Kafka 服务地址,多个地址用半角逗号分隔。 */ Host?: string; /** Kafka 消费组。不填时系统自动创建。 */ Group?: string; /** Kafka Topic 名称,多个 Topic 用半角逗号分隔。 */ Topic?: string; /** 数据编码格式,支持 UTF-8、GBK。 */ Encode?: string; /** Kafka SASL 用户密码,用于身份认证。 */ Password?: string; /** 安全传输协议,可选 plaintext、sasl_ssl、ssl、sasl_plaintext。 */ Protocol?: string; /** Kafka SASL 用户名,用于身份认证。 */ Username?: string; /** 密码认证机制,可选 PLAIN、SCRAM-SHA-256、SCRAM-SHA-512。 */ Mechanism?: string; /** 火山引擎 Kafka 版实例 ID。 */ InstanceId?: string; /** 是否开启鉴权,公网地址建议开启。 */ IsNeedAuth?: boolean; /** 数据导入起始位置。0:最早时间;1:最近时间。 */ InitialOffset?: number; /** 指定日志时间。0:使用 Kafka 消息时间戳;1:使用系统当前时间。 */ TimeSourceDefault?: number; } export interface IExtractRule { /** 日志字段名称列表,仅当 LogType 为 delimiter_log 时有效。 */ Keys?: Array; /** 引用符,仅当 LogType 为 delimiter_log 时有效。 */ Quote?: string; /** 日志时间字段名称,与 TimeFormat 成对出现。 */ TimeKey?: string; /** 时区,支持 GMT/UTC 格式。 */ TimeZone?: string; /** 日志分隔符,仅当 LogType 为 delimiter_log 时有效。 */ Delimiter?: string; /** 多行日志首行正则,仅当 LogType 为 multiline_log 时有效。 */ BeginRegex?: string; /** 时间字段解析格式,与 TimeKey 成对出现。 */ TimeFormat?: string; /** 跳过 CSV 文件前 N 行,仅 tos+delimiter_log 有效。 */ SkipLineCount?: number; /** 解析失败日志的 key 名称,与 UnMatchUpLoadSwitch 成对出现。 */ UnMatchLogKey?: string; /** 提取时间值的正则,用于自定义时间解析。 */ TimeExtractRegex?: string; /** 是否上传解析失败的日志,与 UnMatchLogKey 成对出现。 */ UnMatchUpLoadSwitch?: boolean; /** 时间样例,用于校验 TimeFormat 是否正确。 */ TimeSample?: string; } export interface ITargetInfo { /** 地域 ID。 */ Region: string; /** 导入时指定日志解析类型。delimiter_log:CSV 类型;multiline_log:多行全文类型;minimalist_log:单行全文类型;json_log:JSON 类型。 */ LogType: string; /** 日志样例。设置 LogType 为 multiline_log 时,需要配置日志样例。 */ LogSample?: string; /** 日志提取规则。 */ ExtractRule?: IExtractRule; /** 用户自定义采集规则,映射实现仓库中的 UserDefineRule 结构。 */ UserDefineRule?: Record; } export interface IImportSourceInfo { /** TOS 导入源端信息。当 sourceType 为 tos 时,必填。 */ TosSourceInfo?: ITosSourceInfo; /** Kafka 导入源端信息。当 sourceType 为 kafka 时,必填。 */ KafkaSourceInfo?: IKafkaSourceInfo; } export interface ICreateImportTaskReq { /** 数据导入任务描述。 */ Description?: string; /** 数据导入任务的导入源端信息。 */ ImportSourceInfo: IImportSourceInfo; /** 用于存储数据的日志项目 ID。 */ ProjectID?: string; /** 导入源端类型。tos:导入 TOS 数据;kafka:导入 Kafka 数据。 */ SourceType: string; /** 数据导入任务的输出端信息。 */ TargetInfo: ITargetInfo; /** 数据导入任务名称。 */ TaskName: string; /** 用于存储数据的日志主题 ID。 */ TopicID: string; } export interface ICreateImportTaskResp { /** 导入任务 ID。 */ TaskId: string; } export interface IDescribeImportTaskReq { /** 导入任务 ID。 */ TaskId: string; } export interface IImportTaskInfo { /** 导入任务 ID。 */ TaskId: string; /** 导入任务名称。 */ TaskName: string; /** 导入任务状态。 */ Status: string; /** 导入任务创建时间。 */ CreateTime: string; /** 导入任务更新时间。 */ UpdateTime: string; /** 导入任务开始时间。 */ StartTime?: string; /** 导入任务结束时间。 */ EndTime?: string; /** 导入任务进度,百分比。 */ Progress: number; /** 导入任务配置信息。 */ TaskConfig: { /** 日志项目 ID。 */ ProjectId: string; /** 日志主题 ID。 */ TopicId: string; /** 导入数据源配置。 */ SourceConfig: { /** 数据源类型。 */ Type: string; /** 数据源具体配置。 */ Config: Record; }; /** 导入任务调度配置。 */ ScheduleConfig?: { /** 调度类型。 */ Type: string; /** 调度具体配置。 */ Config: Record; }; }; /** 导入任务统计信息。 */ Statistics?: { /** 已导入日志条数。 */ ImportedCount: number; /** 失败日志条数。 */ FailedCount: number; /** 总日志条数。 */ TotalCount: number; }; /** 导入任务错误信息。 */ ErrorInfo?: { /** 错误码。 */ ErrorCode: string; /** 错误信息。 */ ErrorMessage: string; }; } export interface IDescribeImportTaskResp { /** 导入任务详情。 */ TaskInfo: IImportTaskInfo; } export interface IDeleteShipperReq { /** 待删除的投递配置的 ID。 */ ShipperId: string; } export type IDeleteShipperResp = { [key: string]: any; }; export interface ICreateShipperReq { /** 投递日志的内容格式配置。 */ ContentInfo: IContentInfo; /** 投递到 Kafka 的相关信息。 */ KafkaShipperInfo?: IKafkaShipperInfo; /** 投递结束时间。 */ ShipperEndTime?: number; /** 投递配置名称。 */ ShipperName: string; /** 投递开始时间。 */ ShipperStartTime?: number; /** 投递类型。 */ ShipperType: string; /** 待投递日志所在的日志主题 ID。 */ TopicId: string; /** 投递到 TOS 的相关信息。 */ TosShipperInfo?: ITosShipperInfo; /** 自定义角色的 Trn。 */ RoleTrn?: string; } export interface ICreateShipperResp { /** 新建投递配置的 ID。 */ ShipperId: string; } export interface IDescribeShipperReq { /** 待查询的投递配置 ID */ ShipperId: string; } export interface IShipperInfo { /** 是否开启投递配置。 */ Status: boolean; /** 待投递日志所在的日志主题 ID。 */ TopicId: string; /** 待投递日志所在的日志项目 ID。 */ ProjectId: string; /** 投递配置 ID。 */ ShipperId: string; /** 待投递日志所在的日志主题名称。 */ TopicName: string; /** 投递配置的创建时间。 */ CreateTime: string; /** 投递配置的最近修改时间。 */ ModifyTime: string; /** 投递日志的内容格式配置。 */ ContentInfo: IContentInfo; /** 投递的默认内置仪表盘 ID。 */ DashboardId: string; /** 待投递日志所在的日志项目名称。 */ ProjectName: string; /** 投递配置名称。 */ ShipperName: string; /** 投递类型。 */ ShipperType: string; /** 投递结束时间。 */ ShipperEndTime: number; /** 投递到 TOS 的相关信息。 */ TosShipperInfo?: ITosShipperInfo; /** 投递到 Kafka 的相关信息。 */ KafkaShipperInfo?: IKafkaShipperInfo; /** 投递开始时间。 */ ShipperStartTime: number; /** 自定义角色的 Trn。 */ RoleTrn: string; } export interface IDescribeShipperResp extends IShipperInfo { } export interface ICloseKafkaConsumerReq { /** 日志主题的 ID。 */ TopicId: string; } export type ICloseKafkaConsumerResp = { [key: string]: any; }; export interface IOpenKafkaConsumerReq { /** 日志主题的 ID。 */ TopicId: string; } export type IOpenKafkaConsumerResp = { [key: string]: any; }; export interface IDescribeKafkaConsumerReq { /** 日志主题的 ID。 */ TopicId: string; } export interface IDescribeKafkaConsumerResp { /** 指定日志主题是否已开启了 Kafka 协议消费功能。 */ AllowConsume: boolean; /** Kafka 协议消费主题 ID,格式为 out+日志主题 ID。通过 Kafka 协议消费此日志主题中的日志数据时,Topic 应指定为此 ID。 */ ConsumeTopic: string; } export interface IGetAccountStatusReq { } export interface IGetAccountStatusResp { /** 日志服务版本:2.0:新架构;1.0:老架构 */ ArchVersion: string; /** 是否已开通日志服务:Activated:已开通日志服务;NonActivated:未开通日志服务 */ Status: string; } export interface IActiveTlsAccountReq { } export type IActiveTlsAccountResp = { [key: string]: any; }; export interface IModifyETLTaskStatusReq { /** 是否开启数据加工任务。 * true:开启。 * false:不开启。 */ Enable: boolean; /** 加工任务 ID。 */ TaskId: string; } export type IModifyETLTaskStatusResp = { [key: string]: any; }; export interface IConsumeLogsReq { /** 日志主题 ID */ TopicId: string; /** Shard ID */ ShardId: number; /** 游标,表示从什么位置开始读取数据,相当于起点。 */ Cursor: string; /** 结束游标,表示读取数据到什么地方结束,相当于终点。EndCursor 为空则不设 end。 */ EndCursor?: string; /** 想要返回的最大 LogGroup 数量。最大值为 1000。 */ LogGroupCount?: number; /** 返回数据的压缩格式。支持设置为:lz4:压缩格式为 lz4;zlib:压缩格式为 zlib。 */ Compression?: string; } export type IConsumeLogsResp = Buffer; export interface IDownloadTaskCreateReq { /** 下载任务名称。长度范围为 1~63 字符。 */ TaskName: string; /** 日志所在日志主题的 ID。 */ TopicId: string; /** 下载的类型,对应后端 DownloadTaskType 枚举。 */ TaskType: number; /** * 检索分析语句,语句长度最大为 4KiB。 * * 支持仅指定检索语句,例如指定为`*`表示下载指定时段的所有原始日志。 * 日志服务支持的检索语法请参考检索语法,SQL 分析语法与函数列表请参考分析语法。 */ Query: string; /** 查询开始时间点,Unix 时间戳格式,表示从 1970-1-1 00:00:00 UTC 开始计算的秒数。 */ StartTime: number; /** 查询结束时间点,Unix 时间戳格式,表示从 1970-1-1 00:00:00 UTC 开始计算的秒数。 */ EndTime: number; /** * 导出的文件格式,支持设置为: * * * csv:CSV 格式 * * json:JSON 格式 */ DataFormat: string; /** * 仅检索不分析时,日志的排序方式。 * * * asc:升序 * * desc:倒序 */ Sort: string; /** 下载的原始日志条数,或分析结果的行数。必须符合下载任务的数据量限制。详细说明请参考使用说明。 */ Limit: number; /** 是否允许下载非完整结果(incomplete)。 */ AllowIncomplete?: boolean; /** * 导出文件的压缩格式。 * * * none:不压缩。建议数据量较小时,才使用不压缩方式。 * * gzip:使用 gzip 格式压缩。 * * zip:使用 zip 格式压缩。 */ Compression: string; /** 上下文查询所需的信息,仅当 TaskType 为上下文下载类型时生效。 */ LogContextInfos?: { /** 指定日志所在的 LogGroup 的 ID。 */ ContextFlow?: string; /** 指定日志在 LogGroup 中的序号。 */ PackageOffset?: number; /** 日志来源主机 IP。 */ Source?: string; }; } export interface IDescribeDownloadTasksReq { /** 分页查询时的页码。默认为 1,即从第一页数据开始返回。 */ PageNumber?: number; /** 分页大小。默认为 20,最大为 100。 */ PageSize?: number; /** 日志所在的日志主题 ID。 */ TopicId: string; /** 根据任务名称进行筛选,支持模糊搜索。 */ TaskName?: string; } export interface IDownloadTaskResp { /** 日志检索分析语句。 */ Query: string; /** 下载任务的 ID。 */ TaskId: string; /** 下载任务的名称。 */ TaskName: string; /** 下载任务的类型,对应后端 DownloadTaskType。 */ TaskType: number; /** 日志主题名称。 */ TopicId: string; /** 下载的日志条数。 */ LogCount: number; /** 下载的日志量,单位为字节(Byte)。 */ LogSize: number; /** 检索开始时间,格式为 `yyyy-MM-dd HH:mm:ss`。 */ StartTime: string; /** 检索结束时间,格式为 `yyyy-MM-dd HH:mm:ss`。 */ EndTime: string; /** 下载任务的创建时间,格式为 `yyyy-MM-dd HH:mm:ss`。 */ CreateTime: string; /** 导出的文件格式,支持 CSV 文件格式或 JSON 格式。 */ DataFormat: string; /** * 下载任务状态,即日志压缩文件的生成状态。包括: * - creating:文件生成中 * - created_cut:文件生成中断 * - success:文件已生成 * - wait:等待中 * - fail:已失败 * - cancel:已取消 * - incomplete:生成的文件为非完整结果 */ TaskStatus: string; /** 导出文件的压缩格式。 */ Compression: string; /** 是否允许下载非完整结果(incomplete)。 */ AllowIncomplete: boolean; /** 上下文下载的数据,仅当 TaskType 为上下文下载类型时返回。 */ LogContextInfos?: { ContextFlow: string; PackageOffset: number; Source: string; }; } export interface IDownloadTaskCreateResp { /** 日志主题 ID。 */ TaskId: string; } export interface IDownloadTaskDescribeDownloadTasksResp { /** 下载任务详情。 */ Tasks: Array; /** 日志下载任务的数量。日志服务仅支持保存一天以内的下载任务信息。 */ Total: number; } export interface IDescribeDownloadUrlReq { /** 下载任务的任务 ID。 */ TaskId: string; } export interface IDescribeDownloadUrlResp { /** 指定下载任务对应的下载链接。 * 链接有效期为 5 分钟,获取下载链接后请及时下载。若链接失效,需要重新调用此接口获取新的下载链接。 */ DownloadUrl: string; } export interface IDescribeLogContextReq { /** 日志主题 ID。 */ TopicId: string; /** 指定日志所在的 LogGroup 的 ID。 */ ContextFlow: string; /** 指定日志在 LogGroup 的序号。 */ PackageOffset: number; /** 日志来源主机 IP。 */ Source: string; /** 指定日志的上文日志条数,即往前查看多少条日志。取值范围为 1~100,默认值为 10。 */ PrevLogs?: number; /** 指定日志的下文日志条数,即往后查看多少条日志。取值范围为 1~100,默认值为 10。 */ NextLogs?: number; } export interface ILogContextInfo { /** 该日志所在的 LogGroup 的 ID。 */ ___context_flow___: string; /** 该日志在 LogGroup 的序号。 */ __package_offset___: string; /** 其他字段 - 根据实际日志内容变化 */ [key: string]: any; } export interface IDescribeLogContextResp { /** 指定日志的上下文日志信息。按上下文顺序排列。 */ LogContextInfos: Array; /** 除 LogContextInfos 中的日志以外,是否还存在其他上文。 */ PrevOver: boolean; /** 除 LogContextInfos 中的日志以外,是否还存在其他下文。 */ NextOver: boolean; } /** * DescribeShippers * DescribeShippers */ export interface IDescribeShippersReq { /** 指定日志项目 ID。用于查询指定日志项目下的数据投递配置。 */ ProjectId?: string; /** 指定日志项目名称。用于查询指定日志项目下的数据投递配置。支持模糊匹配。 */ ProjectName?: string; /** 指定 IAM 项目名称。用于查询指定 IAM 项目下的数据投递配置。 */ IamProjectName?: string; /** 分页大小。默认为 20,最大为 100。 */ PageNumber?: number; /** 分页查询时的页码。默认为 1,即从第一页数据开始返回。 */ PageSize?: number; /** 指定投递配置名称,支持模糊匹配。 */ ShipperName?: string; /** 指定投递配置 ID。 */ ShipperId?: string; /** 指定日志主题名称。用于查询该日志主题相关的数据投递配置。支持模糊匹配。 */ TopicName?: string; /** 指定日志主题 ID。用于查询该日志主题相关的数据投递配置。 */ TopicId?: string; /** * 指定投递类型,用于查询该投递类型相关的投递配置。 * 可选值包括:tos(投递到 TOS)、kafka(投递到 Kafka)。 */ ShipperType?: string; } export interface IDescribeShippersResp { /** 投递配置相关信息。 */ Shippers: Array; /** 投递配置数量。 */ Total: number; } export interface IRequestCycle { Time: number; Type: string; CronTab?: string; CronTimeZone?: string; } export interface ICustomMetricLabel { Key: string; Value: string; } export interface IScheduleSqlVmpTaskInfo { MetricNames: Array; WorkSpaceId: string; MetricLabels?: Array; CustomMetricLabels?: Array; } export interface ICreateScheduleSqlTaskReq { TaskName: string; Description?: string; TopicID: string; DestTopicID: string; DestRegion?: string; Status: number; ProcessStartTime: number; ProcessEndTime?: number; RequestCycle: IRequestCycle; ProcessTimeWindow: string; Query: string; ProcessSqlDelay?: number; MaxRetryTimes?: number; MaxTimeout?: number; TaskType?: number; VmpTaskInfo?: IScheduleSqlVmpTaskInfo; } export interface ICreateScheduleSqlTaskResp { TaskId: string; } export interface IDeleteScheduleSqlTaskReq { TaskId: string; } export type IDeleteScheduleSqlTaskResp = { [key: string]: any; }; export interface IDescribeScheduleSqlTaskReq { TaskId: string; } export interface IDescribeScheduleSqlTaskResp { TaskId: string; TaskName: string; Description?: string; SourceProjectID: string; SourceProjectName: string; SourceTopicID: string; SourceTopicName: string; DestRegion: string; DestProjectID: string; DestTopicName: string; DestTopicID: string; Status: number; ProcessStartTime?: number; ProcessEndTime?: number; RequestCycle: IRequestCycle; ProcessTimeWindow: string; Query: string; ProcessSqlDelay?: number; MaxRetryTimes: number; MaxTimeout: number; TaskType: number; VmpTaskInfo?: IScheduleSqlVmpTaskInfo; CreateTimeStamp: number; ModifyTimeStamp: number; CsAccount?: string; AllowEdit?: boolean; AllowDelete?: boolean; ForbiddenScheduleSqlActionList?: Array; } export interface IDescribeScheduleSqlTasksReq { ProjectId?: string; ProjectName?: string; SourceTopicId?: string; SourceTopicName?: string; TaskId?: string; TaskName?: string; Status?: string; PageNumber?: number; PageSize?: number; IamProjectName?: string; } export interface IDescribeScheduleSqlTasksResp { Total: number; Tasks: Array; } export interface IModifyScheduleSqlTaskReq { TaskId: string; TaskName?: string; Description?: string; DestTopicID?: string; DestRegion?: string; Status?: number; RequestCycle?: IRequestCycle; ProcessTimeWindow?: string; Query?: string; ProcessSqlDelay?: number; MaxRetryTimes?: number; MaxTimeout?: number; VmpTaskInfo?: IScheduleSqlVmpTaskInfo; CsAccount?: string; } export type IModifyScheduleSqlTaskResp = { [key: string]: any; }; export interface IWebhookContentTemplateInfo { Content: string; } export interface IEmailContentTemplateInfo { Content: string; Subject: string; Locale: string; } export interface IVmsContentTemplateInfo { Content: string; Locale: string; } export interface ISmsContentTemplateInfo { Content: string; Locale: string; } export interface ILarkContentTemplateInfo { Content: string; Title: string; Locale: string; } export interface IDingTalkContentTemplateInfo { Content: string; Title: string; Locale: string; } export interface IWeChatContentTemplateInfo { Content: string; Title: string; Locale: string; } export interface ICreateAlarmContentTemplateReq { AlarmContentTemplateName: string; Webhook?: IWebhookContentTemplateInfo; Email?: IEmailContentTemplateInfo; Vms?: IVmsContentTemplateInfo; Sms?: ISmsContentTemplateInfo; Lark?: ILarkContentTemplateInfo; DingTalk?: IDingTalkContentTemplateInfo; WeChat?: IWeChatContentTemplateInfo; NeedValidContent?: boolean; } export interface ICreateAlarmContentTemplateResp { AlarmContentTemplateId: string; } export interface IDeleteAlarmContentTemplateReq { AlarmContentTemplateId: string; } export type IDeleteAlarmContentTemplateResp = { [key: string]: any; }; export interface IModifyAlarmContentTemplateReq { AlarmContentTemplateId: string; AlarmContentTemplateName?: string; Webhook?: IWebhookContentTemplateInfo; Email?: IEmailContentTemplateInfo; Vms?: IVmsContentTemplateInfo; Sms?: ISmsContentTemplateInfo; Lark?: ILarkContentTemplateInfo; DingTalk?: IDingTalkContentTemplateInfo; WeChat?: IWeChatContentTemplateInfo; NeedValidContent?: boolean; } export type IModifyAlarmContentTemplateResp = { [key: string]: any; }; export interface IAlarmContentTemplateInfo { AlarmContentTemplateName: string; AlarmContentTemplateId: string; Webhook: IWebhookContentTemplateInfo; Email: IEmailContentTemplateInfo; Vms: IVmsContentTemplateInfo; Sms: ISmsContentTemplateInfo; Lark: ILarkContentTemplateInfo; DingTalk: IDingTalkContentTemplateInfo; WeChat: IWeChatContentTemplateInfo; CreateTime: string; ModifyTime: string; IsDefault: boolean; } export interface IDescribeAlarmContentTemplatesReq { AlarmContentTemplateName?: string; AlarmContentTemplateId?: string; OrderField?: string; ASC?: boolean; PageNumber?: number; PageSize?: number; } export interface IDescribeAlarmContentTemplatesResp { AlarmContentTemplates: Array; Total: number; } export interface IGeneralWebhookHeaderKV { Key: string; Value: string; } export interface ICreateAlarmWebhookIntegrationReq { WebhookName: string; WebhookType: string; WebhookUrl: string; WebhookSecret?: string; WebhookMethod?: string; WebhookHeaders?: Array; } export interface ICreateAlarmWebhookIntegrationResp { AlarmWebhookIntegrationId: string; } export interface IDeleteAlarmWebhookIntegrationReq { WebhookID: string; } export type IDeleteAlarmWebhookIntegrationResp = { [key: string]: any; }; export interface IModifyAlarmWebhookIntegrationReq { WebhookID: string; WebhookName: string; WebhookType: string; WebhookUrl: string; WebhookSecret?: string; WebhookMethod?: string; WebhookHeaders?: Array; } export type IModifyAlarmWebhookIntegrationResp = { [key: string]: any; }; export interface IAlarmWebhookIntegrationInfo { WebhookID: string; WebhookName: string; WebhookType: string; WebhookUrl: string; WebhookSecret?: string; WebhookMethod?: string; WebhookHeaders?: Array; CreateTime: string; ModifyTime: string; } export interface IDescribeAlarmWebhookIntegrationsReq { WebhookID?: string; WebhookName?: string; WebhookType?: string; PageNumber?: number; PageSize?: number; } export interface IDescribeAlarmWebhookIntegrationsResp { Total: number; WebhookIntegrations: Array; } export interface IConsumerHeartbeatReq { /** 消费组所属的日志项目的 ID */ ProjectID: string; /** 消费组名称 */ ConsumerGroupName: string; /** 指定消费组中的新消费者名称 */ ConsumerName: string; } export interface IConsumeShard { /** 日志分区 ID */ ShardID: number; /** 日志主题 ID */ TopicID: string; } export interface IConsumerHeartbeatResp { /** 服务端为指定消费者分配的日志分区列表 */ Shards: Array; } export interface ICreateConsumerGroupReq { /** 消费组所属的日志项目的 ID。 */ ProjectID: string; /** 消费组待消费的日志主题 ID 列表。 */ TopicIDList: Array; /** 消费组名称。命名规则请参考资源命名规则。 */ ConsumerGroupName: string; /** 心跳过期时间,单位为秒,取值范围为 1~300。 */ HeartbeatTTL: number; /** 是否按顺序消费。 * true:在 Shard 中按顺序消费。Shard 分裂后,先消费完原 Shard 数据,然后并行消费由该 Shard 分裂出的 Shard 数据;Shard 合并后,先消费完原 Shard 数据,然后消费由原 Shard 合并后的新 Shard 数据。 * false:不按顺序消费。即所有 Shard 同时消费,Shard 分裂或者合并后产生的新 Shard,也会立即消费。 */ OrderedConsume: boolean; } export type ICreateConsumerGroupResp = { [key: string]: any; }; export interface IDescribeConsumerGroupsReq { /** 分页页码,默认从 1 开始。 */ PageNumber?: number; /** 分页大小限制,默认为 20,最大为 100。 */ PageSize?: number; /** 仅返回指定 ProjectId 下的消费组。 */ ProjectId?: string; /** 仅返回指定 ProjectName 下的消费组。 */ ProjectName?: string; /** 仅返回名称匹配的消费组。 */ ConsumerGroupName?: string; /** 仅返回指定 TopicName 关联的消费组。 */ TopicName?: string; /** 仅返回指定 TopicId 关联的消费组。 */ TopicId?: string; /** 访问控制项目名称,用于跨项目筛选。 */ IamProjectName?: string; /** 是否按项目维度排序。 */ OrderByProject?: boolean; } export interface IConsumerGroupInfo { /** 消费组所属 ProjectID。 */ ProjectID: string; /** 消费组所属 ProjectName。 */ ProjectName: string; /** 消费组关联的 TopicId 列表。 */ TopicIDList: Array; /** 消费组名称。 */ ConsumerGroupName: string; /** 心跳过期时间,单位为秒。 */ HeartbeatTTL: number; /** 是否顺序消费。 */ OrderedConsume: boolean; } export interface IDescribeConsumerGroupsResp { /** 消费组列表。 */ ConsumerGroups: Array; /** 总数。 */ Total: number; /** 关联的 Dashboard ID。 */ DashboardId?: string; } export interface IDeleteConsumerGroupReq { /** 消费组所属的日志项目的 ID。 */ ProjectID: string; /** 消费组名称。 */ ConsumerGroupName: string; } export type IDeleteConsumerGroupResp = { [key: string]: any; }; export interface IModifyConsumerGroupReq { /** ConsumerGroup 所绑定 ProjectID。 */ ProjectID: string; /** 可选,新的 TopicID 列表。 */ TopicIDList?: Array; /** 消费组名称。 */ ConsumerGroupName: string; /** 可选,新的心跳 TTL,需满足 (0, 300]。 */ HeartbeatTTL?: number; /** 可选,是否严格保序。 */ OrderedConsume?: boolean; } export type IModifyConsumerGroupResp = { [key: string]: any; }; export interface IDescribeCheckPointReq { /** ConsumerGroup 所绑定 ProjectId */ ProjectId: string; /** ConsumerGroup 所绑定 TopicId */ TopicId: string; /** 消费组名称,在同一 Topic 下唯一,可选。 */ ConsumerGroupName?: string; /** 需要获取 Checkpoint 的 ShardId */ ShardId: number; } export interface IDescribeCheckPointResp { /** Shard ID。 */ ShardID: number; /** 当前 Checkpoint,Base64 编码。 */ Checkpoint: string; } export interface IModifyCheckPointReq { /** ConsumerGroup 所绑定 ProjectID。 */ ProjectID: string; /** ConsumerGroup 所绑定 TopicID。 */ TopicID: string; /** 消费组名称,在同一 Topic 下唯一。 */ ConsumerGroupName: string; /** 需要设置 Checkpoint 的 ShardID。 */ ShardID: number; /** 目标 Checkpoint,Base64 编码。 */ Checkpoint: string; } export type IModifyCheckPointResp = { [key: string]: any; }; export interface IResetCheckPointReq { /** ConsumerGroup 所绑定 ProjectID。 */ ProjectID: string; /** 消费组名称。 */ ConsumerGroupName: string; /** 重置位置:支持 begin、end 或秒级时间戳字符串。 */ Position: string; } export type IResetCheckPointResp = { [key: string]: any; }; export interface IFilterTag { /** 标签 key。 */ Key: string; /** 标签值列表。 */ Values: Array; } export interface IResourceTag { /** 资源类型,project 或 topic。 */ ResourceType: string; /** 资源 ID。 */ ResourceId: string; /** 标签 key。 */ TagKey: string; /** 标签值。 */ TagValue: string; } export interface IListTagsForResourcesReq { /** 资源类型,project 或 topic。 */ ResourceType: string; /** 资源 ID 列表。 */ ResourcesIds?: Array; /** 标签过滤条件。 */ TagFilters?: Array; /** 翻页游标。 */ NextToken?: string; /** 分页大小,需在服务端允许的范围内。 */ MaxResults: number; } export interface IListTagsForResourcesResp { /** 资源标签列表。 */ ResourceTags: Array; /** 下一页游标。 */ NextToken: string; } export interface ITag { /** 标签 key。 */ Key: string; /** 标签值。 */ Value: string; } export interface IAddTagsToResourceReq { /** 资源类型,project 或 topic。 */ ResourceType: string; /** 资源 ID 列表。 */ ResourcesList: Array; /** 标签列表,单次最多 20 个,每个资源最多 50 个。 */ Tags: Array; } export type IAddTagsToResourceResp = { [key: string]: any; }; export interface ITagResourcesReq { /** 资源类型,project 或 topic。 */ ResourceType: string; /** 资源 ID 列表,对应后端 ResourcesIds 字段。 */ ResourcesIds: Array; /** 标签列表,单次最多 20 个,每个资源最多 50 个。 */ Tags: Array; } export type ITagResourcesResp = { [key: string]: any; }; export interface IUntagResourcesReq { /** 资源类型,project 或 topic。 */ ResourceType: string; /** 资源 ID 列表。 */ ResourcesIds: Array; /** 标签 key 列表。 */ TagKeys: Array; } export type IUntagResourcesResp = { [key: string]: any; }; export interface IRemoveTagsFromResourceReq { /** 资源类型,project 或 topic。 */ ResourceType: string; /** 资源 ID 列表。 */ ResourcesList: Array; /** 标签 key 列表。 */ TagKeyList: Array; } export type IRemoveTagsFromResourceResp = IUntagResourcesResp;