2 * Copyright (C) The Arvados Authors. All rights reserved.
4 * SPDX-License-Identifier: AGPL-3.0 OR Apache-2.0
8 package org.arvados.client.api.client;
10 import org.arvados.client.api.model.Collection;
11 import org.arvados.client.api.model.CollectionList;
12 import org.arvados.client.api.model.CollectionReplaceFiles;
13 import org.arvados.client.config.ConfigProvider;
14 import org.slf4j.Logger;
16 import okhttp3.HttpUrl;
17 import okhttp3.Request;
18 import okhttp3.RequestBody;
20 public class CollectionsApiClient extends BaseStandardApiClient<Collection, CollectionList> {
22 private static final String RESOURCE = "collections";
24 private final Logger log = org.slf4j.LoggerFactory.getLogger(CollectionsApiClient.class);
26 public CollectionsApiClient(ConfigProvider config) {
31 public Collection create(Collection type) {
32 Collection newCollection = super.create(type);
33 log.debug(String.format("New collection '%s' with UUID %s has been created", newCollection.getName(), newCollection.getUuid()));
37 public Collection update(String collectionUUID, CollectionReplaceFiles replaceFilesRequest) {
38 String json = mapToJson(replaceFilesRequest);
39 RequestBody body = RequestBody.create(JSON, json);
40 HttpUrl url = getUrlBuilder().addPathSegment(collectionUUID).build();
41 Request request = getRequestBuilder().put(body).url(url).build();
42 return callForType(request);
46 String getResource() {
51 Class<Collection> getType() {
52 return Collection.class;
56 Class<CollectionList> getListType() {
57 return CollectionList.class;