protos/flyteidl-flink/flink.proto (65 lines of code) (raw):

syntax = "proto3"; package flyteidl_flink; option go_package = "flyteidl-flink"; import "validate/validate.proto"; message Resource { // Value must be a valid k8s quantity. See // https://github.com/kubernetes/apimachinery/blob/master/pkg/api/resource/quantity.go#L30-L80 message Quantity { string string = 1 [ (validate.rules).string = { pattern : "^([+-]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$" } ]; } message PersistentVolume { enum Type { PD_STANDARD = 0; PD_SSD = 1; } Type type = 1 [ (validate.rules).enum.defined_only = true ]; Quantity size = 2; } Quantity cpu = 1; Quantity memory = 2; PersistentVolume persistentVolume = 3; } message JobManager { Resource resource = 1; } message TaskManager { Resource resource = 1; int32 replicas = 2 [ (validate.rules).int32.gte = 0 ]; } message JFlyte { message Artifact { string name = 1; string location = 2 [ (validate.rules).string = {min_len : 1, uri_ref : true} ]; } string index_file_location = 1; repeated Artifact artifacts = 2; } // Custom Proto for Flink Plugin. message FlinkJob { repeated string jarFiles = 1 [ (validate.rules).repeated .unique = true, (validate.rules).repeated .items.string = {min_len : 1, uri_ref : true} ]; string mainClass = 2 [ (validate.rules).string.min_len = 1 ]; repeated string args = 3; map<string, string> flinkProperties = 4; JobManager jobManager = 5; TaskManager taskManager = 6; string serviceAccount = 7; string image = 8; string flinkVersion = 9; int32 parallelism = 10 [ (validate.rules).int32.gte = 0 ]; string kubernetesClusterName = 11; string kubernetesClusterRegion = 12; // if using experiment flytekit-java this will contain all artifacts required // to run the task JFlyte jflyte = 100; } message JobExecutionInfo { string id = 1; } message JobManagerExecutionInfo { repeated string ingressURLs = 1; } message FlinkExecutionInfo { JobExecutionInfo job = 1; JobManagerExecutionInfo jobManager = 2; }