package service import "encoding/json" type Intelligence struct { Source string `json:"source"` Confidence int `json:"confidence"` Expired bool `json:"expired"` IntelTags []TagsClass `json:"intel_tags"` FindTime string `json:"find_time"` IntelTypes []string `json:"intel_types"` UpdateTime string `json:"update_time"` } type OpenSource struct { Source string `json:"source"` Confidence int `json:"confidence"` Expired bool `json:"expired"` IntelTags []TagsClass `json:"intel_tags"` FindTime string `json:"find_time"` IntelTypes []string `json:"intel_types"` UpdateTime string `json:"update_time"` } type Location struct { Country string `json:"country"` Province string `json:"province"` City string `json:"city"` Longitude string `json:"lng"` Latitude string `json:"lat"` CountryCode string `json:"country_code"` } type Basic struct { Carrier string `json:"carrier"` Location Location `json:"location"` } type ASN struct { Rank int `json:"rank"` Info string `json:"info"` Number int `json:"number"` } type Port struct { Port int `json:"port"` Module string `json:"module"` Product string `json:"product"` Version string `json:"version"` Detail string `json:"detail"` } type RDNS struct { RDNS string `json:"rdns"` GetTime string `json:"get_time"` } type Intelligences struct { ThreatbookLab []Intelligence `json:"threatbook_lab"` XReward []interface{} `json:"x_reward"` OpenSource []OpenSource `json:"open_source"` } type Sample struct { Hash string `json:"sha256"` ScanTime string `json:"scan_time"` Ratio string `json:"ratio"` MalwareType string `json:"malware_type"` MalwareFamily string `json:"malware_family"` } type TagsClass struct { TagsType string `json:"tags_type"` //标签类别,如"industry(行业)"、"gangs(团伙)"、"virus_family(家族)"等 Tags []string `json:"tags"` //具体的攻击团伙或安全事件标签,例如:APT、海莲花等。 } type CAS struct { Protocol string `json:"protocol"` Port int16 `json:"port"` Period int `json:"period"` DigitalCertificate Certificate `json:"digital_certificate"` } type Certificate struct { Subject string `json:"subject"` Issuer string `json:"issuer"` Fingerprint string `json:"fingerprint"` Purpose string `json:"purpose"` Verify string `json:"verify"` Status string `json:"status"` Revoked bool `json:"revoked"` Begin string `json:"begin"` End string `json:"end"` StatusDesc string `json:"status_desc"` SerialNumber string `json:"serial_number"` RevokedTime string `json:"revoked_time"` } type IpInfo struct { Samples []Sample `json:"samples"` TagsClasses []TagsClass `json:"tags_classes"` Judgments []string `json:"judgments"` Intelligences Intelligences `json:"intelligences"` Scene string `json:"scene"` Basic Basic `json:"basic"` ASN ASN `json:"asn"` Ports []Port `json:"ports"` CAS []CAS `json:"cas"` UpdateTime string `json:"update_time"` RDNSList []RDNS `json:"rdns_list"` SumCurDomains string `json:"sum_cur_domains"` } type RespData struct { Data map[string]json.RawMessage `json:"data"` ResponseCode int `json:"response_code"` VerboseMsg string `json:"verbose_msg"` } type Reputation struct { IsMalicious bool `json:"is_malicious"` } type ASNPrivate struct { Rank int `json:"rank"` Info string `json:"info"` Number string `json:"number"` } type LocationPrivate struct { Country string `json:"country"` Province string `json:"province"` City string `json:"city"` Longitude float64 `json:"lng"` Latitude float64 `json:"lat"` CountryCode string `json:"country_code"` } type BasicPrivate struct { Carrier string `json:"carrier"` Location LocationPrivate `json:"location"` } type TagsClassPrivate map[string][]string type IPInfoPrivate struct { Judgments []string `json:"judgments"` Basic BasicPrivate `json:"basic"` ASN ASNPrivate `json:"asn"` Scene string `json:"scene"` IsMalicious bool `json:"is_malicious"` TagsClasses TagsClassPrivate `json:"tags_classes"` } type IPInfoPrivateRespData struct { IOC string `json:"ioc"` Intelligence []IPInfoPrivate `json:"intelligence"` } type IPInfoPrivateResp struct { Data []IPInfoPrivateRespData `json:"data"` ResponseCode int `json:"response_code"` VerboseMsg string `json:"verbose_msg"` } type WafService struct { GatewayName string `json:"gateway_name"` Mode string `json:"mode"` RuleNum int `json:"rule_num"` AttackNum int `json:"attack_num"` Listeners []string `json:"listeners"` } // WAF configuration details type GatewateInfo struct { GatewayName string `json:"gateway_name"` Namespace string `json:"namespace"` RegionCode string `json:"region_code"` ApiGatewayCrn string `json:"gateway_crn"` // Hosts []string `json:"hosts"` } type GetWafGatewayInfoReq struct { GatewateInfo Cookie string `json:"cookie"` } type CreateWafReq struct { GatewateInfo Port uint32 `json:"port"` Host []string `json:"host"` Mode WafMode `json:"mode"` ListenerName string `json:"listener_name"` } type DeleteWafReq struct { GatewateInfo Ports []int `json:"ports"` } type RuleRequest struct { GatewateInfo CategoryID []string `json:"category_id"` Status int `json:"status"` } type WafMode string const ( WafModeProtect WafMode = "protect" WafModeAlert WafMode = "alert" WafModePassthrough WafMode = "passthrough" ) type UpdateModeReq struct { Mode WafMode `json:"mode"` GatewayName string `json:"gateway_name"` Namespace string `json:"namespace"` RegionCode string `json:"region_code"` } type EnableListenerWafReq struct { GatewateInfo Enable bool `json:"enable"` Hosts []string `json:"hosts"` Port int `json:"port"` Mode WafMode `json:"mode"` ListenerName string `json:"listener_name"` } type EnableGatewayWafReq struct { GatewateInfo Enable bool `json:"enable"` Cookie string `json:"cookie"` } type ListenerWaf struct { Hosts []string `json:"hosts"` // Port int `json:"port"` HostsAndPort string `json:"hosts_and_port"` Name string `json:"name"` } type EnableListenerWafsReq struct { GatewateInfo Enable bool `json:"enable"` Listeners []ListenerWaf `json:"listeners"` } type WafRule struct { ID int `json:"id"` Level int `json:"level"` Name string `json:"name"` Type string `json:"type"` Description string `json:"description"` Expr string `json:"expr"` Mode string `json:"mode"` } type Catagory struct { EN string `json:"en"` Zh string `json:"zh"` } type Description struct { EN string `json:"en"` Zh string `json:"zh"` } type WafRuleCategory struct { CategoryID string `json:"category_id"` Status int `json:"status,omitempty"` Catagory Catagory `json:"catagory"` Description Description `json:"description"` Rules []WafRule `json:"rules"` } type GatewayListener struct { GatewayName string `json:"gateway_name"` Namespace string `json:"namespace"` RegionCode string `json:"region_code"` Hosts []string `json:"hosts"` Port int `json:"port"` Enable bool `json:"enable"` } type CreateListenerReq struct { GatewateInfo Port int `json:"port"` } type DeleteListenerReq struct { GatewateInfo Port int `json:"port"` } type GatewayRespListenerData struct { GatewayName string `json:"gateway_name"` Namespace string `json:"namespace"` ListenerName string `json:"listener_name"` ApiGatewayCrn string `json:"apigateway_crn"` CreateAccountName string `json:"create_account_name"` CreateAccountID string `json:"create_account_id"` Hosts []string `json:"hosts"` Port int `json:"port"` } type GatewayResponseBase struct { Code string `json:"code"` Message string `json:"message"` } type GatewayListenerResponse struct { GatewayResponseBase Data GatewayRespListenerData `json:"data"` } type GatewayListenerResponseList struct { GatewayResponseBase Data []GatewayRespListenerData `json:"data"` }