| /* |
| Package api represents all requests and responses suitable for conversation |
| with a remote driver. |
| */ |
| package api |
| |
| import ( |
| "net" |
| |
| "github.com/docker/libnetwork/discoverapi" |
| "github.com/docker/libnetwork/driverapi" |
| ) |
| |
| // Response is the basic response structure used in all responses. |
| type Response struct { |
| Err string |
| } |
| |
| // GetError returns the error from the response, if any. |
| func (r *Response) GetError() string { |
| return r.Err |
| } |
| |
| // GetCapabilityResponse is the response of GetCapability request |
| type GetCapabilityResponse struct { |
| Response |
| Scope string |
| } |
| |
| // CreateNetworkRequest requests a new network. |
| type CreateNetworkRequest struct { |
| // A network ID that remote plugins are expected to store for future |
| // reference. |
| NetworkID string |
| |
| // A free form map->object interface for communication of options. |
| Options map[string]interface{} |
| |
| // IPAMData contains the address pool information for this network |
| IPv4Data, IPv6Data []driverapi.IPAMData |
| } |
| |
| // CreateNetworkResponse is the response to the CreateNetworkRequest. |
| type CreateNetworkResponse struct { |
| Response |
| } |
| |
| // DeleteNetworkRequest is the request to delete an existing network. |
| type DeleteNetworkRequest struct { |
| // The ID of the network to delete. |
| NetworkID string |
| } |
| |
| // DeleteNetworkResponse is the response to a request for deleting a network. |
| type DeleteNetworkResponse struct { |
| Response |
| } |
| |
| // CreateEndpointRequest is the request to create an endpoint within a network. |
| type CreateEndpointRequest struct { |
| // Provided at create time, this will be the network id referenced. |
| NetworkID string |
| // The ID of the endpoint for later reference. |
| EndpointID string |
| Interface *EndpointInterface |
| Options map[string]interface{} |
| } |
| |
| // EndpointInterface represents an interface endpoint. |
| type EndpointInterface struct { |
| Address string |
| AddressIPv6 string |
| MacAddress string |
| } |
| |
| // CreateEndpointResponse is the response to the CreateEndpoint action. |
| type CreateEndpointResponse struct { |
| Response |
| Interface *EndpointInterface |
| } |
| |
| // Interface is the representation of a linux interface. |
| type Interface struct { |
| Address *net.IPNet |
| AddressIPv6 *net.IPNet |
| MacAddress net.HardwareAddr |
| } |
| |
| // DeleteEndpointRequest describes the API for deleting an endpoint. |
| type DeleteEndpointRequest struct { |
| NetworkID string |
| EndpointID string |
| } |
| |
| // DeleteEndpointResponse is the response to the DeleteEndpoint action. |
| type DeleteEndpointResponse struct { |
| Response |
| } |
| |
| // EndpointInfoRequest retrieves information about the endpoint from the network driver. |
| type EndpointInfoRequest struct { |
| NetworkID string |
| EndpointID string |
| } |
| |
| // EndpointInfoResponse is the response to an EndpointInfoRequest. |
| type EndpointInfoResponse struct { |
| Response |
| Value map[string]interface{} |
| } |
| |
| // JoinRequest describes the API for joining an endpoint to a sandbox. |
| type JoinRequest struct { |
| NetworkID string |
| EndpointID string |
| SandboxKey string |
| Options map[string]interface{} |
| } |
| |
| // InterfaceName is the struct represetation of a pair of devices with source |
| // and destination, for the purposes of putting an endpoint into a container. |
| type InterfaceName struct { |
| SrcName string |
| DstName string |
| DstPrefix string |
| } |
| |
| // StaticRoute is the plain JSON representation of a static route. |
| type StaticRoute struct { |
| Destination string |
| RouteType int |
| NextHop string |
| } |
| |
| // JoinResponse is the response to a JoinRequest. |
| type JoinResponse struct { |
| Response |
| InterfaceName *InterfaceName |
| Gateway string |
| GatewayIPv6 string |
| StaticRoutes []StaticRoute |
| DisableGatewayService bool |
| } |
| |
| // LeaveRequest describes the API for detaching an endpoint from a sandbox. |
| type LeaveRequest struct { |
| NetworkID string |
| EndpointID string |
| } |
| |
| // LeaveResponse is the answer to LeaveRequest. |
| type LeaveResponse struct { |
| Response |
| } |
| |
| // ProgramExternalConnectivityRequest describes the API for programming the external connectivity for the given endpoint. |
| type ProgramExternalConnectivityRequest struct { |
| NetworkID string |
| EndpointID string |
| Options map[string]interface{} |
| } |
| |
| // ProgramExternalConnectivityResponse is the answer to ProgramExternalConnectivityRequest. |
| type ProgramExternalConnectivityResponse struct { |
| Response |
| } |
| |
| // RevokeExternalConnectivityRequest describes the API for revoking the external connectivity for the given endpoint. |
| type RevokeExternalConnectivityRequest struct { |
| NetworkID string |
| EndpointID string |
| } |
| |
| // RevokeExternalConnectivityResponse is the answer to RevokeExternalConnectivityRequest. |
| type RevokeExternalConnectivityResponse struct { |
| Response |
| } |
| |
| // DiscoveryNotification represents a discovery notification |
| type DiscoveryNotification struct { |
| DiscoveryType discoverapi.DiscoveryType |
| DiscoveryData interface{} |
| } |
| |
| // DiscoveryResponse is used by libnetwork to log any plugin error processing the discovery notifications |
| type DiscoveryResponse struct { |
| Response |
| } |