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 okhttp3.HttpUrl;
11 import okhttp3.HttpUrl.Builder;
12 import okhttp3.Request;
13 import okhttp3.RequestBody;
14 import org.arvados.client.api.model.Group;
15 import org.arvados.client.api.model.GroupList;
16 import org.arvados.client.api.model.argument.ContentsGroup;
17 import org.arvados.client.api.model.argument.UntrashGroup;
18 import org.arvados.client.config.ConfigProvider;
19 import org.slf4j.Logger;
21 public class GroupsApiClient extends BaseStandardApiClient<Group, GroupList> {
23 private static final String RESOURCE = "groups";
24 private final Logger log = org.slf4j.LoggerFactory.getLogger(GroupsApiClient.class);
26 public GroupsApiClient(ConfigProvider config) {
30 public GroupList contents(ContentsGroup contentsGroup) {
31 log.debug("Get {} contents", getType().getSimpleName());
32 Builder urlBuilder = getUrlBuilder().addPathSegment("contents");
33 addQueryParameters(urlBuilder, contentsGroup);
34 HttpUrl url = urlBuilder.build();
35 Request request = getRequestBuilder().url(url).build();
36 return callForList(request);
39 public Group untrash(UntrashGroup untrashGroup) {
40 log.debug("Untrash {} by UUID {}", getType().getSimpleName(), untrashGroup.getUuid());
41 HttpUrl url = getUrlBuilder().addPathSegment(untrashGroup.getUuid()).addPathSegment("untrash").build();
42 RequestBody requestBody = getJsonRequestBody(untrashGroup);
43 Request request = getRequestBuilder().post(requestBody).url(url).build();
44 return callForType(request);
48 String getResource() {
53 Class<Group> getType() {
58 Class<GroupList> getListType() {
59 return GroupList.class;