Skip to content

Commit eb04dfd

Browse files
authored
Merge pull request #73 from opencredo/interfaces
Create interfaces
2 parents a881d33 + dde9863 commit eb04dfd

File tree

5 files changed

+102
-0
lines changed

5 files changed

+102
-0
lines changed

upcloud/service/hosts.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,14 @@ import (
88
"github.com/UpCloudLtd/upcloud-go-api/upcloud/request"
99
)
1010

11+
type Host interface {
12+
GetHosts() (*upcloud.Hosts, error)
13+
GetHostDetails(r *request.GetHostDetailsRequest) (*upcloud.Host, error)
14+
ModifyHost(r *request.ModifyHostRequest) (*upcloud.Host, error)
15+
}
16+
17+
var _ Host = (*Service)(nil)
18+
1119
// GetHosts returns the all the available private hosts
1220
func (s *Service) GetHosts() (*upcloud.Hosts, error) {
1321
hosts := upcloud.Hosts{}

upcloud/service/network.go

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,21 @@ import (
88
"github.com/UpCloudLtd/upcloud-go-api/upcloud/request"
99
)
1010

11+
type Network interface {
12+
GetNetworks() (*upcloud.Networks, error)
13+
GetNetworksInZone(r *request.GetNetworksInZoneRequest) (*upcloud.Networks, error)
14+
CreateNetwork(r *request.CreateNetworkRequest) (*upcloud.Network, error)
15+
GetNetworkDetails(r *request.GetNetworkDetailsRequest) (*upcloud.Network, error)
16+
ModifyNetwork(r *request.ModifyNetworkRequest) (*upcloud.Network, error)
17+
DeleteNetwork(r *request.DeleteNetworkRequest) error
18+
GetServerNetworks(r *request.GetServerNetworksRequest) (*upcloud.Networking, error)
19+
CreateNetworkInterface(r *request.CreateNetworkInterfaceRequest) (*upcloud.Interface, error)
20+
ModifyNetworkInterface(r *request.ModifyNetworkInterfaceRequest) (*upcloud.Interface, error)
21+
DeleteNetworkInterface(r *request.DeleteNetworkInterfaceRequest) error
22+
}
23+
24+
var _ Network = (*Service)(nil)
25+
1126
// GetNetworks returns the all the available networks
1227
func (s *Service) GetNetworks() (*upcloud.Networks, error) {
1328
networks := upcloud.Networks{}

upcloud/service/object_storage.go

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,16 @@ import (
88
"github.com/UpCloudLtd/upcloud-go-api/upcloud/request"
99
)
1010

11+
type ObjectStorage interface {
12+
GetObjectStorages() (*upcloud.ObjectStorages, error)
13+
GetObjectStorageDetails(r *request.GetObjectStorageDetailsRequest) (*upcloud.ObjectStorageDetails, error)
14+
CreateObjectStorage(r *request.CreateObjectStorageRequest) (*upcloud.ObjectStorageDetails, error)
15+
ModifyObjectStorage(r *request.ModifyObjectStorageRequest) (*upcloud.ObjectStorageDetails, error)
16+
DeleteObjectStorage(r *request.DeleteObjectStorageRequest) error
17+
}
18+
19+
var _ ObjectStorage = (*Service)(nil)
20+
1121
// GetObjectStorages returns the available objects storages
1222
func (s *Service) GetObjectStorages() (*upcloud.ObjectStorages, error) {
1323
objectStorages := upcloud.ObjectStorages{}

upcloud/service/service.go

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,53 @@ import (
1010
"github.com/UpCloudLtd/upcloud-go-api/upcloud/request"
1111
)
1212

13+
type Firewall interface {
14+
GetFirewallRules(r *request.GetFirewallRulesRequest) (*upcloud.FirewallRules, error)
15+
GetFirewallRuleDetails(r *request.GetFirewallRuleDetailsRequest) (*upcloud.FirewallRule, error)
16+
CreateFirewallRule(r *request.CreateFirewallRuleRequest) (*upcloud.FirewallRule, error)
17+
CreateFirewallRules(r *request.CreateFirewallRulesRequest) error
18+
DeleteFirewallRule(r *request.DeleteFirewallRuleRequest) error
19+
}
20+
21+
var _ Firewall = (*Service)(nil)
22+
23+
type IpAddress interface {
24+
GetIPAddresses() (*upcloud.IPAddresses, error)
25+
GetIPAddressDetails(r *request.GetIPAddressDetailsRequest) (*upcloud.IPAddress, error)
26+
AssignIPAddress(r *request.AssignIPAddressRequest) (*upcloud.IPAddress, error)
27+
ModifyIPAddress(r *request.ModifyIPAddressRequest) (*upcloud.IPAddress, error)
28+
ReleaseIPAddress(r *request.ReleaseIPAddressRequest) error
29+
}
30+
31+
var _ IpAddress = (*Service)(nil)
32+
33+
type Server interface {
34+
GetServerConfigurations() (*upcloud.ServerConfigurations, error)
35+
GetServers() (*upcloud.Servers, error)
36+
GetServerDetails(r *request.GetServerDetailsRequest) (*upcloud.ServerDetails, error)
37+
CreateServer(r *request.CreateServerRequest) (*upcloud.ServerDetails, error)
38+
WaitForServerState(r *request.WaitForServerStateRequest) (*upcloud.ServerDetails, error)
39+
StartServer(r *request.StartServerRequest) (*upcloud.ServerDetails, error)
40+
StopServer(r *request.StopServerRequest) (*upcloud.ServerDetails, error)
41+
RestartServer(r *request.RestartServerRequest) (*upcloud.ServerDetails, error)
42+
ModifyServer(r *request.ModifyServerRequest) (*upcloud.ServerDetails, error)
43+
DeleteServer(r *request.DeleteServerRequest) error
44+
DeleteServerAndStorages(r *request.DeleteServerAndStoragesRequest) error
45+
}
46+
47+
var _ Server = (*Service)(nil)
48+
49+
type Tag interface {
50+
GetTags() (*upcloud.Tags, error)
51+
CreateTag(r *request.CreateTagRequest) (*upcloud.Tag, error)
52+
ModifyTag(r *request.ModifyTagRequest) (*upcloud.Tag, error)
53+
DeleteTag(r *request.DeleteTagRequest) error
54+
TagServer(r *request.TagServerRequest) (*upcloud.ServerDetails, error)
55+
UntagServer(r *request.UntagServerRequest) (*upcloud.ServerDetails, error)
56+
}
57+
58+
var _ Tag = (*Service)(nil)
59+
1360
// Service represents the API service. The specified client is used to communicate with the API
1461
type Service struct {
1562
client *client.Client

upcloud/service/storage.go

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,28 @@ import (
1212
"github.com/UpCloudLtd/upcloud-go-api/upcloud/request"
1313
)
1414

15+
type Storage interface {
16+
GetStorages(r *request.GetStoragesRequest) (*upcloud.Storages, error)
17+
GetStorageDetails(r *request.GetStorageDetailsRequest) (*upcloud.StorageDetails, error)
18+
CreateStorage(r *request.CreateStorageRequest) (*upcloud.StorageDetails, error)
19+
ModifyStorage(r *request.ModifyStorageRequest) (*upcloud.StorageDetails, error)
20+
AttachStorage(r *request.AttachStorageRequest) (*upcloud.ServerDetails, error)
21+
DetachStorage(r *request.DetachStorageRequest) (*upcloud.ServerDetails, error)
22+
CloneStorage(r *request.CloneStorageRequest) (*upcloud.StorageDetails, error)
23+
TemplatizeStorage(r *request.TemplatizeStorageRequest) (*upcloud.StorageDetails, error)
24+
WaitForStorageState(r *request.WaitForStorageStateRequest) (*upcloud.StorageDetails, error)
25+
LoadCDROM(r *request.LoadCDROMRequest) (*upcloud.ServerDetails, error)
26+
EjectCDROM(r *request.EjectCDROMRequest) (*upcloud.ServerDetails, error)
27+
CreateBackup(r *request.CreateBackupRequest) (*upcloud.StorageDetails, error)
28+
RestoreBackup(r *request.RestoreBackupRequest) error
29+
CreateStorageImport(r *request.CreateStorageImportRequest) (*upcloud.StorageImportDetails, error)
30+
GetStorageImportDetails(r *request.GetStorageImportDetailsRequest) (*upcloud.StorageImportDetails, error)
31+
WaitForStorageImportCompletion(r *request.WaitForStorageImportCompletionRequest) (*upcloud.StorageImportDetails, error)
32+
DeleteStorage(*request.DeleteStorageRequest) error
33+
}
34+
35+
var _ Storage = (*Service)(nil)
36+
1537
// GetStorages returns all available storages
1638
func (s *Service) GetStorages(r *request.GetStoragesRequest) (*upcloud.Storages, error) {
1739
storages := upcloud.Storages{}

0 commit comments

Comments
 (0)