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

com.dominodatalab.api.rest.ProjectManagementApi 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.DominoProjectManagementApiFullSyncStatus;
import com.dominodatalab.api.model.DominoProjectManagementApiLinkedProjectDetails;
import com.dominodatalab.api.model.DominoProjectManagementApiPmLinker;
import com.dominodatalab.api.model.DominoProjectManagementApiPmOAuth1aConfiguration;
import com.dominodatalab.api.model.DominoProjectManagementApiPmProjectSummary;
import com.dominodatalab.api.model.DominoProjectManagementApiPmTicket;
import com.dominodatalab.api.model.DominoProjectManagementApiPmTicketSummary;
import com.dominodatalab.api.model.DominoProjectManagementApiResponseMessage;
import com.dominodatalab.api.model.DominoProjectManagementApiSubTicketToDominoMapper;
import com.dominodatalab.api.model.DominoProjectManagementApiTicketToDominoMapper;
import com.dominodatalab.api.model.DominoProjectManagementWebCommentRequest;
import com.dominodatalab.api.model.DominoProjectManagementWebErrorResponse;
import com.dominodatalab.api.model.DominoProjectManagementWebLinkFileToGoalRequest;
import com.dominodatalab.api.model.DominoProjectManagementWebLinkJobToGoalRequest;
import com.dominodatalab.api.model.DominoProjectManagementWebLinkWorkspaceToGoalRequest;
import com.dominodatalab.api.model.DominoProjectManagementWebUnlinkFileFromGoalRequest;
import com.dominodatalab.api.model.DominoProjectManagementWebUnlinkJobFromGoalRequest;
import com.dominodatalab.api.model.DominoProjectManagementWebUnlinkWorkspaceFromGoalRequest;
import com.dominodatalab.api.model.DominoProjectsApiComment;
import com.dominodatalab.api.model.DominoProjectsApiCommentThread;
import com.dominodatalab.api.model.DominoProjectsApiProjectGoal;
import com.dominodatalab.api.model.DominoProjectsApiProjectGoalStageAndStatus;
import com.dominodatalab.api.model.DominoProjectsApiProjectStage;
import com.dominodatalab.api.model.DominoProjectsApiProjectStageAndStatus;
import com.dominodatalab.api.model.DominoProjectsWebCreateProjectGoal;
import com.dominodatalab.api.model.DominoProjectsWebMoveProjectToStage;
import com.dominodatalab.api.model.DominoProjectsWebUpdateProjectGoalDescription;
import com.dominodatalab.api.model.DominoProjectsWebUpdateProjectGoalTitle;

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

