diff --git a/gen/go/approvals/v1/approvals.pb.go b/gen/go/approvals/v1/approvals.pb.go index 57347de..3513a8f 100644 --- a/gen/go/approvals/v1/approvals.pb.go +++ b/gen/go/approvals/v1/approvals.pb.go @@ -391,11 +391,15 @@ func (x *ApprovalRule) GetDescription() string { // ApprovalPolicy defines the set of rules for a workspace. type ApprovalPolicy struct { - state protoimpl.MessageState `protogen:"open.v1"` - WorkspaceId string `protobuf:"bytes,1,opt,name=workspace_id,json=workspaceId,proto3" json:"workspace_id,omitempty"` - Rules []*ApprovalRule `protobuf:"bytes,2,rep,name=rules,proto3" json:"rules,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + WorkspaceId string `protobuf:"bytes,1,opt,name=workspace_id,json=workspaceId,proto3" json:"workspace_id,omitempty"` + Rules []*ApprovalRule `protobuf:"bytes,2,rep,name=rules,proto3" json:"rules,omitempty"` + AutoApproveEnabled bool `protobuf:"varint,3,opt,name=auto_approve_enabled,json=autoApproveEnabled,proto3" json:"auto_approve_enabled,omitempty"` + AutoApproveThreshold float32 `protobuf:"fixed32,4,opt,name=auto_approve_threshold,json=autoApproveThreshold,proto3" json:"auto_approve_threshold,omitempty"` + MinObservations int32 `protobuf:"varint,5,opt,name=min_observations,json=minObservations,proto3" json:"min_observations,omitempty"` + ExcludedRiskLevels []RiskLevel `protobuf:"varint,6,rep,packed,name=excluded_risk_levels,json=excludedRiskLevels,proto3,enum=approvals.v1.RiskLevel" json:"excluded_risk_levels,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ApprovalPolicy) Reset() { @@ -442,6 +446,34 @@ func (x *ApprovalPolicy) GetRules() []*ApprovalRule { return nil } +func (x *ApprovalPolicy) GetAutoApproveEnabled() bool { + if x != nil { + return x.AutoApproveEnabled + } + return false +} + +func (x *ApprovalPolicy) GetAutoApproveThreshold() float32 { + if x != nil { + return x.AutoApproveThreshold + } + return 0 +} + +func (x *ApprovalPolicy) GetMinObservations() int32 { + if x != nil { + return x.MinObservations + } + return 0 +} + +func (x *ApprovalPolicy) GetExcludedRiskLevels() []RiskLevel { + if x != nil { + return x.ExcludedRiskLevels + } + return nil +} + // ApprovalDecision records a decision made on an approval request. type ApprovalDecision struct { state protoimpl.MessageState `protogen:"open.v1"` @@ -533,6 +565,7 @@ type ApprovalHabit struct { Pattern string `protobuf:"bytes,1,opt,name=pattern,proto3" json:"pattern,omitempty"` AutoApproveConfidence float32 `protobuf:"fixed32,2,opt,name=auto_approve_confidence,json=autoApproveConfidence,proto3" json:"auto_approve_confidence,omitempty"` ObservationCount int32 `protobuf:"varint,3,opt,name=observation_count,json=observationCount,proto3" json:"observation_count,omitempty"` + ApprovedCount int32 `protobuf:"varint,4,opt,name=approved_count,json=approvedCount,proto3" json:"approved_count,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -588,6 +621,13 @@ func (x *ApprovalHabit) GetObservationCount() int32 { return 0 } +func (x *ApprovalHabit) GetApprovedCount() int32 { + if x != nil { + return x.ApprovedCount + } + return 0 +} + type RequestApprovalRequest struct { state protoimpl.MessageState `protogen:"open.v1"` WorkspaceId string `protobuf:"bytes,1,opt,name=workspace_id,json=workspaceId,proto3" json:"workspace_id,omitempty"` @@ -691,6 +731,8 @@ func (x *RequestApprovalRequest) GetContextJson() string { type RequestApprovalResponse struct { state protoimpl.MessageState `protogen:"open.v1"` ApprovalRequest *ApprovalRequest `protobuf:"bytes,1,opt,name=approval_request,json=approvalRequest,proto3" json:"approval_request,omitempty"` + Decision *ApprovalDecision `protobuf:"bytes,2,opt,name=decision,proto3" json:"decision,omitempty"` + AutoApproved bool `protobuf:"varint,3,opt,name=auto_approved,json=autoApproved,proto3" json:"auto_approved,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -732,6 +774,20 @@ func (x *RequestApprovalResponse) GetApprovalRequest() *ApprovalRequest { return nil } +func (x *RequestApprovalResponse) GetDecision() *ApprovalDecision { + if x != nil { + return x.Decision + } + return nil +} + +func (x *RequestApprovalResponse) GetAutoApproved() bool { + if x != nil { + return x.AutoApproved + } + return false +} + type ResolveApprovalRequest struct { state protoimpl.MessageState `protogen:"open.v1"` ApprovalRequestId string `protobuf:"bytes,1,opt,name=approval_request_id,json=approvalRequestId,proto3" json:"approval_request_id,omitempty"` @@ -1456,10 +1512,14 @@ const file_approvals_v1_approvals_proto_rawDesc = "" + "actionType\x12=\n" + "\x0emin_risk_level\x18\x03 \x01(\x0e2\x17.approvals.v1.RiskLevelR\fminRiskLevel\x12;\n" + "\tauthority\x18\x04 \x01(\x0e2\x1d.approvals.v1.ActionAuthorityR\tauthority\x12 \n" + - "\vdescription\x18\x05 \x01(\tR\vdescription\"e\n" + + "\vdescription\x18\x05 \x01(\tR\vdescription\"\xc3\x02\n" + "\x0eApprovalPolicy\x12!\n" + "\fworkspace_id\x18\x01 \x01(\tR\vworkspaceId\x120\n" + - "\x05rules\x18\x02 \x03(\v2\x1a.approvals.v1.ApprovalRuleR\x05rules\"\xfc\x01\n" + + "\x05rules\x18\x02 \x03(\v2\x1a.approvals.v1.ApprovalRuleR\x05rules\x120\n" + + "\x14auto_approve_enabled\x18\x03 \x01(\bR\x12autoApproveEnabled\x124\n" + + "\x16auto_approve_threshold\x18\x04 \x01(\x02R\x14autoApproveThreshold\x12)\n" + + "\x10min_observations\x18\x05 \x01(\x05R\x0fminObservations\x12I\n" + + "\x14excluded_risk_levels\x18\x06 \x03(\x0e2\x17.approvals.v1.RiskLevelR\x12excludedRiskLevels\"\xfc\x01\n" + "\x10ApprovalDecision\x12\x0e\n" + "\x02id\x18\x01 \x01(\tR\x02id\x12.\n" + "\x13approval_request_id\x18\x02 \x01(\tR\x11approvalRequestId\x126\n" + @@ -1468,11 +1528,12 @@ const file_approvals_v1_approvals_proto_rawDesc = "" + "decided_by\x18\x04 \x01(\tR\tdecidedBy\x12\x16\n" + "\x06reason\x18\x05 \x01(\tR\x06reason\x129\n" + "\n" + - "decided_at\x18\x06 \x01(\v2\x1a.google.protobuf.TimestampR\tdecidedAt\"\x8e\x01\n" + + "decided_at\x18\x06 \x01(\v2\x1a.google.protobuf.TimestampR\tdecidedAt\"\xb5\x01\n" + "\rApprovalHabit\x12\x18\n" + "\apattern\x18\x01 \x01(\tR\apattern\x126\n" + "\x17auto_approve_confidence\x18\x02 \x01(\x02R\x15autoApproveConfidence\x12+\n" + - "\x11observation_count\x18\x03 \x01(\x05R\x10observationCount\"\xbd\x02\n" + + "\x11observation_count\x18\x03 \x01(\x05R\x10observationCount\x12%\n" + + "\x0eapproved_count\x18\x04 \x01(\x05R\rapprovedCount\"\xbd\x02\n" + "\x16RequestApprovalRequest\x12!\n" + "\fworkspace_id\x18\x01 \x01(\tR\vworkspaceId\x12(\n" + "\x10approver_user_id\x18\b \x01(\tR\x0eapproverUserId\x12\x19\n" + @@ -1483,9 +1544,11 @@ const file_approvals_v1_approvals_proto_rawDesc = "" + "\x0eaction_payload\x18\x05 \x01(\fR\ractionPayload\x126\n" + "\n" + "risk_level\x18\x06 \x01(\x0e2\x17.approvals.v1.RiskLevelR\triskLevel\x12!\n" + - "\fcontext_json\x18\a \x01(\tR\vcontextJson\"c\n" + + "\fcontext_json\x18\a \x01(\tR\vcontextJson\"\xc4\x01\n" + "\x17RequestApprovalResponse\x12H\n" + - "\x10approval_request\x18\x01 \x01(\v2\x1d.approvals.v1.ApprovalRequestR\x0fapprovalRequest\"\xb7\x01\n" + + "\x10approval_request\x18\x01 \x01(\v2\x1d.approvals.v1.ApprovalRequestR\x0fapprovalRequest\x12:\n" + + "\bdecision\x18\x02 \x01(\v2\x1e.approvals.v1.ApprovalDecisionR\bdecision\x12#\n" + + "\rauto_approved\x18\x03 \x01(\bR\fautoApproved\"\xb7\x01\n" + "\x16ResolveApprovalRequest\x12.\n" + "\x13approval_request_id\x18\x01 \x01(\tR\x11approvalRequestId\x126\n" + "\bdecision\x18\x02 \x01(\x0e2\x1a.approvals.v1.DecisionTypeR\bdecision\x12\x1d\n" + @@ -1600,41 +1663,43 @@ var file_approvals_v1_approvals_proto_depIdxs = []int32{ 0, // 3: approvals.v1.ApprovalRule.min_risk_level:type_name -> approvals.v1.RiskLevel 2, // 4: approvals.v1.ApprovalRule.authority:type_name -> approvals.v1.ActionAuthority 4, // 5: approvals.v1.ApprovalPolicy.rules:type_name -> approvals.v1.ApprovalRule - 1, // 6: approvals.v1.ApprovalDecision.decision:type_name -> approvals.v1.DecisionType - 24, // 7: approvals.v1.ApprovalDecision.decided_at:type_name -> google.protobuf.Timestamp - 0, // 8: approvals.v1.RequestApprovalRequest.risk_level:type_name -> approvals.v1.RiskLevel - 3, // 9: approvals.v1.RequestApprovalResponse.approval_request:type_name -> approvals.v1.ApprovalRequest - 1, // 10: approvals.v1.ResolveApprovalRequest.decision:type_name -> approvals.v1.DecisionType - 6, // 11: approvals.v1.ResolveApprovalResponse.decision:type_name -> approvals.v1.ApprovalDecision - 5, // 12: approvals.v1.GetPolicyResponse.policy:type_name -> approvals.v1.ApprovalPolicy - 5, // 13: approvals.v1.SetPolicyRequest.policy:type_name -> approvals.v1.ApprovalPolicy - 5, // 14: approvals.v1.SetPolicyResponse.policy:type_name -> approvals.v1.ApprovalPolicy - 3, // 15: approvals.v1.ListPendingResponse.requests:type_name -> approvals.v1.ApprovalRequest - 7, // 16: approvals.v1.GetHabitsResponse.habits:type_name -> approvals.v1.ApprovalHabit - 3, // 17: approvals.v1.EscalateResponse.approval_request:type_name -> approvals.v1.ApprovalRequest - 3, // 18: approvals.v1.GetApprovalResponse.approval_request:type_name -> approvals.v1.ApprovalRequest - 6, // 19: approvals.v1.GetApprovalResponse.decisions:type_name -> approvals.v1.ApprovalDecision - 8, // 20: approvals.v1.ApprovalService.RequestApproval:input_type -> approvals.v1.RequestApprovalRequest - 10, // 21: approvals.v1.ApprovalService.ResolveApproval:input_type -> approvals.v1.ResolveApprovalRequest - 12, // 22: approvals.v1.ApprovalService.GetPolicy:input_type -> approvals.v1.GetPolicyRequest - 14, // 23: approvals.v1.ApprovalService.SetPolicy:input_type -> approvals.v1.SetPolicyRequest - 16, // 24: approvals.v1.ApprovalService.ListPending:input_type -> approvals.v1.ListPendingRequest - 18, // 25: approvals.v1.ApprovalService.GetHabits:input_type -> approvals.v1.GetHabitsRequest - 20, // 26: approvals.v1.ApprovalService.Escalate:input_type -> approvals.v1.EscalateRequest - 22, // 27: approvals.v1.ApprovalService.GetApproval:input_type -> approvals.v1.GetApprovalRequest - 9, // 28: approvals.v1.ApprovalService.RequestApproval:output_type -> approvals.v1.RequestApprovalResponse - 11, // 29: approvals.v1.ApprovalService.ResolveApproval:output_type -> approvals.v1.ResolveApprovalResponse - 13, // 30: approvals.v1.ApprovalService.GetPolicy:output_type -> approvals.v1.GetPolicyResponse - 15, // 31: approvals.v1.ApprovalService.SetPolicy:output_type -> approvals.v1.SetPolicyResponse - 17, // 32: approvals.v1.ApprovalService.ListPending:output_type -> approvals.v1.ListPendingResponse - 19, // 33: approvals.v1.ApprovalService.GetHabits:output_type -> approvals.v1.GetHabitsResponse - 21, // 34: approvals.v1.ApprovalService.Escalate:output_type -> approvals.v1.EscalateResponse - 23, // 35: approvals.v1.ApprovalService.GetApproval:output_type -> approvals.v1.GetApprovalResponse - 28, // [28:36] is the sub-list for method output_type - 20, // [20:28] is the sub-list for method input_type - 20, // [20:20] is the sub-list for extension type_name - 20, // [20:20] is the sub-list for extension extendee - 0, // [0:20] is the sub-list for field type_name + 0, // 6: approvals.v1.ApprovalPolicy.excluded_risk_levels:type_name -> approvals.v1.RiskLevel + 1, // 7: approvals.v1.ApprovalDecision.decision:type_name -> approvals.v1.DecisionType + 24, // 8: approvals.v1.ApprovalDecision.decided_at:type_name -> google.protobuf.Timestamp + 0, // 9: approvals.v1.RequestApprovalRequest.risk_level:type_name -> approvals.v1.RiskLevel + 3, // 10: approvals.v1.RequestApprovalResponse.approval_request:type_name -> approvals.v1.ApprovalRequest + 6, // 11: approvals.v1.RequestApprovalResponse.decision:type_name -> approvals.v1.ApprovalDecision + 1, // 12: approvals.v1.ResolveApprovalRequest.decision:type_name -> approvals.v1.DecisionType + 6, // 13: approvals.v1.ResolveApprovalResponse.decision:type_name -> approvals.v1.ApprovalDecision + 5, // 14: approvals.v1.GetPolicyResponse.policy:type_name -> approvals.v1.ApprovalPolicy + 5, // 15: approvals.v1.SetPolicyRequest.policy:type_name -> approvals.v1.ApprovalPolicy + 5, // 16: approvals.v1.SetPolicyResponse.policy:type_name -> approvals.v1.ApprovalPolicy + 3, // 17: approvals.v1.ListPendingResponse.requests:type_name -> approvals.v1.ApprovalRequest + 7, // 18: approvals.v1.GetHabitsResponse.habits:type_name -> approvals.v1.ApprovalHabit + 3, // 19: approvals.v1.EscalateResponse.approval_request:type_name -> approvals.v1.ApprovalRequest + 3, // 20: approvals.v1.GetApprovalResponse.approval_request:type_name -> approvals.v1.ApprovalRequest + 6, // 21: approvals.v1.GetApprovalResponse.decisions:type_name -> approvals.v1.ApprovalDecision + 8, // 22: approvals.v1.ApprovalService.RequestApproval:input_type -> approvals.v1.RequestApprovalRequest + 10, // 23: approvals.v1.ApprovalService.ResolveApproval:input_type -> approvals.v1.ResolveApprovalRequest + 12, // 24: approvals.v1.ApprovalService.GetPolicy:input_type -> approvals.v1.GetPolicyRequest + 14, // 25: approvals.v1.ApprovalService.SetPolicy:input_type -> approvals.v1.SetPolicyRequest + 16, // 26: approvals.v1.ApprovalService.ListPending:input_type -> approvals.v1.ListPendingRequest + 18, // 27: approvals.v1.ApprovalService.GetHabits:input_type -> approvals.v1.GetHabitsRequest + 20, // 28: approvals.v1.ApprovalService.Escalate:input_type -> approvals.v1.EscalateRequest + 22, // 29: approvals.v1.ApprovalService.GetApproval:input_type -> approvals.v1.GetApprovalRequest + 9, // 30: approvals.v1.ApprovalService.RequestApproval:output_type -> approvals.v1.RequestApprovalResponse + 11, // 31: approvals.v1.ApprovalService.ResolveApproval:output_type -> approvals.v1.ResolveApprovalResponse + 13, // 32: approvals.v1.ApprovalService.GetPolicy:output_type -> approvals.v1.GetPolicyResponse + 15, // 33: approvals.v1.ApprovalService.SetPolicy:output_type -> approvals.v1.SetPolicyResponse + 17, // 34: approvals.v1.ApprovalService.ListPending:output_type -> approvals.v1.ListPendingResponse + 19, // 35: approvals.v1.ApprovalService.GetHabits:output_type -> approvals.v1.GetHabitsResponse + 21, // 36: approvals.v1.ApprovalService.Escalate:output_type -> approvals.v1.EscalateResponse + 23, // 37: approvals.v1.ApprovalService.GetApproval:output_type -> approvals.v1.GetApprovalResponse + 30, // [30:38] is the sub-list for method output_type + 22, // [22:30] is the sub-list for method input_type + 22, // [22:22] is the sub-list for extension type_name + 22, // [22:22] is the sub-list for extension extendee + 0, // [0:22] is the sub-list for field type_name } func init() { file_approvals_v1_approvals_proto_init() } diff --git a/gen/python/approvals/v1/approvals_pb2.py b/gen/python/approvals/v1/approvals_pb2.py index b5cd16a..16d9984 100644 --- a/gen/python/approvals/v1/approvals_pb2.py +++ b/gen/python/approvals/v1/approvals_pb2.py @@ -25,7 +25,7 @@ from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1c\x61pprovals/v1/approvals.proto\x12\x0c\x61pprovals.v1\x1a\x1fgoogle/protobuf/timestamp.proto\"\xbc\x03\n\x0f\x41pprovalRequest\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12!\n\x0cworkspace_id\x18\x02 \x01(\tR\x0bworkspaceId\x12(\n\x10\x61pprover_user_id\x18\x0b \x01(\tR\x0e\x61pproverUserId\x12\x19\n\x08\x61gent_id\x18\x03 \x01(\tR\x07\x61gentId\x12\x18\n\x07surface\x18\x04 \x01(\tR\x07surface\x12\x1f\n\x0b\x61\x63tion_type\x18\x05 \x01(\tR\nactionType\x12%\n\x0e\x61\x63tion_payload\x18\x06 \x01(\x0cR\ractionPayload\x12\x36\n\nrisk_level\x18\x07 \x01(\x0e\x32\x17.approvals.v1.RiskLevelR\triskLevel\x12!\n\x0c\x63ontext_json\x18\x08 \x01(\tR\x0b\x63ontextJson\x12\x39\n\ncreated_at\x18\t \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tcreatedAt\x12\x39\n\nupdated_at\x18\n \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tupdatedAt\"\xdd\x01\n\x0c\x41pprovalRule\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x1f\n\x0b\x61\x63tion_type\x18\x02 \x01(\tR\nactionType\x12=\n\x0emin_risk_level\x18\x03 \x01(\x0e\x32\x17.approvals.v1.RiskLevelR\x0cminRiskLevel\x12;\n\tauthority\x18\x04 \x01(\x0e\x32\x1d.approvals.v1.ActionAuthorityR\tauthority\x12 \n\x0b\x64\x65scription\x18\x05 \x01(\tR\x0b\x64\x65scription\"e\n\x0e\x41pprovalPolicy\x12!\n\x0cworkspace_id\x18\x01 \x01(\tR\x0bworkspaceId\x12\x30\n\x05rules\x18\x02 \x03(\x0b\x32\x1a.approvals.v1.ApprovalRuleR\x05rules\"\xfc\x01\n\x10\x41pprovalDecision\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12.\n\x13\x61pproval_request_id\x18\x02 \x01(\tR\x11\x61pprovalRequestId\x12\x36\n\x08\x64\x65\x63ision\x18\x03 \x01(\x0e\x32\x1a.approvals.v1.DecisionTypeR\x08\x64\x65\x63ision\x12\x1d\n\ndecided_by\x18\x04 \x01(\tR\tdecidedBy\x12\x16\n\x06reason\x18\x05 \x01(\tR\x06reason\x12\x39\n\ndecided_at\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tdecidedAt\"\x8e\x01\n\rApprovalHabit\x12\x18\n\x07pattern\x18\x01 \x01(\tR\x07pattern\x12\x36\n\x17\x61uto_approve_confidence\x18\x02 \x01(\x02R\x15\x61utoApproveConfidence\x12+\n\x11observation_count\x18\x03 \x01(\x05R\x10observationCount\"\xbd\x02\n\x16RequestApprovalRequest\x12!\n\x0cworkspace_id\x18\x01 \x01(\tR\x0bworkspaceId\x12(\n\x10\x61pprover_user_id\x18\x08 \x01(\tR\x0e\x61pproverUserId\x12\x19\n\x08\x61gent_id\x18\x02 \x01(\tR\x07\x61gentId\x12\x18\n\x07surface\x18\x03 \x01(\tR\x07surface\x12\x1f\n\x0b\x61\x63tion_type\x18\x04 \x01(\tR\nactionType\x12%\n\x0e\x61\x63tion_payload\x18\x05 \x01(\x0cR\ractionPayload\x12\x36\n\nrisk_level\x18\x06 \x01(\x0e\x32\x17.approvals.v1.RiskLevelR\triskLevel\x12!\n\x0c\x63ontext_json\x18\x07 \x01(\tR\x0b\x63ontextJson\"c\n\x17RequestApprovalResponse\x12H\n\x10\x61pproval_request\x18\x01 \x01(\x0b\x32\x1d.approvals.v1.ApprovalRequestR\x0f\x61pprovalRequest\"\xb7\x01\n\x16ResolveApprovalRequest\x12.\n\x13\x61pproval_request_id\x18\x01 \x01(\tR\x11\x61pprovalRequestId\x12\x36\n\x08\x64\x65\x63ision\x18\x02 \x01(\x0e\x32\x1a.approvals.v1.DecisionTypeR\x08\x64\x65\x63ision\x12\x1d\n\ndecided_by\x18\x03 \x01(\tR\tdecidedBy\x12\x16\n\x06reason\x18\x04 \x01(\tR\x06reason\"U\n\x17ResolveApprovalResponse\x12:\n\x08\x64\x65\x63ision\x18\x01 \x01(\x0b\x32\x1e.approvals.v1.ApprovalDecisionR\x08\x64\x65\x63ision\"5\n\x10GetPolicyRequest\x12!\n\x0cworkspace_id\x18\x01 \x01(\tR\x0bworkspaceId\"I\n\x11GetPolicyResponse\x12\x34\n\x06policy\x18\x01 \x01(\x0b\x32\x1c.approvals.v1.ApprovalPolicyR\x06policy\"H\n\x10SetPolicyRequest\x12\x34\n\x06policy\x18\x01 \x01(\x0b\x32\x1c.approvals.v1.ApprovalPolicyR\x06policy\"I\n\x11SetPolicyResponse\x12\x34\n\x06policy\x18\x01 \x01(\x0b\x32\x1c.approvals.v1.ApprovalPolicyR\x06policy\"e\n\x12ListPendingRequest\x12!\n\x0cworkspace_id\x18\x01 \x01(\tR\x0bworkspaceId\x12\x14\n\x05limit\x18\x02 \x01(\x05R\x05limit\x12\x16\n\x06offset\x18\x03 \x01(\x05R\x06offset\"f\n\x13ListPendingResponse\x12\x39\n\x08requests\x18\x01 \x03(\x0b\x32\x1d.approvals.v1.ApprovalRequestR\x08requests\x12\x14\n\x05total\x18\x02 \x01(\x05R\x05total\"5\n\x10GetHabitsRequest\x12!\n\x0cworkspace_id\x18\x01 \x01(\tR\x0bworkspaceId\"H\n\x11GetHabitsResponse\x12\x33\n\x06habits\x18\x01 \x03(\x0b\x32\x1b.approvals.v1.ApprovalHabitR\x06habits\"Y\n\x0f\x45scalateRequest\x12.\n\x13\x61pproval_request_id\x18\x01 \x01(\tR\x11\x61pprovalRequestId\x12\x16\n\x06reason\x18\x02 \x01(\tR\x06reason\"\\\n\x10\x45scalateResponse\x12H\n\x10\x61pproval_request\x18\x01 \x01(\x0b\x32\x1d.approvals.v1.ApprovalRequestR\x0f\x61pprovalRequest\"g\n\x12GetApprovalRequest\x12.\n\x13\x61pproval_request_id\x18\x01 \x01(\tR\x11\x61pprovalRequestId\x12!\n\x0cworkspace_id\x18\x02 \x01(\tR\x0bworkspaceId\"\xb3\x01\n\x13GetApprovalResponse\x12H\n\x10\x61pproval_request\x18\x01 \x01(\x0b\x32\x1d.approvals.v1.ApprovalRequestR\x0f\x61pprovalRequest\x12<\n\tdecisions\x18\x02 \x03(\x0b\x32\x1e.approvals.v1.ApprovalDecisionR\tdecisions\x12\x14\n\x05state\x18\x03 \x01(\tR\x05state*\x80\x01\n\tRiskLevel\x12\x1a\n\x16RISK_LEVEL_UNSPECIFIED\x10\x00\x12\x12\n\x0eRISK_LEVEL_LOW\x10\x01\x12\x15\n\x11RISK_LEVEL_MEDIUM\x10\x02\x12\x13\n\x0fRISK_LEVEL_HIGH\x10\x03\x12\x17\n\x13RISK_LEVEL_CRITICAL\x10\x04*\x9b\x01\n\x0c\x44\x65\x63isionType\x12\x1d\n\x19\x44\x45\x43ISION_TYPE_UNSPECIFIED\x10\x00\x12\x1a\n\x16\x44\x45\x43ISION_TYPE_APPROVED\x10\x01\x12\x18\n\x14\x44\x45\x43ISION_TYPE_DENIED\x10\x02\x12\x1b\n\x17\x44\x45\x43ISION_TYPE_ESCALATED\x10\x03\x12\x19\n\x15\x44\x45\x43ISION_TYPE_EXPIRED\x10\x04*\x94\x01\n\x0f\x41\x63tionAuthority\x12 \n\x1c\x41\x43TION_AUTHORITY_UNSPECIFIED\x10\x00\x12\x18\n\x14\x41\x43TION_AUTHORITY_OWN\x10\x01\x12\x1e\n\x1a\x41\x43TION_AUTHORITY_RECOMMEND\x10\x02\x12%\n!ACTION_AUTHORITY_REQUIRE_APPROVAL\x10\x03\x32\xae\x05\n\x0f\x41pprovalService\x12^\n\x0fRequestApproval\x12$.approvals.v1.RequestApprovalRequest\x1a%.approvals.v1.RequestApprovalResponse\x12^\n\x0fResolveApproval\x12$.approvals.v1.ResolveApprovalRequest\x1a%.approvals.v1.ResolveApprovalResponse\x12L\n\tGetPolicy\x12\x1e.approvals.v1.GetPolicyRequest\x1a\x1f.approvals.v1.GetPolicyResponse\x12L\n\tSetPolicy\x12\x1e.approvals.v1.SetPolicyRequest\x1a\x1f.approvals.v1.SetPolicyResponse\x12R\n\x0bListPending\x12 .approvals.v1.ListPendingRequest\x1a!.approvals.v1.ListPendingResponse\x12L\n\tGetHabits\x12\x1e.approvals.v1.GetHabitsRequest\x1a\x1f.approvals.v1.GetHabitsResponse\x12I\n\x08\x45scalate\x12\x1d.approvals.v1.EscalateRequest\x1a\x1e.approvals.v1.EscalateResponse\x12R\n\x0bGetApproval\x12 .approvals.v1.GetApprovalRequest\x1a!.approvals.v1.GetApprovalResponseB:Z8github.com/evalops/proto/gen/go/approvals/v1;approvalsv1b\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1c\x61pprovals/v1/approvals.proto\x12\x0c\x61pprovals.v1\x1a\x1fgoogle/protobuf/timestamp.proto\"\xbc\x03\n\x0f\x41pprovalRequest\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12!\n\x0cworkspace_id\x18\x02 \x01(\tR\x0bworkspaceId\x12(\n\x10\x61pprover_user_id\x18\x0b \x01(\tR\x0e\x61pproverUserId\x12\x19\n\x08\x61gent_id\x18\x03 \x01(\tR\x07\x61gentId\x12\x18\n\x07surface\x18\x04 \x01(\tR\x07surface\x12\x1f\n\x0b\x61\x63tion_type\x18\x05 \x01(\tR\nactionType\x12%\n\x0e\x61\x63tion_payload\x18\x06 \x01(\x0cR\ractionPayload\x12\x36\n\nrisk_level\x18\x07 \x01(\x0e\x32\x17.approvals.v1.RiskLevelR\triskLevel\x12!\n\x0c\x63ontext_json\x18\x08 \x01(\tR\x0b\x63ontextJson\x12\x39\n\ncreated_at\x18\t \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tcreatedAt\x12\x39\n\nupdated_at\x18\n \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tupdatedAt\"\xdd\x01\n\x0c\x41pprovalRule\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x1f\n\x0b\x61\x63tion_type\x18\x02 \x01(\tR\nactionType\x12=\n\x0emin_risk_level\x18\x03 \x01(\x0e\x32\x17.approvals.v1.RiskLevelR\x0cminRiskLevel\x12;\n\tauthority\x18\x04 \x01(\x0e\x32\x1d.approvals.v1.ActionAuthorityR\tauthority\x12 \n\x0b\x64\x65scription\x18\x05 \x01(\tR\x0b\x64\x65scription\"\xc3\x02\n\x0e\x41pprovalPolicy\x12!\n\x0cworkspace_id\x18\x01 \x01(\tR\x0bworkspaceId\x12\x30\n\x05rules\x18\x02 \x03(\x0b\x32\x1a.approvals.v1.ApprovalRuleR\x05rules\x12\x30\n\x14\x61uto_approve_enabled\x18\x03 \x01(\x08R\x12\x61utoApproveEnabled\x12\x34\n\x16\x61uto_approve_threshold\x18\x04 \x01(\x02R\x14\x61utoApproveThreshold\x12)\n\x10min_observations\x18\x05 \x01(\x05R\x0fminObservations\x12I\n\x14\x65xcluded_risk_levels\x18\x06 \x03(\x0e\x32\x17.approvals.v1.RiskLevelR\x12\x65xcludedRiskLevels\"\xfc\x01\n\x10\x41pprovalDecision\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12.\n\x13\x61pproval_request_id\x18\x02 \x01(\tR\x11\x61pprovalRequestId\x12\x36\n\x08\x64\x65\x63ision\x18\x03 \x01(\x0e\x32\x1a.approvals.v1.DecisionTypeR\x08\x64\x65\x63ision\x12\x1d\n\ndecided_by\x18\x04 \x01(\tR\tdecidedBy\x12\x16\n\x06reason\x18\x05 \x01(\tR\x06reason\x12\x39\n\ndecided_at\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tdecidedAt\"\xb5\x01\n\rApprovalHabit\x12\x18\n\x07pattern\x18\x01 \x01(\tR\x07pattern\x12\x36\n\x17\x61uto_approve_confidence\x18\x02 \x01(\x02R\x15\x61utoApproveConfidence\x12+\n\x11observation_count\x18\x03 \x01(\x05R\x10observationCount\x12%\n\x0e\x61pproved_count\x18\x04 \x01(\x05R\rapprovedCount\"\xbd\x02\n\x16RequestApprovalRequest\x12!\n\x0cworkspace_id\x18\x01 \x01(\tR\x0bworkspaceId\x12(\n\x10\x61pprover_user_id\x18\x08 \x01(\tR\x0e\x61pproverUserId\x12\x19\n\x08\x61gent_id\x18\x02 \x01(\tR\x07\x61gentId\x12\x18\n\x07surface\x18\x03 \x01(\tR\x07surface\x12\x1f\n\x0b\x61\x63tion_type\x18\x04 \x01(\tR\nactionType\x12%\n\x0e\x61\x63tion_payload\x18\x05 \x01(\x0cR\ractionPayload\x12\x36\n\nrisk_level\x18\x06 \x01(\x0e\x32\x17.approvals.v1.RiskLevelR\triskLevel\x12!\n\x0c\x63ontext_json\x18\x07 \x01(\tR\x0b\x63ontextJson\"\xc4\x01\n\x17RequestApprovalResponse\x12H\n\x10\x61pproval_request\x18\x01 \x01(\x0b\x32\x1d.approvals.v1.ApprovalRequestR\x0f\x61pprovalRequest\x12:\n\x08\x64\x65\x63ision\x18\x02 \x01(\x0b\x32\x1e.approvals.v1.ApprovalDecisionR\x08\x64\x65\x63ision\x12#\n\rauto_approved\x18\x03 \x01(\x08R\x0c\x61utoApproved\"\xb7\x01\n\x16ResolveApprovalRequest\x12.\n\x13\x61pproval_request_id\x18\x01 \x01(\tR\x11\x61pprovalRequestId\x12\x36\n\x08\x64\x65\x63ision\x18\x02 \x01(\x0e\x32\x1a.approvals.v1.DecisionTypeR\x08\x64\x65\x63ision\x12\x1d\n\ndecided_by\x18\x03 \x01(\tR\tdecidedBy\x12\x16\n\x06reason\x18\x04 \x01(\tR\x06reason\"U\n\x17ResolveApprovalResponse\x12:\n\x08\x64\x65\x63ision\x18\x01 \x01(\x0b\x32\x1e.approvals.v1.ApprovalDecisionR\x08\x64\x65\x63ision\"5\n\x10GetPolicyRequest\x12!\n\x0cworkspace_id\x18\x01 \x01(\tR\x0bworkspaceId\"I\n\x11GetPolicyResponse\x12\x34\n\x06policy\x18\x01 \x01(\x0b\x32\x1c.approvals.v1.ApprovalPolicyR\x06policy\"H\n\x10SetPolicyRequest\x12\x34\n\x06policy\x18\x01 \x01(\x0b\x32\x1c.approvals.v1.ApprovalPolicyR\x06policy\"I\n\x11SetPolicyResponse\x12\x34\n\x06policy\x18\x01 \x01(\x0b\x32\x1c.approvals.v1.ApprovalPolicyR\x06policy\"e\n\x12ListPendingRequest\x12!\n\x0cworkspace_id\x18\x01 \x01(\tR\x0bworkspaceId\x12\x14\n\x05limit\x18\x02 \x01(\x05R\x05limit\x12\x16\n\x06offset\x18\x03 \x01(\x05R\x06offset\"f\n\x13ListPendingResponse\x12\x39\n\x08requests\x18\x01 \x03(\x0b\x32\x1d.approvals.v1.ApprovalRequestR\x08requests\x12\x14\n\x05total\x18\x02 \x01(\x05R\x05total\"5\n\x10GetHabitsRequest\x12!\n\x0cworkspace_id\x18\x01 \x01(\tR\x0bworkspaceId\"H\n\x11GetHabitsResponse\x12\x33\n\x06habits\x18\x01 \x03(\x0b\x32\x1b.approvals.v1.ApprovalHabitR\x06habits\"Y\n\x0f\x45scalateRequest\x12.\n\x13\x61pproval_request_id\x18\x01 \x01(\tR\x11\x61pprovalRequestId\x12\x16\n\x06reason\x18\x02 \x01(\tR\x06reason\"\\\n\x10\x45scalateResponse\x12H\n\x10\x61pproval_request\x18\x01 \x01(\x0b\x32\x1d.approvals.v1.ApprovalRequestR\x0f\x61pprovalRequest\"g\n\x12GetApprovalRequest\x12.\n\x13\x61pproval_request_id\x18\x01 \x01(\tR\x11\x61pprovalRequestId\x12!\n\x0cworkspace_id\x18\x02 \x01(\tR\x0bworkspaceId\"\xb3\x01\n\x13GetApprovalResponse\x12H\n\x10\x61pproval_request\x18\x01 \x01(\x0b\x32\x1d.approvals.v1.ApprovalRequestR\x0f\x61pprovalRequest\x12<\n\tdecisions\x18\x02 \x03(\x0b\x32\x1e.approvals.v1.ApprovalDecisionR\tdecisions\x12\x14\n\x05state\x18\x03 \x01(\tR\x05state*\x80\x01\n\tRiskLevel\x12\x1a\n\x16RISK_LEVEL_UNSPECIFIED\x10\x00\x12\x12\n\x0eRISK_LEVEL_LOW\x10\x01\x12\x15\n\x11RISK_LEVEL_MEDIUM\x10\x02\x12\x13\n\x0fRISK_LEVEL_HIGH\x10\x03\x12\x17\n\x13RISK_LEVEL_CRITICAL\x10\x04*\x9b\x01\n\x0c\x44\x65\x63isionType\x12\x1d\n\x19\x44\x45\x43ISION_TYPE_UNSPECIFIED\x10\x00\x12\x1a\n\x16\x44\x45\x43ISION_TYPE_APPROVED\x10\x01\x12\x18\n\x14\x44\x45\x43ISION_TYPE_DENIED\x10\x02\x12\x1b\n\x17\x44\x45\x43ISION_TYPE_ESCALATED\x10\x03\x12\x19\n\x15\x44\x45\x43ISION_TYPE_EXPIRED\x10\x04*\x94\x01\n\x0f\x41\x63tionAuthority\x12 \n\x1c\x41\x43TION_AUTHORITY_UNSPECIFIED\x10\x00\x12\x18\n\x14\x41\x43TION_AUTHORITY_OWN\x10\x01\x12\x1e\n\x1a\x41\x43TION_AUTHORITY_RECOMMEND\x10\x02\x12%\n!ACTION_AUTHORITY_REQUIRE_APPROVAL\x10\x03\x32\xae\x05\n\x0f\x41pprovalService\x12^\n\x0fRequestApproval\x12$.approvals.v1.RequestApprovalRequest\x1a%.approvals.v1.RequestApprovalResponse\x12^\n\x0fResolveApproval\x12$.approvals.v1.ResolveApprovalRequest\x1a%.approvals.v1.ResolveApprovalResponse\x12L\n\tGetPolicy\x12\x1e.approvals.v1.GetPolicyRequest\x1a\x1f.approvals.v1.GetPolicyResponse\x12L\n\tSetPolicy\x12\x1e.approvals.v1.SetPolicyRequest\x1a\x1f.approvals.v1.SetPolicyResponse\x12R\n\x0bListPending\x12 .approvals.v1.ListPendingRequest\x1a!.approvals.v1.ListPendingResponse\x12L\n\tGetHabits\x12\x1e.approvals.v1.GetHabitsRequest\x1a\x1f.approvals.v1.GetHabitsResponse\x12I\n\x08\x45scalate\x12\x1d.approvals.v1.EscalateRequest\x1a\x1e.approvals.v1.EscalateResponse\x12R\n\x0bGetApproval\x12 .approvals.v1.GetApprovalRequest\x1a!.approvals.v1.GetApprovalResponseB:Z8github.com/evalops/proto/gen/go/approvals/v1;approvalsv1b\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -33,54 +33,54 @@ if not _descriptor._USE_C_DESCRIPTORS: _globals['DESCRIPTOR']._loaded_options = None _globals['DESCRIPTOR']._serialized_options = b'Z8github.com/evalops/proto/gen/go/approvals/v1;approvalsv1' - _globals['_RISKLEVEL']._serialized_start=3035 - _globals['_RISKLEVEL']._serialized_end=3163 - _globals['_DECISIONTYPE']._serialized_start=3166 - _globals['_DECISIONTYPE']._serialized_end=3321 - _globals['_ACTIONAUTHORITY']._serialized_start=3324 - _globals['_ACTIONAUTHORITY']._serialized_end=3472 + _globals['_RISKLEVEL']._serialized_start=3395 + _globals['_RISKLEVEL']._serialized_end=3523 + _globals['_DECISIONTYPE']._serialized_start=3526 + _globals['_DECISIONTYPE']._serialized_end=3681 + _globals['_ACTIONAUTHORITY']._serialized_start=3684 + _globals['_ACTIONAUTHORITY']._serialized_end=3832 _globals['_APPROVALREQUEST']._serialized_start=80 _globals['_APPROVALREQUEST']._serialized_end=524 _globals['_APPROVALRULE']._serialized_start=527 _globals['_APPROVALRULE']._serialized_end=748 - _globals['_APPROVALPOLICY']._serialized_start=750 - _globals['_APPROVALPOLICY']._serialized_end=851 - _globals['_APPROVALDECISION']._serialized_start=854 - _globals['_APPROVALDECISION']._serialized_end=1106 - _globals['_APPROVALHABIT']._serialized_start=1109 - _globals['_APPROVALHABIT']._serialized_end=1251 - _globals['_REQUESTAPPROVALREQUEST']._serialized_start=1254 - _globals['_REQUESTAPPROVALREQUEST']._serialized_end=1571 - _globals['_REQUESTAPPROVALRESPONSE']._serialized_start=1573 - _globals['_REQUESTAPPROVALRESPONSE']._serialized_end=1672 - _globals['_RESOLVEAPPROVALREQUEST']._serialized_start=1675 - _globals['_RESOLVEAPPROVALREQUEST']._serialized_end=1858 - _globals['_RESOLVEAPPROVALRESPONSE']._serialized_start=1860 - _globals['_RESOLVEAPPROVALRESPONSE']._serialized_end=1945 - _globals['_GETPOLICYREQUEST']._serialized_start=1947 - _globals['_GETPOLICYREQUEST']._serialized_end=2000 - _globals['_GETPOLICYRESPONSE']._serialized_start=2002 - _globals['_GETPOLICYRESPONSE']._serialized_end=2075 - _globals['_SETPOLICYREQUEST']._serialized_start=2077 - _globals['_SETPOLICYREQUEST']._serialized_end=2149 - _globals['_SETPOLICYRESPONSE']._serialized_start=2151 - _globals['_SETPOLICYRESPONSE']._serialized_end=2224 - _globals['_LISTPENDINGREQUEST']._serialized_start=2226 - _globals['_LISTPENDINGREQUEST']._serialized_end=2327 - _globals['_LISTPENDINGRESPONSE']._serialized_start=2329 - _globals['_LISTPENDINGRESPONSE']._serialized_end=2431 - _globals['_GETHABITSREQUEST']._serialized_start=2433 - _globals['_GETHABITSREQUEST']._serialized_end=2486 - _globals['_GETHABITSRESPONSE']._serialized_start=2488 - _globals['_GETHABITSRESPONSE']._serialized_end=2560 - _globals['_ESCALATEREQUEST']._serialized_start=2562 - _globals['_ESCALATEREQUEST']._serialized_end=2651 - _globals['_ESCALATERESPONSE']._serialized_start=2653 - _globals['_ESCALATERESPONSE']._serialized_end=2745 - _globals['_GETAPPROVALREQUEST']._serialized_start=2747 - _globals['_GETAPPROVALREQUEST']._serialized_end=2850 - _globals['_GETAPPROVALRESPONSE']._serialized_start=2853 - _globals['_GETAPPROVALRESPONSE']._serialized_end=3032 - _globals['_APPROVALSERVICE']._serialized_start=3475 - _globals['_APPROVALSERVICE']._serialized_end=4161 + _globals['_APPROVALPOLICY']._serialized_start=751 + _globals['_APPROVALPOLICY']._serialized_end=1074 + _globals['_APPROVALDECISION']._serialized_start=1077 + _globals['_APPROVALDECISION']._serialized_end=1329 + _globals['_APPROVALHABIT']._serialized_start=1332 + _globals['_APPROVALHABIT']._serialized_end=1513 + _globals['_REQUESTAPPROVALREQUEST']._serialized_start=1516 + _globals['_REQUESTAPPROVALREQUEST']._serialized_end=1833 + _globals['_REQUESTAPPROVALRESPONSE']._serialized_start=1836 + _globals['_REQUESTAPPROVALRESPONSE']._serialized_end=2032 + _globals['_RESOLVEAPPROVALREQUEST']._serialized_start=2035 + _globals['_RESOLVEAPPROVALREQUEST']._serialized_end=2218 + _globals['_RESOLVEAPPROVALRESPONSE']._serialized_start=2220 + _globals['_RESOLVEAPPROVALRESPONSE']._serialized_end=2305 + _globals['_GETPOLICYREQUEST']._serialized_start=2307 + _globals['_GETPOLICYREQUEST']._serialized_end=2360 + _globals['_GETPOLICYRESPONSE']._serialized_start=2362 + _globals['_GETPOLICYRESPONSE']._serialized_end=2435 + _globals['_SETPOLICYREQUEST']._serialized_start=2437 + _globals['_SETPOLICYREQUEST']._serialized_end=2509 + _globals['_SETPOLICYRESPONSE']._serialized_start=2511 + _globals['_SETPOLICYRESPONSE']._serialized_end=2584 + _globals['_LISTPENDINGREQUEST']._serialized_start=2586 + _globals['_LISTPENDINGREQUEST']._serialized_end=2687 + _globals['_LISTPENDINGRESPONSE']._serialized_start=2689 + _globals['_LISTPENDINGRESPONSE']._serialized_end=2791 + _globals['_GETHABITSREQUEST']._serialized_start=2793 + _globals['_GETHABITSREQUEST']._serialized_end=2846 + _globals['_GETHABITSRESPONSE']._serialized_start=2848 + _globals['_GETHABITSRESPONSE']._serialized_end=2920 + _globals['_ESCALATEREQUEST']._serialized_start=2922 + _globals['_ESCALATEREQUEST']._serialized_end=3011 + _globals['_ESCALATERESPONSE']._serialized_start=3013 + _globals['_ESCALATERESPONSE']._serialized_end=3105 + _globals['_GETAPPROVALREQUEST']._serialized_start=3107 + _globals['_GETAPPROVALREQUEST']._serialized_end=3210 + _globals['_GETAPPROVALRESPONSE']._serialized_start=3213 + _globals['_GETAPPROVALRESPONSE']._serialized_end=3392 + _globals['_APPROVALSERVICE']._serialized_start=3835 + _globals['_APPROVALSERVICE']._serialized_end=4521 # @@protoc_insertion_point(module_scope) diff --git a/gen/ts/approvals/v1/approvals_pb.ts b/gen/ts/approvals/v1/approvals_pb.ts index a919131..731b74d 100644 --- a/gen/ts/approvals/v1/approvals_pb.ts +++ b/gen/ts/approvals/v1/approvals_pb.ts @@ -12,7 +12,7 @@ import type { Message } from "@bufbuild/protobuf"; * Describes the file approvals/v1/approvals.proto. */ export const file_approvals_v1_approvals: GenFile = /*@__PURE__*/ - fileDesc("ChxhcHByb3ZhbHMvdjEvYXBwcm92YWxzLnByb3RvEgxhcHByb3ZhbHMudjEiwAIKD0FwcHJvdmFsUmVxdWVzdBIKCgJpZBgBIAEoCRIUCgx3b3Jrc3BhY2VfaWQYAiABKAkSGAoQYXBwcm92ZXJfdXNlcl9pZBgLIAEoCRIQCghhZ2VudF9pZBgDIAEoCRIPCgdzdXJmYWNlGAQgASgJEhMKC2FjdGlvbl90eXBlGAUgASgJEhYKDmFjdGlvbl9wYXlsb2FkGAYgASgMEisKCnJpc2tfbGV2ZWwYByABKA4yFy5hcHByb3ZhbHMudjEuUmlza0xldmVsEhQKDGNvbnRleHRfanNvbhgIIAEoCRIuCgpjcmVhdGVkX2F0GAkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GAogASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCKnAQoMQXBwcm92YWxSdWxlEgoKAmlkGAEgASgJEhMKC2FjdGlvbl90eXBlGAIgASgJEi8KDm1pbl9yaXNrX2xldmVsGAMgASgOMhcuYXBwcm92YWxzLnYxLlJpc2tMZXZlbBIwCglhdXRob3JpdHkYBCABKA4yHS5hcHByb3ZhbHMudjEuQWN0aW9uQXV0aG9yaXR5EhMKC2Rlc2NyaXB0aW9uGAUgASgJIlEKDkFwcHJvdmFsUG9saWN5EhQKDHdvcmtzcGFjZV9pZBgBIAEoCRIpCgVydWxlcxgCIAMoCzIaLmFwcHJvdmFscy52MS5BcHByb3ZhbFJ1bGUivQEKEEFwcHJvdmFsRGVjaXNpb24SCgoCaWQYASABKAkSGwoTYXBwcm92YWxfcmVxdWVzdF9pZBgCIAEoCRIsCghkZWNpc2lvbhgDIAEoDjIaLmFwcHJvdmFscy52MS5EZWNpc2lvblR5cGUSEgoKZGVjaWRlZF9ieRgEIAEoCRIOCgZyZWFzb24YBSABKAkSLgoKZGVjaWRlZF9hdBgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiXAoNQXBwcm92YWxIYWJpdBIPCgdwYXR0ZXJuGAEgASgJEh8KF2F1dG9fYXBwcm92ZV9jb25maWRlbmNlGAIgASgCEhkKEW9ic2VydmF0aW9uX2NvdW50GAMgASgFItsBChZSZXF1ZXN0QXBwcm92YWxSZXF1ZXN0EhQKDHdvcmtzcGFjZV9pZBgBIAEoCRIYChBhcHByb3Zlcl91c2VyX2lkGAggASgJEhAKCGFnZW50X2lkGAIgASgJEg8KB3N1cmZhY2UYAyABKAkSEwoLYWN0aW9uX3R5cGUYBCABKAkSFgoOYWN0aW9uX3BheWxvYWQYBSABKAwSKwoKcmlza19sZXZlbBgGIAEoDjIXLmFwcHJvdmFscy52MS5SaXNrTGV2ZWwSFAoMY29udGV4dF9qc29uGAcgASgJIlIKF1JlcXVlc3RBcHByb3ZhbFJlc3BvbnNlEjcKEGFwcHJvdmFsX3JlcXVlc3QYASABKAsyHS5hcHByb3ZhbHMudjEuQXBwcm92YWxSZXF1ZXN0IocBChZSZXNvbHZlQXBwcm92YWxSZXF1ZXN0EhsKE2FwcHJvdmFsX3JlcXVlc3RfaWQYASABKAkSLAoIZGVjaXNpb24YAiABKA4yGi5hcHByb3ZhbHMudjEuRGVjaXNpb25UeXBlEhIKCmRlY2lkZWRfYnkYAyABKAkSDgoGcmVhc29uGAQgASgJIksKF1Jlc29sdmVBcHByb3ZhbFJlc3BvbnNlEjAKCGRlY2lzaW9uGAEgASgLMh4uYXBwcm92YWxzLnYxLkFwcHJvdmFsRGVjaXNpb24iKAoQR2V0UG9saWN5UmVxdWVzdBIUCgx3b3Jrc3BhY2VfaWQYASABKAkiQQoRR2V0UG9saWN5UmVzcG9uc2USLAoGcG9saWN5GAEgASgLMhwuYXBwcm92YWxzLnYxLkFwcHJvdmFsUG9saWN5IkAKEFNldFBvbGljeVJlcXVlc3QSLAoGcG9saWN5GAEgASgLMhwuYXBwcm92YWxzLnYxLkFwcHJvdmFsUG9saWN5IkEKEVNldFBvbGljeVJlc3BvbnNlEiwKBnBvbGljeRgBIAEoCzIcLmFwcHJvdmFscy52MS5BcHByb3ZhbFBvbGljeSJJChJMaXN0UGVuZGluZ1JlcXVlc3QSFAoMd29ya3NwYWNlX2lkGAEgASgJEg0KBWxpbWl0GAIgASgFEg4KBm9mZnNldBgDIAEoBSJVChNMaXN0UGVuZGluZ1Jlc3BvbnNlEi8KCHJlcXVlc3RzGAEgAygLMh0uYXBwcm92YWxzLnYxLkFwcHJvdmFsUmVxdWVzdBINCgV0b3RhbBgCIAEoBSIoChBHZXRIYWJpdHNSZXF1ZXN0EhQKDHdvcmtzcGFjZV9pZBgBIAEoCSJAChFHZXRIYWJpdHNSZXNwb25zZRIrCgZoYWJpdHMYASADKAsyGy5hcHByb3ZhbHMudjEuQXBwcm92YWxIYWJpdCI+Cg9Fc2NhbGF0ZVJlcXVlc3QSGwoTYXBwcm92YWxfcmVxdWVzdF9pZBgBIAEoCRIOCgZyZWFzb24YAiABKAkiSwoQRXNjYWxhdGVSZXNwb25zZRI3ChBhcHByb3ZhbF9yZXF1ZXN0GAEgASgLMh0uYXBwcm92YWxzLnYxLkFwcHJvdmFsUmVxdWVzdCJHChJHZXRBcHByb3ZhbFJlcXVlc3QSGwoTYXBwcm92YWxfcmVxdWVzdF9pZBgBIAEoCRIUCgx3b3Jrc3BhY2VfaWQYAiABKAkikAEKE0dldEFwcHJvdmFsUmVzcG9uc2USNwoQYXBwcm92YWxfcmVxdWVzdBgBIAEoCzIdLmFwcHJvdmFscy52MS5BcHByb3ZhbFJlcXVlc3QSMQoJZGVjaXNpb25zGAIgAygLMh4uYXBwcm92YWxzLnYxLkFwcHJvdmFsRGVjaXNpb24SDQoFc3RhdGUYAyABKAkqgAEKCVJpc2tMZXZlbBIaChZSSVNLX0xFVkVMX1VOU1BFQ0lGSUVEEAASEgoOUklTS19MRVZFTF9MT1cQARIVChFSSVNLX0xFVkVMX01FRElVTRACEhMKD1JJU0tfTEVWRUxfSElHSBADEhcKE1JJU0tfTEVWRUxfQ1JJVElDQUwQBCqbAQoMRGVjaXNpb25UeXBlEh0KGURFQ0lTSU9OX1RZUEVfVU5TUEVDSUZJRUQQABIaChZERUNJU0lPTl9UWVBFX0FQUFJPVkVEEAESGAoUREVDSVNJT05fVFlQRV9ERU5JRUQQAhIbChdERUNJU0lPTl9UWVBFX0VTQ0FMQVRFRBADEhkKFURFQ0lTSU9OX1RZUEVfRVhQSVJFRBAEKpQBCg9BY3Rpb25BdXRob3JpdHkSIAocQUNUSU9OX0FVVEhPUklUWV9VTlNQRUNJRklFRBAAEhgKFEFDVElPTl9BVVRIT1JJVFlfT1dOEAESHgoaQUNUSU9OX0FVVEhPUklUWV9SRUNPTU1FTkQQAhIlCiFBQ1RJT05fQVVUSE9SSVRZX1JFUVVJUkVfQVBQUk9WQUwQAzKuBQoPQXBwcm92YWxTZXJ2aWNlEl4KD1JlcXVlc3RBcHByb3ZhbBIkLmFwcHJvdmFscy52MS5SZXF1ZXN0QXBwcm92YWxSZXF1ZXN0GiUuYXBwcm92YWxzLnYxLlJlcXVlc3RBcHByb3ZhbFJlc3BvbnNlEl4KD1Jlc29sdmVBcHByb3ZhbBIkLmFwcHJvdmFscy52MS5SZXNvbHZlQXBwcm92YWxSZXF1ZXN0GiUuYXBwcm92YWxzLnYxLlJlc29sdmVBcHByb3ZhbFJlc3BvbnNlEkwKCUdldFBvbGljeRIeLmFwcHJvdmFscy52MS5HZXRQb2xpY3lSZXF1ZXN0Gh8uYXBwcm92YWxzLnYxLkdldFBvbGljeVJlc3BvbnNlEkwKCVNldFBvbGljeRIeLmFwcHJvdmFscy52MS5TZXRQb2xpY3lSZXF1ZXN0Gh8uYXBwcm92YWxzLnYxLlNldFBvbGljeVJlc3BvbnNlElIKC0xpc3RQZW5kaW5nEiAuYXBwcm92YWxzLnYxLkxpc3RQZW5kaW5nUmVxdWVzdBohLmFwcHJvdmFscy52MS5MaXN0UGVuZGluZ1Jlc3BvbnNlEkwKCUdldEhhYml0cxIeLmFwcHJvdmFscy52MS5HZXRIYWJpdHNSZXF1ZXN0Gh8uYXBwcm92YWxzLnYxLkdldEhhYml0c1Jlc3BvbnNlEkkKCEVzY2FsYXRlEh0uYXBwcm92YWxzLnYxLkVzY2FsYXRlUmVxdWVzdBoeLmFwcHJvdmFscy52MS5Fc2NhbGF0ZVJlc3BvbnNlElIKC0dldEFwcHJvdmFsEiAuYXBwcm92YWxzLnYxLkdldEFwcHJvdmFsUmVxdWVzdBohLmFwcHJvdmFscy52MS5HZXRBcHByb3ZhbFJlc3BvbnNlQjpaOGdpdGh1Yi5jb20vZXZhbG9wcy9wcm90by9nZW4vZ28vYXBwcm92YWxzL3YxO2FwcHJvdmFsc3YxYgZwcm90bzM", [file_google_protobuf_timestamp]); + fileDesc("ChxhcHByb3ZhbHMvdjEvYXBwcm92YWxzLnByb3RvEgxhcHByb3ZhbHMudjEiwAIKD0FwcHJvdmFsUmVxdWVzdBIKCgJpZBgBIAEoCRIUCgx3b3Jrc3BhY2VfaWQYAiABKAkSGAoQYXBwcm92ZXJfdXNlcl9pZBgLIAEoCRIQCghhZ2VudF9pZBgDIAEoCRIPCgdzdXJmYWNlGAQgASgJEhMKC2FjdGlvbl90eXBlGAUgASgJEhYKDmFjdGlvbl9wYXlsb2FkGAYgASgMEisKCnJpc2tfbGV2ZWwYByABKA4yFy5hcHByb3ZhbHMudjEuUmlza0xldmVsEhQKDGNvbnRleHRfanNvbhgIIAEoCRIuCgpjcmVhdGVkX2F0GAkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GAogASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCKnAQoMQXBwcm92YWxSdWxlEgoKAmlkGAEgASgJEhMKC2FjdGlvbl90eXBlGAIgASgJEi8KDm1pbl9yaXNrX2xldmVsGAMgASgOMhcuYXBwcm92YWxzLnYxLlJpc2tMZXZlbBIwCglhdXRob3JpdHkYBCABKA4yHS5hcHByb3ZhbHMudjEuQWN0aW9uQXV0aG9yaXR5EhMKC2Rlc2NyaXB0aW9uGAUgASgJIuABCg5BcHByb3ZhbFBvbGljeRIUCgx3b3Jrc3BhY2VfaWQYASABKAkSKQoFcnVsZXMYAiADKAsyGi5hcHByb3ZhbHMudjEuQXBwcm92YWxSdWxlEhwKFGF1dG9fYXBwcm92ZV9lbmFibGVkGAMgASgIEh4KFmF1dG9fYXBwcm92ZV90aHJlc2hvbGQYBCABKAISGAoQbWluX29ic2VydmF0aW9ucxgFIAEoBRI1ChRleGNsdWRlZF9yaXNrX2xldmVscxgGIAMoDjIXLmFwcHJvdmFscy52MS5SaXNrTGV2ZWwivQEKEEFwcHJvdmFsRGVjaXNpb24SCgoCaWQYASABKAkSGwoTYXBwcm92YWxfcmVxdWVzdF9pZBgCIAEoCRIsCghkZWNpc2lvbhgDIAEoDjIaLmFwcHJvdmFscy52MS5EZWNpc2lvblR5cGUSEgoKZGVjaWRlZF9ieRgEIAEoCRIOCgZyZWFzb24YBSABKAkSLgoKZGVjaWRlZF9hdBgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAidAoNQXBwcm92YWxIYWJpdBIPCgdwYXR0ZXJuGAEgASgJEh8KF2F1dG9fYXBwcm92ZV9jb25maWRlbmNlGAIgASgCEhkKEW9ic2VydmF0aW9uX2NvdW50GAMgASgFEhYKDmFwcHJvdmVkX2NvdW50GAQgASgFItsBChZSZXF1ZXN0QXBwcm92YWxSZXF1ZXN0EhQKDHdvcmtzcGFjZV9pZBgBIAEoCRIYChBhcHByb3Zlcl91c2VyX2lkGAggASgJEhAKCGFnZW50X2lkGAIgASgJEg8KB3N1cmZhY2UYAyABKAkSEwoLYWN0aW9uX3R5cGUYBCABKAkSFgoOYWN0aW9uX3BheWxvYWQYBSABKAwSKwoKcmlza19sZXZlbBgGIAEoDjIXLmFwcHJvdmFscy52MS5SaXNrTGV2ZWwSFAoMY29udGV4dF9qc29uGAcgASgJIpsBChdSZXF1ZXN0QXBwcm92YWxSZXNwb25zZRI3ChBhcHByb3ZhbF9yZXF1ZXN0GAEgASgLMh0uYXBwcm92YWxzLnYxLkFwcHJvdmFsUmVxdWVzdBIwCghkZWNpc2lvbhgCIAEoCzIeLmFwcHJvdmFscy52MS5BcHByb3ZhbERlY2lzaW9uEhUKDWF1dG9fYXBwcm92ZWQYAyABKAgihwEKFlJlc29sdmVBcHByb3ZhbFJlcXVlc3QSGwoTYXBwcm92YWxfcmVxdWVzdF9pZBgBIAEoCRIsCghkZWNpc2lvbhgCIAEoDjIaLmFwcHJvdmFscy52MS5EZWNpc2lvblR5cGUSEgoKZGVjaWRlZF9ieRgDIAEoCRIOCgZyZWFzb24YBCABKAkiSwoXUmVzb2x2ZUFwcHJvdmFsUmVzcG9uc2USMAoIZGVjaXNpb24YASABKAsyHi5hcHByb3ZhbHMudjEuQXBwcm92YWxEZWNpc2lvbiIoChBHZXRQb2xpY3lSZXF1ZXN0EhQKDHdvcmtzcGFjZV9pZBgBIAEoCSJBChFHZXRQb2xpY3lSZXNwb25zZRIsCgZwb2xpY3kYASABKAsyHC5hcHByb3ZhbHMudjEuQXBwcm92YWxQb2xpY3kiQAoQU2V0UG9saWN5UmVxdWVzdBIsCgZwb2xpY3kYASABKAsyHC5hcHByb3ZhbHMudjEuQXBwcm92YWxQb2xpY3kiQQoRU2V0UG9saWN5UmVzcG9uc2USLAoGcG9saWN5GAEgASgLMhwuYXBwcm92YWxzLnYxLkFwcHJvdmFsUG9saWN5IkkKEkxpc3RQZW5kaW5nUmVxdWVzdBIUCgx3b3Jrc3BhY2VfaWQYASABKAkSDQoFbGltaXQYAiABKAUSDgoGb2Zmc2V0GAMgASgFIlUKE0xpc3RQZW5kaW5nUmVzcG9uc2USLwoIcmVxdWVzdHMYASADKAsyHS5hcHByb3ZhbHMudjEuQXBwcm92YWxSZXF1ZXN0Eg0KBXRvdGFsGAIgASgFIigKEEdldEhhYml0c1JlcXVlc3QSFAoMd29ya3NwYWNlX2lkGAEgASgJIkAKEUdldEhhYml0c1Jlc3BvbnNlEisKBmhhYml0cxgBIAMoCzIbLmFwcHJvdmFscy52MS5BcHByb3ZhbEhhYml0Ij4KD0VzY2FsYXRlUmVxdWVzdBIbChNhcHByb3ZhbF9yZXF1ZXN0X2lkGAEgASgJEg4KBnJlYXNvbhgCIAEoCSJLChBFc2NhbGF0ZVJlc3BvbnNlEjcKEGFwcHJvdmFsX3JlcXVlc3QYASABKAsyHS5hcHByb3ZhbHMudjEuQXBwcm92YWxSZXF1ZXN0IkcKEkdldEFwcHJvdmFsUmVxdWVzdBIbChNhcHByb3ZhbF9yZXF1ZXN0X2lkGAEgASgJEhQKDHdvcmtzcGFjZV9pZBgCIAEoCSKQAQoTR2V0QXBwcm92YWxSZXNwb25zZRI3ChBhcHByb3ZhbF9yZXF1ZXN0GAEgASgLMh0uYXBwcm92YWxzLnYxLkFwcHJvdmFsUmVxdWVzdBIxCglkZWNpc2lvbnMYAiADKAsyHi5hcHByb3ZhbHMudjEuQXBwcm92YWxEZWNpc2lvbhINCgVzdGF0ZRgDIAEoCSqAAQoJUmlza0xldmVsEhoKFlJJU0tfTEVWRUxfVU5TUEVDSUZJRUQQABISCg5SSVNLX0xFVkVMX0xPVxABEhUKEVJJU0tfTEVWRUxfTUVESVVNEAISEwoPUklTS19MRVZFTF9ISUdIEAMSFwoTUklTS19MRVZFTF9DUklUSUNBTBAEKpsBCgxEZWNpc2lvblR5cGUSHQoZREVDSVNJT05fVFlQRV9VTlNQRUNJRklFRBAAEhoKFkRFQ0lTSU9OX1RZUEVfQVBQUk9WRUQQARIYChRERUNJU0lPTl9UWVBFX0RFTklFRBACEhsKF0RFQ0lTSU9OX1RZUEVfRVNDQUxBVEVEEAMSGQoVREVDSVNJT05fVFlQRV9FWFBJUkVEEAQqlAEKD0FjdGlvbkF1dGhvcml0eRIgChxBQ1RJT05fQVVUSE9SSVRZX1VOU1BFQ0lGSUVEEAASGAoUQUNUSU9OX0FVVEhPUklUWV9PV04QARIeChpBQ1RJT05fQVVUSE9SSVRZX1JFQ09NTUVORBACEiUKIUFDVElPTl9BVVRIT1JJVFlfUkVRVUlSRV9BUFBST1ZBTBADMq4FCg9BcHByb3ZhbFNlcnZpY2USXgoPUmVxdWVzdEFwcHJvdmFsEiQuYXBwcm92YWxzLnYxLlJlcXVlc3RBcHByb3ZhbFJlcXVlc3QaJS5hcHByb3ZhbHMudjEuUmVxdWVzdEFwcHJvdmFsUmVzcG9uc2USXgoPUmVzb2x2ZUFwcHJvdmFsEiQuYXBwcm92YWxzLnYxLlJlc29sdmVBcHByb3ZhbFJlcXVlc3QaJS5hcHByb3ZhbHMudjEuUmVzb2x2ZUFwcHJvdmFsUmVzcG9uc2USTAoJR2V0UG9saWN5Eh4uYXBwcm92YWxzLnYxLkdldFBvbGljeVJlcXVlc3QaHy5hcHByb3ZhbHMudjEuR2V0UG9saWN5UmVzcG9uc2USTAoJU2V0UG9saWN5Eh4uYXBwcm92YWxzLnYxLlNldFBvbGljeVJlcXVlc3QaHy5hcHByb3ZhbHMudjEuU2V0UG9saWN5UmVzcG9uc2USUgoLTGlzdFBlbmRpbmcSIC5hcHByb3ZhbHMudjEuTGlzdFBlbmRpbmdSZXF1ZXN0GiEuYXBwcm92YWxzLnYxLkxpc3RQZW5kaW5nUmVzcG9uc2USTAoJR2V0SGFiaXRzEh4uYXBwcm92YWxzLnYxLkdldEhhYml0c1JlcXVlc3QaHy5hcHByb3ZhbHMudjEuR2V0SGFiaXRzUmVzcG9uc2USSQoIRXNjYWxhdGUSHS5hcHByb3ZhbHMudjEuRXNjYWxhdGVSZXF1ZXN0Gh4uYXBwcm92YWxzLnYxLkVzY2FsYXRlUmVzcG9uc2USUgoLR2V0QXBwcm92YWwSIC5hcHByb3ZhbHMudjEuR2V0QXBwcm92YWxSZXF1ZXN0GiEuYXBwcm92YWxzLnYxLkdldEFwcHJvdmFsUmVzcG9uc2VCOlo4Z2l0aHViLmNvbS9ldmFsb3BzL3Byb3RvL2dlbi9nby9hcHByb3ZhbHMvdjE7YXBwcm92YWxzdjFiBnByb3RvMw", [file_google_protobuf_timestamp]); /** * ApprovalRequest is the canonical approval request record. @@ -137,6 +137,26 @@ export type ApprovalPolicy = Message<"approvals.v1.ApprovalPolicy"> & { * @generated from field: repeated approvals.v1.ApprovalRule rules = 2; */ rules: ApprovalRule[]; + + /** + * @generated from field: bool auto_approve_enabled = 3; + */ + autoApproveEnabled: boolean; + + /** + * @generated from field: float auto_approve_threshold = 4; + */ + autoApproveThreshold: number; + + /** + * @generated from field: int32 min_observations = 5; + */ + minObservations: number; + + /** + * @generated from field: repeated approvals.v1.RiskLevel excluded_risk_levels = 6; + */ + excludedRiskLevels: RiskLevel[]; }; /** @@ -210,6 +230,11 @@ export type ApprovalHabit = Message<"approvals.v1.ApprovalHabit"> & { * @generated from field: int32 observation_count = 3; */ observationCount: number; + + /** + * @generated from field: int32 approved_count = 4; + */ + approvedCount: number; }; /** @@ -279,6 +304,16 @@ export type RequestApprovalResponse = Message<"approvals.v1.RequestApprovalRespo * @generated from field: approvals.v1.ApprovalRequest approval_request = 1; */ approvalRequest?: ApprovalRequest; + + /** + * @generated from field: approvals.v1.ApprovalDecision decision = 2; + */ + decision?: ApprovalDecision; + + /** + * @generated from field: bool auto_approved = 3; + */ + autoApproved: boolean; }; /** diff --git a/proto/approvals/v1/approvals.proto b/proto/approvals/v1/approvals.proto index 691e0d0..1917462 100644 --- a/proto/approvals/v1/approvals.proto +++ b/proto/approvals/v1/approvals.proto @@ -72,6 +72,10 @@ message ApprovalRule { message ApprovalPolicy { string workspace_id = 1; repeated ApprovalRule rules = 2; + bool auto_approve_enabled = 3; + float auto_approve_threshold = 4; + int32 min_observations = 5; + repeated RiskLevel excluded_risk_levels = 6; } // ApprovalDecision records a decision made on an approval request. @@ -89,6 +93,7 @@ message ApprovalHabit { string pattern = 1; float auto_approve_confidence = 2; int32 observation_count = 3; + int32 approved_count = 4; } message RequestApprovalRequest { @@ -104,6 +109,8 @@ message RequestApprovalRequest { message RequestApprovalResponse { ApprovalRequest approval_request = 1; + ApprovalDecision decision = 2; + bool auto_approved = 3; } message ResolveApprovalRequest {