Files
stable-diffusion-rpc/Common/jobs.proto

132 lines
2.2 KiB
Protocol Buffer

/**
* Job management for the Stable Diffusion RPC service.
*/
syntax = "proto3";
package gay.pizza.stable.diffusion;
/**
* Utilize a prefix of 'Sd' for Swift.
*/
option swift_prefix = "Sd";
option java_multiple_files = true;
/**
* Represents the current state of a job.
*/
enum JobState {
/**
* The job is in an unknown state.
*/
unknown_state = 0;
/**
* The job is queued. It has not started the work.
*/
queued = 1;
/**
* The job is running. The work has been started.
*/
running = 2;
/**
* The job is completed. The work has been completed.
*/
completed = 3;
/**
* The job is cancelled. An actor requested cancellation.
*/
cancelled = 4;
}
/**
* Represents a job that is active
*/
message Job {
/**
* Unique job identifier.
*/
uint64 id = 1;
/**
* Job host identifier.
*/
uint64 host = 2;
/**
* The current state of the job.
*/
JobState state = 3;
/**
* The percentage of completion for the entire job.
*/
float overall_percentage_complete = 4;
}
/**
* Represents a request to get the state of a job.
*/
message GetJobRequest {
/**
* The job id to retrieve the current state for.
*/
uint64 id = 1;
}
/**
* Represents a response to getting the state of a job.
*/
message GetJobResponse {
/**
* The current state of the job.
*/
Job job = 1;
}
/**
* Represents a request to cancel a job.
*/
message CancelJobRequest {
/**
* The job id to cancel.
*/
uint64 id = 1;
}
/**
* Represents a response to cancel a job.
*/
message CancelJobResponse {}
/**
* Represents a request to stream job updates.
*/
message StreamJobUpdatesRequest {
/**
* The job id to stream updates for. If this is not set or is zero,
* all job updates will be sent.
*/
uint64 id = 1;
}
/**
* Represents an update to a job.
*/
message JobUpdate {
/**
* The current state of the job.
*/
Job job = 1;
}
/**
* The job service, for inspecting and monitoring the state of jobs executing on the service.
*/
service JobService {
rpc GetJob(GetJobRequest) returns (GetJobResponse);
rpc CancelJob(CancelJobRequest) returns (CancelJobResponse);
rpc StreamJobUpdates(StreamJobUpdatesRequest) returns (stream JobUpdate);
}