import org.apache.http.HttpEntity;
import org.apache.http.NameValuePair;
import org.apache.http.entity.mime.MultipartEntityBuilder;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.client.entity.UrlEncodedFormEntity;

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 ProjectManagementApi {
  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 ProjectManagementApi() {
    this(new ApiClient());
  }

  public ProjectManagementApi(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;
  }

  /**
   * Add comment on Goal
   * 
   * @param goalId  (required)
   * @param dominoProjectManagementWebCommentRequest JSON object with data to add comment on Goal (required)
   * @param xDominoPmApiToken  (optional)
   * @return DominoProjectsApiCommentThread
   * @throws ApiException if fails to make API call
   */
  public DominoProjectsApiCommentThread addManageCommentOnGoal(String goalId, DominoProjectManagementWebCommentRequest dominoProjectManagementWebCommentRequest, String xDominoPmApiToken) throws ApiException {
    ApiResponse localVarResponse = addManageCommentOnGoalWithHttpInfo(goalId, dominoProjectManagementWebCommentRequest, xDominoPmApiToken);
    return localVarResponse.getData();
  }

  /**
   * Add comment on Goal
   * 
   * @param goalId  (required)
   * @param dominoProjectManagementWebCommentRequest JSON object with data to add comment on Goal (required)
   * @param xDominoPmApiToken  (optional)
   * @return ApiResponse<DominoProjectsApiCommentThread>
   * @throws ApiException if fails to make API call
   */
  public ApiResponse addManageCommentOnGoalWithHttpInfo(String goalId, DominoProjectManagementWebCommentRequest dominoProjectManagementWebCommentRequest, String xDominoPmApiToken) throws ApiException {
    HttpRequest.Builder localVarRequestBuilder = addManageCommentOnGoalRequestBuilder(goalId, dominoProjectManagementWebCommentRequest, xDominoPmApiToken);
    try {
      HttpResponse localVarResponse = memberVarHttpClient.send(
          localVarRequestBuilder.build(),
          HttpResponse.BodyHandlers.ofInputStream());
      if (memberVarResponseInterceptor != null) {
        memberVarResponseInterceptor.accept(localVarResponse);
      }
      try {
        if (localVarResponse.statusCode()/ 100 != 2) {
          throw getApiException("addManageCommentOnGoal", 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 addManageCommentOnGoalRequestBuilder(String goalId, DominoProjectManagementWebCommentRequest dominoProjectManagementWebCommentRequest, String xDominoPmApiToken) throws ApiException {
    // verify the required parameter 'goalId' is set
    if (goalId == null) {
      throw new ApiException(400, "Missing the required parameter 'goalId' when calling addManageCommentOnGoal");
    }
    // verify the required parameter 'dominoProjectManagementWebCommentRequest' is set
    if (dominoProjectManagementWebCommentRequest == null) {
      throw new ApiException(400, "Missing the required parameter 'dominoProjectManagementWebCommentRequest' when calling addManageCommentOnGoal");
    }

    HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();

    String localVarPath = "/projectManagement/goal/{goalId}/comment"
        .replace("{goalId}", ApiClient.urlEncode(goalId.toString()));

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

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

    try {
      byte[] localVarPostBody = memberVarObjectMapper.writeValueAsBytes(dominoProjectManagementWebCommentRequest);
      localVarRequestBuilder.method("POST", HttpRequest.BodyPublishers.ofByteArray(localVarPostBody));
    } catch (IOException e) {
      throw new ApiException(e);
    }
    if (memberVarReadTimeout != null) {
      localVarRequestBuilder.timeout(memberVarReadTimeout);
    }
    if (memberVarInterceptor != null) {
      memberVarInterceptor.accept(localVarRequestBuilder);
    }
    return localVarRequestBuilder;
  }
  /**
   * Add comment on Project
   * 
   * @param projectId  (required)
   * @param dominoProjectManagementWebCommentRequest JSON object with data to add comment on Project (required)
   * @param xDominoPmApiToken  (optional)
   * @return DominoProjectsApiCommentThread
   * @throws ApiException if fails to make API call
   */
  public DominoProjectsApiCommentThread addManageCommentOnProject(String projectId, DominoProjectManagementWebCommentRequest dominoProjectManagementWebCommentRequest, String xDominoPmApiToken) throws ApiException {
    ApiResponse localVarResponse = addManageCommentOnProjectWithHttpInfo(projectId, dominoProjectManagementWebCommentRequest, xDominoPmApiToken);
    return localVarResponse.getData();
  }

  /**
   * Add comment on Project
   * 
   * @param projectId  (required)
   * @param dominoProjectManagementWebCommentRequest JSON object with data to add comment on Project (required)
   * @param xDominoPmApiToken  (optional)
   * @return ApiResponse<DominoProjectsApiCommentThread>
   * @throws ApiException if fails to make API call
   */
  public ApiResponse addManageCommentOnProjectWithHttpInfo(String projectId, DominoProjectManagementWebCommentRequest dominoProjectManagementWebCommentRequest, String xDominoPmApiToken) throws ApiException {
    HttpRequest.Builder localVarRequestBuilder = addManageCommentOnProjectRequestBuilder(projectId, dominoProjectManagementWebCommentRequest, xDominoPmApiToken);
    try {
      HttpResponse localVarResponse = memberVarHttpClient.send(
          localVarRequestBuilder.build(),
          HttpResponse.BodyHandlers.ofInputStream());
      if (memberVarResponseInterceptor != null) {
        memberVarResponseInterceptor.accept(localVarResponse);
      }
      try {
        if (localVarResponse.statusCode()/ 100 != 2) {
          throw getApiException("addManageCommentOnProject", 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 addManageCommentOnProjectRequestBuilder(String projectId, DominoProjectManagementWebCommentRequest dominoProjectManagementWebCommentRequest, String xDominoPmApiToken) throws ApiException {
    // verify the required parameter 'projectId' is set
    if (projectId == null) {
      throw new ApiException(400, "Missing the required parameter 'projectId' when calling addManageCommentOnProject");
    }
    // verify the required parameter 'dominoProjectManagementWebCommentRequest' is set
    if (dominoProjectManagementWebCommentRequest == null) {
      throw new ApiException(400, "Missing the required parameter 'dominoProjectManagementWebCommentRequest' when calling addManageCommentOnProject");
    }

    HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();

    String localVarPath = "/projectManagement/project/{projectId}/comment"
        .replace("{projectId}", ApiClient.urlEncode(projectId.toString()));

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

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

    try {
      byte[] localVarPostBody = memberVarObjectMapper.writeValueAsBytes(dominoProjectManagementWebCommentRequest);
      localVarRequestBuilder.method("POST", HttpRequest.BodyPublishers.ofByteArray(localVarPostBody));
    } catch (IOException e) {
      throw new ApiException(e);
    }
    if (memberVarReadTimeout != null) {
      localVarRequestBuilder.timeout(memberVarReadTimeout);
    }
    if (memberVarInterceptor != null) {
      memberVarInterceptor.accept(localVarRequestBuilder);
    }
    return localVarRequestBuilder;
  }
  /**
   * Archive comment on Goal
   * 
   * @param threadId  (required)
   * @param commentId  (required)
   * @param xDominoPmApiToken  (optional)
   * @return DominoProjectsApiComment
   * @throws ApiException if fails to make API call
   */
  public DominoProjectsApiComment archiveManageCommentOnGoal(String threadId, String commentId, String xDominoPmApiToken) throws ApiException {
    ApiResponse localVarResponse = archiveManageCommentOnGoalWithHttpInfo(threadId, commentId, xDominoPmApiToken);
    return localVarResponse.getData();
  }

  /**
   * Archive comment on Goal
   * 
   * @param threadId  (required)
   * @param commentId  (required)
   * @param xDominoPmApiToken  (optional)
   * @return ApiResponse<DominoProjectsApiComment>
   * @throws ApiException if fails to make API call
   */
  public ApiResponse archiveManageCommentOnGoalWithHttpInfo(String threadId, String commentId, String xDominoPmApiToken) throws ApiException {
    HttpRequest.Builder localVarRequestBuilder = archiveManageCommentOnGoalRequestBuilder(threadId, commentId, xDominoPmApiToken);
    try {
      HttpResponse localVarResponse = memberVarHttpClient.send(
          localVarRequestBuilder.build(),
          HttpResponse.BodyHandlers.ofInputStream());
      if (memberVarResponseInterceptor != null) {
        memberVarResponseInterceptor.accept(localVarResponse);
      }
      try {
        if (localVarResponse.statusCode()/ 100 != 2) {
          throw getApiException("archiveManageCommentOnGoal", 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 archiveManageCommentOnGoalRequestBuilder(String threadId, String commentId, String xDominoPmApiToken) throws ApiException {
    // verify the required parameter 'threadId' is set
    if (threadId == null) {
      throw new ApiException(400, "Missing the required parameter 'threadId' when calling archiveManageCommentOnGoal");
    }
    // verify the required parameter 'commentId' is set
    if (commentId == null) {
      throw new ApiException(400, "Missing the required parameter 'commentId' when calling archiveManageCommentOnGoal");
    }

    HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();

    String localVarPath = "/projectManagement/goalComment/{threadId}/{commentId}"
        .replace("{threadId}", ApiClient.urlEncode(threadId.toString()))
        .replace("{commentId}", ApiClient.urlEncode(commentId.toString()));

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

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

    localVarRequestBuilder.method("DELETE", HttpRequest.BodyPublishers.noBody());
    if (memberVarReadTimeout != null) {
      localVarRequestBuilder.timeout(memberVarReadTimeout);
    }
    if (memberVarInterceptor != null) {
      memberVarInterceptor.accept(localVarRequestBuilder);
    }
    return localVarRequestBuilder;
  }
  /**
   * Archive comment on Project
   * 
   * @param threadId  (required)
   * @param commentId  (required)
   * @param xDominoPmApiToken  (optional)
   * @return DominoProjectsApiComment
   * @throws ApiException if fails to make API call
   */
  public DominoProjectsApiComment archiveManageCommentOnProject(String threadId, String commentId, String xDominoPmApiToken) throws ApiException {
    ApiResponse localVarResponse = archiveManageCommentOnProjectWithHttpInfo(threadId, commentId, xDominoPmApiToken);
    return localVarResponse.getData();
  }

  /**
   * Archive comment on Project
   * 
   * @param threadId  (required)
   * @param commentId  (required)
   * @param xDominoPmApiToken  (optional)
   * @return ApiResponse<DominoProjectsApiComment>
   * @throws ApiException if fails to make API call
   */
  public ApiResponse archiveManageCommentOnProjectWithHttpInfo(String threadId, String commentId, String xDominoPmApiToken) throws ApiException {
    HttpRequest.Builder localVarRequestBuilder = archiveManageCommentOnProjectRequestBuilder(threadId, commentId, xDominoPmApiToken);
    try {
      HttpResponse localVarResponse = memberVarHttpClient.send(
          localVarRequestBuilder.build(),
          HttpResponse.BodyHandlers.ofInputStream());
      if (memberVarResponseInterceptor != null) {
        memberVarResponseInterceptor.accept(localVarResponse);
      }
      try {
        if (localVarResponse.statusCode()/ 100 != 2) {
          throw getApiException("archiveManageCommentOnProject", 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 archiveManageCommentOnProjectRequestBuilder(String threadId, String commentId, String xDominoPmApiToken) throws ApiException {
    // verify the required parameter 'threadId' is set
    if (threadId == null) {
      throw new ApiException(400, "Missing the required parameter 'threadId' when calling archiveManageCommentOnProject");
    }
    // verify the required parameter 'commentId' is set
    if (commentId == null) {
      throw new ApiException(400, "Missing the required parameter 'commentId' when calling archiveManageCommentOnProject");
    }

    HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();

    String localVarPath = "/projectManagement/projectComment/{threadId}/{commentId}"
        .replace("{threadId}", ApiClient.urlEncode(threadId.toString()))
        .replace("{commentId}", ApiClient.urlEncode(commentId.toString()));

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

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

    localVarRequestBuilder.method("DELETE", HttpRequest.BodyPublishers.noBody());
    if (memberVarReadTimeout != null) {
      localVarRequestBuilder.timeout(memberVarReadTimeout);
    }
    if (memberVarInterceptor != null) {
      memberVarInterceptor.accept(localVarRequestBuilder);
    }
    return localVarRequestBuilder;
  }
  /**
   * Boolean representing user can update a comment on Goal
   * 
   * @param threadId  (required)
   * @param commentId  (required)
   * @param xDominoPmApiToken  (optional)
   * @return String
   * @throws ApiException if fails to make API call
   */
  public String canUpdateManageCommentOnGoal(String threadId, String commentId, String xDominoPmApiToken) throws ApiException {
    ApiResponse localVarResponse = canUpdateManageCommentOnGoalWithHttpInfo(threadId, commentId, xDominoPmApiToken);
    return localVarResponse.getData();
  }

  /**
   * Boolean representing user can update a comment on Goal
   * 
   * @param threadId  (required)
   * @param commentId  (required)
   * @param xDominoPmApiToken  (optional)
   * @return ApiResponse<String>
   * @throws ApiException if fails to make API call
   */
  public ApiResponse canUpdateManageCommentOnGoalWithHttpInfo(String threadId, String commentId, String xDominoPmApiToken) throws ApiException {
    HttpRequest.Builder localVarRequestBuilder = canUpdateManageCommentOnGoalRequestBuilder(threadId, commentId, xDominoPmApiToken);
    try {
      HttpResponse localVarResponse = memberVarHttpClient.send(
          localVarRequestBuilder.build(),
          HttpResponse.BodyHandlers.ofInputStream());
      if (memberVarResponseInterceptor != null) {
        memberVarResponseInterceptor.accept(localVarResponse);
      }
      try {
        if (localVarResponse.statusCode()/ 100 != 2) {
          throw getApiException("canUpdateManageCommentOnGoal", 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 canUpdateManageCommentOnGoalRequestBuilder(String threadId, String commentId, String xDominoPmApiToken) throws ApiException {
    // verify the required parameter 'threadId' is set
    if (threadId == null) {
      throw new ApiException(400, "Missing the required parameter 'threadId' when calling canUpdateManageCommentOnGoal");
    }
    // verify the required parameter 'commentId' is set
    if (commentId == null) {
      throw new ApiException(400, "Missing the required parameter 'commentId' when calling canUpdateManageCommentOnGoal");
    }

    HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();

    String localVarPath = "/projectManagement/goalComment/{threadId}/{commentId}/canUpdate"
        .replace("{threadId}", ApiClient.urlEncode(threadId.toString()))
        .replace("{commentId}", ApiClient.urlEncode(commentId.toString()));

    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;
  }
  /**
   * Boolean representing user can update comment on Project
   * 
   * @param threadId  (required)
   * @param commentId  (required)
   * @param xDominoPmApiToken  (optional)
   * @return String
   * @throws ApiException if fails to make API call
   */
  public String canUpdateManageCommentOnProject(String threadId, String commentId, String xDominoPmApiToken) throws ApiException {
    ApiResponse localVarResponse = canUpdateManageCommentOnProjectWithHttpInfo(threadId, commentId, xDominoPmApiToken);
    return localVarResponse.getData();
  }

  /**
   * Boolean representing user can update comment on Project
   * 
   * @param threadId  (required)
   * @param commentId  (required)
   * @param xDominoPmApiToken  (optional)
   * @return ApiResponse<String>
   * @throws ApiException if fails to make API call
   */
  public ApiResponse canUpdateManageCommentOnProjectWithHttpInfo(String threadId, String commentId, String xDominoPmApiToken) throws ApiException {
    HttpRequest.Builder localVarRequestBuilder = canUpdateManageCommentOnProjectRequestBuilder(threadId, commentId, xDominoPmApiToken);
    try {
      HttpResponse localVarResponse = memberVarHttpClient.send(
          localVarRequestBuilder.build(),
          HttpResponse.BodyHandlers.ofInputStream());
      if (memberVarResponseInterceptor != null) {
        memberVarResponseInterceptor.accept(localVarResponse);
      }
      try {
        if (localVarResponse.statusCode()/ 100 != 2) {
          throw getApiException("canUpdateManageCommentOnProject", 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 canUpdateManageCommentOnProjectRequestBuilder(String threadId, String commentId, String xDominoPmApiToken) throws ApiException {
    // verify the required parameter 'threadId' is set
    if (threadId == null) {
      throw new ApiException(400, "Missing the required parameter 'threadId' when calling canUpdateManageCommentOnProject");
    }
    // verify the required parameter 'commentId' is set
    if (commentId == null) {
      throw new ApiException(400, "Missing the required parameter 'commentId' when calling canUpdateManageCommentOnProject");
    }

    HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();

    String localVarPath = "/projectManagement/projectComment/{threadId}/{commentId}/canUpdate"
        .replace("{threadId}", ApiClient.urlEncode(threadId.toString()))
        .replace("{commentId}", ApiClient.urlEncode(commentId.toString()));

    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;
  }
  /**
   * Create Jira oauth  configuration
   * 
   * @param jiraUrl Jira Host Url (required)
   * @return DominoProjectManagementApiPmOAuth1aConfiguration
   * @throws ApiException if fails to make API call
   */
  public DominoProjectManagementApiPmOAuth1aConfiguration createJiraOAuthConfiguration(String jiraUrl) throws ApiException {
    ApiResponse localVarResponse = createJiraOAuthConfigurationWithHttpInfo(jiraUrl);
    return localVarResponse.getData();
  }

  /**
   * Create Jira oauth  configuration
   * 
   * @param jiraUrl Jira Host Url (required)
   * @return ApiResponse<DominoProjectManagementApiPmOAuth1aConfiguration>
   * @throws ApiException if fails to make API call
   */
  public ApiResponse createJiraOAuthConfigurationWithHttpInfo(String jiraUrl) throws ApiException {
    HttpRequest.Builder localVarRequestBuilder = createJiraOAuthConfigurationRequestBuilder(jiraUrl);
    try {
      HttpResponse localVarResponse = memberVarHttpClient.send(
          localVarRequestBuilder.build(),
          HttpResponse.BodyHandlers.ofInputStream());
      if (memberVarResponseInterceptor != null) {
        memberVarResponseInterceptor.accept(localVarResponse);
      }
      try {
        if (localVarResponse.statusCode()/ 100 != 2) {
          throw getApiException("createJiraOAuthConfiguration", 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 createJiraOAuthConfigurationRequestBuilder(String jiraUrl) throws ApiException {
    // verify the required parameter 'jiraUrl' is set
    if (jiraUrl == null) {
      throw new ApiException(400, "Missing the required parameter 'jiraUrl' when calling createJiraOAuthConfiguration");
    }

    HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();

    String localVarPath = "/projectManagement/createJiraOAuthConfiguration";

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

    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("POST", HttpRequest.BodyPublishers.noBody());
    if (memberVarReadTimeout != null) {
      localVarRequestBuilder.timeout(memberVarReadTimeout);
    }
    if (memberVarInterceptor != null) {
      memberVarInterceptor.accept(localVarRequestBuilder);
    }
    return localVarRequestBuilder;
  }
  /**
   * Create project goal
   * 
   * @param projectId  (required)
   * @param dominoProjectsWebCreateProjectGoal JSON object with data to create a project goal (required)
   * @param xDominoPmApiToken  (optional)
   * @return DominoProjectsApiProjectGoal
   * @throws ApiException if fails to make API call
   */
  public DominoProjectsApiProjectGoal createManageProjectGoal(String projectId, DominoProjectsWebCreateProjectGoal dominoProjectsWebCreateProjectGoal, String xDominoPmApiToken) throws ApiException {
    ApiResponse localVarResponse = createManageProjectGoalWithHttpInfo(projectId, dominoProjectsWebCreateProjectGoal, xDominoPmApiToken);
    return localVarResponse.getData();
  }

  /**
   * Create project goal
   * 
   * @param projectId  (required)
   * @param dominoProjectsWebCreateProjectGoal JSON object with data to create a project goal (required)
   * @param xDominoPmApiToken  (optional)
   * @return ApiResponse<DominoProjectsApiProjectGoal>
   * @throws ApiException if fails to make API call
   */
  public ApiResponse createManageProjectGoalWithHttpInfo(String projectId, DominoProjectsWebCreateProjectGoal dominoProjectsWebCreateProjectGoal, String xDominoPmApiToken) throws ApiException {
    HttpRequest.Builder localVarRequestBuilder = createManageProjectGoalRequestBuilder(projectId, dominoProjectsWebCreateProjectGoal, xDominoPmApiToken);
    try {
      HttpResponse localVarResponse = memberVarHttpClient.send(
          localVarRequestBuilder.build(),
          HttpResponse.BodyHandlers.ofInputStream());
      if (memberVarResponseInterceptor != null) {
        memberVarResponseInterceptor.accept(localVarResponse);
      }
      try {
        if (localVarResponse.statusCode()/ 100 != 2) {
          throw getApiException("createManageProjectGoal", 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 createManageProjectGoalRequestBuilder(String projectId, DominoProjectsWebCreateProjectGoal dominoProjectsWebCreateProjectGoal, String xDominoPmApiToken) throws ApiException {
    // verify the required parameter 'projectId' is set
    if (projectId == null) {
      throw new ApiException(400, "Missing the required parameter 'projectId' when calling createManageProjectGoal");
    }
    // verify the required parameter 'dominoProjectsWebCreateProjectGoal' is set
    if (dominoProjectsWebCreateProjectGoal == null) {
      throw new ApiException(400, "Missing the required parameter 'dominoProjectsWebCreateProjectGoal' when calling createManageProjectGoal");
    }

    HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();

    String localVarPath = "/projectManagement/{projectId}/createGoal"
        .replace("{projectId}", ApiClient.urlEncode(projectId.toString()));

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

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

    try {
      byte[] localVarPostBody = memberVarObjectMapper.writeValueAsBytes(dominoProjectsWebCreateProjectGoal);
      localVarRequestBuilder.method("POST", HttpRequest.BodyPublishers.ofByteArray(localVarPostBody));
    } catch (IOException e) {
      throw new ApiException(e);
    }
    if (memberVarReadTimeout != null) {
      localVarRequestBuilder.timeout(memberVarReadTimeout);
    }
    if (memberVarInterceptor != null) {
      memberVarInterceptor.accept(localVarRequestBuilder);
    }
    return localVarRequestBuilder;
  }
  /**
   * Delete a project goal
   * 
   * @param goalId  (required)
   * @param xDominoPmApiToken  (optional)
   * @return DominoProjectsApiProjectGoal
   * @throws ApiException if fails to make API call
   */
  public DominoProjectsApiProjectGoal deleteManageProjectGoal(String goalId, String xDominoPmApiToken) throws ApiException {
    ApiResponse localVarResponse = deleteManageProjectGoalWithHttpInfo(goalId, xDominoPmApiToken);
    return localVarResponse.getData();
  }

  /**
   * Delete a project goal
   * 
   * @param goalId  (required)
   * @param xDominoPmApiToken  (optional)
   * @return ApiResponse<DominoProjectsApiProjectGoal>
   * @throws ApiException if fails to make API call
   */
  public ApiResponse deleteManageProjectGoalWithHttpInfo(String goalId, String xDominoPmApiToken) throws ApiException {
    HttpRequest.Builder localVarRequestBuilder = deleteManageProjectGoalRequestBuilder(goalId, xDominoPmApiToken);
    try {
      HttpResponse localVarResponse = memberVarHttpClient.send(
          localVarRequestBuilder.build(),
          HttpResponse.BodyHandlers.ofInputStream());
      if (memberVarResponseInterceptor != null) {
        memberVarResponseInterceptor.accept(localVarResponse);
      }
      try {
        if (localVarResponse.statusCode()/ 100 != 2) {
          throw getApiException("deleteManageProjectGoal", 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 deleteManageProjectGoalRequestBuilder(String goalId, String xDominoPmApiToken) throws ApiException {
    // verify the required parameter 'goalId' is set
    if (goalId == null) {
      throw new ApiException(400, "Missing the required parameter 'goalId' when calling deleteManageProjectGoal");
    }

    HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();

    String localVarPath = "/projectManagement/goal/{goalId}"
        .replace("{goalId}", ApiClient.urlEncode(goalId.toString()));

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

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

    localVarRequestBuilder.method("DELETE", HttpRequest.BodyPublishers.noBody());
    if (memberVarReadTimeout != null) {
      localVarRequestBuilder.timeout(memberVarReadTimeout);
    }
    if (memberVarInterceptor != null) {
      memberVarInterceptor.accept(localVarRequestBuilder);
    }
    return localVarRequestBuilder;
  }
  /**
   * Sync project with linked project management ticket.
   * 
   * @param projectId Id of the domino project to be synced (required)
   * @param xDominoPmApiToken  (optional)
   * @throws ApiException if fails to make API call
   */
  public void fullSync(String projectId, String xDominoPmApiToken) throws ApiException {
    fullSyncWithHttpInfo(projectId, xDominoPmApiToken);
  }

  /**
   * Sync project with linked project management ticket.
   * 
   * @param projectId Id of the domino project to be synced (required)
   * @param xDominoPmApiToken  (optional)
   * @return ApiResponse<Void>
   * @throws ApiException if fails to make API call
   */
  public ApiResponse fullSyncWithHttpInfo(String projectId, String xDominoPmApiToken) throws ApiException {
    HttpRequest.Builder localVarRequestBuilder = fullSyncRequestBuilder(projectId, xDominoPmApiToken);
    try {
      HttpResponse localVarResponse = memberVarHttpClient.send(
          localVarRequestBuilder.build(),
          HttpResponse.BodyHandlers.ofInputStream());
      if (memberVarResponseInterceptor != null) {
        memberVarResponseInterceptor.accept(localVarResponse);
      }
      try {
        if (localVarResponse.statusCode()/ 100 != 2) {
          throw getApiException("fullSync", 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 fullSyncRequestBuilder(String projectId, String xDominoPmApiToken) throws ApiException {
    // verify the required parameter 'projectId' is set
    if (projectId == null) {
      throw new ApiException(400, "Missing the required parameter 'projectId' when calling fullSync");
    }

    HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();

    String localVarPath = "/projectManagement/fullSync";

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

    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("POST", HttpRequest.BodyPublishers.noBody());
    if (memberVarReadTimeout != null) {
      localVarRequestBuilder.timeout(memberVarReadTimeout);
    }
    if (memberVarInterceptor != null) {
      memberVarInterceptor.accept(localVarRequestBuilder);
    }
    return localVarRequestBuilder;
  }
  /**
   * Get All Linked Projects
   * 
   * @return List<DominoProjectManagementApiLinkedProjectDetails>
   * @throws ApiException if fails to make API call
   */
  public List getAllLinkedProjects() throws ApiException {
    ApiResponse> localVarResponse = getAllLinkedProjectsWithHttpInfo();
    return localVarResponse.getData();
  }

  /**
   * Get All Linked Projects
   * 
   * @return ApiResponse<List<DominoProjectManagementApiLinkedProjectDetails>>
   * @throws ApiException if fails to make API call
   */
  public ApiResponse> getAllLinkedProjectsWithHttpInfo() throws ApiException {
    HttpRequest.Builder localVarRequestBuilder = getAllLinkedProjectsRequestBuilder();
    try {
      HttpResponse localVarResponse = memberVarHttpClient.send(
          localVarRequestBuilder.build(),
          HttpResponse.BodyHandlers.ofInputStream());
      if (memberVarResponseInterceptor != null) {
        memberVarResponseInterceptor.accept(localVarResponse);
      }
      try {
        if (localVarResponse.statusCode()/ 100 != 2) {
          throw getApiException("getAllLinkedProjects", 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 getAllLinkedProjectsRequestBuilder() throws ApiException {

    HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();

    String localVarPath = "/projectManagement/allLinkedProjects";

    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;
  }
  /**
   * Gets Current Full Sync Status For Project
   * 
   * @param projectId Domino id of the project (required)
   * @return DominoProjectManagementApiFullSyncStatus
   * @throws ApiException if fails to make API call
   */
  public DominoProjectManagementApiFullSyncStatus getFullSyncStatus(String projectId) throws ApiException {
    ApiResponse localVarResponse = getFullSyncStatusWithHttpInfo(projectId);
    return localVarResponse.getData();
  }

  /**
   * Gets Current Full Sync Status For Project
   * 
   * @param projectId Domino id of the project (required)
   * @return ApiResponse<DominoProjectManagementApiFullSyncStatus>
   * @throws ApiException if fails to make API call
   */
  public ApiResponse getFullSyncStatusWithHttpInfo(String projectId) throws ApiException {
    HttpRequest.Builder localVarRequestBuilder = getFullSyncStatusRequestBuilder(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("getFullSyncStatus", 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 getFullSyncStatusRequestBuilder(String projectId) throws ApiException {
    // verify the required parameter 'projectId' is set
    if (projectId == null) {
      throw new ApiException(400, "Missing the required parameter 'projectId' when calling getFullSyncStatus");
    }

    HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();

    String localVarPath = "/projectManagement/{projectId}/fullSyncStatus"
        .replace("{projectId}", ApiClient.urlEncode(projectId.toString()));

    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;
  }
  /**
   * Gets the Jira OAuth-1a configuration
   * 
   * @return DominoProjectManagementApiPmOAuth1aConfiguration
   * @throws ApiException if fails to make API call
   */
  public DominoProjectManagementApiPmOAuth1aConfiguration getJiraOAuthConfiguration() throws ApiException {
    ApiResponse localVarResponse = getJiraOAuthConfigurationWithHttpInfo();
    return localVarResponse.getData();
  }

  /**
   * Gets the Jira OAuth-1a configuration
   * 
   * @return ApiResponse<DominoProjectManagementApiPmOAuth1aConfiguration>
   * @throws ApiException if fails to make API call
   */
  public ApiResponse getJiraOAuthConfigurationWithHttpInfo() throws ApiException {
    HttpRequest.Builder localVarRequestBuilder = getJiraOAuthConfigurationRequestBuilder();
    try {
      HttpResponse localVarResponse = memberVarHttpClient.send(
          localVarRequestBuilder.build(),
          HttpResponse.BodyHandlers.ofInputStream());
      if (memberVarResponseInterceptor != null) {
        memberVarResponseInterceptor.accept(localVarResponse);
      }
      try {
        if (localVarResponse.statusCode()/ 100 != 2) {
          throw getApiException("getJiraOAuthConfiguration", 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 getJiraOAuthConfigurationRequestBuilder() throws ApiException {

    HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();

    String localVarPath = "/projectManagement/getJiraOAuthConfiguration";

    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;
  }
  /**
   * Get SubTickets Linked to a Project
   * 
   * @param projectId Domino id of the project (required)
   * @return List<DominoProjectManagementApiSubTicketToDominoMapper>
   * @throws ApiException if fails to make API call
   */
  public List getLinkedSubTicketsByProjectId(String projectId) throws ApiException {
    ApiResponse> localVarResponse = getLinkedSubTicketsByProjectIdWithHttpInfo(projectId);
    return localVarResponse.getData();
  }

  /**
   * Get SubTickets Linked to a Project
   * 
   * @param projectId Domino id of the project (required)
   * @return ApiResponse<List<DominoProjectManagementApiSubTicketToDominoMapper>>
   * @throws ApiException if fails to make API call
   */
  public ApiResponse> getLinkedSubTicketsByProjectIdWithHttpInfo(String projectId) throws ApiException {
    HttpRequest.Builder localVarRequestBuilder = getLinkedSubTicketsByProjectIdRequestBuilder(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("getLinkedSubTicketsByProjectId", 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 getLinkedSubTicketsByProjectIdRequestBuilder(String projectId) throws ApiException {
    // verify the required parameter 'projectId' is set
    if (projectId == null) {
      throw new ApiException(400, "Missing the required parameter 'projectId' when calling getLinkedSubTicketsByProjectId");
    }

    HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();

    String localVarPath = "/projectManagement/{projectId}/getLinkedSubTickets"
        .replace("{projectId}", ApiClient.urlEncode(projectId.toString()));

    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;
  }
  /**
   * Get Ticket Linked to a Project
   * 
   * @param projectId Domino id of the project (required)
   * @return DominoProjectManagementApiTicketToDominoMapper
   * @throws ApiException if fails to make API call
   */
  public DominoProjectManagementApiTicketToDominoMapper getLinkedTicketByProjectId(String projectId) throws ApiException {
    ApiResponse localVarResponse = getLinkedTicketByProjectIdWithHttpInfo(projectId);
    return localVarResponse.getData();
  }

  /**
   * Get Ticket Linked to a Project
   * 
   * @param projectId Domino id of the project (required)
   * @return ApiResponse<DominoProjectManagementApiTicketToDominoMapper>
   * @throws ApiException if fails to make API call
   */
  public ApiResponse getLinkedTicketByProjectIdWithHttpInfo(String projectId) throws ApiException {
    HttpRequest.Builder localVarRequestBuilder = getLinkedTicketByProjectIdRequestBuilder(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("getLinkedTicketByProjectId", 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 getLinkedTicketByProjectIdRequestBuilder(String projectId) throws ApiException {
    // verify the required parameter 'projectId' is set
    if (projectId == null) {
      throw new ApiException(400, "Missing the required parameter 'projectId' when calling getLinkedTicketByProjectId");
    }

    HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();

    String localVarPath = "/projectManagement/{projectId}/getLinkedTicket"
        .replace("{projectId}", ApiClient.urlEncode(projectId.toString()));

    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;
  }
  /**
   * Get comments on a Goal
   * 
   * @param goalId  (required)
   * @param xDominoPmApiToken  (optional)
   * @return DominoProjectsApiCommentThread
   * @throws ApiException if fails to make API call
   */
  public DominoProjectsApiCommentThread getManageCommentsOnGoal(String goalId, String xDominoPmApiToken) throws ApiException {
    ApiResponse localVarResponse = getManageCommentsOnGoalWithHttpInfo(goalId, xDominoPmApiToken);
    return localVarResponse.getData();
  }

  /**
   * Get comments on a Goal
   * 
   * @param goalId  (required)
   * @param xDominoPmApiToken  (optional)
   * @return ApiResponse<DominoProjectsApiCommentThread>
   * @throws ApiException if fails to make API call
   */
  public ApiResponse getManageCommentsOnGoalWithHttpInfo(String goalId, String xDominoPmApiToken) throws ApiException {
    HttpRequest.Builder localVarRequestBuilder = getManageCommentsOnGoalRequestBuilder(goalId, xDominoPmApiToken);
    try {
      HttpResponse localVarResponse = memberVarHttpClient.send(
          localVarRequestBuilder.build(),
          HttpResponse.BodyHandlers.ofInputStream());
      if (memberVarResponseInterceptor != null) {
        memberVarResponseInterceptor.accept(localVarResponse);
      }
      try {
        if (localVarResponse.statusCode()/ 100 != 2) {
          throw getApiException("getManageCommentsOnGoal", 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 getManageCommentsOnGoalRequestBuilder(String goalId, String xDominoPmApiToken) throws ApiException {
    // verify the required parameter 'goalId' is set
    if (goalId == null) {
      throw new ApiException(400, "Missing the required parameter 'goalId' when calling getManageCommentsOnGoal");
    }

    HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();

    String localVarPath = "/projectManagement/goal/{goalId}/comment/list"
        .replace("{goalId}", ApiClient.urlEncode(goalId.toString()));

    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;
  }
  /**
   * Get comments on a Project
   * 
   * @param projectId  (required)
   * @param xDominoPmApiToken  (optional)
   * @return DominoProjectsApiCommentThread
   * @throws ApiException if fails to make API call
   */
  public DominoProjectsApiCommentThread getManageCommentsOnProject(String projectId, String xDominoPmApiToken) throws ApiException {
    ApiResponse localVarResponse = getManageCommentsOnProjectWithHttpInfo(projectId, xDominoPmApiToken);
    return localVarResponse.getData();
  }

  /**
   * Get comments on a Project
   * 
   * @param projectId  (required)
   * @param xDominoPmApiToken  (optional)
   * @return ApiResponse<DominoProjectsApiCommentThread>
   * @throws ApiException if fails to make API call
   */
  public ApiResponse getManageCommentsOnProjectWithHttpInfo(String projectId, String xDominoPmApiToken) throws ApiException {
    HttpRequest.Builder localVarRequestBuilder = getManageCommentsOnProjectRequestBuilder(projectId, xDominoPmApiToken);
    try {
      HttpResponse localVarResponse = memberVarHttpClient.send(
          localVarRequestBuilder.build(),
          HttpResponse.BodyHandlers.ofInputStream());
      if (memberVarResponseInterceptor != null) {
        memberVarResponseInterceptor.accept(localVarResponse);
      }
      try {
        if (localVarResponse.statusCode()/ 100 != 2) {
          throw getApiException("getManageCommentsOnProject", 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 getManageCommentsOnProjectRequestBuilder(String projectId, String xDominoPmApiToken) throws ApiException {
    // verify the required parameter 'projectId' is set
    if (projectId == null) {
      throw new ApiException(400, "Missing the required parameter 'projectId' when calling getManageCommentsOnProject");
    }

    HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();

    String localVarPath = "/projectManagement/project/{projectId}/comment/list"
        .replace("{projectId}", ApiClient.urlEncode(projectId.toString()));

    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;
  }
  /**
   * Get project goals
   * 
   * @param projectId  (required)
   * @param xDominoPmApiToken  (optional)
   * @return List<DominoProjectsApiProjectGoal>
   * @throws ApiException if fails to make API call
   */
  public List getManageProjectGoals(String projectId, String xDominoPmApiToken) throws ApiException {
    ApiResponse> localVarResponse = getManageProjectGoalsWithHttpInfo(projectId, xDominoPmApiToken);
    return localVarResponse.getData();
  }

  /**
   * Get project goals
   * 
   * @param projectId  (required)
   * @param xDominoPmApiToken  (optional)
   * @return ApiResponse<List<DominoProjectsApiProjectGoal>>
   * @throws ApiException if fails to make API call
   */
  public ApiResponse> getManageProjectGoalsWithHttpInfo(String projectId, String xDominoPmApiToken) throws ApiException {
    HttpRequest.Builder localVarRequestBuilder = getManageProjectGoalsRequestBuilder(projectId, xDominoPmApiToken);
    try {
      HttpResponse localVarResponse = memberVarHttpClient.send(
          localVarRequestBuilder.build(),
          HttpResponse.BodyHandlers.ofInputStream());
      if (memberVarResponseInterceptor != null) {
        memberVarResponseInterceptor.accept(localVarResponse);
      }
      try {
        if (localVarResponse.statusCode()/ 100 != 2) {
          throw getApiException("getManageProjectGoals", 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 getManageProjectGoalsRequestBuilder(String projectId, String xDominoPmApiToken) throws ApiException {
    // verify the required parameter 'projectId' is set
    if (projectId == null) {
      throw new ApiException(400, "Missing the required parameter 'projectId' when calling getManageProjectGoals");
    }

    HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();

    String localVarPath = "/projectManagement/{projectId}/goals"
        .replace("{projectId}", ApiClient.urlEncode(projectId.toString()));

    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;
  }
  /**
   * Gets List of Relevant Project Management Projects from Project Management Tool
   * 
   * @param projectName The Name of the Jira Project to filter further (optional)
   * @param xDominoPmApiToken  (optional)
   * @return List<DominoProjectManagementApiPmProjectSummary>
   * @throws ApiException if fails to make API call
   */
  public List getRelevantBriefProjects(String projectName, String xDominoPmApiToken) throws ApiException {
    ApiResponse> localVarResponse = getRelevantBriefProjectsWithHttpInfo(projectName, xDominoPmApiToken);
    return localVarResponse.getData();
  }

  /**
   * Gets List of Relevant Project Management Projects from Project Management Tool
   * 
   * @param projectName The Name of the Jira Project to filter further (optional)
   * @param xDominoPmApiToken  (optional)
   * @return ApiResponse<List<DominoProjectManagementApiPmProjectSummary>>
   * @throws ApiException if fails to make API call
   */
  public ApiResponse> getRelevantBriefProjectsWithHttpInfo(String projectName, String xDominoPmApiToken) throws ApiException {
    HttpRequest.Builder localVarRequestBuilder = getRelevantBriefProjectsRequestBuilder(projectName, xDominoPmApiToken);
    try {
      HttpResponse localVarResponse = memberVarHttpClient.send(
          localVarRequestBuilder.build(),
          HttpResponse.BodyHandlers.ofInputStream());
      if (memberVarResponseInterceptor != null) {
        memberVarResponseInterceptor.accept(localVarResponse);
      }
      try {
        if (localVarResponse.statusCode()/ 100 != 2) {
          throw getApiException("getRelevantBriefProjects", 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 getRelevantBriefProjectsRequestBuilder(String projectName, String xDominoPmApiToken) throws ApiException {

    HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();

    String localVarPath = "/projectManagement/getProjectsFromPMT";

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

    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;
  }
  /**
   * Gets List of Relevant Project Management Tickets for Project Management Tool
   * 
   * @param projectName The Name of the Jira Project to filter further (optional)
   * @param onlyAssignedToMe Flag, to filter ticket Assigned to Me (optional)
   * @param filterText The text to filter out Tickets (optional)
   * @param xDominoPmApiToken  (optional)
   * @return List<DominoProjectManagementApiPmTicketSummary>
   * @throws ApiException if fails to make API call
   */
  public List getRelevantBriefTickets(String projectName, Boolean onlyAssignedToMe, String filterText, String xDominoPmApiToken) throws ApiException {
    ApiResponse> localVarResponse = getRelevantBriefTicketsWithHttpInfo(projectName, onlyAssignedToMe, filterText, xDominoPmApiToken);
    return localVarResponse.getData();
  }

  /**
   * Gets List of Relevant Project Management Tickets for Project Management Tool
   * 
   * @param projectName The Name of the Jira Project to filter further (optional)
   * @param onlyAssignedToMe Flag, to filter ticket Assigned to Me (optional)
   * @param filterText The text to filter out Tickets (optional)
   * @param xDominoPmApiToken  (optional)
   * @return ApiResponse<List<DominoProjectManagementApiPmTicketSummary>>
   * @throws ApiException if fails to make API call
   */
  public ApiResponse> getRelevantBriefTicketsWithHttpInfo(String projectName, Boolean onlyAssignedToMe, String filterText, String xDominoPmApiToken) throws ApiException {
    HttpRequest.Builder localVarRequestBuilder = getRelevantBriefTicketsRequestBuilder(projectName, onlyAssignedToMe, filterText, xDominoPmApiToken);
    try {
      HttpResponse localVarResponse = memberVarHttpClient.send(
          localVarRequestBuilder.build(),
          HttpResponse.BodyHandlers.ofInputStream());
      if (memberVarResponseInterceptor != null) {
        memberVarResponseInterceptor.accept(localVarResponse);
      }
      try {
        if (localVarResponse.statusCode()/ 100 != 2) {
          throw getApiException("getRelevantBriefTickets", 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 getRelevantBriefTicketsRequestBuilder(String projectName, Boolean onlyAssignedToMe, String filterText, String xDominoPmApiToken) throws ApiException {

    HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();

    String localVarPath = "/projectManagement/getTicketsFromPMT";

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

    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;
  }
  /**
   * Get allowed goal stages for a given goal
   * 
   * @param goalId Domino id of the goal (required)
   * @return List<DominoProjectsApiProjectStage>
   * @throws ApiException if fails to make API call
   */
  public List getStagesForGoal(String goalId) throws ApiException {
    ApiResponse> localVarResponse = getStagesForGoalWithHttpInfo(goalId);
    return localVarResponse.getData();
  }

  /**
   * Get allowed goal stages for a given goal
   * 
   * @param goalId Domino id of the goal (required)
   * @return ApiResponse<List<DominoProjectsApiProjectStage>>
   * @throws ApiException if fails to make API call
   */
  public ApiResponse> getStagesForGoalWithHttpInfo(String goalId) throws ApiException {
    HttpRequest.Builder localVarRequestBuilder = getStagesForGoalRequestBuilder(goalId);
    try {
      HttpResponse localVarResponse = memberVarHttpClient.send(
          localVarRequestBuilder.build(),
          HttpResponse.BodyHandlers.ofInputStream());
      if (memberVarResponseInterceptor != null) {
        memberVarResponseInterceptor.accept(localVarResponse);
      }
      try {
        if (localVarResponse.statusCode()/ 100 != 2) {
          throw getApiException("getStagesForGoal", 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 getStagesForGoalRequestBuilder(String goalId) throws ApiException {
    // verify the required parameter 'goalId' is set
    if (goalId == null) {
      throw new ApiException(400, "Missing the required parameter 'goalId' when calling getStagesForGoal");
    }

    HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();

    String localVarPath = "/projectManagement/goal/{goalId}/stage/list"
        .replace("{goalId}", ApiClient.urlEncode(goalId.toString()));

    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;
  }
  /**
   * Get allowed stages for a given project
   * 
   * @param projectId Domino id of the project (required)
   * @return List<DominoProjectsApiProjectStage>
   * @throws ApiException if fails to make API call
   */
  public List getStagesForProject(String projectId) throws ApiException {
    ApiResponse> localVarResponse = getStagesForProjectWithHttpInfo(projectId);
    return localVarResponse.getData();
  }

  /**
   * Get allowed stages for a given project
   * 
   * @param projectId Domino id of the project (required)
   * @return ApiResponse<List<DominoProjectsApiProjectStage>>
   * @throws ApiException if fails to make API call
   */
  public ApiResponse> getStagesForProjectWithHttpInfo(String projectId) throws ApiException {
    HttpRequest.Builder localVarRequestBuilder = getStagesForProjectRequestBuilder(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("getStagesForProject", 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 getStagesForProjectRequestBuilder(String projectId) throws ApiException {
    // verify the required parameter 'projectId' is set
    if (projectId == null) {
      throw new ApiException(400, "Missing the required parameter 'projectId' when calling getStagesForProject");
    }

    HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();

    String localVarPath = "/projectManagement/project/{projectId}/stage/list"
        .replace("{projectId}", ApiClient.urlEncode(projectId.toString()));

    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;
  }
  /**
   * Gets Ticket Details from Project Management
   * 
   * @param ticketId The Project Management Ticket Id (required)
   * @param xDominoPmApiToken  (optional)
   * @return DominoProjectManagementApiPmTicket
   * @throws ApiException if fails to make API call
   */
  public DominoProjectManagementApiPmTicket getTicketDetails(String ticketId, String xDominoPmApiToken) throws ApiException {
    ApiResponse localVarResponse = getTicketDetailsWithHttpInfo(ticketId, xDominoPmApiToken);
    return localVarResponse.getData();
  }

  /**
   * Gets Ticket Details from Project Management
   * 
   * @param ticketId The Project Management Ticket Id (required)
   * @param xDominoPmApiToken  (optional)
   * @return ApiResponse<DominoProjectManagementApiPmTicket>
   * @throws ApiException if fails to make API call
   */
  public ApiResponse getTicketDetailsWithHttpInfo(String ticketId, String xDominoPmApiToken) throws ApiException {
    HttpRequest.Builder localVarRequestBuilder = getTicketDetailsRequestBuilder(ticketId, xDominoPmApiToken);
    try {
      HttpResponse localVarResponse = memberVarHttpClient.send(
          localVarRequestBuilder.build(),
          HttpResponse.BodyHandlers.ofInputStream());
      if (memberVarResponseInterceptor != null) {
        memberVarResponseInterceptor.accept(localVarResponse);
      }
      try {
        if (localVarResponse.statusCode()/ 100 != 2) {
          throw getApiException("getTicketDetails", 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 getTicketDetailsRequestBuilder(String ticketId, String xDominoPmApiToken) throws ApiException {
    // verify the required parameter 'ticketId' is set
    if (ticketId == null) {
      throw new ApiException(400, "Missing the required parameter 'ticketId' when calling getTicketDetails");
    }

    HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();

    String localVarPath = "/projectManagement/getTicketDetails";

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

    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;
  }
  /**
   * count All Linked Projects
   * 
   * @return Integer
   * @throws ApiException if fails to make API call
   */
  public Integer getTotalNumberOfLinkedProjects() throws ApiException {
    ApiResponse localVarResponse = getTotalNumberOfLinkedProjectsWithHttpInfo();
    return localVarResponse.getData();
  }

  /**
   * count All Linked Projects
   * 
   * @return ApiResponse<Integer>
   * @throws ApiException if fails to make API call
   */
  public ApiResponse getTotalNumberOfLinkedProjectsWithHttpInfo() throws ApiException {
    HttpRequest.Builder localVarRequestBuilder = getTotalNumberOfLinkedProjectsRequestBuilder();
    try {
      HttpResponse localVarResponse = memberVarHttpClient.send(
          localVarRequestBuilder.build(),
          HttpResponse.BodyHandlers.ofInputStream());
      if (memberVarResponseInterceptor != null) {
        memberVarResponseInterceptor.accept(localVarResponse);
      }
      try {
        if (localVarResponse.statusCode()/ 100 != 2) {
          throw getApiException("getTotalNumberOfLinkedProjects", 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 getTotalNumberOfLinkedProjectsRequestBuilder() throws ApiException {

    HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();

    String localVarPath = "/projectManagement/totalNumberOfLinkedProjects";

    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;
  }
  /**
   * Verifies if Project is linked to a ticket in Project Management Tool.
   * 
   * @param projectId Domino Project Id which is linked to jira. (required)
   * @param xDominoPmApiToken  (optional)
   * @return String
   * @throws ApiException if fails to make API call
   */
  public String isProjectLinked(String projectId, String xDominoPmApiToken) throws ApiException {
    ApiResponse localVarResponse = isProjectLinkedWithHttpInfo(projectId, xDominoPmApiToken);
    return localVarResponse.getData();
  }

  /**
   * Verifies if Project is linked to a ticket in Project Management Tool.
   * 
   * @param projectId Domino Project Id which is linked to jira. (required)
   * @param xDominoPmApiToken  (optional)
   * @return ApiResponse<String>
   * @throws ApiException if fails to make API call
   */
  public ApiResponse isProjectLinkedWithHttpInfo(String projectId, String xDominoPmApiToken) throws ApiException {
    HttpRequest.Builder localVarRequestBuilder = isProjectLinkedRequestBuilder(projectId, xDominoPmApiToken);
    try {
      HttpResponse localVarResponse = memberVarHttpClient.send(
          localVarRequestBuilder.build(),
          HttpResponse.BodyHandlers.ofInputStream());
      if (memberVarResponseInterceptor != null) {
        memberVarResponseInterceptor.accept(localVarResponse);
      }
      try {
        if (localVarResponse.statusCode()/ 100 != 2) {
          throw getApiException("isProjectLinked", 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 isProjectLinkedRequestBuilder(String projectId, String xDominoPmApiToken) throws ApiException {
    // verify the required parameter 'projectId' is set
    if (projectId == null) {
      throw new ApiException(400, "Missing the required parameter 'projectId' when calling isProjectLinked");
    }

    HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();

    String localVarPath = "/projectManagement/isProjectLinked";

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

    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;
  }
  /**
   * Tells whether User is Authenticated
   * 
   * @param xDominoPmApiToken  (optional)
   * @return String
   * @throws ApiException if fails to make API call
   */
  public String isUserAuthenticated(String xDominoPmApiToken) throws ApiException {
    ApiResponse localVarResponse = isUserAuthenticatedWithHttpInfo(xDominoPmApiToken);
    return localVarResponse.getData();
  }

  /**
   * Tells whether User is Authenticated
   * 
   * @param xDominoPmApiToken  (optional)
   * @return ApiResponse<String>
   * @throws ApiException if fails to make API call
   */
  public ApiResponse isUserAuthenticatedWithHttpInfo(String xDominoPmApiToken) throws ApiException {
    HttpRequest.Builder localVarRequestBuilder = isUserAuthenticatedRequestBuilder(xDominoPmApiToken);
    try {
      HttpResponse localVarResponse = memberVarHttpClient.send(
          localVarRequestBuilder.build(),
          HttpResponse.BodyHandlers.ofInputStream());
      if (memberVarResponseInterceptor != null) {
        memberVarResponseInterceptor.accept(localVarResponse);
      }
      try {
        if (localVarResponse.statusCode()/ 100 != 2) {
          throw getApiException("isUserAuthenticated", 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 isUserAuthenticatedRequestBuilder(String xDominoPmApiToken) throws ApiException {

    HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();

    String localVarPath = "/projectManagement/isUserAuthenticated";

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

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

    localVarRequestBuilder.method("POST", HttpRequest.BodyPublishers.noBody());
    if (memberVarReadTimeout != null) {
      localVarRequestBuilder.timeout(memberVarReadTimeout);
    }
    if (memberVarInterceptor != null) {
      memberVarInterceptor.accept(localVarRequestBuilder);
    }
    return localVarRequestBuilder;
  }
  /**
   * Checks if User is authorized to view that linked project
   * 
   * @param projectId Domino Project Id which is linked to jira. (required)
   * @param xDominoPmApiToken  (optional)
   * @return String
   * @throws ApiException if fails to make API call
   */
  public String isUserAuthorized(String projectId, String xDominoPmApiToken) throws ApiException {
    ApiResponse localVarResponse = isUserAuthorizedWithHttpInfo(projectId, xDominoPmApiToken);
    return localVarResponse.getData();
  }

  /**
   * Checks if User is authorized to view that linked project
   * 
   * @param projectId Domino Project Id which is linked to jira. (required)
   * @param xDominoPmApiToken  (optional)
   * @return ApiResponse<String>
   * @throws ApiException if fails to make API call
   */
  public ApiResponse isUserAuthorizedWithHttpInfo(String projectId, String xDominoPmApiToken) throws ApiException {
    HttpRequest.Builder localVarRequestBuilder = isUserAuthorizedRequestBuilder(projectId, xDominoPmApiToken);
    try {
      HttpResponse localVarResponse = memberVarHttpClient.send(
          localVarRequestBuilder.build(),
          HttpResponse.BodyHandlers.ofInputStream());
      if (memberVarResponseInterceptor != null) {
        memberVarResponseInterceptor.accept(localVarResponse);
      }
      try {
        if (localVarResponse.statusCode()/ 100 != 2) {
          throw getApiException("isUserAuthorized", 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 isUserAuthorizedRequestBuilder(String projectId, String xDominoPmApiToken) throws ApiException {
    // verify the required parameter 'projectId' is set
    if (projectId == null) {
      throw new ApiException(400, "Missing the required parameter 'projectId' when calling isUserAuthorized");
    }

    HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();

    String localVarPath = "/projectManagement/isUserAuthorized";

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

    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;
  }
  /**
   * Add Project Management Linker Data For Jira Basic Authentication
   * 
   * @param dominoProjectManagementApiPmLinker JSON object with data to link a Project Management Tool (required)
   * @param xDominoPmApiToken  (optional)
   * @throws ApiException if fails to make API call
   */
  public void jiraBasicAuth(DominoProjectManagementApiPmLinker dominoProjectManagementApiPmLinker, String xDominoPmApiToken) throws ApiException {
    jiraBasicAuthWithHttpInfo(dominoProjectManagementApiPmLinker, xDominoPmApiToken);
  }

  /**
   * Add Project Management Linker Data For Jira Basic Authentication
   * 
   * @param dominoProjectManagementApiPmLinker JSON object with data to link a Project Management Tool (required)
   * @param xDominoPmApiToken  (optional)
   * @return ApiResponse<Void>
   * @throws ApiException if fails to make API call
   */
  public ApiResponse jiraBasicAuthWithHttpInfo(DominoProjectManagementApiPmLinker dominoProjectManagementApiPmLinker, String xDominoPmApiToken) throws ApiException {
    HttpRequest.Builder localVarRequestBuilder = jiraBasicAuthRequestBuilder(dominoProjectManagementApiPmLinker, xDominoPmApiToken);
    try {
      HttpResponse localVarResponse = memberVarHttpClient.send(
          localVarRequestBuilder.build(),
          HttpResponse.BodyHandlers.ofInputStream());
      if (memberVarResponseInterceptor != null) {
        memberVarResponseInterceptor.accept(localVarResponse);
      }
      try {
        if (localVarResponse.statusCode()/ 100 != 2) {
          throw getApiException("jiraBasicAuth", 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 jiraBasicAuthRequestBuilder(DominoProjectManagementApiPmLinker dominoProjectManagementApiPmLinker, String xDominoPmApiToken) throws ApiException {
    // verify the required parameter 'dominoProjectManagementApiPmLinker' is set
    if (dominoProjectManagementApiPmLinker == null) {
      throw new ApiException(400, "Missing the required parameter 'dominoProjectManagementApiPmLinker' when calling jiraBasicAuth");
    }

    HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();

    String localVarPath = "/projectManagement/jiraBasicAuth";

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

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

    try {
      byte[] localVarPostBody = memberVarObjectMapper.writeValueAsBytes(dominoProjectManagementApiPmLinker);
      localVarRequestBuilder.method("POST", HttpRequest.BodyPublishers.ofByteArray(localVarPostBody));
    } catch (IOException e) {
      throw new ApiException(e);
    }
    if (memberVarReadTimeout != null) {
      localVarRequestBuilder.timeout(memberVarReadTimeout);
    }
    if (memberVarInterceptor != null) {
      memberVarInterceptor.accept(localVarRequestBuilder);
    }
    return localVarRequestBuilder;
  }
  /**
   * Completes authentication with jira server/cloud through OAuth protocol.
   * 
   * @param oauthVerifier The verifier token provided by jira server (optional)
   * @param dominoRedirectionUrl Domino page url to be opened after successful authentication by oAuth (optional)
   * @return DominoProjectManagementApiResponseMessage
   * @throws ApiException if fails to make API call
   */
  public DominoProjectManagementApiResponseMessage jiraOAuth(String oauthVerifier, String dominoRedirectionUrl) throws ApiException {
    ApiResponse localVarResponse = jiraOAuthWithHttpInfo(oauthVerifier, dominoRedirectionUrl);
    return localVarResponse.getData();
  }

  /**
   * Completes authentication with jira server/cloud through OAuth protocol.
   * 
   * @param oauthVerifier The verifier token provided by jira server (optional)
   * @param dominoRedirectionUrl Domino page url to be opened after successful authentication by oAuth (optional)
   * @return ApiResponse<DominoProjectManagementApiResponseMessage>
   * @throws ApiException if fails to make API call
   */
  public ApiResponse jiraOAuthWithHttpInfo(String oauthVerifier, String dominoRedirectionUrl) throws ApiException {
    HttpRequest.Builder localVarRequestBuilder = jiraOAuthRequestBuilder(oauthVerifier, dominoRedirectionUrl);
    try {
      HttpResponse localVarResponse = memberVarHttpClient.send(
          localVarRequestBuilder.build(),
          HttpResponse.BodyHandlers.ofInputStream());
      if (memberVarResponseInterceptor != null) {
        memberVarResponseInterceptor.accept(localVarResponse);
      }
      try {
        if (localVarResponse.statusCode()/ 100 != 2) {
          throw getApiException("jiraOAuth", 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 jiraOAuthRequestBuilder(String oauthVerifier, String dominoRedirectionUrl) throws ApiException {

    HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();

    String localVarPath = "/projectManagement/jiraOAuth";

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

    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;
  }
  /**
   * Link job to goal
   * 
   * @param jobId  (required)
   * @param dominoProjectManagementWebLinkJobToGoalRequest JSON object with information for linking goal to a job (required)
   * @param xDominoPmApiToken  (optional)
   * @return DominoProjectManagementApiResponseMessage
   * @throws ApiException if fails to make API call
   */
  public DominoProjectManagementApiResponseMessage linkJobToGoal(String jobId, DominoProjectManagementWebLinkJobToGoalRequest dominoProjectManagementWebLinkJobToGoalRequest, String xDominoPmApiToken) throws ApiException {
    ApiResponse localVarResponse = linkJobToGoalWithHttpInfo(jobId, dominoProjectManagementWebLinkJobToGoalRequest, xDominoPmApiToken);
    return localVarResponse.getData();
  }

  /**
   * Link job to goal
   * 
   * @param jobId  (required)
   * @param dominoProjectManagementWebLinkJobToGoalRequest JSON object with information for linking goal to a job (required)
   * @param xDominoPmApiToken  (optional)
   * @return ApiResponse<DominoProjectManagementApiResponseMessage>
   * @throws ApiException if fails to make API call
   */
  public ApiResponse linkJobToGoalWithHttpInfo(String jobId, DominoProjectManagementWebLinkJobToGoalRequest dominoProjectManagementWebLinkJobToGoalRequest, String xDominoPmApiToken) throws ApiException {
    HttpRequest.Builder localVarRequestBuilder = linkJobToGoalRequestBuilder(jobId, dominoProjectManagementWebLinkJobToGoalRequest, xDominoPmApiToken);
    try {
      HttpResponse localVarResponse = memberVarHttpClient.send(
          localVarRequestBuilder.build(),
          HttpResponse.BodyHandlers.ofInputStream());
      if (memberVarResponseInterceptor != null) {
        memberVarResponseInterceptor.accept(localVarResponse);
      }
      try {
        if (localVarResponse.statusCode()/ 100 != 2) {
          throw getApiException("linkJobToGoal", 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 linkJobToGoalRequestBuilder(String jobId, DominoProjectManagementWebLinkJobToGoalRequest dominoProjectManagementWebLinkJobToGoalRequest, String xDominoPmApiToken) throws ApiException {
    // verify the required parameter 'jobId' is set
    if (jobId == null) {
      throw new ApiException(400, "Missing the required parameter 'jobId' when calling linkJobToGoal");
    }
    // verify the required parameter 'dominoProjectManagementWebLinkJobToGoalRequest' is set
    if (dominoProjectManagementWebLinkJobToGoalRequest == null) {
      throw new ApiException(400, "Missing the required parameter 'dominoProjectManagementWebLinkJobToGoalRequest' when calling linkJobToGoal");
    }

    HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();

    String localVarPath = "/projectManagement/{jobId}/linkJobToGoal"
        .replace("{jobId}", ApiClient.urlEncode(jobId.toString()));

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

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

    try {
      byte[] localVarPostBody = memberVarObjectMapper.writeValueAsBytes(dominoProjectManagementWebLinkJobToGoalRequest);
      localVarRequestBuilder.method("POST", HttpRequest.BodyPublishers.ofByteArray(localVarPostBody));
    } catch (IOException e) {
      throw new ApiException(e);
    }
    if (memberVarReadTimeout != null) {
      localVarRequestBuilder.timeout(memberVarReadTimeout);
    }
    if (memberVarInterceptor != null) {
      memberVarInterceptor.accept(localVarRequestBuilder);
    }
    return localVarRequestBuilder;
  }
  /**
   * Link a file to a goal
   * 
   * @param dominoProjectManagementWebLinkFileToGoalRequest JSON object with information for unlinking goal from workspace (required)
   * @param xDominoPmApiToken  (optional)
   * @return DominoProjectManagementApiResponseMessage
   * @throws ApiException if fails to make API call
   */
  public DominoProjectManagementApiResponseMessage linkManageFileToGoalForProject(DominoProjectManagementWebLinkFileToGoalRequest dominoProjectManagementWebLinkFileToGoalRequest, String xDominoPmApiToken) throws ApiException {
    ApiResponse localVarResponse = linkManageFileToGoalForProjectWithHttpInfo(dominoProjectManagementWebLinkFileToGoalRequest, xDominoPmApiToken);
    return localVarResponse.getData();
  }

  /**
   * Link a file to a goal
   * 
   * @param dominoProjectManagementWebLinkFileToGoalRequest JSON object with information for unlinking goal from workspace (required)
   * @param xDominoPmApiToken  (optional)
   * @return ApiResponse<DominoProjectManagementApiResponseMessage>
   * @throws ApiException if fails to make API call
   */
  public ApiResponse linkManageFileToGoalForProjectWithHttpInfo(DominoProjectManagementWebLinkFileToGoalRequest dominoProjectManagementWebLinkFileToGoalRequest, String xDominoPmApiToken) throws ApiException {
    HttpRequest.Builder localVarRequestBuilder = linkManageFileToGoalForProjectRequestBuilder(dominoProjectManagementWebLinkFileToGoalRequest, xDominoPmApiToken);
    try {
      HttpResponse localVarResponse = memberVarHttpClient.send(
          localVarRequestBuilder.build(),
          HttpResponse.BodyHandlers.ofInputStream());
      if (memberVarResponseInterceptor != null) {
        memberVarResponseInterceptor.accept(localVarResponse);
      }
      try {
        if (localVarResponse.statusCode()/ 100 != 2) {
          throw getApiException("linkManageFileToGoalForProject", 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 linkManageFileToGoalForProjectRequestBuilder(DominoProjectManagementWebLinkFileToGoalRequest dominoProjectManagementWebLinkFileToGoalRequest, String xDominoPmApiToken) throws ApiException {
    // verify the required parameter 'dominoProjectManagementWebLinkFileToGoalRequest' is set
    if (dominoProjectManagementWebLinkFileToGoalRequest == null) {
      throw new ApiException(400, "Missing the required parameter 'dominoProjectManagementWebLinkFileToGoalRequest' when calling linkManageFileToGoalForProject");
    }

    HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();

    String localVarPath = "/projectManagement/linkFileToGoal";

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

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

    try {
      byte[] localVarPostBody = memberVarObjectMapper.writeValueAsBytes(dominoProjectManagementWebLinkFileToGoalRequest);
      localVarRequestBuilder.method("POST", HttpRequest.BodyPublishers.ofByteArray(localVarPostBody));
    } catch (IOException e) {
      throw new ApiException(e);
    }
    if (memberVarReadTimeout != null) {
      localVarRequestBuilder.timeout(memberVarReadTimeout);
    }
    if (memberVarInterceptor != null) {
      memberVarInterceptor.accept(localVarRequestBuilder);
    }
    return localVarRequestBuilder;
  }
  /**
   * Link workspace to goal
   * 
   * @param workspaceId ID of the workspace (required)
   * @param dominoProjectManagementWebLinkWorkspaceToGoalRequest JSON object with information for linking goal to a workpace (required)
   * @param xDominoPmApiToken  (optional)
   * @return DominoProjectManagementApiResponseMessage
   * @throws ApiException if fails to make API call
   */
  public DominoProjectManagementApiResponseMessage linkManageWorkspaceToGoal(String workspaceId, DominoProjectManagementWebLinkWorkspaceToGoalRequest dominoProjectManagementWebLinkWorkspaceToGoalRequest, String xDominoPmApiToken) throws ApiException {
    ApiResponse localVarResponse = linkManageWorkspaceToGoalWithHttpInfo(workspaceId, dominoProjectManagementWebLinkWorkspaceToGoalRequest, xDominoPmApiToken);
    return localVarResponse.getData();
  }

  /**
   * Link workspace to goal
   * 
   * @param workspaceId ID of the workspace (required)
   * @param dominoProjectManagementWebLinkWorkspaceToGoalRequest JSON object with information for linking goal to a workpace (required)
   * @param xDominoPmApiToken  (optional)
   * @return ApiResponse<DominoProjectManagementApiResponseMessage>
   * @throws ApiException if fails to make API call
   */
  public ApiResponse linkManageWorkspaceToGoalWithHttpInfo(String workspaceId, DominoProjectManagementWebLinkWorkspaceToGoalRequest dominoProjectManagementWebLinkWorkspaceToGoalRequest, String xDominoPmApiToken) throws ApiException {
    HttpRequest.Builder localVarRequestBuilder = linkManageWorkspaceToGoalRequestBuilder(workspaceId, dominoProjectManagementWebLinkWorkspaceToGoalRequest, xDominoPmApiToken);
    try {
      HttpResponse localVarResponse = memberVarHttpClient.send(
          localVarRequestBuilder.build(),
          HttpResponse.BodyHandlers.ofInputStream());
      if (memberVarResponseInterceptor != null) {
        memberVarResponseInterceptor.accept(localVarResponse);
      }
      try {
        if (localVarResponse.statusCode()/ 100 != 2) {
          throw getApiException("linkManageWorkspaceToGoal", 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 linkManageWorkspaceToGoalRequestBuilder(String workspaceId, DominoProjectManagementWebLinkWorkspaceToGoalRequest dominoProjectManagementWebLinkWorkspaceToGoalRequest, String xDominoPmApiToken) throws ApiException {
    // verify the required parameter 'workspaceId' is set
    if (workspaceId == null) {
      throw new ApiException(400, "Missing the required parameter 'workspaceId' when calling linkManageWorkspaceToGoal");
    }
    // verify the required parameter 'dominoProjectManagementWebLinkWorkspaceToGoalRequest' is set
    if (dominoProjectManagementWebLinkWorkspaceToGoalRequest == null) {
      throw new ApiException(400, "Missing the required parameter 'dominoProjectManagementWebLinkWorkspaceToGoalRequest' when calling linkManageWorkspaceToGoal");
    }

    HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();

    String localVarPath = "/projectManagement/{workspaceId}/linkWorkspaceToGoal"
        .replace("{workspaceId}", ApiClient.urlEncode(workspaceId.toString()));

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

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

    try {
      byte[] localVarPostBody = memberVarObjectMapper.writeValueAsBytes(dominoProjectManagementWebLinkWorkspaceToGoalRequest);
      localVarRequestBuilder.method("POST", HttpRequest.BodyPublishers.ofByteArray(localVarPostBody));
    } catch (IOException e) {
      throw new ApiException(e);
    }
    if (memberVarReadTimeout != null) {
      localVarRequestBuilder.timeout(memberVarReadTimeout);
    }
    if (memberVarInterceptor != null) {
      memberVarInterceptor.accept(localVarRequestBuilder);
    }
    return localVarRequestBuilder;
  }
  /**
   * Link a Project with a Project Management Ticket
   * 
   * @param ticketId TicketId of the Ticket in the Project management tool which needs to linked (required)
   * @param projectId Domino id of the project (required)
   * @param keepExistingGoals  (required)
   * @param xDominoPmApiToken  (optional)
   * @return DominoProjectManagementApiResponseMessage
   * @throws ApiException if fails to make API call
   */
  public DominoProjectManagementApiResponseMessage linkPmTicketWithDominoEntity(String ticketId, String projectId, Boolean keepExistingGoals, String xDominoPmApiToken) throws ApiException {
    ApiResponse localVarResponse = linkPmTicketWithDominoEntityWithHttpInfo(ticketId, projectId, keepExistingGoals, xDominoPmApiToken);
    return localVarResponse.getData();
  }

  /**
   * Link a Project with a Project Management Ticket
   * 
   * @param ticketId TicketId of the Ticket in the Project management tool which needs to linked (required)
   * @param projectId Domino id of the project (required)
   * @param keepExistingGoals  (required)
   * @param xDominoPmApiToken  (optional)
   * @return ApiResponse<DominoProjectManagementApiResponseMessage>
   * @throws ApiException if fails to make API call
   */
  public ApiResponse linkPmTicketWithDominoEntityWithHttpInfo(String ticketId, String projectId, Boolean keepExistingGoals, String xDominoPmApiToken) throws ApiException {
    HttpRequest.Builder localVarRequestBuilder = linkPmTicketWithDominoEntityRequestBuilder(ticketId, projectId, keepExistingGoals, xDominoPmApiToken);
    try {
      HttpResponse localVarResponse = memberVarHttpClient.send(
          localVarRequestBuilder.build(),
          HttpResponse.BodyHandlers.ofInputStream());
      if (memberVarResponseInterceptor != null) {
        memberVarResponseInterceptor.accept(localVarResponse);
      }
      try {
        if (localVarResponse.statusCode()/ 100 != 2) {
          throw getApiException("linkPmTicketWithDominoEntity", 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 linkPmTicketWithDominoEntityRequestBuilder(String ticketId, String projectId, Boolean keepExistingGoals, String xDominoPmApiToken) throws ApiException {
    // verify the required parameter 'ticketId' is set
    if (ticketId == null) {
      throw new ApiException(400, "Missing the required parameter 'ticketId' when calling linkPmTicketWithDominoEntity");
    }
    // verify the required parameter 'projectId' is set
    if (projectId == null) {
      throw new ApiException(400, "Missing the required parameter 'projectId' when calling linkPmTicketWithDominoEntity");
    }
    // verify the required parameter 'keepExistingGoals' is set
    if (keepExistingGoals == null) {
      throw new ApiException(400, "Missing the required parameter 'keepExistingGoals' when calling linkPmTicketWithDominoEntity");
    }

    HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();

    String localVarPath = "/projectManagement/{projectId}/linkDominoProjectToPMTTicket"
        .replace("{projectId}", ApiClient.urlEncode(projectId.toString()));

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

    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("POST", HttpRequest.BodyPublishers.noBody());
    if (memberVarReadTimeout != null) {
      localVarRequestBuilder.timeout(memberVarReadTimeout);
    }
    if (memberVarInterceptor != null) {
      memberVarInterceptor.accept(localVarRequestBuilder);
    }
    return localVarRequestBuilder;
  }
  /**
   * Assign stage to a Goal
   * 
   * @param goalId Domino id of the goal (required)
   * @param stageId Domino id of the project stage (required)
   * @param xDominoPmApiToken  (optional)
   * @return DominoProjectsApiProjectGoalStageAndStatus
   * @throws ApiException if fails to make API call
   */
  public DominoProjectsApiProjectGoalStageAndStatus moveGoalToStage(String goalId, String stageId, String xDominoPmApiToken) throws ApiException {
    ApiResponse localVarResponse = moveGoalToStageWithHttpInfo(goalId, stageId, xDominoPmApiToken);
    return localVarResponse.getData();
  }

  /**
   * Assign stage to a Goal
   * 
   * @param goalId Domino id of the goal (required)
   * @param stageId Domino id of the project stage (required)
   * @param xDominoPmApiToken  (optional)
   * @return ApiResponse<DominoProjectsApiProjectGoalStageAndStatus>
   * @throws ApiException if fails to make API call
   */
  public ApiResponse moveGoalToStageWithHttpInfo(String goalId, String stageId, String xDominoPmApiToken) throws ApiException {
    HttpRequest.Builder localVarRequestBuilder = moveGoalToStageRequestBuilder(goalId, stageId, xDominoPmApiToken);
    try {
      HttpResponse localVarResponse = memberVarHttpClient.send(
          localVarRequestBuilder.build(),
          HttpResponse.BodyHandlers.ofInputStream());
      if (memberVarResponseInterceptor != null) {
        memberVarResponseInterceptor.accept(localVarResponse);
      }
      try {
        if (localVarResponse.statusCode()/ 100 != 2) {
          throw getApiException("moveGoalToStage", 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 moveGoalToStageRequestBuilder(String goalId, String stageId, String xDominoPmApiToken) throws ApiException {
    // verify the required parameter 'goalId' is set
    if (goalId == null) {
      throw new ApiException(400, "Missing the required parameter 'goalId' when calling moveGoalToStage");
    }
    // verify the required parameter 'stageId' is set
    if (stageId == null) {
      throw new ApiException(400, "Missing the required parameter 'stageId' when calling moveGoalToStage");
    }

    HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();

    String localVarPath = "/projectManagement/goal/{goalId}/stage/{stageId}"
        .replace("{goalId}", ApiClient.urlEncode(goalId.toString()))
        .replace("{stageId}", ApiClient.urlEncode(stageId.toString()));

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

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

    localVarRequestBuilder.method("POST", HttpRequest.BodyPublishers.noBody());
    if (memberVarReadTimeout != null) {
      localVarRequestBuilder.timeout(memberVarReadTimeout);
    }
    if (memberVarInterceptor != null) {
      memberVarInterceptor.accept(localVarRequestBuilder);
    }
    return localVarRequestBuilder;
  }
  /**
   * Assign stage to a project
   * 
   * @param dominoProjectsWebMoveProjectToStage JSON object with data to assign a stage to a project (required)
   * @param xDominoPmApiToken  (optional)
   * @return DominoProjectsApiProjectStageAndStatus
   * @throws ApiException if fails to make API call
   */
  public DominoProjectsApiProjectStageAndStatus moveProjectToStage(DominoProjectsWebMoveProjectToStage dominoProjectsWebMoveProjectToStage, String xDominoPmApiToken) throws ApiException {
    ApiResponse localVarResponse = moveProjectToStageWithHttpInfo(dominoProjectsWebMoveProjectToStage, xDominoPmApiToken);
    return localVarResponse.getData();
  }

  /**
   * Assign stage to a project
   * 
   * @param dominoProjectsWebMoveProjectToStage JSON object with data to assign a stage to a project (required)
   * @param xDominoPmApiToken  (optional)
   * @return ApiResponse<DominoProjectsApiProjectStageAndStatus>
   * @throws ApiException if fails to make API call
   */
  public ApiResponse moveProjectToStageWithHttpInfo(DominoProjectsWebMoveProjectToStage dominoProjectsWebMoveProjectToStage, String xDominoPmApiToken) throws ApiException {
    HttpRequest.Builder localVarRequestBuilder = moveProjectToStageRequestBuilder(dominoProjectsWebMoveProjectToStage, xDominoPmApiToken);
    try {
      HttpResponse localVarResponse = memberVarHttpClient.send(
          localVarRequestBuilder.build(),
          HttpResponse.BodyHandlers.ofInputStream());
      if (memberVarResponseInterceptor != null) {
        memberVarResponseInterceptor.accept(localVarResponse);
      }
      try {
        if (localVarResponse.statusCode()/ 100 != 2) {
          throw getApiException("moveProjectToStage", 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 moveProjectToStageRequestBuilder(DominoProjectsWebMoveProjectToStage dominoProjectsWebMoveProjectToStage, String xDominoPmApiToken) throws ApiException {
    // verify the required parameter 'dominoProjectsWebMoveProjectToStage' is set
    if (dominoProjectsWebMoveProjectToStage == null) {
      throw new ApiException(400, "Missing the required parameter 'dominoProjectsWebMoveProjectToStage' when calling moveProjectToStage");
    }

    HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();

    String localVarPath = "/projectManagement/moveProjectToStage";

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

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

    try {
      byte[] localVarPostBody = memberVarObjectMapper.writeValueAsBytes(dominoProjectsWebMoveProjectToStage);
      localVarRequestBuilder.method("POST", HttpRequest.BodyPublishers.ofByteArray(localVarPostBody));
    } catch (IOException e) {
      throw new ApiException(e);
    }
    if (memberVarReadTimeout != null) {
      localVarRequestBuilder.timeout(memberVarReadTimeout);
    }
    if (memberVarInterceptor != null) {
      memberVarInterceptor.accept(localVarRequestBuilder);
    }
    return localVarRequestBuilder;
  }
  /**
   * Delete Jira oauth configuration
   * 
   * @throws ApiException if fails to make API call
   */
  public void removeJiraOAuthConfiguration() throws ApiException {
    removeJiraOAuthConfigurationWithHttpInfo();
  }

  /**
   * Delete Jira oauth configuration
   * 
   * @return ApiResponse<Void>
   * @throws ApiException if fails to make API call
   */
  public ApiResponse removeJiraOAuthConfigurationWithHttpInfo() throws ApiException {
    HttpRequest.Builder localVarRequestBuilder = removeJiraOAuthConfigurationRequestBuilder();
    try {
      HttpResponse localVarResponse = memberVarHttpClient.send(
          localVarRequestBuilder.build(),
          HttpResponse.BodyHandlers.ofInputStream());
      if (memberVarResponseInterceptor != null) {
        memberVarResponseInterceptor.accept(localVarResponse);
      }
      try {
        if (localVarResponse.statusCode()/ 100 != 2) {
          throw getApiException("removeJiraOAuthConfiguration", 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 removeJiraOAuthConfigurationRequestBuilder() throws ApiException {

    HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();

    String localVarPath = "/projectManagement/deleteJiraOAuthConfiguration";

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

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

    localVarRequestBuilder.method("DELETE", HttpRequest.BodyPublishers.noBody());
    if (memberVarReadTimeout != null) {
      localVarRequestBuilder.timeout(memberVarReadTimeout);
    }
    if (memberVarInterceptor != null) {
      memberVarInterceptor.accept(localVarRequestBuilder);
    }
    return localVarRequestBuilder;
  }
  /**
   * Unlink and Reset Project
   * 
   * @param projectId Domino id of the project (required)
   * @throws ApiException if fails to make API call
   */
  public void unlinkAndResetProject(String projectId) throws ApiException {
    unlinkAndResetProjectWithHttpInfo(projectId);
  }

  /**
   * Unlink and Reset Project
   * 
   * @param projectId Domino id of the project (required)
   * @return ApiResponse<Void>
   * @throws ApiException if fails to make API call
   */
  public ApiResponse unlinkAndResetProjectWithHttpInfo(String projectId) throws ApiException {
    HttpRequest.Builder localVarRequestBuilder = unlinkAndResetProjectRequestBuilder(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("unlinkAndResetProject", 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 unlinkAndResetProjectRequestBuilder(String projectId) throws ApiException {
    // verify the required parameter 'projectId' is set
    if (projectId == null) {
      throw new ApiException(400, "Missing the required parameter 'projectId' when calling unlinkAndResetProject");
    }

    HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();

    String localVarPath = "/projectManagement/{projectId}/unlinkAndResetProject"
        .replace("{projectId}", ApiClient.urlEncode(projectId.toString()));

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

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

    localVarRequestBuilder.method("POST", HttpRequest.BodyPublishers.noBody());
    if (memberVarReadTimeout != null) {
      localVarRequestBuilder.timeout(memberVarReadTimeout);
    }
    if (memberVarInterceptor != null) {
      memberVarInterceptor.accept(localVarRequestBuilder);
    }
    return localVarRequestBuilder;
  }
  /**
   * Unlink job from goal
   * 
   * @param jobId  (required)
   * @param dominoProjectManagementWebUnlinkJobFromGoalRequest JSON object with information for unlinking goal from job (required)
   * @param xDominoPmApiToken  (optional)
   * @return DominoProjectManagementApiResponseMessage
   * @throws ApiException if fails to make API call
   */
  public DominoProjectManagementApiResponseMessage unlinkManageJobFromGoal(String jobId, DominoProjectManagementWebUnlinkJobFromGoalRequest dominoProjectManagementWebUnlinkJobFromGoalRequest, String xDominoPmApiToken) throws ApiException {
    ApiResponse localVarResponse = unlinkManageJobFromGoalWithHttpInfo(jobId, dominoProjectManagementWebUnlinkJobFromGoalRequest, xDominoPmApiToken);
    return localVarResponse.getData();
  }

  /**
   * Unlink job from goal
   * 
   * @param jobId  (required)
   * @param dominoProjectManagementWebUnlinkJobFromGoalRequest JSON object with information for unlinking goal from job (required)
   * @param xDominoPmApiToken  (optional)
   * @return ApiResponse<DominoProjectManagementApiResponseMessage>
   * @throws ApiException if fails to make API call
   */
  public ApiResponse unlinkManageJobFromGoalWithHttpInfo(String jobId, DominoProjectManagementWebUnlinkJobFromGoalRequest dominoProjectManagementWebUnlinkJobFromGoalRequest, String xDominoPmApiToken) throws ApiException {
    HttpRequest.Builder localVarRequestBuilder = unlinkManageJobFromGoalRequestBuilder(jobId, dominoProjectManagementWebUnlinkJobFromGoalRequest, xDominoPmApiToken);
    try {
      HttpResponse localVarResponse = memberVarHttpClient.send(
          localVarRequestBuilder.build(),
          HttpResponse.BodyHandlers.ofInputStream());
      if (memberVarResponseInterceptor != null) {
        memberVarResponseInterceptor.accept(localVarResponse);
      }
      try {
        if (localVarResponse.statusCode()/ 100 != 2) {
          throw getApiException("unlinkManageJobFromGoal", 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 unlinkManageJobFromGoalRequestBuilder(String jobId, DominoProjectManagementWebUnlinkJobFromGoalRequest dominoProjectManagementWebUnlinkJobFromGoalRequest, String xDominoPmApiToken) throws ApiException {
    // verify the required parameter 'jobId' is set
    if (jobId == null) {
      throw new ApiException(400, "Missing the required parameter 'jobId' when calling unlinkManageJobFromGoal");
    }
    // verify the required parameter 'dominoProjectManagementWebUnlinkJobFromGoalRequest' is set
    if (dominoProjectManagementWebUnlinkJobFromGoalRequest == null) {
      throw new ApiException(400, "Missing the required parameter 'dominoProjectManagementWebUnlinkJobFromGoalRequest' when calling unlinkManageJobFromGoal");
    }

    HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();

    String localVarPath = "/projectManagement/{jobId}/unlinkJobFromGoal"
        .replace("{jobId}", ApiClient.urlEncode(jobId.toString()));

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

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

    try {
      byte[] localVarPostBody = memberVarObjectMapper.writeValueAsBytes(dominoProjectManagementWebUnlinkJobFromGoalRequest);
      localVarRequestBuilder.method("POST", HttpRequest.BodyPublishers.ofByteArray(localVarPostBody));
    } catch (IOException e) {
      throw new ApiException(e);
    }
    if (memberVarReadTimeout != null) {
      localVarRequestBuilder.timeout(memberVarReadTimeout);
    }
    if (memberVarInterceptor != null) {
      memberVarInterceptor.accept(localVarRequestBuilder);
    }
    return localVarRequestBuilder;
  }
  /**
   * Unlink a file from a goal
   * 
   * @param dominoProjectManagementWebUnlinkFileFromGoalRequest JSON object with information for unlinking goal from workspace (required)
   * @param xDominoPmApiToken  (optional)
   * @return DominoProjectManagementApiResponseMessage
   * @throws ApiException if fails to make API call
   */
  public DominoProjectManagementApiResponseMessage unlinkManageProjectFileFromGoal(DominoProjectManagementWebUnlinkFileFromGoalRequest dominoProjectManagementWebUnlinkFileFromGoalRequest, String xDominoPmApiToken) throws ApiException {
    ApiResponse localVarResponse = unlinkManageProjectFileFromGoalWithHttpInfo(dominoProjectManagementWebUnlinkFileFromGoalRequest, xDominoPmApiToken);
    return localVarResponse.getData();
  }

  /**
   * Unlink a file from a goal
   * 
   * @param dominoProjectManagementWebUnlinkFileFromGoalRequest JSON object with information for unlinking goal from workspace (required)
   * @param xDominoPmApiToken  (optional)
   * @return ApiResponse<DominoProjectManagementApiResponseMessage>
   * @throws ApiException if fails to make API call
   */
  public ApiResponse unlinkManageProjectFileFromGoalWithHttpInfo(DominoProjectManagementWebUnlinkFileFromGoalRequest dominoProjectManagementWebUnlinkFileFromGoalRequest, String xDominoPmApiToken) throws ApiException {
    HttpRequest.Builder localVarRequestBuilder = unlinkManageProjectFileFromGoalRequestBuilder(dominoProjectManagementWebUnlinkFileFromGoalRequest, xDominoPmApiToken);
    try {
      HttpResponse localVarResponse = memberVarHttpClient.send(
          localVarRequestBuilder.build(),
          HttpResponse.BodyHandlers.ofInputStream());
      if (memberVarResponseInterceptor != null) {
        memberVarResponseInterceptor.accept(localVarResponse);
      }
      try {
        if (localVarResponse.statusCode()/ 100 != 2) {
          throw getApiException("unlinkManageProjectFileFromGoal", 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 unlinkManageProjectFileFromGoalRequestBuilder(DominoProjectManagementWebUnlinkFileFromGoalRequest dominoProjectManagementWebUnlinkFileFromGoalRequest, String xDominoPmApiToken) throws ApiException {
    // verify the required parameter 'dominoProjectManagementWebUnlinkFileFromGoalRequest' is set
    if (dominoProjectManagementWebUnlinkFileFromGoalRequest == null) {
      throw new ApiException(400, "Missing the required parameter 'dominoProjectManagementWebUnlinkFileFromGoalRequest' when calling unlinkManageProjectFileFromGoal");
    }

    HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();

    String localVarPath = "/projectManagement/unlinkFileFromGoal";

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

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

    try {
      byte[] localVarPostBody = memberVarObjectMapper.writeValueAsBytes(dominoProjectManagementWebUnlinkFileFromGoalRequest);
      localVarRequestBuilder.method("POST", HttpRequest.BodyPublishers.ofByteArray(localVarPostBody));
    } catch (IOException e) {
      throw new ApiException(e);
    }
    if (memberVarReadTimeout != null) {
      localVarRequestBuilder.timeout(memberVarReadTimeout);
    }
    if (memberVarInterceptor != null) {
      memberVarInterceptor.accept(localVarRequestBuilder);
    }
    return localVarRequestBuilder;
  }
  /**
   * Unlink workspace from goal
   * 
   * @param workspaceId  (required)
   * @param dominoProjectManagementWebUnlinkWorkspaceFromGoalRequest JSON object with information for unlinking goal from workspace (required)
   * @param xDominoPmApiToken  (optional)
   * @return DominoProjectManagementApiResponseMessage
   * @throws ApiException if fails to make API call
   */
  public DominoProjectManagementApiResponseMessage unlinkManageWorkspaceFromGoal(String workspaceId, DominoProjectManagementWebUnlinkWorkspaceFromGoalRequest dominoProjectManagementWebUnlinkWorkspaceFromGoalRequest, String xDominoPmApiToken) throws ApiException {
    ApiResponse localVarResponse = unlinkManageWorkspaceFromGoalWithHttpInfo(workspaceId, dominoProjectManagementWebUnlinkWorkspaceFromGoalRequest, xDominoPmApiToken);
    return localVarResponse.getData();
  }

  /**
   * Unlink workspace from goal
   * 
   * @param workspaceId  (required)
   * @param dominoProjectManagementWebUnlinkWorkspaceFromGoalRequest JSON object with information for unlinking goal from workspace (required)
   * @param xDominoPmApiToken  (optional)
   * @return ApiResponse<DominoProjectManagementApiResponseMessage>
   * @throws ApiException if fails to make API call
   */
  public ApiResponse unlinkManageWorkspaceFromGoalWithHttpInfo(String workspaceId, DominoProjectManagementWebUnlinkWorkspaceFromGoalRequest dominoProjectManagementWebUnlinkWorkspaceFromGoalRequest, String xDominoPmApiToken) throws ApiException {
    HttpRequest.Builder localVarRequestBuilder = unlinkManageWorkspaceFromGoalRequestBuilder(workspaceId, dominoProjectManagementWebUnlinkWorkspaceFromGoalRequest, xDominoPmApiToken);
    try {
      HttpResponse localVarResponse = memberVarHttpClient.send(
          localVarRequestBuilder.build(),
          HttpResponse.BodyHandlers.ofInputStream());
      if (memberVarResponseInterceptor != null) {
        memberVarResponseInterceptor.accept(localVarResponse);
      }
      try {
        if (localVarResponse.statusCode()/ 100 != 2) {
          throw getApiException("unlinkManageWorkspaceFromGoal", 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 unlinkManageWorkspaceFromGoalRequestBuilder(String workspaceId, DominoProjectManagementWebUnlinkWorkspaceFromGoalRequest dominoProjectManagementWebUnlinkWorkspaceFromGoalRequest, String xDominoPmApiToken) throws ApiException {
    // verify the required parameter 'workspaceId' is set
    if (workspaceId == null) {
      throw new ApiException(400, "Missing the required parameter 'workspaceId' when calling unlinkManageWorkspaceFromGoal");
    }
    // verify the required parameter 'dominoProjectManagementWebUnlinkWorkspaceFromGoalRequest' is set
    if (dominoProjectManagementWebUnlinkWorkspaceFromGoalRequest == null) {
      throw new ApiException(400, "Missing the required parameter 'dominoProjectManagementWebUnlinkWorkspaceFromGoalRequest' when calling unlinkManageWorkspaceFromGoal");
    }

    HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();

    String localVarPath = "/projectManagement/{workspaceId}/unlinkWorkspaceFromGoal"
        .replace("{workspaceId}", ApiClient.urlEncode(workspaceId.toString()));

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

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

    try {
      byte[] localVarPostBody = memberVarObjectMapper.writeValueAsBytes(dominoProjectManagementWebUnlinkWorkspaceFromGoalRequest);
      localVarRequestBuilder.method("POST", HttpRequest.BodyPublishers.ofByteArray(localVarPostBody));
    } catch (IOException e) {
      throw new ApiException(e);
    }
    if (memberVarReadTimeout != null) {
      localVarRequestBuilder.timeout(memberVarReadTimeout);
    }
    if (memberVarInterceptor != null) {
      memberVarInterceptor.accept(localVarRequestBuilder);
    }
    return localVarRequestBuilder;
  }
  /**
   * UnLink a Project with Project Management Ticket
   * 
   * @param projectId Domino id of the project (required)
   * @param keepExistingGoals  (required)
   * @param xDominoPmApiToken  (optional)
   * @return DominoProjectManagementApiResponseMessage
   * @throws ApiException if fails to make API call
   */
  public DominoProjectManagementApiResponseMessage unlinkPmTicketWithDominoEntity(String projectId, Boolean keepExistingGoals, String xDominoPmApiToken) throws ApiException {
    ApiResponse localVarResponse = unlinkPmTicketWithDominoEntityWithHttpInfo(projectId, keepExistingGoals, xDominoPmApiToken);
    return localVarResponse.getData();
  }

  /**
   * UnLink a Project with Project Management Ticket
   * 
   * @param projectId Domino id of the project (required)
   * @param keepExistingGoals  (required)
   * @param xDominoPmApiToken  (optional)
   * @return ApiResponse<DominoProjectManagementApiResponseMessage>
   * @throws ApiException if fails to make API call
   */
  public ApiResponse unlinkPmTicketWithDominoEntityWithHttpInfo(String projectId, Boolean keepExistingGoals, String xDominoPmApiToken) throws ApiException {
    HttpRequest.Builder localVarRequestBuilder = unlinkPmTicketWithDominoEntityRequestBuilder(projectId, keepExistingGoals, xDominoPmApiToken);
    try {
      HttpResponse localVarResponse = memberVarHttpClient.send(
          localVarRequestBuilder.build(),
          HttpResponse.BodyHandlers.ofInputStream());
      if (memberVarResponseInterceptor != null) {
        memberVarResponseInterceptor.accept(localVarResponse);
      }
      try {
        if (localVarResponse.statusCode()/ 100 != 2) {
          throw getApiException("unlinkPmTicketWithDominoEntity", 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 unlinkPmTicketWithDominoEntityRequestBuilder(String projectId, Boolean keepExistingGoals, String xDominoPmApiToken) throws ApiException {
    // verify the required parameter 'projectId' is set
    if (projectId == null) {
      throw new ApiException(400, "Missing the required parameter 'projectId' when calling unlinkPmTicketWithDominoEntity");
    }
    // verify the required parameter 'keepExistingGoals' is set
    if (keepExistingGoals == null) {
      throw new ApiException(400, "Missing the required parameter 'keepExistingGoals' when calling unlinkPmTicketWithDominoEntity");
    }

    HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();

    String localVarPath = "/projectManagement/{projectId}/unlinkDominoProjectToPMTTicket"
        .replace("{projectId}", ApiClient.urlEncode(projectId.toString()));

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

    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("POST", HttpRequest.BodyPublishers.noBody());
    if (memberVarReadTimeout != null) {
      localVarRequestBuilder.timeout(memberVarReadTimeout);
    }
    if (memberVarInterceptor != null) {
      memberVarInterceptor.accept(localVarRequestBuilder);
    }
    return localVarRequestBuilder;
  }
  /**
   * Removes Project Management Linker Data For Project Management
   * 
   * @return DominoProjectManagementApiResponseMessage
   * @throws ApiException if fails to make API call
   */
  public DominoProjectManagementApiResponseMessage unlinkProjectManagement() throws ApiException {
    ApiResponse localVarResponse = unlinkProjectManagementWithHttpInfo();
    return localVarResponse.getData();
  }

  /**
   * Removes Project Management Linker Data For Project Management
   * 
   * @return ApiResponse<DominoProjectManagementApiResponseMessage>
   * @throws ApiException if fails to make API call
   */
  public ApiResponse unlinkProjectManagementWithHttpInfo() throws ApiException {
    HttpRequest.Builder localVarRequestBuilder = unlinkProjectManagementRequestBuilder();
    try {
      HttpResponse localVarResponse = memberVarHttpClient.send(
          localVarRequestBuilder.build(),
          HttpResponse.BodyHandlers.ofInputStream());
      if (memberVarResponseInterceptor != null) {
        memberVarResponseInterceptor.accept(localVarResponse);
      }
      try {
        if (localVarResponse.statusCode()/ 100 != 2) {
          throw getApiException("unlinkProjectManagement", 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 unlinkProjectManagementRequestBuilder() throws ApiException {

    HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();

    String localVarPath = "/projectManagement/unlinkProjectManagement";

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

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

    localVarRequestBuilder.method("POST", HttpRequest.BodyPublishers.noBody());
    if (memberVarReadTimeout != null) {
      localVarRequestBuilder.timeout(memberVarReadTimeout);
    }
    if (memberVarInterceptor != null) {
      memberVarInterceptor.accept(localVarRequestBuilder);
    }
    return localVarRequestBuilder;
  }
  /**
   * Update comment on Goal
   * 
   * @param threadId  (required)
   * @param commentId  (required)
   * @param dominoProjectManagementWebCommentRequest JSON object with data to update comment on Goal (required)
   * @param xDominoPmApiToken  (optional)
   * @return DominoProjectsApiComment
   * @throws ApiException if fails to make API call
   */
  public DominoProjectsApiComment updateManageCommentOnGoal(String threadId, String commentId, DominoProjectManagementWebCommentRequest dominoProjectManagementWebCommentRequest, String xDominoPmApiToken) throws ApiException {
    ApiResponse localVarResponse = updateManageCommentOnGoalWithHttpInfo(threadId, commentId, dominoProjectManagementWebCommentRequest, xDominoPmApiToken);
    return localVarResponse.getData();
  }

  /**
   * Update comment on Goal
   * 
   * @param threadId  (required)
   * @param commentId  (required)
   * @param dominoProjectManagementWebCommentRequest JSON object with data to update comment on Goal (required)
   * @param xDominoPmApiToken  (optional)
   * @return ApiResponse<DominoProjectsApiComment>
   * @throws ApiException if fails to make API call
   */
  public ApiResponse updateManageCommentOnGoalWithHttpInfo(String threadId, String commentId, DominoProjectManagementWebCommentRequest dominoProjectManagementWebCommentRequest, String xDominoPmApiToken) throws ApiException {
    HttpRequest.Builder localVarRequestBuilder = updateManageCommentOnGoalRequestBuilder(threadId, commentId, dominoProjectManagementWebCommentRequest, xDominoPmApiToken);
    try {
      HttpResponse localVarResponse = memberVarHttpClient.send(
          localVarRequestBuilder.build(),
          HttpResponse.BodyHandlers.ofInputStream());
      if (memberVarResponseInterceptor != null) {
        memberVarResponseInterceptor.accept(localVarResponse);
      }
      try {
        if (localVarResponse.statusCode()/ 100 != 2) {
          throw getApiException("updateManageCommentOnGoal", 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 updateManageCommentOnGoalRequestBuilder(String threadId, String commentId, DominoProjectManagementWebCommentRequest dominoProjectManagementWebCommentRequest, String xDominoPmApiToken) throws ApiException {
    // verify the required parameter 'threadId' is set
    if (threadId == null) {
      throw new ApiException(400, "Missing the required parameter 'threadId' when calling updateManageCommentOnGoal");
    }
    // verify the required parameter 'commentId' is set
    if (commentId == null) {
      throw new ApiException(400, "Missing the required parameter 'commentId' when calling updateManageCommentOnGoal");
    }
    // verify the required parameter 'dominoProjectManagementWebCommentRequest' is set
    if (dominoProjectManagementWebCommentRequest == null) {
      throw new ApiException(400, "Missing the required parameter 'dominoProjectManagementWebCommentRequest' when calling updateManageCommentOnGoal");
    }

    HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();

    String localVarPath = "/projectManagement/goalComment/{threadId}/{commentId}"
        .replace("{threadId}", ApiClient.urlEncode(threadId.toString()))
        .replace("{commentId}", ApiClient.urlEncode(commentId.toString()));

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

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

    try {
      byte[] localVarPostBody = memberVarObjectMapper.writeValueAsBytes(dominoProjectManagementWebCommentRequest);
      localVarRequestBuilder.method("PUT", HttpRequest.BodyPublishers.ofByteArray(localVarPostBody));
    } catch (IOException e) {
      throw new ApiException(e);
    }
    if (memberVarReadTimeout != null) {
      localVarRequestBuilder.timeout(memberVarReadTimeout);
    }
    if (memberVarInterceptor != null) {
      memberVarInterceptor.accept(localVarRequestBuilder);
    }
    return localVarRequestBuilder;
  }
  /**
   * Update comment on Project
   * 
   * @param threadId  (required)
   * @param commentId  (required)
   * @param dominoProjectManagementWebCommentRequest JSON object with data to update comment on Project (required)
   * @param xDominoPmApiToken  (optional)
   * @return DominoProjectsApiComment
   * @throws ApiException if fails to make API call
   */
  public DominoProjectsApiComment updateManageCommentOnProject(String threadId, String commentId, DominoProjectManagementWebCommentRequest dominoProjectManagementWebCommentRequest, String xDominoPmApiToken) throws ApiException {
    ApiResponse localVarResponse = updateManageCommentOnProjectWithHttpInfo(threadId, commentId, dominoProjectManagementWebCommentRequest, xDominoPmApiToken);
    return localVarResponse.getData();
  }

  /**
   * Update comment on Project
   * 
   * @param threadId  (required)
   * @param commentId  (required)
   * @param dominoProjectManagementWebCommentRequest JSON object with data to update comment on Project (required)
   * @param xDominoPmApiToken  (optional)
   * @return ApiResponse<DominoProjectsApiComment>
   * @throws ApiException if fails to make API call
   */
  public ApiResponse updateManageCommentOnProjectWithHttpInfo(String threadId, String commentId, DominoProjectManagementWebCommentRequest dominoProjectManagementWebCommentRequest, String xDominoPmApiToken) throws ApiException {
    HttpRequest.Builder localVarRequestBuilder = updateManageCommentOnProjectRequestBuilder(threadId, commentId, dominoProjectManagementWebCommentRequest, xDominoPmApiToken);
    try {
      HttpResponse localVarResponse = memberVarHttpClient.send(
          localVarRequestBuilder.build(),
          HttpResponse.BodyHandlers.ofInputStream());
      if (memberVarResponseInterceptor != null) {
        memberVarResponseInterceptor.accept(localVarResponse);
      }
      try {
        if (localVarResponse.statusCode()/ 100 != 2) {
          throw getApiException("updateManageCommentOnProject", 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 updateManageCommentOnProjectRequestBuilder(String threadId, String commentId, DominoProjectManagementWebCommentRequest dominoProjectManagementWebCommentRequest, String xDominoPmApiToken) throws ApiException {
    // verify the required parameter 'threadId' is set
    if (threadId == null) {
      throw new ApiException(400, "Missing the required parameter 'threadId' when calling updateManageCommentOnProject");
    }
    // verify the required parameter 'commentId' is set
    if (commentId == null) {
      throw new ApiException(400, "Missing the required parameter 'commentId' when calling updateManageCommentOnProject");
    }
    // verify the required parameter 'dominoProjectManagementWebCommentRequest' is set
    if (dominoProjectManagementWebCommentRequest == null) {
      throw new ApiException(400, "Missing the required parameter 'dominoProjectManagementWebCommentRequest' when calling updateManageCommentOnProject");
    }

    HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();

    String localVarPath = "/projectManagement/projectComment/{threadId}/{commentId}"
        .replace("{threadId}", ApiClient.urlEncode(threadId.toString()))
        .replace("{commentId}", ApiClient.urlEncode(commentId.toString()));

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

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

    try {
      byte[] localVarPostBody = memberVarObjectMapper.writeValueAsBytes(dominoProjectManagementWebCommentRequest);
      localVarRequestBuilder.method("PUT", HttpRequest.BodyPublishers.ofByteArray(localVarPostBody));
    } catch (IOException e) {
      throw new ApiException(e);
    }
    if (memberVarReadTimeout != null) {
      localVarRequestBuilder.timeout(memberVarReadTimeout);
    }
    if (memberVarInterceptor != null) {
      memberVarInterceptor.accept(localVarRequestBuilder);
    }
    return localVarRequestBuilder;
  }
  /**
   * Update description of a project goal
   * 
   * @param goalId  (required)
   * @param dominoProjectsWebUpdateProjectGoalDescription JSON object with description be updated (required)
   * @param xDominoPmApiToken  (optional)
   * @return DominoProjectsApiProjectGoal
   * @throws ApiException if fails to make API call
   */
  public DominoProjectsApiProjectGoal updateManageProjectGoalDescription(String goalId, DominoProjectsWebUpdateProjectGoalDescription dominoProjectsWebUpdateProjectGoalDescription, String xDominoPmApiToken) throws ApiException {
    ApiResponse localVarResponse = updateManageProjectGoalDescriptionWithHttpInfo(goalId, dominoProjectsWebUpdateProjectGoalDescription, xDominoPmApiToken);
    return localVarResponse.getData();
  }

  /**
   * Update description of a project goal
   * 
   * @param goalId  (required)
   * @param dominoProjectsWebUpdateProjectGoalDescription JSON object with description be updated (required)
   * @param xDominoPmApiToken  (optional)
   * @return ApiResponse<DominoProjectsApiProjectGoal>
   * @throws ApiException if fails to make API call
   */
  public ApiResponse updateManageProjectGoalDescriptionWithHttpInfo(String goalId, DominoProjectsWebUpdateProjectGoalDescription dominoProjectsWebUpdateProjectGoalDescription, String xDominoPmApiToken) throws ApiException {
    HttpRequest.Builder localVarRequestBuilder = updateManageProjectGoalDescriptionRequestBuilder(goalId, dominoProjectsWebUpdateProjectGoalDescription, xDominoPmApiToken);
    try {
      HttpResponse localVarResponse = memberVarHttpClient.send(
          localVarRequestBuilder.build(),
          HttpResponse.BodyHandlers.ofInputStream());
      if (memberVarResponseInterceptor != null) {
        memberVarResponseInterceptor.accept(localVarResponse);
      }
      try {
        if (localVarResponse.statusCode()/ 100 != 2) {
          throw getApiException("updateManageProjectGoalDescription", 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 updateManageProjectGoalDescriptionRequestBuilder(String goalId, DominoProjectsWebUpdateProjectGoalDescription dominoProjectsWebUpdateProjectGoalDescription, String xDominoPmApiToken) throws ApiException {
    // verify the required parameter 'goalId' is set
    if (goalId == null) {
      throw new ApiException(400, "Missing the required parameter 'goalId' when calling updateManageProjectGoalDescription");
    }
    // verify the required parameter 'dominoProjectsWebUpdateProjectGoalDescription' is set
    if (dominoProjectsWebUpdateProjectGoalDescription == null) {
      throw new ApiException(400, "Missing the required parameter 'dominoProjectsWebUpdateProjectGoalDescription' when calling updateManageProjectGoalDescription");
    }

    HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();

    String localVarPath = "/projectManagement/goal/{goalId}/updateDescription"
        .replace("{goalId}", ApiClient.urlEncode(goalId.toString()));

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

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

    try {
      byte[] localVarPostBody = memberVarObjectMapper.writeValueAsBytes(dominoProjectsWebUpdateProjectGoalDescription);
      localVarRequestBuilder.method("POST", HttpRequest.BodyPublishers.ofByteArray(localVarPostBody));
    } catch (IOException e) {
      throw new ApiException(e);
    }
    if (memberVarReadTimeout != null) {
      localVarRequestBuilder.timeout(memberVarReadTimeout);
    }
    if (memberVarInterceptor != null) {
      memberVarInterceptor.accept(localVarRequestBuilder);
    }
    return localVarRequestBuilder;
  }
  /**
   * Update title of a project goal
   * 
   * @param goalId  (required)
   * @param dominoProjectsWebUpdateProjectGoalTitle JSON object with title to be updated (required)
   * @param xDominoPmApiToken  (optional)
   * @return DominoProjectsApiProjectGoal
   * @throws ApiException if fails to make API call
   */
  public DominoProjectsApiProjectGoal updateManageProjectGoalTitle(String goalId, DominoProjectsWebUpdateProjectGoalTitle dominoProjectsWebUpdateProjectGoalTitle, String xDominoPmApiToken) throws ApiException {
    ApiResponse localVarResponse = updateManageProjectGoalTitleWithHttpInfo(goalId, dominoProjectsWebUpdateProjectGoalTitle, xDominoPmApiToken);
    return localVarResponse.getData();
  }

  /**
   * Update title of a project goal
   * 
   * @param goalId  (required)
   * @param dominoProjectsWebUpdateProjectGoalTitle JSON object with title to be updated (required)
   * @param xDominoPmApiToken  (optional)
   * @return ApiResponse<DominoProjectsApiProjectGoal>
   * @throws ApiException if fails to make API call
   */
  public ApiResponse updateManageProjectGoalTitleWithHttpInfo(String goalId, DominoProjectsWebUpdateProjectGoalTitle dominoProjectsWebUpdateProjectGoalTitle, String xDominoPmApiToken) throws ApiException {
    HttpRequest.Builder localVarRequestBuilder = updateManageProjectGoalTitleRequestBuilder(goalId, dominoProjectsWebUpdateProjectGoalTitle, xDominoPmApiToken);
    try {
      HttpResponse localVarResponse = memberVarHttpClient.send(
          localVarRequestBuilder.build(),
          HttpResponse.BodyHandlers.ofInputStream());
      if (memberVarResponseInterceptor != null) {
        memberVarResponseInterceptor.accept(localVarResponse);
      }
      try {
        if (localVarResponse.statusCode()/ 100 != 2) {
          throw getApiException("updateManageProjectGoalTitle", 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 updateManageProjectGoalTitleRequestBuilder(String goalId, DominoProjectsWebUpdateProjectGoalTitle dominoProjectsWebUpdateProjectGoalTitle, String xDominoPmApiToken) throws ApiException {
    // verify the required parameter 'goalId' is set
    if (goalId == null) {
      throw new ApiException(400, "Missing the required parameter 'goalId' when calling updateManageProjectGoalTitle");
    }
    // verify the required parameter 'dominoProjectsWebUpdateProjectGoalTitle' is set
    if (dominoProjectsWebUpdateProjectGoalTitle == null) {
      throw new ApiException(400, "Missing the required parameter 'dominoProjectsWebUpdateProjectGoalTitle' when calling updateManageProjectGoalTitle");
    }

    HttpRequest.Builder localVarRequestBuilder = HttpRequest.newBuilder();

    String localVarPath = "/projectManagement/goal/{goalId}/updateTitle"
        .replace("{goalId}", ApiClient.urlEncode(goalId.toString()));

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

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

    try {
      byte[] localVarPostBody = memberVarObjectMapper.writeValueAsBytes(dominoProjectsWebUpdateProjectGoalTitle);
      localVarRequestBuilder.method("POST", HttpRequest.BodyPublishers.ofByteArray(localVarPostBody));
    } catch (IOException e) {
      throw new ApiException(e);
    }
    if (memberVarReadTimeout != null) {
      localVarRequestBuilder.timeout(memberVarReadTimeout);
    }
    if (memberVarInterceptor != null) {
      memberVarInterceptor.accept(localVarRequestBuilder);
    }
    return localVarRequestBuilder;
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy