package schema import "time" // Network defines the schema of a network. type Network struct { ID int `json:"id"` Name string `json:"name"` Created time.Time `json:"created"` IPRange string `json:"ip_range"` Subnets []NetworkSubnet `json:"subnets"` Routes []NetworkRoute `json:"routes"` Servers []int `json:"servers"` Protection NetworkProtection `json:"protection"` Labels map[string]string `json:"labels"` } // NetworkSubnet represents a subnet of a network. type NetworkSubnet struct { Type string `json:"type"` IPRange string `json:"ip_range"` NetworkZone string `json:"network_zone"` Gateway string `json:"gateway"` } // NetworkRoute represents a route of a network. type NetworkRoute struct { Destination string `json:"destination"` Gateway string `json:"gateway"` } // NetworkProtection represents the protection level of a network. type NetworkProtection struct { Delete bool `json:"delete"` } // NetworkUpdateRequest defines the schema of the request to update a network. type NetworkUpdateRequest struct { Name string `json:"name,omitempty"` Labels *map[string]string `json:"labels,omitempty"` } // NetworkUpdateResponse defines the schema of the response when updating a network. type NetworkUpdateResponse struct { Network Network `json:"network"` } // NetworkListResponse defines the schema of the response when // listing networks. type NetworkListResponse struct { Networks []Network `json:"networks"` } // NetworkGetResponse defines the schema of the response when // retrieving a single network. type NetworkGetResponse struct { Network Network `json:"network"` } // NetworkCreateRequest defines the schema of the request to create a network. type NetworkCreateRequest struct { Name string `json:"name"` IPRange string `json:"ip_range"` Subnets []NetworkSubnet `json:"subnets,omitempty"` Routes []NetworkRoute `json:"routes,omitempty"` Labels *map[string]string `json:"labels,omitempty"` } // NetworkCreateResponse defines the schema of the response when // creating a network. type NetworkCreateResponse struct { Network Network `json:"network"` } // NetworkActionChangeIPRangeRequest defines the schema of the request to // change the IP range of a network. type NetworkActionChangeIPRangeRequest struct { IPRange string `json:"ip_range"` } // NetworkActionChangeIPRangeResponse defines the schema of the response when // changing the IP range of a network. type NetworkActionChangeIPRangeResponse struct { Action Action `json:"action"` } // NetworkActionAddSubnetRequest defines the schema of the request to // add a subnet to a network. type NetworkActionAddSubnetRequest struct { Type string `json:"type"` IPRange string `json:"ip_range,omitempty"` NetworkZone string `json:"network_zone"` Gateway string `json:"gateway"` } // NetworkActionAddSubnetResponse defines the schema of the response when // adding a subnet to a network. type NetworkActionAddSubnetResponse struct { Action Action `json:"action"` } // NetworkActionDeleteSubnetRequest defines the schema of the request to // delete a subnet from a network. type NetworkActionDeleteSubnetRequest struct { IPRange string `json:"ip_range"` } // NetworkActionDeleteSubnetResponse defines the schema of the response when // deleting a subnet from a network. type NetworkActionDeleteSubnetResponse struct { Action Action `json:"action"` } // NetworkActionAddRouteRequest defines the schema of the request to // add a route to a network. type NetworkActionAddRouteRequest struct { Destination string `json:"destination"` Gateway string `json:"gateway"` } // NetworkActionAddRouteResponse defines the schema of the response when // adding a route to a network. type NetworkActionAddRouteResponse struct { Action Action `json:"action"` } // NetworkActionDeleteRouteRequest defines the schema of the request to // delete a route from a network. type NetworkActionDeleteRouteRequest struct { Destination string `json:"destination"` Gateway string `json:"gateway"` } // NetworkActionDeleteRouteResponse defines the schema of the response when // deleting a route from a network. type NetworkActionDeleteRouteResponse struct { Action Action `json:"action"` } // NetworkActionChangeProtectionRequest defines the schema of the request to // change the resource protection of a network. type NetworkActionChangeProtectionRequest struct { Delete *bool `json:"delete,omitempty"` } // NetworkActionChangeProtectionResponse defines the schema of the response when // changing the resource protection of a network. type NetworkActionChangeProtectionResponse struct { Action Action `json:"action"` }