All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.dominodatalab.api.rest.ControlCenterApi Maven / Gradle / Ivy

/*
 * Domino Data Lab API v4
 * This API is going to provide access to all the Domino functions available in the user interface. To authenticate your requests, include your API Key (which you can find on your account page) with the header X-Domino-Api-Key. 
 *
 * The version of the OpenAPI document: 4.0.0
 * 
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */

package com.dominodatalab.api.rest;

import com.dominodatalab.api.invoker.ApiClient;
import com.dominodatalab.api.invoker.ApiException;
import com.dominodatalab.api.invoker.ApiResponse;
import com.dominodatalab.api.invoker.Pair;

import com.dominodatalab.api.model.DominoApiErrorResponse;
import com.dominodatalab.api.model.DominoServerControlcenterHardwareTiersUtilizationDTO;
import com.dominodatalab.api.model.DominoServerControlcenterOrganizationStatsDTO;
import com.dominodatalab.api.model.DominoServerControlcenterTopItemDTO;
import com.dominodatalab.api.model.DominoServerControlcenterUserStatsDTO;
import com.dominodatalab.api.model.GetRunsPerDay200Response;
import com.dominodatalab.api.model.RunUtilization;

import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;

import java.io.InputStream;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
import java.io.OutputStream;
import java.net.http.HttpRequest;
import java.nio.channels.Channels;
import java.nio.channels.Pipe;
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.time.Duration;

import java.util.ArrayList;
import java.util.StringJoiner;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.function.Consumer;

@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2023-10-17T15:20:46.682098100-04:00[America/New_York]")
public class ControlCenterApi {
  private final HttpClient memberVarHttpClient;
  private final ObjectMapper memberVarObjectMapper;
  private final String memberVarBaseUri;
  private final Consumer memberVarInterceptor;
  private final Duration memberVarReadTimeout;
  private final Consumer> memberVarResponseInterceptor;
  private final Consumer> memberVarAsyncResponseInterceptor;

  public ControlCenterApi() {
    this(new ApiClient());
  }

  public ControlCenterApi(ApiClient apiClient) {
    memberVarHttpClient = apiClient.getHttpClient();
    memberVarObjectMapper = apiClient.getObjectMapper();
    memberVarBaseUri = apiClient.getBaseUri();
    memberVarInterceptor = apiClient.getRequestInterceptor();
    memberVarReadTimeout = apiClient.getReadTimeout();
    memberVarResponseInterceptor = apiClient.getResponseInterceptor();
    memberVarAsyncResponseInterceptor = apiClient.getAsyncResponseInterceptor();
  }

  protected ApiException getApiException(String operationId, HttpResponse response) throws IOException {
    String body = response.body() == null ? null : new String(response.body().readAllBytes());
    String message = formatExceptionMessage(operationId, response.statusCode(), body);
    return new ApiException(response.statusCode(), message, response.headers(), body);
  }

  private String formatExceptionMessage(String operationId, int statusCode, String body) {
    if (body == null || body.isEmpty()) {
      body = "[no body]";
    }
    return operationId + " call failed with: " + statusCode + " - " + body;
  }

  /**
   * retrieves utilization and cost summary by hardware tier
   * 
   * @param startDate Start of the date range in YYYYMMDD format (required)
   * @param endDate End of the date range in YYYYMMDD format (required)
   * @return List<DominoServerControlcenterHardwareTiersUtilizationDTO>
   * @throws ApiException if fails to make API call
   */
  public List getHardwareTiers(String startDate, String endDate) throws ApiException {
    ApiResponse> localVarResponse = getHardwareTiersWithHttpInfo(startDate, endDate);
    return localVarResponse.getData();
  }

  /**
   * retrieves utilization and cost summary by hardware tier
   * 
   * @param startDate Start of the date range in YYYYMMDD format (required)
   * @param endDate End of the date range in YYYYMMDD format (required)
   * @return ApiResponse<List<DominoServerControlcenterHardwareTiersUtilizationDTO>>
   * @throws ApiException if fails to make API call
   */
  public ApiResponse> getHardwareTiersWithHttpInfo(String startDate, String endDate) throws ApiException {
    HttpRequest.Builder localVarRequestBuilder = getHardwareTiersRequestBuilder(startDate, endDate);
    try {
      HttpResponse localVarResponse = memberVarHttpClient.send(
          localVarRequestBuilder.build(),
          HttpResponse.BodyHandlers.ofInputStream());
      if (memberVarResponseInterceptor != null) {
        memberVarResponseInterceptor.accept(localVarResponse);
      }
      try {
        if (localVarResponse.statusCode()/ 100 != 2) {
          throw getApiException("getHardwareTiers", localVarResponse);
        }
        return new ApiResponse>(
          localVarResponse.statusCode(),
          localVarResponse.headers().map(),
          localVarResponse.body() == null ? null : memberVarObjectMapper.readValue(localVarResponse.body(), new TypeReference>() {}) // closes the InputStream
        );
      } finally {
      }
    } catch (IOException e) {
      throw new ApiException(e);
    }
    catch (InterruptedException e) {
      Thread.currentThread().interrupt();
      throw new ApiException(e);
    }
  }

