package api import "github.com/docker/libnetwork/types" /*********** Resources ************/ // networkResource is the body of the "get network" http response message type networkResource struct { Name string `json:"name"` ID string `json:"id"` Type string `json:"type"` Endpoints []*endpointResource `json:"endpoints"` } // endpointResource is the body of the "get endpoint" http response message type endpointResource struct { Name string `json:"name"` ID string `json:"id"` Network string `json:"network"` } // sandboxResource is the body of "get service backend" response message type sandboxResource struct { ID string `json:"id"` Key string `json:"key"` ContainerID string `json:"container_id"` } /*********** Body types ************/ type ipamConf struct { PreferredPool string SubPool string Gateway string AuxAddresses map[string]string } // networkCreate is the expected body of the "create network" http request message type networkCreate struct { Name string `json:"name"` ID string `json:"id"` NetworkType string `json:"network_type"` IPv4Conf []ipamConf `json:"ipv4_configuration"` DriverOpts map[string]string `json:"driver_opts"` NetworkOpts map[string]string `json:"network_opts"` } // endpointCreate represents the body of the "create endpoint" http request message type endpointCreate struct { Name string `json:"name"` MyAliases []string `json:"my_aliases"` } // sandboxCreate is the expected body of the "create sandbox" http request message type sandboxCreate struct { ContainerID string `json:"container_id"` HostName string `json:"host_name"` DomainName string `json:"domain_name"` HostsPath string `json:"hosts_path"` ResolvConfPath string `json:"resolv_conf_path"` DNS []string `json:"dns"` ExtraHosts []extraHost `json:"extra_hosts"` UseDefaultSandbox bool `json:"use_default_sandbox"` UseExternalKey bool `json:"use_external_key"` ExposedPorts []types.TransportPort `json:"exposed_ports"` PortMapping []types.PortBinding `json:"port_mapping"` } // endpointJoin represents the expected body of the "join endpoint" or "leave endpoint" http request messages type endpointJoin struct { SandboxID string `json:"sandbox_id"` Aliases []string `json:"aliases"` } // servicePublish represents the body of the "publish service" http request message type servicePublish struct { Name string `json:"name"` MyAliases []string `json:"my_aliases"` Network string `json:"network_name"` } // serviceDelete represents the body of the "unpublish service" http request message type serviceDelete struct { Name string `json:"name"` Force bool `json:"force"` } // extraHost represents the extra host object type extraHost struct { Name string `json:"name"` Address string `json:"address"` }