Merge branch '17392-go-write-to-storage-class'
[arvados.git] / sdk / go / arvados / api.go
index 107d2b39260ecd96ee0c417446b07bc277d84f31..bfae393f861ce9bc168519cf49581b711c8efb82 100644 (file)
@@ -56,9 +56,10 @@ var (
        EndpointGroupGet                      = APIEndpoint{"GET", "arvados/v1/groups/{uuid}", ""}
        EndpointGroupList                     = APIEndpoint{"GET", "arvados/v1/groups", ""}
        EndpointGroupContents                 = APIEndpoint{"GET", "arvados/v1/groups/contents", ""}
-       EndpointGroupContents2                = APIEndpoint{"GET", "arvados/v1/groups/{uuid}/contents", ""}
+       EndpointGroupContentsUUIDInPath       = APIEndpoint{"GET", "arvados/v1/groups/{uuid}/contents", ""} // Alternative HTTP route; client-side code should always use EndpointGroupContents instead
        EndpointGroupShared                   = APIEndpoint{"GET", "arvados/v1/groups/shared", ""}
        EndpointGroupDelete                   = APIEndpoint{"DELETE", "arvados/v1/groups/{uuid}", ""}
+       EndpointGroupTrash                    = APIEndpoint{"POST", "arvados/v1/groups/{uuid}/trash", ""}
        EndpointGroupUntrash                  = APIEndpoint{"POST", "arvados/v1/groups/{uuid}/untrash", ""}
        EndpointUserActivate                  = APIEndpoint{"POST", "arvados/v1/users/{uuid}/activate", ""}
        EndpointUserCreate                    = APIEndpoint{"POST", "arvados/v1/users", "user"}
@@ -118,6 +119,7 @@ type ListOptions struct {
        IncludeOldVersions bool                   `json:"include_old_versions"`
        BypassFederation   bool                   `json:"bypass_federation"`
        ForwardedFor       string                 `json:"forwarded_for,omitempty"`
+       Include            string                 `json:"include"`
 }
 
 type CreateOptions struct {
@@ -133,29 +135,22 @@ type UpdateOptions struct {
        BypassFederation bool                   `json:"bypass_federation"`
 }
 
-type ContentsOptions struct {
+type GroupContentsOptions struct {
        UUID               string   `json:"uuid,omitempty"`
        Select             []string `json:"select"`
        Filters            []Filter `json:"filters"`
        Limit              int64    `json:"limit"`
        Offset             int64    `json:"offset"`
        Order              []string `json:"order"`
+       Distinct           bool     `json:"distinct"`
+       Count              string   `json:"count"`
        Include            string   `json:"include"`
        Recursive          bool     `json:"recursive"`
+       IncludeTrash       bool     `json:"include_trash"`
+       IncludeOldVersions bool     `json:"include_old_versions"`
        ExcludeHomeProject bool     `json:"exclude_home_project"`
 }
 
-type SharedOptions struct {
-       UUID    string   `json:"uuid,omitempty"`
-       Select  []string `json:"select"`
-       Filters []Filter `json:"filters"`
-       Limit   int64    `json:"limit"`
-       Offset  int64    `json:"offset"`
-       Count   string   `json:"count"`
-       Order   []string `json:"order"`
-       Include string   `json:"include"`
-}
-
 type UpdateUUIDOptions struct {
        UUID    string `json:"uuid"`
        NewUUID string `json:"new_uuid"`
@@ -239,9 +234,10 @@ type API interface {
        GroupUpdate(ctx context.Context, options UpdateOptions) (Group, error)
        GroupGet(ctx context.Context, options GetOptions) (Group, error)
        GroupList(ctx context.Context, options ListOptions) (GroupList, error)
-       GroupContents(ctx context.Context, options ContentsOptions) (ObjectList, error)
-       GroupShared(ctx context.Context, options SharedOptions) (GroupList, error)
+       GroupContents(ctx context.Context, options GroupContentsOptions) (ObjectList, error)
+       GroupShared(ctx context.Context, options ListOptions) (GroupList, error)
        GroupDelete(ctx context.Context, options DeleteOptions) (Group, error)
+       GroupTrash(ctx context.Context, options DeleteOptions) (Group, error)
        GroupUntrash(ctx context.Context, options UntrashOptions) (Group, error)
        SpecimenCreate(ctx context.Context, options CreateOptions) (Specimen, error)
        SpecimenUpdate(ctx context.Context, options UpdateOptions) (Specimen, error)