@@ -7,37 +7,61 @@ import (
77 "net/http"
88)
99
10+ // NetworkIPServiceResponse represents the response structure for Network IP service operations.
11+ type NetworkIPServiceResponse struct {
12+ Name string `json:"name"`
13+ Description string `json:"description"`
14+ NetworkItemType string `json:"networkItemType"`
15+ NetworkItemID string `json:"networkItemId"`
16+ ID string `json:"id"`
17+ Type string `json:"type"`
18+ Config * IPServiceConfig `json:"config"`
19+ Routes []* Route `json:"routes"`
20+ }
21+
22+ // NetworkIPServicePageResponse represents a paginated response from the CloudConnexa API
23+ // containing a list of IP services and pagination metadata.
24+ type NetworkIPServicePageResponse struct {
25+ Content []NetworkIPServiceResponse `json:"content"`
26+ NumberOfElements int `json:"numberOfElements"`
27+ Page int `json:"page"`
28+ Size int `json:"size"`
29+ Success bool `json:"success"`
30+ TotalElements int `json:"totalElements"`
31+ TotalPages int `json:"totalPages"`
32+ }
33+
1034// NetworkIPServicesService handles communication with the CloudConnexa IP Services API
1135type NetworkIPServicesService service
1236
1337// GetIPByPage retrieves a page of IP services with pagination
1438// page: The page number to retrieve
1539// pageSize: The number of items per page
1640// Returns a page of IP services and any error that occurred
17- func (c * NetworkIPServicesService ) GetIPByPage (page int , pageSize int ) (IPServicePageResponse , error ) {
41+ func (c * NetworkIPServicesService ) GetIPByPage (page int , pageSize int ) (NetworkIPServicePageResponse , error ) {
1842 endpoint := fmt .Sprintf ("%s/networks/ip-services?page=%d&size=%d" , c .client .GetV1Url (), page , pageSize )
1943 req , err := http .NewRequest (http .MethodGet , endpoint , nil )
2044 if err != nil {
21- return IPServicePageResponse {}, err
45+ return NetworkIPServicePageResponse {}, err
2246 }
2347
2448 body , err := c .client .DoRequest (req )
2549 if err != nil {
26- return IPServicePageResponse {}, err
50+ return NetworkIPServicePageResponse {}, err
2751 }
2852
29- var response IPServicePageResponse
53+ var response NetworkIPServicePageResponse
3054 err = json .Unmarshal (body , & response )
3155 if err != nil {
32- return IPServicePageResponse {}, err
56+ return NetworkIPServicePageResponse {}, err
3357 }
3458 return response , nil
3559}
3660
3761// List retrieves all IP services by paginating through all available pages
3862// Returns a slice of IP services and any error that occurred
39- func (c * NetworkIPServicesService ) List () ([]IPServiceResponse , error ) {
40- var allIPServices []IPServiceResponse
63+ func (c * NetworkIPServicesService ) List () ([]NetworkIPServiceResponse , error ) {
64+ var allIPServices []NetworkIPServiceResponse
4165 page := 0
4266 pageSize := 10
4367
@@ -59,7 +83,7 @@ func (c *NetworkIPServicesService) List() ([]IPServiceResponse, error) {
5983// Get retrieves a specific IP service by its ID
6084// id: The ID of the IP service to retrieve
6185// Returns the IP service and any error that occurred
62- func (c * NetworkIPServicesService ) Get (id string ) (* IPServiceResponse , error ) {
86+ func (c * NetworkIPServicesService ) Get (id string ) (* NetworkIPServiceResponse , error ) {
6387 endpoint := fmt .Sprintf ("%s/networks/ip-services/%s" , c .client .GetV1Url (), id )
6488 req , err := http .NewRequest (http .MethodGet , endpoint , nil )
6589 if err != nil {
@@ -71,7 +95,7 @@ func (c *NetworkIPServicesService) Get(id string) (*IPServiceResponse, error) {
7195 return nil , err
7296 }
7397
74- var service IPServiceResponse
98+ var service NetworkIPServiceResponse
7599 err = json .Unmarshal (body , & service )
76100 if err != nil {
77101 return nil , err
@@ -82,7 +106,7 @@ func (c *NetworkIPServicesService) Get(id string) (*IPServiceResponse, error) {
82106// Create creates a new IP service
83107// ipService: The IP service configuration to create
84108// Returns the created IP service and any error that occurred
85- func (c * NetworkIPServicesService ) Create (ipService * IPService ) (* IPServiceResponse , error ) {
109+ func (c * NetworkIPServicesService ) Create (ipService * IPService ) (* NetworkIPServiceResponse , error ) {
86110 ipServiceJSON , err := json .Marshal (ipService )
87111 if err != nil {
88112 return nil , err
@@ -100,7 +124,7 @@ func (c *NetworkIPServicesService) Create(ipService *IPService) (*IPServiceRespo
100124 return nil , err
101125 }
102126
103- var s IPServiceResponse
127+ var s NetworkIPServiceResponse
104128 err = json .Unmarshal (body , & s )
105129 if err != nil {
106130 return nil , err
@@ -112,7 +136,7 @@ func (c *NetworkIPServicesService) Create(ipService *IPService) (*IPServiceRespo
112136// id: The ID of the IP service to update
113137// service: The updated IP service configuration
114138// Returns the updated IP service and any error that occurred
115- func (c * NetworkIPServicesService ) Update (id string , service * IPService ) (* IPServiceResponse , error ) {
139+ func (c * NetworkIPServicesService ) Update (id string , service * IPService ) (* NetworkIPServiceResponse , error ) {
116140 serviceJSON , err := json .Marshal (service )
117141 if err != nil {
118142 return nil , err
@@ -130,7 +154,7 @@ func (c *NetworkIPServicesService) Update(id string, service *IPService) (*IPSer
130154 return nil , err
131155 }
132156
133- var s IPServiceResponse
157+ var s NetworkIPServiceResponse
134158 err = json .Unmarshal (body , & s )
135159 if err != nil {
136160 return nil , err
0 commit comments