/*--------------------------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. *--------------------------------------------------------------------------------------------*/ package com.github.copilot.sdk.events; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonProperty; import java.util.List; import java.util.Map; /** * Event: session.shutdown *
* This event is emitted when a session is shutting down, either routinely or
* due to an error. It contains metrics about the session's usage.
*
* @since 1.0.0
*/
@JsonIgnoreProperties(ignoreUnknown = true)
public final class SessionShutdownEvent extends AbstractSessionEvent {
@JsonProperty("data")
private SessionShutdownData data;
@Override
public String getType() {
return "session.shutdown";
}
public SessionShutdownData getData() {
return data;
}
public void setData(SessionShutdownData data) {
this.data = data;
}
/**
* Data for the session shutdown event.
*/
@JsonIgnoreProperties(ignoreUnknown = true)
public record SessionShutdownData(@JsonProperty("shutdownType") ShutdownType shutdownType,
@JsonProperty("errorReason") String errorReason,
@JsonProperty("totalPremiumRequests") double totalPremiumRequests,
@JsonProperty("totalApiDurationMs") double totalApiDurationMs,
@JsonProperty("sessionStartTime") double sessionStartTime,
@JsonProperty("codeChanges") CodeChanges codeChanges,
@JsonProperty("modelMetrics") Map