2960: Refactor keepstore into a streaming server.
[arvados.git] / sdk / go / arvados / api.go
index f4ac1ab3c424c896de04d9da7c904a4dd199d5af..e7310818f7d745b55fda3ceed59bf2438bfab9e1 100644 (file)
@@ -25,6 +25,7 @@ type APIEndpoint struct {
 var (
        EndpointConfigGet                     = APIEndpoint{"GET", "arvados/v1/config", ""}
        EndpointVocabularyGet                 = APIEndpoint{"GET", "arvados/v1/vocabulary", ""}
+       EndpointDiscoveryDocument             = APIEndpoint{"GET", "discovery/v1/apis/arvados/v1/rest", ""}
        EndpointLogin                         = APIEndpoint{"GET", "login", ""}
        EndpointLogout                        = APIEndpoint{"GET", "logout", ""}
        EndpointAuthorizedKeyCreate           = APIEndpoint{"POST", "arvados/v1/authorized_keys", "authorized_key"}
@@ -240,11 +241,17 @@ type LogoutOptions struct {
        ReturnTo string `json:"return_to"` // Redirect to this URL after logging out
 }
 
+type BlockReadOptions struct {
+       Locator      string
+       WriteTo      io.Writer
+       LocalLocator func(string)
+}
+
 type BlockWriteOptions struct {
        Hash           string
        Data           []byte
-       Reader         io.Reader
-       DataSize       int // Must be set if Data is nil.
+       Reader         io.Reader // Must be set if Data is nil.
+       DataSize       int       // Must be set if Data is nil.
        RequestID      string
        StorageClasses []string
        Replicas       int
@@ -252,8 +259,9 @@ type BlockWriteOptions struct {
 }
 
 type BlockWriteResponse struct {
-       Locator  string
-       Replicas int
+       Locator        string
+       Replicas       int
+       StorageClasses map[string]int
 }
 
 type WebDAVOptions struct {
@@ -347,4 +355,5 @@ type API interface {
        APIClientAuthorizationDelete(ctx context.Context, options DeleteOptions) (APIClientAuthorization, error)
        APIClientAuthorizationUpdate(ctx context.Context, options UpdateOptions) (APIClientAuthorization, error)
        APIClientAuthorizationGet(ctx context.Context, options GetOptions) (APIClientAuthorization, error)
+       DiscoveryDocument(ctx context.Context) (DiscoveryDocument, error)
 }