webForwarding.go 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. package v1
  2. type WebForwardingDataRequest struct {
  3. Id int `form:"id" json:"id"`
  4. CdnWebId int `form:"cdnWebId" json:"cdnWebId"`
  5. Port string `form:"port" json:"port" validate:"required,isPortStringValid"`
  6. Domain string `form:"domain" json:"domain" validate:"omitempty,idn_fqdn|ip"`
  7. BackendList []BackendList `form:"backendList" json:"backendList" validate:"required,dive"`
  8. IsHttps int `form:"isHttps" json:"isHttps" default:"0"`
  9. Comment string `form:"comment" json:"comment" validate:"max=50"`
  10. HttpsCert string `form:"httpsCert" json:"httpsCert"`
  11. HttpsKey string `form:"httpsKey" json:"httpsKey"`
  12. SslPolicyId int64 `form:"sslPolicyId" json:"sslPolicyId"`
  13. SslCertId int64 `form:"sslCertId" json:"sslCertId"`
  14. Proxy bool `form:"proxy" json:"proxy" default:"false"`
  15. CcConfig CcConfigRequest `form:"ccConfig" json:"ccConfig"`
  16. }
  17. type DeleteWebForwardingRequest struct {
  18. Ids []int `form:"ids" json:"ids" validate:"required,min=1,dive,required"`
  19. Uid int `form:"uid" json:"uid" validate:"required"`
  20. HostId int `form:"hostId" json:"hostId" validate:"required"`
  21. }
  22. type WebForwardingRequest struct {
  23. HostId int `form:"hostId" json:"hostId" validate:"required"`
  24. Uid int `form:"uid" json:"uid" validate:"required"`
  25. WebForwardingData WebForwardingDataRequest `form:"data" json:"data" validate:"required"`
  26. }
  27. type BackendList struct {
  28. Addr string `json:"addr,omitempty" form:"addr" validate:"required,hostport"`
  29. CustomHost string `json:"customHost,omitempty" form:"customHost" validate:"omitempty,idn_fqdn"`
  30. IsHttps int `json:"isHttps,omitempty" form:"isHttps" default:"0"`
  31. }
  32. type CcConfigRequest struct {
  33. IsOn bool `form:"isOn" json:"isOn" default:"false"`
  34. ThresholdMethod string `form:"thresholdMethod" json:"thresholdMethod" default:"default"` //阈值设置
  35. Limit5s int `form:"limit5s" json:"limit5s"`
  36. Limit60s int `form:"limit60s" json:"limit60s"`
  37. Limit300s int `form:"limit300s" json:"limit300s"`
  38. Level string `form:"level" json:"level" default:"low"` //拦截强度
  39. }
  40. type Domain struct {
  41. Id int `gorm:"column:id"`
  42. Domain string `gorm:"column:domain"`
  43. IsHttps int `gorm:"column:is_https"`
  44. }