syntax = "proto3"; package forest.v1; import "forest/v1/releases.proto"; message Trigger { string id = 1; string name = 2; bool enabled = 3; optional string branch_pattern = 4; optional string title_pattern = 5; optional string author_pattern = 6; optional string commit_message_pattern = 7; optional string source_type_pattern = 8; repeated string target_environments = 9; repeated string target_destinations = 10; bool force_release = 11; string created_at = 12; string updated_at = 13; // When true, trigger the project's release pipeline instead of // deploying directly to target destinations/environments. bool use_pipeline = 14; } message CreateTriggerRequest { Project project = 1; string name = 2; optional string branch_pattern = 3; optional string title_pattern = 4; optional string author_pattern = 5; optional string commit_message_pattern = 6; optional string source_type_pattern = 7; repeated string target_environments = 8; repeated string target_destinations = 9; bool force_release = 10; bool use_pipeline = 11; } message CreateTriggerResponse { Trigger trigger = 1; } message UpdateTriggerRequest { Project project = 1; string name = 2; optional bool enabled = 3; optional string branch_pattern = 4; optional string title_pattern = 5; optional string author_pattern = 6; optional string commit_message_pattern = 7; optional string source_type_pattern = 8; repeated string target_environments = 9; repeated string target_destinations = 10; optional bool force_release = 11; optional bool use_pipeline = 12; } message UpdateTriggerResponse { Trigger trigger = 1; } message DeleteTriggerRequest { Project project = 1; string name = 2; } message DeleteTriggerResponse {} message ListTriggersRequest { Project project = 1; } message ListTriggersResponse { repeated Trigger triggers = 1; } service TriggerService { rpc CreateTrigger(CreateTriggerRequest) returns (CreateTriggerResponse); rpc UpdateTrigger(UpdateTriggerRequest) returns (UpdateTriggerResponse); rpc DeleteTrigger(DeleteTriggerRequest) returns (DeleteTriggerResponse); rpc ListTriggers(ListTriggersRequest) returns (ListTriggersResponse); }