  private HttpRequest.Builder getHardwareTiersRequestBuilder(String startDate, String endDate) throws ApiException {
    // verify the required parameter 'startDate' is set
    if (startDate == null) {
      throw new ApiException(400, "Missing the required parameter 'startDate' when calling getHardwareTiers");
    }
    // verify the required parameter 'endDate' is set
    if (endDate == null) {
      throw new ApiException(400, "Missing the required parameter 'endDate' when calling getHardwareTiers");
    }

    HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();

    String localVarPath = "/controlCenter/utilization/hardwareTiers";

    List localVarQueryParams = new ArrayList<>();
    StringJoiner localVarQueryStringJoiner = new StringJoiner("&");
    String localVarQueryParameterBaseName;
    localVarQueryParameterBaseName = "startDate";
    localVarQueryParams.addAll(ApiClient.parameterToPairs("startDate", startDate));
    localVarQueryParameterBaseName = "endDate";
    localVarQueryParams.addAll(ApiClient.parameterToPairs("endDate", endDate));

    if (!localVarQueryParams.isEmpty() || localVarQueryStringJoiner.length() != 0) {
      StringJoiner queryJoiner = new StringJoiner("&");
      localVarQueryParams.forEach(p -> queryJoiner.add(p.getName() + '=' + p.getValue()));
      if (localVarQueryStringJoiner.length() != 0) {
        queryJoiner.add(localVarQueryStringJoiner.toString());
      }
      localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath + '?' + queryJoiner.toString()));
    } else {
      localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath));
    }

    localVarRequestBuilder.header("Accept", "application/json");

    localVarRequestBuilder.method("GET", HttpRequest.BodyPublishers.noBody());
    if (memberVarReadTimeout != null) {
      localVarRequestBuilder.timeout(memberVarReadTimeout);
    }
    if (memberVarInterceptor != null) {
      memberVarInterceptor.accept(localVarRequestBuilder);
    }
    return localVarRequestBuilder;
  }
  /**
   * this endpoint will be temporarily used to discover if Kubecost is installed and will be removed if we retire the current cost& compute page
   * 
   * @throws ApiException if fails to make API call
   */
  public void getKubecostLiveness() throws ApiException {
    getKubecostLivenessWithHttpInfo();
  }

  /**
   * this endpoint will be temporarily used to discover if Kubecost is installed and will be removed if we retire the current cost& compute page
   * 
   * @return ApiResponse<Void>
   * @throws ApiException if fails to make API call
   */
  public ApiResponse getKubecostLivenessWithHttpInfo() throws ApiException {
    HttpRequest.Builder localVarRequestBuilder = getKubecostLivenessRequestBuilder();
    try {
      HttpResponse localVarResponse = memberVarHttpClient.send(
          localVarRequestBuilder.build(),
          HttpResponse.BodyHandlers.ofInputStream());
      if (memberVarResponseInterceptor != null) {
        memberVarResponseInterceptor.accept(localVarResponse);
      }
      try {
        if (localVarResponse.statusCode()/ 100 != 2) {
          throw getApiException("getKubecostLiveness", localVarResponse);
        }
        return new ApiResponse(
          localVarResponse.statusCode(),
          localVarResponse.headers().map(),
          null
        );
      } finally {
        // Drain the InputStream
        while (localVarResponse.body().read() != -1) {
            // Ignore
        }
        localVarResponse.body().close();
      }
    } catch (IOException e) {
      throw new ApiException(e);
    }
    catch (InterruptedException e) {
      Thread.currentThread().interrupt();
      throw new ApiException(e);
    }
  }

  private HttpRequest.Builder getKubecostLivenessRequestBuilder() throws ApiException {

    HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();

    String localVarPath = "/controlCenter/utilization/kubecostDeployed";

    localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath));

    localVarRequestBuilder.header("Accept", "application/json");

    localVarRequestBuilder.method("GET", HttpRequest.BodyPublishers.noBody());
    if (memberVarReadTimeout != null) {
      localVarRequestBuilder.timeout(memberVarReadTimeout);
    }
    if (memberVarInterceptor != null) {
      memberVarInterceptor.accept(localVarRequestBuilder);
    }
    return localVarRequestBuilder;
  }
  /**
   * retrieves run usage and cost details
   * 
   * @param startDate Start of the date range in YYYYMMDD format (required)
   * @param endDate End of the date range in YYYYMMDD format (required)
   * @param projectId Optional filter by project (optional)
   * @param startingUserId Optional filter by starting user (optional)
   * @param organizationId Optional filter by organization id (optional)
   * @param hardwareTierId Optional filter by hardware tier (optional)
   * @return List<RunUtilization>
   * @throws ApiException if fails to make API call
   */
  public List getRuns(String startDate, String endDate, String projectId, String startingUserId, String organizationId, String hardwareTierId) throws ApiException {
    ApiResponse> localVarResponse = getRunsWithHttpInfo(startDate, endDate, projectId, startingUserId, organizationId, hardwareTierId);
    return localVarResponse.getData();
  }

  /**
   * retrieves run usage and cost details
   * 
   * @param startDate Start of the date range in YYYYMMDD format (required)
   * @param endDate End of the date range in YYYYMMDD format (required)
   * @param projectId Optional filter by project (optional)
   * @param startingUserId Optional filter by starting user (optional)
   * @param organizationId Optional filter by organization id (optional)
   * @param hardwareTierId Optional filter by hardware tier (optional)
   * @return ApiResponse<List<RunUtilization>>
   * @throws ApiException if fails to make API call
   */
  public ApiResponse> getRunsWithHttpInfo(String startDate, String endDate, String projectId, String startingUserId, String organizationId, String hardwareTierId) throws ApiException {
    HttpRequest.Builder localVarRequestBuilder = getRunsRequestBuilder(startDate, endDate, projectId, startingUserId, organizationId, hardwareTierId);
    try {
      HttpResponse localVarResponse = memberVarHttpClient.send(
          localVarRequestBuilder.build(),
          HttpResponse.BodyHandlers.ofInputStream());
      if (memberVarResponseInterceptor != null) {
        memberVarResponseInterceptor.accept(localVarResponse);
      }
      try {
        if (localVarResponse.statusCode()/ 100 != 2) {
          throw getApiException("getRuns", localVarResponse);
        }
        return new ApiResponse>(
          localVarResponse.statusCode(),
          localVarResponse.headers().map(),
          localVarResponse.body() == null ? null : memberVarObjectMapper.readValue(localVarResponse.body(), new TypeReference>() {}) // closes the InputStream
        );
      } finally {
      }
    } catch (IOException e) {
      throw new ApiException(e);
    }
    catch (InterruptedException e) {
      Thread.currentThread().interrupt();
      throw new ApiException(e);
    }
  }

  private HttpRequest.Builder getRunsRequestBuilder(String startDate, String endDate, String projectId, String startingUserId, String organizationId, String hardwareTierId) throws ApiException {
    // verify the required parameter 'startDate' is set
    if (startDate == null) {
      throw new ApiException(400, "Missing the required parameter 'startDate' when calling getRuns");
    }
    // verify the required parameter 'endDate' is set
    if (endDate == null) {
      throw new ApiException(400, "Missing the required parameter 'endDate' when calling getRuns");
    }

    HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();

    String localVarPath = "/controlCenter/utilization/runs";

    List localVarQueryParams = new ArrayList<>();
    StringJoiner localVarQueryStringJoiner = new StringJoiner("&");
    String localVarQueryParameterBaseName;
    localVarQueryParameterBaseName = "projectId";
    localVarQueryParams.addAll(ApiClient.parameterToPairs("projectId", projectId));
    localVarQueryParameterBaseName = "startingUserId";
    localVarQueryParams.addAll(ApiClient.parameterToPairs("startingUserId", startingUserId));
    localVarQueryParameterBaseName = "organizationId";
    localVarQueryParams.addAll(ApiClient.parameterToPairs("organizationId", organizationId));
    localVarQueryParameterBaseName = "hardwareTierId";
    localVarQueryParams.addAll(ApiClient.parameterToPairs("hardwareTierId", hardwareTierId));
    localVarQueryParameterBaseName = "startDate";
    localVarQueryParams.addAll(ApiClient.parameterToPairs("startDate", startDate));
    localVarQueryParameterBaseName = "endDate";
    localVarQueryParams.addAll(ApiClient.parameterToPairs("endDate", endDate));

    if (!localVarQueryParams.isEmpty() || localVarQueryStringJoiner.length() != 0) {
      StringJoiner queryJoiner = new StringJoiner("&");
      localVarQueryParams.forEach(p -> queryJoiner.add(p.getName() + '=' + p.getValue()));
      if (localVarQueryStringJoiner.length() != 0) {
        queryJoiner.add(localVarQueryStringJoiner.toString());
      }
      localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath + '?' + queryJoiner.toString()));
    } else {
      localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath));
    }

    localVarRequestBuilder.header("Accept", "application/json");

    localVarRequestBuilder.method("GET", HttpRequest.BodyPublishers.noBody());
    if (memberVarReadTimeout != null) {
      localVarRequestBuilder.timeout(memberVarReadTimeout);
    }
    if (memberVarInterceptor != null) {
      memberVarInterceptor.accept(localVarRequestBuilder);
    }
    return localVarRequestBuilder;
  }
  /**
   * retrieves run usage and cost details per day
   * 
   * @param startDate Start of the date range in YYYYMMDD format (required)
   * @param endDate End of the date range in YYYYMMDD format (required)
   * @param projectId Optional filter by project (optional)
   * @param startingUserId Optional filter by starting user (optional)
   * @param organizationId Optional filter by organization id (optional)
   * @param hardwareTierId Optional filter by hardware tier (optional)
   * @return GetRunsPerDay200Response
   * @throws ApiException if fails to make API call
   */
  public GetRunsPerDay200Response getRunsPerDay(String startDate, String endDate, String projectId, String startingUserId, String organizationId, String hardwareTierId) throws ApiException {
    ApiResponse localVarResponse = getRunsPerDayWithHttpInfo(startDate, endDate, projectId, startingUserId, organizationId, hardwareTierId);
    return localVarResponse.getData();
  }

  /**
   * retrieves run usage and cost details per day
   * 
   * @param startDate Start of the date range in YYYYMMDD format (required)
   * @param endDate End of the date range in YYYYMMDD format (required)
   * @param projectId Optional filter by project (optional)
   * @param startingUserId Optional filter by starting user (optional)
   * @param organizationId Optional filter by organization id (optional)
   * @param hardwareTierId Optional filter by hardware tier (optional)
   * @return ApiResponse<GetRunsPerDay200Response>
   * @throws ApiException if fails to make API call
   */
  public ApiResponse getRunsPerDayWithHttpInfo(String startDate, String endDate, String projectId, String startingUserId, String organizationId, String hardwareTierId) throws ApiException {
    HttpRequest.Builder localVarRequestBuilder = getRunsPerDayRequestBuilder(startDate, endDate, projectId, startingUserId, organizationId, hardwareTierId);
    try {
      HttpResponse localVarResponse = memberVarHttpClient.send(
          localVarRequestBuilder.build(),
          HttpResponse.BodyHandlers.ofInputStream());
      if (memberVarResponseInterceptor != null) {
        memberVarResponseInterceptor.accept(localVarResponse);
      }
      try {
        if (localVarResponse.statusCode()/ 100 != 2) {
          throw getApiException("getRunsPerDay", localVarResponse);
        }
        return new ApiResponse(
          localVarResponse.statusCode(),
          localVarResponse.headers().map(),
          localVarResponse.body() == null ? null : memberVarObjectMapper.readValue(localVarResponse.body(), new TypeReference() {}) // closes the InputStream
        );
      } finally {
      }
    } catch (IOException e) {
      throw new ApiException(e);
    }
    catch (InterruptedException e) {
      Thread.currentThread().interrupt();
      throw new ApiException(e);
    }
  }

  private HttpRequest.Builder getRunsPerDayRequestBuilder(String startDate, String endDate, String projectId, String startingUserId, String organizationId, String hardwareTierId) throws ApiException {
    // verify the required parameter 'startDate' is set
    if (startDate == null) {
      throw new ApiException(400, "Missing the required parameter 'startDate' when calling getRunsPerDay");
    }
    // verify the required parameter 'endDate' is set
    if (endDate == null) {
      throw new ApiException(400, "Missing the required parameter 'endDate' when calling getRunsPerDay");
    }

    HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();

    String localVarPath = "/controlCenter/utilization/runsPerDay";

    List localVarQueryParams = new ArrayList<>();
    StringJoiner localVarQueryStringJoiner = new StringJoiner("&");
    String localVarQueryParameterBaseName;
    localVarQueryParameterBaseName = "projectId";
    localVarQueryParams.addAll(ApiClient.parameterToPairs("projectId", projectId));
    localVarQueryParameterBaseName = "startingUserId";
    localVarQueryParams.addAll(ApiClient.parameterToPairs("startingUserId", startingUserId));
    localVarQueryParameterBaseName = "organizationId";
    localVarQueryParams.addAll(ApiClient.parameterToPairs("organizationId", organizationId));
    localVarQueryParameterBaseName = "hardwareTierId";
    localVarQueryParams.addAll(ApiClient.parameterToPairs("hardwareTierId", hardwareTierId));
    localVarQueryParameterBaseName = "startDate";
    localVarQueryParams.addAll(ApiClient.parameterToPairs("startDate", startDate));
    localVarQueryParameterBaseName = "endDate";
    localVarQueryParams.addAll(ApiClient.parameterToPairs("endDate", endDate));

    if (!localVarQueryParams.isEmpty() || localVarQueryStringJoiner.length() != 0) {
      StringJoiner queryJoiner = new StringJoiner("&");
      localVarQueryParams.forEach(p -> queryJoiner.add(p.getName() + '=' + p.getValue()));
      if (localVarQueryStringJoiner.length() != 0) {
        queryJoiner.add(localVarQueryStringJoiner.toString());
      }
      localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath + '?' + queryJoiner.toString()));
    } else {
      localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath));
    }

    localVarRequestBuilder.header("Accept", "application/json");

    localVarRequestBuilder.method("GET", HttpRequest.BodyPublishers.noBody());
    if (memberVarReadTimeout != null) {
      localVarRequestBuilder.timeout(memberVarReadTimeout);
    }
    if (memberVarInterceptor != null) {
      memberVarInterceptor.accept(localVarRequestBuilder);
    }
    return localVarRequestBuilder;
  }
  /**
   * retrieves statistics for all organizations
   * 
   * @param startDate Start of the date range in YYYYMMDD format (required)
   * @param endDate End of the date range in YYYYMMDD format (inclusive) (required)
   * @return List<DominoServerControlcenterOrganizationStatsDTO>
   * @throws ApiException if fails to make API call
   */
  public List getStatsForAllOrganizations(String startDate, String endDate) throws ApiException {
    ApiResponse> localVarResponse = getStatsForAllOrganizationsWithHttpInfo(startDate, endDate);
    return localVarResponse.getData();
  }

  /**
   * retrieves statistics for all organizations
   * 
   * @param startDate Start of the date range in YYYYMMDD format (required)
   * @param endDate End of the date range in YYYYMMDD format (inclusive) (required)
   * @return ApiResponse<List<DominoServerControlcenterOrganizationStatsDTO>>
   * @throws ApiException if fails to make API call
   */
  public ApiResponse> getStatsForAllOrganizationsWithHttpInfo(String startDate, String endDate) throws ApiException {
    HttpRequest.Builder localVarRequestBuilder = getStatsForAllOrganizationsRequestBuilder(startDate, endDate);
    try {
      HttpResponse localVarResponse = memberVarHttpClient.send(
          localVarRequestBuilder.build(),
          HttpResponse.BodyHandlers.ofInputStream());
      if (memberVarResponseInterceptor != null) {
        memberVarResponseInterceptor.accept(localVarResponse);
      }
      try {
        if (localVarResponse.statusCode()/ 100 != 2) {
          throw getApiException("getStatsForAllOrganizations", localVarResponse);
        }
        return new ApiResponse>(
          localVarResponse.statusCode(),
          localVarResponse.headers().map(),
          localVarResponse.body() == null ? null : memberVarObjectMapper.readValue(localVarResponse.body(), new TypeReference>() {}) // closes the InputStream
        );
      } finally {
      }
    } catch (IOException e) {
      throw new ApiException(e);
    }
    catch (InterruptedException e) {
      Thread.currentThread().interrupt();
      throw new ApiException(e);
    }
  }

  private HttpRequest.Builder getStatsForAllOrganizationsRequestBuilder(String startDate, String endDate) throws ApiException {
    // verify the required parameter 'startDate' is set
    if (startDate == null) {
      throw new ApiException(400, "Missing the required parameter 'startDate' when calling getStatsForAllOrganizations");
    }
    // verify the required parameter 'endDate' is set
    if (endDate == null) {
      throw new ApiException(400, "Missing the required parameter 'endDate' when calling getStatsForAllOrganizations");
    }

    HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();

    String localVarPath = "/controlCenter/utilization/statsForAllOrganizations";

    List localVarQueryParams = new ArrayList<>();
    StringJoiner localVarQueryStringJoiner = new StringJoiner("&");
    String localVarQueryParameterBaseName;
    localVarQueryParameterBaseName = "startDate";
    localVarQueryParams.addAll(ApiClient.parameterToPairs("startDate", startDate));
    localVarQueryParameterBaseName = "endDate";
    localVarQueryParams.addAll(ApiClient.parameterToPairs("endDate", endDate));

    if (!localVarQueryParams.isEmpty() || localVarQueryStringJoiner.length() != 0) {
      StringJoiner queryJoiner = new StringJoiner("&");
      localVarQueryParams.forEach(p -> queryJoiner.add(p.getName() + '=' + p.getValue()));
      if (localVarQueryStringJoiner.length() != 0) {
        queryJoiner.add(localVarQueryStringJoiner.toString());
      }
      localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath + '?' + queryJoiner.toString()));
    } else {
      localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath));
    }

    localVarRequestBuilder.header("Accept", "application/json");

    localVarRequestBuilder.method("GET", HttpRequest.BodyPublishers.noBody());
    if (memberVarReadTimeout != null) {
      localVarRequestBuilder.timeout(memberVarReadTimeout);
    }
    if (memberVarInterceptor != null) {
      memberVarInterceptor.accept(localVarRequestBuilder);
    }
    return localVarRequestBuilder;
  }
  /**
   * retrieves statistics for all users
   * 
   * @param startDate Start of the date range in YYYYMMDD format (required)
   * @param endDate End of the date range in YYYYMMDD format (inclusive) (required)
   * @return List<DominoServerControlcenterUserStatsDTO>
   * @throws ApiException if fails to make API call
   */
  public List getStatsForAllUsers(String startDate, String endDate) throws ApiException {
    ApiResponse> localVarResponse = getStatsForAllUsersWithHttpInfo(startDate, endDate);
    return localVarResponse.getData();
  }

  /**
   * retrieves statistics for all users
   * 
   * @param startDate Start of the date range in YYYYMMDD format (required)
   * @param endDate End of the date range in YYYYMMDD format (inclusive) (required)
   * @return ApiResponse<List<DominoServerControlcenterUserStatsDTO>>
   * @throws ApiException if fails to make API call
   */
  public ApiResponse> getStatsForAllUsersWithHttpInfo(String startDate, String endDate) throws ApiException {
    HttpRequest.Builder localVarRequestBuilder = getStatsForAllUsersRequestBuilder(startDate, endDate);
    try {
      HttpResponse localVarResponse = memberVarHttpClient.send(
          localVarRequestBuilder.build(),
          HttpResponse.BodyHandlers.ofInputStream());
      if (memberVarResponseInterceptor != null) {
        memberVarResponseInterceptor.accept(localVarResponse);
      }
      try {
        if (localVarResponse.statusCode()/ 100 != 2) {
          throw getApiException("getStatsForAllUsers", localVarResponse);
        }
        return new ApiResponse>(
          localVarResponse.statusCode(),
          localVarResponse.headers().map(),
          localVarResponse.body() == null ? null : memberVarObjectMapper.readValue(localVarResponse.body(), new TypeReference>() {}) // closes the InputStream
        );
      } finally {
      }
    } catch (IOException e) {
      throw new ApiException(e);
    }
    catch (InterruptedException e) {
      Thread.currentThread().interrupt();
      throw new ApiException(e);
    }
  }

  private HttpRequest.Builder getStatsForAllUsersRequestBuilder(String startDate, String endDate) throws ApiException {
    // verify the required parameter 'startDate' is set
    if (startDate == null) {
      throw new ApiException(400, "Missing the required parameter 'startDate' when calling getStatsForAllUsers");
    }
    // verify the required parameter 'endDate' is set
    if (endDate == null) {
      throw new ApiException(400, "Missing the required parameter 'endDate' when calling getStatsForAllUsers");
    }

    HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();

    String localVarPath = "/controlCenter/utilization/statsForAllUsers";

    List localVarQueryParams = new ArrayList<>();
    StringJoiner localVarQueryStringJoiner = new StringJoiner("&");
    String localVarQueryParameterBaseName;
    localVarQueryParameterBaseName = "startDate";
    localVarQueryParams.addAll(ApiClient.parameterToPairs("startDate", startDate));
    localVarQueryParameterBaseName = "endDate";
    localVarQueryParams.addAll(ApiClient.parameterToPairs("endDate", endDate));

    if (!localVarQueryParams.isEmpty() || localVarQueryStringJoiner.length() != 0) {
      StringJoiner queryJoiner = new StringJoiner("&");
      localVarQueryParams.forEach(p -> queryJoiner.add(p.getName() + '=' + p.getValue()));
      if (localVarQueryStringJoiner.length() != 0) {
        queryJoiner.add(localVarQueryStringJoiner.toString());
      }
      localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath + '?' + queryJoiner.toString()));
    } else {
      localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath));
    }

    localVarRequestBuilder.header("Accept", "application/json");

    localVarRequestBuilder.method("GET", HttpRequest.BodyPublishers.noBody());
    if (memberVarReadTimeout != null) {
      localVarRequestBuilder.timeout(memberVarReadTimeout);
    }
    if (memberVarInterceptor != null) {
      memberVarInterceptor.accept(localVarRequestBuilder);
    }
    return localVarRequestBuilder;
  }
  /**
   * retrieves top hardware tiers by compute spend
   * 
   * @param startDate Start of the date range in YYYYMMDD format (required)
   * @param endDate End of the date range in YYYYMMDD format (inclusive) (required)
   * @param startingUserId id of user who started runs in project (optional)
   * @param projectId id of the project that owns runs examined (optional)
   * @param organizationId Optional filter by organization id (optional)
   * @return List<DominoServerControlcenterTopItemDTO>
   * @throws ApiException if fails to make API call
   */
  public List getTopHardwareTiersByEstimatedCost(String startDate, String endDate, String startingUserId, String projectId, String organizationId) throws ApiException {
    ApiResponse> localVarResponse = getTopHardwareTiersByEstimatedCostWithHttpInfo(startDate, endDate, startingUserId, projectId, organizationId);
    return localVarResponse.getData();
  }

  /**
   * retrieves top hardware tiers by compute spend
   * 
   * @param startDate Start of the date range in YYYYMMDD format (required)
   * @param endDate End of the date range in YYYYMMDD format (inclusive) (required)
   * @param startingUserId id of user who started runs in project (optional)
   * @param projectId id of the project that owns runs examined (optional)
   * @param organizationId Optional filter by organization id (optional)
   * @return ApiResponse<List<DominoServerControlcenterTopItemDTO>>
   * @throws ApiException if fails to make API call
   */
  public ApiResponse> getTopHardwareTiersByEstimatedCostWithHttpInfo(String startDate, String endDate, String startingUserId, String projectId, String organizationId) throws ApiException {
    HttpRequest.Builder localVarRequestBuilder = getTopHardwareTiersByEstimatedCostRequestBuilder(startDate, endDate, startingUserId, projectId, organizationId);
    try {
      HttpResponse localVarResponse = memberVarHttpClient.send(
          localVarRequestBuilder.build(),
          HttpResponse.BodyHandlers.ofInputStream());
      if (memberVarResponseInterceptor != null) {
        memberVarResponseInterceptor.accept(localVarResponse);
      }
      try {
        if (localVarResponse.statusCode()/ 100 != 2) {
          throw getApiException("getTopHardwareTiersByEstimatedCost", localVarResponse);
        }
        return new ApiResponse>(
          localVarResponse.statusCode(),
          localVarResponse.headers().map(),
          localVarResponse.body() == null ? null : memberVarObjectMapper.readValue(localVarResponse.body(), new TypeReference>() {}) // closes the InputStream
        );
      } finally {
      }
    } catch (IOException e) {
      throw new ApiException(e);
    }
    catch (InterruptedException e) {
      Thread.currentThread().interrupt();
      throw new ApiException(e);
    }
  }

  private HttpRequest.Builder getTopHardwareTiersByEstimatedCostRequestBuilder(String startDate, String endDate, String startingUserId, String projectId, String organizationId) throws ApiException {
    // verify the required parameter 'startDate' is set
    if (startDate == null) {
      throw new ApiException(400, "Missing the required parameter 'startDate' when calling getTopHardwareTiersByEstimatedCost");
    }
    // verify the required parameter 'endDate' is set
    if (endDate == null) {
      throw new ApiException(400, "Missing the required parameter 'endDate' when calling getTopHardwareTiersByEstimatedCost");
    }

    HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();

    String localVarPath = "/controlCenter/utilization/getTopHardwareTiersByEstimatedCost";

    List localVarQueryParams = new ArrayList<>();
    StringJoiner localVarQueryStringJoiner = new StringJoiner("&");
    String localVarQueryParameterBaseName;
    localVarQueryParameterBaseName = "startingUserId";
    localVarQueryParams.addAll(ApiClient.parameterToPairs("startingUserId", startingUserId));
    localVarQueryParameterBaseName = "projectId";
    localVarQueryParams.addAll(ApiClient.parameterToPairs("projectId", projectId));
    localVarQueryParameterBaseName = "startDate";
    localVarQueryParams.addAll(ApiClient.parameterToPairs("startDate", startDate));
    localVarQueryParameterBaseName = "endDate";
    localVarQueryParams.addAll(ApiClient.parameterToPairs("endDate", endDate));
    localVarQueryParameterBaseName = "organizationId";
    localVarQueryParams.addAll(ApiClient.parameterToPairs("organizationId", organizationId));

    if (!localVarQueryParams.isEmpty() || localVarQueryStringJoiner.length() != 0) {
      StringJoiner queryJoiner = new StringJoiner("&");
      localVarQueryParams.forEach(p -> queryJoiner.add(p.getName() + '=' + p.getValue()));
      if (localVarQueryStringJoiner.length() != 0) {
        queryJoiner.add(localVarQueryStringJoiner.toString());
      }
      localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath + '?' + queryJoiner.toString()));
    } else {
      localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath));
    }

    localVarRequestBuilder.header("Accept", "application/json");

    localVarRequestBuilder.method("GET", HttpRequest.BodyPublishers.noBody());
    if (memberVarReadTimeout != null) {
      localVarRequestBuilder.timeout(memberVarReadTimeout);
    }
    if (memberVarInterceptor != null) {
      memberVarInterceptor.accept(localVarRequestBuilder);
    }
    return localVarRequestBuilder;
  }
  /**
   * retrieves top organizations by compute spend
   * 
   * @param startDate Start of the date range in YYYYMMDD format (required)
   * @param endDate End of the date range in YYYYMMDD format (inclusive) (required)
   * @return List<DominoServerControlcenterTopItemDTO>
   * @throws ApiException if fails to make API call
   */
  public List getTopOrganizationsByComputeCost(String startDate, String endDate) throws ApiException {
    ApiResponse> localVarResponse = getTopOrganizationsByComputeCostWithHttpInfo(startDate, endDate);
    return localVarResponse.getData();
  }

  /**
   * retrieves top organizations by compute spend
   * 
   * @param startDate Start of the date range in YYYYMMDD format (required)
   * @param endDate End of the date range in YYYYMMDD format (inclusive) (required)
   * @return ApiResponse<List<DominoServerControlcenterTopItemDTO>>
   * @throws ApiException if fails to make API call
   */
  public ApiResponse> getTopOrganizationsByComputeCostWithHttpInfo(String startDate, String endDate) throws ApiException {
    HttpRequest.Builder localVarRequestBuilder = getTopOrganizationsByComputeCostRequestBuilder(startDate, endDate);
    try {
      HttpResponse localVarResponse = memberVarHttpClient.send(
          localVarRequestBuilder.build(),
          HttpResponse.BodyHandlers.ofInputStream());
      if (memberVarResponseInterceptor != null) {
        memberVarResponseInterceptor.accept(localVarResponse);
      }
      try {
        if (localVarResponse.statusCode()/ 100 != 2) {
          throw getApiException("getTopOrganizationsByComputeCost", localVarResponse);
        }
        return new ApiResponse>(
          localVarResponse.statusCode(),
          localVarResponse.headers().map(),
          localVarResponse.body() == null ? null : memberVarObjectMapper.readValue(localVarResponse.body(), new TypeReference>() {}) // closes the InputStream
        );
      } finally {
      }
    } catch (IOException e) {
      throw new ApiException(e);
    }
    catch (InterruptedException e) {
      Thread.currentThread().interrupt();
      throw new ApiException(e);
    }
  }

  private HttpRequest.Builder getTopOrganizationsByComputeCostRequestBuilder(String startDate, String endDate) throws ApiException {
    // verify the required parameter 'startDate' is set
    if (startDate == null) {
      throw new ApiException(400, "Missing the required parameter 'startDate' when calling getTopOrganizationsByComputeCost");
    }
    // verify the required parameter 'endDate' is set
    if (endDate == null) {
      throw new ApiException(400, "Missing the required parameter 'endDate' when calling getTopOrganizationsByComputeCost");
    }

    HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();

    String localVarPath = "/controlCenter/utilization/topOrganizationsByComputeCost";

    List localVarQueryParams = new ArrayList<>();
    StringJoiner localVarQueryStringJoiner = new StringJoiner("&");
    String localVarQueryParameterBaseName;
    localVarQueryParameterBaseName = "startDate";
    localVarQueryParams.addAll(ApiClient.parameterToPairs("startDate", startDate));
    localVarQueryParameterBaseName = "endDate";
    localVarQueryParams.addAll(ApiClient.parameterToPairs("endDate", endDate));

    if (!localVarQueryParams.isEmpty() || localVarQueryStringJoiner.length() != 0) {
      StringJoiner queryJoiner = new StringJoiner("&");
      localVarQueryParams.forEach(p -> queryJoiner.add(p.getName() + '=' + p.getValue()));
      if (localVarQueryStringJoiner.length() != 0) {
        queryJoiner.add(localVarQueryStringJoiner.toString());
      }
      localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath + '?' + queryJoiner.toString()));
    } else {
      localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath));
    }

    localVarRequestBuilder.header("Accept", "application/json");

    localVarRequestBuilder.method("GET", HttpRequest.BodyPublishers.noBody());
    if (memberVarReadTimeout != null) {
      localVarRequestBuilder.timeout(memberVarReadTimeout);
    }
    if (memberVarInterceptor != null) {
      memberVarInterceptor.accept(localVarRequestBuilder);
    }
    return localVarRequestBuilder;
  }
  /**
   * retrieves top organizations by compute hours utilized
   * 
   * @param startDate Start of the date range in YYYYMMDD format (required)
   * @param endDate End of the date range in YYYYMMDD format (inclusive) (required)
   * @return List<DominoServerControlcenterTopItemDTO>
   * @throws ApiException if fails to make API call
   */
  public List getTopOrganizationsByComputeHours(String startDate, String endDate) throws ApiException {
    ApiResponse> localVarResponse = getTopOrganizationsByComputeHoursWithHttpInfo(startDate, endDate);
    return localVarResponse.getData();
  }

  /**
   * retrieves top organizations by compute hours utilized
   * 
   * @param startDate Start of the date range in YYYYMMDD format (required)
   * @param endDate End of the date range in YYYYMMDD format (inclusive) (required)
   * @return ApiResponse<List<DominoServerControlcenterTopItemDTO>>
   * @throws ApiException if fails to make API call
   */
  public ApiResponse> getTopOrganizationsByComputeHoursWithHttpInfo(String startDate, String endDate) throws ApiException {
    HttpRequest.Builder localVarRequestBuilder = getTopOrganizationsByComputeHoursRequestBuilder(startDate, endDate);
    try {
      HttpResponse localVarResponse = memberVarHttpClient.send(
          localVarRequestBuilder.build(),
          HttpResponse.BodyHandlers.ofInputStream());
      if (memberVarResponseInterceptor != null) {
        memberVarResponseInterceptor.accept(localVarResponse);
      }
      try {
        if (localVarResponse.statusCode()/ 100 != 2) {
          throw getApiException("getTopOrganizationsByComputeHours", localVarResponse);
        }
        return new ApiResponse>(
          localVarResponse.statusCode(),
          localVarResponse.headers().map(),
          localVarResponse.body() == null ? null : memberVarObjectMapper.readValue(localVarResponse.body(), new TypeReference>() {}) // closes the InputStream
        );
      } finally {
      }
    } catch (IOException e) {
      throw new ApiException(e);
    }
    catch (InterruptedException e) {
      Thread.currentThread().interrupt();
      throw new ApiException(e);
    }
  }

  private HttpRequest.Builder getTopOrganizationsByComputeHoursRequestBuilder(String startDate, String endDate) throws ApiException {
    // verify the required parameter 'startDate' is set
    if (startDate == null) {
      throw new ApiException(400, "Missing the required parameter 'startDate' when calling getTopOrganizationsByComputeHours");
    }
    // verify the required parameter 'endDate' is set
    if (endDate == null) {
      throw new ApiException(400, "Missing the required parameter 'endDate' when calling getTopOrganizationsByComputeHours");
    }

    HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();

    String localVarPath = "/controlCenter/utilization/topOrganizationsByComputeHours";

    List localVarQueryParams = new ArrayList<>();
    StringJoiner localVarQueryStringJoiner = new StringJoiner("&");
    String localVarQueryParameterBaseName;
    localVarQueryParameterBaseName = "startDate";
    localVarQueryParams.addAll(ApiClient.parameterToPairs("startDate", startDate));
    localVarQueryParameterBaseName = "endDate";
    localVarQueryParams.addAll(ApiClient.parameterToPairs("endDate", endDate));

    if (!localVarQueryParams.isEmpty() || localVarQueryStringJoiner.length() != 0) {
      StringJoiner queryJoiner = new StringJoiner("&");
      localVarQueryParams.forEach(p -> queryJoiner.add(p.getName() + '=' + p.getValue()));
      if (localVarQueryStringJoiner.length() != 0) {
        queryJoiner.add(localVarQueryStringJoiner.toString());
      }
      localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath + '?' + queryJoiner.toString()));
    } else {
      localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath));
    }

    localVarRequestBuilder.header("Accept", "application/json");

    localVarRequestBuilder.method("GET", HttpRequest.BodyPublishers.noBody());
    if (memberVarReadTimeout != null) {
      localVarRequestBuilder.timeout(memberVarReadTimeout);
    }
    if (memberVarInterceptor != null) {
      memberVarInterceptor.accept(localVarRequestBuilder);
    }
    return localVarRequestBuilder;
  }
  /**
   * retrieves top projects by compute spend
   * 
   * @param startDate Start of the date range in YYYYMMDD format (required)
   * @param endDate End of the date range in YYYYMMDD format (inclusive) (required)
   * @param startingUserId id of user who started runs in project (optional)
   * @param organizationId Optional filter by organization id (optional)
   * @return List<DominoServerControlcenterTopItemDTO>
   * @throws ApiException if fails to make API call
   */
  public List getTopProjectsByComputeCost(String startDate, String endDate, String startingUserId, String organizationId) throws ApiException {
    ApiResponse> localVarResponse = getTopProjectsByComputeCostWithHttpInfo(startDate, endDate, startingUserId, organizationId);
    return localVarResponse.getData();
  }

  /**
   * retrieves top projects by compute spend
   * 
   * @param startDate Start of the date range in YYYYMMDD format (required)
   * @param endDate End of the date range in YYYYMMDD format (inclusive) (required)
   * @param startingUserId id of user who started runs in project (optional)
   * @param organizationId Optional filter by organization id (optional)
   * @return ApiResponse<List<DominoServerControlcenterTopItemDTO>>
   * @throws ApiException if fails to make API call
   */
  public ApiResponse> getTopProjectsByComputeCostWithHttpInfo(String startDate, String endDate, String startingUserId, String organizationId) throws ApiException {
    HttpRequest.Builder localVarRequestBuilder = getTopProjectsByComputeCostRequestBuilder(startDate, endDate, startingUserId, organizationId);
    try {
      HttpResponse localVarResponse = memberVarHttpClient.send(
          localVarRequestBuilder.build(),
          HttpResponse.BodyHandlers.ofInputStream());
      if (memberVarResponseInterceptor != null) {
        memberVarResponseInterceptor.accept(localVarResponse);
      }
      try {
        if (localVarResponse.statusCode()/ 100 != 2) {
          throw getApiException("getTopProjectsByComputeCost", localVarResponse);
        }
        return new ApiResponse>(
          localVarResponse.statusCode(),
          localVarResponse.headers().map(),
          localVarResponse.body() == null ? null : memberVarObjectMapper.readValue(localVarResponse.body(), new TypeReference>() {}) // closes the InputStream
        );
      } finally {
      }
    } catch (IOException e) {
      throw new ApiException(e);
    }
    catch (InterruptedException e) {
      Thread.currentThread().interrupt();
      throw new ApiException(e);
    }
  }

  private HttpRequest.Builder getTopProjectsByComputeCostRequestBuilder(String startDate, String endDate, String startingUserId, String organizationId) throws ApiException {
    // verify the required parameter 'startDate' is set
    if (startDate == null) {
      throw new ApiException(400, "Missing the required parameter 'startDate' when calling getTopProjectsByComputeCost");
    }
    // verify the required parameter 'endDate' is set
    if (endDate == null) {
      throw new ApiException(400, "Missing the required parameter 'endDate' when calling getTopProjectsByComputeCost");
    }

    HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();

    String localVarPath = "/controlCenter/utilization/topProjectsByComputeCost";

    List localVarQueryParams = new ArrayList<>();
    StringJoiner localVarQueryStringJoiner = new StringJoiner("&");
    String localVarQueryParameterBaseName;
    localVarQueryParameterBaseName = "startingUserId";
    localVarQueryParams.addAll(ApiClient.parameterToPairs("startingUserId", startingUserId));
    localVarQueryParameterBaseName = "startDate";
    localVarQueryParams.addAll(ApiClient.parameterToPairs("startDate", startDate));
    localVarQueryParameterBaseName = "endDate";
    localVarQueryParams.addAll(ApiClient.parameterToPairs("endDate", endDate));
    localVarQueryParameterBaseName = "organizationId";
    localVarQueryParams.addAll(ApiClient.parameterToPairs("organizationId", organizationId));

    if (!localVarQueryParams.isEmpty() || localVarQueryStringJoiner.length() != 0) {
      StringJoiner queryJoiner = new StringJoiner("&");
      localVarQueryParams.forEach(p -> queryJoiner.add(p.getName() + '=' + p.getValue()));
      if (localVarQueryStringJoiner.length() != 0) {
        queryJoiner.add(localVarQueryStringJoiner.toString());
      }
      localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath + '?' + queryJoiner.toString()));
    } else {
      localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath));
    }

    localVarRequestBuilder.header("Accept", "application/json");

    localVarRequestBuilder.method("GET", HttpRequest.BodyPublishers.noBody());
    if (memberVarReadTimeout != null) {
      localVarRequestBuilder.timeout(memberVarReadTimeout);
    }
    if (memberVarInterceptor != null) {
      memberVarInterceptor.accept(localVarRequestBuilder);
    }
    return localVarRequestBuilder;
  }
  /**
   * retrieves top projects by compute hours utilized
   * 
   * @param startDate Start of the date range in YYYYMMDD format (required)
   * @param endDate End of the date range in YYYYMMDD format (inclusive) (required)
   * @param startingUserId id of user who started runs in project (optional)
   * @param organizationId Optional filter by organization id (optional)
   * @return List<DominoServerControlcenterTopItemDTO>
   * @throws ApiException if fails to make API call
   */
  public List getTopProjectsByComputeHours(String startDate, String endDate, String startingUserId, String organizationId) throws ApiException {
    ApiResponse> localVarResponse = getTopProjectsByComputeHoursWithHttpInfo(startDate, endDate, startingUserId, organizationId);
    return localVarResponse.getData();
  }

  /**
   * retrieves top projects by compute hours utilized
   * 
   * @param startDate Start of the date range in YYYYMMDD format (required)
   * @param endDate End of the date range in YYYYMMDD format (inclusive) (required)
   * @param startingUserId id of user who started runs in project (optional)
   * @param organizationId Optional filter by organization id (optional)
   * @return ApiResponse<List<DominoServerControlcenterTopItemDTO>>
   * @throws ApiException if fails to make API call
   */
  public ApiResponse> getTopProjectsByComputeHoursWithHttpInfo(String startDate, String endDate, String startingUserId, String organizationId) throws ApiException {
    HttpRequest.Builder localVarRequestBuilder = getTopProjectsByComputeHoursRequestBuilder(startDate, endDate, startingUserId, organizationId);
    try {
      HttpResponse localVarResponse = memberVarHttpClient.send(
          localVarRequestBuilder.build(),
          HttpResponse.BodyHandlers.ofInputStream());
      if (memberVarResponseInterceptor != null) {
        memberVarResponseInterceptor.accept(localVarResponse);
      }
      try {
        if (localVarResponse.statusCode()/ 100 != 2) {
          throw getApiException("getTopProjectsByComputeHours", localVarResponse);
        }
        return new ApiResponse>(
          localVarResponse.statusCode(),
          localVarResponse.headers().map(),
          localVarResponse.body() == null ? null : memberVarObjectMapper.readValue(localVarResponse.body(), new TypeReference>() {}) // closes the InputStream
        );
      } finally {
      }
    } catch (IOException e) {
      throw new ApiException(e);
    }
    catch (InterruptedException e) {
      Thread.currentThread().interrupt();
      throw new ApiException(e);
    }
  }

  private HttpRequest.Builder getTopProjectsByComputeHoursRequestBuilder(String startDate, String endDate, String startingUserId, String organizationId) throws ApiException {
    // verify the required parameter 'startDate' is set
    if (startDate == null) {
      throw new ApiException(400, "Missing the required parameter 'startDate' when calling getTopProjectsByComputeHours");
    }
    // verify the required parameter 'endDate' is set
    if (endDate == null) {
      throw new ApiException(400, "Missing the required parameter 'endDate' when calling getTopProjectsByComputeHours");
    }

    HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();

    String localVarPath = "/controlCenter/utilization/topProjectsByComputeHours";

    List localVarQueryParams = new ArrayList<>();
    StringJoiner localVarQueryStringJoiner = new StringJoiner("&");
    String localVarQueryParameterBaseName;
    localVarQueryParameterBaseName = "startingUserId";
    localVarQueryParams.addAll(ApiClient.parameterToPairs("startingUserId", startingUserId));
    localVarQueryParameterBaseName = "startDate";
    localVarQueryParams.addAll(ApiClient.parameterToPairs("startDate", startDate));
    localVarQueryParameterBaseName = "endDate";
    localVarQueryParams.addAll(ApiClient.parameterToPairs("endDate", endDate));
    localVarQueryParameterBaseName = "organizationId";
    localVarQueryParams.addAll(ApiClient.parameterToPairs("organizationId", organizationId));

    if (!localVarQueryParams.isEmpty() || localVarQueryStringJoiner.length() != 0) {
      StringJoiner queryJoiner = new StringJoiner("&");
      localVarQueryParams.forEach(p -> queryJoiner.add(p.getName() + '=' + p.getValue()));
      if (localVarQueryStringJoiner.length() != 0) {
        queryJoiner.add(localVarQueryStringJoiner.toString());
      }
      localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath + '?' + queryJoiner.toString()));
    } else {
      localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath));
    }

    localVarRequestBuilder.header("Accept", "application/json");

    localVarRequestBuilder.method("GET", HttpRequest.BodyPublishers.noBody());
    if (memberVarReadTimeout != null) {
      localVarRequestBuilder.timeout(memberVarReadTimeout);
    }
    if (memberVarInterceptor != null) {
      memberVarInterceptor.accept(localVarRequestBuilder);
    }
    return localVarRequestBuilder;
  }
  /**
   * retrieves top users by compute spend
   * 
   * @param startDate Start of the date range in YYYYMMDD format (required)
   * @param endDate End of the date range in YYYYMMDD format (inclusive) (required)
   * @return List<DominoServerControlcenterTopItemDTO>
   * @throws ApiException if fails to make API call
   */
  public List getTopUsersByComputeCost(String startDate, String endDate) throws ApiException {
    ApiResponse> localVarResponse = getTopUsersByComputeCostWithHttpInfo(startDate, endDate);
    return localVarResponse.getData();
  }

  /**
   * retrieves top users by compute spend
   * 
   * @param startDate Start of the date range in YYYYMMDD format (required)
   * @param endDate End of the date range in YYYYMMDD format (inclusive) (required)
   * @return ApiResponse<List<DominoServerControlcenterTopItemDTO>>
   * @throws ApiException if fails to make API call
   */
  public ApiResponse> getTopUsersByComputeCostWithHttpInfo(String startDate, String endDate) throws ApiException {
    HttpRequest.Builder localVarRequestBuilder = getTopUsersByComputeCostRequestBuilder(startDate, endDate);
    try {
      HttpResponse localVarResponse = memberVarHttpClient.send(
          localVarRequestBuilder.build(),
          HttpResponse.BodyHandlers.ofInputStream());
      if (memberVarResponseInterceptor != null) {
        memberVarResponseInterceptor.accept(localVarResponse);
      }
      try {
        if (localVarResponse.statusCode()/ 100 != 2) {
          throw getApiException("getTopUsersByComputeCost", localVarResponse);
        }
        return new ApiResponse>(
          localVarResponse.statusCode(),
          localVarResponse.headers().map(),
          localVarResponse.body() == null ? null : memberVarObjectMapper.readValue(localVarResponse.body(), new TypeReference>() {}) // closes the InputStream
        );
      } finally {
      }
    } catch (IOException e) {
      throw new ApiException(e);
    }
    catch (InterruptedException e) {
      Thread.currentThread().interrupt();
      throw new ApiException(e);
    }
  }

  private HttpRequest.Builder getTopUsersByComputeCostRequestBuilder(String startDate, String endDate) throws ApiException {
    // verify the required parameter 'startDate' is set
    if (startDate == null) {
      throw new ApiException(400, "Missing the required parameter 'startDate' when calling getTopUsersByComputeCost");
    }
    // verify the required parameter 'endDate' is set
    if (endDate == null) {
      throw new ApiException(400, "Missing the required parameter 'endDate' when calling getTopUsersByComputeCost");
    }

    HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();

    String localVarPath = "/controlCenter/utilization/topUsersByComputeCost";

    List localVarQueryParams = new ArrayList<>();
    StringJoiner localVarQueryStringJoiner = new StringJoiner("&");
    String localVarQueryParameterBaseName;
    localVarQueryParameterBaseName = "startDate";
    localVarQueryParams.addAll(ApiClient.parameterToPairs("startDate", startDate));
    localVarQueryParameterBaseName = "endDate";
    localVarQueryParams.addAll(ApiClient.parameterToPairs("endDate", endDate));

    if (!localVarQueryParams.isEmpty() || localVarQueryStringJoiner.length() != 0) {
      StringJoiner queryJoiner = new StringJoiner("&");
      localVarQueryParams.forEach(p -> queryJoiner.add(p.getName() + '=' + p.getValue()));
      if (localVarQueryStringJoiner.length() != 0) {
        queryJoiner.add(localVarQueryStringJoiner.toString());
      }
      localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath + '?' + queryJoiner.toString()));
    } else {
      localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath));
    }

    localVarRequestBuilder.header("Accept", "application/json");

    localVarRequestBuilder.method("GET", HttpRequest.BodyPublishers.noBody());
    if (memberVarReadTimeout != null) {
      localVarRequestBuilder.timeout(memberVarReadTimeout);
    }
    if (memberVarInterceptor != null) {
      memberVarInterceptor.accept(localVarRequestBuilder);
    }
    return localVarRequestBuilder;
  }
  /**
   * retrieves top users by compute hours utilized
   * 
   * @param startDate Start of the date range in YYYYMMDD format (required)
   * @param endDate End of the date range in YYYYMMDD format (inclusive) (required)
   * @return List<DominoServerControlcenterTopItemDTO>
   * @throws ApiException if fails to make API call
   */
  public List getTopUsersByComputeHours(String startDate, String endDate) throws ApiException {
    ApiResponse> localVarResponse = getTopUsersByComputeHoursWithHttpInfo(startDate, endDate);
    return localVarResponse.getData();
  }

  /**
   * retrieves top users by compute hours utilized
   * 
   * @param startDate Start of the date range in YYYYMMDD format (required)
   * @param endDate End of the date range in YYYYMMDD format (inclusive) (required)
   * @return ApiResponse<List<DominoServerControlcenterTopItemDTO>>
   * @throws ApiException if fails to make API call
   */
  public ApiResponse> getTopUsersByComputeHoursWithHttpInfo(String startDate, String endDate) throws ApiException {
    HttpRequest.Builder localVarRequestBuilder = getTopUsersByComputeHoursRequestBuilder(startDate, endDate);
    try {
      HttpResponse localVarResponse = memberVarHttpClient.send(
          localVarRequestBuilder.build(),
          HttpResponse.BodyHandlers.ofInputStream());
      if (memberVarResponseInterceptor != null) {
        memberVarResponseInterceptor.accept(localVarResponse);
      }
      try {
        if (localVarResponse.statusCode()/ 100 != 2) {
          throw getApiException("getTopUsersByComputeHours", localVarResponse);
        }
        return new ApiResponse>(
          localVarResponse.statusCode(),
          localVarResponse.headers().map(),
          localVarResponse.body() == null ? null : memberVarObjectMapper.readValue(localVarResponse.body(), new TypeReference>() {}) // closes the InputStream
        );
      } finally {
      }
    } catch (IOException e) {
      throw new ApiException(e);
    }
    catch (InterruptedException e) {
      Thread.currentThread().interrupt();
      throw new ApiException(e);
    }
  }

  private HttpRequest.Builder getTopUsersByComputeHoursRequestBuilder(String startDate, String endDate) throws ApiException {
    // verify the required parameter 'startDate' is set
    if (startDate == null) {
      throw new ApiException(400, "Missing the required parameter 'startDate' when calling getTopUsersByComputeHours");
    }
    // verify the required parameter 'endDate' is set
    if (endDate == null) {
      throw new ApiException(400, "Missing the required parameter 'endDate' when calling getTopUsersByComputeHours");
    }

    HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();

    String localVarPath = "/controlCenter/utilization/topUsersByComputeHours";

    List localVarQueryParams = new ArrayList<>();
    StringJoiner localVarQueryStringJoiner = new StringJoiner("&");
    String localVarQueryParameterBaseName;
    localVarQueryParameterBaseName = "startDate";
    localVarQueryParams.addAll(ApiClient.parameterToPairs("startDate", startDate));
    localVarQueryParameterBaseName = "endDate";
    localVarQueryParams.addAll(ApiClient.parameterToPairs("endDate", endDate));

    if (!localVarQueryParams.isEmpty() || localVarQueryStringJoiner.length() != 0) {
      StringJoiner queryJoiner = new StringJoiner("&");
      localVarQueryParams.forEach(p -> queryJoiner.add(p.getName() + '=' + p.getValue()));
      if (localVarQueryStringJoiner.length() != 0) {
        queryJoiner.add(localVarQueryStringJoiner.toString());
      }
      localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath + '?' + queryJoiner.toString()));
    } else {
      localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath));
    }

    localVarRequestBuilder.header("Accept", "application/json");

    localVarRequestBuilder.method("GET", HttpRequest.BodyPublishers.noBody());
    if (memberVarReadTimeout != null) {
      localVarRequestBuilder.timeout(memberVarReadTimeout);
    }
    if (memberVarInterceptor != null) {
      memberVarInterceptor.accept(localVarRequestBuilder);
    }
    return localVarRequestBuilder;
  }
  /**
   * retrieves top run types by compute hours utilized
   * 
   * @param startDate Start of the date range in YYYYMMDD format (required)
   * @param endDate End of the date range in YYYYMMDD format (inclusive) (required)
   * @param startingUserId id of user who started runs in project (optional)
   * @param organizationId Optional filter by organization id (optional)
   * @param projectId id of the project that owns runs examined (optional)
   * @return List<DominoServerControlcenterTopItemDTO>
   * @throws ApiException if fails to make API call
   */
  public List topRunTypesByComputeHours(String startDate, String endDate, String startingUserId, String organizationId, String projectId) throws ApiException {
    ApiResponse> localVarResponse = topRunTypesByComputeHoursWithHttpInfo(startDate, endDate, startingUserId, organizationId, projectId);
    return localVarResponse.getData();
  }

  /**
   * retrieves top run types by compute hours utilized
   * 
   * @param startDate Start of the date range in YYYYMMDD format (required)
   * @param endDate End of the date range in YYYYMMDD format (inclusive) (required)
   * @param startingUserId id of user who started runs in project (optional)
   * @param organizationId Optional filter by organization id (optional)
   * @param projectId id of the project that owns runs examined (optional)
   * @return ApiResponse<List<DominoServerControlcenterTopItemDTO>>
   * @throws ApiException if fails to make API call
   */
  public ApiResponse> topRunTypesByComputeHoursWithHttpInfo(String startDate, String endDate, String startingUserId, String organizationId, String projectId) throws ApiException {
    HttpRequest.Builder localVarRequestBuilder = topRunTypesByComputeHoursRequestBuilder(startDate, endDate, startingUserId, organizationId, projectId);
    try {
      HttpResponse localVarResponse = memberVarHttpClient.send(
          localVarRequestBuilder.build(),
          HttpResponse.BodyHandlers.ofInputStream());
      if (memberVarResponseInterceptor != null) {
        memberVarResponseInterceptor.accept(localVarResponse);
      }
      try {
        if (localVarResponse.statusCode()/ 100 != 2) {
          throw getApiException("topRunTypesByComputeHours", localVarResponse);
        }
        return new ApiResponse>(
          localVarResponse.statusCode(),
          localVarResponse.headers().map(),
          localVarResponse.body() == null ? null : memberVarObjectMapper.readValue(localVarResponse.body(), new TypeReference>() {}) // closes the InputStream
        );
      } finally {
      }
    } catch (IOException e) {
      throw new ApiException(e);
    }
    catch (InterruptedException e) {
      Thread.currentThread().interrupt();
      throw new ApiException(e);
    }
  }

  private HttpRequest.Builder topRunTypesByComputeHoursRequestBuilder(String startDate, String endDate, String startingUserId, String organizationId, String projectId) throws ApiException {
    // verify the required parameter 'startDate' is set
    if (startDate == null) {
      throw new ApiException(400, "Missing the required parameter 'startDate' when calling topRunTypesByComputeHours");
    }
    // verify the required parameter 'endDate' is set
    if (endDate == null) {
      throw new ApiException(400, "Missing the required parameter 'endDate' when calling topRunTypesByComputeHours");
    }

    HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();

    String localVarPath = "/controlCenter/utilization/topRunTypesByComputeHours";

    List localVarQueryParams = new ArrayList<>();
    StringJoiner localVarQueryStringJoiner = new StringJoiner("&");
    String localVarQueryParameterBaseName;
    localVarQueryParameterBaseName = "startingUserId";
    localVarQueryParams.addAll(ApiClient.parameterToPairs("startingUserId", startingUserId));
    localVarQueryParameterBaseName = "organizationId";
    localVarQueryParams.addAll(ApiClient.parameterToPairs("organizationId", organizationId));
    localVarQueryParameterBaseName = "projectId";
    localVarQueryParams.addAll(ApiClient.parameterToPairs("projectId", projectId));
    localVarQueryParameterBaseName = "startDate";
    localVarQueryParams.addAll(ApiClient.parameterToPairs("startDate", startDate));
    localVarQueryParameterBaseName = "endDate";
    localVarQueryParams.addAll(ApiClient.parameterToPairs("endDate", endDate));

    if (!localVarQueryParams.isEmpty() || localVarQueryStringJoiner.length() != 0) {
      StringJoiner queryJoiner = new StringJoiner("&");
      localVarQueryParams.forEach(p -> queryJoiner.add(p.getName() + '=' + p.getValue()));
      if (localVarQueryStringJoiner.length() != 0) {
        queryJoiner.add(localVarQueryStringJoiner.toString());
      }
      localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath + '?' + queryJoiner.toString()));
    } else {
      localVarRequestBuilder.uri(URI.create(memberVarBaseUri + localVarPath));
    }

    localVarRequestBuilder.header("Accept", "application/json");

    localVarRequestBuilder.method("GET", HttpRequest.BodyPublishers.noBody());
    if (memberVarReadTimeout != null) {
      localVarRequestBuilder.timeout(memberVarReadTimeout);
    }
    if (memberVarInterceptor != null) {
      memberVarInterceptor.accept(localVarRequestBuilder);
    }
    return localVarRequestBuilder;
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy