From f0fc4775cf9a29c709cd63f0d48d6d295697fcd5 Mon Sep 17 00:00:00 2001 From: Fahad Syed Date: Mon, 13 May 2024 17:41:56 -0400 Subject: [PATCH] move rpc to pfs service. --- proto-docs.json | 122 +- proto-docs.md | 68 +- python-sdk/pachyderm_sdk/api/pfs/__init__.py | 25 + .../pachyderm_sdk/api/storage/__init__.py | 22 - src/client/transaction.gen.go | 4 + src/internal/client/transaction.gen.go | 4 + src/internal/jsonschema/BUILD.bazel | 2 + .../CompactCommitFilesetRequest.schema.json | 195 +++ .../CompactCommitFilesetResponse.schema.json | 16 + src/openapi/pachyderm_api.swagger.json | 94 +- src/pfs/pfs.pb.go | 1073 ++++++++++------- src/pfs/pfs.pb.gw.go | 85 ++ src/pfs/pfs.pb.validate.go | 237 ++++ src/pfs/pfs.pb.zap.go | 16 + src/pfs/pfs.proto | 11 + src/pfs/pfs_grpc.pb.go | 39 + src/storage/fileset.pb.go | 226 +--- src/storage/fileset.pb.gw.go | 85 -- src/storage/fileset.pb.validate.go | 208 ---- src/storage/fileset.pb.zap.go | 16 - src/storage/fileset.proto | 12 +- src/storage/fileset_grpc.pb.go | 43 +- src/typescript/pfs/pfs.pb.ts | 11 + src/typescript/storage/fileset.pb.ts | 11 - 24 files changed, 1442 insertions(+), 1183 deletions(-) create mode 100644 src/internal/jsonschema/pfs_v2/CompactCommitFilesetRequest.schema.json create mode 100644 src/internal/jsonschema/pfs_v2/CompactCommitFilesetResponse.schema.json diff --git a/proto-docs.json b/proto-docs.json index 625df0c51d5..b680c9c5310 100644 --- a/proto-docs.json +++ b/proto-docs.json @@ -11835,6 +11835,54 @@ } ] }, + { + "name": "CompactCommitFilesetRequest", + "longName": "CompactCommitFilesetRequest", + "fullName": "pfs_v2.CompactCommitFilesetRequest", + "description": "", + "hasExtensions": false, + "hasFields": true, + "hasOneofs": false, + "extensions": [], + "fields": [ + { + "name": "commit_picker", + "description": "", + "label": "", + "type": "CommitPicker", + "longType": "CommitPicker", + "fullType": "pfs_v2.CommitPicker", + "ismap": false, + "isoneof": false, + "oneofdecl": "", + "defaultValue": "" + } + ] + }, + { + "name": "CompactCommitFilesetResponse", + "longName": "CompactCommitFilesetResponse", + "fullName": "pfs_v2.CompactCommitFilesetResponse", + "description": "", + "hasExtensions": false, + "hasFields": true, + "hasOneofs": false, + "extensions": [], + "fields": [ + { + "name": "fileset_id", + "description": "", + "label": "", + "type": "string", + "longType": "string", + "fullType": "string", + "ismap": false, + "isoneof": false, + "oneofdecl": "", + "defaultValue": "" + } + ] + }, { "name": "ComposeFileSetRequest", "longName": "ComposeFileSetRequest", @@ -16047,6 +16095,18 @@ "responseLongType": "ReposSummaryResponse", "responseFullType": "pfs_v2.ReposSummaryResponse", "responseStreaming": false + }, + { + "name": "CompactCommitFileset", + "description": "CompactCommitFileset runs the filesets of an input commit through compaction and returns the id of the new fileset.", + "requestType": "CompactCommitFilesetRequest", + "requestLongType": "CompactCommitFilesetRequest", + "requestFullType": "pfs_v2.CompactCommitFilesetRequest", + "requestStreaming": false, + "responseType": "CompactCommitFilesetResponse", + "responseLongType": "CompactCommitFilesetResponse", + "responseFullType": "pfs_v2.CompactCommitFilesetResponse", + "responseStreaming": false } ] } @@ -29119,54 +29179,6 @@ } ] }, - { - "name": "CompactFilesetRequest", - "longName": "CompactFilesetRequest", - "fullName": "storage.CompactFilesetRequest", - "description": "", - "hasExtensions": false, - "hasFields": true, - "hasOneofs": false, - "extensions": [], - "fields": [ - { - "name": "fileset_id", - "description": "", - "label": "", - "type": "string", - "longType": "string", - "fullType": "string", - "ismap": false, - "isoneof": false, - "oneofdecl": "", - "defaultValue": "" - } - ] - }, - { - "name": "CompactFilesetResponse", - "longName": "CompactFilesetResponse", - "fullName": "storage.CompactFilesetResponse", - "description": "", - "hasExtensions": false, - "hasFields": true, - "hasOneofs": false, - "extensions": [], - "fields": [ - { - "name": "fileset_id", - "description": "", - "label": "", - "type": "string", - "longType": "string", - "fullType": "string", - "ismap": false, - "isoneof": false, - "oneofdecl": "", - "defaultValue": "" - } - ] - }, { "name": "ComposeFilesetRequest", "longName": "ComposeFilesetRequest", @@ -29693,7 +29705,7 @@ }, { "name": "GraphFileset", - "description": "GraphFileset generates a graph of a fileset in the form of a dot graph.\nPass the output to jq and then to dot to get an image like so:\npachctl misc grpc storage.Fileset.GraphFileset '{\"id\": \"\u003cID\u003e\"}' | jq -r .graph | dot -Tpng \u003e graph.png", + "description": "GraphFileset generates a graph of a fileset in the form of a dot graph.\nPass the output to jq and then to dot to get an image like so:\npachctl misc grpc storage.Fileset.GraphFileset '{\"fileset_id\": \"\u003cID\u003e\"}' | jq -r .graph | dot -Tpng \u003e graph.png", "requestType": "GraphFilesetRequest", "requestLongType": "GraphFilesetRequest", "requestFullType": "storage.GraphFilesetRequest", @@ -29702,18 +29714,6 @@ "responseLongType": "GraphFilesetResponse", "responseFullType": "storage.GraphFilesetResponse", "responseStreaming": false - }, - { - "name": "CompactFileset", - "description": "CompactFileset runs an input fileset through compaction and returns the id of the new fileset.", - "requestType": "CompactFilesetRequest", - "requestLongType": "CompactFilesetRequest", - "requestFullType": "storage.CompactFilesetRequest", - "requestStreaming": false, - "responseType": "CompactFilesetResponse", - "responseLongType": "CompactFilesetResponse", - "responseFullType": "storage.CompactFilesetResponse", - "responseStreaming": false } ] } diff --git a/proto-docs.md b/proto-docs.md index a2000cc2360..9f74d7437e9 100644 --- a/proto-docs.md +++ b/proto-docs.md @@ -331,6 +331,8 @@ - [CommitPicker.CommitByGlobalId](#pfs_v2-CommitPicker-CommitByGlobalId) - [CommitSet](#pfs_v2-CommitSet) - [CommitSetInfo](#pfs_v2-CommitSetInfo) + - [CompactCommitFilesetRequest](#pfs_v2-CompactCommitFilesetRequest) + - [CompactCommitFilesetResponse](#pfs_v2-CompactCommitFilesetResponse) - [ComposeFileSetRequest](#pfs_v2-ComposeFileSetRequest) - [CopyFile](#pfs_v2-CopyFile) - [CreateBranchRequest](#pfs_v2-CreateBranchRequest) @@ -674,8 +676,6 @@ - [storage/fileset.proto](#storage_fileset-proto) - [AppendFile](#storage-AppendFile) - - [CompactFilesetRequest](#storage-CompactFilesetRequest) - - [CompactFilesetResponse](#storage-CompactFilesetResponse) - [ComposeFilesetRequest](#storage-ComposeFilesetRequest) - [ComposeFilesetResponse](#storage-ComposeFilesetResponse) - [CreateFilesetRequest](#storage-CreateFilesetRequest) @@ -5345,6 +5345,36 @@ This models .N syntax. + + +### CompactCommitFilesetRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| commit_picker | [CommitPicker](#pfs_v2-CommitPicker) | | | + + + + + + + + +### CompactCommitFilesetResponse + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| fileset_id | [string](#string) | | | + + + + + + ### ComposeFileSetRequest @@ -6886,6 +6916,7 @@ These are the different places where a commit may be originated from | ListProject | [ListProjectRequest](#pfs_v2-ListProjectRequest) | [ProjectInfo](#pfs_v2-ProjectInfo) stream | ListProject returns info about all projects. | | DeleteProject | [DeleteProjectRequest](#pfs_v2-DeleteProjectRequest) | [.google.protobuf.Empty](#google-protobuf-Empty) | DeleteProject deletes a project. | | ReposSummary | [ReposSummaryRequest](#pfs_v2-ReposSummaryRequest) | [ReposSummaryResponse](#pfs_v2-ReposSummaryResponse) | Summary API ReposSummary returns a list of summaries about the repos for each of the requested projects. | +| CompactCommitFileset | [CompactCommitFilesetRequest](#pfs_v2-CompactCommitFilesetRequest) | [CompactCommitFilesetResponse](#pfs_v2-CompactCommitFilesetResponse) | CompactCommitFileset runs the filesets of an input commit through compaction and returns the id of the new fileset. | @@ -10819,36 +10850,6 @@ a file with the specified path doesn't exist, it will be created. - - -### CompactFilesetRequest - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| fileset_id | [string](#string) | | | - - - - - - - - -### CompactFilesetResponse - - - -| Field | Type | Label | Description | -| ----- | ---- | ----- | ----------- | -| fileset_id | [string](#string) | | | - - - - - - ### ComposeFilesetRequest @@ -11100,8 +11101,7 @@ storage's default value is used. | RenewFileset | [RenewFilesetRequest](#storage-RenewFilesetRequest) | [.google.protobuf.Empty](#google-protobuf-Empty) | RenewFileset renews a fileset. | | ComposeFileset | [ComposeFilesetRequest](#storage-ComposeFilesetRequest) | [ComposeFilesetResponse](#storage-ComposeFilesetResponse) | ComposeFileset composes a fileset. Composing a fileset involves combining one or more filesets into a single fileset. TODO: Explain how the filesets are layered and what that means for the order of file modifications. | | ShardFileset | [ShardFilesetRequest](#storage-ShardFilesetRequest) | [ShardFilesetResponse](#storage-ShardFilesetResponse) | ShardFileset shards a fileset. The shards of a fileset are returned as a list of path ranges that are disjoint and account for the full set of paths in the fileset. | -| GraphFileset | [GraphFilesetRequest](#storage-GraphFilesetRequest) | [GraphFilesetResponse](#storage-GraphFilesetResponse) | GraphFileset generates a graph of a fileset in the form of a dot graph. Pass the output to jq and then to dot to get an image like so: pachctl misc grpc storage.Fileset.GraphFileset '{"id": "<ID>"}' | jq -r .graph | dot -Tpng > graph.png | -| CompactFileset | [CompactFilesetRequest](#storage-CompactFilesetRequest) | [CompactFilesetResponse](#storage-CompactFilesetResponse) | CompactFileset runs an input fileset through compaction and returns the id of the new fileset. | +| GraphFileset | [GraphFilesetRequest](#storage-GraphFilesetRequest) | [GraphFilesetResponse](#storage-GraphFilesetResponse) | GraphFileset generates a graph of a fileset in the form of a dot graph. Pass the output to jq and then to dot to get an image like so: pachctl misc grpc storage.Fileset.GraphFileset '{"fileset_id": "<ID>"}' | jq -r .graph | dot -Tpng > graph.png | diff --git a/python-sdk/pachyderm_sdk/api/pfs/__init__.py b/python-sdk/pachyderm_sdk/api/pfs/__init__.py index 98bdcfa5702..71752b14423 100644 --- a/python-sdk/pachyderm_sdk/api/pfs/__init__.py +++ b/python-sdk/pachyderm_sdk/api/pfs/__init__.py @@ -1017,6 +1017,16 @@ class ReposSummaryResponse(betterproto.Message): summaries: List["ReposSummary"] = betterproto.message_field(1) +@dataclass(eq=False, repr=False) +class CompactCommitFilesetRequest(betterproto.Message): + commit_picker: "CommitPicker" = betterproto.message_field(1) + + +@dataclass(eq=False, repr=False) +class CompactCommitFilesetResponse(betterproto.Message): + fileset_id: str = betterproto.string_field(1) + + class ApiStub: def __init__(self, channel: "grpc.Channel"): @@ -1295,6 +1305,11 @@ def __init__(self, channel: "grpc.Channel"): request_serializer=ReposSummaryRequest.SerializeToString, response_deserializer=ReposSummaryResponse.FromString, ) + self.__rpc_compact_commit_fileset = channel.unary_unary( + "/pfs_v2.API/CompactCommitFileset", + request_serializer=CompactCommitFilesetRequest.SerializeToString, + response_deserializer=CompactCommitFilesetResponse.FromString, + ) def create_repo( self, *, repo: "Repo" = None, description: str = "", update: bool = False @@ -2035,3 +2050,13 @@ def repos_summary( request.projects = projects return self.__rpc_repos_summary(request) + + def compact_commit_fileset( + self, *, commit_picker: "CommitPicker" = None + ) -> "CompactCommitFilesetResponse": + + request = CompactCommitFilesetRequest() + if commit_picker is not None: + request.commit_picker = commit_picker + + return self.__rpc_compact_commit_fileset(request) diff --git a/python-sdk/pachyderm_sdk/api/storage/__init__.py b/python-sdk/pachyderm_sdk/api/storage/__init__.py index fbb510cdee4..0c921481a76 100644 --- a/python-sdk/pachyderm_sdk/api/storage/__init__.py +++ b/python-sdk/pachyderm_sdk/api/storage/__init__.py @@ -162,16 +162,6 @@ class GraphFilesetResponse(betterproto.Message): graph: str = betterproto.string_field(1) -@dataclass(eq=False, repr=False) -class CompactFilesetRequest(betterproto.Message): - fileset_id: str = betterproto.string_field(1) - - -@dataclass(eq=False, repr=False) -class CompactFilesetResponse(betterproto.Message): - fileset_id: str = betterproto.string_field(1) - - class FilesetStub: def __init__(self, channel: "grpc.Channel"): @@ -205,11 +195,6 @@ def __init__(self, channel: "grpc.Channel"): request_serializer=GraphFilesetRequest.SerializeToString, response_deserializer=GraphFilesetResponse.FromString, ) - self.__rpc_compact_fileset = channel.unary_unary( - "/storage.Fileset/CompactFileset", - request_serializer=CompactFilesetRequest.SerializeToString, - response_deserializer=CompactFilesetResponse.FromString, - ) def create_fileset( self, @@ -276,10 +261,3 @@ def graph_fileset(self, *, fileset_id: str = "") -> "GraphFilesetResponse": request.fileset_id = fileset_id return self.__rpc_graph_fileset(request) - - def compact_fileset(self, *, fileset_id: str = "") -> "CompactFilesetResponse": - - request = CompactFilesetRequest() - request.fileset_id = fileset_id - - return self.__rpc_compact_fileset(request) diff --git a/src/client/transaction.gen.go b/src/client/transaction.gen.go index 4a9499bdfd0..2e2be24bb58 100644 --- a/src/client/transaction.gen.go +++ b/src/client/transaction.gen.go @@ -336,6 +336,10 @@ func (c *unsupportedPfsBuilderClient) ClearCommit(_ context.Context, _ *pfs_v2.C return nil, unsupportedError("ClearCommit") } +func (c *unsupportedPfsBuilderClient) CompactCommitFileset(_ context.Context, _ *pfs_v2.CompactCommitFilesetRequest, opts ...grpc.CallOption) (*pfs_v2.CompactCommitFilesetResponse, error) { + return nil, unsupportedError("CompactCommitFileset") +} + func (c *unsupportedPfsBuilderClient) ComposeFileSet(_ context.Context, _ *pfs_v2.ComposeFileSetRequest, opts ...grpc.CallOption) (*pfs_v2.CreateFileSetResponse, error) { return nil, unsupportedError("ComposeFileSet") } diff --git a/src/internal/client/transaction.gen.go b/src/internal/client/transaction.gen.go index 4a9499bdfd0..2e2be24bb58 100644 --- a/src/internal/client/transaction.gen.go +++ b/src/internal/client/transaction.gen.go @@ -336,6 +336,10 @@ func (c *unsupportedPfsBuilderClient) ClearCommit(_ context.Context, _ *pfs_v2.C return nil, unsupportedError("ClearCommit") } +func (c *unsupportedPfsBuilderClient) CompactCommitFileset(_ context.Context, _ *pfs_v2.CompactCommitFilesetRequest, opts ...grpc.CallOption) (*pfs_v2.CompactCommitFilesetResponse, error) { + return nil, unsupportedError("CompactCommitFileset") +} + func (c *unsupportedPfsBuilderClient) ComposeFileSet(_ context.Context, _ *pfs_v2.ComposeFileSetRequest, opts ...grpc.CallOption) (*pfs_v2.CreateFileSetResponse, error) { return nil, unsupportedError("ComposeFileSet") } diff --git a/src/internal/jsonschema/BUILD.bazel b/src/internal/jsonschema/BUILD.bazel index 65a5c18500b..851df88c26d 100644 --- a/src/internal/jsonschema/BUILD.bazel +++ b/src/internal/jsonschema/BUILD.bazel @@ -530,6 +530,8 @@ go_library( "storage/GraphFilesetResponse.schema.json", "storage/CompactFilesetRequest.schema.json", "storage/CompactFilesetResponse.schema.json", + "pfs_v2/CompactCommitFilesetRequest.schema.json", + "pfs_v2/CompactCommitFilesetResponse.schema.json", ], importpath = "github.com/pachyderm/pachyderm/v2/src/internal/jsonschema", visibility = ["//src:__subpackages__"], diff --git a/src/internal/jsonschema/pfs_v2/CompactCommitFilesetRequest.schema.json b/src/internal/jsonschema/pfs_v2/CompactCommitFilesetRequest.schema.json new file mode 100644 index 00000000000..e5d0bdef45d --- /dev/null +++ b/src/internal/jsonschema/pfs_v2/CompactCommitFilesetRequest.schema.json @@ -0,0 +1,195 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "$ref": "#/definitions/CompactCommitFilesetRequest", + "definitions": { + "CompactCommitFilesetRequest": { + "properties": { + "commitPicker": { + "$ref": "#/definitions/pfs_v2.CommitPicker", + "additionalProperties": false + } + }, + "additionalProperties": false, + "type": "object", + "title": "Compact Commit Fileset Request" + }, + "pfs_v2.BranchPicker": { + "properties": { + "name": { + "$ref": "#/definitions/pfs_v2.BranchPicker.BranchName", + "additionalProperties": false + } + }, + "additionalProperties": false, + "type": "object", + "oneOf": [ + { + "required": [ + "name" + ] + } + ], + "title": "Branch Picker", + "description": "BranchPicker defines mutually exclusive pickers that resolve to a single branch. Currently, the only way to pick a branch is by composing a branch name with a repo. Picker messages should only be used as request parameters." + }, + "pfs_v2.BranchPicker.BranchName": { + "properties": { + "repo": { + "$ref": "#/definitions/pfs_v2.RepoPicker", + "additionalProperties": false + }, + "name": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "title": "Branch Name" + }, + "pfs_v2.CommitPicker": { + "properties": { + "branchHead": { + "$ref": "#/definitions/pfs_v2.BranchPicker", + "additionalProperties": false + }, + "id": { + "$ref": "#/definitions/pfs_v2.CommitPicker.CommitByGlobalId", + "additionalProperties": false + }, + "ancestor": { + "$ref": "#/definitions/pfs_v2.CommitPicker.AncestorOf", + "additionalProperties": false + }, + "branchRoot": { + "$ref": "#/definitions/pfs_v2.CommitPicker.BranchRoot", + "additionalProperties": false + } + }, + "additionalProperties": false, + "type": "object", + "oneOf": [ + { + "required": [ + "branch_head" + ] + }, + { + "required": [ + "id" + ] + }, + { + "required": [ + "ancestor" + ] + }, + { + "required": [ + "branch_root" + ] + } + ], + "title": "Commit Picker", + "description": "CommitPicker defines mutually exclusive pickers that resolve to a single commit. Commits can be picked relatively from some other commit like a parent or start of branch. Alternatively, they can be picked via their global Id, which is composed of a repo picker and an id. Picker messages should only be used as request parameters." + }, + "pfs_v2.CommitPicker.AncestorOf": { + "properties": { + "offset": { + "type": "integer" + }, + "start": { + "$ref": "#/definitions/pfs_v2.CommitPicker", + "additionalProperties": false + } + }, + "additionalProperties": false, + "type": "object", + "title": "Ancestor Of", + "description": "This models ^ syntax recursively." + }, + "pfs_v2.CommitPicker.BranchRoot": { + "properties": { + "offset": { + "type": "integer" + }, + "branch": { + "$ref": "#/definitions/pfs_v2.BranchPicker", + "additionalProperties": false + } + }, + "additionalProperties": false, + "type": "object", + "title": "Branch Root", + "description": "This models .N syntax." + }, + "pfs_v2.CommitPicker.CommitByGlobalId": { + "properties": { + "repo": { + "$ref": "#/definitions/pfs_v2.RepoPicker", + "additionalProperties": false + }, + "id": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "title": "Commit By Global Id" + }, + "pfs_v2.ProjectPicker": { + "properties": { + "name": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "oneOf": [ + { + "required": [ + "name" + ] + } + ], + "title": "Project Picker", + "description": "ProjectPicker defines mutually exclusive pickers that resolve to a single project. Currently, the only way to pick a project is by using a project name. Picker messages should only be used as request parameters." + }, + "pfs_v2.RepoPicker": { + "properties": { + "name": { + "$ref": "#/definitions/pfs_v2.RepoPicker.RepoName", + "additionalProperties": false + } + }, + "additionalProperties": false, + "type": "object", + "oneOf": [ + { + "required": [ + "name" + ] + } + ], + "title": "Repo Picker", + "description": "Repo defines mutually exclusive pickers that resolve to a single repository. Currently, the only way to pick a repo is by composing a repo name and type with a project. If the type is omitted, the 'user' type will be used as a default. Picker messages should only be used as request parameters." + }, + "pfs_v2.RepoPicker.RepoName": { + "properties": { + "project": { + "$ref": "#/definitions/pfs_v2.ProjectPicker", + "additionalProperties": false + }, + "name": { + "type": "string" + }, + "type": { + "type": "string", + "description": "type is optional. If omitted, the default type is 'user'." + } + }, + "additionalProperties": false, + "type": "object", + "title": "Repo Name" + } + } +} \ No newline at end of file diff --git a/src/internal/jsonschema/pfs_v2/CompactCommitFilesetResponse.schema.json b/src/internal/jsonschema/pfs_v2/CompactCommitFilesetResponse.schema.json new file mode 100644 index 00000000000..0367887ae25 --- /dev/null +++ b/src/internal/jsonschema/pfs_v2/CompactCommitFilesetResponse.schema.json @@ -0,0 +1,16 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "$ref": "#/definitions/CompactCommitFilesetResponse", + "definitions": { + "CompactCommitFilesetResponse": { + "properties": { + "filesetId": { + "type": "string" + } + }, + "additionalProperties": false, + "type": "object", + "title": "Compact Commit Fileset Response" + } + } +} \ No newline at end of file diff --git a/src/openapi/pachyderm_api.swagger.json b/src/openapi/pachyderm_api.swagger.json index 843546688e6..55e7a5f1e95 100644 --- a/src/openapi/pachyderm_api.swagger.json +++ b/src/openapi/pachyderm_api.swagger.json @@ -3870,6 +3870,36 @@ ] } }, + "/pfs_v2.API/CompactCommitFileset": { + "post": { + "summary": "CompactCommitFileset runs the filesets of an input commit through compaction and returns the id of the new fileset.", + "operationId": "API_CompactCommitFileset", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/pfs_v2CompactCommitFilesetResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/pfs_v2CompactCommitFilesetRequest" + } + } + ] + } + }, "/pjs.API/CreateJob": { "post": { "summary": "CreateJob creates a new job.\nChild jobs can be created by setting the context field to the appropriate parent job context.", @@ -5745,7 +5775,7 @@ }, "/storage.Fileset/GraphFileset": { "post": { - "summary": "GraphFileset generates a graph of a fileset in the form of a dot graph.\nPass the output to jq and then to dot to get an image like so:\npachctl misc grpc storage.Fileset.GraphFileset '{\"id\": \"\u003cID\u003e\"}' | jq -r .graph | dot -Tpng \u003e graph.png", + "summary": "GraphFileset generates a graph of a fileset in the form of a dot graph.\nPass the output to jq and then to dot to get an image like so:\npachctl misc grpc storage.Fileset.GraphFileset '{\"fileset_id\": \"\u003cID\u003e\"}' | jq -r .graph | dot -Tpng \u003e graph.png", "operationId": "Fileset_GraphFileset", "responses": { "200": { @@ -5773,36 +5803,6 @@ ] } }, - "/storage.Fileset/CompactFileset": { - "post": { - "summary": "CompactFileset runs an input fileset through compaction and returns the id of the new fileset.", - "operationId": "Fileset_CompactFileset", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/storageCompactFilesetResponse" - } - }, - "default": { - "description": "An unexpected error response.", - "schema": { - "$ref": "#/definitions/rpcStatus" - } - } - }, - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/storageCompactFilesetRequest" - } - } - ] - } - }, "/transaction_v2.API/BatchTransaction": { "post": { "summary": "Transaction rpcs", @@ -8688,6 +8688,22 @@ "default": "COMMIT_STATE_UNKNOWN", "description": "CommitState describes the states a commit can be in.\nThe states are increasingly specific, i.e. a commit that is FINISHED also counts as STARTED.\n\n - STARTED: The commit has been started, all commits satisfy this state.\n - READY: The commit has been started, and all of its provenant commits have been finished.\n - FINISHING: The commit is in the process of being finished.\n - FINISHED: The commit has been finished." }, + "pfs_v2CompactCommitFilesetRequest": { + "type": "object", + "properties": { + "commitPicker": { + "$ref": "#/definitions/pfs_v2CommitPicker" + } + } + }, + "pfs_v2CompactCommitFilesetResponse": { + "type": "object", + "properties": { + "filesetId": { + "type": "string" + } + } + }, "pfs_v2ComposeFileSetRequest": { "type": "object", "properties": { @@ -12206,22 +12222,6 @@ }, "description": "AppendFile will append the provided data to the file with the specified path. If\na file with the specified path doesn't exist, it will be created." }, - "storageCompactFilesetRequest": { - "type": "object", - "properties": { - "filesetId": { - "type": "string" - } - } - }, - "storageCompactFilesetResponse": { - "type": "object", - "properties": { - "filesetId": { - "type": "string" - } - } - }, "storageComposeFilesetRequest": { "type": "object", "properties": { diff --git a/src/pfs/pfs.pb.go b/src/pfs/pfs.pb.go index c13605f11e5..2c3a55f992f 100644 --- a/src/pfs/pfs.pb.go +++ b/src/pfs/pfs.pb.go @@ -6275,6 +6275,100 @@ func (x *ReposSummaryResponse) GetSummaries() []*ReposSummary { return nil } +type CompactCommitFilesetRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CommitPicker *CommitPicker `protobuf:"bytes,1,opt,name=commit_picker,json=commitPicker,proto3" json:"commit_picker,omitempty"` +} + +func (x *CompactCommitFilesetRequest) Reset() { + *x = CompactCommitFilesetRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_pfs_pfs_proto_msgTypes[93] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CompactCommitFilesetRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CompactCommitFilesetRequest) ProtoMessage() {} + +func (x *CompactCommitFilesetRequest) ProtoReflect() protoreflect.Message { + mi := &file_pfs_pfs_proto_msgTypes[93] + 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 CompactCommitFilesetRequest.ProtoReflect.Descriptor instead. +func (*CompactCommitFilesetRequest) Descriptor() ([]byte, []int) { + return file_pfs_pfs_proto_rawDescGZIP(), []int{93} +} + +func (x *CompactCommitFilesetRequest) GetCommitPicker() *CommitPicker { + if x != nil { + return x.CommitPicker + } + return nil +} + +type CompactCommitFilesetResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FilesetId string `protobuf:"bytes,1,opt,name=fileset_id,json=filesetId,proto3" json:"fileset_id,omitempty"` +} + +func (x *CompactCommitFilesetResponse) Reset() { + *x = CompactCommitFilesetResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_pfs_pfs_proto_msgTypes[94] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CompactCommitFilesetResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CompactCommitFilesetResponse) ProtoMessage() {} + +func (x *CompactCommitFilesetResponse) ProtoReflect() protoreflect.Message { + mi := &file_pfs_pfs_proto_msgTypes[94] + 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 CompactCommitFilesetResponse.ProtoReflect.Descriptor instead. +func (*CompactCommitFilesetResponse) Descriptor() ([]byte, []int) { + return file_pfs_pfs_proto_rawDescGZIP(), []int{94} +} + +func (x *CompactCommitFilesetResponse) GetFilesetId() string { + if x != nil { + return x.FilesetId + } + return "" +} + type RepoPicker_RepoName struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -6288,7 +6382,7 @@ type RepoPicker_RepoName struct { func (x *RepoPicker_RepoName) Reset() { *x = RepoPicker_RepoName{} if protoimpl.UnsafeEnabled { - mi := &file_pfs_pfs_proto_msgTypes[93] + mi := &file_pfs_pfs_proto_msgTypes[95] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6301,7 +6395,7 @@ func (x *RepoPicker_RepoName) String() string { func (*RepoPicker_RepoName) ProtoMessage() {} func (x *RepoPicker_RepoName) ProtoReflect() protoreflect.Message { - mi := &file_pfs_pfs_proto_msgTypes[93] + mi := &file_pfs_pfs_proto_msgTypes[95] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6350,7 +6444,7 @@ type BranchPicker_BranchName struct { func (x *BranchPicker_BranchName) Reset() { *x = BranchPicker_BranchName{} if protoimpl.UnsafeEnabled { - mi := &file_pfs_pfs_proto_msgTypes[94] + mi := &file_pfs_pfs_proto_msgTypes[96] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6363,7 +6457,7 @@ func (x *BranchPicker_BranchName) String() string { func (*BranchPicker_BranchName) ProtoMessage() {} func (x *BranchPicker_BranchName) ProtoReflect() protoreflect.Message { - mi := &file_pfs_pfs_proto_msgTypes[94] + mi := &file_pfs_pfs_proto_msgTypes[96] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6405,7 +6499,7 @@ type RepoInfo_Details struct { func (x *RepoInfo_Details) Reset() { *x = RepoInfo_Details{} if protoimpl.UnsafeEnabled { - mi := &file_pfs_pfs_proto_msgTypes[95] + mi := &file_pfs_pfs_proto_msgTypes[97] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6418,7 +6512,7 @@ func (x *RepoInfo_Details) String() string { func (*RepoInfo_Details) ProtoMessage() {} func (x *RepoInfo_Details) ProtoReflect() protoreflect.Message { - mi := &file_pfs_pfs_proto_msgTypes[95] + mi := &file_pfs_pfs_proto_msgTypes[97] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6453,7 +6547,7 @@ type CommitPicker_CommitByGlobalId struct { func (x *CommitPicker_CommitByGlobalId) Reset() { *x = CommitPicker_CommitByGlobalId{} if protoimpl.UnsafeEnabled { - mi := &file_pfs_pfs_proto_msgTypes[98] + mi := &file_pfs_pfs_proto_msgTypes[100] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6466,7 +6560,7 @@ func (x *CommitPicker_CommitByGlobalId) String() string { func (*CommitPicker_CommitByGlobalId) ProtoMessage() {} func (x *CommitPicker_CommitByGlobalId) ProtoReflect() protoreflect.Message { - mi := &file_pfs_pfs_proto_msgTypes[98] + mi := &file_pfs_pfs_proto_msgTypes[100] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6509,7 +6603,7 @@ type CommitPicker_BranchRoot struct { func (x *CommitPicker_BranchRoot) Reset() { *x = CommitPicker_BranchRoot{} if protoimpl.UnsafeEnabled { - mi := &file_pfs_pfs_proto_msgTypes[99] + mi := &file_pfs_pfs_proto_msgTypes[101] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6522,7 +6616,7 @@ func (x *CommitPicker_BranchRoot) String() string { func (*CommitPicker_BranchRoot) ProtoMessage() {} func (x *CommitPicker_BranchRoot) ProtoReflect() protoreflect.Message { - mi := &file_pfs_pfs_proto_msgTypes[99] + mi := &file_pfs_pfs_proto_msgTypes[101] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6565,7 +6659,7 @@ type CommitPicker_AncestorOf struct { func (x *CommitPicker_AncestorOf) Reset() { *x = CommitPicker_AncestorOf{} if protoimpl.UnsafeEnabled { - mi := &file_pfs_pfs_proto_msgTypes[100] + mi := &file_pfs_pfs_proto_msgTypes[102] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6578,7 +6672,7 @@ func (x *CommitPicker_AncestorOf) String() string { func (*CommitPicker_AncestorOf) ProtoMessage() {} func (x *CommitPicker_AncestorOf) ProtoReflect() protoreflect.Message { - mi := &file_pfs_pfs_proto_msgTypes[100] + mi := &file_pfs_pfs_proto_msgTypes[102] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6622,7 +6716,7 @@ type CommitInfo_Details struct { func (x *CommitInfo_Details) Reset() { *x = CommitInfo_Details{} if protoimpl.UnsafeEnabled { - mi := &file_pfs_pfs_proto_msgTypes[101] + mi := &file_pfs_pfs_proto_msgTypes[103] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6635,7 +6729,7 @@ func (x *CommitInfo_Details) String() string { func (*CommitInfo_Details) ProtoMessage() {} func (x *CommitInfo_Details) ProtoReflect() protoreflect.Message { - mi := &file_pfs_pfs_proto_msgTypes[101] + mi := &file_pfs_pfs_proto_msgTypes[103] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6685,7 +6779,7 @@ type AddFile_URLSource struct { func (x *AddFile_URLSource) Reset() { *x = AddFile_URLSource{} if protoimpl.UnsafeEnabled { - mi := &file_pfs_pfs_proto_msgTypes[104] + mi := &file_pfs_pfs_proto_msgTypes[106] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6698,7 +6792,7 @@ func (x *AddFile_URLSource) String() string { func (*AddFile_URLSource) ProtoMessage() {} func (x *AddFile_URLSource) ProtoReflect() protoreflect.Message { - mi := &file_pfs_pfs_proto_msgTypes[104] + mi := &file_pfs_pfs_proto_msgTypes[106] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6747,7 +6841,7 @@ type SQLDatabaseEgress_FileFormat struct { func (x *SQLDatabaseEgress_FileFormat) Reset() { *x = SQLDatabaseEgress_FileFormat{} if protoimpl.UnsafeEnabled { - mi := &file_pfs_pfs_proto_msgTypes[105] + mi := &file_pfs_pfs_proto_msgTypes[107] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6760,7 +6854,7 @@ func (x *SQLDatabaseEgress_FileFormat) String() string { func (*SQLDatabaseEgress_FileFormat) ProtoMessage() {} func (x *SQLDatabaseEgress_FileFormat) ProtoReflect() protoreflect.Message { - mi := &file_pfs_pfs_proto_msgTypes[105] + mi := &file_pfs_pfs_proto_msgTypes[107] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6802,7 +6896,7 @@ type SQLDatabaseEgress_Secret struct { func (x *SQLDatabaseEgress_Secret) Reset() { *x = SQLDatabaseEgress_Secret{} if protoimpl.UnsafeEnabled { - mi := &file_pfs_pfs_proto_msgTypes[106] + mi := &file_pfs_pfs_proto_msgTypes[108] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6815,7 +6909,7 @@ func (x *SQLDatabaseEgress_Secret) String() string { func (*SQLDatabaseEgress_Secret) ProtoMessage() {} func (x *SQLDatabaseEgress_Secret) ProtoReflect() protoreflect.Message { - mi := &file_pfs_pfs_proto_msgTypes[106] + mi := &file_pfs_pfs_proto_msgTypes[108] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6856,7 +6950,7 @@ type EgressResponse_ObjectStorageResult struct { func (x *EgressResponse_ObjectStorageResult) Reset() { *x = EgressResponse_ObjectStorageResult{} if protoimpl.UnsafeEnabled { - mi := &file_pfs_pfs_proto_msgTypes[107] + mi := &file_pfs_pfs_proto_msgTypes[109] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6869,7 +6963,7 @@ func (x *EgressResponse_ObjectStorageResult) String() string { func (*EgressResponse_ObjectStorageResult) ProtoMessage() {} func (x *EgressResponse_ObjectStorageResult) ProtoReflect() protoreflect.Message { - mi := &file_pfs_pfs_proto_msgTypes[107] + mi := &file_pfs_pfs_proto_msgTypes[109] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6903,7 +6997,7 @@ type EgressResponse_SQLDatabaseResult struct { func (x *EgressResponse_SQLDatabaseResult) Reset() { *x = EgressResponse_SQLDatabaseResult{} if protoimpl.UnsafeEnabled { - mi := &file_pfs_pfs_proto_msgTypes[108] + mi := &file_pfs_pfs_proto_msgTypes[110] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6916,7 +7010,7 @@ func (x *EgressResponse_SQLDatabaseResult) String() string { func (*EgressResponse_SQLDatabaseResult) ProtoMessage() {} func (x *EgressResponse_SQLDatabaseResult) ProtoReflect() protoreflect.Message { - mi := &file_pfs_pfs_proto_msgTypes[108] + mi := &file_pfs_pfs_proto_msgTypes[110] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7748,271 +7842,287 @@ var file_pfs_pfs_proto_rawDesc = []byte{ 0x65, 0x12, 0x32, 0x0a, 0x09, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x09, 0x73, 0x75, 0x6d, 0x6d, - 0x61, 0x72, 0x69, 0x65, 0x73, 0x2a, 0x49, 0x0a, 0x0a, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x4b, - 0x69, 0x6e, 0x64, 0x12, 0x17, 0x0a, 0x13, 0x4f, 0x52, 0x49, 0x47, 0x49, 0x4e, 0x5f, 0x4b, 0x49, - 0x4e, 0x44, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, - 0x55, 0x53, 0x45, 0x52, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x41, 0x55, 0x54, 0x4f, 0x10, 0x02, - 0x12, 0x08, 0x0a, 0x04, 0x46, 0x53, 0x43, 0x4b, 0x10, 0x03, 0x22, 0x04, 0x08, 0x04, 0x10, 0x04, - 0x2a, 0x2b, 0x0a, 0x08, 0x46, 0x69, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0c, 0x0a, 0x08, - 0x52, 0x45, 0x53, 0x45, 0x52, 0x56, 0x45, 0x44, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x46, 0x49, - 0x4c, 0x45, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x44, 0x49, 0x52, 0x10, 0x02, 0x2a, 0x5c, 0x0a, - 0x0b, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x14, - 0x43, 0x4f, 0x4d, 0x4d, 0x49, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x4b, - 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x54, 0x41, 0x52, 0x54, 0x45, - 0x44, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x52, 0x45, 0x41, 0x44, 0x59, 0x10, 0x02, 0x12, 0x0d, - 0x0a, 0x09, 0x46, 0x49, 0x4e, 0x49, 0x53, 0x48, 0x49, 0x4e, 0x47, 0x10, 0x03, 0x12, 0x0c, 0x0a, - 0x08, 0x46, 0x49, 0x4e, 0x49, 0x53, 0x48, 0x45, 0x44, 0x10, 0x04, 0x2a, 0x3b, 0x0a, 0x09, 0x44, - 0x65, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x65, 0x72, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x4f, 0x4e, 0x45, - 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x4a, 0x53, 0x4f, 0x4e, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, - 0x4c, 0x49, 0x4e, 0x45, 0x10, 0x02, 0x12, 0x07, 0x0a, 0x03, 0x53, 0x51, 0x4c, 0x10, 0x03, 0x12, - 0x07, 0x0a, 0x03, 0x43, 0x53, 0x56, 0x10, 0x04, 0x32, 0xb6, 0x1e, 0x0a, 0x03, 0x41, 0x50, 0x49, - 0x12, 0x41, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x12, 0x19, - 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x43, 0x72, 0x65, 0x61, 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, 0x00, 0x12, 0x3d, 0x0a, 0x0b, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x52, 0x65, - 0x70, 0x6f, 0x12, 0x1a, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x73, 0x70, - 0x65, 0x63, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x10, - 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x49, 0x6e, 0x66, 0x6f, - 0x22, 0x00, 0x12, 0x39, 0x0a, 0x08, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x12, 0x17, - 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, + 0x61, 0x72, 0x69, 0x65, 0x73, 0x22, 0x58, 0x0a, 0x1b, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, + 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x65, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x0d, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x5f, 0x70, + 0x69, 0x63, 0x6b, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x70, 0x66, + 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x50, 0x69, 0x63, 0x6b, 0x65, + 0x72, 0x52, 0x0c, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x50, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x22, + 0x3d, 0x0a, 0x1c, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, + 0x46, 0x69, 0x6c, 0x65, 0x73, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x1d, 0x0a, 0x0a, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x65, 0x74, 0x49, 0x64, 0x2a, 0x49, + 0x0a, 0x0a, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x4b, 0x69, 0x6e, 0x64, 0x12, 0x17, 0x0a, 0x13, + 0x4f, 0x52, 0x49, 0x47, 0x49, 0x4e, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, + 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x55, 0x53, 0x45, 0x52, 0x10, 0x01, 0x12, + 0x08, 0x0a, 0x04, 0x41, 0x55, 0x54, 0x4f, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x46, 0x53, 0x43, + 0x4b, 0x10, 0x03, 0x22, 0x04, 0x08, 0x04, 0x10, 0x04, 0x2a, 0x2b, 0x0a, 0x08, 0x46, 0x69, 0x6c, + 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0c, 0x0a, 0x08, 0x52, 0x45, 0x53, 0x45, 0x52, 0x56, 0x45, + 0x44, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x46, 0x49, 0x4c, 0x45, 0x10, 0x01, 0x12, 0x07, 0x0a, + 0x03, 0x44, 0x49, 0x52, 0x10, 0x02, 0x2a, 0x5c, 0x0a, 0x0b, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x14, 0x43, 0x4f, 0x4d, 0x4d, 0x49, 0x54, 0x5f, + 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, + 0x0b, 0x0a, 0x07, 0x53, 0x54, 0x41, 0x52, 0x54, 0x45, 0x44, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, + 0x52, 0x45, 0x41, 0x44, 0x59, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x46, 0x49, 0x4e, 0x49, 0x53, + 0x48, 0x49, 0x4e, 0x47, 0x10, 0x03, 0x12, 0x0c, 0x0a, 0x08, 0x46, 0x49, 0x4e, 0x49, 0x53, 0x48, + 0x45, 0x44, 0x10, 0x04, 0x2a, 0x3b, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x65, + 0x72, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x4a, + 0x53, 0x4f, 0x4e, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x4c, 0x49, 0x4e, 0x45, 0x10, 0x02, 0x12, + 0x07, 0x0a, 0x03, 0x53, 0x51, 0x4c, 0x10, 0x03, 0x12, 0x07, 0x0a, 0x03, 0x43, 0x53, 0x56, 0x10, + 0x04, 0x32, 0x9b, 0x1f, 0x0a, 0x03, 0x41, 0x50, 0x49, 0x12, 0x41, 0x0a, 0x0a, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x12, 0x19, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, + 0x2e, 0x43, 0x72, 0x65, 0x61, 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, 0x00, 0x12, 0x3d, 0x0a, 0x0b, + 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x12, 0x1a, 0x2e, 0x70, 0x66, + 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x10, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, - 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x00, 0x30, 0x01, 0x12, 0x45, 0x0a, - 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x12, 0x19, 0x2e, 0x70, 0x66, - 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x00, 0x12, 0x48, 0x0a, 0x0b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, - 0x70, 0x6f, 0x73, 0x12, 0x1a, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x1b, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, - 0x65, 0x70, 0x6f, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3b, - 0x0a, 0x0b, 0x53, 0x74, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x1a, 0x2e, - 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6d, 0x6d, - 0x69, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x66, 0x73, 0x5f, - 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x22, 0x00, 0x12, 0x45, 0x0a, 0x0c, 0x46, - 0x69, 0x6e, 0x69, 0x73, 0x68, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x1b, 0x2e, 0x70, 0x66, - 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x43, 0x6f, 0x6d, 0x6d, 0x69, - 0x74, 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, 0x00, 0x12, 0x43, 0x0a, 0x0b, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x69, - 0x74, 0x12, 0x1a, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x43, 0x6c, 0x65, 0x61, 0x72, - 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 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, 0x00, 0x12, 0x43, 0x0a, 0x0d, 0x49, 0x6e, 0x73, 0x70, 0x65, - 0x63, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x1c, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, - 0x32, 0x2e, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x12, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, - 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x0a, - 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x19, 0x2e, 0x70, 0x66, 0x73, - 0x5f, 0x76, 0x32, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x12, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x43, - 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x00, 0x30, 0x01, 0x12, 0x49, 0x0a, - 0x0f, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, - 0x12, 0x1e, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, - 0x69, 0x62, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x12, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, - 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x00, 0x30, 0x01, 0x12, 0x4b, 0x0a, 0x0c, 0x53, 0x71, 0x75, 0x61, - 0x73, 0x68, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x1b, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, - 0x32, 0x2e, 0x53, 0x71, 0x75, 0x61, 0x73, 0x68, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x53, - 0x71, 0x75, 0x61, 0x73, 0x68, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x45, 0x0a, 0x0a, 0x44, 0x72, 0x6f, 0x70, 0x43, 0x6f, 0x6d, - 0x6d, 0x69, 0x74, 0x12, 0x19, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x44, 0x72, 0x6f, - 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, - 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x44, 0x72, 0x6f, 0x70, 0x43, 0x6f, 0x6d, 0x6d, - 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4b, 0x0a, 0x10, - 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x53, 0x65, 0x74, - 0x12, 0x1f, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, - 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x53, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x12, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, - 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x00, 0x30, 0x01, 0x12, 0x48, 0x0a, 0x0d, 0x4c, 0x69, 0x73, - 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x53, 0x65, 0x74, 0x12, 0x1c, 0x2e, 0x70, 0x66, 0x73, - 0x5f, 0x76, 0x32, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x53, 0x65, - 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x15, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, - 0x32, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x53, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x22, - 0x00, 0x30, 0x01, 0x12, 0x4b, 0x0a, 0x0f, 0x53, 0x71, 0x75, 0x61, 0x73, 0x68, 0x43, 0x6f, 0x6d, - 0x6d, 0x69, 0x74, 0x53, 0x65, 0x74, 0x12, 0x1e, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, - 0x53, 0x71, 0x75, 0x61, 0x73, 0x68, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x53, 0x65, 0x74, 0x52, + 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x00, 0x12, 0x39, 0x0a, 0x08, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x12, 0x17, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x10, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x49, 0x6e, + 0x66, 0x6f, 0x22, 0x00, 0x30, 0x01, 0x12, 0x45, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x52, 0x65, 0x70, 0x6f, 0x12, 0x19, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x1a, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, + 0x65, 0x70, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x48, 0x0a, + 0x0b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x12, 0x1a, 0x2e, 0x70, + 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, + 0x32, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3b, 0x0a, 0x0b, 0x53, 0x74, 0x61, 0x72, 0x74, + 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x1a, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, + 0x53, 0x74, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, + 0x69, 0x74, 0x22, 0x00, 0x12, 0x45, 0x0a, 0x0c, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x43, 0x6f, + 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x1b, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x46, 0x69, + 0x6e, 0x69, 0x73, 0x68, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 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, 0x00, 0x12, 0x43, 0x0a, 0x0b, 0x43, + 0x6c, 0x65, 0x61, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x1a, 0x2e, 0x70, 0x66, 0x73, + 0x5f, 0x76, 0x32, 0x2e, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 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, 0x00, - 0x12, 0x47, 0x0a, 0x0d, 0x44, 0x72, 0x6f, 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x53, 0x65, - 0x74, 0x12, 0x1c, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x44, 0x72, 0x6f, 0x70, 0x43, + 0x12, 0x43, 0x0a, 0x0d, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, + 0x74, 0x12, 0x1c, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x73, 0x70, 0x65, + 0x63, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x12, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x49, + 0x6e, 0x66, 0x6f, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6d, + 0x6d, 0x69, 0x74, 0x12, 0x19, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x4c, 0x69, 0x73, + 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x12, + 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x49, 0x6e, + 0x66, 0x6f, 0x22, 0x00, 0x30, 0x01, 0x12, 0x49, 0x0a, 0x0f, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, + 0x69, 0x62, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x1e, 0x2e, 0x70, 0x66, 0x73, 0x5f, + 0x76, 0x32, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x43, 0x6f, 0x6d, 0x6d, + 0x69, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x12, 0x2e, 0x70, 0x66, 0x73, 0x5f, + 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x00, 0x30, + 0x01, 0x12, 0x4b, 0x0a, 0x0c, 0x53, 0x71, 0x75, 0x61, 0x73, 0x68, 0x43, 0x6f, 0x6d, 0x6d, 0x69, + 0x74, 0x12, 0x1b, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x53, 0x71, 0x75, 0x61, 0x73, + 0x68, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, + 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x53, 0x71, 0x75, 0x61, 0x73, 0x68, 0x43, 0x6f, + 0x6d, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x45, + 0x0a, 0x0a, 0x44, 0x72, 0x6f, 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x19, 0x2e, 0x70, + 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x44, 0x72, 0x6f, 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, + 0x2e, 0x44, 0x72, 0x6f, 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4b, 0x0a, 0x10, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, + 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x53, 0x65, 0x74, 0x12, 0x1f, 0x2e, 0x70, 0x66, 0x73, 0x5f, + 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, + 0x53, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x12, 0x2e, 0x70, 0x66, 0x73, + 0x5f, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x00, + 0x30, 0x01, 0x12, 0x48, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, + 0x53, 0x65, 0x74, 0x12, 0x1c, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x4c, 0x69, 0x73, + 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x53, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x15, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, + 0x74, 0x53, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x00, 0x30, 0x01, 0x12, 0x4b, 0x0a, 0x0f, + 0x53, 0x71, 0x75, 0x61, 0x73, 0x68, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x53, 0x65, 0x74, 0x12, + 0x1e, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x53, 0x71, 0x75, 0x61, 0x73, 0x68, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x53, 0x65, 0x74, 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, 0x00, 0x12, 0x4a, 0x0a, 0x0b, 0x46, 0x69, 0x6e, - 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x12, 0x1a, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, - 0x32, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x46, 0x69, - 0x6e, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x00, 0x30, 0x01, 0x12, 0x53, 0x0a, 0x14, 0x57, 0x61, 0x6c, 0x6b, 0x43, 0x6f, 0x6d, - 0x6d, 0x69, 0x74, 0x50, 0x72, 0x6f, 0x76, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x23, 0x2e, - 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x57, 0x61, 0x6c, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x69, - 0x74, 0x50, 0x72, 0x6f, 0x76, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x12, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, - 0x69, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x00, 0x30, 0x01, 0x12, 0x53, 0x0a, 0x14, 0x57, 0x61, - 0x6c, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x53, 0x75, 0x62, 0x76, 0x65, 0x6e, 0x61, 0x6e, - 0x63, 0x65, 0x12, 0x23, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x57, 0x61, 0x6c, 0x6b, - 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x53, 0x75, 0x62, 0x76, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x12, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, - 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x00, 0x30, 0x01, 0x12, - 0x45, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x12, - 0x1b, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, - 0x72, 0x61, 0x6e, 0x63, 0x68, 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, 0x00, 0x12, 0x43, 0x0a, 0x0d, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, - 0x74, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x12, 0x1c, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, - 0x2e, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x12, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x42, - 0x72, 0x61, 0x6e, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x0a, 0x4c, - 0x69, 0x73, 0x74, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x12, 0x19, 0x2e, 0x70, 0x66, 0x73, 0x5f, - 0x76, 0x32, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x12, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x42, 0x72, - 0x61, 0x6e, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x00, 0x30, 0x01, 0x12, 0x45, 0x0a, 0x0c, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x12, 0x1b, 0x2e, 0x70, - 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x72, 0x61, 0x6e, - 0x63, 0x68, 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, 0x00, 0x12, 0x53, 0x0a, 0x14, 0x57, 0x61, 0x6c, 0x6b, 0x42, 0x72, 0x61, 0x6e, 0x63, - 0x68, 0x50, 0x72, 0x6f, 0x76, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x23, 0x2e, 0x70, 0x66, - 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x57, 0x61, 0x6c, 0x6b, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x50, - 0x72, 0x6f, 0x76, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x12, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, - 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x00, 0x30, 0x01, 0x12, 0x53, 0x0a, 0x14, 0x57, 0x61, 0x6c, 0x6b, - 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x53, 0x75, 0x62, 0x76, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, - 0x12, 0x23, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x57, 0x61, 0x6c, 0x6b, 0x42, 0x72, - 0x61, 0x6e, 0x63, 0x68, 0x53, 0x75, 0x62, 0x76, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x12, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x42, - 0x72, 0x61, 0x6e, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x00, 0x30, 0x01, 0x12, 0x43, 0x0a, - 0x0a, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x19, 0x2e, 0x70, 0x66, - 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x46, 0x69, 0x6c, 0x65, 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, 0x00, - 0x28, 0x01, 0x12, 0x42, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x16, 0x2e, + 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x47, 0x0a, 0x0d, 0x44, 0x72, 0x6f, + 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x53, 0x65, 0x74, 0x12, 0x1c, 0x2e, 0x70, 0x66, 0x73, + 0x5f, 0x76, 0x32, 0x2e, 0x44, 0x72, 0x6f, 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x53, 0x65, + 0x74, 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, 0x00, 0x12, 0x4a, 0x0a, 0x0b, 0x46, 0x69, 0x6e, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, + 0x73, 0x12, 0x1a, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x43, + 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, + 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x69, + 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x30, 0x01, 0x12, 0x53, + 0x0a, 0x14, 0x57, 0x61, 0x6c, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x50, 0x72, 0x6f, 0x76, + 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x23, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, + 0x57, 0x61, 0x6c, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x50, 0x72, 0x6f, 0x76, 0x65, 0x6e, + 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x12, 0x2e, 0x70, 0x66, + 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x22, + 0x00, 0x30, 0x01, 0x12, 0x53, 0x0a, 0x14, 0x57, 0x61, 0x6c, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x69, + 0x74, 0x53, 0x75, 0x62, 0x76, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x23, 0x2e, 0x70, 0x66, + 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x57, 0x61, 0x6c, 0x6b, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x53, + 0x75, 0x62, 0x76, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x12, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, + 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x00, 0x30, 0x01, 0x12, 0x45, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x12, 0x1b, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, + 0x32, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 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, 0x00, 0x12, + 0x43, 0x0a, 0x0d, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, + 0x12, 0x1c, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, + 0x74, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x12, + 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x49, 0x6e, + 0x66, 0x6f, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x72, 0x61, 0x6e, + 0x63, 0x68, 0x12, 0x19, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x4c, 0x69, 0x73, 0x74, + 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x12, 0x2e, + 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x49, 0x6e, 0x66, + 0x6f, 0x22, 0x00, 0x30, 0x01, 0x12, 0x45, 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, + 0x72, 0x61, 0x6e, 0x63, 0x68, 0x12, 0x1b, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 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, 0x00, 0x12, 0x53, 0x0a, 0x14, + 0x57, 0x61, 0x6c, 0x6b, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x76, 0x65, 0x6e, + 0x61, 0x6e, 0x63, 0x65, 0x12, 0x23, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x57, 0x61, + 0x6c, 0x6b, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x76, 0x65, 0x6e, 0x61, 0x6e, + 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x12, 0x2e, 0x70, 0x66, 0x73, 0x5f, + 0x76, 0x32, 0x2e, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x00, 0x30, + 0x01, 0x12, 0x53, 0x0a, 0x14, 0x57, 0x61, 0x6c, 0x6b, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x53, + 0x75, 0x62, 0x76, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x23, 0x2e, 0x70, 0x66, 0x73, 0x5f, + 0x76, 0x32, 0x2e, 0x57, 0x61, 0x6c, 0x6b, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x53, 0x75, 0x62, + 0x76, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x12, + 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x49, 0x6e, + 0x66, 0x6f, 0x22, 0x00, 0x30, 0x01, 0x12, 0x43, 0x0a, 0x0a, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, + 0x46, 0x69, 0x6c, 0x65, 0x12, 0x19, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x4d, 0x6f, + 0x64, 0x69, 0x66, 0x79, 0x46, 0x69, 0x6c, 0x65, 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, 0x00, 0x28, 0x01, 0x12, 0x42, 0x0a, 0x07, 0x47, + 0x65, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x16, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, + 0x47, 0x65, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x00, 0x30, 0x01, 0x12, + 0x45, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x54, 0x41, 0x52, 0x12, 0x16, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x22, 0x00, 0x30, 0x01, 0x12, 0x45, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x46, 0x69, 0x6c, - 0x65, 0x54, 0x41, 0x52, 0x12, 0x16, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x47, 0x65, - 0x74, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, - 0x79, 0x74, 0x65, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x00, 0x30, 0x01, 0x12, 0x3d, 0x0a, - 0x0b, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x1a, 0x2e, 0x70, - 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x46, 0x69, 0x6c, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x10, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, - 0x32, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x00, 0x12, 0x39, 0x0a, 0x08, - 0x4c, 0x69, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x17, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, - 0x32, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x75, 0x65, 0x22, 0x00, 0x30, 0x01, 0x12, 0x3d, 0x0a, 0x0b, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, + 0x74, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x1a, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x49, + 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x10, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x49, - 0x6e, 0x66, 0x6f, 0x22, 0x00, 0x30, 0x01, 0x12, 0x39, 0x0a, 0x08, 0x57, 0x61, 0x6c, 0x6b, 0x46, - 0x69, 0x6c, 0x65, 0x12, 0x17, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x57, 0x61, 0x6c, - 0x6b, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x10, 0x2e, 0x70, - 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x00, - 0x30, 0x01, 0x12, 0x39, 0x0a, 0x08, 0x47, 0x6c, 0x6f, 0x62, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x17, - 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x47, 0x6c, 0x6f, 0x62, 0x46, 0x69, 0x6c, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x10, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, - 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x00, 0x30, 0x01, 0x12, 0x41, 0x0a, - 0x08, 0x44, 0x69, 0x66, 0x66, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x17, 0x2e, 0x70, 0x66, 0x73, 0x5f, - 0x76, 0x32, 0x2e, 0x44, 0x69, 0x66, 0x66, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x44, 0x69, 0x66, 0x66, - 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x30, 0x01, - 0x12, 0x4b, 0x0a, 0x0c, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x41, 0x75, 0x74, 0x68, - 0x12, 0x1b, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, - 0x74, 0x65, 0x41, 0x75, 0x74, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, - 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x41, - 0x75, 0x74, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3d, 0x0a, - 0x09, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x6c, 0x6c, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, - 0x74, 0x79, 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, 0x00, 0x12, 0x35, 0x0a, 0x04, - 0x46, 0x73, 0x63, 0x6b, 0x12, 0x13, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x46, 0x73, - 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x70, 0x66, 0x73, 0x5f, - 0x76, 0x32, 0x2e, 0x46, 0x73, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x00, 0x30, 0x01, 0x12, 0x4d, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x69, 0x6c, - 0x65, 0x53, 0x65, 0x74, 0x12, 0x19, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x4d, 0x6f, - 0x64, 0x69, 0x66, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x1d, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, - 0x69, 0x6c, 0x65, 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, - 0x28, 0x01, 0x12, 0x48, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x65, 0x74, - 0x12, 0x19, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x69, 0x6c, - 0x65, 0x53, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x70, 0x66, - 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x53, - 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x41, 0x0a, 0x0a, - 0x41, 0x64, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x65, 0x74, 0x12, 0x19, 0x2e, 0x70, 0x66, 0x73, - 0x5f, 0x76, 0x32, 0x2e, 0x41, 0x64, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x65, 0x74, 0x52, 0x65, + 0x6e, 0x66, 0x6f, 0x22, 0x00, 0x12, 0x39, 0x0a, 0x08, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x69, 0x6c, + 0x65, 0x12, 0x17, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x46, + 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x10, 0x2e, 0x70, 0x66, 0x73, + 0x5f, 0x76, 0x32, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x00, 0x30, 0x01, + 0x12, 0x39, 0x0a, 0x08, 0x57, 0x61, 0x6c, 0x6b, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x17, 0x2e, 0x70, + 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x57, 0x61, 0x6c, 0x6b, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x10, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x46, + 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x00, 0x30, 0x01, 0x12, 0x39, 0x0a, 0x08, 0x47, + 0x6c, 0x6f, 0x62, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x17, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, + 0x2e, 0x47, 0x6c, 0x6f, 0x62, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x10, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x6e, + 0x66, 0x6f, 0x22, 0x00, 0x30, 0x01, 0x12, 0x41, 0x0a, 0x08, 0x44, 0x69, 0x66, 0x66, 0x46, 0x69, + 0x6c, 0x65, 0x12, 0x17, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x44, 0x69, 0x66, 0x66, + 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x70, 0x66, + 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x44, 0x69, 0x66, 0x66, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x30, 0x01, 0x12, 0x4b, 0x0a, 0x0c, 0x41, 0x63, 0x74, + 0x69, 0x76, 0x61, 0x74, 0x65, 0x41, 0x75, 0x74, 0x68, 0x12, 0x1b, 0x2e, 0x70, 0x66, 0x73, 0x5f, + 0x76, 0x32, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x41, 0x75, 0x74, 0x68, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, + 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x41, 0x75, 0x74, 0x68, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3d, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x41, 0x6c, 0x6c, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 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, 0x00, 0x12, 0x35, 0x0a, 0x04, 0x46, 0x73, 0x63, 0x6b, 0x12, 0x13, 0x2e, + 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x46, 0x73, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x46, 0x73, 0x63, 0x6b, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x30, 0x01, 0x12, 0x4d, 0x0a, 0x0d, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x65, 0x74, 0x12, 0x19, 0x2e, + 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x46, 0x69, 0x6c, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, + 0x32, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x65, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x28, 0x01, 0x12, 0x48, 0x0a, 0x0a, 0x47, + 0x65, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x65, 0x74, 0x12, 0x19, 0x2e, 0x70, 0x66, 0x73, 0x5f, + 0x76, 0x32, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x65, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x41, 0x0a, 0x0a, 0x41, 0x64, 0x64, 0x46, 0x69, 0x6c, 0x65, + 0x53, 0x65, 0x74, 0x12, 0x19, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x41, 0x64, 0x64, + 0x46, 0x69, 0x6c, 0x65, 0x53, 0x65, 0x74, 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, 0x00, 0x12, 0x45, 0x0a, 0x0c, 0x52, 0x65, 0x6e, 0x65, + 0x77, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x65, 0x74, 0x12, 0x1b, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, + 0x32, 0x2e, 0x52, 0x65, 0x6e, 0x65, 0x77, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x65, 0x74, 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, 0x00, 0x12, - 0x45, 0x0a, 0x0c, 0x52, 0x65, 0x6e, 0x65, 0x77, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x65, 0x74, 0x12, - 0x1b, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x6e, 0x65, 0x77, 0x46, 0x69, - 0x6c, 0x65, 0x53, 0x65, 0x74, 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, 0x00, 0x12, 0x50, 0x0a, 0x0e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, - 0x65, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x65, 0x74, 0x12, 0x1d, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, - 0x32, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x65, 0x74, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, - 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x65, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4b, 0x0a, 0x0c, 0x53, 0x68, 0x61, 0x72, - 0x64, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x65, 0x74, 0x12, 0x1b, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, - 0x32, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x65, 0x74, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x53, - 0x68, 0x61, 0x72, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4b, 0x0a, 0x0c, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x53, 0x74, - 0x6f, 0x72, 0x61, 0x67, 0x65, 0x12, 0x1b, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x43, - 0x68, 0x65, 0x63, 0x6b, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x43, 0x68, 0x65, 0x63, - 0x6b, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x00, 0x12, 0x3d, 0x0a, 0x08, 0x50, 0x75, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x12, 0x17, - 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x50, 0x75, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, - 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, - 0x00, 0x12, 0x3f, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x12, 0x17, 0x2e, - 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, - 0x47, 0x65, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x00, 0x12, 0x41, 0x0a, 0x0a, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x43, 0x61, 0x63, 0x68, 0x65, - 0x12, 0x19, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x43, - 0x61, 0x63, 0x68, 0x65, 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, 0x00, 0x12, 0x3b, 0x0a, 0x08, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x61, 0x73, - 0x6b, 0x12, 0x18, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x61, 0x70, 0x69, 0x2e, 0x4c, 0x69, 0x73, 0x74, - 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x11, 0x2e, 0x74, 0x61, - 0x73, 0x6b, 0x61, 0x70, 0x69, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x00, - 0x30, 0x01, 0x12, 0x39, 0x0a, 0x06, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x15, 0x2e, 0x70, - 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x45, 0x67, 0x72, - 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x47, 0x0a, - 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x1c, - 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 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, 0x00, 0x12, 0x46, 0x0a, 0x0e, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, - 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x1d, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, - 0x32, 0x2e, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x13, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, - 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x00, 0x12, 0x57, - 0x0a, 0x10, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x56, 0x32, 0x12, 0x1f, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x73, 0x70, - 0x65, 0x63, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x73, - 0x70, 0x65, 0x63, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x56, 0x32, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x42, 0x0a, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x50, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x1a, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, - 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x13, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x50, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x00, 0x30, 0x01, 0x12, 0x47, 0x0a, 0x0d, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x1c, 0x2e, 0x70, - 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 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, 0x00, 0x12, 0x4b, 0x0a, 0x0c, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x53, 0x75, 0x6d, - 0x6d, 0x61, 0x72, 0x79, 0x12, 0x1b, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x52, 0x65, - 0x70, 0x6f, 0x73, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x1c, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, - 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x00, 0x42, 0x2b, 0x5a, 0x29, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, - 0x70, 0x61, 0x63, 0x68, 0x79, 0x64, 0x65, 0x72, 0x6d, 0x2f, 0x70, 0x61, 0x63, 0x68, 0x79, 0x64, - 0x65, 0x72, 0x6d, 0x2f, 0x76, 0x32, 0x2f, 0x73, 0x72, 0x63, 0x2f, 0x70, 0x66, 0x73, 0x62, 0x06, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x50, 0x0a, 0x0e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x65, + 0x74, 0x12, 0x1d, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, + 0x73, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x1d, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x46, 0x69, 0x6c, 0x65, 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x00, 0x12, 0x4b, 0x0a, 0x0c, 0x53, 0x68, 0x61, 0x72, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x65, + 0x74, 0x12, 0x1b, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, + 0x46, 0x69, 0x6c, 0x65, 0x53, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, + 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x46, 0x69, 0x6c, + 0x65, 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4b, + 0x0a, 0x0c, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x12, 0x1b, + 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x53, 0x74, 0x6f, + 0x72, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x70, 0x66, + 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3d, 0x0a, 0x08, 0x50, + 0x75, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x12, 0x17, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, + 0x2e, 0x50, 0x75, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 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, 0x00, 0x12, 0x3f, 0x0a, 0x08, 0x47, 0x65, + 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x12, 0x17, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, + 0x47, 0x65, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x18, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x61, 0x63, 0x68, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x41, 0x0a, 0x0a, 0x43, + 0x6c, 0x65, 0x61, 0x72, 0x43, 0x61, 0x63, 0x68, 0x65, 0x12, 0x19, 0x2e, 0x70, 0x66, 0x73, 0x5f, + 0x76, 0x32, 0x2e, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x43, 0x61, 0x63, 0x68, 0x65, 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, 0x00, 0x12, 0x3b, + 0x0a, 0x08, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x18, 0x2e, 0x74, 0x61, 0x73, + 0x6b, 0x61, 0x70, 0x69, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x11, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x61, 0x70, 0x69, 0x2e, 0x54, + 0x61, 0x73, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x00, 0x30, 0x01, 0x12, 0x39, 0x0a, 0x06, 0x45, + 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x15, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x45, + 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x70, + 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x47, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x1c, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, + 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 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, 0x00, 0x12, + 0x46, 0x0a, 0x0e, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x12, 0x1d, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x73, 0x70, 0x65, + 0x63, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x13, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x00, 0x12, 0x57, 0x0a, 0x10, 0x49, 0x6e, 0x73, 0x70, 0x65, + 0x63, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x56, 0x32, 0x12, 0x1f, 0x2e, 0x70, 0x66, + 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x50, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x56, 0x32, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x70, + 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x49, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x74, 0x50, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, + 0x12, 0x42, 0x0a, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, + 0x1a, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x13, 0x2e, 0x70, 0x66, + 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, + 0x22, 0x00, 0x30, 0x01, 0x12, 0x47, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x1c, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 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, 0x00, 0x12, 0x4b, 0x0a, + 0x0c, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x1b, 0x2e, + 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x53, 0x75, 0x6d, 0x6d, + 0x61, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x70, 0x66, 0x73, + 0x5f, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x63, 0x0a, 0x14, 0x43, 0x6f, + 0x6d, 0x70, 0x61, 0x63, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x73, + 0x65, 0x74, 0x12, 0x23, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6d, 0x70, + 0x61, 0x63, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x65, 0x74, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x70, 0x66, 0x73, 0x5f, 0x76, 0x32, + 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x46, 0x69, + 0x6c, 0x65, 0x73, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, + 0x2b, 0x5a, 0x29, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x61, + 0x63, 0x68, 0x79, 0x64, 0x65, 0x72, 0x6d, 0x2f, 0x70, 0x61, 0x63, 0x68, 0x79, 0x64, 0x65, 0x72, + 0x6d, 0x2f, 0x76, 0x32, 0x2f, 0x73, 0x72, 0x63, 0x2f, 0x70, 0x66, 0x73, 0x62, 0x06, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -8028,7 +8138,7 @@ func file_pfs_pfs_proto_rawDescGZIP() []byte { } var file_pfs_pfs_proto_enumTypes = make([]protoimpl.EnumInfo, 7) -var file_pfs_pfs_proto_msgTypes = make([]protoimpl.MessageInfo, 110) +var file_pfs_pfs_proto_msgTypes = make([]protoimpl.MessageInfo, 112) var file_pfs_pfs_proto_goTypes = []interface{}{ (OriginKind)(0), // 0: pfs_v2.OriginKind (FileType)(0), // 1: pfs_v2.FileType @@ -8130,79 +8240,81 @@ var file_pfs_pfs_proto_goTypes = []interface{}{ (*ReposSummaryRequest)(nil), // 97: pfs_v2.ReposSummaryRequest (*ReposSummary)(nil), // 98: pfs_v2.ReposSummary (*ReposSummaryResponse)(nil), // 99: pfs_v2.ReposSummaryResponse - (*RepoPicker_RepoName)(nil), // 100: pfs_v2.RepoPicker.RepoName - (*BranchPicker_BranchName)(nil), // 101: pfs_v2.BranchPicker.BranchName - (*RepoInfo_Details)(nil), // 102: pfs_v2.RepoInfo.Details - nil, // 103: pfs_v2.RepoInfo.MetadataEntry - nil, // 104: pfs_v2.BranchInfo.MetadataEntry - (*CommitPicker_CommitByGlobalId)(nil), // 105: pfs_v2.CommitPicker.CommitByGlobalId - (*CommitPicker_BranchRoot)(nil), // 106: pfs_v2.CommitPicker.BranchRoot - (*CommitPicker_AncestorOf)(nil), // 107: pfs_v2.CommitPicker.AncestorOf - (*CommitInfo_Details)(nil), // 108: pfs_v2.CommitInfo.Details - nil, // 109: pfs_v2.CommitInfo.MetadataEntry - nil, // 110: pfs_v2.ProjectInfo.MetadataEntry - (*AddFile_URLSource)(nil), // 111: pfs_v2.AddFile.URLSource - (*SQLDatabaseEgress_FileFormat)(nil), // 112: pfs_v2.SQLDatabaseEgress.FileFormat - (*SQLDatabaseEgress_Secret)(nil), // 113: pfs_v2.SQLDatabaseEgress.Secret - (*EgressResponse_ObjectStorageResult)(nil), // 114: pfs_v2.EgressResponse.ObjectStorageResult - (*EgressResponse_SQLDatabaseResult)(nil), // 115: pfs_v2.EgressResponse.SQLDatabaseResult - nil, // 116: pfs_v2.EgressResponse.SQLDatabaseResult.RowsWrittenEntry - (*timestamppb.Timestamp)(nil), // 117: google.protobuf.Timestamp - (auth.Permission)(0), // 118: auth_v2.Permission - (*wrapperspb.BytesValue)(nil), // 119: google.protobuf.BytesValue - (*anypb.Any)(nil), // 120: google.protobuf.Any - (*durationpb.Duration)(nil), // 121: google.protobuf.Duration - (*emptypb.Empty)(nil), // 122: google.protobuf.Empty - (*task.ListTaskRequest)(nil), // 123: taskapi.ListTaskRequest - (*task.TaskInfo)(nil), // 124: taskapi.TaskInfo + (*CompactCommitFilesetRequest)(nil), // 100: pfs_v2.CompactCommitFilesetRequest + (*CompactCommitFilesetResponse)(nil), // 101: pfs_v2.CompactCommitFilesetResponse + (*RepoPicker_RepoName)(nil), // 102: pfs_v2.RepoPicker.RepoName + (*BranchPicker_BranchName)(nil), // 103: pfs_v2.BranchPicker.BranchName + (*RepoInfo_Details)(nil), // 104: pfs_v2.RepoInfo.Details + nil, // 105: pfs_v2.RepoInfo.MetadataEntry + nil, // 106: pfs_v2.BranchInfo.MetadataEntry + (*CommitPicker_CommitByGlobalId)(nil), // 107: pfs_v2.CommitPicker.CommitByGlobalId + (*CommitPicker_BranchRoot)(nil), // 108: pfs_v2.CommitPicker.BranchRoot + (*CommitPicker_AncestorOf)(nil), // 109: pfs_v2.CommitPicker.AncestorOf + (*CommitInfo_Details)(nil), // 110: pfs_v2.CommitInfo.Details + nil, // 111: pfs_v2.CommitInfo.MetadataEntry + nil, // 112: pfs_v2.ProjectInfo.MetadataEntry + (*AddFile_URLSource)(nil), // 113: pfs_v2.AddFile.URLSource + (*SQLDatabaseEgress_FileFormat)(nil), // 114: pfs_v2.SQLDatabaseEgress.FileFormat + (*SQLDatabaseEgress_Secret)(nil), // 115: pfs_v2.SQLDatabaseEgress.Secret + (*EgressResponse_ObjectStorageResult)(nil), // 116: pfs_v2.EgressResponse.ObjectStorageResult + (*EgressResponse_SQLDatabaseResult)(nil), // 117: pfs_v2.EgressResponse.SQLDatabaseResult + nil, // 118: pfs_v2.EgressResponse.SQLDatabaseResult.RowsWrittenEntry + (*timestamppb.Timestamp)(nil), // 119: google.protobuf.Timestamp + (auth.Permission)(0), // 120: auth_v2.Permission + (*wrapperspb.BytesValue)(nil), // 121: google.protobuf.BytesValue + (*anypb.Any)(nil), // 122: google.protobuf.Any + (*durationpb.Duration)(nil), // 123: google.protobuf.Duration + (*emptypb.Empty)(nil), // 124: google.protobuf.Empty + (*task.ListTaskRequest)(nil), // 125: taskapi.ListTaskRequest + (*task.TaskInfo)(nil), // 126: taskapi.TaskInfo } var file_pfs_pfs_proto_depIdxs = []int32{ 23, // 0: pfs_v2.Repo.project:type_name -> pfs_v2.Project - 100, // 1: pfs_v2.RepoPicker.name:type_name -> pfs_v2.RepoPicker.RepoName + 102, // 1: pfs_v2.RepoPicker.name:type_name -> pfs_v2.RepoPicker.RepoName 7, // 2: pfs_v2.Branch.repo:type_name -> pfs_v2.Repo - 101, // 3: pfs_v2.BranchPicker.name:type_name -> pfs_v2.BranchPicker.BranchName + 103, // 3: pfs_v2.BranchPicker.name:type_name -> pfs_v2.BranchPicker.BranchName 17, // 4: pfs_v2.File.commit:type_name -> pfs_v2.Commit 7, // 5: pfs_v2.RepoInfo.repo:type_name -> pfs_v2.Repo - 117, // 6: pfs_v2.RepoInfo.created:type_name -> google.protobuf.Timestamp + 119, // 6: pfs_v2.RepoInfo.created:type_name -> google.protobuf.Timestamp 9, // 7: pfs_v2.RepoInfo.branches:type_name -> pfs_v2.Branch 13, // 8: pfs_v2.RepoInfo.auth_info:type_name -> pfs_v2.AuthInfo - 102, // 9: pfs_v2.RepoInfo.details:type_name -> pfs_v2.RepoInfo.Details - 103, // 10: pfs_v2.RepoInfo.metadata:type_name -> pfs_v2.RepoInfo.MetadataEntry - 118, // 11: pfs_v2.AuthInfo.permissions:type_name -> auth_v2.Permission + 104, // 9: pfs_v2.RepoInfo.details:type_name -> pfs_v2.RepoInfo.Details + 105, // 10: pfs_v2.RepoInfo.metadata:type_name -> pfs_v2.RepoInfo.MetadataEntry + 120, // 11: pfs_v2.AuthInfo.permissions:type_name -> auth_v2.Permission 9, // 12: pfs_v2.BranchInfo.branch:type_name -> pfs_v2.Branch 17, // 13: pfs_v2.BranchInfo.head:type_name -> pfs_v2.Commit 9, // 14: pfs_v2.BranchInfo.provenance:type_name -> pfs_v2.Branch 9, // 15: pfs_v2.BranchInfo.subvenance:type_name -> pfs_v2.Branch 9, // 16: pfs_v2.BranchInfo.direct_provenance:type_name -> pfs_v2.Branch 15, // 17: pfs_v2.BranchInfo.trigger:type_name -> pfs_v2.Trigger - 104, // 18: pfs_v2.BranchInfo.metadata:type_name -> pfs_v2.BranchInfo.MetadataEntry + 106, // 18: pfs_v2.BranchInfo.metadata:type_name -> pfs_v2.BranchInfo.MetadataEntry 0, // 19: pfs_v2.CommitOrigin.kind:type_name -> pfs_v2.OriginKind 7, // 20: pfs_v2.Commit.repo:type_name -> pfs_v2.Repo 9, // 21: pfs_v2.Commit.branch:type_name -> pfs_v2.Branch 10, // 22: pfs_v2.CommitPicker.branch_head:type_name -> pfs_v2.BranchPicker - 105, // 23: pfs_v2.CommitPicker.id:type_name -> pfs_v2.CommitPicker.CommitByGlobalId - 107, // 24: pfs_v2.CommitPicker.ancestor:type_name -> pfs_v2.CommitPicker.AncestorOf - 106, // 25: pfs_v2.CommitPicker.branch_root:type_name -> pfs_v2.CommitPicker.BranchRoot + 107, // 23: pfs_v2.CommitPicker.id:type_name -> pfs_v2.CommitPicker.CommitByGlobalId + 109, // 24: pfs_v2.CommitPicker.ancestor:type_name -> pfs_v2.CommitPicker.AncestorOf + 108, // 25: pfs_v2.CommitPicker.branch_root:type_name -> pfs_v2.CommitPicker.BranchRoot 17, // 26: pfs_v2.CommitInfo.commit:type_name -> pfs_v2.Commit 16, // 27: pfs_v2.CommitInfo.origin:type_name -> pfs_v2.CommitOrigin 17, // 28: pfs_v2.CommitInfo.parent_commit:type_name -> pfs_v2.Commit 17, // 29: pfs_v2.CommitInfo.child_commits:type_name -> pfs_v2.Commit - 117, // 30: pfs_v2.CommitInfo.started:type_name -> google.protobuf.Timestamp - 117, // 31: pfs_v2.CommitInfo.finishing:type_name -> google.protobuf.Timestamp - 117, // 32: pfs_v2.CommitInfo.finished:type_name -> google.protobuf.Timestamp + 119, // 30: pfs_v2.CommitInfo.started:type_name -> google.protobuf.Timestamp + 119, // 31: pfs_v2.CommitInfo.finishing:type_name -> google.protobuf.Timestamp + 119, // 32: pfs_v2.CommitInfo.finished:type_name -> google.protobuf.Timestamp 17, // 33: pfs_v2.CommitInfo.direct_provenance:type_name -> pfs_v2.Commit 17, // 34: pfs_v2.CommitInfo.direct_subvenance:type_name -> pfs_v2.Commit - 108, // 35: pfs_v2.CommitInfo.details:type_name -> pfs_v2.CommitInfo.Details - 109, // 36: pfs_v2.CommitInfo.metadata:type_name -> pfs_v2.CommitInfo.MetadataEntry + 110, // 35: pfs_v2.CommitInfo.details:type_name -> pfs_v2.CommitInfo.Details + 111, // 36: pfs_v2.CommitInfo.metadata:type_name -> pfs_v2.CommitInfo.MetadataEntry 20, // 37: pfs_v2.CommitSetInfo.commit_set:type_name -> pfs_v2.CommitSet 19, // 38: pfs_v2.CommitSetInfo.commits:type_name -> pfs_v2.CommitInfo 11, // 39: pfs_v2.FileInfo.file:type_name -> pfs_v2.File 1, // 40: pfs_v2.FileInfo.file_type:type_name -> pfs_v2.FileType - 117, // 41: pfs_v2.FileInfo.committed:type_name -> google.protobuf.Timestamp + 119, // 41: pfs_v2.FileInfo.committed:type_name -> google.protobuf.Timestamp 23, // 42: pfs_v2.ProjectInfo.project:type_name -> pfs_v2.Project 13, // 43: pfs_v2.ProjectInfo.auth_info:type_name -> pfs_v2.AuthInfo - 117, // 44: pfs_v2.ProjectInfo.created_at:type_name -> google.protobuf.Timestamp - 110, // 45: pfs_v2.ProjectInfo.metadata:type_name -> pfs_v2.ProjectInfo.MetadataEntry + 119, // 44: pfs_v2.ProjectInfo.created_at:type_name -> google.protobuf.Timestamp + 112, // 45: pfs_v2.ProjectInfo.metadata:type_name -> pfs_v2.ProjectInfo.MetadataEntry 7, // 46: pfs_v2.CreateRepoRequest.repo:type_name -> pfs_v2.Repo 7, // 47: pfs_v2.InspectRepoRequest.repo:type_name -> pfs_v2.Repo 23, // 48: pfs_v2.ListRepoRequest.projects:type_name -> pfs_v2.Project @@ -8220,7 +8332,7 @@ var file_pfs_pfs_proto_depIdxs = []int32{ 17, // 60: pfs_v2.ListCommitRequest.from:type_name -> pfs_v2.Commit 17, // 61: pfs_v2.ListCommitRequest.to:type_name -> pfs_v2.Commit 0, // 62: pfs_v2.ListCommitRequest.origin_kind:type_name -> pfs_v2.OriginKind - 117, // 63: pfs_v2.ListCommitRequest.started_time:type_name -> google.protobuf.Timestamp + 119, // 63: pfs_v2.ListCommitRequest.started_time:type_name -> google.protobuf.Timestamp 20, // 64: pfs_v2.InspectCommitSetRequest.commit_set:type_name -> pfs_v2.CommitSet 23, // 65: pfs_v2.ListCommitSetRequest.project:type_name -> pfs_v2.Project 20, // 66: pfs_v2.SquashCommitSetRequest.commit_set:type_name -> pfs_v2.CommitSet @@ -8251,8 +8363,8 @@ var file_pfs_pfs_proto_depIdxs = []int32{ 23, // 91: pfs_v2.InspectProjectV2Request.project:type_name -> pfs_v2.Project 24, // 92: pfs_v2.InspectProjectV2Response.info:type_name -> pfs_v2.ProjectInfo 23, // 93: pfs_v2.DeleteProjectRequest.project:type_name -> pfs_v2.Project - 119, // 94: pfs_v2.AddFile.raw:type_name -> google.protobuf.BytesValue - 111, // 95: pfs_v2.AddFile.url:type_name -> pfs_v2.AddFile.URLSource + 121, // 94: pfs_v2.AddFile.raw:type_name -> google.protobuf.BytesValue + 113, // 95: pfs_v2.AddFile.url:type_name -> pfs_v2.AddFile.URLSource 11, // 96: pfs_v2.CopyFile.src:type_name -> pfs_v2.File 17, // 97: pfs_v2.ModifyFileRequest.set_commit:type_name -> pfs_v2.Commit 64, // 98: pfs_v2.ModifyFileRequest.add_file:type_name -> pfs_v2.AddFile @@ -8276,142 +8388,145 @@ var file_pfs_pfs_proto_depIdxs = []int32{ 5, // 116: pfs_v2.GetFileSetRequest.type:type_name -> pfs_v2.GetFileSetRequest.FileSetType 17, // 117: pfs_v2.AddFileSetRequest.commit:type_name -> pfs_v2.Commit 83, // 118: pfs_v2.ShardFileSetResponse.shards:type_name -> pfs_v2.PathRange - 120, // 119: pfs_v2.PutCacheRequest.value:type_name -> google.protobuf.Any - 120, // 120: pfs_v2.GetCacheResponse.value:type_name -> google.protobuf.Any - 112, // 121: pfs_v2.SQLDatabaseEgress.file_format:type_name -> pfs_v2.SQLDatabaseEgress.FileFormat - 113, // 122: pfs_v2.SQLDatabaseEgress.secret:type_name -> pfs_v2.SQLDatabaseEgress.Secret + 122, // 119: pfs_v2.PutCacheRequest.value:type_name -> google.protobuf.Any + 122, // 120: pfs_v2.GetCacheResponse.value:type_name -> google.protobuf.Any + 114, // 121: pfs_v2.SQLDatabaseEgress.file_format:type_name -> pfs_v2.SQLDatabaseEgress.FileFormat + 115, // 122: pfs_v2.SQLDatabaseEgress.secret:type_name -> pfs_v2.SQLDatabaseEgress.Secret 17, // 123: pfs_v2.EgressRequest.commit:type_name -> pfs_v2.Commit 93, // 124: pfs_v2.EgressRequest.object_storage:type_name -> pfs_v2.ObjectStorageEgress 94, // 125: pfs_v2.EgressRequest.sql_database:type_name -> pfs_v2.SQLDatabaseEgress - 114, // 126: pfs_v2.EgressResponse.object_storage:type_name -> pfs_v2.EgressResponse.ObjectStorageResult - 115, // 127: pfs_v2.EgressResponse.sql_database:type_name -> pfs_v2.EgressResponse.SQLDatabaseResult + 116, // 126: pfs_v2.EgressResponse.object_storage:type_name -> pfs_v2.EgressResponse.ObjectStorageResult + 117, // 127: pfs_v2.EgressResponse.sql_database:type_name -> pfs_v2.EgressResponse.SQLDatabaseResult 25, // 128: pfs_v2.ReposSummaryRequest.projects:type_name -> pfs_v2.ProjectPicker 23, // 129: pfs_v2.ReposSummary.project:type_name -> pfs_v2.Project 98, // 130: pfs_v2.ReposSummaryResponse.summaries:type_name -> pfs_v2.ReposSummary - 25, // 131: pfs_v2.RepoPicker.RepoName.project:type_name -> pfs_v2.ProjectPicker - 8, // 132: pfs_v2.BranchPicker.BranchName.repo:type_name -> pfs_v2.RepoPicker - 8, // 133: pfs_v2.CommitPicker.CommitByGlobalId.repo:type_name -> pfs_v2.RepoPicker - 10, // 134: pfs_v2.CommitPicker.BranchRoot.branch:type_name -> pfs_v2.BranchPicker - 18, // 135: pfs_v2.CommitPicker.AncestorOf.start:type_name -> pfs_v2.CommitPicker - 121, // 136: pfs_v2.CommitInfo.Details.compacting_time:type_name -> google.protobuf.Duration - 121, // 137: pfs_v2.CommitInfo.Details.validating_time:type_name -> google.protobuf.Duration - 6, // 138: pfs_v2.SQLDatabaseEgress.FileFormat.type:type_name -> pfs_v2.SQLDatabaseEgress.FileFormat.Type - 116, // 139: pfs_v2.EgressResponse.SQLDatabaseResult.rows_written:type_name -> pfs_v2.EgressResponse.SQLDatabaseResult.RowsWrittenEntry - 26, // 140: pfs_v2.API.CreateRepo:input_type -> pfs_v2.CreateRepoRequest - 27, // 141: pfs_v2.API.InspectRepo:input_type -> pfs_v2.InspectRepoRequest - 28, // 142: pfs_v2.API.ListRepo:input_type -> pfs_v2.ListRepoRequest - 30, // 143: pfs_v2.API.DeleteRepo:input_type -> pfs_v2.DeleteRepoRequest - 31, // 144: pfs_v2.API.DeleteRepos:input_type -> pfs_v2.DeleteReposRequest - 34, // 145: pfs_v2.API.StartCommit:input_type -> pfs_v2.StartCommitRequest - 35, // 146: pfs_v2.API.FinishCommit:input_type -> pfs_v2.FinishCommitRequest - 43, // 147: pfs_v2.API.ClearCommit:input_type -> pfs_v2.ClearCommitRequest - 36, // 148: pfs_v2.API.InspectCommit:input_type -> pfs_v2.InspectCommitRequest - 37, // 149: pfs_v2.API.ListCommit:input_type -> pfs_v2.ListCommitRequest - 42, // 150: pfs_v2.API.SubscribeCommit:input_type -> pfs_v2.SubscribeCommitRequest - 44, // 151: pfs_v2.API.SquashCommit:input_type -> pfs_v2.SquashCommitRequest - 46, // 152: pfs_v2.API.DropCommit:input_type -> pfs_v2.DropCommitRequest - 38, // 153: pfs_v2.API.InspectCommitSet:input_type -> pfs_v2.InspectCommitSetRequest - 39, // 154: pfs_v2.API.ListCommitSet:input_type -> pfs_v2.ListCommitSetRequest - 40, // 155: pfs_v2.API.SquashCommitSet:input_type -> pfs_v2.SquashCommitSetRequest - 41, // 156: pfs_v2.API.DropCommitSet:input_type -> pfs_v2.DropCommitSetRequest - 53, // 157: pfs_v2.API.FindCommits:input_type -> pfs_v2.FindCommitsRequest - 47, // 158: pfs_v2.API.WalkCommitProvenance:input_type -> pfs_v2.WalkCommitProvenanceRequest - 48, // 159: pfs_v2.API.WalkCommitSubvenance:input_type -> pfs_v2.WalkCommitSubvenanceRequest - 52, // 160: pfs_v2.API.CreateBranch:input_type -> pfs_v2.CreateBranchRequest - 55, // 161: pfs_v2.API.InspectBranch:input_type -> pfs_v2.InspectBranchRequest - 56, // 162: pfs_v2.API.ListBranch:input_type -> pfs_v2.ListBranchRequest - 57, // 163: pfs_v2.API.DeleteBranch:input_type -> pfs_v2.DeleteBranchRequest - 49, // 164: pfs_v2.API.WalkBranchProvenance:input_type -> pfs_v2.WalkBranchProvenanceRequest - 50, // 165: pfs_v2.API.WalkBranchSubvenance:input_type -> pfs_v2.WalkBranchSubvenanceRequest - 67, // 166: pfs_v2.API.ModifyFile:input_type -> pfs_v2.ModifyFileRequest - 68, // 167: pfs_v2.API.GetFile:input_type -> pfs_v2.GetFileRequest - 68, // 168: pfs_v2.API.GetFileTAR:input_type -> pfs_v2.GetFileRequest - 69, // 169: pfs_v2.API.InspectFile:input_type -> pfs_v2.InspectFileRequest - 70, // 170: pfs_v2.API.ListFile:input_type -> pfs_v2.ListFileRequest - 71, // 171: pfs_v2.API.WalkFile:input_type -> pfs_v2.WalkFileRequest - 72, // 172: pfs_v2.API.GlobFile:input_type -> pfs_v2.GlobFileRequest - 73, // 173: pfs_v2.API.DiffFile:input_type -> pfs_v2.DiffFileRequest - 91, // 174: pfs_v2.API.ActivateAuth:input_type -> pfs_v2.ActivateAuthRequest - 122, // 175: pfs_v2.API.DeleteAll:input_type -> google.protobuf.Empty - 75, // 176: pfs_v2.API.Fsck:input_type -> pfs_v2.FsckRequest - 67, // 177: pfs_v2.API.CreateFileSet:input_type -> pfs_v2.ModifyFileRequest - 78, // 178: pfs_v2.API.GetFileSet:input_type -> pfs_v2.GetFileSetRequest - 79, // 179: pfs_v2.API.AddFileSet:input_type -> pfs_v2.AddFileSetRequest - 80, // 180: pfs_v2.API.RenewFileSet:input_type -> pfs_v2.RenewFileSetRequest - 81, // 181: pfs_v2.API.ComposeFileSet:input_type -> pfs_v2.ComposeFileSetRequest - 82, // 182: pfs_v2.API.ShardFileSet:input_type -> pfs_v2.ShardFileSetRequest - 85, // 183: pfs_v2.API.CheckStorage:input_type -> pfs_v2.CheckStorageRequest - 87, // 184: pfs_v2.API.PutCache:input_type -> pfs_v2.PutCacheRequest - 88, // 185: pfs_v2.API.GetCache:input_type -> pfs_v2.GetCacheRequest - 90, // 186: pfs_v2.API.ClearCache:input_type -> pfs_v2.ClearCacheRequest - 123, // 187: pfs_v2.API.ListTask:input_type -> taskapi.ListTaskRequest - 95, // 188: pfs_v2.API.Egress:input_type -> pfs_v2.EgressRequest - 58, // 189: pfs_v2.API.CreateProject:input_type -> pfs_v2.CreateProjectRequest - 59, // 190: pfs_v2.API.InspectProject:input_type -> pfs_v2.InspectProjectRequest - 60, // 191: pfs_v2.API.InspectProjectV2:input_type -> pfs_v2.InspectProjectV2Request - 62, // 192: pfs_v2.API.ListProject:input_type -> pfs_v2.ListProjectRequest - 63, // 193: pfs_v2.API.DeleteProject:input_type -> pfs_v2.DeleteProjectRequest - 97, // 194: pfs_v2.API.ReposSummary:input_type -> pfs_v2.ReposSummaryRequest - 122, // 195: pfs_v2.API.CreateRepo:output_type -> google.protobuf.Empty - 12, // 196: pfs_v2.API.InspectRepo:output_type -> pfs_v2.RepoInfo - 12, // 197: pfs_v2.API.ListRepo:output_type -> pfs_v2.RepoInfo - 32, // 198: pfs_v2.API.DeleteRepo:output_type -> pfs_v2.DeleteRepoResponse - 33, // 199: pfs_v2.API.DeleteRepos:output_type -> pfs_v2.DeleteReposResponse - 17, // 200: pfs_v2.API.StartCommit:output_type -> pfs_v2.Commit - 122, // 201: pfs_v2.API.FinishCommit:output_type -> google.protobuf.Empty - 122, // 202: pfs_v2.API.ClearCommit:output_type -> google.protobuf.Empty - 19, // 203: pfs_v2.API.InspectCommit:output_type -> pfs_v2.CommitInfo - 19, // 204: pfs_v2.API.ListCommit:output_type -> pfs_v2.CommitInfo - 19, // 205: pfs_v2.API.SubscribeCommit:output_type -> pfs_v2.CommitInfo - 45, // 206: pfs_v2.API.SquashCommit:output_type -> pfs_v2.SquashCommitResponse - 51, // 207: pfs_v2.API.DropCommit:output_type -> pfs_v2.DropCommitResponse - 19, // 208: pfs_v2.API.InspectCommitSet:output_type -> pfs_v2.CommitInfo - 21, // 209: pfs_v2.API.ListCommitSet:output_type -> pfs_v2.CommitSetInfo - 122, // 210: pfs_v2.API.SquashCommitSet:output_type -> google.protobuf.Empty - 122, // 211: pfs_v2.API.DropCommitSet:output_type -> google.protobuf.Empty - 54, // 212: pfs_v2.API.FindCommits:output_type -> pfs_v2.FindCommitsResponse - 19, // 213: pfs_v2.API.WalkCommitProvenance:output_type -> pfs_v2.CommitInfo - 19, // 214: pfs_v2.API.WalkCommitSubvenance:output_type -> pfs_v2.CommitInfo - 122, // 215: pfs_v2.API.CreateBranch:output_type -> google.protobuf.Empty - 14, // 216: pfs_v2.API.InspectBranch:output_type -> pfs_v2.BranchInfo - 14, // 217: pfs_v2.API.ListBranch:output_type -> pfs_v2.BranchInfo - 122, // 218: pfs_v2.API.DeleteBranch:output_type -> google.protobuf.Empty - 14, // 219: pfs_v2.API.WalkBranchProvenance:output_type -> pfs_v2.BranchInfo - 14, // 220: pfs_v2.API.WalkBranchSubvenance:output_type -> pfs_v2.BranchInfo - 122, // 221: pfs_v2.API.ModifyFile:output_type -> google.protobuf.Empty - 119, // 222: pfs_v2.API.GetFile:output_type -> google.protobuf.BytesValue - 119, // 223: pfs_v2.API.GetFileTAR:output_type -> google.protobuf.BytesValue - 22, // 224: pfs_v2.API.InspectFile:output_type -> pfs_v2.FileInfo - 22, // 225: pfs_v2.API.ListFile:output_type -> pfs_v2.FileInfo - 22, // 226: pfs_v2.API.WalkFile:output_type -> pfs_v2.FileInfo - 22, // 227: pfs_v2.API.GlobFile:output_type -> pfs_v2.FileInfo - 74, // 228: pfs_v2.API.DiffFile:output_type -> pfs_v2.DiffFileResponse - 92, // 229: pfs_v2.API.ActivateAuth:output_type -> pfs_v2.ActivateAuthResponse - 122, // 230: pfs_v2.API.DeleteAll:output_type -> google.protobuf.Empty - 76, // 231: pfs_v2.API.Fsck:output_type -> pfs_v2.FsckResponse - 77, // 232: pfs_v2.API.CreateFileSet:output_type -> pfs_v2.CreateFileSetResponse - 77, // 233: pfs_v2.API.GetFileSet:output_type -> pfs_v2.CreateFileSetResponse - 122, // 234: pfs_v2.API.AddFileSet:output_type -> google.protobuf.Empty - 122, // 235: pfs_v2.API.RenewFileSet:output_type -> google.protobuf.Empty - 77, // 236: pfs_v2.API.ComposeFileSet:output_type -> pfs_v2.CreateFileSetResponse - 84, // 237: pfs_v2.API.ShardFileSet:output_type -> pfs_v2.ShardFileSetResponse - 86, // 238: pfs_v2.API.CheckStorage:output_type -> pfs_v2.CheckStorageResponse - 122, // 239: pfs_v2.API.PutCache:output_type -> google.protobuf.Empty - 89, // 240: pfs_v2.API.GetCache:output_type -> pfs_v2.GetCacheResponse - 122, // 241: pfs_v2.API.ClearCache:output_type -> google.protobuf.Empty - 124, // 242: pfs_v2.API.ListTask:output_type -> taskapi.TaskInfo - 96, // 243: pfs_v2.API.Egress:output_type -> pfs_v2.EgressResponse - 122, // 244: pfs_v2.API.CreateProject:output_type -> google.protobuf.Empty - 24, // 245: pfs_v2.API.InspectProject:output_type -> pfs_v2.ProjectInfo - 61, // 246: pfs_v2.API.InspectProjectV2:output_type -> pfs_v2.InspectProjectV2Response - 24, // 247: pfs_v2.API.ListProject:output_type -> pfs_v2.ProjectInfo - 122, // 248: pfs_v2.API.DeleteProject:output_type -> google.protobuf.Empty - 99, // 249: pfs_v2.API.ReposSummary:output_type -> pfs_v2.ReposSummaryResponse - 195, // [195:250] is the sub-list for method output_type - 140, // [140:195] is the sub-list for method input_type - 140, // [140:140] is the sub-list for extension type_name - 140, // [140:140] is the sub-list for extension extendee - 0, // [0:140] is the sub-list for field type_name + 18, // 131: pfs_v2.CompactCommitFilesetRequest.commit_picker:type_name -> pfs_v2.CommitPicker + 25, // 132: pfs_v2.RepoPicker.RepoName.project:type_name -> pfs_v2.ProjectPicker + 8, // 133: pfs_v2.BranchPicker.BranchName.repo:type_name -> pfs_v2.RepoPicker + 8, // 134: pfs_v2.CommitPicker.CommitByGlobalId.repo:type_name -> pfs_v2.RepoPicker + 10, // 135: pfs_v2.CommitPicker.BranchRoot.branch:type_name -> pfs_v2.BranchPicker + 18, // 136: pfs_v2.CommitPicker.AncestorOf.start:type_name -> pfs_v2.CommitPicker + 123, // 137: pfs_v2.CommitInfo.Details.compacting_time:type_name -> google.protobuf.Duration + 123, // 138: pfs_v2.CommitInfo.Details.validating_time:type_name -> google.protobuf.Duration + 6, // 139: pfs_v2.SQLDatabaseEgress.FileFormat.type:type_name -> pfs_v2.SQLDatabaseEgress.FileFormat.Type + 118, // 140: pfs_v2.EgressResponse.SQLDatabaseResult.rows_written:type_name -> pfs_v2.EgressResponse.SQLDatabaseResult.RowsWrittenEntry + 26, // 141: pfs_v2.API.CreateRepo:input_type -> pfs_v2.CreateRepoRequest + 27, // 142: pfs_v2.API.InspectRepo:input_type -> pfs_v2.InspectRepoRequest + 28, // 143: pfs_v2.API.ListRepo:input_type -> pfs_v2.ListRepoRequest + 30, // 144: pfs_v2.API.DeleteRepo:input_type -> pfs_v2.DeleteRepoRequest + 31, // 145: pfs_v2.API.DeleteRepos:input_type -> pfs_v2.DeleteReposRequest + 34, // 146: pfs_v2.API.StartCommit:input_type -> pfs_v2.StartCommitRequest + 35, // 147: pfs_v2.API.FinishCommit:input_type -> pfs_v2.FinishCommitRequest + 43, // 148: pfs_v2.API.ClearCommit:input_type -> pfs_v2.ClearCommitRequest + 36, // 149: pfs_v2.API.InspectCommit:input_type -> pfs_v2.InspectCommitRequest + 37, // 150: pfs_v2.API.ListCommit:input_type -> pfs_v2.ListCommitRequest + 42, // 151: pfs_v2.API.SubscribeCommit:input_type -> pfs_v2.SubscribeCommitRequest + 44, // 152: pfs_v2.API.SquashCommit:input_type -> pfs_v2.SquashCommitRequest + 46, // 153: pfs_v2.API.DropCommit:input_type -> pfs_v2.DropCommitRequest + 38, // 154: pfs_v2.API.InspectCommitSet:input_type -> pfs_v2.InspectCommitSetRequest + 39, // 155: pfs_v2.API.ListCommitSet:input_type -> pfs_v2.ListCommitSetRequest + 40, // 156: pfs_v2.API.SquashCommitSet:input_type -> pfs_v2.SquashCommitSetRequest + 41, // 157: pfs_v2.API.DropCommitSet:input_type -> pfs_v2.DropCommitSetRequest + 53, // 158: pfs_v2.API.FindCommits:input_type -> pfs_v2.FindCommitsRequest + 47, // 159: pfs_v2.API.WalkCommitProvenance:input_type -> pfs_v2.WalkCommitProvenanceRequest + 48, // 160: pfs_v2.API.WalkCommitSubvenance:input_type -> pfs_v2.WalkCommitSubvenanceRequest + 52, // 161: pfs_v2.API.CreateBranch:input_type -> pfs_v2.CreateBranchRequest + 55, // 162: pfs_v2.API.InspectBranch:input_type -> pfs_v2.InspectBranchRequest + 56, // 163: pfs_v2.API.ListBranch:input_type -> pfs_v2.ListBranchRequest + 57, // 164: pfs_v2.API.DeleteBranch:input_type -> pfs_v2.DeleteBranchRequest + 49, // 165: pfs_v2.API.WalkBranchProvenance:input_type -> pfs_v2.WalkBranchProvenanceRequest + 50, // 166: pfs_v2.API.WalkBranchSubvenance:input_type -> pfs_v2.WalkBranchSubvenanceRequest + 67, // 167: pfs_v2.API.ModifyFile:input_type -> pfs_v2.ModifyFileRequest + 68, // 168: pfs_v2.API.GetFile:input_type -> pfs_v2.GetFileRequest + 68, // 169: pfs_v2.API.GetFileTAR:input_type -> pfs_v2.GetFileRequest + 69, // 170: pfs_v2.API.InspectFile:input_type -> pfs_v2.InspectFileRequest + 70, // 171: pfs_v2.API.ListFile:input_type -> pfs_v2.ListFileRequest + 71, // 172: pfs_v2.API.WalkFile:input_type -> pfs_v2.WalkFileRequest + 72, // 173: pfs_v2.API.GlobFile:input_type -> pfs_v2.GlobFileRequest + 73, // 174: pfs_v2.API.DiffFile:input_type -> pfs_v2.DiffFileRequest + 91, // 175: pfs_v2.API.ActivateAuth:input_type -> pfs_v2.ActivateAuthRequest + 124, // 176: pfs_v2.API.DeleteAll:input_type -> google.protobuf.Empty + 75, // 177: pfs_v2.API.Fsck:input_type -> pfs_v2.FsckRequest + 67, // 178: pfs_v2.API.CreateFileSet:input_type -> pfs_v2.ModifyFileRequest + 78, // 179: pfs_v2.API.GetFileSet:input_type -> pfs_v2.GetFileSetRequest + 79, // 180: pfs_v2.API.AddFileSet:input_type -> pfs_v2.AddFileSetRequest + 80, // 181: pfs_v2.API.RenewFileSet:input_type -> pfs_v2.RenewFileSetRequest + 81, // 182: pfs_v2.API.ComposeFileSet:input_type -> pfs_v2.ComposeFileSetRequest + 82, // 183: pfs_v2.API.ShardFileSet:input_type -> pfs_v2.ShardFileSetRequest + 85, // 184: pfs_v2.API.CheckStorage:input_type -> pfs_v2.CheckStorageRequest + 87, // 185: pfs_v2.API.PutCache:input_type -> pfs_v2.PutCacheRequest + 88, // 186: pfs_v2.API.GetCache:input_type -> pfs_v2.GetCacheRequest + 90, // 187: pfs_v2.API.ClearCache:input_type -> pfs_v2.ClearCacheRequest + 125, // 188: pfs_v2.API.ListTask:input_type -> taskapi.ListTaskRequest + 95, // 189: pfs_v2.API.Egress:input_type -> pfs_v2.EgressRequest + 58, // 190: pfs_v2.API.CreateProject:input_type -> pfs_v2.CreateProjectRequest + 59, // 191: pfs_v2.API.InspectProject:input_type -> pfs_v2.InspectProjectRequest + 60, // 192: pfs_v2.API.InspectProjectV2:input_type -> pfs_v2.InspectProjectV2Request + 62, // 193: pfs_v2.API.ListProject:input_type -> pfs_v2.ListProjectRequest + 63, // 194: pfs_v2.API.DeleteProject:input_type -> pfs_v2.DeleteProjectRequest + 97, // 195: pfs_v2.API.ReposSummary:input_type -> pfs_v2.ReposSummaryRequest + 100, // 196: pfs_v2.API.CompactCommitFileset:input_type -> pfs_v2.CompactCommitFilesetRequest + 124, // 197: pfs_v2.API.CreateRepo:output_type -> google.protobuf.Empty + 12, // 198: pfs_v2.API.InspectRepo:output_type -> pfs_v2.RepoInfo + 12, // 199: pfs_v2.API.ListRepo:output_type -> pfs_v2.RepoInfo + 32, // 200: pfs_v2.API.DeleteRepo:output_type -> pfs_v2.DeleteRepoResponse + 33, // 201: pfs_v2.API.DeleteRepos:output_type -> pfs_v2.DeleteReposResponse + 17, // 202: pfs_v2.API.StartCommit:output_type -> pfs_v2.Commit + 124, // 203: pfs_v2.API.FinishCommit:output_type -> google.protobuf.Empty + 124, // 204: pfs_v2.API.ClearCommit:output_type -> google.protobuf.Empty + 19, // 205: pfs_v2.API.InspectCommit:output_type -> pfs_v2.CommitInfo + 19, // 206: pfs_v2.API.ListCommit:output_type -> pfs_v2.CommitInfo + 19, // 207: pfs_v2.API.SubscribeCommit:output_type -> pfs_v2.CommitInfo + 45, // 208: pfs_v2.API.SquashCommit:output_type -> pfs_v2.SquashCommitResponse + 51, // 209: pfs_v2.API.DropCommit:output_type -> pfs_v2.DropCommitResponse + 19, // 210: pfs_v2.API.InspectCommitSet:output_type -> pfs_v2.CommitInfo + 21, // 211: pfs_v2.API.ListCommitSet:output_type -> pfs_v2.CommitSetInfo + 124, // 212: pfs_v2.API.SquashCommitSet:output_type -> google.protobuf.Empty + 124, // 213: pfs_v2.API.DropCommitSet:output_type -> google.protobuf.Empty + 54, // 214: pfs_v2.API.FindCommits:output_type -> pfs_v2.FindCommitsResponse + 19, // 215: pfs_v2.API.WalkCommitProvenance:output_type -> pfs_v2.CommitInfo + 19, // 216: pfs_v2.API.WalkCommitSubvenance:output_type -> pfs_v2.CommitInfo + 124, // 217: pfs_v2.API.CreateBranch:output_type -> google.protobuf.Empty + 14, // 218: pfs_v2.API.InspectBranch:output_type -> pfs_v2.BranchInfo + 14, // 219: pfs_v2.API.ListBranch:output_type -> pfs_v2.BranchInfo + 124, // 220: pfs_v2.API.DeleteBranch:output_type -> google.protobuf.Empty + 14, // 221: pfs_v2.API.WalkBranchProvenance:output_type -> pfs_v2.BranchInfo + 14, // 222: pfs_v2.API.WalkBranchSubvenance:output_type -> pfs_v2.BranchInfo + 124, // 223: pfs_v2.API.ModifyFile:output_type -> google.protobuf.Empty + 121, // 224: pfs_v2.API.GetFile:output_type -> google.protobuf.BytesValue + 121, // 225: pfs_v2.API.GetFileTAR:output_type -> google.protobuf.BytesValue + 22, // 226: pfs_v2.API.InspectFile:output_type -> pfs_v2.FileInfo + 22, // 227: pfs_v2.API.ListFile:output_type -> pfs_v2.FileInfo + 22, // 228: pfs_v2.API.WalkFile:output_type -> pfs_v2.FileInfo + 22, // 229: pfs_v2.API.GlobFile:output_type -> pfs_v2.FileInfo + 74, // 230: pfs_v2.API.DiffFile:output_type -> pfs_v2.DiffFileResponse + 92, // 231: pfs_v2.API.ActivateAuth:output_type -> pfs_v2.ActivateAuthResponse + 124, // 232: pfs_v2.API.DeleteAll:output_type -> google.protobuf.Empty + 76, // 233: pfs_v2.API.Fsck:output_type -> pfs_v2.FsckResponse + 77, // 234: pfs_v2.API.CreateFileSet:output_type -> pfs_v2.CreateFileSetResponse + 77, // 235: pfs_v2.API.GetFileSet:output_type -> pfs_v2.CreateFileSetResponse + 124, // 236: pfs_v2.API.AddFileSet:output_type -> google.protobuf.Empty + 124, // 237: pfs_v2.API.RenewFileSet:output_type -> google.protobuf.Empty + 77, // 238: pfs_v2.API.ComposeFileSet:output_type -> pfs_v2.CreateFileSetResponse + 84, // 239: pfs_v2.API.ShardFileSet:output_type -> pfs_v2.ShardFileSetResponse + 86, // 240: pfs_v2.API.CheckStorage:output_type -> pfs_v2.CheckStorageResponse + 124, // 241: pfs_v2.API.PutCache:output_type -> google.protobuf.Empty + 89, // 242: pfs_v2.API.GetCache:output_type -> pfs_v2.GetCacheResponse + 124, // 243: pfs_v2.API.ClearCache:output_type -> google.protobuf.Empty + 126, // 244: pfs_v2.API.ListTask:output_type -> taskapi.TaskInfo + 96, // 245: pfs_v2.API.Egress:output_type -> pfs_v2.EgressResponse + 124, // 246: pfs_v2.API.CreateProject:output_type -> google.protobuf.Empty + 24, // 247: pfs_v2.API.InspectProject:output_type -> pfs_v2.ProjectInfo + 61, // 248: pfs_v2.API.InspectProjectV2:output_type -> pfs_v2.InspectProjectV2Response + 24, // 249: pfs_v2.API.ListProject:output_type -> pfs_v2.ProjectInfo + 124, // 250: pfs_v2.API.DeleteProject:output_type -> google.protobuf.Empty + 99, // 251: pfs_v2.API.ReposSummary:output_type -> pfs_v2.ReposSummaryResponse + 101, // 252: pfs_v2.API.CompactCommitFileset:output_type -> pfs_v2.CompactCommitFilesetResponse + 197, // [197:253] is the sub-list for method output_type + 141, // [141:197] is the sub-list for method input_type + 141, // [141:141] is the sub-list for extension type_name + 141, // [141:141] is the sub-list for extension extendee + 0, // [0:141] is the sub-list for field type_name } func init() { file_pfs_pfs_proto_init() } @@ -9537,7 +9652,7 @@ func file_pfs_pfs_proto_init() { } } file_pfs_pfs_proto_msgTypes[93].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RepoPicker_RepoName); i { + switch v := v.(*CompactCommitFilesetRequest); i { case 0: return &v.state case 1: @@ -9549,7 +9664,7 @@ func file_pfs_pfs_proto_init() { } } file_pfs_pfs_proto_msgTypes[94].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BranchPicker_BranchName); i { + switch v := v.(*CompactCommitFilesetResponse); i { case 0: return &v.state case 1: @@ -9561,6 +9676,30 @@ func file_pfs_pfs_proto_init() { } } file_pfs_pfs_proto_msgTypes[95].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RepoPicker_RepoName); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pfs_pfs_proto_msgTypes[96].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BranchPicker_BranchName); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pfs_pfs_proto_msgTypes[97].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RepoInfo_Details); i { case 0: return &v.state @@ -9572,7 +9711,7 @@ func file_pfs_pfs_proto_init() { return nil } } - file_pfs_pfs_proto_msgTypes[98].Exporter = func(v interface{}, i int) interface{} { + file_pfs_pfs_proto_msgTypes[100].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CommitPicker_CommitByGlobalId); i { case 0: return &v.state @@ -9584,7 +9723,7 @@ func file_pfs_pfs_proto_init() { return nil } } - file_pfs_pfs_proto_msgTypes[99].Exporter = func(v interface{}, i int) interface{} { + file_pfs_pfs_proto_msgTypes[101].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CommitPicker_BranchRoot); i { case 0: return &v.state @@ -9596,7 +9735,7 @@ func file_pfs_pfs_proto_init() { return nil } } - file_pfs_pfs_proto_msgTypes[100].Exporter = func(v interface{}, i int) interface{} { + file_pfs_pfs_proto_msgTypes[102].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CommitPicker_AncestorOf); i { case 0: return &v.state @@ -9608,7 +9747,7 @@ func file_pfs_pfs_proto_init() { return nil } } - file_pfs_pfs_proto_msgTypes[101].Exporter = func(v interface{}, i int) interface{} { + file_pfs_pfs_proto_msgTypes[103].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CommitInfo_Details); i { case 0: return &v.state @@ -9620,7 +9759,7 @@ func file_pfs_pfs_proto_init() { return nil } } - file_pfs_pfs_proto_msgTypes[104].Exporter = func(v interface{}, i int) interface{} { + file_pfs_pfs_proto_msgTypes[106].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AddFile_URLSource); i { case 0: return &v.state @@ -9632,7 +9771,7 @@ func file_pfs_pfs_proto_init() { return nil } } - file_pfs_pfs_proto_msgTypes[105].Exporter = func(v interface{}, i int) interface{} { + file_pfs_pfs_proto_msgTypes[107].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SQLDatabaseEgress_FileFormat); i { case 0: return &v.state @@ -9644,7 +9783,7 @@ func file_pfs_pfs_proto_init() { return nil } } - file_pfs_pfs_proto_msgTypes[106].Exporter = func(v interface{}, i int) interface{} { + file_pfs_pfs_proto_msgTypes[108].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SQLDatabaseEgress_Secret); i { case 0: return &v.state @@ -9656,7 +9795,7 @@ func file_pfs_pfs_proto_init() { return nil } } - file_pfs_pfs_proto_msgTypes[107].Exporter = func(v interface{}, i int) interface{} { + file_pfs_pfs_proto_msgTypes[109].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*EgressResponse_ObjectStorageResult); i { case 0: return &v.state @@ -9668,7 +9807,7 @@ func file_pfs_pfs_proto_init() { return nil } } - file_pfs_pfs_proto_msgTypes[108].Exporter = func(v interface{}, i int) interface{} { + file_pfs_pfs_proto_msgTypes[110].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*EgressResponse_SQLDatabaseResult); i { case 0: return &v.state @@ -9728,7 +9867,7 @@ func file_pfs_pfs_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_pfs_pfs_proto_rawDesc, NumEnums: 7, - NumMessages: 110, + NumMessages: 112, NumExtensions: 0, NumServices: 1, }, diff --git a/src/pfs/pfs.pb.gw.go b/src/pfs/pfs.pb.gw.go index a5140c6a886..238b4c6e603 100644 --- a/src/pfs/pfs.pb.gw.go +++ b/src/pfs/pfs.pb.gw.go @@ -1743,6 +1743,40 @@ func local_request_API_ReposSummary_0(ctx context.Context, marshaler runtime.Mar } +func request_API_CompactCommitFileset_0(ctx context.Context, marshaler runtime.Marshaler, client APIClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq CompactCommitFilesetRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.CompactCommitFileset(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_API_CompactCommitFileset_0(ctx context.Context, marshaler runtime.Marshaler, server APIServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq CompactCommitFilesetRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.CompactCommitFileset(ctx, &protoReq) + return msg, metadata, err + +} + // RegisterAPIHandlerServer registers the http handlers for service API to "mux". // UnaryRPC :call APIServer directly. // StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. @@ -2728,6 +2762,31 @@ func RegisterAPIHandlerServer(ctx context.Context, mux *runtime.ServeMux, server }) + mux.Handle("POST", pattern_API_CompactCommitFileset_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, "/pfs_v2.API/CompactCommitFileset", runtime.WithHTTPPathPattern("/pfs_v2.API/CompactCommitFileset")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_API_CompactCommitFileset_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_API_CompactCommitFileset_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + return nil } @@ -3979,6 +4038,28 @@ func RegisterAPIHandlerClient(ctx context.Context, mux *runtime.ServeMux, client }) + mux.Handle("POST", pattern_API_CompactCommitFileset_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, "/pfs_v2.API/CompactCommitFileset", runtime.WithHTTPPathPattern("/pfs_v2.API/CompactCommitFileset")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_API_CompactCommitFileset_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_API_CompactCommitFileset_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + return nil } @@ -4092,6 +4173,8 @@ var ( pattern_API_DeleteProject_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"pfs_v2.API", "DeleteProject"}, "")) pattern_API_ReposSummary_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"pfs_v2.API", "ReposSummary"}, "")) + + pattern_API_CompactCommitFileset_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"pfs_v2.API", "CompactCommitFileset"}, "")) ) var ( @@ -4204,4 +4287,6 @@ var ( forward_API_DeleteProject_0 = runtime.ForwardResponseMessage forward_API_ReposSummary_0 = runtime.ForwardResponseMessage + + forward_API_CompactCommitFileset_0 = runtime.ForwardResponseMessage ) diff --git a/src/pfs/pfs.pb.validate.go b/src/pfs/pfs.pb.validate.go index 903de4723fc..06f5a363c25 100644 --- a/src/pfs/pfs.pb.validate.go +++ b/src/pfs/pfs.pb.validate.go @@ -13576,6 +13576,243 @@ var _ interface { ErrorName() string } = ReposSummaryResponseValidationError{} +// Validate checks the field values on CompactCommitFilesetRequest with the +// rules defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *CompactCommitFilesetRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on CompactCommitFilesetRequest with the +// rules defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// CompactCommitFilesetRequestMultiError, or nil if none found. +func (m *CompactCommitFilesetRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *CompactCommitFilesetRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if all { + switch v := interface{}(m.GetCommitPicker()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, CompactCommitFilesetRequestValidationError{ + field: "CommitPicker", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, CompactCommitFilesetRequestValidationError{ + field: "CommitPicker", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetCommitPicker()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return CompactCommitFilesetRequestValidationError{ + field: "CommitPicker", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if len(errors) > 0 { + return CompactCommitFilesetRequestMultiError(errors) + } + + return nil +} + +// CompactCommitFilesetRequestMultiError is an error wrapping multiple +// validation errors returned by CompactCommitFilesetRequest.ValidateAll() if +// the designated constraints aren't met. +type CompactCommitFilesetRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m CompactCommitFilesetRequestMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m CompactCommitFilesetRequestMultiError) AllErrors() []error { return m } + +// CompactCommitFilesetRequestValidationError is the validation error returned +// by CompactCommitFilesetRequest.Validate if the designated constraints +// aren't met. +type CompactCommitFilesetRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e CompactCommitFilesetRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e CompactCommitFilesetRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e CompactCommitFilesetRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e CompactCommitFilesetRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e CompactCommitFilesetRequestValidationError) ErrorName() string { + return "CompactCommitFilesetRequestValidationError" +} + +// Error satisfies the builtin error interface +func (e CompactCommitFilesetRequestValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sCompactCommitFilesetRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = CompactCommitFilesetRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = CompactCommitFilesetRequestValidationError{} + +// Validate checks the field values on CompactCommitFilesetResponse with the +// rules defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *CompactCommitFilesetResponse) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on CompactCommitFilesetResponse with the +// rules defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// CompactCommitFilesetResponseMultiError, or nil if none found. +func (m *CompactCommitFilesetResponse) ValidateAll() error { + return m.validate(true) +} + +func (m *CompactCommitFilesetResponse) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for FilesetId + + if len(errors) > 0 { + return CompactCommitFilesetResponseMultiError(errors) + } + + return nil +} + +// CompactCommitFilesetResponseMultiError is an error wrapping multiple +// validation errors returned by CompactCommitFilesetResponse.ValidateAll() if +// the designated constraints aren't met. +type CompactCommitFilesetResponseMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m CompactCommitFilesetResponseMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m CompactCommitFilesetResponseMultiError) AllErrors() []error { return m } + +// CompactCommitFilesetResponseValidationError is the validation error returned +// by CompactCommitFilesetResponse.Validate if the designated constraints +// aren't met. +type CompactCommitFilesetResponseValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e CompactCommitFilesetResponseValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e CompactCommitFilesetResponseValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e CompactCommitFilesetResponseValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e CompactCommitFilesetResponseValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e CompactCommitFilesetResponseValidationError) ErrorName() string { + return "CompactCommitFilesetResponseValidationError" +} + +// Error satisfies the builtin error interface +func (e CompactCommitFilesetResponseValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sCompactCommitFilesetResponse.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = CompactCommitFilesetResponseValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = CompactCommitFilesetResponseValidationError{} + // Validate checks the field values on RepoPicker_RepoName with the rules // defined in the proto definition for this message. If any rules are // violated, the first error encountered is returned, or nil if there are no violations. diff --git a/src/pfs/pfs.pb.zap.go b/src/pfs/pfs.pb.zap.go index fbab1312c63..33ce3c15a0d 100644 --- a/src/pfs/pfs.pb.zap.go +++ b/src/pfs/pfs.pb.zap.go @@ -1175,3 +1175,19 @@ func (x *ReposSummaryResponse) MarshalLogObject(enc zapcore.ObjectEncoder) error enc.AddArray("summaries", zapcore.ArrayMarshalerFunc(summariesArrMarshaller)) return nil } + +func (x *CompactCommitFilesetRequest) MarshalLogObject(enc zapcore.ObjectEncoder) error { + if x == nil { + return nil + } + enc.AddObject("commit_picker", x.CommitPicker) + return nil +} + +func (x *CompactCommitFilesetResponse) MarshalLogObject(enc zapcore.ObjectEncoder) error { + if x == nil { + return nil + } + enc.AddString("fileset_id", x.FilesetId) + return nil +} diff --git a/src/pfs/pfs.proto b/src/pfs/pfs.proto index ab9d6983774..25265595f04 100644 --- a/src/pfs/pfs.proto +++ b/src/pfs/pfs.proto @@ -772,6 +772,14 @@ message ReposSummaryResponse { repeated ReposSummary summaries = 1; // repo summaries for the requested projects } +message CompactCommitFilesetRequest { + pfs_v2.CommitPicker commit_picker = 1; +} + +message CompactCommitFilesetResponse { + string fileset_id = 1; +} + service API { // CreateRepo creates a new repo. rpc CreateRepo(CreateRepoRequest) returns (google.protobuf.Empty) {} @@ -900,4 +908,7 @@ service API { // Summary API // ReposSummary returns a list of summaries about the repos for each of the requested projects. rpc ReposSummary(ReposSummaryRequest) returns (ReposSummaryResponse) {} + + // CompactCommitFileset runs the filesets of an input commit through compaction and returns the id of the new fileset. + rpc CompactCommitFileset(CompactCommitFilesetRequest) returns (CompactCommitFilesetResponse) {} } diff --git a/src/pfs/pfs_grpc.pb.go b/src/pfs/pfs_grpc.pb.go index 437943f54b2..742e030986f 100644 --- a/src/pfs/pfs_grpc.pb.go +++ b/src/pfs/pfs_grpc.pb.go @@ -77,6 +77,7 @@ const ( API_ListProject_FullMethodName = "/pfs_v2.API/ListProject" API_DeleteProject_FullMethodName = "/pfs_v2.API/DeleteProject" API_ReposSummary_FullMethodName = "/pfs_v2.API/ReposSummary" + API_CompactCommitFileset_FullMethodName = "/pfs_v2.API/CompactCommitFileset" ) // APIClient is the client API for API service. @@ -199,6 +200,8 @@ type APIClient interface { // Summary API // ReposSummary returns a list of summaries about the repos for each of the requested projects. ReposSummary(ctx context.Context, in *ReposSummaryRequest, opts ...grpc.CallOption) (*ReposSummaryResponse, error) + // CompactCommitFileset runs the filesets of an input commit through compaction and returns the id of the new fileset. + CompactCommitFileset(ctx context.Context, in *CompactCommitFilesetRequest, opts ...grpc.CallOption) (*CompactCommitFilesetResponse, error) } type aPIClient struct { @@ -1214,6 +1217,15 @@ func (c *aPIClient) ReposSummary(ctx context.Context, in *ReposSummaryRequest, o return out, nil } +func (c *aPIClient) CompactCommitFileset(ctx context.Context, in *CompactCommitFilesetRequest, opts ...grpc.CallOption) (*CompactCommitFilesetResponse, error) { + out := new(CompactCommitFilesetResponse) + err := c.cc.Invoke(ctx, API_CompactCommitFileset_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // APIServer is the server API for API service. // All implementations must embed UnimplementedAPIServer // for forward compatibility @@ -1334,6 +1346,8 @@ type APIServer interface { // Summary API // ReposSummary returns a list of summaries about the repos for each of the requested projects. ReposSummary(context.Context, *ReposSummaryRequest) (*ReposSummaryResponse, error) + // CompactCommitFileset runs the filesets of an input commit through compaction and returns the id of the new fileset. + CompactCommitFileset(context.Context, *CompactCommitFilesetRequest) (*CompactCommitFilesetResponse, error) mustEmbedUnimplementedAPIServer() } @@ -1506,6 +1520,9 @@ func (UnimplementedAPIServer) DeleteProject(context.Context, *DeleteProjectReque func (UnimplementedAPIServer) ReposSummary(context.Context, *ReposSummaryRequest) (*ReposSummaryResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method ReposSummary not implemented") } +func (UnimplementedAPIServer) CompactCommitFileset(context.Context, *CompactCommitFilesetRequest) (*CompactCommitFilesetResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method CompactCommitFileset not implemented") +} func (UnimplementedAPIServer) mustEmbedUnimplementedAPIServer() {} // UnsafeAPIServer may be embedded to opt out of forward compatibility for this service. @@ -2585,6 +2602,24 @@ func _API_ReposSummary_Handler(srv interface{}, ctx context.Context, dec func(in return interceptor(ctx, in, info, handler) } +func _API_CompactCommitFileset_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CompactCommitFilesetRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(APIServer).CompactCommitFileset(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: API_CompactCommitFileset_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(APIServer).CompactCommitFileset(ctx, req.(*CompactCommitFilesetRequest)) + } + return interceptor(ctx, in, info, handler) +} + // API_ServiceDesc is the grpc.ServiceDesc for API service. // It's only intended for direct use with grpc.RegisterService, // and not to be introspected or modified (even as a copy) @@ -2724,6 +2759,10 @@ var API_ServiceDesc = grpc.ServiceDesc{ MethodName: "ReposSummary", Handler: _API_ReposSummary_Handler, }, + { + MethodName: "CompactCommitFileset", + Handler: _API_CompactCommitFileset_Handler, + }, }, Streams: []grpc.StreamDesc{ { diff --git a/src/storage/fileset.pb.go b/src/storage/fileset.pb.go index b02ebca73b8..93117b7d403 100644 --- a/src/storage/fileset.pb.go +++ b/src/storage/fileset.pb.go @@ -897,100 +897,6 @@ func (x *GraphFilesetResponse) GetGraph() string { return "" } -type CompactFilesetRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - FilesetId string `protobuf:"bytes,1,opt,name=fileset_id,json=filesetId,proto3" json:"fileset_id,omitempty"` -} - -func (x *CompactFilesetRequest) Reset() { - *x = CompactFilesetRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_storage_fileset_proto_msgTypes[15] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CompactFilesetRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CompactFilesetRequest) ProtoMessage() {} - -func (x *CompactFilesetRequest) ProtoReflect() protoreflect.Message { - mi := &file_storage_fileset_proto_msgTypes[15] - 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 CompactFilesetRequest.ProtoReflect.Descriptor instead. -func (*CompactFilesetRequest) Descriptor() ([]byte, []int) { - return file_storage_fileset_proto_rawDescGZIP(), []int{15} -} - -func (x *CompactFilesetRequest) GetFilesetId() string { - if x != nil { - return x.FilesetId - } - return "" -} - -type CompactFilesetResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - FilesetId string `protobuf:"bytes,1,opt,name=fileset_id,json=filesetId,proto3" json:"fileset_id,omitempty"` -} - -func (x *CompactFilesetResponse) Reset() { - *x = CompactFilesetResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_storage_fileset_proto_msgTypes[16] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CompactFilesetResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CompactFilesetResponse) ProtoMessage() {} - -func (x *CompactFilesetResponse) ProtoReflect() protoreflect.Message { - mi := &file_storage_fileset_proto_msgTypes[16] - 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 CompactFilesetResponse.ProtoReflect.Descriptor instead. -func (*CompactFilesetResponse) Descriptor() ([]byte, []int) { - return file_storage_fileset_proto_rawDescGZIP(), []int{16} -} - -func (x *CompactFilesetResponse) GetFilesetId() string { - if x != nil { - return x.FilesetId - } - return "" -} - var File_storage_fileset_proto protoreflect.FileDescriptor var file_storage_fileset_proto_rawDesc = []byte{ @@ -1077,53 +983,41 @@ var file_storage_fileset_proto_rawDesc = []byte{ 0x74, 0x49, 0x64, 0x22, 0x2c, 0x0a, 0x14, 0x47, 0x72, 0x61, 0x70, 0x68, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x67, 0x72, 0x61, 0x70, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x67, 0x72, 0x61, 0x70, - 0x68, 0x22, 0x36, 0x0a, 0x15, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x46, 0x69, 0x6c, 0x65, - 0x73, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x66, 0x69, - 0x6c, 0x65, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x66, 0x69, 0x6c, 0x65, 0x73, 0x65, 0x74, 0x49, 0x64, 0x22, 0x37, 0x0a, 0x16, 0x43, 0x6f, 0x6d, - 0x70, 0x61, 0x63, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x65, 0x74, 0x5f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x65, 0x74, - 0x49, 0x64, 0x32, 0xbb, 0x04, 0x0a, 0x07, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x65, 0x74, 0x12, 0x52, - 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x65, 0x74, 0x12, - 0x1d, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x46, 0x69, 0x6c, 0x65, 0x73, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, + 0x68, 0x32, 0xe6, 0x03, 0x0a, 0x07, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x65, 0x74, 0x12, 0x52, 0x0a, + 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x65, 0x74, 0x12, 0x1d, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, - 0x69, 0x6c, 0x65, 0x73, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, - 0x28, 0x01, 0x12, 0x4c, 0x0a, 0x0b, 0x52, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x65, - 0x74, 0x12, 0x1b, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x52, 0x65, 0x61, 0x64, - 0x46, 0x69, 0x6c, 0x65, 0x73, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, - 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, - 0x65, 0x73, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x30, 0x01, - 0x12, 0x46, 0x0a, 0x0c, 0x52, 0x65, 0x6e, 0x65, 0x77, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x65, 0x74, - 0x12, 0x1c, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x52, 0x65, 0x6e, 0x65, 0x77, - 0x46, 0x69, 0x6c, 0x65, 0x73, 0x65, 0x74, 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, 0x00, 0x12, 0x53, 0x0a, 0x0e, 0x43, 0x6f, 0x6d, 0x70, - 0x6f, 0x73, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x65, 0x74, 0x12, 0x1e, 0x2e, 0x73, 0x74, 0x6f, - 0x72, 0x61, 0x67, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x46, 0x69, 0x6c, 0x65, - 0x73, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x73, 0x74, 0x6f, - 0x72, 0x61, 0x67, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x46, 0x69, 0x6c, 0x65, - 0x73, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4d, 0x0a, - 0x0c, 0x53, 0x68, 0x61, 0x72, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x65, 0x74, 0x12, 0x1c, 0x2e, - 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x46, 0x69, 0x6c, - 0x65, 0x73, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x73, 0x74, - 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, + 0x69, 0x6c, 0x65, 0x73, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, + 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x69, + 0x6c, 0x65, 0x73, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x28, + 0x01, 0x12, 0x4c, 0x0a, 0x0b, 0x52, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x65, 0x74, + 0x12, 0x1b, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x46, + 0x69, 0x6c, 0x65, 0x73, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, + 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x46, 0x69, 0x6c, 0x65, + 0x73, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x30, 0x01, 0x12, + 0x46, 0x0a, 0x0c, 0x52, 0x65, 0x6e, 0x65, 0x77, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x65, 0x74, 0x12, + 0x1c, 0x2e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x52, 0x65, 0x6e, 0x65, 0x77, 0x46, + 0x69, 0x6c, 0x65, 0x73, 0x65, 0x74, 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, 0x00, 0x12, 0x53, 0x0a, 0x0e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, + 0x73, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x65, 0x74, 0x12, 0x1e, 0x2e, 0x73, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x73, + 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x73, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4d, 0x0a, 0x0c, - 0x47, 0x72, 0x61, 0x70, 0x68, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x65, 0x74, 0x12, 0x1c, 0x2e, 0x73, - 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x47, 0x72, 0x61, 0x70, 0x68, 0x46, 0x69, 0x6c, 0x65, + 0x53, 0x68, 0x61, 0x72, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x65, 0x74, 0x12, 0x1c, 0x2e, 0x73, + 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x73, 0x74, 0x6f, - 0x72, 0x61, 0x67, 0x65, 0x2e, 0x47, 0x72, 0x61, 0x70, 0x68, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x65, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x53, 0x0a, 0x0e, 0x43, - 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x65, 0x74, 0x12, 0x1e, 0x2e, - 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x46, - 0x69, 0x6c, 0x65, 0x73, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, - 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x63, 0x74, 0x46, - 0x69, 0x6c, 0x65, 0x73, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, - 0x42, 0x2f, 0x5a, 0x2d, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, - 0x61, 0x63, 0x68, 0x79, 0x64, 0x65, 0x72, 0x6d, 0x2f, 0x70, 0x61, 0x63, 0x68, 0x79, 0x64, 0x65, - 0x72, 0x6d, 0x2f, 0x76, 0x32, 0x2f, 0x73, 0x72, 0x63, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, - 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x72, 0x61, 0x67, 0x65, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x65, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4d, 0x0a, 0x0c, 0x47, + 0x72, 0x61, 0x70, 0x68, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x65, 0x74, 0x12, 0x1c, 0x2e, 0x73, 0x74, + 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x47, 0x72, 0x61, 0x70, 0x68, 0x46, 0x69, 0x6c, 0x65, 0x73, + 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x73, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x2e, 0x47, 0x72, 0x61, 0x70, 0x68, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x65, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x2f, 0x5a, 0x2d, 0x67, 0x69, + 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x61, 0x63, 0x68, 0x79, 0x64, 0x65, + 0x72, 0x6d, 0x2f, 0x70, 0x61, 0x63, 0x68, 0x79, 0x64, 0x65, 0x72, 0x6d, 0x2f, 0x76, 0x32, 0x2f, + 0x73, 0x72, 0x63, 0x2f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x33, } var ( @@ -1138,7 +1032,7 @@ func file_storage_fileset_proto_rawDescGZIP() []byte { return file_storage_fileset_proto_rawDescData } -var file_storage_fileset_proto_msgTypes = make([]protoimpl.MessageInfo, 17) +var file_storage_fileset_proto_msgTypes = make([]protoimpl.MessageInfo, 15) var file_storage_fileset_proto_goTypes = []interface{}{ (*AppendFile)(nil), // 0: storage.AppendFile (*DeleteFile)(nil), // 1: storage.DeleteFile @@ -1155,18 +1049,16 @@ var file_storage_fileset_proto_goTypes = []interface{}{ (*ShardFilesetResponse)(nil), // 12: storage.ShardFilesetResponse (*GraphFilesetRequest)(nil), // 13: storage.GraphFilesetRequest (*GraphFilesetResponse)(nil), // 14: storage.GraphFilesetResponse - (*CompactFilesetRequest)(nil), // 15: storage.CompactFilesetRequest - (*CompactFilesetResponse)(nil), // 16: storage.CompactFilesetResponse - (*wrapperspb.BytesValue)(nil), // 17: google.protobuf.BytesValue - (*emptypb.Empty)(nil), // 18: google.protobuf.Empty + (*wrapperspb.BytesValue)(nil), // 15: google.protobuf.BytesValue + (*emptypb.Empty)(nil), // 16: google.protobuf.Empty } var file_storage_fileset_proto_depIdxs = []int32{ - 17, // 0: storage.AppendFile.data:type_name -> google.protobuf.BytesValue + 15, // 0: storage.AppendFile.data:type_name -> google.protobuf.BytesValue 0, // 1: storage.CreateFilesetRequest.append_file:type_name -> storage.AppendFile 1, // 2: storage.CreateFilesetRequest.delete_file:type_name -> storage.DeleteFile 11, // 3: storage.FileFilter.path_range:type_name -> storage.PathRange 4, // 4: storage.ReadFilesetRequest.filters:type_name -> storage.FileFilter - 17, // 5: storage.ReadFilesetResponse.data:type_name -> google.protobuf.BytesValue + 15, // 5: storage.ReadFilesetResponse.data:type_name -> google.protobuf.BytesValue 11, // 6: storage.ShardFilesetResponse.shards:type_name -> storage.PathRange 2, // 7: storage.Fileset.CreateFileset:input_type -> storage.CreateFilesetRequest 5, // 8: storage.Fileset.ReadFileset:input_type -> storage.ReadFilesetRequest @@ -1174,16 +1066,14 @@ var file_storage_fileset_proto_depIdxs = []int32{ 8, // 10: storage.Fileset.ComposeFileset:input_type -> storage.ComposeFilesetRequest 10, // 11: storage.Fileset.ShardFileset:input_type -> storage.ShardFilesetRequest 13, // 12: storage.Fileset.GraphFileset:input_type -> storage.GraphFilesetRequest - 15, // 13: storage.Fileset.CompactFileset:input_type -> storage.CompactFilesetRequest - 3, // 14: storage.Fileset.CreateFileset:output_type -> storage.CreateFilesetResponse - 6, // 15: storage.Fileset.ReadFileset:output_type -> storage.ReadFilesetResponse - 18, // 16: storage.Fileset.RenewFileset:output_type -> google.protobuf.Empty - 9, // 17: storage.Fileset.ComposeFileset:output_type -> storage.ComposeFilesetResponse - 12, // 18: storage.Fileset.ShardFileset:output_type -> storage.ShardFilesetResponse - 14, // 19: storage.Fileset.GraphFileset:output_type -> storage.GraphFilesetResponse - 16, // 20: storage.Fileset.CompactFileset:output_type -> storage.CompactFilesetResponse - 14, // [14:21] is the sub-list for method output_type - 7, // [7:14] is the sub-list for method input_type + 3, // 13: storage.Fileset.CreateFileset:output_type -> storage.CreateFilesetResponse + 6, // 14: storage.Fileset.ReadFileset:output_type -> storage.ReadFilesetResponse + 16, // 15: storage.Fileset.RenewFileset:output_type -> google.protobuf.Empty + 9, // 16: storage.Fileset.ComposeFileset:output_type -> storage.ComposeFilesetResponse + 12, // 17: storage.Fileset.ShardFileset:output_type -> storage.ShardFilesetResponse + 14, // 18: storage.Fileset.GraphFileset:output_type -> storage.GraphFilesetResponse + 13, // [13:19] is the sub-list for method output_type + 7, // [7:13] is the sub-list for method input_type 7, // [7:7] is the sub-list for extension type_name 7, // [7:7] is the sub-list for extension extendee 0, // [0:7] is the sub-list for field type_name @@ -1375,30 +1265,6 @@ func file_storage_fileset_proto_init() { return nil } } - file_storage_fileset_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CompactFilesetRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_storage_fileset_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CompactFilesetResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } } file_storage_fileset_proto_msgTypes[2].OneofWrappers = []interface{}{ (*CreateFilesetRequest_AppendFile)(nil), @@ -1414,7 +1280,7 @@ func file_storage_fileset_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_storage_fileset_proto_rawDesc, NumEnums: 0, - NumMessages: 17, + NumMessages: 15, NumExtensions: 0, NumServices: 1, }, diff --git a/src/storage/fileset.pb.gw.go b/src/storage/fileset.pb.gw.go index fabdf96aebd..cb33cc05e78 100644 --- a/src/storage/fileset.pb.gw.go +++ b/src/storage/fileset.pb.gw.go @@ -236,40 +236,6 @@ func local_request_Fileset_GraphFileset_0(ctx context.Context, marshaler runtime } -func request_Fileset_CompactFileset_0(ctx context.Context, marshaler runtime.Marshaler, client FilesetClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq CompactFilesetRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.CompactFileset(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_Fileset_CompactFileset_0(ctx context.Context, marshaler runtime.Marshaler, server FilesetServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq CompactFilesetRequest - var metadata runtime.ServerMetadata - - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.CompactFileset(ctx, &protoReq) - return msg, metadata, err - -} - // RegisterFilesetHandlerServer registers the http handlers for service Fileset to "mux". // UnaryRPC :call FilesetServer directly. // StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. @@ -390,31 +356,6 @@ func RegisterFilesetHandlerServer(ctx context.Context, mux *runtime.ServeMux, se }) - mux.Handle("POST", pattern_Fileset_CompactFileset_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, "/storage.Fileset/CompactFileset", runtime.WithHTTPPathPattern("/storage.Fileset/CompactFileset")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_Fileset_CompactFileset_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_Fileset_CompactFileset_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - return nil } @@ -588,28 +529,6 @@ func RegisterFilesetHandlerClient(ctx context.Context, mux *runtime.ServeMux, cl }) - mux.Handle("POST", pattern_Fileset_CompactFileset_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, "/storage.Fileset/CompactFileset", runtime.WithHTTPPathPattern("/storage.Fileset/CompactFileset")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_Fileset_CompactFileset_0(annotatedContext, inboundMarshaler, client, req, pathParams) - annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) - if err != nil { - runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) - return - } - - forward_Fileset_CompactFileset_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - return nil } @@ -625,8 +544,6 @@ var ( pattern_Fileset_ShardFileset_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"storage.Fileset", "ShardFileset"}, "")) pattern_Fileset_GraphFileset_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"storage.Fileset", "GraphFileset"}, "")) - - pattern_Fileset_CompactFileset_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"storage.Fileset", "CompactFileset"}, "")) ) var ( @@ -641,6 +558,4 @@ var ( forward_Fileset_ShardFileset_0 = runtime.ForwardResponseMessage forward_Fileset_GraphFileset_0 = runtime.ForwardResponseMessage - - forward_Fileset_CompactFileset_0 = runtime.ForwardResponseMessage ) diff --git a/src/storage/fileset.pb.validate.go b/src/storage/fileset.pb.validate.go index e38ccaf9264..3b896816787 100644 --- a/src/storage/fileset.pb.validate.go +++ b/src/storage/fileset.pb.validate.go @@ -1857,211 +1857,3 @@ var _ interface { Cause() error ErrorName() string } = GraphFilesetResponseValidationError{} - -// Validate checks the field values on CompactFilesetRequest with the rules -// defined in the proto definition for this message. If any rules are -// violated, the first error encountered is returned, or nil if there are no violations. -func (m *CompactFilesetRequest) Validate() error { - return m.validate(false) -} - -// ValidateAll checks the field values on CompactFilesetRequest with the rules -// defined in the proto definition for this message. If any rules are -// violated, the result is a list of violation errors wrapped in -// CompactFilesetRequestMultiError, or nil if none found. -func (m *CompactFilesetRequest) ValidateAll() error { - return m.validate(true) -} - -func (m *CompactFilesetRequest) validate(all bool) error { - if m == nil { - return nil - } - - var errors []error - - // no validation rules for FilesetId - - if len(errors) > 0 { - return CompactFilesetRequestMultiError(errors) - } - - return nil -} - -// CompactFilesetRequestMultiError is an error wrapping multiple validation -// errors returned by CompactFilesetRequest.ValidateAll() if the designated -// constraints aren't met. -type CompactFilesetRequestMultiError []error - -// Error returns a concatenation of all the error messages it wraps. -func (m CompactFilesetRequestMultiError) Error() string { - var msgs []string - for _, err := range m { - msgs = append(msgs, err.Error()) - } - return strings.Join(msgs, "; ") -} - -// AllErrors returns a list of validation violation errors. -func (m CompactFilesetRequestMultiError) AllErrors() []error { return m } - -// CompactFilesetRequestValidationError is the validation error returned by -// CompactFilesetRequest.Validate if the designated constraints aren't met. -type CompactFilesetRequestValidationError struct { - field string - reason string - cause error - key bool -} - -// Field function returns field value. -func (e CompactFilesetRequestValidationError) Field() string { return e.field } - -// Reason function returns reason value. -func (e CompactFilesetRequestValidationError) Reason() string { return e.reason } - -// Cause function returns cause value. -func (e CompactFilesetRequestValidationError) Cause() error { return e.cause } - -// Key function returns key value. -func (e CompactFilesetRequestValidationError) Key() bool { return e.key } - -// ErrorName returns error name. -func (e CompactFilesetRequestValidationError) ErrorName() string { - return "CompactFilesetRequestValidationError" -} - -// Error satisfies the builtin error interface -func (e CompactFilesetRequestValidationError) Error() string { - cause := "" - if e.cause != nil { - cause = fmt.Sprintf(" | caused by: %v", e.cause) - } - - key := "" - if e.key { - key = "key for " - } - - return fmt.Sprintf( - "invalid %sCompactFilesetRequest.%s: %s%s", - key, - e.field, - e.reason, - cause) -} - -var _ error = CompactFilesetRequestValidationError{} - -var _ interface { - Field() string - Reason() string - Key() bool - Cause() error - ErrorName() string -} = CompactFilesetRequestValidationError{} - -// Validate checks the field values on CompactFilesetResponse with the rules -// defined in the proto definition for this message. If any rules are -// violated, the first error encountered is returned, or nil if there are no violations. -func (m *CompactFilesetResponse) Validate() error { - return m.validate(false) -} - -// ValidateAll checks the field values on CompactFilesetResponse with the rules -// defined in the proto definition for this message. If any rules are -// violated, the result is a list of violation errors wrapped in -// CompactFilesetResponseMultiError, or nil if none found. -func (m *CompactFilesetResponse) ValidateAll() error { - return m.validate(true) -} - -func (m *CompactFilesetResponse) validate(all bool) error { - if m == nil { - return nil - } - - var errors []error - - // no validation rules for FilesetId - - if len(errors) > 0 { - return CompactFilesetResponseMultiError(errors) - } - - return nil -} - -// CompactFilesetResponseMultiError is an error wrapping multiple validation -// errors returned by CompactFilesetResponse.ValidateAll() if the designated -// constraints aren't met. -type CompactFilesetResponseMultiError []error - -// Error returns a concatenation of all the error messages it wraps. -func (m CompactFilesetResponseMultiError) Error() string { - var msgs []string - for _, err := range m { - msgs = append(msgs, err.Error()) - } - return strings.Join(msgs, "; ") -} - -// AllErrors returns a list of validation violation errors. -func (m CompactFilesetResponseMultiError) AllErrors() []error { return m } - -// CompactFilesetResponseValidationError is the validation error returned by -// CompactFilesetResponse.Validate if the designated constraints aren't met. -type CompactFilesetResponseValidationError struct { - field string - reason string - cause error - key bool -} - -// Field function returns field value. -func (e CompactFilesetResponseValidationError) Field() string { return e.field } - -// Reason function returns reason value. -func (e CompactFilesetResponseValidationError) Reason() string { return e.reason } - -// Cause function returns cause value. -func (e CompactFilesetResponseValidationError) Cause() error { return e.cause } - -// Key function returns key value. -func (e CompactFilesetResponseValidationError) Key() bool { return e.key } - -// ErrorName returns error name. -func (e CompactFilesetResponseValidationError) ErrorName() string { - return "CompactFilesetResponseValidationError" -} - -// Error satisfies the builtin error interface -func (e CompactFilesetResponseValidationError) Error() string { - cause := "" - if e.cause != nil { - cause = fmt.Sprintf(" | caused by: %v", e.cause) - } - - key := "" - if e.key { - key = "key for " - } - - return fmt.Sprintf( - "invalid %sCompactFilesetResponse.%s: %s%s", - key, - e.field, - e.reason, - cause) -} - -var _ error = CompactFilesetResponseValidationError{} - -var _ interface { - Field() string - Reason() string - Key() bool - Cause() error - ErrorName() string -} = CompactFilesetResponseValidationError{} diff --git a/src/storage/fileset.pb.zap.go b/src/storage/fileset.pb.zap.go index 73f16120e39..c39737164d4 100644 --- a/src/storage/fileset.pb.zap.go +++ b/src/storage/fileset.pb.zap.go @@ -177,19 +177,3 @@ func (x *GraphFilesetResponse) MarshalLogObject(enc zapcore.ObjectEncoder) error enc.AddString("graph", x.Graph) return nil } - -func (x *CompactFilesetRequest) MarshalLogObject(enc zapcore.ObjectEncoder) error { - if x == nil { - return nil - } - enc.AddString("fileset_id", x.FilesetId) - return nil -} - -func (x *CompactFilesetResponse) MarshalLogObject(enc zapcore.ObjectEncoder) error { - if x == nil { - return nil - } - enc.AddString("fileset_id", x.FilesetId) - return nil -} diff --git a/src/storage/fileset.proto b/src/storage/fileset.proto index 5a032b40439..cfdc1e1a613 100644 --- a/src/storage/fileset.proto +++ b/src/storage/fileset.proto @@ -110,14 +110,6 @@ message GraphFilesetResponse { string graph = 1; } -message CompactFilesetRequest { - string fileset_id = 1; -} - -message CompactFilesetResponse { - string fileset_id = 1; -} - service Fileset { // CreateFileset creates a fileset based on a stream of file modifications. // A string identifier for the created fileset will be returned that can be used for subsequent fileset operations. @@ -138,8 +130,6 @@ service Fileset { rpc ShardFileset(ShardFilesetRequest) returns (ShardFilesetResponse) {} // GraphFileset generates a graph of a fileset in the form of a dot graph. // Pass the output to jq and then to dot to get an image like so: - // pachctl misc grpc storage.Fileset.GraphFileset '{"id": ""}' | jq -r .graph | dot -Tpng > graph.png + // pachctl misc grpc storage.Fileset.GraphFileset '{"fileset_id": ""}' | jq -r .graph | dot -Tpng > graph.png rpc GraphFileset(GraphFilesetRequest) returns (GraphFilesetResponse) {} - // CompactFileset runs an input fileset through compaction and returns the id of the new fileset. - rpc CompactFileset(CompactFilesetRequest) returns (CompactFilesetResponse) {} } diff --git a/src/storage/fileset_grpc.pb.go b/src/storage/fileset_grpc.pb.go index b0303d8280e..1949533542a 100644 --- a/src/storage/fileset_grpc.pb.go +++ b/src/storage/fileset_grpc.pb.go @@ -26,7 +26,6 @@ const ( Fileset_ComposeFileset_FullMethodName = "/storage.Fileset/ComposeFileset" Fileset_ShardFileset_FullMethodName = "/storage.Fileset/ShardFileset" Fileset_GraphFileset_FullMethodName = "/storage.Fileset/GraphFileset" - Fileset_CompactFileset_FullMethodName = "/storage.Fileset/CompactFileset" ) // FilesetClient is the client API for Fileset service. @@ -52,10 +51,8 @@ type FilesetClient interface { ShardFileset(ctx context.Context, in *ShardFilesetRequest, opts ...grpc.CallOption) (*ShardFilesetResponse, error) // GraphFileset generates a graph of a fileset in the form of a dot graph. // Pass the output to jq and then to dot to get an image like so: - // pachctl misc grpc storage.Fileset.GraphFileset '{"id": ""}' | jq -r .graph | dot -Tpng > graph.png + // pachctl misc grpc storage.Fileset.GraphFileset '{"fileset_id": ""}' | jq -r .graph | dot -Tpng > graph.png GraphFileset(ctx context.Context, in *GraphFilesetRequest, opts ...grpc.CallOption) (*GraphFilesetResponse, error) - // CompactFileset runs an input fileset through compaction and returns the id of the new fileset. - CompactFileset(ctx context.Context, in *CompactFilesetRequest, opts ...grpc.CallOption) (*CompactFilesetResponse, error) } type filesetClient struct { @@ -168,15 +165,6 @@ func (c *filesetClient) GraphFileset(ctx context.Context, in *GraphFilesetReques return out, nil } -func (c *filesetClient) CompactFileset(ctx context.Context, in *CompactFilesetRequest, opts ...grpc.CallOption) (*CompactFilesetResponse, error) { - out := new(CompactFilesetResponse) - err := c.cc.Invoke(ctx, Fileset_CompactFileset_FullMethodName, in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - // FilesetServer is the server API for Fileset service. // All implementations must embed UnimplementedFilesetServer // for forward compatibility @@ -200,10 +188,8 @@ type FilesetServer interface { ShardFileset(context.Context, *ShardFilesetRequest) (*ShardFilesetResponse, error) // GraphFileset generates a graph of a fileset in the form of a dot graph. // Pass the output to jq and then to dot to get an image like so: - // pachctl misc grpc storage.Fileset.GraphFileset '{"id": ""}' | jq -r .graph | dot -Tpng > graph.png + // pachctl misc grpc storage.Fileset.GraphFileset '{"fileset_id": ""}' | jq -r .graph | dot -Tpng > graph.png GraphFileset(context.Context, *GraphFilesetRequest) (*GraphFilesetResponse, error) - // CompactFileset runs an input fileset through compaction and returns the id of the new fileset. - CompactFileset(context.Context, *CompactFilesetRequest) (*CompactFilesetResponse, error) mustEmbedUnimplementedFilesetServer() } @@ -229,9 +215,6 @@ func (UnimplementedFilesetServer) ShardFileset(context.Context, *ShardFilesetReq func (UnimplementedFilesetServer) GraphFileset(context.Context, *GraphFilesetRequest) (*GraphFilesetResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GraphFileset not implemented") } -func (UnimplementedFilesetServer) CompactFileset(context.Context, *CompactFilesetRequest) (*CompactFilesetResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method CompactFileset not implemented") -} func (UnimplementedFilesetServer) mustEmbedUnimplementedFilesetServer() {} // UnsafeFilesetServer may be embedded to opt out of forward compatibility for this service. @@ -364,24 +347,6 @@ func _Fileset_GraphFileset_Handler(srv interface{}, ctx context.Context, dec fun return interceptor(ctx, in, info, handler) } -func _Fileset_CompactFileset_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(CompactFilesetRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(FilesetServer).CompactFileset(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: Fileset_CompactFileset_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(FilesetServer).CompactFileset(ctx, req.(*CompactFilesetRequest)) - } - return interceptor(ctx, in, info, handler) -} - // Fileset_ServiceDesc is the grpc.ServiceDesc for Fileset service. // It's only intended for direct use with grpc.RegisterService, // and not to be introspected or modified (even as a copy) @@ -405,10 +370,6 @@ var Fileset_ServiceDesc = grpc.ServiceDesc{ MethodName: "GraphFileset", Handler: _Fileset_GraphFileset_Handler, }, - { - MethodName: "CompactFileset", - Handler: _Fileset_CompactFileset_Handler, - }, }, Streams: []grpc.StreamDesc{ { diff --git a/src/typescript/pfs/pfs.pb.ts b/src/typescript/pfs/pfs.pb.ts index 2f3d54b564b..9f149cbf82c 100644 --- a/src/typescript/pfs/pfs.pb.ts +++ b/src/typescript/pfs/pfs.pb.ts @@ -663,6 +663,14 @@ export type ReposSummaryResponse = { summaries?: ReposSummary[] } +export type CompactCommitFilesetRequest = { + commitPicker?: CommitPicker +} + +export type CompactCommitFilesetResponse = { + filesetId?: string +} + export class API { static CreateRepo(req: CreateRepoRequest, initReq?: fm.InitReq): Promise { return fm.fetchReq(`/pfs_v2.API/CreateRepo`, {...initReq, method: "POST", body: JSON.stringify(req, fm.replacer)}) @@ -823,4 +831,7 @@ export class API { static ReposSummary(req: ReposSummaryRequest, initReq?: fm.InitReq): Promise { return fm.fetchReq(`/pfs_v2.API/ReposSummary`, {...initReq, method: "POST", body: JSON.stringify(req, fm.replacer)}) } + static CompactCommitFileset(req: CompactCommitFilesetRequest, initReq?: fm.InitReq): Promise { + return fm.fetchReq(`/pfs_v2.API/CompactCommitFileset`, {...initReq, method: "POST", body: JSON.stringify(req, fm.replacer)}) + } } \ No newline at end of file diff --git a/src/typescript/storage/fileset.pb.ts b/src/typescript/storage/fileset.pb.ts index fe0a60dc57f..043ffd0314b 100644 --- a/src/typescript/storage/fileset.pb.ts +++ b/src/typescript/storage/fileset.pb.ts @@ -91,14 +91,6 @@ export type GraphFilesetResponse = { graph?: string } -export type CompactFilesetRequest = { - filesetId?: string -} - -export type CompactFilesetResponse = { - filesetId?: string -} - export class Fileset { static ReadFileset(req: ReadFilesetRequest, entityNotifier?: fm.NotifyStreamEntityArrival, initReq?: fm.InitReq): Promise { return fm.fetchStreamingRequest(`/storage.Fileset/ReadFileset`, entityNotifier, {...initReq, method: "POST", body: JSON.stringify(req, fm.replacer)}) @@ -115,7 +107,4 @@ export class Fileset { static GraphFileset(req: GraphFilesetRequest, initReq?: fm.InitReq): Promise { return fm.fetchReq(`/storage.Fileset/GraphFileset`, {...initReq, method: "POST", body: JSON.stringify(req, fm.replacer)}) } - static CompactFileset(req: CompactFilesetRequest, initReq?: fm.InitReq): Promise { - return fm.fetchReq(`/storage.Fileset/CompactFileset`, {...initReq, method: "POST", body: JSON.stringify(req, fm.replacer)}) - } } \ No newline at end of file