syntax = "proto3";

package yandex.cloud.serverless.triggers.v1;

import "yandex/cloud/validation.proto";

option go_package = "github.com/yandex-cloud/go-genproto/yandex/cloud/serverless/triggers/v1;triggers";
option java_package = "yandex.cloud.api.serverless.triggers.v1";

message Predicate {
  oneof predicate {
    option (exactly_one) = true;
    AndPredicate and_predicate = 2;
    FieldValuePredicate field_value_predicate = 4;
  }
}

message AndPredicate {
  repeated Predicate predicate = 1;
}

message FieldValuePredicate {
  string field_path = 1 [(required) = true];
  oneof value {
    option (exactly_one) = true;

    string exact = 3;           // string representation of the value matches exactly to the given string
    string prefix = 8;          // value has given prefix
    string suffix = 9;          // value has given suffix
  }
}
