Merge branch '17119-add-filter-groups'
[arvados.git] / sdk / go / arvados / api.go
index 13d09872b24d4226bdf70c7e8bf68a48f3e4023e..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"}
@@ -134,15 +135,19 @@ 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"`
 }
 
@@ -229,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)
+       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)