17840: Deduplicate flag-parsing code.
[arvados.git] / sdk / go / arvados / api.go
index bfae393f861ce9bc168519cf49581b711c8efb82..b429e800841eb7e4935c63ebb56560ec93f556eb 100644 (file)
@@ -8,6 +8,7 @@ import (
        "bufio"
        "context"
        "encoding/json"
        "bufio"
        "context"
        "encoding/json"
+       "io"
        "net"
 
        "github.com/sirupsen/logrus"
        "net"
 
        "github.com/sirupsen/logrus"
@@ -74,7 +75,6 @@ var (
        EndpointUserSystem                    = APIEndpoint{"GET", "arvados/v1/users/system", ""}
        EndpointUserUnsetup                   = APIEndpoint{"POST", "arvados/v1/users/{uuid}/unsetup", ""}
        EndpointUserUpdate                    = APIEndpoint{"PATCH", "arvados/v1/users/{uuid}", "user"}
        EndpointUserSystem                    = APIEndpoint{"GET", "arvados/v1/users/system", ""}
        EndpointUserUnsetup                   = APIEndpoint{"POST", "arvados/v1/users/{uuid}/unsetup", ""}
        EndpointUserUpdate                    = APIEndpoint{"PATCH", "arvados/v1/users/{uuid}", "user"}
-       EndpointUserUpdateUUID                = APIEndpoint{"POST", "arvados/v1/users/{uuid}/update_uuid", ""}
        EndpointUserBatchUpdate               = APIEndpoint{"PATCH", "arvados/v1/users/batch_update", ""}
        EndpointUserAuthenticate              = APIEndpoint{"POST", "arvados/v1/users/authenticate", ""}
        EndpointAPIClientAuthorizationCurrent = APIEndpoint{"GET", "arvados/v1/api_client_authorizations/current", ""}
        EndpointUserBatchUpdate               = APIEndpoint{"PATCH", "arvados/v1/users/batch_update", ""}
        EndpointUserAuthenticate              = APIEndpoint{"POST", "arvados/v1/users/authenticate", ""}
        EndpointAPIClientAuthorizationCurrent = APIEndpoint{"GET", "arvados/v1/api_client_authorizations/current", ""}
@@ -132,10 +132,12 @@ type CreateOptions struct {
 type UpdateOptions struct {
        UUID             string                 `json:"uuid"`
        Attrs            map[string]interface{} `json:"attrs"`
 type UpdateOptions struct {
        UUID             string                 `json:"uuid"`
        Attrs            map[string]interface{} `json:"attrs"`
+       Select           []string               `json:"select"`
        BypassFederation bool                   `json:"bypass_federation"`
 }
 
 type GroupContentsOptions struct {
        BypassFederation bool                   `json:"bypass_federation"`
 }
 
 type GroupContentsOptions struct {
+       ClusterID          string   `json:"cluster_id"`
        UUID               string   `json:"uuid,omitempty"`
        Select             []string `json:"select"`
        Filters            []Filter `json:"filters"`
        UUID               string   `json:"uuid,omitempty"`
        Select             []string `json:"select"`
        Filters            []Filter `json:"filters"`
@@ -151,11 +153,6 @@ type GroupContentsOptions struct {
        ExcludeHomeProject bool     `json:"exclude_home_project"`
 }
 
        ExcludeHomeProject bool     `json:"exclude_home_project"`
 }
 
-type UpdateUUIDOptions struct {
-       UUID    string `json:"uuid"`
-       NewUUID string `json:"new_uuid"`
-}
-
 type UserActivateOptions struct {
        UUID string `json:"uuid"`
 }
 type UserActivateOptions struct {
        UUID string `json:"uuid"`
 }
@@ -204,6 +201,22 @@ type LogoutOptions struct {
        ReturnTo string `json:"return_to"` // Redirect to this URL after logging out
 }
 
        ReturnTo string `json:"return_to"` // Redirect to this URL after logging out
 }
 
+type BlockWriteOptions struct {
+       Hash           string
+       Data           []byte
+       Reader         io.Reader
+       DataSize       int // Must be set if Data is nil.
+       RequestID      string
+       StorageClasses []string
+       Replicas       int
+       Attempts       int
+}
+
+type BlockWriteResponse struct {
+       Locator  string
+       Replicas int
+}
+
 type API interface {
        ConfigGet(ctx context.Context) (json.RawMessage, error)
        Login(ctx context.Context, options LoginOptions) (LoginResponse, error)
 type API interface {
        ConfigGet(ctx context.Context) (json.RawMessage, error)
        Login(ctx context.Context, options LoginOptions) (LoginResponse, error)
@@ -246,7 +259,6 @@ type API interface {
        SpecimenDelete(ctx context.Context, options DeleteOptions) (Specimen, error)
        UserCreate(ctx context.Context, options CreateOptions) (User, error)
        UserUpdate(ctx context.Context, options UpdateOptions) (User, error)
        SpecimenDelete(ctx context.Context, options DeleteOptions) (Specimen, error)
        UserCreate(ctx context.Context, options CreateOptions) (User, error)
        UserUpdate(ctx context.Context, options UpdateOptions) (User, error)
-       UserUpdateUUID(ctx context.Context, options UpdateUUIDOptions) (User, error)
        UserMerge(ctx context.Context, options UserMergeOptions) (User, error)
        UserActivate(ctx context.Context, options UserActivateOptions) (User, error)
        UserSetup(ctx context.Context, options UserSetupOptions) (map[string]interface{}, error)
        UserMerge(ctx context.Context, options UserMergeOptions) (User, error)
        UserActivate(ctx context.Context, options UserActivateOptions) (User, error)
        UserSetup(ctx context.Context, options UserSetupOptions) (map[string]interface{}, error)