blob: f4a30bedef8530544956b085118e8dd669fccae7 [file] [log] [blame]
syntax = "proto3";
package bufman.dubbo.apache.org.registry.v1alpha1;
import "google/protobuf/timestamp.proto";
// StudioRequestService exposes the functionality to manage favorited Requests
// from Studio.
service StudioRequestService {
// CreateStudioRequest registers a favorite Studio Requests to the caller's
// BSR profile.
rpc CreateStudioRequest(CreateStudioRequestRequest) returns (CreateStudioRequestResponse) {}
// RenameStudioRequest renames an existing Studio Request.
rpc RenameStudioRequest(RenameStudioRequestRequest) returns (RenameStudioRequestResponse) {}
// DeleteStudioRequest removes a favorite Studio Request from the caller's BSR
// profile.
rpc DeleteStudioRequest(DeleteStudioRequestRequest) returns (DeleteStudioRequestResponse) {
option idempotency_level = IDEMPOTENT;
}
// ListStudioRequests shows the caller's favorited Studio Requests.
rpc ListStudioRequests(ListStudioRequestsRequest) returns (ListStudioRequestsResponse) {
option idempotency_level = NO_SIDE_EFFECTS;
}
}
// StudioProtocol are the supported protocols for Studio Requests.
enum StudioProtocol {
// STUDIO_PROTOCOL_UNSPECIFIED is a safe default for requests with no protocol
// defined.
STUDIO_PROTOCOL_UNSPECIFIED = 0;
// STUDIO_PROTOCOL_CONNECT is the Connect protocol in Studio.
STUDIO_PROTOCOL_CONNECT = 1;
// STUDIO_PROTOCOL_GRPC is the gRPC protocol in Studio.
STUDIO_PROTOCOL_GRPC = 2;
// STUDIO_PROTOCOL_GRPC_WEB is the gRPC-web protocol in Studio.
STUDIO_PROTOCOL_GRPC_WEB = 3;
}
// CreateStudioRequestRequest is the proto request representation of the
// CreateStudioRequest method.
message CreateStudioRequestRequest {
// The linked BSR repository owner name (user or organization).
string repository_owner = 1;
// The linked BSR repository name.
string repository_name = 2;
// The friendly name of this request.
string name = 3;
// The target base URL of this request.
string target_base_url = 4;
// The target service name as defined in the BSR repository.
string service = 5;
// The target RPC method name as defined in the BSR repository.
string method = 6;
// The request body as defined in Studio.
string body = 7;
// The request headers as defined in Studio.
map<string, string> headers = 8;
// Should this request include cookies from the Studio current session?
bool include_cookies = 9;
// The protocol that Studio uses to send this request.
StudioProtocol protocol = 10;
// The agent url (if any) used by Studio to send the request. See
// https://docs.buf.build/bsr/studio#via-buf-studio-agent for details.
string agent_url = 11;
}
// CreateStudioRequestResponse returns the created StudioRequest.
message CreateStudioRequestResponse {
// Created Studio Request.
StudioRequest created_request = 1;
}
// RenameStudioRequestRequest is the proto request representation of the
// RenameStudioRequest method.
message RenameStudioRequestRequest {
// The Studio Request ID that will be renamed.
string id = 1;
// The new name for the request.
string new_name = 2;
}
// RenameStudioRequestResponse returns empty on successful renaming.
message RenameStudioRequestResponse {}
// DeleteStudioRequestRequest is the proto request representation of the
// DeleteStudioRequest method.
message DeleteStudioRequestRequest {
// The Studio Request ID that will be deleted.
string id = 1;
}
// DeleteStudioRequestResponse returns empty on successful deletions.
message DeleteStudioRequestResponse {}
// ListStudioRequestsRequest is the proto request representation of the
// ListStudioRequests method.
message ListStudioRequestsRequest {
// The page size for listing studio requests, values between 1-250.
uint32 page_size = 1;
// The page token for paginating. The first page is returned if this is empty.
string page_token = 2;
// The listed studio requests are order by created time in ascending order.
// You can reverse that order setting this value to true.
bool reverse = 3;
}
// ListStudioRequestsResponse is the proto response representation of the
// ListStudioRequests method.
message ListStudioRequestsResponse {
// The list of requests in the current page.
repeated StudioRequest requests = 1;
// The requests' next page token. There are no more pages if this is empty.
string next_page_token = 2;
}
// StudioRequest represents a saved request in Studio, that is synced to a BSR
// user's profile.
message StudioRequest {
// The ID of this Studio Request.
string id = 1;
// The request creation timestamp.
google.protobuf.Timestamp create_time = 2;
// The request last updated timestamp.
google.protobuf.Timestamp update_time = 3;
// User ID who created and saved this request.
string author_user_id = 4;
// BSR repository ID this request is linked to.
string repository_id = 5;
// The friendly name of this request.
string name = 6;
// The target base URL of this request.
string target_base_url = 7;
// The BSR repository owner name (user or organization).
string repository_owner = 8;
// The BSR repository name.
string repository_name = 9;
// The target service name as defined in the BSR repository.
string service = 10;
// The target RPC method name as defined in the BSR repository.
string method = 11;
// The request body as defined in Studio.
string body = 12;
// The request headers as defined in Studio.
map<string, string> headers = 13;
// Should this request include cookies from the Studio current session?
bool include_cookies = 14;
// The protocol that Studio uses to send this request.
StudioProtocol protocol = 15;
// The agent url (if any) used by Studio to send the request. See
// https://docs.buf.build/bsr/studio#via-buf-studio-agent for details.
string agent_url = 16;
}