/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
*--------------------------------------------------------------------------------------------*/
package com.github.copilot.sdk.json;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
/**
* Internal request object for resuming an existing session.
*
* This is a low-level class for JSON-RPC communication. For resuming sessions,
* use
* {@link com.github.copilot.sdk.CopilotClient#resumeSession(String, ResumeSessionConfig)}.
*
* @see com.github.copilot.sdk.CopilotClient#resumeSession(String,
* ResumeSessionConfig)
* @see ResumeSessionConfig
* @since 1.0.0
*/
@JsonInclude(JsonInclude.Include.NON_NULL)
public final class ResumeSessionRequest {
@JsonProperty("sessionId")
private String sessionId;
@JsonProperty("reasoningEffort")
private String reasoningEffort;
@JsonProperty("tools")
private List tools;
@JsonProperty("provider")
private ProviderConfig provider;
@JsonProperty("requestPermission")
private Boolean requestPermission;
@JsonProperty("requestUserInput")
private Boolean requestUserInput;
@JsonProperty("hooks")
private Boolean hooks;
@JsonProperty("workingDirectory")
private String workingDirectory;
@JsonProperty("disableResume")
private Boolean disableResume;
@JsonProperty("streaming")
private Boolean streaming;
@JsonProperty("mcpServers")
private Map mcpServers;
@JsonProperty("customAgents")
private List customAgents;
@JsonProperty("skillDirectories")
private List skillDirectories;
@JsonProperty("disabledSkills")
private List disabledSkills;
/** Gets the session ID. @return the session ID */
public String getSessionId() {
return sessionId;
}
/** Sets the session ID. @param sessionId the session ID */
public void setSessionId(String sessionId) {
this.sessionId = sessionId;
}
/** Gets the reasoning effort. @return the reasoning effort level */
public String getReasoningEffort() {
return reasoningEffort;
}
/**
* Sets the reasoning effort. @param reasoningEffort the reasoning effort level
*/
public void setReasoningEffort(String reasoningEffort) {
this.reasoningEffort = reasoningEffort;
}
/** Gets the tools. @return the tool definitions */
public List getTools() {
return tools == null ? null : Collections.unmodifiableList(tools);
}
/** Sets the tools. @param tools the tool definitions */
public void setTools(List tools) {
this.tools = tools;
}
/** Gets the provider config. @return the provider */
public ProviderConfig getProvider() {
return provider;
}
/** Sets the provider config. @param provider the provider */
public void setProvider(ProviderConfig provider) {
this.provider = provider;
}
/** Gets request permission flag. @return the flag */
public Boolean getRequestPermission() {
return requestPermission;
}
/** Sets request permission flag. @param requestPermission the flag */
public void setRequestPermission(Boolean requestPermission) {
this.requestPermission = requestPermission;
}
/** Gets request user input flag. @return the flag */
public Boolean getRequestUserInput() {
return requestUserInput;
}
/** Sets request user input flag. @param requestUserInput the flag */
public void setRequestUserInput(Boolean requestUserInput) {
this.requestUserInput = requestUserInput;
}
/** Gets hooks flag. @return the flag */
public Boolean getHooks() {
return hooks;
}
/** Sets hooks flag. @param hooks the flag */
public void setHooks(Boolean hooks) {
this.hooks = hooks;
}
/** Gets working directory. @return the working directory */
public String getWorkingDirectory() {
return workingDirectory;
}
/** Sets working directory. @param workingDirectory the working directory */
public void setWorkingDirectory(String workingDirectory) {
this.workingDirectory = workingDirectory;
}
/** Gets disable resume flag. @return the flag */
public Boolean getDisableResume() {
return disableResume;
}
/** Sets disable resume flag. @param disableResume the flag */
public void setDisableResume(Boolean disableResume) {
this.disableResume = disableResume;
}
/** Gets streaming flag. @return the flag */
public Boolean getStreaming() {
return streaming;
}
/** Sets streaming flag. @param streaming the flag */
public void setStreaming(Boolean streaming) {
this.streaming = streaming;
}
/** Gets MCP servers. @return the servers map */
public Map getMcpServers() {
return mcpServers == null ? null : Collections.unmodifiableMap(mcpServers);
}
/** Sets MCP servers. @param mcpServers the servers map */
public void setMcpServers(Map mcpServers) {
this.mcpServers = mcpServers;
}
/** Gets custom agents. @return the agents */
public List getCustomAgents() {
return customAgents == null ? null : Collections.unmodifiableList(customAgents);
}
/** Sets custom agents. @param customAgents the agents */
public void setCustomAgents(List customAgents) {
this.customAgents = customAgents;
}
/** Gets skill directories. @return the directories */
public List getSkillDirectories() {
return skillDirectories == null ? null : Collections.unmodifiableList(skillDirectories);
}
/** Sets skill directories. @param skillDirectories the directories */
public void setSkillDirectories(List skillDirectories) {
this.skillDirectories = skillDirectories;
}
/** Gets disabled skills. @return the disabled skill names */
public List getDisabledSkills() {
return disabledSkills == null ? null : Collections.unmodifiableList(disabledSkills);
}
/** Sets disabled skills. @param disabledSkills the skill names to disable */
public void setDisabledSkills(List disabledSkills) {
this.disabledSkills = disabledSkills;
}
}