syntax = "proto3";

package tidb_mgmt_service.v1;

import "global/nextgen/v1/export.proto";
import "google/api/annotations.proto";
import "protoc-gen-openapiv2/options/annotations.proto";

/**
   All APIs here are for global control plane **internal** use only.
*/

option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_swagger) = {
  swagger: "2.0"
  host: ""
  base_path: "/inner/mgmt/v1"
  info: {
    version: "v1"
    title: "Control Plane Internal API"
    description: "Control Plane Internal API."
  }
  schemes: HTTPS
};

service ExportService {
  rpc ListExports(global.nextgen.v1.ListExportsRequest) returns (global.nextgen.v1.ListExportsResponse) {
    option (google.api.http) = {get: "/exports"};
  }

  rpc GetExport(global.nextgen.v1.GetExportRequest) returns (global.nextgen.v1.Export) {
    option (google.api.http) = {get: "/exports/{export_id}"};
  }

  rpc CreateExport(global.nextgen.v1.CreateExportRequest) returns (global.nextgen.v1.Export) {
    option (google.api.http) = {
      post: "/exports"
      body: "*"
    };
  }

  rpc DeleteExport(global.nextgen.v1.DeleteExportRequest) returns (global.nextgen.v1.Export) {
    option (google.api.http) = {delete: "/exports/{export_id}"};
  }

  rpc CancelExport(global.nextgen.v1.CancelExportRequest) returns (global.nextgen.v1.Export) {
    option (google.api.http) = {
      post: "/exports/{export_id}:cancel"
      body: "*"
    };
  }
}
