129 lines
3.3 KiB
Protocol Buffer
129 lines
3.3 KiB
Protocol Buffer
// Copyright 2018 The Kubeflow Authors
|
|
//
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
// you may not use this file except in compliance with the License.
|
|
// You may obtain a copy of the License at
|
|
//
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
// See the License for the specific language governing permissions and
|
|
// limitations under the License.
|
|
|
|
syntax = "proto3";
|
|
|
|
option go_package = "github.com/kubeflow/pipelines/backend/api/go_client";
|
|
package api;
|
|
|
|
import "google/api/annotations.proto";
|
|
import "google/protobuf/timestamp.proto";
|
|
|
|
// Predicate captures individual conditions that must be true for a resource
|
|
// being filtered.
|
|
message Predicate {
|
|
// Op is the operation to apply.
|
|
enum Op {
|
|
UNKNOWN = 0;
|
|
|
|
// Operators on scalar values. Only applies to one of |int_value|,
|
|
// |long_value|, |string_value| or |timestamp_value|.
|
|
EQUALS = 1;
|
|
NOT_EQUALS = 2;
|
|
GREATER_THAN = 3;
|
|
GREATER_THAN_EQUALS = 5;
|
|
LESS_THAN = 6;
|
|
LESS_THAN_EQUALS = 7;
|
|
|
|
// Checks if the value is a member of a given array, which should be one of
|
|
// |int_values|, |long_values| or |string_values|.
|
|
IN = 8;
|
|
|
|
// Checks if the value contains |string_value| as a substring match. Only
|
|
// applies to |string_value|.
|
|
IS_SUBSTRING = 9;
|
|
}
|
|
Op op = 1;
|
|
|
|
string key = 2;
|
|
oneof value {
|
|
int32 int_value = 3;
|
|
int64 long_value = 4;
|
|
string string_value = 5;
|
|
|
|
// Timestamp values will be converted to Unix time (seconds since the epoch)
|
|
// prior to being used in a filtering operation.
|
|
google.protobuf.Timestamp timestamp_value = 6;
|
|
|
|
// Array values below are only meant to be used by the IN operator.
|
|
IntValues int_values = 7;
|
|
LongValues long_values = 8;
|
|
StringValues string_values = 9;
|
|
}
|
|
}
|
|
|
|
message IntValues {
|
|
repeated int32 values = 1;
|
|
}
|
|
|
|
message StringValues {
|
|
repeated string values = 2;
|
|
}
|
|
|
|
message LongValues {
|
|
repeated int64 values = 3;
|
|
}
|
|
|
|
// Filter is used to filter resources returned from a ListXXX request.
|
|
//
|
|
// Example filters:
|
|
// 1) Filter runs with status = 'Running'
|
|
// filter {
|
|
// predicate {
|
|
// key: "status"
|
|
// op: EQUALS
|
|
// string_value: "Running"
|
|
// }
|
|
// }
|
|
//
|
|
// 2) Filter runs that succeeded since Dec 1, 2018
|
|
// filter {
|
|
// predicate {
|
|
// key: "status"
|
|
// op: EQUALS
|
|
// string_value: "Succeeded"
|
|
// }
|
|
// predicate {
|
|
// key: "created_at"
|
|
// op: GREATER_THAN
|
|
// timestamp_value {
|
|
// seconds: 1543651200
|
|
// }
|
|
// }
|
|
// }
|
|
//
|
|
// 3) Filter runs with one of labels 'label_1' or 'label_2'
|
|
//
|
|
// filter {
|
|
// predicate {
|
|
// key: "label"
|
|
// op: IN
|
|
// string_values {
|
|
// value: 'label_1'
|
|
// value: 'label_2'
|
|
// }
|
|
// }
|
|
// }
|
|
message Filter {
|
|
// All predicates are AND-ed when this filter is applied.
|
|
repeated Predicate predicates = 1;
|
|
}
|
|
|
|
// This dummy service is required so that grpc-gateway will generate Swagger
|
|
// definitions for the Filter message. Otherwise, it does not get generated
|
|
// since Filter itself is not used in any of the RPC calls - only a serialized
|
|
// encoded version of it is used.
|
|
service DummyFilterService {
|
|
rpc GetFilter(Filter) returns (Filter) {}
|
|
} |