export interface CalculatePackageCreatePriceParams { packageId: string; region: string; period?: number; currency?: 'CNY' | 'USD'; } export interface CalculatePackageRenewPriceParams { envId: string; period?: number; currency?: 'CNY' | 'USD'; } export interface CalculatePackageModifyPriceParams { newPackageId: string; envId: string; currency?: 'CNY' | 'USD'; } /** 获取 SSL 证书列表请求参数。 */ export interface DescribeCertificatesParams { /** 分页偏移量,从 0 开始。 */ Offset?: number; /** 每页数量,范围为 1 至 1000。 */ Limit?: number; /** 模糊匹配证书 ID、备注名称或证书域名。 */ SearchKey?: string; /** 证书类型:CA 为客户端证书,SVR 为服务器证书。 */ CertificateType?: 'CA' | 'SVR'; /** 项目 ID。 */ ProjectId?: number; /** 按证书到期时间排序。 */ ExpirationSort?: 'ASC' | 'DESC'; /** 证书状态筛选。 */ CertificateStatus?: number[]; /** 是否仅返回可部署证书:1 是,0 否。 */ Deployable?: 0 | 1; /** 是否仅返回上传托管证书:1 是,0 否。 */ Upload?: 0 | 1; /** 是否仅返回可续期证书:1 是,0 否。 */ Renew?: 0 | 1; /** 来源筛选。 */ FilterSource?: 'upload' | 'buy'; /** 是否仅返回国密证书:1 是,0 否。 */ IsSM?: 0 | 1; /** 是否仅返回即将过期证书:1 是,0 否。 */ FilterExpiring?: 0 | 1; /** 是否仅返回可托管证书:1 是,0 否。 */ Hostable?: 0 | 1; /** 标签筛选条件。 */ Tags?: Array<{ TagKey: string; TagValue?: string; }>; /** 是否仅返回等待签发证书:1 是,0 否。 */ IsPendingIssue?: 0 | 1; /** 指定证书 ID 列表。 */ CertIds?: string[]; /** 订阅服务 ID。 */ ServiceId?: string; } /** Certificates.CertificateExtra:证书扩展信息。 */ export interface CertificateExtra { DomainNumber: string; OriginCertificateId: string | null; ReplacedBy: string | null; ReplacedFor: string | null; RenewOrder: string | null; SMCert: number; CompanyType: number; ServiceRenewCertificateId: string; ServiceOriginCertificateId: string; } /** Certificates.ProjectInfo:项目信息。 */ export interface ProjectInfo { ProjectName: string; ProjectCreatorUin: number; ProjectCreateTime: string; ProjectResume: string; OwnerUin: number; ProjectId: string; } /** Certificates.PreAuditInfo:证书预审核信息。 */ export interface PreAuditInfo { TotalPeriod: number; NowPeriod: number; ManagerId: string; } /** Certificates.HostingConfig:托管配置。 */ export interface HostingConfig { ReplaceTime?: number; MessageTypes?: number[]; ReplaceStartTime?: string; ReplaceEndTime?: string; } /** Certificates.SupportDownloadType:支持下载的服务器格式。 */ export interface SupportDownloadType { NGINX: boolean; APACHE: boolean; TOMCAT: boolean; IIS: boolean; JKS: boolean; OTHER: boolean; ROOT: boolean; } /** Certificates.Tags:标签信息。 */ export interface CertificateTag { TagKey: string; TagValue: string; } /** SSL 证书列表项,对应 DescribeCertificates 响应中的 Certificates 元素。 */ export interface Certificates { OwnerUin: string; ProjectId: string; From: string; PackageType: string; CertificateType: 'CA' | 'SVR'; ProductZhName: string; Domain: string; Alias: string; Status: number; CertificateExtra: CertificateExtra; VulnerabilityStatus: 'INACTIVE' | 'ACTIVE'; StatusMsg: string; VerifyType: 'DNS_AUTO' | 'DNS' | 'FILE' | 'DNS_PROXY' | 'FILE_PROXY'; CertBeginTime: string; CertEndTime: string; ValidityPeriod: string; InsertTime: string; CertificateId: string; SubjectAltName: string[]; PackageTypeName: string; StatusName: string; IsVip: boolean; IsDv: boolean; IsWildcard: boolean; IsVulnerability: boolean; RenewAble: boolean; ProjectInfo: ProjectInfo; BoundResource: string[]; Deployable: boolean; Tags: CertificateTag[]; IsIgnore: boolean; IsSM: boolean; EncryptAlgorithm: string; CAEncryptAlgorithms: string[]; CAEndTimes: string[]; CACommonNames: string[]; PreAuditInfo: PreAuditInfo; AutoRenewFlag: number; HostingStatus: number; HostingCompleteTime: string; HostingRenewCertId: string; HasRenewOrder: string; ReplaceOriCertIsDelete: boolean; IsExpiring: boolean; DVAuthDeadline: string; ValidationPassedTime: string; CertSANs: string[]; AwaitingValidationMsg: string; AllowDownload: boolean; IsDNSPODResolve: boolean; IsPackage: boolean; KeyPasswordCustomFlag: boolean; SupportDownloadType: SupportDownloadType; CertRevokedTime: string; HostingResourceTypes: string[]; HostingConfig: HostingConfig | null; IsHostingUploadRenewCert: boolean; ServiceId: string; ServiceStatus: 'initing' | 'running' | 'expired' | 'refunded' | 'nearExpire'; CertServiceBeginTime: string; CertServiceEndTime: string; CertServiceShareEnabled: boolean; CertServiceValidCertificateCount: number; } /** 获取 SSL 证书列表响应。 */ export interface DescribeCertificatesRes { TotalCount: number; Certificates: Certificates[]; RequestId: string; } /** * 客户端限频配置 */ export interface HTTPServiceQPSPerClient { LimitBy?: 'UserID' | 'ClientIP'; LimitValue?: number; } /** * QPS限频策略 */ export interface HTTPServiceRouteQPSPolicy { QPSTotal?: number; QPSPerClient?: HTTPServiceQPSPerClient; } /** * 路径重写 */ export interface HTTPServicePathRewrite { StaticStorePrefix?: string; Prefix?: string; } /** * HTTP 访问服务路由添加 header 配置 */ export interface HTTPServiceHeaderToAdd { Key?: string; Value?: string; Action?: 'APPEND_IF_EXISTS_OR_ADD' | 'ADD_IF_ABSENT' | 'OVERWRITE_IF_EXISTS_OR_ADD' | 'OVERWRITE_IF_EXISTS'; } /** * HTTP 访问服务路由 headers 处理配置 */ export interface HTTPServiceHeadersHandler { RequestHeadersToAdd?: HTTPServiceHeaderToAdd[]; RequestHeadersToRemove?: string[]; ResponseHeadersToAdd?: HTTPServiceHeaderToAdd[]; ResponseHeadersToRemove?: string[]; } /** * HTTPService 缓存配置(域名维度) */ export interface HTTPServiceCacheSet { Rules?: HTTPServiceCacheRule[]; } /** * HTTPService 缓存规则条目 */ export interface HTTPServiceCacheRule { Description?: string; Enable?: boolean; Condition: HTTPServiceRuleCondition; Actions: HTTPServiceCacheAction[]; } /** * HTTPService 缓存规则匹配条件 */ export interface HTTPServiceRuleCondition { Target?: 'url_path' | 'file_extension' | 'full_uri'; MatchType?: 'prefix' | 'suffix' | 'contains' | 'exact'; Values?: string[]; } /** * HTTPService 缓存动作(Type 与被设置的子字段必须一一对应) */ export interface HTTPServiceCacheAction { Type?: 'Cache' | 'CacheKey'; Cache?: HTTPServiceCacheParams; CacheKey?: HTTPServiceCacheKeyParams; } /** * HTTPService 缓存参数(节点缓存 + 浏览器缓存) * FollowOrigin / NoCache / (CacheTime||MaxAgeTime) 三者互斥,必须开启其一 */ export interface HTTPServiceCacheParams { FollowOrigin?: boolean; NoCache?: boolean; CacheTime?: number; MaxAgeTime?: number; } /** * 自定义缓存键参数。约束:FullURLCache=on 与 QueryStringSwitch=on 互斥 */ export interface HTTPServiceCacheKeyParams { FullURLCache?: 'on' | 'off'; QueryStringSwitch?: 'on' | 'off'; QueryStringAction?: 'includeCustom' | 'excludeCustom'; QueryStringValues?: string[]; } /** * HTTP访问服务路由扩展字段 */ export interface HTTPServiceExtension { HeadersHandler?: HTTPServiceHeadersHandler; Cache?: HTTPServiceCacheSet; [key: string]: unknown; } /** * HTTP访问服务路由信息 */ export interface HTTPServiceRoute { Path: string; PathRewrite?: HTTPServicePathRewrite; UpstreamResourceType: 'SCF' | 'CBR' | 'STATIC_STORE' | 'WEB_SCF' | 'LH' | 'STORAGE'; UpstreamResourceName: string; UpstreamResourceVersion?: string; EnableSafeDomain: boolean; EnableAuth: boolean; EnablePathTransmission: boolean; QPSPolicy?: HTTPServiceRouteQPSPolicy; Extension?: HTTPServiceExtension; Enable: boolean; CreateTime: string; UpdateTime: string; } /** * 域名路由信息 */ export interface HTTPServiceDomain { Domain: string; DomainType: 'HTTPSERVICE' | 'CBR' | 'ANYSERVICE' | 'AI_AGENT' | 'VM' | 'INTEGRATION_CALLBACK'; AccessType: 'DIRECT' | 'CDN' | 'CUSTOM' | 'EO' | 'NONE'; CertId: string; Protocol: 'HTTP_AND_HTTPS' | 'HTTP_TO_HTTPS' | 'HTTPS_TO_HTTP'; Cname: string; IsDefault: boolean; Enable: boolean; Status: 'PROCESSING' | 'FAIL' | 'EO_PENDING_VERIFICATION' | 'SUCCESS'; DNSStatus: 'OK' | 'EMPTY' | 'INVALID'; PlatformCnameDNSStatus?: 'OK' | 'EMPTY' | 'INVALID'; Routes?: HTTPServiceRoute[]; Extension?: HTTPServiceExtension; CreateTime: string; UpdateTime: string; } /** * 过滤条件 */ export interface HTTPServiceRouteFilter { Name?: 'Domain' | 'Path' | 'DomainType' | 'UpstreamResourceType'; Values?: string[]; } /** * DescribeHTTPServiceRoute 请求参数 */ export interface DescribeHttpServiceRouteParams { EnvId: string; Filters?: HTTPServiceRouteFilter[]; Offset?: number; Limit?: number; } /** * DescribeHTTPServiceRoute 返回结果 */ export interface DescribeHttpServiceRouteRes { Domains?: HTTPServiceDomain[]; OriginDomain: string; TotalCount: number; RequestId: string; } /** * HTTP访问服务路由参数(创建/修改) */ export interface HTTPServiceRouteParam { Path: string; UpstreamResourceType?: 'SCF' | 'CBR' | 'STATIC_STORE' | 'WEB_SCF' | 'LH' | 'STORAGE'; UpstreamResourceName?: string; UpstreamResourceVersion?: string; PathRewrite?: HTTPServicePathRewrite; EnableSafeDomain?: boolean; EnableAuth?: boolean; EnablePathTransmission?: boolean; QPSPolicy?: HTTPServiceRouteQPSPolicy; Extension?: HTTPServiceExtension; Enable?: boolean; } /** * HTTP访问服务域名参数(创建/修改) */ export interface HTTPServiceDomainParam { Domain: string; AccessType?: 'DIRECT' | 'CDN' | 'CUSTOM' | 'EO' | 'NONE'; CertId?: string; Protocol?: 'HTTP' | 'HTTPS' | 'HTTP_AND_HTTPS' | 'HTTP_TO_HTTPS' | 'HTTPS_TO_HTTP'; CustomCname?: string; Enable?: boolean; Routes?: HTTPServiceRouteParam[]; Extension?: HTTPServiceExtension; } /** * 前置校验检查状态 */ export type VerifyHttpServiceRouteCheckStatus = 'PASS' | 'SKIPPED' | 'FAIL'; /** * 前置校验失败原因 */ export type VerifyHttpServiceRouteCheckCode = 'INTERNAL_CHECK_ERROR' | 'OWNERSHIP_DNS_LOOKUP_FAILED' | 'OWNERSHIP_VERIFY_FAILED' | 'CERT_VERIFY_FAILED' | 'QUOTA_EXCEEDED' | 'ROUTE_CONFLICT' | 'DOMAIN_IN_USE' | 'NON_INTERNAL_ACCOUNT' | 'DOMAIN_IN_BLACKLIST' | 'CDN_RESOURCE_PROCESSING' | 'CDN_RESOURCE_OFFLINE' | 'EO_OWNERSHIP_VERIFY_FAILED' | 'EO_DOMAIN_NOT_ICP' | 'EO_DOMAIN_IN_USE'; /** * 域名归属权 DNS 验证指引 */ export interface OwnershipVerificationDnsInfo { Subdomain?: string; RecordType?: string; RecordValue?: string; } /** * 域名归属权文件验证指引 */ export interface OwnershipVerificationFileInfo { Path?: string; Content?: string; } /** * 域名归属权验证指引 */ export interface OwnershipVerificationInfo { Domain?: string; DnsVerification?: OwnershipVerificationDnsInfo[]; FileVerification?: OwnershipVerificationFileInfo[]; } /** * VerifyHTTPServiceRoute 单项前置校验结果 */ export interface VerifyHttpServiceRouteCheckItem { Status: VerifyHttpServiceRouteCheckStatus; Code?: VerifyHttpServiceRouteCheckCode; Message?: string; OwnershipVerification?: OwnershipVerificationInfo; } /** * VerifyHTTPServiceRoute 请求参数 */ export interface VerifyHttpServiceRouteParams { EnvId: string; Domain: HTTPServiceDomainParam; } /** * VerifyHTTPServiceRoute 返回结果 */ export interface VerifyHttpServiceRouteRes { Passed: boolean; Ownership: VerifyHttpServiceRouteCheckItem; Cert: VerifyHttpServiceRouteCheckItem; Quota: VerifyHttpServiceRouteCheckItem; RouteConflict: VerifyHttpServiceRouteCheckItem; DomainConflict: VerifyHttpServiceRouteCheckItem; InternalAccount: VerifyHttpServiceRouteCheckItem; Blacklist: VerifyHttpServiceRouteCheckItem; CDNResource: VerifyHttpServiceRouteCheckItem; EO: VerifyHttpServiceRouteCheckItem; RequestId: string; } /** * CreateHTTPServiceRoute 请求参数 */ export interface CreateHttpServiceRouteParams { EnvId: string; Domain: HTTPServiceDomainParam; } /** * CreateHTTPServiceRoute 返回结果 */ export interface CreateHttpServiceRouteRes { RequestId: string; } /** * ModifyHTTPServiceRoute 请求参数 */ export interface ModifyHttpServiceRouteParams { EnvId: string; Domain: HTTPServiceDomainParam; } /** * ModifyHTTPServiceRoute 返回结果 */ export interface ModifyHttpServiceRouteRes { RequestId: string; } /** * DeleteHTTPServiceRoute 请求参数 */ export interface DeleteHttpServiceRouteParams { EnvId: string; Domain: string; Paths?: string[]; } /** * DeleteHTTPServiceRoute 返回结果 */ export interface DeleteHttpServiceRouteRes { RequestId: string; } /** * PurgeHTTPServiceCache 请求参数 * 用于清除HTTP访问服务域名缓存,支持 CDN 和 EO 两种缓存类型 */ export interface PurgeHttpServiceCacheParams { EnvId: string; Domain: string; CacheType: 'CDN' | 'EO'; PurgeType: 'PURGE_URL' | 'PURGE_PREFIX' | 'PURGE_HOST'; Targets: string[]; } /** * PurgeHTTPServiceCache 返回结果 */ export interface PurgeHttpServiceCacheRes { CacheType: 'CDN' | 'EO'; TaskId: string; RequestId: string; } /** * 缓存清除任务详情 */ export interface HTTPServiceCachePurgeTask { TaskId: string; CacheType: 'CDN' | 'EO'; Status: 'PROCESSING' | 'SUCCESS' | 'FAILED' | 'TIMEOUT' | 'CANCELED'; PurgeType: 'PURGE_URL' | 'PURGE_PREFIX' | 'PURGE_HOST'; Method: 'INVALIDATE' | 'DELETE'; Targets: string[]; FailReason?: string; CreateTime: string; UpdateTime: string; } /** * DescribeHTTPServiceCachePurgeTask 请求参数 * 用于查询HTTPService域名缓存清除任务详情 */ export interface DescribeHttpServiceCachePurgeTaskParams { EnvId: string; Domain: string; CacheType: 'CDN' | 'EO'; TaskId?: string; PurgeType?: 'PURGE_URL' | 'PURGE_PREFIX' | 'PURGE_HOST'; StartTime?: string; EndTime?: string; Offset?: number; Limit?: number; } /** * DescribeHTTPServiceCachePurgeTask 返回结果 */ export interface DescribeHttpServiceCachePurgeTaskRes { Tasks: HTTPServiceCachePurgeTask[]; TotalCount: number; RequestId: string; } /** * 绑定自定义域名的域名参数 * 与 HTTPServiceDomainParam 类似,但不包含 Routes(绑定域名场景) */ export interface BindCustomDomainDomainParam { Domain: string; CertId: string; AccessType?: 'DIRECT' | 'CDN' | 'CUSTOM' | 'EO'; Protocol?: 'HTTP' | 'HTTPS' | 'HTTP_AND_HTTPS' | 'HTTP_TO_HTTPS' | 'HTTPS_TO_HTTP'; Enable?: boolean; CustomCname?: string; } /** * BindCustomDomain 请求参数 * 用于绑定自定义域名到 HTTP 访问服务 * 底层调用 CreateHTTPServiceRoute API,但参数配置不同 */ export interface BindCustomDomainParams { EnvId: string; Domain: BindCustomDomainDomainParam; } /** * BindCustomDomain 返回结果 */ export interface BindCustomDomainRes { RequestId: string; } /** * DeleteCustomDomain 请求参数 * 用于删除自定义域名(仅当域名下无路由绑定时可删除) */ export interface DeleteCustomDomainParams { EnvId: string; Domain: string; } /** * DeleteCustomDomain 返回结果 */ export interface DeleteCustomDomainRes { RequestId: string; }