whois/backend/api/v1/tianhu.go
2024-04-07 11:08:05 +08:00

83 lines
2.7 KiB
Go

package v1
import "time"
// TianHuWhoisResponse represents the top-level structure of the WHOIS response.
type TianHuWhoisResponse struct {
Code string `json:"code"`
Message string `json:"message"`
Data TianHuWhoisData `json:"data"`
}
// TianHuWhoisData represents the detailed data part of the WHOIS response.
type TianHuWhoisData struct {
URL string `json:"url"`
Result string `json:"result"`
Status int `json:"status"`
Formatted TianHuFormattedWhois `json:"formatted"`
TLD string `json:"tld"`
Timezone TianHuWhoisTimezone `json:"timezone"`
}
// TianHuFormattedWhois represents the formatted WHOIS data.
type TianHuFormattedWhois struct {
Key string `json:"key"`
Domain TianHuDomainInfo `json:"domain"`
Registrar TianHuRegistrarInfo `json:"registrar"`
Registrant TianHuRegistrantInfo `json:"registrant"`
Administrative TianHuAdministrativeInfo `json:"administrative"`
Technical TianHuTechnicalInfo `json:"technical"`
Billing TianHuBillingInfo `json:"billing"`
}
// TianHuDomainInfo contains information about the domain.
type TianHuDomainInfo struct {
NameServers []string `json:"name_servers"`
Status []string `json:"status"`
Domain string `json:"domain"`
ID string `json:"id"`
WhoisServer string `json:"whois_server"`
UpdatedDate time.Time `json:"updated_date"`
CreatedDate time.Time `json:"created_date"`
ExpiredDate time.Time `json:"expired_date"`
DNSSEC bool `json:"dnssec"`
}
// TianHuRegistrarInfo contains information about the registrar.
type TianHuRegistrarInfo struct {
Key string `json:"key"`
ReferralURL string `json:"referral_url"`
RegistrarName string `json:"registrar_name"`
RegistrarIANAID string `json:"registrar_ianaid"`
RegistrarEmail string `json:"registrar_email"`
RegistrarPhone string `json:"registrar_phone"`
}
// TianHuRegistrantInfo, TianHuAdministrativeInfo, TianHuTechnicalInfo, and TianHuBillingInfo
// can be defined similarly, depending on the details you wish to include.
type TianHuRegistrantInfo struct {
Key string `json:"key"`
// Additional fields can be added here.
}
type TianHuAdministrativeInfo struct {
Key string `json:"key"`
// Additional fields can be added here.
}
type TianHuTechnicalInfo struct {
Key string `json:"key"`
// Additional fields can be added here.
}
type TianHuBillingInfo struct {
Key string `json:"key"`
// Additional fields can be added here.
}
// TianHuWhoisTimezone represents the timezone information of the WHOIS data.
type TianHuWhoisTimezone struct {
UTCOffset int `json:"utcoffset"`
Demo time.Time `json:"demo"`
}