diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index d36f85a..58d8395 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -15,7 +15,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Check out code onto GOPATH - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 + uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 # https://github.com/mvdan/github-actions-golang#how-do-i-set-up-caching-between-builds - uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2 diff --git a/.github/workflows/verify.yaml b/.github/workflows/verify.yaml index c5ab081..e644d59 100644 --- a/.github/workflows/verify.yaml +++ b/.github/workflows/verify.yaml @@ -20,7 +20,7 @@ jobs: steps: - name: Check out code - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 + uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 with: path: ./src/github.com/${{ github.repository }} fetch-depth: 0 diff --git a/go.mod b/go.mod index 300f238..249f47b 100644 --- a/go.mod +++ b/go.mod @@ -5,7 +5,7 @@ go 1.23.1 require ( chainguard.dev/go-grpc-kit v0.17.6 chainguard.dev/go-oidctest v0.3.1 - cloud.google.com/go/compute/metadata v0.5.1 + cloud.google.com/go/compute/metadata v0.5.2 github.com/aws/aws-sdk-go-v2 v1.30.5 github.com/bits-and-blooms/bitset v1.14.3 github.com/chainguard-dev/clog v1.5.1-0.20240811185937-4c523ae4593f @@ -20,9 +20,9 @@ require ( github.com/sigstore/sigstore v1.8.9 golang.org/x/exp v0.0.0-20240909161429-701f63a606c0 golang.org/x/oauth2 v0.23.0 - google.golang.org/api v0.197.0 + google.golang.org/api v0.198.0 google.golang.org/genproto/googleapis/api v0.0.0-20240903143218-8af14fe29dc1 - google.golang.org/grpc v1.66.2 + google.golang.org/grpc v1.67.0 google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 google.golang.org/protobuf v1.34.2 k8s.io/apimachinery v0.31.1 @@ -52,7 +52,7 @@ require ( github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect - github.com/prometheus/client_golang v1.20.3 // indirect + github.com/prometheus/client_golang v1.20.4 // indirect github.com/prometheus/client_model v0.6.1 // indirect github.com/prometheus/common v0.59.1 // indirect github.com/prometheus/procfs v0.15.1 // indirect diff --git a/go.sum b/go.sum index 018bf4f..f44fde0 100644 --- a/go.sum +++ b/go.sum @@ -7,8 +7,8 @@ cloud.google.com/go/auth v0.9.4 h1:DxF7imbEbiFu9+zdKC6cKBko1e8XeJnipNqIbWZ+kDI= cloud.google.com/go/auth v0.9.4/go.mod h1:SHia8n6//Ya940F1rLimhJCjjx7KE17t0ctFEci3HkA= cloud.google.com/go/auth/oauth2adapt v0.2.4 h1:0GWE/FUsXhf6C+jAkWgYm7X9tK8cuEIfy19DBn6B6bY= cloud.google.com/go/auth/oauth2adapt v0.2.4/go.mod h1:jC/jOpwFP6JBxhB3P5Rr0a9HLMC/Pe3eaL4NmdvqPtc= -cloud.google.com/go/compute/metadata v0.5.1 h1:NM6oZeZNlYjiwYje+sYFjEpP0Q0zCan1bmQW/KmIrGs= -cloud.google.com/go/compute/metadata v0.5.1/go.mod h1:C66sj2AluDcIqakBq/M8lw8/ybHgOZqin2obFxa/E5k= +cloud.google.com/go/compute/metadata v0.5.2 h1:UxK4uu/Tn+I3p2dYWTfiX4wva7aYlKixAHn3fyqngqo= +cloud.google.com/go/compute/metadata v0.5.2/go.mod h1:C66sj2AluDcIqakBq/M8lw8/ybHgOZqin2obFxa/E5k= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/aws/aws-sdk-go-v2 v1.30.5 h1:mWSRTwQAb0aLE17dSzztCVJWI9+cRMgqebndjwDyK0g= github.com/aws/aws-sdk-go-v2 v1.30.5/go.mod h1:CT+ZPWXbYrci8chcARI3OmI/qgd+f6WtuLOoaIA8PR0= @@ -138,8 +138,8 @@ github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZN github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/prometheus/client_golang v0.9.2/go.mod h1:OsXs2jCmiKlQ1lTBmv21f2mNfw4xf/QclQDMrYNZzcM= -github.com/prometheus/client_golang v1.20.3 h1:oPksm4K8B+Vt35tUhw6GbSNSgVlVSBH0qELP/7u83l4= -github.com/prometheus/client_golang v1.20.3/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= +github.com/prometheus/client_golang v1.20.4 h1:Tgh3Yr67PaOv/uTqloMsCEdeuFTatm5zIq5+qNN23vI= +github.com/prometheus/client_golang v1.20.4/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= @@ -305,8 +305,8 @@ golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -google.golang.org/api v0.197.0 h1:x6CwqQLsFiA5JKAiGyGBjc2bNtHtLddhJCE2IKuhhcQ= -google.golang.org/api v0.197.0/go.mod h1:AuOuo20GoQ331nq7DquGHlU6d+2wN2fZ8O0ta60nRNw= +google.golang.org/api v0.198.0 h1:OOH5fZatk57iN0A7tjJQzt6aPfYQ1JiWkt1yGseazks= +google.golang.org/api v0.198.0/go.mod h1:/Lblzl3/Xqqk9hw/yS97TImKTUwnf1bv89v7+OagJzc= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= @@ -324,8 +324,8 @@ google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQ google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= -google.golang.org/grpc v1.66.2 h1:3QdXkuq3Bkh7w+ywLdLvM56cmGvQHUMZpiCzt6Rqaoo= -google.golang.org/grpc v1.66.2/go.mod h1:s3/l6xSSCURdVfAnL+TqCNMyTDAGN6+lZeVxnZR128Y= +google.golang.org/grpc v1.67.0 h1:IdH9y6PF5MPSdAntIcpjQ+tXO41pcQsfZV2RxtQgVcw= +google.golang.org/grpc v1.67.0/go.mod h1:1gLDyUQU7CTLJI90u3nXZ9ekeghjeM7pTDZlqFNg2AA= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 h1:F29+wU6Ee6qgu9TddPgooOdaqsxTMunOoj8KA5yuS5A= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1/go.mod h1:5KF+wpkbTSbGcR9zteSqZV6fqFOWBl4Yde8En8MryZA= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= diff --git a/proto/capabilities/capabilities.pb.go b/proto/capabilities/capabilities.pb.go index ee0f859..78469d8 100644 --- a/proto/capabilities/capabilities.pb.go +++ b/proto/capabilities/capabilities.pb.go @@ -121,6 +121,8 @@ const ( Capability_CAP_VULN_REPORT_CREATE Capability = 1660 Capability_CAP_VULN_REPORT_LIST Capability = 1661 Capability_CAP_VULN_CREATE Capability = 1662 + // Custom Image Build + Capability_CAP_BUILD_REPORT_LIST Capability = 1670 // Deprecated: Marked as deprecated in capabilities.proto. Capability_CAP_SIGSTORE_CREATE Capability = 1701 // Deprecated: Marked as deprecated in capabilities.proto. @@ -218,6 +220,7 @@ var ( 1660: "CAP_VULN_REPORT_CREATE", 1661: "CAP_VULN_REPORT_LIST", 1662: "CAP_VULN_CREATE", + 1670: "CAP_BUILD_REPORT_LIST", 1701: "CAP_SIGSTORE_CREATE", 1702: "CAP_SIGSTORE_UPDATE", 1703: "CAP_SIGSTORE_LIST", @@ -301,6 +304,7 @@ var ( "CAP_VULN_REPORT_CREATE": 1660, "CAP_VULN_REPORT_LIST": 1661, "CAP_VULN_CREATE": 1662, + "CAP_BUILD_REPORT_LIST": 1670, "CAP_SIGSTORE_CREATE": 1701, "CAP_SIGSTORE_UPDATE": 1702, "CAP_SIGSTORE_LIST": 1703, @@ -378,7 +382,7 @@ var file_capabilities_proto_rawDesc = []byte{ 0x2e, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2a, - 0x83, 0x25, 0x0a, 0x0a, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x0b, + 0xbd, 0x25, 0x0a, 0x0a, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x33, 0x0a, 0x15, 0x43, 0x41, 0x50, 0x5f, 0x49, 0x41, 0x4d, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x53, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x10, 0x65, 0x1a, 0x18, 0xa8, 0xcb, 0x91, 0x4d, 0x01, 0x9a, 0xaf, 0xa8, @@ -652,42 +656,46 @@ var file_capabilities_proto_rawDesc = []byte{ 0x75, 0x6c, 0x6e, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x2c, 0x0a, 0x0f, 0x43, 0x41, 0x50, 0x5f, 0x56, 0x55, 0x4c, 0x4e, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x10, 0xfe, 0x0c, 0x1a, 0x16, 0xa8, 0xcb, 0x91, 0x4d, 0x50, 0x9a, 0xaf, 0xa8, 0xd2, - 0x05, 0x0b, 0x76, 0x75, 0x6c, 0x6e, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x36, 0x0a, - 0x13, 0x43, 0x41, 0x50, 0x5f, 0x53, 0x49, 0x47, 0x53, 0x54, 0x4f, 0x52, 0x45, 0x5f, 0x43, 0x52, - 0x45, 0x41, 0x54, 0x45, 0x10, 0xa5, 0x0d, 0x1a, 0x1c, 0xa8, 0xcb, 0x91, 0x4d, 0x2a, 0x9a, 0xaf, - 0xa8, 0xd2, 0x05, 0x0f, 0x73, 0x69, 0x67, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x08, 0x01, 0x12, 0x36, 0x0a, 0x13, 0x43, 0x41, 0x50, 0x5f, 0x53, 0x49, 0x47, - 0x53, 0x54, 0x4f, 0x52, 0x45, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x10, 0xa6, 0x0d, 0x1a, - 0x1c, 0xa8, 0xcb, 0x91, 0x4d, 0x2b, 0x9a, 0xaf, 0xa8, 0xd2, 0x05, 0x0f, 0x73, 0x69, 0x67, 0x73, - 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x08, 0x01, 0x12, 0x32, 0x0a, - 0x11, 0x43, 0x41, 0x50, 0x5f, 0x53, 0x49, 0x47, 0x53, 0x54, 0x4f, 0x52, 0x45, 0x5f, 0x4c, 0x49, - 0x53, 0x54, 0x10, 0xa7, 0x0d, 0x1a, 0x1a, 0xa8, 0xcb, 0x91, 0x4d, 0x2c, 0x9a, 0xaf, 0xa8, 0xd2, - 0x05, 0x0d, 0x73, 0x69, 0x67, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x6c, 0x69, 0x73, 0x74, 0x08, - 0x01, 0x12, 0x36, 0x0a, 0x13, 0x43, 0x41, 0x50, 0x5f, 0x53, 0x49, 0x47, 0x53, 0x54, 0x4f, 0x52, - 0x45, 0x5f, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x10, 0xa8, 0x0d, 0x1a, 0x1c, 0xa8, 0xcb, 0x91, - 0x4d, 0x2d, 0x9a, 0xaf, 0xa8, 0xd2, 0x05, 0x0f, 0x73, 0x69, 0x67, 0x73, 0x74, 0x6f, 0x72, 0x65, - 0x2e, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x08, 0x01, 0x12, 0x4e, 0x0a, 0x1f, 0x43, 0x41, 0x50, - 0x5f, 0x53, 0x49, 0x47, 0x53, 0x54, 0x4f, 0x52, 0x45, 0x5f, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, - 0x49, 0x43, 0x41, 0x54, 0x45, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x10, 0xa9, 0x0d, 0x1a, - 0x28, 0xa8, 0xcb, 0x91, 0x4d, 0x2e, 0x9a, 0xaf, 0xa8, 0xd2, 0x05, 0x1b, 0x73, 0x69, 0x67, 0x73, - 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, - 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x08, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x43, 0x41, 0x50, - 0x5f, 0x47, 0x55, 0x4c, 0x46, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x10, 0x90, 0x4e, 0x1a, 0x15, - 0xa8, 0xcb, 0x91, 0x4d, 0x2f, 0x9a, 0xaf, 0xa8, 0xd2, 0x05, 0x0a, 0x67, 0x75, 0x6c, 0x66, 0x73, - 0x74, 0x72, 0x65, 0x61, 0x6d, 0x3a, 0x38, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x45, 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x18, 0xf3, 0x85, 0xa5, 0x5a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x3a, - 0x36, 0x0a, 0x03, 0x62, 0x69, 0x74, 0x12, 0x21, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xb5, 0x99, 0xd2, 0x09, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x03, 0x62, 0x69, 0x74, 0x42, 0x5d, 0x0a, 0x1f, 0x64, 0x65, 0x76, 0x2e, 0x63, - 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x73, 0x64, 0x6b, 0x2e, 0x63, 0x61, - 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x42, 0x11, 0x43, 0x61, 0x70, 0x61, - 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, - 0x25, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x64, 0x65, 0x76, 0x2f, - 0x73, 0x64, 0x6b, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, - 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x05, 0x0b, 0x76, 0x75, 0x6c, 0x6e, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x38, 0x0a, + 0x15, 0x43, 0x41, 0x50, 0x5f, 0x42, 0x55, 0x49, 0x4c, 0x44, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, + 0x54, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x86, 0x0d, 0x1a, 0x1c, 0xa8, 0xcb, 0x91, 0x4d, 0x51, + 0x9a, 0xaf, 0xa8, 0xd2, 0x05, 0x11, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x72, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x2e, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x36, 0x0a, 0x13, 0x43, 0x41, 0x50, 0x5f, 0x53, + 0x49, 0x47, 0x53, 0x54, 0x4f, 0x52, 0x45, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x10, 0xa5, + 0x0d, 0x1a, 0x1c, 0xa8, 0xcb, 0x91, 0x4d, 0x2a, 0x9a, 0xaf, 0xa8, 0xd2, 0x05, 0x0f, 0x73, 0x69, + 0x67, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x08, 0x01, 0x12, + 0x36, 0x0a, 0x13, 0x43, 0x41, 0x50, 0x5f, 0x53, 0x49, 0x47, 0x53, 0x54, 0x4f, 0x52, 0x45, 0x5f, + 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x10, 0xa6, 0x0d, 0x1a, 0x1c, 0xa8, 0xcb, 0x91, 0x4d, 0x2b, + 0x9a, 0xaf, 0xa8, 0xd2, 0x05, 0x0f, 0x73, 0x69, 0x67, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x75, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x08, 0x01, 0x12, 0x32, 0x0a, 0x11, 0x43, 0x41, 0x50, 0x5f, 0x53, + 0x49, 0x47, 0x53, 0x54, 0x4f, 0x52, 0x45, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0xa7, 0x0d, 0x1a, + 0x1a, 0xa8, 0xcb, 0x91, 0x4d, 0x2c, 0x9a, 0xaf, 0xa8, 0xd2, 0x05, 0x0d, 0x73, 0x69, 0x67, 0x73, + 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x6c, 0x69, 0x73, 0x74, 0x08, 0x01, 0x12, 0x36, 0x0a, 0x13, 0x43, + 0x41, 0x50, 0x5f, 0x53, 0x49, 0x47, 0x53, 0x54, 0x4f, 0x52, 0x45, 0x5f, 0x44, 0x45, 0x4c, 0x45, + 0x54, 0x45, 0x10, 0xa8, 0x0d, 0x1a, 0x1c, 0xa8, 0xcb, 0x91, 0x4d, 0x2d, 0x9a, 0xaf, 0xa8, 0xd2, + 0x05, 0x0f, 0x73, 0x69, 0x67, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x64, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x08, 0x01, 0x12, 0x4e, 0x0a, 0x1f, 0x43, 0x41, 0x50, 0x5f, 0x53, 0x49, 0x47, 0x53, 0x54, + 0x4f, 0x52, 0x45, 0x5f, 0x43, 0x45, 0x52, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x45, 0x5f, + 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x10, 0xa9, 0x0d, 0x1a, 0x28, 0xa8, 0xcb, 0x91, 0x4d, 0x2e, + 0x9a, 0xaf, 0xa8, 0xd2, 0x05, 0x1b, 0x73, 0x69, 0x67, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x63, + 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x08, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x43, 0x41, 0x50, 0x5f, 0x47, 0x55, 0x4c, 0x46, 0x53, + 0x54, 0x52, 0x45, 0x41, 0x4d, 0x10, 0x90, 0x4e, 0x1a, 0x15, 0xa8, 0xcb, 0x91, 0x4d, 0x2f, 0x9a, + 0xaf, 0xa8, 0xd2, 0x05, 0x0a, 0x67, 0x75, 0x6c, 0x66, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x3a, + 0x38, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xf3, 0x85, 0xa5, 0x5a, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x3a, 0x36, 0x0a, 0x03, 0x62, 0x69, 0x74, + 0x12, 0x21, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x4f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x18, 0xb5, 0x99, 0xd2, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x62, 0x69, + 0x74, 0x42, 0x5d, 0x0a, 0x1f, 0x64, 0x65, 0x76, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, + 0x61, 0x72, 0x64, 0x2e, 0x73, 0x64, 0x6b, 0x2e, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, + 0x74, 0x69, 0x65, 0x73, 0x42, 0x11, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, + 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x25, 0x63, 0x68, 0x61, 0x69, 0x6e, + 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x64, 0x65, 0x76, 0x2f, 0x73, 0x64, 0x6b, 0x2f, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2f, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, + 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/proto/capabilities/capabilities.proto b/proto/capabilities/capabilities.proto index 1209a6c..c27d583 100644 --- a/proto/capabilities/capabilities.proto +++ b/proto/capabilities/capabilities.proto @@ -130,6 +130,9 @@ enum Capability { CAP_VULN_REPORT_LIST = 1661 [(name) = "vuln_report.list", (bit) = 79]; CAP_VULN_CREATE = 1662 [(name) = "vuln.create", (bit) = 80]; + // Custom Image Build + CAP_BUILD_REPORT_LIST = 1670 [(name) = "build_report.list", (bit) = 81]; + // Sigstore-aas CAP_SIGSTORE_CREATE = 1701 [(name) = "sigstore.create", (bit) = 42, deprecated = true]; diff --git a/proto/platform/registry/v1/registry.platform.pb.go b/proto/platform/registry/v1/registry.platform.pb.go index 2667b94..3477095 100644 --- a/proto/platform/registry/v1/registry.platform.pb.go +++ b/proto/platform/registry/v1/registry.platform.pb.go @@ -93,6 +93,55 @@ func (CatalogTier) EnumDescriptor() ([]byte, []int) { return file_registry_platform_proto_rawDescGZIP(), []int{0} } +type BuildReport_Result int32 + +const ( + BuildReport_Unknown BuildReport_Result = 0 + BuildReport_Success BuildReport_Result = 1 + BuildReport_Failure BuildReport_Result = 2 +) + +// Enum value maps for BuildReport_Result. +var ( + BuildReport_Result_name = map[int32]string{ + 0: "Unknown", + 1: "Success", + 2: "Failure", + } + BuildReport_Result_value = map[string]int32{ + "Unknown": 0, + "Success": 1, + "Failure": 2, + } +) + +func (x BuildReport_Result) Enum() *BuildReport_Result { + p := new(BuildReport_Result) + *p = x + return p +} + +func (x BuildReport_Result) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (BuildReport_Result) Descriptor() protoreflect.EnumDescriptor { + return file_registry_platform_proto_enumTypes[1].Descriptor() +} + +func (BuildReport_Result) Type() protoreflect.EnumType { + return &file_registry_platform_proto_enumTypes[1] +} + +func (x BuildReport_Result) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use BuildReport_Result.Descriptor instead. +func (BuildReport_Result) EnumDescriptor() ([]byte, []int) { + return file_registry_platform_proto_rawDescGZIP(), []int{43, 0} +} + type Repo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2839,6 +2888,238 @@ func (x *PackageVersion) GetVersion() string { return "" } +// BuildReportFilter is used to filter BuildReports for ListBuildReports call. +type BuildReportFilter struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // uidp filters records based on their position in the group hierarchy. + Uidp *v1.UIDPFilter `protobuf:"bytes,1,opt,name=uidp,proto3" json:"uidp,omitempty"` +} + +func (x *BuildReportFilter) Reset() { + *x = BuildReportFilter{} + if protoimpl.UnsafeEnabled { + mi := &file_registry_platform_proto_msgTypes[42] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BuildReportFilter) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BuildReportFilter) ProtoMessage() {} + +func (x *BuildReportFilter) ProtoReflect() protoreflect.Message { + mi := &file_registry_platform_proto_msgTypes[42] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BuildReportFilter.ProtoReflect.Descriptor instead. +func (*BuildReportFilter) Descriptor() ([]byte, []int) { + return file_registry_platform_proto_rawDescGZIP(), []int{42} +} + +func (x *BuildReportFilter) GetUidp() *v1.UIDPFilter { + if x != nil { + return x.Uidp + } + return nil +} + +// BuildReport is a record of a build, including the configuration used, the result, and the log. +// +// These are created by the build system, the clients should not create/update these themselves, +// but can read them to see the build information as well as build results. +type BuildReport struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // id, identifier of this BuildReport, a UIDP under a Repo. + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + // The configuration used to build the image, in APKO build config JSON. + Config string `protobuf:"bytes,2,opt,name=config,proto3" json:"config,omitempty"` + // The version-locked configuration used to build the image, in APKO build config JSON. + LockedConfig string `protobuf:"bytes,3,opt,name=locked_config,json=lockedConfig,proto3" json:"locked_config,omitempty"` + // The result of the build. + Result BuildReport_Result `protobuf:"varint,4,opt,name=result,proto3,enum=chainguard.platform.registry.BuildReport_Result" json:"result,omitempty"` + // The warnings generated during the build. + Warnings []string `protobuf:"bytes,5,rep,name=warnings,proto3" json:"warnings,omitempty"` + // The build log. For the moment, this is the build log's content. + // This could later change to an URI if the build log gets large enough. + Log string `protobuf:"bytes,6,opt,name=log,proto3" json:"log,omitempty"` + // The digest of the image built, in case of success. + Digest string `protobuf:"bytes,7,opt,name=digest,proto3" json:"digest,omitempty"` + // The version of the APKO used to build the image. + ApkoVersion string `protobuf:"bytes,8,opt,name=apko_version,json=apkoVersion,proto3" json:"apko_version,omitempty"` + // The start time of the build. It is set by the server automatically, + // anything written by the client will be ignored. + StartedAt *timestamppb.Timestamp `protobuf:"bytes,9,opt,name=started_at,json=startedAt,proto3" json:"started_at,omitempty"` + // The end time of the build. Must be after the started_at time. + CompletedAt *timestamppb.Timestamp `protobuf:"bytes,10,opt,name=completed_at,json=completedAt,proto3" json:"completed_at,omitempty"` +} + +func (x *BuildReport) Reset() { + *x = BuildReport{} + if protoimpl.UnsafeEnabled { + mi := &file_registry_platform_proto_msgTypes[43] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BuildReport) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BuildReport) ProtoMessage() {} + +func (x *BuildReport) ProtoReflect() protoreflect.Message { + mi := &file_registry_platform_proto_msgTypes[43] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BuildReport.ProtoReflect.Descriptor instead. +func (*BuildReport) Descriptor() ([]byte, []int) { + return file_registry_platform_proto_rawDescGZIP(), []int{43} +} + +func (x *BuildReport) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *BuildReport) GetConfig() string { + if x != nil { + return x.Config + } + return "" +} + +func (x *BuildReport) GetLockedConfig() string { + if x != nil { + return x.LockedConfig + } + return "" +} + +func (x *BuildReport) GetResult() BuildReport_Result { + if x != nil { + return x.Result + } + return BuildReport_Unknown +} + +func (x *BuildReport) GetWarnings() []string { + if x != nil { + return x.Warnings + } + return nil +} + +func (x *BuildReport) GetLog() string { + if x != nil { + return x.Log + } + return "" +} + +func (x *BuildReport) GetDigest() string { + if x != nil { + return x.Digest + } + return "" +} + +func (x *BuildReport) GetApkoVersion() string { + if x != nil { + return x.ApkoVersion + } + return "" +} + +func (x *BuildReport) GetStartedAt() *timestamppb.Timestamp { + if x != nil { + return x.StartedAt + } + return nil +} + +func (x *BuildReport) GetCompletedAt() *timestamppb.Timestamp { + if x != nil { + return x.CompletedAt + } + return nil +} + +// BuildReportList is a list of BuildReports. +type BuildReportList struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Reports []*BuildReport `protobuf:"bytes,1,rep,name=reports,proto3" json:"reports,omitempty"` +} + +func (x *BuildReportList) Reset() { + *x = BuildReportList{} + if protoimpl.UnsafeEnabled { + mi := &file_registry_platform_proto_msgTypes[44] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BuildReportList) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BuildReportList) ProtoMessage() {} + +func (x *BuildReportList) ProtoReflect() protoreflect.Message { + mi := &file_registry_platform_proto_msgTypes[44] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BuildReportList.ProtoReflect.Descriptor instead. +func (*BuildReportList) Descriptor() ([]byte, []int) { + return file_registry_platform_proto_rawDescGZIP(), []int{44} +} + +func (x *BuildReportList) GetReports() []*BuildReport { + if x != nil { + return x.Reports + } + return nil +} + // ExposedPorts a set of ports to expose from a container running this image. type ImageConfig_ExposedPort struct { state protoimpl.MessageState @@ -2849,7 +3130,7 @@ type ImageConfig_ExposedPort struct { func (x *ImageConfig_ExposedPort) Reset() { *x = ImageConfig_ExposedPort{} if protoimpl.UnsafeEnabled { - mi := &file_registry_platform_proto_msgTypes[42] + mi := &file_registry_platform_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2862,7 +3143,7 @@ func (x *ImageConfig_ExposedPort) String() string { func (*ImageConfig_ExposedPort) ProtoMessage() {} func (x *ImageConfig_ExposedPort) ProtoReflect() protoreflect.Message { - mi := &file_registry_platform_proto_msgTypes[42] + mi := &file_registry_platform_proto_msgTypes[45] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2887,7 +3168,7 @@ type ImageConfig_Volume struct { func (x *ImageConfig_Volume) Reset() { *x = ImageConfig_Volume{} if protoimpl.UnsafeEnabled { - mi := &file_registry_platform_proto_msgTypes[44] + mi := &file_registry_platform_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2900,7 +3181,7 @@ func (x *ImageConfig_Volume) String() string { func (*ImageConfig_Volume) ProtoMessage() {} func (x *ImageConfig_Volume) ProtoReflect() protoreflect.Message { - mi := &file_registry_platform_proto_msgTypes[44] + mi := &file_registry_platform_proto_msgTypes[47] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2929,7 +3210,7 @@ type PackagesDiff_ChangedPackageReference struct { func (x *PackagesDiff_ChangedPackageReference) Reset() { *x = PackagesDiff_ChangedPackageReference{} if protoimpl.UnsafeEnabled { - mi := &file_registry_platform_proto_msgTypes[47] + mi := &file_registry_platform_proto_msgTypes[50] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2942,7 +3223,7 @@ func (x *PackagesDiff_ChangedPackageReference) String() string { func (*PackagesDiff_ChangedPackageReference) ProtoMessage() {} func (x *PackagesDiff_ChangedPackageReference) ProtoReflect() protoreflect.Message { - mi := &file_registry_platform_proto_msgTypes[47] + mi := &file_registry_platform_proto_msgTypes[50] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3391,224 +3672,272 @@ var file_registry_platform_proto_rawDesc = []byte{ 0x65, 0x61, 0x73, 0x65, 0x44, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2a, 0x78, 0x0a, 0x0b, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, - 0x54, 0x69, 0x65, 0x72, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, - 0x00, 0x12, 0x0c, 0x0a, 0x04, 0x46, 0x52, 0x45, 0x45, 0x10, 0x01, 0x1a, 0x02, 0x08, 0x01, 0x12, - 0x10, 0x0a, 0x08, 0x53, 0x54, 0x41, 0x4e, 0x44, 0x41, 0x52, 0x44, 0x10, 0x02, 0x1a, 0x02, 0x08, - 0x01, 0x12, 0x0f, 0x0a, 0x07, 0x50, 0x52, 0x45, 0x4d, 0x49, 0x55, 0x4d, 0x10, 0x03, 0x1a, 0x02, - 0x08, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x41, 0x50, 0x50, 0x4c, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, - 0x4e, 0x10, 0x04, 0x12, 0x08, 0x0a, 0x04, 0x42, 0x41, 0x53, 0x45, 0x10, 0x05, 0x12, 0x08, 0x0a, - 0x04, 0x46, 0x49, 0x50, 0x53, 0x10, 0x06, 0x12, 0x06, 0x0a, 0x02, 0x41, 0x49, 0x10, 0x07, 0x32, - 0x95, 0x19, 0x0a, 0x08, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x12, 0xe4, 0x01, 0x0a, - 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x12, 0x2f, 0x2e, 0x63, 0x68, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x4f, 0x0a, 0x11, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x3a, 0x0a, 0x04, 0x75, 0x69, + 0x64, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, + 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x63, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x55, 0x49, 0x44, 0x50, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x52, 0x04, 0x75, 0x69, 0x64, 0x70, 0x22, 0xb8, 0x03, 0x0a, 0x0b, 0x42, 0x75, 0x69, 0x6c, 0x64, + 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x23, + 0x0a, 0x0d, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x12, 0x48, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, + 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, + 0x72, 0x79, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x52, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x1a, 0x0a, + 0x08, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x08, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x6f, 0x67, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6c, 0x6f, 0x67, 0x12, 0x16, 0x0a, 0x06, 0x64, + 0x69, 0x67, 0x65, 0x73, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x69, 0x67, + 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x70, 0x6b, 0x6f, 0x5f, 0x76, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x70, 0x6b, 0x6f, 0x56, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x39, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, + 0x64, 0x5f, 0x61, 0x74, 0x18, 0x09, 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, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x41, + 0x74, 0x12, 0x3d, 0x0a, 0x0c, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x61, + 0x74, 0x18, 0x0a, 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, 0x0b, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, + 0x22, 0x2f, 0x0a, 0x06, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x6e, + 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, + 0x73, 0x73, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x10, + 0x02, 0x22, 0x56, 0x0a, 0x0f, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x4c, 0x69, 0x73, 0x74, 0x12, 0x43, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, + 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, + 0x73, 0x74, 0x72, 0x79, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x52, 0x07, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2a, 0x78, 0x0a, 0x0b, 0x43, 0x61, 0x74, + 0x61, 0x6c, 0x6f, 0x67, 0x54, 0x69, 0x65, 0x72, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, + 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x04, 0x46, 0x52, 0x45, 0x45, 0x10, 0x01, 0x1a, + 0x02, 0x08, 0x01, 0x12, 0x10, 0x0a, 0x08, 0x53, 0x54, 0x41, 0x4e, 0x44, 0x41, 0x52, 0x44, 0x10, + 0x02, 0x1a, 0x02, 0x08, 0x01, 0x12, 0x0f, 0x0a, 0x07, 0x50, 0x52, 0x45, 0x4d, 0x49, 0x55, 0x4d, + 0x10, 0x03, 0x1a, 0x02, 0x08, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x41, 0x50, 0x50, 0x4c, 0x49, 0x43, + 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x04, 0x12, 0x08, 0x0a, 0x04, 0x42, 0x41, 0x53, 0x45, 0x10, + 0x05, 0x12, 0x08, 0x0a, 0x04, 0x46, 0x49, 0x50, 0x53, 0x10, 0x06, 0x12, 0x06, 0x0a, 0x02, 0x41, + 0x49, 0x10, 0x07, 0x32, 0xbb, 0x1a, 0x0a, 0x08, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, + 0x12, 0xe4, 0x01, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x12, + 0x2f, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x22, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, + 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, + 0x52, 0x65, 0x70, 0x6f, 0x22, 0x80, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x3a, 0x04, 0x72, + 0x65, 0x70, 0x6f, 0x22, 0x21, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2f, 0x76, + 0x31, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, + 0x69, 0x64, 0x3d, 0x2a, 0x2a, 0x7d, 0x8a, 0xaf, 0xa8, 0xd2, 0x05, 0x06, 0x12, 0x04, 0x0a, 0x02, + 0xc3, 0x0c, 0xc2, 0xf0, 0x8e, 0xfc, 0x0b, 0x3f, 0x0a, 0x34, 0x64, 0x65, 0x76, 0x2e, 0x63, 0x68, + 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x70, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x72, + 0x65, 0x70, 0x6f, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x76, 0x31, 0x12, 0x05, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x12, 0xcc, 0x01, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x12, 0x22, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, + 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, + 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x1a, 0x22, 0x2e, 0x63, 0x68, 0x61, + 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, + 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x22, 0x76, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x3a, 0x01, 0x2a, 0x1a, 0x1a, 0x2f, 0x72, 0x65, 0x67, 0x69, + 0x73, 0x74, 0x72, 0x79, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x2f, 0x7b, 0x69, + 0x64, 0x3d, 0x2a, 0x2a, 0x7d, 0x8a, 0xaf, 0xa8, 0xd2, 0x05, 0x06, 0x12, 0x04, 0x0a, 0x02, 0xc4, + 0x0c, 0xc2, 0xf0, 0x8e, 0xfc, 0x0b, 0x3f, 0x0a, 0x34, 0x64, 0x65, 0x76, 0x2e, 0x63, 0x68, 0x61, + 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x70, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x72, 0x65, + 0x70, 0x6f, 0x2e, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x76, 0x31, 0x12, 0x05, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x12, 0x87, 0x01, 0x0a, 0x09, 0x4c, 0x69, 0x73, 0x74, 0x52, + 0x65, 0x70, 0x6f, 0x73, 0x12, 0x28, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, + 0x64, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, + 0x74, 0x72, 0x79, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x1a, 0x26, + 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x52, 0x65, + 0x70, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x28, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x14, 0x12, 0x12, + 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x70, + 0x6f, 0x73, 0x8a, 0xaf, 0xa8, 0xd2, 0x05, 0x08, 0x12, 0x06, 0x0a, 0x02, 0xc5, 0x0c, 0x10, 0x01, + 0x12, 0xca, 0x01, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x12, + 0x2f, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x73, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, + 0x2a, 0x1a, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2f, 0x76, 0x31, 0x2f, 0x72, + 0x65, 0x70, 0x6f, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x3d, 0x2a, 0x2a, 0x7d, 0x8a, 0xaf, 0xa8, 0xd2, + 0x05, 0x06, 0x12, 0x04, 0x0a, 0x02, 0xc6, 0x0c, 0xc2, 0xf0, 0x8e, 0xfc, 0x0b, 0x3f, 0x0a, 0x34, + 0x64, 0x65, 0x76, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, + 0x73, 0x74, 0x72, 0x79, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x2e, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x64, 0x2e, 0x76, 0x31, 0x12, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x12, 0xdb, 0x01, + 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x67, 0x12, 0x2e, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x52, 0x65, 0x70, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x63, + 0x65, 0x54, 0x61, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x63, 0x68, + 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, + 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x54, 0x61, 0x67, 0x22, 0x7b, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x25, 0x3a, 0x03, 0x74, 0x61, 0x67, 0x22, 0x1e, 0x2f, 0x72, 0x65, + 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x61, 0x67, 0x73, 0x2f, 0x7b, + 0x72, 0x65, 0x70, 0x6f, 0x5f, 0x69, 0x64, 0x3d, 0x2a, 0x2a, 0x7d, 0x8a, 0xaf, 0xa8, 0xd2, 0x05, + 0x06, 0x12, 0x04, 0x0a, 0x02, 0xcb, 0x0c, 0xc2, 0xf0, 0x8e, 0xfc, 0x0b, 0x3e, 0x0a, 0x33, 0x64, + 0x65, 0x76, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, + 0x74, 0x72, 0x79, 0x2e, 0x74, 0x61, 0x67, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x2e, + 0x76, 0x31, 0x12, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x12, 0xc7, 0x01, 0x0a, 0x09, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x61, 0x67, 0x12, 0x21, 0x2e, 0x63, 0x68, 0x61, 0x69, + 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, + 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x54, 0x61, 0x67, 0x1a, 0x21, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, - 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x52, 0x65, 0x70, 0x6f, - 0x22, 0x80, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x3a, 0x04, 0x72, 0x65, 0x70, 0x6f, 0x22, - 0x21, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, - 0x70, 0x6f, 0x73, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x3d, 0x2a, - 0x2a, 0x7d, 0x8a, 0xaf, 0xa8, 0xd2, 0x05, 0x06, 0x12, 0x04, 0x0a, 0x02, 0xc3, 0x0c, 0xc2, 0xf0, - 0x8e, 0xfc, 0x0b, 0x3f, 0x0a, 0x34, 0x64, 0x65, 0x76, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, - 0x75, 0x61, 0x72, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, - 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x2e, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x76, 0x31, 0x12, 0x05, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x18, 0x01, 0x12, 0xcc, 0x01, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, - 0x70, 0x6f, 0x12, 0x22, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, - 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, - 0x79, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x1a, 0x22, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, - 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, - 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x22, 0x76, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x1f, 0x3a, 0x01, 0x2a, 0x1a, 0x1a, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, - 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x3d, 0x2a, 0x2a, - 0x7d, 0x8a, 0xaf, 0xa8, 0xd2, 0x05, 0x06, 0x12, 0x04, 0x0a, 0x02, 0xc4, 0x0c, 0xc2, 0xf0, 0x8e, - 0xfc, 0x0b, 0x3f, 0x0a, 0x34, 0x64, 0x65, 0x76, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, - 0x61, 0x72, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, - 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x2e, 0x75, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x76, 0x31, 0x12, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x18, 0x01, 0x12, 0x87, 0x01, 0x0a, 0x09, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x73, - 0x12, 0x28, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, - 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, - 0x52, 0x65, 0x70, 0x6f, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x1a, 0x26, 0x2e, 0x63, 0x68, 0x61, - 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, - 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x4c, 0x69, - 0x73, 0x74, 0x22, 0x28, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x14, 0x12, 0x12, 0x2f, 0x72, 0x65, 0x67, - 0x69, 0x73, 0x74, 0x72, 0x79, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x8a, 0xaf, - 0xa8, 0xd2, 0x05, 0x08, 0x12, 0x06, 0x0a, 0x02, 0xc5, 0x0c, 0x10, 0x01, 0x12, 0xca, 0x01, 0x0a, - 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x12, 0x2f, 0x2e, 0x63, 0x68, + 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x54, 0x61, 0x67, 0x22, + 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x3a, 0x01, 0x2a, 0x1a, 0x19, 0x2f, 0x72, 0x65, 0x67, + 0x69, 0x73, 0x74, 0x72, 0x79, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x61, 0x67, 0x73, 0x2f, 0x7b, 0x69, + 0x64, 0x3d, 0x2a, 0x2a, 0x7d, 0x8a, 0xaf, 0xa8, 0xd2, 0x05, 0x06, 0x12, 0x04, 0x0a, 0x02, 0xcc, + 0x0c, 0xc2, 0xf0, 0x8e, 0xfc, 0x0b, 0x3e, 0x0a, 0x33, 0x64, 0x65, 0x76, 0x2e, 0x63, 0x68, 0x61, + 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x70, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x74, 0x61, + 0x67, 0x2e, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x76, 0x31, 0x12, 0x05, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x18, 0x01, 0x12, 0xc6, 0x01, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x54, 0x61, 0x67, 0x12, 0x2e, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, + 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, + 0x72, 0x79, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, 0x67, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x71, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x1b, 0x2a, 0x19, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2f, 0x76, + 0x31, 0x2f, 0x74, 0x61, 0x67, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x3d, 0x2a, 0x2a, 0x7d, 0x8a, 0xaf, + 0xa8, 0xd2, 0x05, 0x06, 0x12, 0x04, 0x0a, 0x02, 0xce, 0x0c, 0xc2, 0xf0, 0x8e, 0xfc, 0x0b, 0x3e, + 0x0a, 0x33, 0x64, 0x65, 0x76, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, + 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x74, 0x61, 0x67, 0x2e, 0x64, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x64, 0x2e, 0x76, 0x31, 0x12, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x12, 0x83, + 0x01, 0x0a, 0x08, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x61, 0x67, 0x73, 0x12, 0x27, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, - 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x52, 0x65, 0x70, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, - 0x6d, 0x70, 0x74, 0x79, 0x22, 0x73, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x2a, 0x1a, 0x2f, 0x72, - 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, - 0x2f, 0x7b, 0x69, 0x64, 0x3d, 0x2a, 0x2a, 0x7d, 0x8a, 0xaf, 0xa8, 0xd2, 0x05, 0x06, 0x12, 0x04, - 0x0a, 0x02, 0xc6, 0x0c, 0xc2, 0xf0, 0x8e, 0xfc, 0x0b, 0x3f, 0x0a, 0x34, 0x64, 0x65, 0x76, 0x2e, - 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x70, - 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, - 0x2e, 0x72, 0x65, 0x70, 0x6f, 0x2e, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x2e, 0x76, 0x31, - 0x12, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x12, 0xdb, 0x01, 0x0a, 0x09, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x67, 0x12, 0x2e, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, + 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x54, 0x61, 0x67, 0x46, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x1a, 0x25, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, + 0x64, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, + 0x74, 0x72, 0x79, 0x2e, 0x54, 0x61, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x27, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x13, 0x12, 0x11, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2f, 0x76, + 0x31, 0x2f, 0x74, 0x61, 0x67, 0x73, 0x8a, 0xaf, 0xa8, 0xd2, 0x05, 0x08, 0x12, 0x06, 0x0a, 0x02, + 0xcd, 0x0c, 0x10, 0x01, 0x12, 0xac, 0x01, 0x0a, 0x0e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x61, 0x67, + 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x2e, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, - 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x61, 0x67, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, + 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x54, 0x61, 0x67, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, + 0x79, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x1a, 0x2c, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, - 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x54, 0x61, 0x67, 0x22, 0x7b, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x25, 0x3a, 0x03, 0x74, 0x61, 0x67, 0x22, 0x1e, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, - 0x72, 0x79, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x61, 0x67, 0x73, 0x2f, 0x7b, 0x72, 0x65, 0x70, 0x6f, - 0x5f, 0x69, 0x64, 0x3d, 0x2a, 0x2a, 0x7d, 0x8a, 0xaf, 0xa8, 0xd2, 0x05, 0x06, 0x12, 0x04, 0x0a, - 0x02, 0xcb, 0x0c, 0xc2, 0xf0, 0x8e, 0xfc, 0x0b, 0x3e, 0x0a, 0x33, 0x64, 0x65, 0x76, 0x2e, 0x63, - 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x70, 0x6c, - 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, - 0x74, 0x61, 0x67, 0x2e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x76, 0x31, 0x12, 0x05, - 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x12, 0xc7, 0x01, 0x0a, 0x09, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x54, 0x61, 0x67, 0x12, 0x21, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, - 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, - 0x73, 0x74, 0x72, 0x79, 0x2e, 0x54, 0x61, 0x67, 0x1a, 0x21, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, - 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, - 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x54, 0x61, 0x67, 0x22, 0x74, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x1e, 0x3a, 0x01, 0x2a, 0x1a, 0x19, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, - 0x79, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x61, 0x67, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x3d, 0x2a, 0x2a, - 0x7d, 0x8a, 0xaf, 0xa8, 0xd2, 0x05, 0x06, 0x12, 0x04, 0x0a, 0x02, 0xcc, 0x0c, 0xc2, 0xf0, 0x8e, - 0xfc, 0x0b, 0x3e, 0x0a, 0x33, 0x64, 0x65, 0x76, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, - 0x61, 0x72, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, - 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x74, 0x61, 0x67, 0x2e, 0x75, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x76, 0x31, 0x12, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, - 0x01, 0x12, 0xc6, 0x01, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, 0x67, 0x12, - 0x2e, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, - 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x71, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1b, 0x2a, - 0x19, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x61, - 0x67, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x3d, 0x2a, 0x2a, 0x7d, 0x8a, 0xaf, 0xa8, 0xd2, 0x05, 0x06, - 0x12, 0x04, 0x0a, 0x02, 0xce, 0x0c, 0xc2, 0xf0, 0x8e, 0xfc, 0x0b, 0x3e, 0x0a, 0x33, 0x64, 0x65, - 0x76, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x61, 0x70, 0x69, - 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, - 0x72, 0x79, 0x2e, 0x74, 0x61, 0x67, 0x2e, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x2e, 0x76, - 0x31, 0x12, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x12, 0x83, 0x01, 0x0a, 0x08, 0x4c, - 0x69, 0x73, 0x74, 0x54, 0x61, 0x67, 0x73, 0x12, 0x27, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, - 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, - 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x54, 0x61, 0x67, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x1a, 0x25, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, - 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, - 0x54, 0x61, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x27, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x13, 0x12, - 0x11, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x61, - 0x67, 0x73, 0x8a, 0xaf, 0xa8, 0xd2, 0x05, 0x08, 0x12, 0x06, 0x0a, 0x02, 0xcd, 0x0c, 0x10, 0x01, - 0x12, 0xac, 0x01, 0x0a, 0x0e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x61, 0x67, 0x48, 0x69, 0x73, 0x74, - 0x6f, 0x72, 0x79, 0x12, 0x2e, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, - 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, - 0x72, 0x79, 0x2e, 0x54, 0x61, 0x67, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x46, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x1a, 0x2c, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, - 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, - 0x72, 0x79, 0x2e, 0x54, 0x61, 0x67, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x4c, 0x69, 0x73, - 0x74, 0x22, 0x3c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2a, 0x12, 0x28, 0x2f, 0x72, 0x65, 0x67, 0x69, - 0x73, 0x74, 0x72, 0x79, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x61, 0x67, 0x73, 0x2f, 0x7b, 0x70, 0x61, - 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x3d, 0x2a, 0x2a, 0x7d, 0x2f, 0x68, 0x69, 0x73, 0x74, - 0x6f, 0x72, 0x79, 0x8a, 0xaf, 0xa8, 0xd2, 0x05, 0x06, 0x12, 0x04, 0x0a, 0x02, 0xcd, 0x0c, 0x12, - 0xa8, 0x01, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x53, 0x62, 0x6f, 0x6d, 0x12, 0x29, 0x2e, 0x63, 0x68, - 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, - 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x53, 0x62, 0x6f, 0x6d, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, - 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x74, 0x65, 0x6e, - 0x61, 0x6e, 0x74, 0x2e, 0x53, 0x62, 0x6f, 0x6d, 0x32, 0x22, 0x4f, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x39, 0x12, 0x37, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2f, 0x76, 0x31, 0x2f, - 0x72, 0x65, 0x70, 0x6f, 0x73, 0x2f, 0x7b, 0x72, 0x65, 0x70, 0x6f, 0x5f, 0x69, 0x64, 0x3d, 0x2a, - 0x2a, 0x7d, 0x2f, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x73, 0x2f, 0x7b, 0x64, 0x69, 0x67, 0x65, - 0x73, 0x74, 0x3d, 0x2a, 0x7d, 0x2f, 0x73, 0x62, 0x6f, 0x6d, 0x8a, 0xaf, 0xa8, 0xd2, 0x05, 0x0a, - 0x12, 0x08, 0x0a, 0x06, 0xc5, 0x0c, 0x8a, 0x05, 0xcf, 0x0c, 0x12, 0xc3, 0x01, 0x0a, 0x0e, 0x47, - 0x65, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x30, 0x2e, - 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, - 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x49, 0x6d, 0x61, - 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x54, 0x61, 0x67, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, + 0x79, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x3c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2a, 0x12, 0x28, 0x2f, + 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x61, 0x67, 0x73, + 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x3d, 0x2a, 0x2a, 0x7d, 0x2f, + 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x8a, 0xaf, 0xa8, 0xd2, 0x05, 0x06, 0x12, 0x04, 0x0a, + 0x02, 0xcd, 0x0c, 0x12, 0xa8, 0x01, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x53, 0x62, 0x6f, 0x6d, 0x12, 0x29, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, - 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x49, - 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x54, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x40, 0x12, 0x3e, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2f, 0x76, 0x31, - 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x2f, 0x7b, 0x72, 0x65, 0x70, 0x6f, 0x5f, 0x69, 0x64, 0x3d, - 0x2a, 0x2a, 0x7d, 0x2f, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x73, 0x2f, 0x7b, 0x64, 0x69, 0x67, - 0x65, 0x73, 0x74, 0x3d, 0x2a, 0x7d, 0x2f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x63, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x8a, 0xaf, 0xa8, 0xd2, 0x05, 0x08, 0x12, 0x06, 0x0a, 0x04, 0xc5, 0x0c, 0xcf, 0x0c, - 0x12, 0xb2, 0x01, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x41, 0x72, 0x63, 0x68, 0x73, 0x12, 0x29, 0x2e, - 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, - 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x41, 0x72, 0x63, - 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, - 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, - 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x41, 0x72, 0x63, 0x68, 0x73, 0x22, 0x56, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x42, 0x12, 0x40, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x53, + 0x62, 0x6f, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x63, 0x68, 0x61, + 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, + 0x2e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x2e, 0x53, 0x62, 0x6f, 0x6d, 0x32, 0x22, 0x4f, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x39, 0x12, 0x37, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x2f, 0x7b, 0x72, 0x65, 0x70, 0x6f, 0x5f, 0x69, 0x64, 0x3d, 0x2a, 0x2a, 0x7d, 0x2f, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x73, 0x2f, 0x7b, - 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x3d, 0x2a, 0x7d, 0x2f, 0x61, 0x72, 0x63, 0x68, 0x69, 0x74, - 0x65, 0x63, 0x74, 0x75, 0x72, 0x65, 0x73, 0x8a, 0xaf, 0xa8, 0xd2, 0x05, 0x08, 0x12, 0x06, 0x0a, - 0x04, 0xc5, 0x0c, 0xcf, 0x0c, 0x12, 0xa7, 0x01, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x53, 0x69, 0x7a, - 0x65, 0x12, 0x29, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, + 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x3d, 0x2a, 0x7d, 0x2f, 0x73, 0x62, 0x6f, 0x6d, 0x8a, 0xaf, + 0xa8, 0xd2, 0x05, 0x0a, 0x12, 0x08, 0x0a, 0x06, 0xc5, 0x0c, 0x8a, 0x05, 0xcf, 0x0c, 0x12, 0xc3, + 0x01, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x12, 0x30, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, - 0x2e, 0x53, 0x69, 0x7a, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x63, - 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, - 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x53, 0x69, 0x7a, 0x65, - 0x22, 0x4d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x39, 0x12, 0x37, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, - 0x74, 0x72, 0x79, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x2f, 0x7b, 0x72, 0x65, - 0x70, 0x6f, 0x5f, 0x69, 0x64, 0x3d, 0x2a, 0x2a, 0x7d, 0x2f, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, - 0x73, 0x2f, 0x7b, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x3d, 0x2a, 0x7d, 0x2f, 0x73, 0x69, 0x7a, - 0x65, 0x8a, 0xaf, 0xa8, 0xd2, 0x05, 0x08, 0x12, 0x06, 0x0a, 0x04, 0xc5, 0x0c, 0xcf, 0x0c, 0x12, - 0xb2, 0x01, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x52, 0x61, 0x77, 0x53, 0x62, 0x6f, 0x6d, 0x12, 0x2c, - 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, 0x74, - 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x52, 0x61, - 0x77, 0x53, 0x62, 0x6f, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x63, - 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, - 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x52, 0x61, 0x77, 0x53, - 0x62, 0x6f, 0x6d, 0x22, 0x4f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3b, 0x12, 0x39, 0x2f, 0x72, 0x65, - 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x2f, - 0x7b, 0x72, 0x65, 0x70, 0x6f, 0x5f, 0x69, 0x64, 0x3d, 0x2a, 0x2a, 0x7d, 0x2f, 0x64, 0x69, 0x67, - 0x65, 0x73, 0x74, 0x2f, 0x7b, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x3d, 0x2a, 0x7d, 0x2f, 0x72, - 0x61, 0x77, 0x73, 0x62, 0x6f, 0x6d, 0x8a, 0xaf, 0xa8, 0xd2, 0x05, 0x08, 0x12, 0x06, 0x0a, 0x04, - 0xc5, 0x0c, 0x8a, 0x05, 0x12, 0xbd, 0x01, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x56, 0x75, 0x6c, 0x6e, - 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x2f, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, - 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, - 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x56, 0x75, 0x6c, 0x6e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, - 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x74, 0x65, - 0x6e, 0x61, 0x6e, 0x74, 0x2e, 0x56, 0x75, 0x6c, 0x6e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x22, - 0x53, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3f, 0x12, 0x3d, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, - 0x72, 0x79, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x2f, 0x7b, 0x72, 0x65, 0x70, - 0x6f, 0x5f, 0x69, 0x64, 0x3d, 0x2a, 0x2a, 0x7d, 0x2f, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x73, - 0x2f, 0x7b, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x3d, 0x2a, 0x7d, 0x2f, 0x76, 0x75, 0x6c, 0x6e, - 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x8a, 0xaf, 0xa8, 0xd2, 0x05, 0x08, 0x12, 0x06, 0x0a, 0x04, - 0xc5, 0x0c, 0x94, 0x05, 0x12, 0xc5, 0x01, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x61, 0x6e, - 0x69, 0x66, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x34, 0x2e, - 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, - 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x4d, 0x61, 0x6e, - 0x69, 0x66, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x46, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x1a, 0x32, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, + 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, - 0x72, 0x79, 0x2e, 0x4d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x43, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x31, 0x12, - 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, + 0x72, 0x79, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x54, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x40, 0x12, 0x3e, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, + 0x79, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x2f, 0x7b, 0x72, 0x65, 0x70, 0x6f, + 0x5f, 0x69, 0x64, 0x3d, 0x2a, 0x2a, 0x7d, 0x2f, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x73, 0x2f, + 0x7b, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x3d, 0x2a, 0x7d, 0x2f, 0x69, 0x6d, 0x61, 0x67, 0x65, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x8a, 0xaf, 0xa8, 0xd2, 0x05, 0x08, 0x12, 0x06, 0x0a, 0x04, + 0xc5, 0x0c, 0xcf, 0x0c, 0x12, 0xb2, 0x01, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x41, 0x72, 0x63, 0x68, + 0x73, 0x12, 0x29, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, + 0x2e, 0x41, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x63, + 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, + 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x41, 0x72, 0x63, 0x68, + 0x73, 0x22, 0x56, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x42, 0x12, 0x40, 0x2f, 0x72, 0x65, 0x67, 0x69, + 0x73, 0x74, 0x72, 0x79, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x2f, 0x7b, 0x72, + 0x65, 0x70, 0x6f, 0x5f, 0x69, 0x64, 0x3d, 0x2a, 0x2a, 0x7d, 0x2f, 0x64, 0x69, 0x67, 0x65, 0x73, + 0x74, 0x73, 0x2f, 0x7b, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x3d, 0x2a, 0x7d, 0x2f, 0x61, 0x72, + 0x63, 0x68, 0x69, 0x74, 0x65, 0x63, 0x74, 0x75, 0x72, 0x65, 0x73, 0x8a, 0xaf, 0xa8, 0xd2, 0x05, + 0x08, 0x12, 0x06, 0x0a, 0x04, 0xc5, 0x0c, 0xcf, 0x0c, 0x12, 0xa7, 0x01, 0x0a, 0x07, 0x47, 0x65, + 0x74, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x29, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, + 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, + 0x73, 0x74, 0x72, 0x79, 0x2e, 0x53, 0x69, 0x7a, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x22, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, + 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, + 0x53, 0x69, 0x7a, 0x65, 0x22, 0x4d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x39, 0x12, 0x37, 0x2f, 0x72, + 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, + 0x2f, 0x7b, 0x72, 0x65, 0x70, 0x6f, 0x5f, 0x69, 0x64, 0x3d, 0x2a, 0x2a, 0x7d, 0x2f, 0x64, 0x69, + 0x67, 0x65, 0x73, 0x74, 0x73, 0x2f, 0x7b, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x3d, 0x2a, 0x7d, + 0x2f, 0x73, 0x69, 0x7a, 0x65, 0x8a, 0xaf, 0xa8, 0xd2, 0x05, 0x08, 0x12, 0x06, 0x0a, 0x04, 0xc5, + 0x0c, 0xcf, 0x0c, 0x12, 0xb2, 0x01, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x52, 0x61, 0x77, 0x53, 0x62, + 0x6f, 0x6d, 0x12, 0x2c, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, + 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, + 0x79, 0x2e, 0x52, 0x61, 0x77, 0x53, 0x62, 0x6f, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x25, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, + 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, + 0x52, 0x61, 0x77, 0x53, 0x62, 0x6f, 0x6d, 0x22, 0x4f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3b, 0x12, + 0x39, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x2f, 0x7b, 0x72, 0x65, 0x70, 0x6f, 0x5f, 0x69, 0x64, 0x3d, 0x2a, 0x2a, 0x7d, - 0x2f, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x6d, 0x65, 0x74, 0x64, 0x61, 0x74, 0x61, - 0x8a, 0xaf, 0xa8, 0xd2, 0x05, 0x06, 0x12, 0x04, 0x0a, 0x02, 0xcf, 0x0c, 0x12, 0xc8, 0x01, 0x0a, - 0x19, 0x47, 0x65, 0x74, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x2e, 0x63, 0x68, 0x61, + 0x2f, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x2f, 0x7b, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x3d, + 0x2a, 0x7d, 0x2f, 0x72, 0x61, 0x77, 0x73, 0x62, 0x6f, 0x6d, 0x8a, 0xaf, 0xa8, 0xd2, 0x05, 0x08, + 0x12, 0x06, 0x0a, 0x04, 0xc5, 0x0c, 0x8a, 0x05, 0x12, 0xbd, 0x01, 0x0a, 0x0d, 0x47, 0x65, 0x74, + 0x56, 0x75, 0x6c, 0x6e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x2f, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, - 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, - 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, + 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x56, 0x75, 0x6c, 0x6e, 0x52, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x63, 0x68, + 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, + 0x6d, 0x2e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x2e, 0x56, 0x75, 0x6c, 0x6e, 0x52, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x22, 0x53, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3f, 0x12, 0x3d, 0x2f, 0x72, 0x65, + 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x2f, + 0x7b, 0x72, 0x65, 0x70, 0x6f, 0x5f, 0x69, 0x64, 0x3d, 0x2a, 0x2a, 0x7d, 0x2f, 0x64, 0x69, 0x67, + 0x65, 0x73, 0x74, 0x73, 0x2f, 0x7b, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x3d, 0x2a, 0x7d, 0x2f, + 0x76, 0x75, 0x6c, 0x6e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x8a, 0xaf, 0xa8, 0xd2, 0x05, 0x08, + 0x12, 0x06, 0x0a, 0x04, 0xc5, 0x0c, 0x94, 0x05, 0x12, 0xc5, 0x01, 0x0a, 0x14, 0x4c, 0x69, 0x73, + 0x74, 0x4d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x12, 0x34, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, + 0x2e, 0x4d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x1a, 0x32, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, - 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x56, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x38, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x24, 0x12, 0x22, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, - 0x2f, 0x76, 0x31, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x70, 0x61, - 0x63, 0x6b, 0x61, 0x67, 0x65, 0x3d, 0x2a, 0x2a, 0x7d, 0x8a, 0xaf, 0xa8, 0xd2, 0x05, 0x08, 0x12, - 0x06, 0x0a, 0x02, 0xf6, 0x0c, 0x10, 0x01, 0x42, 0x71, 0x0a, 0x27, 0x64, 0x65, 0x76, 0x2e, 0x63, - 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x73, 0x64, 0x6b, 0x2e, 0x70, 0x6c, + 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x4d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x43, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x31, 0x12, 0x2f, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2f, 0x76, + 0x31, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x2f, 0x7b, 0x72, 0x65, 0x70, 0x6f, 0x5f, 0x69, 0x64, + 0x3d, 0x2a, 0x2a, 0x7d, 0x2f, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x6d, 0x65, 0x74, + 0x64, 0x61, 0x74, 0x61, 0x8a, 0xaf, 0xa8, 0xd2, 0x05, 0x06, 0x12, 0x04, 0x0a, 0x02, 0xcf, 0x0c, + 0x12, 0xc8, 0x01, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x56, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x3b, + 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x50, 0x61, + 0x63, 0x6b, 0x61, 0x67, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x63, 0x68, + 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, + 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x61, + 0x67, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x22, 0x38, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x24, 0x12, 0x22, 0x2f, 0x72, 0x65, 0x67, 0x69, + 0x73, 0x74, 0x72, 0x79, 0x2f, 0x76, 0x31, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, + 0x2f, 0x7b, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x3d, 0x2a, 0x2a, 0x7d, 0x8a, 0xaf, 0xa8, + 0xd2, 0x05, 0x08, 0x12, 0x06, 0x0a, 0x02, 0xf6, 0x0c, 0x10, 0x01, 0x12, 0xa3, 0x01, 0x0a, 0x10, + 0x4c, 0x69, 0x73, 0x74, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, + 0x12, 0x2f, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, - 0x76, 0x31, 0x42, 0x15, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x52, 0x65, 0x67, 0x69, - 0x73, 0x74, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x2d, 0x63, 0x68, 0x61, - 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x64, 0x65, 0x76, 0x2f, 0x73, 0x64, 0x6b, 0x2f, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x72, - 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2f, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x33, + 0x42, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x1a, 0x2d, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, 0x64, 0x2e, 0x70, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, + 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4c, 0x69, 0x73, 0x74, + 0x22, 0x2f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1b, 0x12, 0x19, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, + 0x74, 0x72, 0x79, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x73, 0x8a, 0xaf, 0xa8, 0xd2, 0x05, 0x08, 0x12, 0x06, 0x0a, 0x02, 0x86, 0x0d, 0x10, + 0x01, 0x42, 0x71, 0x0a, 0x27, 0x64, 0x65, 0x76, 0x2e, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, + 0x61, 0x72, 0x64, 0x2e, 0x73, 0x64, 0x6b, 0x2e, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, + 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x42, 0x15, 0x50, 0x6c, + 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x50, 0x72, + 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x2d, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x67, 0x75, 0x61, 0x72, + 0x64, 0x2e, 0x64, 0x65, 0x76, 0x2f, 0x73, 0x64, 0x6b, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, + 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, + 0x79, 0x2f, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -3623,145 +3952,156 @@ func file_registry_platform_proto_rawDescGZIP() []byte { return file_registry_platform_proto_rawDescData } -var file_registry_platform_proto_enumTypes = make([]protoimpl.EnumInfo, 1) -var file_registry_platform_proto_msgTypes = make([]protoimpl.MessageInfo, 48) +var file_registry_platform_proto_enumTypes = make([]protoimpl.EnumInfo, 2) +var file_registry_platform_proto_msgTypes = make([]protoimpl.MessageInfo, 51) var file_registry_platform_proto_goTypes = []any{ (CatalogTier)(0), // 0: chainguard.platform.registry.CatalogTier - (*Repo)(nil), // 1: chainguard.platform.registry.Repo - (*SyncConfig)(nil), // 2: chainguard.platform.registry.SyncConfig - (*CreateRepoRequest)(nil), // 3: chainguard.platform.registry.CreateRepoRequest - (*DeleteRepoRequest)(nil), // 4: chainguard.platform.registry.DeleteRepoRequest - (*RepoList)(nil), // 5: chainguard.platform.registry.RepoList - (*RepoFilter)(nil), // 6: chainguard.platform.registry.RepoFilter - (*CreateTagRequest)(nil), // 7: chainguard.platform.registry.CreateTagRequest - (*DeleteTagRequest)(nil), // 8: chainguard.platform.registry.DeleteTagRequest - (*Tag)(nil), // 9: chainguard.platform.registry.Tag - (*TagFilter)(nil), // 10: chainguard.platform.registry.TagFilter - (*TagList)(nil), // 11: chainguard.platform.registry.TagList - (*TagHistoryFilter)(nil), // 12: chainguard.platform.registry.TagHistoryFilter - (*TagHistoryList)(nil), // 13: chainguard.platform.registry.TagHistoryList - (*TagHistory)(nil), // 14: chainguard.platform.registry.TagHistory - (*DiffImageResponse)(nil), // 15: chainguard.platform.registry.DiffImageResponse - (*SbomRequest)(nil), // 16: chainguard.platform.registry.SbomRequest - (*PackageVersionMetadataRequest)(nil), // 17: chainguard.platform.registry.PackageVersionMetadataRequest - (*Archs)(nil), // 18: chainguard.platform.registry.Archs - (*ArchFilter)(nil), // 19: chainguard.platform.registry.ArchFilter - (*Size)(nil), // 20: chainguard.platform.registry.Size - (*ImageConfig)(nil), // 21: chainguard.platform.registry.ImageConfig - (*PackagesDiff)(nil), // 22: chainguard.platform.registry.PackagesDiff - (*VersionReference)(nil), // 23: chainguard.platform.registry.VersionReference - (*PackageReference)(nil), // 24: chainguard.platform.registry.PackageReference - (*VulnerabilitiesDiff)(nil), // 25: chainguard.platform.registry.VulnerabilitiesDiff - (*ScannerMetadata)(nil), // 26: chainguard.platform.registry.ScannerMetadata - (*VulnerabilityReference)(nil), // 27: chainguard.platform.registry.VulnerabilityReference - (*DiffImageRequest)(nil), // 28: chainguard.platform.registry.DiffImageRequest - (*ArchRequest)(nil), // 29: chainguard.platform.registry.ArchRequest - (*SizeRequest)(nil), // 30: chainguard.platform.registry.SizeRequest - (*ImageConfigRequest)(nil), // 31: chainguard.platform.registry.ImageConfigRequest - (*RawSbomRequest)(nil), // 32: chainguard.platform.registry.RawSbomRequest - (*VulnReportRequest)(nil), // 33: chainguard.platform.registry.VulnReportRequest - (*ManifestMetadataIndexFilter)(nil), // 34: chainguard.platform.registry.ManifestMetadataIndexFilter - (*ManifestMetadataFilterEntry)(nil), // 35: chainguard.platform.registry.ManifestMetadataFilterEntry - (*ManifestMetadataFilter)(nil), // 36: chainguard.platform.registry.ManifestMetadataFilter - (*PkgMetadata)(nil), // 37: chainguard.platform.registry.PkgMetadata - (*ManifestMetadata)(nil), // 38: chainguard.platform.registry.ManifestMetadata - (*ManifestMetadataList)(nil), // 39: chainguard.platform.registry.ManifestMetadataList - (*RawSbom)(nil), // 40: chainguard.platform.registry.RawSbom - (*PackageVersionMetadata)(nil), // 41: chainguard.platform.registry.PackageVersionMetadata - (*PackageVersion)(nil), // 42: chainguard.platform.registry.PackageVersion - (*ImageConfig_ExposedPort)(nil), // 43: chainguard.platform.registry.ImageConfig.ExposedPort - nil, // 44: chainguard.platform.registry.ImageConfig.ExposedPortsEntry - (*ImageConfig_Volume)(nil), // 45: chainguard.platform.registry.ImageConfig.Volume - nil, // 46: chainguard.platform.registry.ImageConfig.VolumesEntry - nil, // 47: chainguard.platform.registry.ImageConfig.LabelsEntry - (*PackagesDiff_ChangedPackageReference)(nil), // 48: chainguard.platform.registry.PackagesDiff.ChangedPackageReference - (*timestamppb.Timestamp)(nil), // 49: google.protobuf.Timestamp - (*v1.UIDPFilter)(nil), // 50: chainguard.platform.common.UIDPFilter - (*v11.Scanner)(nil), // 51: chainguard.platform.tenant.Scanner - (*emptypb.Empty)(nil), // 52: google.protobuf.Empty - (*v11.Sbom2)(nil), // 53: chainguard.platform.tenant.Sbom2 - (*v11.VulnReport)(nil), // 54: chainguard.platform.tenant.VulnReport + (BuildReport_Result)(0), // 1: chainguard.platform.registry.BuildReport.Result + (*Repo)(nil), // 2: chainguard.platform.registry.Repo + (*SyncConfig)(nil), // 3: chainguard.platform.registry.SyncConfig + (*CreateRepoRequest)(nil), // 4: chainguard.platform.registry.CreateRepoRequest + (*DeleteRepoRequest)(nil), // 5: chainguard.platform.registry.DeleteRepoRequest + (*RepoList)(nil), // 6: chainguard.platform.registry.RepoList + (*RepoFilter)(nil), // 7: chainguard.platform.registry.RepoFilter + (*CreateTagRequest)(nil), // 8: chainguard.platform.registry.CreateTagRequest + (*DeleteTagRequest)(nil), // 9: chainguard.platform.registry.DeleteTagRequest + (*Tag)(nil), // 10: chainguard.platform.registry.Tag + (*TagFilter)(nil), // 11: chainguard.platform.registry.TagFilter + (*TagList)(nil), // 12: chainguard.platform.registry.TagList + (*TagHistoryFilter)(nil), // 13: chainguard.platform.registry.TagHistoryFilter + (*TagHistoryList)(nil), // 14: chainguard.platform.registry.TagHistoryList + (*TagHistory)(nil), // 15: chainguard.platform.registry.TagHistory + (*DiffImageResponse)(nil), // 16: chainguard.platform.registry.DiffImageResponse + (*SbomRequest)(nil), // 17: chainguard.platform.registry.SbomRequest + (*PackageVersionMetadataRequest)(nil), // 18: chainguard.platform.registry.PackageVersionMetadataRequest + (*Archs)(nil), // 19: chainguard.platform.registry.Archs + (*ArchFilter)(nil), // 20: chainguard.platform.registry.ArchFilter + (*Size)(nil), // 21: chainguard.platform.registry.Size + (*ImageConfig)(nil), // 22: chainguard.platform.registry.ImageConfig + (*PackagesDiff)(nil), // 23: chainguard.platform.registry.PackagesDiff + (*VersionReference)(nil), // 24: chainguard.platform.registry.VersionReference + (*PackageReference)(nil), // 25: chainguard.platform.registry.PackageReference + (*VulnerabilitiesDiff)(nil), // 26: chainguard.platform.registry.VulnerabilitiesDiff + (*ScannerMetadata)(nil), // 27: chainguard.platform.registry.ScannerMetadata + (*VulnerabilityReference)(nil), // 28: chainguard.platform.registry.VulnerabilityReference + (*DiffImageRequest)(nil), // 29: chainguard.platform.registry.DiffImageRequest + (*ArchRequest)(nil), // 30: chainguard.platform.registry.ArchRequest + (*SizeRequest)(nil), // 31: chainguard.platform.registry.SizeRequest + (*ImageConfigRequest)(nil), // 32: chainguard.platform.registry.ImageConfigRequest + (*RawSbomRequest)(nil), // 33: chainguard.platform.registry.RawSbomRequest + (*VulnReportRequest)(nil), // 34: chainguard.platform.registry.VulnReportRequest + (*ManifestMetadataIndexFilter)(nil), // 35: chainguard.platform.registry.ManifestMetadataIndexFilter + (*ManifestMetadataFilterEntry)(nil), // 36: chainguard.platform.registry.ManifestMetadataFilterEntry + (*ManifestMetadataFilter)(nil), // 37: chainguard.platform.registry.ManifestMetadataFilter + (*PkgMetadata)(nil), // 38: chainguard.platform.registry.PkgMetadata + (*ManifestMetadata)(nil), // 39: chainguard.platform.registry.ManifestMetadata + (*ManifestMetadataList)(nil), // 40: chainguard.platform.registry.ManifestMetadataList + (*RawSbom)(nil), // 41: chainguard.platform.registry.RawSbom + (*PackageVersionMetadata)(nil), // 42: chainguard.platform.registry.PackageVersionMetadata + (*PackageVersion)(nil), // 43: chainguard.platform.registry.PackageVersion + (*BuildReportFilter)(nil), // 44: chainguard.platform.registry.BuildReportFilter + (*BuildReport)(nil), // 45: chainguard.platform.registry.BuildReport + (*BuildReportList)(nil), // 46: chainguard.platform.registry.BuildReportList + (*ImageConfig_ExposedPort)(nil), // 47: chainguard.platform.registry.ImageConfig.ExposedPort + nil, // 48: chainguard.platform.registry.ImageConfig.ExposedPortsEntry + (*ImageConfig_Volume)(nil), // 49: chainguard.platform.registry.ImageConfig.Volume + nil, // 50: chainguard.platform.registry.ImageConfig.VolumesEntry + nil, // 51: chainguard.platform.registry.ImageConfig.LabelsEntry + (*PackagesDiff_ChangedPackageReference)(nil), // 52: chainguard.platform.registry.PackagesDiff.ChangedPackageReference + (*timestamppb.Timestamp)(nil), // 53: google.protobuf.Timestamp + (*v1.UIDPFilter)(nil), // 54: chainguard.platform.common.UIDPFilter + (*v11.Scanner)(nil), // 55: chainguard.platform.tenant.Scanner + (*emptypb.Empty)(nil), // 56: google.protobuf.Empty + (*v11.Sbom2)(nil), // 57: chainguard.platform.tenant.Sbom2 + (*v11.VulnReport)(nil), // 58: chainguard.platform.tenant.VulnReport } var file_registry_platform_proto_depIdxs = []int32{ 0, // 0: chainguard.platform.registry.Repo.catalog_tier:type_name -> chainguard.platform.registry.CatalogTier - 2, // 1: chainguard.platform.registry.Repo.sync_config:type_name -> chainguard.platform.registry.SyncConfig - 49, // 2: chainguard.platform.registry.SyncConfig.expiration:type_name -> google.protobuf.Timestamp - 1, // 3: chainguard.platform.registry.CreateRepoRequest.repo:type_name -> chainguard.platform.registry.Repo - 1, // 4: chainguard.platform.registry.RepoList.items:type_name -> chainguard.platform.registry.Repo - 50, // 5: chainguard.platform.registry.RepoFilter.uidp:type_name -> chainguard.platform.common.UIDPFilter - 9, // 6: chainguard.platform.registry.CreateTagRequest.tag:type_name -> chainguard.platform.registry.Tag - 49, // 7: chainguard.platform.registry.Tag.last_updated:type_name -> google.protobuf.Timestamp - 50, // 8: chainguard.platform.registry.TagFilter.uidp:type_name -> chainguard.platform.common.UIDPFilter - 49, // 9: chainguard.platform.registry.TagFilter.updated_since:type_name -> google.protobuf.Timestamp - 9, // 10: chainguard.platform.registry.TagList.items:type_name -> chainguard.platform.registry.Tag - 49, // 11: chainguard.platform.registry.TagHistoryFilter.start:type_name -> google.protobuf.Timestamp - 49, // 12: chainguard.platform.registry.TagHistoryFilter.end:type_name -> google.protobuf.Timestamp - 14, // 13: chainguard.platform.registry.TagHistoryList.items:type_name -> chainguard.platform.registry.TagHistory - 49, // 14: chainguard.platform.registry.TagHistory.update_timestamp:type_name -> google.protobuf.Timestamp - 22, // 15: chainguard.platform.registry.DiffImageResponse.packages:type_name -> chainguard.platform.registry.PackagesDiff - 25, // 16: chainguard.platform.registry.DiffImageResponse.vulnerabilities:type_name -> chainguard.platform.registry.VulnerabilitiesDiff - 44, // 17: chainguard.platform.registry.ImageConfig.exposed_ports:type_name -> chainguard.platform.registry.ImageConfig.ExposedPortsEntry - 46, // 18: chainguard.platform.registry.ImageConfig.volumes:type_name -> chainguard.platform.registry.ImageConfig.VolumesEntry - 47, // 19: chainguard.platform.registry.ImageConfig.labels:type_name -> chainguard.platform.registry.ImageConfig.LabelsEntry - 24, // 20: chainguard.platform.registry.PackagesDiff.added:type_name -> chainguard.platform.registry.PackageReference - 24, // 21: chainguard.platform.registry.PackagesDiff.removed:type_name -> chainguard.platform.registry.PackageReference - 48, // 22: chainguard.platform.registry.PackagesDiff.changed:type_name -> chainguard.platform.registry.PackagesDiff.ChangedPackageReference - 27, // 23: chainguard.platform.registry.VulnerabilitiesDiff.added:type_name -> chainguard.platform.registry.VulnerabilityReference - 27, // 24: chainguard.platform.registry.VulnerabilitiesDiff.removed:type_name -> chainguard.platform.registry.VulnerabilityReference - 26, // 25: chainguard.platform.registry.VulnerabilitiesDiff.metadata:type_name -> chainguard.platform.registry.ScannerMetadata - 51, // 26: chainguard.platform.registry.ScannerMetadata.scanner:type_name -> chainguard.platform.tenant.Scanner - 49, // 27: chainguard.platform.registry.ScannerMetadata.vulnerability_db_last_build_time:type_name -> google.protobuf.Timestamp - 34, // 28: chainguard.platform.registry.ManifestMetadataFilterEntry.index_filter:type_name -> chainguard.platform.registry.ManifestMetadataIndexFilter - 35, // 29: chainguard.platform.registry.ManifestMetadataFilter.items:type_name -> chainguard.platform.registry.ManifestMetadataFilterEntry - 49, // 30: chainguard.platform.registry.PkgMetadata.eol_date:type_name -> google.protobuf.Timestamp - 49, // 31: chainguard.platform.registry.PkgMetadata.build_timestamp:type_name -> google.protobuf.Timestamp - 37, // 32: chainguard.platform.registry.ManifestMetadata.pkg_metadata:type_name -> chainguard.platform.registry.PkgMetadata - 38, // 33: chainguard.platform.registry.ManifestMetadataList.items:type_name -> chainguard.platform.registry.ManifestMetadata - 42, // 34: chainguard.platform.registry.PackageVersionMetadata.eolVersions:type_name -> chainguard.platform.registry.PackageVersion - 42, // 35: chainguard.platform.registry.PackageVersionMetadata.versions:type_name -> chainguard.platform.registry.PackageVersion - 43, // 36: chainguard.platform.registry.ImageConfig.ExposedPortsEntry.value:type_name -> chainguard.platform.registry.ImageConfig.ExposedPort - 45, // 37: chainguard.platform.registry.ImageConfig.VolumesEntry.value:type_name -> chainguard.platform.registry.ImageConfig.Volume - 23, // 38: chainguard.platform.registry.PackagesDiff.ChangedPackageReference.current:type_name -> chainguard.platform.registry.VersionReference - 23, // 39: chainguard.platform.registry.PackagesDiff.ChangedPackageReference.previous:type_name -> chainguard.platform.registry.VersionReference - 3, // 40: chainguard.platform.registry.Registry.CreateRepo:input_type -> chainguard.platform.registry.CreateRepoRequest - 1, // 41: chainguard.platform.registry.Registry.UpdateRepo:input_type -> chainguard.platform.registry.Repo - 6, // 42: chainguard.platform.registry.Registry.ListRepos:input_type -> chainguard.platform.registry.RepoFilter - 4, // 43: chainguard.platform.registry.Registry.DeleteRepo:input_type -> chainguard.platform.registry.DeleteRepoRequest - 7, // 44: chainguard.platform.registry.Registry.CreateTag:input_type -> chainguard.platform.registry.CreateTagRequest - 9, // 45: chainguard.platform.registry.Registry.UpdateTag:input_type -> chainguard.platform.registry.Tag - 8, // 46: chainguard.platform.registry.Registry.DeleteTag:input_type -> chainguard.platform.registry.DeleteTagRequest - 10, // 47: chainguard.platform.registry.Registry.ListTags:input_type -> chainguard.platform.registry.TagFilter - 12, // 48: chainguard.platform.registry.Registry.ListTagHistory:input_type -> chainguard.platform.registry.TagHistoryFilter - 16, // 49: chainguard.platform.registry.Registry.GetSbom:input_type -> chainguard.platform.registry.SbomRequest - 31, // 50: chainguard.platform.registry.Registry.GetImageConfig:input_type -> chainguard.platform.registry.ImageConfigRequest - 29, // 51: chainguard.platform.registry.Registry.GetArchs:input_type -> chainguard.platform.registry.ArchRequest - 30, // 52: chainguard.platform.registry.Registry.GetSize:input_type -> chainguard.platform.registry.SizeRequest - 32, // 53: chainguard.platform.registry.Registry.GetRawSbom:input_type -> chainguard.platform.registry.RawSbomRequest - 33, // 54: chainguard.platform.registry.Registry.GetVulnReport:input_type -> chainguard.platform.registry.VulnReportRequest - 36, // 55: chainguard.platform.registry.Registry.ListManifestMetadata:input_type -> chainguard.platform.registry.ManifestMetadataFilter - 17, // 56: chainguard.platform.registry.Registry.GetPackageVersionMetadata:input_type -> chainguard.platform.registry.PackageVersionMetadataRequest - 1, // 57: chainguard.platform.registry.Registry.CreateRepo:output_type -> chainguard.platform.registry.Repo - 1, // 58: chainguard.platform.registry.Registry.UpdateRepo:output_type -> chainguard.platform.registry.Repo - 5, // 59: chainguard.platform.registry.Registry.ListRepos:output_type -> chainguard.platform.registry.RepoList - 52, // 60: chainguard.platform.registry.Registry.DeleteRepo:output_type -> google.protobuf.Empty - 9, // 61: chainguard.platform.registry.Registry.CreateTag:output_type -> chainguard.platform.registry.Tag - 9, // 62: chainguard.platform.registry.Registry.UpdateTag:output_type -> chainguard.platform.registry.Tag - 52, // 63: chainguard.platform.registry.Registry.DeleteTag:output_type -> google.protobuf.Empty - 11, // 64: chainguard.platform.registry.Registry.ListTags:output_type -> chainguard.platform.registry.TagList - 13, // 65: chainguard.platform.registry.Registry.ListTagHistory:output_type -> chainguard.platform.registry.TagHistoryList - 53, // 66: chainguard.platform.registry.Registry.GetSbom:output_type -> chainguard.platform.tenant.Sbom2 - 21, // 67: chainguard.platform.registry.Registry.GetImageConfig:output_type -> chainguard.platform.registry.ImageConfig - 18, // 68: chainguard.platform.registry.Registry.GetArchs:output_type -> chainguard.platform.registry.Archs - 20, // 69: chainguard.platform.registry.Registry.GetSize:output_type -> chainguard.platform.registry.Size - 40, // 70: chainguard.platform.registry.Registry.GetRawSbom:output_type -> chainguard.platform.registry.RawSbom - 54, // 71: chainguard.platform.registry.Registry.GetVulnReport:output_type -> chainguard.platform.tenant.VulnReport - 39, // 72: chainguard.platform.registry.Registry.ListManifestMetadata:output_type -> chainguard.platform.registry.ManifestMetadataList - 41, // 73: chainguard.platform.registry.Registry.GetPackageVersionMetadata:output_type -> chainguard.platform.registry.PackageVersionMetadata - 57, // [57:74] is the sub-list for method output_type - 40, // [40:57] is the sub-list for method input_type - 40, // [40:40] is the sub-list for extension type_name - 40, // [40:40] is the sub-list for extension extendee - 0, // [0:40] is the sub-list for field type_name + 3, // 1: chainguard.platform.registry.Repo.sync_config:type_name -> chainguard.platform.registry.SyncConfig + 53, // 2: chainguard.platform.registry.SyncConfig.expiration:type_name -> google.protobuf.Timestamp + 2, // 3: chainguard.platform.registry.CreateRepoRequest.repo:type_name -> chainguard.platform.registry.Repo + 2, // 4: chainguard.platform.registry.RepoList.items:type_name -> chainguard.platform.registry.Repo + 54, // 5: chainguard.platform.registry.RepoFilter.uidp:type_name -> chainguard.platform.common.UIDPFilter + 10, // 6: chainguard.platform.registry.CreateTagRequest.tag:type_name -> chainguard.platform.registry.Tag + 53, // 7: chainguard.platform.registry.Tag.last_updated:type_name -> google.protobuf.Timestamp + 54, // 8: chainguard.platform.registry.TagFilter.uidp:type_name -> chainguard.platform.common.UIDPFilter + 53, // 9: chainguard.platform.registry.TagFilter.updated_since:type_name -> google.protobuf.Timestamp + 10, // 10: chainguard.platform.registry.TagList.items:type_name -> chainguard.platform.registry.Tag + 53, // 11: chainguard.platform.registry.TagHistoryFilter.start:type_name -> google.protobuf.Timestamp + 53, // 12: chainguard.platform.registry.TagHistoryFilter.end:type_name -> google.protobuf.Timestamp + 15, // 13: chainguard.platform.registry.TagHistoryList.items:type_name -> chainguard.platform.registry.TagHistory + 53, // 14: chainguard.platform.registry.TagHistory.update_timestamp:type_name -> google.protobuf.Timestamp + 23, // 15: chainguard.platform.registry.DiffImageResponse.packages:type_name -> chainguard.platform.registry.PackagesDiff + 26, // 16: chainguard.platform.registry.DiffImageResponse.vulnerabilities:type_name -> chainguard.platform.registry.VulnerabilitiesDiff + 48, // 17: chainguard.platform.registry.ImageConfig.exposed_ports:type_name -> chainguard.platform.registry.ImageConfig.ExposedPortsEntry + 50, // 18: chainguard.platform.registry.ImageConfig.volumes:type_name -> chainguard.platform.registry.ImageConfig.VolumesEntry + 51, // 19: chainguard.platform.registry.ImageConfig.labels:type_name -> chainguard.platform.registry.ImageConfig.LabelsEntry + 25, // 20: chainguard.platform.registry.PackagesDiff.added:type_name -> chainguard.platform.registry.PackageReference + 25, // 21: chainguard.platform.registry.PackagesDiff.removed:type_name -> chainguard.platform.registry.PackageReference + 52, // 22: chainguard.platform.registry.PackagesDiff.changed:type_name -> chainguard.platform.registry.PackagesDiff.ChangedPackageReference + 28, // 23: chainguard.platform.registry.VulnerabilitiesDiff.added:type_name -> chainguard.platform.registry.VulnerabilityReference + 28, // 24: chainguard.platform.registry.VulnerabilitiesDiff.removed:type_name -> chainguard.platform.registry.VulnerabilityReference + 27, // 25: chainguard.platform.registry.VulnerabilitiesDiff.metadata:type_name -> chainguard.platform.registry.ScannerMetadata + 55, // 26: chainguard.platform.registry.ScannerMetadata.scanner:type_name -> chainguard.platform.tenant.Scanner + 53, // 27: chainguard.platform.registry.ScannerMetadata.vulnerability_db_last_build_time:type_name -> google.protobuf.Timestamp + 35, // 28: chainguard.platform.registry.ManifestMetadataFilterEntry.index_filter:type_name -> chainguard.platform.registry.ManifestMetadataIndexFilter + 36, // 29: chainguard.platform.registry.ManifestMetadataFilter.items:type_name -> chainguard.platform.registry.ManifestMetadataFilterEntry + 53, // 30: chainguard.platform.registry.PkgMetadata.eol_date:type_name -> google.protobuf.Timestamp + 53, // 31: chainguard.platform.registry.PkgMetadata.build_timestamp:type_name -> google.protobuf.Timestamp + 38, // 32: chainguard.platform.registry.ManifestMetadata.pkg_metadata:type_name -> chainguard.platform.registry.PkgMetadata + 39, // 33: chainguard.platform.registry.ManifestMetadataList.items:type_name -> chainguard.platform.registry.ManifestMetadata + 43, // 34: chainguard.platform.registry.PackageVersionMetadata.eolVersions:type_name -> chainguard.platform.registry.PackageVersion + 43, // 35: chainguard.platform.registry.PackageVersionMetadata.versions:type_name -> chainguard.platform.registry.PackageVersion + 54, // 36: chainguard.platform.registry.BuildReportFilter.uidp:type_name -> chainguard.platform.common.UIDPFilter + 1, // 37: chainguard.platform.registry.BuildReport.result:type_name -> chainguard.platform.registry.BuildReport.Result + 53, // 38: chainguard.platform.registry.BuildReport.started_at:type_name -> google.protobuf.Timestamp + 53, // 39: chainguard.platform.registry.BuildReport.completed_at:type_name -> google.protobuf.Timestamp + 45, // 40: chainguard.platform.registry.BuildReportList.reports:type_name -> chainguard.platform.registry.BuildReport + 47, // 41: chainguard.platform.registry.ImageConfig.ExposedPortsEntry.value:type_name -> chainguard.platform.registry.ImageConfig.ExposedPort + 49, // 42: chainguard.platform.registry.ImageConfig.VolumesEntry.value:type_name -> chainguard.platform.registry.ImageConfig.Volume + 24, // 43: chainguard.platform.registry.PackagesDiff.ChangedPackageReference.current:type_name -> chainguard.platform.registry.VersionReference + 24, // 44: chainguard.platform.registry.PackagesDiff.ChangedPackageReference.previous:type_name -> chainguard.platform.registry.VersionReference + 4, // 45: chainguard.platform.registry.Registry.CreateRepo:input_type -> chainguard.platform.registry.CreateRepoRequest + 2, // 46: chainguard.platform.registry.Registry.UpdateRepo:input_type -> chainguard.platform.registry.Repo + 7, // 47: chainguard.platform.registry.Registry.ListRepos:input_type -> chainguard.platform.registry.RepoFilter + 5, // 48: chainguard.platform.registry.Registry.DeleteRepo:input_type -> chainguard.platform.registry.DeleteRepoRequest + 8, // 49: chainguard.platform.registry.Registry.CreateTag:input_type -> chainguard.platform.registry.CreateTagRequest + 10, // 50: chainguard.platform.registry.Registry.UpdateTag:input_type -> chainguard.platform.registry.Tag + 9, // 51: chainguard.platform.registry.Registry.DeleteTag:input_type -> chainguard.platform.registry.DeleteTagRequest + 11, // 52: chainguard.platform.registry.Registry.ListTags:input_type -> chainguard.platform.registry.TagFilter + 13, // 53: chainguard.platform.registry.Registry.ListTagHistory:input_type -> chainguard.platform.registry.TagHistoryFilter + 17, // 54: chainguard.platform.registry.Registry.GetSbom:input_type -> chainguard.platform.registry.SbomRequest + 32, // 55: chainguard.platform.registry.Registry.GetImageConfig:input_type -> chainguard.platform.registry.ImageConfigRequest + 30, // 56: chainguard.platform.registry.Registry.GetArchs:input_type -> chainguard.platform.registry.ArchRequest + 31, // 57: chainguard.platform.registry.Registry.GetSize:input_type -> chainguard.platform.registry.SizeRequest + 33, // 58: chainguard.platform.registry.Registry.GetRawSbom:input_type -> chainguard.platform.registry.RawSbomRequest + 34, // 59: chainguard.platform.registry.Registry.GetVulnReport:input_type -> chainguard.platform.registry.VulnReportRequest + 37, // 60: chainguard.platform.registry.Registry.ListManifestMetadata:input_type -> chainguard.platform.registry.ManifestMetadataFilter + 18, // 61: chainguard.platform.registry.Registry.GetPackageVersionMetadata:input_type -> chainguard.platform.registry.PackageVersionMetadataRequest + 44, // 62: chainguard.platform.registry.Registry.ListBuildReports:input_type -> chainguard.platform.registry.BuildReportFilter + 2, // 63: chainguard.platform.registry.Registry.CreateRepo:output_type -> chainguard.platform.registry.Repo + 2, // 64: chainguard.platform.registry.Registry.UpdateRepo:output_type -> chainguard.platform.registry.Repo + 6, // 65: chainguard.platform.registry.Registry.ListRepos:output_type -> chainguard.platform.registry.RepoList + 56, // 66: chainguard.platform.registry.Registry.DeleteRepo:output_type -> google.protobuf.Empty + 10, // 67: chainguard.platform.registry.Registry.CreateTag:output_type -> chainguard.platform.registry.Tag + 10, // 68: chainguard.platform.registry.Registry.UpdateTag:output_type -> chainguard.platform.registry.Tag + 56, // 69: chainguard.platform.registry.Registry.DeleteTag:output_type -> google.protobuf.Empty + 12, // 70: chainguard.platform.registry.Registry.ListTags:output_type -> chainguard.platform.registry.TagList + 14, // 71: chainguard.platform.registry.Registry.ListTagHistory:output_type -> chainguard.platform.registry.TagHistoryList + 57, // 72: chainguard.platform.registry.Registry.GetSbom:output_type -> chainguard.platform.tenant.Sbom2 + 22, // 73: chainguard.platform.registry.Registry.GetImageConfig:output_type -> chainguard.platform.registry.ImageConfig + 19, // 74: chainguard.platform.registry.Registry.GetArchs:output_type -> chainguard.platform.registry.Archs + 21, // 75: chainguard.platform.registry.Registry.GetSize:output_type -> chainguard.platform.registry.Size + 41, // 76: chainguard.platform.registry.Registry.GetRawSbom:output_type -> chainguard.platform.registry.RawSbom + 58, // 77: chainguard.platform.registry.Registry.GetVulnReport:output_type -> chainguard.platform.tenant.VulnReport + 40, // 78: chainguard.platform.registry.Registry.ListManifestMetadata:output_type -> chainguard.platform.registry.ManifestMetadataList + 42, // 79: chainguard.platform.registry.Registry.GetPackageVersionMetadata:output_type -> chainguard.platform.registry.PackageVersionMetadata + 46, // 80: chainguard.platform.registry.Registry.ListBuildReports:output_type -> chainguard.platform.registry.BuildReportList + 63, // [63:81] is the sub-list for method output_type + 45, // [45:63] is the sub-list for method input_type + 45, // [45:45] is the sub-list for extension type_name + 45, // [45:45] is the sub-list for extension extendee + 0, // [0:45] is the sub-list for field type_name } func init() { file_registry_platform_proto_init() } @@ -4275,7 +4615,19 @@ func file_registry_platform_proto_init() { } } file_registry_platform_proto_msgTypes[42].Exporter = func(v any, i int) any { - switch v := v.(*ImageConfig_ExposedPort); i { + switch v := v.(*BuildReportFilter); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_registry_platform_proto_msgTypes[43].Exporter = func(v any, i int) any { + switch v := v.(*BuildReport); i { case 0: return &v.state case 1: @@ -4287,7 +4639,19 @@ func file_registry_platform_proto_init() { } } file_registry_platform_proto_msgTypes[44].Exporter = func(v any, i int) any { - switch v := v.(*ImageConfig_Volume); i { + switch v := v.(*BuildReportList); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_registry_platform_proto_msgTypes[45].Exporter = func(v any, i int) any { + switch v := v.(*ImageConfig_ExposedPort); i { case 0: return &v.state case 1: @@ -4299,6 +4663,18 @@ func file_registry_platform_proto_init() { } } file_registry_platform_proto_msgTypes[47].Exporter = func(v any, i int) any { + switch v := v.(*ImageConfig_Volume); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_registry_platform_proto_msgTypes[50].Exporter = func(v any, i int) any { switch v := v.(*PackagesDiff_ChangedPackageReference); i { case 0: return &v.state @@ -4320,8 +4696,8 @@ func file_registry_platform_proto_init() { File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_registry_platform_proto_rawDesc, - NumEnums: 1, - NumMessages: 48, + NumEnums: 2, + NumMessages: 51, NumExtensions: 0, NumServices: 1, }, diff --git a/proto/platform/registry/v1/registry.platform.pb.gw.go b/proto/platform/registry/v1/registry.platform.pb.gw.go index 4013596..8a2d199 100644 --- a/proto/platform/registry/v1/registry.platform.pb.gw.go +++ b/proto/platform/registry/v1/registry.platform.pb.gw.go @@ -1138,6 +1138,42 @@ func local_request_Registry_GetPackageVersionMetadata_0(ctx context.Context, mar } +var ( + filter_Registry_ListBuildReports_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} +) + +func request_Registry_ListBuildReports_0(ctx context.Context, marshaler runtime.Marshaler, client RegistryClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq BuildReportFilter + var metadata runtime.ServerMetadata + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_Registry_ListBuildReports_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.ListBuildReports(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_Registry_ListBuildReports_0(ctx context.Context, marshaler runtime.Marshaler, server RegistryServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq BuildReportFilter + var metadata runtime.ServerMetadata + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_Registry_ListBuildReports_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.ListBuildReports(ctx, &protoReq) + return msg, metadata, err + +} + // RegisterRegistryHandlerServer registers the http handlers for service Registry to "mux". // UnaryRPC :call RegistryServer directly. // StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. @@ -1570,6 +1606,31 @@ func RegisterRegistryHandlerServer(ctx context.Context, mux *runtime.ServeMux, s }) + mux.Handle("GET", pattern_Registry_ListBuildReports_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/chainguard.platform.registry.Registry/ListBuildReports", runtime.WithHTTPPathPattern("/registry/v1/buildreports")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_Registry_ListBuildReports_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_Registry_ListBuildReports_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + return nil } @@ -1985,6 +2046,28 @@ func RegisterRegistryHandlerClient(ctx context.Context, mux *runtime.ServeMux, c }) + mux.Handle("GET", pattern_Registry_ListBuildReports_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/chainguard.platform.registry.Registry/ListBuildReports", runtime.WithHTTPPathPattern("/registry/v1/buildreports")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_Registry_ListBuildReports_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_Registry_ListBuildReports_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + return nil } @@ -2022,6 +2105,8 @@ var ( pattern_Registry_ListManifestMetadata_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 3, 0, 4, 1, 5, 3, 2, 4}, []string{"registry", "v1", "repos", "repo_id", "manifestmetdata"}, "")) pattern_Registry_GetPackageVersionMetadata_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 3, 0, 4, 1, 5, 3}, []string{"registry", "v1", "versions", "package"}, "")) + + pattern_Registry_ListBuildReports_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"registry", "v1", "buildreports"}, "")) ) var ( @@ -2058,4 +2143,6 @@ var ( forward_Registry_ListManifestMetadata_0 = runtime.ForwardResponseMessage forward_Registry_GetPackageVersionMetadata_0 = runtime.ForwardResponseMessage + + forward_Registry_ListBuildReports_0 = runtime.ForwardResponseMessage ) diff --git a/proto/platform/registry/v1/registry.platform.proto b/proto/platform/registry/v1/registry.platform.proto index de19a3a..f6b731e 100644 --- a/proto/platform/registry/v1/registry.platform.proto +++ b/proto/platform/registry/v1/registry.platform.proto @@ -240,6 +240,18 @@ service Registry { } }; } + + rpc ListBuildReports(BuildReportFilter) returns (BuildReportList) { + option (google.api.http) = { + get: "/registry/v1/buildreports" + }; + option (chainguard.annotations.iam) = { + enabled: { + capabilities: [CAP_BUILD_REPORT_LIST] + unscoped: true + } + }; + } } message Repo { @@ -662,3 +674,57 @@ message PackageVersion { // the version stream identifier string version = 6; } + +// BuildReportFilter is used to filter BuildReports for ListBuildReports call. +message BuildReportFilter { + // uidp filters records based on their position in the group hierarchy. + chainguard.platform.common.UIDPFilter uidp = 1; +} + +// BuildReport is a record of a build, including the configuration used, the result, and the log. +// +// These are created by the build system, the clients should not create/update these themselves, +// but can read them to see the build information as well as build results. +message BuildReport { + // id, identifier of this BuildReport, a UIDP under a Repo. + string id = 1; + + // The configuration used to build the image, in APKO build config JSON. + string config = 2; + + // The version-locked configuration used to build the image, in APKO build config JSON. + string locked_config = 3; + + enum Result { + Unknown = 0; + Success = 1; + Failure = 2; + } + // The result of the build. + Result result = 4; + + // The warnings generated during the build. + repeated string warnings = 5; + + // The build log. For the moment, this is the build log's content. + // This could later change to an URI if the build log gets large enough. + string log = 6; + + // The digest of the image built, in case of success. + string digest = 7; + + // The version of the APKO used to build the image. + string apko_version = 8; + + // The start time of the build. It is set by the server automatically, + // anything written by the client will be ignored. + google.protobuf.Timestamp started_at = 9; + + // The end time of the build. Must be after the started_at time. + google.protobuf.Timestamp completed_at = 10; +} + +// BuildReportList is a list of BuildReports. +message BuildReportList { + repeated BuildReport reports = 1; +} diff --git a/proto/platform/registry/v1/registry.platform_grpc.pb.go b/proto/platform/registry/v1/registry.platform_grpc.pb.go index 1e104cb..84574d2 100644 --- a/proto/platform/registry/v1/registry.platform_grpc.pb.go +++ b/proto/platform/registry/v1/registry.platform_grpc.pb.go @@ -38,6 +38,7 @@ const ( Registry_GetVulnReport_FullMethodName = "/chainguard.platform.registry.Registry/GetVulnReport" Registry_ListManifestMetadata_FullMethodName = "/chainguard.platform.registry.Registry/ListManifestMetadata" Registry_GetPackageVersionMetadata_FullMethodName = "/chainguard.platform.registry.Registry/GetPackageVersionMetadata" + Registry_ListBuildReports_FullMethodName = "/chainguard.platform.registry.Registry/ListBuildReports" ) // RegistryClient is the client API for Registry service. @@ -61,6 +62,7 @@ type RegistryClient interface { GetVulnReport(ctx context.Context, in *VulnReportRequest, opts ...grpc.CallOption) (*v1.VulnReport, error) ListManifestMetadata(ctx context.Context, in *ManifestMetadataFilter, opts ...grpc.CallOption) (*ManifestMetadataList, error) GetPackageVersionMetadata(ctx context.Context, in *PackageVersionMetadataRequest, opts ...grpc.CallOption) (*PackageVersionMetadata, error) + ListBuildReports(ctx context.Context, in *BuildReportFilter, opts ...grpc.CallOption) (*BuildReportList, error) } type registryClient struct { @@ -241,6 +243,16 @@ func (c *registryClient) GetPackageVersionMetadata(ctx context.Context, in *Pack return out, nil } +func (c *registryClient) ListBuildReports(ctx context.Context, in *BuildReportFilter, opts ...grpc.CallOption) (*BuildReportList, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(BuildReportList) + err := c.cc.Invoke(ctx, Registry_ListBuildReports_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + // RegistryServer is the server API for Registry service. // All implementations must embed UnimplementedRegistryServer // for forward compatibility. @@ -262,6 +274,7 @@ type RegistryServer interface { GetVulnReport(context.Context, *VulnReportRequest) (*v1.VulnReport, error) ListManifestMetadata(context.Context, *ManifestMetadataFilter) (*ManifestMetadataList, error) GetPackageVersionMetadata(context.Context, *PackageVersionMetadataRequest) (*PackageVersionMetadata, error) + ListBuildReports(context.Context, *BuildReportFilter) (*BuildReportList, error) mustEmbedUnimplementedRegistryServer() } @@ -323,6 +336,9 @@ func (UnimplementedRegistryServer) ListManifestMetadata(context.Context, *Manife func (UnimplementedRegistryServer) GetPackageVersionMetadata(context.Context, *PackageVersionMetadataRequest) (*PackageVersionMetadata, error) { return nil, status.Errorf(codes.Unimplemented, "method GetPackageVersionMetadata not implemented") } +func (UnimplementedRegistryServer) ListBuildReports(context.Context, *BuildReportFilter) (*BuildReportList, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListBuildReports not implemented") +} func (UnimplementedRegistryServer) mustEmbedUnimplementedRegistryServer() {} func (UnimplementedRegistryServer) testEmbeddedByValue() {} @@ -650,6 +666,24 @@ func _Registry_GetPackageVersionMetadata_Handler(srv interface{}, ctx context.Co return interceptor(ctx, in, info, handler) } +func _Registry_ListBuildReports_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(BuildReportFilter) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RegistryServer).ListBuildReports(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Registry_ListBuildReports_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RegistryServer).ListBuildReports(ctx, req.(*BuildReportFilter)) + } + return interceptor(ctx, in, info, handler) +} + // Registry_ServiceDesc is the grpc.ServiceDesc for Registry service. // It's only intended for direct use with grpc.RegisterService, // and not to be introspected or modified (even as a copy) @@ -725,6 +759,10 @@ var Registry_ServiceDesc = grpc.ServiceDesc{ MethodName: "GetPackageVersionMetadata", Handler: _Registry_GetPackageVersionMetadata_Handler, }, + { + MethodName: "ListBuildReports", + Handler: _Registry_ListBuildReports_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "registry.platform.proto",