mirror of
https://github.com/aquasecurity/trivy.git
synced 2025-12-06 04:41:18 -08:00
refactor(misconf): mark AVDID fields as deprecated and use ID internally (#9576)
Signed-off-by: nikpivkin <nikita.pivkin@smartforce.io>
This commit is contained in:
@@ -68,6 +68,7 @@ type Line struct {
|
|||||||
|
|
||||||
type PolicyMetadata struct {
|
type PolicyMetadata struct {
|
||||||
ID string `json:",omitempty"`
|
ID string `json:",omitempty"`
|
||||||
|
// Deprecated: Use the ID field instead.
|
||||||
AVDID string `json:",omitempty"`
|
AVDID string `json:",omitempty"`
|
||||||
Type string `json:",omitempty"`
|
Type string `json:",omitempty"`
|
||||||
Title string `json:",omitempty"`
|
Title string `json:",omitempty"`
|
||||||
|
|||||||
@@ -116,7 +116,7 @@ func Test_RegisterDeprecatedRule(t *testing.T) {
|
|||||||
}{
|
}{
|
||||||
{
|
{
|
||||||
name: "deprecated check",
|
name: "deprecated check",
|
||||||
id: "AVD-DEP-0001",
|
id: "DEP-0001",
|
||||||
inputPolicy: `# METADATA
|
inputPolicy: `# METADATA
|
||||||
# title: "deprecated check"
|
# title: "deprecated check"
|
||||||
# description: "some description"
|
# description: "some description"
|
||||||
@@ -124,7 +124,7 @@ func Test_RegisterDeprecatedRule(t *testing.T) {
|
|||||||
# schemas:
|
# schemas:
|
||||||
# - input: schema["dockerfile"]
|
# - input: schema["dockerfile"]
|
||||||
# custom:
|
# custom:
|
||||||
# avd_id: AVD-DEP-0001
|
# id: DEP-0001
|
||||||
# input:
|
# input:
|
||||||
# selector:
|
# selector:
|
||||||
# - type: dockerfile
|
# - type: dockerfile
|
||||||
@@ -139,7 +139,7 @@ deny[res]{
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "not a deprecated check",
|
name: "not a deprecated check",
|
||||||
id: "AVD-NOTDEP-0001",
|
id: "NOTDEP-0001",
|
||||||
inputPolicy: `# METADATA
|
inputPolicy: `# METADATA
|
||||||
# title: "not a deprecated check"
|
# title: "not a deprecated check"
|
||||||
# description: "some description"
|
# description: "some description"
|
||||||
@@ -147,7 +147,7 @@ deny[res]{
|
|||||||
# schemas:
|
# schemas:
|
||||||
# - input: schema["dockerfile"]
|
# - input: schema["dockerfile"]
|
||||||
# custom:
|
# custom:
|
||||||
# avd_id: AVD-NOTDEP-0001
|
# id: NOTDEP-0001
|
||||||
# input:
|
# input:
|
||||||
# selector:
|
# selector:
|
||||||
# - type: dockerfile
|
# - type: dockerfile
|
||||||
@@ -161,7 +161,7 @@ deny[res]{
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "invalid deprecation value",
|
name: "invalid deprecation value",
|
||||||
id: "AVD-BADDEP-0001",
|
id: "BADDEP-0001",
|
||||||
inputPolicy: `# METADATA
|
inputPolicy: `# METADATA
|
||||||
# title: "badly deprecated check"
|
# title: "badly deprecated check"
|
||||||
# description: "some description"
|
# description: "some description"
|
||||||
@@ -169,7 +169,7 @@ deny[res]{
|
|||||||
# schemas:
|
# schemas:
|
||||||
# - input: schema["dockerfile"]
|
# - input: schema["dockerfile"]
|
||||||
# custom:
|
# custom:
|
||||||
# avd_id: AVD-BADDEP-0001
|
# id: BADDEP-0001
|
||||||
# input:
|
# input:
|
||||||
# selector:
|
# selector:
|
||||||
# - type: dockerfile
|
# - type: dockerfile
|
||||||
@@ -196,7 +196,7 @@ deny[res]{
|
|||||||
})
|
})
|
||||||
|
|
||||||
for _, rule := range rules.GetRegistered() {
|
for _, rule := range rules.GetRegistered() {
|
||||||
if rule.AVDID == tc.id {
|
if rule.ID == tc.id {
|
||||||
assert.Equal(t, tc.expected.Deprecated, rule.GetRule().Deprecated, tc.name)
|
assert.Equal(t, tc.expected.Deprecated, rule.GetRule().Deprecated, tc.name)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -206,7 +206,8 @@ func (s *Scanner) findMatchedEmbeddedCheck(badPolicy *ast.Module) *ast.Module {
|
|||||||
if err != nil || meta == nil {
|
if err != nil || meta == nil {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
if badPolicyMeta.AVDID != "" && badPolicyMeta.AVDID == meta.AVDID {
|
if (badPolicyMeta.AVDID != "" && badPolicyMeta.AVDID == meta.AVDID) ||
|
||||||
|
(badPolicyMeta.ID != "" && badPolicyMeta.ID != "N/A" && badPolicyMeta.ID == meta.ID) {
|
||||||
return embeddedCheck
|
return embeddedCheck
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -141,7 +141,25 @@ deny {
|
|||||||
# schemas:
|
# schemas:
|
||||||
# - input: schema["fooschema"]
|
# - input: schema["fooschema"]
|
||||||
# custom:
|
# custom:
|
||||||
# avd_id: test-001
|
# id: test-001
|
||||||
|
package builtin.test2
|
||||||
|
|
||||||
|
deny {
|
||||||
|
input.evil == "foo bar"
|
||||||
|
}`,
|
||||||
|
),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "match by check AVDID",
|
||||||
|
files: map[string]*fstest.MapFile{
|
||||||
|
"policies/my-check2.rego": {
|
||||||
|
Data: []byte(`# METADATA
|
||||||
|
# schemas:
|
||||||
|
# - input: schema["fooschema"]
|
||||||
|
# custom:
|
||||||
|
# avd_id: avd-test-001
|
||||||
package builtin.test2
|
package builtin.test2
|
||||||
|
|
||||||
deny {
|
deny {
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ const annotationScopePackage = "package"
|
|||||||
type StaticMetadata struct {
|
type StaticMetadata struct {
|
||||||
Deprecated bool
|
Deprecated bool
|
||||||
ID string
|
ID string
|
||||||
|
// Deprecated: Use the ID field instead.
|
||||||
AVDID string
|
AVDID string
|
||||||
Title string
|
Title string
|
||||||
ShortCode string
|
ShortCode string
|
||||||
|
|||||||
@@ -249,7 +249,7 @@ func TestMetadataFromAnnotations(t *testing.T) {
|
|||||||
# title: test
|
# title: test
|
||||||
# custom:
|
# custom:
|
||||||
# id: test-001
|
# id: test-001
|
||||||
# avd_id: test-001
|
# avd_id: avd-test-001
|
||||||
# severity: LOW
|
# severity: LOW
|
||||||
# minimum_trivy_version: 1.2.3
|
# minimum_trivy_version: 1.2.3
|
||||||
# input:
|
# input:
|
||||||
@@ -260,7 +260,9 @@ package user.test
|
|||||||
expected: &StaticMetadata{
|
expected: &StaticMetadata{
|
||||||
Title: "test",
|
Title: "test",
|
||||||
ID: "test-001",
|
ID: "test-001",
|
||||||
AVDID: "test-001",
|
// Although this field is deprecated, we still test its parsing
|
||||||
|
// from metadata to ensure backward compatibility.
|
||||||
|
AVDID: "avd-test-001",
|
||||||
Severity: "LOW",
|
Severity: "LOW",
|
||||||
InputOptions: InputOptions{
|
InputOptions: InputOptions{
|
||||||
Selectors: []Selector{
|
Selectors: []Selector{
|
||||||
|
|||||||
@@ -30,8 +30,7 @@ func Test_RegoScanning_Deny(t *testing.T) {
|
|||||||
# schemas:
|
# schemas:
|
||||||
# - input: schema["input"]
|
# - input: schema["input"]
|
||||||
# custom:
|
# custom:
|
||||||
# id: AVD-BAR-0001
|
# id: BAR-0001
|
||||||
# avd_id: AVD-BAR-0001
|
|
||||||
# provider: custom
|
# provider: custom
|
||||||
# service: custom
|
# service: custom
|
||||||
# severity: LOW
|
# severity: LOW
|
||||||
@@ -78,8 +77,7 @@ func Test_RegoScanning_AbsolutePolicyPath_Deny(t *testing.T) {
|
|||||||
# schemas:
|
# schemas:
|
||||||
# - input: schema["input"]
|
# - input: schema["input"]
|
||||||
# custom:
|
# custom:
|
||||||
# id: AVD-BAR-0001
|
# id: BAR-0001
|
||||||
# avd_id: AVD-BAR-0001
|
|
||||||
# provider: custom
|
# provider: custom
|
||||||
# service: custom
|
# service: custom
|
||||||
# severity: LOW
|
# severity: LOW
|
||||||
@@ -123,8 +121,7 @@ func Test_RegoScanning_Allow(t *testing.T) {
|
|||||||
# schemas:
|
# schemas:
|
||||||
# - input: schema["input"]
|
# - input: schema["input"]
|
||||||
# custom:
|
# custom:
|
||||||
# id: AVD-BAR-0001
|
# id: BAR-0001
|
||||||
# avd_id: AVD-BAR-0001
|
|
||||||
# provider: custom
|
# provider: custom
|
||||||
# service: custom
|
# service: custom
|
||||||
# severity: LOW
|
# severity: LOW
|
||||||
@@ -171,8 +168,7 @@ func Test_RegoScanning_WithRuntimeValues(t *testing.T) {
|
|||||||
# schemas:
|
# schemas:
|
||||||
# - input: schema["input"]
|
# - input: schema["input"]
|
||||||
# custom:
|
# custom:
|
||||||
# id: AVD-BAR-0001
|
# id: BAR-0001
|
||||||
# avd_id: AVD-BAR-0001
|
|
||||||
# provider: custom
|
# provider: custom
|
||||||
# service: custom
|
# service: custom
|
||||||
# severity: LOW
|
# severity: LOW
|
||||||
@@ -215,8 +211,7 @@ func Test_RegoScanning_WithDenyMessage(t *testing.T) {
|
|||||||
# schemas:
|
# schemas:
|
||||||
# - input: schema["input"]
|
# - input: schema["input"]
|
||||||
# custom:
|
# custom:
|
||||||
# id: AVD-BAR-0001
|
# id: BAR-0001
|
||||||
# avd_id: AVD-BAR-0001
|
|
||||||
# provider: custom
|
# provider: custom
|
||||||
# service: custom
|
# service: custom
|
||||||
# severity: LOW
|
# severity: LOW
|
||||||
@@ -263,8 +258,7 @@ func Test_RegoScanning_WithDenyMetadata_ImpliedPath(t *testing.T) {
|
|||||||
# schemas:
|
# schemas:
|
||||||
# - input: schema["input"]
|
# - input: schema["input"]
|
||||||
# custom:
|
# custom:
|
||||||
# id: AVD-BAR-0001
|
# id: BAR-0001
|
||||||
# avd_id: AVD-BAR-0001
|
|
||||||
# provider: custom
|
# provider: custom
|
||||||
# service: custom
|
# service: custom
|
||||||
# severity: LOW
|
# severity: LOW
|
||||||
@@ -318,8 +312,7 @@ func Test_RegoScanning_WithDenyMetadata_PersistedPath(t *testing.T) {
|
|||||||
# schemas:
|
# schemas:
|
||||||
# - input: schema["input"]
|
# - input: schema["input"]
|
||||||
# custom:
|
# custom:
|
||||||
# id: AVD-BAR-0001
|
# id: BAR-0001
|
||||||
# avd_id: AVD-BAR-0001
|
|
||||||
# provider: custom
|
# provider: custom
|
||||||
# service: custom
|
# service: custom
|
||||||
# severity: LOW
|
# severity: LOW
|
||||||
@@ -371,7 +364,6 @@ package defsec.test
|
|||||||
|
|
||||||
__rego_metadata__ := {
|
__rego_metadata__ := {
|
||||||
"id": "AA001",
|
"id": "AA001",
|
||||||
"avd_id": "AVD-XX-9999",
|
|
||||||
"title": "This is a title",
|
"title": "This is a title",
|
||||||
"short_code": "short-code",
|
"short_code": "short-code",
|
||||||
"severity": "LOW",
|
"severity": "LOW",
|
||||||
@@ -416,8 +408,7 @@ deny[res] {
|
|||||||
assert.Equal(t, "/blah.txt", failure.Metadata().Range().GetFilename())
|
assert.Equal(t, "/blah.txt", failure.Metadata().Range().GetFilename())
|
||||||
assert.Equal(t, 123, failure.Metadata().Range().GetStartLine())
|
assert.Equal(t, 123, failure.Metadata().Range().GetStartLine())
|
||||||
assert.Equal(t, 456, failure.Metadata().Range().GetEndLine())
|
assert.Equal(t, 456, failure.Metadata().Range().GetEndLine())
|
||||||
assert.Equal(t, "AVD-XX-9999", failure.Rule().AVDID)
|
assert.Equal(t, "AA001", failure.Rule().ID)
|
||||||
assert.True(t, failure.Rule().HasID("AA001"))
|
|
||||||
assert.Equal(t, "This is a title", failure.Rule().Summary)
|
assert.Equal(t, "This is a title", failure.Rule().Summary)
|
||||||
assert.Equal(t, severity.Low, failure.Rule().Severity)
|
assert.Equal(t, severity.Low, failure.Rule().Severity)
|
||||||
assert.Equal(t, "This is a recommendation", failure.Rule().Resolution)
|
assert.Equal(t, "This is a recommendation", failure.Rule().Resolution)
|
||||||
@@ -434,8 +425,7 @@ func Test_RegoScanning_WithMatchingInputSelector(t *testing.T) {
|
|||||||
# schemas:
|
# schemas:
|
||||||
# - input: schema["input"]
|
# - input: schema["input"]
|
||||||
# custom:
|
# custom:
|
||||||
# id: AVD-BAR-0001
|
# id: BAR-0001
|
||||||
# avd_id: AVD-BAR-0001
|
|
||||||
# provider: custom
|
# provider: custom
|
||||||
# service: custom
|
# service: custom
|
||||||
# severity: LOW
|
# severity: LOW
|
||||||
@@ -516,8 +506,7 @@ func Test_RegoScanning_NoTracingByDefault(t *testing.T) {
|
|||||||
# schemas:
|
# schemas:
|
||||||
# - input: schema["input"]
|
# - input: schema["input"]
|
||||||
# custom:
|
# custom:
|
||||||
# id: AVD-BAR-0001
|
# id: BAR-0001
|
||||||
# avd_id: AVD-BAR-0001
|
|
||||||
# provider: custom
|
# provider: custom
|
||||||
# service: custom
|
# service: custom
|
||||||
# severity: LOW
|
# severity: LOW
|
||||||
@@ -562,8 +551,7 @@ func Test_RegoScanning_GlobalTracingEnabled(t *testing.T) {
|
|||||||
# schemas:
|
# schemas:
|
||||||
# - input: schema["input"]
|
# - input: schema["input"]
|
||||||
# custom:
|
# custom:
|
||||||
# id: AVD-BAR-0001
|
# id: BAR-0001
|
||||||
# avd_id: AVD-BAR-0001
|
|
||||||
# provider: custom
|
# provider: custom
|
||||||
# service: custom
|
# service: custom
|
||||||
# severity: LOW
|
# severity: LOW
|
||||||
@@ -612,8 +600,7 @@ func Test_RegoScanning_PerResultTracingEnabled(t *testing.T) {
|
|||||||
# schemas:
|
# schemas:
|
||||||
# - input: schema["input"]
|
# - input: schema["input"]
|
||||||
# custom:
|
# custom:
|
||||||
# id: AVD-BAR-0001
|
# id: BAR-0001
|
||||||
# avd_id: AVD-BAR-0001
|
|
||||||
# provider: custom
|
# provider: custom
|
||||||
# service: custom
|
# service: custom
|
||||||
# severity: LOW
|
# severity: LOW
|
||||||
@@ -722,7 +709,6 @@ func Test_annotationMetadata(t *testing.T) {
|
|||||||
# - https://google.com
|
# - https://google.com
|
||||||
# custom:
|
# custom:
|
||||||
# id: EG123
|
# id: EG123
|
||||||
# avd_id: AVD-EG-0123
|
|
||||||
# severity: LOW
|
# severity: LOW
|
||||||
# recommended_action: have a cup of tea
|
# recommended_action: have a cup of tea
|
||||||
package defsec.test
|
package defsec.test
|
||||||
@@ -762,7 +748,6 @@ deny {
|
|||||||
assert.Equal(t, "i am a description", failure.Explanation)
|
assert.Equal(t, "i am a description", failure.Explanation)
|
||||||
require.Len(t, failure.Links, 1)
|
require.Len(t, failure.Links, 1)
|
||||||
assert.Equal(t, "https://google.com", failure.Links[0])
|
assert.Equal(t, "https://google.com", failure.Links[0])
|
||||||
assert.Equal(t, "AVD-EG-0123", failure.AVDID)
|
|
||||||
assert.Equal(t, severity.Low, failure.Severity)
|
assert.Equal(t, severity.Low, failure.Severity)
|
||||||
assert.Equal(t, "have a cup of tea", failure.Resolution)
|
assert.Equal(t, "have a cup of tea", failure.Resolution)
|
||||||
}
|
}
|
||||||
@@ -841,8 +826,7 @@ func Test_RegoScanning_CustomData(t *testing.T) {
|
|||||||
# schemas:
|
# schemas:
|
||||||
# - input: schema["input"]
|
# - input: schema["input"]
|
||||||
# custom:
|
# custom:
|
||||||
# id: AVD-BAR-0001
|
# id: BAR-0001
|
||||||
# avd_id: AVD-BAR-0001
|
|
||||||
# provider: custom
|
# provider: custom
|
||||||
# service: custom
|
# service: custom
|
||||||
# severity: LOW
|
# severity: LOW
|
||||||
@@ -894,8 +878,7 @@ func Test_RegoScanning_InvalidFS(t *testing.T) {
|
|||||||
# schemas:
|
# schemas:
|
||||||
# - input: schema["input"]
|
# - input: schema["input"]
|
||||||
# custom:
|
# custom:
|
||||||
# id: AVD-BAR-0001
|
# id: BAR-0001
|
||||||
# avd_id: AVD-BAR-0001
|
|
||||||
# provider: custom
|
# provider: custom
|
||||||
# service: custom
|
# service: custom
|
||||||
# severity: LOW
|
# severity: LOW
|
||||||
@@ -974,7 +957,6 @@ func Test_RegoScanning_WithDeprecatedCheck(t *testing.T) {
|
|||||||
# - https://google.com
|
# - https://google.com
|
||||||
# custom:
|
# custom:
|
||||||
# id: EG123
|
# id: EG123
|
||||||
# avd_id: AVD-EG-0123
|
|
||||||
# severity: LOW
|
# severity: LOW
|
||||||
# recommended_action: have a cup of tea
|
# recommended_action: have a cup of tea
|
||||||
# deprecated: %v
|
# deprecated: %v
|
||||||
|
|||||||
@@ -2,8 +2,8 @@
|
|||||||
# schemas:
|
# schemas:
|
||||||
# - input: schema["fooschema"]
|
# - input: schema["fooschema"]
|
||||||
# custom:
|
# custom:
|
||||||
# avd_id: test-001
|
# id: test-001
|
||||||
|
# avd_id: avd-test-001
|
||||||
package builtin.test
|
package builtin.test
|
||||||
|
|
||||||
deny {
|
deny {
|
||||||
|
|||||||
@@ -5,7 +5,12 @@ import (
|
|||||||
"github.com/aquasecurity/trivy/pkg/iac/severity"
|
"github.com/aquasecurity/trivy/pkg/iac/severity"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// TODO: This struct is not currently serialized to JSON,
|
||||||
|
// so JSON tags may be removed if unused.
|
||||||
type FlatResult struct {
|
type FlatResult struct {
|
||||||
|
// TODO: The following fields are currently unused:
|
||||||
|
// nolint: gocritic
|
||||||
|
// Deprecated, RuleID, LongID, RuleSummary, Impact, RangeAnnotation
|
||||||
Deprecated bool `json:"deprecated,omitempty"`
|
Deprecated bool `json:"deprecated,omitempty"`
|
||||||
RuleID string `json:"rule_id"`
|
RuleID string `json:"rule_id"`
|
||||||
LongID string `json:"long_id"`
|
LongID string `json:"long_id"`
|
||||||
|
|||||||
@@ -269,6 +269,8 @@ func (r *Results) AddIgnored(source any, descriptions ...string) {
|
|||||||
func (r *Results) Ignore(ignoreRules ignore.Rules, ignores map[string]ignore.Ignorer) {
|
func (r *Results) Ignore(ignoreRules ignore.Rules, ignores map[string]ignore.Ignorer) {
|
||||||
for i, result := range *r {
|
for i, result := range *r {
|
||||||
allIDs := []string{
|
allIDs := []string{
|
||||||
|
result.Rule().ID,
|
||||||
|
strings.ToLower(result.Rule().ID),
|
||||||
result.Rule().LongID(),
|
result.Rule().LongID(),
|
||||||
result.Rule().AVDID,
|
result.Rule().AVDID,
|
||||||
strings.ToLower(result.Rule().AVDID),
|
strings.ToLower(result.Rule().AVDID),
|
||||||
|
|||||||
@@ -37,8 +37,9 @@ type TerraformCustomCheck struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type Rule struct {
|
type Rule struct {
|
||||||
Deprecated bool `json:"deprecated"`
|
|
||||||
ID string `json:"id"`
|
ID string `json:"id"`
|
||||||
|
Deprecated bool `json:"deprecated"`
|
||||||
|
// Deprecated: Use the ID field instead.
|
||||||
AVDID string `json:"avd_id"`
|
AVDID string `json:"avd_id"`
|
||||||
Aliases []string `json:"aliases"`
|
Aliases []string `json:"aliases"`
|
||||||
ShortCode string `json:"short_code"`
|
ShortCode string `json:"short_code"`
|
||||||
@@ -65,7 +66,7 @@ func (r Rule) IsDeprecated() bool {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (r Rule) HasID(id string) bool {
|
func (r Rule) HasID(id string) bool {
|
||||||
if r.AVDID == id || r.LongID() == id {
|
if r.ID == id || r.AVDID == id || r.LongID() == id {
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
return slices.Contains(r.Aliases, id)
|
return slices.Contains(r.Aliases, id)
|
||||||
|
|||||||
@@ -28,7 +28,6 @@ Resources:
|
|||||||
|
|
||||||
__rego_metadata__ := {
|
__rego_metadata__ := {
|
||||||
"id": "DS006",
|
"id": "DS006",
|
||||||
"avd_id": "AVD-DS-0006",
|
|
||||||
"title": "COPY '--from' referring to the current image",
|
"title": "COPY '--from' referring to the current image",
|
||||||
"short_code": "no-self-referencing-copy-from",
|
"short_code": "no-self-referencing-copy-from",
|
||||||
"version": "v1.0.0",
|
"version": "v1.0.0",
|
||||||
@@ -65,7 +64,6 @@ deny[res] {
|
|||||||
|
|
||||||
assert.Equal(t, scan.Rule{
|
assert.Equal(t, scan.Rule{
|
||||||
ID: "DS006",
|
ID: "DS006",
|
||||||
AVDID: "AVD-DS-0006",
|
|
||||||
Aliases: []string{"DS006"},
|
Aliases: []string{"DS006"},
|
||||||
ShortCode: "no-self-referencing-copy-from",
|
ShortCode: "no-self-referencing-copy-from",
|
||||||
Summary: "COPY '--from' referring to the current image",
|
Summary: "COPY '--from' referring to the current image",
|
||||||
@@ -108,8 +106,7 @@ const bucketNameCheck = `# METADATA
|
|||||||
# schemas:
|
# schemas:
|
||||||
# - input: schema["cloud"]
|
# - input: schema["cloud"]
|
||||||
# custom:
|
# custom:
|
||||||
# id: AVD-AWS-001
|
# id: AWS-001
|
||||||
# avd_id: AVD-AWS-001
|
|
||||||
# provider: aws
|
# provider: aws
|
||||||
# service: s3
|
# service: s3
|
||||||
# severity: LOW
|
# severity: LOW
|
||||||
@@ -156,7 +153,7 @@ Resources:
|
|||||||
name: "rule before resource",
|
name: "rule before resource",
|
||||||
src: `---
|
src: `---
|
||||||
Resources:
|
Resources:
|
||||||
#trivy:ignore:AVD-AWS-001
|
#trivy:ignore:AWS-001
|
||||||
S3Bucket:
|
S3Bucket:
|
||||||
Type: 'AWS::S3::Bucket'
|
Type: 'AWS::S3::Bucket'
|
||||||
Properties:
|
Properties:
|
||||||
@@ -171,7 +168,7 @@ Resources:
|
|||||||
S3Bucket:
|
S3Bucket:
|
||||||
Type: 'AWS::S3::Bucket'
|
Type: 'AWS::S3::Bucket'
|
||||||
Properties:
|
Properties:
|
||||||
#trivy:ignore:AVD-AWS-001
|
#trivy:ignore:AWS-001
|
||||||
BucketName: test-bucket
|
BucketName: test-bucket
|
||||||
`,
|
`,
|
||||||
ignored: 1,
|
ignored: 1,
|
||||||
@@ -183,7 +180,7 @@ Resources:
|
|||||||
S3Bucket:
|
S3Bucket:
|
||||||
Type: 'AWS::S3::Bucket'
|
Type: 'AWS::S3::Bucket'
|
||||||
Properties:
|
Properties:
|
||||||
BucketName: test-bucket #trivy:ignore:AVD-AWS-001
|
BucketName: test-bucket #trivy:ignore:AWS-001
|
||||||
`,
|
`,
|
||||||
ignored: 1,
|
ignored: 1,
|
||||||
},
|
},
|
||||||
@@ -198,7 +195,7 @@ Resources:
|
|||||||
BucketEncryption:
|
BucketEncryption:
|
||||||
ServerSideEncryptionConfiguration:
|
ServerSideEncryptionConfiguration:
|
||||||
- ServerSideEncryptionByDefault:
|
- ServerSideEncryptionByDefault:
|
||||||
SSEAlgorithm: AES256 #trivy:ignore:AVD-AWS-001
|
SSEAlgorithm: AES256 #trivy:ignore:AWS-001
|
||||||
`,
|
`,
|
||||||
ignored: 1,
|
ignored: 1,
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -27,7 +27,6 @@ const DS006PolicyWithDockerfileSchema = `# METADATA
|
|||||||
# - https://docs.docker.com/develop/develop-images/multistage-build/
|
# - https://docs.docker.com/develop/develop-images/multistage-build/
|
||||||
# custom:
|
# custom:
|
||||||
# id: DS006
|
# id: DS006
|
||||||
# avd_id: AVD-DS-0006
|
|
||||||
# severity: CRITICAL
|
# severity: CRITICAL
|
||||||
# short_code: no-self-referencing-copy-from
|
# short_code: no-self-referencing-copy-from
|
||||||
# recommended_action: "Change the '--from' so that it will not refer to itself"
|
# recommended_action: "Change the '--from' so that it will not refer to itself"
|
||||||
@@ -83,7 +82,6 @@ const DS006PolicyWithMyFancyDockerfileSchema = `# METADATA
|
|||||||
# - https://docs.docker.com/develop/develop-images/multistage-build/
|
# - https://docs.docker.com/develop/develop-images/multistage-build/
|
||||||
# custom:
|
# custom:
|
||||||
# id: DS006
|
# id: DS006
|
||||||
# avd_id: AVD-DS-0006
|
|
||||||
# severity: CRITICAL
|
# severity: CRITICAL
|
||||||
# short_code: no-self-referencing-copy-from
|
# short_code: no-self-referencing-copy-from
|
||||||
# recommended_action: "Change the '--from' so that it will not refer to itself"
|
# recommended_action: "Change the '--from' so that it will not refer to itself"
|
||||||
@@ -139,7 +137,6 @@ const DS006PolicyWithOldSchemaSelector = `# METADATA
|
|||||||
# - https://docs.docker.com/develop/develop-images/multistage-build/
|
# - https://docs.docker.com/develop/develop-images/multistage-build/
|
||||||
# custom:
|
# custom:
|
||||||
# id: DS006
|
# id: DS006
|
||||||
# avd_id: AVD-DS-0006
|
|
||||||
# severity: CRITICAL
|
# severity: CRITICAL
|
||||||
# short_code: no-self-referencing-copy-from
|
# short_code: no-self-referencing-copy-from
|
||||||
# recommended_action: "Change the '--from' so that it will not refer to itself"
|
# recommended_action: "Change the '--from' so that it will not refer to itself"
|
||||||
@@ -188,7 +185,6 @@ const DS006LegacyWithOldStyleMetadata = `package builtin.dockerfile.DS006
|
|||||||
|
|
||||||
__rego_metadata__ := {
|
__rego_metadata__ := {
|
||||||
"id": "DS006",
|
"id": "DS006",
|
||||||
"avd_id": "AVD-DS-0006",
|
|
||||||
"title": "COPY '--from' referring to the current image",
|
"title": "COPY '--from' referring to the current image",
|
||||||
"short_code": "no-self-referencing-copy-from",
|
"short_code": "no-self-referencing-copy-from",
|
||||||
"version": "v1.0.0",
|
"version": "v1.0.0",
|
||||||
@@ -238,7 +234,6 @@ USER root
|
|||||||
t,
|
t,
|
||||||
scan.Rule{
|
scan.Rule{
|
||||||
ID: "DS006",
|
ID: "DS006",
|
||||||
AVDID: "AVD-DS-0006",
|
|
||||||
Aliases: []string{"DS006"},
|
Aliases: []string{"DS006"},
|
||||||
ShortCode: "no-self-referencing-copy-from",
|
ShortCode: "no-self-referencing-copy-from",
|
||||||
Summary: "COPY '--from' referring to the current image",
|
Summary: "COPY '--from' referring to the current image",
|
||||||
@@ -588,7 +583,6 @@ COPY --from=dep /binary /`
|
|||||||
t,
|
t,
|
||||||
scan.Rule{
|
scan.Rule{
|
||||||
ID: "DS006",
|
ID: "DS006",
|
||||||
AVDID: "AVD-DS-0006",
|
|
||||||
Aliases: []string{"DS006"},
|
Aliases: []string{"DS006"},
|
||||||
ShortCode: "no-self-referencing-copy-from",
|
ShortCode: "no-self-referencing-copy-from",
|
||||||
Summary: "COPY '--from' referring to the current image",
|
Summary: "COPY '--from' referring to the current image",
|
||||||
@@ -660,7 +654,7 @@ MAINTAINER moby@example.com`,
|
|||||||
# schemas:
|
# schemas:
|
||||||
# - input: schema["dockerfile"]
|
# - input: schema["dockerfile"]
|
||||||
# custom:
|
# custom:
|
||||||
# avd_id: USER-TEST-0001
|
# id: USER-TEST-0001
|
||||||
# short_code: maintainer-deprecated
|
# short_code: maintainer-deprecated
|
||||||
# input:
|
# input:
|
||||||
# selector:
|
# selector:
|
||||||
|
|||||||
@@ -20,7 +20,6 @@ func TestJsonScanner(t *testing.T) {
|
|||||||
|
|
||||||
__rego_metadata__ := {
|
__rego_metadata__ := {
|
||||||
"id": "ABC123",
|
"id": "ABC123",
|
||||||
"avd_id": "AVD-AB-0123",
|
|
||||||
"title": "title",
|
"title": "title",
|
||||||
"short_code": "short",
|
"short_code": "short",
|
||||||
"severity": "CRITICAL",
|
"severity": "CRITICAL",
|
||||||
@@ -56,7 +55,6 @@ deny[res] {
|
|||||||
|
|
||||||
assert.Equal(t, scan.Rule{
|
assert.Equal(t, scan.Rule{
|
||||||
ID: "ABC123",
|
ID: "ABC123",
|
||||||
AVDID: "AVD-AB-0123",
|
|
||||||
Aliases: []string{"ABC123"},
|
Aliases: []string{"ABC123"},
|
||||||
ShortCode: "short",
|
ShortCode: "short",
|
||||||
Summary: "title",
|
Summary: "title",
|
||||||
@@ -90,7 +88,6 @@ x:
|
|||||||
|
|
||||||
__rego_metadata__ := {
|
__rego_metadata__ := {
|
||||||
"id": "ABC123",
|
"id": "ABC123",
|
||||||
"avd_id": "AVD-AB-0123",
|
|
||||||
"title": "title",
|
"title": "title",
|
||||||
"short_code": "short",
|
"short_code": "short",
|
||||||
"severity": "CRITICAL",
|
"severity": "CRITICAL",
|
||||||
@@ -126,7 +123,6 @@ deny[res] {
|
|||||||
|
|
||||||
assert.Equal(t, scan.Rule{
|
assert.Equal(t, scan.Rule{
|
||||||
ID: "ABC123",
|
ID: "ABC123",
|
||||||
AVDID: "AVD-AB-0123",
|
|
||||||
Aliases: []string{"ABC123"},
|
Aliases: []string{"ABC123"},
|
||||||
ShortCode: "short",
|
ShortCode: "short",
|
||||||
Summary: "title",
|
Summary: "title",
|
||||||
@@ -159,7 +155,6 @@ z = ["a", "b", "c"]
|
|||||||
|
|
||||||
__rego_metadata__ := {
|
__rego_metadata__ := {
|
||||||
"id": "ABC123",
|
"id": "ABC123",
|
||||||
"avd_id": "AVD-AB-0123",
|
|
||||||
"title": "title",
|
"title": "title",
|
||||||
"short_code": "short",
|
"short_code": "short",
|
||||||
"severity": "CRITICAL",
|
"severity": "CRITICAL",
|
||||||
@@ -195,7 +190,6 @@ deny[res] {
|
|||||||
|
|
||||||
assert.Equal(t, scan.Rule{
|
assert.Equal(t, scan.Rule{
|
||||||
ID: "ABC123",
|
ID: "ABC123",
|
||||||
AVDID: "AVD-AB-0123",
|
|
||||||
Aliases: []string{"ABC123"},
|
Aliases: []string{"ABC123"},
|
||||||
ShortCode: "short",
|
ShortCode: "short",
|
||||||
Summary: "title",
|
Summary: "title",
|
||||||
|
|||||||
@@ -28,12 +28,12 @@ func TestScanner_ScanFS(t *testing.T) {
|
|||||||
name: "archived chart",
|
name: "archived chart",
|
||||||
target: filepath.Join("testdata", "mysql-8.8.26.tar"),
|
target: filepath.Join("testdata", "mysql-8.8.26.tar"),
|
||||||
assert: assertIds([]string{
|
assert: assertIds([]string{
|
||||||
"AVD-KSV-0001", "AVD-KSV-0003",
|
"KSV001", "KSV003",
|
||||||
"AVD-KSV-0011", "AVD-KSV-0012", "AVD-KSV-0014",
|
"KSV011", "KSV012", "KSV014",
|
||||||
"AVD-KSV-0015", "AVD-KSV-0016", "AVD-KSV-0018",
|
"KSV015", "KSV016", "KSV018",
|
||||||
"AVD-KSV-0020", "AVD-KSV-0021", "AVD-KSV-0030",
|
"KSV020", "KSV021", "KSV030",
|
||||||
"AVD-KSV-0104", "AVD-KSV-0106", "AVD-KSV-0125",
|
"KSV104", "KSV106", "KSV0125",
|
||||||
"AVD-KSV-0004",
|
"KSV004",
|
||||||
}),
|
}),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -41,19 +41,19 @@ func TestScanner_ScanFS(t *testing.T) {
|
|||||||
target: filepath.Join("testdata", "testchart"),
|
target: filepath.Join("testdata", "testchart"),
|
||||||
assert: func(t *testing.T, results scan.Results) {
|
assert: func(t *testing.T, results scan.Results) {
|
||||||
assertIds([]string{
|
assertIds([]string{
|
||||||
"AVD-KSV-0001", "AVD-KSV-0003",
|
"KSV001", "KSV003",
|
||||||
"AVD-KSV-0011", "AVD-KSV-0012", "AVD-KSV-0014",
|
"KSV011", "KSV012", "KSV014",
|
||||||
"AVD-KSV-0015", "AVD-KSV-0016",
|
"KSV015", "KSV016",
|
||||||
"AVD-KSV-0020", "AVD-KSV-0021", "AVD-KSV-0030",
|
"KSV020", "KSV021", "KSV030",
|
||||||
"AVD-KSV-0104", "AVD-KSV-0106",
|
"KSV104", "KSV106",
|
||||||
"AVD-KSV-0117", "AVD-KSV-0110", "AVD-KSV-0118",
|
"KSV117", "KSV110", "KSV118",
|
||||||
"AVD-KSV-0004",
|
"KSV004",
|
||||||
})(t, results)
|
})(t, results)
|
||||||
|
|
||||||
ignored := results.GetIgnored()
|
ignored := results.GetIgnored()
|
||||||
assert.Len(t, ignored, 1)
|
assert.Len(t, ignored, 1)
|
||||||
|
|
||||||
assert.Equal(t, "AVD-KSV-0018", ignored[0].Rule().AVDID)
|
assert.Equal(t, "KSV018", ignored[0].Rule().ID)
|
||||||
assert.Equal(t, "testchart/templates/deployment.yaml", ignored[0].Metadata().Range().GetFilename())
|
assert.Equal(t, "testchart/templates/deployment.yaml", ignored[0].Metadata().Range().GetFilename())
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@@ -62,12 +62,12 @@ func TestScanner_ScanFS(t *testing.T) {
|
|||||||
name: "scanner with missing chart name can recover",
|
name: "scanner with missing chart name can recover",
|
||||||
target: filepath.Join("testdata", "aws-cluster-autoscaler-bad.tar.gz"),
|
target: filepath.Join("testdata", "aws-cluster-autoscaler-bad.tar.gz"),
|
||||||
assert: assertIds([]string{
|
assert: assertIds([]string{
|
||||||
"AVD-KSV-0014", "AVD-KSV-0023", "AVD-KSV-0030",
|
"KSV014", "KSV023", "KSV030",
|
||||||
"AVD-KSV-0104", "AVD-KSV-0003", "AVD-KSV-0018",
|
"KSV104", "KSV003", "KSV018",
|
||||||
"AVD-KSV-0118", "AVD-KSV-0012", "AVD-KSV-0106",
|
"KSV118", "KSV012", "KSV106",
|
||||||
"AVD-KSV-0016", "AVD-KSV-0001", "AVD-KSV-0011",
|
"KSV016", "KSV001", "KSV011",
|
||||||
"AVD-KSV-0015", "AVD-KSV-0021", "AVD-KSV-0110", "AVD-KSV-0020",
|
"KSV015", "KSV021", "KSV110", "KSV020",
|
||||||
"AVD-KSV-0004",
|
"KSV004",
|
||||||
}),
|
}),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -77,8 +77,7 @@ func TestScanner_ScanFS(t *testing.T) {
|
|||||||
rego.WithPolicyNamespaces("user"),
|
rego.WithPolicyNamespaces("user"),
|
||||||
rego.WithPolicyReader(strings.NewReader(`package user.kubernetes.ID001
|
rego.WithPolicyReader(strings.NewReader(`package user.kubernetes.ID001
|
||||||
__rego_metadata__ := {
|
__rego_metadata__ := {
|
||||||
"id": "ID001",
|
"id": "USR-ID001",
|
||||||
"avd_id": "AVD-USR-ID001",
|
|
||||||
"title": "Services not allowed",
|
"title": "Services not allowed",
|
||||||
"severity": "LOW",
|
"severity": "LOW",
|
||||||
"description": "Services are not allowed because of some reasons.",
|
"description": "Services are not allowed because of some reasons.",
|
||||||
@@ -97,12 +96,12 @@ deny[res] {
|
|||||||
}`)),
|
}`)),
|
||||||
},
|
},
|
||||||
assert: assertIds([]string{
|
assert: assertIds([]string{
|
||||||
"AVD-KSV-0001", "AVD-KSV-0003",
|
"KSV001", "KSV003",
|
||||||
"AVD-KSV-0011", "AVD-KSV-0012", "AVD-KSV-0014",
|
"KSV011", "KSV012", "KSV014",
|
||||||
"AVD-KSV-0015", "AVD-KSV-0016", "AVD-KSV-0018",
|
"KSV015", "KSV016", "KSV018",
|
||||||
"AVD-KSV-0020", "AVD-KSV-0021", "AVD-KSV-0030",
|
"KSV020", "KSV021", "KSV030",
|
||||||
"AVD-KSV-0104", "AVD-KSV-0106", "AVD-USR-ID001",
|
"KSV104", "KSV106", "USR-ID001",
|
||||||
"AVD-KSV-0004", "AVD-KSV-0125",
|
"KSV004", "KSV0125",
|
||||||
}),
|
}),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -125,7 +124,7 @@ deny[res] {
|
|||||||
# schemas:
|
# schemas:
|
||||||
# - input: schema["kubernetes"]
|
# - input: schema["kubernetes"]
|
||||||
# custom:
|
# custom:
|
||||||
# avd_id: AVD-USR-ID001
|
# id: USR-ID001
|
||||||
# severity: LOW
|
# severity: LOW
|
||||||
# input:
|
# input:
|
||||||
# selector:
|
# selector:
|
||||||
@@ -157,7 +156,7 @@ deny[res] {
|
|||||||
# schemas:
|
# schemas:
|
||||||
# - input: schema["kubernetes"]
|
# - input: schema["kubernetes"]
|
||||||
# custom:
|
# custom:
|
||||||
# avd_id: AVD-USR-ID001
|
# id: USR-ID001
|
||||||
# severity: LOW
|
# severity: LOW
|
||||||
# input:
|
# input:
|
||||||
# selector:
|
# selector:
|
||||||
@@ -202,7 +201,7 @@ func assertIds(expected []string) func(t *testing.T, results scan.Results) {
|
|||||||
|
|
||||||
errorCodes := set.New[string]()
|
errorCodes := set.New[string]()
|
||||||
for _, result := range results.GetFailed() {
|
for _, result := range results.GetFailed() {
|
||||||
errorCodes.Append(result.Rule().AVDID)
|
errorCodes.Append(result.Rule().ID)
|
||||||
}
|
}
|
||||||
assert.ElementsMatch(t, expected, errorCodes.Items())
|
assert.ElementsMatch(t, expected, errorCodes.Items())
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -33,7 +33,6 @@ spec:
|
|||||||
# title: test check
|
# title: test check
|
||||||
# custom:
|
# custom:
|
||||||
# id: KSV011
|
# id: KSV011
|
||||||
# avd_id: AVD-KSV-0011
|
|
||||||
# severity: LOW
|
# severity: LOW
|
||||||
# input:
|
# input:
|
||||||
# selector:
|
# selector:
|
||||||
@@ -61,7 +60,7 @@ deny[res] {
|
|||||||
failed := results.GetFailed()
|
failed := results.GetFailed()
|
||||||
require.Len(t, failed, 1)
|
require.Len(t, failed, 1)
|
||||||
|
|
||||||
assert.Equal(t, "AVD-KSV-0011", failed[0].Rule().AVDID)
|
assert.Equal(t, "KSV011", failed[0].Rule().ID)
|
||||||
assertLines(t, file, failed)
|
assertLines(t, file, failed)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -96,7 +95,6 @@ func Test_ScanJSON(t *testing.T) {
|
|||||||
# title: test check
|
# title: test check
|
||||||
# custom:
|
# custom:
|
||||||
# id: KSV011
|
# id: KSV011
|
||||||
# avd_id: AVD-KSV-0011
|
|
||||||
# severity: LOW
|
# severity: LOW
|
||||||
# input:
|
# input:
|
||||||
# selector:
|
# selector:
|
||||||
@@ -126,7 +124,7 @@ deny[res] {
|
|||||||
failed := results.GetFailed()
|
failed := results.GetFailed()
|
||||||
require.Len(t, failed, 1)
|
require.Len(t, failed, 1)
|
||||||
|
|
||||||
assert.Equal(t, "AVD-KSV-0011", failed[0].Rule().AVDID)
|
assert.Equal(t, "KSV011", failed[0].Rule().ID)
|
||||||
assertLines(t, file, failed)
|
assertLines(t, file, failed)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -226,7 +224,6 @@ func Test_CheckWithSubtype(t *testing.T) {
|
|||||||
# - input: schema["kubernetes"]
|
# - input: schema["kubernetes"]
|
||||||
# custom:
|
# custom:
|
||||||
# id: KSV001
|
# id: KSV001
|
||||||
# avd_id: AVD-KSV-0001
|
|
||||||
# severity: MEDIUM
|
# severity: MEDIUM
|
||||||
# input:
|
# input:
|
||||||
# selector:
|
# selector:
|
||||||
@@ -248,7 +245,6 @@ deny[res] {
|
|||||||
# - input: schema["kubernetes"]
|
# - input: schema["kubernetes"]
|
||||||
# custom:
|
# custom:
|
||||||
# id: KSV002
|
# id: KSV002
|
||||||
# avd_id: AVD-KSV-0002
|
|
||||||
# severity: LOW
|
# severity: LOW
|
||||||
# input:
|
# input:
|
||||||
# selector:
|
# selector:
|
||||||
@@ -290,7 +286,7 @@ spec:
|
|||||||
|
|
||||||
failure := results.GetFailed()[0]
|
failure := results.GetFailed()[0]
|
||||||
|
|
||||||
assert.Equal(t, "AVD-KSV-0001", failure.Rule().AVDID)
|
assert.Equal(t, "KSV001", failure.Rule().ID)
|
||||||
}
|
}
|
||||||
|
|
||||||
func assertLines(t *testing.T, content string, results scan.Results) {
|
func assertLines(t *testing.T, content string, results scan.Results) {
|
||||||
|
|||||||
@@ -426,7 +426,7 @@ func Test_IgnoreByDynamicBlockValue(t *testing.T) {
|
|||||||
|
|
||||||
check := `# METADATA
|
check := `# METADATA
|
||||||
# custom:
|
# custom:
|
||||||
# avd_id: USER-TEST-0124
|
# id: USER-TEST-0124
|
||||||
# short_code: test
|
# short_code: test
|
||||||
# provider: aws
|
# provider: aws
|
||||||
# service: ec2
|
# service: ec2
|
||||||
@@ -551,7 +551,38 @@ resource "aws_s3_bucket" "test" {}`,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func Test_IgnoreInlineByAVDID(t *testing.T) {
|
func Test_IgnoreByAVDID(t *testing.T) {
|
||||||
|
check := `# METADATA
|
||||||
|
# custom:
|
||||||
|
# id: TEST-0123
|
||||||
|
# avd_id: AVD-TEST-0123
|
||||||
|
# short_code: non-empty-bucket
|
||||||
|
# provider: aws
|
||||||
|
# service: s3
|
||||||
|
package user.test123
|
||||||
|
|
||||||
|
import rego.v1
|
||||||
|
|
||||||
|
|
||||||
|
deny contains res if {
|
||||||
|
some bucket in input.aws.s3.buckets
|
||||||
|
bucket.name.value == ""
|
||||||
|
res := result.new("The bucket name cannot be empty.", bucket.name)
|
||||||
|
}`
|
||||||
|
|
||||||
|
src := `
|
||||||
|
# trivy:ignore:avd-test-0123
|
||||||
|
resource "aws_s3_bucket" "test" {}
|
||||||
|
`
|
||||||
|
|
||||||
|
results := scanHCL(t, src,
|
||||||
|
rego.WithPolicyReader(strings.NewReader(check)),
|
||||||
|
rego.WithPolicyNamespaces("user"),
|
||||||
|
)
|
||||||
|
testutil.AssertRuleNotFailed(t, "aws-s3-non-empty-bucket", results, "")
|
||||||
|
}
|
||||||
|
|
||||||
|
func Test_IgnoreInlineByAllIDs(t *testing.T) {
|
||||||
testCases := []struct {
|
testCases := []struct {
|
||||||
input string
|
input string
|
||||||
}{
|
}{
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ func Test_OptionWithPolicyDirs(t *testing.T) {
|
|||||||
require.Len(t, results.GetFailed(), 1)
|
require.Len(t, results.GetFailed(), 1)
|
||||||
|
|
||||||
failure := results.GetFailed()[0]
|
failure := results.GetFailed()[0]
|
||||||
assert.Equal(t, "USER-TEST-0123", failure.Rule().AVDID)
|
assert.Equal(t, "USER-TEST-0123", failure.Rule().ID)
|
||||||
|
|
||||||
actualCode, err := failure.GetCode()
|
actualCode, err := failure.GetCode()
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
@@ -189,7 +189,6 @@ resource "aws_sqs_queue_policy" "bad_example" {
|
|||||||
# - https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-using-identity-based-policies.html
|
# - https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-using-identity-based-policies.html
|
||||||
# custom:
|
# custom:
|
||||||
# id: TEST123
|
# id: TEST123
|
||||||
# avd_id: AVD-TEST-0123
|
|
||||||
# short_code: no-wildcard-actions
|
# short_code: no-wildcard-actions
|
||||||
# severity: CRITICAL
|
# severity: CRITICAL
|
||||||
# recommended_action: Avoid using "*" for actions in SQS policies and specify only required actions.
|
# recommended_action: Avoid using "*" for actions in SQS policies and specify only required actions.
|
||||||
@@ -223,9 +222,8 @@ deny[res] {
|
|||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
require.Len(t, results.GetFailed(), 1)
|
require.Len(t, results.GetFailed(), 1)
|
||||||
assert.Equal(t, "AVD-TEST-0123", results[0].Rule().AVDID)
|
assert.Equal(t, "TEST123", results[0].Rule().ID)
|
||||||
assert.NotNil(t, results[0].Metadata().Range().GetFS())
|
assert.NotNil(t, results[0].Metadata().Range().GetFS())
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func Test_ContainerDefinitionRego(t *testing.T) {
|
func Test_ContainerDefinitionRego(t *testing.T) {
|
||||||
@@ -273,8 +271,7 @@ package defsec.abcdefg
|
|||||||
|
|
||||||
|
|
||||||
__rego_metadata__ := {
|
__rego_metadata__ := {
|
||||||
"id": "TEST123",
|
"id": "TEST-0123",
|
||||||
"avd_id": "AVD-TEST-0123",
|
|
||||||
"title": "Buckets should not be evil",
|
"title": "Buckets should not be evil",
|
||||||
"short_code": "no-evil-buckets",
|
"short_code": "no-evil-buckets",
|
||||||
"severity": "CRITICAL",
|
"severity": "CRITICAL",
|
||||||
@@ -306,7 +303,7 @@ deny[res] {
|
|||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
require.Len(t, results.GetFailed(), 1)
|
require.Len(t, results.GetFailed(), 1)
|
||||||
assert.Equal(t, "AVD-TEST-0123", results[0].Rule().AVDID)
|
assert.Equal(t, "TEST-0123", results[0].Rule().ID)
|
||||||
assert.NotNil(t, results[0].Metadata().Range().GetFS())
|
assert.NotNil(t, results[0].Metadata().Range().GetFS())
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -361,13 +358,13 @@ resource "aws_s3_bucket_public_access_block" "foo" {
|
|||||||
failed := results.GetFailed()
|
failed := results.GetFailed()
|
||||||
for _, result := range failed {
|
for _, result := range failed {
|
||||||
// public access block
|
// public access block
|
||||||
assert.NotEqual(t, "AVD-AWS-0094", result.Rule().AVDID, "AVD-AWS-0094 should not be reported - was found at "+result.Metadata().Range().String())
|
assert.NotEqual(t, "AVD-AWS-0094", result.Rule().ID, "AVD-AWS-0094 should not be reported - was found at "+result.Metadata().Range().String())
|
||||||
// encryption
|
// encryption
|
||||||
assert.NotEqual(t, "AVD-AWS-0088", result.Rule().AVDID)
|
assert.NotEqual(t, "AVD-AWS-0088", result.Rule().ID)
|
||||||
// logging
|
// logging
|
||||||
assert.NotEqual(t, "AVD-AWS-0089", result.Rule().AVDID)
|
assert.NotEqual(t, "AVD-AWS-0089", result.Rule().ID)
|
||||||
// versioning
|
// versioning
|
||||||
assert.NotEqual(t, "AVD-AWS-0090", result.Rule().AVDID)
|
assert.NotEqual(t, "AVD-AWS-0090", result.Rule().ID)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -423,7 +420,7 @@ resource "aws_s3_bucket_public_access_block" "testB" {
|
|||||||
|
|
||||||
for _, result := range results.GetFailed() {
|
for _, result := range results.GetFailed() {
|
||||||
// public access block
|
// public access block
|
||||||
assert.NotEqual(t, "AVD-AWS-0094", result.Rule().AVDID)
|
assert.NotEqual(t, "AVD-AWS-0094", result.Rule().ID)
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -442,7 +439,7 @@ resource "aws_apigatewayv2_stage" "bad_example" {
|
|||||||
# schemas:
|
# schemas:
|
||||||
# - input: schema.input
|
# - input: schema.input
|
||||||
# custom:
|
# custom:
|
||||||
# avd_id: AVD-AWS-0001
|
# id: AWS-0001
|
||||||
# input:
|
# input:
|
||||||
# selector:
|
# selector:
|
||||||
# - type: cloud
|
# - type: cloud
|
||||||
@@ -481,7 +478,7 @@ deny[res] {
|
|||||||
|
|
||||||
failure := results.GetFailed()[0]
|
failure := results.GetFailed()[0]
|
||||||
|
|
||||||
assert.Equal(t, "AVD-AWS-0001", failure.Rule().AVDID)
|
assert.Equal(t, "AWS-0001", failure.Rule().ID)
|
||||||
|
|
||||||
actualCode, err := failure.GetCode()
|
actualCode, err := failure.GetCode()
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
@@ -636,7 +633,7 @@ resource "aws_security_group" "main" {
|
|||||||
# schemas:
|
# schemas:
|
||||||
# - input: schema.input
|
# - input: schema.input
|
||||||
# custom:
|
# custom:
|
||||||
# avd_id: AVD-AWS-0002
|
# id: AWS-0002
|
||||||
# input:
|
# input:
|
||||||
# selector:
|
# selector:
|
||||||
# - type: cloud
|
# - type: cloud
|
||||||
@@ -666,7 +663,7 @@ deny[res] {
|
|||||||
|
|
||||||
assert.Len(t, results.GetPassed(), 2)
|
assert.Len(t, results.GetPassed(), 2)
|
||||||
require.Len(t, results.GetFailed(), 1)
|
require.Len(t, results.GetFailed(), 1)
|
||||||
assert.Equal(t, "AVD-AWS-0002", results.GetFailed()[0].Rule().AVDID)
|
assert.Equal(t, "AWS-0002", results.GetFailed()[0].Rule().ID)
|
||||||
}
|
}
|
||||||
|
|
||||||
func Test_RoleRefToOutput(t *testing.T) {
|
func Test_RoleRefToOutput(t *testing.T) {
|
||||||
@@ -706,7 +703,7 @@ output "role_name" {
|
|||||||
# schemas:
|
# schemas:
|
||||||
# - input: schema.input
|
# - input: schema.input
|
||||||
# custom:
|
# custom:
|
||||||
# avd_id: AVD-AWS-0001
|
# id: AWS-0001
|
||||||
# input:
|
# input:
|
||||||
# selector:
|
# selector:
|
||||||
# - type: cloud
|
# - type: cloud
|
||||||
@@ -755,7 +752,7 @@ provider "aws" {
|
|||||||
# schemas:
|
# schemas:
|
||||||
# - input: schema.input
|
# - input: schema.input
|
||||||
# custom:
|
# custom:
|
||||||
# avd_id: AVD-AWS-0001
|
# id: AWS-0001
|
||||||
# input:
|
# input:
|
||||||
# selector:
|
# selector:
|
||||||
# - type: cloud
|
# - type: cloud
|
||||||
@@ -774,7 +771,7 @@ deny[res] {
|
|||||||
# schemas:
|
# schemas:
|
||||||
# - input: schema.input
|
# - input: schema.input
|
||||||
# custom:
|
# custom:
|
||||||
# avd_id: AVD-AWS-0002
|
# id: AWS-0002
|
||||||
# input:
|
# input:
|
||||||
# selector:
|
# selector:
|
||||||
# - type: cloud
|
# - type: cloud
|
||||||
@@ -804,10 +801,10 @@ deny[res] {
|
|||||||
require.Len(t, results, 2)
|
require.Len(t, results, 2)
|
||||||
|
|
||||||
require.Len(t, results.GetFailed(), 1)
|
require.Len(t, results.GetFailed(), 1)
|
||||||
assert.Equal(t, "AVD-AWS-0001", results.GetFailed()[0].Rule().AVDID)
|
assert.Equal(t, "AWS-0001", results.GetFailed()[0].Rule().ID)
|
||||||
|
|
||||||
require.Len(t, results.GetPassed(), 1)
|
require.Len(t, results.GetPassed(), 1)
|
||||||
assert.Equal(t, "AVD-AWS-0002", results.GetPassed()[0].Rule().AVDID)
|
assert.Equal(t, "AWS-0002", results.GetPassed()[0].Rule().ID)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestScanModuleWithCount(t *testing.T) {
|
func TestScanModuleWithCount(t *testing.T) {
|
||||||
@@ -837,7 +834,7 @@ module "this" {
|
|||||||
# schemas:
|
# schemas:
|
||||||
# - input: schema.input
|
# - input: schema.input
|
||||||
# custom:
|
# custom:
|
||||||
# avd_id: AVD-AWS-0001
|
# id: AWS-0001
|
||||||
# input:
|
# input:
|
||||||
# selector:
|
# selector:
|
||||||
# - type: cloud
|
# - type: cloud
|
||||||
@@ -979,8 +976,7 @@ resource "aws_s3_bucket_versioning" "test" {
|
|||||||
# schemas:
|
# schemas:
|
||||||
# - input: schema["input"]
|
# - input: schema["input"]
|
||||||
# custom:
|
# custom:
|
||||||
# id: AVD-BAR-0001
|
# id: BAR-0001
|
||||||
# avd_id: AVD-BAR-0001
|
|
||||||
# provider: custom
|
# provider: custom
|
||||||
# service: custom
|
# service: custom
|
||||||
# severity: LOW
|
# severity: LOW
|
||||||
@@ -1014,8 +1010,7 @@ func TestRenderedCause(t *testing.T) {
|
|||||||
s3check := `# METADATA
|
s3check := `# METADATA
|
||||||
# title: S3 Data should be versioned
|
# title: S3 Data should be versioned
|
||||||
# custom:
|
# custom:
|
||||||
# id: AVD-AWS-0090
|
# id: AWS-0090
|
||||||
# avd_id: AVD-AWS-0090
|
|
||||||
package user.aws.s3.aws0090
|
package user.aws.s3.aws0090
|
||||||
|
|
||||||
import rego.v1
|
import rego.v1
|
||||||
@@ -1032,8 +1027,7 @@ deny contains res if {
|
|||||||
iamcheck := `# METADATA
|
iamcheck := `# METADATA
|
||||||
# title: Service accounts should not have roles assigned with excessive privileges
|
# title: Service accounts should not have roles assigned with excessive privileges
|
||||||
# custom:
|
# custom:
|
||||||
# id: AVD-GCP-0007
|
# id: GCP-0007
|
||||||
# avd_id: AVD-GCP-0007
|
|
||||||
package user.google.iam.google0007
|
package user.google.iam.google0007
|
||||||
|
|
||||||
import rego.v1
|
import rego.v1
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ var emptyBucketCheck = `# METADATA
|
|||||||
# schemas:
|
# schemas:
|
||||||
# - input: schema.cloud
|
# - input: schema.cloud
|
||||||
# custom:
|
# custom:
|
||||||
# avd_id: USER-TEST-0123
|
# id: USER-TEST-0123
|
||||||
# short_code: non-empty-bucket
|
# short_code: non-empty-bucket
|
||||||
# provider: aws
|
# provider: aws
|
||||||
# service: s3
|
# service: s3
|
||||||
|
|||||||
@@ -64,7 +64,7 @@ func Test_ScanFS(t *testing.T) {
|
|||||||
assert.Len(t, failed, len(tc.expectedIDs))
|
assert.Len(t, failed, len(tc.expectedIDs))
|
||||||
|
|
||||||
ids := lo.Map(failed, func(res scan.Result, _ int) string {
|
ids := lo.Map(failed, func(res scan.Result, _ int) string {
|
||||||
return res.Rule().AVDID
|
return res.Rule().ID
|
||||||
})
|
})
|
||||||
sort.Strings(ids)
|
sort.Strings(ids)
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
# schemas:
|
# schemas:
|
||||||
# - input: schema["cloud"]
|
# - input: schema["cloud"]
|
||||||
# custom:
|
# custom:
|
||||||
# avd_id: ID001
|
# id: ID001
|
||||||
# severity: LOW
|
# severity: LOW
|
||||||
# input:
|
# input:
|
||||||
# selector:
|
# selector:
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
# schemas:
|
# schemas:
|
||||||
# - input: schema["cloud"]
|
# - input: schema["cloud"]
|
||||||
# custom:
|
# custom:
|
||||||
# avd_id: ID001
|
# id: ID001
|
||||||
# severity: MEDIUM
|
# severity: MEDIUM
|
||||||
# input:
|
# input:
|
||||||
# selector:
|
# selector:
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
# schemas:
|
# schemas:
|
||||||
# - input: schema["cloud"]
|
# - input: schema["cloud"]
|
||||||
# custom:
|
# custom:
|
||||||
# avd_id: ID001
|
# id: ID001
|
||||||
# severity: LOW
|
# severity: LOW
|
||||||
# input:
|
# input:
|
||||||
# selector:
|
# selector:
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
# schemas:
|
# schemas:
|
||||||
# - input: schema["cloud"]
|
# - input: schema["cloud"]
|
||||||
# custom:
|
# custom:
|
||||||
# avd_id: ID001
|
# id: ID001
|
||||||
# severity: LOW
|
# severity: LOW
|
||||||
# input:
|
# input:
|
||||||
# selector:
|
# selector:
|
||||||
|
|||||||
@@ -15,8 +15,7 @@ import (
|
|||||||
const defaultCheck = `package defsec.abcdefg
|
const defaultCheck = `package defsec.abcdefg
|
||||||
|
|
||||||
__rego_metadata__ := {
|
__rego_metadata__ := {
|
||||||
"id": "TEST123",
|
"id": "TEST-0123",
|
||||||
"avd_id": "AVD-TEST-0123",
|
|
||||||
"title": "Buckets should not be evil",
|
"title": "Buckets should not be evil",
|
||||||
"short_code": "no-evil-buckets",
|
"short_code": "no-evil-buckets",
|
||||||
"severity": "CRITICAL",
|
"severity": "CRITICAL",
|
||||||
@@ -74,7 +73,7 @@ func Test_TerraformScanner(t *testing.T) {
|
|||||||
# schemas:
|
# schemas:
|
||||||
# - input: schema["cloud"]
|
# - input: schema["cloud"]
|
||||||
# custom:
|
# custom:
|
||||||
# avd_id: AVD-TEST-0123
|
# id: TEST-0123
|
||||||
# severity: CRITICAL
|
# severity: CRITICAL
|
||||||
# short_code: very-bad-misconfig
|
# short_code: very-bad-misconfig
|
||||||
# recommended_action: "Fix the s3 bucket"
|
# recommended_action: "Fix the s3 bucket"
|
||||||
@@ -121,7 +120,7 @@ deny[cause] {
|
|||||||
|
|
||||||
failure := results.GetFailed()[0]
|
failure := results.GetFailed()[0]
|
||||||
|
|
||||||
assert.Equal(t, "AVD-TEST-0123", failure.Rule().AVDID)
|
assert.Equal(t, "TEST-0123", failure.Rule().ID)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -478,6 +478,7 @@ func ResultsToMisconf(configType types.ConfigType, scannerName string, results s
|
|||||||
|
|
||||||
query := fmt.Sprintf("data.%s.%s", result.RegoNamespace(), result.RegoRule())
|
query := fmt.Sprintf("data.%s.%s", result.RegoNamespace(), result.RegoRule())
|
||||||
|
|
||||||
|
// TODO: use the ID field
|
||||||
ruleID := result.Rule().AVDID
|
ruleID := result.Rule().AVDID
|
||||||
if result.RegoNamespace() != "" && len(result.Rule().Aliases) > 0 {
|
if result.RegoNamespace() != "" && len(result.Rule().Aliases) > 0 {
|
||||||
ruleID = result.Rule().Aliases[0]
|
ruleID = result.Rule().Aliases[0]
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import ftypes "github.com/aquasecurity/trivy/pkg/fanal/types"
|
|||||||
type DetectedMisconfiguration struct {
|
type DetectedMisconfiguration struct {
|
||||||
Type string `json:",omitempty"`
|
Type string `json:",omitempty"`
|
||||||
ID string `json:",omitempty"`
|
ID string `json:",omitempty"`
|
||||||
|
// Deprecated: Use the ID field instead.
|
||||||
AVDID string `json:",omitempty"`
|
AVDID string `json:",omitempty"`
|
||||||
Title string `json:",omitempty"`
|
Title string `json:",omitempty"`
|
||||||
Description string `json:",omitempty"`
|
Description string `json:",omitempty"`
|
||||||
|
|||||||
@@ -1100,6 +1100,7 @@ type DetectedMisconfiguration struct {
|
|||||||
Status string `protobuf:"bytes,11,opt,name=status,proto3" json:"status,omitempty"`
|
Status string `protobuf:"bytes,11,opt,name=status,proto3" json:"status,omitempty"`
|
||||||
Layer *Layer `protobuf:"bytes,12,opt,name=layer,proto3" json:"layer,omitempty"`
|
Layer *Layer `protobuf:"bytes,12,opt,name=layer,proto3" json:"layer,omitempty"`
|
||||||
CauseMetadata *CauseMetadata `protobuf:"bytes,13,opt,name=cause_metadata,json=causeMetadata,proto3" json:"cause_metadata,omitempty"`
|
CauseMetadata *CauseMetadata `protobuf:"bytes,13,opt,name=cause_metadata,json=causeMetadata,proto3" json:"cause_metadata,omitempty"`
|
||||||
|
// Deprecated: Marked as deprecated in rpc/common/service.proto.
|
||||||
AvdId string `protobuf:"bytes,14,opt,name=avd_id,json=avdId,proto3" json:"avd_id,omitempty"`
|
AvdId string `protobuf:"bytes,14,opt,name=avd_id,json=avdId,proto3" json:"avd_id,omitempty"`
|
||||||
Query string `protobuf:"bytes,15,opt,name=query,proto3" json:"query,omitempty"`
|
Query string `protobuf:"bytes,15,opt,name=query,proto3" json:"query,omitempty"`
|
||||||
}
|
}
|
||||||
@@ -1227,6 +1228,7 @@ func (x *DetectedMisconfiguration) GetCauseMetadata() *CauseMetadata {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Deprecated: Marked as deprecated in rpc/common/service.proto.
|
||||||
func (x *DetectedMisconfiguration) GetAvdId() string {
|
func (x *DetectedMisconfiguration) GetAvdId() string {
|
||||||
if x != nil {
|
if x != nil {
|
||||||
return x.AvdId
|
return x.AvdId
|
||||||
@@ -2704,7 +2706,7 @@ var file_rpc_common_service_proto_rawDesc = []byte{
|
|||||||
0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x72, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e,
|
0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x72, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e,
|
||||||
0x64, 0x65, 0x64, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65,
|
0x64, 0x65, 0x64, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65,
|
||||||
0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a,
|
0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a,
|
||||||
0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x22, 0xf7, 0x03, 0x0a, 0x18, 0x44,
|
0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x22, 0xfb, 0x03, 0x0a, 0x18, 0x44,
|
||||||
0x65, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x4d, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67,
|
0x65, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x4d, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67,
|
||||||
0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18,
|
0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18,
|
||||||
0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69,
|
0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69,
|
||||||
@@ -2733,252 +2735,252 @@ var file_rpc_common_service_proto_rawDesc = []byte{
|
|||||||
0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x74, 0x72,
|
0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x74, 0x72,
|
||||||
0x69, 0x76, 0x79, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x43, 0x61, 0x75, 0x73, 0x65,
|
0x69, 0x76, 0x79, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x43, 0x61, 0x75, 0x73, 0x65,
|
||||||
0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x0d, 0x63, 0x61, 0x75, 0x73, 0x65, 0x4d,
|
0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x0d, 0x63, 0x61, 0x75, 0x73, 0x65, 0x4d,
|
||||||
0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x15, 0x0a, 0x06, 0x61, 0x76, 0x64, 0x5f, 0x69,
|
0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x19, 0x0a, 0x06, 0x61, 0x76, 0x64, 0x5f, 0x69,
|
||||||
0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x61, 0x76, 0x64, 0x49, 0x64, 0x12, 0x14,
|
0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x05, 0x61, 0x76, 0x64,
|
||||||
0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x71,
|
0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x0f, 0x20, 0x01, 0x28,
|
||||||
0x75, 0x65, 0x72, 0x79, 0x22, 0xff, 0x09, 0x0a, 0x0d, 0x56, 0x75, 0x6c, 0x6e, 0x65, 0x72, 0x61,
|
0x09, 0x52, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x22, 0xff, 0x09, 0x0a, 0x0d, 0x56, 0x75, 0x6c,
|
||||||
0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x29, 0x0a, 0x10, 0x76, 0x75, 0x6c, 0x6e, 0x65, 0x72,
|
0x6e, 0x65, 0x72, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x29, 0x0a, 0x10, 0x76, 0x75,
|
||||||
0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
|
0x6c, 0x6e, 0x65, 0x72, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01,
|
||||||
0x52, 0x0f, 0x76, 0x75, 0x6c, 0x6e, 0x65, 0x72, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x49,
|
0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x76, 0x75, 0x6c, 0x6e, 0x65, 0x72, 0x61, 0x62, 0x69, 0x6c,
|
||||||
0x64, 0x12, 0x19, 0x0a, 0x08, 0x70, 0x6b, 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20,
|
0x69, 0x74, 0x79, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x70, 0x6b, 0x67, 0x5f, 0x6e, 0x61, 0x6d,
|
||||||
0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x6b, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2b, 0x0a, 0x11,
|
0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x6b, 0x67, 0x4e, 0x61, 0x6d, 0x65,
|
||||||
0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f,
|
0x12, 0x2b, 0x0a, 0x11, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x5f, 0x76, 0x65,
|
||||||
0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c,
|
0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x69, 0x6e, 0x73,
|
||||||
0x65, 0x64, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x69, 0x78,
|
0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a,
|
||||||
0x65, 0x64, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09,
|
0x0d, 0x66, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04,
|
||||||
0x52, 0x0c, 0x66, 0x69, 0x78, 0x65, 0x64, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x14,
|
0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x66, 0x69, 0x78, 0x65, 0x64, 0x56, 0x65, 0x72, 0x73, 0x69,
|
||||||
0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74,
|
0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28,
|
||||||
0x69, 0x74, 0x6c, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74,
|
0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63,
|
||||||
0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72,
|
0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64,
|
||||||
0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x32, 0x0a, 0x08, 0x73, 0x65, 0x76, 0x65, 0x72, 0x69,
|
0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x32, 0x0a, 0x08, 0x73, 0x65,
|
||||||
0x74, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x74, 0x72, 0x69, 0x76, 0x79,
|
0x76, 0x65, 0x72, 0x69, 0x74, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x74,
|
||||||
0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 0x79,
|
0x72, 0x69, 0x76, 0x79, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x65, 0x76, 0x65,
|
||||||
0x52, 0x08, 0x73, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65,
|
0x72, 0x69, 0x74, 0x79, 0x52, 0x08, 0x73, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, 0x12, 0x1e,
|
||||||
0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a,
|
0x0a, 0x0a, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x08, 0x20, 0x03,
|
||||||
0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x42, 0x0a, 0x0e, 0x70, 0x6b,
|
0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x42,
|
||||||
0x67, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x19, 0x20, 0x01,
|
0x0a, 0x0e, 0x70, 0x6b, 0x67, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72,
|
||||||
0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x74, 0x72, 0x69, 0x76, 0x79, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f,
|
0x18, 0x19, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x74, 0x72, 0x69, 0x76, 0x79, 0x2e, 0x63,
|
||||||
0x6e, 0x2e, 0x50, 0x6b, 0x67, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52,
|
0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x6b, 0x67, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66,
|
||||||
0x0d, 0x70, 0x6b, 0x67, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x29,
|
0x69, 0x65, 0x72, 0x52, 0x0d, 0x70, 0x6b, 0x67, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69,
|
||||||
0x0a, 0x05, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e,
|
0x65, 0x72, 0x12, 0x29, 0x0a, 0x05, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28,
|
||||||
|
0x0b, 0x32, 0x13, 0x2e, 0x74, 0x72, 0x69, 0x76, 0x79, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e,
|
||||||
|
0x2e, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x05, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x27, 0x0a,
|
||||||
|
0x0f, 0x73, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65,
|
||||||
|
0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x73, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 0x79,
|
||||||
|
0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x39, 0x0a, 0x04, 0x63, 0x76, 0x73, 0x73, 0x18, 0x0c,
|
||||||
|
0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x74, 0x72, 0x69, 0x76, 0x79, 0x2e, 0x63, 0x6f, 0x6d,
|
||||||
|
0x6d, 0x6f, 0x6e, 0x2e, 0x56, 0x75, 0x6c, 0x6e, 0x65, 0x72, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74,
|
||||||
|
0x79, 0x2e, 0x43, 0x76, 0x73, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x63, 0x76, 0x73,
|
||||||
|
0x73, 0x12, 0x17, 0x0a, 0x07, 0x63, 0x77, 0x65, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x0d, 0x20, 0x03,
|
||||||
|
0x28, 0x09, 0x52, 0x06, 0x63, 0x77, 0x65, 0x49, 0x64, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72,
|
||||||
|
0x69, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52,
|
||||||
|
0x0a, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x55, 0x72, 0x6c, 0x12, 0x41, 0x0a, 0x0e, 0x70,
|
||||||
|
0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x0f, 0x20,
|
||||||
|
0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
|
||||||
|
0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52,
|
||||||
|
0x0d, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x48,
|
||||||
|
0x0a, 0x12, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f,
|
||||||
|
0x64, 0x61, 0x74, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f,
|
||||||
|
0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d,
|
||||||
|
0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x10, 0x6c, 0x61, 0x73, 0x74, 0x4d, 0x6f, 0x64, 0x69,
|
||||||
|
0x66, 0x69, 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x48, 0x0a, 0x14, 0x63, 0x75, 0x73, 0x74,
|
||||||
|
0x6f, 0x6d, 0x5f, 0x61, 0x64, 0x76, 0x69, 0x73, 0x6f, 0x72, 0x79, 0x5f, 0x64, 0x61, 0x74, 0x61,
|
||||||
|
0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
|
||||||
|
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x12,
|
||||||
|
0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x41, 0x64, 0x76, 0x69, 0x73, 0x6f, 0x72, 0x79, 0x44, 0x61,
|
||||||
|
0x74, 0x61, 0x12, 0x40, 0x0a, 0x10, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x76, 0x75, 0x6c,
|
||||||
|
0x6e, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67,
|
||||||
|
0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56,
|
||||||
|
0x61, 0x6c, 0x75, 0x65, 0x52, 0x0e, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x56, 0x75, 0x6c, 0x6e,
|
||||||
|
0x44, 0x61, 0x74, 0x61, 0x12, 0x1d, 0x0a, 0x0a, 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x5f, 0x69,
|
||||||
|
0x64, 0x73, 0x18, 0x13, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72,
|
||||||
|
0x49, 0x64, 0x73, 0x12, 0x39, 0x0a, 0x0b, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x6f, 0x75, 0x72,
|
||||||
|
0x63, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x74, 0x72, 0x69, 0x76, 0x79,
|
||||||
|
0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x53, 0x6f, 0x75, 0x72,
|
||||||
|
0x63, 0x65, 0x52, 0x0a, 0x64, 0x61, 0x74, 0x61, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x58,
|
||||||
|
0x0a, 0x0f, 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x5f, 0x73, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74,
|
||||||
|
0x79, 0x18, 0x15, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x74, 0x72, 0x69, 0x76, 0x79, 0x2e,
|
||||||
|
0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x56, 0x75, 0x6c, 0x6e, 0x65, 0x72, 0x61, 0x62, 0x69,
|
||||||
|
0x6c, 0x69, 0x74, 0x79, 0x2e, 0x56, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x53, 0x65, 0x76, 0x65, 0x72,
|
||||||
|
0x69, 0x74, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0e, 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72,
|
||||||
|
0x53, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, 0x12, 0x19, 0x0a, 0x08, 0x70, 0x6b, 0x67, 0x5f,
|
||||||
|
0x70, 0x61, 0x74, 0x68, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x6b, 0x67, 0x50,
|
||||||
|
0x61, 0x74, 0x68, 0x12, 0x15, 0x0a, 0x06, 0x70, 0x6b, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x17, 0x20,
|
||||||
|
0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x6b, 0x67, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74,
|
||||||
|
0x61, 0x74, 0x75, 0x73, 0x18, 0x18, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74,
|
||||||
|
0x75, 0x73, 0x1a, 0x4b, 0x0a, 0x09, 0x43, 0x76, 0x73, 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, 0x28, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
|
||||||
|
0x32, 0x12, 0x2e, 0x74, 0x72, 0x69, 0x76, 0x79, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e,
|
||||||
|
0x43, 0x56, 0x53, 0x53, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a,
|
||||||
|
0x59, 0x0a, 0x13, 0x56, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x53, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74,
|
||||||
|
0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20,
|
||||||
|
0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2c, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75,
|
||||||
|
0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x74, 0x72, 0x69, 0x76, 0x79, 0x2e,
|
||||||
|
0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, 0x52,
|
||||||
|
0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x42, 0x0a, 0x0a, 0x44, 0x61,
|
||||||
|
0x74, 0x61, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01,
|
||||||
|
0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65,
|
||||||
|
0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03,
|
||||||
|
0x75, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x22, 0x6b,
|
||||||
|
0x0a, 0x05, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x69, 0x67, 0x65, 0x73,
|
||||||
|
0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x12,
|
||||||
|
0x17, 0x0a, 0x07, 0x64, 0x69, 0x66, 0x66, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
|
||||||
|
0x52, 0x06, 0x64, 0x69, 0x66, 0x66, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61,
|
||||||
|
0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72,
|
||||||
|
0x65, 0x61, 0x74, 0x65, 0x64, 0x42, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18,
|
||||||
|
0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x22, 0x87, 0x02, 0x0a, 0x0d,
|
||||||
|
0x43, 0x61, 0x75, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1a, 0x0a,
|
||||||
|
0x08, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
|
||||||
|
0x08, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f,
|
||||||
|
0x76, 0x69, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f,
|
||||||
|
0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
|
||||||
|
0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12,
|
||||||
|
0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x04, 0x20,
|
||||||
|
0x01, 0x28, 0x05, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x69, 0x6e, 0x65, 0x12, 0x19,
|
||||||
|
0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05,
|
||||||
|
0x52, 0x07, 0x65, 0x6e, 0x64, 0x4c, 0x69, 0x6e, 0x65, 0x12, 0x26, 0x0a, 0x04, 0x63, 0x6f, 0x64,
|
||||||
|
0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x72, 0x69, 0x76, 0x79, 0x2e,
|
||||||
|
0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x63, 0x6f, 0x64,
|
||||||
|
0x65, 0x12, 0x42, 0x0a, 0x0e, 0x72, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x65, 0x64, 0x5f, 0x63, 0x61,
|
||||||
|
0x75, 0x73, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x74, 0x72, 0x69, 0x76,
|
||||||
|
0x79, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x65,
|
||||||
|
0x64, 0x43, 0x61, 0x75, 0x73, 0x65, 0x52, 0x0d, 0x72, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x65, 0x64,
|
||||||
|
0x43, 0x61, 0x75, 0x73, 0x65, 0x22, 0xb2, 0x01, 0x0a, 0x04, 0x43, 0x56, 0x53, 0x53, 0x12, 0x1b,
|
||||||
|
0x0a, 0x09, 0x76, 0x32, 0x5f, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28,
|
||||||
|
0x09, 0x52, 0x08, 0x76, 0x32, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x76,
|
||||||
|
0x33, 0x5f, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08,
|
||||||
|
0x76, 0x33, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x76, 0x32, 0x5f, 0x73,
|
||||||
|
0x63, 0x6f, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x07, 0x76, 0x32, 0x53, 0x63,
|
||||||
|
0x6f, 0x72, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x76, 0x33, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18,
|
||||||
|
0x04, 0x20, 0x01, 0x28, 0x01, 0x52, 0x07, 0x76, 0x33, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1d,
|
||||||
|
0x0a, 0x0a, 0x76, 0x34, 0x30, 0x5f, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x01,
|
||||||
|
0x28, 0x09, 0x52, 0x09, 0x76, 0x34, 0x30, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x1b, 0x0a,
|
||||||
|
0x09, 0x76, 0x34, 0x30, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x01,
|
||||||
|
0x52, 0x08, 0x76, 0x34, 0x30, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x22, 0x98, 0x01, 0x0a, 0x0e, 0x43,
|
||||||
|
0x75, 0x73, 0x74, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x12, 0x0a,
|
||||||
|
0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70,
|
||||||
|
0x65, 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02,
|
||||||
|
0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x29,
|
||||||
|
0x0a, 0x05, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e,
|
||||||
0x74, 0x72, 0x69, 0x76, 0x79, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4c, 0x61, 0x79,
|
0x74, 0x72, 0x69, 0x76, 0x79, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4c, 0x61, 0x79,
|
||||||
0x65, 0x72, 0x52, 0x05, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x65, 0x76,
|
0x65, 0x72, 0x52, 0x05, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x2a, 0x0a, 0x04, 0x64, 0x61, 0x74,
|
||||||
0x65, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x0b, 0x20, 0x01,
|
0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
|
||||||
0x28, 0x09, 0x52, 0x0e, 0x73, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, 0x53, 0x6f, 0x75, 0x72,
|
0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52,
|
||||||
0x63, 0x65, 0x12, 0x39, 0x0a, 0x04, 0x63, 0x76, 0x73, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b,
|
0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xf3, 0x01, 0x0a, 0x04, 0x4c, 0x69, 0x6e, 0x65, 0x12, 0x16,
|
||||||
0x32, 0x25, 0x2e, 0x74, 0x72, 0x69, 0x76, 0x79, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e,
|
0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06,
|
||||||
0x56, 0x75, 0x6c, 0x6e, 0x65, 0x72, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x2e, 0x43, 0x76,
|
0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e,
|
||||||
0x73, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x63, 0x76, 0x73, 0x73, 0x12, 0x17, 0x0a,
|
0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74,
|
||||||
0x07, 0x63, 0x77, 0x65, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06,
|
0x12, 0x19, 0x0a, 0x08, 0x69, 0x73, 0x5f, 0x63, 0x61, 0x75, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01,
|
||||||
0x63, 0x77, 0x65, 0x49, 0x64, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72,
|
0x28, 0x08, 0x52, 0x07, 0x69, 0x73, 0x43, 0x61, 0x75, 0x73, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x61,
|
||||||
0x79, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x69,
|
0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52,
|
||||||
0x6d, 0x61, 0x72, 0x79, 0x55, 0x72, 0x6c, 0x12, 0x41, 0x0a, 0x0e, 0x70, 0x75, 0x62, 0x6c, 0x69,
|
0x0a, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x74,
|
||||||
0x73, 0x68, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32,
|
0x72, 0x75, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09,
|
||||||
0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
|
0x74, 0x72, 0x75, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x68, 0x69, 0x67,
|
||||||
0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0d, 0x70, 0x75, 0x62,
|
0x68, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b,
|
||||||
0x6c, 0x69, 0x73, 0x68, 0x65, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x48, 0x0a, 0x12, 0x6c, 0x61,
|
0x68, 0x69, 0x67, 0x68, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x65, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x66,
|
||||||
0x73, 0x74, 0x5f, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65,
|
0x69, 0x72, 0x73, 0x74, 0x5f, 0x63, 0x61, 0x75, 0x73, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08,
|
||||||
0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
|
0x52, 0x0a, 0x66, 0x69, 0x72, 0x73, 0x74, 0x43, 0x61, 0x75, 0x73, 0x65, 0x12, 0x1d, 0x0a, 0x0a,
|
||||||
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61,
|
0x6c, 0x61, 0x73, 0x74, 0x5f, 0x63, 0x61, 0x75, 0x73, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08,
|
||||||
0x6d, 0x70, 0x52, 0x10, 0x6c, 0x61, 0x73, 0x74, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64,
|
0x52, 0x09, 0x6c, 0x61, 0x73, 0x74, 0x43, 0x61, 0x75, 0x73, 0x65, 0x22, 0x30, 0x0a, 0x04, 0x43,
|
||||||
0x44, 0x61, 0x74, 0x65, 0x12, 0x48, 0x0a, 0x14, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x61,
|
0x6f, 0x64, 0x65, 0x12, 0x28, 0x0a, 0x05, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03,
|
||||||
0x64, 0x76, 0x69, 0x73, 0x6f, 0x72, 0x79, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x11, 0x20, 0x01,
|
0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x72, 0x69, 0x76, 0x79, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f,
|
||||||
0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
|
0x6e, 0x2e, 0x4c, 0x69, 0x6e, 0x65, 0x52, 0x05, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x22, 0x43, 0x0a,
|
||||||
0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x12, 0x63, 0x75, 0x73, 0x74,
|
0x0d, 0x52, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x65, 0x64, 0x43, 0x61, 0x75, 0x73, 0x65, 0x12, 0x10,
|
||||||
0x6f, 0x6d, 0x41, 0x64, 0x76, 0x69, 0x73, 0x6f, 0x72, 0x79, 0x44, 0x61, 0x74, 0x61, 0x12, 0x40,
|
0x0a, 0x03, 0x72, 0x61, 0x77, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x72, 0x61, 0x77,
|
||||||
0x0a, 0x10, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x76, 0x75, 0x6c, 0x6e, 0x5f, 0x64, 0x61,
|
0x12, 0x20, 0x0a, 0x0b, 0x68, 0x69, 0x67, 0x68, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x65, 0x64, 0x18,
|
||||||
0x74, 0x61, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
|
0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x68, 0x69, 0x67, 0x68, 0x6c, 0x69, 0x67, 0x68, 0x74,
|
||||||
0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65,
|
0x65, 0x64, 0x22, 0xb7, 0x02, 0x0a, 0x0d, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x46, 0x69, 0x6e,
|
||||||
0x52, 0x0e, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x56, 0x75, 0x6c, 0x6e, 0x44, 0x61, 0x74, 0x61,
|
0x64, 0x69, 0x6e, 0x67, 0x12, 0x17, 0x0a, 0x07, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18,
|
||||||
0x12, 0x1d, 0x0a, 0x0a, 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x13,
|
0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x75, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a,
|
||||||
0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x49, 0x64, 0x73, 0x12,
|
0x08, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
|
||||||
0x39, 0x0a, 0x0b, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x14,
|
0x08, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x76,
|
||||||
0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x74, 0x72, 0x69, 0x76, 0x79, 0x2e, 0x63, 0x6f, 0x6d,
|
0x65, 0x72, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x76,
|
||||||
0x6d, 0x6f, 0x6e, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x0a,
|
0x65, 0x72, 0x69, 0x74, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x04,
|
||||||
0x64, 0x61, 0x74, 0x61, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x58, 0x0a, 0x0f, 0x76, 0x65,
|
0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x73,
|
||||||
0x6e, 0x64, 0x6f, 0x72, 0x5f, 0x73, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, 0x18, 0x15, 0x20,
|
0x74, 0x61, 0x72, 0x74, 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52,
|
||||||
0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x74, 0x72, 0x69, 0x76, 0x79, 0x2e, 0x63, 0x6f, 0x6d, 0x6d,
|
|
||||||
0x6f, 0x6e, 0x2e, 0x56, 0x75, 0x6c, 0x6e, 0x65, 0x72, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79,
|
|
||||||
0x2e, 0x56, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x53, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, 0x45,
|
|
||||||
0x6e, 0x74, 0x72, 0x79, 0x52, 0x0e, 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x53, 0x65, 0x76, 0x65,
|
|
||||||
0x72, 0x69, 0x74, 0x79, 0x12, 0x19, 0x0a, 0x08, 0x70, 0x6b, 0x67, 0x5f, 0x70, 0x61, 0x74, 0x68,
|
|
||||||
0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x6b, 0x67, 0x50, 0x61, 0x74, 0x68, 0x12,
|
|
||||||
0x15, 0x0a, 0x06, 0x70, 0x6b, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x52,
|
|
||||||
0x05, 0x70, 0x6b, 0x67, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73,
|
|
||||||
0x18, 0x18, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x1a, 0x4b,
|
|
||||||
0x0a, 0x09, 0x43, 0x76, 0x73, 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, 0x28, 0x0a,
|
|
||||||
0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74,
|
|
||||||
0x72, 0x69, 0x76, 0x79, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x43, 0x56, 0x53, 0x53,
|
|
||||||
0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x59, 0x0a, 0x13, 0x56,
|
|
||||||
0x65, 0x6e, 0x64, 0x6f, 0x72, 0x53, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, 0x45, 0x6e, 0x74,
|
|
||||||
0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
|
|
||||||
0x03, 0x6b, 0x65, 0x79, 0x12, 0x2c, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20,
|
|
||||||
0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x74, 0x72, 0x69, 0x76, 0x79, 0x2e, 0x63, 0x6f, 0x6d, 0x6d,
|
|
||||||
0x6f, 0x6e, 0x2e, 0x53, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, 0x52, 0x05, 0x76, 0x61, 0x6c,
|
|
||||||
0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x42, 0x0a, 0x0a, 0x44, 0x61, 0x74, 0x61, 0x53, 0x6f,
|
|
||||||
0x75, 0x72, 0x63, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
|
|
||||||
0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01,
|
|
||||||
0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18,
|
|
||||||
0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x22, 0x6b, 0x0a, 0x05, 0x4c, 0x61,
|
|
||||||
0x79, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20,
|
|
||||||
0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x64,
|
|
||||||
0x69, 0x66, 0x66, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x69,
|
|
||||||
0x66, 0x66, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f,
|
|
||||||
0x62, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65,
|
|
||||||
0x64, 0x42, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28,
|
|
||||||
0x03, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x22, 0x87, 0x02, 0x0a, 0x0d, 0x43, 0x61, 0x75, 0x73,
|
|
||||||
0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x73,
|
|
||||||
0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x73,
|
|
||||||
0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65,
|
|
||||||
0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65,
|
|
||||||
0x72, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01,
|
|
||||||
0x28, 0x09, 0x52, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x73,
|
|
||||||
0x74, 0x61, 0x72, 0x74, 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52,
|
|
||||||
0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x69, 0x6e, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e,
|
0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x69, 0x6e, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e,
|
||||||
0x64, 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x65, 0x6e,
|
0x64, 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x65, 0x6e,
|
||||||
0x64, 0x4c, 0x69, 0x6e, 0x65, 0x12, 0x26, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x06, 0x20,
|
0x64, 0x4c, 0x69, 0x6e, 0x65, 0x12, 0x26, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x07, 0x20,
|
||||||
0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x72, 0x69, 0x76, 0x79, 0x2e, 0x63, 0x6f, 0x6d, 0x6d,
|
0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x72, 0x69, 0x76, 0x79, 0x2e, 0x63, 0x6f, 0x6d, 0x6d,
|
||||||
0x6f, 0x6e, 0x2e, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x42, 0x0a,
|
0x6f, 0x6e, 0x2e, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a,
|
||||||
0x0e, 0x72, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x65, 0x64, 0x5f, 0x63, 0x61, 0x75, 0x73, 0x65, 0x18,
|
0x05, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6d, 0x61,
|
||||||
0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x74, 0x72, 0x69, 0x76, 0x79, 0x2e, 0x63, 0x6f,
|
0x74, 0x63, 0x68, 0x12, 0x29, 0x0a, 0x05, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01,
|
||||||
0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x65, 0x64, 0x43, 0x61, 0x75,
|
0x28, 0x0b, 0x32, 0x13, 0x2e, 0x74, 0x72, 0x69, 0x76, 0x79, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f,
|
||||||
0x73, 0x65, 0x52, 0x0d, 0x72, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x65, 0x64, 0x43, 0x61, 0x75, 0x73,
|
0x6e, 0x2e, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x05, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x16,
|
||||||
0x65, 0x22, 0xb2, 0x01, 0x0a, 0x04, 0x43, 0x56, 0x53, 0x53, 0x12, 0x1b, 0x0a, 0x09, 0x76, 0x32,
|
0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06,
|
||||||
0x5f, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x76,
|
0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x4a, 0x04, 0x08, 0x09, 0x10, 0x0a, 0x22, 0x5d, 0x0a, 0x06,
|
||||||
0x32, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x76, 0x33, 0x5f, 0x76, 0x65,
|
0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x70, 0x61,
|
||||||
0x63, 0x74, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x76, 0x33, 0x56, 0x65,
|
0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x70, 0x61,
|
||||||
0x63, 0x74, 0x6f, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x76, 0x32, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65,
|
0x74, 0x68, 0x12, 0x37, 0x0a, 0x08, 0x66, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x02,
|
||||||
0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x07, 0x76, 0x32, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12,
|
0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x74, 0x72, 0x69, 0x76, 0x79, 0x2e, 0x63, 0x6f, 0x6d,
|
||||||
0x19, 0x0a, 0x08, 0x76, 0x33, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28,
|
0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x46, 0x69, 0x6e, 0x64, 0x69, 0x6e,
|
||||||
0x01, 0x52, 0x07, 0x76, 0x33, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x76, 0x34,
|
0x67, 0x52, 0x08, 0x66, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x22, 0x99, 0x02, 0x0a, 0x0f,
|
||||||
0x30, 0x5f, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09,
|
0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x12,
|
||||||
0x76, 0x34, 0x30, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x76, 0x34, 0x30,
|
0x32, 0x0a, 0x08, 0x73, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28,
|
||||||
0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x01, 0x52, 0x08, 0x76, 0x34,
|
0x0e, 0x32, 0x16, 0x2e, 0x74, 0x72, 0x69, 0x76, 0x79, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e,
|
||||||
0x30, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x22, 0x98, 0x01, 0x0a, 0x0e, 0x43, 0x75, 0x73, 0x74, 0x6f,
|
0x2e, 0x53, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, 0x52, 0x08, 0x73, 0x65, 0x76, 0x65, 0x72,
|
||||||
0x6d, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70,
|
0x69, 0x74, 0x79, 0x12, 0x3e, 0x0a, 0x08, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x18,
|
||||||
0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a,
|
0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x74, 0x72, 0x69, 0x76, 0x79, 0x2e, 0x63, 0x6f,
|
||||||
0x09, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
|
0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x43, 0x61, 0x74, 0x65,
|
||||||
0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x29, 0x0a, 0x05, 0x6c, 0x61,
|
0x67, 0x6f, 0x72, 0x79, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x08, 0x63, 0x61, 0x74, 0x65, 0x67,
|
||||||
0x79, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x74, 0x72, 0x69, 0x76,
|
0x6f, 0x72, 0x79, 0x12, 0x19, 0x0a, 0x08, 0x70, 0x6b, 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18,
|
||||||
0x79, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x05,
|
0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x6b, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1b,
|
||||||
0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x2a, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20,
|
0x0a, 0x09, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28,
|
||||||
0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
|
0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x6e,
|
||||||
0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x64, 0x61, 0x74,
|
0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12,
|
||||||
0x61, 0x22, 0xf3, 0x01, 0x0a, 0x04, 0x4c, 0x69, 0x6e, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75,
|
0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x06, 0x20,
|
||||||
0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62,
|
0x01, 0x28, 0x02, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x12,
|
||||||
0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20,
|
0x12, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6c,
|
||||||
0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x19, 0x0a, 0x08,
|
0x69, 0x6e, 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28,
|
||||||
0x69, 0x73, 0x5f, 0x63, 0x61, 0x75, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07,
|
0x09, 0x52, 0x04, 0x74, 0x65, 0x78, 0x74, 0x22, 0xed, 0x01, 0x0a, 0x0b, 0x4c, 0x69, 0x63, 0x65,
|
||||||
0x69, 0x73, 0x43, 0x61, 0x75, 0x73, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x6e, 0x6e, 0x6f, 0x74,
|
0x6e, 0x73, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x41, 0x0a, 0x0c, 0x6c, 0x69, 0x63, 0x65, 0x6e,
|
||||||
0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x6e, 0x6e,
|
0x73, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e,
|
||||||
0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x72, 0x75, 0x6e, 0x63,
|
0x74, 0x72, 0x69, 0x76, 0x79, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4c, 0x69, 0x63,
|
||||||
0x61, 0x74, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x74, 0x72, 0x75, 0x6e,
|
0x65, 0x6e, 0x73, 0x65, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0b, 0x6c,
|
||||||
0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x68, 0x69, 0x67, 0x68, 0x6c, 0x69, 0x67,
|
0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x69,
|
||||||
0x68, 0x74, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x68, 0x69, 0x67, 0x68,
|
0x6c, 0x65, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66,
|
||||||
0x6c, 0x69, 0x67, 0x68, 0x74, 0x65, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x69, 0x72, 0x73, 0x74,
|
0x69, 0x6c, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x19, 0x0a, 0x08, 0x70, 0x6b, 0x67, 0x5f, 0x6e,
|
||||||
0x5f, 0x63, 0x61, 0x75, 0x73, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x69,
|
0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x6b, 0x67, 0x4e, 0x61,
|
||||||
0x72, 0x73, 0x74, 0x43, 0x61, 0x75, 0x73, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6c, 0x61, 0x73, 0x74,
|
0x6d, 0x65, 0x12, 0x38, 0x0a, 0x08, 0x66, 0x69, 0x6e, 0x67, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x04,
|
||||||
0x5f, 0x63, 0x61, 0x75, 0x73, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x6c, 0x61,
|
0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x74, 0x72, 0x69, 0x76, 0x79, 0x2e, 0x63, 0x6f, 0x6d,
|
||||||
0x73, 0x74, 0x43, 0x61, 0x75, 0x73, 0x65, 0x22, 0x30, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12,
|
0x6d, 0x6f, 0x6e, 0x2e, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x46, 0x69, 0x6e, 0x64, 0x69,
|
||||||
0x28, 0x0a, 0x05, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12,
|
0x6e, 0x67, 0x52, 0x08, 0x66, 0x69, 0x6e, 0x67, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x29, 0x0a, 0x05,
|
||||||
0x2e, 0x74, 0x72, 0x69, 0x76, 0x79, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4c, 0x69,
|
0x6c, 0x61, 0x79, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x74, 0x72,
|
||||||
0x6e, 0x65, 0x52, 0x05, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x22, 0x43, 0x0a, 0x0d, 0x52, 0x65, 0x6e,
|
0x69, 0x76, 0x79, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4c, 0x61, 0x79, 0x65, 0x72,
|
||||||
0x64, 0x65, 0x72, 0x65, 0x64, 0x43, 0x61, 0x75, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x61,
|
0x52, 0x05, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x22, 0x98, 0x01, 0x0a, 0x0e, 0x4c, 0x69, 0x63, 0x65,
|
||||||
0x77, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x72, 0x61, 0x77, 0x12, 0x20, 0x0a, 0x0b,
|
0x6e, 0x73, 0x65, 0x46, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x3e, 0x0a, 0x08, 0x63, 0x61,
|
||||||
0x68, 0x69, 0x67, 0x68, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28,
|
0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x74,
|
||||||
0x09, 0x52, 0x0b, 0x68, 0x69, 0x67, 0x68, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x65, 0x64, 0x22, 0xb7,
|
0x72, 0x69, 0x76, 0x79, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4c, 0x69, 0x63, 0x65,
|
||||||
0x02, 0x0a, 0x0d, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x46, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67,
|
0x6e, 0x73, 0x65, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x2e, 0x45, 0x6e, 0x75, 0x6d,
|
||||||
0x12, 0x17, 0x0a, 0x07, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
|
0x52, 0x08, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61,
|
||||||
0x09, 0x52, 0x06, 0x72, 0x75, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x61, 0x74,
|
0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1e,
|
||||||
0x65, 0x67, 0x6f, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x61, 0x74,
|
0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01,
|
||||||
0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74,
|
0x28, 0x02, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x12,
|
||||||
0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74,
|
0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6c, 0x69,
|
||||||
0x79, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09,
|
0x6e, 0x6b, 0x22, 0x95, 0x01, 0x0a, 0x0f, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x43, 0x61,
|
||||||
0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74,
|
0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x22, 0x81, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12,
|
||||||
0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x73, 0x74, 0x61,
|
0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00,
|
||||||
0x72, 0x74, 0x4c, 0x69, 0x6e, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x6c, 0x69,
|
0x12, 0x0d, 0x0a, 0x09, 0x46, 0x4f, 0x52, 0x42, 0x49, 0x44, 0x44, 0x45, 0x4e, 0x10, 0x01, 0x12,
|
||||||
0x6e, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x4c, 0x69, 0x6e,
|
0x0e, 0x0a, 0x0a, 0x52, 0x45, 0x53, 0x54, 0x52, 0x49, 0x43, 0x54, 0x45, 0x44, 0x10, 0x02, 0x12,
|
||||||
0x65, 0x12, 0x26, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32,
|
0x0e, 0x0a, 0x0a, 0x52, 0x45, 0x43, 0x49, 0x50, 0x52, 0x4f, 0x43, 0x41, 0x4c, 0x10, 0x03, 0x12,
|
||||||
0x12, 0x2e, 0x74, 0x72, 0x69, 0x76, 0x79, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x43,
|
0x0a, 0x0a, 0x06, 0x4e, 0x4f, 0x54, 0x49, 0x43, 0x45, 0x10, 0x04, 0x12, 0x0e, 0x0a, 0x0a, 0x50,
|
||||||
0x6f, 0x64, 0x65, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x61, 0x74,
|
0x45, 0x52, 0x4d, 0x49, 0x53, 0x53, 0x49, 0x56, 0x45, 0x10, 0x05, 0x12, 0x10, 0x0a, 0x0c, 0x55,
|
||||||
0x63, 0x68, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x12,
|
0x4e, 0x45, 0x4e, 0x43, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x45, 0x44, 0x10, 0x06, 0x12, 0x0b, 0x0a,
|
||||||
0x29, 0x0a, 0x05, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13,
|
0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x07, 0x22, 0x4e, 0x0a, 0x0b, 0x4c, 0x69,
|
||||||
0x2e, 0x74, 0x72, 0x69, 0x76, 0x79, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4c, 0x61,
|
0x63, 0x65, 0x6e, 0x73, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3f, 0x0a, 0x04, 0x45, 0x6e, 0x75,
|
||||||
0x79, 0x65, 0x72, 0x52, 0x05, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66,
|
0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44,
|
||||||
0x66, 0x73, 0x65, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73,
|
0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x44, 0x50, 0x4b, 0x47, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06,
|
||||||
0x65, 0x74, 0x4a, 0x04, 0x08, 0x09, 0x10, 0x0a, 0x22, 0x5d, 0x0a, 0x06, 0x53, 0x65, 0x63, 0x72,
|
0x48, 0x45, 0x41, 0x44, 0x45, 0x52, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x4c, 0x49, 0x43, 0x45,
|
||||||
0x65, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01,
|
0x4e, 0x53, 0x45, 0x5f, 0x46, 0x49, 0x4c, 0x45, 0x10, 0x03, 0x2a, 0x44, 0x0a, 0x08, 0x53, 0x65,
|
||||||
0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x70, 0x61, 0x74, 0x68, 0x12, 0x37,
|
0x76, 0x65, 0x72, 0x69, 0x74, 0x79, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57,
|
||||||
0x0a, 0x08, 0x66, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b,
|
0x4e, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x4c, 0x4f, 0x57, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06,
|
||||||
0x32, 0x1b, 0x2e, 0x74, 0x72, 0x69, 0x76, 0x79, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e,
|
0x4d, 0x45, 0x44, 0x49, 0x55, 0x4d, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x48, 0x49, 0x47, 0x48,
|
||||||
0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x46, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x08, 0x66,
|
0x10, 0x03, 0x12, 0x0c, 0x0a, 0x08, 0x43, 0x52, 0x49, 0x54, 0x49, 0x43, 0x41, 0x4c, 0x10, 0x04,
|
||||||
0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x22, 0x99, 0x02, 0x0a, 0x0f, 0x44, 0x65, 0x74, 0x65,
|
0x42, 0x31, 0x5a, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61,
|
||||||
0x63, 0x74, 0x65, 0x64, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x12, 0x32, 0x0a, 0x08, 0x73,
|
0x71, 0x75, 0x61, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x2f, 0x74, 0x72, 0x69, 0x76,
|
||||||
0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e,
|
0x79, 0x2f, 0x72, 0x70, 0x63, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x3b, 0x63, 0x6f, 0x6d,
|
||||||
0x74, 0x72, 0x69, 0x76, 0x79, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x53, 0x65, 0x76,
|
0x6d, 0x6f, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||||
0x65, 0x72, 0x69, 0x74, 0x79, 0x52, 0x08, 0x73, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, 0x12,
|
|
||||||
0x3e, 0x0a, 0x08, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28,
|
|
||||||
0x0e, 0x32, 0x22, 0x2e, 0x74, 0x72, 0x69, 0x76, 0x79, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e,
|
|
||||||
0x2e, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79,
|
|
||||||
0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x08, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x12,
|
|
||||||
0x19, 0x0a, 0x08, 0x70, 0x6b, 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28,
|
|
||||||
0x09, 0x52, 0x07, 0x70, 0x6b, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x69,
|
|
||||||
0x6c, 0x65, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66,
|
|
||||||
0x69, 0x6c, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18,
|
|
||||||
0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63,
|
|
||||||
0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52,
|
|
||||||
0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6c,
|
|
||||||
0x69, 0x6e, 0x6b, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x12,
|
|
||||||
0x12, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74,
|
|
||||||
0x65, 0x78, 0x74, 0x22, 0xed, 0x01, 0x0a, 0x0b, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x46,
|
|
||||||
0x69, 0x6c, 0x65, 0x12, 0x41, 0x0a, 0x0c, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x5f, 0x74,
|
|
||||||
0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x74, 0x72, 0x69, 0x76,
|
|
||||||
0x79, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65,
|
|
||||||
0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0b, 0x6c, 0x69, 0x63, 0x65, 0x6e,
|
|
||||||
0x73, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x70,
|
|
||||||
0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x50,
|
|
||||||
0x61, 0x74, 0x68, 0x12, 0x19, 0x0a, 0x08, 0x70, 0x6b, 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18,
|
|
||||||
0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x6b, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x38,
|
|
||||||
0x0a, 0x08, 0x66, 0x69, 0x6e, 0x67, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b,
|
|
||||||
0x32, 0x1c, 0x2e, 0x74, 0x72, 0x69, 0x76, 0x79, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e,
|
|
||||||
0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x46, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x08,
|
|
||||||
0x66, 0x69, 0x6e, 0x67, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x29, 0x0a, 0x05, 0x6c, 0x61, 0x79, 0x65,
|
|
||||||
0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x74, 0x72, 0x69, 0x76, 0x79, 0x2e,
|
|
||||||
0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x05, 0x6c, 0x61,
|
|
||||||
0x79, 0x65, 0x72, 0x22, 0x98, 0x01, 0x0a, 0x0e, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x46,
|
|
||||||
0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x3e, 0x0a, 0x08, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f,
|
|
||||||
0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x74, 0x72, 0x69, 0x76, 0x79,
|
|
||||||
0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x43,
|
|
||||||
0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x08, 0x63, 0x61,
|
|
||||||
0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02,
|
|
||||||
0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f,
|
|
||||||
0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a,
|
|
||||||
0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x69,
|
|
||||||
0x6e, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x22, 0x95,
|
|
||||||
0x01, 0x0a, 0x0f, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f,
|
|
||||||
0x72, 0x79, 0x22, 0x81, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x55,
|
|
||||||
0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09,
|
|
||||||
0x46, 0x4f, 0x52, 0x42, 0x49, 0x44, 0x44, 0x45, 0x4e, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x52,
|
|
||||||
0x45, 0x53, 0x54, 0x52, 0x49, 0x43, 0x54, 0x45, 0x44, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x52,
|
|
||||||
0x45, 0x43, 0x49, 0x50, 0x52, 0x4f, 0x43, 0x41, 0x4c, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x4e,
|
|
||||||
0x4f, 0x54, 0x49, 0x43, 0x45, 0x10, 0x04, 0x12, 0x0e, 0x0a, 0x0a, 0x50, 0x45, 0x52, 0x4d, 0x49,
|
|
||||||
0x53, 0x53, 0x49, 0x56, 0x45, 0x10, 0x05, 0x12, 0x10, 0x0a, 0x0c, 0x55, 0x4e, 0x45, 0x4e, 0x43,
|
|
||||||
0x55, 0x4d, 0x42, 0x45, 0x52, 0x45, 0x44, 0x10, 0x06, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b,
|
|
||||||
0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x07, 0x22, 0x4e, 0x0a, 0x0b, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73,
|
|
||||||
0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3f, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a,
|
|
||||||
0x0b, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x08,
|
|
||||||
0x0a, 0x04, 0x44, 0x50, 0x4b, 0x47, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x48, 0x45, 0x41, 0x44,
|
|
||||||
0x45, 0x52, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x5f,
|
|
||||||
0x46, 0x49, 0x4c, 0x45, 0x10, 0x03, 0x2a, 0x44, 0x0a, 0x08, 0x53, 0x65, 0x76, 0x65, 0x72, 0x69,
|
|
||||||
0x74, 0x79, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12,
|
|
||||||
0x07, 0x0a, 0x03, 0x4c, 0x4f, 0x57, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x4d, 0x45, 0x44, 0x49,
|
|
||||||
0x55, 0x4d, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x48, 0x49, 0x47, 0x48, 0x10, 0x03, 0x12, 0x0c,
|
|
||||||
0x0a, 0x08, 0x43, 0x52, 0x49, 0x54, 0x49, 0x43, 0x41, 0x4c, 0x10, 0x04, 0x42, 0x31, 0x5a, 0x2f,
|
|
||||||
0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x71, 0x75, 0x61, 0x73,
|
|
||||||
0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x2f, 0x74, 0x72, 0x69, 0x76, 0x79, 0x2f, 0x72, 0x70,
|
|
||||||
0x63, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x3b, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x62,
|
|
||||||
0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
|||||||
@@ -119,7 +119,7 @@ message DetectedMisconfiguration {
|
|||||||
string status = 11;
|
string status = 11;
|
||||||
Layer layer = 12;
|
Layer layer = 12;
|
||||||
CauseMetadata cause_metadata = 13;
|
CauseMetadata cause_metadata = 13;
|
||||||
string avd_id = 14;
|
string avd_id = 14 [deprecated = true];
|
||||||
string query = 15;
|
string query = 15;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user