530 lines
22 KiB
Go
530 lines
22 KiB
Go
package egoscale
|
|
|
|
import (
|
|
"encoding/json"
|
|
"net/http"
|
|
)
|
|
|
|
type Client struct {
|
|
client *http.Client
|
|
endpoint string
|
|
apiKey string
|
|
apiSecret string
|
|
}
|
|
|
|
type Error struct {
|
|
ErrorCode int `json:"errorcode"`
|
|
CSErrorCode int `json:"cserrorcode"`
|
|
ErrorText string `json:"errortext"`
|
|
}
|
|
|
|
type StandardResponse struct {
|
|
Success string `json:"success"`
|
|
DisplayText string `json:"displaytext"`
|
|
}
|
|
|
|
type Topology struct {
|
|
Zones map[string]string
|
|
Images map[string]map[int]string
|
|
Profiles map[string]string
|
|
Keypairs []string
|
|
SecurityGroups map[string]string
|
|
AffinityGroups map[string]string
|
|
}
|
|
|
|
type SecurityGroupRule struct {
|
|
Cidr string
|
|
IcmpType int
|
|
IcmpCode int
|
|
Port int
|
|
Protocol string
|
|
SecurityGroupId string
|
|
UserSecurityGroupList []UserSecurityGroup `json:"usersecuritygrouplist,omitempty"`
|
|
}
|
|
|
|
type UserSecurityGroup struct {
|
|
Group string `json:"group,omitempty"`
|
|
Account string `json:"account,omitempty"`
|
|
}
|
|
|
|
type MachineProfile struct {
|
|
Name string
|
|
SecurityGroups []string
|
|
Keypair string
|
|
Userdata string
|
|
ServiceOffering string
|
|
Template string
|
|
Zone string
|
|
AffinityGroups []string
|
|
}
|
|
|
|
type ListZonesResponse struct {
|
|
Count int `json:"count"`
|
|
Zones []*Zone `json:"zone"`
|
|
}
|
|
|
|
type Zone struct {
|
|
Allocationstate string `json:"allocationstate,omitempty"`
|
|
Description string `json:"description,omitempty"`
|
|
Displaytext string `json:"displaytext,omitempty"`
|
|
Domain string `json:"domain,omitempty"`
|
|
Domainid string `json:"domainid,omitempty"`
|
|
Domainname string `json:"domainname,omitempty"`
|
|
Id string `json:"id,omitempty"`
|
|
Internaldns1 string `json:"internaldns1,omitempty"`
|
|
Internaldns2 string `json:"internaldns2,omitempty"`
|
|
Ip6dns1 string `json:"ip6dns1,omitempty"`
|
|
Ip6dns2 string `json:"ip6dns2,omitempty"`
|
|
Localstorageenabled bool `json:"localstorageenabled,omitempty"`
|
|
Name string `json:"name,omitempty"`
|
|
Networktype string `json:"networktype,omitempty"`
|
|
Resourcedetails map[string]string `json:"resourcedetails,omitempty"`
|
|
Securitygroupsenabled bool `json:"securitygroupsenabled,omitempty"`
|
|
Vlan string `json:"vlan,omitempty"`
|
|
Zonetoken string `json:"zonetoken,omitempty"`
|
|
}
|
|
|
|
type ListServiceOfferingsResponse struct {
|
|
Count int `json:"count"`
|
|
ServiceOfferings []*ServiceOffering `json:"serviceoffering"`
|
|
}
|
|
|
|
type ServiceOffering struct {
|
|
Cpunumber int `json:"cpunumber,omitempty"`
|
|
Cpuspeed int `json:"cpuspeed,omitempty"`
|
|
Displaytext string `json:"displaytext,omitempty"`
|
|
Domain string `json:"domain,omitempty"`
|
|
Domainid string `json:"domainid,omitempty"`
|
|
Hosttags string `json:"hosttags,omitempty"`
|
|
Id string `json:"id,omitempty"`
|
|
Iscustomized bool `json:"iscustomized,omitempty"`
|
|
Issystem bool `json:"issystem,omitempty"`
|
|
Isvolatile bool `json:"isvolatile,omitempty"`
|
|
Memory int `json:"memory,omitempty"`
|
|
Name string `json:"name,omitempty"`
|
|
Networkrate int `json:"networkrate,omitempty"`
|
|
Serviceofferingdetails map[string]string `json:"serviceofferingdetails,omitempty"`
|
|
}
|
|
|
|
type ListTemplatesResponse struct {
|
|
Count int `json:"count"`
|
|
Templates []*Template `json:"template"`
|
|
}
|
|
|
|
type Template struct {
|
|
Account string `json:"account,omitempty"`
|
|
Accountid string `json:"accountid,omitempty"`
|
|
Bootable bool `json:"bootable,omitempty"`
|
|
Checksum string `json:"checksum,omitempty"`
|
|
Created string `json:"created,omitempty"`
|
|
CrossZones bool `json:"crossZones,omitempty"`
|
|
Details map[string]string `json:"details,omitempty"`
|
|
Displaytext string `json:"displaytext,omitempty"`
|
|
Domain string `json:"domain,omitempty"`
|
|
Domainid string `json:"domainid,omitempty"`
|
|
Format string `json:"format,omitempty"`
|
|
Hostid string `json:"hostid,omitempty"`
|
|
Hostname string `json:"hostname,omitempty"`
|
|
Hypervisor string `json:"hypervisor,omitempty"`
|
|
Id string `json:"id,omitempty"`
|
|
Isdynamicallyscalable bool `json:"isdynamicallyscalable,omitempty"`
|
|
Isextractable bool `json:"isextractable,omitempty"`
|
|
Isfeatured bool `json:"isfeatured,omitempty"`
|
|
Ispublic bool `json:"ispublic,omitempty"`
|
|
Isready bool `json:"isready,omitempty"`
|
|
Name string `json:"name,omitempty"`
|
|
Ostypeid string `json:"ostypeid,omitempty"`
|
|
Ostypename string `json:"ostypename,omitempty"`
|
|
Passwordenabled bool `json:"passwordenabled,omitempty"`
|
|
Project string `json:"project,omitempty"`
|
|
Projectid string `json:"projectid,omitempty"`
|
|
Removed string `json:"removed,omitempty"`
|
|
Size int64 `json:"size,omitempty"`
|
|
Sourcetemplateid string `json:"sourcetemplateid,omitempty"`
|
|
Sshkeyenabled bool `json:"sshkeyenabled,omitempty"`
|
|
Status string `json:"status,omitempty"`
|
|
Zoneid string `json:"zoneid,omitempty"`
|
|
Zonename string `json:"zonename,omitempty"`
|
|
}
|
|
|
|
type ListSSHKeyPairsResponse struct {
|
|
Count int `json:"count"`
|
|
SSHKeyPairs []*SSHKeyPair `json:"sshkeypair"`
|
|
}
|
|
|
|
type SSHKeyPair struct {
|
|
Fingerprint string `json:"fingerprint,omitempty"`
|
|
Name string `json:"name,omitempty"`
|
|
}
|
|
|
|
type ListAffinityGroupsResponse struct {
|
|
Count int `json:"count"`
|
|
AffinityGroups []*AffinityGroup `json:"affinitygroup"`
|
|
}
|
|
|
|
type AffinityGroup struct {
|
|
Name string `json:"name,omitempty"`
|
|
Type string `json:"type,omitempty"`
|
|
Description string `json:"description,omitempty"`
|
|
Id string `json:"id,omitempty"`
|
|
Domainid string `json:"domainid,omitempty"`
|
|
Domain string `json:"domain,omitempty"`
|
|
Account string `json:"account,omitempty"`
|
|
}
|
|
|
|
type CreateAffinityGroupResponseWrapper struct {
|
|
Wrapped AffinityGroup `json:"affinitygroup"`
|
|
}
|
|
|
|
type ListSecurityGroupsResponse struct {
|
|
Count int `json:"count"`
|
|
SecurityGroups []*SecurityGroup `json:"securitygroup"`
|
|
}
|
|
|
|
type SecurityGroup struct {
|
|
Account string `json:"account,omitempty"`
|
|
Description string `json:"description,omitempty"`
|
|
Domain string `json:"domain,omitempty"`
|
|
Domainid string `json:"domainid,omitempty"`
|
|
Id string `json:"id,omitempty"`
|
|
Name string `json:"name,omitempty"`
|
|
Project string `json:"project,omitempty"`
|
|
Projectid string `json:"projectid,omitempty"`
|
|
IngressRules []struct {
|
|
RuleId string `json:"ruleid,omitempty"`
|
|
Protocol string `json:"protocol,omitempty"`
|
|
StartPort int `json:"startport,omitempty"`
|
|
EndPort int `json:"endport,omitempty"`
|
|
Cidr string `json:"cidr,omitempty"`
|
|
IcmpCode int `json:"icmpcode,omitempty"`
|
|
IcmpType int `json:"icmptype,omitempty"`
|
|
Tags []string `json:"tags,omitempty"`
|
|
} `json:"ingressrule,omitempty"`
|
|
EgressRules []struct {
|
|
RuleId string `json:"ruleid,omitempty"`
|
|
Protocol string `json:"protocol,omitempty"`
|
|
StartPort int `json:"startport,omitempty"`
|
|
EndPort int `json:"endport,omitempty"`
|
|
Cidr string `json:"cidr,omitempty"`
|
|
IcmpCode int `json:"icmpcode,omitempty"`
|
|
IcmpType int `json:"icmptype,omitempty"`
|
|
Tags []string `json:"tags,omitempty"`
|
|
} `json:"egressrule,omitempty"`
|
|
Tags []string `json:"tags,omitempty"`
|
|
}
|
|
|
|
type CreateSecurityGroupResponseWrapper struct {
|
|
Wrapped CreateSecurityGroupResponse `json:"securitygroup"`
|
|
}
|
|
type CreateSecurityGroupResponse struct {
|
|
Account string `json:"account,omitempty"`
|
|
Description string `json:"description,omitempty"`
|
|
Domain string `json:"domain,omitempty"`
|
|
Domainid string `json:"domainid,omitempty"`
|
|
Id string `json:"id,omitempty"`
|
|
Name string `json:"name,omitempty"`
|
|
Project string `json:"project,omitempty"`
|
|
Projectid string `json:"projectid,omitempty"`
|
|
}
|
|
|
|
type AuthorizeSecurityGroupIngressResponse struct {
|
|
JobID string `json:"jobid,omitempty"`
|
|
Account string `json:"account,omitempty"`
|
|
Cidr string `json:"cidr,omitempty"`
|
|
Endport int `json:"endport,omitempty"`
|
|
Icmpcode int `json:"icmpcode,omitempty"`
|
|
Icmptype int `json:"icmptype,omitempty"`
|
|
Protocol string `json:"protocol,omitempty"`
|
|
Ruleid string `json:"ruleid,omitempty"`
|
|
Securitygroupname string `json:"securitygroupname,omitempty"`
|
|
Startport int `json:"startport,omitempty"`
|
|
}
|
|
|
|
type AuthorizeSecurityGroupEgressResponse struct {
|
|
JobID string `json:"jobid,omitempty"`
|
|
Account string `json:"account,omitempty"`
|
|
Cidr string `json:"cidr,omitempty"`
|
|
Endport int `json:"endport,omitempty"`
|
|
Icmpcode int `json:"icmpcode,omitempty"`
|
|
Icmptype int `json:"icmptype,omitempty"`
|
|
Protocol string `json:"protocol,omitempty"`
|
|
Ruleid string `json:"ruleid,omitempty"`
|
|
Securitygroupname string `json:"securitygroupname,omitempty"`
|
|
Startport int `json:"startport,omitempty"`
|
|
}
|
|
|
|
type DeployVirtualMachineWrappedResponse struct {
|
|
Wrapped DeployVirtualMachineResponse `json:"virtualmachine"`
|
|
}
|
|
|
|
type DeployVirtualMachineResponse struct {
|
|
JobID string `json:"jobid,omitempty"`
|
|
Account string `json:"account,omitempty"`
|
|
Affinitygroup []struct {
|
|
Account string `json:"account,omitempty"`
|
|
Description string `json:"description,omitempty"`
|
|
Domain string `json:"domain,omitempty"`
|
|
Domainid string `json:"domainid,omitempty"`
|
|
Id string `json:"id,omitempty"`
|
|
Name string `json:"name,omitempty"`
|
|
Type string `json:"type,omitempty"`
|
|
VirtualmachineIds []string `json:"virtualmachineIds,omitempty"`
|
|
} `json:"affinitygroup,omitempty"`
|
|
Cpunumber int `json:"cpunumber,omitempty"`
|
|
Cpuspeed int `json:"cpuspeed,omitempty"`
|
|
Cpuused string `json:"cpuused,omitempty"`
|
|
Created string `json:"created,omitempty"`
|
|
Details map[string]string `json:"details,omitempty"`
|
|
Diskioread int64 `json:"diskioread,omitempty"`
|
|
Diskiowrite int64 `json:"diskiowrite,omitempty"`
|
|
Diskkbsread int64 `json:"diskkbsread,omitempty"`
|
|
Diskkbswrite int64 `json:"diskkbswrite,omitempty"`
|
|
Displayname string `json:"displayname,omitempty"`
|
|
Displayvm bool `json:"displayvm,omitempty"`
|
|
Domain string `json:"domain,omitempty"`
|
|
Domainid string `json:"domainid,omitempty"`
|
|
Forvirtualnetwork bool `json:"forvirtualnetwork,omitempty"`
|
|
Group string `json:"group,omitempty"`
|
|
Groupid string `json:"groupid,omitempty"`
|
|
Guestosid string `json:"guestosid,omitempty"`
|
|
Haenable bool `json:"haenable,omitempty"`
|
|
Hostid string `json:"hostid,omitempty"`
|
|
Hostname string `json:"hostname,omitempty"`
|
|
Hypervisor string `json:"hypervisor,omitempty"`
|
|
Id string `json:"id,omitempty"`
|
|
Instancename string `json:"instancename,omitempty"`
|
|
Isdynamicallyscalable bool `json:"isdynamicallyscalable,omitempty"`
|
|
Isodisplaytext string `json:"isodisplaytext,omitempty"`
|
|
Isoid string `json:"isoid,omitempty"`
|
|
Isoname string `json:"isoname,omitempty"`
|
|
Keypair string `json:"keypair,omitempty"`
|
|
Memory int `json:"memory,omitempty"`
|
|
Name string `json:"name,omitempty"`
|
|
Networkkbsread int64 `json:"networkkbsread,omitempty"`
|
|
Networkkbswrite int64 `json:"networkkbswrite,omitempty"`
|
|
Nic []struct {
|
|
Broadcasturi string `json:"broadcasturi,omitempty"`
|
|
Gateway string `json:"gateway,omitempty"`
|
|
Id string `json:"id,omitempty"`
|
|
Ipaddress string `json:"ipaddress,omitempty"`
|
|
Isdefault bool `json:"isdefault,omitempty"`
|
|
Isolationuri string `json:"isolationuri,omitempty"`
|
|
Macaddress string `json:"macaddress,omitempty"`
|
|
Netmask string `json:"netmask,omitempty"`
|
|
Networkid string `json:"networkid,omitempty"`
|
|
Networkname string `json:"networkname,omitempty"`
|
|
Secondaryip []string `json:"secondaryip,omitempty"`
|
|
Traffictype string `json:"traffictype,omitempty"`
|
|
Type string `json:"type,omitempty"`
|
|
} `json:"nic,omitempty"`
|
|
Password string `json:"password,omitempty"`
|
|
Passwordenabled bool `json:"passwordenabled,omitempty"`
|
|
Project string `json:"project,omitempty"`
|
|
Projectid string `json:"projectid,omitempty"`
|
|
Publicip string `json:"publicip,omitempty"`
|
|
Publicipid string `json:"publicipid,omitempty"`
|
|
Rootdeviceid int64 `json:"rootdeviceid,omitempty"`
|
|
Rootdevicetype string `json:"rootdevicetype,omitempty"`
|
|
Serviceofferingid string `json:"serviceofferingid,omitempty"`
|
|
Serviceofferingname string `json:"serviceofferingname,omitempty"`
|
|
Servicestate string `json:"servicestate,omitempty"`
|
|
State string `json:"state,omitempty"`
|
|
Templatedisplaytext string `json:"templatedisplaytext,omitempty"`
|
|
Templateid string `json:"templateid,omitempty"`
|
|
Templatename string `json:"templatename,omitempty"`
|
|
Zoneid string `json:"zoneid,omitempty"`
|
|
Zonename string `json:"zonename,omitempty"`
|
|
}
|
|
|
|
type QueryAsyncJobResultResponse struct {
|
|
Accountid string `json:"accountid,omitempty"`
|
|
Cmd string `json:"cmd,omitempty"`
|
|
Created string `json:"created,omitempty"`
|
|
Jobinstanceid string `json:"jobinstanceid,omitempty"`
|
|
Jobinstancetype string `json:"jobinstancetype,omitempty"`
|
|
Jobprocstatus int `json:"jobprocstatus,omitempty"`
|
|
Jobresult json.RawMessage `json:"jobresult,omitempty"`
|
|
Jobresultcode int `json:"jobresultcode,omitempty"`
|
|
Jobresulttype string `json:"jobresulttype,omitempty"`
|
|
Jobstatus int `json:"jobstatus,omitempty"`
|
|
Userid string `json:"userid,omitempty"`
|
|
}
|
|
|
|
type ListVirtualMachinesResponse struct {
|
|
Count int `json:"count"`
|
|
VirtualMachines []*VirtualMachine `json:"virtualmachine"`
|
|
}
|
|
|
|
type VirtualMachine struct {
|
|
Account string `json:"account,omitempty"`
|
|
Cpunumber int `json:"cpunumber,omitempty"`
|
|
Cpuspeed int `json:"cpuspeed,omitempty"`
|
|
Cpuused string `json:"cpuused,omitempty"`
|
|
Created string `json:"created,omitempty"`
|
|
Details map[string]string `json:"details,omitempty"`
|
|
Diskioread int64 `json:"diskioread,omitempty"`
|
|
Diskiowrite int64 `json:"diskiowrite,omitempty"`
|
|
Diskkbsread int64 `json:"diskkbsread,omitempty"`
|
|
Diskkbswrite int64 `json:"diskkbswrite,omitempty"`
|
|
Displayname string `json:"displayname,omitempty"`
|
|
Displayvm bool `json:"displayvm,omitempty"`
|
|
Domain string `json:"domain,omitempty"`
|
|
Domainid string `json:"domainid,omitempty"`
|
|
Forvirtualnetwork bool `json:"forvirtualnetwork,omitempty"`
|
|
Group string `json:"group,omitempty"`
|
|
Groupid string `json:"groupid,omitempty"`
|
|
Guestosid string `json:"guestosid,omitempty"`
|
|
Haenable bool `json:"haenable,omitempty"`
|
|
Hostid string `json:"hostid,omitempty"`
|
|
Hostname string `json:"hostname,omitempty"`
|
|
Hypervisor string `json:"hypervisor,omitempty"`
|
|
Id string `json:"id,omitempty"`
|
|
Instancename string `json:"instancename,omitempty"`
|
|
Isdynamicallyscalable bool `json:"isdynamicallyscalable,omitempty"`
|
|
Isodisplaytext string `json:"isodisplaytext,omitempty"`
|
|
Isoid string `json:"isoid,omitempty"`
|
|
Isoname string `json:"isoname,omitempty"`
|
|
Keypair string `json:"keypair,omitempty"`
|
|
Memory int `json:"memory,omitempty"`
|
|
Name string `json:"name,omitempty"`
|
|
Networkkbsread int64 `json:"networkkbsread,omitempty"`
|
|
Networkkbswrite int64 `json:"networkkbswrite,omitempty"`
|
|
Nic []struct {
|
|
Broadcasturi string `json:"broadcasturi,omitempty"`
|
|
Gateway string `json:"gateway,omitempty"`
|
|
Id string `json:"id,omitempty"`
|
|
Ip6address string `json:"ip6address,omitempty"`
|
|
Ip6cidr string `json:"ip6cidr,omitempty"`
|
|
Ip6gateway string `json:"ip6gateway,omitempty"`
|
|
Ipaddress string `json:"ipaddress,omitempty"`
|
|
Isdefault bool `json:"isdefault,omitempty"`
|
|
Isolationuri string `json:"isolationuri,omitempty"`
|
|
Macaddress string `json:"macaddress,omitempty"`
|
|
Netmask string `json:"netmask,omitempty"`
|
|
Networkid string `json:"networkid,omitempty"`
|
|
Networkname string `json:"networkname,omitempty"`
|
|
Secondaryip []struct {
|
|
Id string `json:"id,omitempty"`
|
|
IpAddress string `json:"ipaddress,omitempty"`
|
|
} `json:"secondaryip,omitempty"`
|
|
Traffictype string `json:"traffictype,omitempty"`
|
|
Type string `json:"type,omitempty"`
|
|
} `json:"nic,omitempty"`
|
|
Password string `json:"password,omitempty"`
|
|
Passwordenabled bool `json:"passwordenabled,omitempty"`
|
|
Project string `json:"project,omitempty"`
|
|
Projectid string `json:"projectid,omitempty"`
|
|
Publicip string `json:"publicip,omitempty"`
|
|
Publicipid string `json:"publicipid,omitempty"`
|
|
Rootdeviceid int64 `json:"rootdeviceid,omitempty"`
|
|
Rootdevicetype string `json:"rootdevicetype,omitempty"`
|
|
SecurityGroups []struct {
|
|
Account string `json:"account,omitempty"`
|
|
Description string `json:"description,omitempty"`
|
|
Id string `json:"id,omitempty"`
|
|
Name string `json:"name,omitemtpy"`
|
|
Tags []string `json:"tags,omitempty"`
|
|
} `json:"securitygroup,omitempty"`
|
|
Serviceofferingid string `json:"serviceofferingid,omitempty"`
|
|
Serviceofferingname string `json:"serviceofferingname,omitempty"`
|
|
Servicestate string `json:"servicestate,omitempty"`
|
|
State string `json:"state,omitempty"`
|
|
Templatedisplaytext string `json:"templatedisplaytext,omitempty"`
|
|
Templateid string `json:"templateid,omitempty"`
|
|
Templatename string `json:"templatename,omitempty"`
|
|
Zoneid string `json:"zoneid,omitempty"`
|
|
Zonename string `json:"zonename,omitempty"`
|
|
}
|
|
|
|
type StartVirtualMachineResponse struct {
|
|
JobID string `json:"jobid,omitempty"`
|
|
}
|
|
|
|
type StopVirtualMachineResponse struct {
|
|
JobID string `json:"jobid,omitempty"`
|
|
}
|
|
|
|
type DestroyVirtualMachineResponse struct {
|
|
JobID string `json:"jobid,omitempty"`
|
|
}
|
|
|
|
type RebootVirtualMachineResponse struct {
|
|
JobID string `json:"jobid,omitempty"`
|
|
}
|
|
|
|
type CreateSSHKeyPairWrappedResponse struct {
|
|
Wrapped CreateSSHKeyPairResponse `json:"keypair,omitempty"`
|
|
}
|
|
|
|
type CreateSSHKeyPairResponse struct {
|
|
Privatekey string `json:"privatekey,omitempty"`
|
|
}
|
|
|
|
type RemoveIpFromNicResponse struct {
|
|
JobID string `json:"jobid,omitempty"`
|
|
}
|
|
|
|
type AddIpToNicResponse struct {
|
|
Id string `json:"id"`
|
|
IpAddress string `json:"ipaddress"`
|
|
NetworkId string `json:"networkid"`
|
|
NicId string `json:"nicid"`
|
|
VmId string `json:"virtualmachineid"`
|
|
}
|
|
|
|
type CreateAffinityGroupResponse struct {
|
|
JobId string `json:"jobid,omitempty"`
|
|
}
|
|
|
|
type DeleteAffinityGroupResponse struct {
|
|
JobId string `json:"jobid,omitempty"`
|
|
}
|
|
|
|
type DeleteSSHKeyPairResponse struct {
|
|
Privatekey string `json:"privatekey,omitempty"`
|
|
}
|
|
|
|
type DNSDomain struct {
|
|
Id int64 `json:"id"`
|
|
UserId int64 `json:"user_id"`
|
|
RegistrantId int64 `json:"registrant_id,omitempty"`
|
|
Name string `json:"name"`
|
|
UnicodeName string `json:"unicode_name"`
|
|
Token string `json:"token"`
|
|
State string `json:"state"`
|
|
Language string `json:"language,omitempty"`
|
|
Lockable bool `json:"lockable"`
|
|
AutoRenew bool `json:"auto_renew"`
|
|
WhoisProtected bool `json:"whois_protected"`
|
|
RecordCount int64 `json:"record_count"`
|
|
ServiceCount int64 `json:"service_count"`
|
|
ExpiresOn string `json:"expires_on,omitempty"`
|
|
CreatedAt string `json:"created_at"`
|
|
UpdatedAt string `json:"updated_at"`
|
|
}
|
|
|
|
type DNSDomainCreateRequest struct {
|
|
Domain struct {
|
|
Name string `json:"name"`
|
|
} `json:"domain"`
|
|
}
|
|
|
|
type DNSRecord struct {
|
|
Id int64 `json:"id,omitempty"`
|
|
DomainId int64 `json:"domain_id,omitempty"`
|
|
Name string `json:"name"`
|
|
Ttl int `json:"ttl,omitempty"`
|
|
CreatedAt string `json:"created_at,omitempty"`
|
|
UpdatedAt string `json:"updated_at,omitempty"`
|
|
Content string `json:"content"`
|
|
RecordType string `json:"record_type"`
|
|
Prio int `json:"prio,omitempty"`
|
|
}
|
|
|
|
type DNSRecordResponse struct {
|
|
Record DNSRecord `json:"record"`
|
|
}
|
|
|
|
type DNSError struct {
|
|
Name []string `json:"name"`
|
|
}
|