diff --git a/internal/datalakes/inmemory/policyhub.go b/internal/datalakes/inmemory/policyhub.go index e7de7913..6b2fa7f5 100644 --- a/internal/datalakes/inmemory/policyhub.go +++ b/internal/datalakes/inmemory/policyhub.go @@ -413,7 +413,8 @@ func (db *Db) DeletePolicy(ctx context.Context, mrn string) error { // GetValidatedBundle retrieves and if necessary updates the policy bundle // Note: the checksum and graphchecksum of the policy must be computed to the right number -func (db *Db) GetValidatedBundle(ctx context.Context, mrn string) (*policy.Bundle, error) { +func (db *Db) GetValidatedBundle(ctx context.Context, in *policy.BundleReq) (*policy.Bundle, error) { + mrn := in.Mrn sum, err := db.EntityGraphContentChecksum(ctx, mrn) if err != nil { return nil, err diff --git a/policy/cnspec_policy.pb.go b/policy/cnspec_policy.pb.go index 17a0af29..185e2a90 100644 --- a/policy/cnspec_policy.pb.go +++ b/policy/cnspec_policy.pb.go @@ -470,7 +470,7 @@ func (x PolicyDelta_PolicyAssignmentActionType) Number() protoreflect.EnumNumber // Deprecated: Use PolicyDelta_PolicyAssignmentActionType.Descriptor instead. func (PolicyDelta_PolicyAssignmentActionType) EnumDescriptor() ([]byte, []int) { - return file_cnspec_policy_proto_rawDescGZIP(), []int{43, 0} + return file_cnspec_policy_proto_rawDescGZIP(), []int{44, 0} } // PolicyGroup specifies and overrides a policy and all its queries and referenced policies. @@ -3836,6 +3836,62 @@ func (x *Mrn) GetMrn() string { return "" } +type BundleReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Mrn string `protobuf:"bytes,1,opt,name=mrn,proto3" json:"mrn,omitempty"` + // Whether to strip all docs and tags from policies, queries, frameworks and controls. + Minimal bool `protobuf:"varint,2,opt,name=minimal,proto3" json:"minimal,omitempty"` +} + +func (x *BundleReq) Reset() { + *x = BundleReq{} + if protoimpl.UnsafeEnabled { + mi := &file_cnspec_policy_proto_msgTypes[37] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BundleReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BundleReq) ProtoMessage() {} + +func (x *BundleReq) ProtoReflect() protoreflect.Message { + mi := &file_cnspec_policy_proto_msgTypes[37] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BundleReq.ProtoReflect.Descriptor instead. +func (*BundleReq) Descriptor() ([]byte, []int) { + return file_cnspec_policy_proto_rawDescGZIP(), []int{37} +} + +func (x *BundleReq) GetMrn() string { + if x != nil { + return x.Mrn + } + return "" +} + +func (x *BundleReq) GetMinimal() bool { + if x != nil { + return x.Minimal + } + return false +} + type Mqueries struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -3847,7 +3903,7 @@ type Mqueries struct { func (x *Mqueries) Reset() { *x = Mqueries{} if protoimpl.UnsafeEnabled { - mi := &file_cnspec_policy_proto_msgTypes[37] + mi := &file_cnspec_policy_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3860,7 +3916,7 @@ func (x *Mqueries) String() string { func (*Mqueries) ProtoMessage() {} func (x *Mqueries) ProtoReflect() protoreflect.Message { - mi := &file_cnspec_policy_proto_msgTypes[37] + mi := &file_cnspec_policy_proto_msgTypes[38] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3873,7 +3929,7 @@ func (x *Mqueries) ProtoReflect() protoreflect.Message { // Deprecated: Use Mqueries.ProtoReflect.Descriptor instead. func (*Mqueries) Descriptor() ([]byte, []int) { - return file_cnspec_policy_proto_rawDescGZIP(), []int{37} + return file_cnspec_policy_proto_rawDescGZIP(), []int{38} } func (x *Mqueries) GetItems() []*explorer.Mquery { @@ -3895,7 +3951,7 @@ type ListReq struct { func (x *ListReq) Reset() { *x = ListReq{} if protoimpl.UnsafeEnabled { - mi := &file_cnspec_policy_proto_msgTypes[38] + mi := &file_cnspec_policy_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3908,7 +3964,7 @@ func (x *ListReq) String() string { func (*ListReq) ProtoMessage() {} func (x *ListReq) ProtoReflect() protoreflect.Message { - mi := &file_cnspec_policy_proto_msgTypes[38] + mi := &file_cnspec_policy_proto_msgTypes[39] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3921,7 +3977,7 @@ func (x *ListReq) ProtoReflect() protoreflect.Message { // Deprecated: Use ListReq.ProtoReflect.Descriptor instead. func (*ListReq) Descriptor() ([]byte, []int) { - return file_cnspec_policy_proto_rawDescGZIP(), []int{38} + return file_cnspec_policy_proto_rawDescGZIP(), []int{39} } func (x *ListReq) GetOwnerMrn() string { @@ -3953,7 +4009,7 @@ type DefaultPoliciesReq struct { func (x *DefaultPoliciesReq) Reset() { *x = DefaultPoliciesReq{} if protoimpl.UnsafeEnabled { - mi := &file_cnspec_policy_proto_msgTypes[39] + mi := &file_cnspec_policy_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3966,7 +4022,7 @@ func (x *DefaultPoliciesReq) String() string { func (*DefaultPoliciesReq) ProtoMessage() {} func (x *DefaultPoliciesReq) ProtoReflect() protoreflect.Message { - mi := &file_cnspec_policy_proto_msgTypes[39] + mi := &file_cnspec_policy_proto_msgTypes[40] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3979,7 +4035,7 @@ func (x *DefaultPoliciesReq) ProtoReflect() protoreflect.Message { // Deprecated: Use DefaultPoliciesReq.ProtoReflect.Descriptor instead. func (*DefaultPoliciesReq) Descriptor() ([]byte, []int) { - return file_cnspec_policy_proto_rawDescGZIP(), []int{39} + return file_cnspec_policy_proto_rawDescGZIP(), []int{40} } func (x *DefaultPoliciesReq) GetKind() string { @@ -4028,7 +4084,7 @@ type URLs struct { func (x *URLs) Reset() { *x = URLs{} if protoimpl.UnsafeEnabled { - mi := &file_cnspec_policy_proto_msgTypes[40] + mi := &file_cnspec_policy_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4041,7 +4097,7 @@ func (x *URLs) String() string { func (*URLs) ProtoMessage() {} func (x *URLs) ProtoReflect() protoreflect.Message { - mi := &file_cnspec_policy_proto_msgTypes[40] + mi := &file_cnspec_policy_proto_msgTypes[41] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4054,7 +4110,7 @@ func (x *URLs) ProtoReflect() protoreflect.Message { // Deprecated: Use URLs.ProtoReflect.Descriptor instead. func (*URLs) Descriptor() ([]byte, []int) { - return file_cnspec_policy_proto_rawDescGZIP(), []int{40} + return file_cnspec_policy_proto_rawDescGZIP(), []int{41} } func (x *URLs) GetUrls() []string { @@ -4078,7 +4134,7 @@ type PolicyAssignment struct { func (x *PolicyAssignment) Reset() { *x = PolicyAssignment{} if protoimpl.UnsafeEnabled { - mi := &file_cnspec_policy_proto_msgTypes[41] + mi := &file_cnspec_policy_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4091,7 +4147,7 @@ func (x *PolicyAssignment) String() string { func (*PolicyAssignment) ProtoMessage() {} func (x *PolicyAssignment) ProtoReflect() protoreflect.Message { - mi := &file_cnspec_policy_proto_msgTypes[41] + mi := &file_cnspec_policy_proto_msgTypes[42] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4104,7 +4160,7 @@ func (x *PolicyAssignment) ProtoReflect() protoreflect.Message { // Deprecated: Use PolicyAssignment.ProtoReflect.Descriptor instead. func (*PolicyAssignment) Descriptor() ([]byte, []int) { - return file_cnspec_policy_proto_rawDescGZIP(), []int{41} + return file_cnspec_policy_proto_rawDescGZIP(), []int{42} } func (x *PolicyAssignment) GetAssetMrn() string { @@ -4148,7 +4204,7 @@ type PolicyMutationDelta struct { func (x *PolicyMutationDelta) Reset() { *x = PolicyMutationDelta{} if protoimpl.UnsafeEnabled { - mi := &file_cnspec_policy_proto_msgTypes[42] + mi := &file_cnspec_policy_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4161,7 +4217,7 @@ func (x *PolicyMutationDelta) String() string { func (*PolicyMutationDelta) ProtoMessage() {} func (x *PolicyMutationDelta) ProtoReflect() protoreflect.Message { - mi := &file_cnspec_policy_proto_msgTypes[42] + mi := &file_cnspec_policy_proto_msgTypes[43] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4174,7 +4230,7 @@ func (x *PolicyMutationDelta) ProtoReflect() protoreflect.Message { // Deprecated: Use PolicyMutationDelta.ProtoReflect.Descriptor instead. func (*PolicyMutationDelta) Descriptor() ([]byte, []int) { - return file_cnspec_policy_proto_rawDescGZIP(), []int{42} + return file_cnspec_policy_proto_rawDescGZIP(), []int{43} } func (x *PolicyMutationDelta) GetPolicyMrn() string { @@ -4210,7 +4266,7 @@ type PolicyDelta struct { func (x *PolicyDelta) Reset() { *x = PolicyDelta{} if protoimpl.UnsafeEnabled { - mi := &file_cnspec_policy_proto_msgTypes[43] + mi := &file_cnspec_policy_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4223,7 +4279,7 @@ func (x *PolicyDelta) String() string { func (*PolicyDelta) ProtoMessage() {} func (x *PolicyDelta) ProtoReflect() protoreflect.Message { - mi := &file_cnspec_policy_proto_msgTypes[43] + mi := &file_cnspec_policy_proto_msgTypes[44] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4236,7 +4292,7 @@ func (x *PolicyDelta) ProtoReflect() protoreflect.Message { // Deprecated: Use PolicyDelta.ProtoReflect.Descriptor instead. func (*PolicyDelta) Descriptor() ([]byte, []int) { - return file_cnspec_policy_proto_rawDescGZIP(), []int{43} + return file_cnspec_policy_proto_rawDescGZIP(), []int{44} } func (x *PolicyDelta) GetPolicyMrn() string { @@ -4265,7 +4321,7 @@ type ResolveReq struct { func (x *ResolveReq) Reset() { *x = ResolveReq{} if protoimpl.UnsafeEnabled { - mi := &file_cnspec_policy_proto_msgTypes[44] + mi := &file_cnspec_policy_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4278,7 +4334,7 @@ func (x *ResolveReq) String() string { func (*ResolveReq) ProtoMessage() {} func (x *ResolveReq) ProtoReflect() protoreflect.Message { - mi := &file_cnspec_policy_proto_msgTypes[44] + mi := &file_cnspec_policy_proto_msgTypes[45] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4291,7 +4347,7 @@ func (x *ResolveReq) ProtoReflect() protoreflect.Message { // Deprecated: Use ResolveReq.ProtoReflect.Descriptor instead. func (*ResolveReq) Descriptor() ([]byte, []int) { - return file_cnspec_policy_proto_rawDescGZIP(), []int{44} + return file_cnspec_policy_proto_rawDescGZIP(), []int{45} } func (x *ResolveReq) GetPolicyMrn() string { @@ -4320,7 +4376,7 @@ type UpdateAssetJobsReq struct { func (x *UpdateAssetJobsReq) Reset() { *x = UpdateAssetJobsReq{} if protoimpl.UnsafeEnabled { - mi := &file_cnspec_policy_proto_msgTypes[45] + mi := &file_cnspec_policy_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4333,7 +4389,7 @@ func (x *UpdateAssetJobsReq) String() string { func (*UpdateAssetJobsReq) ProtoMessage() {} func (x *UpdateAssetJobsReq) ProtoReflect() protoreflect.Message { - mi := &file_cnspec_policy_proto_msgTypes[45] + mi := &file_cnspec_policy_proto_msgTypes[46] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4346,7 +4402,7 @@ func (x *UpdateAssetJobsReq) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateAssetJobsReq.ProtoReflect.Descriptor instead. func (*UpdateAssetJobsReq) Descriptor() ([]byte, []int) { - return file_cnspec_policy_proto_rawDescGZIP(), []int{45} + return file_cnspec_policy_proto_rawDescGZIP(), []int{46} } func (x *UpdateAssetJobsReq) GetAssetMrn() string { @@ -4381,7 +4437,7 @@ type StoreResultsReq struct { func (x *StoreResultsReq) Reset() { *x = StoreResultsReq{} if protoimpl.UnsafeEnabled { - mi := &file_cnspec_policy_proto_msgTypes[46] + mi := &file_cnspec_policy_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4394,7 +4450,7 @@ func (x *StoreResultsReq) String() string { func (*StoreResultsReq) ProtoMessage() {} func (x *StoreResultsReq) ProtoReflect() protoreflect.Message { - mi := &file_cnspec_policy_proto_msgTypes[46] + mi := &file_cnspec_policy_proto_msgTypes[47] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4407,7 +4463,7 @@ func (x *StoreResultsReq) ProtoReflect() protoreflect.Message { // Deprecated: Use StoreResultsReq.ProtoReflect.Descriptor instead. func (*StoreResultsReq) Descriptor() ([]byte, []int) { - return file_cnspec_policy_proto_rawDescGZIP(), []int{46} + return file_cnspec_policy_proto_rawDescGZIP(), []int{47} } func (x *StoreResultsReq) GetAssetMrn() string { @@ -4464,7 +4520,7 @@ type EntityScoreReq struct { func (x *EntityScoreReq) Reset() { *x = EntityScoreReq{} if protoimpl.UnsafeEnabled { - mi := &file_cnspec_policy_proto_msgTypes[47] + mi := &file_cnspec_policy_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4477,7 +4533,7 @@ func (x *EntityScoreReq) String() string { func (*EntityScoreReq) ProtoMessage() {} func (x *EntityScoreReq) ProtoReflect() protoreflect.Message { - mi := &file_cnspec_policy_proto_msgTypes[47] + mi := &file_cnspec_policy_proto_msgTypes[48] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4490,7 +4546,7 @@ func (x *EntityScoreReq) ProtoReflect() protoreflect.Message { // Deprecated: Use EntityScoreReq.ProtoReflect.Descriptor instead. func (*EntityScoreReq) Descriptor() ([]byte, []int) { - return file_cnspec_policy_proto_rawDescGZIP(), []int{47} + return file_cnspec_policy_proto_rawDescGZIP(), []int{48} } func (x *EntityScoreReq) GetEntityMrn() string { @@ -4519,7 +4575,7 @@ type SynchronizeAssetsReq struct { func (x *SynchronizeAssetsReq) Reset() { *x = SynchronizeAssetsReq{} if protoimpl.UnsafeEnabled { - mi := &file_cnspec_policy_proto_msgTypes[48] + mi := &file_cnspec_policy_proto_msgTypes[49] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4532,7 +4588,7 @@ func (x *SynchronizeAssetsReq) String() string { func (*SynchronizeAssetsReq) ProtoMessage() {} func (x *SynchronizeAssetsReq) ProtoReflect() protoreflect.Message { - mi := &file_cnspec_policy_proto_msgTypes[48] + mi := &file_cnspec_policy_proto_msgTypes[49] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4545,7 +4601,7 @@ func (x *SynchronizeAssetsReq) ProtoReflect() protoreflect.Message { // Deprecated: Use SynchronizeAssetsReq.ProtoReflect.Descriptor instead. func (*SynchronizeAssetsReq) Descriptor() ([]byte, []int) { - return file_cnspec_policy_proto_rawDescGZIP(), []int{48} + return file_cnspec_policy_proto_rawDescGZIP(), []int{49} } func (x *SynchronizeAssetsReq) GetSpaceMrn() string { @@ -4576,7 +4632,7 @@ type SynchronizeAssetsRespAssetDetail struct { func (x *SynchronizeAssetsRespAssetDetail) Reset() { *x = SynchronizeAssetsRespAssetDetail{} if protoimpl.UnsafeEnabled { - mi := &file_cnspec_policy_proto_msgTypes[49] + mi := &file_cnspec_policy_proto_msgTypes[50] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4589,7 +4645,7 @@ func (x *SynchronizeAssetsRespAssetDetail) String() string { func (*SynchronizeAssetsRespAssetDetail) ProtoMessage() {} func (x *SynchronizeAssetsRespAssetDetail) ProtoReflect() protoreflect.Message { - mi := &file_cnspec_policy_proto_msgTypes[49] + mi := &file_cnspec_policy_proto_msgTypes[50] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4602,7 +4658,7 @@ func (x *SynchronizeAssetsRespAssetDetail) ProtoReflect() protoreflect.Message { // Deprecated: Use SynchronizeAssetsRespAssetDetail.ProtoReflect.Descriptor instead. func (*SynchronizeAssetsRespAssetDetail) Descriptor() ([]byte, []int) { - return file_cnspec_policy_proto_rawDescGZIP(), []int{49} + return file_cnspec_policy_proto_rawDescGZIP(), []int{50} } func (x *SynchronizeAssetsRespAssetDetail) GetPlatformMrn() string { @@ -4644,7 +4700,7 @@ type SynchronizeAssetsResp struct { func (x *SynchronizeAssetsResp) Reset() { *x = SynchronizeAssetsResp{} if protoimpl.UnsafeEnabled { - mi := &file_cnspec_policy_proto_msgTypes[50] + mi := &file_cnspec_policy_proto_msgTypes[51] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4657,7 +4713,7 @@ func (x *SynchronizeAssetsResp) String() string { func (*SynchronizeAssetsResp) ProtoMessage() {} func (x *SynchronizeAssetsResp) ProtoReflect() protoreflect.Message { - mi := &file_cnspec_policy_proto_msgTypes[50] + mi := &file_cnspec_policy_proto_msgTypes[51] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4670,7 +4726,7 @@ func (x *SynchronizeAssetsResp) ProtoReflect() protoreflect.Message { // Deprecated: Use SynchronizeAssetsResp.ProtoReflect.Descriptor instead. func (*SynchronizeAssetsResp) Descriptor() ([]byte, []int) { - return file_cnspec_policy_proto_rawDescGZIP(), []int{50} + return file_cnspec_policy_proto_rawDescGZIP(), []int{51} } func (x *SynchronizeAssetsResp) GetDetails() map[string]*SynchronizeAssetsRespAssetDetail { @@ -4698,7 +4754,7 @@ type PurgeAssetsRequest struct { func (x *PurgeAssetsRequest) Reset() { *x = PurgeAssetsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_cnspec_policy_proto_msgTypes[51] + mi := &file_cnspec_policy_proto_msgTypes[52] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4711,7 +4767,7 @@ func (x *PurgeAssetsRequest) String() string { func (*PurgeAssetsRequest) ProtoMessage() {} func (x *PurgeAssetsRequest) ProtoReflect() protoreflect.Message { - mi := &file_cnspec_policy_proto_msgTypes[51] + mi := &file_cnspec_policy_proto_msgTypes[52] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4724,7 +4780,7 @@ func (x *PurgeAssetsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use PurgeAssetsRequest.ProtoReflect.Descriptor instead. func (*PurgeAssetsRequest) Descriptor() ([]byte, []int) { - return file_cnspec_policy_proto_rawDescGZIP(), []int{51} + return file_cnspec_policy_proto_rawDescGZIP(), []int{52} } func (x *PurgeAssetsRequest) GetSpaceMrn() string { @@ -4789,7 +4845,7 @@ type DateFilter struct { func (x *DateFilter) Reset() { *x = DateFilter{} if protoimpl.UnsafeEnabled { - mi := &file_cnspec_policy_proto_msgTypes[52] + mi := &file_cnspec_policy_proto_msgTypes[53] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4802,7 +4858,7 @@ func (x *DateFilter) String() string { func (*DateFilter) ProtoMessage() {} func (x *DateFilter) ProtoReflect() protoreflect.Message { - mi := &file_cnspec_policy_proto_msgTypes[52] + mi := &file_cnspec_policy_proto_msgTypes[53] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4815,7 +4871,7 @@ func (x *DateFilter) ProtoReflect() protoreflect.Message { // Deprecated: Use DateFilter.ProtoReflect.Descriptor instead. func (*DateFilter) Descriptor() ([]byte, []int) { - return file_cnspec_policy_proto_rawDescGZIP(), []int{52} + return file_cnspec_policy_proto_rawDescGZIP(), []int{53} } func (x *DateFilter) GetTimestamp() string { @@ -4851,7 +4907,7 @@ type PurgeAssetsConfirmation struct { func (x *PurgeAssetsConfirmation) Reset() { *x = PurgeAssetsConfirmation{} if protoimpl.UnsafeEnabled { - mi := &file_cnspec_policy_proto_msgTypes[53] + mi := &file_cnspec_policy_proto_msgTypes[54] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4864,7 +4920,7 @@ func (x *PurgeAssetsConfirmation) String() string { func (*PurgeAssetsConfirmation) ProtoMessage() {} func (x *PurgeAssetsConfirmation) ProtoReflect() protoreflect.Message { - mi := &file_cnspec_policy_proto_msgTypes[53] + mi := &file_cnspec_policy_proto_msgTypes[54] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4877,7 +4933,7 @@ func (x *PurgeAssetsConfirmation) ProtoReflect() protoreflect.Message { // Deprecated: Use PurgeAssetsConfirmation.ProtoReflect.Descriptor instead. func (*PurgeAssetsConfirmation) Descriptor() ([]byte, []int) { - return file_cnspec_policy_proto_rawDescGZIP(), []int{53} + return file_cnspec_policy_proto_rawDescGZIP(), []int{54} } func (x *PurgeAssetsConfirmation) GetAssetMrns() []string { @@ -5628,338 +5684,346 @@ var file_cnspec_policy_proto_rawDesc = []byte{ 0x72, 0x12, 0x18, 0x0a, 0x07, 0x75, 0x6e, 0x72, 0x61, 0x74, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x75, 0x6e, 0x72, 0x61, 0x74, 0x65, 0x64, 0x22, 0x07, 0x0a, 0x05, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x17, 0x0a, 0x03, 0x4d, 0x72, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x6d, - 0x72, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x72, 0x6e, 0x22, 0x3a, 0x0a, - 0x08, 0x4d, 0x71, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 0x12, 0x2e, 0x0a, 0x05, 0x69, 0x74, 0x65, - 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6e, 0x71, 0x75, 0x65, - 0x72, 0x79, 0x2e, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x2e, 0x4d, 0x71, 0x75, 0x65, - 0x72, 0x79, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x3a, 0x0a, 0x07, 0x4c, 0x69, 0x73, - 0x74, 0x52, 0x65, 0x71, 0x12, 0x1b, 0x0a, 0x09, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x5f, 0x6d, 0x72, - 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x4d, 0x72, - 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x90, 0x01, 0x0a, 0x12, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, - 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, - 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, - 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x18, 0x0a, 0x07, - 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, - 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x12, 0x16, 0x0a, 0x06, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, - 0x52, 0x06, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x22, 0x1a, 0x0a, 0x04, 0x55, 0x52, 0x4c, 0x73, - 0x12, 0x12, 0x0a, 0x04, 0x75, 0x72, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, - 0x75, 0x72, 0x6c, 0x73, 0x22, 0xa9, 0x01, 0x0a, 0x10, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x41, - 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x61, 0x73, 0x73, - 0x65, 0x74, 0x5f, 0x6d, 0x72, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x61, 0x73, - 0x73, 0x65, 0x74, 0x4d, 0x72, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, - 0x5f, 0x6d, 0x72, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6f, 0x6c, - 0x69, 0x63, 0x79, 0x4d, 0x72, 0x6e, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, - 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x6d, 0x72, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x0d, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x77, 0x6f, 0x72, 0x6b, 0x4d, 0x72, 0x6e, 0x73, 0x12, 0x30, + 0x72, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x72, 0x6e, 0x22, 0x37, 0x0a, + 0x09, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x72, + 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x72, 0x6e, 0x12, 0x18, 0x0a, 0x07, + 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x6d, + 0x69, 0x6e, 0x69, 0x6d, 0x61, 0x6c, 0x22, 0x3a, 0x0a, 0x08, 0x4d, 0x71, 0x75, 0x65, 0x72, 0x69, + 0x65, 0x73, 0x12, 0x2e, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x65, 0x78, 0x70, 0x6c, + 0x6f, 0x72, 0x65, 0x72, 0x2e, 0x4d, 0x71, 0x75, 0x65, 0x72, 0x79, 0x52, 0x05, 0x69, 0x74, 0x65, + 0x6d, 0x73, 0x22, 0x3a, 0x0a, 0x07, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x1b, 0x0a, + 0x09, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x5f, 0x6d, 0x72, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x4d, 0x72, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x90, + 0x01, 0x0a, 0x12, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, + 0x65, 0x73, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x12, + 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x61, 0x6d, + 0x69, 0x6c, 0x79, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x66, 0x61, 0x6d, 0x69, 0x6c, + 0x79, 0x22, 0x1a, 0x0a, 0x04, 0x55, 0x52, 0x4c, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x72, 0x6c, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x75, 0x72, 0x6c, 0x73, 0x22, 0xa9, 0x01, + 0x0a, 0x10, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x6d, 0x72, 0x6e, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x61, 0x73, 0x73, 0x65, 0x74, 0x4d, 0x72, 0x6e, 0x12, + 0x1f, 0x0a, 0x0b, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x6d, 0x72, 0x6e, 0x73, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4d, 0x72, 0x6e, 0x73, + 0x12, 0x25, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x6d, 0x72, + 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x77, + 0x6f, 0x72, 0x6b, 0x4d, 0x72, 0x6e, 0x73, 0x12, 0x30, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x63, 0x6e, 0x71, 0x75, 0x65, 0x72, + 0x79, 0x2e, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xa4, 0x02, 0x0a, 0x13, 0x50, 0x6f, + 0x6c, 0x69, 0x63, 0x79, 0x4d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x6c, 0x74, + 0x61, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x6d, 0x72, 0x6e, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4d, 0x72, 0x6e, + 0x12, 0x5c, 0x0a, 0x0d, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x64, 0x65, 0x6c, 0x74, 0x61, + 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x63, 0x6e, 0x73, 0x70, 0x65, 0x63, + 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, + 0x79, 0x4d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x2e, 0x50, + 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x0c, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x73, 0x12, 0x30, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x63, 0x6e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x22, 0xa4, 0x02, 0x0a, 0x13, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4d, 0x75, 0x74, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x6f, 0x6c, 0x69, - 0x63, 0x79, 0x5f, 0x6d, 0x72, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x6f, - 0x6c, 0x69, 0x63, 0x79, 0x4d, 0x72, 0x6e, 0x12, 0x5c, 0x0a, 0x0d, 0x70, 0x6f, 0x6c, 0x69, 0x63, - 0x79, 0x5f, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, - 0x2e, 0x63, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x76, - 0x31, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x44, 0x65, 0x6c, 0x74, 0x61, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x44, 0x65, 0x6c, 0x74, - 0x61, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x44, - 0x65, 0x6c, 0x74, 0x61, 0x73, 0x12, 0x30, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x63, 0x6e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, - 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x5e, 0x0a, 0x11, 0x50, 0x6f, 0x6c, 0x69, 0x63, - 0x79, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, - 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x33, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, - 0x63, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x76, 0x31, - 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x52, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xb1, 0x01, 0x0a, 0x0b, 0x50, 0x6f, 0x6c, 0x69, - 0x63, 0x79, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x6f, 0x6c, 0x69, 0x63, - 0x79, 0x5f, 0x6d, 0x72, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x6f, 0x6c, - 0x69, 0x63, 0x79, 0x4d, 0x72, 0x6e, 0x12, 0x50, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x38, 0x2e, 0x63, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x2e, + 0x1a, 0x5e, 0x0a, 0x11, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x73, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x33, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, - 0x44, 0x65, 0x6c, 0x74, 0x61, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x41, 0x73, 0x73, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, - 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x31, 0x0a, 0x1a, 0x50, 0x6f, 0x6c, 0x69, - 0x63, 0x79, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x44, 0x44, 0x10, 0x00, 0x12, - 0x0a, 0x0a, 0x06, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x10, 0x01, 0x22, 0x6a, 0x0a, 0x0a, 0x52, - 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x52, 0x65, 0x71, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x6f, 0x6c, - 0x69, 0x63, 0x79, 0x5f, 0x6d, 0x72, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, - 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4d, 0x72, 0x6e, 0x12, 0x3d, 0x0a, 0x0d, 0x61, 0x73, 0x73, 0x65, - 0x74, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x18, 0x2e, 0x63, 0x6e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, - 0x65, 0x72, 0x2e, 0x4d, 0x71, 0x75, 0x65, 0x72, 0x79, 0x52, 0x0c, 0x61, 0x73, 0x73, 0x65, 0x74, - 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x22, 0x70, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x12, 0x1b, 0x0a, - 0x09, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x6d, 0x72, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x61, 0x73, 0x73, 0x65, 0x74, 0x4d, 0x72, 0x6e, 0x12, 0x3d, 0x0a, 0x0d, 0x61, 0x73, - 0x73, 0x65, 0x74, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x65, 0x78, 0x70, 0x6c, - 0x6f, 0x72, 0x65, 0x72, 0x2e, 0x4d, 0x71, 0x75, 0x65, 0x72, 0x79, 0x52, 0x0c, 0x61, 0x73, 0x73, - 0x65, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x22, 0xf6, 0x02, 0x0a, 0x0f, 0x53, 0x74, - 0x6f, 0x72, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x52, 0x65, 0x71, 0x12, 0x1b, 0x0a, - 0x09, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x6d, 0x72, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x61, 0x73, 0x73, 0x65, 0x74, 0x4d, 0x72, 0x6e, 0x12, 0x2f, 0x0a, 0x06, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x6e, 0x73, - 0x70, 0x65, 0x63, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x63, - 0x6f, 0x72, 0x65, 0x52, 0x06, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x12, 0x3f, 0x0a, 0x04, 0x64, - 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x63, 0x6e, 0x73, 0x70, - 0x65, 0x63, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x6f, - 0x72, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x52, 0x65, 0x71, 0x2e, 0x44, 0x61, 0x74, - 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x36, 0x0a, 0x0a, - 0x63, 0x76, 0x73, 0x73, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x18, 0x14, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x16, 0x2e, 0x63, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, - 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x76, 0x73, 0x73, 0x52, 0x0a, 0x63, 0x76, 0x73, 0x73, 0x53, 0x63, - 0x6f, 0x72, 0x65, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x69, 0x73, 0x5f, 0x70, 0x72, 0x65, 0x70, 0x72, - 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x64, 0x18, 0x15, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x69, - 0x73, 0x50, 0x72, 0x65, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x64, 0x12, 0x25, 0x0a, - 0x0e, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x18, - 0x16, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x73, 0x1a, 0x4c, 0x0a, 0x09, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x6b, 0x65, 0x79, 0x12, 0x29, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x63, 0x6e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x6c, 0x6c, 0x78, - 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, - 0x38, 0x01, 0x22, 0x4c, 0x0a, 0x0e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x53, 0x63, 0x6f, 0x72, - 0x65, 0x52, 0x65, 0x71, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x6d, - 0x72, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, - 0x4d, 0x72, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x5f, 0x6d, 0x72, 0x6e, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x72, 0x6e, - 0x22, 0x64, 0x0a, 0x14, 0x53, 0x79, 0x6e, 0x63, 0x68, 0x72, 0x6f, 0x6e, 0x69, 0x7a, 0x65, 0x41, - 0x73, 0x73, 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x70, 0x61, 0x63, - 0x65, 0x5f, 0x6d, 0x72, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x70, 0x61, - 0x63, 0x65, 0x4d, 0x72, 0x6e, 0x12, 0x2f, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x6e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x70, 0x72, - 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x73, 0x73, 0x65, 0x74, - 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x22, 0x93, 0x01, 0x0a, 0x20, 0x53, 0x79, 0x6e, 0x63, 0x68, - 0x72, 0x6f, 0x6e, 0x69, 0x7a, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x41, 0x73, 0x73, 0x65, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x21, 0x0a, 0x0c, 0x70, - 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x5f, 0x6d, 0x72, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x4d, 0x72, 0x6e, 0x12, 0x1b, - 0x0a, 0x09, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x6d, 0x72, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x61, 0x73, 0x73, 0x65, 0x74, 0x4d, 0x72, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x75, - 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x1d, 0x0a, - 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x22, 0xd7, 0x01, 0x0a, - 0x15, 0x53, 0x79, 0x6e, 0x63, 0x68, 0x72, 0x6f, 0x6e, 0x69, 0x7a, 0x65, 0x41, 0x73, 0x73, 0x65, - 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4e, 0x0a, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, - 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x63, 0x6e, 0x73, 0x70, 0x65, 0x63, - 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x68, - 0x72, 0x6f, 0x6e, 0x69, 0x7a, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x2e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x64, - 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x1a, 0x6e, 0x0a, 0x0c, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, - 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x48, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x63, 0x6e, 0x73, 0x70, 0x65, 0x63, - 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x68, - 0x72, 0x6f, 0x6e, 0x69, 0x7a, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x41, 0x73, 0x73, 0x65, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xfa, 0x02, 0x0a, 0x12, 0x50, 0x75, 0x72, 0x67, 0x65, - 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, - 0x08, 0x73, 0x70, 0x61, 0x63, 0x65, 0x4d, 0x72, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x73, 0x70, 0x61, 0x63, 0x65, 0x4d, 0x72, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x73, 0x73, - 0x65, 0x74, 0x5f, 0x6d, 0x72, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x61, - 0x73, 0x73, 0x65, 0x74, 0x4d, 0x72, 0x6e, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x75, 0x72, 0x67, - 0x65, 0x5f, 0x61, 0x6c, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x70, 0x75, 0x72, - 0x67, 0x65, 0x41, 0x6c, 0x6c, 0x12, 0x3d, 0x0a, 0x0b, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x66, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x6e, 0x73, - 0x70, 0x65, 0x63, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, - 0x74, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x0a, 0x64, 0x61, 0x74, 0x65, 0x46, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x5f, - 0x62, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, - 0x64, 0x42, 0x79, 0x12, 0x29, 0x0a, 0x10, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x5f, - 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, - 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x48, - 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, - 0x2e, 0x63, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x76, - 0x31, 0x2e, 0x50, 0x75, 0x72, 0x67, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, - 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, - 0x02, 0x38, 0x01, 0x22, 0xa1, 0x01, 0x0a, 0x0a, 0x44, 0x61, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x12, 0x3c, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x69, 0x73, 0x6f, 0x6e, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x63, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x2e, 0x70, 0x6f, - 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x69, 0x73, - 0x6f, 0x6e, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x69, 0x73, 0x6f, 0x6e, 0x12, 0x37, - 0x0a, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, - 0x63, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x76, 0x31, - 0x2e, 0x44, 0x61, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x46, 0x69, 0x65, 0x6c, 0x64, - 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x22, 0xc2, 0x01, 0x0a, 0x17, 0x50, 0x75, 0x72, 0x67, - 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x6d, 0x72, 0x6e, - 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x61, 0x73, 0x73, 0x65, 0x74, 0x4d, 0x72, - 0x6e, 0x73, 0x12, 0x4d, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x63, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x2e, 0x70, 0x6f, 0x6c, 0x69, - 0x63, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x75, 0x72, 0x67, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, - 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x45, 0x72, - 0x72, 0x6f, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, - 0x73, 0x1a, 0x39, 0x0a, 0x0b, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x44, 0x65, 0x6c, 0x74, 0x61, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, + 0x22, 0xb1, 0x01, 0x0a, 0x0b, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x44, 0x65, 0x6c, 0x74, 0x61, + 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x6d, 0x72, 0x6e, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4d, 0x72, 0x6e, 0x12, + 0x50, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x38, 0x2e, 0x63, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, + 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x2e, 0x50, + 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x41, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x22, 0x31, 0x0a, 0x1a, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x41, 0x73, 0x73, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x07, 0x0a, 0x03, 0x41, 0x44, 0x44, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x44, 0x45, 0x4c, 0x45, + 0x54, 0x45, 0x10, 0x01, 0x22, 0x6a, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x52, + 0x65, 0x71, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x6d, 0x72, 0x6e, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4d, 0x72, + 0x6e, 0x12, 0x3d, 0x0a, 0x0d, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6e, 0x71, 0x75, 0x65, + 0x72, 0x79, 0x2e, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x2e, 0x4d, 0x71, 0x75, 0x65, + 0x72, 0x79, 0x52, 0x0c, 0x61, 0x73, 0x73, 0x65, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, + 0x22, 0x70, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x4a, + 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x12, 0x1b, 0x0a, 0x09, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, + 0x6d, 0x72, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x61, 0x73, 0x73, 0x65, 0x74, + 0x4d, 0x72, 0x6e, 0x12, 0x3d, 0x0a, 0x0d, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6e, 0x71, + 0x75, 0x65, 0x72, 0x79, 0x2e, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x2e, 0x4d, 0x71, + 0x75, 0x65, 0x72, 0x79, 0x52, 0x0c, 0x61, 0x73, 0x73, 0x65, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x73, 0x22, 0xf6, 0x02, 0x0a, 0x0f, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x73, 0x75, + 0x6c, 0x74, 0x73, 0x52, 0x65, 0x71, 0x12, 0x1b, 0x0a, 0x09, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, + 0x6d, 0x72, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x61, 0x73, 0x73, 0x65, 0x74, + 0x4d, 0x72, 0x6e, 0x12, 0x2f, 0x0a, 0x06, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x2e, 0x70, 0x6f, 0x6c, + 0x69, 0x63, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x06, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x73, 0x12, 0x3f, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x63, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x2e, 0x70, 0x6f, 0x6c, 0x69, + 0x63, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, + 0x74, 0x73, 0x52, 0x65, 0x71, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, + 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x36, 0x0a, 0x0a, 0x63, 0x76, 0x73, 0x73, 0x53, 0x63, 0x6f, + 0x72, 0x65, 0x73, 0x18, 0x14, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x76, 0x73, + 0x73, 0x52, 0x0a, 0x63, 0x76, 0x73, 0x73, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x12, 0x27, 0x0a, + 0x0f, 0x69, 0x73, 0x5f, 0x70, 0x72, 0x65, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x64, + 0x18, 0x15, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x69, 0x73, 0x50, 0x72, 0x65, 0x70, 0x72, 0x6f, + 0x63, 0x65, 0x73, 0x73, 0x65, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x79, + 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x18, 0x16, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, + 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x1a, 0x4c, 0x0a, + 0x09, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, + 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x29, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x63, 0x6e, + 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x6c, 0x6c, 0x78, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x4c, 0x0a, 0x0e, 0x45, + 0x6e, 0x74, 0x69, 0x74, 0x79, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x71, 0x12, 0x1d, 0x0a, + 0x0a, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x6d, 0x72, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x4d, 0x72, 0x6e, 0x12, 0x1b, 0x0a, 0x09, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x5f, 0x6d, 0x72, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x72, 0x6e, 0x22, 0x64, 0x0a, 0x14, 0x53, 0x79, 0x6e, + 0x63, 0x68, 0x72, 0x6f, 0x6e, 0x69, 0x7a, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x52, 0x65, + 0x71, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x6d, 0x72, 0x6e, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x70, 0x61, 0x63, 0x65, 0x4d, 0x72, 0x6e, 0x12, 0x2f, + 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, + 0x6e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, + 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x73, 0x73, 0x65, 0x74, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x22, + 0x93, 0x01, 0x0a, 0x20, 0x53, 0x79, 0x6e, 0x63, 0x68, 0x72, 0x6f, 0x6e, 0x69, 0x7a, 0x65, 0x41, + 0x73, 0x73, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x41, 0x73, 0x73, 0x65, 0x74, 0x44, 0x65, + 0x74, 0x61, 0x69, 0x6c, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, + 0x5f, 0x6d, 0x72, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x4d, 0x72, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x61, 0x73, 0x73, 0x65, 0x74, + 0x5f, 0x6d, 0x72, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x61, 0x73, 0x73, 0x65, + 0x74, 0x4d, 0x72, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x49, 0x64, 0x22, 0xd7, 0x01, 0x0a, 0x15, 0x53, 0x79, 0x6e, 0x63, 0x68, 0x72, + 0x6f, 0x6e, 0x69, 0x7a, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x4e, 0x0a, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x34, 0x2e, 0x63, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, + 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x68, 0x72, 0x6f, 0x6e, 0x69, 0x7a, 0x65, 0x41, + 0x73, 0x73, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, + 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x1a, + 0x6e, 0x0a, 0x0c, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, + 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, + 0x79, 0x12, 0x48, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x32, 0x2e, 0x63, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, + 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x68, 0x72, 0x6f, 0x6e, 0x69, 0x7a, 0x65, 0x41, + 0x73, 0x73, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x41, 0x73, 0x73, 0x65, 0x74, 0x44, 0x65, + 0x74, 0x61, 0x69, 0x6c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, + 0xfa, 0x02, 0x0a, 0x12, 0x50, 0x75, 0x72, 0x67, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x70, 0x61, 0x63, 0x65, 0x4d, + 0x72, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x70, 0x61, 0x63, 0x65, 0x4d, + 0x72, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x6d, 0x72, 0x6e, 0x73, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x61, 0x73, 0x73, 0x65, 0x74, 0x4d, 0x72, 0x6e, + 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x75, 0x72, 0x67, 0x65, 0x5f, 0x61, 0x6c, 0x6c, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x70, 0x75, 0x72, 0x67, 0x65, 0x41, 0x6c, 0x6c, 0x12, 0x3d, + 0x0a, 0x0b, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x2e, 0x70, 0x6f, 0x6c, + 0x69, 0x63, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x52, 0x0a, 0x64, 0x61, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x1d, 0x0a, + 0x0a, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x42, 0x79, 0x12, 0x29, 0x0a, 0x10, + 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x5f, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, + 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x48, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, + 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x63, 0x6e, 0x73, 0x70, 0x65, 0x63, + 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x75, 0x72, 0x67, 0x65, + 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4c, 0x61, + 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, + 0x73, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x2a, 0x6f, 0x0a, 0x09, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x11, 0x0a, 0x0d, 0x55, 0x4e, 0x43, - 0x41, 0x54, 0x45, 0x47, 0x4f, 0x52, 0x49, 0x5a, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, - 0x43, 0x48, 0x41, 0x50, 0x54, 0x45, 0x52, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x49, 0x4d, 0x50, - 0x4f, 0x52, 0x54, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x4f, 0x56, 0x45, 0x52, 0x52, 0x49, 0x44, - 0x45, 0x10, 0x03, 0x12, 0x0b, 0x0a, 0x07, 0x49, 0x47, 0x4e, 0x4f, 0x52, 0x45, 0x44, 0x10, 0x04, - 0x12, 0x0b, 0x0a, 0x07, 0x44, 0x49, 0x53, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x05, 0x12, 0x0e, 0x0a, - 0x0a, 0x50, 0x52, 0x4f, 0x50, 0x45, 0x52, 0x54, 0x49, 0x45, 0x53, 0x10, 0x06, 0x2a, 0x48, 0x0a, - 0x0b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0f, 0x0a, 0x0b, - 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0a, 0x0a, - 0x06, 0x4d, 0x4f, 0x44, 0x49, 0x46, 0x59, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x44, 0x45, 0x41, - 0x43, 0x54, 0x49, 0x56, 0x41, 0x54, 0x45, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x41, 0x43, 0x54, - 0x49, 0x56, 0x41, 0x54, 0x45, 0x10, 0x03, 0x2a, 0x3c, 0x0a, 0x0c, 0x52, 0x65, 0x76, 0x69, 0x65, - 0x77, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x10, 0x0a, 0x0c, 0x4e, 0x4f, 0x54, 0x5f, 0x52, - 0x45, 0x56, 0x49, 0x45, 0x57, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x41, 0x50, 0x50, - 0x52, 0x4f, 0x56, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x52, 0x45, 0x4a, 0x45, 0x43, - 0x54, 0x45, 0x44, 0x10, 0x02, 0x2a, 0xb3, 0x01, 0x0a, 0x0b, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, - 0x61, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x0b, 0x0a, 0x07, 0x75, 0x6e, 0x72, 0x61, 0x74, 0x65, 0x64, - 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x61, 0x50, 0x6c, 0x75, 0x73, 0x10, 0x01, 0x12, 0x05, 0x0a, - 0x01, 0x61, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x61, 0x4d, 0x69, 0x6e, 0x75, 0x73, 0x10, 0x03, - 0x12, 0x09, 0x0a, 0x05, 0x62, 0x50, 0x6c, 0x75, 0x73, 0x10, 0x04, 0x12, 0x05, 0x0a, 0x01, 0x62, - 0x10, 0x05, 0x12, 0x0a, 0x0a, 0x06, 0x62, 0x4d, 0x69, 0x6e, 0x75, 0x73, 0x10, 0x06, 0x12, 0x09, - 0x0a, 0x05, 0x63, 0x50, 0x6c, 0x75, 0x73, 0x10, 0x07, 0x12, 0x05, 0x0a, 0x01, 0x63, 0x10, 0x08, - 0x12, 0x0a, 0x0a, 0x06, 0x63, 0x4d, 0x69, 0x6e, 0x75, 0x73, 0x10, 0x09, 0x12, 0x09, 0x0a, 0x05, - 0x64, 0x50, 0x6c, 0x75, 0x73, 0x10, 0x0a, 0x12, 0x05, 0x0a, 0x01, 0x64, 0x10, 0x0b, 0x12, 0x0a, - 0x0a, 0x06, 0x64, 0x4d, 0x69, 0x6e, 0x75, 0x73, 0x10, 0x0c, 0x12, 0x0a, 0x0a, 0x06, 0x66, 0x61, - 0x69, 0x6c, 0x65, 0x64, 0x10, 0x0d, 0x12, 0x09, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x10, - 0x0e, 0x12, 0x08, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x10, 0x0f, 0x2a, 0x2d, 0x0a, 0x0a, 0x43, - 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x69, 0x73, 0x6f, 0x6e, 0x12, 0x10, 0x0a, 0x0c, 0x47, 0x52, 0x45, - 0x41, 0x54, 0x45, 0x52, 0x5f, 0x54, 0x48, 0x41, 0x4e, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4c, - 0x45, 0x53, 0x53, 0x5f, 0x54, 0x48, 0x41, 0x4e, 0x10, 0x01, 0x2a, 0x3e, 0x0a, 0x0f, 0x44, 0x61, - 0x74, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x17, 0x0a, - 0x13, 0x46, 0x49, 0x4c, 0x54, 0x45, 0x52, 0x5f, 0x4c, 0x41, 0x53, 0x54, 0x5f, 0x55, 0x50, 0x44, - 0x41, 0x54, 0x45, 0x44, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x46, 0x49, 0x4c, 0x54, 0x45, 0x52, - 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x44, 0x10, 0x01, 0x32, 0x8b, 0x06, 0x0a, 0x09, 0x50, - 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x48, 0x75, 0x62, 0x12, 0x40, 0x0a, 0x09, 0x53, 0x65, 0x74, 0x42, + 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xa1, 0x01, 0x0a, + 0x0a, 0x44, 0x61, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x74, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x3c, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, + 0x70, 0x61, 0x72, 0x69, 0x73, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, + 0x63, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x76, 0x31, + 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x69, 0x73, 0x6f, 0x6e, 0x52, 0x0a, 0x63, 0x6f, 0x6d, + 0x70, 0x61, 0x72, 0x69, 0x73, 0x6f, 0x6e, 0x12, 0x37, 0x0a, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x63, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x2e, + 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x65, 0x46, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x22, 0xc2, 0x01, 0x0a, 0x17, 0x50, 0x75, 0x72, 0x67, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, + 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x6d, 0x72, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x09, 0x61, 0x73, 0x73, 0x65, 0x74, 0x4d, 0x72, 0x6e, 0x73, 0x12, 0x4d, 0x0a, 0x06, 0x65, + 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x63, 0x6e, + 0x73, 0x70, 0x65, 0x63, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x50, + 0x75, 0x72, 0x67, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, + 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x1a, 0x39, 0x0a, 0x0b, 0x45, 0x72, + 0x72, 0x6f, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x3a, 0x02, 0x38, 0x01, 0x2a, 0x6f, 0x0a, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x11, 0x0a, 0x0d, 0x55, 0x4e, 0x43, 0x41, 0x54, 0x45, 0x47, 0x4f, 0x52, 0x49, + 0x5a, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x43, 0x48, 0x41, 0x50, 0x54, 0x45, 0x52, + 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x49, 0x4d, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x02, 0x12, 0x0c, + 0x0a, 0x08, 0x4f, 0x56, 0x45, 0x52, 0x52, 0x49, 0x44, 0x45, 0x10, 0x03, 0x12, 0x0b, 0x0a, 0x07, + 0x49, 0x47, 0x4e, 0x4f, 0x52, 0x45, 0x44, 0x10, 0x04, 0x12, 0x0b, 0x0a, 0x07, 0x44, 0x49, 0x53, + 0x41, 0x42, 0x4c, 0x45, 0x10, 0x05, 0x12, 0x0e, 0x0a, 0x0a, 0x50, 0x52, 0x4f, 0x50, 0x45, 0x52, + 0x54, 0x49, 0x45, 0x53, 0x10, 0x06, 0x2a, 0x48, 0x0a, 0x0b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, + 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x4d, 0x4f, 0x44, 0x49, 0x46, 0x59, + 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x44, 0x45, 0x41, 0x43, 0x54, 0x49, 0x56, 0x41, 0x54, 0x45, + 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x41, 0x43, 0x54, 0x49, 0x56, 0x41, 0x54, 0x45, 0x10, 0x03, + 0x2a, 0x3c, 0x0a, 0x0c, 0x52, 0x65, 0x76, 0x69, 0x65, 0x77, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x12, 0x10, 0x0a, 0x0c, 0x4e, 0x4f, 0x54, 0x5f, 0x52, 0x45, 0x56, 0x49, 0x45, 0x57, 0x45, 0x44, + 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x41, 0x50, 0x50, 0x52, 0x4f, 0x56, 0x45, 0x44, 0x10, 0x01, + 0x12, 0x0c, 0x0a, 0x08, 0x52, 0x45, 0x4a, 0x45, 0x43, 0x54, 0x45, 0x44, 0x10, 0x02, 0x2a, 0xb3, + 0x01, 0x0a, 0x0b, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x0b, + 0x0a, 0x07, 0x75, 0x6e, 0x72, 0x61, 0x74, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x61, + 0x50, 0x6c, 0x75, 0x73, 0x10, 0x01, 0x12, 0x05, 0x0a, 0x01, 0x61, 0x10, 0x02, 0x12, 0x0a, 0x0a, + 0x06, 0x61, 0x4d, 0x69, 0x6e, 0x75, 0x73, 0x10, 0x03, 0x12, 0x09, 0x0a, 0x05, 0x62, 0x50, 0x6c, + 0x75, 0x73, 0x10, 0x04, 0x12, 0x05, 0x0a, 0x01, 0x62, 0x10, 0x05, 0x12, 0x0a, 0x0a, 0x06, 0x62, + 0x4d, 0x69, 0x6e, 0x75, 0x73, 0x10, 0x06, 0x12, 0x09, 0x0a, 0x05, 0x63, 0x50, 0x6c, 0x75, 0x73, + 0x10, 0x07, 0x12, 0x05, 0x0a, 0x01, 0x63, 0x10, 0x08, 0x12, 0x0a, 0x0a, 0x06, 0x63, 0x4d, 0x69, + 0x6e, 0x75, 0x73, 0x10, 0x09, 0x12, 0x09, 0x0a, 0x05, 0x64, 0x50, 0x6c, 0x75, 0x73, 0x10, 0x0a, + 0x12, 0x05, 0x0a, 0x01, 0x64, 0x10, 0x0b, 0x12, 0x0a, 0x0a, 0x06, 0x64, 0x4d, 0x69, 0x6e, 0x75, + 0x73, 0x10, 0x0c, 0x12, 0x0a, 0x0a, 0x06, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x10, 0x0d, 0x12, + 0x09, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x0e, 0x12, 0x08, 0x0a, 0x04, 0x73, 0x6b, + 0x69, 0x70, 0x10, 0x0f, 0x2a, 0x2d, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x69, 0x73, + 0x6f, 0x6e, 0x12, 0x10, 0x0a, 0x0c, 0x47, 0x52, 0x45, 0x41, 0x54, 0x45, 0x52, 0x5f, 0x54, 0x48, + 0x41, 0x4e, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4c, 0x45, 0x53, 0x53, 0x5f, 0x54, 0x48, 0x41, + 0x4e, 0x10, 0x01, 0x2a, 0x3e, 0x0a, 0x0f, 0x44, 0x61, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x17, 0x0a, 0x13, 0x46, 0x49, 0x4c, 0x54, 0x45, 0x52, + 0x5f, 0x4c, 0x41, 0x53, 0x54, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x44, 0x10, 0x00, 0x12, + 0x12, 0x0a, 0x0e, 0x46, 0x49, 0x4c, 0x54, 0x45, 0x52, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, + 0x44, 0x10, 0x01, 0x32, 0xd6, 0x06, 0x0a, 0x09, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x48, 0x75, + 0x62, 0x12, 0x40, 0x0a, 0x09, 0x53, 0x65, 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x18, + 0x2e, 0x63, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x76, + 0x31, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x1a, 0x17, 0x2e, 0x63, 0x6e, 0x73, 0x70, 0x65, + 0x63, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6d, 0x70, 0x74, + 0x79, 0x22, 0x00, 0x12, 0x45, 0x0a, 0x0e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x18, 0x2e, 0x63, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x1a, 0x17, 0x2e, 0x63, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, - 0x76, 0x31, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x45, 0x0a, 0x0e, 0x56, 0x61, - 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x18, 0x2e, 0x63, - 0x6e, 0x73, 0x70, 0x65, 0x63, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x76, 0x31, 0x2e, - 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x1a, 0x17, 0x2e, 0x63, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x2e, - 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, - 0x00, 0x12, 0x3e, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x15, - 0x2e, 0x63, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x76, - 0x31, 0x2e, 0x4d, 0x72, 0x6e, 0x1a, 0x18, 0x2e, 0x63, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x2e, 0x70, - 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x22, - 0x00, 0x12, 0x3e, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x15, - 0x2e, 0x63, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x76, - 0x31, 0x2e, 0x4d, 0x72, 0x6e, 0x1a, 0x18, 0x2e, 0x63, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x2e, 0x70, - 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, - 0x00, 0x12, 0x40, 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, - 0x79, 0x12, 0x15, 0x2e, 0x63, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, - 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x72, 0x6e, 0x1a, 0x17, 0x2e, 0x63, 0x6e, 0x73, 0x70, 0x65, - 0x63, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6d, 0x70, 0x74, - 0x79, 0x22, 0x00, 0x12, 0x47, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, - 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x12, 0x15, 0x2e, 0x63, 0x6e, 0x73, 0x70, 0x65, 0x63, - 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x72, 0x6e, 0x1a, 0x1a, + 0x76, 0x31, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x41, 0x0a, 0x09, 0x47, 0x65, + 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x15, 0x2e, 0x63, 0x6e, 0x73, 0x70, 0x65, 0x63, + 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x72, 0x6e, 0x1a, 0x18, 0x2e, 0x63, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x76, - 0x31, 0x2e, 0x4d, 0x71, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x04, - 0x4c, 0x69, 0x73, 0x74, 0x12, 0x19, 0x2e, 0x63, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x2e, 0x70, 0x6f, - 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, - 0x1a, 0x2e, 0x63, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, - 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x22, 0x00, 0x12, 0x51, 0x0a, - 0x0f, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, - 0x12, 0x24, 0x2e, 0x63, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, - 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, - 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x63, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x2e, - 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x52, 0x4c, 0x73, 0x22, 0x00, - 0x12, 0x44, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x77, 0x6f, 0x72, 0x6b, - 0x12, 0x15, 0x2e, 0x63, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, - 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x72, 0x6e, 0x1a, 0x1b, 0x2e, 0x63, 0x6e, 0x73, 0x70, 0x65, 0x63, - 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x72, 0x61, 0x6d, 0x65, - 0x77, 0x6f, 0x72, 0x6b, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x0f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x46, 0x72, 0x61, 0x6d, 0x65, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x15, 0x2e, 0x63, 0x6e, 0x73, 0x70, - 0x65, 0x63, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x72, 0x6e, - 0x1a, 0x17, 0x2e, 0x63, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, - 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x4b, 0x0a, 0x0e, 0x4c, - 0x69, 0x73, 0x74, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x12, 0x19, 0x2e, + 0x31, 0x2e, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x22, 0x03, 0x88, 0x02, 0x01, 0x12, 0x46, 0x0a, + 0x0b, 0x47, 0x65, 0x74, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x56, 0x32, 0x12, 0x1b, 0x2e, 0x63, + 0x6e, 0x73, 0x70, 0x65, 0x63, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x76, 0x31, 0x2e, + 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x63, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x22, 0x00, 0x12, 0x3e, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x6c, 0x69, + 0x63, 0x79, 0x12, 0x15, 0x2e, 0x63, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x2e, 0x70, 0x6f, 0x6c, 0x69, + 0x63, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x72, 0x6e, 0x1a, 0x18, 0x2e, 0x63, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x6c, + 0x69, 0x63, 0x79, 0x22, 0x00, 0x12, 0x40, 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, + 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x15, 0x2e, 0x63, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x2e, 0x70, + 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x72, 0x6e, 0x1a, 0x17, 0x2e, 0x63, + 0x6e, 0x73, 0x70, 0x65, 0x63, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x76, 0x31, 0x2e, + 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x47, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x50, 0x6f, + 0x6c, 0x69, 0x63, 0x79, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x12, 0x15, 0x2e, 0x63, 0x6e, + 0x73, 0x70, 0x65, 0x63, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4d, + 0x72, 0x6e, 0x1a, 0x1a, 0x2e, 0x63, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x2e, 0x70, 0x6f, 0x6c, 0x69, + 0x63, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x71, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 0x22, 0x00, + 0x12, 0x3f, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x19, 0x2e, 0x63, 0x6e, 0x73, 0x70, 0x65, + 0x63, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, + 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x63, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x2e, 0x70, 0x6f, 0x6c, + 0x69, 0x63, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x22, + 0x00, 0x12, 0x51, 0x0a, 0x0f, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x50, 0x6f, 0x6c, 0x69, + 0x63, 0x69, 0x65, 0x73, 0x12, 0x24, 0x2e, 0x63, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x2e, 0x70, 0x6f, + 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x50, + 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x63, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x52, + 0x4c, 0x73, 0x22, 0x00, 0x12, 0x44, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x46, 0x72, 0x61, 0x6d, 0x65, + 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x15, 0x2e, 0x63, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x2e, 0x70, 0x6f, + 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x72, 0x6e, 0x1a, 0x1b, 0x2e, 0x63, 0x6e, + 0x73, 0x70, 0x65, 0x63, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x46, + 0x72, 0x61, 0x6d, 0x65, 0x77, 0x6f, 0x72, 0x6b, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x0f, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x15, 0x2e, 0x63, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x76, 0x31, - 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, 0x6e, 0x73, 0x70, 0x65, - 0x63, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x72, 0x61, 0x6d, - 0x65, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x22, 0x00, 0x32, 0xc4, 0x08, 0x0a, 0x0e, 0x50, 0x6f, 0x6c, - 0x69, 0x63, 0x79, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, 0x12, 0x47, 0x0a, 0x06, 0x41, - 0x73, 0x73, 0x69, 0x67, 0x6e, 0x12, 0x22, 0x2e, 0x63, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x2e, 0x70, - 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x41, - 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x1a, 0x17, 0x2e, 0x63, 0x6e, 0x73, 0x70, - 0x65, 0x63, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6d, 0x70, - 0x74, 0x79, 0x22, 0x00, 0x12, 0x49, 0x0a, 0x08, 0x55, 0x6e, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, - 0x12, 0x22, 0x2e, 0x63, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, - 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x1a, 0x17, 0x2e, 0x63, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x2e, 0x70, 0x6f, + 0x2e, 0x4d, 0x72, 0x6e, 0x1a, 0x17, 0x2e, 0x63, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, - 0x41, 0x0a, 0x08, 0x53, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x73, 0x12, 0x1a, 0x2e, 0x63, 0x6e, - 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x2e, 0x50, - 0x72, 0x6f, 0x70, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x63, 0x6e, 0x71, 0x75, 0x65, 0x72, - 0x79, 0x2e, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, - 0x22, 0x00, 0x12, 0x4b, 0x0a, 0x07, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x12, 0x1c, 0x2e, + 0x4b, 0x0a, 0x0e, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x77, 0x6f, 0x72, 0x6b, + 0x73, 0x12, 0x19, 0x2e, 0x63, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, + 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x63, + 0x6e, 0x73, 0x70, 0x65, 0x63, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x76, 0x31, 0x2e, + 0x46, 0x72, 0x61, 0x6d, 0x65, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x22, 0x00, 0x32, 0xc4, 0x08, 0x0a, + 0x0e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, 0x12, + 0x47, 0x0a, 0x06, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x12, 0x22, 0x2e, 0x63, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x6c, + 0x69, 0x63, 0x79, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x1a, 0x17, 0x2e, 0x63, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x76, 0x31, - 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x20, 0x2e, 0x63, 0x6e, - 0x73, 0x70, 0x65, 0x63, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x52, - 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, 0x00, 0x12, - 0x52, 0x0a, 0x0f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x4a, 0x6f, - 0x62, 0x73, 0x12, 0x24, 0x2e, 0x63, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x2e, 0x70, 0x6f, 0x6c, 0x69, - 0x63, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x73, 0x73, 0x65, - 0x74, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x63, 0x6e, 0x73, 0x70, 0x65, + 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x49, 0x0a, 0x08, 0x55, 0x6e, 0x61, 0x73, + 0x73, 0x69, 0x67, 0x6e, 0x12, 0x22, 0x2e, 0x63, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x2e, 0x70, 0x6f, + 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x41, 0x73, + 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x1a, 0x17, 0x2e, 0x63, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6d, 0x70, 0x74, - 0x79, 0x22, 0x00, 0x12, 0x60, 0x0a, 0x14, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x41, 0x6e, - 0x64, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x12, 0x24, 0x2e, 0x63, 0x6e, - 0x73, 0x70, 0x65, 0x63, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, - 0x71, 0x1a, 0x20, 0x2e, 0x63, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, - 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x50, 0x6f, 0x6c, - 0x69, 0x63, 0x79, 0x22, 0x00, 0x12, 0x4e, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x6f, - 0x6c, 0x76, 0x65, 0x64, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x15, 0x2e, 0x63, 0x6e, 0x73, - 0x70, 0x65, 0x63, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x72, - 0x6e, 0x1a, 0x20, 0x2e, 0x63, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, - 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x50, 0x6f, 0x6c, - 0x69, 0x63, 0x79, 0x22, 0x00, 0x12, 0x4c, 0x0a, 0x0c, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x52, 0x65, - 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x21, 0x2e, 0x63, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x2e, 0x70, - 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x52, 0x65, - 0x73, 0x75, 0x6c, 0x74, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x63, 0x6e, 0x73, 0x70, 0x65, - 0x63, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6d, 0x70, 0x74, - 0x79, 0x22, 0x00, 0x12, 0x49, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x12, 0x20, 0x2e, 0x63, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, - 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, - 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x63, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x2e, 0x70, 0x6f, 0x6c, 0x69, - 0x63, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x22, 0x00, 0x12, 0x5b, - 0x0a, 0x12, 0x47, 0x65, 0x74, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, + 0x79, 0x22, 0x00, 0x12, 0x41, 0x0a, 0x08, 0x53, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x73, 0x12, + 0x1a, 0x2e, 0x63, 0x6e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, + 0x65, 0x72, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x63, 0x6e, + 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x72, 0x2e, 0x45, + 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x4b, 0x0a, 0x07, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, + 0x65, 0x12, 0x1c, 0x2e, 0x63, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, + 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x52, 0x65, 0x71, 0x1a, + 0x20, 0x2e, 0x63, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, + 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x50, 0x6f, 0x6c, 0x69, 0x63, + 0x79, 0x22, 0x00, 0x12, 0x52, 0x0a, 0x0f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x73, 0x73, + 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x73, 0x12, 0x24, 0x2e, 0x63, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x2e, + 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x41, 0x73, 0x73, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x63, + 0x6e, 0x73, 0x70, 0x65, 0x63, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x76, 0x31, 0x2e, + 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x60, 0x0a, 0x14, 0x52, 0x65, 0x73, 0x6f, 0x6c, + 0x76, 0x65, 0x41, 0x6e, 0x64, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x12, + 0x24, 0x2e, 0x63, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, + 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x4a, 0x6f, + 0x62, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x20, 0x2e, 0x63, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x2e, 0x70, + 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, + 0x64, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, 0x00, 0x12, 0x4e, 0x0a, 0x11, 0x47, 0x65, 0x74, + 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x15, + 0x2e, 0x63, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x76, + 0x31, 0x2e, 0x4d, 0x72, 0x6e, 0x1a, 0x20, 0x2e, 0x63, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x2e, 0x70, + 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, + 0x64, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, 0x00, 0x12, 0x4c, 0x0a, 0x0c, 0x53, 0x74, 0x6f, + 0x72, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x21, 0x2e, 0x63, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x6f, + 0x72, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x63, + 0x6e, 0x73, 0x70, 0x65, 0x63, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x76, 0x31, 0x2e, + 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x49, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x20, 0x2e, 0x63, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x53, 0x63, - 0x6f, 0x72, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x21, 0x2e, 0x63, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x2e, - 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x77, - 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x22, 0x00, 0x12, 0x48, 0x0a, 0x08, 0x47, - 0x65, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x20, 0x2e, 0x63, 0x6e, 0x73, 0x70, 0x65, 0x63, - 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, - 0x79, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x63, 0x6e, 0x73, 0x70, - 0x65, 0x63, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x22, 0x00, 0x12, 0x66, 0x0a, 0x11, 0x53, 0x79, 0x6e, 0x63, 0x68, 0x72, 0x6f, - 0x6e, 0x69, 0x7a, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x12, 0x26, 0x2e, 0x63, 0x6e, 0x73, - 0x70, 0x65, 0x63, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x79, - 0x6e, 0x63, 0x68, 0x72, 0x6f, 0x6e, 0x69, 0x7a, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x52, - 0x65, 0x71, 0x1a, 0x27, 0x2e, 0x63, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x2e, 0x70, 0x6f, 0x6c, 0x69, - 0x63, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x68, 0x72, 0x6f, 0x6e, 0x69, 0x7a, - 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x60, 0x0a, - 0x0b, 0x50, 0x75, 0x72, 0x67, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x12, 0x24, 0x2e, 0x63, - 0x6e, 0x73, 0x70, 0x65, 0x63, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x76, 0x31, 0x2e, - 0x50, 0x75, 0x72, 0x67, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x63, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x2e, 0x70, 0x6f, 0x6c, 0x69, - 0x63, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x75, 0x72, 0x67, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, - 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x00, 0x42, - 0x20, 0x5a, 0x1e, 0x67, 0x6f, 0x2e, 0x6d, 0x6f, 0x6e, 0x64, 0x6f, 0x6f, 0x2e, 0x63, 0x6f, 0x6d, - 0x2f, 0x63, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x2f, 0x76, 0x39, 0x2f, 0x70, 0x6f, 0x6c, 0x69, 0x63, - 0x79, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x6f, 0x72, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x63, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x2e, + 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x22, 0x00, 0x12, 0x5b, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x77, 0x6f, + 0x72, 0x6b, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x20, 0x2e, 0x63, 0x6e, 0x73, 0x70, 0x65, + 0x63, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6e, 0x74, 0x69, + 0x74, 0x79, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x21, 0x2e, 0x63, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x72, + 0x61, 0x6d, 0x65, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x22, 0x00, 0x12, + 0x48, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x20, 0x2e, 0x63, 0x6e, + 0x73, 0x70, 0x65, 0x63, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x45, + 0x6e, 0x74, 0x69, 0x74, 0x79, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, + 0x63, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x76, 0x31, + 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x22, 0x00, 0x12, 0x66, 0x0a, 0x11, 0x53, 0x79, 0x6e, + 0x63, 0x68, 0x72, 0x6f, 0x6e, 0x69, 0x7a, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x12, 0x26, + 0x2e, 0x63, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x76, + 0x31, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x68, 0x72, 0x6f, 0x6e, 0x69, 0x7a, 0x65, 0x41, 0x73, 0x73, + 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x27, 0x2e, 0x63, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x2e, + 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x68, 0x72, + 0x6f, 0x6e, 0x69, 0x7a, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, + 0x00, 0x12, 0x60, 0x0a, 0x0b, 0x50, 0x75, 0x72, 0x67, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, + 0x12, 0x24, 0x2e, 0x63, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x2e, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, + 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x75, 0x72, 0x67, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x63, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x2e, + 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x75, 0x72, 0x67, 0x65, 0x41, + 0x73, 0x73, 0x65, 0x74, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x22, 0x00, 0x42, 0x20, 0x5a, 0x1e, 0x67, 0x6f, 0x2e, 0x6d, 0x6f, 0x6e, 0x64, 0x6f, 0x6f, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x2f, 0x76, 0x39, 0x2f, 0x70, + 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -5975,7 +6039,7 @@ func file_cnspec_policy_proto_rawDescGZIP() []byte { } var file_cnspec_policy_proto_enumTypes = make([]protoimpl.EnumInfo, 8) -var file_cnspec_policy_proto_msgTypes = make([]protoimpl.MessageInfo, 77) +var file_cnspec_policy_proto_msgTypes = make([]protoimpl.MessageInfo, 78) var file_cnspec_policy_proto_goTypes = []interface{}{ (GroupType)(0), // 0: cnspec.policy.v1.GroupType (QueryAction)(0), // 1: cnspec.policy.v1.QueryAction @@ -6022,149 +6086,150 @@ var file_cnspec_policy_proto_goTypes = []interface{}{ (*ScoreDistribution)(nil), // 42: cnspec.policy.v1.ScoreDistribution (*Empty)(nil), // 43: cnspec.policy.v1.Empty (*Mrn)(nil), // 44: cnspec.policy.v1.Mrn - (*Mqueries)(nil), // 45: cnspec.policy.v1.Mqueries - (*ListReq)(nil), // 46: cnspec.policy.v1.ListReq - (*DefaultPoliciesReq)(nil), // 47: cnspec.policy.v1.DefaultPoliciesReq - (*URLs)(nil), // 48: cnspec.policy.v1.URLs - (*PolicyAssignment)(nil), // 49: cnspec.policy.v1.PolicyAssignment - (*PolicyMutationDelta)(nil), // 50: cnspec.policy.v1.PolicyMutationDelta - (*PolicyDelta)(nil), // 51: cnspec.policy.v1.PolicyDelta - (*ResolveReq)(nil), // 52: cnspec.policy.v1.ResolveReq - (*UpdateAssetJobsReq)(nil), // 53: cnspec.policy.v1.UpdateAssetJobsReq - (*StoreResultsReq)(nil), // 54: cnspec.policy.v1.StoreResultsReq - (*EntityScoreReq)(nil), // 55: cnspec.policy.v1.EntityScoreReq - (*SynchronizeAssetsReq)(nil), // 56: cnspec.policy.v1.SynchronizeAssetsReq - (*SynchronizeAssetsRespAssetDetail)(nil), // 57: cnspec.policy.v1.SynchronizeAssetsRespAssetDetail - (*SynchronizeAssetsResp)(nil), // 58: cnspec.policy.v1.SynchronizeAssetsResp - (*PurgeAssetsRequest)(nil), // 59: cnspec.policy.v1.PurgeAssetsRequest - (*DateFilter)(nil), // 60: cnspec.policy.v1.DateFilter - (*PurgeAssetsConfirmation)(nil), // 61: cnspec.policy.v1.PurgeAssetsConfirmation - nil, // 62: cnspec.policy.v1.Policy.TagsEntry - nil, // 63: cnspec.policy.v1.Framework.TagsEntry - nil, // 64: cnspec.policy.v1.Control.TagsEntry - nil, // 65: cnspec.policy.v1.ExecutionJob.QueriesEntry - nil, // 66: cnspec.policy.v1.ExecutionQuery.PropertiesEntry - nil, // 67: cnspec.policy.v1.CollectorJob.ReportingJobsEntry - nil, // 68: cnspec.policy.v1.CollectorJob.ReportingQueriesEntry - nil, // 69: cnspec.policy.v1.CollectorJob.DatapointsEntry - nil, // 70: cnspec.policy.v1.ReportingJob.DatapointsEntry - nil, // 71: cnspec.policy.v1.ReportingJob.ChildJobsEntry - nil, // 72: cnspec.policy.v1.Report.ScoresEntry - nil, // 73: cnspec.policy.v1.Report.DataEntry - nil, // 74: cnspec.policy.v1.Report.CvssScoresEntry - nil, // 75: cnspec.policy.v1.ReportCollection.AssetsEntry - nil, // 76: cnspec.policy.v1.ReportCollection.ReportsEntry - nil, // 77: cnspec.policy.v1.ReportCollection.ErrorsEntry - nil, // 78: cnspec.policy.v1.ReportCollection.ResolvedPoliciesEntry - nil, // 79: cnspec.policy.v1.ReportCollection.VulnReportsEntry - nil, // 80: cnspec.policy.v1.PolicyMutationDelta.PolicyDeltasEntry - nil, // 81: cnspec.policy.v1.StoreResultsReq.DataEntry - nil, // 82: cnspec.policy.v1.SynchronizeAssetsResp.DetailsEntry - nil, // 83: cnspec.policy.v1.PurgeAssetsRequest.LabelsEntry - nil, // 84: cnspec.policy.v1.PurgeAssetsConfirmation.ErrorsEntry - (*explorer.Mquery)(nil), // 85: cnquery.explorer.Mquery - (*explorer.Filters)(nil), // 86: cnquery.explorer.Filters - (*explorer.Author)(nil), // 87: cnquery.explorer.Author - (explorer.Action)(0), // 88: cnquery.explorer.Action - (*explorer.Impact)(nil), // 89: cnquery.explorer.Impact - (explorer.ScoringSystem)(0), // 90: cnquery.explorer.ScoringSystem - (*explorer.Property)(nil), // 91: cnquery.explorer.Property - (*explorer.QueryPack)(nil), // 92: cnquery.explorer.QueryPack - (*explorer.ObjectRef)(nil), // 93: cnquery.explorer.ObjectRef - (*explorer.MqueryRef)(nil), // 94: cnquery.explorer.MqueryRef - (*inventory.Platform)(nil), // 95: cnquery.providers.v1.Platform - (*llx.CodeBundle)(nil), // 96: cnquery.llx.CodeBundle - (*inventory.Asset)(nil), // 97: cnquery.providers.v1.Asset - (*llx.Result)(nil), // 98: cnquery.llx.Result - (*mvd.VulnReport)(nil), // 99: mondoo.mvd.v1.VulnReport - (*explorer.PropsReq)(nil), // 100: cnquery.explorer.PropsReq - (*explorer.Empty)(nil), // 101: cnquery.explorer.Empty + (*BundleReq)(nil), // 45: cnspec.policy.v1.BundleReq + (*Mqueries)(nil), // 46: cnspec.policy.v1.Mqueries + (*ListReq)(nil), // 47: cnspec.policy.v1.ListReq + (*DefaultPoliciesReq)(nil), // 48: cnspec.policy.v1.DefaultPoliciesReq + (*URLs)(nil), // 49: cnspec.policy.v1.URLs + (*PolicyAssignment)(nil), // 50: cnspec.policy.v1.PolicyAssignment + (*PolicyMutationDelta)(nil), // 51: cnspec.policy.v1.PolicyMutationDelta + (*PolicyDelta)(nil), // 52: cnspec.policy.v1.PolicyDelta + (*ResolveReq)(nil), // 53: cnspec.policy.v1.ResolveReq + (*UpdateAssetJobsReq)(nil), // 54: cnspec.policy.v1.UpdateAssetJobsReq + (*StoreResultsReq)(nil), // 55: cnspec.policy.v1.StoreResultsReq + (*EntityScoreReq)(nil), // 56: cnspec.policy.v1.EntityScoreReq + (*SynchronizeAssetsReq)(nil), // 57: cnspec.policy.v1.SynchronizeAssetsReq + (*SynchronizeAssetsRespAssetDetail)(nil), // 58: cnspec.policy.v1.SynchronizeAssetsRespAssetDetail + (*SynchronizeAssetsResp)(nil), // 59: cnspec.policy.v1.SynchronizeAssetsResp + (*PurgeAssetsRequest)(nil), // 60: cnspec.policy.v1.PurgeAssetsRequest + (*DateFilter)(nil), // 61: cnspec.policy.v1.DateFilter + (*PurgeAssetsConfirmation)(nil), // 62: cnspec.policy.v1.PurgeAssetsConfirmation + nil, // 63: cnspec.policy.v1.Policy.TagsEntry + nil, // 64: cnspec.policy.v1.Framework.TagsEntry + nil, // 65: cnspec.policy.v1.Control.TagsEntry + nil, // 66: cnspec.policy.v1.ExecutionJob.QueriesEntry + nil, // 67: cnspec.policy.v1.ExecutionQuery.PropertiesEntry + nil, // 68: cnspec.policy.v1.CollectorJob.ReportingJobsEntry + nil, // 69: cnspec.policy.v1.CollectorJob.ReportingQueriesEntry + nil, // 70: cnspec.policy.v1.CollectorJob.DatapointsEntry + nil, // 71: cnspec.policy.v1.ReportingJob.DatapointsEntry + nil, // 72: cnspec.policy.v1.ReportingJob.ChildJobsEntry + nil, // 73: cnspec.policy.v1.Report.ScoresEntry + nil, // 74: cnspec.policy.v1.Report.DataEntry + nil, // 75: cnspec.policy.v1.Report.CvssScoresEntry + nil, // 76: cnspec.policy.v1.ReportCollection.AssetsEntry + nil, // 77: cnspec.policy.v1.ReportCollection.ReportsEntry + nil, // 78: cnspec.policy.v1.ReportCollection.ErrorsEntry + nil, // 79: cnspec.policy.v1.ReportCollection.ResolvedPoliciesEntry + nil, // 80: cnspec.policy.v1.ReportCollection.VulnReportsEntry + nil, // 81: cnspec.policy.v1.PolicyMutationDelta.PolicyDeltasEntry + nil, // 82: cnspec.policy.v1.StoreResultsReq.DataEntry + nil, // 83: cnspec.policy.v1.SynchronizeAssetsResp.DetailsEntry + nil, // 84: cnspec.policy.v1.PurgeAssetsRequest.LabelsEntry + nil, // 85: cnspec.policy.v1.PurgeAssetsConfirmation.ErrorsEntry + (*explorer.Mquery)(nil), // 86: cnquery.explorer.Mquery + (*explorer.Filters)(nil), // 87: cnquery.explorer.Filters + (*explorer.Author)(nil), // 88: cnquery.explorer.Author + (explorer.Action)(0), // 89: cnquery.explorer.Action + (*explorer.Impact)(nil), // 90: cnquery.explorer.Impact + (explorer.ScoringSystem)(0), // 91: cnquery.explorer.ScoringSystem + (*explorer.Property)(nil), // 92: cnquery.explorer.Property + (*explorer.QueryPack)(nil), // 93: cnquery.explorer.QueryPack + (*explorer.ObjectRef)(nil), // 94: cnquery.explorer.ObjectRef + (*explorer.MqueryRef)(nil), // 95: cnquery.explorer.MqueryRef + (*inventory.Platform)(nil), // 96: cnquery.providers.v1.Platform + (*llx.CodeBundle)(nil), // 97: cnquery.llx.CodeBundle + (*inventory.Asset)(nil), // 98: cnquery.providers.v1.Asset + (*llx.Result)(nil), // 99: cnquery.llx.Result + (*mvd.VulnReport)(nil), // 100: mondoo.mvd.v1.VulnReport + (*explorer.PropsReq)(nil), // 101: cnquery.explorer.PropsReq + (*explorer.Empty)(nil), // 102: cnquery.explorer.Empty } var file_cnspec_policy_proto_depIdxs = []int32{ 9, // 0: cnspec.policy.v1.PolicyGroup.policies:type_name -> cnspec.policy.v1.PolicyRef - 85, // 1: cnspec.policy.v1.PolicyGroup.checks:type_name -> cnquery.explorer.Mquery - 85, // 2: cnspec.policy.v1.PolicyGroup.queries:type_name -> cnquery.explorer.Mquery + 86, // 1: cnspec.policy.v1.PolicyGroup.checks:type_name -> cnquery.explorer.Mquery + 86, // 2: cnspec.policy.v1.PolicyGroup.queries:type_name -> cnquery.explorer.Mquery 0, // 3: cnspec.policy.v1.PolicyGroup.type:type_name -> cnspec.policy.v1.GroupType - 86, // 4: cnspec.policy.v1.PolicyGroup.filters:type_name -> cnquery.explorer.Filters + 87, // 4: cnspec.policy.v1.PolicyGroup.filters:type_name -> cnquery.explorer.Filters 14, // 5: cnspec.policy.v1.PolicyGroup.docs:type_name -> cnspec.policy.v1.PolicyGroupDocs - 87, // 6: cnspec.policy.v1.PolicyGroup.authors:type_name -> cnquery.explorer.Author - 87, // 7: cnspec.policy.v1.PolicyGroup.reviewers:type_name -> cnquery.explorer.Author + 88, // 6: cnspec.policy.v1.PolicyGroup.authors:type_name -> cnquery.explorer.Author + 88, // 7: cnspec.policy.v1.PolicyGroup.reviewers:type_name -> cnquery.explorer.Author 2, // 8: cnspec.policy.v1.PolicyGroup.review_status:type_name -> cnspec.policy.v1.ReviewStatus - 88, // 9: cnspec.policy.v1.PolicyRef.action:type_name -> cnquery.explorer.Action - 89, // 10: cnspec.policy.v1.PolicyRef.impact:type_name -> cnquery.explorer.Impact + 89, // 9: cnspec.policy.v1.PolicyRef.action:type_name -> cnquery.explorer.Action + 90, // 10: cnspec.policy.v1.PolicyRef.impact:type_name -> cnquery.explorer.Impact 8, // 11: cnspec.policy.v1.Policy.groups:type_name -> cnspec.policy.v1.PolicyGroup 15, // 12: cnspec.policy.v1.Policy.docs:type_name -> cnspec.policy.v1.PolicyDocs - 90, // 13: cnspec.policy.v1.Policy.scoring_system:type_name -> cnquery.explorer.ScoringSystem - 87, // 14: cnspec.policy.v1.Policy.authors:type_name -> cnquery.explorer.Author - 62, // 15: cnspec.policy.v1.Policy.tags:type_name -> cnspec.policy.v1.Policy.TagsEntry - 91, // 16: cnspec.policy.v1.Policy.props:type_name -> cnquery.explorer.Property - 86, // 17: cnspec.policy.v1.Policy.computed_filters:type_name -> cnquery.explorer.Filters + 91, // 13: cnspec.policy.v1.Policy.scoring_system:type_name -> cnquery.explorer.ScoringSystem + 88, // 14: cnspec.policy.v1.Policy.authors:type_name -> cnquery.explorer.Author + 63, // 15: cnspec.policy.v1.Policy.tags:type_name -> cnspec.policy.v1.Policy.TagsEntry + 92, // 16: cnspec.policy.v1.Policy.props:type_name -> cnquery.explorer.Property + 87, // 17: cnspec.policy.v1.Policy.computed_filters:type_name -> cnquery.explorer.Filters 12, // 18: cnspec.policy.v1.Policy.query_counts:type_name -> cnspec.policy.v1.QueryCounts 10, // 19: cnspec.policy.v1.Policies.items:type_name -> cnspec.policy.v1.Policy 10, // 20: cnspec.policy.v1.Bundle.policies:type_name -> cnspec.policy.v1.Policy - 92, // 21: cnspec.policy.v1.Bundle.packs:type_name -> cnquery.explorer.QueryPack - 91, // 22: cnspec.policy.v1.Bundle.props:type_name -> cnquery.explorer.Property - 85, // 23: cnspec.policy.v1.Bundle.queries:type_name -> cnquery.explorer.Mquery + 93, // 21: cnspec.policy.v1.Bundle.packs:type_name -> cnquery.explorer.QueryPack + 92, // 22: cnspec.policy.v1.Bundle.props:type_name -> cnquery.explorer.Property + 86, // 23: cnspec.policy.v1.Bundle.queries:type_name -> cnquery.explorer.Mquery 16, // 24: cnspec.policy.v1.Bundle.frameworks:type_name -> cnspec.policy.v1.Framework 21, // 25: cnspec.policy.v1.Bundle.framework_maps:type_name -> cnspec.policy.v1.FrameworkMap 15, // 26: cnspec.policy.v1.Bundle.docs:type_name -> cnspec.policy.v1.PolicyDocs 18, // 27: cnspec.policy.v1.Framework.groups:type_name -> cnspec.policy.v1.FrameworkGroup 15, // 28: cnspec.policy.v1.Framework.docs:type_name -> cnspec.policy.v1.PolicyDocs - 87, // 29: cnspec.policy.v1.Framework.authors:type_name -> cnquery.explorer.Author - 63, // 30: cnspec.policy.v1.Framework.tags:type_name -> cnspec.policy.v1.Framework.TagsEntry + 88, // 29: cnspec.policy.v1.Framework.authors:type_name -> cnquery.explorer.Author + 64, // 30: cnspec.policy.v1.Framework.tags:type_name -> cnspec.policy.v1.Framework.TagsEntry 19, // 31: cnspec.policy.v1.Framework.dependencies:type_name -> cnspec.policy.v1.FrameworkRef 21, // 32: cnspec.policy.v1.Framework.framework_maps:type_name -> cnspec.policy.v1.FrameworkMap 16, // 33: cnspec.policy.v1.Frameworks.items:type_name -> cnspec.policy.v1.Framework 20, // 34: cnspec.policy.v1.FrameworkGroup.controls:type_name -> cnspec.policy.v1.Control 0, // 35: cnspec.policy.v1.FrameworkGroup.type:type_name -> cnspec.policy.v1.GroupType 14, // 36: cnspec.policy.v1.FrameworkGroup.docs:type_name -> cnspec.policy.v1.PolicyGroupDocs - 87, // 37: cnspec.policy.v1.FrameworkGroup.authors:type_name -> cnquery.explorer.Author - 87, // 38: cnspec.policy.v1.FrameworkGroup.reviewers:type_name -> cnquery.explorer.Author + 88, // 37: cnspec.policy.v1.FrameworkGroup.authors:type_name -> cnquery.explorer.Author + 88, // 38: cnspec.policy.v1.FrameworkGroup.reviewers:type_name -> cnquery.explorer.Author 2, // 39: cnspec.policy.v1.FrameworkGroup.review_status:type_name -> cnspec.policy.v1.ReviewStatus - 88, // 40: cnspec.policy.v1.FrameworkRef.action:type_name -> cnquery.explorer.Action + 89, // 40: cnspec.policy.v1.FrameworkRef.action:type_name -> cnquery.explorer.Action 23, // 41: cnspec.policy.v1.Control.docs:type_name -> cnspec.policy.v1.ControlDocs - 64, // 42: cnspec.policy.v1.Control.tags:type_name -> cnspec.policy.v1.Control.TagsEntry - 88, // 43: cnspec.policy.v1.Control.action:type_name -> cnquery.explorer.Action - 93, // 44: cnspec.policy.v1.FrameworkMap.framework_dependencies:type_name -> cnquery.explorer.ObjectRef - 93, // 45: cnspec.policy.v1.FrameworkMap.policy_dependencies:type_name -> cnquery.explorer.ObjectRef - 93, // 46: cnspec.policy.v1.FrameworkMap.query_pack_dependencies:type_name -> cnquery.explorer.ObjectRef + 65, // 42: cnspec.policy.v1.Control.tags:type_name -> cnspec.policy.v1.Control.TagsEntry + 89, // 43: cnspec.policy.v1.Control.action:type_name -> cnquery.explorer.Action + 94, // 44: cnspec.policy.v1.FrameworkMap.framework_dependencies:type_name -> cnquery.explorer.ObjectRef + 94, // 45: cnspec.policy.v1.FrameworkMap.policy_dependencies:type_name -> cnquery.explorer.ObjectRef + 94, // 46: cnspec.policy.v1.FrameworkMap.query_pack_dependencies:type_name -> cnquery.explorer.ObjectRef 22, // 47: cnspec.policy.v1.FrameworkMap.controls:type_name -> cnspec.policy.v1.ControlMap - 93, // 48: cnspec.policy.v1.FrameworkMap.framework_owner:type_name -> cnquery.explorer.ObjectRef + 94, // 48: cnspec.policy.v1.FrameworkMap.framework_owner:type_name -> cnquery.explorer.ObjectRef 24, // 49: cnspec.policy.v1.ControlMap.checks:type_name -> cnspec.policy.v1.ControlRef 24, // 50: cnspec.policy.v1.ControlMap.policies:type_name -> cnspec.policy.v1.ControlRef 24, // 51: cnspec.policy.v1.ControlMap.controls:type_name -> cnspec.policy.v1.ControlRef 24, // 52: cnspec.policy.v1.ControlMap.queries:type_name -> cnspec.policy.v1.ControlRef - 94, // 53: cnspec.policy.v1.ControlDocs.refs:type_name -> cnquery.explorer.MqueryRef - 88, // 54: cnspec.policy.v1.ControlRef.action:type_name -> cnquery.explorer.Action - 95, // 55: cnspec.policy.v1.Asset.platform:type_name -> cnquery.providers.v1.Platform + 95, // 53: cnspec.policy.v1.ControlDocs.refs:type_name -> cnquery.explorer.MqueryRef + 89, // 54: cnspec.policy.v1.ControlRef.action:type_name -> cnquery.explorer.Action + 96, // 55: cnspec.policy.v1.Asset.platform:type_name -> cnquery.providers.v1.Platform 27, // 56: cnspec.policy.v1.ResolvedPolicy.execution_job:type_name -> cnspec.policy.v1.ExecutionJob 29, // 57: cnspec.policy.v1.ResolvedPolicy.collector_job:type_name -> cnspec.policy.v1.CollectorJob - 85, // 58: cnspec.policy.v1.ResolvedPolicy.filters:type_name -> cnquery.explorer.Mquery - 65, // 59: cnspec.policy.v1.ExecutionJob.queries:type_name -> cnspec.policy.v1.ExecutionJob.QueriesEntry - 66, // 60: cnspec.policy.v1.ExecutionQuery.properties:type_name -> cnspec.policy.v1.ExecutionQuery.PropertiesEntry - 96, // 61: cnspec.policy.v1.ExecutionQuery.code:type_name -> cnquery.llx.CodeBundle - 67, // 62: cnspec.policy.v1.CollectorJob.reporting_jobs:type_name -> cnspec.policy.v1.CollectorJob.ReportingJobsEntry - 68, // 63: cnspec.policy.v1.CollectorJob.reporting_queries:type_name -> cnspec.policy.v1.CollectorJob.ReportingQueriesEntry - 69, // 64: cnspec.policy.v1.CollectorJob.datapoints:type_name -> cnspec.policy.v1.CollectorJob.DatapointsEntry - 90, // 65: cnspec.policy.v1.ReportingJob.scoring_system:type_name -> cnquery.explorer.ScoringSystem - 70, // 66: cnspec.policy.v1.ReportingJob.datapoints:type_name -> cnspec.policy.v1.ReportingJob.DatapointsEntry - 71, // 67: cnspec.policy.v1.ReportingJob.child_jobs:type_name -> cnspec.policy.v1.ReportingJob.ChildJobsEntry + 86, // 58: cnspec.policy.v1.ResolvedPolicy.filters:type_name -> cnquery.explorer.Mquery + 66, // 59: cnspec.policy.v1.ExecutionJob.queries:type_name -> cnspec.policy.v1.ExecutionJob.QueriesEntry + 67, // 60: cnspec.policy.v1.ExecutionQuery.properties:type_name -> cnspec.policy.v1.ExecutionQuery.PropertiesEntry + 97, // 61: cnspec.policy.v1.ExecutionQuery.code:type_name -> cnquery.llx.CodeBundle + 68, // 62: cnspec.policy.v1.CollectorJob.reporting_jobs:type_name -> cnspec.policy.v1.CollectorJob.ReportingJobsEntry + 69, // 63: cnspec.policy.v1.CollectorJob.reporting_queries:type_name -> cnspec.policy.v1.CollectorJob.ReportingQueriesEntry + 70, // 64: cnspec.policy.v1.CollectorJob.datapoints:type_name -> cnspec.policy.v1.CollectorJob.DatapointsEntry + 91, // 65: cnspec.policy.v1.ReportingJob.scoring_system:type_name -> cnquery.explorer.ScoringSystem + 71, // 66: cnspec.policy.v1.ReportingJob.datapoints:type_name -> cnspec.policy.v1.ReportingJob.DatapointsEntry + 72, // 67: cnspec.policy.v1.ReportingJob.child_jobs:type_name -> cnspec.policy.v1.ReportingJob.ChildJobsEntry 6, // 68: cnspec.policy.v1.ReportingJob.type:type_name -> cnspec.policy.v1.ReportingJob.Type 40, // 69: cnspec.policy.v1.Report.score:type_name -> cnspec.policy.v1.Score - 72, // 70: cnspec.policy.v1.Report.scores:type_name -> cnspec.policy.v1.Report.ScoresEntry - 73, // 71: cnspec.policy.v1.Report.data:type_name -> cnspec.policy.v1.Report.DataEntry + 73, // 70: cnspec.policy.v1.Report.scores:type_name -> cnspec.policy.v1.Report.ScoresEntry + 74, // 71: cnspec.policy.v1.Report.data:type_name -> cnspec.policy.v1.Report.DataEntry 41, // 72: cnspec.policy.v1.Report.stats:type_name -> cnspec.policy.v1.Stats 41, // 73: cnspec.policy.v1.Report.ignored_stats:type_name -> cnspec.policy.v1.Stats 38, // 74: cnspec.policy.v1.Report.cvss_score:type_name -> cnspec.policy.v1.Cvss - 74, // 75: cnspec.policy.v1.Report.cvss_scores:type_name -> cnspec.policy.v1.Report.CvssScoresEntry + 75, // 75: cnspec.policy.v1.Report.cvss_scores:type_name -> cnspec.policy.v1.Report.CvssScoresEntry 39, // 76: cnspec.policy.v1.Report.cvss_stats:type_name -> cnspec.policy.v1.CvssStats 33, // 77: cnspec.policy.v1.Reports.reports:type_name -> cnspec.policy.v1.Report - 75, // 78: cnspec.policy.v1.ReportCollection.assets:type_name -> cnspec.policy.v1.ReportCollection.AssetsEntry + 76, // 78: cnspec.policy.v1.ReportCollection.assets:type_name -> cnspec.policy.v1.ReportCollection.AssetsEntry 13, // 79: cnspec.policy.v1.ReportCollection.bundle:type_name -> cnspec.policy.v1.Bundle - 76, // 80: cnspec.policy.v1.ReportCollection.reports:type_name -> cnspec.policy.v1.ReportCollection.ReportsEntry - 77, // 81: cnspec.policy.v1.ReportCollection.errors:type_name -> cnspec.policy.v1.ReportCollection.ErrorsEntry - 78, // 82: cnspec.policy.v1.ReportCollection.resolved_policies:type_name -> cnspec.policy.v1.ReportCollection.ResolvedPoliciesEntry - 79, // 83: cnspec.policy.v1.ReportCollection.vuln_reports:type_name -> cnspec.policy.v1.ReportCollection.VulnReportsEntry + 77, // 80: cnspec.policy.v1.ReportCollection.reports:type_name -> cnspec.policy.v1.ReportCollection.ReportsEntry + 78, // 81: cnspec.policy.v1.ReportCollection.errors:type_name -> cnspec.policy.v1.ReportCollection.ErrorsEntry + 79, // 82: cnspec.policy.v1.ReportCollection.resolved_policies:type_name -> cnspec.policy.v1.ReportCollection.ResolvedPoliciesEntry + 80, // 83: cnspec.policy.v1.ReportCollection.vuln_reports:type_name -> cnspec.policy.v1.ReportCollection.VulnReportsEntry 37, // 84: cnspec.policy.v1.FrameworkReport.score:type_name -> cnspec.policy.v1.ControlScore 37, // 85: cnspec.policy.v1.FrameworkReport.controls:type_name -> cnspec.policy.v1.ControlScore 37, // 86: cnspec.policy.v1.ControlScore.assets:type_name -> cnspec.policy.v1.ControlScore @@ -6172,88 +6237,90 @@ var file_cnspec_policy_proto_depIdxs = []int32{ 42, // 88: cnspec.policy.v1.Stats.failed:type_name -> cnspec.policy.v1.ScoreDistribution 42, // 89: cnspec.policy.v1.Stats.passed:type_name -> cnspec.policy.v1.ScoreDistribution 42, // 90: cnspec.policy.v1.Stats.errors:type_name -> cnspec.policy.v1.ScoreDistribution - 85, // 91: cnspec.policy.v1.Mqueries.items:type_name -> cnquery.explorer.Mquery - 88, // 92: cnspec.policy.v1.PolicyAssignment.action:type_name -> cnquery.explorer.Action - 80, // 93: cnspec.policy.v1.PolicyMutationDelta.policy_deltas:type_name -> cnspec.policy.v1.PolicyMutationDelta.PolicyDeltasEntry - 88, // 94: cnspec.policy.v1.PolicyMutationDelta.action:type_name -> cnquery.explorer.Action + 86, // 91: cnspec.policy.v1.Mqueries.items:type_name -> cnquery.explorer.Mquery + 89, // 92: cnspec.policy.v1.PolicyAssignment.action:type_name -> cnquery.explorer.Action + 81, // 93: cnspec.policy.v1.PolicyMutationDelta.policy_deltas:type_name -> cnspec.policy.v1.PolicyMutationDelta.PolicyDeltasEntry + 89, // 94: cnspec.policy.v1.PolicyMutationDelta.action:type_name -> cnquery.explorer.Action 7, // 95: cnspec.policy.v1.PolicyDelta.action:type_name -> cnspec.policy.v1.PolicyDelta.PolicyAssignmentActionType - 85, // 96: cnspec.policy.v1.ResolveReq.asset_filters:type_name -> cnquery.explorer.Mquery - 85, // 97: cnspec.policy.v1.UpdateAssetJobsReq.asset_filters:type_name -> cnquery.explorer.Mquery + 86, // 96: cnspec.policy.v1.ResolveReq.asset_filters:type_name -> cnquery.explorer.Mquery + 86, // 97: cnspec.policy.v1.UpdateAssetJobsReq.asset_filters:type_name -> cnquery.explorer.Mquery 40, // 98: cnspec.policy.v1.StoreResultsReq.scores:type_name -> cnspec.policy.v1.Score - 81, // 99: cnspec.policy.v1.StoreResultsReq.data:type_name -> cnspec.policy.v1.StoreResultsReq.DataEntry + 82, // 99: cnspec.policy.v1.StoreResultsReq.data:type_name -> cnspec.policy.v1.StoreResultsReq.DataEntry 38, // 100: cnspec.policy.v1.StoreResultsReq.cvssScores:type_name -> cnspec.policy.v1.Cvss - 97, // 101: cnspec.policy.v1.SynchronizeAssetsReq.list:type_name -> cnquery.providers.v1.Asset - 82, // 102: cnspec.policy.v1.SynchronizeAssetsResp.details:type_name -> cnspec.policy.v1.SynchronizeAssetsResp.DetailsEntry - 60, // 103: cnspec.policy.v1.PurgeAssetsRequest.date_filter:type_name -> cnspec.policy.v1.DateFilter - 83, // 104: cnspec.policy.v1.PurgeAssetsRequest.labels:type_name -> cnspec.policy.v1.PurgeAssetsRequest.LabelsEntry + 98, // 101: cnspec.policy.v1.SynchronizeAssetsReq.list:type_name -> cnquery.providers.v1.Asset + 83, // 102: cnspec.policy.v1.SynchronizeAssetsResp.details:type_name -> cnspec.policy.v1.SynchronizeAssetsResp.DetailsEntry + 61, // 103: cnspec.policy.v1.PurgeAssetsRequest.date_filter:type_name -> cnspec.policy.v1.DateFilter + 84, // 104: cnspec.policy.v1.PurgeAssetsRequest.labels:type_name -> cnspec.policy.v1.PurgeAssetsRequest.LabelsEntry 4, // 105: cnspec.policy.v1.DateFilter.comparison:type_name -> cnspec.policy.v1.Comparison 5, // 106: cnspec.policy.v1.DateFilter.field:type_name -> cnspec.policy.v1.DateFilterField - 84, // 107: cnspec.policy.v1.PurgeAssetsConfirmation.errors:type_name -> cnspec.policy.v1.PurgeAssetsConfirmation.ErrorsEntry + 85, // 107: cnspec.policy.v1.PurgeAssetsConfirmation.errors:type_name -> cnspec.policy.v1.PurgeAssetsConfirmation.ErrorsEntry 28, // 108: cnspec.policy.v1.ExecutionJob.QueriesEntry.value:type_name -> cnspec.policy.v1.ExecutionQuery 32, // 109: cnspec.policy.v1.CollectorJob.ReportingJobsEntry.value:type_name -> cnspec.policy.v1.ReportingJob 30, // 110: cnspec.policy.v1.CollectorJob.ReportingQueriesEntry.value:type_name -> cnspec.policy.v1.StringArray 31, // 111: cnspec.policy.v1.CollectorJob.DatapointsEntry.value:type_name -> cnspec.policy.v1.DataQueryInfo - 89, // 112: cnspec.policy.v1.ReportingJob.ChildJobsEntry.value:type_name -> cnquery.explorer.Impact + 90, // 112: cnspec.policy.v1.ReportingJob.ChildJobsEntry.value:type_name -> cnquery.explorer.Impact 40, // 113: cnspec.policy.v1.Report.ScoresEntry.value:type_name -> cnspec.policy.v1.Score - 98, // 114: cnspec.policy.v1.Report.DataEntry.value:type_name -> cnquery.llx.Result + 99, // 114: cnspec.policy.v1.Report.DataEntry.value:type_name -> cnquery.llx.Result 38, // 115: cnspec.policy.v1.Report.CvssScoresEntry.value:type_name -> cnspec.policy.v1.Cvss - 97, // 116: cnspec.policy.v1.ReportCollection.AssetsEntry.value:type_name -> cnquery.providers.v1.Asset + 98, // 116: cnspec.policy.v1.ReportCollection.AssetsEntry.value:type_name -> cnquery.providers.v1.Asset 33, // 117: cnspec.policy.v1.ReportCollection.ReportsEntry.value:type_name -> cnspec.policy.v1.Report 26, // 118: cnspec.policy.v1.ReportCollection.ResolvedPoliciesEntry.value:type_name -> cnspec.policy.v1.ResolvedPolicy - 99, // 119: cnspec.policy.v1.ReportCollection.VulnReportsEntry.value:type_name -> mondoo.mvd.v1.VulnReport - 51, // 120: cnspec.policy.v1.PolicyMutationDelta.PolicyDeltasEntry.value:type_name -> cnspec.policy.v1.PolicyDelta - 98, // 121: cnspec.policy.v1.StoreResultsReq.DataEntry.value:type_name -> cnquery.llx.Result - 57, // 122: cnspec.policy.v1.SynchronizeAssetsResp.DetailsEntry.value:type_name -> cnspec.policy.v1.SynchronizeAssetsRespAssetDetail + 100, // 119: cnspec.policy.v1.ReportCollection.VulnReportsEntry.value:type_name -> mondoo.mvd.v1.VulnReport + 52, // 120: cnspec.policy.v1.PolicyMutationDelta.PolicyDeltasEntry.value:type_name -> cnspec.policy.v1.PolicyDelta + 99, // 121: cnspec.policy.v1.StoreResultsReq.DataEntry.value:type_name -> cnquery.llx.Result + 58, // 122: cnspec.policy.v1.SynchronizeAssetsResp.DetailsEntry.value:type_name -> cnspec.policy.v1.SynchronizeAssetsRespAssetDetail 13, // 123: cnspec.policy.v1.PolicyHub.SetBundle:input_type -> cnspec.policy.v1.Bundle 13, // 124: cnspec.policy.v1.PolicyHub.ValidateBundle:input_type -> cnspec.policy.v1.Bundle 44, // 125: cnspec.policy.v1.PolicyHub.GetBundle:input_type -> cnspec.policy.v1.Mrn - 44, // 126: cnspec.policy.v1.PolicyHub.GetPolicy:input_type -> cnspec.policy.v1.Mrn - 44, // 127: cnspec.policy.v1.PolicyHub.DeletePolicy:input_type -> cnspec.policy.v1.Mrn - 44, // 128: cnspec.policy.v1.PolicyHub.GetPolicyFilters:input_type -> cnspec.policy.v1.Mrn - 46, // 129: cnspec.policy.v1.PolicyHub.List:input_type -> cnspec.policy.v1.ListReq - 47, // 130: cnspec.policy.v1.PolicyHub.DefaultPolicies:input_type -> cnspec.policy.v1.DefaultPoliciesReq - 44, // 131: cnspec.policy.v1.PolicyHub.GetFramework:input_type -> cnspec.policy.v1.Mrn - 44, // 132: cnspec.policy.v1.PolicyHub.DeleteFramework:input_type -> cnspec.policy.v1.Mrn - 46, // 133: cnspec.policy.v1.PolicyHub.ListFrameworks:input_type -> cnspec.policy.v1.ListReq - 49, // 134: cnspec.policy.v1.PolicyResolver.Assign:input_type -> cnspec.policy.v1.PolicyAssignment - 49, // 135: cnspec.policy.v1.PolicyResolver.Unassign:input_type -> cnspec.policy.v1.PolicyAssignment - 100, // 136: cnspec.policy.v1.PolicyResolver.SetProps:input_type -> cnquery.explorer.PropsReq - 52, // 137: cnspec.policy.v1.PolicyResolver.Resolve:input_type -> cnspec.policy.v1.ResolveReq - 53, // 138: cnspec.policy.v1.PolicyResolver.UpdateAssetJobs:input_type -> cnspec.policy.v1.UpdateAssetJobsReq - 53, // 139: cnspec.policy.v1.PolicyResolver.ResolveAndUpdateJobs:input_type -> cnspec.policy.v1.UpdateAssetJobsReq - 44, // 140: cnspec.policy.v1.PolicyResolver.GetResolvedPolicy:input_type -> cnspec.policy.v1.Mrn - 54, // 141: cnspec.policy.v1.PolicyResolver.StoreResults:input_type -> cnspec.policy.v1.StoreResultsReq - 55, // 142: cnspec.policy.v1.PolicyResolver.GetReport:input_type -> cnspec.policy.v1.EntityScoreReq - 55, // 143: cnspec.policy.v1.PolicyResolver.GetFrameworkReport:input_type -> cnspec.policy.v1.EntityScoreReq - 55, // 144: cnspec.policy.v1.PolicyResolver.GetScore:input_type -> cnspec.policy.v1.EntityScoreReq - 56, // 145: cnspec.policy.v1.PolicyResolver.SynchronizeAssets:input_type -> cnspec.policy.v1.SynchronizeAssetsReq - 59, // 146: cnspec.policy.v1.PolicyResolver.PurgeAssets:input_type -> cnspec.policy.v1.PurgeAssetsRequest - 43, // 147: cnspec.policy.v1.PolicyHub.SetBundle:output_type -> cnspec.policy.v1.Empty - 43, // 148: cnspec.policy.v1.PolicyHub.ValidateBundle:output_type -> cnspec.policy.v1.Empty - 13, // 149: cnspec.policy.v1.PolicyHub.GetBundle:output_type -> cnspec.policy.v1.Bundle - 10, // 150: cnspec.policy.v1.PolicyHub.GetPolicy:output_type -> cnspec.policy.v1.Policy - 43, // 151: cnspec.policy.v1.PolicyHub.DeletePolicy:output_type -> cnspec.policy.v1.Empty - 45, // 152: cnspec.policy.v1.PolicyHub.GetPolicyFilters:output_type -> cnspec.policy.v1.Mqueries - 11, // 153: cnspec.policy.v1.PolicyHub.List:output_type -> cnspec.policy.v1.Policies - 48, // 154: cnspec.policy.v1.PolicyHub.DefaultPolicies:output_type -> cnspec.policy.v1.URLs - 16, // 155: cnspec.policy.v1.PolicyHub.GetFramework:output_type -> cnspec.policy.v1.Framework - 43, // 156: cnspec.policy.v1.PolicyHub.DeleteFramework:output_type -> cnspec.policy.v1.Empty - 17, // 157: cnspec.policy.v1.PolicyHub.ListFrameworks:output_type -> cnspec.policy.v1.Frameworks - 43, // 158: cnspec.policy.v1.PolicyResolver.Assign:output_type -> cnspec.policy.v1.Empty - 43, // 159: cnspec.policy.v1.PolicyResolver.Unassign:output_type -> cnspec.policy.v1.Empty - 101, // 160: cnspec.policy.v1.PolicyResolver.SetProps:output_type -> cnquery.explorer.Empty - 26, // 161: cnspec.policy.v1.PolicyResolver.Resolve:output_type -> cnspec.policy.v1.ResolvedPolicy - 43, // 162: cnspec.policy.v1.PolicyResolver.UpdateAssetJobs:output_type -> cnspec.policy.v1.Empty - 26, // 163: cnspec.policy.v1.PolicyResolver.ResolveAndUpdateJobs:output_type -> cnspec.policy.v1.ResolvedPolicy - 26, // 164: cnspec.policy.v1.PolicyResolver.GetResolvedPolicy:output_type -> cnspec.policy.v1.ResolvedPolicy - 43, // 165: cnspec.policy.v1.PolicyResolver.StoreResults:output_type -> cnspec.policy.v1.Empty - 33, // 166: cnspec.policy.v1.PolicyResolver.GetReport:output_type -> cnspec.policy.v1.Report - 36, // 167: cnspec.policy.v1.PolicyResolver.GetFrameworkReport:output_type -> cnspec.policy.v1.FrameworkReport - 33, // 168: cnspec.policy.v1.PolicyResolver.GetScore:output_type -> cnspec.policy.v1.Report - 58, // 169: cnspec.policy.v1.PolicyResolver.SynchronizeAssets:output_type -> cnspec.policy.v1.SynchronizeAssetsResp - 61, // 170: cnspec.policy.v1.PolicyResolver.PurgeAssets:output_type -> cnspec.policy.v1.PurgeAssetsConfirmation - 147, // [147:171] is the sub-list for method output_type - 123, // [123:147] is the sub-list for method input_type + 45, // 126: cnspec.policy.v1.PolicyHub.GetBundleV2:input_type -> cnspec.policy.v1.BundleReq + 44, // 127: cnspec.policy.v1.PolicyHub.GetPolicy:input_type -> cnspec.policy.v1.Mrn + 44, // 128: cnspec.policy.v1.PolicyHub.DeletePolicy:input_type -> cnspec.policy.v1.Mrn + 44, // 129: cnspec.policy.v1.PolicyHub.GetPolicyFilters:input_type -> cnspec.policy.v1.Mrn + 47, // 130: cnspec.policy.v1.PolicyHub.List:input_type -> cnspec.policy.v1.ListReq + 48, // 131: cnspec.policy.v1.PolicyHub.DefaultPolicies:input_type -> cnspec.policy.v1.DefaultPoliciesReq + 44, // 132: cnspec.policy.v1.PolicyHub.GetFramework:input_type -> cnspec.policy.v1.Mrn + 44, // 133: cnspec.policy.v1.PolicyHub.DeleteFramework:input_type -> cnspec.policy.v1.Mrn + 47, // 134: cnspec.policy.v1.PolicyHub.ListFrameworks:input_type -> cnspec.policy.v1.ListReq + 50, // 135: cnspec.policy.v1.PolicyResolver.Assign:input_type -> cnspec.policy.v1.PolicyAssignment + 50, // 136: cnspec.policy.v1.PolicyResolver.Unassign:input_type -> cnspec.policy.v1.PolicyAssignment + 101, // 137: cnspec.policy.v1.PolicyResolver.SetProps:input_type -> cnquery.explorer.PropsReq + 53, // 138: cnspec.policy.v1.PolicyResolver.Resolve:input_type -> cnspec.policy.v1.ResolveReq + 54, // 139: cnspec.policy.v1.PolicyResolver.UpdateAssetJobs:input_type -> cnspec.policy.v1.UpdateAssetJobsReq + 54, // 140: cnspec.policy.v1.PolicyResolver.ResolveAndUpdateJobs:input_type -> cnspec.policy.v1.UpdateAssetJobsReq + 44, // 141: cnspec.policy.v1.PolicyResolver.GetResolvedPolicy:input_type -> cnspec.policy.v1.Mrn + 55, // 142: cnspec.policy.v1.PolicyResolver.StoreResults:input_type -> cnspec.policy.v1.StoreResultsReq + 56, // 143: cnspec.policy.v1.PolicyResolver.GetReport:input_type -> cnspec.policy.v1.EntityScoreReq + 56, // 144: cnspec.policy.v1.PolicyResolver.GetFrameworkReport:input_type -> cnspec.policy.v1.EntityScoreReq + 56, // 145: cnspec.policy.v1.PolicyResolver.GetScore:input_type -> cnspec.policy.v1.EntityScoreReq + 57, // 146: cnspec.policy.v1.PolicyResolver.SynchronizeAssets:input_type -> cnspec.policy.v1.SynchronizeAssetsReq + 60, // 147: cnspec.policy.v1.PolicyResolver.PurgeAssets:input_type -> cnspec.policy.v1.PurgeAssetsRequest + 43, // 148: cnspec.policy.v1.PolicyHub.SetBundle:output_type -> cnspec.policy.v1.Empty + 43, // 149: cnspec.policy.v1.PolicyHub.ValidateBundle:output_type -> cnspec.policy.v1.Empty + 13, // 150: cnspec.policy.v1.PolicyHub.GetBundle:output_type -> cnspec.policy.v1.Bundle + 13, // 151: cnspec.policy.v1.PolicyHub.GetBundleV2:output_type -> cnspec.policy.v1.Bundle + 10, // 152: cnspec.policy.v1.PolicyHub.GetPolicy:output_type -> cnspec.policy.v1.Policy + 43, // 153: cnspec.policy.v1.PolicyHub.DeletePolicy:output_type -> cnspec.policy.v1.Empty + 46, // 154: cnspec.policy.v1.PolicyHub.GetPolicyFilters:output_type -> cnspec.policy.v1.Mqueries + 11, // 155: cnspec.policy.v1.PolicyHub.List:output_type -> cnspec.policy.v1.Policies + 49, // 156: cnspec.policy.v1.PolicyHub.DefaultPolicies:output_type -> cnspec.policy.v1.URLs + 16, // 157: cnspec.policy.v1.PolicyHub.GetFramework:output_type -> cnspec.policy.v1.Framework + 43, // 158: cnspec.policy.v1.PolicyHub.DeleteFramework:output_type -> cnspec.policy.v1.Empty + 17, // 159: cnspec.policy.v1.PolicyHub.ListFrameworks:output_type -> cnspec.policy.v1.Frameworks + 43, // 160: cnspec.policy.v1.PolicyResolver.Assign:output_type -> cnspec.policy.v1.Empty + 43, // 161: cnspec.policy.v1.PolicyResolver.Unassign:output_type -> cnspec.policy.v1.Empty + 102, // 162: cnspec.policy.v1.PolicyResolver.SetProps:output_type -> cnquery.explorer.Empty + 26, // 163: cnspec.policy.v1.PolicyResolver.Resolve:output_type -> cnspec.policy.v1.ResolvedPolicy + 43, // 164: cnspec.policy.v1.PolicyResolver.UpdateAssetJobs:output_type -> cnspec.policy.v1.Empty + 26, // 165: cnspec.policy.v1.PolicyResolver.ResolveAndUpdateJobs:output_type -> cnspec.policy.v1.ResolvedPolicy + 26, // 166: cnspec.policy.v1.PolicyResolver.GetResolvedPolicy:output_type -> cnspec.policy.v1.ResolvedPolicy + 43, // 167: cnspec.policy.v1.PolicyResolver.StoreResults:output_type -> cnspec.policy.v1.Empty + 33, // 168: cnspec.policy.v1.PolicyResolver.GetReport:output_type -> cnspec.policy.v1.Report + 36, // 169: cnspec.policy.v1.PolicyResolver.GetFrameworkReport:output_type -> cnspec.policy.v1.FrameworkReport + 33, // 170: cnspec.policy.v1.PolicyResolver.GetScore:output_type -> cnspec.policy.v1.Report + 59, // 171: cnspec.policy.v1.PolicyResolver.SynchronizeAssets:output_type -> cnspec.policy.v1.SynchronizeAssetsResp + 62, // 172: cnspec.policy.v1.PolicyResolver.PurgeAssets:output_type -> cnspec.policy.v1.PurgeAssetsConfirmation + 148, // [148:173] is the sub-list for method output_type + 123, // [123:148] is the sub-list for method input_type 123, // [123:123] is the sub-list for extension type_name 123, // [123:123] is the sub-list for extension extendee 0, // [0:123] is the sub-list for field type_name @@ -6710,7 +6777,7 @@ func file_cnspec_policy_proto_init() { } } file_cnspec_policy_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Mqueries); i { + switch v := v.(*BundleReq); i { case 0: return &v.state case 1: @@ -6722,7 +6789,7 @@ func file_cnspec_policy_proto_init() { } } file_cnspec_policy_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListReq); i { + switch v := v.(*Mqueries); i { case 0: return &v.state case 1: @@ -6734,7 +6801,7 @@ func file_cnspec_policy_proto_init() { } } file_cnspec_policy_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DefaultPoliciesReq); i { + switch v := v.(*ListReq); i { case 0: return &v.state case 1: @@ -6746,7 +6813,7 @@ func file_cnspec_policy_proto_init() { } } file_cnspec_policy_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*URLs); i { + switch v := v.(*DefaultPoliciesReq); i { case 0: return &v.state case 1: @@ -6758,7 +6825,7 @@ func file_cnspec_policy_proto_init() { } } file_cnspec_policy_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PolicyAssignment); i { + switch v := v.(*URLs); i { case 0: return &v.state case 1: @@ -6770,7 +6837,7 @@ func file_cnspec_policy_proto_init() { } } file_cnspec_policy_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PolicyMutationDelta); i { + switch v := v.(*PolicyAssignment); i { case 0: return &v.state case 1: @@ -6782,7 +6849,7 @@ func file_cnspec_policy_proto_init() { } } file_cnspec_policy_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PolicyDelta); i { + switch v := v.(*PolicyMutationDelta); i { case 0: return &v.state case 1: @@ -6794,7 +6861,7 @@ func file_cnspec_policy_proto_init() { } } file_cnspec_policy_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ResolveReq); i { + switch v := v.(*PolicyDelta); i { case 0: return &v.state case 1: @@ -6806,7 +6873,7 @@ func file_cnspec_policy_proto_init() { } } file_cnspec_policy_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateAssetJobsReq); i { + switch v := v.(*ResolveReq); i { case 0: return &v.state case 1: @@ -6818,7 +6885,7 @@ func file_cnspec_policy_proto_init() { } } file_cnspec_policy_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StoreResultsReq); i { + switch v := v.(*UpdateAssetJobsReq); i { case 0: return &v.state case 1: @@ -6830,7 +6897,7 @@ func file_cnspec_policy_proto_init() { } } file_cnspec_policy_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*EntityScoreReq); i { + switch v := v.(*StoreResultsReq); i { case 0: return &v.state case 1: @@ -6842,7 +6909,7 @@ func file_cnspec_policy_proto_init() { } } file_cnspec_policy_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SynchronizeAssetsReq); i { + switch v := v.(*EntityScoreReq); i { case 0: return &v.state case 1: @@ -6854,7 +6921,7 @@ func file_cnspec_policy_proto_init() { } } file_cnspec_policy_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SynchronizeAssetsRespAssetDetail); i { + switch v := v.(*SynchronizeAssetsReq); i { case 0: return &v.state case 1: @@ -6866,7 +6933,7 @@ func file_cnspec_policy_proto_init() { } } file_cnspec_policy_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SynchronizeAssetsResp); i { + switch v := v.(*SynchronizeAssetsRespAssetDetail); i { case 0: return &v.state case 1: @@ -6878,7 +6945,7 @@ func file_cnspec_policy_proto_init() { } } file_cnspec_policy_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PurgeAssetsRequest); i { + switch v := v.(*SynchronizeAssetsResp); i { case 0: return &v.state case 1: @@ -6890,7 +6957,7 @@ func file_cnspec_policy_proto_init() { } } file_cnspec_policy_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DateFilter); i { + switch v := v.(*PurgeAssetsRequest); i { case 0: return &v.state case 1: @@ -6902,6 +6969,18 @@ func file_cnspec_policy_proto_init() { } } file_cnspec_policy_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DateFilter); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cnspec_policy_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PurgeAssetsConfirmation); i { case 0: return &v.state @@ -6920,7 +6999,7 @@ func file_cnspec_policy_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_cnspec_policy_proto_rawDesc, NumEnums: 8, - NumMessages: 77, + NumMessages: 78, NumExtensions: 0, NumServices: 2, }, diff --git a/policy/cnspec_policy.proto b/policy/cnspec_policy.proto index 5463a23b..07998b7d 100644 --- a/policy/cnspec_policy.proto +++ b/policy/cnspec_policy.proto @@ -519,7 +519,12 @@ message ScoreDistribution { service PolicyHub { rpc SetBundle(Bundle) returns (Empty) {} rpc ValidateBundle(Bundle) returns (Empty) {} - rpc GetBundle(Mrn) returns (Bundle) {} + + // Deprecated use GetBundleV2 instead + rpc GetBundle(Mrn) returns (Bundle) { + option deprecated = true; + } + rpc GetBundleV2(BundleReq) returns (Bundle) {} rpc GetPolicy(Mrn) returns (Policy) {} rpc DeletePolicy(Mrn) returns (Empty) {} rpc GetPolicyFilters(Mrn) returns (Mqueries) {} @@ -537,6 +542,12 @@ message Mrn { string mrn = 1; } +message BundleReq { + string mrn = 1; + // Whether to strip all docs and tags from policies, queries, frameworks and controls. + bool minimal = 2; +} + message Mqueries { repeated cnquery.explorer.Mquery items = 2; } diff --git a/policy/cnspec_policy.ranger.go b/policy/cnspec_policy.ranger.go index 36bb42c8..376dd927 100644 --- a/policy/cnspec_policy.ranger.go +++ b/policy/cnspec_policy.ranger.go @@ -23,6 +23,7 @@ type PolicyHub interface { SetBundle(context.Context, *Bundle) (*Empty, error) ValidateBundle(context.Context, *Bundle) (*Empty, error) GetBundle(context.Context, *Mrn) (*Bundle, error) + GetBundleV2(context.Context, *BundleReq) (*Bundle, error) GetPolicy(context.Context, *Mrn) (*Policy, error) DeletePolicy(context.Context, *Mrn) (*Empty, error) GetPolicyFilters(context.Context, *Mrn) (*Mqueries, error) @@ -74,6 +75,11 @@ func (c *PolicyHubClient) GetBundle(ctx context.Context, in *Mrn) (*Bundle, erro err := c.DoClientRequest(ctx, c.httpclient, strings.Join([]string{c.prefix, "/GetBundle"}, ""), in, out) return out, err } +func (c *PolicyHubClient) GetBundleV2(ctx context.Context, in *BundleReq) (*Bundle, error) { + out := new(Bundle) + err := c.DoClientRequest(ctx, c.httpclient, strings.Join([]string{c.prefix, "/GetBundleV2"}, ""), in, out) + return out, err +} func (c *PolicyHubClient) GetPolicy(ctx context.Context, in *Mrn) (*Policy, error) { out := new(Policy) err := c.DoClientRequest(ctx, c.httpclient, strings.Join([]string{c.prefix, "/GetPolicy"}, ""), in, out) @@ -140,6 +146,7 @@ func NewPolicyHubServer(handler PolicyHub, opts ...PolicyHubServerOption) http.H "SetBundle": srv.SetBundle, "ValidateBundle": srv.ValidateBundle, "GetBundle": srv.GetBundle, + "GetBundleV2": srv.GetBundleV2, "GetPolicy": srv.GetPolicy, "DeletePolicy": srv.DeletePolicy, "GetPolicyFilters": srv.GetPolicyFilters, @@ -230,6 +237,30 @@ func (p *PolicyHubServer) GetBundle(ctx context.Context, reqBytes *[]byte) (pb.M } return p.handler.GetBundle(ctx, &req) } +func (p *PolicyHubServer) GetBundleV2(ctx context.Context, reqBytes *[]byte) (pb.Message, error) { + var req BundleReq + var err error + + md, ok := metadata.FromIncomingContext(ctx) + if !ok { + return nil, errors.New("could not access header") + } + + switch md.First("Content-Type") { + case "application/protobuf", "application/octet-stream", "application/grpc+proto": + err = pb.Unmarshal(*reqBytes, &req) + default: + // handle case of empty object + if len(*reqBytes) > 0 { + err = jsonpb.UnmarshalOptions{DiscardUnknown: true}.Unmarshal(*reqBytes, &req) + } + } + + if err != nil { + return nil, err + } + return p.handler.GetBundleV2(ctx, &req) +} func (p *PolicyHubServer) GetPolicy(ctx context.Context, reqBytes *[]byte) (pb.Message, error) { var req Mrn var err error diff --git a/policy/datalake.go b/policy/datalake.go index c03e2780..f5383758 100644 --- a/policy/datalake.go +++ b/policy/datalake.go @@ -37,7 +37,7 @@ type DataLake interface { DeletePolicy(ctx context.Context, mrn string) error // GetValidatedBundle retrieves and if necessary updates the policy bundle // Note: the checksum and graphchecksum of the policy must be computed to the right number - GetValidatedBundle(ctx context.Context, mrn string) (*Bundle, error) + GetValidatedBundle(ctx context.Context, mrn *BundleReq) (*Bundle, error) // SetFramework stores a given framework in the data lake. Note: it does not // store any framework maps, there is a separate call for them. diff --git a/policy/hub.go b/policy/hub.go index 6f6771f6..05a624fd 100644 --- a/policy/hub.go +++ b/policy/hub.go @@ -176,7 +176,7 @@ func (s *LocalServices) SetPolicyFromBundle(ctx context.Context, policyObj *Poli } // necessary to refresh the bundle - _, err = s.DataLake.GetValidatedBundle(ctx, policyObj.Mrn) + _, err = s.DataLake.GetValidatedBundle(ctx, &BundleReq{Mrn: policyObj.Mrn}) if err != nil { logCtx.Error(). Str("name", policyObj.Name). @@ -266,7 +266,7 @@ func (s *LocalServices) GetPolicy(ctx context.Context, in *Mrn) (*Policy, error) } // try upstream; once it's cached, try again - _, err = s.cacheUpstreamPolicy(ctx, in.Mrn) + _, err = s.cacheUpstreamPolicyOld(ctx, in.Mrn) if err != nil { return nil, err } @@ -275,11 +275,13 @@ func (s *LocalServices) GetPolicy(ctx context.Context, in *Mrn) (*Policy, error) // GetBundle retrieves the given policy and all its dependencies (policies/queries) func (s *LocalServices) GetBundle(ctx context.Context, in *Mrn) (*Bundle, error) { + // TODO: once the backend implements GetBundleV2, we can remove this implementation + // and directly call GetBundleV2 if in == nil || len(in.Mrn) == 0 { return nil, status.Error(codes.InvalidArgument, "policy mrn is required") } - b, err := s.DataLake.GetValidatedBundle(ctx, in.Mrn) + b, err := s.DataLake.GetValidatedBundle(ctx, &BundleReq{Mrn: in.Mrn}) if err == nil { return b, nil } @@ -288,7 +290,24 @@ func (s *LocalServices) GetBundle(ctx context.Context, in *Mrn) (*Bundle, error) } // try upstream - return s.cacheUpstreamPolicy(ctx, in.Mrn) + return s.cacheUpstreamPolicyOld(ctx, in.Mrn) +} + +func (s *LocalServices) GetBundleV2(ctx context.Context, in *BundleReq) (*Bundle, error) { + if in == nil || len(in.Mrn) == 0 { + return nil, status.Error(codes.InvalidArgument, "policy mrn is required") + } + + b, err := s.DataLake.GetValidatedBundle(ctx, in) + if err == nil { + return b, nil + } + if s.Upstream == nil { + return nil, err + } + + // try upstream + return s.cacheUpstreamPolicy(ctx, in) } // GetPolicyFilters retrieves the asset filter queries for a given policy @@ -488,7 +507,7 @@ func (s *LocalServices) computePolicyBundle(ctx context.Context, bundleMap *Poli for i := range group.Policies { policy := group.Policies[i] - nuBundle, err := s.DataLake.GetValidatedBundle(ctx, policy.Mrn) + nuBundle, err := s.DataLake.GetValidatedBundle(ctx, &BundleReq{Mrn: policy.Mrn}) if err != nil { return err } @@ -542,14 +561,44 @@ func (s *LocalServices) computePolicyBundle(ctx context.Context, bundleMap *Poli // cacheUpstreamPolicy by storing a copy of the upstream policy bundle in this db // Note: upstream marketplace has to be defined -func (s *LocalServices) cacheUpstreamPolicy(ctx context.Context, mrn string) (*Bundle, error) { +func (s *LocalServices) cacheUpstreamPolicy(ctx context.Context, in *BundleReq) (*Bundle, error) { logCtx := logger.FromContext(ctx) + mrn := in.Mrn if s.Upstream == nil { return nil, errors.New("failed to retrieve upstream policy " + mrn + " since upstream is not defined") } logCtx.Debug().Str("policy", mrn).Msg("marketplace> fetch policy bundle from upstream") - bundle, err := s.Upstream.GetBundle(ctx, &Mrn{Mrn: mrn}) + bundle, err := s.Upstream.GetBundleV2(ctx, in) + if err != nil { + logCtx.Error().Err(err).Str("policy", mrn).Msg("marketplace> failed to retrieve policy bundle from upstream") + return nil, errors.New("failed to retrieve upstream policy " + mrn + ": " + err.Error()) + } + + bundleMap := bundle.ToMap() + + err = s.SetBundleMap(ctx, bundleMap) + if err != nil { + logCtx.Error().Err(err).Str("policy", mrn).Msg("marketplace> failed to set policy bundle retrieved from upstream") + return nil, errors.New("failed to cache upstream policy " + mrn + ": " + err.Error()) + } + + logCtx.Debug().Str("policy", mrn).Msg("marketplace> fetched policy bundle from upstream") + return bundle, nil +} + +// TODO: this can be removed once the backend implements GetBundleV2 +func (s *LocalServices) cacheUpstreamPolicyOld(ctx context.Context, mrn string) (*Bundle, error) { + logCtx := logger.FromContext(ctx) + if s.Upstream == nil { + return nil, errors.New("failed to retrieve upstream policy " + mrn + " since upstream is not defined") + } + + logCtx.Debug().Str("policy", mrn).Msg("marketplace> fetch policy bundle from upstream") + var bundle *Bundle + var err error + + bundle, err = s.Upstream.GetBundle(ctx, &Mrn{Mrn: mrn}) if err != nil { logCtx.Error().Err(err).Str("policy", mrn).Msg("marketplace> failed to retrieve policy bundle from upstream") return nil, errors.New("failed to retrieve upstream policy " + mrn + ": " + err.Error()) diff --git a/policy/resolver.go b/policy/resolver.go index 5f2feb77..0a07e569 100644 --- a/policy/resolver.go +++ b/policy/resolver.go @@ -461,7 +461,7 @@ func (s *LocalServices) tryResolve(ctx context.Context, bundleMrn string, assetF } // next we will try to only use the matching asset filters for the given policy... - bundle, err := s.DataLake.GetValidatedBundle(ctx, bundleMrn) + bundle, err := s.DataLake.GetValidatedBundle(ctx, &BundleReq{Mrn: bundleMrn}) if err != nil { return nil, err }