@@ -232,6 +232,21 @@ func (r ModifyNetworkInterfaceRequest) MarshalJSON() ([]byte, error) {
232232 return json .Marshal (& v )
233233}
234234
235+ // GetRouterssequest represents a request to list routers.
236+ type GetRoutersRequest struct {
237+ Filters []QueryFilter
238+ }
239+
240+ func (r * GetRoutersRequest ) RequestURL () string {
241+ basePath := "/router"
242+
243+ if len (r .Filters ) == 0 {
244+ return basePath
245+ }
246+
247+ return fmt .Sprintf ("%s?%s" , basePath , encodeQueryFilters (r .Filters ))
248+ }
249+
235250// GetRouterDetailsRequest represents a request to get details about a single router.
236251type GetRouterDetailsRequest struct {
237252 UUID string
@@ -244,7 +259,8 @@ func (r *GetRouterDetailsRequest) RequestURL() string {
244259
245260// CreateRouterRequest represents a request to create a new router.
246261type CreateRouterRequest struct {
247- Name string `json:"name"`
262+ Name string `json:"name"`
263+ Labels []upcloud.Label `json:"labels,omitempty"`
248264}
249265
250266// RequestURL implements the Request interface.
@@ -266,9 +282,9 @@ func (r CreateRouterRequest) MarshalJSON() ([]byte, error) {
266282
267283// ModifyRouterRequest represents a request to modify an existing router.
268284type ModifyRouterRequest struct {
269- UUID string `json:"-"`
270-
271- Name string `json:"name "`
285+ UUID string `json:"-"`
286+ Name string `json:"name"`
287+ Labels * []upcloud. Label `json:"labels,omitempty "`
272288}
273289
274290// RequestURL implements the Request interface.
0 commit comments