X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/68438af4765de8fad80a4a770d9bafeb615aa6c0..1166aeb6033725709ded753a0c00f69320a9a873:/sdk/go/arvados/api.go diff --git a/sdk/go/arvados/api.go b/sdk/go/arvados/api.go index a1c7906803..772f8da971 100644 --- a/sdk/go/arvados/api.go +++ b/sdk/go/arvados/api.go @@ -4,6 +4,11 @@ package arvados +import ( + "context" + "encoding/json" +) + type APIEndpoint struct { Method string Path string @@ -12,11 +17,16 @@ type APIEndpoint struct { } var ( + EndpointConfigGet = APIEndpoint{"GET", "arvados/v1/config", ""} EndpointCollectionCreate = APIEndpoint{"POST", "arvados/v1/collections", "collection"} EndpointCollectionUpdate = APIEndpoint{"PATCH", "arvados/v1/collections/:uuid", "collection"} EndpointCollectionGet = APIEndpoint{"GET", "arvados/v1/collections/:uuid", ""} EndpointCollectionList = APIEndpoint{"GET", "arvados/v1/collections", ""} + EndpointCollectionProvenance = APIEndpoint{"GET", "arvados/v1/collections/:uuid/provenance", ""} + EndpointCollectionUsedBy = APIEndpoint{"GET", "arvados/v1/collections/:uuid/used_by", ""} EndpointCollectionDelete = APIEndpoint{"DELETE", "arvados/v1/collections/:uuid", ""} + EndpointCollectionTrash = APIEndpoint{"POST", "arvados/v1/collections/:uuid/trash", ""} + EndpointCollectionUntrash = APIEndpoint{"POST", "arvados/v1/collections/:uuid/untrash", ""} EndpointSpecimenCreate = APIEndpoint{"POST", "arvados/v1/specimens", "specimen"} EndpointSpecimenUpdate = APIEndpoint{"PATCH", "arvados/v1/specimens/:uuid", "specimen"} EndpointSpecimenGet = APIEndpoint{"GET", "arvados/v1/specimens/:uuid", ""} @@ -33,16 +43,28 @@ var ( ) type GetOptions struct { - UUID string `json:"uuid"` - Select []string `json:"select"` + UUID string `json:"uuid"` + Select []string `json:"select"` + IncludeTrash bool `json:"include_trash"` +} + +type UntrashOptions struct { + UUID string `json:"uuid"` + EnsureUniqueName bool `json:"ensure_unique_name"` } type ListOptions struct { - Select []string `json:"select"` - Filters []Filter `json:"filters"` - Limit int `json:"limit"` - Offset int `json:"offset"` - Order string `json:"order"` + ClusterID string `json:"cluster_id"` + Select []string `json:"select"` + Filters []Filter `json:"filters"` + Where map[string]interface{} `json:"where"` + Limit int `json:"limit"` + Offset int `json:"offset"` + Order []string `json:"order"` + Distinct bool `json:"distinct"` + Count string `json:"count"` + IncludeTrash bool `json:"include_trash"` + IncludeOldVersions bool `json:"include_old_versions"` } type CreateOptions struct { @@ -60,3 +82,29 @@ type UpdateOptions struct { type DeleteOptions struct { UUID string `json:"uuid"` } + +type API interface { + ConfigGet(ctx context.Context) (json.RawMessage, error) + CollectionCreate(ctx context.Context, options CreateOptions) (Collection, error) + CollectionUpdate(ctx context.Context, options UpdateOptions) (Collection, error) + CollectionGet(ctx context.Context, options GetOptions) (Collection, error) + CollectionList(ctx context.Context, options ListOptions) (CollectionList, error) + CollectionProvenance(ctx context.Context, options GetOptions) (map[string]interface{}, error) + CollectionUsedBy(ctx context.Context, options GetOptions) (map[string]interface{}, error) + CollectionDelete(ctx context.Context, options DeleteOptions) (Collection, error) + CollectionTrash(ctx context.Context, options DeleteOptions) (Collection, error) + CollectionUntrash(ctx context.Context, options UntrashOptions) (Collection, error) + ContainerCreate(ctx context.Context, options CreateOptions) (Container, error) + ContainerUpdate(ctx context.Context, options UpdateOptions) (Container, error) + ContainerGet(ctx context.Context, options GetOptions) (Container, error) + ContainerList(ctx context.Context, options ListOptions) (ContainerList, error) + ContainerDelete(ctx context.Context, options DeleteOptions) (Container, error) + ContainerLock(ctx context.Context, options GetOptions) (Container, error) + ContainerUnlock(ctx context.Context, options GetOptions) (Container, error) + SpecimenCreate(ctx context.Context, options CreateOptions) (Specimen, error) + SpecimenUpdate(ctx context.Context, options UpdateOptions) (Specimen, error) + SpecimenGet(ctx context.Context, options GetOptions) (Specimen, error) + SpecimenList(ctx context.Context, options ListOptions) (SpecimenList, error) + SpecimenDelete(ctx context.Context, options DeleteOptions) (Specimen, error) + APIClientAuthorizationCurrent(ctx context.Context, options GetOptions) (APIClientAuthorization, error) +}