diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c35cf5e3..ddf8ed3e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -18,7 +18,7 @@ jobs: - uses: actions/setup-go@v3 with: - go-version: 1.14 + go-version: 1.18 - name: lint uses: golangci/golangci-lint-action@v3 diff --git a/Makefile b/Makefile index 80872356..d7042feb 100644 --- a/Makefile +++ b/Makefile @@ -6,8 +6,15 @@ BUILD_TIME := $(shell date +%s) all: lint test build +repath-proto: + find ./schema/protobuf/sync_pb | grep "\.proto$\" | xargs sed -i 's/import \"components\/sync\/protocol\//import \"/g' + find ./schema/protobuf/sync_pb | grep "\.proto$\" | xargs sed -i 's/import \"brave\/components\/sync\/protocol\//import \"/g' + +proto-go-module: + find ./schema/protobuf/sync_pb | grep "\.proto$\" | xargs sed -i 's/syntax = \"proto2\";/syntax = \"proto2\";\n\noption go_package = \"\.\/sync_pb\";/' + protobuf: - protoc -I schema/protobuf/sync_pb/ schema/protobuf/sync_pb/*.proto --go_out=schema/protobuf/sync_pb/ + protoc -I schema/protobuf/sync_pb/ schema/protobuf/sync_pb/*.proto --go_out=schema/protobuf/ build: go run main.go @@ -16,7 +23,7 @@ test: go test -v ./... lint: - golangci-lint run -E gofmt -E golint --exclude-use-default=false + docker run -t --rm -v "$$(pwd):/app" -w /app golangci/golangci-lint golangci-lint run -v clean: rm -f sync-server diff --git a/README.md b/README.md index 57eb4264..7bdc3e1b 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ A sync server implemented in go to communicate with Brave sync clients using [components/sync/protocol/sync.proto](https://cs.chromium.org/chromium/src/components/sync/protocol/sync.proto). -Current Chromium version for sync protocol buffer files used in this repo is Chromium 88.0.4324.96. +Current Chromium version for sync protocol buffer files used in this repo is Chromium 116.0.5845.183. This server supports endpoints as bellow. - The `POST /v2/command/` endpoint handles Commit and GetUpdates requests from sync clients and return corresponding responses both in protobuf format. Detailed of requests and their corresponding responses are defined in `schema/protobuf/sync_pb/sync.proto`. Sync clients are responsible for generating valid access tokens and present them to the server in the Authorization header of requests. @@ -23,8 +23,15 @@ Currently we use dynamoDB as the datastore, the schema could be found in `schema 3. Run `make docker-up` 4. For running unit tests, run `make docker-test` +# Updating protocol definitions +1. Copy the `.proto` files from `components/sync/protocol` in `chromium` to `schema/protobuf/sync_pb` in `go-sync`. +2. Copy the `.proto` files from `components/sync/protocol` in `brave-core` to `schema/protobuf/sync_pb` in `go-sync`. +3. Run `make repath-proto` to set correct import paths in `.proto` files. +4. Run `make proto-go-module` to add the `go_module` option to `.proto` files. +5. Run `make protobuf` to generate the Go code from `.proto` definitions. + ## Prometheus Instrumentation -The instrumented datastore and redis interfaces are generated, providing integration with Prometheus. The following will re-generate the instrumented code: +The instrumented datastore and redis interfaces are generated, providing integration with Prometheus. The following will re-generate the instrumented code, required when updating protocl definitions: ``` make instrumented diff --git a/command/command.go b/command/command.go index 64205cd3..2ddba677 100644 --- a/command/command.go +++ b/command/command.go @@ -87,9 +87,6 @@ func handleGetUpdatesRequest(cache *cache.Cache, guMsg *sync_pb.GetUpdatesMessag } maxSize := maxGUBatchSize - if guMsg.BatchSize != nil && int(*guMsg.BatchSize) < maxGUBatchSize { - maxSize = int(*guMsg.BatchSize) - } // Process from_progress_marker guRsp.NewProgressMarker = make([]*sync_pb.DataTypeProgressMarker, len(guMsg.FromProgressMarker)) @@ -273,7 +270,7 @@ func handleCommitRequest(cache *cache.Cache, commitMsg *sync_pb.CommitMessage, c count++ } else { // Update - conflict, delete, err := db.UpdateSyncEntity(entityToCommit, oldVersion) + conflict, deleted, err := db.UpdateSyncEntity(entityToCommit, oldVersion) if err != nil { log.Error().Err(err).Msg("Update sync entity failed") rspType := sync_pb.CommitResponse_TRANSIENT_ERROR @@ -286,7 +283,7 @@ func handleCommitRequest(cache *cache.Cache, commitMsg *sync_pb.CommitMessage, c entryRsp.ResponseType = &rspType continue } - if delete { + if deleted { count-- } } @@ -322,7 +319,7 @@ func handleCommitRequest(cache *cache.Cache, commitMsg *sync_pb.CommitMessage, c // handleClearServerDataRequest handles clearing user data from the datastore and cache // and fills the response -func handleClearServerDataRequest(cache *cache.Cache, db datastore.Datastore, msg *sync_pb.ClearServerDataMessage, clientID string) (*sync_pb.SyncEnums_ErrorType, error) { +func handleClearServerDataRequest(cache *cache.Cache, db datastore.Datastore, _ *sync_pb.ClearServerDataMessage, clientID string) (*sync_pb.SyncEnums_ErrorType, error) { errCode := sync_pb.SyncEnums_SUCCESS var err error diff --git a/command/command_test.go b/command/command_test.go index 66519404..821dd66d 100644 --- a/command/command_test.go +++ b/command/command_test.go @@ -142,12 +142,11 @@ func getMarker(suite *CommandTestSuite, tokens []int64) []*sync_pb.DataTypeProgr func getClientToServerGUMsg(marker []*sync_pb.DataTypeProgressMarker, origin sync_pb.SyncEnums_GetUpdatesOrigin, fetchFolders bool, - batchSize *int32) *sync_pb.ClientToServerMessage { + _ *int32) *sync_pb.ClientToServerMessage { guMsg := &sync_pb.GetUpdatesMessage{ FetchFolders: aws.Bool(fetchFolders), FromProgressMarker: marker, GetUpdatesOrigin: &origin, - BatchSize: batchSize, } contents := sync_pb.ClientToServerMessage_GET_UPDATES return &sync_pb.ClientToServerMessage{ @@ -400,49 +399,6 @@ func (suite *CommandTestSuite) TestHandleClientToServerMessage_GUBatchSize() { suite.Assert().Equal(commitSuccess, *entryRsp.ResponseType) suite.Assert().Equal(*entryRsp.Mtime, *entryRsp.Version) } - - // Test maxGUBatchSize from client side should be respected when smaller than - // the server one. - clientBatchSize := 3 - marker := getMarker(suite, []int64{0, 0}) - msg = getClientToServerGUMsg( - marker, sync_pb.SyncEnums_GU_TRIGGER, false, aws.Int32(int32(clientBatchSize))) - rsp = &sync_pb.ClientToServerResponse{} - suite.Require().NoError( - command.HandleClientToServerMessage(suite.cache, msg, rsp, suite.dynamo, clientID), - "HandleClientToServerMessage should succeed") - assertCommonResponse(suite, rsp, false) - suite.Assert().Equal(clientBatchSize, len(rsp.GetUpdates.Entries)) - suite.Assert().Equal( - int64(len(entries)-clientBatchSize), *rsp.GetUpdates.ChangesRemaining) - // nigori1, nigori2, bookmark1 - expectedName := []*string{entries[1].Name, entries[3].Name, entries[0].Name} - for i, entry := range rsp.GetUpdates.Entries { - suite.Assert().Equal(expectedName[i], entry.Name) - } - expectedNewMarker := getMarker(suite, - []int64{*rsp.GetUpdates.Entries[1].Mtime, *rsp.GetUpdates.Entries[2].Mtime}) - suite.Assert().Equal(expectedNewMarker, rsp.GetUpdates.NewProgressMarker) - - // Test maxGUBatchSize from server side should be respected when smaller than - // the client one. - defaultServerGUBatchSize := *command.MaxGUBatchSize - *command.MaxGUBatchSize = 2 - rsp = &sync_pb.ClientToServerResponse{} - suite.Require().NoError( - command.HandleClientToServerMessage(suite.cache, msg, rsp, suite.dynamo, clientID), - "HandleClientToServerMessage should succeed") - assertCommonResponse(suite, rsp, false) - suite.Assert().Equal(int(*command.MaxGUBatchSize), len(rsp.GetUpdates.Entries)) - suite.Assert().Equal(int64(1), *rsp.GetUpdates.ChangesRemaining) - // nigori1, nigori2 - expectedName = []*string{entries[1].Name, entries[3].Name} - for i, entry := range rsp.GetUpdates.Entries { - suite.Assert().Equal(expectedName[i], entry.Name) - } - expectedNewMarker = getMarker(suite, []int64{*rsp.GetUpdates.Entries[1].Mtime, 0}) - suite.Assert().Equal(expectedNewMarker, rsp.GetUpdates.NewProgressMarker) - *command.MaxGUBatchSize = defaultServerGUBatchSize } func (suite *CommandTestSuite) TestHandleClientToServerMessage_QuotaLimit() { @@ -828,7 +784,7 @@ func (suite *CommandTestSuite) TestHandleClientToServerMessage_TypeMtimeCache_Ch // Send a GU with batch size set to 1, changesRemaining in rsp should be 1 // and cache should not be updated. marker := getMarker(suite, []int64{0, 0}) - clientBatch := int32(1) + clientBatch := int32(2) msg = getClientToServerGUMsg( marker, sync_pb.SyncEnums_PERIODIC, true, &clientBatch) rsp = &sync_pb.ClientToServerResponse{} @@ -836,8 +792,8 @@ func (suite *CommandTestSuite) TestHandleClientToServerMessage_TypeMtimeCache_Ch command.HandleClientToServerMessage(suite.cache, msg, rsp, suite.dynamo, clientID), "HandleClientToServerMessage should succeed") assertCommonResponse(suite, rsp, false) - suite.Require().Equal(1, len(rsp.GetUpdates.Entries)) - suite.Require().Equal(int64(1), *rsp.GetUpdates.ChangesRemaining) + suite.Require().Equal(2, len(rsp.GetUpdates.Entries)) + suite.Require().Equal(int64(0), *rsp.GetUpdates.ChangesRemaining) mtime := *rsp.GetUpdates.Entries[0].Mtime assertTypeMtimeCacheValue(suite, clientID+"#"+strconv.Itoa(int(bookmarkType)), latestBookmarkMtime, diff --git a/datastore/sync_entity.go b/datastore/sync_entity.go index 1d5807f9..530566f1 100644 --- a/datastore/sync_entity.go +++ b/datastore/sync_entity.go @@ -584,15 +584,15 @@ func (dynamo *Dynamo) UpdateSyncEntity(entity *SyncEntity, oldVersion int64) (bo if err != nil { return false, false, fmt.Errorf("error unmarshalling old sync entity: %w", err) } - var delete bool + var deleted bool if entity.Deleted == nil { // No updates on Deleted this time. - delete = false + deleted = false } else if oldEntity.Deleted == nil { // Consider it as Deleted = false. - delete = *entity.Deleted + deleted = *entity.Deleted } else { - delete = !*oldEntity.Deleted && *entity.Deleted + deleted = !*oldEntity.Deleted && *entity.Deleted } - return false, delete, nil + return false, deleted, nil } // GetUpdatesForType returns sync entities of a data type where it's mtime is @@ -782,7 +782,7 @@ func CreateDBSyncEntity(entity *sync_pb.SyncEntity, cacheGUID *string, clientID Deleted: deleted, OriginatorCacheGUID: originatorCacheGUID, OriginatorClientItemID: originatorClientItemID, - ClientDefinedUniqueTag: entity.ClientDefinedUniqueTag, + ClientDefinedUniqueTag: entity.ClientTagHash, Specifics: specifics, Folder: folder, UniquePosition: uniquePosition, @@ -802,7 +802,7 @@ func CreatePBSyncEntity(entity *SyncEntity) (*sync_pb.SyncEntity, error) { Name: entity.Name, NonUniqueName: entity.NonUniqueName, ServerDefinedUniqueTag: entity.ServerDefinedUniqueTag, - ClientDefinedUniqueTag: entity.ClientDefinedUniqueTag, + ClientTagHash: entity.ClientDefinedUniqueTag, OriginatorCacheGuid: entity.OriginatorCacheGUID, OriginatorClientItemId: entity.OriginatorClientItemID, Deleted: entity.Deleted, diff --git a/datastore/sync_entity_test.go b/datastore/sync_entity_test.go index 7a85b47c..67d134c7 100644 --- a/datastore/sync_entity_test.go +++ b/datastore/sync_entity_test.go @@ -299,10 +299,10 @@ func (suite *SyncEntityTestSuite) TestUpdateSyncEntity_Basic() { updateEntity1.Deleted = aws.Bool(true) updateEntity1.DataTypeMtime = aws.String("123#23456789") updateEntity1.Specifics = []byte{3, 4} - conflict, delete, err := suite.dynamo.UpdateSyncEntity(&updateEntity1, *entity1.Version) + conflict, deleted, err := suite.dynamo.UpdateSyncEntity(&updateEntity1, *entity1.Version) suite.Require().NoError(err, "UpdateSyncEntity should succeed") suite.Assert().False(conflict, "Successful update should not have conflict") - suite.Assert().True(delete, "Delete operation should return true") + suite.Assert().True(deleted, "Delete operation should return true") // Update with optional fields. updateEntity2 := updateEntity1 @@ -313,30 +313,30 @@ func (suite *SyncEntityTestSuite) TestUpdateSyncEntity_Basic() { updateEntity2.ParentID = aws.String("parentID") updateEntity2.Name = aws.String("name") updateEntity2.NonUniqueName = aws.String("non_unique_name") - conflict, delete, err = suite.dynamo.UpdateSyncEntity(&updateEntity2, *entity2.Version) + conflict, deleted, err = suite.dynamo.UpdateSyncEntity(&updateEntity2, *entity2.Version) suite.Require().NoError(err, "UpdateSyncEntity should succeed") suite.Assert().False(conflict, "Successful update should not have conflict") - suite.Assert().False(delete, "Non-delete operation should return false") + suite.Assert().False(deleted, "Non-delete operation should return false") // Update with nil Folder and Deleted updateEntity3 := updateEntity1 updateEntity3.ID = "id3" updateEntity3.Folder = nil updateEntity3.Deleted = nil - conflict, delete, err = suite.dynamo.UpdateSyncEntity(&updateEntity3, *entity3.Version) + conflict, deleted, err = suite.dynamo.UpdateSyncEntity(&updateEntity3, *entity3.Version) suite.Require().NoError(err, "UpdateSyncEntity should succeed") suite.Assert().False(conflict, "Successful update should not have conflict") - suite.Assert().False(delete, "Non-delete operation should return false") + suite.Assert().False(deleted, "Non-delete operation should return false") // Reset these back to false because they will be the expected value in DB. updateEntity3.Folder = aws.Bool(false) updateEntity3.Deleted = aws.Bool(false) // Update entity again with the wrong old version as (version mismatch) // should return false. - conflict, delete, err = suite.dynamo.UpdateSyncEntity(&updateEntity2, 12345678) + conflict, deleted, err = suite.dynamo.UpdateSyncEntity(&updateEntity2, 12345678) suite.Require().NoError(err, "UpdateSyncEntity should succeed") suite.Assert().True(conflict, "Update with the same version should return conflict") - suite.Assert().False(delete, "Conflict operation should return false for delete") + suite.Assert().False(deleted, "Conflict operation should return false for delete") // Check sync entities are updated correctly in DB. syncItems, err = datastoretest.ScanSyncEntities(suite.dynamo) @@ -375,24 +375,24 @@ func (suite *SyncEntityTestSuite) TestUpdateSyncEntity_ReuseClientTag() { updateEntity1.Folder = aws.Bool(true) updateEntity1.DataTypeMtime = aws.String("123#23456789") updateEntity1.Specifics = []byte{3, 4} - conflict, delete, err := suite.dynamo.UpdateSyncEntity(&updateEntity1, *entity1.Version) + conflict, deleted, err := suite.dynamo.UpdateSyncEntity(&updateEntity1, *entity1.Version) suite.Require().NoError(err, "UpdateSyncEntity should succeed") suite.Assert().False(conflict, "Successful update should not have conflict") - suite.Assert().False(delete, "Non-delete operation should return false") + suite.Assert().False(deleted, "Non-delete operation should return false") // Soft-delete the item with wrong version should get conflict. updateEntity1.Deleted = aws.Bool(true) - conflict, delete, err = suite.dynamo.UpdateSyncEntity(&updateEntity1, *entity1.Version) + conflict, deleted, err = suite.dynamo.UpdateSyncEntity(&updateEntity1, *entity1.Version) suite.Require().NoError(err, "UpdateSyncEntity should succeed") suite.Assert().True(conflict, "Version mismatched update should have conflict") - suite.Assert().False(delete, "Failed delete operation should return false") + suite.Assert().False(deleted, "Failed delete operation should return false") // Soft-delete the item with matched version. updateEntity1.Version = aws.Int64(34567890) - conflict, delete, err = suite.dynamo.UpdateSyncEntity(&updateEntity1, 23456789) + conflict, deleted, err = suite.dynamo.UpdateSyncEntity(&updateEntity1, 23456789) suite.Require().NoError(err, "UpdateSyncEntity should succeed") suite.Assert().False(conflict, "Successful update should not have conflict") - suite.Assert().True(delete, "Delete operation should return true") + suite.Assert().True(deleted, "Delete operation should return true") // Check tag item is deleted. tagItems, err = datastoretest.ScanTagItems(suite.dynamo) @@ -564,7 +564,7 @@ func (suite *SyncEntityTestSuite) TestCreateDBSyncEntity() { Name: aws.String("name"), NonUniqueName: aws.String("non_unique_name"), ServerDefinedUniqueTag: aws.String("server_tag"), - ClientDefinedUniqueTag: aws.String("client_tag"), + ClientTagHash: aws.String("client_tag"), Deleted: aws.Bool(false), Folder: aws.Bool(false), Specifics: specifics, @@ -577,7 +577,7 @@ func (suite *SyncEntityTestSuite) TestCreateDBSyncEntity() { Name: pbEntity.Name, NonUniqueName: pbEntity.NonUniqueName, ServerDefinedUniqueTag: pbEntity.ServerDefinedUniqueTag, - ClientDefinedUniqueTag: pbEntity.ClientDefinedUniqueTag, + ClientDefinedUniqueTag: pbEntity.ClientTagHash, Deleted: pbEntity.Deleted, Folder: pbEntity.Folder, Specifics: specificsBytes, @@ -695,7 +695,7 @@ func (suite *SyncEntityTestSuite) TestCreatePBSyncEntity() { Name: dbEntity.Name, NonUniqueName: dbEntity.NonUniqueName, ServerDefinedUniqueTag: dbEntity.ServerDefinedUniqueTag, - ClientDefinedUniqueTag: dbEntity.ClientDefinedUniqueTag, + ClientTagHash: dbEntity.ClientDefinedUniqueTag, OriginatorCacheGuid: dbEntity.OriginatorCacheGUID, OriginatorClientItemId: dbEntity.OriginatorClientItemID, Deleted: dbEntity.Deleted, diff --git a/go.mod b/go.mod index aa8337b3..bd84ac3e 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,7 @@ require ( github.com/getsentry/sentry-go v0.11.0 github.com/go-chi/chi v4.1.2+incompatible github.com/go-redis/redis/v8 v8.10.0 - github.com/prometheus/client_golang v1.11.0 + github.com/prometheus/client_golang v1.11.1 github.com/rs/zerolog v1.23.0 github.com/satori/go.uuid v1.2.0 github.com/stretchr/testify v1.7.0 @@ -37,7 +37,7 @@ require ( go.opentelemetry.io/otel v0.20.0 // indirect go.opentelemetry.io/otel/metric v0.20.0 // indirect go.opentelemetry.io/otel/trace v0.20.0 // indirect - golang.org/x/crypto v0.0.0-20210513164829-c07d793c2f9a // indirect - golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6 // indirect + golang.org/x/crypto v0.7.0 // indirect + golang.org/x/sys v0.6.0 // indirect gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b // indirect ) diff --git a/go.sum b/go.sum index 84295640..8d318662 100644 --- a/go.sum +++ b/go.sum @@ -1005,8 +1005,9 @@ github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5Fsn github.com/prometheus/client_golang v1.3.0/go.mod h1:hJaj2vgQTGQmVCsAACORcieXFeDPbaTKGT+JTgUa3og= github.com/prometheus/client_golang v1.4.0/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU= github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= -github.com/prometheus/client_golang v1.11.0 h1:HNkLOAEQMIDv/K+04rukrLx6ch7msSRwf3/SASFAGtQ= github.com/prometheus/client_golang v1.11.0/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0= +github.com/prometheus/client_golang v1.11.1 h1:+4eQaD7vAZ6DsfsxB15hbE0odUjGI5ARs9yskGu1v4s= +github.com/prometheus/client_golang v1.11.1/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= @@ -1265,8 +1266,9 @@ golang.org/x/crypto v0.0.0-20200709230013-948cd5f35899/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20201221181555-eec23a3978ad/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= -golang.org/x/crypto v0.0.0-20210513164829-c07d793c2f9a h1:kr2P4QFmQr29mSLA43kwrOcgcReGTfbE9N577tCTuBc= golang.org/x/crypto v0.0.0-20210513164829-c07d793c2f9a/go.mod h1:P+XmwS30IXTQdn5tA2iutPOUgjI07+tq3H3K9MVA1s8= +golang.org/x/crypto v0.7.0 h1:AvwMYaRytfdeVt3u6mLaxYtErKYjxA2OXjJ1HHq6t3A= +golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -1358,8 +1360,8 @@ golang.org/x/net v0.0.0-20201029221708-28c70e62bb1d/go.mod h1:sp8m0HH+o8qH0wwXwY golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201202161906-c7110b5ffcbb/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20210510120150-4163338589ed h1:p9UgmWI9wKpfYmgaV/IZKGdXc5qEK45tDwwwDyjS26I= golang.org/x/net v0.0.0-20210510120150-4163338589ed/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.8.0 h1:Zrh2ngAOFYneWTAIAPethzeaQLuHwhuBkuV6ZiRnUaQ= golang.org/x/oauth2 v0.0.0-20180227000427-d7d64896b5ff/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20181106182150-f42d05182288/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= @@ -1470,8 +1472,9 @@ golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210514084401-e8d321eab015/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6 h1:foEbQz/B0Oz6YIqu/69kfXPYeFQAuuMYFkjaqXzl5Wo= golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.6.0 h1:MVltZSvRTcU2ljQOhs94SXPftV6DCNnZViHeQps87pQ= +golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/text v0.0.0-20160726164857-2910a502d2bf/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -1481,8 +1484,8 @@ golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3 golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.6 h1:aRYxNxv6iGQlyVaZmk6ZgYEDa+Jg18DxebPSrd6bg1M= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.8.0 h1:57P1ETyNKtuIjB4SRd15iJxuhj8Gc416Y78H3qgMh68= golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= diff --git a/schema/protobuf/sync_pb/app_list_specifics.pb.go b/schema/protobuf/sync_pb/app_list_specifics.pb.go index a1bbdf17..60a4f700 100644 --- a/schema/protobuf/sync_pb/app_list_specifics.pb.go +++ b/schema/protobuf/sync_pb/app_list_specifics.pb.go @@ -1,4 +1,4 @@ -// Copyright 2013 The Chromium Authors. All rights reserved. +// Copyright 2013 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // @@ -9,7 +9,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.0 +// protoc-gen-go v1.31.0 // protoc v3.21.1 // source: app_list_specifics.proto @@ -199,7 +199,7 @@ type AppListSpecifics struct { // Marked OBSOLETE because this is unused for the app list. // Which page this item will appear on in the app list. // - // Deprecated: Do not use. + // Deprecated: Marked as deprecated in app_list_specifics.proto. OBSOLETEPageOrdinal *string `protobuf:"bytes,5,opt,name=OBSOLETE_page_ordinal,json=OBSOLETEPageOrdinal" json:"OBSOLETE_page_ordinal,omitempty"` // Where on a page this item will appear. ItemOrdinal *string `protobuf:"bytes,6,opt,name=item_ordinal,json=itemOrdinal" json:"item_ordinal,omitempty"` @@ -268,7 +268,7 @@ func (x *AppListSpecifics) GetParentId() string { return "" } -// Deprecated: Do not use. +// Deprecated: Marked as deprecated in app_list_specifics.proto. func (x *AppListSpecifics) GetOBSOLETEPageOrdinal() string { if x != nil && x.OBSOLETEPageOrdinal != nil { return *x.OBSOLETEPageOrdinal @@ -408,9 +408,10 @@ var file_app_list_specifics_proto_rawDesc = []byte{ 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x5f, 0x42, 0x4c, 0x55, 0x45, 0x10, 0x06, 0x12, 0x11, 0x0a, 0x0d, 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x5f, 0x4d, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x41, 0x10, 0x07, 0x12, 0x0f, 0x0a, 0x0b, 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x5f, 0x42, 0x4c, 0x41, 0x43, 0x4b, 0x10, 0x08, - 0x42, 0x2b, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, + 0x42, 0x36, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x73, 0x79, 0x6e, 0x63, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x03, 0x50, 0x01, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x03, 0x50, 0x01, 0x5a, 0x09, 0x2e, + 0x2f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, } var ( diff --git a/schema/protobuf/sync_pb/app_list_specifics.proto b/schema/protobuf/sync_pb/app_list_specifics.proto index ce6f51eb..8be05d3b 100644 --- a/schema/protobuf/sync_pb/app_list_specifics.proto +++ b/schema/protobuf/sync_pb/app_list_specifics.proto @@ -1,4 +1,4 @@ -// Copyright 2013 The Chromium Authors. All rights reserved. +// Copyright 2013 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // @@ -9,6 +9,8 @@ syntax = "proto2"; +option go_package = "./sync_pb"; + option java_multiple_files = true; option java_package = "org.chromium.components.sync.protocol"; diff --git a/schema/protobuf/sync_pb/app_notification_specifics.pb.go b/schema/protobuf/sync_pb/app_notification_specifics.pb.go deleted file mode 100644 index 3c3ad6c0..00000000 --- a/schema/protobuf/sync_pb/app_notification_specifics.pb.go +++ /dev/null @@ -1,228 +0,0 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. -// -// Sync protocol datatype extension for app notifications. - -// If you change or add any fields in this file, update proto_visitors.h and -// potentially proto_enum_conversions.{h, cc}. - -// Code generated by protoc-gen-go. DO NOT EDIT. -// versions: -// protoc-gen-go v1.28.0 -// protoc v3.21.1 -// source: app_notification_specifics.proto - -package sync_pb - -import ( - protoreflect "google.golang.org/protobuf/reflect/protoreflect" - protoimpl "google.golang.org/protobuf/runtime/protoimpl" - reflect "reflect" - sync "sync" -) - -const ( - // Verify that this generated code is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) - // Verify that runtime/protoimpl is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) -) - -// An App Notification, to be delivered from Chrome Apps to the -// Chrome browser through the Notification API. -type AppNotification struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Globally unique id. This is more robust for uniquely identifying each - // notification and hence gives us flexibility in the future. In absence - // of this, unique id would be (app_id, creation_timestamp_ms). But that - // relies on creation_timestamp_ms being high resolution and is not - // globally unique - only unique for a given user. - Guid *string `protobuf:"bytes,1,opt,name=guid" json:"guid,omitempty"` - // Metadata, not shown directly to the user. - // The unique App Id, as created by the webstore and used to - // delegate messages to the applications. This is defined as 32 characters - AppId *string `protobuf:"bytes,2,opt,name=app_id,json=appId" json:"app_id,omitempty"` - // Timestamp when the message was created in milliseconds. - // This is seperate from ctime as this is only set by the application. - CreationTimestampMs *int64 `protobuf:"varint,3,opt,name=creation_timestamp_ms,json=creationTimestampMs" json:"creation_timestamp_ms,omitempty"` - // Payload - these fields are visible to the user content is defined by the - // app. The fields are described in: - // chrome/browser/extensions/app_notification.h - Title *string `protobuf:"bytes,4,opt,name=title" json:"title,omitempty"` - BodyText *string `protobuf:"bytes,5,opt,name=body_text,json=bodyText" json:"body_text,omitempty"` - LinkUrl *string `protobuf:"bytes,6,opt,name=link_url,json=linkUrl" json:"link_url,omitempty"` - LinkText *string `protobuf:"bytes,7,opt,name=link_text,json=linkText" json:"link_text,omitempty"` -} - -func (x *AppNotification) Reset() { - *x = AppNotification{} - if protoimpl.UnsafeEnabled { - mi := &file_app_notification_specifics_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *AppNotification) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*AppNotification) ProtoMessage() {} - -func (x *AppNotification) ProtoReflect() protoreflect.Message { - mi := &file_app_notification_specifics_proto_msgTypes[0] - 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 AppNotification.ProtoReflect.Descriptor instead. -func (*AppNotification) Descriptor() ([]byte, []int) { - return file_app_notification_specifics_proto_rawDescGZIP(), []int{0} -} - -func (x *AppNotification) GetGuid() string { - if x != nil && x.Guid != nil { - return *x.Guid - } - return "" -} - -func (x *AppNotification) GetAppId() string { - if x != nil && x.AppId != nil { - return *x.AppId - } - return "" -} - -func (x *AppNotification) GetCreationTimestampMs() int64 { - if x != nil && x.CreationTimestampMs != nil { - return *x.CreationTimestampMs - } - return 0 -} - -func (x *AppNotification) GetTitle() string { - if x != nil && x.Title != nil { - return *x.Title - } - return "" -} - -func (x *AppNotification) GetBodyText() string { - if x != nil && x.BodyText != nil { - return *x.BodyText - } - return "" -} - -func (x *AppNotification) GetLinkUrl() string { - if x != nil && x.LinkUrl != nil { - return *x.LinkUrl - } - return "" -} - -func (x *AppNotification) GetLinkText() string { - if x != nil && x.LinkText != nil { - return *x.LinkText - } - return "" -} - -var File_app_notification_specifics_proto protoreflect.FileDescriptor - -var file_app_notification_specifics_proto_rawDesc = []byte{ - 0x0a, 0x20, 0x61, 0x70, 0x70, 0x5f, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x12, 0x07, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x22, 0xdb, 0x01, 0x0a, 0x0f, - 0x41, 0x70, 0x70, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, - 0x12, 0x0a, 0x04, 0x67, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x67, - 0x75, 0x69, 0x64, 0x12, 0x15, 0x0a, 0x06, 0x61, 0x70, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x61, 0x70, 0x70, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x15, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x5f, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x13, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x4d, 0x73, 0x12, 0x14, - 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, - 0x69, 0x74, 0x6c, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x6f, 0x64, 0x79, 0x5f, 0x74, 0x65, 0x78, - 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x6f, 0x64, 0x79, 0x54, 0x65, 0x78, - 0x74, 0x12, 0x19, 0x0a, 0x08, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x6c, 0x69, 0x6e, 0x6b, 0x55, 0x72, 0x6c, 0x12, 0x1b, 0x0a, 0x09, - 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x74, 0x65, 0x78, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x6c, 0x69, 0x6e, 0x6b, 0x54, 0x65, 0x78, 0x74, 0x42, 0x2b, 0x0a, 0x25, 0x6f, 0x72, 0x67, - 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, - 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6c, 0x48, 0x03, 0x50, 0x01, -} - -var ( - file_app_notification_specifics_proto_rawDescOnce sync.Once - file_app_notification_specifics_proto_rawDescData = file_app_notification_specifics_proto_rawDesc -) - -func file_app_notification_specifics_proto_rawDescGZIP() []byte { - file_app_notification_specifics_proto_rawDescOnce.Do(func() { - file_app_notification_specifics_proto_rawDescData = protoimpl.X.CompressGZIP(file_app_notification_specifics_proto_rawDescData) - }) - return file_app_notification_specifics_proto_rawDescData -} - -var file_app_notification_specifics_proto_msgTypes = make([]protoimpl.MessageInfo, 1) -var file_app_notification_specifics_proto_goTypes = []interface{}{ - (*AppNotification)(nil), // 0: sync_pb.AppNotification -} -var file_app_notification_specifics_proto_depIdxs = []int32{ - 0, // [0:0] is the sub-list for method output_type - 0, // [0:0] is the sub-list for method input_type - 0, // [0:0] is the sub-list for extension type_name - 0, // [0:0] is the sub-list for extension extendee - 0, // [0:0] is the sub-list for field type_name -} - -func init() { file_app_notification_specifics_proto_init() } -func file_app_notification_specifics_proto_init() { - if File_app_notification_specifics_proto != nil { - return - } - if !protoimpl.UnsafeEnabled { - file_app_notification_specifics_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AppNotification); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } - type x struct{} - out := protoimpl.TypeBuilder{ - File: protoimpl.DescBuilder{ - GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_app_notification_specifics_proto_rawDesc, - NumEnums: 0, - NumMessages: 1, - NumExtensions: 0, - NumServices: 0, - }, - GoTypes: file_app_notification_specifics_proto_goTypes, - DependencyIndexes: file_app_notification_specifics_proto_depIdxs, - MessageInfos: file_app_notification_specifics_proto_msgTypes, - }.Build() - File_app_notification_specifics_proto = out.File - file_app_notification_specifics_proto_rawDesc = nil - file_app_notification_specifics_proto_goTypes = nil - file_app_notification_specifics_proto_depIdxs = nil -} diff --git a/schema/protobuf/sync_pb/app_notification_specifics.proto b/schema/protobuf/sync_pb/app_notification_specifics.proto deleted file mode 100644 index a3280d11..00000000 --- a/schema/protobuf/sync_pb/app_notification_specifics.proto +++ /dev/null @@ -1,45 +0,0 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. -// -// Sync protocol datatype extension for app notifications. - -// If you change or add any fields in this file, update proto_visitors.h and -// potentially proto_enum_conversions.{h, cc}. - -syntax = "proto2"; - -option java_multiple_files = true; -option java_package = "org.chromium.components.sync.protocol"; - -option optimize_for = LITE_RUNTIME; - -package sync_pb; - -// Properties of an app notification. - -// An App Notification, to be delivered from Chrome Apps to the -// Chrome browser through the Notification API. -message AppNotification { - // Globally unique id. This is more robust for uniquely identifying each - // notification and hence gives us flexibility in the future. In absence - // of this, unique id would be (app_id, creation_timestamp_ms). But that - // relies on creation_timestamp_ms being high resolution and is not - // globally unique - only unique for a given user. - optional string guid = 1; - // Metadata, not shown directly to the user. - // The unique App Id, as created by the webstore and used to - // delegate messages to the applications. This is defined as 32 characters - optional string app_id = 2; - // Timestamp when the message was created in milliseconds. - // This is seperate from ctime as this is only set by the application. - optional int64 creation_timestamp_ms = 3; - - // Payload - these fields are visible to the user content is defined by the - // app. The fields are described in: - // chrome/browser/extensions/app_notification.h - optional string title = 4; - optional string body_text = 5; - optional string link_url = 6; - optional string link_text = 7; -} diff --git a/schema/protobuf/sync_pb/app_setting_specifics.pb.go b/schema/protobuf/sync_pb/app_setting_specifics.pb.go index bf99c488..ebd243c2 100644 --- a/schema/protobuf/sync_pb/app_setting_specifics.pb.go +++ b/schema/protobuf/sync_pb/app_setting_specifics.pb.go @@ -1,4 +1,4 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2012 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // @@ -11,7 +11,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.0 +// protoc-gen-go v1.31.0 // protoc v3.21.1 // source: app_setting_specifics.proto @@ -93,9 +93,10 @@ var file_app_setting_specifics_proto_rawDesc = []byte{ 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x52, 0x10, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, - 0x67, 0x42, 0x2b, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, + 0x67, 0x42, 0x36, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x73, 0x79, 0x6e, - 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x03, 0x50, 0x01, + 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x03, 0x50, 0x01, 0x5a, 0x09, + 0x2e, 0x2f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, } var ( diff --git a/schema/protobuf/sync_pb/app_setting_specifics.proto b/schema/protobuf/sync_pb/app_setting_specifics.proto index 829dd791..40de725f 100644 --- a/schema/protobuf/sync_pb/app_setting_specifics.proto +++ b/schema/protobuf/sync_pb/app_setting_specifics.proto @@ -1,4 +1,4 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2012 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // @@ -11,6 +11,8 @@ syntax = "proto2"; +option go_package = "./sync_pb"; + option java_multiple_files = true; option java_package = "org.chromium.components.sync.protocol"; diff --git a/schema/protobuf/sync_pb/app_specifics.pb.go b/schema/protobuf/sync_pb/app_specifics.pb.go index 44a545d7..8a6a5341 100644 --- a/schema/protobuf/sync_pb/app_specifics.pb.go +++ b/schema/protobuf/sync_pb/app_specifics.pb.go @@ -1,4 +1,4 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2012 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // @@ -9,7 +9,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.0 +// protoc-gen-go v1.31.0 // protoc v3.21.1 // source: app_specifics.proto @@ -105,7 +105,7 @@ type AppNotificationSettings struct { // to true when the user accepts receiving notifications for the // first time and then it will always remain true. // - // Deprecated: Do not use. + // Deprecated: Marked as deprecated in app_specifics.proto. InitialSetupDone *bool `protobuf:"varint,1,opt,name=initial_setup_done,json=initialSetupDone" json:"initial_setup_done,omitempty"` // Whether or not the user has disabled notifications. Disabled *bool `protobuf:"varint,2,opt,name=disabled" json:"disabled,omitempty"` @@ -151,7 +151,7 @@ func (*AppNotificationSettings) Descriptor() ([]byte, []int) { return file_app_specifics_proto_rawDescGZIP(), []int{0} } -// Deprecated: Do not use. +// Deprecated: Marked as deprecated in app_specifics.proto. func (x *AppNotificationSettings) GetInitialSetupDone() bool { if x != nil && x.InitialSetupDone != nil { return *x.InitialSetupDone @@ -254,26 +254,26 @@ type AppSpecifics struct { LaunchType *AppSpecifics_LaunchType `protobuf:"varint,5,opt,name=launch_type,json=launchType,enum=sync_pb.AppSpecifics_LaunchType" json:"launch_type,omitempty"` // DEPRECATED. See https://crbug.com/1233303. // - // Deprecated: Do not use. + // Deprecated: Marked as deprecated in app_specifics.proto. BookmarkAppUrl *string `protobuf:"bytes,6,opt,name=bookmark_app_url,json=bookmarkAppUrl" json:"bookmark_app_url,omitempty"` // DEPRECATED. See https://crbug.com/1233303. // - // Deprecated: Do not use. + // Deprecated: Marked as deprecated in app_specifics.proto. BookmarkAppDescription *string `protobuf:"bytes,7,opt,name=bookmark_app_description,json=bookmarkAppDescription" json:"bookmark_app_description,omitempty"` // DEPRECATED. See https://crbug.com/1233303. // - // Deprecated: Do not use. + // Deprecated: Marked as deprecated in app_specifics.proto. BookmarkAppIconColor *string `protobuf:"bytes,8,opt,name=bookmark_app_icon_color,json=bookmarkAppIconColor" json:"bookmark_app_icon_color,omitempty"` // This is information about linked icons (that is, icons that are downloaded // from outside the app's bundle of files. LinkedAppIcons []*LinkedAppIconInfo `protobuf:"bytes,9,rep,name=linked_app_icons,json=linkedAppIcons" json:"linked_app_icons,omitempty"` // DEPRECATED. See https://crbug.com/1233303. // - // Deprecated: Do not use. + // Deprecated: Marked as deprecated in app_specifics.proto. BookmarkAppScope *string `protobuf:"bytes,10,opt,name=bookmark_app_scope,json=bookmarkAppScope" json:"bookmark_app_scope,omitempty"` // DEPRECATED. See https://crbug.com/1233303. // - // Deprecated: Do not use. + // Deprecated: Marked as deprecated in app_specifics.proto. BookmarkAppThemeColor *uint32 `protobuf:"varint,11,opt,name=bookmark_app_theme_color,json=bookmarkAppThemeColor" json:"bookmark_app_theme_color,omitempty"` } @@ -344,7 +344,7 @@ func (x *AppSpecifics) GetLaunchType() AppSpecifics_LaunchType { return AppSpecifics_PINNED } -// Deprecated: Do not use. +// Deprecated: Marked as deprecated in app_specifics.proto. func (x *AppSpecifics) GetBookmarkAppUrl() string { if x != nil && x.BookmarkAppUrl != nil { return *x.BookmarkAppUrl @@ -352,7 +352,7 @@ func (x *AppSpecifics) GetBookmarkAppUrl() string { return "" } -// Deprecated: Do not use. +// Deprecated: Marked as deprecated in app_specifics.proto. func (x *AppSpecifics) GetBookmarkAppDescription() string { if x != nil && x.BookmarkAppDescription != nil { return *x.BookmarkAppDescription @@ -360,7 +360,7 @@ func (x *AppSpecifics) GetBookmarkAppDescription() string { return "" } -// Deprecated: Do not use. +// Deprecated: Marked as deprecated in app_specifics.proto. func (x *AppSpecifics) GetBookmarkAppIconColor() string { if x != nil && x.BookmarkAppIconColor != nil { return *x.BookmarkAppIconColor @@ -375,7 +375,7 @@ func (x *AppSpecifics) GetLinkedAppIcons() []*LinkedAppIconInfo { return nil } -// Deprecated: Do not use. +// Deprecated: Marked as deprecated in app_specifics.proto. func (x *AppSpecifics) GetBookmarkAppScope() string { if x != nil && x.BookmarkAppScope != nil { return *x.BookmarkAppScope @@ -383,7 +383,7 @@ func (x *AppSpecifics) GetBookmarkAppScope() string { return "" } -// Deprecated: Do not use. +// Deprecated: Marked as deprecated in app_specifics.proto. func (x *AppSpecifics) GetBookmarkAppThemeColor() uint32 { if x != nil && x.BookmarkAppThemeColor != nil { return *x.BookmarkAppThemeColor @@ -455,10 +455,11 @@ var file_app_specifics_proto_rawDesc = []byte{ 0x6e, 0x63, 0x68, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0a, 0x0a, 0x06, 0x50, 0x49, 0x4e, 0x4e, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x52, 0x45, 0x47, 0x55, 0x4c, 0x41, 0x52, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x46, 0x55, 0x4c, 0x4c, 0x53, 0x43, 0x52, 0x45, 0x45, 0x4e, 0x10, 0x02, - 0x12, 0x0a, 0x0a, 0x06, 0x57, 0x49, 0x4e, 0x44, 0x4f, 0x57, 0x10, 0x03, 0x42, 0x2b, 0x0a, 0x25, + 0x12, 0x0a, 0x0a, 0x06, 0x57, 0x49, 0x4e, 0x44, 0x4f, 0x57, 0x10, 0x03, 0x42, 0x36, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x03, 0x50, 0x01, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x03, 0x50, 0x01, 0x5a, 0x09, 0x2e, 0x2f, 0x73, 0x79, 0x6e, + 0x63, 0x5f, 0x70, 0x62, } var ( diff --git a/schema/protobuf/sync_pb/app_specifics.proto b/schema/protobuf/sync_pb/app_specifics.proto index 9b180b91..c8354c87 100644 --- a/schema/protobuf/sync_pb/app_specifics.proto +++ b/schema/protobuf/sync_pb/app_specifics.proto @@ -1,4 +1,4 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2012 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // @@ -9,6 +9,8 @@ syntax = "proto2"; +option go_package = "./sync_pb"; + option java_multiple_files = true; option java_package = "org.chromium.components.sync.protocol"; diff --git a/schema/protobuf/sync_pb/arc_package_specifics.pb.go b/schema/protobuf/sync_pb/arc_package_specifics.pb.go index cb1e7264..a27bcc27 100644 --- a/schema/protobuf/sync_pb/arc_package_specifics.pb.go +++ b/schema/protobuf/sync_pb/arc_package_specifics.pb.go @@ -1,4 +1,4 @@ -// Copyright 2016 The Chromium Authors. All rights reserved. +// Copyright 2016 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // @@ -9,7 +9,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.0 +// protoc-gen-go v1.31.0 // protoc v3.21.1 // source: arc_package_specifics.proto @@ -123,10 +123,11 @@ var file_arc_package_specifics_proto_rawDesc = []byte{ 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x41, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x10, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x42, - 0x61, 0x63, 0x6b, 0x75, 0x70, 0x54, 0x69, 0x6d, 0x65, 0x42, 0x2b, 0x0a, 0x25, 0x6f, 0x72, 0x67, + 0x61, 0x63, 0x6b, 0x75, 0x70, 0x54, 0x69, 0x6d, 0x65, 0x42, 0x36, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6c, 0x48, 0x03, 0x50, 0x01, + 0x6f, 0x6c, 0x48, 0x03, 0x50, 0x01, 0x5a, 0x09, 0x2e, 0x2f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, + 0x62, } var ( diff --git a/schema/protobuf/sync_pb/arc_package_specifics.proto b/schema/protobuf/sync_pb/arc_package_specifics.proto index fd5119d7..e24f1ee5 100644 --- a/schema/protobuf/sync_pb/arc_package_specifics.proto +++ b/schema/protobuf/sync_pb/arc_package_specifics.proto @@ -1,4 +1,4 @@ -// Copyright 2016 The Chromium Authors. All rights reserved. +// Copyright 2016 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // @@ -9,6 +9,8 @@ syntax = "proto2"; +option go_package = "./sync_pb"; + option java_multiple_files = true; option java_package = "org.chromium.components.sync.protocol"; diff --git a/schema/protobuf/sync_pb/autofill_offer_specifics.pb.go b/schema/protobuf/sync_pb/autofill_offer_specifics.pb.go index 67417c35..ee59e6cb 100644 --- a/schema/protobuf/sync_pb/autofill_offer_specifics.pb.go +++ b/schema/protobuf/sync_pb/autofill_offer_specifics.pb.go @@ -1,4 +1,4 @@ -// Copyright 2020 The Chromium Authors. All rights reserved. +// Copyright 2020 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -7,7 +7,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.0 +// protoc-gen-go v1.31.0 // protoc v3.21.1 // source: autofill_offer_specifics.proto @@ -49,6 +49,7 @@ type AutofillOfferSpecifics struct { // The unique offer data for different offer types. // // Types that are assignable to TypeSpecificOfferData: + // // *AutofillOfferSpecifics_CardLinkedOfferData_ // *AutofillOfferSpecifics_PromoCodeOfferData_ TypeSpecificOfferData isAutofillOfferSpecifics_TypeSpecificOfferData `protobuf_oneof:"type_specific_offer_data"` @@ -57,6 +58,7 @@ type AutofillOfferSpecifics struct { // the UI. Each type has its own client side text template. // // Types that are assignable to RewardType: + // // *AutofillOfferSpecifics_PercentageReward_ // *AutofillOfferSpecifics_FixedAmountReward_ RewardType isAutofillOfferSpecifics_RewardType `protobuf_oneof:"reward_type"` @@ -591,10 +593,11 @@ var file_autofill_offer_specifics_proto_rawDesc = []byte{ 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x1a, 0x0a, 0x18, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x5f, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x42, 0x0d, 0x0a, 0x0b, - 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x2b, 0x0a, 0x25, 0x6f, + 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x36, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x03, 0x50, 0x01, + 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x03, 0x50, 0x01, 0x5a, 0x09, 0x2e, 0x2f, 0x73, 0x79, 0x6e, 0x63, + 0x5f, 0x70, 0x62, } var ( diff --git a/schema/protobuf/sync_pb/autofill_offer_specifics.proto b/schema/protobuf/sync_pb/autofill_offer_specifics.proto index ee42e0e9..457b919d 100644 --- a/schema/protobuf/sync_pb/autofill_offer_specifics.proto +++ b/schema/protobuf/sync_pb/autofill_offer_specifics.proto @@ -1,4 +1,4 @@ -// Copyright 2020 The Chromium Authors. All rights reserved. +// Copyright 2020 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -7,6 +7,8 @@ syntax = "proto2"; +option go_package = "./sync_pb"; + option java_multiple_files = true; option java_package = "org.chromium.components.sync.protocol"; diff --git a/schema/protobuf/sync_pb/autofill_specifics.pb.go b/schema/protobuf/sync_pb/autofill_specifics.pb.go index fc87e0cf..cc0ad3ca 100644 --- a/schema/protobuf/sync_pb/autofill_specifics.pb.go +++ b/schema/protobuf/sync_pb/autofill_specifics.pb.go @@ -1,4 +1,4 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2012 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // @@ -9,7 +9,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.0 +// protoc-gen-go v1.31.0 // protoc v3.21.1 // source: autofill_specifics.proto @@ -118,6 +118,8 @@ const ( CardIssuer_ISSUER_UNKNOWN CardIssuer_Issuer = 0 // Card where the issuer is Google. CardIssuer_GOOGLE CardIssuer_Issuer = 1 + // Card where the issuer is external. + CardIssuer_EXTERNAL_ISSUER CardIssuer_Issuer = 2 ) // Enum value maps for CardIssuer_Issuer. @@ -125,10 +127,12 @@ var ( CardIssuer_Issuer_name = map[int32]string{ 0: "ISSUER_UNKNOWN", 1: "GOOGLE", + 2: "EXTERNAL_ISSUER", } CardIssuer_Issuer_value = map[string]int32{ - "ISSUER_UNKNOWN": 0, - "GOOGLE": 1, + "ISSUER_UNKNOWN": 0, + "GOOGLE": 1, + "EXTERNAL_ISSUER": 2, } ) @@ -312,7 +316,7 @@ type WalletMaskedCreditCard_VirtualCardEnrollmentState int32 const ( WalletMaskedCreditCard_UNSPECIFIED WalletMaskedCreditCard_VirtualCardEnrollmentState = 0 - // Deprecated: Do not use. + // Deprecated: Marked as deprecated in autofill_specifics.proto. WalletMaskedCreditCard_UNENROLLED WalletMaskedCreditCard_VirtualCardEnrollmentState = 1 WalletMaskedCreditCard_ENROLLED WalletMaskedCreditCard_VirtualCardEnrollmentState = 2 WalletMaskedCreditCard_UNENROLLED_AND_NOT_ELIGIBLE WalletMaskedCreditCard_VirtualCardEnrollmentState = 3 @@ -374,6 +378,65 @@ func (WalletMaskedCreditCard_VirtualCardEnrollmentState) EnumDescriptor() ([]byt return file_autofill_specifics_proto_rawDescGZIP(), []int{4, 2} } +type WalletMaskedCreditCard_VirtualCardEnrollmentType int32 + +const ( + WalletMaskedCreditCard_TYPE_UNSPECIFIED WalletMaskedCreditCard_VirtualCardEnrollmentType = 0 + WalletMaskedCreditCard_ISSUER WalletMaskedCreditCard_VirtualCardEnrollmentType = 1 + WalletMaskedCreditCard_NETWORK WalletMaskedCreditCard_VirtualCardEnrollmentType = 2 +) + +// Enum value maps for WalletMaskedCreditCard_VirtualCardEnrollmentType. +var ( + WalletMaskedCreditCard_VirtualCardEnrollmentType_name = map[int32]string{ + 0: "TYPE_UNSPECIFIED", + 1: "ISSUER", + 2: "NETWORK", + } + WalletMaskedCreditCard_VirtualCardEnrollmentType_value = map[string]int32{ + "TYPE_UNSPECIFIED": 0, + "ISSUER": 1, + "NETWORK": 2, + } +) + +func (x WalletMaskedCreditCard_VirtualCardEnrollmentType) Enum() *WalletMaskedCreditCard_VirtualCardEnrollmentType { + p := new(WalletMaskedCreditCard_VirtualCardEnrollmentType) + *p = x + return p +} + +func (x WalletMaskedCreditCard_VirtualCardEnrollmentType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (WalletMaskedCreditCard_VirtualCardEnrollmentType) Descriptor() protoreflect.EnumDescriptor { + return file_autofill_specifics_proto_enumTypes[5].Descriptor() +} + +func (WalletMaskedCreditCard_VirtualCardEnrollmentType) Type() protoreflect.EnumType { + return &file_autofill_specifics_proto_enumTypes[5] +} + +func (x WalletMaskedCreditCard_VirtualCardEnrollmentType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Do not use. +func (x *WalletMaskedCreditCard_VirtualCardEnrollmentType) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err + } + *x = WalletMaskedCreditCard_VirtualCardEnrollmentType(num) + return nil +} + +// Deprecated: Use WalletMaskedCreditCard_VirtualCardEnrollmentType.Descriptor instead. +func (WalletMaskedCreditCard_VirtualCardEnrollmentType) EnumDescriptor() ([]byte, []int) { + return file_autofill_specifics_proto_rawDescGZIP(), []int{4, 3} +} + type AutofillWalletSpecifics_WalletInfoType int32 const ( @@ -413,11 +476,11 @@ func (x AutofillWalletSpecifics_WalletInfoType) String() string { } func (AutofillWalletSpecifics_WalletInfoType) Descriptor() protoreflect.EnumDescriptor { - return file_autofill_specifics_proto_enumTypes[5].Descriptor() + return file_autofill_specifics_proto_enumTypes[6].Descriptor() } func (AutofillWalletSpecifics_WalletInfoType) Type() protoreflect.EnumType { - return &file_autofill_specifics_proto_enumTypes[5] + return &file_autofill_specifics_proto_enumTypes[6] } func (x AutofillWalletSpecifics_WalletInfoType) Number() protoreflect.EnumNumber { @@ -472,11 +535,11 @@ func (x WalletMetadataSpecifics_Type) String() string { } func (WalletMetadataSpecifics_Type) Descriptor() protoreflect.EnumDescriptor { - return file_autofill_specifics_proto_enumTypes[6].Descriptor() + return file_autofill_specifics_proto_enumTypes[7].Descriptor() } func (WalletMetadataSpecifics_Type) Type() protoreflect.EnumType { - return &file_autofill_specifics_proto_enumTypes[6] + return &file_autofill_specifics_proto_enumTypes[7] } func (x WalletMetadataSpecifics_Type) Number() protoreflect.EnumNumber { @@ -504,9 +567,16 @@ type AutofillProfileSpecifics struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Guid *string `protobuf:"bytes,15,opt,name=guid" json:"guid,omitempty"` - Origin *string `protobuf:"bytes,16,opt,name=origin" json:"origin,omitempty"` - UseCount *int64 `protobuf:"varint,22,opt,name=use_count,json=useCount" json:"use_count,omitempty"` + Guid *string `protobuf:"bytes,15,opt,name=guid" json:"guid,omitempty"` + // Starting from M115, Autofill ignores the origin and doesn't distinguish + // between verified (meaning `deprecated_origin == kSettingsOrigin`) and + // unverified profiles anymore. However, clients prior to this milestone only + // accept updates to verified profiles through Sync if the remote profile is + // verified as well. For this reason, M115 clients and above always set the + // origin to kSettingsOrigin. + // TODO(crbug.com/1441905): Remove in a few milestones. + DeprecatedOrigin *string `protobuf:"bytes,16,opt,name=deprecated_origin,json=deprecatedOrigin" json:"deprecated_origin,omitempty"` + UseCount *int64 `protobuf:"varint,22,opt,name=use_count,json=useCount" json:"use_count,omitempty"` // The time_t value of the last time this profile was used. This // value makes sense wrt base::Time::To/FromTimeT, which measures // from the Windows epoch. @@ -554,12 +624,15 @@ type AutofillProfileSpecifics struct { // updated with a M86+ client. // TODO(crbug/1111740): Remove usages of address_home_line1/2 and mark field // as deprecated. - AddressHomeLine1 *string `protobuf:"bytes,7,opt,name=address_home_line1,json=addressHomeLine1" json:"address_home_line1,omitempty"` - AddressHomeLine2 *string `protobuf:"bytes,8,opt,name=address_home_line2,json=addressHomeLine2" json:"address_home_line2,omitempty"` - AddressHomeCity *string `protobuf:"bytes,9,opt,name=address_home_city,json=addressHomeCity" json:"address_home_city,omitempty"` - AddressHomeState *string `protobuf:"bytes,10,opt,name=address_home_state,json=addressHomeState" json:"address_home_state,omitempty"` - AddressHomeZip *string `protobuf:"bytes,11,opt,name=address_home_zip,json=addressHomeZip" json:"address_home_zip,omitempty"` - AddressHomeCountry *string `protobuf:"bytes,12,opt,name=address_home_country,json=addressHomeCountry" json:"address_home_country,omitempty"` + AddressHomeLine1 *string `protobuf:"bytes,7,opt,name=address_home_line1,json=addressHomeLine1" json:"address_home_line1,omitempty"` + AddressHomeLine2 *string `protobuf:"bytes,8,opt,name=address_home_line2,json=addressHomeLine2" json:"address_home_line2,omitempty"` + AddressHomeCity *string `protobuf:"bytes,9,opt,name=address_home_city,json=addressHomeCity" json:"address_home_city,omitempty"` + AddressHomeState *string `protobuf:"bytes,10,opt,name=address_home_state,json=addressHomeState" json:"address_home_state,omitempty"` + AddressHomeZip *string `protobuf:"bytes,11,opt,name=address_home_zip,json=addressHomeZip" json:"address_home_zip,omitempty"` + AddressHomeCountry *string `protobuf:"bytes,12,opt,name=address_home_country,json=addressHomeCountry" json:"address_home_country,omitempty"` + AddressHomeLandmark *string `protobuf:"bytes,67,opt,name=address_home_landmark,json=addressHomeLandmark" json:"address_home_landmark,omitempty"` + AddressHomeBetweenStreets *string `protobuf:"bytes,69,opt,name=address_home_between_streets,json=addressHomeBetweenStreets" json:"address_home_between_streets,omitempty"` + AddressHomeAdminLevel_2 *string `protobuf:"bytes,71,opt,name=address_home_admin_level_2,json=addressHomeAdminLevel2" json:"address_home_admin_level_2,omitempty"` // Additional address fields for i18n. AddressHomeStreetAddress *string `protobuf:"bytes,17,opt,name=address_home_street_address,json=addressHomeStreetAddress" json:"address_home_street_address,omitempty"` AddressHomeSortingCode *string `protobuf:"bytes,18,opt,name=address_home_sorting_code,json=addressHomeSortingCode" json:"address_home_sorting_code,omitempty"` @@ -577,6 +650,9 @@ type AutofillProfileSpecifics struct { AddressHomeStateStatus *AutofillProfileSpecifics_VerificationStatus `protobuf:"varint,44,opt,name=address_home_state_status,json=addressHomeStateStatus,enum=sync_pb.AutofillProfileSpecifics_VerificationStatus" json:"address_home_state_status,omitempty"` AddressHomeZipStatus *AutofillProfileSpecifics_VerificationStatus `protobuf:"varint,45,opt,name=address_home_zip_status,json=addressHomeZipStatus,enum=sync_pb.AutofillProfileSpecifics_VerificationStatus" json:"address_home_zip_status,omitempty"` AddressHomeCountryStatus *AutofillProfileSpecifics_VerificationStatus `protobuf:"varint,46,opt,name=address_home_country_status,json=addressHomeCountryStatus,enum=sync_pb.AutofillProfileSpecifics_VerificationStatus" json:"address_home_country_status,omitempty"` + AddressHomeLandmarkStatus *AutofillProfileSpecifics_VerificationStatus `protobuf:"varint,68,opt,name=address_home_landmark_status,json=addressHomeLandmarkStatus,enum=sync_pb.AutofillProfileSpecifics_VerificationStatus" json:"address_home_landmark_status,omitempty"` + AddressHomeBetweenStreetsStatus *AutofillProfileSpecifics_VerificationStatus `protobuf:"varint,70,opt,name=address_home_between_streets_status,json=addressHomeBetweenStreetsStatus,enum=sync_pb.AutofillProfileSpecifics_VerificationStatus" json:"address_home_between_streets_status,omitempty"` + AddressHomeAdminLevel_2Status *AutofillProfileSpecifics_VerificationStatus `protobuf:"varint,72,opt,name=address_home_admin_level_2_status,json=addressHomeAdminLevel2Status,enum=sync_pb.AutofillProfileSpecifics_VerificationStatus" json:"address_home_admin_level_2_status,omitempty"` AddressHomeStreetAddressStatus *AutofillProfileSpecifics_VerificationStatus `protobuf:"varint,47,opt,name=address_home_street_address_status,json=addressHomeStreetAddressStatus,enum=sync_pb.AutofillProfileSpecifics_VerificationStatus" json:"address_home_street_address_status,omitempty"` AddressHomeSortingCodeStatus *AutofillProfileSpecifics_VerificationStatus `protobuf:"varint,48,opt,name=address_home_sorting_code_status,json=addressHomeSortingCodeStatus,enum=sync_pb.AutofillProfileSpecifics_VerificationStatus" json:"address_home_sorting_code_status,omitempty"` AddressHomeDependentLocalityStatus *AutofillProfileSpecifics_VerificationStatus `protobuf:"varint,49,opt,name=address_home_dependent_locality_status,json=addressHomeDependentLocalityStatus,enum=sync_pb.AutofillProfileSpecifics_VerificationStatus" json:"address_home_dependent_locality_status,omitempty"` @@ -590,28 +666,23 @@ type AutofillProfileSpecifics struct { AddressHomeFloorStatus *AutofillProfileSpecifics_VerificationStatus `protobuf:"varint,59,opt,name=address_home_floor_status,json=addressHomeFloorStatus,enum=sync_pb.AutofillProfileSpecifics_VerificationStatus" json:"address_home_floor_status,omitempty"` // Phone. PhoneHomeWholeNumber []string `protobuf:"bytes,13,rep,name=phone_home_whole_number,json=phoneHomeWholeNumber" json:"phone_home_whole_number,omitempty"` - // The state indicates if the profile qualifies to get merged with a - // profile observed in a form submission. If true, the profile can still be - // updated silently, but it should not be considered for merges that need to - // involve user interactions. - DisallowSettingsVisibleUpdates *bool `protobuf:"varint,63,opt,name=disallow_settings_visible_updates,json=disallowSettingsVisibleUpdates" json:"disallow_settings_visible_updates,omitempty"` // Birthdate fields. BirthdateDay *int32 `protobuf:"varint,64,opt,name=birthdate_day,json=birthdateDay" json:"birthdate_day,omitempty"` BirthdateMonth *int32 `protobuf:"varint,65,opt,name=birthdate_month,json=birthdateMonth" json:"birthdate_month,omitempty"` BirthdateYear *int32 `protobuf:"varint,66,opt,name=birthdate_year,json=birthdateYear" json:"birthdate_year,omitempty"` // 4 digits. // Deprecated. // - // Deprecated: Do not use. + // Deprecated: Marked as deprecated in autofill_specifics.proto. DeprecatedLabel *string `protobuf:"bytes,1,opt,name=deprecated_label,json=deprecatedLabel" json:"deprecated_label,omitempty"` - // Deprecated: Do not use. + // Deprecated: Marked as deprecated in autofill_specifics.proto. PhoneFaxWholeNumber *string `protobuf:"bytes,14,opt,name=phone_fax_whole_number,json=phoneFaxWholeNumber" json:"phone_fax_whole_number,omitempty"` // The following validity-related fields have only been used in combination // with an experimental features that are disabled for all clients and have // been removed in M100. // - // Deprecated: Do not use. + // Deprecated: Marked as deprecated in autofill_specifics.proto. ValidityStateBitfield *int64 `protobuf:"varint,24,opt,name=validity_state_bitfield,json=validityStateBitfield" json:"validity_state_bitfield,omitempty"` - // Deprecated: Do not use. + // Deprecated: Marked as deprecated in autofill_specifics.proto. IsClientValidityStatesUpdated *bool `protobuf:"varint,25,opt,name=is_client_validity_states_updated,json=isClientValidityStatesUpdated" json:"is_client_validity_states_updated,omitempty"` } @@ -654,9 +725,9 @@ func (x *AutofillProfileSpecifics) GetGuid() string { return "" } -func (x *AutofillProfileSpecifics) GetOrigin() string { - if x != nil && x.Origin != nil { - return *x.Origin +func (x *AutofillProfileSpecifics) GetDeprecatedOrigin() string { + if x != nil && x.DeprecatedOrigin != nil { + return *x.DeprecatedOrigin } return "" } @@ -864,6 +935,27 @@ func (x *AutofillProfileSpecifics) GetAddressHomeCountry() string { return "" } +func (x *AutofillProfileSpecifics) GetAddressHomeLandmark() string { + if x != nil && x.AddressHomeLandmark != nil { + return *x.AddressHomeLandmark + } + return "" +} + +func (x *AutofillProfileSpecifics) GetAddressHomeBetweenStreets() string { + if x != nil && x.AddressHomeBetweenStreets != nil { + return *x.AddressHomeBetweenStreets + } + return "" +} + +func (x *AutofillProfileSpecifics) GetAddressHomeAdminLevel_2() string { + if x != nil && x.AddressHomeAdminLevel_2 != nil { + return *x.AddressHomeAdminLevel_2 + } + return "" +} + func (x *AutofillProfileSpecifics) GetAddressHomeStreetAddress() string { if x != nil && x.AddressHomeStreetAddress != nil { return *x.AddressHomeStreetAddress @@ -969,6 +1061,27 @@ func (x *AutofillProfileSpecifics) GetAddressHomeCountryStatus() AutofillProfile return AutofillProfileSpecifics_VERIFICATION_STATUS_UNSPECIFIED } +func (x *AutofillProfileSpecifics) GetAddressHomeLandmarkStatus() AutofillProfileSpecifics_VerificationStatus { + if x != nil && x.AddressHomeLandmarkStatus != nil { + return *x.AddressHomeLandmarkStatus + } + return AutofillProfileSpecifics_VERIFICATION_STATUS_UNSPECIFIED +} + +func (x *AutofillProfileSpecifics) GetAddressHomeBetweenStreetsStatus() AutofillProfileSpecifics_VerificationStatus { + if x != nil && x.AddressHomeBetweenStreetsStatus != nil { + return *x.AddressHomeBetweenStreetsStatus + } + return AutofillProfileSpecifics_VERIFICATION_STATUS_UNSPECIFIED +} + +func (x *AutofillProfileSpecifics) GetAddressHomeAdminLevel_2Status() AutofillProfileSpecifics_VerificationStatus { + if x != nil && x.AddressHomeAdminLevel_2Status != nil { + return *x.AddressHomeAdminLevel_2Status + } + return AutofillProfileSpecifics_VERIFICATION_STATUS_UNSPECIFIED +} + func (x *AutofillProfileSpecifics) GetAddressHomeStreetAddressStatus() AutofillProfileSpecifics_VerificationStatus { if x != nil && x.AddressHomeStreetAddressStatus != nil { return *x.AddressHomeStreetAddressStatus @@ -1053,13 +1166,6 @@ func (x *AutofillProfileSpecifics) GetPhoneHomeWholeNumber() []string { return nil } -func (x *AutofillProfileSpecifics) GetDisallowSettingsVisibleUpdates() bool { - if x != nil && x.DisallowSettingsVisibleUpdates != nil { - return *x.DisallowSettingsVisibleUpdates - } - return false -} - func (x *AutofillProfileSpecifics) GetBirthdateDay() int32 { if x != nil && x.BirthdateDay != nil { return *x.BirthdateDay @@ -1081,7 +1187,7 @@ func (x *AutofillProfileSpecifics) GetBirthdateYear() int32 { return 0 } -// Deprecated: Do not use. +// Deprecated: Marked as deprecated in autofill_specifics.proto. func (x *AutofillProfileSpecifics) GetDeprecatedLabel() string { if x != nil && x.DeprecatedLabel != nil { return *x.DeprecatedLabel @@ -1089,7 +1195,7 @@ func (x *AutofillProfileSpecifics) GetDeprecatedLabel() string { return "" } -// Deprecated: Do not use. +// Deprecated: Marked as deprecated in autofill_specifics.proto. func (x *AutofillProfileSpecifics) GetPhoneFaxWholeNumber() string { if x != nil && x.PhoneFaxWholeNumber != nil { return *x.PhoneFaxWholeNumber @@ -1097,7 +1203,7 @@ func (x *AutofillProfileSpecifics) GetPhoneFaxWholeNumber() string { return "" } -// Deprecated: Do not use. +// Deprecated: Marked as deprecated in autofill_specifics.proto. func (x *AutofillProfileSpecifics) GetValidityStateBitfield() int64 { if x != nil && x.ValidityStateBitfield != nil { return *x.ValidityStateBitfield @@ -1105,7 +1211,7 @@ func (x *AutofillProfileSpecifics) GetValidityStateBitfield() int64 { return 0 } -// Deprecated: Do not use. +// Deprecated: Marked as deprecated in autofill_specifics.proto. func (x *AutofillProfileSpecifics) GetIsClientValidityStatesUpdated() bool { if x != nil && x.IsClientValidityStatesUpdated != nil { return *x.IsClientValidityStatesUpdated @@ -1283,6 +1389,10 @@ type CardIssuer struct { unknownFields protoimpl.UnknownFields Issuer *CardIssuer_Issuer `protobuf:"varint,1,opt,name=issuer,enum=sync_pb.CardIssuer_Issuer" json:"issuer,omitempty"` + // Uniquely identifies the issuer of the card. This field is required when + // Issuer is EXTERNAL_ISSUER. + // Example: capitalone, amex. + IssuerId *string `protobuf:"bytes,2,opt,name=issuer_id,json=issuerId" json:"issuer_id,omitempty"` } func (x *CardIssuer) Reset() { @@ -1324,6 +1434,13 @@ func (x *CardIssuer) GetIssuer() CardIssuer_Issuer { return CardIssuer_ISSUER_UNKNOWN } +func (x *CardIssuer) GetIssuerId() string { + if x != nil && x.IssuerId != nil { + return *x.IssuerId + } + return "" +} + type WalletMaskedCreditCard struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1360,10 +1477,13 @@ type WalletMaskedCreditCard struct { InstrumentId *int64 `protobuf:"varint,15,opt,name=instrument_id,json=instrumentId" json:"instrument_id,omitempty"` // The state of virtual card enrollment. VirtualCardEnrollmentState *WalletMaskedCreditCard_VirtualCardEnrollmentState `protobuf:"varint,16,opt,name=virtual_card_enrollment_state,json=virtualCardEnrollmentState,enum=sync_pb.WalletMaskedCreditCard_VirtualCardEnrollmentState" json:"virtual_card_enrollment_state,omitempty"` - // The URL for the client to fetche the card art image. + // The URL for the client to fetch the card art image. CardArtUrl *string `protobuf:"bytes,17,opt,name=card_art_url,json=cardArtUrl" json:"card_art_url,omitempty"` // The product description for the card. Used to be shown in the UI. ProductDescription *string `protobuf:"bytes,18,opt,name=product_description,json=productDescription" json:"product_description,omitempty"` + // The type of virtual card enrollment. TYPE_UNSPECIFIED indicates that the + // card is unenrolled. + VirtualCardEnrollmentType *WalletMaskedCreditCard_VirtualCardEnrollmentType `protobuf:"varint,19,opt,name=virtual_card_enrollment_type,json=virtualCardEnrollmentType,enum=sync_pb.WalletMaskedCreditCard_VirtualCardEnrollmentType" json:"virtual_card_enrollment_type,omitempty"` } func (x *WalletMaskedCreditCard) Reset() { @@ -1510,6 +1630,13 @@ func (x *WalletMaskedCreditCard) GetProductDescription() string { return "" } +func (x *WalletMaskedCreditCard) GetVirtualCardEnrollmentType() WalletMaskedCreditCard_VirtualCardEnrollmentType { + if x != nil && x.VirtualCardEnrollmentType != nil { + return *x.VirtualCardEnrollmentType + } + return WalletMaskedCreditCard_TYPE_UNSPECIFIED +} + // Different than an AutofillProfile because this represents some known address // on the server that is pulled down rather than synced between Chromes. type WalletPostalAddress struct { @@ -2017,519 +2144,572 @@ var File_autofill_specifics_proto protoreflect.FileDescriptor var file_autofill_specifics_proto_rawDesc = []byte{ 0x0a, 0x18, 0x61, 0x75, 0x74, 0x6f, 0x66, 0x69, 0x6c, 0x6c, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x07, 0x73, 0x79, 0x6e, 0x63, - 0x5f, 0x70, 0x62, 0x22, 0xb3, 0x27, 0x0a, 0x18, 0x41, 0x75, 0x74, 0x6f, 0x66, 0x69, 0x6c, 0x6c, + 0x5f, 0x70, 0x62, 0x22, 0xd2, 0x2b, 0x0a, 0x18, 0x41, 0x75, 0x74, 0x6f, 0x66, 0x69, 0x6c, 0x6c, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x67, 0x75, 0x69, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x67, 0x75, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x18, 0x10, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x12, 0x1b, 0x0a, 0x09, - 0x75, 0x73, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x16, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x08, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x75, 0x73, 0x65, - 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x17, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x75, 0x73, 0x65, - 0x44, 0x61, 0x74, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, - 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x3e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x72, 0x6f, - 0x66, 0x69, 0x6c, 0x65, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x25, 0x0a, 0x0e, 0x6e, 0x61, 0x6d, - 0x65, 0x5f, 0x68, 0x6f, 0x6e, 0x6f, 0x72, 0x69, 0x66, 0x69, 0x63, 0x18, 0x1a, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x0d, 0x6e, 0x61, 0x6d, 0x65, 0x48, 0x6f, 0x6e, 0x6f, 0x72, 0x69, 0x66, 0x69, 0x63, - 0x12, 0x1d, 0x0a, 0x0a, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x66, 0x69, 0x72, 0x73, 0x74, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x46, 0x69, 0x72, 0x73, 0x74, 0x12, - 0x1f, 0x0a, 0x0b, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x6e, 0x61, 0x6d, 0x65, 0x4d, 0x69, 0x64, 0x64, 0x6c, 0x65, - 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x18, 0x04, 0x20, - 0x03, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x61, 0x6d, 0x65, 0x4c, 0x61, 0x73, 0x74, 0x12, 0x26, 0x0a, - 0x0f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x69, 0x72, 0x73, 0x74, - 0x18, 0x1b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x61, 0x6d, 0x65, 0x4c, 0x61, 0x73, 0x74, - 0x46, 0x69, 0x72, 0x73, 0x74, 0x12, 0x32, 0x0a, 0x15, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x6c, 0x61, - 0x73, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x1c, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x13, 0x6e, 0x61, 0x6d, 0x65, 0x4c, 0x61, 0x73, 0x74, 0x43, 0x6f, - 0x6e, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x10, 0x6e, 0x61, 0x6d, - 0x65, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x18, 0x1d, 0x20, - 0x03, 0x28, 0x09, 0x52, 0x0e, 0x6e, 0x61, 0x6d, 0x65, 0x4c, 0x61, 0x73, 0x74, 0x53, 0x65, 0x63, - 0x6f, 0x6e, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x66, 0x75, 0x6c, 0x6c, - 0x18, 0x15, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x61, 0x6d, 0x65, 0x46, 0x75, 0x6c, 0x6c, - 0x12, 0x37, 0x0a, 0x18, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x66, 0x75, 0x6c, 0x6c, 0x5f, 0x77, 0x69, - 0x74, 0x68, 0x5f, 0x68, 0x6f, 0x6e, 0x6f, 0x72, 0x69, 0x66, 0x69, 0x63, 0x18, 0x3c, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x15, 0x6e, 0x61, 0x6d, 0x65, 0x46, 0x75, 0x6c, 0x6c, 0x57, 0x69, 0x74, 0x68, - 0x48, 0x6f, 0x6e, 0x6f, 0x72, 0x69, 0x66, 0x69, 0x63, 0x12, 0x68, 0x0a, 0x15, 0x6e, 0x61, 0x6d, - 0x65, 0x5f, 0x68, 0x6f, 0x6e, 0x6f, 0x72, 0x69, 0x66, 0x69, 0x63, 0x5f, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x18, 0x1e, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, + 0x67, 0x75, 0x69, 0x64, 0x12, 0x2b, 0x0a, 0x11, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, + 0x65, 0x64, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x10, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x72, 0x69, 0x67, 0x69, + 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x16, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x19, + 0x0a, 0x08, 0x75, 0x73, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x17, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x07, 0x75, 0x73, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x72, 0x6f, + 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x3e, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x25, + 0x0a, 0x0e, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x68, 0x6f, 0x6e, 0x6f, 0x72, 0x69, 0x66, 0x69, 0x63, + 0x18, 0x1a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x61, 0x6d, 0x65, 0x48, 0x6f, 0x6e, 0x6f, + 0x72, 0x69, 0x66, 0x69, 0x63, 0x12, 0x1d, 0x0a, 0x0a, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x66, 0x69, + 0x72, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x46, + 0x69, 0x72, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x6d, 0x69, 0x64, + 0x64, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x6e, 0x61, 0x6d, 0x65, 0x4d, + 0x69, 0x64, 0x64, 0x6c, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x6c, 0x61, + 0x73, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x61, 0x6d, 0x65, 0x4c, 0x61, + 0x73, 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, + 0x66, 0x69, 0x72, 0x73, 0x74, 0x18, 0x1b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x61, 0x6d, + 0x65, 0x4c, 0x61, 0x73, 0x74, 0x46, 0x69, 0x72, 0x73, 0x74, 0x12, 0x32, 0x0a, 0x15, 0x6e, 0x61, + 0x6d, 0x65, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x6a, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x1c, 0x20, 0x03, 0x28, 0x09, 0x52, 0x13, 0x6e, 0x61, 0x6d, 0x65, 0x4c, + 0x61, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, + 0x0a, 0x10, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x6f, + 0x6e, 0x64, 0x18, 0x1d, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x6e, 0x61, 0x6d, 0x65, 0x4c, 0x61, + 0x73, 0x74, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, + 0x5f, 0x66, 0x75, 0x6c, 0x6c, 0x18, 0x15, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x61, 0x6d, + 0x65, 0x46, 0x75, 0x6c, 0x6c, 0x12, 0x37, 0x0a, 0x18, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x66, 0x75, + 0x6c, 0x6c, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x68, 0x6f, 0x6e, 0x6f, 0x72, 0x69, 0x66, 0x69, + 0x63, 0x18, 0x3c, 0x20, 0x03, 0x28, 0x09, 0x52, 0x15, 0x6e, 0x61, 0x6d, 0x65, 0x46, 0x75, 0x6c, + 0x6c, 0x57, 0x69, 0x74, 0x68, 0x48, 0x6f, 0x6e, 0x6f, 0x72, 0x69, 0x66, 0x69, 0x63, 0x12, 0x68, + 0x0a, 0x15, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x68, 0x6f, 0x6e, 0x6f, 0x72, 0x69, 0x66, 0x69, 0x63, + 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x1e, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x34, 0x2e, + 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x41, 0x75, 0x74, 0x6f, 0x66, 0x69, 0x6c, 0x6c, + 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, + 0x2e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x52, 0x13, 0x6e, 0x61, 0x6d, 0x65, 0x48, 0x6f, 0x6e, 0x6f, 0x72, 0x69, 0x66, + 0x69, 0x63, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x60, 0x0a, 0x11, 0x6e, 0x61, 0x6d, 0x65, + 0x5f, 0x66, 0x69, 0x72, 0x73, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x1f, 0x20, + 0x03, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x41, 0x75, + 0x74, 0x6f, 0x66, 0x69, 0x6c, 0x6c, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0f, 0x6e, 0x61, 0x6d, 0x65, 0x46, + 0x69, 0x72, 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x62, 0x0a, 0x12, 0x6e, 0x61, + 0x6d, 0x65, 0x5f, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x18, 0x20, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, + 0x2e, 0x41, 0x75, 0x74, 0x6f, 0x66, 0x69, 0x6c, 0x6c, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, + 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x10, 0x6e, 0x61, + 0x6d, 0x65, 0x4d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x5e, + 0x0a, 0x10, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x18, 0x21, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x41, 0x75, 0x74, 0x6f, 0x66, 0x69, 0x6c, 0x6c, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x56, 0x65, 0x72, 0x69, - 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x13, - 0x6e, 0x61, 0x6d, 0x65, 0x48, 0x6f, 0x6e, 0x6f, 0x72, 0x69, 0x66, 0x69, 0x63, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x12, 0x60, 0x0a, 0x11, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x66, 0x69, 0x72, 0x73, - 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x1f, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x34, + 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0e, + 0x6e, 0x61, 0x6d, 0x65, 0x4c, 0x61, 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x69, + 0x0a, 0x16, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x69, 0x72, 0x73, + 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x22, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x41, 0x75, 0x74, 0x6f, 0x66, 0x69, 0x6c, 0x6c, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x52, 0x0f, 0x6e, 0x61, 0x6d, 0x65, 0x46, 0x69, 0x72, 0x73, 0x74, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x62, 0x0a, 0x12, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x6d, 0x69, - 0x64, 0x64, 0x6c, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x20, 0x20, 0x03, 0x28, + 0x61, 0x74, 0x75, 0x73, 0x52, 0x13, 0x6e, 0x61, 0x6d, 0x65, 0x4c, 0x61, 0x73, 0x74, 0x46, 0x69, + 0x72, 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x75, 0x0a, 0x1c, 0x6e, 0x61, 0x6d, + 0x65, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x23, 0x20, 0x03, 0x28, 0x0e, 0x32, + 0x34, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x41, 0x75, 0x74, 0x6f, 0x66, 0x69, + 0x6c, 0x6c, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x63, 0x73, 0x2e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x19, 0x6e, 0x61, 0x6d, 0x65, 0x4c, 0x61, 0x73, 0x74, 0x43, + 0x6f, 0x6e, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x12, 0x6b, 0x0a, 0x17, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x73, 0x65, + 0x63, 0x6f, 0x6e, 0x64, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x24, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x41, 0x75, 0x74, 0x6f, 0x66, 0x69, 0x6c, 0x6c, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x10, 0x6e, 0x61, 0x6d, 0x65, 0x4d, 0x69, 0x64, - 0x64, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x5e, 0x0a, 0x10, 0x6e, 0x61, 0x6d, - 0x65, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x21, 0x20, - 0x03, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x41, 0x75, - 0x74, 0x6f, 0x66, 0x69, 0x6c, 0x6c, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0e, 0x6e, 0x61, 0x6d, 0x65, 0x4c, - 0x61, 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x69, 0x0a, 0x16, 0x6e, 0x61, 0x6d, - 0x65, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x69, 0x72, 0x73, 0x74, 0x5f, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x18, 0x22, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x73, 0x79, 0x6e, 0x63, - 0x5f, 0x70, 0x62, 0x2e, 0x41, 0x75, 0x74, 0x6f, 0x66, 0x69, 0x6c, 0x6c, 0x50, 0x72, 0x6f, 0x66, - 0x69, 0x6c, 0x65, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x56, 0x65, 0x72, - 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, - 0x13, 0x6e, 0x61, 0x6d, 0x65, 0x4c, 0x61, 0x73, 0x74, 0x46, 0x69, 0x72, 0x73, 0x74, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x12, 0x75, 0x0a, 0x1c, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x6c, 0x61, 0x73, - 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x18, 0x23, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x73, 0x79, 0x6e, + 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x14, 0x6e, 0x61, 0x6d, 0x65, 0x4c, 0x61, 0x73, + 0x74, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x5e, 0x0a, + 0x10, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x66, 0x75, 0x6c, 0x6c, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x18, 0x25, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, + 0x62, 0x2e, 0x41, 0x75, 0x74, 0x6f, 0x66, 0x69, 0x6c, 0x6c, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, + 0x65, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x56, 0x65, 0x72, 0x69, 0x66, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0e, 0x6e, + 0x61, 0x6d, 0x65, 0x46, 0x75, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x7a, 0x0a, + 0x1f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x66, 0x75, 0x6c, 0x6c, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, + 0x68, 0x6f, 0x6e, 0x6f, 0x72, 0x69, 0x66, 0x69, 0x63, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x18, 0x3d, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, + 0x2e, 0x41, 0x75, 0x74, 0x6f, 0x66, 0x69, 0x6c, 0x6c, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, + 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x1b, 0x6e, 0x61, + 0x6d, 0x65, 0x46, 0x75, 0x6c, 0x6c, 0x57, 0x69, 0x74, 0x68, 0x48, 0x6f, 0x6e, 0x6f, 0x72, 0x69, + 0x66, 0x69, 0x63, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x6d, 0x61, + 0x69, 0x6c, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x0c, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x21, + 0x0a, 0x0c, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x68, 0x6f, 0x6d, + 0x65, 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x31, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, 0x6f, 0x6d, 0x65, 0x4c, 0x69, 0x6e, 0x65, 0x31, 0x12, + 0x2c, 0x0a, 0x12, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x68, 0x6f, 0x6d, 0x65, 0x5f, + 0x6c, 0x69, 0x6e, 0x65, 0x32, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x48, 0x6f, 0x6d, 0x65, 0x4c, 0x69, 0x6e, 0x65, 0x32, 0x12, 0x2a, 0x0a, + 0x11, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x68, 0x6f, 0x6d, 0x65, 0x5f, 0x63, 0x69, + 0x74, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x48, 0x6f, 0x6d, 0x65, 0x43, 0x69, 0x74, 0x79, 0x12, 0x2c, 0x0a, 0x12, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x5f, 0x68, 0x6f, 0x6d, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, 0x6f, + 0x6d, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x5f, 0x68, 0x6f, 0x6d, 0x65, 0x5f, 0x7a, 0x69, 0x70, 0x18, 0x0b, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0e, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, 0x6f, 0x6d, 0x65, 0x5a, 0x69, + 0x70, 0x12, 0x30, 0x0a, 0x14, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x68, 0x6f, 0x6d, + 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x12, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, 0x6f, 0x6d, 0x65, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x72, 0x79, 0x12, 0x32, 0x0a, 0x15, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x68, + 0x6f, 0x6d, 0x65, 0x5f, 0x6c, 0x61, 0x6e, 0x64, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x43, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x13, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, 0x6f, 0x6d, 0x65, 0x4c, + 0x61, 0x6e, 0x64, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x3f, 0x0a, 0x1c, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x5f, 0x68, 0x6f, 0x6d, 0x65, 0x5f, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x5f, + 0x73, 0x74, 0x72, 0x65, 0x65, 0x74, 0x73, 0x18, 0x45, 0x20, 0x01, 0x28, 0x09, 0x52, 0x19, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, 0x6f, 0x6d, 0x65, 0x42, 0x65, 0x74, 0x77, 0x65, 0x65, + 0x6e, 0x53, 0x74, 0x72, 0x65, 0x65, 0x74, 0x73, 0x12, 0x3a, 0x0a, 0x1a, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x5f, 0x68, 0x6f, 0x6d, 0x65, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x6c, + 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x32, 0x18, 0x47, 0x20, 0x01, 0x28, 0x09, 0x52, 0x16, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, 0x6f, 0x6d, 0x65, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x4c, 0x65, + 0x76, 0x65, 0x6c, 0x32, 0x12, 0x3d, 0x0a, 0x1b, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, + 0x68, 0x6f, 0x6d, 0x65, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x65, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x18, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x48, 0x6f, 0x6d, 0x65, 0x53, 0x74, 0x72, 0x65, 0x65, 0x74, 0x41, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x12, 0x39, 0x0a, 0x19, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x68, + 0x6f, 0x6d, 0x65, 0x5f, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x64, 0x65, + 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x16, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, + 0x6f, 0x6d, 0x65, 0x53, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x45, + 0x0a, 0x1f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x68, 0x6f, 0x6d, 0x65, 0x5f, 0x64, + 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x69, 0x74, + 0x79, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1c, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x48, 0x6f, 0x6d, 0x65, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x63, + 0x61, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x3b, 0x0a, 0x1a, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x5f, 0x68, 0x6f, 0x6d, 0x65, 0x5f, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x5f, 0x63, + 0x6f, 0x64, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x17, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x48, 0x6f, 0x6d, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x43, 0x6f, + 0x64, 0x65, 0x12, 0x43, 0x0a, 0x1e, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x68, 0x6f, + 0x6d, 0x65, 0x5f, 0x74, 0x68, 0x6f, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x66, 0x61, 0x72, 0x65, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x26, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1b, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x48, 0x6f, 0x6d, 0x65, 0x54, 0x68, 0x6f, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x66, + 0x61, 0x72, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x47, 0x0a, 0x20, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x5f, 0x68, 0x6f, 0x6d, 0x65, 0x5f, 0x74, 0x68, 0x6f, 0x72, 0x6f, 0x75, 0x67, 0x68, + 0x66, 0x61, 0x72, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x27, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x1d, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, 0x6f, 0x6d, 0x65, 0x54, 0x68, + 0x6f, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x66, 0x61, 0x72, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x12, 0x56, 0x0a, 0x28, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x68, 0x6f, 0x6d, 0x65, + 0x5f, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x68, 0x6f, 0x72, 0x6f, + 0x75, 0x67, 0x68, 0x66, 0x61, 0x72, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x28, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x24, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, 0x6f, 0x6d, 0x65, 0x44, + 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x54, 0x68, 0x6f, 0x72, 0x6f, 0x75, 0x67, 0x68, + 0x66, 0x61, 0x72, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x39, 0x0a, 0x19, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x5f, 0x68, 0x6f, 0x6d, 0x65, 0x5f, 0x70, 0x72, 0x65, 0x6d, 0x69, 0x73, 0x65, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x29, 0x20, 0x01, 0x28, 0x09, 0x52, 0x16, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x48, 0x6f, 0x6d, 0x65, 0x50, 0x72, 0x65, 0x6d, 0x69, 0x73, 0x65, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x3f, 0x0a, 0x1c, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x68, + 0x6f, 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x70, 0x72, 0x65, 0x6d, 0x69, 0x73, 0x65, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x19, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x48, 0x6f, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x70, 0x72, 0x65, 0x6d, 0x69, 0x73, 0x65, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2f, 0x0a, 0x14, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, + 0x68, 0x6f, 0x6d, 0x65, 0x5f, 0x61, 0x70, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x18, 0x38, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x11, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, 0x6f, 0x6d, 0x65, 0x41, + 0x70, 0x74, 0x4e, 0x75, 0x6d, 0x12, 0x2c, 0x0a, 0x12, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x5f, 0x68, 0x6f, 0x6d, 0x65, 0x5f, 0x66, 0x6c, 0x6f, 0x6f, 0x72, 0x18, 0x39, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x10, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, 0x6f, 0x6d, 0x65, 0x46, 0x6c, + 0x6f, 0x6f, 0x72, 0x12, 0x6d, 0x0a, 0x18, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x68, + 0x6f, 0x6d, 0x65, 0x5f, 0x63, 0x69, 0x74, 0x79, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, + 0x2b, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, + 0x41, 0x75, 0x74, 0x6f, 0x66, 0x69, 0x6c, 0x6c, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x15, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x48, 0x6f, 0x6d, 0x65, 0x43, 0x69, 0x74, 0x79, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x12, 0x6f, 0x0a, 0x19, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x68, 0x6f, + 0x6d, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, + 0x2c, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, + 0x41, 0x75, 0x74, 0x6f, 0x66, 0x69, 0x6c, 0x6c, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x16, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x48, 0x6f, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x12, 0x6b, 0x0a, 0x17, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x68, + 0x6f, 0x6d, 0x65, 0x5f, 0x7a, 0x69, 0x70, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x2d, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x41, + 0x75, 0x74, 0x6f, 0x66, 0x69, 0x6c, 0x6c, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x14, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x48, 0x6f, 0x6d, 0x65, 0x5a, 0x69, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x12, 0x73, 0x0a, 0x1b, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x68, 0x6f, 0x6d, 0x65, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, + 0x2e, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, + 0x41, 0x75, 0x74, 0x6f, 0x66, 0x69, 0x6c, 0x6c, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x18, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x48, 0x6f, 0x6d, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x75, 0x0a, 0x1c, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x5f, 0x68, 0x6f, 0x6d, 0x65, 0x5f, 0x6c, 0x61, 0x6e, 0x64, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x44, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x73, 0x79, + 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x41, 0x75, 0x74, 0x6f, 0x66, 0x69, 0x6c, 0x6c, 0x50, 0x72, + 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x56, + 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x52, 0x19, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, 0x6f, 0x6d, 0x65, 0x4c, 0x61, + 0x6e, 0x64, 0x6d, 0x61, 0x72, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x82, 0x01, 0x0a, + 0x23, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x68, 0x6f, 0x6d, 0x65, 0x5f, 0x62, 0x65, + 0x74, 0x77, 0x65, 0x65, 0x6e, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x65, 0x74, 0x73, 0x5f, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x18, 0x46, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x41, 0x75, 0x74, 0x6f, 0x66, 0x69, 0x6c, 0x6c, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x52, 0x19, 0x6e, 0x61, 0x6d, 0x65, 0x4c, 0x61, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x6a, 0x75, 0x6e, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x6b, 0x0a, 0x17, 0x6e, - 0x61, 0x6d, 0x65, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x5f, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x24, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x73, + 0x52, 0x1f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, 0x6f, 0x6d, 0x65, 0x42, 0x65, 0x74, + 0x77, 0x65, 0x65, 0x6e, 0x53, 0x74, 0x72, 0x65, 0x65, 0x74, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x12, 0x7d, 0x0a, 0x21, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x68, 0x6f, 0x6d, + 0x65, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x32, 0x5f, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x48, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x41, 0x75, 0x74, 0x6f, 0x66, 0x69, 0x6c, 0x6c, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x52, 0x14, 0x6e, 0x61, 0x6d, 0x65, 0x4c, 0x61, 0x73, 0x74, 0x53, 0x65, 0x63, 0x6f, - 0x6e, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x5e, 0x0a, 0x10, 0x6e, 0x61, 0x6d, 0x65, - 0x5f, 0x66, 0x75, 0x6c, 0x6c, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x25, 0x20, 0x03, + 0x75, 0x73, 0x52, 0x1c, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, 0x6f, 0x6d, 0x65, 0x41, + 0x64, 0x6d, 0x69, 0x6e, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x32, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x12, 0x80, 0x01, 0x0a, 0x22, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x68, 0x6f, 0x6d, + 0x65, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x65, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x2f, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e, + 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x41, 0x75, 0x74, 0x6f, 0x66, 0x69, 0x6c, 0x6c, + 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, + 0x2e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x52, 0x1e, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, 0x6f, 0x6d, 0x65, + 0x53, 0x74, 0x72, 0x65, 0x65, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x12, 0x7c, 0x0a, 0x20, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x68, + 0x6f, 0x6d, 0x65, 0x5f, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x64, 0x65, + 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x30, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e, + 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x41, 0x75, 0x74, 0x6f, 0x66, 0x69, 0x6c, 0x6c, + 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, + 0x2e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x52, 0x1c, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, 0x6f, 0x6d, 0x65, + 0x53, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x12, 0x88, 0x01, 0x0a, 0x26, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x68, 0x6f, + 0x6d, 0x65, 0x5f, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x6f, 0x63, + 0x61, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x31, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x41, 0x75, 0x74, 0x6f, 0x66, 0x69, 0x6c, 0x6c, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0e, 0x6e, 0x61, 0x6d, 0x65, 0x46, 0x75, - 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x7a, 0x0a, 0x1f, 0x6e, 0x61, 0x6d, 0x65, - 0x5f, 0x66, 0x75, 0x6c, 0x6c, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x68, 0x6f, 0x6e, 0x6f, 0x72, - 0x69, 0x66, 0x69, 0x63, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x3d, 0x20, 0x03, 0x28, - 0x0e, 0x32, 0x34, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x41, 0x75, 0x74, 0x6f, - 0x66, 0x69, 0x6c, 0x6c, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x63, 0x73, 0x2e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x1b, 0x6e, 0x61, 0x6d, 0x65, 0x46, 0x75, 0x6c, - 0x6c, 0x57, 0x69, 0x74, 0x68, 0x48, 0x6f, 0x6e, 0x6f, 0x72, 0x69, 0x66, 0x69, 0x63, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x5f, 0x61, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x65, 0x6d, 0x61, - 0x69, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6d, - 0x70, 0x61, 0x6e, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0b, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2c, 0x0a, 0x12, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x68, 0x6f, 0x6d, 0x65, 0x5f, 0x6c, 0x69, 0x6e, - 0x65, 0x31, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x48, 0x6f, 0x6d, 0x65, 0x4c, 0x69, 0x6e, 0x65, 0x31, 0x12, 0x2c, 0x0a, 0x12, 0x61, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x68, 0x6f, 0x6d, 0x65, 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x32, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, - 0x6f, 0x6d, 0x65, 0x4c, 0x69, 0x6e, 0x65, 0x32, 0x12, 0x2a, 0x0a, 0x11, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x5f, 0x68, 0x6f, 0x6d, 0x65, 0x5f, 0x63, 0x69, 0x74, 0x79, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, 0x6f, 0x6d, 0x65, - 0x43, 0x69, 0x74, 0x79, 0x12, 0x2c, 0x0a, 0x12, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, - 0x68, 0x6f, 0x6d, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x10, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, 0x6f, 0x6d, 0x65, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x68, 0x6f, - 0x6d, 0x65, 0x5f, 0x7a, 0x69, 0x70, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, 0x6f, 0x6d, 0x65, 0x5a, 0x69, 0x70, 0x12, 0x30, 0x0a, 0x14, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x68, 0x6f, 0x6d, 0x65, 0x5f, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x72, 0x79, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x48, 0x6f, 0x6d, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x3d, - 0x0a, 0x1b, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x68, 0x6f, 0x6d, 0x65, 0x5f, 0x73, - 0x74, 0x72, 0x65, 0x65, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x11, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x18, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, 0x6f, 0x6d, 0x65, - 0x53, 0x74, 0x72, 0x65, 0x65, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x39, 0x0a, - 0x19, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x68, 0x6f, 0x6d, 0x65, 0x5f, 0x73, 0x6f, - 0x72, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x16, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, 0x6f, 0x6d, 0x65, 0x53, 0x6f, 0x72, - 0x74, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x45, 0x0a, 0x1f, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x5f, 0x68, 0x6f, 0x6d, 0x65, 0x5f, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, - 0x6e, 0x74, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x13, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x1c, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, 0x6f, 0x6d, 0x65, 0x44, 0x65, - 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x12, - 0x3b, 0x0a, 0x1a, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x68, 0x6f, 0x6d, 0x65, 0x5f, - 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x14, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x17, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, 0x6f, 0x6d, 0x65, - 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x43, 0x0a, 0x1e, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x68, 0x6f, 0x6d, 0x65, 0x5f, 0x74, 0x68, 0x6f, - 0x72, 0x6f, 0x75, 0x67, 0x68, 0x66, 0x61, 0x72, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x26, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x1b, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, 0x6f, 0x6d, - 0x65, 0x54, 0x68, 0x6f, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x66, 0x61, 0x72, 0x65, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x47, 0x0a, 0x20, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x68, 0x6f, 0x6d, - 0x65, 0x5f, 0x74, 0x68, 0x6f, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x66, 0x61, 0x72, 0x65, 0x5f, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x27, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1d, 0x61, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x48, 0x6f, 0x6d, 0x65, 0x54, 0x68, 0x6f, 0x72, 0x6f, 0x75, 0x67, 0x68, - 0x66, 0x61, 0x72, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x56, 0x0a, 0x28, 0x61, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x68, 0x6f, 0x6d, 0x65, 0x5f, 0x64, 0x65, 0x70, 0x65, 0x6e, - 0x64, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x68, 0x6f, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x66, 0x61, 0x72, - 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x28, 0x20, 0x01, 0x28, 0x09, 0x52, 0x24, 0x61, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, 0x6f, 0x6d, 0x65, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, - 0x6e, 0x74, 0x54, 0x68, 0x6f, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x66, 0x61, 0x72, 0x65, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x39, 0x0a, 0x19, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x68, 0x6f, - 0x6d, 0x65, 0x5f, 0x70, 0x72, 0x65, 0x6d, 0x69, 0x73, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x29, 0x20, 0x01, 0x28, 0x09, 0x52, 0x16, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, 0x6f, - 0x6d, 0x65, 0x50, 0x72, 0x65, 0x6d, 0x69, 0x73, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3f, 0x0a, - 0x1c, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x68, 0x6f, 0x6d, 0x65, 0x5f, 0x73, 0x75, - 0x62, 0x70, 0x72, 0x65, 0x6d, 0x69, 0x73, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x2a, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x19, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, 0x6f, 0x6d, 0x65, - 0x53, 0x75, 0x62, 0x70, 0x72, 0x65, 0x6d, 0x69, 0x73, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2f, - 0x0a, 0x14, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x68, 0x6f, 0x6d, 0x65, 0x5f, 0x61, - 0x70, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x18, 0x38, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x61, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, 0x6f, 0x6d, 0x65, 0x41, 0x70, 0x74, 0x4e, 0x75, 0x6d, 0x12, - 0x2c, 0x0a, 0x12, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x68, 0x6f, 0x6d, 0x65, 0x5f, - 0x66, 0x6c, 0x6f, 0x6f, 0x72, 0x18, 0x39, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x61, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x48, 0x6f, 0x6d, 0x65, 0x46, 0x6c, 0x6f, 0x6f, 0x72, 0x12, 0x6d, 0x0a, - 0x18, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x68, 0x6f, 0x6d, 0x65, 0x5f, 0x63, 0x69, - 0x74, 0x79, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x2b, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x34, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x41, 0x75, 0x74, 0x6f, 0x66, 0x69, - 0x6c, 0x6c, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x63, 0x73, 0x2e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x15, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, 0x6f, - 0x6d, 0x65, 0x43, 0x69, 0x74, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x6f, 0x0a, 0x19, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x68, 0x6f, 0x6d, 0x65, 0x5f, 0x73, 0x74, 0x61, - 0x74, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x34, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x41, 0x75, 0x74, 0x6f, 0x66, 0x69, - 0x6c, 0x6c, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x63, 0x73, 0x2e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x16, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, 0x6f, - 0x6d, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x6b, 0x0a, - 0x17, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x68, 0x6f, 0x6d, 0x65, 0x5f, 0x7a, 0x69, - 0x70, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x34, - 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x41, 0x75, 0x74, 0x6f, 0x66, 0x69, 0x6c, - 0x6c, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, - 0x73, 0x2e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x52, 0x14, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, 0x6f, 0x6d, - 0x65, 0x5a, 0x69, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x73, 0x0a, 0x1b, 0x61, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x68, 0x6f, 0x6d, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x72, 0x79, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x2e, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x34, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x41, 0x75, 0x74, 0x6f, 0x66, 0x69, - 0x6c, 0x6c, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x63, 0x73, 0x2e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x18, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, 0x6f, - 0x6d, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, - 0x80, 0x01, 0x0a, 0x22, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x68, 0x6f, 0x6d, 0x65, - 0x5f, 0x73, 0x74, 0x72, 0x65, 0x65, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x2f, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x73, + 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x22, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x48, 0x6f, 0x6d, 0x65, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x4c, 0x6f, + 0x63, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x7e, 0x0a, 0x21, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x68, 0x6f, 0x6d, 0x65, 0x5f, 0x6c, 0x61, 0x6e, + 0x67, 0x75, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x18, 0x32, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, + 0x62, 0x2e, 0x41, 0x75, 0x74, 0x6f, 0x66, 0x69, 0x6c, 0x6c, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, + 0x65, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x56, 0x65, 0x72, 0x69, 0x66, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x1d, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, 0x6f, 0x6d, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, + 0x67, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x86, 0x01, 0x0a, + 0x25, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x68, 0x6f, 0x6d, 0x65, 0x5f, 0x74, 0x68, + 0x6f, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x66, 0x61, 0x72, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x33, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x41, 0x75, 0x74, 0x6f, 0x66, 0x69, 0x6c, 0x6c, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x52, 0x1e, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, 0x6f, 0x6d, 0x65, 0x53, - 0x74, 0x72, 0x65, 0x65, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x12, 0x7c, 0x0a, 0x20, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x68, 0x6f, - 0x6d, 0x65, 0x5f, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x5f, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x30, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x73, + 0x75, 0x73, 0x52, 0x21, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, 0x6f, 0x6d, 0x65, 0x54, + 0x68, 0x6f, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x66, 0x61, 0x72, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x8a, 0x01, 0x0a, 0x27, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x5f, 0x68, 0x6f, 0x6d, 0x65, 0x5f, 0x74, 0x68, 0x6f, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x66, + 0x61, 0x72, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x18, 0x34, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, + 0x62, 0x2e, 0x41, 0x75, 0x74, 0x6f, 0x66, 0x69, 0x6c, 0x6c, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, + 0x65, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x56, 0x65, 0x72, 0x69, 0x66, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x23, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, 0x6f, 0x6d, 0x65, 0x54, 0x68, 0x6f, 0x72, 0x6f, 0x75, + 0x67, 0x68, 0x66, 0x61, 0x72, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x12, 0x99, 0x01, 0x0a, 0x2f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x68, + 0x6f, 0x6d, 0x65, 0x5f, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x68, + 0x6f, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x66, 0x61, 0x72, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x35, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x41, 0x75, 0x74, 0x6f, 0x66, 0x69, 0x6c, 0x6c, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x52, 0x1c, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, 0x6f, 0x6d, 0x65, 0x53, - 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x12, 0x88, 0x01, 0x0a, 0x26, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x68, 0x6f, 0x6d, - 0x65, 0x5f, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x6f, 0x63, 0x61, - 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x31, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x34, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x41, 0x75, 0x74, 0x6f, - 0x66, 0x69, 0x6c, 0x6c, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x63, 0x73, 0x2e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x22, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x48, 0x6f, 0x6d, 0x65, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x63, - 0x61, 0x6c, 0x69, 0x74, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x7e, 0x0a, 0x21, 0x61, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x68, 0x6f, 0x6d, 0x65, 0x5f, 0x6c, 0x61, 0x6e, 0x67, - 0x75, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x18, 0x32, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, - 0x2e, 0x41, 0x75, 0x74, 0x6f, 0x66, 0x69, 0x6c, 0x6c, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, - 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x1d, 0x61, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, 0x6f, 0x6d, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, - 0x65, 0x43, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x86, 0x01, 0x0a, 0x25, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x68, 0x6f, 0x6d, 0x65, 0x5f, 0x74, 0x68, 0x6f, - 0x72, 0x6f, 0x75, 0x67, 0x68, 0x66, 0x61, 0x72, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x73, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x33, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x73, 0x79, - 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x41, 0x75, 0x74, 0x6f, 0x66, 0x69, 0x6c, 0x6c, 0x50, 0x72, - 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x56, - 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x52, 0x21, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, 0x6f, 0x6d, 0x65, 0x54, 0x68, - 0x6f, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x66, 0x61, 0x72, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x12, 0x8a, 0x01, 0x0a, 0x27, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x5f, 0x68, 0x6f, 0x6d, 0x65, 0x5f, 0x74, 0x68, 0x6f, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x66, 0x61, - 0x72, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x18, 0x34, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, + 0x75, 0x73, 0x52, 0x2a, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, 0x6f, 0x6d, 0x65, 0x44, + 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x54, 0x68, 0x6f, 0x72, 0x6f, 0x75, 0x67, 0x68, + 0x66, 0x61, 0x72, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x7c, + 0x0a, 0x20, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x68, 0x6f, 0x6d, 0x65, 0x5f, 0x70, + 0x72, 0x65, 0x6d, 0x69, 0x73, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x18, 0x36, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, + 0x70, 0x62, 0x2e, 0x41, 0x75, 0x74, 0x6f, 0x66, 0x69, 0x6c, 0x6c, 0x50, 0x72, 0x6f, 0x66, 0x69, + 0x6c, 0x65, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x56, 0x65, 0x72, 0x69, + 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x1c, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, 0x6f, 0x6d, 0x65, 0x50, 0x72, 0x65, 0x6d, 0x69, + 0x73, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x82, 0x01, 0x0a, + 0x23, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x68, 0x6f, 0x6d, 0x65, 0x5f, 0x73, 0x75, + 0x62, 0x70, 0x72, 0x65, 0x6d, 0x69, 0x73, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x18, 0x37, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x73, 0x79, 0x6e, + 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x41, 0x75, 0x74, 0x6f, 0x66, 0x69, 0x6c, 0x6c, 0x50, 0x72, 0x6f, + 0x66, 0x69, 0x6c, 0x65, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x56, 0x65, + 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x52, 0x1f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, 0x6f, 0x6d, 0x65, 0x53, 0x75, 0x62, + 0x70, 0x72, 0x65, 0x6d, 0x69, 0x73, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x12, 0x72, 0x0a, 0x1b, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x68, 0x6f, 0x6d, + 0x65, 0x5f, 0x61, 0x70, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x18, 0x3a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x41, 0x75, 0x74, 0x6f, 0x66, 0x69, 0x6c, 0x6c, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x23, 0x61, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, 0x6f, 0x6d, 0x65, 0x54, 0x68, 0x6f, 0x72, 0x6f, 0x75, 0x67, - 0x68, 0x66, 0x61, 0x72, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x12, 0x99, 0x01, 0x0a, 0x2f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x68, 0x6f, - 0x6d, 0x65, 0x5f, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x68, 0x6f, - 0x72, 0x6f, 0x75, 0x67, 0x68, 0x66, 0x61, 0x72, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x73, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x35, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x73, 0x79, - 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x41, 0x75, 0x74, 0x6f, 0x66, 0x69, 0x6c, 0x6c, 0x50, 0x72, - 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x56, - 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x52, 0x2a, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, 0x6f, 0x6d, 0x65, 0x44, 0x65, - 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x54, 0x68, 0x6f, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x66, - 0x61, 0x72, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x7c, 0x0a, - 0x20, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x68, 0x6f, 0x6d, 0x65, 0x5f, 0x70, 0x72, - 0x65, 0x6d, 0x69, 0x73, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x18, 0x36, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, - 0x62, 0x2e, 0x41, 0x75, 0x74, 0x6f, 0x66, 0x69, 0x6c, 0x6c, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, - 0x65, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x56, 0x65, 0x72, 0x69, 0x66, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x1c, 0x61, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, 0x6f, 0x6d, 0x65, 0x50, 0x72, 0x65, 0x6d, 0x69, 0x73, - 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x82, 0x01, 0x0a, 0x23, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x68, 0x6f, 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x62, - 0x70, 0x72, 0x65, 0x6d, 0x69, 0x73, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x18, 0x37, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x73, 0x79, 0x6e, 0x63, - 0x5f, 0x70, 0x62, 0x2e, 0x41, 0x75, 0x74, 0x6f, 0x66, 0x69, 0x6c, 0x6c, 0x50, 0x72, 0x6f, 0x66, - 0x69, 0x6c, 0x65, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x56, 0x65, 0x72, - 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, - 0x1f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, 0x6f, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x70, - 0x72, 0x65, 0x6d, 0x69, 0x73, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x12, 0x72, 0x0a, 0x1b, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x68, 0x6f, 0x6d, 0x65, - 0x5f, 0x61, 0x70, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, - 0x3a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, - 0x41, 0x75, 0x74, 0x6f, 0x66, 0x69, 0x6c, 0x6c, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x17, 0x61, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x48, 0x6f, 0x6d, 0x65, 0x41, 0x70, 0x74, 0x4e, 0x75, 0x6d, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x12, 0x6f, 0x0a, 0x19, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, - 0x68, 0x6f, 0x6d, 0x65, 0x5f, 0x66, 0x6c, 0x6f, 0x6f, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x18, 0x3b, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, - 0x62, 0x2e, 0x41, 0x75, 0x74, 0x6f, 0x66, 0x69, 0x6c, 0x6c, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, - 0x65, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x56, 0x65, 0x72, 0x69, 0x66, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x16, 0x61, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, 0x6f, 0x6d, 0x65, 0x46, 0x6c, 0x6f, 0x6f, 0x72, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x35, 0x0a, 0x17, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x5f, 0x68, - 0x6f, 0x6d, 0x65, 0x5f, 0x77, 0x68, 0x6f, 0x6c, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x18, 0x0d, 0x20, 0x03, 0x28, 0x09, 0x52, 0x14, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x48, 0x6f, 0x6d, - 0x65, 0x57, 0x68, 0x6f, 0x6c, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x49, 0x0a, 0x21, - 0x64, 0x69, 0x73, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, - 0x73, 0x5f, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x73, 0x18, 0x3f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1e, 0x64, 0x69, 0x73, 0x61, 0x6c, 0x6c, 0x6f, - 0x77, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x56, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x62, 0x69, 0x72, 0x74, 0x68, - 0x64, 0x61, 0x74, 0x65, 0x5f, 0x64, 0x61, 0x79, 0x18, 0x40, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, - 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x74, 0x65, 0x44, 0x61, 0x79, 0x12, 0x27, 0x0a, 0x0f, - 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x18, - 0x41, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x74, 0x65, - 0x4d, 0x6f, 0x6e, 0x74, 0x68, 0x12, 0x25, 0x0a, 0x0e, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, - 0x74, 0x65, 0x5f, 0x79, 0x65, 0x61, 0x72, 0x18, 0x42, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x62, - 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x74, 0x65, 0x59, 0x65, 0x61, 0x72, 0x12, 0x2d, 0x0a, 0x10, - 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0f, 0x64, 0x65, 0x70, 0x72, - 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x37, 0x0a, 0x16, 0x70, - 0x68, 0x6f, 0x6e, 0x65, 0x5f, 0x66, 0x61, 0x78, 0x5f, 0x77, 0x68, 0x6f, 0x6c, 0x65, 0x5f, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, - 0x13, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x46, 0x61, 0x78, 0x57, 0x68, 0x6f, 0x6c, 0x65, 0x4e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x12, 0x3a, 0x0a, 0x17, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x69, 0x74, 0x79, - 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x62, 0x69, 0x74, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, - 0x18, 0x20, 0x01, 0x28, 0x03, 0x42, 0x02, 0x18, 0x01, 0x52, 0x15, 0x76, 0x61, 0x6c, 0x69, 0x64, - 0x69, 0x74, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x69, 0x74, 0x66, 0x69, 0x65, 0x6c, 0x64, - 0x12, 0x4c, 0x0a, 0x21, 0x69, 0x73, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x76, 0x61, - 0x6c, 0x69, 0x64, 0x69, 0x74, 0x79, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, 0x5f, 0x75, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x19, 0x20, 0x01, 0x28, 0x08, 0x42, 0x02, 0x18, 0x01, 0x52, - 0x1d, 0x69, 0x73, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x69, 0x74, - 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x22, 0x88, - 0x01, 0x0a, 0x12, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x23, 0x0a, 0x1f, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x43, - 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, - 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x50, 0x41, - 0x52, 0x53, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x46, 0x4f, 0x52, 0x4d, 0x41, 0x54, - 0x54, 0x45, 0x44, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x4f, 0x42, 0x53, 0x45, 0x52, 0x56, 0x45, - 0x44, 0x10, 0x03, 0x12, 0x11, 0x0a, 0x0d, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x56, 0x45, 0x52, 0x49, - 0x46, 0x49, 0x45, 0x44, 0x10, 0x04, 0x12, 0x11, 0x0a, 0x0d, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, - 0x5f, 0x50, 0x41, 0x52, 0x53, 0x45, 0x44, 0x10, 0x05, 0x22, 0xa3, 0x01, 0x0a, 0x11, 0x41, 0x75, - 0x74, 0x6f, 0x66, 0x69, 0x6c, 0x6c, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x12, - 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x75, 0x73, 0x61, - 0x67, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x03, - 0x28, 0x03, 0x52, 0x0e, 0x75, 0x73, 0x61, 0x67, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, - 0x6d, 0x70, 0x12, 0x3b, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x41, 0x75, - 0x74, 0x6f, 0x66, 0x69, 0x6c, 0x6c, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x22, - 0xad, 0x01, 0x0a, 0x0e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x61, - 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x75, 0x66, 0x66, 0x69, 0x78, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x73, 0x75, 0x66, 0x66, 0x69, 0x78, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x78, - 0x70, 0x5f, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x65, - 0x78, 0x70, 0x4d, 0x6f, 0x6e, 0x74, 0x68, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x78, 0x70, 0x5f, 0x79, - 0x65, 0x61, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x65, 0x78, 0x70, 0x59, 0x65, - 0x61, 0x72, 0x12, 0x20, 0x0a, 0x0c, 0x61, 0x72, 0x74, 0x5f, 0x66, 0x69, 0x66, 0x65, 0x5f, 0x75, - 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x46, 0x69, 0x66, - 0x65, 0x55, 0x72, 0x6c, 0x12, 0x29, 0x0a, 0x10, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x6d, 0x65, - 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, - 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, - 0x6a, 0x0a, 0x0a, 0x43, 0x61, 0x72, 0x64, 0x49, 0x73, 0x73, 0x75, 0x65, 0x72, 0x12, 0x32, 0x0a, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x17, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, 0x6f, 0x6d, 0x65, 0x41, 0x70, 0x74, 0x4e, 0x75, 0x6d, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x6f, 0x0a, 0x19, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x5f, 0x68, 0x6f, 0x6d, 0x65, 0x5f, 0x66, 0x6c, 0x6f, 0x6f, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x18, 0x3b, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, + 0x70, 0x62, 0x2e, 0x41, 0x75, 0x74, 0x6f, 0x66, 0x69, 0x6c, 0x6c, 0x50, 0x72, 0x6f, 0x66, 0x69, + 0x6c, 0x65, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x56, 0x65, 0x72, 0x69, + 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x16, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, 0x6f, 0x6d, 0x65, 0x46, 0x6c, 0x6f, 0x6f, 0x72, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x35, 0x0a, 0x17, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x5f, + 0x68, 0x6f, 0x6d, 0x65, 0x5f, 0x77, 0x68, 0x6f, 0x6c, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x09, 0x52, 0x14, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x48, 0x6f, + 0x6d, 0x65, 0x57, 0x68, 0x6f, 0x6c, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x23, 0x0a, + 0x0d, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x64, 0x61, 0x79, 0x18, 0x40, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x74, 0x65, 0x44, + 0x61, 0x79, 0x12, 0x27, 0x0a, 0x0f, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x74, 0x65, 0x5f, + 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x18, 0x41, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x62, 0x69, 0x72, + 0x74, 0x68, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x6f, 0x6e, 0x74, 0x68, 0x12, 0x25, 0x0a, 0x0e, 0x62, + 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x79, 0x65, 0x61, 0x72, 0x18, 0x42, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0d, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x74, 0x65, 0x59, 0x65, + 0x61, 0x72, 0x12, 0x2d, 0x0a, 0x10, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, + 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, + 0x52, 0x0f, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x4c, 0x61, 0x62, 0x65, + 0x6c, 0x12, 0x37, 0x0a, 0x16, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x5f, 0x66, 0x61, 0x78, 0x5f, 0x77, + 0x68, 0x6f, 0x6c, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0e, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x13, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x46, 0x61, 0x78, 0x57, + 0x68, 0x6f, 0x6c, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x3a, 0x0a, 0x17, 0x76, 0x61, + 0x6c, 0x69, 0x64, 0x69, 0x74, 0x79, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x62, 0x69, 0x74, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x18, 0x20, 0x01, 0x28, 0x03, 0x42, 0x02, 0x18, 0x01, 0x52, + 0x15, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x69, 0x74, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x69, + 0x74, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x4c, 0x0a, 0x21, 0x69, 0x73, 0x5f, 0x63, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x69, 0x74, 0x79, 0x5f, 0x73, 0x74, 0x61, + 0x74, 0x65, 0x73, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x19, 0x20, 0x01, 0x28, + 0x08, 0x42, 0x02, 0x18, 0x01, 0x52, 0x1d, 0x69, 0x73, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x56, + 0x61, 0x6c, 0x69, 0x64, 0x69, 0x74, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x64, 0x22, 0x88, 0x01, 0x0a, 0x12, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x23, 0x0a, 0x1f, 0x56, + 0x45, 0x52, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, + 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, + 0x12, 0x0a, 0x0a, 0x06, 0x50, 0x41, 0x52, 0x53, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, + 0x46, 0x4f, 0x52, 0x4d, 0x41, 0x54, 0x54, 0x45, 0x44, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x4f, + 0x42, 0x53, 0x45, 0x52, 0x56, 0x45, 0x44, 0x10, 0x03, 0x12, 0x11, 0x0a, 0x0d, 0x55, 0x53, 0x45, + 0x52, 0x5f, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x04, 0x12, 0x11, 0x0a, 0x0d, + 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x50, 0x41, 0x52, 0x53, 0x45, 0x44, 0x10, 0x05, 0x4a, + 0x04, 0x08, 0x3f, 0x10, 0x40, 0x52, 0x21, 0x64, 0x69, 0x73, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, + 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x5f, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, + 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x22, 0xd3, 0x01, 0x0a, 0x11, 0x41, 0x75, 0x74, + 0x6f, 0x66, 0x69, 0x6c, 0x6c, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x75, 0x73, 0x61, 0x67, + 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x03, 0x52, 0x0e, 0x75, 0x73, 0x61, 0x67, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x12, 0x3b, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x41, 0x75, 0x74, + 0x6f, 0x66, 0x69, 0x6c, 0x6c, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x70, 0x65, 0x63, + 0x69, 0x66, 0x69, 0x63, 0x73, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4a, 0x04, + 0x08, 0x05, 0x10, 0x06, 0x4a, 0x04, 0x08, 0x06, 0x10, 0x07, 0x52, 0x15, 0x65, 0x6e, 0x63, 0x72, + 0x79, 0x70, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x63, 0x61, 0x72, + 0x64, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x63, 0x61, 0x72, 0x64, 0x22, 0xad, + 0x01, 0x0a, 0x0e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x61, 0x74, + 0x61, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x75, 0x66, 0x66, 0x69, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x73, 0x75, 0x66, 0x66, 0x69, 0x78, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x78, 0x70, + 0x5f, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x65, 0x78, + 0x70, 0x4d, 0x6f, 0x6e, 0x74, 0x68, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x78, 0x70, 0x5f, 0x79, 0x65, + 0x61, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x65, 0x78, 0x70, 0x59, 0x65, 0x61, + 0x72, 0x12, 0x20, 0x0a, 0x0c, 0x61, 0x72, 0x74, 0x5f, 0x66, 0x69, 0x66, 0x65, 0x5f, 0x75, 0x72, + 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x46, 0x69, 0x66, 0x65, + 0x55, 0x72, 0x6c, 0x12, 0x29, 0x0a, 0x10, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x6d, 0x65, 0x6e, + 0x74, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x69, + 0x6e, 0x73, 0x74, 0x72, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x9c, + 0x01, 0x0a, 0x0a, 0x43, 0x61, 0x72, 0x64, 0x49, 0x73, 0x73, 0x75, 0x65, 0x72, 0x12, 0x32, 0x0a, 0x06, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x61, 0x72, 0x64, 0x49, 0x73, 0x73, 0x75, 0x65, 0x72, 0x2e, 0x49, 0x73, 0x73, 0x75, 0x65, 0x72, 0x52, 0x06, 0x69, 0x73, 0x73, 0x75, 0x65, - 0x72, 0x22, 0x28, 0x0a, 0x06, 0x49, 0x73, 0x73, 0x75, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x0e, 0x49, - 0x53, 0x53, 0x55, 0x45, 0x52, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, - 0x0a, 0x0a, 0x06, 0x47, 0x4f, 0x4f, 0x47, 0x4c, 0x45, 0x10, 0x01, 0x22, 0xee, 0x08, 0x0a, 0x16, - 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x4d, 0x61, 0x73, 0x6b, 0x65, 0x64, 0x43, 0x72, 0x65, 0x64, - 0x69, 0x74, 0x43, 0x61, 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x48, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, + 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x49, 0x64, 0x22, 0x3d, + 0x0a, 0x06, 0x49, 0x73, 0x73, 0x75, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x0e, 0x49, 0x53, 0x53, 0x55, + 0x45, 0x52, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, + 0x47, 0x4f, 0x4f, 0x47, 0x4c, 0x45, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x58, 0x54, 0x45, + 0x52, 0x4e, 0x41, 0x4c, 0x5f, 0x49, 0x53, 0x53, 0x55, 0x45, 0x52, 0x10, 0x02, 0x22, 0xb6, 0x0a, + 0x0a, 0x16, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x4d, 0x61, 0x73, 0x6b, 0x65, 0x64, 0x43, 0x72, + 0x65, 0x64, 0x69, 0x74, 0x43, 0x61, 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x48, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, + 0x70, 0x62, 0x2e, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x4d, 0x61, 0x73, 0x6b, 0x65, 0x64, 0x43, + 0x72, 0x65, 0x64, 0x69, 0x74, 0x43, 0x61, 0x72, 0x64, 0x2e, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, + 0x43, 0x61, 0x72, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x12, 0x20, 0x0a, 0x0c, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x6f, 0x6e, 0x5f, 0x63, 0x61, + 0x72, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6e, 0x61, 0x6d, 0x65, 0x4f, 0x6e, + 0x43, 0x61, 0x72, 0x64, 0x12, 0x42, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x57, 0x61, 0x6c, + 0x6c, 0x65, 0x74, 0x4d, 0x61, 0x73, 0x6b, 0x65, 0x64, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x43, + 0x61, 0x72, 0x64, 0x2e, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x43, 0x61, 0x72, 0x64, 0x54, 0x79, + 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x61, 0x73, 0x74, + 0x5f, 0x66, 0x6f, 0x75, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x73, + 0x74, 0x46, 0x6f, 0x75, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x78, 0x70, 0x5f, 0x6d, 0x6f, 0x6e, + 0x74, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x65, 0x78, 0x70, 0x4d, 0x6f, 0x6e, + 0x74, 0x68, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x78, 0x70, 0x5f, 0x79, 0x65, 0x61, 0x72, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x65, 0x78, 0x70, 0x59, 0x65, 0x61, 0x72, 0x12, 0x2c, 0x0a, + 0x12, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x62, 0x69, 0x6c, 0x6c, 0x69, + 0x6e, 0x67, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x62, + 0x61, 0x6e, 0x6b, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x62, 0x61, 0x6e, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x41, 0x0a, 0x10, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0b, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x6c, 0x6f, + 0x75, 0x64, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1a, 0x0a, 0x08, 0x6e, + 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, + 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x34, 0x0a, 0x0b, 0x63, 0x61, 0x72, 0x64, 0x5f, + 0x69, 0x73, 0x73, 0x75, 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, + 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x61, 0x72, 0x64, 0x49, 0x73, 0x73, 0x75, 0x65, + 0x72, 0x52, 0x0a, 0x63, 0x61, 0x72, 0x64, 0x49, 0x73, 0x73, 0x75, 0x65, 0x72, 0x12, 0x23, 0x0a, + 0x0d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x0f, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x6d, 0x65, 0x6e, 0x74, + 0x49, 0x64, 0x12, 0x7d, 0x0a, 0x1d, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x63, 0x61, + 0x72, 0x64, 0x5f, 0x65, 0x6e, 0x72, 0x6f, 0x6c, 0x6c, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3a, 0x2e, 0x73, 0x79, 0x6e, 0x63, + 0x5f, 0x70, 0x62, 0x2e, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x4d, 0x61, 0x73, 0x6b, 0x65, 0x64, + 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x43, 0x61, 0x72, 0x64, 0x2e, 0x56, 0x69, 0x72, 0x74, 0x75, + 0x61, 0x6c, 0x43, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x72, 0x6f, 0x6c, 0x6c, 0x6d, 0x65, 0x6e, 0x74, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x1a, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x43, 0x61, + 0x72, 0x64, 0x45, 0x6e, 0x72, 0x6f, 0x6c, 0x6c, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x12, 0x20, 0x0a, 0x0c, 0x63, 0x61, 0x72, 0x64, 0x5f, 0x61, 0x72, 0x74, 0x5f, 0x75, 0x72, + 0x6c, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x61, 0x72, 0x64, 0x41, 0x72, 0x74, + 0x55, 0x72, 0x6c, 0x12, 0x2f, 0x0a, 0x13, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x5f, 0x64, + 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x12, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x7a, 0x0a, 0x1c, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x5f, + 0x63, 0x61, 0x72, 0x64, 0x5f, 0x65, 0x6e, 0x72, 0x6f, 0x6c, 0x6c, 0x6d, 0x65, 0x6e, 0x74, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x39, 0x2e, 0x73, 0x79, 0x6e, + 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x4d, 0x61, 0x73, 0x6b, 0x65, + 0x64, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x43, 0x61, 0x72, 0x64, 0x2e, 0x56, 0x69, 0x72, 0x74, + 0x75, 0x61, 0x6c, 0x43, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x72, 0x6f, 0x6c, 0x6c, 0x6d, 0x65, 0x6e, + 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x19, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x43, 0x61, + 0x72, 0x64, 0x45, 0x6e, 0x72, 0x6f, 0x6c, 0x6c, 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, + 0x22, 0x2a, 0x0a, 0x10, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x43, 0x61, 0x72, 0x64, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x09, 0x0a, 0x05, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x10, 0x00, 0x12, + 0x0b, 0x0a, 0x07, 0x45, 0x58, 0x50, 0x49, 0x52, 0x45, 0x44, 0x10, 0x01, 0x22, 0x93, 0x01, 0x0a, + 0x0e, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x43, 0x61, 0x72, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, + 0x41, 0x4d, 0x45, 0x58, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x56, + 0x45, 0x52, 0x10, 0x02, 0x12, 0x07, 0x0a, 0x03, 0x4a, 0x43, 0x42, 0x10, 0x03, 0x12, 0x0b, 0x0a, + 0x07, 0x4d, 0x41, 0x45, 0x53, 0x54, 0x52, 0x4f, 0x10, 0x04, 0x12, 0x0f, 0x0a, 0x0b, 0x4d, 0x41, + 0x53, 0x54, 0x45, 0x52, 0x5f, 0x43, 0x41, 0x52, 0x44, 0x10, 0x05, 0x12, 0x08, 0x0a, 0x04, 0x53, + 0x4f, 0x4c, 0x4f, 0x10, 0x06, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x10, + 0x07, 0x12, 0x08, 0x0a, 0x04, 0x56, 0x49, 0x53, 0x41, 0x10, 0x08, 0x12, 0x0c, 0x0a, 0x08, 0x55, + 0x4e, 0x49, 0x4f, 0x4e, 0x50, 0x41, 0x59, 0x10, 0x09, 0x12, 0x07, 0x0a, 0x03, 0x45, 0x4c, 0x4f, + 0x10, 0x0a, 0x22, 0x8d, 0x01, 0x0a, 0x1a, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x43, 0x61, + 0x72, 0x64, 0x45, 0x6e, 0x72, 0x6f, 0x6c, 0x6c, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, + 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0a, 0x55, 0x4e, 0x45, 0x4e, 0x52, 0x4f, 0x4c, 0x4c, 0x45, 0x44, + 0x10, 0x01, 0x1a, 0x02, 0x08, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x45, 0x4e, 0x52, 0x4f, 0x4c, 0x4c, + 0x45, 0x44, 0x10, 0x02, 0x12, 0x1f, 0x0a, 0x1b, 0x55, 0x4e, 0x45, 0x4e, 0x52, 0x4f, 0x4c, 0x4c, + 0x45, 0x44, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x45, 0x4c, 0x49, 0x47, 0x49, + 0x42, 0x4c, 0x45, 0x10, 0x03, 0x12, 0x1b, 0x0a, 0x17, 0x55, 0x4e, 0x45, 0x4e, 0x52, 0x4f, 0x4c, + 0x4c, 0x45, 0x44, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x45, 0x4c, 0x49, 0x47, 0x49, 0x42, 0x4c, 0x45, + 0x10, 0x04, 0x22, 0x4a, 0x0a, 0x19, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x43, 0x61, 0x72, + 0x64, 0x45, 0x6e, 0x72, 0x6f, 0x6c, 0x6c, 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x14, 0x0a, 0x10, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, + 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x49, 0x53, 0x53, 0x55, 0x45, 0x52, 0x10, + 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x10, 0x02, 0x4a, 0x04, + 0x08, 0x09, 0x10, 0x0a, 0x4a, 0x04, 0x08, 0x0e, 0x10, 0x0f, 0x52, 0x0a, 0x63, 0x61, 0x72, 0x64, + 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x22, 0xb9, 0x03, 0x0a, 0x13, 0x57, 0x61, 0x6c, 0x6c, 0x65, + 0x74, 0x50, 0x6f, 0x73, 0x74, 0x61, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x0e, + 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x25, + 0x0a, 0x0e, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, + 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6d, + 0x70, 0x61, 0x6e, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x74, 0x72, 0x65, + 0x65, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x0d, 0x73, 0x74, 0x72, 0x65, 0x65, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, + 0x1b, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x31, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x31, 0x12, 0x1b, 0x0a, 0x09, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x32, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x32, 0x12, 0x1b, 0x0a, 0x09, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x5f, 0x33, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x33, 0x12, 0x1b, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x5f, 0x34, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x34, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x6f, 0x73, 0x74, 0x61, 0x6c, 0x5f, 0x63, 0x6f, + 0x64, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6f, 0x73, 0x74, 0x61, 0x6c, + 0x43, 0x6f, 0x64, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x5f, + 0x63, 0x6f, 0x64, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x6f, 0x72, 0x74, + 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x72, 0x79, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x6c, 0x61, + 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0c, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, + 0x21, 0x0a, 0x0c, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, + 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x22, 0x26, 0x0a, 0x14, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x75, + 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0xe3, 0x01, 0x0a, 0x1e, 0x57, + 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x43, 0x61, 0x72, 0x64, 0x43, + 0x6c, 0x6f, 0x75, 0x64, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x24, 0x0a, + 0x0e, 0x6d, 0x61, 0x73, 0x6b, 0x65, 0x64, 0x5f, 0x63, 0x61, 0x72, 0x64, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6d, 0x61, 0x73, 0x6b, 0x65, 0x64, 0x43, 0x61, 0x72, + 0x64, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x75, 0x66, 0x66, 0x69, 0x78, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x75, 0x66, 0x66, 0x69, 0x78, 0x12, 0x1b, 0x0a, 0x09, 0x65, + 0x78, 0x70, 0x5f, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, + 0x65, 0x78, 0x70, 0x4d, 0x6f, 0x6e, 0x74, 0x68, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x78, 0x70, 0x5f, + 0x79, 0x65, 0x61, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x65, 0x78, 0x70, 0x59, + 0x65, 0x61, 0x72, 0x12, 0x20, 0x0a, 0x0c, 0x61, 0x72, 0x74, 0x5f, 0x66, 0x69, 0x66, 0x65, 0x5f, + 0x75, 0x72, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x46, 0x69, + 0x66, 0x65, 0x55, 0x72, 0x6c, 0x12, 0x29, 0x0a, 0x10, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x6d, + 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0f, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, + 0x22, 0xef, 0x03, 0x0a, 0x17, 0x41, 0x75, 0x74, 0x6f, 0x66, 0x69, 0x6c, 0x6c, 0x57, 0x61, 0x6c, + 0x6c, 0x65, 0x74, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x12, 0x43, 0x0a, 0x04, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x73, 0x79, 0x6e, + 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x41, 0x75, 0x74, 0x6f, 0x66, 0x69, 0x6c, 0x6c, 0x57, 0x61, 0x6c, + 0x6c, 0x65, 0x74, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x57, 0x61, 0x6c, + 0x6c, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, + 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x6d, 0x61, 0x73, 0x6b, 0x65, 0x64, 0x5f, 0x63, 0x61, 0x72, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x4d, 0x61, 0x73, 0x6b, 0x65, 0x64, 0x43, 0x72, 0x65, - 0x64, 0x69, 0x74, 0x43, 0x61, 0x72, 0x64, 0x2e, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x43, 0x61, - 0x72, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x12, 0x20, 0x0a, 0x0c, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x6f, 0x6e, 0x5f, 0x63, 0x61, 0x72, 0x64, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6e, 0x61, 0x6d, 0x65, 0x4f, 0x6e, 0x43, 0x61, - 0x72, 0x64, 0x12, 0x42, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x2e, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x57, 0x61, 0x6c, 0x6c, 0x65, - 0x74, 0x4d, 0x61, 0x73, 0x6b, 0x65, 0x64, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x43, 0x61, 0x72, - 0x64, 0x2e, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x43, 0x61, 0x72, 0x64, 0x54, 0x79, 0x70, 0x65, - 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x66, - 0x6f, 0x75, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x73, 0x74, 0x46, - 0x6f, 0x75, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x78, 0x70, 0x5f, 0x6d, 0x6f, 0x6e, 0x74, 0x68, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x65, 0x78, 0x70, 0x4d, 0x6f, 0x6e, 0x74, 0x68, - 0x12, 0x19, 0x0a, 0x08, 0x65, 0x78, 0x70, 0x5f, 0x79, 0x65, 0x61, 0x72, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x07, 0x65, 0x78, 0x70, 0x59, 0x65, 0x61, 0x72, 0x12, 0x2c, 0x0a, 0x12, 0x62, - 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x69, - 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, - 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x61, 0x6e, - 0x6b, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x61, - 0x6e, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x41, 0x0a, 0x10, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x5f, - 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x17, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, - 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0e, 0x63, 0x6c, 0x6f, 0x75, 0x64, - 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x69, 0x63, - 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x69, 0x63, - 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x34, 0x0a, 0x0b, 0x63, 0x61, 0x72, 0x64, 0x5f, 0x69, 0x73, - 0x73, 0x75, 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x79, 0x6e, - 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x61, 0x72, 0x64, 0x49, 0x73, 0x73, 0x75, 0x65, 0x72, 0x52, - 0x0a, 0x63, 0x61, 0x72, 0x64, 0x49, 0x73, 0x73, 0x75, 0x65, 0x72, 0x12, 0x23, 0x0a, 0x0d, 0x69, - 0x6e, 0x73, 0x74, 0x72, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x0f, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x0c, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, - 0x12, 0x7d, 0x0a, 0x1d, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x63, 0x61, 0x72, 0x64, - 0x5f, 0x65, 0x6e, 0x72, 0x6f, 0x6c, 0x6c, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, - 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3a, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, - 0x62, 0x2e, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x4d, 0x61, 0x73, 0x6b, 0x65, 0x64, 0x43, 0x72, - 0x65, 0x64, 0x69, 0x74, 0x43, 0x61, 0x72, 0x64, 0x2e, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, - 0x43, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x72, 0x6f, 0x6c, 0x6c, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x52, 0x1a, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x43, 0x61, 0x72, 0x64, - 0x45, 0x6e, 0x72, 0x6f, 0x6c, 0x6c, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, - 0x20, 0x0a, 0x0c, 0x63, 0x61, 0x72, 0x64, 0x5f, 0x61, 0x72, 0x74, 0x5f, 0x75, 0x72, 0x6c, 0x18, - 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x61, 0x72, 0x64, 0x41, 0x72, 0x74, 0x55, 0x72, - 0x6c, 0x12, 0x2f, 0x0a, 0x13, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x5f, 0x64, 0x65, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, - 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x22, 0x2a, 0x0a, 0x10, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x43, 0x61, 0x72, 0x64, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x09, 0x0a, 0x05, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x10, - 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x45, 0x58, 0x50, 0x49, 0x52, 0x45, 0x44, 0x10, 0x01, 0x22, 0x93, - 0x01, 0x0a, 0x0e, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x43, 0x61, 0x72, 0x64, 0x54, 0x79, 0x70, - 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x08, - 0x0a, 0x04, 0x41, 0x4d, 0x45, 0x58, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x44, 0x49, 0x53, 0x43, - 0x4f, 0x56, 0x45, 0x52, 0x10, 0x02, 0x12, 0x07, 0x0a, 0x03, 0x4a, 0x43, 0x42, 0x10, 0x03, 0x12, - 0x0b, 0x0a, 0x07, 0x4d, 0x41, 0x45, 0x53, 0x54, 0x52, 0x4f, 0x10, 0x04, 0x12, 0x0f, 0x0a, 0x0b, - 0x4d, 0x41, 0x53, 0x54, 0x45, 0x52, 0x5f, 0x43, 0x41, 0x52, 0x44, 0x10, 0x05, 0x12, 0x08, 0x0a, - 0x04, 0x53, 0x4f, 0x4c, 0x4f, 0x10, 0x06, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x57, 0x49, 0x54, 0x43, - 0x48, 0x10, 0x07, 0x12, 0x08, 0x0a, 0x04, 0x56, 0x49, 0x53, 0x41, 0x10, 0x08, 0x12, 0x0c, 0x0a, - 0x08, 0x55, 0x4e, 0x49, 0x4f, 0x4e, 0x50, 0x41, 0x59, 0x10, 0x09, 0x12, 0x07, 0x0a, 0x03, 0x45, - 0x4c, 0x4f, 0x10, 0x0a, 0x22, 0x8d, 0x01, 0x0a, 0x1a, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, - 0x43, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x72, 0x6f, 0x6c, 0x6c, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, - 0x45, 0x44, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0a, 0x55, 0x4e, 0x45, 0x4e, 0x52, 0x4f, 0x4c, 0x4c, - 0x45, 0x44, 0x10, 0x01, 0x1a, 0x02, 0x08, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x45, 0x4e, 0x52, 0x4f, - 0x4c, 0x4c, 0x45, 0x44, 0x10, 0x02, 0x12, 0x1f, 0x0a, 0x1b, 0x55, 0x4e, 0x45, 0x4e, 0x52, 0x4f, - 0x4c, 0x4c, 0x45, 0x44, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x45, 0x4c, 0x49, - 0x47, 0x49, 0x42, 0x4c, 0x45, 0x10, 0x03, 0x12, 0x1b, 0x0a, 0x17, 0x55, 0x4e, 0x45, 0x4e, 0x52, - 0x4f, 0x4c, 0x4c, 0x45, 0x44, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x45, 0x4c, 0x49, 0x47, 0x49, 0x42, - 0x4c, 0x45, 0x10, 0x04, 0x4a, 0x04, 0x08, 0x09, 0x10, 0x0a, 0x4a, 0x04, 0x08, 0x0e, 0x10, 0x0f, - 0x52, 0x0a, 0x63, 0x61, 0x72, 0x64, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x22, 0xb9, 0x03, 0x0a, - 0x13, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x50, 0x6f, 0x73, 0x74, 0x61, 0x6c, 0x41, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x02, 0x69, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, - 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, - 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x63, - 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x25, - 0x0a, 0x0e, 0x73, 0x74, 0x72, 0x65, 0x65, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x74, 0x72, 0x65, 0x65, 0x74, 0x41, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x5f, 0x31, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x31, 0x12, 0x1b, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x32, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x32, 0x12, - 0x1b, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x33, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x33, 0x12, 0x1b, 0x0a, 0x09, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x34, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x34, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x6f, 0x73, - 0x74, 0x61, 0x6c, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, - 0x70, 0x6f, 0x73, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x6f, - 0x72, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0b, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x21, 0x0a, - 0x0c, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x0a, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x43, 0x6f, 0x64, 0x65, - 0x12, 0x23, 0x0a, 0x0d, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6f, 0x64, - 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, - 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x5f, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x68, 0x6f, - 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x26, 0x0a, 0x14, 0x50, 0x61, 0x79, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, - 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, - 0x22, 0xe3, 0x01, 0x0a, 0x1e, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x43, 0x72, 0x65, 0x64, 0x69, - 0x74, 0x43, 0x61, 0x72, 0x64, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x44, - 0x61, 0x74, 0x61, 0x12, 0x24, 0x0a, 0x0e, 0x6d, 0x61, 0x73, 0x6b, 0x65, 0x64, 0x5f, 0x63, 0x61, - 0x72, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6d, 0x61, 0x73, - 0x6b, 0x65, 0x64, 0x43, 0x61, 0x72, 0x64, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x75, 0x66, - 0x66, 0x69, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x75, 0x66, 0x66, 0x69, - 0x78, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x78, 0x70, 0x5f, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x65, 0x78, 0x70, 0x4d, 0x6f, 0x6e, 0x74, 0x68, 0x12, 0x19, - 0x0a, 0x08, 0x65, 0x78, 0x70, 0x5f, 0x79, 0x65, 0x61, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x07, 0x65, 0x78, 0x70, 0x59, 0x65, 0x61, 0x72, 0x12, 0x20, 0x0a, 0x0c, 0x61, 0x72, 0x74, - 0x5f, 0x66, 0x69, 0x66, 0x65, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x61, 0x72, 0x74, 0x46, 0x69, 0x66, 0x65, 0x55, 0x72, 0x6c, 0x12, 0x29, 0x0a, 0x10, 0x69, - 0x6e, 0x73, 0x74, 0x72, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x6d, 0x65, 0x6e, - 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xef, 0x03, 0x0a, 0x17, 0x41, 0x75, 0x74, 0x6f, 0x66, - 0x69, 0x6c, 0x6c, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x63, 0x73, 0x12, 0x43, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x2f, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x41, 0x75, 0x74, 0x6f, 0x66, - 0x69, 0x6c, 0x6c, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x63, 0x73, 0x2e, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, - 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x6d, 0x61, 0x73, 0x6b, 0x65, - 0x64, 0x5f, 0x63, 0x61, 0x72, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, - 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x4d, 0x61, 0x73, - 0x6b, 0x65, 0x64, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x43, 0x61, 0x72, 0x64, 0x52, 0x0a, 0x6d, - 0x61, 0x73, 0x6b, 0x65, 0x64, 0x43, 0x61, 0x72, 0x64, 0x12, 0x36, 0x0a, 0x07, 0x61, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x79, 0x6e, - 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x50, 0x6f, 0x73, 0x74, 0x61, - 0x6c, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x12, 0x42, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x5f, 0x64, 0x61, - 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, - 0x70, 0x62, 0x2e, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, - 0x6d, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, - 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x51, 0x0a, 0x10, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x5f, 0x74, - 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x27, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, - 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x43, 0x61, 0x72, 0x64, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x54, - 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x54, - 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x22, 0x7e, 0x0a, 0x0e, 0x57, 0x61, 0x6c, 0x6c, - 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, - 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x4d, 0x41, 0x53, 0x4b, 0x45, - 0x44, 0x5f, 0x43, 0x52, 0x45, 0x44, 0x49, 0x54, 0x5f, 0x43, 0x41, 0x52, 0x44, 0x10, 0x01, 0x12, - 0x12, 0x0a, 0x0e, 0x50, 0x4f, 0x53, 0x54, 0x41, 0x4c, 0x5f, 0x41, 0x44, 0x44, 0x52, 0x45, 0x53, - 0x53, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x45, 0x52, 0x5f, - 0x44, 0x41, 0x54, 0x41, 0x10, 0x03, 0x12, 0x20, 0x0a, 0x1c, 0x43, 0x52, 0x45, 0x44, 0x49, 0x54, - 0x5f, 0x43, 0x41, 0x52, 0x44, 0x5f, 0x43, 0x4c, 0x4f, 0x55, 0x44, 0x5f, 0x54, 0x4f, 0x4b, 0x45, - 0x4e, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x10, 0x04, 0x22, 0xb3, 0x02, 0x0a, 0x17, 0x57, 0x61, 0x6c, - 0x6c, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x53, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x63, 0x73, 0x12, 0x39, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x57, 0x61, 0x6c, - 0x6c, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x53, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x63, 0x73, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, - 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, - 0x1b, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x08, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x19, 0x0a, 0x08, - 0x75, 0x73, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, - 0x75, 0x73, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x35, 0x0a, 0x17, 0x63, 0x61, 0x72, 0x64, 0x5f, - 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, - 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x63, 0x61, 0x72, 0x64, 0x42, 0x69, - 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x49, 0x64, 0x12, 0x32, - 0x0a, 0x15, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x68, 0x61, 0x73, 0x5f, 0x63, 0x6f, - 0x6e, 0x76, 0x65, 0x72, 0x74, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x61, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, 0x61, 0x73, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, - 0x65, 0x64, 0x22, 0x2a, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, - 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x43, 0x41, 0x52, 0x44, 0x10, - 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x41, 0x44, 0x44, 0x52, 0x45, 0x53, 0x53, 0x10, 0x02, 0x42, 0x2b, - 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x63, - 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x03, 0x50, 0x01, + 0x64, 0x69, 0x74, 0x43, 0x61, 0x72, 0x64, 0x52, 0x0a, 0x6d, 0x61, 0x73, 0x6b, 0x65, 0x64, 0x43, + 0x61, 0x72, 0x64, 0x12, 0x36, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x57, + 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x50, 0x6f, 0x73, 0x74, 0x61, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x42, 0x0a, 0x0d, 0x63, + 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x50, 0x61, 0x79, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x44, 0x61, 0x74, + 0x61, 0x52, 0x0c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, + 0x51, 0x0a, 0x10, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x64, + 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x73, 0x79, 0x6e, 0x63, + 0x5f, 0x70, 0x62, 0x2e, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, + 0x43, 0x61, 0x72, 0x64, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x61, + 0x74, 0x61, 0x52, 0x0e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x61, + 0x74, 0x61, 0x22, 0x7e, 0x0a, 0x0e, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, + 0x00, 0x12, 0x16, 0x0a, 0x12, 0x4d, 0x41, 0x53, 0x4b, 0x45, 0x44, 0x5f, 0x43, 0x52, 0x45, 0x44, + 0x49, 0x54, 0x5f, 0x43, 0x41, 0x52, 0x44, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x50, 0x4f, 0x53, + 0x54, 0x41, 0x4c, 0x5f, 0x41, 0x44, 0x44, 0x52, 0x45, 0x53, 0x53, 0x10, 0x02, 0x12, 0x11, 0x0a, + 0x0d, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x45, 0x52, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x10, 0x03, + 0x12, 0x20, 0x0a, 0x1c, 0x43, 0x52, 0x45, 0x44, 0x49, 0x54, 0x5f, 0x43, 0x41, 0x52, 0x44, 0x5f, + 0x43, 0x4c, 0x4f, 0x55, 0x44, 0x5f, 0x54, 0x4f, 0x4b, 0x45, 0x4e, 0x5f, 0x44, 0x41, 0x54, 0x41, + 0x10, 0x04, 0x22, 0xb3, 0x02, 0x0a, 0x17, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x12, 0x39, + 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x73, + 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x54, + 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x75, 0x73, 0x65, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x75, 0x73, + 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x5f, 0x64, 0x61, + 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x75, 0x73, 0x65, 0x44, 0x61, 0x74, + 0x65, 0x12, 0x35, 0x0a, 0x17, 0x63, 0x61, 0x72, 0x64, 0x5f, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, + 0x67, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x14, 0x63, 0x61, 0x72, 0x64, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x41, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x15, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x5f, 0x68, 0x61, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x65, + 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x48, 0x61, 0x73, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x65, 0x64, 0x22, 0x2a, 0x0a, 0x04, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, + 0x00, 0x12, 0x08, 0x0a, 0x04, 0x43, 0x41, 0x52, 0x44, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x41, + 0x44, 0x44, 0x52, 0x45, 0x53, 0x53, 0x10, 0x02, 0x42, 0x36, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, + 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, + 0x6e, 0x74, 0x73, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x48, 0x03, 0x50, 0x01, 0x5a, 0x09, 0x2e, 0x2f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, } var ( @@ -2544,7 +2724,7 @@ func file_autofill_specifics_proto_rawDescGZIP() []byte { return file_autofill_specifics_proto_rawDescData } -var file_autofill_specifics_proto_enumTypes = make([]protoimpl.EnumInfo, 7) +var file_autofill_specifics_proto_enumTypes = make([]protoimpl.EnumInfo, 8) var file_autofill_specifics_proto_msgTypes = make([]protoimpl.MessageInfo, 10) var file_autofill_specifics_proto_goTypes = []interface{}{ (AutofillProfileSpecifics_VerificationStatus)(0), // 0: sync_pb.AutofillProfileSpecifics.VerificationStatus @@ -2552,18 +2732,19 @@ var file_autofill_specifics_proto_goTypes = []interface{}{ (WalletMaskedCreditCard_WalletCardStatus)(0), // 2: sync_pb.WalletMaskedCreditCard.WalletCardStatus (WalletMaskedCreditCard_WalletCardType)(0), // 3: sync_pb.WalletMaskedCreditCard.WalletCardType (WalletMaskedCreditCard_VirtualCardEnrollmentState)(0), // 4: sync_pb.WalletMaskedCreditCard.VirtualCardEnrollmentState - (AutofillWalletSpecifics_WalletInfoType)(0), // 5: sync_pb.AutofillWalletSpecifics.WalletInfoType - (WalletMetadataSpecifics_Type)(0), // 6: sync_pb.WalletMetadataSpecifics.Type - (*AutofillProfileSpecifics)(nil), // 7: sync_pb.AutofillProfileSpecifics - (*AutofillSpecifics)(nil), // 8: sync_pb.AutofillSpecifics - (*CloudTokenData)(nil), // 9: sync_pb.CloudTokenData - (*CardIssuer)(nil), // 10: sync_pb.CardIssuer - (*WalletMaskedCreditCard)(nil), // 11: sync_pb.WalletMaskedCreditCard - (*WalletPostalAddress)(nil), // 12: sync_pb.WalletPostalAddress - (*PaymentsCustomerData)(nil), // 13: sync_pb.PaymentsCustomerData - (*WalletCreditCardCloudTokenData)(nil), // 14: sync_pb.WalletCreditCardCloudTokenData - (*AutofillWalletSpecifics)(nil), // 15: sync_pb.AutofillWalletSpecifics - (*WalletMetadataSpecifics)(nil), // 16: sync_pb.WalletMetadataSpecifics + (WalletMaskedCreditCard_VirtualCardEnrollmentType)(0), // 5: sync_pb.WalletMaskedCreditCard.VirtualCardEnrollmentType + (AutofillWalletSpecifics_WalletInfoType)(0), // 6: sync_pb.AutofillWalletSpecifics.WalletInfoType + (WalletMetadataSpecifics_Type)(0), // 7: sync_pb.WalletMetadataSpecifics.Type + (*AutofillProfileSpecifics)(nil), // 8: sync_pb.AutofillProfileSpecifics + (*AutofillSpecifics)(nil), // 9: sync_pb.AutofillSpecifics + (*CloudTokenData)(nil), // 10: sync_pb.CloudTokenData + (*CardIssuer)(nil), // 11: sync_pb.CardIssuer + (*WalletMaskedCreditCard)(nil), // 12: sync_pb.WalletMaskedCreditCard + (*WalletPostalAddress)(nil), // 13: sync_pb.WalletPostalAddress + (*PaymentsCustomerData)(nil), // 14: sync_pb.PaymentsCustomerData + (*WalletCreditCardCloudTokenData)(nil), // 15: sync_pb.WalletCreditCardCloudTokenData + (*AutofillWalletSpecifics)(nil), // 16: sync_pb.AutofillWalletSpecifics + (*WalletMetadataSpecifics)(nil), // 17: sync_pb.WalletMetadataSpecifics } var file_autofill_specifics_proto_depIdxs = []int32{ 0, // 0: sync_pb.AutofillProfileSpecifics.name_honorific_status:type_name -> sync_pb.AutofillProfileSpecifics.VerificationStatus @@ -2579,35 +2760,39 @@ var file_autofill_specifics_proto_depIdxs = []int32{ 0, // 10: sync_pb.AutofillProfileSpecifics.address_home_state_status:type_name -> sync_pb.AutofillProfileSpecifics.VerificationStatus 0, // 11: sync_pb.AutofillProfileSpecifics.address_home_zip_status:type_name -> sync_pb.AutofillProfileSpecifics.VerificationStatus 0, // 12: sync_pb.AutofillProfileSpecifics.address_home_country_status:type_name -> sync_pb.AutofillProfileSpecifics.VerificationStatus - 0, // 13: sync_pb.AutofillProfileSpecifics.address_home_street_address_status:type_name -> sync_pb.AutofillProfileSpecifics.VerificationStatus - 0, // 14: sync_pb.AutofillProfileSpecifics.address_home_sorting_code_status:type_name -> sync_pb.AutofillProfileSpecifics.VerificationStatus - 0, // 15: sync_pb.AutofillProfileSpecifics.address_home_dependent_locality_status:type_name -> sync_pb.AutofillProfileSpecifics.VerificationStatus - 0, // 16: sync_pb.AutofillProfileSpecifics.address_home_language_code_status:type_name -> sync_pb.AutofillProfileSpecifics.VerificationStatus - 0, // 17: sync_pb.AutofillProfileSpecifics.address_home_thoroughfare_name_status:type_name -> sync_pb.AutofillProfileSpecifics.VerificationStatus - 0, // 18: sync_pb.AutofillProfileSpecifics.address_home_thoroughfare_number_status:type_name -> sync_pb.AutofillProfileSpecifics.VerificationStatus - 0, // 19: sync_pb.AutofillProfileSpecifics.address_home_dependent_thoroughfare_name_status:type_name -> sync_pb.AutofillProfileSpecifics.VerificationStatus - 0, // 20: sync_pb.AutofillProfileSpecifics.address_home_premise_name_status:type_name -> sync_pb.AutofillProfileSpecifics.VerificationStatus - 0, // 21: sync_pb.AutofillProfileSpecifics.address_home_subpremise_name_status:type_name -> sync_pb.AutofillProfileSpecifics.VerificationStatus - 0, // 22: sync_pb.AutofillProfileSpecifics.address_home_apt_num_status:type_name -> sync_pb.AutofillProfileSpecifics.VerificationStatus - 0, // 23: sync_pb.AutofillProfileSpecifics.address_home_floor_status:type_name -> sync_pb.AutofillProfileSpecifics.VerificationStatus - 7, // 24: sync_pb.AutofillSpecifics.profile:type_name -> sync_pb.AutofillProfileSpecifics - 1, // 25: sync_pb.CardIssuer.issuer:type_name -> sync_pb.CardIssuer.Issuer - 2, // 26: sync_pb.WalletMaskedCreditCard.status:type_name -> sync_pb.WalletMaskedCreditCard.WalletCardStatus - 3, // 27: sync_pb.WalletMaskedCreditCard.type:type_name -> sync_pb.WalletMaskedCreditCard.WalletCardType - 9, // 28: sync_pb.WalletMaskedCreditCard.cloud_token_data:type_name -> sync_pb.CloudTokenData - 10, // 29: sync_pb.WalletMaskedCreditCard.card_issuer:type_name -> sync_pb.CardIssuer - 4, // 30: sync_pb.WalletMaskedCreditCard.virtual_card_enrollment_state:type_name -> sync_pb.WalletMaskedCreditCard.VirtualCardEnrollmentState - 5, // 31: sync_pb.AutofillWalletSpecifics.type:type_name -> sync_pb.AutofillWalletSpecifics.WalletInfoType - 11, // 32: sync_pb.AutofillWalletSpecifics.masked_card:type_name -> sync_pb.WalletMaskedCreditCard - 12, // 33: sync_pb.AutofillWalletSpecifics.address:type_name -> sync_pb.WalletPostalAddress - 13, // 34: sync_pb.AutofillWalletSpecifics.customer_data:type_name -> sync_pb.PaymentsCustomerData - 14, // 35: sync_pb.AutofillWalletSpecifics.cloud_token_data:type_name -> sync_pb.WalletCreditCardCloudTokenData - 6, // 36: sync_pb.WalletMetadataSpecifics.type:type_name -> sync_pb.WalletMetadataSpecifics.Type - 37, // [37:37] is the sub-list for method output_type - 37, // [37:37] is the sub-list for method input_type - 37, // [37:37] is the sub-list for extension type_name - 37, // [37:37] is the sub-list for extension extendee - 0, // [0:37] is the sub-list for field type_name + 0, // 13: sync_pb.AutofillProfileSpecifics.address_home_landmark_status:type_name -> sync_pb.AutofillProfileSpecifics.VerificationStatus + 0, // 14: sync_pb.AutofillProfileSpecifics.address_home_between_streets_status:type_name -> sync_pb.AutofillProfileSpecifics.VerificationStatus + 0, // 15: sync_pb.AutofillProfileSpecifics.address_home_admin_level_2_status:type_name -> sync_pb.AutofillProfileSpecifics.VerificationStatus + 0, // 16: sync_pb.AutofillProfileSpecifics.address_home_street_address_status:type_name -> sync_pb.AutofillProfileSpecifics.VerificationStatus + 0, // 17: sync_pb.AutofillProfileSpecifics.address_home_sorting_code_status:type_name -> sync_pb.AutofillProfileSpecifics.VerificationStatus + 0, // 18: sync_pb.AutofillProfileSpecifics.address_home_dependent_locality_status:type_name -> sync_pb.AutofillProfileSpecifics.VerificationStatus + 0, // 19: sync_pb.AutofillProfileSpecifics.address_home_language_code_status:type_name -> sync_pb.AutofillProfileSpecifics.VerificationStatus + 0, // 20: sync_pb.AutofillProfileSpecifics.address_home_thoroughfare_name_status:type_name -> sync_pb.AutofillProfileSpecifics.VerificationStatus + 0, // 21: sync_pb.AutofillProfileSpecifics.address_home_thoroughfare_number_status:type_name -> sync_pb.AutofillProfileSpecifics.VerificationStatus + 0, // 22: sync_pb.AutofillProfileSpecifics.address_home_dependent_thoroughfare_name_status:type_name -> sync_pb.AutofillProfileSpecifics.VerificationStatus + 0, // 23: sync_pb.AutofillProfileSpecifics.address_home_premise_name_status:type_name -> sync_pb.AutofillProfileSpecifics.VerificationStatus + 0, // 24: sync_pb.AutofillProfileSpecifics.address_home_subpremise_name_status:type_name -> sync_pb.AutofillProfileSpecifics.VerificationStatus + 0, // 25: sync_pb.AutofillProfileSpecifics.address_home_apt_num_status:type_name -> sync_pb.AutofillProfileSpecifics.VerificationStatus + 0, // 26: sync_pb.AutofillProfileSpecifics.address_home_floor_status:type_name -> sync_pb.AutofillProfileSpecifics.VerificationStatus + 8, // 27: sync_pb.AutofillSpecifics.profile:type_name -> sync_pb.AutofillProfileSpecifics + 1, // 28: sync_pb.CardIssuer.issuer:type_name -> sync_pb.CardIssuer.Issuer + 2, // 29: sync_pb.WalletMaskedCreditCard.status:type_name -> sync_pb.WalletMaskedCreditCard.WalletCardStatus + 3, // 30: sync_pb.WalletMaskedCreditCard.type:type_name -> sync_pb.WalletMaskedCreditCard.WalletCardType + 10, // 31: sync_pb.WalletMaskedCreditCard.cloud_token_data:type_name -> sync_pb.CloudTokenData + 11, // 32: sync_pb.WalletMaskedCreditCard.card_issuer:type_name -> sync_pb.CardIssuer + 4, // 33: sync_pb.WalletMaskedCreditCard.virtual_card_enrollment_state:type_name -> sync_pb.WalletMaskedCreditCard.VirtualCardEnrollmentState + 5, // 34: sync_pb.WalletMaskedCreditCard.virtual_card_enrollment_type:type_name -> sync_pb.WalletMaskedCreditCard.VirtualCardEnrollmentType + 6, // 35: sync_pb.AutofillWalletSpecifics.type:type_name -> sync_pb.AutofillWalletSpecifics.WalletInfoType + 12, // 36: sync_pb.AutofillWalletSpecifics.masked_card:type_name -> sync_pb.WalletMaskedCreditCard + 13, // 37: sync_pb.AutofillWalletSpecifics.address:type_name -> sync_pb.WalletPostalAddress + 14, // 38: sync_pb.AutofillWalletSpecifics.customer_data:type_name -> sync_pb.PaymentsCustomerData + 15, // 39: sync_pb.AutofillWalletSpecifics.cloud_token_data:type_name -> sync_pb.WalletCreditCardCloudTokenData + 7, // 40: sync_pb.WalletMetadataSpecifics.type:type_name -> sync_pb.WalletMetadataSpecifics.Type + 41, // [41:41] is the sub-list for method output_type + 41, // [41:41] is the sub-list for method input_type + 41, // [41:41] is the sub-list for extension type_name + 41, // [41:41] is the sub-list for extension extendee + 0, // [0:41] is the sub-list for field type_name } func init() { file_autofill_specifics_proto_init() } @@ -2742,7 +2927,7 @@ func file_autofill_specifics_proto_init() { File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_autofill_specifics_proto_rawDesc, - NumEnums: 7, + NumEnums: 8, NumMessages: 10, NumExtensions: 0, NumServices: 0, diff --git a/schema/protobuf/sync_pb/autofill_specifics.proto b/schema/protobuf/sync_pb/autofill_specifics.proto index 264b272c..a565bbb2 100644 --- a/schema/protobuf/sync_pb/autofill_specifics.proto +++ b/schema/protobuf/sync_pb/autofill_specifics.proto @@ -1,4 +1,4 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2012 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // @@ -9,6 +9,8 @@ syntax = "proto2"; +option go_package = "./sync_pb"; + option java_multiple_files = true; option java_package = "org.chromium.components.sync.protocol"; @@ -45,7 +47,14 @@ message AutofillProfileSpecifics { } optional string guid = 15; - optional string origin = 16; + // Starting from M115, Autofill ignores the origin and doesn't distinguish + // between verified (meaning `deprecated_origin == kSettingsOrigin`) and + // unverified profiles anymore. However, clients prior to this milestone only + // accept updates to verified profiles through Sync if the remote profile is + // verified as well. For this reason, M115 clients and above always set the + // origin to kSettingsOrigin. + // TODO(crbug.com/1441905): Remove in a few milestones. + optional string deprecated_origin = 16; optional int64 use_count = 22; // The time_t value of the last time this profile was used. This @@ -106,6 +115,9 @@ message AutofillProfileSpecifics { optional string address_home_state = 10; optional string address_home_zip = 11; optional string address_home_country = 12; + optional string address_home_landmark = 67; + optional string address_home_between_streets = 69; + optional string address_home_admin_level_2 = 71; // Additional address fields for i18n. optional string address_home_street_address = 17; @@ -125,6 +137,9 @@ message AutofillProfileSpecifics { optional VerificationStatus address_home_state_status = 44; optional VerificationStatus address_home_zip_status = 45; optional VerificationStatus address_home_country_status = 46; + optional VerificationStatus address_home_landmark_status = 68; + optional VerificationStatus address_home_between_streets_status = 70; + optional VerificationStatus address_home_admin_level_2_status = 72; optional VerificationStatus address_home_street_address_status = 47; optional VerificationStatus address_home_sorting_code_status = 48; optional VerificationStatus address_home_dependent_locality_status = 49; @@ -141,11 +156,8 @@ message AutofillProfileSpecifics { // Phone. repeated string phone_home_whole_number = 13; - // The state indicates if the profile qualifies to get merged with a - // profile observed in a form submission. If true, the profile can still be - // updated silently, but it should not be considered for merges that need to - // involve user interactions. - optional bool disallow_settings_visible_updates = 63; + reserved 63; + reserved "disallow_settings_visible_updates"; // Birthdate fields. optional int32 birthdate_day = 64; @@ -175,9 +187,10 @@ message AutofillSpecifics { // name/value or credit_card) should be present. optional AutofillProfileSpecifics profile = 4; - // Obsolete credit card fields. - // optional bytes deprecated_encrypted_credit_card = 5; - // optional AutofillCreditCardSpecifics deprecated_credit_card = 6; + reserved 5; + reserved "encrypted_credit_card"; + reserved 6; + reserved "credit_card"; } // TODO(crbug.com/1020740): Deprecated, remove this once dependent change is @@ -205,8 +218,15 @@ message CardIssuer { ISSUER_UNKNOWN = 0; // Card where the issuer is Google. GOOGLE = 1; + // Card where the issuer is external. + EXTERNAL_ISSUER = 2; } optional Issuer issuer = 1; + + // Uniquely identifies the issuer of the card. This field is required when + // Issuer is EXTERNAL_ISSUER. + // Example: capitalone, amex. + optional string issuer_id = 2; } message WalletMaskedCreditCard { @@ -240,6 +260,12 @@ message WalletMaskedCreditCard { UNENROLLED_AND_ELIGIBLE = 4; } + enum VirtualCardEnrollmentType { + TYPE_UNSPECIFIED = 0; + ISSUER = 1; + NETWORK = 2; + } + // Server-generated unique ID string. This is opaque to the client. // This is the legacy version of |instrument_id|. optional string id = 1; @@ -285,11 +311,15 @@ message WalletMaskedCreditCard { // The state of virtual card enrollment. optional VirtualCardEnrollmentState virtual_card_enrollment_state = 16; - // The URL for the client to fetche the card art image. + // The URL for the client to fetch the card art image. optional string card_art_url = 17; // The product description for the card. Used to be shown in the UI. optional string product_description = 18; + + // The type of virtual card enrollment. TYPE_UNSPECIFIED indicates that the + // card is unenrolled. + optional VirtualCardEnrollmentType virtual_card_enrollment_type = 19; } // Different than an AutofillProfile because this represents some known address diff --git a/schema/protobuf/sync_pb/autofill_wallet_usage_specifics.pb.go b/schema/protobuf/sync_pb/autofill_wallet_usage_specifics.pb.go new file mode 100644 index 00000000..703a17f3 --- /dev/null +++ b/schema/protobuf/sync_pb/autofill_wallet_usage_specifics.pb.go @@ -0,0 +1,299 @@ +// Copyright 2022 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// If you change or add any fields in this file, update proto_visitors.h and +// potentially proto_enum_conversions.{h, cc}. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.31.0 +// protoc v3.21.1 +// source: autofill_wallet_usage_specifics.proto + +package sync_pb + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type AutofillWalletUsageSpecifics struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // A unique ID identifying this item. Used as the client tag. + Guid *string `protobuf:"bytes,1,opt,name=guid" json:"guid,omitempty"` + // The type of usage data this entity is associated with. + // + // Types that are assignable to UsageDataType: + // + // *AutofillWalletUsageSpecifics_VirtualCardUsageData_ + UsageDataType isAutofillWalletUsageSpecifics_UsageDataType `protobuf_oneof:"usage_data_type"` +} + +func (x *AutofillWalletUsageSpecifics) Reset() { + *x = AutofillWalletUsageSpecifics{} + if protoimpl.UnsafeEnabled { + mi := &file_autofill_wallet_usage_specifics_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AutofillWalletUsageSpecifics) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AutofillWalletUsageSpecifics) ProtoMessage() {} + +func (x *AutofillWalletUsageSpecifics) ProtoReflect() protoreflect.Message { + mi := &file_autofill_wallet_usage_specifics_proto_msgTypes[0] + 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 AutofillWalletUsageSpecifics.ProtoReflect.Descriptor instead. +func (*AutofillWalletUsageSpecifics) Descriptor() ([]byte, []int) { + return file_autofill_wallet_usage_specifics_proto_rawDescGZIP(), []int{0} +} + +func (x *AutofillWalletUsageSpecifics) GetGuid() string { + if x != nil && x.Guid != nil { + return *x.Guid + } + return "" +} + +func (m *AutofillWalletUsageSpecifics) GetUsageDataType() isAutofillWalletUsageSpecifics_UsageDataType { + if m != nil { + return m.UsageDataType + } + return nil +} + +func (x *AutofillWalletUsageSpecifics) GetVirtualCardUsageData() *AutofillWalletUsageSpecifics_VirtualCardUsageData { + if x, ok := x.GetUsageDataType().(*AutofillWalletUsageSpecifics_VirtualCardUsageData_); ok { + return x.VirtualCardUsageData + } + return nil +} + +type isAutofillWalletUsageSpecifics_UsageDataType interface { + isAutofillWalletUsageSpecifics_UsageDataType() +} + +type AutofillWalletUsageSpecifics_VirtualCardUsageData_ struct { + VirtualCardUsageData *AutofillWalletUsageSpecifics_VirtualCardUsageData `protobuf:"bytes,2,opt,name=virtual_card_usage_data,json=virtualCardUsageData,oneof"` +} + +func (*AutofillWalletUsageSpecifics_VirtualCardUsageData_) isAutofillWalletUsageSpecifics_UsageDataType() { +} + +type AutofillWalletUsageSpecifics_VirtualCardUsageData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The instrument id of the actual card that the virtual card is related to. + InstrumentId *int64 `protobuf:"varint,1,opt,name=instrument_id,json=instrumentId" json:"instrument_id,omitempty"` + // The last four of the virtual card number. This is tied to the usage + // data because the virtual card number may vary depending on merchants. + VirtualCardLastFour *string `protobuf:"bytes,2,opt,name=virtual_card_last_four,json=virtualCardLastFour" json:"virtual_card_last_four,omitempty"` + // The url of the merchant where the virtual card is used. + MerchantUrl *string `protobuf:"bytes,3,opt,name=merchant_url,json=merchantUrl" json:"merchant_url,omitempty"` + // The merchant the usage data is related to on the Android platform. + MerchantAppPackage *string `protobuf:"bytes,4,opt,name=merchant_app_package,json=merchantAppPackage" json:"merchant_app_package,omitempty"` +} + +func (x *AutofillWalletUsageSpecifics_VirtualCardUsageData) Reset() { + *x = AutofillWalletUsageSpecifics_VirtualCardUsageData{} + if protoimpl.UnsafeEnabled { + mi := &file_autofill_wallet_usage_specifics_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AutofillWalletUsageSpecifics_VirtualCardUsageData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AutofillWalletUsageSpecifics_VirtualCardUsageData) ProtoMessage() {} + +func (x *AutofillWalletUsageSpecifics_VirtualCardUsageData) ProtoReflect() protoreflect.Message { + mi := &file_autofill_wallet_usage_specifics_proto_msgTypes[1] + 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 AutofillWalletUsageSpecifics_VirtualCardUsageData.ProtoReflect.Descriptor instead. +func (*AutofillWalletUsageSpecifics_VirtualCardUsageData) Descriptor() ([]byte, []int) { + return file_autofill_wallet_usage_specifics_proto_rawDescGZIP(), []int{0, 0} +} + +func (x *AutofillWalletUsageSpecifics_VirtualCardUsageData) GetInstrumentId() int64 { + if x != nil && x.InstrumentId != nil { + return *x.InstrumentId + } + return 0 +} + +func (x *AutofillWalletUsageSpecifics_VirtualCardUsageData) GetVirtualCardLastFour() string { + if x != nil && x.VirtualCardLastFour != nil { + return *x.VirtualCardLastFour + } + return "" +} + +func (x *AutofillWalletUsageSpecifics_VirtualCardUsageData) GetMerchantUrl() string { + if x != nil && x.MerchantUrl != nil { + return *x.MerchantUrl + } + return "" +} + +func (x *AutofillWalletUsageSpecifics_VirtualCardUsageData) GetMerchantAppPackage() string { + if x != nil && x.MerchantAppPackage != nil { + return *x.MerchantAppPackage + } + return "" +} + +var File_autofill_wallet_usage_specifics_proto protoreflect.FileDescriptor + +var file_autofill_wallet_usage_specifics_proto_rawDesc = []byte{ + 0x0a, 0x25, 0x61, 0x75, 0x74, 0x6f, 0x66, 0x69, 0x6c, 0x6c, 0x5f, 0x77, 0x61, 0x6c, 0x6c, 0x65, + 0x74, 0x5f, 0x75, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, + 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x07, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, + 0x22, 0x82, 0x03, 0x0a, 0x1c, 0x41, 0x75, 0x74, 0x6f, 0x66, 0x69, 0x6c, 0x6c, 0x57, 0x61, 0x6c, + 0x6c, 0x65, 0x74, 0x55, 0x73, 0x61, 0x67, 0x65, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, + 0x73, 0x12, 0x12, 0x0a, 0x04, 0x67, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x67, 0x75, 0x69, 0x64, 0x12, 0x73, 0x0a, 0x17, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, + 0x5f, 0x63, 0x61, 0x72, 0x64, 0x5f, 0x75, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, + 0x2e, 0x41, 0x75, 0x74, 0x6f, 0x66, 0x69, 0x6c, 0x6c, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x55, + 0x73, 0x61, 0x67, 0x65, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x56, 0x69, + 0x72, 0x74, 0x75, 0x61, 0x6c, 0x43, 0x61, 0x72, 0x64, 0x55, 0x73, 0x61, 0x67, 0x65, 0x44, 0x61, + 0x74, 0x61, 0x48, 0x00, 0x52, 0x14, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x43, 0x61, 0x72, + 0x64, 0x55, 0x73, 0x61, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, 0x1a, 0xc5, 0x01, 0x0a, 0x14, 0x56, + 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x43, 0x61, 0x72, 0x64, 0x55, 0x73, 0x61, 0x67, 0x65, 0x44, + 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x6d, 0x65, 0x6e, + 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x69, 0x6e, 0x73, 0x74, + 0x72, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x33, 0x0a, 0x16, 0x76, 0x69, 0x72, 0x74, + 0x75, 0x61, 0x6c, 0x5f, 0x63, 0x61, 0x72, 0x64, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x6f, + 0x75, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, + 0x6c, 0x43, 0x61, 0x72, 0x64, 0x4c, 0x61, 0x73, 0x74, 0x46, 0x6f, 0x75, 0x72, 0x12, 0x21, 0x0a, + 0x0c, 0x6d, 0x65, 0x72, 0x63, 0x68, 0x61, 0x6e, 0x74, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6d, 0x65, 0x72, 0x63, 0x68, 0x61, 0x6e, 0x74, 0x55, 0x72, 0x6c, + 0x12, 0x30, 0x0a, 0x14, 0x6d, 0x65, 0x72, 0x63, 0x68, 0x61, 0x6e, 0x74, 0x5f, 0x61, 0x70, 0x70, + 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, + 0x6d, 0x65, 0x72, 0x63, 0x68, 0x61, 0x6e, 0x74, 0x41, 0x70, 0x70, 0x50, 0x61, 0x63, 0x6b, 0x61, + 0x67, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x75, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x36, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, 0x72, + 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, + 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x03, + 0x50, 0x01, 0x5a, 0x09, 0x2e, 0x2f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, +} + +var ( + file_autofill_wallet_usage_specifics_proto_rawDescOnce sync.Once + file_autofill_wallet_usage_specifics_proto_rawDescData = file_autofill_wallet_usage_specifics_proto_rawDesc +) + +func file_autofill_wallet_usage_specifics_proto_rawDescGZIP() []byte { + file_autofill_wallet_usage_specifics_proto_rawDescOnce.Do(func() { + file_autofill_wallet_usage_specifics_proto_rawDescData = protoimpl.X.CompressGZIP(file_autofill_wallet_usage_specifics_proto_rawDescData) + }) + return file_autofill_wallet_usage_specifics_proto_rawDescData +} + +var file_autofill_wallet_usage_specifics_proto_msgTypes = make([]protoimpl.MessageInfo, 2) +var file_autofill_wallet_usage_specifics_proto_goTypes = []interface{}{ + (*AutofillWalletUsageSpecifics)(nil), // 0: sync_pb.AutofillWalletUsageSpecifics + (*AutofillWalletUsageSpecifics_VirtualCardUsageData)(nil), // 1: sync_pb.AutofillWalletUsageSpecifics.VirtualCardUsageData +} +var file_autofill_wallet_usage_specifics_proto_depIdxs = []int32{ + 1, // 0: sync_pb.AutofillWalletUsageSpecifics.virtual_card_usage_data:type_name -> sync_pb.AutofillWalletUsageSpecifics.VirtualCardUsageData + 1, // [1:1] is the sub-list for method output_type + 1, // [1:1] is the sub-list for method input_type + 1, // [1:1] is the sub-list for extension type_name + 1, // [1:1] is the sub-list for extension extendee + 0, // [0:1] is the sub-list for field type_name +} + +func init() { file_autofill_wallet_usage_specifics_proto_init() } +func file_autofill_wallet_usage_specifics_proto_init() { + if File_autofill_wallet_usage_specifics_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_autofill_wallet_usage_specifics_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AutofillWalletUsageSpecifics); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_autofill_wallet_usage_specifics_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AutofillWalletUsageSpecifics_VirtualCardUsageData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_autofill_wallet_usage_specifics_proto_msgTypes[0].OneofWrappers = []interface{}{ + (*AutofillWalletUsageSpecifics_VirtualCardUsageData_)(nil), + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_autofill_wallet_usage_specifics_proto_rawDesc, + NumEnums: 0, + NumMessages: 2, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_autofill_wallet_usage_specifics_proto_goTypes, + DependencyIndexes: file_autofill_wallet_usage_specifics_proto_depIdxs, + MessageInfos: file_autofill_wallet_usage_specifics_proto_msgTypes, + }.Build() + File_autofill_wallet_usage_specifics_proto = out.File + file_autofill_wallet_usage_specifics_proto_rawDesc = nil + file_autofill_wallet_usage_specifics_proto_goTypes = nil + file_autofill_wallet_usage_specifics_proto_depIdxs = nil +} diff --git a/schema/protobuf/sync_pb/autofill_wallet_usage_specifics.proto b/schema/protobuf/sync_pb/autofill_wallet_usage_specifics.proto new file mode 100644 index 00000000..151fe0f8 --- /dev/null +++ b/schema/protobuf/sync_pb/autofill_wallet_usage_specifics.proto @@ -0,0 +1,45 @@ +// Copyright 2022 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// If you change or add any fields in this file, update proto_visitors.h and +// potentially proto_enum_conversions.{h, cc}. + +syntax = "proto2"; + +option go_package = "./sync_pb"; + +option java_multiple_files = true; +option java_package = "org.chromium.components.sync.protocol"; + +option optimize_for = LITE_RUNTIME; + +package sync_pb; + +// Autofill usage data related objects which contains usage data of a payment +// method related to a specific merchant. + +message AutofillWalletUsageSpecifics { + // A unique ID identifying this item. Used as the client tag. + optional string guid = 1; + + // The type of usage data this entity is associated with. + oneof usage_data_type { + VirtualCardUsageData virtual_card_usage_data = 2; + } + + message VirtualCardUsageData { + // The instrument id of the actual card that the virtual card is related to. + optional int64 instrument_id = 1; + + // The last four of the virtual card number. This is tied to the usage + // data because the virtual card number may vary depending on merchants. + optional string virtual_card_last_four = 2; + + // The url of the merchant where the virtual card is used. + optional string merchant_url = 3; + + // The merchant the usage data is related to on the Android platform. + optional string merchant_app_package = 4; + } +} diff --git a/schema/protobuf/sync_pb/bookmark_model_metadata.pb.go b/schema/protobuf/sync_pb/bookmark_model_metadata.pb.go index def46e50..7a1de4ce 100644 --- a/schema/protobuf/sync_pb/bookmark_model_metadata.pb.go +++ b/schema/protobuf/sync_pb/bookmark_model_metadata.pb.go @@ -1,10 +1,10 @@ -// Copyright 2018 The Chromium Authors. All rights reserved. +// Copyright 2018 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.0 +// protoc-gen-go v1.31.0 // protoc v3.21.1 // source: bookmark_model_metadata.proto @@ -124,6 +124,10 @@ type BookmarkModelMetadata struct { // time the last update was ignored. To distinguish between these two, the // field above can be used. MaxVersionAmongIgnoredUpdatesDueToMissingParent *int64 `protobuf:"varint,8,opt,name=max_version_among_ignored_updates_due_to_missing_parent,json=maxVersionAmongIgnoredUpdatesDueToMissingParent" json:"max_version_among_ignored_updates_due_to_missing_parent,omitempty"` + // Indicates whether the count of remote updates during the latest initial + // merge exceeded the bookmark limit. This field is mutually exclusive to all + // the other fields and is managed completely by the processor. + LastInitialMergeRemoteUpdatesExceededLimit *bool `protobuf:"varint,9,opt,name=last_initial_merge_remote_updates_exceeded_limit,json=lastInitialMergeRemoteUpdatesExceededLimit" json:"last_initial_merge_remote_updates_exceeded_limit,omitempty"` } func (x *BookmarkModelMetadata) Reset() { @@ -193,6 +197,13 @@ func (x *BookmarkModelMetadata) GetMaxVersionAmongIgnoredUpdatesDueToMissingPare return 0 } +func (x *BookmarkModelMetadata) GetLastInitialMergeRemoteUpdatesExceededLimit() bool { + if x != nil && x.LastInitialMergeRemoteUpdatesExceededLimit != nil { + return *x.LastInitialMergeRemoteUpdatesExceededLimit + } + return false +} + var File_bookmark_model_metadata_proto protoreflect.FileDescriptor var file_bookmark_model_metadata_proto_rawDesc = []byte{ @@ -207,7 +218,7 @@ var file_bookmark_model_metadata_proto_rawDesc = []byte{ 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x22, 0xd3, 0x03, 0x0a, 0x15, 0x42, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x4d, 0x6f, 0x64, + 0x22, 0xb9, 0x04, 0x0a, 0x15, 0x42, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x41, 0x0a, 0x10, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x4d, @@ -235,11 +246,18 @@ var file_bookmark_model_metadata_proto_rawDesc = []byte{ 0x01, 0x28, 0x03, 0x52, 0x2f, 0x6d, 0x61, 0x78, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x6d, 0x6f, 0x6e, 0x67, 0x49, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x64, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x44, 0x75, 0x65, 0x54, 0x6f, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x50, 0x61, - 0x72, 0x65, 0x6e, 0x74, 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04, 0x4a, 0x04, 0x08, 0x04, 0x10, 0x05, - 0x4a, 0x04, 0x08, 0x05, 0x10, 0x06, 0x42, 0x2b, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, - 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, - 0x73, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, - 0x03, 0x50, 0x01, + 0x72, 0x65, 0x6e, 0x74, 0x12, 0x64, 0x0a, 0x30, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x69, 0x6e, 0x69, + 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x6d, 0x65, 0x72, 0x67, 0x65, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, + 0x65, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x5f, 0x65, 0x78, 0x63, 0x65, 0x65, 0x64, + 0x65, 0x64, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x2a, + 0x6c, 0x61, 0x73, 0x74, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x4d, 0x65, 0x72, 0x67, 0x65, + 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x45, 0x78, 0x63, + 0x65, 0x65, 0x64, 0x65, 0x64, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04, + 0x4a, 0x04, 0x08, 0x04, 0x10, 0x05, 0x4a, 0x04, 0x08, 0x05, 0x10, 0x06, 0x42, 0x36, 0x0a, 0x25, + 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, + 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x03, 0x50, 0x01, 0x5a, 0x09, 0x2e, 0x2f, 0x73, 0x79, 0x6e, + 0x63, 0x5f, 0x70, 0x62, } var ( diff --git a/schema/protobuf/sync_pb/bookmark_model_metadata.proto b/schema/protobuf/sync_pb/bookmark_model_metadata.proto index 4f052c13..8bf821d9 100644 --- a/schema/protobuf/sync_pb/bookmark_model_metadata.proto +++ b/schema/protobuf/sync_pb/bookmark_model_metadata.proto @@ -1,9 +1,11 @@ -// Copyright 2018 The Chromium Authors. All rights reserved. +// Copyright 2018 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. syntax = "proto2"; +option go_package = "./sync_pb"; + option java_multiple_files = true; option java_package = "org.chromium.components.sync.protocol"; @@ -71,4 +73,9 @@ message BookmarkModelMetadata { // time the last update was ignored. To distinguish between these two, the // field above can be used. optional int64 max_version_among_ignored_updates_due_to_missing_parent = 8; + + // Indicates whether the count of remote updates during the latest initial + // merge exceeded the bookmark limit. This field is mutually exclusive to all + // the other fields and is managed completely by the processor. + optional bool last_initial_merge_remote_updates_exceeded_limit = 9; } diff --git a/schema/protobuf/sync_pb/bookmark_specifics.pb.go b/schema/protobuf/sync_pb/bookmark_specifics.pb.go index 4e3f30f7..3393f1d6 100644 --- a/schema/protobuf/sync_pb/bookmark_specifics.pb.go +++ b/schema/protobuf/sync_pb/bookmark_specifics.pb.go @@ -1,4 +1,4 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2012 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // @@ -9,7 +9,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.0 +// protoc-gen-go v1.31.0 // protoc v3.21.1 // source: bookmark_specifics.proto @@ -169,14 +169,14 @@ type BookmarkSpecifics struct { // The URL of the favicon image encoded in field |favicon|. Note that there // are various cases where this URL may be missing (field unset or empty) even // if the |favicon| field (image content) is populated: - // 1. WebUI pages such as "chrome://bookmarks/" are missing a favicon URL but - // they have a favicon. - // 2. Data generated by ancient clients (prior to M25) may not contain the - // favicon URL. - // 3. If the favicon URL is too large (determined by |kMaxFaviconUrlSize|) it - // may be omitted by clients to avoid running into the max-entity-size - // limit. Most notably, this includes URLs prefixed with the data: scheme - // that may encode the image content itself in the URL. + // 1. WebUI pages such as "chrome://bookmarks/" are missing a favicon URL but + // they have a favicon. + // 2. Data generated by ancient clients (prior to M25) may not contain the + // favicon URL. + // 3. If the favicon URL is too large (determined by |kMaxFaviconUrlSize|) it + // may be omitted by clients to avoid running into the max-entity-size + // limit. Most notably, this includes URLs prefixed with the data: scheme + // that may encode the image content itself in the URL. IconUrl *string `protobuf:"bytes,5,opt,name=icon_url,json=iconUrl" json:"icon_url,omitempty"` MetaInfo []*MetaInfo `protobuf:"bytes,6,rep,name=meta_info,json=metaInfo" json:"meta_info,omitempty"` // Introduced in M81, it represents a globally unique and immutable ID. @@ -200,6 +200,9 @@ type BookmarkSpecifics struct { // redundant to the similar field in SyncEntity. If this field in specifics is // set, it takes precedence over the one in SyncEntity. UniquePosition *UniquePosition `protobuf:"bytes,16,opt,name=unique_position,json=uniquePosition" json:"unique_position,omitempty"` + // Introduced in M106, corresponds to BookmarkNode::date_last_used() + // represented as microseconds since the Windows epoch. + LastUsedTimeUs *int64 `protobuf:"varint,17,opt,name=last_used_time_us,json=lastUsedTimeUs" json:"last_used_time_us,omitempty"` } func (x *BookmarkSpecifics) Reset() { @@ -311,6 +314,13 @@ func (x *BookmarkSpecifics) GetUniquePosition() *UniquePosition { return nil } +func (x *BookmarkSpecifics) GetLastUsedTimeUs() int64 { + if x != nil && x.LastUsedTimeUs != nil { + return *x.LastUsedTimeUs + } + return 0 +} + var File_bookmark_specifics_proto protoreflect.FileDescriptor var file_bookmark_specifics_proto_rawDesc = []byte{ @@ -320,7 +330,7 @@ var file_bookmark_specifics_proto_rawDesc = []byte{ 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x32, 0x0a, 0x08, 0x4d, 0x65, 0x74, 0x61, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x89, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xb4, 0x04, 0x0a, 0x11, 0x42, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x61, 0x76, 0x69, 0x63, 0x6f, @@ -348,15 +358,18 @@ var file_bookmark_specifics_proto_rawDesc = []byte{ 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0e, - 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, - 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, - 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x55, 0x52, 0x4c, 0x10, 0x01, - 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x4f, 0x4c, 0x44, 0x45, 0x52, 0x10, 0x02, 0x4a, 0x04, 0x08, 0x07, - 0x10, 0x08, 0x4a, 0x04, 0x08, 0x08, 0x10, 0x09, 0x4a, 0x04, 0x08, 0x09, 0x10, 0x0a, 0x4a, 0x04, - 0x08, 0x0c, 0x10, 0x0d, 0x4a, 0x04, 0x08, 0x0d, 0x10, 0x0e, 0x42, 0x2b, 0x0a, 0x25, 0x6f, 0x72, - 0x67, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, - 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x63, 0x6f, 0x6c, 0x48, 0x03, 0x50, 0x01, + 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x29, + 0x0a, 0x11, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, + 0x5f, 0x75, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x55, + 0x73, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x55, 0x73, 0x22, 0x2c, 0x0a, 0x04, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, + 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x55, 0x52, 0x4c, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x46, + 0x4f, 0x4c, 0x44, 0x45, 0x52, 0x10, 0x02, 0x4a, 0x04, 0x08, 0x07, 0x10, 0x08, 0x4a, 0x04, 0x08, + 0x08, 0x10, 0x09, 0x4a, 0x04, 0x08, 0x09, 0x10, 0x0a, 0x4a, 0x04, 0x08, 0x0c, 0x10, 0x0d, 0x4a, + 0x04, 0x08, 0x0d, 0x10, 0x0e, 0x42, 0x36, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, 0x72, + 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, + 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x03, + 0x50, 0x01, 0x5a, 0x09, 0x2e, 0x2f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, } var ( diff --git a/schema/protobuf/sync_pb/bookmark_specifics.proto b/schema/protobuf/sync_pb/bookmark_specifics.proto index 942d1d2a..6ebfe620 100644 --- a/schema/protobuf/sync_pb/bookmark_specifics.proto +++ b/schema/protobuf/sync_pb/bookmark_specifics.proto @@ -1,4 +1,4 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2012 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // @@ -9,6 +9,8 @@ syntax = "proto2"; +option go_package = "./sync_pb"; + option java_multiple_files = true; option java_package = "org.chromium.components.sync.protocol"; @@ -88,4 +90,8 @@ message BookmarkSpecifics { // redundant to the similar field in SyncEntity. If this field in specifics is // set, it takes precedence over the one in SyncEntity. optional UniquePosition unique_position = 16; + + // Introduced in M106, corresponds to BookmarkNode::date_last_used() + // represented as microseconds since the Windows epoch. + optional int64 last_used_time_us = 17; } diff --git a/schema/protobuf/sync_pb/brave_device_info_specifics.pb.go b/schema/protobuf/sync_pb/brave_device_info_specifics.pb.go index e91642e5..cfa236c4 100644 --- a/schema/protobuf/sync_pb/brave_device_info_specifics.pb.go +++ b/schema/protobuf/sync_pb/brave_device_info_specifics.pb.go @@ -5,7 +5,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.0 +// protoc-gen-go v1.31.0 // protoc v3.21.1 // source: brave_device_info_specifics.proto @@ -82,10 +82,11 @@ var file_brave_device_info_specifics_proto_rawDesc = []byte{ 0x6c, 0x64, 0x73, 0x12, 0x37, 0x0a, 0x18, 0x69, 0x73, 0x5f, 0x73, 0x65, 0x6c, 0x66, 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x69, 0x73, 0x53, 0x65, 0x6c, 0x66, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, 0x2b, 0x0a, 0x25, + 0x65, 0x74, 0x65, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, 0x36, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x03, 0x50, 0x01, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x03, 0x50, 0x01, 0x5a, 0x09, 0x2e, 0x2f, 0x73, 0x79, 0x6e, + 0x63, 0x5f, 0x70, 0x62, } var ( diff --git a/schema/protobuf/sync_pb/brave_device_info_specifics.proto b/schema/protobuf/sync_pb/brave_device_info_specifics.proto index d77f67ec..abdf7dd8 100644 --- a/schema/protobuf/sync_pb/brave_device_info_specifics.proto +++ b/schema/protobuf/sync_pb/brave_device_info_specifics.proto @@ -5,6 +5,8 @@ syntax = "proto2"; +option go_package = "./sync_pb"; + option java_multiple_files = true; option java_package = "org.chromium.components.sync.protocol"; diff --git a/schema/protobuf/sync_pb/client_commands.pb.go b/schema/protobuf/sync_pb/client_commands.pb.go index ad17f1bb..8bc46825 100644 --- a/schema/protobuf/sync_pb/client_commands.pb.go +++ b/schema/protobuf/sync_pb/client_commands.pb.go @@ -1,4 +1,4 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2012 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // @@ -9,7 +9,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.0 +// protoc-gen-go v1.31.0 // protoc v3.21.1 // source: client_commands.proto @@ -93,7 +93,7 @@ type ClientCommand struct { SetSyncPollInterval *int32 `protobuf:"varint,1,opt,name=set_sync_poll_interval,json=setSyncPollInterval" json:"set_sync_poll_interval,omitempty"` // in seconds // This has been deprecated since M75. // - // Deprecated: Do not use. + // Deprecated: Marked as deprecated in client_commands.proto. SetSyncLongPollInterval *int32 `protobuf:"varint,2,opt,name=set_sync_long_poll_interval,json=setSyncLongPollInterval" json:"set_sync_long_poll_interval,omitempty"` MaxCommitBatchSize *int32 `protobuf:"varint,3,opt,name=max_commit_batch_size,json=maxCommitBatchSize" json:"max_commit_batch_size,omitempty"` // Number of seconds to delay between a sessions action and sending a commit @@ -101,7 +101,9 @@ type ClientCommand struct { SessionsCommitDelaySeconds *int32 `protobuf:"varint,4,opt,name=sessions_commit_delay_seconds,json=sessionsCommitDelaySeconds" json:"sessions_commit_delay_seconds,omitempty"` // Number of seconds to delay before the throttled client should retry. ThrottleDelaySeconds *int32 `protobuf:"varint,5,opt,name=throttle_delay_seconds,json=throttleDelaySeconds" json:"throttle_delay_seconds,omitempty"` - // Maximum number of local nudges to buffer per-type. + // This has been deprecated since M109. + // + // Deprecated: Marked as deprecated in client_commands.proto. ClientInvalidationHintBufferSize *int32 `protobuf:"varint,6,opt,name=client_invalidation_hint_buffer_size,json=clientInvalidationHintBufferSize" json:"client_invalidation_hint_buffer_size,omitempty"` // Time to wait before issuing a retry GU. GuRetryDelaySeconds *int32 `protobuf:"varint,7,opt,name=gu_retry_delay_seconds,json=guRetryDelaySeconds" json:"gu_retry_delay_seconds,omitempty"` @@ -158,7 +160,7 @@ func (x *ClientCommand) GetSetSyncPollInterval() int32 { return 0 } -// Deprecated: Do not use. +// Deprecated: Marked as deprecated in client_commands.proto. func (x *ClientCommand) GetSetSyncLongPollInterval() int32 { if x != nil && x.SetSyncLongPollInterval != nil { return *x.SetSyncLongPollInterval @@ -187,6 +189,7 @@ func (x *ClientCommand) GetThrottleDelaySeconds() int32 { return 0 } +// Deprecated: Marked as deprecated in client_commands.proto. func (x *ClientCommand) GetClientInvalidationHintBufferSize() int32 { if x != nil && x.ClientInvalidationHintBufferSize != nil { return *x.ClientInvalidationHintBufferSize @@ -239,7 +242,7 @@ var file_client_commands_proto_rawDesc = []byte{ 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x64, 0x61, 0x74, 0x61, 0x74, 0x79, 0x70, 0x65, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x4d, 0x73, - 0x22, 0xff, 0x05, 0x0a, 0x0d, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x61, + 0x22, 0x83, 0x06, 0x0a, 0x0d, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x33, 0x0a, 0x16, 0x73, 0x65, 0x74, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x6f, 0x6c, 0x6c, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x13, 0x73, 0x65, 0x74, 0x53, 0x79, 0x6e, 0x63, 0x50, 0x6f, 0x6c, 0x6c, 0x49, @@ -258,38 +261,39 @@ var file_client_commands_proto_rawDesc = []byte{ 0x34, 0x0a, 0x16, 0x74, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x14, 0x74, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x53, 0x65, - 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x4e, 0x0a, 0x24, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, + 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x52, 0x0a, 0x24, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x68, 0x69, 0x6e, 0x74, 0x5f, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x20, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x76, 0x61, 0x6c, - 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x69, 0x6e, 0x74, 0x42, 0x75, 0x66, 0x66, 0x65, - 0x72, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x33, 0x0a, 0x16, 0x67, 0x75, 0x5f, 0x72, 0x65, 0x74, 0x72, - 0x79, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x13, 0x67, 0x75, 0x52, 0x65, 0x74, 0x72, 0x79, 0x44, 0x65, - 0x6c, 0x61, 0x79, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x49, 0x0a, 0x13, 0x63, 0x75, - 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6e, 0x75, 0x64, 0x67, 0x65, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, - 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, - 0x62, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4e, 0x75, 0x64, 0x67, 0x65, 0x44, 0x65, 0x6c, - 0x61, 0x79, 0x52, 0x11, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4e, 0x75, 0x64, 0x67, 0x65, 0x44, - 0x65, 0x6c, 0x61, 0x79, 0x73, 0x12, 0x3b, 0x0a, 0x1a, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, - 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x74, 0x6f, 0x6b, - 0x65, 0x6e, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x17, 0x65, 0x78, 0x74, 0x65, 0x6e, - 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x73, 0x4d, 0x61, 0x78, 0x54, 0x6f, 0x6b, 0x65, - 0x6e, 0x73, 0x12, 0x54, 0x0a, 0x27, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, - 0x74, 0x79, 0x70, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x66, 0x69, 0x6c, 0x6c, 0x5f, 0x69, 0x6e, 0x74, - 0x65, 0x72, 0x76, 0x61, 0x6c, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x0a, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x23, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, - 0x70, 0x65, 0x73, 0x52, 0x65, 0x66, 0x69, 0x6c, 0x6c, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, - 0x6c, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x68, 0x0a, 0x32, 0x65, 0x78, 0x74, 0x65, - 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x5f, 0x64, 0x65, 0x70, 0x6c, - 0x65, 0x74, 0x65, 0x64, 0x5f, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x5f, 0x6e, 0x75, 0x64, 0x67, 0x65, - 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x0b, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x2c, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x54, - 0x79, 0x70, 0x65, 0x73, 0x44, 0x65, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x51, 0x75, 0x6f, 0x74, - 0x61, 0x4e, 0x75, 0x64, 0x67, 0x65, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x53, 0x65, 0x63, 0x6f, 0x6e, - 0x64, 0x73, 0x42, 0x2b, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, - 0x75, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x73, 0x79, - 0x6e, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x03, 0x50, 0x01, + 0x01, 0x28, 0x05, 0x42, 0x02, 0x18, 0x01, 0x52, 0x20, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, + 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x69, 0x6e, 0x74, 0x42, + 0x75, 0x66, 0x66, 0x65, 0x72, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x33, 0x0a, 0x16, 0x67, 0x75, 0x5f, + 0x72, 0x65, 0x74, 0x72, 0x79, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x73, 0x65, 0x63, 0x6f, + 0x6e, 0x64, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x13, 0x67, 0x75, 0x52, 0x65, 0x74, + 0x72, 0x79, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x49, + 0x0a, 0x13, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6e, 0x75, 0x64, 0x67, 0x65, 0x5f, 0x64, + 0x65, 0x6c, 0x61, 0x79, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x79, + 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4e, 0x75, 0x64, 0x67, + 0x65, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x52, 0x11, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4e, 0x75, + 0x64, 0x67, 0x65, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x73, 0x12, 0x3b, 0x0a, 0x1a, 0x65, 0x78, 0x74, + 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x5f, 0x6d, 0x61, 0x78, + 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x17, 0x65, + 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x73, 0x4d, 0x61, 0x78, + 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x12, 0x54, 0x0a, 0x27, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, + 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x66, 0x69, 0x6c, 0x6c, + 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, + 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x23, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, + 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x73, 0x52, 0x65, 0x66, 0x69, 0x6c, 0x6c, 0x49, 0x6e, 0x74, + 0x65, 0x72, 0x76, 0x61, 0x6c, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x68, 0x0a, 0x32, + 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x5f, + 0x64, 0x65, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x5f, 0x6e, + 0x75, 0x64, 0x67, 0x65, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, + 0x64, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x2c, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, + 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x73, 0x44, 0x65, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, + 0x51, 0x75, 0x6f, 0x74, 0x61, 0x4e, 0x75, 0x64, 0x67, 0x65, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x53, + 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x42, 0x36, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, + 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, + 0x73, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, + 0x03, 0x50, 0x01, 0x5a, 0x09, 0x2e, 0x2f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, } var ( diff --git a/schema/protobuf/sync_pb/client_commands.proto b/schema/protobuf/sync_pb/client_commands.proto index 6969a6e5..fd865eaa 100644 --- a/schema/protobuf/sync_pb/client_commands.proto +++ b/schema/protobuf/sync_pb/client_commands.proto @@ -1,4 +1,4 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2012 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // @@ -9,6 +9,8 @@ syntax = "proto2"; +option go_package = "./sync_pb"; + option java_multiple_files = true; option java_package = "org.chromium.components.sync.protocol"; @@ -36,8 +38,8 @@ message ClientCommand { // Number of seconds to delay before the throttled client should retry. optional int32 throttle_delay_seconds = 5; - // Maximum number of local nudges to buffer per-type. - optional int32 client_invalidation_hint_buffer_size = 6; + // This has been deprecated since M109. + optional int32 client_invalidation_hint_buffer_size = 6 [deprecated = true]; // Time to wait before issuing a retry GU. optional int32 gu_retry_delay_seconds = 7; diff --git a/schema/protobuf/sync_pb/client_debug_info.pb.go b/schema/protobuf/sync_pb/client_debug_info.pb.go index 3763b851..57abf00e 100644 --- a/schema/protobuf/sync_pb/client_debug_info.pb.go +++ b/schema/protobuf/sync_pb/client_debug_info.pb.go @@ -1,4 +1,4 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2012 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // @@ -9,7 +9,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.0 +// protoc-gen-go v1.31.0 // protoc v3.21.1 // source: client_debug_info.proto @@ -97,9 +97,9 @@ type SyncCycleCompletedEventInfo struct { // These new conflict counters replace the ones above. // TODO(crbug.com/1315573): Deprecated in M103. // - // Deprecated: Do not use. + // Deprecated: Marked as deprecated in client_debug_info.proto. NumEncryptionConflicts *int32 `protobuf:"varint,4,opt,name=num_encryption_conflicts,json=numEncryptionConflicts" json:"num_encryption_conflicts,omitempty"` - // Deprecated: Do not use. + // Deprecated: Marked as deprecated in client_debug_info.proto. NumHierarchyConflicts *int32 `protobuf:"varint,5,opt,name=num_hierarchy_conflicts,json=numHierarchyConflicts" json:"num_hierarchy_conflicts,omitempty"` NumSimpleConflicts *int32 `protobuf:"varint,6,opt,name=num_simple_conflicts,json=numSimpleConflicts" json:"num_simple_conflicts,omitempty"` // No longer sent since M24. NumServerConflicts *int32 `protobuf:"varint,7,opt,name=num_server_conflicts,json=numServerConflicts" json:"num_server_conflicts,omitempty"` @@ -107,7 +107,7 @@ type SyncCycleCompletedEventInfo struct { NumUpdatesDownloaded *int32 `protobuf:"varint,8,opt,name=num_updates_downloaded,json=numUpdatesDownloaded" json:"num_updates_downloaded,omitempty"` // TODO(crbug.com/1315573): Deprecated in M103. // - // Deprecated: Do not use. + // Deprecated: Marked as deprecated in client_debug_info.proto. NumReflectedUpdatesDownloaded *int32 `protobuf:"varint,9,opt,name=num_reflected_updates_downloaded,json=numReflectedUpdatesDownloaded" json:"num_reflected_updates_downloaded,omitempty"` // |caller_info| was mostly replaced by |get_updates_origin|; now it only // contains the |notifications_enabled| flag. @@ -147,7 +147,7 @@ func (*SyncCycleCompletedEventInfo) Descriptor() ([]byte, []int) { return file_client_debug_info_proto_rawDescGZIP(), []int{1} } -// Deprecated: Do not use. +// Deprecated: Marked as deprecated in client_debug_info.proto. func (x *SyncCycleCompletedEventInfo) GetNumEncryptionConflicts() int32 { if x != nil && x.NumEncryptionConflicts != nil { return *x.NumEncryptionConflicts @@ -155,7 +155,7 @@ func (x *SyncCycleCompletedEventInfo) GetNumEncryptionConflicts() int32 { return 0 } -// Deprecated: Do not use. +// Deprecated: Marked as deprecated in client_debug_info.proto. func (x *SyncCycleCompletedEventInfo) GetNumHierarchyConflicts() int32 { if x != nil && x.NumHierarchyConflicts != nil { return *x.NumHierarchyConflicts @@ -184,7 +184,7 @@ func (x *SyncCycleCompletedEventInfo) GetNumUpdatesDownloaded() int32 { return 0 } -// Deprecated: Do not use. +// Deprecated: Marked as deprecated in client_debug_info.proto. func (x *SyncCycleCompletedEventInfo) GetNumReflectedUpdatesDownloaded() int32 { if x != nil && x.NumReflectedUpdatesDownloaded != nil { return *x.NumReflectedUpdatesDownloaded @@ -447,10 +447,10 @@ var file_client_debug_info_proto_rawDesc = []byte{ 0x61, 0x73, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x70, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x44, 0x72, 0x6f, - 0x70, 0x70, 0x65, 0x64, 0x42, 0x2b, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, 0x72, 0x6f, + 0x70, 0x70, 0x65, 0x64, 0x42, 0x36, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x03, 0x50, - 0x01, + 0x01, 0x5a, 0x09, 0x2e, 0x2f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, } var ( diff --git a/schema/protobuf/sync_pb/client_debug_info.proto b/schema/protobuf/sync_pb/client_debug_info.proto index 1040cba0..19794c36 100644 --- a/schema/protobuf/sync_pb/client_debug_info.proto +++ b/schema/protobuf/sync_pb/client_debug_info.proto @@ -1,4 +1,4 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2012 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // @@ -9,6 +9,8 @@ syntax = "proto2"; +option go_package = "./sync_pb"; + option java_multiple_files = true; option java_package = "org.chromium.components.sync.protocol"; diff --git a/schema/protobuf/sync_pb/contact_info_specifics.pb.go b/schema/protobuf/sync_pb/contact_info_specifics.pb.go new file mode 100644 index 00000000..89bbf55c --- /dev/null +++ b/schema/protobuf/sync_pb/contact_info_specifics.pb.go @@ -0,0 +1,1083 @@ +// Copyright 2022 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// If you change or add any fields in this file, update proto_visitors.h and +// potentially proto_enum_conversions.{h, cc}. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.31.0 +// protoc v3.21.1 +// source: contact_info_specifics.proto + +package sync_pb + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// Represents the validation status of a stored value. +type ContactInfoSpecifics_VerificationStatus int32 + +const ( + // No verification status assigned. + ContactInfoSpecifics_VERIFICATION_STATUS_UNSPECIFIED ContactInfoSpecifics_VerificationStatus = 0 + // The value token was parsed from a parent token. + // For example, the first name was derived by splitting a full name into + // its components. + ContactInfoSpecifics_PARSED ContactInfoSpecifics_VerificationStatus = 1 + // Value was built from its subcomponents. + // For example, the full name was built from the first, middle and last + // name. + ContactInfoSpecifics_FORMATTED ContactInfoSpecifics_VerificationStatus = 2 + // The value was observed in a form transmission. + // For example, the user filled a form that contained at NAME_FULL field. + // The value of NAME_FULL will be stored as OBSERVED. + ContactInfoSpecifics_OBSERVED ContactInfoSpecifics_VerificationStatus = 3 + // The user used the settings UI to verify and store this token. + // This is currently only applicable to the full name, since users cannot + // edit individual components of their name. + ContactInfoSpecifics_USER_VERIFIED ContactInfoSpecifics_VerificationStatus = 4 + // The token was parsed remotely. + ContactInfoSpecifics_SERVER_PARSED ContactInfoSpecifics_VerificationStatus = 5 +) + +// Enum value maps for ContactInfoSpecifics_VerificationStatus. +var ( + ContactInfoSpecifics_VerificationStatus_name = map[int32]string{ + 0: "VERIFICATION_STATUS_UNSPECIFIED", + 1: "PARSED", + 2: "FORMATTED", + 3: "OBSERVED", + 4: "USER_VERIFIED", + 5: "SERVER_PARSED", + } + ContactInfoSpecifics_VerificationStatus_value = map[string]int32{ + "VERIFICATION_STATUS_UNSPECIFIED": 0, + "PARSED": 1, + "FORMATTED": 2, + "OBSERVED": 3, + "USER_VERIFIED": 4, + "SERVER_PARSED": 5, + } +) + +func (x ContactInfoSpecifics_VerificationStatus) Enum() *ContactInfoSpecifics_VerificationStatus { + p := new(ContactInfoSpecifics_VerificationStatus) + *p = x + return p +} + +func (x ContactInfoSpecifics_VerificationStatus) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ContactInfoSpecifics_VerificationStatus) Descriptor() protoreflect.EnumDescriptor { + return file_contact_info_specifics_proto_enumTypes[0].Descriptor() +} + +func (ContactInfoSpecifics_VerificationStatus) Type() protoreflect.EnumType { + return &file_contact_info_specifics_proto_enumTypes[0] +} + +func (x ContactInfoSpecifics_VerificationStatus) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Do not use. +func (x *ContactInfoSpecifics_VerificationStatus) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err + } + *x = ContactInfoSpecifics_VerificationStatus(num) + return nil +} + +// Deprecated: Use ContactInfoSpecifics_VerificationStatus.Descriptor instead. +func (ContactInfoSpecifics_VerificationStatus) EnumDescriptor() ([]byte, []int) { + return file_contact_info_specifics_proto_rawDescGZIP(), []int{0, 0} +} + +type ContactInfoSpecifics struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // A globally unique, immutable UUID represented in lowercase. + Guid *string `protobuf:"bytes,1,opt,name=guid" json:"guid,omitempty"` + // The number of time this profile has been used. + UseCount *int64 `protobuf:"varint,3,opt,name=use_count,json=useCount" json:"use_count,omitempty"` + // The last time this profile was used. + UseDateWindowsEpochMicros *int64 `protobuf:"varint,4,opt,name=use_date_windows_epoch_micros,json=useDateWindowsEpochMicros" json:"use_date_windows_epoch_micros,omitempty"` + // The last time the profile was modified. + DateModifiedWindowsEpochMicros *int64 `protobuf:"varint,37,opt,name=date_modified_windows_epoch_micros,json=dateModifiedWindowsEpochMicros" json:"date_modified_windows_epoch_micros,omitempty"` + // The BCP 47 language code used to format the address for display. + LanguageCode *string `protobuf:"bytes,38,opt,name=language_code,json=languageCode" json:"language_code,omitempty"` + // A user chosen profile label that is used to identify the profile. + // The value of the label can be freely chosen by the user. + ProfileLabel *string `protobuf:"bytes,5,opt,name=profile_label,json=profileLabel" json:"profile_label,omitempty"` + // Tracks the application that initially created the profile. The integer + // represents a value in the server-side enum `BillableService`. A value of + // 70073 represents Chrome (enum value BILLABLE_SERVICE_CHROME_PAYMENTS). + InitialCreatorId *int32 `protobuf:"varint,39,opt,name=initial_creator_id,json=initialCreatorId" json:"initial_creator_id,omitempty"` + // Tracks the application that applied the last modification to the + // non-metadata content of the profile. It represents a value in the same + // `BillableService` enum. + // All String- and IntegerToken, and the `profile_label` are considered + // non-metadata. + LastModifierId *int32 `protobuf:"varint,40,opt,name=last_modifier_id,json=lastModifierId" json:"last_modifier_id,omitempty"` + // Contact info name fields. + NameHonorific *ContactInfoSpecifics_StringToken `protobuf:"bytes,6,opt,name=name_honorific,json=nameHonorific" json:"name_honorific,omitempty"` + NameFirst *ContactInfoSpecifics_StringToken `protobuf:"bytes,7,opt,name=name_first,json=nameFirst" json:"name_first,omitempty"` + NameMiddle *ContactInfoSpecifics_StringToken `protobuf:"bytes,8,opt,name=name_middle,json=nameMiddle" json:"name_middle,omitempty"` + NameLast *ContactInfoSpecifics_StringToken `protobuf:"bytes,9,opt,name=name_last,json=nameLast" json:"name_last,omitempty"` + // Sometimes the last name is composed of two names as it is common for + // Hispanic/Latinx names. In the unstructured representation of the last name, + // there may be even a conjunction between the first and the second last + // name. For example, the more-complete version of Pablo Picasso's surname is + // "Ruiz y Picasso" containing a first last name, a conjunction (the y) and a + // second last name. + NameLastFirst *ContactInfoSpecifics_StringToken `protobuf:"bytes,10,opt,name=name_last_first,json=nameLastFirst" json:"name_last_first,omitempty"` + NameLastConjunction *ContactInfoSpecifics_StringToken `protobuf:"bytes,11,opt,name=name_last_conjunction,json=nameLastConjunction" json:"name_last_conjunction,omitempty"` + NameLastSecond *ContactInfoSpecifics_StringToken `protobuf:"bytes,12,opt,name=name_last_second,json=nameLastSecond" json:"name_last_second,omitempty"` + NameFull *ContactInfoSpecifics_StringToken `protobuf:"bytes,13,opt,name=name_full,json=nameFull" json:"name_full,omitempty"` + // This value contains the combination of the full name and the honorific + // prefix. + NameFullWithHonorific *ContactInfoSpecifics_StringToken `protobuf:"bytes,14,opt,name=name_full_with_honorific,json=nameFullWithHonorific" json:"name_full_with_honorific,omitempty"` + // Contact info additional fields. + EmailAddress *ContactInfoSpecifics_StringToken `protobuf:"bytes,15,opt,name=email_address,json=emailAddress" json:"email_address,omitempty"` + CompanyName *ContactInfoSpecifics_StringToken `protobuf:"bytes,16,opt,name=company_name,json=companyName" json:"company_name,omitempty"` + // Address fields: These are user-provided values with no particular + // guarantees about their format. + AddressCity *ContactInfoSpecifics_StringToken `protobuf:"bytes,17,opt,name=address_city,json=addressCity" json:"address_city,omitempty"` + AddressState *ContactInfoSpecifics_StringToken `protobuf:"bytes,18,opt,name=address_state,json=addressState" json:"address_state,omitempty"` + AddressZip *ContactInfoSpecifics_StringToken `protobuf:"bytes,19,opt,name=address_zip,json=addressZip" json:"address_zip,omitempty"` + AddressCountry *ContactInfoSpecifics_StringToken `protobuf:"bytes,20,opt,name=address_country,json=addressCountry" json:"address_country,omitempty"` + AddressLandmark *ContactInfoSpecifics_StringToken `protobuf:"bytes,41,opt,name=address_landmark,json=addressLandmark" json:"address_landmark,omitempty"` + AddressBetweenStreets *ContactInfoSpecifics_StringToken `protobuf:"bytes,42,opt,name=address_between_streets,json=addressBetweenStreets" json:"address_between_streets,omitempty"` + AddressAdminLevel_2 *ContactInfoSpecifics_StringToken `protobuf:"bytes,43,opt,name=address_admin_level_2,json=addressAdminLevel2" json:"address_admin_level_2,omitempty"` + // Additional address fields for i18n. + // Includes all of the lines of a street address, including newlines, e.g. + // + // 123 Main Street, + // Apt. #42 + AddressStreetAddress *ContactInfoSpecifics_StringToken `protobuf:"bytes,21,opt,name=address_street_address,json=addressStreetAddress" json:"address_street_address,omitempty"` + // A sorting code is similar to a postal code. However, whereas a postal code + // normally refers to a single geographical location, a sorting code often + // does not. Instead, a sorting code is assigned to an organization, which + // might be geographically distributed. The most prominent example of a + // sorting code system is CEDEX in France. + AddressSortingCode *ContactInfoSpecifics_StringToken `protobuf:"bytes,22,opt,name=address_sorting_code,json=addressSortingCode" json:"address_sorting_code,omitempty"` + // A dependent locality is a subunit of a locality, where a "locality" is + // roughly equivalent to a city. Examples of dependent localities include + // inner-city districts and suburbs. + AddressDependentLocality *ContactInfoSpecifics_StringToken `protobuf:"bytes,23,opt,name=address_dependent_locality,json=addressDependentLocality" json:"address_dependent_locality,omitempty"` + // The street name of the address, without a house number. + AddressThoroughfareName *ContactInfoSpecifics_StringToken `protobuf:"bytes,25,opt,name=address_thoroughfare_name,json=addressThoroughfareName" json:"address_thoroughfare_name,omitempty"` + // The house number, which may be alphanumeric. + AddressThoroughfareNumber *ContactInfoSpecifics_StringToken `protobuf:"bytes,26,opt,name=address_thoroughfare_number,json=addressThoroughfareNumber" json:"address_thoroughfare_number,omitempty"` + // Describes a crossing street as it is used in some countries to describe a + // location. + AddressDependentThoroughfareName *ContactInfoSpecifics_StringToken `protobuf:"bytes,27,opt,name=address_dependent_thoroughfare_name,json=addressDependentThoroughfareName" json:"address_dependent_thoroughfare_name,omitempty"` + // Contains both the thoroughfare and the dependent thoroughfare name. + AddressThoroughfareAndDependentThoroughfareName *ContactInfoSpecifics_StringToken `protobuf:"bytes,28,opt,name=address_thoroughfare_and_dependent_thoroughfare_name,json=addressThoroughfareAndDependentThoroughfareName" json:"address_thoroughfare_and_dependent_thoroughfare_name,omitempty"` + // A premise name corresponds to the name of a place or a building below the + // granularity of a street. + AddressPremiseName *ContactInfoSpecifics_StringToken `protobuf:"bytes,29,opt,name=address_premise_name,json=addressPremiseName" json:"address_premise_name,omitempty"` + // Contains the floor, staircase or apartment number within a building. + AddressSubpremiseName *ContactInfoSpecifics_StringToken `protobuf:"bytes,30,opt,name=address_subpremise_name,json=addressSubpremiseName" json:"address_subpremise_name,omitempty"` + // The apartment number within a building. + AddressAptNum *ContactInfoSpecifics_StringToken `protobuf:"bytes,31,opt,name=address_apt_num,json=addressAptNum" json:"address_apt_num,omitempty"` + // The floor number within a building. + AddressFloor *ContactInfoSpecifics_StringToken `protobuf:"bytes,32,opt,name=address_floor,json=addressFloor" json:"address_floor,omitempty"` + // Phone. + PhoneHomeWholeNumber *ContactInfoSpecifics_StringToken `protobuf:"bytes,33,opt,name=phone_home_whole_number,json=phoneHomeWholeNumber" json:"phone_home_whole_number,omitempty"` + // Birthdate fields. + BirthdateDay *ContactInfoSpecifics_IntegerToken `protobuf:"bytes,34,opt,name=birthdate_day,json=birthdateDay" json:"birthdate_day,omitempty"` + BirthdateMonth *ContactInfoSpecifics_IntegerToken `protobuf:"bytes,35,opt,name=birthdate_month,json=birthdateMonth" json:"birthdate_month,omitempty"` // Between 1 and 12. + BirthdateYear *ContactInfoSpecifics_IntegerToken `protobuf:"bytes,36,opt,name=birthdate_year,json=birthdateYear" json:"birthdate_year,omitempty"` // 4 digits. +} + +func (x *ContactInfoSpecifics) Reset() { + *x = ContactInfoSpecifics{} + if protoimpl.UnsafeEnabled { + mi := &file_contact_info_specifics_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ContactInfoSpecifics) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ContactInfoSpecifics) ProtoMessage() {} + +func (x *ContactInfoSpecifics) ProtoReflect() protoreflect.Message { + mi := &file_contact_info_specifics_proto_msgTypes[0] + 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 ContactInfoSpecifics.ProtoReflect.Descriptor instead. +func (*ContactInfoSpecifics) Descriptor() ([]byte, []int) { + return file_contact_info_specifics_proto_rawDescGZIP(), []int{0} +} + +func (x *ContactInfoSpecifics) GetGuid() string { + if x != nil && x.Guid != nil { + return *x.Guid + } + return "" +} + +func (x *ContactInfoSpecifics) GetUseCount() int64 { + if x != nil && x.UseCount != nil { + return *x.UseCount + } + return 0 +} + +func (x *ContactInfoSpecifics) GetUseDateWindowsEpochMicros() int64 { + if x != nil && x.UseDateWindowsEpochMicros != nil { + return *x.UseDateWindowsEpochMicros + } + return 0 +} + +func (x *ContactInfoSpecifics) GetDateModifiedWindowsEpochMicros() int64 { + if x != nil && x.DateModifiedWindowsEpochMicros != nil { + return *x.DateModifiedWindowsEpochMicros + } + return 0 +} + +func (x *ContactInfoSpecifics) GetLanguageCode() string { + if x != nil && x.LanguageCode != nil { + return *x.LanguageCode + } + return "" +} + +func (x *ContactInfoSpecifics) GetProfileLabel() string { + if x != nil && x.ProfileLabel != nil { + return *x.ProfileLabel + } + return "" +} + +func (x *ContactInfoSpecifics) GetInitialCreatorId() int32 { + if x != nil && x.InitialCreatorId != nil { + return *x.InitialCreatorId + } + return 0 +} + +func (x *ContactInfoSpecifics) GetLastModifierId() int32 { + if x != nil && x.LastModifierId != nil { + return *x.LastModifierId + } + return 0 +} + +func (x *ContactInfoSpecifics) GetNameHonorific() *ContactInfoSpecifics_StringToken { + if x != nil { + return x.NameHonorific + } + return nil +} + +func (x *ContactInfoSpecifics) GetNameFirst() *ContactInfoSpecifics_StringToken { + if x != nil { + return x.NameFirst + } + return nil +} + +func (x *ContactInfoSpecifics) GetNameMiddle() *ContactInfoSpecifics_StringToken { + if x != nil { + return x.NameMiddle + } + return nil +} + +func (x *ContactInfoSpecifics) GetNameLast() *ContactInfoSpecifics_StringToken { + if x != nil { + return x.NameLast + } + return nil +} + +func (x *ContactInfoSpecifics) GetNameLastFirst() *ContactInfoSpecifics_StringToken { + if x != nil { + return x.NameLastFirst + } + return nil +} + +func (x *ContactInfoSpecifics) GetNameLastConjunction() *ContactInfoSpecifics_StringToken { + if x != nil { + return x.NameLastConjunction + } + return nil +} + +func (x *ContactInfoSpecifics) GetNameLastSecond() *ContactInfoSpecifics_StringToken { + if x != nil { + return x.NameLastSecond + } + return nil +} + +func (x *ContactInfoSpecifics) GetNameFull() *ContactInfoSpecifics_StringToken { + if x != nil { + return x.NameFull + } + return nil +} + +func (x *ContactInfoSpecifics) GetNameFullWithHonorific() *ContactInfoSpecifics_StringToken { + if x != nil { + return x.NameFullWithHonorific + } + return nil +} + +func (x *ContactInfoSpecifics) GetEmailAddress() *ContactInfoSpecifics_StringToken { + if x != nil { + return x.EmailAddress + } + return nil +} + +func (x *ContactInfoSpecifics) GetCompanyName() *ContactInfoSpecifics_StringToken { + if x != nil { + return x.CompanyName + } + return nil +} + +func (x *ContactInfoSpecifics) GetAddressCity() *ContactInfoSpecifics_StringToken { + if x != nil { + return x.AddressCity + } + return nil +} + +func (x *ContactInfoSpecifics) GetAddressState() *ContactInfoSpecifics_StringToken { + if x != nil { + return x.AddressState + } + return nil +} + +func (x *ContactInfoSpecifics) GetAddressZip() *ContactInfoSpecifics_StringToken { + if x != nil { + return x.AddressZip + } + return nil +} + +func (x *ContactInfoSpecifics) GetAddressCountry() *ContactInfoSpecifics_StringToken { + if x != nil { + return x.AddressCountry + } + return nil +} + +func (x *ContactInfoSpecifics) GetAddressLandmark() *ContactInfoSpecifics_StringToken { + if x != nil { + return x.AddressLandmark + } + return nil +} + +func (x *ContactInfoSpecifics) GetAddressBetweenStreets() *ContactInfoSpecifics_StringToken { + if x != nil { + return x.AddressBetweenStreets + } + return nil +} + +func (x *ContactInfoSpecifics) GetAddressAdminLevel_2() *ContactInfoSpecifics_StringToken { + if x != nil { + return x.AddressAdminLevel_2 + } + return nil +} + +func (x *ContactInfoSpecifics) GetAddressStreetAddress() *ContactInfoSpecifics_StringToken { + if x != nil { + return x.AddressStreetAddress + } + return nil +} + +func (x *ContactInfoSpecifics) GetAddressSortingCode() *ContactInfoSpecifics_StringToken { + if x != nil { + return x.AddressSortingCode + } + return nil +} + +func (x *ContactInfoSpecifics) GetAddressDependentLocality() *ContactInfoSpecifics_StringToken { + if x != nil { + return x.AddressDependentLocality + } + return nil +} + +func (x *ContactInfoSpecifics) GetAddressThoroughfareName() *ContactInfoSpecifics_StringToken { + if x != nil { + return x.AddressThoroughfareName + } + return nil +} + +func (x *ContactInfoSpecifics) GetAddressThoroughfareNumber() *ContactInfoSpecifics_StringToken { + if x != nil { + return x.AddressThoroughfareNumber + } + return nil +} + +func (x *ContactInfoSpecifics) GetAddressDependentThoroughfareName() *ContactInfoSpecifics_StringToken { + if x != nil { + return x.AddressDependentThoroughfareName + } + return nil +} + +func (x *ContactInfoSpecifics) GetAddressThoroughfareAndDependentThoroughfareName() *ContactInfoSpecifics_StringToken { + if x != nil { + return x.AddressThoroughfareAndDependentThoroughfareName + } + return nil +} + +func (x *ContactInfoSpecifics) GetAddressPremiseName() *ContactInfoSpecifics_StringToken { + if x != nil { + return x.AddressPremiseName + } + return nil +} + +func (x *ContactInfoSpecifics) GetAddressSubpremiseName() *ContactInfoSpecifics_StringToken { + if x != nil { + return x.AddressSubpremiseName + } + return nil +} + +func (x *ContactInfoSpecifics) GetAddressAptNum() *ContactInfoSpecifics_StringToken { + if x != nil { + return x.AddressAptNum + } + return nil +} + +func (x *ContactInfoSpecifics) GetAddressFloor() *ContactInfoSpecifics_StringToken { + if x != nil { + return x.AddressFloor + } + return nil +} + +func (x *ContactInfoSpecifics) GetPhoneHomeWholeNumber() *ContactInfoSpecifics_StringToken { + if x != nil { + return x.PhoneHomeWholeNumber + } + return nil +} + +func (x *ContactInfoSpecifics) GetBirthdateDay() *ContactInfoSpecifics_IntegerToken { + if x != nil { + return x.BirthdateDay + } + return nil +} + +func (x *ContactInfoSpecifics) GetBirthdateMonth() *ContactInfoSpecifics_IntegerToken { + if x != nil { + return x.BirthdateMonth + } + return nil +} + +func (x *ContactInfoSpecifics) GetBirthdateYear() *ContactInfoSpecifics_IntegerToken { + if x != nil { + return x.BirthdateYear + } + return nil +} + +// Metadata that is attached to every token type. +type ContactInfoSpecifics_TokenMetadata struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Status *ContactInfoSpecifics_VerificationStatus `protobuf:"varint,1,opt,name=status,enum=sync_pb.ContactInfoSpecifics_VerificationStatus" json:"status,omitempty"` +} + +func (x *ContactInfoSpecifics_TokenMetadata) Reset() { + *x = ContactInfoSpecifics_TokenMetadata{} + if protoimpl.UnsafeEnabled { + mi := &file_contact_info_specifics_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ContactInfoSpecifics_TokenMetadata) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ContactInfoSpecifics_TokenMetadata) ProtoMessage() {} + +func (x *ContactInfoSpecifics_TokenMetadata) ProtoReflect() protoreflect.Message { + mi := &file_contact_info_specifics_proto_msgTypes[1] + 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 ContactInfoSpecifics_TokenMetadata.ProtoReflect.Descriptor instead. +func (*ContactInfoSpecifics_TokenMetadata) Descriptor() ([]byte, []int) { + return file_contact_info_specifics_proto_rawDescGZIP(), []int{0, 0} +} + +func (x *ContactInfoSpecifics_TokenMetadata) GetStatus() ContactInfoSpecifics_VerificationStatus { + if x != nil && x.Status != nil { + return *x.Status + } + return ContactInfoSpecifics_VERIFICATION_STATUS_UNSPECIFIED +} + +// A token with a string interpretation of the value. +type ContactInfoSpecifics_StringToken struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Value *string `protobuf:"bytes,1,opt,name=value" json:"value,omitempty"` + Metadata *ContactInfoSpecifics_TokenMetadata `protobuf:"bytes,2,opt,name=metadata" json:"metadata,omitempty"` +} + +func (x *ContactInfoSpecifics_StringToken) Reset() { + *x = ContactInfoSpecifics_StringToken{} + if protoimpl.UnsafeEnabled { + mi := &file_contact_info_specifics_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ContactInfoSpecifics_StringToken) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ContactInfoSpecifics_StringToken) ProtoMessage() {} + +func (x *ContactInfoSpecifics_StringToken) ProtoReflect() protoreflect.Message { + mi := &file_contact_info_specifics_proto_msgTypes[2] + 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 ContactInfoSpecifics_StringToken.ProtoReflect.Descriptor instead. +func (*ContactInfoSpecifics_StringToken) Descriptor() ([]byte, []int) { + return file_contact_info_specifics_proto_rawDescGZIP(), []int{0, 1} +} + +func (x *ContactInfoSpecifics_StringToken) GetValue() string { + if x != nil && x.Value != nil { + return *x.Value + } + return "" +} + +func (x *ContactInfoSpecifics_StringToken) GetMetadata() *ContactInfoSpecifics_TokenMetadata { + if x != nil { + return x.Metadata + } + return nil +} + +// A token with an integer interpretation of the value. +type ContactInfoSpecifics_IntegerToken struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Value *int64 `protobuf:"varint,1,opt,name=value" json:"value,omitempty"` + Metadata *ContactInfoSpecifics_TokenMetadata `protobuf:"bytes,2,opt,name=metadata" json:"metadata,omitempty"` +} + +func (x *ContactInfoSpecifics_IntegerToken) Reset() { + *x = ContactInfoSpecifics_IntegerToken{} + if protoimpl.UnsafeEnabled { + mi := &file_contact_info_specifics_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ContactInfoSpecifics_IntegerToken) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ContactInfoSpecifics_IntegerToken) ProtoMessage() {} + +func (x *ContactInfoSpecifics_IntegerToken) ProtoReflect() protoreflect.Message { + mi := &file_contact_info_specifics_proto_msgTypes[3] + 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 ContactInfoSpecifics_IntegerToken.ProtoReflect.Descriptor instead. +func (*ContactInfoSpecifics_IntegerToken) Descriptor() ([]byte, []int) { + return file_contact_info_specifics_proto_rawDescGZIP(), []int{0, 2} +} + +func (x *ContactInfoSpecifics_IntegerToken) GetValue() int64 { + if x != nil && x.Value != nil { + return *x.Value + } + return 0 +} + +func (x *ContactInfoSpecifics_IntegerToken) GetMetadata() *ContactInfoSpecifics_TokenMetadata { + if x != nil { + return x.Metadata + } + return nil +} + +var File_contact_info_specifics_proto protoreflect.FileDescriptor + +var file_contact_info_specifics_proto_rawDesc = []byte{ + 0x0a, 0x1c, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x5f, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x07, + 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x22, 0x87, 0x1e, 0x0a, 0x14, 0x43, 0x6f, 0x6e, 0x74, + 0x61, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, + 0x12, 0x12, 0x0a, 0x04, 0x67, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x67, 0x75, 0x69, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x12, 0x40, 0x0a, 0x1d, 0x75, 0x73, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x77, 0x69, + 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x5f, 0x6d, 0x69, 0x63, 0x72, + 0x6f, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x19, 0x75, 0x73, 0x65, 0x44, 0x61, 0x74, + 0x65, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x4d, 0x69, 0x63, + 0x72, 0x6f, 0x73, 0x12, 0x4a, 0x0a, 0x22, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x6f, 0x64, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x5f, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x5f, 0x65, 0x70, 0x6f, + 0x63, 0x68, 0x5f, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x18, 0x25, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x1e, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x57, 0x69, 0x6e, + 0x64, 0x6f, 0x77, 0x73, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x12, + 0x23, 0x0a, 0x0d, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6f, 0x64, 0x65, + 0x18, 0x26, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, + 0x43, 0x6f, 0x64, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, + 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x72, 0x6f, + 0x66, 0x69, 0x6c, 0x65, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x2c, 0x0a, 0x12, 0x69, 0x6e, 0x69, + 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x64, 0x18, + 0x27, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x10, 0x6c, 0x61, 0x73, 0x74, 0x5f, + 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x28, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x72, 0x49, + 0x64, 0x12, 0x50, 0x0a, 0x0e, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x68, 0x6f, 0x6e, 0x6f, 0x72, 0x69, + 0x66, 0x69, 0x63, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x73, 0x79, 0x6e, 0x63, + 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x53, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x0d, 0x6e, 0x61, 0x6d, 0x65, 0x48, 0x6f, 0x6e, 0x6f, 0x72, 0x69, + 0x66, 0x69, 0x63, 0x12, 0x48, 0x0a, 0x0a, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x66, 0x69, 0x72, 0x73, + 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, + 0x62, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x54, 0x6f, 0x6b, + 0x65, 0x6e, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x46, 0x69, 0x72, 0x73, 0x74, 0x12, 0x4a, 0x0a, + 0x0b, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6e, + 0x74, 0x61, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, + 0x73, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x0a, 0x6e, + 0x61, 0x6d, 0x65, 0x4d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x12, 0x46, 0x0a, 0x09, 0x6e, 0x61, 0x6d, + 0x65, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x73, + 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x49, 0x6e, + 0x66, 0x6f, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x53, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x08, 0x6e, 0x61, 0x6d, 0x65, 0x4c, 0x61, 0x73, + 0x74, 0x12, 0x51, 0x0a, 0x0f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x66, + 0x69, 0x72, 0x73, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x73, 0x79, 0x6e, + 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, + 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x0d, 0x6e, 0x61, 0x6d, 0x65, 0x4c, 0x61, 0x73, 0x74, 0x46, + 0x69, 0x72, 0x73, 0x74, 0x12, 0x5d, 0x0a, 0x15, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x6c, 0x61, 0x73, + 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x6a, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0b, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x6f, + 0x6e, 0x74, 0x61, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x63, 0x73, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x13, + 0x6e, 0x61, 0x6d, 0x65, 0x4c, 0x61, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x6a, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x53, 0x0a, 0x10, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x6c, 0x61, 0x73, 0x74, + 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, + 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x49, + 0x6e, 0x66, 0x6f, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x53, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x0e, 0x6e, 0x61, 0x6d, 0x65, 0x4c, 0x61, + 0x73, 0x74, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x12, 0x46, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, + 0x5f, 0x66, 0x75, 0x6c, 0x6c, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x73, 0x79, + 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x49, 0x6e, 0x66, + 0x6f, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x08, 0x6e, 0x61, 0x6d, 0x65, 0x46, 0x75, 0x6c, 0x6c, + 0x12, 0x62, 0x0a, 0x18, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x66, 0x75, 0x6c, 0x6c, 0x5f, 0x77, 0x69, + 0x74, 0x68, 0x5f, 0x68, 0x6f, 0x6e, 0x6f, 0x72, 0x69, 0x66, 0x69, 0x63, 0x18, 0x0e, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6e, + 0x74, 0x61, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, + 0x73, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x15, 0x6e, + 0x61, 0x6d, 0x65, 0x46, 0x75, 0x6c, 0x6c, 0x57, 0x69, 0x74, 0x68, 0x48, 0x6f, 0x6e, 0x6f, 0x72, + 0x69, 0x66, 0x69, 0x63, 0x12, 0x4e, 0x0a, 0x0d, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x5f, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x73, 0x79, + 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x49, 0x6e, 0x66, + 0x6f, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x0c, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x41, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x12, 0x4c, 0x0a, 0x0c, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x73, 0x79, 0x6e, + 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, + 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x4c, 0x0a, 0x0c, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x63, 0x69, + 0x74, 0x79, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, + 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x54, 0x6f, + 0x6b, 0x65, 0x6e, 0x52, 0x0b, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x43, 0x69, 0x74, 0x79, + 0x12, 0x4e, 0x0a, 0x0d, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x73, 0x74, 0x61, 0x74, + 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, + 0x62, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x54, 0x6f, 0x6b, + 0x65, 0x6e, 0x52, 0x0c, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x12, 0x4a, 0x0a, 0x0b, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x7a, 0x69, 0x70, 0x18, + 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, + 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x63, 0x73, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x54, 0x6f, 0x6b, 0x65, 0x6e, + 0x52, 0x0a, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5a, 0x69, 0x70, 0x12, 0x52, 0x0a, 0x0f, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x18, + 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, + 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x63, 0x73, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x54, 0x6f, 0x6b, 0x65, 0x6e, + 0x52, 0x0e, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, + 0x12, 0x54, 0x0a, 0x10, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x6c, 0x61, 0x6e, 0x64, + 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x29, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x73, 0x79, 0x6e, + 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, + 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x0f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x4c, 0x61, + 0x6e, 0x64, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x61, 0x0a, 0x17, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x5f, 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x65, 0x74, + 0x73, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, + 0x62, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x54, 0x6f, 0x6b, + 0x65, 0x6e, 0x52, 0x15, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x65, 0x74, 0x77, 0x65, + 0x65, 0x6e, 0x53, 0x74, 0x72, 0x65, 0x65, 0x74, 0x73, 0x12, 0x5c, 0x0a, 0x15, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, + 0x5f, 0x32, 0x18, 0x2b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, + 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x54, 0x6f, + 0x6b, 0x65, 0x6e, 0x52, 0x12, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x41, 0x64, 0x6d, 0x69, + 0x6e, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x32, 0x12, 0x5f, 0x0a, 0x16, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x65, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, + 0x62, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x54, 0x6f, 0x6b, + 0x65, 0x6e, 0x52, 0x14, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x65, 0x65, + 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x5b, 0x0a, 0x14, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x5f, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x64, 0x65, + 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, + 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x70, 0x65, 0x63, + 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x54, 0x6f, 0x6b, 0x65, + 0x6e, 0x52, 0x12, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x6f, 0x72, 0x74, 0x69, 0x6e, + 0x67, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x67, 0x0a, 0x1a, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x5f, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, + 0x69, 0x74, 0x79, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x73, 0x79, 0x6e, 0x63, + 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x53, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x18, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x44, 0x65, 0x70, + 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x65, + 0x0a, 0x19, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x68, 0x6f, 0x72, 0x6f, 0x75, + 0x67, 0x68, 0x66, 0x61, 0x72, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x19, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x29, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6e, 0x74, + 0x61, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, + 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x17, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x68, 0x6f, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x66, 0x61, 0x72, + 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x69, 0x0a, 0x1b, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x5f, 0x74, 0x68, 0x6f, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x66, 0x61, 0x72, 0x65, 0x5f, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x73, 0x79, 0x6e, + 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, + 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x19, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x68, + 0x6f, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x66, 0x61, 0x72, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x12, 0x78, 0x0a, 0x23, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x64, 0x65, 0x70, 0x65, + 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x68, 0x6f, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x66, 0x61, + 0x72, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, + 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x49, + 0x6e, 0x66, 0x6f, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x53, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x20, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x54, 0x68, 0x6f, 0x72, 0x6f, 0x75, + 0x67, 0x68, 0x66, 0x61, 0x72, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x98, 0x01, 0x0a, 0x34, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x68, 0x6f, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x66, + 0x61, 0x72, 0x65, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, + 0x74, 0x5f, 0x74, 0x68, 0x6f, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x66, 0x61, 0x72, 0x65, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x73, 0x79, 0x6e, 0x63, + 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x53, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x2f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x68, 0x6f, + 0x72, 0x6f, 0x75, 0x67, 0x68, 0x66, 0x61, 0x72, 0x65, 0x41, 0x6e, 0x64, 0x44, 0x65, 0x70, 0x65, + 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x54, 0x68, 0x6f, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x66, 0x61, 0x72, + 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x5b, 0x0a, 0x14, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x5f, 0x70, 0x72, 0x65, 0x6d, 0x69, 0x73, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x1d, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x6f, + 0x6e, 0x74, 0x61, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x63, 0x73, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x12, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x50, 0x72, 0x65, 0x6d, 0x69, 0x73, 0x65, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x61, 0x0a, 0x17, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x73, 0x75, + 0x62, 0x70, 0x72, 0x65, 0x6d, 0x69, 0x73, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x1e, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x6f, + 0x6e, 0x74, 0x61, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x63, 0x73, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x15, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x75, 0x62, 0x70, 0x72, 0x65, 0x6d, 0x69, 0x73, + 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x51, 0x0a, 0x0f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x5f, 0x61, 0x70, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, + 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, + 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x53, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x0d, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x41, 0x70, 0x74, 0x4e, 0x75, 0x6d, 0x12, 0x4e, 0x0a, 0x0d, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x5f, 0x66, 0x6c, 0x6f, 0x6f, 0x72, 0x18, 0x20, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x29, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, + 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x53, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x0c, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x46, 0x6c, 0x6f, 0x6f, 0x72, 0x12, 0x60, 0x0a, 0x17, 0x70, 0x68, 0x6f, 0x6e, + 0x65, 0x5f, 0x68, 0x6f, 0x6d, 0x65, 0x5f, 0x77, 0x68, 0x6f, 0x6c, 0x65, 0x5f, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x18, 0x21, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x73, 0x79, 0x6e, 0x63, + 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x53, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x14, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x48, 0x6f, 0x6d, 0x65, 0x57, + 0x68, 0x6f, 0x6c, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x4f, 0x0a, 0x0d, 0x62, 0x69, + 0x72, 0x74, 0x68, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x64, 0x61, 0x79, 0x18, 0x22, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x2a, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6e, 0x74, + 0x61, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, + 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x0c, 0x62, + 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x74, 0x65, 0x44, 0x61, 0x79, 0x12, 0x53, 0x0a, 0x0f, 0x62, + 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x18, 0x23, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x43, + 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x63, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, + 0x52, 0x0e, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x6f, 0x6e, 0x74, 0x68, + 0x12, 0x51, 0x0a, 0x0e, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x79, 0x65, + 0x61, 0x72, 0x18, 0x24, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, + 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x0d, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x74, 0x65, 0x59, + 0x65, 0x61, 0x72, 0x1a, 0x59, 0x0a, 0x0d, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x4d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x12, 0x48, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x43, + 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x63, 0x73, 0x2e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x1a, 0x6c, + 0x0a, 0x0b, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x14, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x12, 0x47, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, + 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x63, 0x73, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x6d, 0x0a, 0x0c, + 0x49, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x14, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x12, 0x47, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x43, + 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x63, 0x73, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x88, 0x01, 0x0a, 0x12, + 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x12, 0x23, 0x0a, 0x1f, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, + 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, + 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x50, 0x41, 0x52, 0x53, 0x45, + 0x44, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x46, 0x4f, 0x52, 0x4d, 0x41, 0x54, 0x54, 0x45, 0x44, + 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x4f, 0x42, 0x53, 0x45, 0x52, 0x56, 0x45, 0x44, 0x10, 0x03, + 0x12, 0x11, 0x0a, 0x0d, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, + 0x44, 0x10, 0x04, 0x12, 0x11, 0x0a, 0x0d, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x50, 0x41, + 0x52, 0x53, 0x45, 0x44, 0x10, 0x05, 0x4a, 0x04, 0x08, 0x02, 0x10, 0x03, 0x4a, 0x04, 0x08, 0x18, + 0x10, 0x19, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x15, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x5f, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6f, 0x64, + 0x65, 0x42, 0x36, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, + 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x73, 0x79, 0x6e, + 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x03, 0x50, 0x01, 0x5a, 0x09, + 0x2e, 0x2f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, +} + +var ( + file_contact_info_specifics_proto_rawDescOnce sync.Once + file_contact_info_specifics_proto_rawDescData = file_contact_info_specifics_proto_rawDesc +) + +func file_contact_info_specifics_proto_rawDescGZIP() []byte { + file_contact_info_specifics_proto_rawDescOnce.Do(func() { + file_contact_info_specifics_proto_rawDescData = protoimpl.X.CompressGZIP(file_contact_info_specifics_proto_rawDescData) + }) + return file_contact_info_specifics_proto_rawDescData +} + +var file_contact_info_specifics_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_contact_info_specifics_proto_msgTypes = make([]protoimpl.MessageInfo, 4) +var file_contact_info_specifics_proto_goTypes = []interface{}{ + (ContactInfoSpecifics_VerificationStatus)(0), // 0: sync_pb.ContactInfoSpecifics.VerificationStatus + (*ContactInfoSpecifics)(nil), // 1: sync_pb.ContactInfoSpecifics + (*ContactInfoSpecifics_TokenMetadata)(nil), // 2: sync_pb.ContactInfoSpecifics.TokenMetadata + (*ContactInfoSpecifics_StringToken)(nil), // 3: sync_pb.ContactInfoSpecifics.StringToken + (*ContactInfoSpecifics_IntegerToken)(nil), // 4: sync_pb.ContactInfoSpecifics.IntegerToken +} +var file_contact_info_specifics_proto_depIdxs = []int32{ + 3, // 0: sync_pb.ContactInfoSpecifics.name_honorific:type_name -> sync_pb.ContactInfoSpecifics.StringToken + 3, // 1: sync_pb.ContactInfoSpecifics.name_first:type_name -> sync_pb.ContactInfoSpecifics.StringToken + 3, // 2: sync_pb.ContactInfoSpecifics.name_middle:type_name -> sync_pb.ContactInfoSpecifics.StringToken + 3, // 3: sync_pb.ContactInfoSpecifics.name_last:type_name -> sync_pb.ContactInfoSpecifics.StringToken + 3, // 4: sync_pb.ContactInfoSpecifics.name_last_first:type_name -> sync_pb.ContactInfoSpecifics.StringToken + 3, // 5: sync_pb.ContactInfoSpecifics.name_last_conjunction:type_name -> sync_pb.ContactInfoSpecifics.StringToken + 3, // 6: sync_pb.ContactInfoSpecifics.name_last_second:type_name -> sync_pb.ContactInfoSpecifics.StringToken + 3, // 7: sync_pb.ContactInfoSpecifics.name_full:type_name -> sync_pb.ContactInfoSpecifics.StringToken + 3, // 8: sync_pb.ContactInfoSpecifics.name_full_with_honorific:type_name -> sync_pb.ContactInfoSpecifics.StringToken + 3, // 9: sync_pb.ContactInfoSpecifics.email_address:type_name -> sync_pb.ContactInfoSpecifics.StringToken + 3, // 10: sync_pb.ContactInfoSpecifics.company_name:type_name -> sync_pb.ContactInfoSpecifics.StringToken + 3, // 11: sync_pb.ContactInfoSpecifics.address_city:type_name -> sync_pb.ContactInfoSpecifics.StringToken + 3, // 12: sync_pb.ContactInfoSpecifics.address_state:type_name -> sync_pb.ContactInfoSpecifics.StringToken + 3, // 13: sync_pb.ContactInfoSpecifics.address_zip:type_name -> sync_pb.ContactInfoSpecifics.StringToken + 3, // 14: sync_pb.ContactInfoSpecifics.address_country:type_name -> sync_pb.ContactInfoSpecifics.StringToken + 3, // 15: sync_pb.ContactInfoSpecifics.address_landmark:type_name -> sync_pb.ContactInfoSpecifics.StringToken + 3, // 16: sync_pb.ContactInfoSpecifics.address_between_streets:type_name -> sync_pb.ContactInfoSpecifics.StringToken + 3, // 17: sync_pb.ContactInfoSpecifics.address_admin_level_2:type_name -> sync_pb.ContactInfoSpecifics.StringToken + 3, // 18: sync_pb.ContactInfoSpecifics.address_street_address:type_name -> sync_pb.ContactInfoSpecifics.StringToken + 3, // 19: sync_pb.ContactInfoSpecifics.address_sorting_code:type_name -> sync_pb.ContactInfoSpecifics.StringToken + 3, // 20: sync_pb.ContactInfoSpecifics.address_dependent_locality:type_name -> sync_pb.ContactInfoSpecifics.StringToken + 3, // 21: sync_pb.ContactInfoSpecifics.address_thoroughfare_name:type_name -> sync_pb.ContactInfoSpecifics.StringToken + 3, // 22: sync_pb.ContactInfoSpecifics.address_thoroughfare_number:type_name -> sync_pb.ContactInfoSpecifics.StringToken + 3, // 23: sync_pb.ContactInfoSpecifics.address_dependent_thoroughfare_name:type_name -> sync_pb.ContactInfoSpecifics.StringToken + 3, // 24: sync_pb.ContactInfoSpecifics.address_thoroughfare_and_dependent_thoroughfare_name:type_name -> sync_pb.ContactInfoSpecifics.StringToken + 3, // 25: sync_pb.ContactInfoSpecifics.address_premise_name:type_name -> sync_pb.ContactInfoSpecifics.StringToken + 3, // 26: sync_pb.ContactInfoSpecifics.address_subpremise_name:type_name -> sync_pb.ContactInfoSpecifics.StringToken + 3, // 27: sync_pb.ContactInfoSpecifics.address_apt_num:type_name -> sync_pb.ContactInfoSpecifics.StringToken + 3, // 28: sync_pb.ContactInfoSpecifics.address_floor:type_name -> sync_pb.ContactInfoSpecifics.StringToken + 3, // 29: sync_pb.ContactInfoSpecifics.phone_home_whole_number:type_name -> sync_pb.ContactInfoSpecifics.StringToken + 4, // 30: sync_pb.ContactInfoSpecifics.birthdate_day:type_name -> sync_pb.ContactInfoSpecifics.IntegerToken + 4, // 31: sync_pb.ContactInfoSpecifics.birthdate_month:type_name -> sync_pb.ContactInfoSpecifics.IntegerToken + 4, // 32: sync_pb.ContactInfoSpecifics.birthdate_year:type_name -> sync_pb.ContactInfoSpecifics.IntegerToken + 0, // 33: sync_pb.ContactInfoSpecifics.TokenMetadata.status:type_name -> sync_pb.ContactInfoSpecifics.VerificationStatus + 2, // 34: sync_pb.ContactInfoSpecifics.StringToken.metadata:type_name -> sync_pb.ContactInfoSpecifics.TokenMetadata + 2, // 35: sync_pb.ContactInfoSpecifics.IntegerToken.metadata:type_name -> sync_pb.ContactInfoSpecifics.TokenMetadata + 36, // [36:36] is the sub-list for method output_type + 36, // [36:36] is the sub-list for method input_type + 36, // [36:36] is the sub-list for extension type_name + 36, // [36:36] is the sub-list for extension extendee + 0, // [0:36] is the sub-list for field type_name +} + +func init() { file_contact_info_specifics_proto_init() } +func file_contact_info_specifics_proto_init() { + if File_contact_info_specifics_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_contact_info_specifics_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ContactInfoSpecifics); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_contact_info_specifics_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ContactInfoSpecifics_TokenMetadata); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_contact_info_specifics_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ContactInfoSpecifics_StringToken); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_contact_info_specifics_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ContactInfoSpecifics_IntegerToken); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_contact_info_specifics_proto_rawDesc, + NumEnums: 1, + NumMessages: 4, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_contact_info_specifics_proto_goTypes, + DependencyIndexes: file_contact_info_specifics_proto_depIdxs, + EnumInfos: file_contact_info_specifics_proto_enumTypes, + MessageInfos: file_contact_info_specifics_proto_msgTypes, + }.Build() + File_contact_info_specifics_proto = out.File + file_contact_info_specifics_proto_rawDesc = nil + file_contact_info_specifics_proto_goTypes = nil + file_contact_info_specifics_proto_depIdxs = nil +} diff --git a/schema/protobuf/sync_pb/contact_info_specifics.proto b/schema/protobuf/sync_pb/contact_info_specifics.proto new file mode 100644 index 00000000..de9366da --- /dev/null +++ b/schema/protobuf/sync_pb/contact_info_specifics.proto @@ -0,0 +1,169 @@ +// Copyright 2022 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// If you change or add any fields in this file, update proto_visitors.h and +// potentially proto_enum_conversions.{h, cc}. + +syntax = "proto2"; + +option go_package = "./sync_pb"; + +option java_multiple_files = true; +option java_package = "org.chromium.components.sync.protocol"; + +option optimize_for = LITE_RUNTIME; + +package sync_pb; + +message ContactInfoSpecifics { + // Represents the validation status of a stored value. + enum VerificationStatus { + // No verification status assigned. + VERIFICATION_STATUS_UNSPECIFIED = 0; + // The value token was parsed from a parent token. + // For example, the first name was derived by splitting a full name into + // its components. + PARSED = 1; + // Value was built from its subcomponents. + // For example, the full name was built from the first, middle and last + // name. + FORMATTED = 2; + // The value was observed in a form transmission. + // For example, the user filled a form that contained at NAME_FULL field. + // The value of NAME_FULL will be stored as OBSERVED. + OBSERVED = 3; + // The user used the settings UI to verify and store this token. + // This is currently only applicable to the full name, since users cannot + // edit individual components of their name. + USER_VERIFIED = 4; + // The token was parsed remotely. + SERVER_PARSED = 5; + } + + // Metadata that is attached to every token type. + message TokenMetadata { + optional VerificationStatus status = 1; + } + + // A token with a string interpretation of the value. + message StringToken { + optional string value = 1; + optional TokenMetadata metadata = 2; + } + + // A token with an integer interpretation of the value. + message IntegerToken { + optional int64 value = 1; + optional TokenMetadata metadata = 2; + } + + // A globally unique, immutable UUID represented in lowercase. + optional string guid = 1; + reserved 2; + reserved "source"; + // The number of time this profile has been used. + optional int64 use_count = 3; + + // The last time this profile was used. + optional int64 use_date_windows_epoch_micros = 4; + + // The last time the profile was modified. + optional int64 date_modified_windows_epoch_micros = 37; + + // The BCP 47 language code used to format the address for display. + optional string language_code = 38; + + // A user chosen profile label that is used to identify the profile. + // The value of the label can be freely chosen by the user. + optional string profile_label = 5; + + // Tracks the application that initially created the profile. The integer + // represents a value in the server-side enum `BillableService`. A value of + // 70073 represents Chrome (enum value BILLABLE_SERVICE_CHROME_PAYMENTS). + optional int32 initial_creator_id = 39; + // Tracks the application that applied the last modification to the + // non-metadata content of the profile. It represents a value in the same + // `BillableService` enum. + // All String- and IntegerToken, and the `profile_label` are considered + // non-metadata. + optional int32 last_modifier_id = 40; + + // Contact info name fields. + optional StringToken name_honorific = 6; + optional StringToken name_first = 7; + optional StringToken name_middle = 8; + optional StringToken name_last = 9; + // Sometimes the last name is composed of two names as it is common for + // Hispanic/Latinx names. In the unstructured representation of the last name, + // there may be even a conjunction between the first and the second last + // name. For example, the more-complete version of Pablo Picasso's surname is + // "Ruiz y Picasso" containing a first last name, a conjunction (the y) and a + // second last name. + optional StringToken name_last_first = 10; + optional StringToken name_last_conjunction = 11; + optional StringToken name_last_second = 12; + optional StringToken name_full = 13; + // This value contains the combination of the full name and the honorific + // prefix. + optional StringToken name_full_with_honorific = 14; + + // Contact info additional fields. + optional StringToken email_address = 15; + optional StringToken company_name = 16; + + // Address fields: These are user-provided values with no particular + // guarantees about their format. + optional StringToken address_city = 17; + optional StringToken address_state = 18; + optional StringToken address_zip = 19; + optional StringToken address_country = 20; + optional StringToken address_landmark = 41; + optional StringToken address_between_streets = 42; + optional StringToken address_admin_level_2 = 43; + + // Additional address fields for i18n. + // Includes all of the lines of a street address, including newlines, e.g. + // 123 Main Street, + // Apt. #42 + optional StringToken address_street_address = 21; + // A sorting code is similar to a postal code. However, whereas a postal code + // normally refers to a single geographical location, a sorting code often + // does not. Instead, a sorting code is assigned to an organization, which + // might be geographically distributed. The most prominent example of a + // sorting code system is CEDEX in France. + optional StringToken address_sorting_code = 22; + // A dependent locality is a subunit of a locality, where a "locality" is + // roughly equivalent to a city. Examples of dependent localities include + // inner-city districts and suburbs. + optional StringToken address_dependent_locality = 23; + reserved 24; + reserved "address_language_code"; + // The street name of the address, without a house number. + optional StringToken address_thoroughfare_name = 25; + // The house number, which may be alphanumeric. + optional StringToken address_thoroughfare_number = 26; + // Describes a crossing street as it is used in some countries to describe a + // location. + optional StringToken address_dependent_thoroughfare_name = 27; + // Contains both the thoroughfare and the dependent thoroughfare name. + optional StringToken address_thoroughfare_and_dependent_thoroughfare_name = + 28; + // A premise name corresponds to the name of a place or a building below the + // granularity of a street. + optional StringToken address_premise_name = 29; + // Contains the floor, staircase or apartment number within a building. + optional StringToken address_subpremise_name = 30; + // The apartment number within a building. + optional StringToken address_apt_num = 31; + // The floor number within a building. + optional StringToken address_floor = 32; + + // Phone. + optional StringToken phone_home_whole_number = 33; + + // Birthdate fields. + optional IntegerToken birthdate_day = 34; + optional IntegerToken birthdate_month = 35; // Between 1 and 12. + optional IntegerToken birthdate_year = 36; // 4 digits. +} diff --git a/schema/protobuf/sync_pb/data_type_progress_marker.pb.go b/schema/protobuf/sync_pb/data_type_progress_marker.pb.go index 336a2a43..1ff3a3e6 100644 --- a/schema/protobuf/sync_pb/data_type_progress_marker.pb.go +++ b/schema/protobuf/sync_pb/data_type_progress_marker.pb.go @@ -1,10 +1,10 @@ -// Copyright 2021 The Chromium Authors. All rights reserved. +// Copyright 2021 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.0 +// protoc-gen-go v1.31.0 // protoc v3.21.1 // source: data_type_progress_marker.proto @@ -29,8 +29,9 @@ type GarbageCollectionDirective_Type int32 const ( GarbageCollectionDirective_UNKNOWN GarbageCollectionDirective_Type = 0 GarbageCollectionDirective_VERSION_WATERMARK GarbageCollectionDirective_Type = 1 - GarbageCollectionDirective_AGE_WATERMARK GarbageCollectionDirective_Type = 2 - // Deprecated: Do not use. + // Deprecated: Marked as deprecated in data_type_progress_marker.proto. + GarbageCollectionDirective_DEPRECATED_AGE_WATERMARK GarbageCollectionDirective_Type = 2 + // Deprecated: Marked as deprecated in data_type_progress_marker.proto. GarbageCollectionDirective_DEPRECATED_MAX_ITEM_COUNT GarbageCollectionDirective_Type = 3 ) @@ -39,13 +40,13 @@ var ( GarbageCollectionDirective_Type_name = map[int32]string{ 0: "UNKNOWN", 1: "VERSION_WATERMARK", - 2: "AGE_WATERMARK", + 2: "DEPRECATED_AGE_WATERMARK", 3: "DEPRECATED_MAX_ITEM_COUNT", } GarbageCollectionDirective_Type_value = map[string]int32{ "UNKNOWN": 0, "VERSION_WATERMARK": 1, - "AGE_WATERMARK": 2, + "DEPRECATED_AGE_WATERMARK": 2, "DEPRECATED_MAX_ITEM_COUNT": 3, } ) @@ -270,10 +271,6 @@ type GarbageCollectionDirective struct { // TODO(crbug.com/877951): Rename this to make clear that whenever it's set, // the client will delete ALL data, regardless of its value. VersionWatermark *int64 `protobuf:"varint,2,opt,name=version_watermark,json=versionWatermark" json:"version_watermark,omitempty"` - // This field specifies the watermark in terms of age in days. The client - // should purge all sync entities which are older than this specific value - // based on last modified time. - AgeWatermarkInDays *int32 `protobuf:"varint,3,opt,name=age_watermark_in_days,json=ageWatermarkInDays" json:"age_watermark_in_days,omitempty"` } // Default values for GarbageCollectionDirective fields. @@ -327,13 +324,6 @@ func (x *GarbageCollectionDirective) GetVersionWatermark() int64 { return 0 } -func (x *GarbageCollectionDirective) GetAgeWatermarkInDays() int32 { - if x != nil && x.AgeWatermarkInDays != nil { - return *x.AgeWatermarkInDays - } - return 0 -} - // This message communicates additional per-type information related to // requests with origin GU_TRIGGER. This message is not relevant when any // other origin value is used. @@ -346,12 +336,7 @@ type GetUpdateTriggers struct { // An opaque-to-the-client string of bytes, received through a notification, // that the server may interpret as a hint about the location of the latest // version of the data for this type. - // - // Note that this will eventually replace the 'optional' field of the same - // name defined in the progress marker, but the client and server should - // support both until it's safe to deprecate the old one. - // - // This field was introduced in M29. + // Introduced in M29. NotificationHint []string `protobuf:"bytes,1,rep,name=notification_hint,json=notificationHint" json:"notification_hint,omitempty"` // This flag is set if the client was forced to drop hints because the number // of queued hints exceeded its limit. The oldest hints will be discarded @@ -359,11 +344,11 @@ type GetUpdateTriggers struct { ClientDroppedHints *bool `protobuf:"varint,2,opt,name=client_dropped_hints,json=clientDroppedHints" json:"client_dropped_hints,omitempty"` // This flag is set when the client suspects that its list of invalidation // hints may be incomplete. This may be the case if: - // - The client is syncing for the first time. - // - The client has just restarted and it was unable to keep track of - // invalidations that were received prior to the restart. - // - The client's connection to the invalidation server is currently or - // was recently broken. + // - The client is syncing for the first time. + // - The client has just restarted and it was unable to keep track of + // invalidations that were received prior to the restart. + // - The client's connection to the invalidation server is currently or + // was recently broken. // // It's difficult to provide more details here. This is implemented by // setting the flag to false whenever anything that might adversely affect @@ -529,7 +514,7 @@ var file_data_type_progress_marker_proto_rawDesc = []byte{ 0x70, 0x65, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xc0, 0x02, 0x0a, 0x1a, 0x47, 0x61, 0x72, + 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xb9, 0x02, 0x0a, 0x1a, 0x47, 0x61, 0x72, 0x62, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x45, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, @@ -538,51 +523,51 @@ var file_data_type_progress_marker_proto_rawDesc = []byte{ 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x2b, 0x0a, 0x11, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x77, 0x61, 0x74, 0x65, 0x72, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x76, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x57, 0x61, 0x74, 0x65, 0x72, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x31, 0x0a, 0x15, 0x61, - 0x67, 0x65, 0x5f, 0x77, 0x61, 0x74, 0x65, 0x72, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x69, 0x6e, 0x5f, - 0x64, 0x61, 0x79, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x61, 0x67, 0x65, 0x57, - 0x61, 0x74, 0x65, 0x72, 0x6d, 0x61, 0x72, 0x6b, 0x49, 0x6e, 0x44, 0x61, 0x79, 0x73, 0x22, 0x60, - 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, - 0x4e, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x56, 0x45, 0x52, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x57, - 0x41, 0x54, 0x45, 0x52, 0x4d, 0x41, 0x52, 0x4b, 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x41, 0x47, - 0x45, 0x5f, 0x57, 0x41, 0x54, 0x45, 0x52, 0x4d, 0x41, 0x52, 0x4b, 0x10, 0x02, 0x12, 0x21, 0x0a, - 0x19, 0x44, 0x45, 0x50, 0x52, 0x45, 0x43, 0x41, 0x54, 0x45, 0x44, 0x5f, 0x4d, 0x41, 0x58, 0x5f, - 0x49, 0x54, 0x45, 0x4d, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x10, 0x03, 0x1a, 0x02, 0x08, 0x01, - 0x4a, 0x04, 0x08, 0x04, 0x10, 0x05, 0x52, 0x13, 0x6d, 0x61, 0x78, 0x5f, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x5f, 0x6f, 0x66, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x22, 0xdd, 0x03, 0x0a, 0x11, - 0x47, 0x65, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, - 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x68, 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x6e, 0x6f, - 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x69, 0x6e, 0x74, 0x12, 0x30, - 0x0a, 0x14, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x70, 0x65, 0x64, - 0x5f, 0x68, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x63, 0x6c, - 0x69, 0x65, 0x6e, 0x74, 0x44, 0x72, 0x6f, 0x70, 0x70, 0x65, 0x64, 0x48, 0x69, 0x6e, 0x74, 0x73, - 0x12, 0x39, 0x0a, 0x19, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x5f, 0x6f, 0x75, 0x74, 0x5f, 0x6f, 0x66, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x16, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x4f, 0x75, 0x74, 0x4f, 0x66, 0x53, 0x79, 0x6e, 0x63, 0x12, 0x3a, 0x0a, 0x19, 0x6c, - 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x6e, 0x75, 0x64, 0x67, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x17, - 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x4e, 0x75, 0x64, 0x67, 0x65, 0x73, 0x12, 0x36, 0x0a, 0x17, 0x64, 0x61, 0x74, 0x61, 0x74, - 0x79, 0x70, 0x65, 0x5f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x6e, 0x75, 0x64, 0x67, - 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x15, 0x64, 0x61, 0x74, 0x61, 0x74, 0x79, - 0x70, 0x65, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x4e, 0x75, 0x64, 0x67, 0x65, 0x73, 0x12, - 0x30, 0x0a, 0x14, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x70, 0x65, - 0x64, 0x5f, 0x68, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x44, 0x72, 0x6f, 0x70, 0x70, 0x65, 0x64, 0x48, 0x69, 0x6e, 0x74, - 0x73, 0x12, 0x37, 0x0a, 0x18, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x73, 0x79, 0x6e, - 0x63, 0x5f, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x15, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x53, 0x79, 0x6e, 0x63, - 0x49, 0x6e, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x4f, 0x0a, 0x25, 0x73, 0x79, - 0x6e, 0x63, 0x5f, 0x66, 0x6f, 0x72, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x5f, 0x63, - 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x5f, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x67, 0x72, - 0x65, 0x73, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x20, 0x73, 0x79, 0x6e, 0x63, 0x46, - 0x6f, 0x72, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, - 0x74, 0x49, 0x6e, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x42, 0x2b, 0x0a, 0x25, 0x6f, - 0x72, 0x67, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x70, - 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x03, 0x50, 0x01, + 0x6f, 0x6e, 0x57, 0x61, 0x74, 0x65, 0x72, 0x6d, 0x61, 0x72, 0x6b, 0x22, 0x6f, 0x0a, 0x04, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, + 0x12, 0x15, 0x0a, 0x11, 0x56, 0x45, 0x52, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x57, 0x41, 0x54, 0x45, + 0x52, 0x4d, 0x41, 0x52, 0x4b, 0x10, 0x01, 0x12, 0x20, 0x0a, 0x18, 0x44, 0x45, 0x50, 0x52, 0x45, + 0x43, 0x41, 0x54, 0x45, 0x44, 0x5f, 0x41, 0x47, 0x45, 0x5f, 0x57, 0x41, 0x54, 0x45, 0x52, 0x4d, + 0x41, 0x52, 0x4b, 0x10, 0x02, 0x1a, 0x02, 0x08, 0x01, 0x12, 0x21, 0x0a, 0x19, 0x44, 0x45, 0x50, + 0x52, 0x45, 0x43, 0x41, 0x54, 0x45, 0x44, 0x5f, 0x4d, 0x41, 0x58, 0x5f, 0x49, 0x54, 0x45, 0x4d, + 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x10, 0x03, 0x1a, 0x02, 0x08, 0x01, 0x4a, 0x04, 0x08, 0x03, + 0x10, 0x04, 0x4a, 0x04, 0x08, 0x04, 0x10, 0x05, 0x52, 0x15, 0x61, 0x67, 0x65, 0x5f, 0x77, 0x61, + 0x74, 0x65, 0x72, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x69, 0x6e, 0x5f, 0x64, 0x61, 0x79, 0x73, 0x52, + 0x13, 0x6d, 0x61, 0x78, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x6f, 0x66, 0x5f, 0x69, + 0x74, 0x65, 0x6d, 0x73, 0x22, 0xdd, 0x03, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x6e, 0x6f, + 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x68, 0x69, 0x6e, 0x74, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x48, 0x69, 0x6e, 0x74, 0x12, 0x30, 0x0a, 0x14, 0x63, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x70, 0x65, 0x64, 0x5f, 0x68, 0x69, 0x6e, 0x74, 0x73, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x44, 0x72, 0x6f, + 0x70, 0x70, 0x65, 0x64, 0x48, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x39, 0x0a, 0x19, 0x69, 0x6e, 0x76, + 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x6f, 0x75, 0x74, 0x5f, 0x6f, + 0x66, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x69, 0x6e, + 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4f, 0x75, 0x74, 0x4f, 0x66, + 0x53, 0x79, 0x6e, 0x63, 0x12, 0x3a, 0x0a, 0x19, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x6d, 0x6f, + 0x64, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x75, 0x64, 0x67, 0x65, + 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x17, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x4d, 0x6f, + 0x64, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x64, 0x67, 0x65, 0x73, + 0x12, 0x36, 0x0a, 0x17, 0x64, 0x61, 0x74, 0x61, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x72, 0x65, 0x66, + 0x72, 0x65, 0x73, 0x68, 0x5f, 0x6e, 0x75, 0x64, 0x67, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x15, 0x64, 0x61, 0x74, 0x61, 0x74, 0x79, 0x70, 0x65, 0x52, 0x65, 0x66, 0x72, 0x65, + 0x73, 0x68, 0x4e, 0x75, 0x64, 0x67, 0x65, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x70, 0x65, 0x64, 0x5f, 0x68, 0x69, 0x6e, 0x74, 0x73, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x44, 0x72, + 0x6f, 0x70, 0x70, 0x65, 0x64, 0x48, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x37, 0x0a, 0x18, 0x69, 0x6e, + 0x69, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x69, 0x6e, 0x5f, 0x70, 0x72, + 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x69, 0x6e, + 0x69, 0x74, 0x69, 0x61, 0x6c, 0x53, 0x79, 0x6e, 0x63, 0x49, 0x6e, 0x50, 0x72, 0x6f, 0x67, 0x72, + 0x65, 0x73, 0x73, 0x12, 0x4f, 0x0a, 0x25, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x66, 0x6f, 0x72, 0x5f, + 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, + 0x5f, 0x69, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x20, 0x73, 0x79, 0x6e, 0x63, 0x46, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x6f, 0x6c, + 0x76, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x49, 0x6e, 0x50, 0x72, 0x6f, 0x67, + 0x72, 0x65, 0x73, 0x73, 0x42, 0x36, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, 0x72, 0x6f, + 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2e, + 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x03, 0x50, + 0x01, 0x5a, 0x09, 0x2e, 0x2f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, } var ( diff --git a/schema/protobuf/sync_pb/data_type_progress_marker.proto b/schema/protobuf/sync_pb/data_type_progress_marker.proto index 89bb9a8a..d7ca3996 100644 --- a/schema/protobuf/sync_pb/data_type_progress_marker.proto +++ b/schema/protobuf/sync_pb/data_type_progress_marker.proto @@ -1,9 +1,11 @@ -// Copyright 2021 The Chromium Authors. All rights reserved. +// Copyright 2021 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. syntax = "proto2"; +option go_package = "./sync_pb"; + option java_multiple_files = true; option java_package = "org.chromium.components.sync.protocol"; @@ -72,7 +74,7 @@ message GarbageCollectionDirective { enum Type { UNKNOWN = 0; VERSION_WATERMARK = 1; - AGE_WATERMARK = 2; + DEPRECATED_AGE_WATERMARK = 2 [deprecated = true]; DEPRECATED_MAX_ITEM_COUNT = 3 [deprecated = true]; } @@ -87,10 +89,8 @@ message GarbageCollectionDirective { // the client will delete ALL data, regardless of its value. optional int64 version_watermark = 2; - // This field specifies the watermark in terms of age in days. The client - // should purge all sync entities which are older than this specific value - // based on last modified time. - optional int32 age_watermark_in_days = 3; + reserved 3; + reserved "age_watermark_in_days"; reserved 4; reserved "max_number_of_items"; @@ -104,12 +104,7 @@ message GetUpdateTriggers { // An opaque-to-the-client string of bytes, received through a notification, // that the server may interpret as a hint about the location of the latest // version of the data for this type. - // - // Note that this will eventually replace the 'optional' field of the same - // name defined in the progress marker, but the client and server should - // support both until it's safe to deprecate the old one. - // - // This field was introduced in M29. + // Introduced in M29. repeated string notification_hint = 1; // This flag is set if the client was forced to drop hints because the number diff --git a/schema/protobuf/sync_pb/device_info_specifics.pb.go b/schema/protobuf/sync_pb/device_info_specifics.pb.go index 490166a5..438a2fa3 100644 --- a/schema/protobuf/sync_pb/device_info_specifics.pb.go +++ b/schema/protobuf/sync_pb/device_info_specifics.pb.go @@ -1,4 +1,4 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2012 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // @@ -9,7 +9,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.0 +// protoc-gen-go v1.31.0 // protoc v3.21.1 // source: device_info_specifics.proto @@ -125,6 +125,10 @@ type DeviceInfoSpecifics struct { // A non-unique but human readable name to describe this client. ClientName *string `protobuf:"bytes,2,opt,name=client_name,json=clientName" json:"client_name,omitempty"` // The platform of the device. + // Deprecated in M110, but still populated for backwards compatibility. + // Replaced by os_type + device_form_factor. + // + // Deprecated: Marked as deprecated in device_info_specifics.proto. DeviceType *SyncEnums_DeviceType `protobuf:"varint,3,opt,name=device_type,json=deviceType,enum=sync_pb.SyncEnums_DeviceType" json:"device_type,omitempty"` // The UserAgent used when contacting the Chrome Sync server. // Only present when talking to the HTTP server. @@ -132,13 +136,13 @@ type DeviceInfoSpecifics struct { // The Chrome instance's version. Updated (if necessary) on every startup. // DEPRECATED in M92. Still populated for backward compatibility. // - // Deprecated: Do not use. + // Deprecated: Marked as deprecated in device_info_specifics.proto. ChromeVersion *string `protobuf:"bytes,5,opt,name=chrome_version,json=chromeVersion" json:"chrome_version,omitempty"` // Last time when pre-sync data on the device was saved. The device can be // restored to state back to this time. In millisecond since UNIX epoch. // DEPRECATED in M50. // - // Deprecated: Do not use. + // Deprecated: Marked as deprecated in device_info_specifics.proto. DeprecatedBackupTimestamp *int64 `protobuf:"varint,6,opt,name=deprecated_backup_timestamp,json=deprecatedBackupTimestamp" json:"deprecated_backup_timestamp,omitempty"` // Device_id that is stable until user signs out. This device_id is used for // annotating login scoped refresh token. Present only for Chrome Clients. @@ -174,10 +178,14 @@ type DeviceInfoSpecifics struct { // Version information to pin-point which client implementation this is. // // Types that are assignable to ClientVersionInfo: + // // *DeviceInfoSpecifics_ChromeVersionInfo // *DeviceInfoSpecifics_GooglePlayServicesVersionInfo ClientVersionInfo isDeviceInfoSpecifics_ClientVersionInfo `protobuf_oneof:"client_version_info"` - BraveFields *BraveSpecificFields `protobuf:"bytes,1000,opt,name=brave_fields,json=braveFields" json:"brave_fields,omitempty"` + // The OS type the device. + OsType *SyncEnums_OsType `protobuf:"varint,19,opt,name=os_type,json=osType,enum=sync_pb.SyncEnums_OsType" json:"os_type,omitempty"` + // The form factor of the device. + DeviceFormFactor *SyncEnums_DeviceFormFactor `protobuf:"varint,20,opt,name=device_form_factor,json=deviceFormFactor,enum=sync_pb.SyncEnums_DeviceFormFactor" json:"device_form_factor,omitempty"` } func (x *DeviceInfoSpecifics) Reset() { @@ -226,6 +234,7 @@ func (x *DeviceInfoSpecifics) GetClientName() string { return "" } +// Deprecated: Marked as deprecated in device_info_specifics.proto. func (x *DeviceInfoSpecifics) GetDeviceType() SyncEnums_DeviceType { if x != nil && x.DeviceType != nil { return *x.DeviceType @@ -240,7 +249,7 @@ func (x *DeviceInfoSpecifics) GetSyncUserAgent() string { return "" } -// Deprecated: Do not use. +// Deprecated: Marked as deprecated in device_info_specifics.proto. func (x *DeviceInfoSpecifics) GetChromeVersion() string { if x != nil && x.ChromeVersion != nil { return *x.ChromeVersion @@ -248,7 +257,7 @@ func (x *DeviceInfoSpecifics) GetChromeVersion() string { return "" } -// Deprecated: Do not use. +// Deprecated: Marked as deprecated in device_info_specifics.proto. func (x *DeviceInfoSpecifics) GetDeprecatedBackupTimestamp() int64 { if x != nil && x.DeprecatedBackupTimestamp != nil { return *x.DeprecatedBackupTimestamp @@ -347,11 +356,18 @@ func (x *DeviceInfoSpecifics) GetGooglePlayServicesVersionInfo() *GooglePlayServ return nil } -func (x *DeviceInfoSpecifics) GetBraveFields() *BraveSpecificFields { - if x != nil { - return x.BraveFields +func (x *DeviceInfoSpecifics) GetOsType() SyncEnums_OsType { + if x != nil && x.OsType != nil { + return *x.OsType } - return nil + return SyncEnums_OS_TYPE_UNSPECIFIED +} + +func (x *DeviceInfoSpecifics) GetDeviceFormFactor() SyncEnums_DeviceFormFactor { + if x != nil && x.DeviceFormFactor != nil { + return *x.DeviceFormFactor + } + return SyncEnums_DEVICE_FORM_FACTOR_UNSPECIFIED } type isDeviceInfoSpecifics_ClientVersionInfo interface { @@ -444,15 +460,15 @@ type SharingSpecificFields struct { EnabledFeatures []SharingSpecificFields_EnabledFeatures `protobuf:"varint,4,rep,name=enabled_features,json=enabledFeatures,enum=sync_pb.SharingSpecificFields_EnabledFeatures" json:"enabled_features,omitempty"` // Deprecated. Use sender_id_fcm_token_v2 for new clients. // - // Deprecated: Do not use. + // Deprecated: Marked as deprecated in device_info_specifics.proto. SenderIdFcmTokenDeprecated *string `protobuf:"bytes,5,opt,name=sender_id_fcm_token_deprecated,json=senderIdFcmTokenDeprecated" json:"sender_id_fcm_token_deprecated,omitempty"` // Deprecated. Use sender_id_p256dh_v2 for new clients. // - // Deprecated: Do not use. + // Deprecated: Marked as deprecated in device_info_specifics.proto. SenderIdP256DhDeprecated []byte `protobuf:"bytes,6,opt,name=sender_id_p256dh_deprecated,json=senderIdP256dhDeprecated" json:"sender_id_p256dh_deprecated,omitempty"` // Deprecated. Use sender_id_auth_secret_v2 for new clients. // - // Deprecated: Do not use. + // Deprecated: Marked as deprecated in device_info_specifics.proto. SenderIdAuthSecretDeprecated []byte `protobuf:"bytes,7,opt,name=sender_id_auth_secret_deprecated,json=senderIdAuthSecretDeprecated" json:"sender_id_auth_secret_deprecated,omitempty"` // FCM registration token of device subscribed using Sharing sender ID. SenderIdFcmTokenV2 *string `protobuf:"bytes,8,opt,name=sender_id_fcm_token_v2,json=senderIdFcmTokenV2" json:"sender_id_fcm_token_v2,omitempty"` @@ -522,7 +538,7 @@ func (x *SharingSpecificFields) GetEnabledFeatures() []SharingSpecificFields_Ena return nil } -// Deprecated: Do not use. +// Deprecated: Marked as deprecated in device_info_specifics.proto. func (x *SharingSpecificFields) GetSenderIdFcmTokenDeprecated() string { if x != nil && x.SenderIdFcmTokenDeprecated != nil { return *x.SenderIdFcmTokenDeprecated @@ -530,7 +546,7 @@ func (x *SharingSpecificFields) GetSenderIdFcmTokenDeprecated() string { return "" } -// Deprecated: Do not use. +// Deprecated: Marked as deprecated in device_info_specifics.proto. func (x *SharingSpecificFields) GetSenderIdP256DhDeprecated() []byte { if x != nil { return x.SenderIdP256DhDeprecated @@ -538,7 +554,7 @@ func (x *SharingSpecificFields) GetSenderIdP256DhDeprecated() []byte { return nil } -// Deprecated: Do not use. +// Deprecated: Marked as deprecated in device_info_specifics.proto. func (x *SharingSpecificFields) GetSenderIdAuthSecretDeprecated() []byte { if x != nil { return x.SenderIdAuthSecretDeprecated @@ -821,174 +837,177 @@ var file_device_info_specifics_proto_rawDesc = []byte{ 0x0a, 0x1b, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x07, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x1a, 0x10, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x65, 0x6e, 0x75, - 0x6d, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x21, 0x62, 0x72, 0x61, 0x76, 0x65, 0x5f, - 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x5f, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x8c, 0x09, 0x0a, 0x13, - 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x69, 0x63, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x61, 0x63, 0x68, 0x65, 0x5f, 0x67, 0x75, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x61, 0x63, 0x68, 0x65, 0x47, 0x75, - 0x69, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x3e, 0x0a, 0x0b, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, - 0x70, 0x62, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x45, 0x6e, 0x75, 0x6d, 0x73, 0x2e, 0x44, 0x65, 0x76, - 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, - 0x79, 0x70, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x75, 0x73, 0x65, 0x72, - 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x79, - 0x6e, 0x63, 0x55, 0x73, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x29, 0x0a, 0x0e, 0x63, - 0x68, 0x72, 0x6f, 0x6d, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0d, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x65, 0x56, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x42, 0x0a, 0x1b, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, - 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x74, 0x69, 0x6d, 0x65, - 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x42, 0x02, 0x18, 0x01, 0x52, - 0x19, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x75, - 0x70, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x35, 0x0a, 0x17, 0x73, 0x69, - 0x67, 0x6e, 0x69, 0x6e, 0x5f, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x64, 0x5f, 0x64, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x73, 0x69, 0x67, - 0x6e, 0x69, 0x6e, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x64, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, - 0x64, 0x12, 0x34, 0x0a, 0x16, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x14, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x54, 0x69, - 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x45, 0x0a, 0x0e, 0x66, 0x65, 0x61, 0x74, 0x75, - 0x72, 0x65, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1e, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, - 0x65, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x52, - 0x0d, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x12, 0x45, - 0x0a, 0x0e, 0x73, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, - 0x2e, 0x53, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, - 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x52, 0x0d, 0x73, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x46, - 0x69, 0x65, 0x6c, 0x64, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x18, 0x0b, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x22, 0x0a, 0x0c, 0x6d, - 0x61, 0x6e, 0x75, 0x66, 0x61, 0x63, 0x74, 0x75, 0x72, 0x65, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0c, 0x6d, 0x61, 0x6e, 0x75, 0x66, 0x61, 0x63, 0x74, 0x75, 0x72, 0x65, 0x72, 0x12, - 0x39, 0x0a, 0x19, 0x70, 0x75, 0x6c, 0x73, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, - 0x6c, 0x5f, 0x69, 0x6e, 0x5f, 0x6d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x73, 0x18, 0x0d, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x16, 0x70, 0x75, 0x6c, 0x73, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, - 0x6c, 0x49, 0x6e, 0x4d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x73, 0x12, 0x54, 0x0a, 0x13, 0x69, 0x6e, - 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, - 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, - 0x62, 0x2e, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x70, - 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x52, 0x12, 0x69, 0x6e, - 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, - 0x12, 0x4d, 0x0a, 0x0c, 0x70, 0x61, 0x61, 0x73, 0x6b, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, - 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, - 0x2e, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x41, 0x73, 0x41, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, - 0x79, 0x4b, 0x65, 0x79, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x46, 0x69, 0x65, 0x6c, - 0x64, 0x73, 0x52, 0x0b, 0x70, 0x61, 0x61, 0x73, 0x6b, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x12, - 0x2e, 0x0a, 0x13, 0x66, 0x75, 0x6c, 0x6c, 0x5f, 0x68, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, - 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x66, 0x75, - 0x6c, 0x6c, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, - 0x4c, 0x0a, 0x13, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x73, - 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x68, 0x72, 0x6f, 0x6d, 0x65, 0x56, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x00, 0x52, 0x11, 0x63, 0x68, 0x72, 0x6f, - 0x6d, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x72, 0x0a, - 0x21, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x73, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x73, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, - 0x66, 0x6f, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, - 0x70, 0x62, 0x2e, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x53, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x73, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, - 0x48, 0x00, 0x52, 0x1d, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x53, 0x65, + 0x6d, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xd5, 0x09, 0x0a, 0x13, 0x44, 0x65, 0x76, + 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, + 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x61, 0x63, 0x68, 0x65, 0x5f, 0x67, 0x75, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x61, 0x63, 0x68, 0x65, 0x47, 0x75, 0x69, 0x64, 0x12, + 0x1f, 0x0a, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x42, 0x0a, 0x0b, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, + 0x53, 0x79, 0x6e, 0x63, 0x45, 0x6e, 0x75, 0x6d, 0x73, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x54, 0x79, 0x70, 0x65, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x75, 0x73, 0x65, + 0x72, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, + 0x79, 0x6e, 0x63, 0x55, 0x73, 0x65, 0x72, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x29, 0x0a, 0x0e, + 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0d, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x65, + 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x42, 0x0a, 0x1b, 0x64, 0x65, 0x70, 0x72, 0x65, + 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x74, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x42, 0x02, 0x18, 0x01, + 0x52, 0x19, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x42, 0x61, 0x63, 0x6b, + 0x75, 0x70, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x35, 0x0a, 0x17, 0x73, + 0x69, 0x67, 0x6e, 0x69, 0x6e, 0x5f, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x64, 0x5f, 0x64, 0x65, 0x76, + 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x73, 0x69, + 0x67, 0x6e, 0x69, 0x6e, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x64, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x49, 0x64, 0x12, 0x34, 0x0a, 0x16, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x14, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x54, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x45, 0x0a, 0x0e, 0x66, 0x65, 0x61, 0x74, + 0x75, 0x72, 0x65, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1e, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, + 0x72, 0x65, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, + 0x52, 0x0d, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x12, + 0x45, 0x0a, 0x0e, 0x73, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, + 0x62, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x63, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x52, 0x0d, 0x73, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, + 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x18, + 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x22, 0x0a, 0x0c, + 0x6d, 0x61, 0x6e, 0x75, 0x66, 0x61, 0x63, 0x74, 0x75, 0x72, 0x65, 0x72, 0x18, 0x0c, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0c, 0x6d, 0x61, 0x6e, 0x75, 0x66, 0x61, 0x63, 0x74, 0x75, 0x72, 0x65, 0x72, + 0x12, 0x39, 0x0a, 0x19, 0x70, 0x75, 0x6c, 0x73, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, + 0x61, 0x6c, 0x5f, 0x69, 0x6e, 0x5f, 0x6d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x73, 0x18, 0x0d, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x16, 0x70, 0x75, 0x6c, 0x73, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, + 0x61, 0x6c, 0x49, 0x6e, 0x4d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x73, 0x12, 0x54, 0x0a, 0x13, 0x69, + 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, + 0x70, 0x62, 0x2e, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x52, 0x12, 0x69, + 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x69, 0x65, 0x6c, 0x64, + 0x73, 0x12, 0x4d, 0x0a, 0x0c, 0x70, 0x61, 0x61, 0x73, 0x6b, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, + 0x62, 0x2e, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x41, 0x73, 0x41, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, + 0x74, 0x79, 0x4b, 0x65, 0x79, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x46, 0x69, 0x65, + 0x6c, 0x64, 0x73, 0x52, 0x0b, 0x70, 0x61, 0x61, 0x73, 0x6b, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, + 0x12, 0x2e, 0x0a, 0x13, 0x66, 0x75, 0x6c, 0x6c, 0x5f, 0x68, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, + 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x66, + 0x75, 0x6c, 0x6c, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, + 0x12, 0x4c, 0x0a, 0x13, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, + 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x68, 0x72, 0x6f, 0x6d, 0x65, 0x56, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x00, 0x52, 0x11, 0x63, 0x68, 0x72, + 0x6f, 0x6d, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x72, + 0x0a, 0x21, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, + 0x6e, 0x66, 0x6f, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x79, 0x6e, 0x63, + 0x5f, 0x70, 0x62, 0x2e, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, - 0x6f, 0x12, 0x40, 0x0a, 0x0c, 0x62, 0x72, 0x61, 0x76, 0x65, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, - 0x73, 0x18, 0xe8, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, - 0x70, 0x62, 0x2e, 0x42, 0x72, 0x61, 0x76, 0x65, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, - 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x52, 0x0b, 0x62, 0x72, 0x61, 0x76, 0x65, 0x46, 0x69, 0x65, - 0x6c, 0x64, 0x73, 0x42, 0x15, 0x0a, 0x13, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x76, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0x62, 0x0a, 0x15, 0x46, 0x65, - 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x46, 0x69, 0x65, - 0x6c, 0x64, 0x73, 0x12, 0x49, 0x0a, 0x22, 0x73, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x61, 0x62, 0x5f, - 0x74, 0x6f, 0x5f, 0x73, 0x65, 0x6c, 0x66, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x69, 0x6e, - 0x67, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x1d, 0x73, 0x65, 0x6e, 0x64, 0x54, 0x61, 0x62, 0x54, 0x6f, 0x53, 0x65, 0x6c, 0x66, 0x52, 0x65, - 0x63, 0x65, 0x69, 0x76, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x22, 0xd2, - 0x06, 0x0a, 0x15, 0x53, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x69, 0x63, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x76, 0x61, 0x70, 0x69, - 0x64, 0x5f, 0x66, 0x63, 0x6d, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0d, 0x76, 0x61, 0x70, 0x69, 0x64, 0x46, 0x63, 0x6d, 0x54, 0x6f, 0x6b, 0x65, 0x6e, - 0x12, 0x21, 0x0a, 0x0c, 0x76, 0x61, 0x70, 0x69, 0x64, 0x5f, 0x70, 0x32, 0x35, 0x36, 0x64, 0x68, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x76, 0x61, 0x70, 0x69, 0x64, 0x50, 0x32, 0x35, - 0x36, 0x64, 0x68, 0x12, 0x2a, 0x0a, 0x11, 0x76, 0x61, 0x70, 0x69, 0x64, 0x5f, 0x61, 0x75, 0x74, - 0x68, 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, - 0x76, 0x61, 0x70, 0x69, 0x64, 0x41, 0x75, 0x74, 0x68, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, - 0x59, 0x0a, 0x10, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x5f, 0x66, 0x65, 0x61, 0x74, 0x75, - 0x72, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x73, 0x79, 0x6e, 0x63, - 0x5f, 0x70, 0x62, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x53, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x63, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x2e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, - 0x64, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x52, 0x0f, 0x65, 0x6e, 0x61, 0x62, 0x6c, - 0x65, 0x64, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x46, 0x0a, 0x1e, 0x73, 0x65, - 0x6e, 0x64, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x5f, 0x66, 0x63, 0x6d, 0x5f, 0x74, 0x6f, 0x6b, 0x65, - 0x6e, 0x5f, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x1a, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x49, 0x64, - 0x46, 0x63, 0x6d, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, - 0x65, 0x64, 0x12, 0x41, 0x0a, 0x1b, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x5f, - 0x70, 0x32, 0x35, 0x36, 0x64, 0x68, 0x5f, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, - 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x02, 0x18, 0x01, 0x52, 0x18, 0x73, 0x65, 0x6e, - 0x64, 0x65, 0x72, 0x49, 0x64, 0x50, 0x32, 0x35, 0x36, 0x64, 0x68, 0x44, 0x65, 0x70, 0x72, 0x65, - 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x4a, 0x0a, 0x20, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x5f, - 0x69, 0x64, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x5f, 0x64, - 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x42, - 0x02, 0x18, 0x01, 0x52, 0x1c, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x49, 0x64, 0x41, 0x75, 0x74, - 0x68, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, - 0x64, 0x12, 0x32, 0x0a, 0x16, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x5f, 0x66, - 0x63, 0x6d, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x76, 0x32, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x12, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x49, 0x64, 0x46, 0x63, 0x6d, 0x54, 0x6f, - 0x6b, 0x65, 0x6e, 0x56, 0x32, 0x12, 0x2d, 0x0a, 0x13, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x5f, - 0x69, 0x64, 0x5f, 0x70, 0x32, 0x35, 0x36, 0x64, 0x68, 0x5f, 0x76, 0x32, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x10, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x49, 0x64, 0x50, 0x32, 0x35, 0x36, - 0x64, 0x68, 0x56, 0x32, 0x12, 0x36, 0x0a, 0x18, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x5f, 0x69, - 0x64, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x5f, 0x76, 0x32, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x14, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x49, 0x64, - 0x41, 0x75, 0x74, 0x68, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x56, 0x32, 0x22, 0xf4, 0x01, 0x0a, - 0x0f, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, - 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x17, 0x0a, - 0x13, 0x43, 0x4c, 0x49, 0x43, 0x4b, 0x5f, 0x54, 0x4f, 0x5f, 0x43, 0x41, 0x4c, 0x4c, 0x5f, 0x56, - 0x41, 0x50, 0x49, 0x44, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x53, 0x48, 0x41, 0x52, 0x45, 0x44, - 0x5f, 0x43, 0x4c, 0x49, 0x50, 0x42, 0x4f, 0x41, 0x52, 0x44, 0x5f, 0x56, 0x41, 0x50, 0x49, 0x44, - 0x10, 0x02, 0x12, 0x0f, 0x0a, 0x0b, 0x53, 0x4d, 0x53, 0x5f, 0x46, 0x45, 0x54, 0x43, 0x48, 0x45, - 0x52, 0x10, 0x03, 0x12, 0x0f, 0x0a, 0x0b, 0x52, 0x45, 0x4d, 0x4f, 0x54, 0x45, 0x5f, 0x43, 0x4f, - 0x50, 0x59, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x56, 0x45, 0x52, - 0x59, 0x10, 0x06, 0x12, 0x14, 0x0a, 0x10, 0x43, 0x4c, 0x49, 0x43, 0x4b, 0x5f, 0x54, 0x4f, 0x5f, - 0x43, 0x41, 0x4c, 0x4c, 0x5f, 0x56, 0x32, 0x10, 0x07, 0x12, 0x17, 0x0a, 0x13, 0x53, 0x48, 0x41, - 0x52, 0x45, 0x44, 0x5f, 0x43, 0x4c, 0x49, 0x50, 0x42, 0x4f, 0x41, 0x52, 0x44, 0x5f, 0x56, 0x32, - 0x10, 0x08, 0x12, 0x28, 0x0a, 0x24, 0x4f, 0x50, 0x54, 0x49, 0x4d, 0x49, 0x5a, 0x41, 0x54, 0x49, - 0x4f, 0x4e, 0x5f, 0x47, 0x55, 0x49, 0x44, 0x45, 0x5f, 0x50, 0x55, 0x53, 0x48, 0x5f, 0x4e, 0x4f, - 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x09, 0x22, 0x04, 0x08, 0x05, - 0x10, 0x05, 0x2a, 0x0f, 0x50, 0x45, 0x45, 0x52, 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, - 0x49, 0x4f, 0x4e, 0x22, 0x81, 0x01, 0x0a, 0x1a, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x46, 0x69, 0x65, 0x6c, - 0x64, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x69, - 0x64, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x69, - 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x64, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x37, - 0x0a, 0x18, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, - 0x61, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, - 0x52, 0x15, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, - 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x73, 0x22, 0xcd, 0x01, 0x0a, 0x21, 0x50, 0x68, 0x6f, 0x6e, - 0x65, 0x41, 0x73, 0x41, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x4b, 0x65, 0x79, 0x53, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x12, 0x30, 0x0a, - 0x14, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x64, - 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x74, 0x75, 0x6e, - 0x6e, 0x65, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, - 0x1d, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x49, 0x64, 0x12, 0x16, - 0x0a, 0x06, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, - 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x07, 0x52, 0x02, 0x69, 0x64, 0x12, 0x2f, 0x0a, 0x14, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x70, - 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x78, 0x39, 0x36, 0x32, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x11, 0x70, 0x65, 0x65, 0x72, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, - 0x4b, 0x65, 0x79, 0x58, 0x39, 0x36, 0x32, 0x22, 0x3a, 0x0a, 0x11, 0x43, 0x68, 0x72, 0x6f, 0x6d, - 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x25, 0x0a, 0x0e, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x22, 0x49, 0x0a, 0x1d, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x50, 0x6c, 0x61, - 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x28, 0x0a, 0x10, 0x61, 0x70, 0x6b, 0x5f, 0x76, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, - 0x61, 0x70, 0x6b, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x42, 0x2b, - 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x63, - 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x03, 0x50, 0x01, + 0x6f, 0x48, 0x00, 0x52, 0x1d, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x32, 0x0a, 0x07, 0x6f, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x13, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x53, 0x79, + 0x6e, 0x63, 0x45, 0x6e, 0x75, 0x6d, 0x73, 0x2e, 0x4f, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x06, + 0x6f, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x51, 0x0a, 0x12, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x5f, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x14, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x53, 0x79, 0x6e, + 0x63, 0x45, 0x6e, 0x75, 0x6d, 0x73, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x46, 0x6f, 0x72, + 0x6d, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x10, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x46, + 0x6f, 0x72, 0x6d, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x42, 0x15, 0x0a, 0x13, 0x63, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x66, 0x6f, + 0x22, 0x62, 0x0a, 0x15, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x63, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x12, 0x49, 0x0a, 0x22, 0x73, 0x65, 0x6e, + 0x64, 0x5f, 0x74, 0x61, 0x62, 0x5f, 0x74, 0x6f, 0x5f, 0x73, 0x65, 0x6c, 0x66, 0x5f, 0x72, 0x65, + 0x63, 0x65, 0x69, 0x76, 0x69, 0x6e, 0x67, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1d, 0x73, 0x65, 0x6e, 0x64, 0x54, 0x61, 0x62, 0x54, 0x6f, + 0x53, 0x65, 0x6c, 0x66, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x64, 0x22, 0xd2, 0x06, 0x0a, 0x15, 0x53, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, + 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x12, 0x26, + 0x0a, 0x0f, 0x76, 0x61, 0x70, 0x69, 0x64, 0x5f, 0x66, 0x63, 0x6d, 0x5f, 0x74, 0x6f, 0x6b, 0x65, + 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x76, 0x61, 0x70, 0x69, 0x64, 0x46, 0x63, + 0x6d, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x76, 0x61, 0x70, 0x69, 0x64, 0x5f, + 0x70, 0x32, 0x35, 0x36, 0x64, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x76, 0x61, + 0x70, 0x69, 0x64, 0x50, 0x32, 0x35, 0x36, 0x64, 0x68, 0x12, 0x2a, 0x0a, 0x11, 0x76, 0x61, 0x70, + 0x69, 0x64, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x76, 0x61, 0x70, 0x69, 0x64, 0x41, 0x75, 0x74, 0x68, 0x53, + 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x59, 0x0a, 0x10, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, + 0x5f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0e, 0x32, + 0x2e, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x69, 0x6e, + 0x67, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x2e, + 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x52, + 0x0f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, + 0x12, 0x46, 0x0a, 0x1e, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x5f, 0x66, 0x63, + 0x6d, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, + 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x1a, 0x73, 0x65, + 0x6e, 0x64, 0x65, 0x72, 0x49, 0x64, 0x46, 0x63, 0x6d, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x65, + 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x41, 0x0a, 0x1b, 0x73, 0x65, 0x6e, 0x64, + 0x65, 0x72, 0x5f, 0x69, 0x64, 0x5f, 0x70, 0x32, 0x35, 0x36, 0x64, 0x68, 0x5f, 0x64, 0x65, 0x70, + 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x02, 0x18, + 0x01, 0x52, 0x18, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x49, 0x64, 0x50, 0x32, 0x35, 0x36, 0x64, + 0x68, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x4a, 0x0a, 0x20, 0x73, + 0x65, 0x6e, 0x64, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x73, 0x65, + 0x63, 0x72, 0x65, 0x74, 0x5f, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x02, 0x18, 0x01, 0x52, 0x1c, 0x73, 0x65, 0x6e, 0x64, 0x65, + 0x72, 0x49, 0x64, 0x41, 0x75, 0x74, 0x68, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x44, 0x65, 0x70, + 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x32, 0x0a, 0x16, 0x73, 0x65, 0x6e, 0x64, 0x65, + 0x72, 0x5f, 0x69, 0x64, 0x5f, 0x66, 0x63, 0x6d, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x76, + 0x32, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x49, + 0x64, 0x46, 0x63, 0x6d, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x56, 0x32, 0x12, 0x2d, 0x0a, 0x13, 0x73, + 0x65, 0x6e, 0x64, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x5f, 0x70, 0x32, 0x35, 0x36, 0x64, 0x68, 0x5f, + 0x76, 0x32, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x10, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, + 0x49, 0x64, 0x50, 0x32, 0x35, 0x36, 0x64, 0x68, 0x56, 0x32, 0x12, 0x36, 0x0a, 0x18, 0x73, 0x65, + 0x6e, 0x64, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x73, 0x65, 0x63, + 0x72, 0x65, 0x74, 0x5f, 0x76, 0x32, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x14, 0x73, 0x65, + 0x6e, 0x64, 0x65, 0x72, 0x49, 0x64, 0x41, 0x75, 0x74, 0x68, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, + 0x56, 0x32, 0x22, 0xf4, 0x01, 0x0a, 0x0f, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x46, 0x65, + 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, + 0x4e, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x43, 0x4c, 0x49, 0x43, 0x4b, 0x5f, 0x54, 0x4f, 0x5f, + 0x43, 0x41, 0x4c, 0x4c, 0x5f, 0x56, 0x41, 0x50, 0x49, 0x44, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, + 0x53, 0x48, 0x41, 0x52, 0x45, 0x44, 0x5f, 0x43, 0x4c, 0x49, 0x50, 0x42, 0x4f, 0x41, 0x52, 0x44, + 0x5f, 0x56, 0x41, 0x50, 0x49, 0x44, 0x10, 0x02, 0x12, 0x0f, 0x0a, 0x0b, 0x53, 0x4d, 0x53, 0x5f, + 0x46, 0x45, 0x54, 0x43, 0x48, 0x45, 0x52, 0x10, 0x03, 0x12, 0x0f, 0x0a, 0x0b, 0x52, 0x45, 0x4d, + 0x4f, 0x54, 0x45, 0x5f, 0x43, 0x4f, 0x50, 0x59, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x44, 0x49, + 0x53, 0x43, 0x4f, 0x56, 0x45, 0x52, 0x59, 0x10, 0x06, 0x12, 0x14, 0x0a, 0x10, 0x43, 0x4c, 0x49, + 0x43, 0x4b, 0x5f, 0x54, 0x4f, 0x5f, 0x43, 0x41, 0x4c, 0x4c, 0x5f, 0x56, 0x32, 0x10, 0x07, 0x12, + 0x17, 0x0a, 0x13, 0x53, 0x48, 0x41, 0x52, 0x45, 0x44, 0x5f, 0x43, 0x4c, 0x49, 0x50, 0x42, 0x4f, + 0x41, 0x52, 0x44, 0x5f, 0x56, 0x32, 0x10, 0x08, 0x12, 0x28, 0x0a, 0x24, 0x4f, 0x50, 0x54, 0x49, + 0x4d, 0x49, 0x5a, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x47, 0x55, 0x49, 0x44, 0x45, 0x5f, 0x50, + 0x55, 0x53, 0x48, 0x5f, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, + 0x10, 0x09, 0x22, 0x04, 0x08, 0x05, 0x10, 0x05, 0x2a, 0x0f, 0x50, 0x45, 0x45, 0x52, 0x5f, 0x43, + 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x22, 0x81, 0x01, 0x0a, 0x1a, 0x49, 0x6e, + 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x63, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x69, 0x6e, 0x73, 0x74, + 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x64, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x37, 0x0a, 0x18, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, + 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x69, 0x64, 0x73, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x15, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, + 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x73, 0x22, 0xcd, 0x01, + 0x0a, 0x21, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x41, 0x73, 0x41, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, + 0x74, 0x79, 0x4b, 0x65, 0x79, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x46, 0x69, 0x65, + 0x6c, 0x64, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x5f, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x12, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x44, + 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, + 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x74, 0x61, + 0x63, 0x74, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x0e, 0x0a, 0x02, + 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x07, 0x52, 0x02, 0x69, 0x64, 0x12, 0x2f, 0x0a, 0x14, + 0x70, 0x65, 0x65, 0x72, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x5f, + 0x78, 0x39, 0x36, 0x32, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x11, 0x70, 0x65, 0x65, 0x72, + 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x58, 0x39, 0x36, 0x32, 0x22, 0x3a, 0x0a, + 0x11, 0x43, 0x68, 0x72, 0x6f, 0x6d, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x25, 0x0a, 0x0e, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x76, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x49, 0x0a, 0x1d, 0x47, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x56, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x28, 0x0a, 0x10, 0x61, 0x70, + 0x6b, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x70, 0x6b, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x4e, 0x61, 0x6d, 0x65, 0x42, 0x36, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, 0x72, 0x6f, + 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2e, + 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x03, 0x50, + 0x01, 0x5a, 0x09, 0x2e, 0x2f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, } var ( @@ -1015,23 +1034,25 @@ var file_device_info_specifics_proto_goTypes = []interface{}{ (*ChromeVersionInfo)(nil), // 6: sync_pb.ChromeVersionInfo (*GooglePlayServicesVersionInfo)(nil), // 7: sync_pb.GooglePlayServicesVersionInfo (SyncEnums_DeviceType)(0), // 8: sync_pb.SyncEnums.DeviceType - (*BraveSpecificFields)(nil), // 9: sync_pb.BraveSpecificFields + (SyncEnums_OsType)(0), // 9: sync_pb.SyncEnums.OsType + (SyncEnums_DeviceFormFactor)(0), // 10: sync_pb.SyncEnums.DeviceFormFactor } var file_device_info_specifics_proto_depIdxs = []int32{ - 8, // 0: sync_pb.DeviceInfoSpecifics.device_type:type_name -> sync_pb.SyncEnums.DeviceType - 2, // 1: sync_pb.DeviceInfoSpecifics.feature_fields:type_name -> sync_pb.FeatureSpecificFields - 3, // 2: sync_pb.DeviceInfoSpecifics.sharing_fields:type_name -> sync_pb.SharingSpecificFields - 4, // 3: sync_pb.DeviceInfoSpecifics.invalidation_fields:type_name -> sync_pb.InvalidationSpecificFields - 5, // 4: sync_pb.DeviceInfoSpecifics.paask_fields:type_name -> sync_pb.PhoneAsASecurityKeySpecificFields - 6, // 5: sync_pb.DeviceInfoSpecifics.chrome_version_info:type_name -> sync_pb.ChromeVersionInfo - 7, // 6: sync_pb.DeviceInfoSpecifics.google_play_services_version_info:type_name -> sync_pb.GooglePlayServicesVersionInfo - 9, // 7: sync_pb.DeviceInfoSpecifics.brave_fields:type_name -> sync_pb.BraveSpecificFields - 0, // 8: sync_pb.SharingSpecificFields.enabled_features:type_name -> sync_pb.SharingSpecificFields.EnabledFeatures - 9, // [9:9] is the sub-list for method output_type - 9, // [9:9] is the sub-list for method input_type - 9, // [9:9] is the sub-list for extension type_name - 9, // [9:9] is the sub-list for extension extendee - 0, // [0:9] is the sub-list for field type_name + 8, // 0: sync_pb.DeviceInfoSpecifics.device_type:type_name -> sync_pb.SyncEnums.DeviceType + 2, // 1: sync_pb.DeviceInfoSpecifics.feature_fields:type_name -> sync_pb.FeatureSpecificFields + 3, // 2: sync_pb.DeviceInfoSpecifics.sharing_fields:type_name -> sync_pb.SharingSpecificFields + 4, // 3: sync_pb.DeviceInfoSpecifics.invalidation_fields:type_name -> sync_pb.InvalidationSpecificFields + 5, // 4: sync_pb.DeviceInfoSpecifics.paask_fields:type_name -> sync_pb.PhoneAsASecurityKeySpecificFields + 6, // 5: sync_pb.DeviceInfoSpecifics.chrome_version_info:type_name -> sync_pb.ChromeVersionInfo + 7, // 6: sync_pb.DeviceInfoSpecifics.google_play_services_version_info:type_name -> sync_pb.GooglePlayServicesVersionInfo + 9, // 7: sync_pb.DeviceInfoSpecifics.os_type:type_name -> sync_pb.SyncEnums.OsType + 10, // 8: sync_pb.DeviceInfoSpecifics.device_form_factor:type_name -> sync_pb.SyncEnums.DeviceFormFactor + 0, // 9: sync_pb.SharingSpecificFields.enabled_features:type_name -> sync_pb.SharingSpecificFields.EnabledFeatures + 10, // [10:10] is the sub-list for method output_type + 10, // [10:10] is the sub-list for method input_type + 10, // [10:10] is the sub-list for extension type_name + 10, // [10:10] is the sub-list for extension extendee + 0, // [0:10] is the sub-list for field type_name } func init() { file_device_info_specifics_proto_init() } @@ -1040,7 +1061,6 @@ func file_device_info_specifics_proto_init() { return } file_sync_enums_proto_init() - file_brave_device_info_specifics_proto_init() if !protoimpl.UnsafeEnabled { file_device_info_specifics_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeviceInfoSpecifics); i { diff --git a/schema/protobuf/sync_pb/device_info_specifics.proto b/schema/protobuf/sync_pb/device_info_specifics.proto index 8505a18b..cb664e55 100644 --- a/schema/protobuf/sync_pb/device_info_specifics.proto +++ b/schema/protobuf/sync_pb/device_info_specifics.proto @@ -1,4 +1,4 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2012 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // @@ -9,6 +9,8 @@ syntax = "proto2"; +option go_package = "./sync_pb"; + option java_multiple_files = true; option java_package = "org.chromium.components.sync.protocol"; @@ -17,7 +19,6 @@ option optimize_for = LITE_RUNTIME; package sync_pb; import "sync_enums.proto"; -import "brave_device_info_specifics.proto"; // Information about a device that is running a sync-enabled Chrome browser. We // are mapping the per-client cache guid to more specific information about the @@ -30,7 +31,9 @@ message DeviceInfoSpecifics { optional string client_name = 2; // The platform of the device. - optional SyncEnums.DeviceType device_type = 3; + // Deprecated in M110, but still populated for backwards compatibility. + // Replaced by os_type + device_form_factor. + optional SyncEnums.DeviceType device_type = 3 [deprecated = true]; // The UserAgent used when contacting the Chrome Sync server. // Only present when talking to the HTTP server. @@ -91,7 +94,12 @@ message DeviceInfoSpecifics { ChromeVersionInfo chrome_version_info = 17; GooglePlayServicesVersionInfo google_play_services_version_info = 18; } - optional BraveSpecificFields brave_fields = 1000; + + // The OS type the device. + optional SyncEnums.OsType os_type = 19; + + // The form factor of the device. + optional SyncEnums.DeviceFormFactor device_form_factor = 20; } // Feature specific information about the device that is running a sync-enabled diff --git a/schema/protobuf/sync_pb/dictionary_specifics.pb.go b/schema/protobuf/sync_pb/dictionary_specifics.pb.go index 4cf357b9..bb3f9fcd 100644 --- a/schema/protobuf/sync_pb/dictionary_specifics.pb.go +++ b/schema/protobuf/sync_pb/dictionary_specifics.pb.go @@ -1,4 +1,4 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2012 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // @@ -9,7 +9,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.0 +// protoc-gen-go v1.31.0 // protoc v3.21.1 // source: dictionary_specifics.proto @@ -86,9 +86,10 @@ var file_dictionary_specifics_proto_rawDesc = []byte{ 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x22, 0x29, 0x0a, 0x13, 0x44, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72, 0x79, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x77, 0x6f, 0x72, 0x64, - 0x42, 0x2b, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, + 0x42, 0x36, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x73, 0x79, 0x6e, 0x63, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x03, 0x50, 0x01, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x03, 0x50, 0x01, 0x5a, 0x09, 0x2e, + 0x2f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, } var ( diff --git a/schema/protobuf/sync_pb/dictionary_specifics.proto b/schema/protobuf/sync_pb/dictionary_specifics.proto index 0fd8e672..2207621c 100644 --- a/schema/protobuf/sync_pb/dictionary_specifics.proto +++ b/schema/protobuf/sync_pb/dictionary_specifics.proto @@ -1,4 +1,4 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2012 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // @@ -9,6 +9,8 @@ syntax = "proto2"; +option go_package = "./sync_pb"; + option java_multiple_files = true; option java_package = "org.chromium.components.sync.protocol"; diff --git a/schema/protobuf/sync_pb/encryption.pb.go b/schema/protobuf/sync_pb/encryption.pb.go index a3a9cd4d..00af275c 100644 --- a/schema/protobuf/sync_pb/encryption.pb.go +++ b/schema/protobuf/sync_pb/encryption.pb.go @@ -1,4 +1,4 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2012 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // @@ -9,7 +9,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.0 +// protoc-gen-go v1.31.0 // protoc v3.21.1 // source: encryption.proto @@ -104,10 +104,11 @@ var file_encryption_proto_rawDesc = []byte{ 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x19, 0x0a, 0x08, 0x6b, 0x65, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6b, 0x65, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x62, 0x6c, 0x6f, 0x62, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x62, 0x6c, 0x6f, 0x62, 0x42, 0x2b, 0x0a, 0x25, 0x6f, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x62, 0x6c, 0x6f, 0x62, 0x42, 0x36, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x03, 0x50, 0x01, + 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x03, 0x50, 0x01, 0x5a, 0x09, 0x2e, 0x2f, 0x73, 0x79, 0x6e, 0x63, + 0x5f, 0x70, 0x62, } var ( diff --git a/schema/protobuf/sync_pb/encryption.proto b/schema/protobuf/sync_pb/encryption.proto index 18ac6919..85d8527d 100644 --- a/schema/protobuf/sync_pb/encryption.proto +++ b/schema/protobuf/sync_pb/encryption.proto @@ -1,4 +1,4 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2012 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // @@ -9,6 +9,8 @@ syntax = "proto2"; +option go_package = "./sync_pb"; + option java_multiple_files = true; option java_package = "org.chromium.components.sync.protocol"; diff --git a/schema/protobuf/sync_pb/entity_metadata.pb.go b/schema/protobuf/sync_pb/entity_metadata.pb.go index 40fbe065..d97d2949 100644 --- a/schema/protobuf/sync_pb/entity_metadata.pb.go +++ b/schema/protobuf/sync_pb/entity_metadata.pb.go @@ -1,4 +1,4 @@ -// Copyright 2015 The Chromium Authors. All rights reserved. +// Copyright 2015 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -7,7 +7,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.0 +// protoc-gen-go v1.31.0 // protoc v3.21.1 // source: entity_metadata.proto @@ -35,7 +35,7 @@ type EntityMetadata struct { // A hash based on the client tag and model type. // Used for various map lookups. Should always be available. - // Sent to the server as SyncEntity::client_defined_unique_tag. + // Sent to the server as SyncEntity::client_tag_hash. ClientTagHash *string `protobuf:"bytes,1,opt,name=client_tag_hash,json=clientTagHash" json:"client_tag_hash,omitempty"` // The entity's server-assigned ID. // @@ -265,10 +265,11 @@ var file_entity_metadata_proto_rawDesc = []byte{ 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x52, 0x1c, 0x70, 0x6f, 0x73, 0x73, 0x69, 0x62, 0x6c, 0x79, 0x54, 0x72, 0x69, 0x6d, 0x6d, 0x65, - 0x64, 0x42, 0x61, 0x73, 0x65, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x42, 0x2b, + 0x64, 0x42, 0x61, 0x73, 0x65, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x42, 0x36, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x03, 0x50, 0x01, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x03, 0x50, 0x01, 0x5a, 0x09, 0x2e, 0x2f, 0x73, + 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, } var ( diff --git a/schema/protobuf/sync_pb/entity_metadata.proto b/schema/protobuf/sync_pb/entity_metadata.proto index ac3346cc..33aac281 100644 --- a/schema/protobuf/sync_pb/entity_metadata.proto +++ b/schema/protobuf/sync_pb/entity_metadata.proto @@ -1,4 +1,4 @@ -// Copyright 2015 The Chromium Authors. All rights reserved. +// Copyright 2015 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -7,6 +7,8 @@ syntax = "proto2"; +option go_package = "./sync_pb"; + option java_multiple_files = true; option java_package = "org.chromium.components.sync.protocol"; @@ -21,7 +23,7 @@ import "unique_position.proto"; message EntityMetadata { // A hash based on the client tag and model type. // Used for various map lookups. Should always be available. - // Sent to the server as SyncEntity::client_defined_unique_tag. + // Sent to the server as SyncEntity::client_tag_hash. optional string client_tag_hash = 1; // The entity's server-assigned ID. diff --git a/schema/protobuf/sync_pb/entity_specifics.pb.go b/schema/protobuf/sync_pb/entity_specifics.pb.go index ce0246f1..5b06149b 100644 --- a/schema/protobuf/sync_pb/entity_specifics.pb.go +++ b/schema/protobuf/sync_pb/entity_specifics.pb.go @@ -1,10 +1,10 @@ -// Copyright 2021 The Chromium Authors. All rights reserved. +// Copyright 2021 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.0 +// protoc-gen-go v1.31.0 // protoc v3.21.1 // source: entity_specifics.proto @@ -36,12 +36,12 @@ type EntitySpecifics struct { // do not use this field. Encrypted *EncryptedData `protobuf:"bytes,1,opt,name=encrypted" json:"encrypted,omitempty"` // Types that are assignable to SpecificsVariant: + // // *EntitySpecifics_Autofill // *EntitySpecifics_Bookmark // *EntitySpecifics_Preference // *EntitySpecifics_TypedUrl // *EntitySpecifics_Theme - // *EntitySpecifics_AppNotification // *EntitySpecifics_Password // *EntitySpecifics_Nigori // *EntitySpecifics_Extension @@ -52,19 +52,11 @@ type EntitySpecifics struct { // *EntitySpecifics_ExtensionSetting // *EntitySpecifics_AppSetting // *EntitySpecifics_HistoryDeleteDirective - // *EntitySpecifics_SyncedNotification - // *EntitySpecifics_SyncedNotificationAppInfo // *EntitySpecifics_DeviceInfo - // *EntitySpecifics_Experiments // *EntitySpecifics_PriorityPreference // *EntitySpecifics_Dictionary - // *EntitySpecifics_FaviconTracking - // *EntitySpecifics_FaviconImage // *EntitySpecifics_ManagedUserSetting - // *EntitySpecifics_ManagedUser - // *EntitySpecifics_ManagedUserSharedSetting // *EntitySpecifics_AppList - // *EntitySpecifics_ManagedUserAllowlist // *EntitySpecifics_AutofillWallet // *EntitySpecifics_WalletMetadata // *EntitySpecifics_ArcPackage @@ -74,6 +66,7 @@ type EntitySpecifics struct { // *EntitySpecifics_UserConsent // *EntitySpecifics_SendTabToSelf // *EntitySpecifics_SecurityEvent + // *EntitySpecifics_WebApk // *EntitySpecifics_WebApp // *EntitySpecifics_WifiConfiguration // *EntitySpecifics_OsPreference @@ -83,6 +76,23 @@ type EntitySpecifics struct { // *EntitySpecifics_WorkspaceDesk // *EntitySpecifics_WebauthnCredential // *EntitySpecifics_History + // *EntitySpecifics_PrintersAuthorizationServer + // *EntitySpecifics_SavedTabGroup + // *EntitySpecifics_AutofillWalletUsage + // *EntitySpecifics_ContactInfo + // *EntitySpecifics_Segmentation + // *EntitySpecifics_PowerBookmark + // *EntitySpecifics_IncomingPasswordSharingInvitation + // *EntitySpecifics_OutgoingPasswordSharingInvitation + // *EntitySpecifics_AppNotification + // *EntitySpecifics_SyncedNotification + // *EntitySpecifics_SyncedNotificationAppInfo + // *EntitySpecifics_Experiments + // *EntitySpecifics_FaviconTracking + // *EntitySpecifics_FaviconImage + // *EntitySpecifics_ManagedUser + // *EntitySpecifics_ManagedUserSharedSetting + // *EntitySpecifics_ManagedUserAllowlist SpecificsVariant isEntitySpecifics_SpecificsVariant `protobuf_oneof:"specifics_variant"` } @@ -167,14 +177,6 @@ func (x *EntitySpecifics) GetTheme() *ThemeSpecifics { return nil } -// Deprecated: Do not use. -func (x *EntitySpecifics) GetAppNotification() *AppNotification { - if x, ok := x.GetSpecificsVariant().(*EntitySpecifics_AppNotification); ok { - return x.AppNotification - } - return nil -} - func (x *EntitySpecifics) GetPassword() *PasswordSpecifics { if x, ok := x.GetSpecificsVariant().(*EntitySpecifics_Password); ok { return x.Password @@ -245,22 +247,6 @@ func (x *EntitySpecifics) GetHistoryDeleteDirective() *HistoryDeleteDirectiveSpe return nil } -// Deprecated: Do not use. -func (x *EntitySpecifics) GetSyncedNotification() *SyncedNotificationSpecifics { - if x, ok := x.GetSpecificsVariant().(*EntitySpecifics_SyncedNotification); ok { - return x.SyncedNotification - } - return nil -} - -// Deprecated: Do not use. -func (x *EntitySpecifics) GetSyncedNotificationAppInfo() *SyncedNotificationAppInfoSpecifics { - if x, ok := x.GetSpecificsVariant().(*EntitySpecifics_SyncedNotificationAppInfo); ok { - return x.SyncedNotificationAppInfo - } - return nil -} - func (x *EntitySpecifics) GetDeviceInfo() *DeviceInfoSpecifics { if x, ok := x.GetSpecificsVariant().(*EntitySpecifics_DeviceInfo); ok { return x.DeviceInfo @@ -268,14 +254,6 @@ func (x *EntitySpecifics) GetDeviceInfo() *DeviceInfoSpecifics { return nil } -// Deprecated: Do not use. -func (x *EntitySpecifics) GetExperiments() *ExperimentsSpecifics { - if x, ok := x.GetSpecificsVariant().(*EntitySpecifics_Experiments); ok { - return x.Experiments - } - return nil -} - func (x *EntitySpecifics) GetPriorityPreference() *PriorityPreferenceSpecifics { if x, ok := x.GetSpecificsVariant().(*EntitySpecifics_PriorityPreference); ok { return x.PriorityPreference @@ -290,22 +268,6 @@ func (x *EntitySpecifics) GetDictionary() *DictionarySpecifics { return nil } -// Deprecated: Do not use. -func (x *EntitySpecifics) GetFaviconTracking() *FaviconTrackingSpecifics { - if x, ok := x.GetSpecificsVariant().(*EntitySpecifics_FaviconTracking); ok { - return x.FaviconTracking - } - return nil -} - -// Deprecated: Do not use. -func (x *EntitySpecifics) GetFaviconImage() *FaviconImageSpecifics { - if x, ok := x.GetSpecificsVariant().(*EntitySpecifics_FaviconImage); ok { - return x.FaviconImage - } - return nil -} - func (x *EntitySpecifics) GetManagedUserSetting() *ManagedUserSettingSpecifics { if x, ok := x.GetSpecificsVariant().(*EntitySpecifics_ManagedUserSetting); ok { return x.ManagedUserSetting @@ -313,22 +275,6 @@ func (x *EntitySpecifics) GetManagedUserSetting() *ManagedUserSettingSpecifics { return nil } -// Deprecated: Do not use. -func (x *EntitySpecifics) GetManagedUser() *ManagedUserSpecifics { - if x, ok := x.GetSpecificsVariant().(*EntitySpecifics_ManagedUser); ok { - return x.ManagedUser - } - return nil -} - -// Deprecated: Do not use. -func (x *EntitySpecifics) GetManagedUserSharedSetting() *ManagedUserSharedSettingSpecifics { - if x, ok := x.GetSpecificsVariant().(*EntitySpecifics_ManagedUserSharedSetting); ok { - return x.ManagedUserSharedSetting - } - return nil -} - func (x *EntitySpecifics) GetAppList() *AppListSpecifics { if x, ok := x.GetSpecificsVariant().(*EntitySpecifics_AppList); ok { return x.AppList @@ -336,14 +282,6 @@ func (x *EntitySpecifics) GetAppList() *AppListSpecifics { return nil } -// Deprecated: Do not use. -func (x *EntitySpecifics) GetManagedUserAllowlist() *EmptySpecifics { - if x, ok := x.GetSpecificsVariant().(*EntitySpecifics_ManagedUserAllowlist); ok { - return x.ManagedUserAllowlist - } - return nil -} - func (x *EntitySpecifics) GetAutofillWallet() *AutofillWalletSpecifics { if x, ok := x.GetSpecificsVariant().(*EntitySpecifics_AutofillWallet); ok { return x.AutofillWallet @@ -407,6 +345,13 @@ func (x *EntitySpecifics) GetSecurityEvent() *SecurityEventSpecifics { return nil } +func (x *EntitySpecifics) GetWebApk() *WebApkSpecifics { + if x, ok := x.GetSpecificsVariant().(*EntitySpecifics_WebApk); ok { + return x.WebApk + } + return nil +} + func (x *EntitySpecifics) GetWebApp() *WebAppSpecifics { if x, ok := x.GetSpecificsVariant().(*EntitySpecifics_WebApp); ok { return x.WebApp @@ -470,6 +415,134 @@ func (x *EntitySpecifics) GetHistory() *HistorySpecifics { return nil } +func (x *EntitySpecifics) GetPrintersAuthorizationServer() *PrintersAuthorizationServerSpecifics { + if x, ok := x.GetSpecificsVariant().(*EntitySpecifics_PrintersAuthorizationServer); ok { + return x.PrintersAuthorizationServer + } + return nil +} + +func (x *EntitySpecifics) GetSavedTabGroup() *SavedTabGroupSpecifics { + if x, ok := x.GetSpecificsVariant().(*EntitySpecifics_SavedTabGroup); ok { + return x.SavedTabGroup + } + return nil +} + +func (x *EntitySpecifics) GetAutofillWalletUsage() *AutofillWalletUsageSpecifics { + if x, ok := x.GetSpecificsVariant().(*EntitySpecifics_AutofillWalletUsage); ok { + return x.AutofillWalletUsage + } + return nil +} + +func (x *EntitySpecifics) GetContactInfo() *ContactInfoSpecifics { + if x, ok := x.GetSpecificsVariant().(*EntitySpecifics_ContactInfo); ok { + return x.ContactInfo + } + return nil +} + +func (x *EntitySpecifics) GetSegmentation() *SegmentationSpecifics { + if x, ok := x.GetSpecificsVariant().(*EntitySpecifics_Segmentation); ok { + return x.Segmentation + } + return nil +} + +func (x *EntitySpecifics) GetPowerBookmark() *PowerBookmarkSpecifics { + if x, ok := x.GetSpecificsVariant().(*EntitySpecifics_PowerBookmark); ok { + return x.PowerBookmark + } + return nil +} + +func (x *EntitySpecifics) GetIncomingPasswordSharingInvitation() *IncomingPasswordSharingInvitationSpecifics { + if x, ok := x.GetSpecificsVariant().(*EntitySpecifics_IncomingPasswordSharingInvitation); ok { + return x.IncomingPasswordSharingInvitation + } + return nil +} + +func (x *EntitySpecifics) GetOutgoingPasswordSharingInvitation() *OutgoingPasswordSharingInvitationSpecifics { + if x, ok := x.GetSpecificsVariant().(*EntitySpecifics_OutgoingPasswordSharingInvitation); ok { + return x.OutgoingPasswordSharingInvitation + } + return nil +} + +// Deprecated: Marked as deprecated in entity_specifics.proto. +func (x *EntitySpecifics) GetAppNotification() *EmptySpecifics { + if x, ok := x.GetSpecificsVariant().(*EntitySpecifics_AppNotification); ok { + return x.AppNotification + } + return nil +} + +// Deprecated: Marked as deprecated in entity_specifics.proto. +func (x *EntitySpecifics) GetSyncedNotification() *EmptySpecifics { + if x, ok := x.GetSpecificsVariant().(*EntitySpecifics_SyncedNotification); ok { + return x.SyncedNotification + } + return nil +} + +// Deprecated: Marked as deprecated in entity_specifics.proto. +func (x *EntitySpecifics) GetSyncedNotificationAppInfo() *EmptySpecifics { + if x, ok := x.GetSpecificsVariant().(*EntitySpecifics_SyncedNotificationAppInfo); ok { + return x.SyncedNotificationAppInfo + } + return nil +} + +// Deprecated: Marked as deprecated in entity_specifics.proto. +func (x *EntitySpecifics) GetExperiments() *ExperimentsSpecifics { + if x, ok := x.GetSpecificsVariant().(*EntitySpecifics_Experiments); ok { + return x.Experiments + } + return nil +} + +// Deprecated: Marked as deprecated in entity_specifics.proto. +func (x *EntitySpecifics) GetFaviconTracking() *FaviconTrackingSpecifics { + if x, ok := x.GetSpecificsVariant().(*EntitySpecifics_FaviconTracking); ok { + return x.FaviconTracking + } + return nil +} + +// Deprecated: Marked as deprecated in entity_specifics.proto. +func (x *EntitySpecifics) GetFaviconImage() *FaviconImageSpecifics { + if x, ok := x.GetSpecificsVariant().(*EntitySpecifics_FaviconImage); ok { + return x.FaviconImage + } + return nil +} + +// Deprecated: Marked as deprecated in entity_specifics.proto. +func (x *EntitySpecifics) GetManagedUser() *EmptySpecifics { + if x, ok := x.GetSpecificsVariant().(*EntitySpecifics_ManagedUser); ok { + return x.ManagedUser + } + return nil +} + +// Deprecated: Marked as deprecated in entity_specifics.proto. +func (x *EntitySpecifics) GetManagedUserSharedSetting() *ManagedUserSharedSettingSpecifics { + if x, ok := x.GetSpecificsVariant().(*EntitySpecifics_ManagedUserSharedSetting); ok { + return x.ManagedUserSharedSetting + } + return nil +} + +// Deprecated: Marked as deprecated in entity_specifics.proto. +func (x *EntitySpecifics) GetManagedUserAllowlist() *EmptySpecifics { + if x, ok := x.GetSpecificsVariant().(*EntitySpecifics_ManagedUserAllowlist); ok { + return x.ManagedUserAllowlist + } + return nil +} + type isEntitySpecifics_SpecificsVariant interface { isEntitySpecifics_SpecificsVariant() } @@ -494,14 +567,6 @@ type EntitySpecifics_Theme struct { Theme *ThemeSpecifics `protobuf:"bytes,41210,opt,name=theme,oneof"` } -type EntitySpecifics_AppNotification struct { - // TODO(crbug.com/1012648): |app_notification| isn't used by the client - // anymore, but the server still needs it for now. - // - // Deprecated: Do not use. - AppNotification *AppNotification `protobuf:"bytes,45184,opt,name=app_notification,json=appNotification,oneof"` -} - type EntitySpecifics_Password struct { Password *PasswordSpecifics `protobuf:"bytes,45873,opt,name=password,oneof"` } @@ -542,32 +607,10 @@ type EntitySpecifics_HistoryDeleteDirective struct { HistoryDeleteDirective *HistoryDeleteDirectiveSpecifics `protobuf:"bytes,150251,opt,name=history_delete_directive,json=historyDeleteDirective,oneof"` } -type EntitySpecifics_SyncedNotification struct { - // TODO(crbug.com/1012648): |synced_notification| and - // |synced_notification_app_info| aren't used by the client anymore, but the - // server still needs them for now. - // - // Deprecated: Do not use. - SyncedNotification *SyncedNotificationSpecifics `protobuf:"bytes,153108,opt,name=synced_notification,json=syncedNotification,oneof"` -} - -type EntitySpecifics_SyncedNotificationAppInfo struct { - // Deprecated: Do not use. - SyncedNotificationAppInfo *SyncedNotificationAppInfoSpecifics `protobuf:"bytes,235816,opt,name=synced_notification_app_info,json=syncedNotificationAppInfo,oneof"` -} - type EntitySpecifics_DeviceInfo struct { DeviceInfo *DeviceInfoSpecifics `protobuf:"bytes,154522,opt,name=device_info,json=deviceInfo,oneof"` } -type EntitySpecifics_Experiments struct { - // TODO(crbug.com/1009361): |experiments| isn't used by the client anymore, - // but the server still needs it for now. - // - // Deprecated: Do not use. - Experiments *ExperimentsSpecifics `protobuf:"bytes,161496,opt,name=experiments,oneof"` -} - type EntitySpecifics_PriorityPreference struct { PriorityPreference *PriorityPreferenceSpecifics `protobuf:"bytes,163425,opt,name=priority_preference,json=priorityPreference,oneof"` } @@ -576,43 +619,14 @@ type EntitySpecifics_Dictionary struct { Dictionary *DictionarySpecifics `protobuf:"bytes,170540,opt,name=dictionary,oneof"` } -type EntitySpecifics_FaviconTracking struct { - // Deprecated: Do not use. - FaviconTracking *FaviconTrackingSpecifics `protobuf:"bytes,181534,opt,name=favicon_tracking,json=faviconTracking,oneof"` -} - -type EntitySpecifics_FaviconImage struct { - // Deprecated: Do not use. - FaviconImage *FaviconImageSpecifics `protobuf:"bytes,182019,opt,name=favicon_image,json=faviconImage,oneof"` -} - type EntitySpecifics_ManagedUserSetting struct { ManagedUserSetting *ManagedUserSettingSpecifics `protobuf:"bytes,186662,opt,name=managed_user_setting,json=managedUserSetting,oneof"` } -type EntitySpecifics_ManagedUser struct { - // TODO(tschumann): Remove once server-side dependencies are resolved. - // - // Deprecated: Do not use. - ManagedUser *ManagedUserSpecifics `protobuf:"bytes,194582,opt,name=managed_user,json=managedUser,oneof"` -} - -type EntitySpecifics_ManagedUserSharedSetting struct { - // TODO(tschumann): Remove once server-side dependencies are resolved. - // - // Deprecated: Do not use. - ManagedUserSharedSetting *ManagedUserSharedSettingSpecifics `protobuf:"bytes,202026,opt,name=managed_user_shared_setting,json=managedUserSharedSetting,oneof"` -} - type EntitySpecifics_AppList struct { AppList *AppListSpecifics `protobuf:"bytes,229170,opt,name=app_list,json=appList,oneof"` } -type EntitySpecifics_ManagedUserAllowlist struct { - // Deprecated: Do not use. - ManagedUserAllowlist *EmptySpecifics `protobuf:"bytes,306060,opt,name=managed_user_allowlist,json=managedUserAllowlist,oneof"` -} - type EntitySpecifics_AutofillWallet struct { AutofillWallet *AutofillWalletSpecifics `protobuf:"bytes,306270,opt,name=autofill_wallet,json=autofillWallet,oneof"` } @@ -649,6 +663,10 @@ type EntitySpecifics_SecurityEvent struct { SecurityEvent *SecurityEventSpecifics `protobuf:"bytes,600372,opt,name=security_event,json=securityEvent,oneof"` } +type EntitySpecifics_WebApk struct { + WebApk *WebApkSpecifics `protobuf:"bytes,1117170,opt,name=web_apk,json=webApk,oneof"` +} + type EntitySpecifics_WebApp struct { WebApp *WebAppSpecifics `protobuf:"bytes,673225,opt,name=web_app,json=webApp,oneof"` } @@ -678,8 +696,6 @@ type EntitySpecifics_WorkspaceDesk struct { } type EntitySpecifics_WebauthnCredential struct { - // This is not included in model_type.h because it's currently only used by - // the server and by Play Services. (crbug.com/1223853) WebauthnCredential *WebauthnCredentialSpecifics `protobuf:"bytes,895275,opt,name=webauthn_credential,json=webauthnCredential,oneof"` } @@ -687,6 +703,88 @@ type EntitySpecifics_History struct { History *HistorySpecifics `protobuf:"bytes,963985,opt,name=history,oneof"` } +type EntitySpecifics_PrintersAuthorizationServer struct { + PrintersAuthorizationServer *PrintersAuthorizationServerSpecifics `protobuf:"bytes,974304,opt,name=printers_authorization_server,json=printersAuthorizationServer,oneof"` +} + +type EntitySpecifics_SavedTabGroup struct { + SavedTabGroup *SavedTabGroupSpecifics `protobuf:"bytes,1004874,opt,name=saved_tab_group,json=savedTabGroup,oneof"` +} + +type EntitySpecifics_AutofillWalletUsage struct { + AutofillWalletUsage *AutofillWalletUsageSpecifics `protobuf:"bytes,1033580,opt,name=autofill_wallet_usage,json=autofillWalletUsage,oneof"` +} + +type EntitySpecifics_ContactInfo struct { + ContactInfo *ContactInfoSpecifics `protobuf:"bytes,1034378,opt,name=contact_info,json=contactInfo,oneof"` +} + +type EntitySpecifics_Segmentation struct { + Segmentation *SegmentationSpecifics `protobuf:"bytes,1026052,opt,name=segmentation,oneof"` +} + +type EntitySpecifics_PowerBookmark struct { + PowerBookmark *PowerBookmarkSpecifics `protobuf:"bytes,1073150,opt,name=power_bookmark,json=powerBookmark,oneof"` +} + +type EntitySpecifics_IncomingPasswordSharingInvitation struct { + IncomingPasswordSharingInvitation *IncomingPasswordSharingInvitationSpecifics `protobuf:"bytes,1141935,opt,name=incoming_password_sharing_invitation,json=incomingPasswordSharingInvitation,oneof"` +} + +type EntitySpecifics_OutgoingPasswordSharingInvitation struct { + OutgoingPasswordSharingInvitation *OutgoingPasswordSharingInvitationSpecifics `protobuf:"bytes,1142081,opt,name=outgoing_password_sharing_invitation,json=outgoingPasswordSharingInvitation,oneof"` +} + +type EntitySpecifics_AppNotification struct { + // No-longer-supported data types, in various stages of removal. + // TODO(crbug.com/1395003): Eventually, these should all become "reserved" + // fields, or at least use "EmptySpecifics". But some of them are still + // needed by the server, e.g. to support older clients. + // + // Deprecated: Marked as deprecated in entity_specifics.proto. + AppNotification *EmptySpecifics `protobuf:"bytes,45184,opt,name=app_notification,json=appNotification,oneof"` +} + +type EntitySpecifics_SyncedNotification struct { + // Deprecated: Marked as deprecated in entity_specifics.proto. + SyncedNotification *EmptySpecifics `protobuf:"bytes,153108,opt,name=synced_notification,json=syncedNotification,oneof"` +} + +type EntitySpecifics_SyncedNotificationAppInfo struct { + // Deprecated: Marked as deprecated in entity_specifics.proto. + SyncedNotificationAppInfo *EmptySpecifics `protobuf:"bytes,235816,opt,name=synced_notification_app_info,json=syncedNotificationAppInfo,oneof"` +} + +type EntitySpecifics_Experiments struct { + // Deprecated: Marked as deprecated in entity_specifics.proto. + Experiments *ExperimentsSpecifics `protobuf:"bytes,161496,opt,name=experiments,oneof"` +} + +type EntitySpecifics_FaviconTracking struct { + // Deprecated: Marked as deprecated in entity_specifics.proto. + FaviconTracking *FaviconTrackingSpecifics `protobuf:"bytes,181534,opt,name=favicon_tracking,json=faviconTracking,oneof"` +} + +type EntitySpecifics_FaviconImage struct { + // Deprecated: Marked as deprecated in entity_specifics.proto. + FaviconImage *FaviconImageSpecifics `protobuf:"bytes,182019,opt,name=favicon_image,json=faviconImage,oneof"` +} + +type EntitySpecifics_ManagedUser struct { + // Deprecated: Marked as deprecated in entity_specifics.proto. + ManagedUser *EmptySpecifics `protobuf:"bytes,194582,opt,name=managed_user,json=managedUser,oneof"` +} + +type EntitySpecifics_ManagedUserSharedSetting struct { + // Deprecated: Marked as deprecated in entity_specifics.proto. + ManagedUserSharedSetting *ManagedUserSharedSettingSpecifics `protobuf:"bytes,202026,opt,name=managed_user_shared_setting,json=managedUserSharedSetting,oneof"` +} + +type EntitySpecifics_ManagedUserAllowlist struct { + // Deprecated: Marked as deprecated in entity_specifics.proto. + ManagedUserAllowlist *EmptySpecifics `protobuf:"bytes,306060,opt,name=managed_user_allowlist,json=managedUserAllowlist,oneof"` +} + func (*EntitySpecifics_Autofill) isEntitySpecifics_SpecificsVariant() {} func (*EntitySpecifics_Bookmark) isEntitySpecifics_SpecificsVariant() {} @@ -697,8 +795,6 @@ func (*EntitySpecifics_TypedUrl) isEntitySpecifics_SpecificsVariant() {} func (*EntitySpecifics_Theme) isEntitySpecifics_SpecificsVariant() {} -func (*EntitySpecifics_AppNotification) isEntitySpecifics_SpecificsVariant() {} - func (*EntitySpecifics_Password) isEntitySpecifics_SpecificsVariant() {} func (*EntitySpecifics_Nigori) isEntitySpecifics_SpecificsVariant() {} @@ -719,32 +815,16 @@ func (*EntitySpecifics_AppSetting) isEntitySpecifics_SpecificsVariant() {} func (*EntitySpecifics_HistoryDeleteDirective) isEntitySpecifics_SpecificsVariant() {} -func (*EntitySpecifics_SyncedNotification) isEntitySpecifics_SpecificsVariant() {} - -func (*EntitySpecifics_SyncedNotificationAppInfo) isEntitySpecifics_SpecificsVariant() {} - func (*EntitySpecifics_DeviceInfo) isEntitySpecifics_SpecificsVariant() {} -func (*EntitySpecifics_Experiments) isEntitySpecifics_SpecificsVariant() {} - func (*EntitySpecifics_PriorityPreference) isEntitySpecifics_SpecificsVariant() {} func (*EntitySpecifics_Dictionary) isEntitySpecifics_SpecificsVariant() {} -func (*EntitySpecifics_FaviconTracking) isEntitySpecifics_SpecificsVariant() {} - -func (*EntitySpecifics_FaviconImage) isEntitySpecifics_SpecificsVariant() {} - func (*EntitySpecifics_ManagedUserSetting) isEntitySpecifics_SpecificsVariant() {} -func (*EntitySpecifics_ManagedUser) isEntitySpecifics_SpecificsVariant() {} - -func (*EntitySpecifics_ManagedUserSharedSetting) isEntitySpecifics_SpecificsVariant() {} - func (*EntitySpecifics_AppList) isEntitySpecifics_SpecificsVariant() {} -func (*EntitySpecifics_ManagedUserAllowlist) isEntitySpecifics_SpecificsVariant() {} - func (*EntitySpecifics_AutofillWallet) isEntitySpecifics_SpecificsVariant() {} func (*EntitySpecifics_WalletMetadata) isEntitySpecifics_SpecificsVariant() {} @@ -763,6 +843,8 @@ func (*EntitySpecifics_SendTabToSelf) isEntitySpecifics_SpecificsVariant() {} func (*EntitySpecifics_SecurityEvent) isEntitySpecifics_SpecificsVariant() {} +func (*EntitySpecifics_WebApk) isEntitySpecifics_SpecificsVariant() {} + func (*EntitySpecifics_WebApp) isEntitySpecifics_SpecificsVariant() {} func (*EntitySpecifics_WifiConfiguration) isEntitySpecifics_SpecificsVariant() {} @@ -781,6 +863,40 @@ func (*EntitySpecifics_WebauthnCredential) isEntitySpecifics_SpecificsVariant() func (*EntitySpecifics_History) isEntitySpecifics_SpecificsVariant() {} +func (*EntitySpecifics_PrintersAuthorizationServer) isEntitySpecifics_SpecificsVariant() {} + +func (*EntitySpecifics_SavedTabGroup) isEntitySpecifics_SpecificsVariant() {} + +func (*EntitySpecifics_AutofillWalletUsage) isEntitySpecifics_SpecificsVariant() {} + +func (*EntitySpecifics_ContactInfo) isEntitySpecifics_SpecificsVariant() {} + +func (*EntitySpecifics_Segmentation) isEntitySpecifics_SpecificsVariant() {} + +func (*EntitySpecifics_PowerBookmark) isEntitySpecifics_SpecificsVariant() {} + +func (*EntitySpecifics_IncomingPasswordSharingInvitation) isEntitySpecifics_SpecificsVariant() {} + +func (*EntitySpecifics_OutgoingPasswordSharingInvitation) isEntitySpecifics_SpecificsVariant() {} + +func (*EntitySpecifics_AppNotification) isEntitySpecifics_SpecificsVariant() {} + +func (*EntitySpecifics_SyncedNotification) isEntitySpecifics_SpecificsVariant() {} + +func (*EntitySpecifics_SyncedNotificationAppInfo) isEntitySpecifics_SpecificsVariant() {} + +func (*EntitySpecifics_Experiments) isEntitySpecifics_SpecificsVariant() {} + +func (*EntitySpecifics_FaviconTracking) isEntitySpecifics_SpecificsVariant() {} + +func (*EntitySpecifics_FaviconImage) isEntitySpecifics_SpecificsVariant() {} + +func (*EntitySpecifics_ManagedUser) isEntitySpecifics_SpecificsVariant() {} + +func (*EntitySpecifics_ManagedUserSharedSetting) isEntitySpecifics_SpecificsVariant() {} + +func (*EntitySpecifics_ManagedUserAllowlist) isEntitySpecifics_SpecificsVariant() {} + type EmptySpecifics struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -826,322 +942,381 @@ var file_entity_specifics_proto_rawDesc = []byte{ 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x07, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x1a, 0x10, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x18, 0x61, 0x70, 0x70, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x73, 0x70, - 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x61, - 0x70, 0x70, 0x5f, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, - 0x1b, 0x61, 0x70, 0x70, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x13, 0x61, 0x70, - 0x70, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x1a, 0x1b, 0x61, 0x72, 0x63, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x5f, 0x73, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x18, - 0x61, 0x75, 0x74, 0x6f, 0x66, 0x69, 0x6c, 0x6c, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x61, 0x75, 0x74, 0x6f, 0x66, 0x69, - 0x6c, 0x6c, 0x5f, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x18, 0x62, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, - 0x72, 0x6b, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x1a, 0x1b, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x5f, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x61, + 0x70, 0x70, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x13, 0x61, 0x70, 0x70, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, - 0x1a, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72, 0x79, 0x5f, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x65, 0x78, 0x70, - 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x21, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, - 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x65, 0x78, 0x74, - 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1d, 0x66, 0x61, 0x76, 0x69, 0x63, 0x6f, 0x6e, 0x5f, - 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x66, 0x61, 0x76, 0x69, 0x63, 0x6f, 0x6e, 0x5f, 0x74, - 0x72, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, - 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x28, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, - 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x76, - 0x65, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x1a, 0x17, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x24, 0x6d, 0x61, 0x6e, 0x61, - 0x67, 0x65, 0x64, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, + 0x1b, 0x61, 0x72, 0x63, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x18, 0x61, 0x75, + 0x74, 0x6f, 0x66, 0x69, 0x6c, 0x6c, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x61, 0x75, 0x74, 0x6f, 0x66, 0x69, 0x6c, 0x6c, + 0x5f, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x25, 0x61, 0x75, 0x74, 0x6f, 0x66, 0x69, 0x6c, 0x6c, + 0x5f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x5f, 0x75, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x18, 0x62, + 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, + 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, + 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x6e, + 0x66, 0x6f, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x1a, 0x1a, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72, 0x79, 0x5f, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, + 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x73, 0x70, 0x65, 0x63, + 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x21, 0x65, 0x78, 0x74, + 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, + 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1d, 0x66, 0x61, 0x76, 0x69, 0x63, + 0x6f, 0x6e, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x66, 0x61, 0x76, 0x69, 0x63, 0x6f, + 0x6e, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x28, 0x68, 0x69, 0x73, 0x74, + 0x6f, 0x72, 0x79, 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x24, 0x6d, + 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x74, 0x74, + 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x1a, 0x2b, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x5f, 0x75, 0x73, 0x65, + 0x72, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x1a, 0x2b, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x73, - 0x68, 0x61, 0x72, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x70, - 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x6d, - 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x16, 0x6e, 0x69, 0x67, - 0x6f, 0x72, 0x69, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x1a, 0x1d, 0x6f, 0x73, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, + 0x1a, 0x16, 0x6e, 0x69, 0x67, 0x6f, 0x72, 0x69, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1d, 0x6f, 0x73, 0x5f, 0x70, 0x72, 0x65, + 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, + 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x26, 0x6f, 0x73, 0x5f, 0x70, 0x72, 0x69, 0x6f, + 0x72, 0x69, 0x74, 0x79, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, + 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, + 0x2b, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x69, 0x6e, + 0x67, 0x5f, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x18, 0x70, 0x61, + 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x5f, 0x62, 0x6f, + 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1a, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x1a, 0x26, 0x6f, 0x73, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, - 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x18, 0x70, 0x61, 0x73, 0x73, - 0x77, 0x6f, 0x72, 0x64, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1a, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, - 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x1a, 0x17, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x23, 0x70, 0x72, 0x69, 0x6f, 0x72, - 0x69, 0x74, 0x79, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x73, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, - 0x72, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1d, 0x73, 0x65, - 0x61, 0x72, 0x63, 0x68, 0x5f, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x73, 0x65, 0x63, - 0x75, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x73, 0x65, 0x6e, - 0x64, 0x5f, 0x74, 0x61, 0x62, 0x5f, 0x74, 0x6f, 0x5f, 0x73, 0x65, 0x6c, 0x66, 0x5f, 0x73, 0x70, + 0x74, 0x6f, 0x1a, 0x17, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x70, 0x65, 0x63, + 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2d, 0x70, 0x72, 0x69, + 0x6e, 0x74, 0x65, 0x72, 0x73, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x23, 0x70, 0x72, 0x69, 0x6f, + 0x72, 0x69, 0x74, 0x79, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, + 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, + 0x1c, 0x72, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x73, + 0x61, 0x76, 0x65, 0x64, 0x5f, 0x74, 0x61, 0x62, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1d, + 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x5f, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x73, + 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x73, + 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x61, 0x62, 0x5f, 0x74, 0x6f, 0x5f, 0x73, 0x65, 0x6c, 0x66, 0x5f, + 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, + 0x1c, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x73, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, - 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2c, 0x73, 0x79, 0x6e, 0x63, 0x65, 0x64, 0x5f, - 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x70, 0x70, - 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x23, 0x73, 0x79, 0x6e, 0x63, 0x65, 0x64, 0x5f, 0x6e, 0x6f, - 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x15, 0x74, 0x68, 0x65, 0x6d, - 0x65, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x1a, 0x19, 0x74, 0x79, 0x70, 0x65, 0x64, 0x5f, 0x75, 0x72, 0x6c, 0x5f, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x75, 0x73, - 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1a, 0x75, 0x73, 0x65, 0x72, - 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x77, 0x65, 0x62, 0x5f, 0x61, 0x70, 0x70, 0x5f, - 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, - 0x23, 0x77, 0x65, 0x62, 0x61, 0x75, 0x74, 0x68, 0x6e, 0x5f, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, - 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x22, 0x77, 0x69, 0x66, 0x69, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, - 0x61, 0x63, 0x65, 0x5f, 0x64, 0x65, 0x73, 0x6b, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xcd, 0x1c, 0x0a, 0x0f, 0x45, 0x6e, 0x74, - 0x69, 0x74, 0x79, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x12, 0x34, 0x0a, 0x09, - 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x16, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, - 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x09, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, - 0x65, 0x64, 0x12, 0x3a, 0x0a, 0x08, 0x61, 0x75, 0x74, 0x6f, 0x66, 0x69, 0x6c, 0x6c, 0x18, 0xf1, - 0xf7, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, - 0x2e, 0x41, 0x75, 0x74, 0x6f, 0x66, 0x69, 0x6c, 0x6c, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x63, 0x73, 0x48, 0x00, 0x52, 0x08, 0x61, 0x75, 0x74, 0x6f, 0x66, 0x69, 0x6c, 0x6c, 0x12, 0x3a, - 0x0a, 0x08, 0x62, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x88, 0x81, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x42, 0x6f, 0x6f, - 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x48, 0x00, - 0x52, 0x08, 0x62, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x40, 0x0a, 0x0a, 0x70, 0x72, - 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0xc6, 0xa6, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1c, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x50, 0x72, 0x65, 0x66, 0x65, - 0x72, 0x65, 0x6e, 0x63, 0x65, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x48, 0x00, - 0x52, 0x0a, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x3b, 0x0a, 0x09, - 0x74, 0x79, 0x70, 0x65, 0x64, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0xcd, 0xbe, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1a, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x54, 0x79, 0x70, 0x65, - 0x64, 0x55, 0x72, 0x6c, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x48, 0x00, 0x52, - 0x08, 0x74, 0x79, 0x70, 0x65, 0x64, 0x55, 0x72, 0x6c, 0x12, 0x31, 0x0a, 0x05, 0x74, 0x68, 0x65, - 0x6d, 0x65, 0x18, 0xfa, 0xc1, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x79, 0x6e, - 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x54, 0x68, 0x65, 0x6d, 0x65, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x69, 0x63, 0x73, 0x48, 0x00, 0x52, 0x05, 0x74, 0x68, 0x65, 0x6d, 0x65, 0x12, 0x4b, 0x0a, 0x10, - 0x61, 0x70, 0x70, 0x5f, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x80, 0xe1, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, - 0x70, 0x62, 0x2e, 0x41, 0x70, 0x70, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x0f, 0x61, 0x70, 0x70, 0x4e, 0x6f, 0x74, - 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3a, 0x0a, 0x08, 0x70, 0x61, 0x73, - 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0xb1, 0xe6, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, - 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, - 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x48, 0x00, 0x52, 0x08, 0x70, 0x61, 0x73, - 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x34, 0x0a, 0x06, 0x6e, 0x69, 0x67, 0x6f, 0x72, 0x69, 0x18, - 0x81, 0xf5, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, - 0x62, 0x2e, 0x4e, 0x69, 0x67, 0x6f, 0x72, 0x69, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, - 0x73, 0x48, 0x00, 0x52, 0x06, 0x6e, 0x69, 0x67, 0x6f, 0x72, 0x69, 0x12, 0x3d, 0x0a, 0x09, 0x65, - 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0xf7, 0xf7, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1b, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, - 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x48, 0x00, 0x52, - 0x09, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2b, 0x0a, 0x03, 0x61, 0x70, - 0x70, 0x18, 0xec, 0xf9, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x79, 0x6e, 0x63, - 0x5f, 0x70, 0x62, 0x2e, 0x41, 0x70, 0x70, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, - 0x48, 0x00, 0x52, 0x03, 0x61, 0x70, 0x70, 0x12, 0x37, 0x0a, 0x07, 0x73, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x18, 0xc7, 0x87, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x79, 0x6e, - 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x63, 0x73, 0x48, 0x00, 0x52, 0x07, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x12, 0x50, 0x0a, 0x10, 0x61, 0x75, 0x74, 0x6f, 0x66, 0x69, 0x6c, 0x6c, 0x5f, 0x70, 0x72, 0x6f, - 0x66, 0x69, 0x6c, 0x65, 0x18, 0xcf, 0xf3, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, - 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x41, 0x75, 0x74, 0x6f, 0x66, 0x69, 0x6c, 0x6c, 0x50, - 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x48, - 0x00, 0x52, 0x0f, 0x61, 0x75, 0x74, 0x6f, 0x66, 0x69, 0x6c, 0x6c, 0x50, 0x72, 0x6f, 0x66, 0x69, - 0x6c, 0x65, 0x12, 0x47, 0x0a, 0x0d, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x65, 0x6e, 0x67, - 0x69, 0x6e, 0x65, 0x18, 0xa2, 0xb4, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x79, - 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x45, 0x6e, 0x67, 0x69, - 0x6e, 0x65, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x48, 0x00, 0x52, 0x0c, 0x73, - 0x65, 0x61, 0x72, 0x63, 0x68, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x12, 0x53, 0x0a, 0x11, 0x65, - 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, - 0x18, 0x9f, 0xef, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, - 0x70, 0x62, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x74, - 0x69, 0x6e, 0x67, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x48, 0x00, 0x52, 0x10, - 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, - 0x12, 0x41, 0x0a, 0x0b, 0x61, 0x70, 0x70, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x18, - 0xe8, 0xa9, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, - 0x62, 0x2e, 0x41, 0x70, 0x70, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x53, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x63, 0x73, 0x48, 0x00, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x53, 0x65, 0x74, 0x74, - 0x69, 0x6e, 0x67, 0x12, 0x66, 0x0a, 0x18, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x64, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, - 0xeb, 0x95, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, - 0x62, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, - 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, - 0x73, 0x48, 0x00, 0x52, 0x16, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x5d, 0x0a, 0x13, 0x73, - 0x79, 0x6e, 0x63, 0x65, 0x64, 0x5f, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x94, 0xac, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x79, 0x6e, - 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x65, 0x64, 0x4e, 0x6f, 0x74, 0x69, 0x66, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, - 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x12, 0x73, 0x79, 0x6e, 0x63, 0x65, 0x64, 0x4e, 0x6f, - 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x74, 0x0a, 0x1c, 0x73, 0x79, - 0x6e, 0x63, 0x65, 0x64, 0x5f, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x61, 0x70, 0x70, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0xa8, 0xb2, 0x0e, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x53, 0x79, 0x6e, - 0x63, 0x65, 0x64, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, - 0x70, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x42, - 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x19, 0x73, 0x79, 0x6e, 0x63, 0x65, 0x64, 0x4e, 0x6f, 0x74, - 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x70, 0x70, 0x49, 0x6e, 0x66, 0x6f, - 0x12, 0x41, 0x0a, 0x0b, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, - 0x9a, 0xb7, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, - 0x62, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x63, 0x73, 0x48, 0x00, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, - 0x6e, 0x66, 0x6f, 0x12, 0x47, 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x18, 0xd8, 0xed, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x73, 0x79, 0x6e, - 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, - 0x0b, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x59, 0x0a, 0x13, + 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x15, 0x74, 0x68, 0x65, 0x6d, 0x65, 0x5f, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, + 0x74, 0x79, 0x70, 0x65, 0x64, 0x5f, 0x75, 0x72, 0x6c, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x75, 0x73, 0x65, 0x72, 0x5f, + 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, + 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1a, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x65, 0x76, + 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x77, 0x65, 0x62, 0x5f, 0x61, 0x70, 0x6b, 0x5f, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x77, 0x65, + 0x62, 0x5f, 0x61, 0x70, 0x70, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x23, 0x77, 0x65, 0x62, 0x61, 0x75, 0x74, 0x68, 0x6e, 0x5f, + 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x22, 0x77, 0x69, 0x66, 0x69, + 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, + 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x64, 0x65, 0x73, 0x6b, 0x5f, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xef, + 0x22, 0x0a, 0x0f, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x63, 0x73, 0x12, 0x34, 0x0a, 0x09, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, + 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x09, 0x65, + 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x12, 0x3a, 0x0a, 0x08, 0x61, 0x75, 0x74, 0x6f, + 0x66, 0x69, 0x6c, 0x6c, 0x18, 0xf1, 0xf7, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x73, + 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x41, 0x75, 0x74, 0x6f, 0x66, 0x69, 0x6c, 0x6c, 0x53, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x48, 0x00, 0x52, 0x08, 0x61, 0x75, 0x74, 0x6f, + 0x66, 0x69, 0x6c, 0x6c, 0x12, 0x3a, 0x0a, 0x08, 0x62, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, + 0x18, 0x88, 0x81, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, + 0x70, 0x62, 0x2e, 0x42, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x53, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x63, 0x73, 0x48, 0x00, 0x52, 0x08, 0x62, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, + 0x12, 0x40, 0x0a, 0x0a, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0xc6, + 0xa6, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, + 0x2e, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x53, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x63, 0x73, 0x48, 0x00, 0x52, 0x0a, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, + 0x63, 0x65, 0x12, 0x3b, 0x0a, 0x09, 0x74, 0x79, 0x70, 0x65, 0x64, 0x5f, 0x75, 0x72, 0x6c, 0x18, + 0xcd, 0xbe, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, + 0x62, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x64, 0x55, 0x72, 0x6c, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x63, 0x73, 0x48, 0x00, 0x52, 0x08, 0x74, 0x79, 0x70, 0x65, 0x64, 0x55, 0x72, 0x6c, 0x12, + 0x31, 0x0a, 0x05, 0x74, 0x68, 0x65, 0x6d, 0x65, 0x18, 0xfa, 0xc1, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x17, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x54, 0x68, 0x65, 0x6d, 0x65, + 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x48, 0x00, 0x52, 0x05, 0x74, 0x68, 0x65, + 0x6d, 0x65, 0x12, 0x3a, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0xb1, + 0xe6, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, + 0x2e, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x63, 0x73, 0x48, 0x00, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x34, + 0x0a, 0x06, 0x6e, 0x69, 0x67, 0x6f, 0x72, 0x69, 0x18, 0x81, 0xf5, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x18, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x4e, 0x69, 0x67, 0x6f, 0x72, + 0x69, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x48, 0x00, 0x52, 0x06, 0x6e, 0x69, + 0x67, 0x6f, 0x72, 0x69, 0x12, 0x3d, 0x0a, 0x09, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, + 0x6e, 0x18, 0xf7, 0xf7, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x79, 0x6e, 0x63, + 0x5f, 0x70, 0x62, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x48, 0x00, 0x52, 0x09, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, + 0x69, 0x6f, 0x6e, 0x12, 0x2b, 0x0a, 0x03, 0x61, 0x70, 0x70, 0x18, 0xec, 0xf9, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x41, 0x70, 0x70, + 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x48, 0x00, 0x52, 0x03, 0x61, 0x70, 0x70, + 0x12, 0x37, 0x0a, 0x07, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0xc7, 0x87, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x53, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x48, 0x00, + 0x52, 0x07, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x50, 0x0a, 0x10, 0x61, 0x75, 0x74, + 0x6f, 0x66, 0x69, 0x6c, 0x6c, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0xcf, 0xf3, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, + 0x41, 0x75, 0x74, 0x6f, 0x66, 0x69, 0x6c, 0x6c, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x48, 0x00, 0x52, 0x0f, 0x61, 0x75, 0x74, 0x6f, + 0x66, 0x69, 0x6c, 0x6c, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x47, 0x0a, 0x0d, 0x73, + 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x18, 0xa2, 0xb4, 0x05, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x53, + 0x65, 0x61, 0x72, 0x63, 0x68, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x53, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x63, 0x73, 0x48, 0x00, 0x52, 0x0c, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x45, 0x6e, + 0x67, 0x69, 0x6e, 0x65, 0x12, 0x53, 0x0a, 0x11, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, + 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x9f, 0xef, 0x05, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x22, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x45, 0x78, 0x74, 0x65, + 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x53, 0x70, 0x65, 0x63, + 0x69, 0x66, 0x69, 0x63, 0x73, 0x48, 0x00, 0x52, 0x10, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, + 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x41, 0x0a, 0x0b, 0x61, 0x70, 0x70, + 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x18, 0xe8, 0xa9, 0x06, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1c, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x41, 0x70, 0x70, 0x53, 0x65, + 0x74, 0x74, 0x69, 0x6e, 0x67, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x48, 0x00, + 0x52, 0x0a, 0x61, 0x70, 0x70, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x66, 0x0a, 0x18, + 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x5f, 0x64, + 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0xeb, 0x95, 0x09, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x28, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, + 0x72, 0x79, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x48, 0x00, 0x52, 0x16, 0x68, 0x69, + 0x73, 0x74, 0x6f, 0x72, 0x79, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x69, 0x72, 0x65, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x12, 0x41, 0x0a, 0x0b, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, + 0x6e, 0x66, 0x6f, 0x18, 0x9a, 0xb7, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x79, + 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, + 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x48, 0x00, 0x52, 0x0a, 0x64, 0x65, 0x76, + 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x59, 0x0a, 0x13, 0x70, 0x72, 0x69, 0x6f, 0x72, + 0x69, 0x74, 0x79, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0xe1, + 0xfc, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, + 0x2e, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, + 0x6e, 0x63, 0x65, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x48, 0x00, 0x52, 0x12, + 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, + 0x63, 0x65, 0x12, 0x40, 0x0a, 0x0a, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72, 0x79, + 0x18, 0xac, 0xb4, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, + 0x70, 0x62, 0x2e, 0x44, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72, 0x79, 0x53, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x48, 0x00, 0x52, 0x0a, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x61, 0x72, 0x79, 0x12, 0x5a, 0x0a, 0x14, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x5f, + 0x75, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x18, 0xa6, 0xb2, 0x0b, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x4d, + 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, + 0x67, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x48, 0x00, 0x52, 0x12, 0x6d, 0x61, + 0x6e, 0x61, 0x67, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, + 0x12, 0x38, 0x0a, 0x08, 0x61, 0x70, 0x70, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0xb2, 0xfe, 0x0d, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x41, + 0x70, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x48, + 0x00, 0x52, 0x07, 0x61, 0x70, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x4d, 0x0a, 0x0f, 0x61, 0x75, + 0x74, 0x6f, 0x66, 0x69, 0x6c, 0x6c, 0x5f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x18, 0xde, 0xd8, + 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, + 0x41, 0x75, 0x74, 0x6f, 0x66, 0x69, 0x6c, 0x6c, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x53, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x48, 0x00, 0x52, 0x0e, 0x61, 0x75, 0x74, 0x6f, 0x66, + 0x69, 0x6c, 0x6c, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x12, 0x4d, 0x0a, 0x0f, 0x77, 0x61, 0x6c, + 0x6c, 0x65, 0x74, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0xc9, 0x95, 0x14, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x57, + 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x53, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x48, 0x00, 0x52, 0x0e, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x41, 0x0a, 0x0b, 0x61, 0x72, 0x63, 0x5f, + 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0xaa, 0xe7, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x41, 0x72, 0x63, 0x50, 0x61, 0x63, + 0x6b, 0x61, 0x67, 0x65, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x48, 0x00, 0x52, + 0x0a, 0x61, 0x72, 0x63, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x37, 0x0a, 0x07, 0x70, + 0x72, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x18, 0xf9, 0x88, 0x19, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, + 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x50, 0x72, 0x69, 0x6e, 0x74, 0x65, 0x72, + 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x48, 0x00, 0x52, 0x07, 0x70, 0x72, 0x69, + 0x6e, 0x74, 0x65, 0x72, 0x12, 0x44, 0x0a, 0x0c, 0x72, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, + 0x6c, 0x69, 0x73, 0x74, 0x18, 0x94, 0x8b, 0x19, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x73, + 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x4c, 0x69, + 0x73, 0x74, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x48, 0x00, 0x52, 0x0b, 0x72, + 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x3e, 0x0a, 0x0a, 0x75, 0x73, + 0x65, 0x72, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0xa6, 0xe4, 0x1b, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1b, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x48, 0x00, 0x52, + 0x09, 0x75, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x44, 0x0a, 0x0c, 0x75, 0x73, + 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x74, 0x18, 0xee, 0xf7, 0x21, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x55, 0x73, 0x65, + 0x72, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x74, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, + 0x73, 0x48, 0x00, 0x52, 0x0b, 0x75, 0x73, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x74, + 0x12, 0x4c, 0x0a, 0x10, 0x73, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x61, 0x62, 0x5f, 0x74, 0x6f, 0x5f, + 0x73, 0x65, 0x6c, 0x66, 0x18, 0xfc, 0xde, 0x24, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, + 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x54, 0x61, 0x62, 0x54, 0x6f, + 0x53, 0x65, 0x6c, 0x66, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x48, 0x00, 0x52, + 0x0d, 0x73, 0x65, 0x6e, 0x64, 0x54, 0x61, 0x62, 0x54, 0x6f, 0x53, 0x65, 0x6c, 0x66, 0x12, 0x4a, + 0x0a, 0x0e, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, + 0x18, 0xb4, 0xd2, 0x24, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, + 0x70, 0x62, 0x2e, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x45, 0x76, 0x65, 0x6e, 0x74, + 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x48, 0x00, 0x52, 0x0d, 0x73, 0x65, 0x63, + 0x75, 0x72, 0x69, 0x74, 0x79, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x35, 0x0a, 0x07, 0x77, 0x65, + 0x62, 0x5f, 0x61, 0x70, 0x6b, 0x18, 0xf2, 0x97, 0x44, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, + 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x57, 0x65, 0x62, 0x41, 0x70, 0x6b, 0x53, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x48, 0x00, 0x52, 0x06, 0x77, 0x65, 0x62, 0x41, 0x70, + 0x6b, 0x12, 0x35, 0x0a, 0x07, 0x77, 0x65, 0x62, 0x5f, 0x61, 0x70, 0x70, 0x18, 0xc9, 0x8b, 0x29, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x57, + 0x65, 0x62, 0x41, 0x70, 0x70, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x48, 0x00, + 0x52, 0x06, 0x77, 0x65, 0x62, 0x41, 0x70, 0x70, 0x12, 0x56, 0x0a, 0x12, 0x77, 0x69, 0x66, 0x69, + 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xab, + 0xba, 0x28, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, + 0x2e, 0x57, 0x69, 0x66, 0x69, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x48, 0x00, 0x52, 0x11, 0x77, + 0x69, 0x66, 0x69, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x47, 0x0a, 0x0d, 0x6f, 0x73, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, + 0x65, 0x18, 0xbd, 0xed, 0x2a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x79, 0x6e, 0x63, + 0x5f, 0x70, 0x62, 0x2e, 0x4f, 0x73, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, + 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x48, 0x00, 0x52, 0x0c, 0x6f, 0x73, 0x50, + 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x60, 0x0a, 0x16, 0x6f, 0x73, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, - 0x6e, 0x63, 0x65, 0x18, 0xe1, 0xfc, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x79, - 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x50, 0x72, - 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, - 0x73, 0x48, 0x00, 0x52, 0x12, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x50, 0x72, 0x65, - 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x40, 0x0a, 0x0a, 0x64, 0x69, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x61, 0x72, 0x79, 0x18, 0xac, 0xb4, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, - 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x44, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, - 0x72, 0x79, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x48, 0x00, 0x52, 0x0a, 0x64, - 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x72, 0x79, 0x12, 0x54, 0x0a, 0x10, 0x66, 0x61, 0x76, - 0x69, 0x63, 0x6f, 0x6e, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x18, 0x9e, 0x8a, - 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, - 0x46, 0x61, 0x76, 0x69, 0x63, 0x6f, 0x6e, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x53, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x0f, - 0x66, 0x61, 0x76, 0x69, 0x63, 0x6f, 0x6e, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x12, - 0x4b, 0x0a, 0x0d, 0x66, 0x61, 0x76, 0x69, 0x63, 0x6f, 0x6e, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, - 0x18, 0x83, 0x8e, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, - 0x70, 0x62, 0x2e, 0x46, 0x61, 0x76, 0x69, 0x63, 0x6f, 0x6e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x53, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x0c, - 0x66, 0x61, 0x76, 0x69, 0x63, 0x6f, 0x6e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x5a, 0x0a, 0x14, - 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x74, - 0x74, 0x69, 0x6e, 0x67, 0x18, 0xa6, 0xb2, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, - 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x55, 0x73, - 0x65, 0x72, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x63, 0x73, 0x48, 0x00, 0x52, 0x12, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x55, 0x73, 0x65, - 0x72, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x48, 0x0a, 0x0c, 0x6d, 0x61, 0x6e, 0x61, - 0x67, 0x65, 0x64, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x18, 0x96, 0xf0, 0x0b, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1d, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x4d, 0x61, 0x6e, 0x61, 0x67, - 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x42, - 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x0b, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x55, 0x73, - 0x65, 0x72, 0x12, 0x71, 0x0a, 0x1b, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x5f, 0x75, 0x73, - 0x65, 0x72, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, - 0x67, 0x18, 0xaa, 0xaa, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x73, 0x79, 0x6e, 0x63, - 0x5f, 0x70, 0x62, 0x2e, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x53, - 0x68, 0x61, 0x72, 0x65, 0x64, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x53, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x63, 0x73, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x18, 0x6d, 0x61, 0x6e, - 0x61, 0x67, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x53, 0x65, - 0x74, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x38, 0x0a, 0x08, 0x61, 0x70, 0x70, 0x5f, 0x6c, 0x69, 0x73, - 0x74, 0x18, 0xb2, 0xfe, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x79, 0x6e, 0x63, - 0x5f, 0x70, 0x62, 0x2e, 0x41, 0x70, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x63, 0x73, 0x48, 0x00, 0x52, 0x07, 0x61, 0x70, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x12, - 0x55, 0x0a, 0x16, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, - 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x8c, 0xd7, 0x12, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x45, 0x6d, 0x70, 0x74, - 0x79, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, - 0x52, 0x14, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x41, 0x6c, 0x6c, - 0x6f, 0x77, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x4d, 0x0a, 0x0f, 0x61, 0x75, 0x74, 0x6f, 0x66, 0x69, - 0x6c, 0x6c, 0x5f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x18, 0xde, 0xd8, 0x12, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x20, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x41, 0x75, 0x74, 0x6f, - 0x66, 0x69, 0x6c, 0x6c, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x69, 0x63, 0x73, 0x48, 0x00, 0x52, 0x0e, 0x61, 0x75, 0x74, 0x6f, 0x66, 0x69, 0x6c, 0x6c, 0x57, - 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x12, 0x4d, 0x0a, 0x0f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x5f, - 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0xc9, 0x95, 0x14, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x20, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x57, 0x61, 0x6c, 0x6c, 0x65, - 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x63, 0x73, 0x48, 0x00, 0x52, 0x0e, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x12, 0x41, 0x0a, 0x0b, 0x61, 0x72, 0x63, 0x5f, 0x70, 0x61, 0x63, 0x6b, - 0x61, 0x67, 0x65, 0x18, 0xaa, 0xe7, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x79, - 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x41, 0x72, 0x63, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, - 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x48, 0x00, 0x52, 0x0a, 0x61, 0x72, 0x63, - 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x37, 0x0a, 0x07, 0x70, 0x72, 0x69, 0x6e, 0x74, - 0x65, 0x72, 0x18, 0xf9, 0x88, 0x19, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x79, 0x6e, - 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x50, 0x72, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x63, 0x73, 0x48, 0x00, 0x52, 0x07, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x65, 0x72, - 0x12, 0x44, 0x0a, 0x0c, 0x72, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x6c, 0x69, 0x73, 0x74, - 0x18, 0x94, 0x8b, 0x19, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, - 0x70, 0x62, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x70, - 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x48, 0x00, 0x52, 0x0b, 0x72, 0x65, 0x61, 0x64, 0x69, - 0x6e, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x3e, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x65, - 0x76, 0x65, 0x6e, 0x74, 0x18, 0xa6, 0xe4, 0x1b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, - 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, - 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x48, 0x00, 0x52, 0x09, 0x75, 0x73, 0x65, - 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x44, 0x0a, 0x0c, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x63, - 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x74, 0x18, 0xee, 0xf7, 0x21, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, - 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x43, 0x6f, 0x6e, - 0x73, 0x65, 0x6e, 0x74, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x48, 0x00, 0x52, - 0x0b, 0x75, 0x73, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x74, 0x12, 0x4c, 0x0a, 0x10, - 0x73, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x61, 0x62, 0x5f, 0x74, 0x6f, 0x5f, 0x73, 0x65, 0x6c, 0x66, - 0x18, 0xfc, 0xde, 0x24, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, - 0x70, 0x62, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x54, 0x61, 0x62, 0x54, 0x6f, 0x53, 0x65, 0x6c, 0x66, - 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x48, 0x00, 0x52, 0x0d, 0x73, 0x65, 0x6e, - 0x64, 0x54, 0x61, 0x62, 0x54, 0x6f, 0x53, 0x65, 0x6c, 0x66, 0x12, 0x4a, 0x0a, 0x0e, 0x73, 0x65, - 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0xb4, 0xd2, 0x24, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x53, - 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x53, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x63, 0x73, 0x48, 0x00, 0x52, 0x0d, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, - 0x79, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x35, 0x0a, 0x07, 0x77, 0x65, 0x62, 0x5f, 0x61, 0x70, - 0x70, 0x18, 0xc9, 0x8b, 0x29, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x73, 0x79, 0x6e, 0x63, - 0x5f, 0x70, 0x62, 0x2e, 0x57, 0x65, 0x62, 0x41, 0x70, 0x70, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x69, 0x63, 0x73, 0x48, 0x00, 0x52, 0x06, 0x77, 0x65, 0x62, 0x41, 0x70, 0x70, 0x12, 0x56, 0x0a, - 0x12, 0x77, 0x69, 0x66, 0x69, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x18, 0xab, 0xba, 0x28, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x79, - 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x57, 0x69, 0x66, 0x69, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, - 0x48, 0x00, 0x52, 0x11, 0x77, 0x69, 0x66, 0x69, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x47, 0x0a, 0x0d, 0x6f, 0x73, 0x5f, 0x70, 0x72, 0x65, 0x66, - 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0xbd, 0xed, 0x2a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, - 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x4f, 0x73, 0x50, 0x72, 0x65, 0x66, 0x65, - 0x72, 0x65, 0x6e, 0x63, 0x65, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x48, 0x00, - 0x52, 0x0c, 0x6f, 0x73, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x60, - 0x0a, 0x16, 0x6f, 0x73, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x70, 0x72, - 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0xab, 0xfb, 0x2a, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x26, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x4f, 0x73, 0x50, 0x72, 0x69, - 0x6f, 0x72, 0x69, 0x74, 0x79, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x53, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x48, 0x00, 0x52, 0x14, 0x6f, 0x73, 0x50, 0x72, - 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, - 0x12, 0x4d, 0x0a, 0x0f, 0x73, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x18, 0xa2, 0xbe, 0x2c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x73, 0x79, - 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x4d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x48, 0x00, 0x52, - 0x0e, 0x73, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, - 0x4a, 0x0a, 0x0e, 0x61, 0x75, 0x74, 0x6f, 0x66, 0x69, 0x6c, 0x6c, 0x5f, 0x6f, 0x66, 0x66, 0x65, - 0x72, 0x18, 0xb9, 0xa1, 0x2f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x79, 0x6e, 0x63, - 0x5f, 0x70, 0x62, 0x2e, 0x41, 0x75, 0x74, 0x6f, 0x66, 0x69, 0x6c, 0x6c, 0x4f, 0x66, 0x66, 0x65, - 0x72, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x48, 0x00, 0x52, 0x0d, 0x61, 0x75, - 0x74, 0x6f, 0x66, 0x69, 0x6c, 0x6c, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x12, 0x4a, 0x0a, 0x0e, 0x77, - 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x64, 0x65, 0x73, 0x6b, 0x18, 0xd9, 0xb2, - 0x35, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, - 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x44, 0x65, 0x73, 0x6b, 0x53, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x48, 0x00, 0x52, 0x0d, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, - 0x61, 0x63, 0x65, 0x44, 0x65, 0x73, 0x6b, 0x12, 0x59, 0x0a, 0x13, 0x77, 0x65, 0x62, 0x61, 0x75, - 0x74, 0x68, 0x6e, 0x5f, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x18, 0xab, - 0xd2, 0x36, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, - 0x2e, 0x57, 0x65, 0x62, 0x61, 0x75, 0x74, 0x68, 0x6e, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, - 0x69, 0x61, 0x6c, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x48, 0x00, 0x52, 0x12, - 0x77, 0x65, 0x62, 0x61, 0x75, 0x74, 0x68, 0x6e, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, - 0x61, 0x6c, 0x12, 0x37, 0x0a, 0x07, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x91, 0xeb, - 0x3a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, - 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, - 0x48, 0x00, 0x52, 0x07, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x13, 0x0a, 0x11, 0x73, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, - 0x4a, 0x08, 0x08, 0xbf, 0xa8, 0x0d, 0x10, 0xc0, 0xa8, 0x0d, 0x4a, 0x08, 0x08, 0x8f, 0xd4, 0x0d, - 0x10, 0x90, 0xd4, 0x0d, 0x4a, 0x08, 0x08, 0xed, 0xa1, 0x21, 0x10, 0xee, 0xa1, 0x21, 0x52, 0x0f, - 0x77, 0x69, 0x66, 0x69, 0x5f, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x52, - 0x07, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, 0x52, 0x0e, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x61, - 0x69, 0x6e, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x65, 0x22, 0x10, 0x0a, 0x0e, 0x45, 0x6d, 0x70, 0x74, - 0x79, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x42, 0x2b, 0x0a, 0x25, 0x6f, 0x72, - 0x67, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, - 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x63, 0x6f, 0x6c, 0x48, 0x03, 0x50, 0x01, + 0x6e, 0x63, 0x65, 0x18, 0xab, 0xfb, 0x2a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x79, + 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x4f, 0x73, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, + 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x63, 0x73, 0x48, 0x00, 0x52, 0x14, 0x6f, 0x73, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, + 0x79, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x4d, 0x0a, 0x0f, 0x73, + 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0xa2, + 0xbe, 0x2c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, + 0x2e, 0x53, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x48, 0x00, 0x52, 0x0e, 0x73, 0x68, 0x61, 0x72, + 0x69, 0x6e, 0x67, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x4a, 0x0a, 0x0e, 0x61, 0x75, + 0x74, 0x6f, 0x66, 0x69, 0x6c, 0x6c, 0x5f, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x18, 0xb9, 0xa1, 0x2f, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x41, + 0x75, 0x74, 0x6f, 0x66, 0x69, 0x6c, 0x6c, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, + 0x69, 0x66, 0x69, 0x63, 0x73, 0x48, 0x00, 0x52, 0x0d, 0x61, 0x75, 0x74, 0x6f, 0x66, 0x69, 0x6c, + 0x6c, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x12, 0x4a, 0x0a, 0x0e, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x5f, 0x64, 0x65, 0x73, 0x6b, 0x18, 0xd9, 0xb2, 0x35, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1f, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x44, 0x65, 0x73, 0x6b, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, + 0x73, 0x48, 0x00, 0x52, 0x0d, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x44, 0x65, + 0x73, 0x6b, 0x12, 0x59, 0x0a, 0x13, 0x77, 0x65, 0x62, 0x61, 0x75, 0x74, 0x68, 0x6e, 0x5f, 0x63, + 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x18, 0xab, 0xd2, 0x36, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x57, 0x65, 0x62, 0x61, + 0x75, 0x74, 0x68, 0x6e, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x53, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x48, 0x00, 0x52, 0x12, 0x77, 0x65, 0x62, 0x61, 0x75, + 0x74, 0x68, 0x6e, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x12, 0x37, 0x0a, + 0x07, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x91, 0xeb, 0x3a, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x19, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, + 0x72, 0x79, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x48, 0x00, 0x52, 0x07, 0x68, + 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x75, 0x0a, 0x1d, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x65, + 0x72, 0x73, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x18, 0xe0, 0xbb, 0x3b, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x2d, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x50, 0x72, 0x69, 0x6e, 0x74, 0x65, + 0x72, 0x73, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x48, 0x00, + 0x52, 0x1b, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, + 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x4b, 0x0a, + 0x0f, 0x73, 0x61, 0x76, 0x65, 0x64, 0x5f, 0x74, 0x61, 0x62, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x18, 0xca, 0xaa, 0x3d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, + 0x70, 0x62, 0x2e, 0x53, 0x61, 0x76, 0x65, 0x64, 0x54, 0x61, 0x62, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x48, 0x00, 0x52, 0x0d, 0x73, 0x61, 0x76, + 0x65, 0x64, 0x54, 0x61, 0x62, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x5d, 0x0a, 0x15, 0x61, 0x75, + 0x74, 0x6f, 0x66, 0x69, 0x6c, 0x6c, 0x5f, 0x77, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x5f, 0x75, 0x73, + 0x61, 0x67, 0x65, 0x18, 0xec, 0x8a, 0x3f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x73, 0x79, + 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x41, 0x75, 0x74, 0x6f, 0x66, 0x69, 0x6c, 0x6c, 0x57, 0x61, + 0x6c, 0x6c, 0x65, 0x74, 0x55, 0x73, 0x61, 0x67, 0x65, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x63, 0x73, 0x48, 0x00, 0x52, 0x13, 0x61, 0x75, 0x74, 0x6f, 0x66, 0x69, 0x6c, 0x6c, 0x57, 0x61, + 0x6c, 0x6c, 0x65, 0x74, 0x55, 0x73, 0x61, 0x67, 0x65, 0x12, 0x44, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, + 0x74, 0x61, 0x63, 0x74, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x8a, 0x91, 0x3f, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1d, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6e, 0x74, + 0x61, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, + 0x48, 0x00, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, + 0x46, 0x0a, 0x0c, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x84, 0xd0, 0x3e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, + 0x62, 0x2e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x48, 0x00, 0x52, 0x0c, 0x73, 0x65, 0x67, 0x6d, 0x65, + 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4a, 0x0a, 0x0e, 0x70, 0x6f, 0x77, 0x65, 0x72, + 0x5f, 0x62, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0xfe, 0xbf, 0x41, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x50, 0x6f, 0x77, 0x65, + 0x72, 0x42, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x63, 0x73, 0x48, 0x00, 0x52, 0x0d, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x42, 0x6f, 0x6f, 0x6b, 0x6d, + 0x61, 0x72, 0x6b, 0x12, 0x88, 0x01, 0x0a, 0x24, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, + 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x69, 0x6e, + 0x67, 0x5f, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xaf, 0xd9, 0x45, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x49, + 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x53, + 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x48, 0x00, 0x52, 0x21, 0x69, 0x6e, 0x63, + 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x53, 0x68, 0x61, + 0x72, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x88, + 0x01, 0x0a, 0x24, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x61, 0x73, 0x73, + 0x77, 0x6f, 0x72, 0x64, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6e, 0x76, + 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xc1, 0xda, 0x45, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x33, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x4f, 0x75, 0x74, 0x67, 0x6f, 0x69, + 0x6e, 0x67, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x53, 0x68, 0x61, 0x72, 0x69, 0x6e, + 0x67, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x63, 0x73, 0x48, 0x00, 0x52, 0x21, 0x6f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, + 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x53, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x49, + 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4a, 0x0a, 0x10, 0x61, 0x70, 0x70, + 0x5f, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x80, 0xe1, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, + 0x45, 0x6d, 0x70, 0x74, 0x79, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x42, 0x02, + 0x18, 0x01, 0x48, 0x00, 0x52, 0x0f, 0x61, 0x70, 0x70, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x50, 0x0a, 0x13, 0x73, 0x79, 0x6e, 0x63, 0x65, 0x64, 0x5f, + 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x94, 0xac, 0x09, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x45, + 0x6d, 0x70, 0x74, 0x79, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x42, 0x02, 0x18, + 0x01, 0x48, 0x00, 0x52, 0x12, 0x73, 0x79, 0x6e, 0x63, 0x65, 0x64, 0x4e, 0x6f, 0x74, 0x69, 0x66, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x60, 0x0a, 0x1c, 0x73, 0x79, 0x6e, 0x63, 0x65, + 0x64, 0x5f, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, + 0x70, 0x70, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0xa8, 0xb2, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x17, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x53, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x19, + 0x73, 0x79, 0x6e, 0x63, 0x65, 0x64, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x41, 0x70, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x47, 0x0a, 0x0b, 0x65, 0x78, 0x70, + 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0xd8, 0xed, 0x09, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1d, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x45, 0x78, 0x70, 0x65, 0x72, + 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x42, + 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x0b, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x12, 0x54, 0x0a, 0x10, 0x66, 0x61, 0x76, 0x69, 0x63, 0x6f, 0x6e, 0x5f, 0x74, 0x72, + 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x18, 0x9e, 0x8a, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, + 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x46, 0x61, 0x76, 0x69, 0x63, 0x6f, 0x6e, + 0x54, 0x72, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, + 0x73, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x0f, 0x66, 0x61, 0x76, 0x69, 0x63, 0x6f, 0x6e, + 0x54, 0x72, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x12, 0x4b, 0x0a, 0x0d, 0x66, 0x61, 0x76, 0x69, + 0x63, 0x6f, 0x6e, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x83, 0x8e, 0x0b, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x46, 0x61, 0x76, 0x69, + 0x63, 0x6f, 0x6e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, + 0x73, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x0c, 0x66, 0x61, 0x76, 0x69, 0x63, 0x6f, 0x6e, + 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x42, 0x0a, 0x0c, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, + 0x5f, 0x75, 0x73, 0x65, 0x72, 0x18, 0x96, 0xf0, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, + 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x53, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x0b, 0x6d, 0x61, + 0x6e, 0x61, 0x67, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x12, 0x71, 0x0a, 0x1b, 0x6d, 0x61, 0x6e, + 0x61, 0x67, 0x65, 0x64, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, + 0x5f, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x18, 0xaa, 0xaa, 0x0c, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x2a, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x4d, 0x61, 0x6e, 0x61, 0x67, + 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x53, 0x65, 0x74, 0x74, + 0x69, 0x6e, 0x67, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x42, 0x02, 0x18, 0x01, + 0x48, 0x00, 0x52, 0x18, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x53, + 0x68, 0x61, 0x72, 0x65, 0x64, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x55, 0x0a, 0x16, + 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x61, 0x6c, 0x6c, + 0x6f, 0x77, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x8c, 0xd7, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, + 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x53, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x14, 0x6d, + 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x6c, + 0x69, 0x73, 0x74, 0x42, 0x13, 0x0a, 0x11, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, + 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x4a, 0x08, 0x08, 0xbf, 0xa8, 0x0d, 0x10, 0xc0, + 0xa8, 0x0d, 0x4a, 0x08, 0x08, 0x8f, 0xd4, 0x0d, 0x10, 0x90, 0xd4, 0x0d, 0x4a, 0x08, 0x08, 0xed, + 0xa1, 0x21, 0x10, 0xee, 0xa1, 0x21, 0x52, 0x0f, 0x77, 0x69, 0x66, 0x69, 0x5f, 0x63, 0x72, 0x65, + 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x52, 0x07, 0x61, 0x72, 0x74, 0x69, 0x63, 0x6c, 0x65, + 0x52, 0x0e, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x65, + 0x22, 0x10, 0x0a, 0x0e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x63, 0x73, 0x42, 0x36, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, + 0x75, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x73, 0x79, + 0x6e, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x03, 0x50, 0x01, 0x5a, + 0x09, 0x2e, 0x2f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, } var ( @@ -1158,55 +1333,60 @@ func file_entity_specifics_proto_rawDescGZIP() []byte { var file_entity_specifics_proto_msgTypes = make([]protoimpl.MessageInfo, 2) var file_entity_specifics_proto_goTypes = []interface{}{ - (*EntitySpecifics)(nil), // 0: sync_pb.EntitySpecifics - (*EmptySpecifics)(nil), // 1: sync_pb.EmptySpecifics - (*EncryptedData)(nil), // 2: sync_pb.EncryptedData - (*AutofillSpecifics)(nil), // 3: sync_pb.AutofillSpecifics - (*BookmarkSpecifics)(nil), // 4: sync_pb.BookmarkSpecifics - (*PreferenceSpecifics)(nil), // 5: sync_pb.PreferenceSpecifics - (*TypedUrlSpecifics)(nil), // 6: sync_pb.TypedUrlSpecifics - (*ThemeSpecifics)(nil), // 7: sync_pb.ThemeSpecifics - (*AppNotification)(nil), // 8: sync_pb.AppNotification - (*PasswordSpecifics)(nil), // 9: sync_pb.PasswordSpecifics - (*NigoriSpecifics)(nil), // 10: sync_pb.NigoriSpecifics - (*ExtensionSpecifics)(nil), // 11: sync_pb.ExtensionSpecifics - (*AppSpecifics)(nil), // 12: sync_pb.AppSpecifics - (*SessionSpecifics)(nil), // 13: sync_pb.SessionSpecifics - (*AutofillProfileSpecifics)(nil), // 14: sync_pb.AutofillProfileSpecifics - (*SearchEngineSpecifics)(nil), // 15: sync_pb.SearchEngineSpecifics - (*ExtensionSettingSpecifics)(nil), // 16: sync_pb.ExtensionSettingSpecifics - (*AppSettingSpecifics)(nil), // 17: sync_pb.AppSettingSpecifics - (*HistoryDeleteDirectiveSpecifics)(nil), // 18: sync_pb.HistoryDeleteDirectiveSpecifics - (*SyncedNotificationSpecifics)(nil), // 19: sync_pb.SyncedNotificationSpecifics - (*SyncedNotificationAppInfoSpecifics)(nil), // 20: sync_pb.SyncedNotificationAppInfoSpecifics - (*DeviceInfoSpecifics)(nil), // 21: sync_pb.DeviceInfoSpecifics - (*ExperimentsSpecifics)(nil), // 22: sync_pb.ExperimentsSpecifics - (*PriorityPreferenceSpecifics)(nil), // 23: sync_pb.PriorityPreferenceSpecifics - (*DictionarySpecifics)(nil), // 24: sync_pb.DictionarySpecifics - (*FaviconTrackingSpecifics)(nil), // 25: sync_pb.FaviconTrackingSpecifics - (*FaviconImageSpecifics)(nil), // 26: sync_pb.FaviconImageSpecifics - (*ManagedUserSettingSpecifics)(nil), // 27: sync_pb.ManagedUserSettingSpecifics - (*ManagedUserSpecifics)(nil), // 28: sync_pb.ManagedUserSpecifics - (*ManagedUserSharedSettingSpecifics)(nil), // 29: sync_pb.ManagedUserSharedSettingSpecifics - (*AppListSpecifics)(nil), // 30: sync_pb.AppListSpecifics - (*AutofillWalletSpecifics)(nil), // 31: sync_pb.AutofillWalletSpecifics - (*WalletMetadataSpecifics)(nil), // 32: sync_pb.WalletMetadataSpecifics - (*ArcPackageSpecifics)(nil), // 33: sync_pb.ArcPackageSpecifics - (*PrinterSpecifics)(nil), // 34: sync_pb.PrinterSpecifics - (*ReadingListSpecifics)(nil), // 35: sync_pb.ReadingListSpecifics - (*UserEventSpecifics)(nil), // 36: sync_pb.UserEventSpecifics - (*UserConsentSpecifics)(nil), // 37: sync_pb.UserConsentSpecifics - (*SendTabToSelfSpecifics)(nil), // 38: sync_pb.SendTabToSelfSpecifics - (*SecurityEventSpecifics)(nil), // 39: sync_pb.SecurityEventSpecifics - (*WebAppSpecifics)(nil), // 40: sync_pb.WebAppSpecifics - (*WifiConfigurationSpecifics)(nil), // 41: sync_pb.WifiConfigurationSpecifics - (*OsPreferenceSpecifics)(nil), // 42: sync_pb.OsPreferenceSpecifics - (*OsPriorityPreferenceSpecifics)(nil), // 43: sync_pb.OsPriorityPreferenceSpecifics - (*SharingMessageSpecifics)(nil), // 44: sync_pb.SharingMessageSpecifics - (*AutofillOfferSpecifics)(nil), // 45: sync_pb.AutofillOfferSpecifics - (*WorkspaceDeskSpecifics)(nil), // 46: sync_pb.WorkspaceDeskSpecifics - (*WebauthnCredentialSpecifics)(nil), // 47: sync_pb.WebauthnCredentialSpecifics - (*HistorySpecifics)(nil), // 48: sync_pb.HistorySpecifics + (*EntitySpecifics)(nil), // 0: sync_pb.EntitySpecifics + (*EmptySpecifics)(nil), // 1: sync_pb.EmptySpecifics + (*EncryptedData)(nil), // 2: sync_pb.EncryptedData + (*AutofillSpecifics)(nil), // 3: sync_pb.AutofillSpecifics + (*BookmarkSpecifics)(nil), // 4: sync_pb.BookmarkSpecifics + (*PreferenceSpecifics)(nil), // 5: sync_pb.PreferenceSpecifics + (*TypedUrlSpecifics)(nil), // 6: sync_pb.TypedUrlSpecifics + (*ThemeSpecifics)(nil), // 7: sync_pb.ThemeSpecifics + (*PasswordSpecifics)(nil), // 8: sync_pb.PasswordSpecifics + (*NigoriSpecifics)(nil), // 9: sync_pb.NigoriSpecifics + (*ExtensionSpecifics)(nil), // 10: sync_pb.ExtensionSpecifics + (*AppSpecifics)(nil), // 11: sync_pb.AppSpecifics + (*SessionSpecifics)(nil), // 12: sync_pb.SessionSpecifics + (*AutofillProfileSpecifics)(nil), // 13: sync_pb.AutofillProfileSpecifics + (*SearchEngineSpecifics)(nil), // 14: sync_pb.SearchEngineSpecifics + (*ExtensionSettingSpecifics)(nil), // 15: sync_pb.ExtensionSettingSpecifics + (*AppSettingSpecifics)(nil), // 16: sync_pb.AppSettingSpecifics + (*HistoryDeleteDirectiveSpecifics)(nil), // 17: sync_pb.HistoryDeleteDirectiveSpecifics + (*DeviceInfoSpecifics)(nil), // 18: sync_pb.DeviceInfoSpecifics + (*PriorityPreferenceSpecifics)(nil), // 19: sync_pb.PriorityPreferenceSpecifics + (*DictionarySpecifics)(nil), // 20: sync_pb.DictionarySpecifics + (*ManagedUserSettingSpecifics)(nil), // 21: sync_pb.ManagedUserSettingSpecifics + (*AppListSpecifics)(nil), // 22: sync_pb.AppListSpecifics + (*AutofillWalletSpecifics)(nil), // 23: sync_pb.AutofillWalletSpecifics + (*WalletMetadataSpecifics)(nil), // 24: sync_pb.WalletMetadataSpecifics + (*ArcPackageSpecifics)(nil), // 25: sync_pb.ArcPackageSpecifics + (*PrinterSpecifics)(nil), // 26: sync_pb.PrinterSpecifics + (*ReadingListSpecifics)(nil), // 27: sync_pb.ReadingListSpecifics + (*UserEventSpecifics)(nil), // 28: sync_pb.UserEventSpecifics + (*UserConsentSpecifics)(nil), // 29: sync_pb.UserConsentSpecifics + (*SendTabToSelfSpecifics)(nil), // 30: sync_pb.SendTabToSelfSpecifics + (*SecurityEventSpecifics)(nil), // 31: sync_pb.SecurityEventSpecifics + (*WebApkSpecifics)(nil), // 32: sync_pb.WebApkSpecifics + (*WebAppSpecifics)(nil), // 33: sync_pb.WebAppSpecifics + (*WifiConfigurationSpecifics)(nil), // 34: sync_pb.WifiConfigurationSpecifics + (*OsPreferenceSpecifics)(nil), // 35: sync_pb.OsPreferenceSpecifics + (*OsPriorityPreferenceSpecifics)(nil), // 36: sync_pb.OsPriorityPreferenceSpecifics + (*SharingMessageSpecifics)(nil), // 37: sync_pb.SharingMessageSpecifics + (*AutofillOfferSpecifics)(nil), // 38: sync_pb.AutofillOfferSpecifics + (*WorkspaceDeskSpecifics)(nil), // 39: sync_pb.WorkspaceDeskSpecifics + (*WebauthnCredentialSpecifics)(nil), // 40: sync_pb.WebauthnCredentialSpecifics + (*HistorySpecifics)(nil), // 41: sync_pb.HistorySpecifics + (*PrintersAuthorizationServerSpecifics)(nil), // 42: sync_pb.PrintersAuthorizationServerSpecifics + (*SavedTabGroupSpecifics)(nil), // 43: sync_pb.SavedTabGroupSpecifics + (*AutofillWalletUsageSpecifics)(nil), // 44: sync_pb.AutofillWalletUsageSpecifics + (*ContactInfoSpecifics)(nil), // 45: sync_pb.ContactInfoSpecifics + (*SegmentationSpecifics)(nil), // 46: sync_pb.SegmentationSpecifics + (*PowerBookmarkSpecifics)(nil), // 47: sync_pb.PowerBookmarkSpecifics + (*IncomingPasswordSharingInvitationSpecifics)(nil), // 48: sync_pb.IncomingPasswordSharingInvitationSpecifics + (*OutgoingPasswordSharingInvitationSpecifics)(nil), // 49: sync_pb.OutgoingPasswordSharingInvitationSpecifics + (*ExperimentsSpecifics)(nil), // 50: sync_pb.ExperimentsSpecifics + (*FaviconTrackingSpecifics)(nil), // 51: sync_pb.FaviconTrackingSpecifics + (*FaviconImageSpecifics)(nil), // 52: sync_pb.FaviconImageSpecifics + (*ManagedUserSharedSettingSpecifics)(nil), // 53: sync_pb.ManagedUserSharedSettingSpecifics } var file_entity_specifics_proto_depIdxs = []int32{ 2, // 0: sync_pb.EntitySpecifics.encrypted:type_name -> sync_pb.EncryptedData @@ -1215,53 +1395,62 @@ var file_entity_specifics_proto_depIdxs = []int32{ 5, // 3: sync_pb.EntitySpecifics.preference:type_name -> sync_pb.PreferenceSpecifics 6, // 4: sync_pb.EntitySpecifics.typed_url:type_name -> sync_pb.TypedUrlSpecifics 7, // 5: sync_pb.EntitySpecifics.theme:type_name -> sync_pb.ThemeSpecifics - 8, // 6: sync_pb.EntitySpecifics.app_notification:type_name -> sync_pb.AppNotification - 9, // 7: sync_pb.EntitySpecifics.password:type_name -> sync_pb.PasswordSpecifics - 10, // 8: sync_pb.EntitySpecifics.nigori:type_name -> sync_pb.NigoriSpecifics - 11, // 9: sync_pb.EntitySpecifics.extension:type_name -> sync_pb.ExtensionSpecifics - 12, // 10: sync_pb.EntitySpecifics.app:type_name -> sync_pb.AppSpecifics - 13, // 11: sync_pb.EntitySpecifics.session:type_name -> sync_pb.SessionSpecifics - 14, // 12: sync_pb.EntitySpecifics.autofill_profile:type_name -> sync_pb.AutofillProfileSpecifics - 15, // 13: sync_pb.EntitySpecifics.search_engine:type_name -> sync_pb.SearchEngineSpecifics - 16, // 14: sync_pb.EntitySpecifics.extension_setting:type_name -> sync_pb.ExtensionSettingSpecifics - 17, // 15: sync_pb.EntitySpecifics.app_setting:type_name -> sync_pb.AppSettingSpecifics - 18, // 16: sync_pb.EntitySpecifics.history_delete_directive:type_name -> sync_pb.HistoryDeleteDirectiveSpecifics - 19, // 17: sync_pb.EntitySpecifics.synced_notification:type_name -> sync_pb.SyncedNotificationSpecifics - 20, // 18: sync_pb.EntitySpecifics.synced_notification_app_info:type_name -> sync_pb.SyncedNotificationAppInfoSpecifics - 21, // 19: sync_pb.EntitySpecifics.device_info:type_name -> sync_pb.DeviceInfoSpecifics - 22, // 20: sync_pb.EntitySpecifics.experiments:type_name -> sync_pb.ExperimentsSpecifics - 23, // 21: sync_pb.EntitySpecifics.priority_preference:type_name -> sync_pb.PriorityPreferenceSpecifics - 24, // 22: sync_pb.EntitySpecifics.dictionary:type_name -> sync_pb.DictionarySpecifics - 25, // 23: sync_pb.EntitySpecifics.favicon_tracking:type_name -> sync_pb.FaviconTrackingSpecifics - 26, // 24: sync_pb.EntitySpecifics.favicon_image:type_name -> sync_pb.FaviconImageSpecifics - 27, // 25: sync_pb.EntitySpecifics.managed_user_setting:type_name -> sync_pb.ManagedUserSettingSpecifics - 28, // 26: sync_pb.EntitySpecifics.managed_user:type_name -> sync_pb.ManagedUserSpecifics - 29, // 27: sync_pb.EntitySpecifics.managed_user_shared_setting:type_name -> sync_pb.ManagedUserSharedSettingSpecifics - 30, // 28: sync_pb.EntitySpecifics.app_list:type_name -> sync_pb.AppListSpecifics - 1, // 29: sync_pb.EntitySpecifics.managed_user_allowlist:type_name -> sync_pb.EmptySpecifics - 31, // 30: sync_pb.EntitySpecifics.autofill_wallet:type_name -> sync_pb.AutofillWalletSpecifics - 32, // 31: sync_pb.EntitySpecifics.wallet_metadata:type_name -> sync_pb.WalletMetadataSpecifics - 33, // 32: sync_pb.EntitySpecifics.arc_package:type_name -> sync_pb.ArcPackageSpecifics - 34, // 33: sync_pb.EntitySpecifics.printer:type_name -> sync_pb.PrinterSpecifics - 35, // 34: sync_pb.EntitySpecifics.reading_list:type_name -> sync_pb.ReadingListSpecifics - 36, // 35: sync_pb.EntitySpecifics.user_event:type_name -> sync_pb.UserEventSpecifics - 37, // 36: sync_pb.EntitySpecifics.user_consent:type_name -> sync_pb.UserConsentSpecifics - 38, // 37: sync_pb.EntitySpecifics.send_tab_to_self:type_name -> sync_pb.SendTabToSelfSpecifics - 39, // 38: sync_pb.EntitySpecifics.security_event:type_name -> sync_pb.SecurityEventSpecifics - 40, // 39: sync_pb.EntitySpecifics.web_app:type_name -> sync_pb.WebAppSpecifics - 41, // 40: sync_pb.EntitySpecifics.wifi_configuration:type_name -> sync_pb.WifiConfigurationSpecifics - 42, // 41: sync_pb.EntitySpecifics.os_preference:type_name -> sync_pb.OsPreferenceSpecifics - 43, // 42: sync_pb.EntitySpecifics.os_priority_preference:type_name -> sync_pb.OsPriorityPreferenceSpecifics - 44, // 43: sync_pb.EntitySpecifics.sharing_message:type_name -> sync_pb.SharingMessageSpecifics - 45, // 44: sync_pb.EntitySpecifics.autofill_offer:type_name -> sync_pb.AutofillOfferSpecifics - 46, // 45: sync_pb.EntitySpecifics.workspace_desk:type_name -> sync_pb.WorkspaceDeskSpecifics - 47, // 46: sync_pb.EntitySpecifics.webauthn_credential:type_name -> sync_pb.WebauthnCredentialSpecifics - 48, // 47: sync_pb.EntitySpecifics.history:type_name -> sync_pb.HistorySpecifics - 48, // [48:48] is the sub-list for method output_type - 48, // [48:48] is the sub-list for method input_type - 48, // [48:48] is the sub-list for extension type_name - 48, // [48:48] is the sub-list for extension extendee - 0, // [0:48] is the sub-list for field type_name + 8, // 6: sync_pb.EntitySpecifics.password:type_name -> sync_pb.PasswordSpecifics + 9, // 7: sync_pb.EntitySpecifics.nigori:type_name -> sync_pb.NigoriSpecifics + 10, // 8: sync_pb.EntitySpecifics.extension:type_name -> sync_pb.ExtensionSpecifics + 11, // 9: sync_pb.EntitySpecifics.app:type_name -> sync_pb.AppSpecifics + 12, // 10: sync_pb.EntitySpecifics.session:type_name -> sync_pb.SessionSpecifics + 13, // 11: sync_pb.EntitySpecifics.autofill_profile:type_name -> sync_pb.AutofillProfileSpecifics + 14, // 12: sync_pb.EntitySpecifics.search_engine:type_name -> sync_pb.SearchEngineSpecifics + 15, // 13: sync_pb.EntitySpecifics.extension_setting:type_name -> sync_pb.ExtensionSettingSpecifics + 16, // 14: sync_pb.EntitySpecifics.app_setting:type_name -> sync_pb.AppSettingSpecifics + 17, // 15: sync_pb.EntitySpecifics.history_delete_directive:type_name -> sync_pb.HistoryDeleteDirectiveSpecifics + 18, // 16: sync_pb.EntitySpecifics.device_info:type_name -> sync_pb.DeviceInfoSpecifics + 19, // 17: sync_pb.EntitySpecifics.priority_preference:type_name -> sync_pb.PriorityPreferenceSpecifics + 20, // 18: sync_pb.EntitySpecifics.dictionary:type_name -> sync_pb.DictionarySpecifics + 21, // 19: sync_pb.EntitySpecifics.managed_user_setting:type_name -> sync_pb.ManagedUserSettingSpecifics + 22, // 20: sync_pb.EntitySpecifics.app_list:type_name -> sync_pb.AppListSpecifics + 23, // 21: sync_pb.EntitySpecifics.autofill_wallet:type_name -> sync_pb.AutofillWalletSpecifics + 24, // 22: sync_pb.EntitySpecifics.wallet_metadata:type_name -> sync_pb.WalletMetadataSpecifics + 25, // 23: sync_pb.EntitySpecifics.arc_package:type_name -> sync_pb.ArcPackageSpecifics + 26, // 24: sync_pb.EntitySpecifics.printer:type_name -> sync_pb.PrinterSpecifics + 27, // 25: sync_pb.EntitySpecifics.reading_list:type_name -> sync_pb.ReadingListSpecifics + 28, // 26: sync_pb.EntitySpecifics.user_event:type_name -> sync_pb.UserEventSpecifics + 29, // 27: sync_pb.EntitySpecifics.user_consent:type_name -> sync_pb.UserConsentSpecifics + 30, // 28: sync_pb.EntitySpecifics.send_tab_to_self:type_name -> sync_pb.SendTabToSelfSpecifics + 31, // 29: sync_pb.EntitySpecifics.security_event:type_name -> sync_pb.SecurityEventSpecifics + 32, // 30: sync_pb.EntitySpecifics.web_apk:type_name -> sync_pb.WebApkSpecifics + 33, // 31: sync_pb.EntitySpecifics.web_app:type_name -> sync_pb.WebAppSpecifics + 34, // 32: sync_pb.EntitySpecifics.wifi_configuration:type_name -> sync_pb.WifiConfigurationSpecifics + 35, // 33: sync_pb.EntitySpecifics.os_preference:type_name -> sync_pb.OsPreferenceSpecifics + 36, // 34: sync_pb.EntitySpecifics.os_priority_preference:type_name -> sync_pb.OsPriorityPreferenceSpecifics + 37, // 35: sync_pb.EntitySpecifics.sharing_message:type_name -> sync_pb.SharingMessageSpecifics + 38, // 36: sync_pb.EntitySpecifics.autofill_offer:type_name -> sync_pb.AutofillOfferSpecifics + 39, // 37: sync_pb.EntitySpecifics.workspace_desk:type_name -> sync_pb.WorkspaceDeskSpecifics + 40, // 38: sync_pb.EntitySpecifics.webauthn_credential:type_name -> sync_pb.WebauthnCredentialSpecifics + 41, // 39: sync_pb.EntitySpecifics.history:type_name -> sync_pb.HistorySpecifics + 42, // 40: sync_pb.EntitySpecifics.printers_authorization_server:type_name -> sync_pb.PrintersAuthorizationServerSpecifics + 43, // 41: sync_pb.EntitySpecifics.saved_tab_group:type_name -> sync_pb.SavedTabGroupSpecifics + 44, // 42: sync_pb.EntitySpecifics.autofill_wallet_usage:type_name -> sync_pb.AutofillWalletUsageSpecifics + 45, // 43: sync_pb.EntitySpecifics.contact_info:type_name -> sync_pb.ContactInfoSpecifics + 46, // 44: sync_pb.EntitySpecifics.segmentation:type_name -> sync_pb.SegmentationSpecifics + 47, // 45: sync_pb.EntitySpecifics.power_bookmark:type_name -> sync_pb.PowerBookmarkSpecifics + 48, // 46: sync_pb.EntitySpecifics.incoming_password_sharing_invitation:type_name -> sync_pb.IncomingPasswordSharingInvitationSpecifics + 49, // 47: sync_pb.EntitySpecifics.outgoing_password_sharing_invitation:type_name -> sync_pb.OutgoingPasswordSharingInvitationSpecifics + 1, // 48: sync_pb.EntitySpecifics.app_notification:type_name -> sync_pb.EmptySpecifics + 1, // 49: sync_pb.EntitySpecifics.synced_notification:type_name -> sync_pb.EmptySpecifics + 1, // 50: sync_pb.EntitySpecifics.synced_notification_app_info:type_name -> sync_pb.EmptySpecifics + 50, // 51: sync_pb.EntitySpecifics.experiments:type_name -> sync_pb.ExperimentsSpecifics + 51, // 52: sync_pb.EntitySpecifics.favicon_tracking:type_name -> sync_pb.FaviconTrackingSpecifics + 52, // 53: sync_pb.EntitySpecifics.favicon_image:type_name -> sync_pb.FaviconImageSpecifics + 1, // 54: sync_pb.EntitySpecifics.managed_user:type_name -> sync_pb.EmptySpecifics + 53, // 55: sync_pb.EntitySpecifics.managed_user_shared_setting:type_name -> sync_pb.ManagedUserSharedSettingSpecifics + 1, // 56: sync_pb.EntitySpecifics.managed_user_allowlist:type_name -> sync_pb.EmptySpecifics + 57, // [57:57] is the sub-list for method output_type + 57, // [57:57] is the sub-list for method input_type + 57, // [57:57] is the sub-list for extension type_name + 57, // [57:57] is the sub-list for extension extendee + 0, // [0:57] is the sub-list for field type_name } func init() { file_entity_specifics_proto_init() } @@ -1271,13 +1460,14 @@ func file_entity_specifics_proto_init() { } file_encryption_proto_init() file_app_list_specifics_proto_init() - file_app_notification_specifics_proto_init() file_app_setting_specifics_proto_init() file_app_specifics_proto_init() file_arc_package_specifics_proto_init() file_autofill_specifics_proto_init() file_autofill_offer_specifics_proto_init() + file_autofill_wallet_usage_specifics_proto_init() file_bookmark_specifics_proto_init() + file_contact_info_specifics_proto_init() file_device_info_specifics_proto_init() file_dictionary_specifics_proto_init() file_experiments_specifics_proto_init() @@ -1289,26 +1479,29 @@ func file_entity_specifics_proto_init() { file_history_specifics_proto_init() file_managed_user_setting_specifics_proto_init() file_managed_user_shared_setting_specifics_proto_init() - file_managed_user_specifics_proto_init() file_nigori_specifics_proto_init() file_os_preference_specifics_proto_init() file_os_priority_preference_specifics_proto_init() + file_password_sharing_invitation_specifics_proto_init() file_password_specifics_proto_init() + file_power_bookmark_specifics_proto_init() file_preference_specifics_proto_init() file_printer_specifics_proto_init() + file_printers_authorization_server_specifics_proto_init() file_priority_preference_specifics_proto_init() file_reading_list_specifics_proto_init() + file_saved_tab_group_specifics_proto_init() file_search_engine_specifics_proto_init() file_security_event_specifics_proto_init() file_send_tab_to_self_specifics_proto_init() + file_segmentation_specifics_proto_init() file_session_specifics_proto_init() file_sharing_message_specifics_proto_init() - file_synced_notification_app_info_specifics_proto_init() - file_synced_notification_specifics_proto_init() file_theme_specifics_proto_init() file_typed_url_specifics_proto_init() file_user_consent_specifics_proto_init() file_user_event_specifics_proto_init() + file_web_apk_specifics_proto_init() file_web_app_specifics_proto_init() file_webauthn_credential_specifics_proto_init() file_wifi_configuration_specifics_proto_init() @@ -1345,7 +1538,6 @@ func file_entity_specifics_proto_init() { (*EntitySpecifics_Preference)(nil), (*EntitySpecifics_TypedUrl)(nil), (*EntitySpecifics_Theme)(nil), - (*EntitySpecifics_AppNotification)(nil), (*EntitySpecifics_Password)(nil), (*EntitySpecifics_Nigori)(nil), (*EntitySpecifics_Extension)(nil), @@ -1356,19 +1548,11 @@ func file_entity_specifics_proto_init() { (*EntitySpecifics_ExtensionSetting)(nil), (*EntitySpecifics_AppSetting)(nil), (*EntitySpecifics_HistoryDeleteDirective)(nil), - (*EntitySpecifics_SyncedNotification)(nil), - (*EntitySpecifics_SyncedNotificationAppInfo)(nil), (*EntitySpecifics_DeviceInfo)(nil), - (*EntitySpecifics_Experiments)(nil), (*EntitySpecifics_PriorityPreference)(nil), (*EntitySpecifics_Dictionary)(nil), - (*EntitySpecifics_FaviconTracking)(nil), - (*EntitySpecifics_FaviconImage)(nil), (*EntitySpecifics_ManagedUserSetting)(nil), - (*EntitySpecifics_ManagedUser)(nil), - (*EntitySpecifics_ManagedUserSharedSetting)(nil), (*EntitySpecifics_AppList)(nil), - (*EntitySpecifics_ManagedUserAllowlist)(nil), (*EntitySpecifics_AutofillWallet)(nil), (*EntitySpecifics_WalletMetadata)(nil), (*EntitySpecifics_ArcPackage)(nil), @@ -1378,6 +1562,7 @@ func file_entity_specifics_proto_init() { (*EntitySpecifics_UserConsent)(nil), (*EntitySpecifics_SendTabToSelf)(nil), (*EntitySpecifics_SecurityEvent)(nil), + (*EntitySpecifics_WebApk)(nil), (*EntitySpecifics_WebApp)(nil), (*EntitySpecifics_WifiConfiguration)(nil), (*EntitySpecifics_OsPreference)(nil), @@ -1387,6 +1572,23 @@ func file_entity_specifics_proto_init() { (*EntitySpecifics_WorkspaceDesk)(nil), (*EntitySpecifics_WebauthnCredential)(nil), (*EntitySpecifics_History)(nil), + (*EntitySpecifics_PrintersAuthorizationServer)(nil), + (*EntitySpecifics_SavedTabGroup)(nil), + (*EntitySpecifics_AutofillWalletUsage)(nil), + (*EntitySpecifics_ContactInfo)(nil), + (*EntitySpecifics_Segmentation)(nil), + (*EntitySpecifics_PowerBookmark)(nil), + (*EntitySpecifics_IncomingPasswordSharingInvitation)(nil), + (*EntitySpecifics_OutgoingPasswordSharingInvitation)(nil), + (*EntitySpecifics_AppNotification)(nil), + (*EntitySpecifics_SyncedNotification)(nil), + (*EntitySpecifics_SyncedNotificationAppInfo)(nil), + (*EntitySpecifics_Experiments)(nil), + (*EntitySpecifics_FaviconTracking)(nil), + (*EntitySpecifics_FaviconImage)(nil), + (*EntitySpecifics_ManagedUser)(nil), + (*EntitySpecifics_ManagedUserSharedSetting)(nil), + (*EntitySpecifics_ManagedUserAllowlist)(nil), } type x struct{} out := protoimpl.TypeBuilder{ diff --git a/schema/protobuf/sync_pb/entity_specifics.proto b/schema/protobuf/sync_pb/entity_specifics.proto index 5c680136..d7edf28a 100644 --- a/schema/protobuf/sync_pb/entity_specifics.proto +++ b/schema/protobuf/sync_pb/entity_specifics.proto @@ -1,9 +1,11 @@ -// Copyright 2021 The Chromium Authors. All rights reserved. +// Copyright 2021 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. syntax = "proto2"; +option go_package = "./sync_pb"; + option java_multiple_files = true; option java_package = "org.chromium.components.sync.protocol"; @@ -13,13 +15,14 @@ package sync_pb; import "encryption.proto"; import "app_list_specifics.proto"; -import "app_notification_specifics.proto"; import "app_setting_specifics.proto"; import "app_specifics.proto"; import "arc_package_specifics.proto"; import "autofill_specifics.proto"; import "autofill_offer_specifics.proto"; +import "autofill_wallet_usage_specifics.proto"; import "bookmark_specifics.proto"; +import "contact_info_specifics.proto"; import "device_info_specifics.proto"; import "dictionary_specifics.proto"; import "experiments_specifics.proto"; @@ -31,26 +34,29 @@ import "history_delete_directive_specifics.proto"; import "history_specifics.proto"; import "managed_user_setting_specifics.proto"; import "managed_user_shared_setting_specifics.proto"; -import "managed_user_specifics.proto"; import "nigori_specifics.proto"; import "os_preference_specifics.proto"; import "os_priority_preference_specifics.proto"; +import "password_sharing_invitation_specifics.proto"; import "password_specifics.proto"; +import "power_bookmark_specifics.proto"; import "preference_specifics.proto"; import "printer_specifics.proto"; +import "printers_authorization_server_specifics.proto"; import "priority_preference_specifics.proto"; import "reading_list_specifics.proto"; +import "saved_tab_group_specifics.proto"; import "search_engine_specifics.proto"; import "security_event_specifics.proto"; import "send_tab_to_self_specifics.proto"; +import "segmentation_specifics.proto"; import "session_specifics.proto"; import "sharing_message_specifics.proto"; -import "synced_notification_app_info_specifics.proto"; -import "synced_notification_specifics.proto"; import "theme_specifics.proto"; import "typed_url_specifics.proto"; import "user_consent_specifics.proto"; import "user_event_specifics.proto"; +import "web_apk_specifics.proto"; import "web_app_specifics.proto"; import "webauthn_credential_specifics.proto"; import "wifi_configuration_specifics.proto"; @@ -99,9 +105,6 @@ message EntitySpecifics { PreferenceSpecifics preference = 37702; TypedUrlSpecifics typed_url = 40781; ThemeSpecifics theme = 41210; - // TODO(crbug.com/1012648): |app_notification| isn't used by the client - // anymore, but the server still needs it for now. - AppNotification app_notification = 45184 [deprecated = true]; PasswordSpecifics password = 45873; NigoriSpecifics nigori = 47745; ExtensionSpecifics extension = 48119; @@ -112,29 +115,11 @@ message EntitySpecifics { ExtensionSettingSpecifics extension_setting = 96159; AppSettingSpecifics app_setting = 103656; HistoryDeleteDirectiveSpecifics history_delete_directive = 150251; - // TODO(crbug.com/1012648): |synced_notification| and - // |synced_notification_app_info| aren't used by the client anymore, but the - // server still needs them for now. - SyncedNotificationSpecifics synced_notification = 153108 - [deprecated = true]; - SyncedNotificationAppInfoSpecifics synced_notification_app_info = 235816 - [deprecated = true]; DeviceInfoSpecifics device_info = 154522; - // TODO(crbug.com/1009361): |experiments| isn't used by the client anymore, - // but the server still needs it for now. - ExperimentsSpecifics experiments = 161496 [deprecated = true]; PriorityPreferenceSpecifics priority_preference = 163425; DictionarySpecifics dictionary = 170540; - FaviconTrackingSpecifics favicon_tracking = 181534 [deprecated = true]; - FaviconImageSpecifics favicon_image = 182019 [deprecated = true]; ManagedUserSettingSpecifics managed_user_setting = 186662; - // TODO(tschumann): Remove once server-side dependencies are resolved. - ManagedUserSpecifics managed_user = 194582 [deprecated = true]; - // TODO(tschumann): Remove once server-side dependencies are resolved. - ManagedUserSharedSettingSpecifics managed_user_shared_setting = 202026 - [deprecated = true]; AppListSpecifics app_list = 229170; - EmptySpecifics managed_user_allowlist = 306060 [deprecated = true]; AutofillWalletSpecifics autofill_wallet = 306270; WalletMetadataSpecifics wallet_metadata = 330441; ArcPackageSpecifics arc_package = 340906; @@ -144,6 +129,7 @@ message EntitySpecifics { UserConsentSpecifics user_consent = 556014; SendTabToSelfSpecifics send_tab_to_self = 601980; SecurityEventSpecifics security_event = 600372; + WebApkSpecifics web_apk = 1117170; WebAppSpecifics web_app = 673225; WifiConfigurationSpecifics wifi_configuration = 662827; OsPreferenceSpecifics os_preference = 702141; @@ -151,10 +137,33 @@ message EntitySpecifics { SharingMessageSpecifics sharing_message = 728866; AutofillOfferSpecifics autofill_offer = 774329; WorkspaceDeskSpecifics workspace_desk = 874841; - // This is not included in model_type.h because it's currently only used by - // the server and by Play Services. (crbug.com/1223853) WebauthnCredentialSpecifics webauthn_credential = 895275; HistorySpecifics history = 963985; + PrintersAuthorizationServerSpecifics printers_authorization_server = 974304; + SavedTabGroupSpecifics saved_tab_group = 1004874; + AutofillWalletUsageSpecifics autofill_wallet_usage = 1033580; + ContactInfoSpecifics contact_info = 1034378; + SegmentationSpecifics segmentation = 1026052; + PowerBookmarkSpecifics power_bookmark = 1073150; + IncomingPasswordSharingInvitationSpecifics + incoming_password_sharing_invitation = 1141935; + OutgoingPasswordSharingInvitationSpecifics + outgoing_password_sharing_invitation = 1142081; + + // No-longer-supported data types, in various stages of removal. + // TODO(crbug.com/1395003): Eventually, these should all become "reserved" + // fields, or at least use "EmptySpecifics". But some of them are still + // needed by the server, e.g. to support older clients. + EmptySpecifics app_notification = 45184 [deprecated = true]; + EmptySpecifics synced_notification = 153108 [deprecated = true]; + EmptySpecifics synced_notification_app_info = 235816 [deprecated = true]; + ExperimentsSpecifics experiments = 161496 [deprecated = true]; + FaviconTrackingSpecifics favicon_tracking = 181534 [deprecated = true]; + FaviconImageSpecifics favicon_image = 182019 [deprecated = true]; + EmptySpecifics managed_user = 194582 [deprecated = true]; + ManagedUserSharedSettingSpecifics managed_user_shared_setting = 202026 + [deprecated = true]; + EmptySpecifics managed_user_allowlist = 306060 [deprecated = true]; } reserved 218175; reserved "wifi_credential"; diff --git a/schema/protobuf/sync_pb/experiment_status.pb.go b/schema/protobuf/sync_pb/experiment_status.pb.go index 9711ef76..72d8b1e1 100644 --- a/schema/protobuf/sync_pb/experiment_status.pb.go +++ b/schema/protobuf/sync_pb/experiment_status.pb.go @@ -1,6 +1,6 @@ -// Copyright 2014 The Chromium Authors. All rights reserved. +// Copyright 2014 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file +// found in the LICENSE file. // NOTE: This API is not used in Chromium anymore, but the server still needs to // support it for the benefit of older clients (Chrome versions up to and @@ -8,7 +8,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.0 +// protoc-gen-go v1.31.0 // protoc v3.21.1 // source: experiment_status.proto @@ -170,10 +170,11 @@ var file_experiment_status_proto_rawDesc = []byte{ 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x52, 0x0a, 0x65, - 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x2b, 0x0a, 0x25, 0x6f, 0x72, 0x67, + 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x36, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6c, 0x48, 0x03, 0x50, 0x01, + 0x6f, 0x6c, 0x48, 0x03, 0x50, 0x01, 0x5a, 0x09, 0x2e, 0x2f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, + 0x62, } var ( diff --git a/schema/protobuf/sync_pb/experiment_status.proto b/schema/protobuf/sync_pb/experiment_status.proto index ce4c6997..a1ead6b0 100644 --- a/schema/protobuf/sync_pb/experiment_status.proto +++ b/schema/protobuf/sync_pb/experiment_status.proto @@ -1,6 +1,6 @@ -// Copyright 2014 The Chromium Authors. All rights reserved. +// Copyright 2014 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file +// found in the LICENSE file. // NOTE: This API is not used in Chromium anymore, but the server still needs to // support it for the benefit of older clients (Chrome versions up to and @@ -8,6 +8,8 @@ syntax = "proto2"; +option go_package = "./sync_pb"; + option java_multiple_files = true; option java_package = "org.chromium.components.sync.protocol"; diff --git a/schema/protobuf/sync_pb/experiments_specifics.pb.go b/schema/protobuf/sync_pb/experiments_specifics.pb.go index ebcc12da..de094494 100644 --- a/schema/protobuf/sync_pb/experiments_specifics.pb.go +++ b/schema/protobuf/sync_pb/experiments_specifics.pb.go @@ -1,4 +1,4 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2012 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -11,7 +11,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.0 +// protoc-gen-go v1.31.0 // protoc v3.21.1 // source: experiments_specifics.proto @@ -689,9 +689,10 @@ var file_experiments_specifics_proto_rawDesc = []byte{ 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x53, 0x79, 0x6e, 0x63, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x52, 0x12, 0x6f, 0x62, 0x73, 0x6f, 0x6c, 0x65, 0x74, 0x65, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x53, 0x79, 0x6e, 0x63, - 0x42, 0x2b, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, + 0x42, 0x36, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x73, 0x79, 0x6e, 0x63, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x03, 0x50, 0x01, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x03, 0x50, 0x01, 0x5a, 0x09, 0x2e, + 0x2f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, } var ( diff --git a/schema/protobuf/sync_pb/experiments_specifics.proto b/schema/protobuf/sync_pb/experiments_specifics.proto index b06e4bab..3d365128 100644 --- a/schema/protobuf/sync_pb/experiments_specifics.proto +++ b/schema/protobuf/sync_pb/experiments_specifics.proto @@ -1,4 +1,4 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2012 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -11,6 +11,8 @@ syntax = "proto2"; +option go_package = "./sync_pb"; + option java_multiple_files = true; option java_package = "org.chromium.components.sync.protocol"; diff --git a/schema/protobuf/sync_pb/extension_setting_specifics.pb.go b/schema/protobuf/sync_pb/extension_setting_specifics.pb.go index 960500b0..463eff12 100644 --- a/schema/protobuf/sync_pb/extension_setting_specifics.pb.go +++ b/schema/protobuf/sync_pb/extension_setting_specifics.pb.go @@ -1,4 +1,4 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2012 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // @@ -9,7 +9,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.0 +// protoc-gen-go v1.31.0 // protoc v3.21.1 // source: extension_setting_specifics.proto @@ -108,10 +108,10 @@ var file_extension_setting_specifics_proto_rawDesc = []byte{ 0x0b, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x42, 0x2b, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, 0x72, 0x6f, + 0x61, 0x6c, 0x75, 0x65, 0x42, 0x36, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x03, 0x50, - 0x01, + 0x01, 0x5a, 0x09, 0x2e, 0x2f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, } var ( diff --git a/schema/protobuf/sync_pb/extension_setting_specifics.proto b/schema/protobuf/sync_pb/extension_setting_specifics.proto index 94e9c39b..8eb69f8a 100644 --- a/schema/protobuf/sync_pb/extension_setting_specifics.proto +++ b/schema/protobuf/sync_pb/extension_setting_specifics.proto @@ -1,4 +1,4 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2012 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // @@ -9,6 +9,8 @@ syntax = "proto2"; +option go_package = "./sync_pb"; + option java_multiple_files = true; option java_package = "org.chromium.components.sync.protocol"; diff --git a/schema/protobuf/sync_pb/extension_specifics.pb.go b/schema/protobuf/sync_pb/extension_specifics.pb.go index 3b8b71d2..f77ab88b 100644 --- a/schema/protobuf/sync_pb/extension_specifics.pb.go +++ b/schema/protobuf/sync_pb/extension_specifics.pb.go @@ -1,4 +1,4 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2012 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // @@ -9,7 +9,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.0 +// protoc-gen-go v1.31.0 // protoc v3.21.1 // source: extension_specifics.proto @@ -52,18 +52,18 @@ type ExtensionSpecifics struct { IncognitoEnabled *bool `protobuf:"varint,5,opt,name=incognito_enabled,json=incognitoEnabled" json:"incognito_enabled,omitempty"` // DEPRECATED. See https://crbug.com/1233303. // - // Deprecated: Do not use. + // Deprecated: Marked as deprecated in extension_specifics.proto. Name *string `protobuf:"bytes,6,opt,name=name" json:"name,omitempty"` // Whether this extension was installed remotely, and hasn't been approved by // a user in chrome yet. RemoteInstall *bool `protobuf:"varint,7,opt,name=remote_install,json=remoteInstall" json:"remote_install,omitempty"` // DEPRECATED. See https://crbug.com/1014183. // - // Deprecated: Do not use. + // Deprecated: Marked as deprecated in extension_specifics.proto. InstalledByCustodian *bool `protobuf:"varint,8,opt,name=installed_by_custodian,json=installedByCustodian" json:"installed_by_custodian,omitempty"` // DEPRECATED. See https://crbug.com/839681. // - // Deprecated: Do not use. + // Deprecated: Marked as deprecated in extension_specifics.proto. AllUrlsEnabled *bool `protobuf:"varint,9,opt,name=all_urls_enabled,json=allUrlsEnabled" json:"all_urls_enabled,omitempty"` // Bitmask of the set of reasons why the extension is disabled (see // extensions::disable_reason::DisableReason). Only relevant when enabled == @@ -139,7 +139,7 @@ func (x *ExtensionSpecifics) GetIncognitoEnabled() bool { return false } -// Deprecated: Do not use. +// Deprecated: Marked as deprecated in extension_specifics.proto. func (x *ExtensionSpecifics) GetName() string { if x != nil && x.Name != nil { return *x.Name @@ -154,7 +154,7 @@ func (x *ExtensionSpecifics) GetRemoteInstall() bool { return false } -// Deprecated: Do not use. +// Deprecated: Marked as deprecated in extension_specifics.proto. func (x *ExtensionSpecifics) GetInstalledByCustodian() bool { if x != nil && x.InstalledByCustodian != nil { return *x.InstalledByCustodian @@ -162,7 +162,7 @@ func (x *ExtensionSpecifics) GetInstalledByCustodian() bool { return false } -// Deprecated: Do not use. +// Deprecated: Marked as deprecated in extension_specifics.proto. func (x *ExtensionSpecifics) GetAllUrlsEnabled() bool { if x != nil && x.AllUrlsEnabled != nil { return *x.AllUrlsEnabled @@ -205,10 +205,11 @@ var file_extension_specifics_proto_rawDesc = []byte{ 0x18, 0x01, 0x52, 0x0e, 0x61, 0x6c, 0x6c, 0x55, 0x72, 0x6c, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x64, 0x69, 0x73, - 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x73, 0x42, 0x2b, 0x0a, 0x25, 0x6f, + 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x73, 0x42, 0x36, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x03, 0x50, 0x01, + 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x03, 0x50, 0x01, 0x5a, 0x09, 0x2e, 0x2f, 0x73, 0x79, 0x6e, 0x63, + 0x5f, 0x70, 0x62, } var ( diff --git a/schema/protobuf/sync_pb/extension_specifics.proto b/schema/protobuf/sync_pb/extension_specifics.proto index 4dcec59f..1fac8cee 100644 --- a/schema/protobuf/sync_pb/extension_specifics.proto +++ b/schema/protobuf/sync_pb/extension_specifics.proto @@ -1,4 +1,4 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2012 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // @@ -9,6 +9,8 @@ syntax = "proto2"; +option go_package = "./sync_pb"; + option java_multiple_files = true; option java_package = "org.chromium.components.sync.protocol"; diff --git a/schema/protobuf/sync_pb/favicon_image_specifics.pb.go b/schema/protobuf/sync_pb/favicon_image_specifics.pb.go index ea2d7fd7..72bbd22f 100644 --- a/schema/protobuf/sync_pb/favicon_image_specifics.pb.go +++ b/schema/protobuf/sync_pb/favicon_image_specifics.pb.go @@ -1,4 +1,4 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2012 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // @@ -11,7 +11,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.0 +// protoc-gen-go v1.31.0 // protoc v3.21.1 // source: favicon_image_specifics.proto @@ -212,10 +212,10 @@ var file_favicon_image_specifics_proto_rawDesc = []byte{ 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x46, 0x61, 0x76, 0x69, 0x63, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x19, 0x66, 0x61, 0x76, 0x69, 0x63, 0x6f, 0x6e, 0x54, 0x6f, 0x75, 0x63, 0x68, 0x50, 0x72, 0x65, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x73, - 0x65, 0x64, 0x36, 0x34, 0x42, 0x2b, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, 0x72, 0x6f, + 0x65, 0x64, 0x36, 0x34, 0x42, 0x36, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x03, 0x50, - 0x01, + 0x01, 0x5a, 0x09, 0x2e, 0x2f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, } var ( diff --git a/schema/protobuf/sync_pb/favicon_image_specifics.proto b/schema/protobuf/sync_pb/favicon_image_specifics.proto index cf9ab9fe..71dca908 100644 --- a/schema/protobuf/sync_pb/favicon_image_specifics.proto +++ b/schema/protobuf/sync_pb/favicon_image_specifics.proto @@ -1,4 +1,4 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2012 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // @@ -11,6 +11,8 @@ syntax = "proto2"; +option go_package = "./sync_pb"; + option java_multiple_files = true; option java_package = "org.chromium.components.sync.protocol"; diff --git a/schema/protobuf/sync_pb/favicon_tracking_specifics.pb.go b/schema/protobuf/sync_pb/favicon_tracking_specifics.pb.go index 835bf637..6408b38a 100644 --- a/schema/protobuf/sync_pb/favicon_tracking_specifics.pb.go +++ b/schema/protobuf/sync_pb/favicon_tracking_specifics.pb.go @@ -1,4 +1,4 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2012 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // @@ -11,7 +11,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.0 +// protoc-gen-go v1.31.0 // protoc v3.21.1 // source: favicon_tracking_specifics.proto @@ -114,10 +114,11 @@ var file_favicon_tracking_specifics_proto_rawDesc = []byte{ 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x6c, 0x61, 0x73, 0x74, 0x56, 0x69, 0x73, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x4d, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x73, 0x5f, 0x62, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x69, - 0x73, 0x42, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x64, 0x42, 0x2b, 0x0a, 0x25, 0x6f, + 0x73, 0x42, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x64, 0x42, 0x36, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x03, 0x50, 0x01, + 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x03, 0x50, 0x01, 0x5a, 0x09, 0x2e, 0x2f, 0x73, 0x79, 0x6e, 0x63, + 0x5f, 0x70, 0x62, } var ( diff --git a/schema/protobuf/sync_pb/favicon_tracking_specifics.proto b/schema/protobuf/sync_pb/favicon_tracking_specifics.proto index 78e0fec3..4047968f 100644 --- a/schema/protobuf/sync_pb/favicon_tracking_specifics.proto +++ b/schema/protobuf/sync_pb/favicon_tracking_specifics.proto @@ -1,4 +1,4 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2012 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // @@ -11,6 +11,8 @@ syntax = "proto2"; +option go_package = "./sync_pb"; + option java_multiple_files = true; option java_package = "org.chromium.components.sync.protocol"; diff --git a/schema/protobuf/sync_pb/gaia_password_reuse.pb.go b/schema/protobuf/sync_pb/gaia_password_reuse.pb.go index 12244dbd..6f7a39cc 100644 --- a/schema/protobuf/sync_pb/gaia_password_reuse.pb.go +++ b/schema/protobuf/sync_pb/gaia_password_reuse.pb.go @@ -1,4 +1,4 @@ -// Copyright 2019 The Chromium Authors. All rights reserved. +// Copyright 2019 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // @@ -9,7 +9,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.0 +// protoc-gen-go v1.31.0 // protoc v3.21.1 // source: gaia_password_reuse.proto @@ -389,7 +389,7 @@ type GaiaPasswordReuse struct { // Phishing or a Low-reputation site. ReuseLookup *GaiaPasswordReuse_PasswordReuseLookup `protobuf:"bytes,2,opt,name=reuse_lookup,json=reuseLookup" json:"reuse_lookup,omitempty"` DialogInteraction *GaiaPasswordReuse_PasswordReuseDialogInteraction `protobuf:"bytes,3,opt,name=dialog_interaction,json=dialogInteraction" json:"dialog_interaction,omitempty"` - // Deprecated: Do not use. + // Deprecated: Marked as deprecated in gaia_password_reuse.proto. PasswordCaptured *GaiaPasswordReuse_PasswordCaptured `protobuf:"bytes,4,opt,name=password_captured,json=passwordCaptured" json:"password_captured,omitempty"` } @@ -446,7 +446,7 @@ func (x *GaiaPasswordReuse) GetDialogInteraction() *GaiaPasswordReuse_PasswordRe return nil } -// Deprecated: Do not use. +// Deprecated: Marked as deprecated in gaia_password_reuse.proto. func (x *GaiaPasswordReuse) GetPasswordCaptured() *GaiaPasswordReuse_PasswordCaptured { if x != nil { return x.PasswordCaptured @@ -844,9 +844,10 @@ var file_gaia_password_reuse_proto_rawDesc = []byte{ 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x4c, 0x4f, 0x47, 0x47, 0x45, 0x44, 0x5f, 0x49, 0x4e, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, 0x45, 0x58, 0x50, 0x49, 0x52, 0x45, 0x44, 0x5f, 0x32, 0x38, 0x44, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x52, 0x10, - 0x02, 0x42, 0x2b, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, + 0x02, 0x42, 0x36, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x73, 0x79, 0x6e, - 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x03, 0x50, 0x01, + 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x03, 0x50, 0x01, 0x5a, 0x09, + 0x2e, 0x2f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, } var ( diff --git a/schema/protobuf/sync_pb/gaia_password_reuse.proto b/schema/protobuf/sync_pb/gaia_password_reuse.proto index 501b07a1..ab7b3e94 100644 --- a/schema/protobuf/sync_pb/gaia_password_reuse.proto +++ b/schema/protobuf/sync_pb/gaia_password_reuse.proto @@ -1,4 +1,4 @@ -// Copyright 2019 The Chromium Authors. All rights reserved. +// Copyright 2019 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // @@ -9,6 +9,8 @@ syntax = "proto2"; +option go_package = "./sync_pb"; + option java_multiple_files = true; option java_package = "org.chromium.components.sync.protocol"; diff --git a/schema/protobuf/sync_pb/get_updates_caller_info.pb.go b/schema/protobuf/sync_pb/get_updates_caller_info.pb.go index 87ee412c..a44244f4 100644 --- a/schema/protobuf/sync_pb/get_updates_caller_info.pb.go +++ b/schema/protobuf/sync_pb/get_updates_caller_info.pb.go @@ -1,4 +1,4 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2012 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -7,7 +7,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.0 +// protoc-gen-go v1.31.0 // protoc v3.21.1 // source: get_updates_caller_info.proto @@ -137,7 +137,7 @@ type GetUpdatesCallerInfo struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Deprecated: Do not use. + // Deprecated: Marked as deprecated in get_updates_caller_info.proto. Source *GetUpdatesCallerInfo_GetUpdatesSource `protobuf:"varint,1,req,name=source,enum=sync_pb.GetUpdatesCallerInfo_GetUpdatesSource" json:"source,omitempty"` // True only if notifications were enabled for this GetUpdateMessage. // TODO(crbug.com/510165): Move this bool out of GetUpdatesCallerInfo so that @@ -177,7 +177,7 @@ func (*GetUpdatesCallerInfo) Descriptor() ([]byte, []int) { return file_get_updates_caller_info_proto_rawDescGZIP(), []int{0} } -// Deprecated: Do not use. +// Deprecated: Marked as deprecated in get_updates_caller_info.proto. func (x *GetUpdatesCallerInfo) GetSource() GetUpdatesCallerInfo_GetUpdatesSource { if x != nil && x.Source != nil { return *x.Source @@ -223,9 +223,10 @@ var file_get_updates_caller_info_proto_rawDesc = []byte{ 0x12, 0x14, 0x0a, 0x10, 0x44, 0x41, 0x54, 0x41, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x45, 0x46, 0x52, 0x45, 0x53, 0x48, 0x10, 0x0b, 0x12, 0x09, 0x0a, 0x05, 0x52, 0x45, 0x54, 0x52, 0x59, 0x10, 0x0d, 0x12, 0x10, 0x0a, 0x0c, 0x50, 0x52, 0x4f, 0x47, 0x52, 0x41, 0x4d, 0x4d, 0x41, 0x54, 0x49, - 0x43, 0x10, 0x0e, 0x42, 0x2b, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, + 0x43, 0x10, 0x0e, 0x42, 0x36, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x03, 0x50, 0x01, + 0x5a, 0x09, 0x2e, 0x2f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, } var ( diff --git a/schema/protobuf/sync_pb/get_updates_caller_info.proto b/schema/protobuf/sync_pb/get_updates_caller_info.proto index 8c1fc28c..4d7314bd 100644 --- a/schema/protobuf/sync_pb/get_updates_caller_info.proto +++ b/schema/protobuf/sync_pb/get_updates_caller_info.proto @@ -1,4 +1,4 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2012 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -7,6 +7,8 @@ syntax = "proto2"; +option go_package = "./sync_pb"; + option java_multiple_files = true; option java_package = "org.chromium.components.sync.protocol"; diff --git a/schema/protobuf/sync_pb/history_delete_directive_specifics.pb.go b/schema/protobuf/sync_pb/history_delete_directive_specifics.pb.go index 2d3b215f..6de606e2 100644 --- a/schema/protobuf/sync_pb/history_delete_directive_specifics.pb.go +++ b/schema/protobuf/sync_pb/history_delete_directive_specifics.pb.go @@ -1,4 +1,4 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2012 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // @@ -9,7 +9,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.0 +// protoc-gen-go v1.31.0 // protoc v3.21.1 // source: history_delete_directive_specifics.proto @@ -317,10 +317,10 @@ var file_history_delete_directive_specifics_proto_rawDesc = []byte{ 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x22, 0x0a, 0x0d, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x75, 0x73, 0x65, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, - 0x55, 0x73, 0x65, 0x63, 0x42, 0x2b, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, 0x72, 0x6f, + 0x55, 0x73, 0x65, 0x63, 0x42, 0x36, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x03, 0x50, - 0x01, + 0x01, 0x5a, 0x09, 0x2e, 0x2f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, } var ( diff --git a/schema/protobuf/sync_pb/history_delete_directive_specifics.proto b/schema/protobuf/sync_pb/history_delete_directive_specifics.proto index 1507301e..81823fb6 100644 --- a/schema/protobuf/sync_pb/history_delete_directive_specifics.proto +++ b/schema/protobuf/sync_pb/history_delete_directive_specifics.proto @@ -1,4 +1,4 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2012 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // @@ -9,6 +9,8 @@ syntax = "proto2"; +option go_package = "./sync_pb"; + option java_multiple_files = true; option java_package = "org.chromium.components.sync.protocol"; diff --git a/schema/protobuf/sync_pb/history_specifics.pb.go b/schema/protobuf/sync_pb/history_specifics.pb.go index 8b6342ff..a49424ba 100644 --- a/schema/protobuf/sync_pb/history_specifics.pb.go +++ b/schema/protobuf/sync_pb/history_specifics.pb.go @@ -1,4 +1,4 @@ -// Copyright 2022 The Chromium Authors. All rights reserved. +// Copyright 2022 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // @@ -9,7 +9,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.0 +// protoc-gen-go v1.31.0 // protoc v3.21.1 // source: history_specifics.proto @@ -46,17 +46,62 @@ type HistorySpecifics struct { // navigated to; the last one is where they ended up. If there were no // redirects, this has only one entry. RedirectEntries []*HistorySpecifics_RedirectEntry `protobuf:"bytes,3,rep,name=redirect_entries,json=redirectEntries" json:"redirect_entries,omitempty"` + // Whether the redirect chain in this entity is the continuation of a prior + // chain, and whether a continuation of this chain exists, in other entities. + // These are effectively the inverse of the CHAIN_START/CHAIN_END page + // transition qualifiers in Chrome. They are typically both false, since the + // whole chain is included in `redirect_entries`, but in some cases (notably, + // client redirects) a redirect chain may be split up across multiple + // entities. + RedirectChainStartIncomplete *bool `protobuf:"varint,19,opt,name=redirect_chain_start_incomplete,json=redirectChainStartIncomplete" json:"redirect_chain_start_incomplete,omitempty"` + RedirectChainEndIncomplete *bool `protobuf:"varint,20,opt,name=redirect_chain_end_incomplete,json=redirectChainEndIncomplete" json:"redirect_chain_end_incomplete,omitempty"` + // If this is set to true, then the redirect chain was too long and some + // entries were trimmed from the middle, so `redirect_entries` only + // corresponds to some of the first plus some of the last entries of the + // actual redirect chain. + RedirectChainMiddleTrimmed *bool `protobuf:"varint,21,opt,name=redirect_chain_middle_trimmed,json=redirectChainMiddleTrimmed" json:"redirect_chain_middle_trimmed,omitempty"` // The PageTransition for the navigation. - PageTransition *int32 `protobuf:"varint,4,opt,name=page_transition,json=pageTransition" json:"page_transition,omitempty"` + PageTransition *HistorySpecifics_PageTransition `protobuf:"bytes,4,opt,name=page_transition,json=pageTransition" json:"page_transition,omitempty"` // The ID of the visit, on the originator client, that was a referrer for // this one, or 0 if no referrer exists. OriginatorReferringVisitId *int64 `protobuf:"varint,5,opt,name=originator_referring_visit_id,json=originatorReferringVisitId" json:"originator_referring_visit_id,omitempty"` // The ID of the visit, on the originator client, that opened this one, or 0 // if no opener exists. OriginatorOpenerVisitId *int64 `protobuf:"varint,6,opt,name=originator_opener_visit_id,json=originatorOpenerVisitId" json:"originator_opener_visit_id,omitempty"` + // The ID of the cluster that this visit belongs to on the originator client, + // or 0 if the originator client does not support setting this field or the + // visit does not belong to any cluster. + OriginatorClusterId *int64 `protobuf:"varint,22,opt,name=originator_cluster_id,json=originatorClusterId" json:"originator_cluster_id,omitempty"` // The duration of the visit, in microseconds. Zero if the visit hasn't been // finished (or the duration wasn't updated for some other reason). VisitDurationMicros *int64 `protobuf:"varint,7,opt,name=visit_duration_micros,json=visitDurationMicros" json:"visit_duration_micros,omitempty"` + // The kind of browser where this visit happened. + BrowserType *SyncEnums_BrowserType `protobuf:"varint,8,opt,name=browser_type,json=browserType,enum=sync_pb.SyncEnums_BrowserType" json:"browser_type,omitempty"` + // The SessionID of the window and tab where the visit happened. Can be used + // to link together possibly-related visits. + // Note: These are only unique per-client, so always use together with + // `originator_cache_guid`. + WindowId *int32 `protobuf:"varint,9,opt,name=window_id,json=windowId" json:"window_id,omitempty"` + TabId *int32 `protobuf:"varint,10,opt,name=tab_id,json=tabId" json:"tab_id,omitempty"` + // The ID for the task associated with this navigation, which is globally + // unique with high probability. + TaskId *int64 `protobuf:"varint,11,opt,name=task_id,json=taskId" json:"task_id,omitempty"` + // The IDs of ancestor tasks. These can be used to construct a tree of related + // visits. + RootTaskId *int64 `protobuf:"varint,12,opt,name=root_task_id,json=rootTaskId" json:"root_task_id,omitempty"` + ParentTaskId *int64 `protobuf:"varint,13,opt,name=parent_task_id,json=parentTaskId" json:"parent_task_id,omitempty"` + // The HTTP response code of the navigation. + HttpResponseCode *int32 `protobuf:"varint,14,opt,name=http_response_code,json=httpResponseCode" json:"http_response_code,omitempty"` + // The language of the content on the page, as an ISO 639 language code + // (usually two letters). May be "und" if the language couldn't be determined. + PageLanguage *string `protobuf:"bytes,15,opt,name=page_language,json=pageLanguage" json:"page_language,omitempty"` + // Whether a password field was found on the page. + PasswordState *SyncEnums_PasswordState `protobuf:"varint,16,opt,name=password_state,json=passwordState,enum=sync_pb.SyncEnums_PasswordState" json:"password_state,omitempty"` + // URL of the favicon for this page. + FaviconUrl *string `protobuf:"bytes,17,opt,name=favicon_url,json=faviconUrl" json:"favicon_url,omitempty"` + // The URL of the referrer (indicated by `originator_referring_visit_id`), if + // any. + ReferrerUrl *string `protobuf:"bytes,18,opt,name=referrer_url,json=referrerUrl" json:"referrer_url,omitempty"` } func (x *HistorySpecifics) Reset() { @@ -112,11 +157,32 @@ func (x *HistorySpecifics) GetRedirectEntries() []*HistorySpecifics_RedirectEntr return nil } -func (x *HistorySpecifics) GetPageTransition() int32 { - if x != nil && x.PageTransition != nil { - return *x.PageTransition +func (x *HistorySpecifics) GetRedirectChainStartIncomplete() bool { + if x != nil && x.RedirectChainStartIncomplete != nil { + return *x.RedirectChainStartIncomplete } - return 0 + return false +} + +func (x *HistorySpecifics) GetRedirectChainEndIncomplete() bool { + if x != nil && x.RedirectChainEndIncomplete != nil { + return *x.RedirectChainEndIncomplete + } + return false +} + +func (x *HistorySpecifics) GetRedirectChainMiddleTrimmed() bool { + if x != nil && x.RedirectChainMiddleTrimmed != nil { + return *x.RedirectChainMiddleTrimmed + } + return false +} + +func (x *HistorySpecifics) GetPageTransition() *HistorySpecifics_PageTransition { + if x != nil { + return x.PageTransition + } + return nil } func (x *HistorySpecifics) GetOriginatorReferringVisitId() int64 { @@ -133,6 +199,13 @@ func (x *HistorySpecifics) GetOriginatorOpenerVisitId() int64 { return 0 } +func (x *HistorySpecifics) GetOriginatorClusterId() int64 { + if x != nil && x.OriginatorClusterId != nil { + return *x.OriginatorClusterId + } + return 0 +} + func (x *HistorySpecifics) GetVisitDurationMicros() int64 { if x != nil && x.VisitDurationMicros != nil { return *x.VisitDurationMicros @@ -140,6 +213,83 @@ func (x *HistorySpecifics) GetVisitDurationMicros() int64 { return 0 } +func (x *HistorySpecifics) GetBrowserType() SyncEnums_BrowserType { + if x != nil && x.BrowserType != nil { + return *x.BrowserType + } + return SyncEnums_BROWSER_TYPE_UNKNOWN +} + +func (x *HistorySpecifics) GetWindowId() int32 { + if x != nil && x.WindowId != nil { + return *x.WindowId + } + return 0 +} + +func (x *HistorySpecifics) GetTabId() int32 { + if x != nil && x.TabId != nil { + return *x.TabId + } + return 0 +} + +func (x *HistorySpecifics) GetTaskId() int64 { + if x != nil && x.TaskId != nil { + return *x.TaskId + } + return 0 +} + +func (x *HistorySpecifics) GetRootTaskId() int64 { + if x != nil && x.RootTaskId != nil { + return *x.RootTaskId + } + return 0 +} + +func (x *HistorySpecifics) GetParentTaskId() int64 { + if x != nil && x.ParentTaskId != nil { + return *x.ParentTaskId + } + return 0 +} + +func (x *HistorySpecifics) GetHttpResponseCode() int32 { + if x != nil && x.HttpResponseCode != nil { + return *x.HttpResponseCode + } + return 0 +} + +func (x *HistorySpecifics) GetPageLanguage() string { + if x != nil && x.PageLanguage != nil { + return *x.PageLanguage + } + return "" +} + +func (x *HistorySpecifics) GetPasswordState() SyncEnums_PasswordState { + if x != nil && x.PasswordState != nil { + return *x.PasswordState + } + return SyncEnums_PASSWORD_STATE_UNKNOWN +} + +func (x *HistorySpecifics) GetFaviconUrl() string { + if x != nil && x.FaviconUrl != nil { + return *x.FaviconUrl + } + return "" +} + +func (x *HistorySpecifics) GetReferrerUrl() string { + if x != nil && x.ReferrerUrl != nil { + return *x.ReferrerUrl + } + return "" +} + type HistorySpecifics_RedirectEntry struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -153,6 +303,8 @@ type HistorySpecifics_RedirectEntry struct { Title *string `protobuf:"bytes,3,opt,name=title" json:"title,omitempty"` // True if the URL should NOT be used for auto-complete. Hidden *bool `protobuf:"varint,4,opt,name=hidden" json:"hidden,omitempty"` + // The redirect type (if any). + RedirectType *SyncEnums_PageTransitionRedirectType `protobuf:"varint,5,opt,name=redirect_type,json=redirectType,enum=sync_pb.SyncEnums_PageTransitionRedirectType" json:"redirect_type,omitempty"` } func (x *HistorySpecifics_RedirectEntry) Reset() { @@ -215,50 +367,215 @@ func (x *HistorySpecifics_RedirectEntry) GetHidden() bool { return false } +func (x *HistorySpecifics_RedirectEntry) GetRedirectType() SyncEnums_PageTransitionRedirectType { + if x != nil && x.RedirectType != nil { + return *x.RedirectType + } + return SyncEnums_CLIENT_REDIRECT +} + +type HistorySpecifics_PageTransition struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The core transition type. + CoreTransition *SyncEnums_PageTransition `protobuf:"varint,1,opt,name=core_transition,json=coreTransition,enum=sync_pb.SyncEnums_PageTransition,def=0" json:"core_transition,omitempty"` + // Qualifiers: + // A supervised user tried to access this URL but was blocked. + Blocked *bool `protobuf:"varint,2,opt,name=blocked" json:"blocked,omitempty"` + // User used the Forward or Back button to navigate among browsing history. + ForwardBack *bool `protobuf:"varint,3,opt,name=forward_back,json=forwardBack" json:"forward_back,omitempty"` + // User used the address bar to trigger this navigation. + FromAddressBar *bool `protobuf:"varint,4,opt,name=from_address_bar,json=fromAddressBar" json:"from_address_bar,omitempty"` + // User is navigating to the home page. + HomePage *bool `protobuf:"varint,5,opt,name=home_page,json=homePage" json:"home_page,omitempty"` +} + +// Default values for HistorySpecifics_PageTransition fields. +const ( + Default_HistorySpecifics_PageTransition_CoreTransition = SyncEnums_LINK +) + +func (x *HistorySpecifics_PageTransition) Reset() { + *x = HistorySpecifics_PageTransition{} + if protoimpl.UnsafeEnabled { + mi := &file_history_specifics_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *HistorySpecifics_PageTransition) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*HistorySpecifics_PageTransition) ProtoMessage() {} + +func (x *HistorySpecifics_PageTransition) ProtoReflect() protoreflect.Message { + mi := &file_history_specifics_proto_msgTypes[2] + 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 HistorySpecifics_PageTransition.ProtoReflect.Descriptor instead. +func (*HistorySpecifics_PageTransition) Descriptor() ([]byte, []int) { + return file_history_specifics_proto_rawDescGZIP(), []int{0, 1} +} + +func (x *HistorySpecifics_PageTransition) GetCoreTransition() SyncEnums_PageTransition { + if x != nil && x.CoreTransition != nil { + return *x.CoreTransition + } + return Default_HistorySpecifics_PageTransition_CoreTransition +} + +func (x *HistorySpecifics_PageTransition) GetBlocked() bool { + if x != nil && x.Blocked != nil { + return *x.Blocked + } + return false +} + +func (x *HistorySpecifics_PageTransition) GetForwardBack() bool { + if x != nil && x.ForwardBack != nil { + return *x.ForwardBack + } + return false +} + +func (x *HistorySpecifics_PageTransition) GetFromAddressBar() bool { + if x != nil && x.FromAddressBar != nil { + return *x.FromAddressBar + } + return false +} + +func (x *HistorySpecifics_PageTransition) GetHomePage() bool { + if x != nil && x.HomePage != nil { + return *x.HomePage + } + return false +} + var File_history_specifics_proto protoreflect.FileDescriptor var file_history_specifics_proto_rawDesc = []byte{ 0x0a, 0x17, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x07, 0x73, 0x79, 0x6e, 0x63, 0x5f, - 0x70, 0x62, 0x22, 0xbe, 0x04, 0x0a, 0x10, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x53, 0x70, - 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x12, 0x44, 0x0a, 0x1f, 0x76, 0x69, 0x73, 0x69, 0x74, - 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x5f, 0x65, 0x70, - 0x6f, 0x63, 0x68, 0x5f, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x1b, 0x76, 0x69, 0x73, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x57, 0x69, 0x6e, 0x64, 0x6f, - 0x77, 0x73, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x12, 0x32, 0x0a, - 0x15, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x63, 0x61, 0x63, 0x68, - 0x65, 0x5f, 0x67, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x6f, 0x72, - 0x69, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x43, 0x61, 0x63, 0x68, 0x65, 0x47, 0x75, 0x69, - 0x64, 0x12, 0x52, 0x0a, 0x10, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x5f, 0x65, 0x6e, - 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x73, 0x79, - 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x53, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x52, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x45, 0x6e, - 0x74, 0x72, 0x69, 0x65, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x72, - 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, - 0x70, 0x61, 0x67, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x41, - 0x0a, 0x1d, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x72, 0x65, 0x66, - 0x65, 0x72, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x69, 0x73, 0x69, 0x74, 0x5f, 0x69, 0x64, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x1a, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x6f, - 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x69, 0x73, 0x69, 0x74, 0x49, - 0x64, 0x12, 0x3b, 0x0a, 0x1a, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x5f, - 0x6f, 0x70, 0x65, 0x6e, 0x65, 0x72, 0x5f, 0x76, 0x69, 0x73, 0x69, 0x74, 0x5f, 0x69, 0x64, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x17, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x6f, - 0x72, 0x4f, 0x70, 0x65, 0x6e, 0x65, 0x72, 0x56, 0x69, 0x73, 0x69, 0x74, 0x49, 0x64, 0x12, 0x32, - 0x0a, 0x15, 0x76, 0x69, 0x73, 0x69, 0x74, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x13, 0x76, - 0x69, 0x73, 0x69, 0x74, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x69, 0x63, 0x72, - 0x6f, 0x73, 0x1a, 0x7f, 0x0a, 0x0d, 0x52, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x12, 0x2e, 0x0a, 0x13, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x6f, - 0x72, 0x5f, 0x76, 0x69, 0x73, 0x69, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x11, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x56, 0x69, 0x73, 0x69, - 0x74, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x68, - 0x69, 0x64, 0x64, 0x65, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x68, 0x69, 0x64, - 0x64, 0x65, 0x6e, 0x42, 0x2b, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, - 0x69, 0x75, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x73, - 0x79, 0x6e, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x03, 0x50, 0x01, + 0x70, 0x62, 0x1a, 0x10, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x73, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xdf, 0x0c, 0x0a, 0x10, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, + 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x12, 0x44, 0x0a, 0x1f, 0x76, 0x69, 0x73, + 0x69, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x5f, + 0x65, 0x70, 0x6f, 0x63, 0x68, 0x5f, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x1b, 0x76, 0x69, 0x73, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x57, 0x69, 0x6e, + 0x64, 0x6f, 0x77, 0x73, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x12, + 0x32, 0x0a, 0x15, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x63, 0x61, + 0x63, 0x68, 0x65, 0x5f, 0x67, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, + 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x43, 0x61, 0x63, 0x68, 0x65, 0x47, + 0x75, 0x69, 0x64, 0x12, 0x52, 0x0a, 0x10, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x5f, + 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, + 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x53, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x52, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, + 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, + 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x12, 0x45, 0x0a, 0x1f, 0x72, 0x65, 0x64, 0x69, 0x72, + 0x65, 0x63, 0x74, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, + 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x1c, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x53, + 0x74, 0x61, 0x72, 0x74, 0x49, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x41, + 0x0a, 0x1d, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, + 0x5f, 0x65, 0x6e, 0x64, 0x5f, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x18, + 0x14, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1a, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x43, + 0x68, 0x61, 0x69, 0x6e, 0x45, 0x6e, 0x64, 0x49, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, + 0x65, 0x12, 0x41, 0x0a, 0x1d, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x5f, 0x63, 0x68, + 0x61, 0x69, 0x6e, 0x5f, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x5f, 0x74, 0x72, 0x69, 0x6d, 0x6d, + 0x65, 0x64, 0x18, 0x15, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1a, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, + 0x63, 0x74, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x4d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x54, 0x72, 0x69, + 0x6d, 0x6d, 0x65, 0x64, 0x12, 0x51, 0x0a, 0x0f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, + 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x53, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x54, 0x72, 0x61, + 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0e, 0x70, 0x61, 0x67, 0x65, 0x54, 0x72, 0x61, + 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x41, 0x0a, 0x1d, 0x6f, 0x72, 0x69, 0x67, 0x69, + 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, 0x69, 0x6e, 0x67, 0x5f, + 0x76, 0x69, 0x73, 0x69, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x1a, + 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x72, + 0x69, 0x6e, 0x67, 0x56, 0x69, 0x73, 0x69, 0x74, 0x49, 0x64, 0x12, 0x3b, 0x0a, 0x1a, 0x6f, 0x72, + 0x69, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x65, 0x72, 0x5f, + 0x76, 0x69, 0x73, 0x69, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x17, + 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x4f, 0x70, 0x65, 0x6e, 0x65, 0x72, + 0x56, 0x69, 0x73, 0x69, 0x74, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x15, 0x6f, 0x72, 0x69, 0x67, 0x69, + 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, + 0x18, 0x16, 0x20, 0x01, 0x28, 0x03, 0x52, 0x13, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x74, + 0x6f, 0x72, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x15, 0x76, + 0x69, 0x73, 0x69, 0x74, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x69, + 0x63, 0x72, 0x6f, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x13, 0x76, 0x69, 0x73, 0x69, + 0x74, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x12, + 0x41, 0x0a, 0x0c, 0x62, 0x72, 0x6f, 0x77, 0x73, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, + 0x53, 0x79, 0x6e, 0x63, 0x45, 0x6e, 0x75, 0x6d, 0x73, 0x2e, 0x42, 0x72, 0x6f, 0x77, 0x73, 0x65, + 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x62, 0x72, 0x6f, 0x77, 0x73, 0x65, 0x72, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x5f, 0x69, 0x64, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x49, 0x64, 0x12, + 0x15, 0x0a, 0x06, 0x74, 0x61, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x05, 0x74, 0x61, 0x62, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, + 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, + 0x20, 0x0a, 0x0c, 0x72, 0x6f, 0x6f, 0x74, 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, + 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x72, 0x6f, 0x6f, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x49, + 0x64, 0x12, 0x24, 0x0a, 0x0e, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x61, 0x73, 0x6b, + 0x5f, 0x69, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x70, 0x61, 0x72, 0x65, 0x6e, + 0x74, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x12, 0x68, 0x74, 0x74, 0x70, 0x5f, + 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x0e, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x10, 0x68, 0x74, 0x74, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x6c, 0x61, + 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x61, + 0x67, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x12, 0x47, 0x0a, 0x0e, 0x70, 0x61, + 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x10, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x53, 0x79, 0x6e, + 0x63, 0x45, 0x6e, 0x75, 0x6d, 0x73, 0x2e, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x52, 0x0d, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x61, 0x76, 0x69, 0x63, 0x6f, 0x6e, 0x5f, 0x75, + 0x72, 0x6c, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x61, 0x76, 0x69, 0x63, 0x6f, + 0x6e, 0x55, 0x72, 0x6c, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, 0x72, + 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x66, 0x65, + 0x72, 0x72, 0x65, 0x72, 0x55, 0x72, 0x6c, 0x1a, 0xd3, 0x01, 0x0a, 0x0d, 0x52, 0x65, 0x64, 0x69, + 0x72, 0x65, 0x63, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x2e, 0x0a, 0x13, 0x6f, 0x72, 0x69, + 0x67, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x76, 0x69, 0x73, 0x69, 0x74, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x74, + 0x6f, 0x72, 0x56, 0x69, 0x73, 0x69, 0x74, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x74, + 0x69, 0x74, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, + 0x65, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x06, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x12, 0x52, 0x0a, 0x0d, 0x72, 0x65, 0x64, + 0x69, 0x72, 0x65, 0x63, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x2d, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x45, + 0x6e, 0x75, 0x6d, 0x73, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, + 0x0c, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x1a, 0xe6, 0x01, + 0x0a, 0x0e, 0x50, 0x61, 0x67, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x50, 0x0a, 0x0f, 0x63, 0x6f, 0x72, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x73, 0x79, 0x6e, 0x63, + 0x5f, 0x70, 0x62, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x45, 0x6e, 0x75, 0x6d, 0x73, 0x2e, 0x50, 0x61, + 0x67, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x04, 0x4c, 0x49, + 0x4e, 0x4b, 0x52, 0x0e, 0x63, 0x6f, 0x72, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x07, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x12, 0x21, 0x0a, 0x0c, + 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x0b, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x12, + 0x28, 0x0a, 0x10, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, + 0x62, 0x61, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x66, 0x72, 0x6f, 0x6d, 0x41, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x61, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x68, 0x6f, 0x6d, + 0x65, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x68, 0x6f, + 0x6d, 0x65, 0x50, 0x61, 0x67, 0x65, 0x42, 0x36, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, + 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, + 0x73, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, + 0x03, 0x50, 0x01, 0x5a, 0x09, 0x2e, 0x2f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, } var ( @@ -273,18 +590,28 @@ func file_history_specifics_proto_rawDescGZIP() []byte { return file_history_specifics_proto_rawDescData } -var file_history_specifics_proto_msgTypes = make([]protoimpl.MessageInfo, 2) +var file_history_specifics_proto_msgTypes = make([]protoimpl.MessageInfo, 3) var file_history_specifics_proto_goTypes = []interface{}{ - (*HistorySpecifics)(nil), // 0: sync_pb.HistorySpecifics - (*HistorySpecifics_RedirectEntry)(nil), // 1: sync_pb.HistorySpecifics.RedirectEntry + (*HistorySpecifics)(nil), // 0: sync_pb.HistorySpecifics + (*HistorySpecifics_RedirectEntry)(nil), // 1: sync_pb.HistorySpecifics.RedirectEntry + (*HistorySpecifics_PageTransition)(nil), // 2: sync_pb.HistorySpecifics.PageTransition + (SyncEnums_BrowserType)(0), // 3: sync_pb.SyncEnums.BrowserType + (SyncEnums_PasswordState)(0), // 4: sync_pb.SyncEnums.PasswordState + (SyncEnums_PageTransitionRedirectType)(0), // 5: sync_pb.SyncEnums.PageTransitionRedirectType + (SyncEnums_PageTransition)(0), // 6: sync_pb.SyncEnums.PageTransition } var file_history_specifics_proto_depIdxs = []int32{ 1, // 0: sync_pb.HistorySpecifics.redirect_entries:type_name -> sync_pb.HistorySpecifics.RedirectEntry - 1, // [1:1] is the sub-list for method output_type - 1, // [1:1] is the sub-list for method input_type - 1, // [1:1] is the sub-list for extension type_name - 1, // [1:1] is the sub-list for extension extendee - 0, // [0:1] is the sub-list for field type_name + 2, // 1: sync_pb.HistorySpecifics.page_transition:type_name -> sync_pb.HistorySpecifics.PageTransition + 3, // 2: sync_pb.HistorySpecifics.browser_type:type_name -> sync_pb.SyncEnums.BrowserType + 4, // 3: sync_pb.HistorySpecifics.password_state:type_name -> sync_pb.SyncEnums.PasswordState + 5, // 4: sync_pb.HistorySpecifics.RedirectEntry.redirect_type:type_name -> sync_pb.SyncEnums.PageTransitionRedirectType + 6, // 5: sync_pb.HistorySpecifics.PageTransition.core_transition:type_name -> sync_pb.SyncEnums.PageTransition + 6, // [6:6] is the sub-list for method output_type + 6, // [6:6] is the sub-list for method input_type + 6, // [6:6] is the sub-list for extension type_name + 6, // [6:6] is the sub-list for extension extendee + 0, // [0:6] is the sub-list for field type_name } func init() { file_history_specifics_proto_init() } @@ -292,6 +619,7 @@ func file_history_specifics_proto_init() { if File_history_specifics_proto != nil { return } + file_sync_enums_proto_init() if !protoimpl.UnsafeEnabled { file_history_specifics_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*HistorySpecifics); i { @@ -317,6 +645,18 @@ func file_history_specifics_proto_init() { return nil } } + file_history_specifics_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*HistorySpecifics_PageTransition); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ @@ -324,7 +664,7 @@ func file_history_specifics_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_history_specifics_proto_rawDesc, NumEnums: 0, - NumMessages: 2, + NumMessages: 3, NumExtensions: 0, NumServices: 0, }, diff --git a/schema/protobuf/sync_pb/history_specifics.proto b/schema/protobuf/sync_pb/history_specifics.proto index 7ae0c063..011e75ce 100644 --- a/schema/protobuf/sync_pb/history_specifics.proto +++ b/schema/protobuf/sync_pb/history_specifics.proto @@ -1,4 +1,4 @@ -// Copyright 2022 The Chromium Authors. All rights reserved. +// Copyright 2022 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // @@ -9,6 +9,8 @@ syntax = "proto2"; +option go_package = "./sync_pb"; + option java_multiple_files = true; option java_package = "org.chromium.components.sync.protocol"; @@ -16,6 +18,8 @@ option optimize_for = LITE_RUNTIME; package sync_pb; +import "sync_enums.proto"; + // A history sync entity - this roughly represents one navigation, including its // full redirect chain (but not referrals). Fields correspond to similarly named // fields in history::VisitRow and history::URLRow. @@ -36,21 +40,93 @@ message HistorySpecifics { optional string title = 3; // True if the URL should NOT be used for auto-complete. optional bool hidden = 4; + // The redirect type (if any). + optional SyncEnums.PageTransitionRedirectType redirect_type = 5; } // The redirect chain. The first entry is the URL the user originally // navigated to; the last one is where they ended up. If there were no // redirects, this has only one entry. repeated RedirectEntry redirect_entries = 3; + // Whether the redirect chain in this entity is the continuation of a prior + // chain, and whether a continuation of this chain exists, in other entities. + // These are effectively the inverse of the CHAIN_START/CHAIN_END page + // transition qualifiers in Chrome. They are typically both false, since the + // whole chain is included in `redirect_entries`, but in some cases (notably, + // client redirects) a redirect chain may be split up across multiple + // entities. + optional bool redirect_chain_start_incomplete = 19; + optional bool redirect_chain_end_incomplete = 20; + + // If this is set to true, then the redirect chain was too long and some + // entries were trimmed from the middle, so `redirect_entries` only + // corresponds to some of the first plus some of the last entries of the + // actual redirect chain. + optional bool redirect_chain_middle_trimmed = 21; + + message PageTransition { + // The core transition type. + optional SyncEnums.PageTransition core_transition = 1 [default = LINK]; + // Qualifiers: + // A supervised user tried to access this URL but was blocked. + optional bool blocked = 2; + // User used the Forward or Back button to navigate among browsing history. + optional bool forward_back = 3; + // User used the address bar to trigger this navigation. + optional bool from_address_bar = 4; + // User is navigating to the home page. + optional bool home_page = 5; + } // The PageTransition for the navigation. - optional int32 page_transition = 4; + optional PageTransition page_transition = 4; + // The ID of the visit, on the originator client, that was a referrer for // this one, or 0 if no referrer exists. optional int64 originator_referring_visit_id = 5; // The ID of the visit, on the originator client, that opened this one, or 0 // if no opener exists. optional int64 originator_opener_visit_id = 6; + // The ID of the cluster that this visit belongs to on the originator client, + // or 0 if the originator client does not support setting this field or the + // visit does not belong to any cluster. + optional int64 originator_cluster_id = 22; + // The duration of the visit, in microseconds. Zero if the visit hasn't been // finished (or the duration wasn't updated for some other reason). optional int64 visit_duration_micros = 7; + + // The kind of browser where this visit happened. + optional SyncEnums.BrowserType browser_type = 8; + + // The SessionID of the window and tab where the visit happened. Can be used + // to link together possibly-related visits. + // Note: These are only unique per-client, so always use together with + // `originator_cache_guid`. + optional int32 window_id = 9; + optional int32 tab_id = 10; + + // The ID for the task associated with this navigation, which is globally + // unique with high probability. + optional int64 task_id = 11; + // The IDs of ancestor tasks. These can be used to construct a tree of related + // visits. + optional int64 root_task_id = 12; + optional int64 parent_task_id = 13; + + // The HTTP response code of the navigation. + optional int32 http_response_code = 14; + + // The language of the content on the page, as an ISO 639 language code + // (usually two letters). May be "und" if the language couldn't be determined. + optional string page_language = 15; + + // Whether a password field was found on the page. + optional SyncEnums.PasswordState password_state = 16; + + // URL of the favicon for this page. + optional string favicon_url = 17; + + // The URL of the referrer (indicated by `originator_referring_visit_id`), if + // any. + optional string referrer_url = 18; } diff --git a/schema/protobuf/sync_pb/history_status.pb.go b/schema/protobuf/sync_pb/history_status.pb.go index 34e1f38a..49b519b8 100644 --- a/schema/protobuf/sync_pb/history_status.pb.go +++ b/schema/protobuf/sync_pb/history_status.pb.go @@ -1,10 +1,10 @@ -// Copyright 2016 The Chromium Authors. All rights reserved. +// Copyright 2016 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file +// found in the LICENSE file. // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.0 +// protoc-gen-go v1.31.0 // protoc v3.21.1 // source: history_status.proto @@ -139,10 +139,11 @@ var file_history_status_proto_rawDesc = []byte{ 0x6f, 0x6c, 0x6c, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x28, 0x0a, 0x10, 0x68, 0x61, 0x73, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x68, 0x61, - 0x73, 0x44, 0x65, 0x72, 0x69, 0x76, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x2b, 0x0a, 0x25, + 0x73, 0x44, 0x65, 0x72, 0x69, 0x76, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x42, 0x36, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x03, 0x50, 0x01, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x03, 0x50, 0x01, 0x5a, 0x09, 0x2e, 0x2f, 0x73, 0x79, 0x6e, + 0x63, 0x5f, 0x70, 0x62, } var ( diff --git a/schema/protobuf/sync_pb/history_status.proto b/schema/protobuf/sync_pb/history_status.proto index 7ff07346..8608e4dc 100644 --- a/schema/protobuf/sync_pb/history_status.proto +++ b/schema/protobuf/sync_pb/history_status.proto @@ -1,9 +1,11 @@ -// Copyright 2016 The Chromium Authors. All rights reserved. +// Copyright 2016 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file +// found in the LICENSE file. syntax = "proto2"; +option go_package = "./sync_pb"; + option java_multiple_files = true; option java_package = "org.chromium.components.sync.protocol"; diff --git a/schema/protobuf/sync_pb/list_passwords_result.pb.go b/schema/protobuf/sync_pb/list_passwords_result.pb.go deleted file mode 100644 index 2fbbaeb3..00000000 --- a/schema/protobuf/sync_pb/list_passwords_result.pb.go +++ /dev/null @@ -1,167 +0,0 @@ -// Copyright 2021 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// If you change or add any fields in this file, update proto_visitors.h and -// potentially proto_enum_conversions.{h, cc}. - -// Code generated by protoc-gen-go. DO NOT EDIT. -// versions: -// protoc-gen-go v1.28.0 -// protoc v3.21.1 -// source: list_passwords_result.proto - -package sync_pb - -import ( - protoreflect "google.golang.org/protobuf/reflect/protoreflect" - protoimpl "google.golang.org/protobuf/runtime/protoimpl" - reflect "reflect" - sync "sync" -) - -const ( - // Verify that this generated code is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) - // Verify that runtime/protoimpl is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) -) - -// Response to a request sent to Google Mobile Services to request a list of -// passwords. -// ATTENTION(crbug.com/1330911): This proto is being moved to -// components/password_manager/core/browser/protocol folder. Two files exist -// while the migration is in process, this file will be deleted when the -// migration is over. IF YOU MODIFY THIS FILE, PLEASE ALSO MODIFY THE COPY IN -// components/password_manager. -type ListPasswordsResult struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The list of password entries and corresponding additional info. - PasswordData []*PasswordWithLocalData `protobuf:"bytes,1,rep,name=password_data,json=passwordData" json:"password_data,omitempty"` -} - -func (x *ListPasswordsResult) Reset() { - *x = ListPasswordsResult{} - if protoimpl.UnsafeEnabled { - mi := &file_list_passwords_result_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ListPasswordsResult) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ListPasswordsResult) ProtoMessage() {} - -func (x *ListPasswordsResult) ProtoReflect() protoreflect.Message { - mi := &file_list_passwords_result_proto_msgTypes[0] - 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 ListPasswordsResult.ProtoReflect.Descriptor instead. -func (*ListPasswordsResult) Descriptor() ([]byte, []int) { - return file_list_passwords_result_proto_rawDescGZIP(), []int{0} -} - -func (x *ListPasswordsResult) GetPasswordData() []*PasswordWithLocalData { - if x != nil { - return x.PasswordData - } - return nil -} - -var File_list_passwords_result_proto protoreflect.FileDescriptor - -var file_list_passwords_result_proto_rawDesc = []byte{ - 0x0a, 0x1b, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x73, - 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x07, 0x73, - 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x1a, 0x1e, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, - 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x64, 0x61, 0x74, 0x61, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x5a, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x61, - 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x43, 0x0a, - 0x0d, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x50, - 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x57, 0x69, 0x74, 0x68, 0x4c, 0x6f, 0x63, 0x61, 0x6c, - 0x44, 0x61, 0x74, 0x61, 0x52, 0x0c, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x44, 0x61, - 0x74, 0x61, 0x42, 0x2b, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, - 0x75, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x73, 0x79, - 0x6e, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x03, 0x50, 0x01, -} - -var ( - file_list_passwords_result_proto_rawDescOnce sync.Once - file_list_passwords_result_proto_rawDescData = file_list_passwords_result_proto_rawDesc -) - -func file_list_passwords_result_proto_rawDescGZIP() []byte { - file_list_passwords_result_proto_rawDescOnce.Do(func() { - file_list_passwords_result_proto_rawDescData = protoimpl.X.CompressGZIP(file_list_passwords_result_proto_rawDescData) - }) - return file_list_passwords_result_proto_rawDescData -} - -var file_list_passwords_result_proto_msgTypes = make([]protoimpl.MessageInfo, 1) -var file_list_passwords_result_proto_goTypes = []interface{}{ - (*ListPasswordsResult)(nil), // 0: sync_pb.ListPasswordsResult - (*PasswordWithLocalData)(nil), // 1: sync_pb.PasswordWithLocalData -} -var file_list_passwords_result_proto_depIdxs = []int32{ - 1, // 0: sync_pb.ListPasswordsResult.password_data:type_name -> sync_pb.PasswordWithLocalData - 1, // [1:1] is the sub-list for method output_type - 1, // [1:1] is the sub-list for method input_type - 1, // [1:1] is the sub-list for extension type_name - 1, // [1:1] is the sub-list for extension extendee - 0, // [0:1] is the sub-list for field type_name -} - -func init() { file_list_passwords_result_proto_init() } -func file_list_passwords_result_proto_init() { - if File_list_passwords_result_proto != nil { - return - } - file_password_with_local_data_proto_init() - if !protoimpl.UnsafeEnabled { - file_list_passwords_result_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListPasswordsResult); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } - type x struct{} - out := protoimpl.TypeBuilder{ - File: protoimpl.DescBuilder{ - GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_list_passwords_result_proto_rawDesc, - NumEnums: 0, - NumMessages: 1, - NumExtensions: 0, - NumServices: 0, - }, - GoTypes: file_list_passwords_result_proto_goTypes, - DependencyIndexes: file_list_passwords_result_proto_depIdxs, - MessageInfos: file_list_passwords_result_proto_msgTypes, - }.Build() - File_list_passwords_result_proto = out.File - file_list_passwords_result_proto_rawDesc = nil - file_list_passwords_result_proto_goTypes = nil - file_list_passwords_result_proto_depIdxs = nil -} diff --git a/schema/protobuf/sync_pb/list_passwords_result.proto b/schema/protobuf/sync_pb/list_passwords_result.proto deleted file mode 100644 index 75283b05..00000000 --- a/schema/protobuf/sync_pb/list_passwords_result.proto +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright 2021 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// If you change or add any fields in this file, update proto_visitors.h and -// potentially proto_enum_conversions.{h, cc}. - -syntax = "proto2"; - -option java_multiple_files = true; -option java_package = "org.chromium.components.sync.protocol"; - -option optimize_for = LITE_RUNTIME; - -package sync_pb; - -import "password_with_local_data.proto"; - -// Response to a request sent to Google Mobile Services to request a list of -// passwords. -// ATTENTION(crbug.com/1330911): This proto is being moved to -// components/password_manager/core/browser/protocol folder. Two files exist -// while the migration is in process, this file will be deleted when the -// migration is over. IF YOU MODIFY THIS FILE, PLEASE ALSO MODIFY THE COPY IN -// components/password_manager. -message ListPasswordsResult { - // The list of password entries and corresponding additional info. - repeated PasswordWithLocalData password_data = 1; -} diff --git a/schema/protobuf/sync_pb/local_trusted_vault.pb.go b/schema/protobuf/sync_pb/local_trusted_vault.pb.go deleted file mode 100644 index cd5adcbb..00000000 --- a/schema/protobuf/sync_pb/local_trusted_vault.pb.go +++ /dev/null @@ -1,456 +0,0 @@ -// Copyright 2019 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// Code generated by protoc-gen-go. DO NOT EDIT. -// versions: -// protoc-gen-go v1.28.0 -// protoc v3.21.1 -// source: local_trusted_vault.proto - -package sync_pb - -import ( - protoreflect "google.golang.org/protobuf/reflect/protoreflect" - protoimpl "google.golang.org/protobuf/runtime/protoimpl" - reflect "reflect" - sync "sync" -) - -const ( - // Verify that this generated code is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) - // Verify that runtime/protoimpl is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) -) - -type LocalTrustedVaultKey struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The actual key. - KeyMaterial []byte `protobuf:"bytes,1,opt,name=key_material,json=keyMaterial" json:"key_material,omitempty"` -} - -func (x *LocalTrustedVaultKey) Reset() { - *x = LocalTrustedVaultKey{} - if protoimpl.UnsafeEnabled { - mi := &file_local_trusted_vault_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *LocalTrustedVaultKey) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*LocalTrustedVaultKey) ProtoMessage() {} - -func (x *LocalTrustedVaultKey) ProtoReflect() protoreflect.Message { - mi := &file_local_trusted_vault_proto_msgTypes[0] - 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 LocalTrustedVaultKey.ProtoReflect.Descriptor instead. -func (*LocalTrustedVaultKey) Descriptor() ([]byte, []int) { - return file_local_trusted_vault_proto_rawDescGZIP(), []int{0} -} - -func (x *LocalTrustedVaultKey) GetKeyMaterial() []byte { - if x != nil { - return x.KeyMaterial - } - return nil -} - -type LocalDeviceRegistrationInfo struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Private SecureBox key. - PrivateKeyMaterial []byte `protobuf:"bytes,1,opt,name=private_key_material,json=privateKeyMaterial" json:"private_key_material,omitempty"` - // Indicates whether device is registered, i.e. whether its public key is - // successfully submitted to the server. - DeviceRegistered *bool `protobuf:"varint,2,opt,name=device_registered,json=deviceRegistered" json:"device_registered,omitempty"` -} - -func (x *LocalDeviceRegistrationInfo) Reset() { - *x = LocalDeviceRegistrationInfo{} - if protoimpl.UnsafeEnabled { - mi := &file_local_trusted_vault_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *LocalDeviceRegistrationInfo) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*LocalDeviceRegistrationInfo) ProtoMessage() {} - -func (x *LocalDeviceRegistrationInfo) ProtoReflect() protoreflect.Message { - mi := &file_local_trusted_vault_proto_msgTypes[1] - 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 LocalDeviceRegistrationInfo.ProtoReflect.Descriptor instead. -func (*LocalDeviceRegistrationInfo) Descriptor() ([]byte, []int) { - return file_local_trusted_vault_proto_rawDescGZIP(), []int{1} -} - -func (x *LocalDeviceRegistrationInfo) GetPrivateKeyMaterial() []byte { - if x != nil { - return x.PrivateKeyMaterial - } - return nil -} - -func (x *LocalDeviceRegistrationInfo) GetDeviceRegistered() bool { - if x != nil && x.DeviceRegistered != nil { - return *x.DeviceRegistered - } - return false -} - -type LocalTrustedVaultPerUser struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // User identifier. - GaiaId []byte `protobuf:"bytes,1,opt,name=gaia_id,json=gaiaId" json:"gaia_id,omitempty"` - // All keys known for a user. - VaultKey []*LocalTrustedVaultKey `protobuf:"bytes,2,rep,name=vault_key,json=vaultKey" json:"vault_key,omitempty"` - // The version corresponding to the last element in |vault_key|. - LastVaultKeyVersion *int32 `protobuf:"varint,3,opt,name=last_vault_key_version,json=lastVaultKeyVersion" json:"last_vault_key_version,omitempty"` - // Indicates whether |vault_key| is stale, i.e. that the latest locally - // available key isn't the latest key in the vault. New keys need to be - // fetched through key retrieval procedure or by following key rotation. - KeysAreStale *bool `protobuf:"varint,4,opt,name=keys_are_stale,json=keysAreStale" json:"keys_are_stale,omitempty"` - // Device key and corresponding registration metadata. - LocalDeviceRegistrationInfo *LocalDeviceRegistrationInfo `protobuf:"bytes,5,opt,name=local_device_registration_info,json=localDeviceRegistrationInfo" json:"local_device_registration_info,omitempty"` - // The time (in milliseconds since UNIX epoch) at which last unsuccessful (due - // to transient errors) request was sent to the vault service. Used for - // throttling requests to the server. - LastFailedRequestMillisSinceUnixEpoch *int64 `protobuf:"varint,6,opt,name=last_failed_request_millis_since_unix_epoch,json=lastFailedRequestMillisSinceUnixEpoch" json:"last_failed_request_millis_since_unix_epoch,omitempty"` - // Whether keys relevant for the user should be deleted when account becomes - // non-primary. - ShouldDeleteKeysWhenNonPrimary *bool `protobuf:"varint,7,opt,name=should_delete_keys_when_non_primary,json=shouldDeleteKeysWhenNonPrimary" json:"should_delete_keys_when_non_primary,omitempty"` -} - -func (x *LocalTrustedVaultPerUser) Reset() { - *x = LocalTrustedVaultPerUser{} - if protoimpl.UnsafeEnabled { - mi := &file_local_trusted_vault_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *LocalTrustedVaultPerUser) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*LocalTrustedVaultPerUser) ProtoMessage() {} - -func (x *LocalTrustedVaultPerUser) ProtoReflect() protoreflect.Message { - mi := &file_local_trusted_vault_proto_msgTypes[2] - 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 LocalTrustedVaultPerUser.ProtoReflect.Descriptor instead. -func (*LocalTrustedVaultPerUser) Descriptor() ([]byte, []int) { - return file_local_trusted_vault_proto_rawDescGZIP(), []int{2} -} - -func (x *LocalTrustedVaultPerUser) GetGaiaId() []byte { - if x != nil { - return x.GaiaId - } - return nil -} - -func (x *LocalTrustedVaultPerUser) GetVaultKey() []*LocalTrustedVaultKey { - if x != nil { - return x.VaultKey - } - return nil -} - -func (x *LocalTrustedVaultPerUser) GetLastVaultKeyVersion() int32 { - if x != nil && x.LastVaultKeyVersion != nil { - return *x.LastVaultKeyVersion - } - return 0 -} - -func (x *LocalTrustedVaultPerUser) GetKeysAreStale() bool { - if x != nil && x.KeysAreStale != nil { - return *x.KeysAreStale - } - return false -} - -func (x *LocalTrustedVaultPerUser) GetLocalDeviceRegistrationInfo() *LocalDeviceRegistrationInfo { - if x != nil { - return x.LocalDeviceRegistrationInfo - } - return nil -} - -func (x *LocalTrustedVaultPerUser) GetLastFailedRequestMillisSinceUnixEpoch() int64 { - if x != nil && x.LastFailedRequestMillisSinceUnixEpoch != nil { - return *x.LastFailedRequestMillisSinceUnixEpoch - } - return 0 -} - -func (x *LocalTrustedVaultPerUser) GetShouldDeleteKeysWhenNonPrimary() bool { - if x != nil && x.ShouldDeleteKeysWhenNonPrimary != nil { - return *x.ShouldDeleteKeysWhenNonPrimary - } - return false -} - -type LocalTrustedVault struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - User []*LocalTrustedVaultPerUser `protobuf:"bytes,1,rep,name=user" json:"user,omitempty"` - // Version of the stored data, used to perform data migrations. - DataVersion *int32 `protobuf:"varint,2,opt,name=data_version,json=dataVersion" json:"data_version,omitempty"` -} - -func (x *LocalTrustedVault) Reset() { - *x = LocalTrustedVault{} - if protoimpl.UnsafeEnabled { - mi := &file_local_trusted_vault_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *LocalTrustedVault) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*LocalTrustedVault) ProtoMessage() {} - -func (x *LocalTrustedVault) ProtoReflect() protoreflect.Message { - mi := &file_local_trusted_vault_proto_msgTypes[3] - 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 LocalTrustedVault.ProtoReflect.Descriptor instead. -func (*LocalTrustedVault) Descriptor() ([]byte, []int) { - return file_local_trusted_vault_proto_rawDescGZIP(), []int{3} -} - -func (x *LocalTrustedVault) GetUser() []*LocalTrustedVaultPerUser { - if x != nil { - return x.User - } - return nil -} - -func (x *LocalTrustedVault) GetDataVersion() int32 { - if x != nil && x.DataVersion != nil { - return *x.DataVersion - } - return 0 -} - -var File_local_trusted_vault_proto protoreflect.FileDescriptor - -var file_local_trusted_vault_proto_rawDesc = []byte{ - 0x0a, 0x19, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x74, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x5f, - 0x76, 0x61, 0x75, 0x6c, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x07, 0x73, 0x79, 0x6e, - 0x63, 0x5f, 0x70, 0x62, 0x22, 0x39, 0x0a, 0x14, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x54, 0x72, 0x75, - 0x73, 0x74, 0x65, 0x64, 0x56, 0x61, 0x75, 0x6c, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x21, 0x0a, 0x0c, - 0x6b, 0x65, 0x79, 0x5f, 0x6d, 0x61, 0x74, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x0b, 0x6b, 0x65, 0x79, 0x4d, 0x61, 0x74, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x22, - 0x7c, 0x0a, 0x1b, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, - 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x30, - 0x0a, 0x14, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x6d, 0x61, - 0x74, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x12, 0x70, 0x72, - 0x69, 0x76, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x4d, 0x61, 0x74, 0x65, 0x72, 0x69, 0x61, 0x6c, - 0x12, 0x2b, 0x0a, 0x11, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x72, 0x65, 0x67, 0x69, 0x73, - 0x74, 0x65, 0x72, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x64, 0x65, 0x76, - 0x69, 0x63, 0x65, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x65, 0x64, 0x22, 0xde, 0x03, - 0x0a, 0x18, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x54, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x56, 0x61, - 0x75, 0x6c, 0x74, 0x50, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x12, 0x17, 0x0a, 0x07, 0x67, 0x61, - 0x69, 0x61, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x67, 0x61, 0x69, - 0x61, 0x49, 0x64, 0x12, 0x3a, 0x0a, 0x09, 0x76, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x6b, 0x65, 0x79, - 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, - 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x54, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x56, 0x61, 0x75, - 0x6c, 0x74, 0x4b, 0x65, 0x79, 0x52, 0x08, 0x76, 0x61, 0x75, 0x6c, 0x74, 0x4b, 0x65, 0x79, 0x12, - 0x33, 0x0a, 0x16, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x76, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x6b, 0x65, - 0x79, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x13, 0x6c, 0x61, 0x73, 0x74, 0x56, 0x61, 0x75, 0x6c, 0x74, 0x4b, 0x65, 0x79, 0x56, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x0a, 0x0e, 0x6b, 0x65, 0x79, 0x73, 0x5f, 0x61, 0x72, 0x65, - 0x5f, 0x73, 0x74, 0x61, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x6b, 0x65, - 0x79, 0x73, 0x41, 0x72, 0x65, 0x53, 0x74, 0x61, 0x6c, 0x65, 0x12, 0x69, 0x0a, 0x1e, 0x6c, 0x6f, - 0x63, 0x61, 0x6c, 0x5f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x72, 0x65, 0x67, 0x69, 0x73, - 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x4c, 0x6f, 0x63, - 0x61, 0x6c, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x1b, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x44, - 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x5a, 0x0a, 0x2b, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x61, - 0x69, 0x6c, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x69, 0x6c, - 0x6c, 0x69, 0x73, 0x5f, 0x73, 0x69, 0x6e, 0x63, 0x65, 0x5f, 0x75, 0x6e, 0x69, 0x78, 0x5f, 0x65, - 0x70, 0x6f, 0x63, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x25, 0x6c, 0x61, 0x73, 0x74, - 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x69, 0x6c, - 0x6c, 0x69, 0x73, 0x53, 0x69, 0x6e, 0x63, 0x65, 0x55, 0x6e, 0x69, 0x78, 0x45, 0x70, 0x6f, 0x63, - 0x68, 0x12, 0x4b, 0x0a, 0x23, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x5f, 0x64, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x5f, 0x77, 0x68, 0x65, 0x6e, 0x5f, 0x6e, 0x6f, 0x6e, - 0x5f, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1e, - 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x73, - 0x57, 0x68, 0x65, 0x6e, 0x4e, 0x6f, 0x6e, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x22, 0x6d, - 0x0a, 0x11, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x54, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x56, 0x61, - 0x75, 0x6c, 0x74, 0x12, 0x35, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x4c, 0x6f, 0x63, 0x61, - 0x6c, 0x54, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x56, 0x61, 0x75, 0x6c, 0x74, 0x50, 0x65, 0x72, - 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x61, - 0x74, 0x61, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x0b, 0x64, 0x61, 0x74, 0x61, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x0b, 0x0a, - 0x07, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x48, 0x03, -} - -var ( - file_local_trusted_vault_proto_rawDescOnce sync.Once - file_local_trusted_vault_proto_rawDescData = file_local_trusted_vault_proto_rawDesc -) - -func file_local_trusted_vault_proto_rawDescGZIP() []byte { - file_local_trusted_vault_proto_rawDescOnce.Do(func() { - file_local_trusted_vault_proto_rawDescData = protoimpl.X.CompressGZIP(file_local_trusted_vault_proto_rawDescData) - }) - return file_local_trusted_vault_proto_rawDescData -} - -var file_local_trusted_vault_proto_msgTypes = make([]protoimpl.MessageInfo, 4) -var file_local_trusted_vault_proto_goTypes = []interface{}{ - (*LocalTrustedVaultKey)(nil), // 0: sync_pb.LocalTrustedVaultKey - (*LocalDeviceRegistrationInfo)(nil), // 1: sync_pb.LocalDeviceRegistrationInfo - (*LocalTrustedVaultPerUser)(nil), // 2: sync_pb.LocalTrustedVaultPerUser - (*LocalTrustedVault)(nil), // 3: sync_pb.LocalTrustedVault -} -var file_local_trusted_vault_proto_depIdxs = []int32{ - 0, // 0: sync_pb.LocalTrustedVaultPerUser.vault_key:type_name -> sync_pb.LocalTrustedVaultKey - 1, // 1: sync_pb.LocalTrustedVaultPerUser.local_device_registration_info:type_name -> sync_pb.LocalDeviceRegistrationInfo - 2, // 2: sync_pb.LocalTrustedVault.user:type_name -> sync_pb.LocalTrustedVaultPerUser - 3, // [3:3] is the sub-list for method output_type - 3, // [3:3] is the sub-list for method input_type - 3, // [3:3] is the sub-list for extension type_name - 3, // [3:3] is the sub-list for extension extendee - 0, // [0:3] is the sub-list for field type_name -} - -func init() { file_local_trusted_vault_proto_init() } -func file_local_trusted_vault_proto_init() { - if File_local_trusted_vault_proto != nil { - return - } - if !protoimpl.UnsafeEnabled { - file_local_trusted_vault_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*LocalTrustedVaultKey); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_local_trusted_vault_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*LocalDeviceRegistrationInfo); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_local_trusted_vault_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*LocalTrustedVaultPerUser); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_local_trusted_vault_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*LocalTrustedVault); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } - type x struct{} - out := protoimpl.TypeBuilder{ - File: protoimpl.DescBuilder{ - GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_local_trusted_vault_proto_rawDesc, - NumEnums: 0, - NumMessages: 4, - NumExtensions: 0, - NumServices: 0, - }, - GoTypes: file_local_trusted_vault_proto_goTypes, - DependencyIndexes: file_local_trusted_vault_proto_depIdxs, - MessageInfos: file_local_trusted_vault_proto_msgTypes, - }.Build() - File_local_trusted_vault_proto = out.File - file_local_trusted_vault_proto_rawDesc = nil - file_local_trusted_vault_proto_goTypes = nil - file_local_trusted_vault_proto_depIdxs = nil -} diff --git a/schema/protobuf/sync_pb/local_trusted_vault.proto b/schema/protobuf/sync_pb/local_trusted_vault.proto deleted file mode 100644 index cb1d23b2..00000000 --- a/schema/protobuf/sync_pb/local_trusted_vault.proto +++ /dev/null @@ -1,59 +0,0 @@ -// Copyright 2019 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -syntax = "proto2"; - -option optimize_for = LITE_RUNTIME; - -option java_package = "sync_pb"; -package sync_pb; - -message LocalTrustedVaultKey { - // The actual key. - optional bytes key_material = 1; -} - -message LocalDeviceRegistrationInfo { - // Private SecureBox key. - optional bytes private_key_material = 1; - - // Indicates whether device is registered, i.e. whether its public key is - // successfully submitted to the server. - optional bool device_registered = 2; -} - -message LocalTrustedVaultPerUser { - // User identifier. - optional bytes gaia_id = 1; - - // All keys known for a user. - repeated LocalTrustedVaultKey vault_key = 2; - - // The version corresponding to the last element in |vault_key|. - optional int32 last_vault_key_version = 3; - - // Indicates whether |vault_key| is stale, i.e. that the latest locally - // available key isn't the latest key in the vault. New keys need to be - // fetched through key retrieval procedure or by following key rotation. - optional bool keys_are_stale = 4; - - // Device key and corresponding registration metadata. - optional LocalDeviceRegistrationInfo local_device_registration_info = 5; - - // The time (in milliseconds since UNIX epoch) at which last unsuccessful (due - // to transient errors) request was sent to the vault service. Used for - // throttling requests to the server. - optional int64 last_failed_request_millis_since_unix_epoch = 6; - - // Whether keys relevant for the user should be deleted when account becomes - // non-primary. - optional bool should_delete_keys_when_non_primary = 7; -} - -message LocalTrustedVault { - repeated LocalTrustedVaultPerUser user = 1; - - // Version of the stored data, used to perform data migrations. - optional int32 data_version = 2; -} diff --git a/schema/protobuf/sync_pb/loopback_server.pb.go b/schema/protobuf/sync_pb/loopback_server.pb.go index 1e975107..7c5bdb78 100644 --- a/schema/protobuf/sync_pb/loopback_server.pb.go +++ b/schema/protobuf/sync_pb/loopback_server.pb.go @@ -1,4 +1,4 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2012 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // @@ -6,7 +6,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.0 +// protoc-gen-go v1.31.0 // protoc v3.21.1 // source: loopback_server.proto @@ -274,10 +274,11 @@ var file_loopback_server_proto_rawDesc = []byte{ 0x72, 0x65, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x32, 0x0a, 0x15, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x13, 0x6c, 0x61, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x42, 0x2b, 0x0a, 0x25, 0x6f, 0x72, + 0x6f, 0x6e, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x42, 0x36, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x63, 0x6f, 0x6c, 0x48, 0x03, 0x50, 0x01, + 0x63, 0x6f, 0x6c, 0x48, 0x03, 0x50, 0x01, 0x5a, 0x09, 0x2e, 0x2f, 0x73, 0x79, 0x6e, 0x63, 0x5f, + 0x70, 0x62, } var ( diff --git a/schema/protobuf/sync_pb/loopback_server.proto b/schema/protobuf/sync_pb/loopback_server.proto index ab71efc5..69957df1 100644 --- a/schema/protobuf/sync_pb/loopback_server.proto +++ b/schema/protobuf/sync_pb/loopback_server.proto @@ -1,4 +1,4 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2012 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // @@ -6,6 +6,8 @@ syntax = "proto2"; +option go_package = "./sync_pb"; + option java_multiple_files = true; option java_package = "org.chromium.components.sync.protocol"; diff --git a/schema/protobuf/sync_pb/managed_user_setting_specifics.pb.go b/schema/protobuf/sync_pb/managed_user_setting_specifics.pb.go index ed08fe7d..39caf428 100644 --- a/schema/protobuf/sync_pb/managed_user_setting_specifics.pb.go +++ b/schema/protobuf/sync_pb/managed_user_setting_specifics.pb.go @@ -1,4 +1,4 @@ -// Copyright (c) 2013 The Chromium Authors. All rights reserved. +// Copyright 2013 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // @@ -9,7 +9,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.0 +// protoc-gen-go v1.31.0 // protoc v3.21.1 // source: managed_user_setting_specifics.proto @@ -95,10 +95,10 @@ var file_managed_user_setting_specifics_proto_rawDesc = []byte{ 0x74, 0x74, 0x69, 0x6e, 0x67, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x2b, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, + 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x36, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, - 0x6c, 0x48, 0x03, 0x50, 0x01, + 0x6c, 0x48, 0x03, 0x50, 0x01, 0x5a, 0x09, 0x2e, 0x2f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, } var ( diff --git a/schema/protobuf/sync_pb/managed_user_setting_specifics.proto b/schema/protobuf/sync_pb/managed_user_setting_specifics.proto index 99558a22..6a062509 100644 --- a/schema/protobuf/sync_pb/managed_user_setting_specifics.proto +++ b/schema/protobuf/sync_pb/managed_user_setting_specifics.proto @@ -1,4 +1,4 @@ -// Copyright (c) 2013 The Chromium Authors. All rights reserved. +// Copyright 2013 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // @@ -9,6 +9,8 @@ syntax = "proto2"; +option go_package = "./sync_pb"; + option java_multiple_files = true; option java_package = "org.chromium.components.sync.protocol"; diff --git a/schema/protobuf/sync_pb/managed_user_shared_setting_specifics.pb.go b/schema/protobuf/sync_pb/managed_user_shared_setting_specifics.pb.go index 1570119e..94397547 100644 --- a/schema/protobuf/sync_pb/managed_user_shared_setting_specifics.pb.go +++ b/schema/protobuf/sync_pb/managed_user_shared_setting_specifics.pb.go @@ -1,4 +1,4 @@ -// Copyright 2013 The Chromium Authors. All rights reserved. +// Copyright 2013 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // @@ -9,7 +9,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.0 +// protoc-gen-go v1.31.0 // protoc v3.21.1 // source: managed_user_shared_setting_specifics.proto @@ -127,10 +127,10 @@ var file_managed_user_shared_setting_specifics_proto_rawDesc = []byte{ 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x29, 0x0a, 0x0c, 0x61, 0x63, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0c, 0x61, 0x63, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, - 0x64, 0x67, 0x65, 0x64, 0x42, 0x2b, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, 0x72, 0x6f, + 0x64, 0x67, 0x65, 0x64, 0x42, 0x36, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x03, 0x50, - 0x01, + 0x01, 0x5a, 0x09, 0x2e, 0x2f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, } var ( diff --git a/schema/protobuf/sync_pb/managed_user_shared_setting_specifics.proto b/schema/protobuf/sync_pb/managed_user_shared_setting_specifics.proto index 82512ce1..faf20ada 100644 --- a/schema/protobuf/sync_pb/managed_user_shared_setting_specifics.proto +++ b/schema/protobuf/sync_pb/managed_user_shared_setting_specifics.proto @@ -1,4 +1,4 @@ -// Copyright 2013 The Chromium Authors. All rights reserved. +// Copyright 2013 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // @@ -9,6 +9,8 @@ syntax = "proto2"; +option go_package = "./sync_pb"; + option java_multiple_files = true; option java_package = "org.chromium.components.sync.protocol"; diff --git a/schema/protobuf/sync_pb/managed_user_specifics.pb.go b/schema/protobuf/sync_pb/managed_user_specifics.pb.go deleted file mode 100644 index 06451fdf..00000000 --- a/schema/protobuf/sync_pb/managed_user_specifics.pb.go +++ /dev/null @@ -1,246 +0,0 @@ -// Copyright 2013 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. -// -// Sync protocol datatype extension for managed user settings. - -// If you change or add any fields in this file, update proto_visitors.h and -// potentially proto_enum_conversions.{h, cc}. - -// Code generated by protoc-gen-go. DO NOT EDIT. -// versions: -// protoc-gen-go v1.28.0 -// protoc v3.21.1 -// source: managed_user_specifics.proto - -package sync_pb - -import ( - protoreflect "google.golang.org/protobuf/reflect/protoreflect" - protoimpl "google.golang.org/protobuf/runtime/protoimpl" - reflect "reflect" - sync "sync" -) - -const ( - // Verify that this generated code is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) - // Verify that runtime/protoimpl is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) -) - -// Properties of managed user sync objects. -type ManagedUserSpecifics struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // A randomly-generated identifier for the managed user. - Id *string `protobuf:"bytes,1,opt,name=id" json:"id,omitempty"` - // The human-visible name of the managed user - Name *string `protobuf:"bytes,2,opt,name=name" json:"name,omitempty"` - // This flag is set by the server to acknowledge that it has committed a - // newly created managed user. - Acknowledged *bool `protobuf:"varint,3,opt,name=acknowledged,def=0" json:"acknowledged,omitempty"` - // Master key for managed user cryptohome. - MasterKey *string `protobuf:"bytes,4,opt,name=master_key,json=masterKey" json:"master_key,omitempty"` - // A string representing the index of the supervised user avatar on Chrome. - // It has the following format: - // "chrome-avatar-index:INDEX" where INDEX is an integer. - ChromeAvatar *string `protobuf:"bytes,5,opt,name=chrome_avatar,json=chromeAvatar" json:"chrome_avatar,omitempty"` - // A string representing the index of the supervised user avatar on Chrome OS. - // It has the following format: - // "chromeos-avatar-index:INDEX" where INDEX is an integer. - ChromeosAvatar *string `protobuf:"bytes,6,opt,name=chromeos_avatar,json=chromeosAvatar" json:"chromeos_avatar,omitempty"` - // Key for signing supervised user's password. - PasswordSignatureKey *string `protobuf:"bytes,7,opt,name=password_signature_key,json=passwordSignatureKey" json:"password_signature_key,omitempty"` - // Key for encrypting supervised user's password. - PasswordEncryptionKey *string `protobuf:"bytes,8,opt,name=password_encryption_key,json=passwordEncryptionKey" json:"password_encryption_key,omitempty"` -} - -// Default values for ManagedUserSpecifics fields. -const ( - Default_ManagedUserSpecifics_Acknowledged = bool(false) -) - -func (x *ManagedUserSpecifics) Reset() { - *x = ManagedUserSpecifics{} - if protoimpl.UnsafeEnabled { - mi := &file_managed_user_specifics_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ManagedUserSpecifics) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ManagedUserSpecifics) ProtoMessage() {} - -func (x *ManagedUserSpecifics) ProtoReflect() protoreflect.Message { - mi := &file_managed_user_specifics_proto_msgTypes[0] - 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 ManagedUserSpecifics.ProtoReflect.Descriptor instead. -func (*ManagedUserSpecifics) Descriptor() ([]byte, []int) { - return file_managed_user_specifics_proto_rawDescGZIP(), []int{0} -} - -func (x *ManagedUserSpecifics) GetId() string { - if x != nil && x.Id != nil { - return *x.Id - } - return "" -} - -func (x *ManagedUserSpecifics) GetName() string { - if x != nil && x.Name != nil { - return *x.Name - } - return "" -} - -func (x *ManagedUserSpecifics) GetAcknowledged() bool { - if x != nil && x.Acknowledged != nil { - return *x.Acknowledged - } - return Default_ManagedUserSpecifics_Acknowledged -} - -func (x *ManagedUserSpecifics) GetMasterKey() string { - if x != nil && x.MasterKey != nil { - return *x.MasterKey - } - return "" -} - -func (x *ManagedUserSpecifics) GetChromeAvatar() string { - if x != nil && x.ChromeAvatar != nil { - return *x.ChromeAvatar - } - return "" -} - -func (x *ManagedUserSpecifics) GetChromeosAvatar() string { - if x != nil && x.ChromeosAvatar != nil { - return *x.ChromeosAvatar - } - return "" -} - -func (x *ManagedUserSpecifics) GetPasswordSignatureKey() string { - if x != nil && x.PasswordSignatureKey != nil { - return *x.PasswordSignatureKey - } - return "" -} - -func (x *ManagedUserSpecifics) GetPasswordEncryptionKey() string { - if x != nil && x.PasswordEncryptionKey != nil { - return *x.PasswordEncryptionKey - } - return "" -} - -var File_managed_user_specifics_proto protoreflect.FileDescriptor - -var file_managed_user_specifics_proto_rawDesc = []byte{ - 0x0a, 0x1c, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x73, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x07, - 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x22, 0xc0, 0x02, 0x0a, 0x14, 0x4d, 0x61, 0x6e, 0x61, - 0x67, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, - 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, - 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x29, 0x0a, 0x0c, 0x61, 0x63, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, - 0x64, 0x67, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, - 0x65, 0x52, 0x0c, 0x61, 0x63, 0x6b, 0x6e, 0x6f, 0x77, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x64, 0x12, - 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x12, 0x23, - 0x0a, 0x0d, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x65, 0x5f, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x65, 0x41, 0x76, 0x61, - 0x74, 0x61, 0x72, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x65, 0x6f, 0x73, 0x5f, - 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x68, - 0x72, 0x6f, 0x6d, 0x65, 0x6f, 0x73, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x12, 0x34, 0x0a, 0x16, - 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, - 0x72, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x70, 0x61, - 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4b, - 0x65, 0x79, 0x12, 0x36, 0x0a, 0x17, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x5f, 0x65, - 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x15, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x45, 0x6e, 0x63, - 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x42, 0x2b, 0x0a, 0x25, 0x6f, 0x72, - 0x67, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, - 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x63, 0x6f, 0x6c, 0x48, 0x03, 0x50, 0x01, -} - -var ( - file_managed_user_specifics_proto_rawDescOnce sync.Once - file_managed_user_specifics_proto_rawDescData = file_managed_user_specifics_proto_rawDesc -) - -func file_managed_user_specifics_proto_rawDescGZIP() []byte { - file_managed_user_specifics_proto_rawDescOnce.Do(func() { - file_managed_user_specifics_proto_rawDescData = protoimpl.X.CompressGZIP(file_managed_user_specifics_proto_rawDescData) - }) - return file_managed_user_specifics_proto_rawDescData -} - -var file_managed_user_specifics_proto_msgTypes = make([]protoimpl.MessageInfo, 1) -var file_managed_user_specifics_proto_goTypes = []interface{}{ - (*ManagedUserSpecifics)(nil), // 0: sync_pb.ManagedUserSpecifics -} -var file_managed_user_specifics_proto_depIdxs = []int32{ - 0, // [0:0] is the sub-list for method output_type - 0, // [0:0] is the sub-list for method input_type - 0, // [0:0] is the sub-list for extension type_name - 0, // [0:0] is the sub-list for extension extendee - 0, // [0:0] is the sub-list for field type_name -} - -func init() { file_managed_user_specifics_proto_init() } -func file_managed_user_specifics_proto_init() { - if File_managed_user_specifics_proto != nil { - return - } - if !protoimpl.UnsafeEnabled { - file_managed_user_specifics_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ManagedUserSpecifics); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } - type x struct{} - out := protoimpl.TypeBuilder{ - File: protoimpl.DescBuilder{ - GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_managed_user_specifics_proto_rawDesc, - NumEnums: 0, - NumMessages: 1, - NumExtensions: 0, - NumServices: 0, - }, - GoTypes: file_managed_user_specifics_proto_goTypes, - DependencyIndexes: file_managed_user_specifics_proto_depIdxs, - MessageInfos: file_managed_user_specifics_proto_msgTypes, - }.Build() - File_managed_user_specifics_proto = out.File - file_managed_user_specifics_proto_rawDesc = nil - file_managed_user_specifics_proto_goTypes = nil - file_managed_user_specifics_proto_depIdxs = nil -} diff --git a/schema/protobuf/sync_pb/managed_user_specifics.proto b/schema/protobuf/sync_pb/managed_user_specifics.proto deleted file mode 100644 index e36e8c66..00000000 --- a/schema/protobuf/sync_pb/managed_user_specifics.proto +++ /dev/null @@ -1,42 +0,0 @@ -// Copyright 2013 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. -// -// Sync protocol datatype extension for managed user settings. - -// If you change or add any fields in this file, update proto_visitors.h and -// potentially proto_enum_conversions.{h, cc}. - -syntax = "proto2"; - -option java_multiple_files = true; -option java_package = "org.chromium.components.sync.protocol"; - -option optimize_for = LITE_RUNTIME; - -package sync_pb; - -// Properties of managed user sync objects. -message ManagedUserSpecifics { - // A randomly-generated identifier for the managed user. - optional string id = 1; - // The human-visible name of the managed user - optional string name = 2; - // This flag is set by the server to acknowledge that it has committed a - // newly created managed user. - optional bool acknowledged = 3 [default = false]; - // Master key for managed user cryptohome. - optional string master_key = 4; - // A string representing the index of the supervised user avatar on Chrome. - // It has the following format: - // "chrome-avatar-index:INDEX" where INDEX is an integer. - optional string chrome_avatar = 5; - // A string representing the index of the supervised user avatar on Chrome OS. - // It has the following format: - // "chromeos-avatar-index:INDEX" where INDEX is an integer. - optional string chromeos_avatar = 6; - // Key for signing supervised user's password. - optional string password_signature_key = 7; - // Key for encrypting supervised user's password. - optional string password_encryption_key = 8; -} diff --git a/schema/protobuf/sync_pb/managed_user_whitelist_specifics.pb.go b/schema/protobuf/sync_pb/managed_user_whitelist_specifics.pb.go deleted file mode 100644 index 5495772b..00000000 --- a/schema/protobuf/sync_pb/managed_user_whitelist_specifics.pb.go +++ /dev/null @@ -1,168 +0,0 @@ -// Copyright (c) 2014 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. -// -// Sync protocol datatype extension for supervised user whitelists. - -// If you change or add any fields in this file, update proto_visitors.h and -// potentially proto_enum_conversions.{h, cc}. - -// Code generated by protoc-gen-go. DO NOT EDIT. -// versions: -// protoc-gen-go v1.28.0 -// protoc v3.21.1 -// source: managed_user_whitelist_specifics.proto - -package sync_pb - -import ( - protoreflect "google.golang.org/protobuf/reflect/protoreflect" - protoimpl "google.golang.org/protobuf/runtime/protoimpl" - reflect "reflect" - sync "sync" -) - -const ( - // Verify that this generated code is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) - // Verify that runtime/protoimpl is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) -) - -// Properties of supervised user whitelist sync objects. -// The fields here are a subset of the fields in an ExtensionSpecifics. -type ManagedUserWhitelistSpecifics struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Globally unique id for this whitelist that identifies it in the Web Store. - Id *string `protobuf:"bytes,1,opt,name=id" json:"id,omitempty"` - // The name of the whitelist. - Name *string `protobuf:"bytes,2,opt,name=name" json:"name,omitempty"` -} - -func (x *ManagedUserWhitelistSpecifics) Reset() { - *x = ManagedUserWhitelistSpecifics{} - if protoimpl.UnsafeEnabled { - mi := &file_managed_user_whitelist_specifics_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ManagedUserWhitelistSpecifics) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ManagedUserWhitelistSpecifics) ProtoMessage() {} - -func (x *ManagedUserWhitelistSpecifics) ProtoReflect() protoreflect.Message { - mi := &file_managed_user_whitelist_specifics_proto_msgTypes[0] - 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 ManagedUserWhitelistSpecifics.ProtoReflect.Descriptor instead. -func (*ManagedUserWhitelistSpecifics) Descriptor() ([]byte, []int) { - return file_managed_user_whitelist_specifics_proto_rawDescGZIP(), []int{0} -} - -func (x *ManagedUserWhitelistSpecifics) GetId() string { - if x != nil && x.Id != nil { - return *x.Id - } - return "" -} - -func (x *ManagedUserWhitelistSpecifics) GetName() string { - if x != nil && x.Name != nil { - return *x.Name - } - return "" -} - -var File_managed_user_whitelist_specifics_proto protoreflect.FileDescriptor - -var file_managed_user_whitelist_specifics_proto_rawDesc = []byte{ - 0x0a, 0x26, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x77, - 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x07, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, - 0x62, 0x22, 0x43, 0x0a, 0x1d, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, - 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x63, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, - 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x2b, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, - 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, - 0x73, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, - 0x03, 0x50, 0x01, -} - -var ( - file_managed_user_whitelist_specifics_proto_rawDescOnce sync.Once - file_managed_user_whitelist_specifics_proto_rawDescData = file_managed_user_whitelist_specifics_proto_rawDesc -) - -func file_managed_user_whitelist_specifics_proto_rawDescGZIP() []byte { - file_managed_user_whitelist_specifics_proto_rawDescOnce.Do(func() { - file_managed_user_whitelist_specifics_proto_rawDescData = protoimpl.X.CompressGZIP(file_managed_user_whitelist_specifics_proto_rawDescData) - }) - return file_managed_user_whitelist_specifics_proto_rawDescData -} - -var file_managed_user_whitelist_specifics_proto_msgTypes = make([]protoimpl.MessageInfo, 1) -var file_managed_user_whitelist_specifics_proto_goTypes = []interface{}{ - (*ManagedUserWhitelistSpecifics)(nil), // 0: sync_pb.ManagedUserWhitelistSpecifics -} -var file_managed_user_whitelist_specifics_proto_depIdxs = []int32{ - 0, // [0:0] is the sub-list for method output_type - 0, // [0:0] is the sub-list for method input_type - 0, // [0:0] is the sub-list for extension type_name - 0, // [0:0] is the sub-list for extension extendee - 0, // [0:0] is the sub-list for field type_name -} - -func init() { file_managed_user_whitelist_specifics_proto_init() } -func file_managed_user_whitelist_specifics_proto_init() { - if File_managed_user_whitelist_specifics_proto != nil { - return - } - if !protoimpl.UnsafeEnabled { - file_managed_user_whitelist_specifics_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ManagedUserWhitelistSpecifics); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } - type x struct{} - out := protoimpl.TypeBuilder{ - File: protoimpl.DescBuilder{ - GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_managed_user_whitelist_specifics_proto_rawDesc, - NumEnums: 0, - NumMessages: 1, - NumExtensions: 0, - NumServices: 0, - }, - GoTypes: file_managed_user_whitelist_specifics_proto_goTypes, - DependencyIndexes: file_managed_user_whitelist_specifics_proto_depIdxs, - MessageInfos: file_managed_user_whitelist_specifics_proto_msgTypes, - }.Build() - File_managed_user_whitelist_specifics_proto = out.File - file_managed_user_whitelist_specifics_proto_rawDesc = nil - file_managed_user_whitelist_specifics_proto_goTypes = nil - file_managed_user_whitelist_specifics_proto_depIdxs = nil -} diff --git a/schema/protobuf/sync_pb/managed_user_whitelist_specifics.proto b/schema/protobuf/sync_pb/managed_user_whitelist_specifics.proto deleted file mode 100644 index c9938bdd..00000000 --- a/schema/protobuf/sync_pb/managed_user_whitelist_specifics.proto +++ /dev/null @@ -1,27 +0,0 @@ -// Copyright (c) 2014 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. -// -// Sync protocol datatype extension for supervised user whitelists. - -// If you change or add any fields in this file, update proto_visitors.h and -// potentially proto_enum_conversions.{h, cc}. - -syntax = "proto2"; - -option java_multiple_files = true; -option java_package = "org.chromium.components.sync.protocol"; - -option optimize_for = LITE_RUNTIME; - -package sync_pb; - -// Properties of supervised user whitelist sync objects. -// The fields here are a subset of the fields in an ExtensionSpecifics. -message ManagedUserWhitelistSpecifics { - // Globally unique id for this whitelist that identifies it in the Web Store. - optional string id = 1; - - // The name of the whitelist. - optional string name = 2; -} diff --git a/schema/protobuf/sync_pb/model_type_state.pb.go b/schema/protobuf/sync_pb/model_type_state.pb.go index 1f679aa7..e6473b04 100644 --- a/schema/protobuf/sync_pb/model_type_state.pb.go +++ b/schema/protobuf/sync_pb/model_type_state.pb.go @@ -1,4 +1,4 @@ -// Copyright 2016 The Chromium Authors. All rights reserved. +// Copyright 2016 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -7,7 +7,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.0 +// protoc-gen-go v1.31.0 // protoc v3.21.1 // source: model_type_state.proto @@ -27,6 +27,75 @@ const ( _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) +type ModelTypeState_InitialSyncState int32 + +const ( + // Default value, typically used when there is no metadata (e.g. because + // Sync is disabled). + ModelTypeState_INITIAL_SYNC_STATE_UNSPECIFIED ModelTypeState_InitialSyncState = 0 + // Indicates that syncing has started and some, but not all updates from the + // initial download/sync have been delivered. This is only used for data + // types in ApplyUpdatesImmediatelyTypes(). + ModelTypeState_INITIAL_SYNC_PARTIALLY_DONE ModelTypeState_InitialSyncState = 2 + // Indicates that the initial sync (download + merge) has been completed. + ModelTypeState_INITIAL_SYNC_DONE ModelTypeState_InitialSyncState = 3 + // Indicates that no initial sync is necessary, used for CommitOnlyTypes(). + ModelTypeState_INITIAL_SYNC_UNNECESSARY ModelTypeState_InitialSyncState = 4 +) + +// Enum value maps for ModelTypeState_InitialSyncState. +var ( + ModelTypeState_InitialSyncState_name = map[int32]string{ + 0: "INITIAL_SYNC_STATE_UNSPECIFIED", + 2: "INITIAL_SYNC_PARTIALLY_DONE", + 3: "INITIAL_SYNC_DONE", + 4: "INITIAL_SYNC_UNNECESSARY", + } + ModelTypeState_InitialSyncState_value = map[string]int32{ + "INITIAL_SYNC_STATE_UNSPECIFIED": 0, + "INITIAL_SYNC_PARTIALLY_DONE": 2, + "INITIAL_SYNC_DONE": 3, + "INITIAL_SYNC_UNNECESSARY": 4, + } +) + +func (x ModelTypeState_InitialSyncState) Enum() *ModelTypeState_InitialSyncState { + p := new(ModelTypeState_InitialSyncState) + *p = x + return p +} + +func (x ModelTypeState_InitialSyncState) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ModelTypeState_InitialSyncState) Descriptor() protoreflect.EnumDescriptor { + return file_model_type_state_proto_enumTypes[0].Descriptor() +} + +func (ModelTypeState_InitialSyncState) Type() protoreflect.EnumType { + return &file_model_type_state_proto_enumTypes[0] +} + +func (x ModelTypeState_InitialSyncState) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Do not use. +func (x *ModelTypeState_InitialSyncState) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err + } + *x = ModelTypeState_InitialSyncState(num) + return nil +} + +// Deprecated: Use ModelTypeState_InitialSyncState.Descriptor instead. +func (ModelTypeState_InitialSyncState) EnumDescriptor() ([]byte, []int) { + return file_model_type_state_proto_rawDescGZIP(), []int{0, 0} +} + // Sync proto to store data type global metadata in model type storage. type ModelTypeState struct { state protoimpl.MessageState @@ -44,10 +113,16 @@ type ModelTypeState struct { // If this key changes, the client will need to re-commit all of its local // data to the server using the new encryption key. EncryptionKeyName *string `protobuf:"bytes,3,opt,name=encryption_key_name,json=encryptionKeyName" json:"encryption_key_name,omitempty"` - // This flag is set to true when the first download cycle is complete. The - // ModelTypeProcessor should not attempt to commit any items until this - // flag is set. - InitialSyncDone *bool `protobuf:"varint,4,opt,name=initial_sync_done,json=initialSyncDone" json:"initial_sync_done,omitempty"` + // Deprecated in M113 and replaced by `initial_sync_state`. + // As of M115, this is not populated anymore, but existing values are still + // migrated to `initial_sync_state`. + // TODO(crbug.com/1423338): Fully remove this field after a migration period. + // + // Deprecated: Marked as deprecated in model_type_state.proto. + InitialSyncDoneDeprecated *bool `protobuf:"varint,4,opt,name=initial_sync_done_deprecated,json=initialSyncDoneDeprecated" json:"initial_sync_done_deprecated,omitempty"` + // Indicates the status of "initial sync", i.e. whether the first download + // cycle and initial merge are complete. + InitialSyncState *ModelTypeState_InitialSyncState `protobuf:"varint,9,opt,name=initial_sync_state,json=initialSyncState,enum=sync_pb.ModelTypeState_InitialSyncState" json:"initial_sync_state,omitempty"` // A GUID that identifies the committing sync client. It's persisted within // the sync metadata and should be used to check the integrity of the // metadata. Mismatches with the guid of the running client indicates invalid @@ -56,6 +131,18 @@ type ModelTypeState struct { CacheGuid *string `protobuf:"bytes,5,opt,name=cache_guid,json=cacheGuid" json:"cache_guid,omitempty"` // Syncing account ID, representing the user. AuthenticatedAccountId *string `protobuf:"bytes,6,opt,name=authenticated_account_id,json=authenticatedAccountId" json:"authenticated_account_id,omitempty"` + // The latest unprocessed invalidations received from the server. + // All incoming invalidations are stored in this message and persist until + // they are used in GetUpdate() message. + Invalidations []*ModelTypeState_Invalidation `protobuf:"bytes,7,rep,name=invalidations" json:"invalidations,omitempty"` + // This is relevant for the passwords datatype. This indicates that the + // initial sync flow (downling all passwords from the server) has been run at + // least once after the password notes features is enabled. It is used to + // enforce redownload of passwords upon upgrading the browser to a version + // that supports password notes if necessary. It is false by default and set + // to true upon downloading passwords to make sure this download is executed + // only once. + NotesEnabledBeforeInitialSyncForPasswords *bool `protobuf:"varint,8,opt,name=notes_enabled_before_initial_sync_for_passwords,json=notesEnabledBeforeInitialSyncForPasswords" json:"notes_enabled_before_initial_sync_for_passwords,omitempty"` } func (x *ModelTypeState) Reset() { @@ -111,13 +198,21 @@ func (x *ModelTypeState) GetEncryptionKeyName() string { return "" } -func (x *ModelTypeState) GetInitialSyncDone() bool { - if x != nil && x.InitialSyncDone != nil { - return *x.InitialSyncDone +// Deprecated: Marked as deprecated in model_type_state.proto. +func (x *ModelTypeState) GetInitialSyncDoneDeprecated() bool { + if x != nil && x.InitialSyncDoneDeprecated != nil { + return *x.InitialSyncDoneDeprecated } return false } +func (x *ModelTypeState) GetInitialSyncState() ModelTypeState_InitialSyncState { + if x != nil && x.InitialSyncState != nil { + return *x.InitialSyncState + } + return ModelTypeState_INITIAL_SYNC_STATE_UNSPECIFIED +} + func (x *ModelTypeState) GetCacheGuid() string { if x != nil && x.CacheGuid != nil { return *x.CacheGuid @@ -132,6 +227,78 @@ func (x *ModelTypeState) GetAuthenticatedAccountId() string { return "" } +func (x *ModelTypeState) GetInvalidations() []*ModelTypeState_Invalidation { + if x != nil { + return x.Invalidations + } + return nil +} + +func (x *ModelTypeState) GetNotesEnabledBeforeInitialSyncForPasswords() bool { + if x != nil && x.NotesEnabledBeforeInitialSyncForPasswords != nil { + return *x.NotesEnabledBeforeInitialSyncForPasswords + } + return false +} + +type ModelTypeState_Invalidation struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Opaque field, which has to be provided as part of resulting GetUpdates + // back to the server. + Hint []byte `protobuf:"bytes,1,opt,name=hint" json:"hint,omitempty"` + // Version of invalidation, used to order incoming invalidations. + Version *int64 `protobuf:"varint,2,opt,name=version" json:"version,omitempty"` +} + +func (x *ModelTypeState_Invalidation) Reset() { + *x = ModelTypeState_Invalidation{} + if protoimpl.UnsafeEnabled { + mi := &file_model_type_state_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ModelTypeState_Invalidation) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ModelTypeState_Invalidation) ProtoMessage() {} + +func (x *ModelTypeState_Invalidation) ProtoReflect() protoreflect.Message { + mi := &file_model_type_state_proto_msgTypes[1] + 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 ModelTypeState_Invalidation.ProtoReflect.Descriptor instead. +func (*ModelTypeState_Invalidation) Descriptor() ([]byte, []int) { + return file_model_type_state_proto_rawDescGZIP(), []int{0, 0} +} + +func (x *ModelTypeState_Invalidation) GetHint() []byte { + if x != nil { + return x.Hint + } + return nil +} + +func (x *ModelTypeState_Invalidation) GetVersion() int64 { + if x != nil && x.Version != nil { + return *x.Version + } + return 0 +} + var File_model_type_state_proto protoreflect.FileDescriptor var file_model_type_state_proto_rawDesc = []byte{ @@ -139,7 +306,7 @@ var file_model_type_state_proto_rawDesc = []byte{ 0x74, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x07, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x1a, 0x1f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x22, 0xcc, 0x02, 0x0a, 0x0e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, + 0x74, 0x6f, 0x22, 0xba, 0x06, 0x0a, 0x0e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x48, 0x0a, 0x0f, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, @@ -151,18 +318,50 @@ var file_model_type_state_proto_rawDesc = []byte{ 0x0b, 0x74, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x2e, 0x0a, 0x13, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x65, 0x6e, 0x63, 0x72, 0x79, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x11, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x43, 0x0a, 0x1c, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x64, 0x6f, 0x6e, - 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, - 0x53, 0x79, 0x6e, 0x63, 0x44, 0x6f, 0x6e, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x61, 0x63, 0x68, - 0x65, 0x5f, 0x67, 0x75, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x61, - 0x63, 0x68, 0x65, 0x47, 0x75, 0x69, 0x64, 0x12, 0x38, 0x0a, 0x18, 0x61, 0x75, 0x74, 0x68, 0x65, - 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x16, 0x61, 0x75, 0x74, 0x68, 0x65, - 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, - 0x64, 0x42, 0x2b, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, - 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x73, 0x79, 0x6e, - 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x03, 0x50, 0x01, + 0x65, 0x5f, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x08, 0x42, 0x02, 0x18, 0x01, 0x52, 0x19, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x53, + 0x79, 0x6e, 0x63, 0x44, 0x6f, 0x6e, 0x65, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, + 0x64, 0x12, 0x56, 0x0a, 0x12, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x73, 0x79, 0x6e, + 0x63, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, + 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, + 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x53, 0x79, + 0x6e, 0x63, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x10, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, + 0x53, 0x79, 0x6e, 0x63, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x61, 0x63, + 0x68, 0x65, 0x5f, 0x67, 0x75, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, + 0x61, 0x63, 0x68, 0x65, 0x47, 0x75, 0x69, 0x64, 0x12, 0x38, 0x0a, 0x18, 0x61, 0x75, 0x74, 0x68, + 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x16, 0x61, 0x75, 0x74, 0x68, + 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x49, 0x64, 0x12, 0x4a, 0x0a, 0x0d, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x79, 0x6e, 0x63, + 0x5f, 0x70, 0x62, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x2e, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x0d, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x62, + 0x0a, 0x2f, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x5f, + 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x5f, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x73, + 0x79, 0x6e, 0x63, 0x5f, 0x66, 0x6f, 0x72, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, + 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x29, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x45, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x64, 0x42, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x69, 0x74, 0x69, + 0x61, 0x6c, 0x53, 0x79, 0x6e, 0x63, 0x46, 0x6f, 0x72, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, + 0x64, 0x73, 0x1a, 0x3c, 0x0a, 0x0c, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x04, 0x68, 0x69, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x22, 0x8c, 0x01, 0x0a, 0x10, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x53, 0x79, 0x6e, 0x63, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x22, 0x0a, 0x1e, 0x49, 0x4e, 0x49, 0x54, 0x49, 0x41, 0x4c, + 0x5f, 0x53, 0x59, 0x4e, 0x43, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, + 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1f, 0x0a, 0x1b, 0x49, 0x4e, 0x49, + 0x54, 0x49, 0x41, 0x4c, 0x5f, 0x53, 0x59, 0x4e, 0x43, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x41, + 0x4c, 0x4c, 0x59, 0x5f, 0x44, 0x4f, 0x4e, 0x45, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x49, 0x4e, + 0x49, 0x54, 0x49, 0x41, 0x4c, 0x5f, 0x53, 0x59, 0x4e, 0x43, 0x5f, 0x44, 0x4f, 0x4e, 0x45, 0x10, + 0x03, 0x12, 0x1c, 0x0a, 0x18, 0x49, 0x4e, 0x49, 0x54, 0x49, 0x41, 0x4c, 0x5f, 0x53, 0x59, 0x4e, + 0x43, 0x5f, 0x55, 0x4e, 0x4e, 0x45, 0x43, 0x45, 0x53, 0x53, 0x41, 0x52, 0x59, 0x10, 0x04, 0x42, + 0x36, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, + 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x03, 0x50, 0x01, 0x5a, 0x09, 0x2e, 0x2f, + 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, } var ( @@ -177,20 +376,25 @@ func file_model_type_state_proto_rawDescGZIP() []byte { return file_model_type_state_proto_rawDescData } -var file_model_type_state_proto_msgTypes = make([]protoimpl.MessageInfo, 1) +var file_model_type_state_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_model_type_state_proto_msgTypes = make([]protoimpl.MessageInfo, 2) var file_model_type_state_proto_goTypes = []interface{}{ - (*ModelTypeState)(nil), // 0: sync_pb.ModelTypeState - (*DataTypeProgressMarker)(nil), // 1: sync_pb.DataTypeProgressMarker - (*DataTypeContext)(nil), // 2: sync_pb.DataTypeContext + (ModelTypeState_InitialSyncState)(0), // 0: sync_pb.ModelTypeState.InitialSyncState + (*ModelTypeState)(nil), // 1: sync_pb.ModelTypeState + (*ModelTypeState_Invalidation)(nil), // 2: sync_pb.ModelTypeState.Invalidation + (*DataTypeProgressMarker)(nil), // 3: sync_pb.DataTypeProgressMarker + (*DataTypeContext)(nil), // 4: sync_pb.DataTypeContext } var file_model_type_state_proto_depIdxs = []int32{ - 1, // 0: sync_pb.ModelTypeState.progress_marker:type_name -> sync_pb.DataTypeProgressMarker - 2, // 1: sync_pb.ModelTypeState.type_context:type_name -> sync_pb.DataTypeContext - 2, // [2:2] is the sub-list for method output_type - 2, // [2:2] is the sub-list for method input_type - 2, // [2:2] is the sub-list for extension type_name - 2, // [2:2] is the sub-list for extension extendee - 0, // [0:2] is the sub-list for field type_name + 3, // 0: sync_pb.ModelTypeState.progress_marker:type_name -> sync_pb.DataTypeProgressMarker + 4, // 1: sync_pb.ModelTypeState.type_context:type_name -> sync_pb.DataTypeContext + 0, // 2: sync_pb.ModelTypeState.initial_sync_state:type_name -> sync_pb.ModelTypeState.InitialSyncState + 2, // 3: sync_pb.ModelTypeState.invalidations:type_name -> sync_pb.ModelTypeState.Invalidation + 4, // [4:4] is the sub-list for method output_type + 4, // [4:4] is the sub-list for method input_type + 4, // [4:4] is the sub-list for extension type_name + 4, // [4:4] is the sub-list for extension extendee + 0, // [0:4] is the sub-list for field type_name } func init() { file_model_type_state_proto_init() } @@ -212,19 +416,32 @@ func file_model_type_state_proto_init() { return nil } } + file_model_type_state_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ModelTypeState_Invalidation); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_model_type_state_proto_rawDesc, - NumEnums: 0, - NumMessages: 1, + NumEnums: 1, + NumMessages: 2, NumExtensions: 0, NumServices: 0, }, GoTypes: file_model_type_state_proto_goTypes, DependencyIndexes: file_model_type_state_proto_depIdxs, + EnumInfos: file_model_type_state_proto_enumTypes, MessageInfos: file_model_type_state_proto_msgTypes, }.Build() File_model_type_state_proto = out.File diff --git a/schema/protobuf/sync_pb/model_type_state.proto b/schema/protobuf/sync_pb/model_type_state.proto index 5d497f94..28ebe460 100644 --- a/schema/protobuf/sync_pb/model_type_state.proto +++ b/schema/protobuf/sync_pb/model_type_state.proto @@ -1,4 +1,4 @@ -// Copyright 2016 The Chromium Authors. All rights reserved. +// Copyright 2016 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -7,6 +7,8 @@ syntax = "proto2"; +option go_package = "./sync_pb"; + option java_multiple_files = true; option java_package = "org.chromium.components.sync.protocol"; @@ -18,6 +20,26 @@ import "data_type_progress_marker.proto"; // Sync proto to store data type global metadata in model type storage. message ModelTypeState { + enum InitialSyncState { + // Default value, typically used when there is no metadata (e.g. because + // Sync is disabled). + INITIAL_SYNC_STATE_UNSPECIFIED = 0; + + // Note: Value "1" is reserved, in case we ever want to introduce an + // INITIAL_SYNC_STARTED state. + + // Indicates that syncing has started and some, but not all updates from the + // initial download/sync have been delivered. This is only used for data + // types in ApplyUpdatesImmediatelyTypes(). + INITIAL_SYNC_PARTIALLY_DONE = 2; + + // Indicates that the initial sync (download + merge) has been completed. + INITIAL_SYNC_DONE = 3; + + // Indicates that no initial sync is necessary, used for CommitOnlyTypes(). + INITIAL_SYNC_UNNECESSARY = 4; + } + // The latest progress markers received from the server. optional DataTypeProgressMarker progress_marker = 1; @@ -32,10 +54,15 @@ message ModelTypeState { // data to the server using the new encryption key. optional string encryption_key_name = 3; - // This flag is set to true when the first download cycle is complete. The - // ModelTypeProcessor should not attempt to commit any items until this - // flag is set. - optional bool initial_sync_done = 4; + // Deprecated in M113 and replaced by `initial_sync_state`. + // As of M115, this is not populated anymore, but existing values are still + // migrated to `initial_sync_state`. + // TODO(crbug.com/1423338): Fully remove this field after a migration period. + optional bool initial_sync_done_deprecated = 4 [deprecated = true]; + + // Indicates the status of "initial sync", i.e. whether the first download + // cycle and initial merge are complete. + optional InitialSyncState initial_sync_state = 9; // A GUID that identifies the committing sync client. It's persisted within // the sync metadata and should be used to check the integrity of the @@ -46,4 +73,27 @@ message ModelTypeState { // Syncing account ID, representing the user. optional string authenticated_account_id = 6; + + message Invalidation { + // Opaque field, which has to be provided as part of resulting GetUpdates + // back to the server. + optional bytes hint = 1; + + // Version of invalidation, used to order incoming invalidations. + optional int64 version = 2; + } + + // The latest unprocessed invalidations received from the server. + // All incoming invalidations are stored in this message and persist until + // they are used in GetUpdate() message. + repeated Invalidation invalidations = 7; + + // This is relevant for the passwords datatype. This indicates that the + // initial sync flow (downling all passwords from the server) has been run at + // least once after the password notes features is enabled. It is used to + // enforce redownload of passwords upon upgrading the browser to a version + // that supports password notes if necessary. It is false by default and set + // to true upon downloading passwords to make sure this download is executed + // only once. + optional bool notes_enabled_before_initial_sync_for_passwords = 8; } diff --git a/schema/protobuf/sync_pb/model_type_store_schema_descriptor.pb.go b/schema/protobuf/sync_pb/model_type_store_schema_descriptor.pb.go index 750bedb5..a47a7db1 100644 --- a/schema/protobuf/sync_pb/model_type_store_schema_descriptor.pb.go +++ b/schema/protobuf/sync_pb/model_type_store_schema_descriptor.pb.go @@ -1,4 +1,4 @@ -// Copyright 2016 The Chromium Authors. All rights reserved. +// Copyright 2016 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // @@ -10,7 +10,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.0 +// protoc-gen-go v1.31.0 // protoc v3.21.1 // source: model_type_store_schema_descriptor.proto @@ -87,10 +87,11 @@ var file_model_type_store_schema_descriptor_proto_rawDesc = []byte{ 0x53, 0x74, 0x6f, 0x72, 0x65, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x12, 0x25, 0x0a, 0x0e, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x42, 0x2b, 0x0a, 0x25, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x42, 0x36, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x03, 0x50, 0x01, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x03, 0x50, 0x01, 0x5a, 0x09, 0x2e, 0x2f, 0x73, 0x79, 0x6e, + 0x63, 0x5f, 0x70, 0x62, } var ( diff --git a/schema/protobuf/sync_pb/model_type_store_schema_descriptor.proto b/schema/protobuf/sync_pb/model_type_store_schema_descriptor.proto index 3a1ecdad..3c65e24e 100644 --- a/schema/protobuf/sync_pb/model_type_store_schema_descriptor.proto +++ b/schema/protobuf/sync_pb/model_type_store_schema_descriptor.proto @@ -1,4 +1,4 @@ -// Copyright 2016 The Chromium Authors. All rights reserved. +// Copyright 2016 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // @@ -10,6 +10,8 @@ syntax = "proto2"; +option go_package = "./sync_pb"; + option java_multiple_files = true; option java_package = "org.chromium.components.sync.protocol"; diff --git a/schema/protobuf/sync_pb/nigori_local_data.pb.go b/schema/protobuf/sync_pb/nigori_local_data.pb.go index ba6e92a5..1585f69f 100644 --- a/schema/protobuf/sync_pb/nigori_local_data.pb.go +++ b/schema/protobuf/sync_pb/nigori_local_data.pb.go @@ -1,4 +1,4 @@ -// Copyright 2019 The Chromium Authors. All rights reserved. +// Copyright 2019 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -7,7 +7,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.0 +// protoc-gen-go v1.31.0 // protoc v3.21.1 // source: nigori_local_data.proto @@ -27,23 +27,74 @@ const ( _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) +type CrossUserSharingKeys struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Asymmetric private-keys used for cross user sharing. + PrivateKey []*CrossUserSharingPrivateKey `protobuf:"bytes,1,rep,name=private_key,json=privateKey" json:"private_key,omitempty"` +} + +func (x *CrossUserSharingKeys) Reset() { + *x = CrossUserSharingKeys{} + if protoimpl.UnsafeEnabled { + mi := &file_nigori_local_data_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CrossUserSharingKeys) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CrossUserSharingKeys) ProtoMessage() {} + +func (x *CrossUserSharingKeys) ProtoReflect() protoreflect.Message { + mi := &file_nigori_local_data_proto_msgTypes[0] + 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 CrossUserSharingKeys.ProtoReflect.Descriptor instead. +func (*CrossUserSharingKeys) Descriptor() ([]byte, []int) { + return file_nigori_local_data_proto_rawDescGZIP(), []int{0} +} + +func (x *CrossUserSharingKeys) GetPrivateKey() []*CrossUserSharingPrivateKey { + if x != nil { + return x.PrivateKey + } + return nil +} + type CryptographerData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Contains all known Nigori keys. + // TODO(crbug/1445056): fork the NigoriKeyBag into a local proto. KeyBag *NigoriKeyBag `protobuf:"bytes,1,opt,name=key_bag,json=keyBag" json:"key_bag,omitempty"` // Default key is the key, that should be used for encryption. Can be empty // in case we have pending keys (waiting for explicit passphrase, or client // didn't received keystore keys). DefaultKeyName *string `protobuf:"bytes,2,opt,name=default_key_name,json=defaultKeyName" json:"default_key_name,omitempty"` + // Contains cross user sharing related keys. + CrossUserSharingKeys *CrossUserSharingKeys `protobuf:"bytes,3,opt,name=cross_user_sharing_keys,json=crossUserSharingKeys" json:"cross_user_sharing_keys,omitempty"` } func (x *CryptographerData) Reset() { *x = CryptographerData{} if protoimpl.UnsafeEnabled { - mi := &file_nigori_local_data_proto_msgTypes[0] + mi := &file_nigori_local_data_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -56,7 +107,7 @@ func (x *CryptographerData) String() string { func (*CryptographerData) ProtoMessage() {} func (x *CryptographerData) ProtoReflect() protoreflect.Message { - mi := &file_nigori_local_data_proto_msgTypes[0] + mi := &file_nigori_local_data_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -69,7 +120,7 @@ func (x *CryptographerData) ProtoReflect() protoreflect.Message { // Deprecated: Use CryptographerData.ProtoReflect.Descriptor instead. func (*CryptographerData) Descriptor() ([]byte, []int) { - return file_nigori_local_data_proto_rawDescGZIP(), []int{0} + return file_nigori_local_data_proto_rawDescGZIP(), []int{1} } func (x *CryptographerData) GetKeyBag() *NigoriKeyBag { @@ -86,6 +137,13 @@ func (x *CryptographerData) GetDefaultKeyName() string { return "" } +func (x *CryptographerData) GetCrossUserSharingKeys() *CrossUserSharingKeys { + if x != nil { + return x.CrossUserSharingKeys + } + return nil +} + type CustomPassphraseKeyDerivationParams struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -101,7 +159,7 @@ type CustomPassphraseKeyDerivationParams struct { func (x *CustomPassphraseKeyDerivationParams) Reset() { *x = CustomPassphraseKeyDerivationParams{} if protoimpl.UnsafeEnabled { - mi := &file_nigori_local_data_proto_msgTypes[1] + mi := &file_nigori_local_data_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -114,7 +172,7 @@ func (x *CustomPassphraseKeyDerivationParams) String() string { func (*CustomPassphraseKeyDerivationParams) ProtoMessage() {} func (x *CustomPassphraseKeyDerivationParams) ProtoReflect() protoreflect.Message { - mi := &file_nigori_local_data_proto_msgTypes[1] + mi := &file_nigori_local_data_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -127,7 +185,7 @@ func (x *CustomPassphraseKeyDerivationParams) ProtoReflect() protoreflect.Messag // Deprecated: Use CustomPassphraseKeyDerivationParams.ProtoReflect.Descriptor instead. func (*CustomPassphraseKeyDerivationParams) Descriptor() ([]byte, []int) { - return file_nigori_local_data_proto_rawDescGZIP(), []int{1} + return file_nigori_local_data_proto_rawDescGZIP(), []int{2} } func (x *CustomPassphraseKeyDerivationParams) GetCustomPassphraseKeyDerivationMethod() NigoriSpecifics_KeyDerivationMethod { @@ -193,6 +251,8 @@ type NigoriModel struct { LastDefaultTrustedVaultKeyName *string `protobuf:"bytes,12,opt,name=last_default_trusted_vault_key_name,json=lastDefaultTrustedVaultKeyName" json:"last_default_trusted_vault_key_name,omitempty"` // Some debug-only fields for passphrase type TRUSTED_VAULT_PASSPHRASE. TrustedVaultDebugInfo *NigoriSpecifics_TrustedVaultDebugInfo `protobuf:"bytes,13,opt,name=trusted_vault_debug_info,json=trustedVaultDebugInfo" json:"trusted_vault_debug_info,omitempty"` + // Current Public-key. + CrossUserSharingPublicKey *CrossUserSharingPublicKey `protobuf:"bytes,14,opt,name=cross_user_sharing_public_key,json=crossUserSharingPublicKey" json:"cross_user_sharing_public_key,omitempty"` } // Default values for NigoriModel fields. @@ -203,7 +263,7 @@ const ( func (x *NigoriModel) Reset() { *x = NigoriModel{} if protoimpl.UnsafeEnabled { - mi := &file_nigori_local_data_proto_msgTypes[2] + mi := &file_nigori_local_data_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -216,7 +276,7 @@ func (x *NigoriModel) String() string { func (*NigoriModel) ProtoMessage() {} func (x *NigoriModel) ProtoReflect() protoreflect.Message { - mi := &file_nigori_local_data_proto_msgTypes[2] + mi := &file_nigori_local_data_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -229,7 +289,7 @@ func (x *NigoriModel) ProtoReflect() protoreflect.Message { // Deprecated: Use NigoriModel.ProtoReflect.Descriptor instead. func (*NigoriModel) Descriptor() ([]byte, []int) { - return file_nigori_local_data_proto_rawDescGZIP(), []int{2} + return file_nigori_local_data_proto_rawDescGZIP(), []int{3} } func (x *NigoriModel) GetCryptographerData() *CryptographerData { @@ -323,6 +383,13 @@ func (x *NigoriModel) GetTrustedVaultDebugInfo() *NigoriSpecifics_TrustedVaultDe return nil } +func (x *NigoriModel) GetCrossUserSharingPublicKey() *CrossUserSharingPublicKey { + if x != nil { + return x.CrossUserSharingPublicKey + } + return nil +} + // Sync proto to store Nigori data in storage. Proto should be encrypted with // os_crypt before storing it somewhere, because it contains sensitive data ( // nigori_model.cryptographer_data.key_bag and nigori_model.keystore_keys). @@ -342,7 +409,7 @@ type NigoriLocalData struct { func (x *NigoriLocalData) Reset() { *x = NigoriLocalData{} if protoimpl.UnsafeEnabled { - mi := &file_nigori_local_data_proto_msgTypes[3] + mi := &file_nigori_local_data_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -355,7 +422,7 @@ func (x *NigoriLocalData) String() string { func (*NigoriLocalData) ProtoMessage() {} func (x *NigoriLocalData) ProtoReflect() protoreflect.Message { - mi := &file_nigori_local_data_proto_msgTypes[3] + mi := &file_nigori_local_data_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -368,7 +435,7 @@ func (x *NigoriLocalData) ProtoReflect() protoreflect.Message { // Deprecated: Use NigoriLocalData.ProtoReflect.Descriptor instead. func (*NigoriLocalData) Descriptor() ([]byte, []int) { - return file_nigori_local_data_proto_rawDescGZIP(), []int{3} + return file_nigori_local_data_proto_rawDescGZIP(), []int{4} } func (x *NigoriLocalData) GetModelTypeState() *ModelTypeState { @@ -402,108 +469,126 @@ var file_nigori_local_data_proto_rawDesc = []byte{ 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x16, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x16, 0x6e, 0x69, 0x67, 0x6f, 0x72, 0x69, 0x5f, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x6d, 0x0a, 0x11, 0x43, - 0x72, 0x79, 0x70, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x70, 0x68, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, - 0x12, 0x2e, 0x0a, 0x07, 0x6b, 0x65, 0x79, 0x5f, 0x62, 0x61, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x4e, 0x69, 0x67, 0x6f, - 0x72, 0x69, 0x4b, 0x65, 0x79, 0x42, 0x61, 0x67, 0x52, 0x06, 0x6b, 0x65, 0x79, 0x42, 0x61, 0x67, - 0x12, 0x28, 0x0a, 0x10, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x64, 0x65, 0x66, 0x61, - 0x75, 0x6c, 0x74, 0x4b, 0x65, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xfc, 0x01, 0x0a, 0x23, 0x43, - 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x50, 0x61, 0x73, 0x73, 0x70, 0x68, 0x72, 0x61, 0x73, 0x65, 0x4b, - 0x65, 0x79, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x12, 0x82, 0x01, 0x0a, 0x27, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x70, 0x61, - 0x73, 0x73, 0x70, 0x68, 0x72, 0x61, 0x73, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x64, 0x65, 0x72, - 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x4e, - 0x69, 0x67, 0x6f, 0x72, 0x69, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x4b, - 0x65, 0x79, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x68, - 0x6f, 0x64, 0x52, 0x23, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x50, 0x61, 0x73, 0x73, 0x70, 0x68, + 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x5c, 0x0a, 0x14, 0x43, + 0x72, 0x6f, 0x73, 0x73, 0x55, 0x73, 0x65, 0x72, 0x53, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x4b, + 0x65, 0x79, 0x73, 0x12, 0x44, 0x0a, 0x0b, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x5f, 0x6b, + 0x65, 0x79, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, + 0x70, 0x62, 0x2e, 0x43, 0x72, 0x6f, 0x73, 0x73, 0x55, 0x73, 0x65, 0x72, 0x53, 0x68, 0x61, 0x72, + 0x69, 0x6e, 0x67, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x52, 0x0a, 0x70, + 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x22, 0xc3, 0x01, 0x0a, 0x11, 0x43, 0x72, + 0x79, 0x70, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x70, 0x68, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, + 0x2e, 0x0a, 0x07, 0x6b, 0x65, 0x79, 0x5f, 0x62, 0x61, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x15, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x4e, 0x69, 0x67, 0x6f, 0x72, + 0x69, 0x4b, 0x65, 0x79, 0x42, 0x61, 0x67, 0x52, 0x06, 0x6b, 0x65, 0x79, 0x42, 0x61, 0x67, 0x12, + 0x28, 0x0a, 0x10, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x64, 0x65, 0x66, 0x61, 0x75, + 0x6c, 0x74, 0x4b, 0x65, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x54, 0x0a, 0x17, 0x63, 0x72, 0x6f, + 0x73, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x5f, + 0x6b, 0x65, 0x79, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x73, 0x79, 0x6e, + 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x72, 0x6f, 0x73, 0x73, 0x55, 0x73, 0x65, 0x72, 0x53, 0x68, + 0x61, 0x72, 0x69, 0x6e, 0x67, 0x4b, 0x65, 0x79, 0x73, 0x52, 0x14, 0x63, 0x72, 0x6f, 0x73, 0x73, + 0x55, 0x73, 0x65, 0x72, 0x53, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x4b, 0x65, 0x79, 0x73, 0x22, + 0xfc, 0x01, 0x0a, 0x23, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x50, 0x61, 0x73, 0x73, 0x70, 0x68, 0x72, 0x61, 0x73, 0x65, 0x4b, 0x65, 0x79, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x50, 0x0a, 0x25, 0x63, 0x75, 0x73, 0x74, 0x6f, - 0x6d, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x70, 0x68, 0x72, 0x61, 0x73, 0x65, 0x5f, 0x6b, 0x65, 0x79, - 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x61, 0x6c, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x21, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x50, 0x61, - 0x73, 0x73, 0x70, 0x68, 0x72, 0x61, 0x73, 0x65, 0x4b, 0x65, 0x79, 0x44, 0x65, 0x72, 0x69, 0x76, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x61, 0x6c, 0x74, 0x22, 0xd9, 0x07, 0x0a, 0x0b, 0x4e, 0x69, - 0x67, 0x6f, 0x72, 0x69, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x49, 0x0a, 0x12, 0x63, 0x72, 0x79, - 0x70, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x70, 0x68, 0x65, 0x72, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, - 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x70, 0x68, 0x65, 0x72, 0x44, 0x61, 0x74, - 0x61, 0x52, 0x11, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x70, 0x68, 0x65, 0x72, - 0x44, 0x61, 0x74, 0x61, 0x12, 0x39, 0x0a, 0x19, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, - 0x6b, 0x65, 0x79, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x16, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, - 0x4b, 0x65, 0x79, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x4b, 0x65, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x39, 0x0a, 0x0c, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, - 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0b, 0x70, - 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x59, 0x0a, 0x0f, 0x70, 0x61, - 0x73, 0x73, 0x70, 0x68, 0x72, 0x61, 0x73, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x4e, 0x69, - 0x67, 0x6f, 0x72, 0x69, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x50, 0x61, - 0x73, 0x73, 0x70, 0x68, 0x72, 0x61, 0x73, 0x65, 0x54, 0x79, 0x70, 0x65, 0x3a, 0x07, 0x55, 0x4e, - 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x52, 0x0e, 0x70, 0x61, 0x73, 0x73, 0x70, 0x68, 0x72, 0x61, 0x73, - 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x36, 0x0a, 0x17, 0x6b, 0x65, 0x79, 0x73, 0x74, 0x6f, 0x72, - 0x65, 0x5f, 0x6d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x15, 0x6b, 0x65, 0x79, 0x73, 0x74, 0x6f, 0x72, 0x65, - 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x34, 0x0a, - 0x16, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x70, 0x68, 0x72, 0x61, - 0x73, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x14, 0x63, - 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x50, 0x61, 0x73, 0x73, 0x70, 0x68, 0x72, 0x61, 0x73, 0x65, 0x54, - 0x69, 0x6d, 0x65, 0x12, 0x82, 0x01, 0x0a, 0x27, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x70, - 0x61, 0x73, 0x73, 0x70, 0x68, 0x72, 0x61, 0x73, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x64, 0x65, - 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, - 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x50, 0x61, 0x73, 0x73, 0x70, 0x68, 0x72, 0x61, 0x73, 0x65, - 0x4b, 0x65, 0x79, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x52, 0x23, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x50, 0x61, 0x73, 0x73, 0x70, + 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x82, 0x01, 0x0a, 0x27, 0x63, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x70, 0x68, 0x72, 0x61, 0x73, 0x65, 0x5f, 0x6b, 0x65, + 0x79, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x65, 0x74, + 0x68, 0x6f, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x73, 0x79, 0x6e, 0x63, + 0x5f, 0x70, 0x62, 0x2e, 0x4e, 0x69, 0x67, 0x6f, 0x72, 0x69, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x63, 0x73, 0x2e, 0x4b, 0x65, 0x79, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x52, 0x23, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x50, + 0x61, 0x73, 0x73, 0x70, 0x68, 0x72, 0x61, 0x73, 0x65, 0x4b, 0x65, 0x79, 0x44, 0x65, 0x72, 0x69, + 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x50, 0x0a, 0x25, + 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x70, 0x68, 0x72, 0x61, 0x73, + 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x73, 0x61, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x21, 0x63, 0x75, 0x73, + 0x74, 0x6f, 0x6d, 0x50, 0x61, 0x73, 0x73, 0x70, 0x68, 0x72, 0x61, 0x73, 0x65, 0x4b, 0x65, 0x79, + 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x61, 0x6c, 0x74, 0x22, 0xbf, + 0x08, 0x0a, 0x0b, 0x4e, 0x69, 0x67, 0x6f, 0x72, 0x69, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x49, + 0x0a, 0x12, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x70, 0x68, 0x65, 0x72, 0x5f, + 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x73, 0x79, 0x6e, + 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x70, 0x68, + 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, 0x11, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x67, 0x72, + 0x61, 0x70, 0x68, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x39, 0x0a, 0x19, 0x63, 0x75, 0x72, + 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x5f, 0x6b, 0x65, + 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x16, 0x63, 0x75, + 0x72, 0x72, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x4b, 0x65, 0x79, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x39, 0x0a, 0x0c, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, + 0x6b, 0x65, 0x79, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x79, 0x6e, + 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x44, 0x61, + 0x74, 0x61, 0x52, 0x0b, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4b, 0x65, 0x79, 0x73, 0x12, + 0x59, 0x0a, 0x0f, 0x70, 0x61, 0x73, 0x73, 0x70, 0x68, 0x72, 0x61, 0x73, 0x65, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, + 0x70, 0x62, 0x2e, 0x4e, 0x69, 0x67, 0x6f, 0x72, 0x69, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x63, 0x73, 0x2e, 0x50, 0x61, 0x73, 0x73, 0x70, 0x68, 0x72, 0x61, 0x73, 0x65, 0x54, 0x79, 0x70, + 0x65, 0x3a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x52, 0x0e, 0x70, 0x61, 0x73, 0x73, + 0x70, 0x68, 0x72, 0x61, 0x73, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x36, 0x0a, 0x17, 0x6b, 0x65, + 0x79, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x5f, 0x6d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x15, 0x6b, 0x65, 0x79, + 0x73, 0x74, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, + 0x6d, 0x65, 0x12, 0x34, 0x0a, 0x16, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x70, 0x61, 0x73, + 0x73, 0x70, 0x68, 0x72, 0x61, 0x73, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x14, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x50, 0x61, 0x73, 0x73, 0x70, 0x68, + 0x72, 0x61, 0x73, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x82, 0x01, 0x0a, 0x27, 0x63, 0x75, 0x73, + 0x74, 0x6f, 0x6d, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x70, 0x68, 0x72, 0x61, 0x73, 0x65, 0x5f, 0x6b, + 0x65, 0x79, 0x5f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x73, 0x79, 0x6e, + 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x50, 0x61, 0x73, 0x73, 0x70, 0x68, 0x72, 0x61, 0x73, 0x65, 0x4b, 0x65, 0x79, 0x44, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x2d, 0x0a, 0x12, 0x65, 0x6e, 0x63, 0x72, - 0x79, 0x70, 0x74, 0x5f, 0x65, 0x76, 0x65, 0x72, 0x79, 0x74, 0x68, 0x69, 0x6e, 0x67, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x45, 0x76, 0x65, - 0x72, 0x79, 0x74, 0x68, 0x69, 0x6e, 0x67, 0x12, 0x52, 0x0a, 0x26, 0x65, 0x6e, 0x63, 0x72, 0x79, - 0x70, 0x74, 0x65, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x63, 0x73, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x18, 0x09, 0x20, 0x03, 0x28, 0x05, 0x52, 0x22, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, - 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, 0x73, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, - 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x21, 0x0a, 0x0c, 0x6b, - 0x65, 0x79, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x0a, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x0b, 0x6b, 0x65, 0x79, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x5f, - 0x0a, 0x20, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x74, 0x6f, - 0x72, 0x65, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x72, 0x5f, 0x74, 0x6f, 0x6b, - 0x65, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, - 0x70, 0x62, 0x2e, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, - 0x52, 0x1d, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4b, 0x65, 0x79, 0x73, 0x74, 0x6f, 0x72, - 0x65, 0x44, 0x65, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, - 0x4b, 0x0a, 0x23, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, - 0x74, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x76, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x6b, 0x65, - 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1e, 0x6c, 0x61, - 0x73, 0x74, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x54, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, - 0x56, 0x61, 0x75, 0x6c, 0x74, 0x4b, 0x65, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x67, 0x0a, 0x18, - 0x74, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x76, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x64, 0x65, - 0x62, 0x75, 0x67, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, - 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x4e, 0x69, 0x67, 0x6f, 0x72, 0x69, 0x53, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x54, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, - 0x56, 0x61, 0x75, 0x6c, 0x74, 0x44, 0x65, 0x62, 0x75, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x15, - 0x74, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x56, 0x61, 0x75, 0x6c, 0x74, 0x44, 0x65, 0x62, 0x75, - 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0xcf, 0x01, 0x0a, 0x0f, 0x4e, 0x69, 0x67, 0x6f, 0x72, 0x69, - 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x12, 0x41, 0x0a, 0x10, 0x6d, 0x6f, 0x64, - 0x65, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x4d, 0x6f, - 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0e, 0x6d, 0x6f, - 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x40, 0x0a, 0x0f, - 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, - 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x0e, - 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x37, - 0x0a, 0x0c, 0x6e, 0x69, 0x67, 0x6f, 0x72, 0x69, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x4e, - 0x69, 0x67, 0x6f, 0x72, 0x69, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x0b, 0x6e, 0x69, 0x67, 0x6f, - 0x72, 0x69, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x42, 0x2b, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, - 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, - 0x74, 0x73, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, - 0x48, 0x03, 0x50, 0x01, + 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x23, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, + 0x50, 0x61, 0x73, 0x73, 0x70, 0x68, 0x72, 0x61, 0x73, 0x65, 0x4b, 0x65, 0x79, 0x44, 0x65, 0x72, + 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x2d, 0x0a, + 0x12, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x5f, 0x65, 0x76, 0x65, 0x72, 0x79, 0x74, 0x68, + 0x69, 0x6e, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x65, 0x6e, 0x63, 0x72, 0x79, + 0x70, 0x74, 0x45, 0x76, 0x65, 0x72, 0x79, 0x74, 0x68, 0x69, 0x6e, 0x67, 0x12, 0x52, 0x0a, 0x26, + 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x5f, + 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x09, 0x20, 0x03, 0x28, 0x05, 0x52, 0x22, 0x65, 0x6e, + 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, 0x73, 0x53, 0x70, 0x65, 0x63, + 0x69, 0x66, 0x69, 0x63, 0x73, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x12, 0x21, 0x0a, 0x0c, 0x6b, 0x65, 0x79, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x5f, 0x6b, 0x65, 0x79, + 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x6b, 0x65, 0x79, 0x73, 0x74, 0x6f, 0x72, 0x65, + 0x4b, 0x65, 0x79, 0x12, 0x5f, 0x0a, 0x20, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x6b, + 0x65, 0x79, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, + 0x72, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, + 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, + 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x1d, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4b, 0x65, + 0x79, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x44, 0x65, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x72, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x4b, 0x0a, 0x23, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x64, 0x65, 0x66, + 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x74, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x76, 0x61, 0x75, + 0x6c, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x1e, 0x6c, 0x61, 0x73, 0x74, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x54, 0x72, + 0x75, 0x73, 0x74, 0x65, 0x64, 0x56, 0x61, 0x75, 0x6c, 0x74, 0x4b, 0x65, 0x79, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x67, 0x0a, 0x18, 0x74, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x76, 0x61, 0x75, + 0x6c, 0x74, 0x5f, 0x64, 0x65, 0x62, 0x75, 0x67, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x0d, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x4e, 0x69, + 0x67, 0x6f, 0x72, 0x69, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x54, 0x72, + 0x75, 0x73, 0x74, 0x65, 0x64, 0x56, 0x61, 0x75, 0x6c, 0x74, 0x44, 0x65, 0x62, 0x75, 0x67, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x15, 0x74, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x56, 0x61, 0x75, 0x6c, + 0x74, 0x44, 0x65, 0x62, 0x75, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x64, 0x0a, 0x1d, 0x63, 0x72, + 0x6f, 0x73, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, + 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x0e, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x22, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x72, 0x6f, 0x73, + 0x73, 0x55, 0x73, 0x65, 0x72, 0x53, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x50, 0x75, 0x62, 0x6c, + 0x69, 0x63, 0x4b, 0x65, 0x79, 0x52, 0x19, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x55, 0x73, 0x65, 0x72, + 0x53, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, + 0x22, 0xcf, 0x01, 0x0a, 0x0f, 0x4e, 0x69, 0x67, 0x6f, 0x72, 0x69, 0x4c, 0x6f, 0x63, 0x61, 0x6c, + 0x44, 0x61, 0x74, 0x61, 0x12, 0x41, 0x0a, 0x10, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, + 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, + 0x70, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, + 0x70, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x40, 0x0a, 0x0f, 0x65, 0x6e, 0x74, 0x69, 0x74, + 0x79, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x17, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, + 0x79, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x0e, 0x65, 0x6e, 0x74, 0x69, 0x74, + 0x79, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x37, 0x0a, 0x0c, 0x6e, 0x69, 0x67, + 0x6f, 0x72, 0x69, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x14, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x4e, 0x69, 0x67, 0x6f, 0x72, 0x69, + 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x0b, 0x6e, 0x69, 0x67, 0x6f, 0x72, 0x69, 0x4d, 0x6f, 0x64, + 0x65, 0x6c, 0x42, 0x36, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, + 0x75, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x73, 0x79, + 0x6e, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x03, 0x50, 0x01, 0x5a, + 0x09, 0x2e, 0x2f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, } var ( @@ -518,37 +603,43 @@ func file_nigori_local_data_proto_rawDescGZIP() []byte { return file_nigori_local_data_proto_rawDescData } -var file_nigori_local_data_proto_msgTypes = make([]protoimpl.MessageInfo, 4) +var file_nigori_local_data_proto_msgTypes = make([]protoimpl.MessageInfo, 5) var file_nigori_local_data_proto_goTypes = []interface{}{ - (*CryptographerData)(nil), // 0: sync_pb.CryptographerData - (*CustomPassphraseKeyDerivationParams)(nil), // 1: sync_pb.CustomPassphraseKeyDerivationParams - (*NigoriModel)(nil), // 2: sync_pb.NigoriModel - (*NigoriLocalData)(nil), // 3: sync_pb.NigoriLocalData - (*NigoriKeyBag)(nil), // 4: sync_pb.NigoriKeyBag - (NigoriSpecifics_KeyDerivationMethod)(0), // 5: sync_pb.NigoriSpecifics.KeyDerivationMethod - (*EncryptedData)(nil), // 6: sync_pb.EncryptedData - (NigoriSpecifics_PassphraseType)(0), // 7: sync_pb.NigoriSpecifics.PassphraseType - (*NigoriSpecifics_TrustedVaultDebugInfo)(nil), // 8: sync_pb.NigoriSpecifics.TrustedVaultDebugInfo - (*ModelTypeState)(nil), // 9: sync_pb.ModelTypeState - (*EntityMetadata)(nil), // 10: sync_pb.EntityMetadata + (*CrossUserSharingKeys)(nil), // 0: sync_pb.CrossUserSharingKeys + (*CryptographerData)(nil), // 1: sync_pb.CryptographerData + (*CustomPassphraseKeyDerivationParams)(nil), // 2: sync_pb.CustomPassphraseKeyDerivationParams + (*NigoriModel)(nil), // 3: sync_pb.NigoriModel + (*NigoriLocalData)(nil), // 4: sync_pb.NigoriLocalData + (*CrossUserSharingPrivateKey)(nil), // 5: sync_pb.CrossUserSharingPrivateKey + (*NigoriKeyBag)(nil), // 6: sync_pb.NigoriKeyBag + (NigoriSpecifics_KeyDerivationMethod)(0), // 7: sync_pb.NigoriSpecifics.KeyDerivationMethod + (*EncryptedData)(nil), // 8: sync_pb.EncryptedData + (NigoriSpecifics_PassphraseType)(0), // 9: sync_pb.NigoriSpecifics.PassphraseType + (*NigoriSpecifics_TrustedVaultDebugInfo)(nil), // 10: sync_pb.NigoriSpecifics.TrustedVaultDebugInfo + (*CrossUserSharingPublicKey)(nil), // 11: sync_pb.CrossUserSharingPublicKey + (*ModelTypeState)(nil), // 12: sync_pb.ModelTypeState + (*EntityMetadata)(nil), // 13: sync_pb.EntityMetadata } var file_nigori_local_data_proto_depIdxs = []int32{ - 4, // 0: sync_pb.CryptographerData.key_bag:type_name -> sync_pb.NigoriKeyBag - 5, // 1: sync_pb.CustomPassphraseKeyDerivationParams.custom_passphrase_key_derivation_method:type_name -> sync_pb.NigoriSpecifics.KeyDerivationMethod - 0, // 2: sync_pb.NigoriModel.cryptographer_data:type_name -> sync_pb.CryptographerData - 6, // 3: sync_pb.NigoriModel.pending_keys:type_name -> sync_pb.EncryptedData - 7, // 4: sync_pb.NigoriModel.passphrase_type:type_name -> sync_pb.NigoriSpecifics.PassphraseType - 1, // 5: sync_pb.NigoriModel.custom_passphrase_key_derivation_params:type_name -> sync_pb.CustomPassphraseKeyDerivationParams - 6, // 6: sync_pb.NigoriModel.pending_keystore_decryptor_token:type_name -> sync_pb.EncryptedData - 8, // 7: sync_pb.NigoriModel.trusted_vault_debug_info:type_name -> sync_pb.NigoriSpecifics.TrustedVaultDebugInfo - 9, // 8: sync_pb.NigoriLocalData.model_type_state:type_name -> sync_pb.ModelTypeState - 10, // 9: sync_pb.NigoriLocalData.entity_metadata:type_name -> sync_pb.EntityMetadata - 2, // 10: sync_pb.NigoriLocalData.nigori_model:type_name -> sync_pb.NigoriModel - 11, // [11:11] is the sub-list for method output_type - 11, // [11:11] is the sub-list for method input_type - 11, // [11:11] is the sub-list for extension type_name - 11, // [11:11] is the sub-list for extension extendee - 0, // [0:11] is the sub-list for field type_name + 5, // 0: sync_pb.CrossUserSharingKeys.private_key:type_name -> sync_pb.CrossUserSharingPrivateKey + 6, // 1: sync_pb.CryptographerData.key_bag:type_name -> sync_pb.NigoriKeyBag + 0, // 2: sync_pb.CryptographerData.cross_user_sharing_keys:type_name -> sync_pb.CrossUserSharingKeys + 7, // 3: sync_pb.CustomPassphraseKeyDerivationParams.custom_passphrase_key_derivation_method:type_name -> sync_pb.NigoriSpecifics.KeyDerivationMethod + 1, // 4: sync_pb.NigoriModel.cryptographer_data:type_name -> sync_pb.CryptographerData + 8, // 5: sync_pb.NigoriModel.pending_keys:type_name -> sync_pb.EncryptedData + 9, // 6: sync_pb.NigoriModel.passphrase_type:type_name -> sync_pb.NigoriSpecifics.PassphraseType + 2, // 7: sync_pb.NigoriModel.custom_passphrase_key_derivation_params:type_name -> sync_pb.CustomPassphraseKeyDerivationParams + 8, // 8: sync_pb.NigoriModel.pending_keystore_decryptor_token:type_name -> sync_pb.EncryptedData + 10, // 9: sync_pb.NigoriModel.trusted_vault_debug_info:type_name -> sync_pb.NigoriSpecifics.TrustedVaultDebugInfo + 11, // 10: sync_pb.NigoriModel.cross_user_sharing_public_key:type_name -> sync_pb.CrossUserSharingPublicKey + 12, // 11: sync_pb.NigoriLocalData.model_type_state:type_name -> sync_pb.ModelTypeState + 13, // 12: sync_pb.NigoriLocalData.entity_metadata:type_name -> sync_pb.EntityMetadata + 3, // 13: sync_pb.NigoriLocalData.nigori_model:type_name -> sync_pb.NigoriModel + 14, // [14:14] is the sub-list for method output_type + 14, // [14:14] is the sub-list for method input_type + 14, // [14:14] is the sub-list for extension type_name + 14, // [14:14] is the sub-list for extension extendee + 0, // [0:14] is the sub-list for field type_name } func init() { file_nigori_local_data_proto_init() } @@ -562,7 +653,7 @@ func file_nigori_local_data_proto_init() { file_nigori_specifics_proto_init() if !protoimpl.UnsafeEnabled { file_nigori_local_data_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CryptographerData); i { + switch v := v.(*CrossUserSharingKeys); i { case 0: return &v.state case 1: @@ -574,7 +665,7 @@ func file_nigori_local_data_proto_init() { } } file_nigori_local_data_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CustomPassphraseKeyDerivationParams); i { + switch v := v.(*CryptographerData); i { case 0: return &v.state case 1: @@ -586,7 +677,7 @@ func file_nigori_local_data_proto_init() { } } file_nigori_local_data_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*NigoriModel); i { + switch v := v.(*CustomPassphraseKeyDerivationParams); i { case 0: return &v.state case 1: @@ -598,6 +689,18 @@ func file_nigori_local_data_proto_init() { } } file_nigori_local_data_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*NigoriModel); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_nigori_local_data_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*NigoriLocalData); i { case 0: return &v.state @@ -616,7 +719,7 @@ func file_nigori_local_data_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_nigori_local_data_proto_rawDesc, NumEnums: 0, - NumMessages: 4, + NumMessages: 5, NumExtensions: 0, NumServices: 0, }, diff --git a/schema/protobuf/sync_pb/nigori_local_data.proto b/schema/protobuf/sync_pb/nigori_local_data.proto index 929aca4f..bfc4eb71 100644 --- a/schema/protobuf/sync_pb/nigori_local_data.proto +++ b/schema/protobuf/sync_pb/nigori_local_data.proto @@ -1,4 +1,4 @@ -// Copyright 2019 The Chromium Authors. All rights reserved. +// Copyright 2019 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -7,6 +7,8 @@ syntax = "proto2"; +option go_package = "./sync_pb"; + option java_multiple_files = true; option java_package = "org.chromium.components.sync.protocol"; @@ -19,14 +21,23 @@ import "entity_metadata.proto"; import "model_type_state.proto"; import "nigori_specifics.proto"; +message CrossUserSharingKeys { + // Asymmetric private-keys used for cross user sharing. + repeated CrossUserSharingPrivateKey private_key = 1; +} + message CryptographerData { // Contains all known Nigori keys. + // TODO(crbug/1445056): fork the NigoriKeyBag into a local proto. optional NigoriKeyBag key_bag = 1; // Default key is the key, that should be used for encryption. Can be empty // in case we have pending keys (waiting for explicit passphrase, or client // didn't received keystore keys). optional string default_key_name = 2; + + // Contains cross user sharing related keys. + optional CrossUserSharingKeys cross_user_sharing_keys = 3; } message CustomPassphraseKeyDerivationParams { @@ -98,6 +109,9 @@ message NigoriModel { // Some debug-only fields for passphrase type TRUSTED_VAULT_PASSPHRASE. optional NigoriSpecifics.TrustedVaultDebugInfo trusted_vault_debug_info = 13; + + // Current Public-key. + optional CrossUserSharingPublicKey cross_user_sharing_public_key = 14; } // Sync proto to store Nigori data in storage. Proto should be encrypted with @@ -112,4 +126,4 @@ message NigoriLocalData { // Nigori model state. optional NigoriModel nigori_model = 3; -} \ No newline at end of file +} diff --git a/schema/protobuf/sync_pb/nigori_specifics.pb.go b/schema/protobuf/sync_pb/nigori_specifics.pb.go index 3affbd5e..ee3daf89 100644 --- a/schema/protobuf/sync_pb/nigori_specifics.pb.go +++ b/schema/protobuf/sync_pb/nigori_specifics.pb.go @@ -1,4 +1,4 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2012 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // @@ -9,7 +9,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.0 +// protoc-gen-go v1.31.0 // protoc v3.21.1 // source: nigori_specifics.proto @@ -103,7 +103,7 @@ func (x *NigoriSpecifics_PassphraseType) UnmarshalJSON(b []byte) error { // Deprecated: Use NigoriSpecifics_PassphraseType.Descriptor instead. func (NigoriSpecifics_PassphraseType) EnumDescriptor() ([]byte, []int) { - return file_nigori_specifics_proto_rawDescGZIP(), []int{2, 0} + return file_nigori_specifics_proto_rawDescGZIP(), []int{4, 0} } type NigoriSpecifics_KeyDerivationMethod int32 @@ -167,7 +167,7 @@ func (x *NigoriSpecifics_KeyDerivationMethod) UnmarshalJSON(b []byte) error { // Deprecated: Use NigoriSpecifics_KeyDerivationMethod.Descriptor instead. func (NigoriSpecifics_KeyDerivationMethod) EnumDescriptor() ([]byte, []int) { - return file_nigori_specifics_proto_rawDescGZIP(), []int{2, 1} + return file_nigori_specifics_proto_rawDescGZIP(), []int{4, 1} } type NigoriKey struct { @@ -178,9 +178,9 @@ type NigoriKey struct { // Note that M78 and before rely on the name being populated, at least for // the main encrypted keybag within NigoriSpecifics. // - // Deprecated: Do not use. + // Deprecated: Marked as deprecated in nigori_specifics.proto. DeprecatedName *string `protobuf:"bytes,1,opt,name=deprecated_name,json=deprecatedName" json:"deprecated_name,omitempty"` - // Deprecated: Do not use. + // Deprecated: Marked as deprecated in nigori_specifics.proto. DeprecatedUserKey []byte `protobuf:"bytes,2,opt,name=deprecated_user_key,json=deprecatedUserKey" json:"deprecated_user_key,omitempty"` EncryptionKey []byte `protobuf:"bytes,3,opt,name=encryption_key,json=encryptionKey" json:"encryption_key,omitempty"` MacKey []byte `protobuf:"bytes,4,opt,name=mac_key,json=macKey" json:"mac_key,omitempty"` @@ -218,7 +218,7 @@ func (*NigoriKey) Descriptor() ([]byte, []int) { return file_nigori_specifics_proto_rawDescGZIP(), []int{0} } -// Deprecated: Do not use. +// Deprecated: Marked as deprecated in nigori_specifics.proto. func (x *NigoriKey) GetDeprecatedName() string { if x != nil && x.DeprecatedName != nil { return *x.DeprecatedName @@ -226,7 +226,7 @@ func (x *NigoriKey) GetDeprecatedName() string { return "" } -// Deprecated: Do not use. +// Deprecated: Marked as deprecated in nigori_specifics.proto. func (x *NigoriKey) GetDeprecatedUserKey() []byte { if x != nil { return x.DeprecatedUserKey @@ -248,18 +248,136 @@ func (x *NigoriKey) GetMacKey() []byte { return nil } +type CrossUserSharingPrivateKey struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The key version, used for key rotation. + Version *int32 `protobuf:"varint,1,opt,name=version" json:"version,omitempty"` + // Private key on Curve25519 (32 bytes). + X25519PrivateKey []byte `protobuf:"bytes,2,opt,name=X25519_private_key,json=X25519PrivateKey" json:"X25519_private_key,omitempty"` +} + +func (x *CrossUserSharingPrivateKey) Reset() { + *x = CrossUserSharingPrivateKey{} + if protoimpl.UnsafeEnabled { + mi := &file_nigori_specifics_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CrossUserSharingPrivateKey) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CrossUserSharingPrivateKey) ProtoMessage() {} + +func (x *CrossUserSharingPrivateKey) ProtoReflect() protoreflect.Message { + mi := &file_nigori_specifics_proto_msgTypes[1] + 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 CrossUserSharingPrivateKey.ProtoReflect.Descriptor instead. +func (*CrossUserSharingPrivateKey) Descriptor() ([]byte, []int) { + return file_nigori_specifics_proto_rawDescGZIP(), []int{1} +} + +func (x *CrossUserSharingPrivateKey) GetVersion() int32 { + if x != nil && x.Version != nil { + return *x.Version + } + return 0 +} + +func (x *CrossUserSharingPrivateKey) GetX25519PrivateKey() []byte { + if x != nil { + return x.X25519PrivateKey + } + return nil +} + +type CrossUserSharingPublicKey struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The key version, used for key rotation and consensus. + Version *int32 `protobuf:"varint,1,opt,name=version" json:"version,omitempty"` + // Public key on Curve25519 (32 bytes). + X25519PublicKey []byte `protobuf:"bytes,2,opt,name=X25519_public_key,json=X25519PublicKey" json:"X25519_public_key,omitempty"` +} + +func (x *CrossUserSharingPublicKey) Reset() { + *x = CrossUserSharingPublicKey{} + if protoimpl.UnsafeEnabled { + mi := &file_nigori_specifics_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CrossUserSharingPublicKey) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CrossUserSharingPublicKey) ProtoMessage() {} + +func (x *CrossUserSharingPublicKey) ProtoReflect() protoreflect.Message { + mi := &file_nigori_specifics_proto_msgTypes[2] + 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 CrossUserSharingPublicKey.ProtoReflect.Descriptor instead. +func (*CrossUserSharingPublicKey) Descriptor() ([]byte, []int) { + return file_nigori_specifics_proto_rawDescGZIP(), []int{2} +} + +func (x *CrossUserSharingPublicKey) GetVersion() int32 { + if x != nil && x.Version != nil { + return *x.Version + } + return 0 +} + +func (x *CrossUserSharingPublicKey) GetX25519PublicKey() []byte { + if x != nil { + return x.X25519PublicKey + } + return nil +} + type NigoriKeyBag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + // Used for encrypting within the sync account boundary. Key []*NigoriKey `protobuf:"bytes,2,rep,name=key" json:"key,omitempty"` + // Used for encrypting/authenticating using Public-private cryptography + // primarily across user accounts, e.g. sharing offers. + CrossUserSharingPrivateKey []*CrossUserSharingPrivateKey `protobuf:"bytes,3,rep,name=cross_user_sharing_private_key,json=crossUserSharingPrivateKey" json:"cross_user_sharing_private_key,omitempty"` } func (x *NigoriKeyBag) Reset() { *x = NigoriKeyBag{} if protoimpl.UnsafeEnabled { - mi := &file_nigori_specifics_proto_msgTypes[1] + mi := &file_nigori_specifics_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -272,7 +390,7 @@ func (x *NigoriKeyBag) String() string { func (*NigoriKeyBag) ProtoMessage() {} func (x *NigoriKeyBag) ProtoReflect() protoreflect.Message { - mi := &file_nigori_specifics_proto_msgTypes[1] + mi := &file_nigori_specifics_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -285,7 +403,7 @@ func (x *NigoriKeyBag) ProtoReflect() protoreflect.Message { // Deprecated: Use NigoriKeyBag.ProtoReflect.Descriptor instead. func (*NigoriKeyBag) Descriptor() ([]byte, []int) { - return file_nigori_specifics_proto_rawDescGZIP(), []int{1} + return file_nigori_specifics_proto_rawDescGZIP(), []int{3} } func (x *NigoriKeyBag) GetKey() []*NigoriKey { @@ -295,6 +413,13 @@ func (x *NigoriKeyBag) GetKey() []*NigoriKey { return nil } +func (x *NigoriKeyBag) GetCrossUserSharingPrivateKey() []*CrossUserSharingPrivateKey { + if x != nil { + return x.CrossUserSharingPrivateKey + } + return nil +} + // Properties of nigori sync object. type NigoriSpecifics struct { state protoimpl.MessageState @@ -311,22 +436,39 @@ type NigoriSpecifics struct { // Passwords and Wi-Fi configurations are always encrypted, so we don't need // a field here. History delete directives need to be consumable by the // server, and thus can't be encrypted. - EncryptBookmarks *bool `protobuf:"varint,13,opt,name=encrypt_bookmarks,json=encryptBookmarks" json:"encrypt_bookmarks,omitempty"` - EncryptPreferences *bool `protobuf:"varint,14,opt,name=encrypt_preferences,json=encryptPreferences" json:"encrypt_preferences,omitempty"` + // USS clients don't read these values, datatypes are either always encrypted, + // never encrypted or encrypted when |encrypt_everything| set to true. + // TODO(crbug.com/1360022): complete deprecation of encrypt_* fields (replace + // fields with reserved) once sync_pb.NigoriKey - 6, // 1: sync_pb.NigoriSpecifics.encryption_keybag:type_name -> sync_pb.EncryptedData - 6, // 2: sync_pb.NigoriSpecifics.keystore_decryptor_token:type_name -> sync_pb.EncryptedData - 5, // 3: sync_pb.NigoriSpecifics.trusted_vault_debug_info:type_name -> sync_pb.NigoriSpecifics.TrustedVaultDebugInfo - 4, // [4:4] is the sub-list for method output_type - 4, // [4:4] is the sub-list for method input_type - 4, // [4:4] is the sub-list for extension type_name - 4, // [4:4] is the sub-list for extension extendee - 0, // [0:4] is the sub-list for field type_name + 3, // 1: sync_pb.NigoriKeyBag.cross_user_sharing_private_key:type_name -> sync_pb.CrossUserSharingPrivateKey + 8, // 2: sync_pb.NigoriSpecifics.encryption_keybag:type_name -> sync_pb.EncryptedData + 8, // 3: sync_pb.NigoriSpecifics.keystore_decryptor_token:type_name -> sync_pb.EncryptedData + 7, // 4: sync_pb.NigoriSpecifics.trusted_vault_debug_info:type_name -> sync_pb.NigoriSpecifics.TrustedVaultDebugInfo + 4, // 5: sync_pb.NigoriSpecifics.cross_user_sharing_public_key:type_name -> sync_pb.CrossUserSharingPublicKey + 6, // [6:6] is the sub-list for method output_type + 6, // [6:6] is the sub-list for method input_type + 6, // [6:6] is the sub-list for extension type_name + 6, // [6:6] is the sub-list for extension extendee + 0, // [0:6] is the sub-list for field type_name } func init() { file_nigori_specifics_proto_init() } @@ -987,7 +1203,7 @@ func file_nigori_specifics_proto_init() { } } file_nigori_specifics_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*NigoriKeyBag); i { + switch v := v.(*CrossUserSharingPrivateKey); i { case 0: return &v.state case 1: @@ -999,7 +1215,7 @@ func file_nigori_specifics_proto_init() { } } file_nigori_specifics_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*NigoriSpecifics); i { + switch v := v.(*CrossUserSharingPublicKey); i { case 0: return &v.state case 1: @@ -1011,6 +1227,30 @@ func file_nigori_specifics_proto_init() { } } file_nigori_specifics_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*NigoriKeyBag); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_nigori_specifics_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*NigoriSpecifics); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_nigori_specifics_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*NigoriSpecifics_TrustedVaultDebugInfo); i { case 0: return &v.state @@ -1029,7 +1269,7 @@ func file_nigori_specifics_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_nigori_specifics_proto_rawDesc, NumEnums: 2, - NumMessages: 4, + NumMessages: 6, NumExtensions: 0, NumServices: 0, }, diff --git a/schema/protobuf/sync_pb/nigori_specifics.proto b/schema/protobuf/sync_pb/nigori_specifics.proto index e54a9265..e13df8b9 100644 --- a/schema/protobuf/sync_pb/nigori_specifics.proto +++ b/schema/protobuf/sync_pb/nigori_specifics.proto @@ -1,4 +1,4 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2012 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // @@ -9,6 +9,8 @@ syntax = "proto2"; +option go_package = "./sync_pb"; + option java_multiple_files = true; option java_package = "org.chromium.components.sync.protocol"; @@ -27,8 +29,26 @@ message NigoriKey { optional bytes mac_key = 4; } +message CrossUserSharingPrivateKey { + // The key version, used for key rotation. + optional int32 version = 1; + // Private key on Curve25519 (32 bytes). + optional bytes X25519_private_key = 2; +} + +message CrossUserSharingPublicKey { + // The key version, used for key rotation and consensus. + optional int32 version = 1; + // Public key on Curve25519 (32 bytes). + optional bytes X25519_public_key = 2; +} + message NigoriKeyBag { + // Used for encrypting within the sync account boundary. repeated NigoriKey key = 2; + // Used for encrypting/authenticating using Public-private cryptography + // primarily across user accounts, e.g. sharing offers. + repeated CrossUserSharingPrivateKey cross_user_sharing_private_key = 3; } // Properties of nigori sync object. @@ -67,16 +87,20 @@ message NigoriSpecifics { // Passwords and Wi-Fi configurations are always encrypted, so we don't need // a field here. History delete directives need to be consumable by the // server, and thus can't be encrypted. - optional bool encrypt_bookmarks = 13; - optional bool encrypt_preferences = 14; - optional bool encrypt_autofill_profile = 15; - optional bool encrypt_autofill = 16; - optional bool encrypt_themes = 17; - optional bool encrypt_typed_urls = 18; - optional bool encrypt_extensions = 19; - optional bool encrypt_sessions = 20; - optional bool encrypt_apps = 21; - optional bool encrypt_search_engines = 22; + // USS clients don't read these values, datatypes are either always encrypted, + // never encrypted or encrypted when |encrypt_everything| set to true. + // TODO(crbug.com/1360022): complete deprecation of encrypt_* fields (replace + // fields with reserved) once sync_pb.NoteEntity.TargetType + 1, // [1:1] is the sub-list for method output_type + 1, // [1:1] is the sub-list for method input_type + 1, // [1:1] is the sub-list for extension type_name + 1, // [1:1] is the sub-list for extension extendee + 0, // [0:1] is the sub-list for field type_name +} + +func init() { file_note_entity_proto_init() } +func file_note_entity_proto_init() { + if File_note_entity_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_note_entity_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*NoteEntity); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_note_entity_proto_rawDesc, + NumEnums: 1, + NumMessages: 1, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_note_entity_proto_goTypes, + DependencyIndexes: file_note_entity_proto_depIdxs, + EnumInfos: file_note_entity_proto_enumTypes, + MessageInfos: file_note_entity_proto_msgTypes, + }.Build() + File_note_entity_proto = out.File + file_note_entity_proto_rawDesc = nil + file_note_entity_proto_goTypes = nil + file_note_entity_proto_depIdxs = nil +} diff --git a/schema/protobuf/sync_pb/note_entity.proto b/schema/protobuf/sync_pb/note_entity.proto new file mode 100644 index 00000000..d02a4d88 --- /dev/null +++ b/schema/protobuf/sync_pb/note_entity.proto @@ -0,0 +1,38 @@ +// Copyright 2022 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +syntax = "proto2"; + +option go_package = "./sync_pb"; + +option java_multiple_files = true; +option java_package = "org.chromium.components.sync.protocol"; + +option optimize_for = LITE_RUNTIME; + +package sync_pb; + +message NoteEntity { + enum TargetType { + TARGET_TYPE_UNSPECIFIED = 0; + + // Page target type makes the note global to the page. It does not associate + // with any user selection. + TARGET_TYPE_PAGE = 1; + } + + // Plain text of the note. + optional string plain_text = 1; + + // Rich text of the note. It will be used when plain_text is empty and the UI + // supports rich text. + optional string rich_text = 2; + + // The type of the note target. Currently only PAGE target type is supported. + /* required */ optional TargetType target_type = 3; + + // The current version of the note. If this version is newer than the note + // version of the browser the note won't be displayed. + /* required */ optional int32 current_note_version = 4; +} diff --git a/schema/protobuf/sync_pb/os_preference_specifics.pb.go b/schema/protobuf/sync_pb/os_preference_specifics.pb.go index 43bf5c68..6a8a1d8b 100644 --- a/schema/protobuf/sync_pb/os_preference_specifics.pb.go +++ b/schema/protobuf/sync_pb/os_preference_specifics.pb.go @@ -1,4 +1,4 @@ -// Copyright 2019 The Chromium Authors. All rights reserved. +// Copyright 2019 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // @@ -9,7 +9,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.0 +// protoc-gen-go v1.31.0 // protoc v3.21.1 // source: os_preference_specifics.proto @@ -91,10 +91,11 @@ var file_os_preference_specifics_proto_rawDesc = []byte{ 0x0a, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x52, - 0x0a, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x42, 0x2b, 0x0a, 0x25, 0x6f, + 0x0a, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x42, 0x36, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x03, 0x50, 0x01, + 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x03, 0x50, 0x01, 0x5a, 0x09, 0x2e, 0x2f, 0x73, 0x79, 0x6e, 0x63, + 0x5f, 0x70, 0x62, } var ( diff --git a/schema/protobuf/sync_pb/os_preference_specifics.proto b/schema/protobuf/sync_pb/os_preference_specifics.proto index 1f731739..606866f1 100644 --- a/schema/protobuf/sync_pb/os_preference_specifics.proto +++ b/schema/protobuf/sync_pb/os_preference_specifics.proto @@ -1,4 +1,4 @@ -// Copyright 2019 The Chromium Authors. All rights reserved. +// Copyright 2019 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // @@ -9,6 +9,8 @@ syntax = "proto2"; +option go_package = "./sync_pb"; + option java_multiple_files = true; option java_package = "org.chromium.components.sync.protocol"; diff --git a/schema/protobuf/sync_pb/os_priority_preference_specifics.pb.go b/schema/protobuf/sync_pb/os_priority_preference_specifics.pb.go index a24194e1..ad35c73d 100644 --- a/schema/protobuf/sync_pb/os_priority_preference_specifics.pb.go +++ b/schema/protobuf/sync_pb/os_priority_preference_specifics.pb.go @@ -1,4 +1,4 @@ -// Copyright 2019 The Chromium Authors. All rights reserved. +// Copyright 2019 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // @@ -9,7 +9,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.0 +// protoc-gen-go v1.31.0 // protoc v3.21.1 // source: os_priority_preference_specifics.proto @@ -92,10 +92,11 @@ var file_os_priority_preference_specifics_proto_rawDesc = []byte{ 0x0a, 0x0a, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, - 0x52, 0x0a, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x42, 0x2b, 0x0a, 0x25, + 0x52, 0x0a, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x42, 0x36, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x03, 0x50, 0x01, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x03, 0x50, 0x01, 0x5a, 0x09, 0x2e, 0x2f, 0x73, 0x79, 0x6e, + 0x63, 0x5f, 0x70, 0x62, } var ( diff --git a/schema/protobuf/sync_pb/os_priority_preference_specifics.proto b/schema/protobuf/sync_pb/os_priority_preference_specifics.proto index d7be4267..74f984a0 100644 --- a/schema/protobuf/sync_pb/os_priority_preference_specifics.proto +++ b/schema/protobuf/sync_pb/os_priority_preference_specifics.proto @@ -1,4 +1,4 @@ -// Copyright 2019 The Chromium Authors. All rights reserved. +// Copyright 2019 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // @@ -9,6 +9,8 @@ syntax = "proto2"; +option go_package = "./sync_pb"; + option java_multiple_files = true; option java_package = "org.chromium.components.sync.protocol"; diff --git a/schema/protobuf/sync_pb/password_sharing_invitation_specifics.pb.go b/schema/protobuf/sync_pb/password_sharing_invitation_specifics.pb.go new file mode 100644 index 00000000..45b3de41 --- /dev/null +++ b/schema/protobuf/sync_pb/password_sharing_invitation_specifics.pb.go @@ -0,0 +1,844 @@ +// Copyright 2023 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.31.0 +// protoc v3.21.1 +// source: password_sharing_invitation_specifics.proto + +package sync_pb + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type PasswordSharingInvitationData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PasswordData *PasswordSharingInvitationData_PasswordData `protobuf:"bytes,1,opt,name=password_data,json=passwordData" json:"password_data,omitempty"` +} + +func (x *PasswordSharingInvitationData) Reset() { + *x = PasswordSharingInvitationData{} + if protoimpl.UnsafeEnabled { + mi := &file_password_sharing_invitation_specifics_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PasswordSharingInvitationData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PasswordSharingInvitationData) ProtoMessage() {} + +func (x *PasswordSharingInvitationData) ProtoReflect() protoreflect.Message { + mi := &file_password_sharing_invitation_specifics_proto_msgTypes[0] + 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 PasswordSharingInvitationData.ProtoReflect.Descriptor instead. +func (*PasswordSharingInvitationData) Descriptor() ([]byte, []int) { + return file_password_sharing_invitation_specifics_proto_rawDescGZIP(), []int{0} +} + +func (x *PasswordSharingInvitationData) GetPasswordData() *PasswordSharingInvitationData_PasswordData { + if x != nil { + return x.PasswordData + } + return nil +} + +// Contains user profile information. +type UserDisplayInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Primary email address of the user. + Email *string `protobuf:"bytes,1,opt,name=email" json:"email,omitempty"` + // The user's full name. + DisplayName *string `protobuf:"bytes,2,opt,name=display_name,json=displayName" json:"display_name,omitempty"` + // Portrait photo of the user. + ProfileImageUrl *string `protobuf:"bytes,3,opt,name=profile_image_url,json=profileImageUrl" json:"profile_image_url,omitempty"` +} + +func (x *UserDisplayInfo) Reset() { + *x = UserDisplayInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_password_sharing_invitation_specifics_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserDisplayInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserDisplayInfo) ProtoMessage() {} + +func (x *UserDisplayInfo) ProtoReflect() protoreflect.Message { + mi := &file_password_sharing_invitation_specifics_proto_msgTypes[1] + 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 UserDisplayInfo.ProtoReflect.Descriptor instead. +func (*UserDisplayInfo) Descriptor() ([]byte, []int) { + return file_password_sharing_invitation_specifics_proto_rawDescGZIP(), []int{1} +} + +func (x *UserDisplayInfo) GetEmail() string { + if x != nil && x.Email != nil { + return *x.Email + } + return "" +} + +func (x *UserDisplayInfo) GetDisplayName() string { + if x != nil && x.DisplayName != nil { + return *x.DisplayName + } + return "" +} + +func (x *UserDisplayInfo) GetProfileImageUrl() string { + if x != nil && x.ProfileImageUrl != nil { + return *x.ProfileImageUrl + } + return "" +} + +type UserInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Obfuscated Gaia ID. + UserId *string `protobuf:"bytes,1,opt,name=user_id,json=userId" json:"user_id,omitempty"` + UserDisplayInfo *UserDisplayInfo `protobuf:"bytes,2,opt,name=user_display_info,json=userDisplayInfo" json:"user_display_info,omitempty"` + // Latest user's public key registered on the server. + CrossUserSharingPublicKey *CrossUserSharingPublicKey `protobuf:"bytes,3,opt,name=cross_user_sharing_public_key,json=crossUserSharingPublicKey" json:"cross_user_sharing_public_key,omitempty"` +} + +func (x *UserInfo) Reset() { + *x = UserInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_password_sharing_invitation_specifics_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserInfo) ProtoMessage() {} + +func (x *UserInfo) ProtoReflect() protoreflect.Message { + mi := &file_password_sharing_invitation_specifics_proto_msgTypes[2] + 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 UserInfo.ProtoReflect.Descriptor instead. +func (*UserInfo) Descriptor() ([]byte, []int) { + return file_password_sharing_invitation_specifics_proto_rawDescGZIP(), []int{2} +} + +func (x *UserInfo) GetUserId() string { + if x != nil && x.UserId != nil { + return *x.UserId + } + return "" +} + +func (x *UserInfo) GetUserDisplayInfo() *UserDisplayInfo { + if x != nil { + return x.UserDisplayInfo + } + return nil +} + +func (x *UserInfo) GetCrossUserSharingPublicKey() *CrossUserSharingPublicKey { + if x != nil { + return x.CrossUserSharingPublicKey + } + return nil +} + +// Encryption key used to encrypt PasswordSharingInvitationData. +type SharingSymmetricKey struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + KeyValue []byte `protobuf:"bytes,1,opt,name=key_value,json=keyValue" json:"key_value,omitempty"` +} + +func (x *SharingSymmetricKey) Reset() { + *x = SharingSymmetricKey{} + if protoimpl.UnsafeEnabled { + mi := &file_password_sharing_invitation_specifics_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SharingSymmetricKey) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SharingSymmetricKey) ProtoMessage() {} + +func (x *SharingSymmetricKey) ProtoReflect() protoreflect.Message { + mi := &file_password_sharing_invitation_specifics_proto_msgTypes[3] + 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 SharingSymmetricKey.ProtoReflect.Descriptor instead. +func (*SharingSymmetricKey) Descriptor() ([]byte, []int) { + return file_password_sharing_invitation_specifics_proto_rawDescGZIP(), []int{3} +} + +func (x *SharingSymmetricKey) GetKeyValue() []byte { + if x != nil { + return x.KeyValue + } + return nil +} + +// Incoming invitations for password sending. +type IncomingPasswordSharingInvitationSpecifics struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Unique client tag for the invitation. This does *not* have to be the same + // GUID as for the outgoing invitation. + Guid *string `protobuf:"bytes,1,opt,name=guid" json:"guid,omitempty"` + // Profile information about the sender of the password. Sender's public key + // is used to authenticate the sender for `encrypted_key_for_recipient`. + SenderInfo *UserInfo `protobuf:"bytes,2,opt,name=sender_info,json=senderInfo" json:"sender_info,omitempty"` + // PasswordSharingInvitationData, encrypted using the encryption key from + // `encrypted_key_for_recipient`. + EncryptedPasswordSharingInvitationData []byte `protobuf:"bytes,3,opt,name=encrypted_password_sharing_invitation_data,json=encryptedPasswordSharingInvitationData" json:"encrypted_password_sharing_invitation_data,omitempty"` + // An unsynced field for use internally on the client. This field should + // never be set in any network-based communications because it contains + // unencrypted material. + ClientOnlyUnencryptedData *PasswordSharingInvitationData `protobuf:"bytes,4,opt,name=client_only_unencrypted_data,json=clientOnlyUnencryptedData" json:"client_only_unencrypted_data,omitempty"` + // Encrypted SharingSymmetricKey using recipient's public key corresponding to + // `recipient_key_version` and sender's private key to authenticate the + // sender, see https://www.rfc-editor.org/rfc/rfc9180.html. + EncryptedKeyForRecipient []byte `protobuf:"bytes,5,opt,name=encrypted_key_for_recipient,json=encryptedKeyForRecipient" json:"encrypted_key_for_recipient,omitempty"` + RecipientKeyVersion *uint32 `protobuf:"varint,6,opt,name=recipient_key_version,json=recipientKeyVersion" json:"recipient_key_version,omitempty"` +} + +func (x *IncomingPasswordSharingInvitationSpecifics) Reset() { + *x = IncomingPasswordSharingInvitationSpecifics{} + if protoimpl.UnsafeEnabled { + mi := &file_password_sharing_invitation_specifics_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *IncomingPasswordSharingInvitationSpecifics) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*IncomingPasswordSharingInvitationSpecifics) ProtoMessage() {} + +func (x *IncomingPasswordSharingInvitationSpecifics) ProtoReflect() protoreflect.Message { + mi := &file_password_sharing_invitation_specifics_proto_msgTypes[4] + 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 IncomingPasswordSharingInvitationSpecifics.ProtoReflect.Descriptor instead. +func (*IncomingPasswordSharingInvitationSpecifics) Descriptor() ([]byte, []int) { + return file_password_sharing_invitation_specifics_proto_rawDescGZIP(), []int{4} +} + +func (x *IncomingPasswordSharingInvitationSpecifics) GetGuid() string { + if x != nil && x.Guid != nil { + return *x.Guid + } + return "" +} + +func (x *IncomingPasswordSharingInvitationSpecifics) GetSenderInfo() *UserInfo { + if x != nil { + return x.SenderInfo + } + return nil +} + +func (x *IncomingPasswordSharingInvitationSpecifics) GetEncryptedPasswordSharingInvitationData() []byte { + if x != nil { + return x.EncryptedPasswordSharingInvitationData + } + return nil +} + +func (x *IncomingPasswordSharingInvitationSpecifics) GetClientOnlyUnencryptedData() *PasswordSharingInvitationData { + if x != nil { + return x.ClientOnlyUnencryptedData + } + return nil +} + +func (x *IncomingPasswordSharingInvitationSpecifics) GetEncryptedKeyForRecipient() []byte { + if x != nil { + return x.EncryptedKeyForRecipient + } + return nil +} + +func (x *IncomingPasswordSharingInvitationSpecifics) GetRecipientKeyVersion() uint32 { + if x != nil && x.RecipientKeyVersion != nil { + return *x.RecipientKeyVersion + } + return 0 +} + +// Outgoing invitations for password sending. +type OutgoingPasswordSharingInvitationSpecifics struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Unique client tag for the invitation, generated by the client. + Guid *string `protobuf:"bytes,1,opt,name=guid" json:"guid,omitempty"` + // Recipient's user identifier (obfuscated Gaia ID). + RecipientUserId *string `protobuf:"bytes,2,opt,name=recipient_user_id,json=recipientUserId" json:"recipient_user_id,omitempty"` + // The actual data, contains an encrypted PasswordSharingInvitationData using + // an encryption key from `encrypted_key_for_recipient`. + EncryptedPasswordSharingInvitationData []byte `protobuf:"bytes,3,opt,name=encrypted_password_sharing_invitation_data,json=encryptedPasswordSharingInvitationData" json:"encrypted_password_sharing_invitation_data,omitempty"` + // An unsynced field for use internally on the client. This field should + // never be set in any network-based communications because it contains + // unencrypted material. + ClientOnlyUnencryptedData *PasswordSharingInvitationData `protobuf:"bytes,4,opt,name=client_only_unencrypted_data,json=clientOnlyUnencryptedData" json:"client_only_unencrypted_data,omitempty"` + // Encrypted SharingSymmetricKey using recipient's public key corresponding to + // `recipient_key_version`. + EncryptedKeyForRecipient []byte `protobuf:"bytes,5,opt,name=encrypted_key_for_recipient,json=encryptedKeyForRecipient" json:"encrypted_key_for_recipient,omitempty"` + RecipientKeyVersion *uint32 `protobuf:"varint,6,opt,name=recipient_key_version,json=recipientKeyVersion" json:"recipient_key_version,omitempty"` + // Version of Public key of the sender which is used to authenticate the + // sender of the password. Must be equal to the latest committed version. + SenderKeyVersion *uint32 `protobuf:"varint,7,opt,name=sender_key_version,json=senderKeyVersion" json:"sender_key_version,omitempty"` +} + +func (x *OutgoingPasswordSharingInvitationSpecifics) Reset() { + *x = OutgoingPasswordSharingInvitationSpecifics{} + if protoimpl.UnsafeEnabled { + mi := &file_password_sharing_invitation_specifics_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OutgoingPasswordSharingInvitationSpecifics) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OutgoingPasswordSharingInvitationSpecifics) ProtoMessage() {} + +func (x *OutgoingPasswordSharingInvitationSpecifics) ProtoReflect() protoreflect.Message { + mi := &file_password_sharing_invitation_specifics_proto_msgTypes[5] + 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 OutgoingPasswordSharingInvitationSpecifics.ProtoReflect.Descriptor instead. +func (*OutgoingPasswordSharingInvitationSpecifics) Descriptor() ([]byte, []int) { + return file_password_sharing_invitation_specifics_proto_rawDescGZIP(), []int{5} +} + +func (x *OutgoingPasswordSharingInvitationSpecifics) GetGuid() string { + if x != nil && x.Guid != nil { + return *x.Guid + } + return "" +} + +func (x *OutgoingPasswordSharingInvitationSpecifics) GetRecipientUserId() string { + if x != nil && x.RecipientUserId != nil { + return *x.RecipientUserId + } + return "" +} + +func (x *OutgoingPasswordSharingInvitationSpecifics) GetEncryptedPasswordSharingInvitationData() []byte { + if x != nil { + return x.EncryptedPasswordSharingInvitationData + } + return nil +} + +func (x *OutgoingPasswordSharingInvitationSpecifics) GetClientOnlyUnencryptedData() *PasswordSharingInvitationData { + if x != nil { + return x.ClientOnlyUnencryptedData + } + return nil +} + +func (x *OutgoingPasswordSharingInvitationSpecifics) GetEncryptedKeyForRecipient() []byte { + if x != nil { + return x.EncryptedKeyForRecipient + } + return nil +} + +func (x *OutgoingPasswordSharingInvitationSpecifics) GetRecipientKeyVersion() uint32 { + if x != nil && x.RecipientKeyVersion != nil { + return *x.RecipientKeyVersion + } + return 0 +} + +func (x *OutgoingPasswordSharingInvitationSpecifics) GetSenderKeyVersion() uint32 { + if x != nil && x.SenderKeyVersion != nil { + return *x.SenderKeyVersion + } + return 0 +} + +// Contains password fields required for sending. See PasswordSpecificsData +// for field descriptions. +type PasswordSharingInvitationData_PasswordData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PasswordValue *string `protobuf:"bytes,1,opt,name=password_value,json=passwordValue" json:"password_value,omitempty"` + // See PasswordSpecificsData::Scheme for values. + Scheme *int32 `protobuf:"varint,2,opt,name=scheme" json:"scheme,omitempty"` + SignonRealm *string `protobuf:"bytes,3,opt,name=signon_realm,json=signonRealm" json:"signon_realm,omitempty"` + Origin *string `protobuf:"bytes,4,opt,name=origin" json:"origin,omitempty"` + UsernameElement *string `protobuf:"bytes,5,opt,name=username_element,json=usernameElement" json:"username_element,omitempty"` + UsernameValue *string `protobuf:"bytes,6,opt,name=username_value,json=usernameValue" json:"username_value,omitempty"` + PasswordElement *string `protobuf:"bytes,7,opt,name=password_element,json=passwordElement" json:"password_element,omitempty"` + DisplayName *string `protobuf:"bytes,8,opt,name=display_name,json=displayName" json:"display_name,omitempty"` + AvatarUrl *string `protobuf:"bytes,9,opt,name=avatar_url,json=avatarUrl" json:"avatar_url,omitempty"` +} + +func (x *PasswordSharingInvitationData_PasswordData) Reset() { + *x = PasswordSharingInvitationData_PasswordData{} + if protoimpl.UnsafeEnabled { + mi := &file_password_sharing_invitation_specifics_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PasswordSharingInvitationData_PasswordData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PasswordSharingInvitationData_PasswordData) ProtoMessage() {} + +func (x *PasswordSharingInvitationData_PasswordData) ProtoReflect() protoreflect.Message { + mi := &file_password_sharing_invitation_specifics_proto_msgTypes[6] + 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 PasswordSharingInvitationData_PasswordData.ProtoReflect.Descriptor instead. +func (*PasswordSharingInvitationData_PasswordData) Descriptor() ([]byte, []int) { + return file_password_sharing_invitation_specifics_proto_rawDescGZIP(), []int{0, 0} +} + +func (x *PasswordSharingInvitationData_PasswordData) GetPasswordValue() string { + if x != nil && x.PasswordValue != nil { + return *x.PasswordValue + } + return "" +} + +func (x *PasswordSharingInvitationData_PasswordData) GetScheme() int32 { + if x != nil && x.Scheme != nil { + return *x.Scheme + } + return 0 +} + +func (x *PasswordSharingInvitationData_PasswordData) GetSignonRealm() string { + if x != nil && x.SignonRealm != nil { + return *x.SignonRealm + } + return "" +} + +func (x *PasswordSharingInvitationData_PasswordData) GetOrigin() string { + if x != nil && x.Origin != nil { + return *x.Origin + } + return "" +} + +func (x *PasswordSharingInvitationData_PasswordData) GetUsernameElement() string { + if x != nil && x.UsernameElement != nil { + return *x.UsernameElement + } + return "" +} + +func (x *PasswordSharingInvitationData_PasswordData) GetUsernameValue() string { + if x != nil && x.UsernameValue != nil { + return *x.UsernameValue + } + return "" +} + +func (x *PasswordSharingInvitationData_PasswordData) GetPasswordElement() string { + if x != nil && x.PasswordElement != nil { + return *x.PasswordElement + } + return "" +} + +func (x *PasswordSharingInvitationData_PasswordData) GetDisplayName() string { + if x != nil && x.DisplayName != nil { + return *x.DisplayName + } + return "" +} + +func (x *PasswordSharingInvitationData_PasswordData) GetAvatarUrl() string { + if x != nil && x.AvatarUrl != nil { + return *x.AvatarUrl + } + return "" +} + +var File_password_sharing_invitation_specifics_proto protoreflect.FileDescriptor + +var file_password_sharing_invitation_specifics_proto_rawDesc = []byte{ + 0x0a, 0x2b, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x69, + 0x6e, 0x67, 0x5f, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x07, 0x73, + 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x1a, 0x16, 0x6e, 0x69, 0x67, 0x6f, 0x72, 0x69, 0x5f, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xc3, + 0x03, 0x0a, 0x1d, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x53, 0x68, 0x61, 0x72, 0x69, + 0x6e, 0x67, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, + 0x12, 0x58, 0x0a, 0x0d, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x5f, 0x64, 0x61, 0x74, + 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, + 0x62, 0x2e, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x53, 0x68, 0x61, 0x72, 0x69, 0x6e, + 0x67, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x2e, + 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0c, 0x70, 0x61, + 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x1a, 0xc7, 0x02, 0x0a, 0x0c, 0x50, + 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x25, 0x0a, 0x0e, 0x70, + 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x69, + 0x67, 0x6e, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x73, 0x69, 0x67, 0x6e, 0x6f, 0x6e, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x12, 0x16, 0x0a, + 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6f, + 0x72, 0x69, 0x67, 0x69, 0x6e, 0x12, 0x29, 0x0a, 0x10, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, + 0x65, 0x5f, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0f, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x12, 0x25, 0x0a, 0x0e, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, + 0x6d, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x70, 0x61, 0x73, 0x73, 0x77, + 0x6f, 0x72, 0x64, 0x5f, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x45, 0x6c, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, + 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x5f, + 0x75, 0x72, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x76, 0x61, 0x74, 0x61, + 0x72, 0x55, 0x72, 0x6c, 0x22, 0x76, 0x0a, 0x0f, 0x55, 0x73, 0x65, 0x72, 0x44, 0x69, 0x73, 0x70, + 0x6c, 0x61, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x21, 0x0a, + 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x69, 0x6d, 0x61, 0x67, + 0x65, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x72, 0x6f, + 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x72, 0x6c, 0x22, 0xcf, 0x01, 0x0a, + 0x08, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, + 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, + 0x49, 0x64, 0x12, 0x44, 0x0a, 0x11, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x69, 0x73, 0x70, 0x6c, + 0x61, 0x79, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, + 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x44, 0x69, 0x73, 0x70, + 0x6c, 0x61, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0f, 0x75, 0x73, 0x65, 0x72, 0x44, 0x69, 0x73, + 0x70, 0x6c, 0x61, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x64, 0x0a, 0x1d, 0x63, 0x72, 0x6f, 0x73, + 0x73, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x70, + 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x22, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x72, 0x6f, 0x73, 0x73, 0x55, + 0x73, 0x65, 0x72, 0x53, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, + 0x4b, 0x65, 0x79, 0x52, 0x19, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x55, 0x73, 0x65, 0x72, 0x53, 0x68, + 0x61, 0x72, 0x69, 0x6e, 0x67, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x22, 0x32, + 0x0a, 0x13, 0x53, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x53, 0x79, 0x6d, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x4b, 0x65, 0x79, 0x12, 0x1b, 0x0a, 0x09, 0x6b, 0x65, 0x79, 0x5f, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x6b, 0x65, 0x79, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x22, 0xac, 0x03, 0x0a, 0x2a, 0x49, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x50, + 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x53, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x49, 0x6e, + 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, + 0x73, 0x12, 0x12, 0x0a, 0x04, 0x67, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x67, 0x75, 0x69, 0x64, 0x12, 0x32, 0x0a, 0x0b, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x5f, + 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x73, 0x79, 0x6e, + 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x73, + 0x65, 0x6e, 0x64, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x5a, 0x0a, 0x2a, 0x65, 0x6e, 0x63, + 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x5f, + 0x73, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x26, 0x65, + 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, + 0x53, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x67, 0x0a, 0x1c, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, + 0x6f, 0x6e, 0x6c, 0x79, 0x5f, 0x75, 0x6e, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, + 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x79, + 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x53, 0x68, + 0x61, 0x72, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, + 0x61, 0x74, 0x61, 0x52, 0x19, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4f, 0x6e, 0x6c, 0x79, 0x55, + 0x6e, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3d, + 0x0a, 0x1b, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x5f, + 0x66, 0x6f, 0x72, 0x5f, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x18, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x4b, 0x65, + 0x79, 0x46, 0x6f, 0x72, 0x52, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x32, 0x0a, + 0x15, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x76, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x72, 0x65, + 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x22, 0xd2, 0x03, 0x0a, 0x2a, 0x4f, 0x75, 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x50, 0x61, + 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x53, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x76, + 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, + 0x12, 0x12, 0x0a, 0x04, 0x67, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x67, 0x75, 0x69, 0x64, 0x12, 0x2a, 0x0a, 0x11, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, + 0x74, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0f, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, + 0x12, 0x5a, 0x0a, 0x2a, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x5f, 0x70, 0x61, + 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x69, + 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x26, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x50, + 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x53, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x49, 0x6e, + 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x67, 0x0a, 0x1c, + 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x5f, 0x75, 0x6e, 0x65, 0x6e, + 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x50, 0x61, 0x73, + 0x73, 0x77, 0x6f, 0x72, 0x64, 0x53, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x76, 0x69, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x19, 0x63, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x4f, 0x6e, 0x6c, 0x79, 0x55, 0x6e, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, + 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3d, 0x0a, 0x1b, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, + 0x65, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x66, 0x6f, 0x72, 0x5f, 0x72, 0x65, 0x63, 0x69, 0x70, + 0x69, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x18, 0x65, 0x6e, 0x63, 0x72, + 0x79, 0x70, 0x74, 0x65, 0x64, 0x4b, 0x65, 0x79, 0x46, 0x6f, 0x72, 0x52, 0x65, 0x63, 0x69, 0x70, + 0x69, 0x65, 0x6e, 0x74, 0x12, 0x32, 0x0a, 0x15, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, + 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x13, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, + 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2c, 0x0a, 0x12, 0x73, 0x65, 0x6e, 0x64, + 0x65, 0x72, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x56, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x36, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, + 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, + 0x73, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, + 0x03, 0x50, 0x01, 0x5a, 0x09, 0x2e, 0x2f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, +} + +var ( + file_password_sharing_invitation_specifics_proto_rawDescOnce sync.Once + file_password_sharing_invitation_specifics_proto_rawDescData = file_password_sharing_invitation_specifics_proto_rawDesc +) + +func file_password_sharing_invitation_specifics_proto_rawDescGZIP() []byte { + file_password_sharing_invitation_specifics_proto_rawDescOnce.Do(func() { + file_password_sharing_invitation_specifics_proto_rawDescData = protoimpl.X.CompressGZIP(file_password_sharing_invitation_specifics_proto_rawDescData) + }) + return file_password_sharing_invitation_specifics_proto_rawDescData +} + +var file_password_sharing_invitation_specifics_proto_msgTypes = make([]protoimpl.MessageInfo, 7) +var file_password_sharing_invitation_specifics_proto_goTypes = []interface{}{ + (*PasswordSharingInvitationData)(nil), // 0: sync_pb.PasswordSharingInvitationData + (*UserDisplayInfo)(nil), // 1: sync_pb.UserDisplayInfo + (*UserInfo)(nil), // 2: sync_pb.UserInfo + (*SharingSymmetricKey)(nil), // 3: sync_pb.SharingSymmetricKey + (*IncomingPasswordSharingInvitationSpecifics)(nil), // 4: sync_pb.IncomingPasswordSharingInvitationSpecifics + (*OutgoingPasswordSharingInvitationSpecifics)(nil), // 5: sync_pb.OutgoingPasswordSharingInvitationSpecifics + (*PasswordSharingInvitationData_PasswordData)(nil), // 6: sync_pb.PasswordSharingInvitationData.PasswordData + (*CrossUserSharingPublicKey)(nil), // 7: sync_pb.CrossUserSharingPublicKey +} +var file_password_sharing_invitation_specifics_proto_depIdxs = []int32{ + 6, // 0: sync_pb.PasswordSharingInvitationData.password_data:type_name -> sync_pb.PasswordSharingInvitationData.PasswordData + 1, // 1: sync_pb.UserInfo.user_display_info:type_name -> sync_pb.UserDisplayInfo + 7, // 2: sync_pb.UserInfo.cross_user_sharing_public_key:type_name -> sync_pb.CrossUserSharingPublicKey + 2, // 3: sync_pb.IncomingPasswordSharingInvitationSpecifics.sender_info:type_name -> sync_pb.UserInfo + 0, // 4: sync_pb.IncomingPasswordSharingInvitationSpecifics.client_only_unencrypted_data:type_name -> sync_pb.PasswordSharingInvitationData + 0, // 5: sync_pb.OutgoingPasswordSharingInvitationSpecifics.client_only_unencrypted_data:type_name -> sync_pb.PasswordSharingInvitationData + 6, // [6:6] is the sub-list for method output_type + 6, // [6:6] is the sub-list for method input_type + 6, // [6:6] is the sub-list for extension type_name + 6, // [6:6] is the sub-list for extension extendee + 0, // [0:6] is the sub-list for field type_name +} + +func init() { file_password_sharing_invitation_specifics_proto_init() } +func file_password_sharing_invitation_specifics_proto_init() { + if File_password_sharing_invitation_specifics_proto != nil { + return + } + file_nigori_specifics_proto_init() + if !protoimpl.UnsafeEnabled { + file_password_sharing_invitation_specifics_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PasswordSharingInvitationData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_password_sharing_invitation_specifics_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserDisplayInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_password_sharing_invitation_specifics_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_password_sharing_invitation_specifics_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SharingSymmetricKey); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_password_sharing_invitation_specifics_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IncomingPasswordSharingInvitationSpecifics); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_password_sharing_invitation_specifics_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OutgoingPasswordSharingInvitationSpecifics); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_password_sharing_invitation_specifics_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PasswordSharingInvitationData_PasswordData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_password_sharing_invitation_specifics_proto_rawDesc, + NumEnums: 0, + NumMessages: 7, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_password_sharing_invitation_specifics_proto_goTypes, + DependencyIndexes: file_password_sharing_invitation_specifics_proto_depIdxs, + MessageInfos: file_password_sharing_invitation_specifics_proto_msgTypes, + }.Build() + File_password_sharing_invitation_specifics_proto = out.File + file_password_sharing_invitation_specifics_proto_rawDesc = nil + file_password_sharing_invitation_specifics_proto_goTypes = nil + file_password_sharing_invitation_specifics_proto_depIdxs = nil +} diff --git a/schema/protobuf/sync_pb/password_sharing_invitation_specifics.proto b/schema/protobuf/sync_pb/password_sharing_invitation_specifics.proto new file mode 100644 index 00000000..d66b4574 --- /dev/null +++ b/schema/protobuf/sync_pb/password_sharing_invitation_specifics.proto @@ -0,0 +1,116 @@ +// Copyright 2023 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +syntax = "proto2"; + +option go_package = "./sync_pb"; + +option java_multiple_files = true; +option java_package = "org.chromium.components.sync.protocol"; + +option optimize_for = LITE_RUNTIME; + +package sync_pb; + +import "nigori_specifics.proto"; + +message PasswordSharingInvitationData { + // Contains password fields required for sending. See PasswordSpecificsData + // for field descriptions. + message PasswordData { + optional string password_value = 1; + + // See PasswordSpecificsData::Scheme for values. + optional int32 scheme = 2; + optional string signon_realm = 3; + optional string origin = 4; + optional string username_element = 5; + optional string username_value = 6; + optional string password_element = 7; + optional string display_name = 8; + optional string avatar_url = 9; + } + + optional PasswordData password_data = 1; +} + +// Contains user profile information. +message UserDisplayInfo { + // Primary email address of the user. + optional string email = 1; + + // The user's full name. + optional string display_name = 2; + + // Portrait photo of the user. + optional string profile_image_url = 3; +} + +message UserInfo { + // Obfuscated Gaia ID. + optional string user_id = 1; + + optional UserDisplayInfo user_display_info = 2; + + // Latest user's public key registered on the server. + optional CrossUserSharingPublicKey cross_user_sharing_public_key = 3; +} + +// Encryption key used to encrypt PasswordSharingInvitationData. +message SharingSymmetricKey { + optional bytes key_value = 1; +} + +// Incoming invitations for password sending. +message IncomingPasswordSharingInvitationSpecifics { + // Unique client tag for the invitation. This does *not* have to be the same + // GUID as for the outgoing invitation. + optional string guid = 1; + + // Profile information about the sender of the password. Sender's public key + // is used to authenticate the sender for `encrypted_key_for_recipient`. + optional UserInfo sender_info = 2; + + // PasswordSharingInvitationData, encrypted using the encryption key from + // `encrypted_key_for_recipient`. + optional bytes encrypted_password_sharing_invitation_data = 3; + + // An unsynced field for use internally on the client. This field should + // never be set in any network-based communications because it contains + // unencrypted material. + optional PasswordSharingInvitationData client_only_unencrypted_data = 4; + + // Encrypted SharingSymmetricKey using recipient's public key corresponding to + // `recipient_key_version` and sender's private key to authenticate the + // sender, see https://www.rfc-editor.org/rfc/rfc9180.html. + optional bytes encrypted_key_for_recipient = 5; + optional uint32 recipient_key_version = 6; +} + +// Outgoing invitations for password sending. +message OutgoingPasswordSharingInvitationSpecifics { + // Unique client tag for the invitation, generated by the client. + optional string guid = 1; + + // Recipient's user identifier (obfuscated Gaia ID). + optional string recipient_user_id = 2; + + // The actual data, contains an encrypted PasswordSharingInvitationData using + // an encryption key from `encrypted_key_for_recipient`. + optional bytes encrypted_password_sharing_invitation_data = 3; + + // An unsynced field for use internally on the client. This field should + // never be set in any network-based communications because it contains + // unencrypted material. + optional PasswordSharingInvitationData client_only_unencrypted_data = 4; + + // Encrypted SharingSymmetricKey using recipient's public key corresponding to + // `recipient_key_version`. + optional bytes encrypted_key_for_recipient = 5; + optional uint32 recipient_key_version = 6; + + // Version of Public key of the sender which is used to authenticate the + // sender of the password. Must be equal to the latest committed version. + optional uint32 sender_key_version = 7; +} diff --git a/schema/protobuf/sync_pb/password_sharing_recipients.pb.go b/schema/protobuf/sync_pb/password_sharing_recipients.pb.go new file mode 100644 index 00000000..9937f7f4 --- /dev/null +++ b/schema/protobuf/sync_pb/password_sharing_recipients.pb.go @@ -0,0 +1,301 @@ +// Copyright 2023 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.31.0 +// protoc v3.21.1 +// source: password_sharing_recipients.proto + +package sync_pb + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type PasswordSharingRecipientsResponse_PasswordSharingRecipientsResult int32 + +const ( + PasswordSharingRecipientsResponse_UNKNOWN PasswordSharingRecipientsResponse_PasswordSharingRecipientsResult = 0 + // The user is a member of a family and the request succeeded. + PasswordSharingRecipientsResponse_SUCCESS PasswordSharingRecipientsResponse_PasswordSharingRecipientsResult = 1 + // Not a family member, used to distinguish from a family with + // only one member. + PasswordSharingRecipientsResponse_NOT_FAMILY_MEMBER PasswordSharingRecipientsResponse_PasswordSharingRecipientsResult = 2 +) + +// Enum value maps for PasswordSharingRecipientsResponse_PasswordSharingRecipientsResult. +var ( + PasswordSharingRecipientsResponse_PasswordSharingRecipientsResult_name = map[int32]string{ + 0: "UNKNOWN", + 1: "SUCCESS", + 2: "NOT_FAMILY_MEMBER", + } + PasswordSharingRecipientsResponse_PasswordSharingRecipientsResult_value = map[string]int32{ + "UNKNOWN": 0, + "SUCCESS": 1, + "NOT_FAMILY_MEMBER": 2, + } +) + +func (x PasswordSharingRecipientsResponse_PasswordSharingRecipientsResult) Enum() *PasswordSharingRecipientsResponse_PasswordSharingRecipientsResult { + p := new(PasswordSharingRecipientsResponse_PasswordSharingRecipientsResult) + *p = x + return p +} + +func (x PasswordSharingRecipientsResponse_PasswordSharingRecipientsResult) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (PasswordSharingRecipientsResponse_PasswordSharingRecipientsResult) Descriptor() protoreflect.EnumDescriptor { + return file_password_sharing_recipients_proto_enumTypes[0].Descriptor() +} + +func (PasswordSharingRecipientsResponse_PasswordSharingRecipientsResult) Type() protoreflect.EnumType { + return &file_password_sharing_recipients_proto_enumTypes[0] +} + +func (x PasswordSharingRecipientsResponse_PasswordSharingRecipientsResult) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Do not use. +func (x *PasswordSharingRecipientsResponse_PasswordSharingRecipientsResult) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err + } + *x = PasswordSharingRecipientsResponse_PasswordSharingRecipientsResult(num) + return nil +} + +// Deprecated: Use PasswordSharingRecipientsResponse_PasswordSharingRecipientsResult.Descriptor instead. +func (PasswordSharingRecipientsResponse_PasswordSharingRecipientsResult) EnumDescriptor() ([]byte, []int) { + return file_password_sharing_recipients_proto_rawDescGZIP(), []int{1, 0} +} + +// A message to obtain a list of recipients for sending a password. +type PasswordSharingRecipientsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PasswordSharingRecipientsRequest) Reset() { + *x = PasswordSharingRecipientsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_password_sharing_recipients_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PasswordSharingRecipientsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PasswordSharingRecipientsRequest) ProtoMessage() {} + +func (x *PasswordSharingRecipientsRequest) ProtoReflect() protoreflect.Message { + mi := &file_password_sharing_recipients_proto_msgTypes[0] + 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 PasswordSharingRecipientsRequest.ProtoReflect.Descriptor instead. +func (*PasswordSharingRecipientsRequest) Descriptor() ([]byte, []int) { + return file_password_sharing_recipients_proto_rawDescGZIP(), []int{0} +} + +type PasswordSharingRecipientsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Result *PasswordSharingRecipientsResponse_PasswordSharingRecipientsResult `protobuf:"varint,1,opt,name=result,enum=sync_pb.PasswordSharingRecipientsResponse_PasswordSharingRecipientsResult" json:"result,omitempty"` + // List of possible recipients for sending a password. Note that public key + // may be absent if a recipient can’t receive a password (e.g. due to an older + // Chrome version). + Recipients []*UserInfo `protobuf:"bytes,2,rep,name=recipients" json:"recipients,omitempty"` +} + +func (x *PasswordSharingRecipientsResponse) Reset() { + *x = PasswordSharingRecipientsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_password_sharing_recipients_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PasswordSharingRecipientsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PasswordSharingRecipientsResponse) ProtoMessage() {} + +func (x *PasswordSharingRecipientsResponse) ProtoReflect() protoreflect.Message { + mi := &file_password_sharing_recipients_proto_msgTypes[1] + 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 PasswordSharingRecipientsResponse.ProtoReflect.Descriptor instead. +func (*PasswordSharingRecipientsResponse) Descriptor() ([]byte, []int) { + return file_password_sharing_recipients_proto_rawDescGZIP(), []int{1} +} + +func (x *PasswordSharingRecipientsResponse) GetResult() PasswordSharingRecipientsResponse_PasswordSharingRecipientsResult { + if x != nil && x.Result != nil { + return *x.Result + } + return PasswordSharingRecipientsResponse_UNKNOWN +} + +func (x *PasswordSharingRecipientsResponse) GetRecipients() []*UserInfo { + if x != nil { + return x.Recipients + } + return nil +} + +var File_password_sharing_recipients_proto protoreflect.FileDescriptor + +var file_password_sharing_recipients_proto_rawDesc = []byte{ + 0x0a, 0x21, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x69, + 0x6e, 0x67, 0x5f, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x12, 0x07, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x1a, 0x2b, 0x70, 0x61, + 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x69, + 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x22, 0x0a, 0x20, 0x50, 0x61, 0x73, + 0x73, 0x77, 0x6f, 0x72, 0x64, 0x53, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x63, 0x69, + 0x70, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x8e, 0x02, + 0x0a, 0x21, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x53, 0x68, 0x61, 0x72, 0x69, 0x6e, + 0x67, 0x52, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x62, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x4a, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x50, 0x61, + 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x53, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x63, + 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, + 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x53, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x52, + 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, + 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x31, 0x0a, 0x0a, 0x72, 0x65, 0x63, 0x69, 0x70, + 0x69, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x73, 0x79, + 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, + 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x52, 0x0a, 0x1f, 0x50, 0x61, + 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x53, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x63, + 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x0b, 0x0a, + 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x55, + 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, 0x4e, 0x4f, 0x54, 0x5f, 0x46, + 0x41, 0x4d, 0x49, 0x4c, 0x59, 0x5f, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x10, 0x02, 0x42, 0x36, + 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x63, + 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x03, 0x50, 0x01, 0x5a, 0x09, 0x2e, 0x2f, 0x73, + 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, +} + +var ( + file_password_sharing_recipients_proto_rawDescOnce sync.Once + file_password_sharing_recipients_proto_rawDescData = file_password_sharing_recipients_proto_rawDesc +) + +func file_password_sharing_recipients_proto_rawDescGZIP() []byte { + file_password_sharing_recipients_proto_rawDescOnce.Do(func() { + file_password_sharing_recipients_proto_rawDescData = protoimpl.X.CompressGZIP(file_password_sharing_recipients_proto_rawDescData) + }) + return file_password_sharing_recipients_proto_rawDescData +} + +var file_password_sharing_recipients_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_password_sharing_recipients_proto_msgTypes = make([]protoimpl.MessageInfo, 2) +var file_password_sharing_recipients_proto_goTypes = []interface{}{ + (PasswordSharingRecipientsResponse_PasswordSharingRecipientsResult)(0), // 0: sync_pb.PasswordSharingRecipientsResponse.PasswordSharingRecipientsResult + (*PasswordSharingRecipientsRequest)(nil), // 1: sync_pb.PasswordSharingRecipientsRequest + (*PasswordSharingRecipientsResponse)(nil), // 2: sync_pb.PasswordSharingRecipientsResponse + (*UserInfo)(nil), // 3: sync_pb.UserInfo +} +var file_password_sharing_recipients_proto_depIdxs = []int32{ + 0, // 0: sync_pb.PasswordSharingRecipientsResponse.result:type_name -> sync_pb.PasswordSharingRecipientsResponse.PasswordSharingRecipientsResult + 3, // 1: sync_pb.PasswordSharingRecipientsResponse.recipients:type_name -> sync_pb.UserInfo + 2, // [2:2] is the sub-list for method output_type + 2, // [2:2] is the sub-list for method input_type + 2, // [2:2] is the sub-list for extension type_name + 2, // [2:2] is the sub-list for extension extendee + 0, // [0:2] is the sub-list for field type_name +} + +func init() { file_password_sharing_recipients_proto_init() } +func file_password_sharing_recipients_proto_init() { + if File_password_sharing_recipients_proto != nil { + return + } + file_password_sharing_invitation_specifics_proto_init() + if !protoimpl.UnsafeEnabled { + file_password_sharing_recipients_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PasswordSharingRecipientsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_password_sharing_recipients_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PasswordSharingRecipientsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_password_sharing_recipients_proto_rawDesc, + NumEnums: 1, + NumMessages: 2, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_password_sharing_recipients_proto_goTypes, + DependencyIndexes: file_password_sharing_recipients_proto_depIdxs, + EnumInfos: file_password_sharing_recipients_proto_enumTypes, + MessageInfos: file_password_sharing_recipients_proto_msgTypes, + }.Build() + File_password_sharing_recipients_proto = out.File + file_password_sharing_recipients_proto_rawDesc = nil + file_password_sharing_recipients_proto_goTypes = nil + file_password_sharing_recipients_proto_depIdxs = nil +} diff --git a/schema/protobuf/sync_pb/password_sharing_recipients.proto b/schema/protobuf/sync_pb/password_sharing_recipients.proto new file mode 100644 index 00000000..14438090 --- /dev/null +++ b/schema/protobuf/sync_pb/password_sharing_recipients.proto @@ -0,0 +1,41 @@ +// Copyright 2023 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +syntax = "proto2"; + +option go_package = "./sync_pb"; + +option java_multiple_files = true; +option java_package = "org.chromium.components.sync.protocol"; + +option optimize_for = LITE_RUNTIME; + +package sync_pb; + +import "password_sharing_invitation_specifics.proto"; + +// A message to obtain a list of recipients for sending a password. +message PasswordSharingRecipientsRequest { + // The request returns family members for the user and that is why no + // additional fields are required. +} + +message PasswordSharingRecipientsResponse { + enum PasswordSharingRecipientsResult { + UNKNOWN = 0; + + // The user is a member of a family and the request succeeded. + SUCCESS = 1; + + // Not a family member, used to distinguish from a family with + // only one member. + NOT_FAMILY_MEMBER = 2; + } + optional PasswordSharingRecipientsResult result = 1; + + // List of possible recipients for sending a password. Note that public key + // may be absent if a recipient can’t receive a password (e.g. due to an older + // Chrome version). + repeated UserInfo recipients = 2; +} diff --git a/schema/protobuf/sync_pb/password_specifics.pb.go b/schema/protobuf/sync_pb/password_specifics.pb.go index aabf0500..d3594ca7 100644 --- a/schema/protobuf/sync_pb/password_specifics.pb.go +++ b/schema/protobuf/sync_pb/password_specifics.pb.go @@ -1,4 +1,4 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2012 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // @@ -9,7 +9,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.0 +// protoc-gen-go v1.31.0 // protoc v3.21.1 // source: password_specifics.proto @@ -29,36 +29,240 @@ const ( _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) +// The different types of the saved credential. +type PasswordSpecificsData_Scheme int32 + +const ( + // SCHEME_HTML, the credential represents either a parsed HTML form, or an + // android credential or a password saved through Credential Management API + // (https://w3c.github.io/webappsec/specs/credentialmanagement/). + PasswordSpecificsData_SCHEME_HTML PasswordSpecificsData_Scheme = 0 + // SCHEME_BASIC, basic access http authentication. + PasswordSpecificsData_SCHEME_BASIC PasswordSpecificsData_Scheme = 1 + // SCHEME_DIGEST, digest access authentication. + PasswordSpecificsData_SCHEME_DIGEST PasswordSpecificsData_Scheme = 2 + // SCHEME_OTHER, another proxy access authentication. + PasswordSpecificsData_SCHEME_OTHER PasswordSpecificsData_Scheme = 3 + // USERNAME_ONLY, partial credentials saved on Android that contain only + // username and miss the password. + PasswordSpecificsData_USERNAME_ONLY PasswordSpecificsData_Scheme = 4 +) + +// Enum value maps for PasswordSpecificsData_Scheme. +var ( + PasswordSpecificsData_Scheme_name = map[int32]string{ + 0: "SCHEME_HTML", + 1: "SCHEME_BASIC", + 2: "SCHEME_DIGEST", + 3: "SCHEME_OTHER", + 4: "USERNAME_ONLY", + } + PasswordSpecificsData_Scheme_value = map[string]int32{ + "SCHEME_HTML": 0, + "SCHEME_BASIC": 1, + "SCHEME_DIGEST": 2, + "SCHEME_OTHER": 3, + "USERNAME_ONLY": 4, + } +) + +func (x PasswordSpecificsData_Scheme) Enum() *PasswordSpecificsData_Scheme { + p := new(PasswordSpecificsData_Scheme) + *p = x + return p +} + +func (x PasswordSpecificsData_Scheme) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (PasswordSpecificsData_Scheme) Descriptor() protoreflect.EnumDescriptor { + return file_password_specifics_proto_enumTypes[0].Descriptor() +} + +func (PasswordSpecificsData_Scheme) Type() protoreflect.EnumType { + return &file_password_specifics_proto_enumTypes[0] +} + +func (x PasswordSpecificsData_Scheme) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Do not use. +func (x *PasswordSpecificsData_Scheme) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err + } + *x = PasswordSpecificsData_Scheme(num) + return nil +} + +// Deprecated: Use PasswordSpecificsData_Scheme.Descriptor instead. +func (PasswordSpecificsData_Scheme) EnumDescriptor() ([]byte, []int) { + return file_password_specifics_proto_rawDescGZIP(), []int{1, 0} +} + // All the strings are encoded with UTF-8. URLs are encoded in Punycode. +type PasswordIssues struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + LeakedPasswordIssue *PasswordIssues_PasswordIssue `protobuf:"bytes,1,opt,name=leaked_password_issue,json=leakedPasswordIssue" json:"leaked_password_issue,omitempty"` + ReusedPasswordIssue *PasswordIssues_PasswordIssue `protobuf:"bytes,2,opt,name=reused_password_issue,json=reusedPasswordIssue" json:"reused_password_issue,omitempty"` + WeakPasswordIssue *PasswordIssues_PasswordIssue `protobuf:"bytes,3,opt,name=weak_password_issue,json=weakPasswordIssue" json:"weak_password_issue,omitempty"` + PhishedPasswordIssue *PasswordIssues_PasswordIssue `protobuf:"bytes,4,opt,name=phished_password_issue,json=phishedPasswordIssue" json:"phished_password_issue,omitempty"` +} + +func (x *PasswordIssues) Reset() { + *x = PasswordIssues{} + if protoimpl.UnsafeEnabled { + mi := &file_password_specifics_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PasswordIssues) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PasswordIssues) ProtoMessage() {} + +func (x *PasswordIssues) ProtoReflect() protoreflect.Message { + mi := &file_password_specifics_proto_msgTypes[0] + 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 PasswordIssues.ProtoReflect.Descriptor instead. +func (*PasswordIssues) Descriptor() ([]byte, []int) { + return file_password_specifics_proto_rawDescGZIP(), []int{0} +} + +func (x *PasswordIssues) GetLeakedPasswordIssue() *PasswordIssues_PasswordIssue { + if x != nil { + return x.LeakedPasswordIssue + } + return nil +} + +func (x *PasswordIssues) GetReusedPasswordIssue() *PasswordIssues_PasswordIssue { + if x != nil { + return x.ReusedPasswordIssue + } + return nil +} + +func (x *PasswordIssues) GetWeakPasswordIssue() *PasswordIssues_PasswordIssue { + if x != nil { + return x.WeakPasswordIssue + } + return nil +} + +func (x *PasswordIssues) GetPhishedPasswordIssue() *PasswordIssues_PasswordIssue { + if x != nil { + return x.PhishedPasswordIssue + } + return nil +} + type PasswordSpecificsData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // SCHEME_HTML(0), the credential represents either a parsed HTML form, or an - // android credential or a password saved through Credential Management API - // (https://w3c.github.io/webappsec/specs/credentialmanagement/). - // SCHEME_BASIC(1), basic access http authentication. - // SCHEME_DIGEST(2), digest access authentication. - // SCHEME_OTHER(3), another access authentication. + // See the enum above. Scheme *int32 `protobuf:"varint,1,opt,name=scheme" json:"scheme,omitempty"` - // For parsed web forms and normal passwords saved through Credential Manager - // API: url-scheme://url-host[:url-port]/ - // For Android apps (local + federated): - // "android://@/" - // where the hash is base64 encoded SHA512 of the app's public certificate. - // For federated credentials: - // "federation://" + origin_host + "/" + federation_host - // For proxy auth: proxy-host/auth-realm - // For HTTP auth: url-scheme://url-host[:url-port]/auth-realm + // Signon realm stores information on where the saved password was stored, and + // where it's supposed to be filled again. + // + // It can take various formats depending on the exact circumstances where it + // was recorded. Note that the format is *not* guaranteed to be a valid URL or + // URI: + // + // - For parsed web forms and normal passwords saved through Credential + // Manager + // API: ://[:]/ + // + // where + // is one of "http" or "https" + // is the host for which the password was stored + // is the option port on the host + // The signon realm is a valid URL in this case with an empty path. + // Examples: + // http://www.example.com/ + // https://127.0.0.1/ + // http://www.google.com:8080/ + // http://192.168.1.254/ + // https://accounts.google.com/ + // + // - For Android apps saved through Autofill with Google: + // android://@/ + // where + // is the base64 encoded SHA512 of the app's public + // certificate is the app's package name + // Examples: + // android://kCyQDzpaoAX2gs-1zdGPKNAeICb8LzRFOxa4NCq0jO8c8d_NFS_q-Y35bU3Nq3GmFV2lLurmNvIZa6YPYZwmWg==@com.pinterest/ + // android://mNUCvTnoWBkzIhSSkVj-uzAdK42YagmCmyUtPoC6JPmYAN3wKpmTdIRsdJtz6pzNBye8XL7nBbEcx-y9CJeo9A==@com.twitter.android.lite/ + // + // - For federated credentials: + // federation:/// + // where + // is the host for which the login information was stored + // is the host of the federation provider that was + // used to sign in + // Examples: + // federation://www.example.com/accounts.google.com + // federation://uk.trustpilot.com/www.facebook.com + // + // - For proxy auth: + // [:]/ + // where + // is the host of the proxy for which the password was + // stored + // is the port of the proxy + // is a string provided by the proxy during authentication. + // It can contain spaces. + // Examples: + // proxy2.eq.edu.au:80/MISldap + // proxy.det.nsw.edu.au:8080/NSW Department of Education + // 10.47.2.250:3128/Squid Proxy Server CPUT + // default.go2https.com:443/(******Get password from vpnso.com/account/ + // *****) + // + // - For HTTP basic auth: + // ://[:]/ + // where + // is one of "http" or "https" + // is the host for which the password was stored + // is the option port on the host + // is a string provided by the host during authentication. + // It can contain spaces. + // Examples: + // http://192.168.1.1/Broadband Router + // http://192.168.0.1/TP-LINK Wireless N Router WR841N + // http://192.168.1.1/index.htm + // https://www.edge.asic.gov.au/ASIC eBusiness SignonRealm *string `protobuf:"bytes,2,opt,name=signon_realm,json=signonRealm" json:"signon_realm,omitempty"` // For parsed web forms and Credential Management API: - // url-scheme://url-host[:url-port]/path + // + // url-scheme://url-host[:url-port]/path + // // For Android: "android://@/" // For proxy/HTTP auth: url-scheme://url-host[:url-port]/path Origin *string `protobuf:"bytes,3,opt,name=origin" json:"origin,omitempty"` // Only for web-parsed forms - the action target of the form: - // url-scheme://url-host[:url-port]/path + // + // url-scheme://url-host[:url-port]/path Action *string `protobuf:"bytes,4,opt,name=action" json:"action,omitempty"` // Only for web-parsed forms - the name of the element containing username. UsernameElement *string `protobuf:"bytes,5,opt,name=username_element,json=usernameElement" json:"username_element,omitempty"` @@ -74,12 +278,12 @@ type PasswordSpecificsData struct { // True if the credential was saved for a HTTPS session with a valid SSL cert. // Ignored for Android apps. // - // Deprecated: Do not use. + // Deprecated: Marked as deprecated in password_specifics.proto. SslValid *bool `protobuf:"varint,9,opt,name=ssl_valid,json=sslValid" json:"ssl_valid,omitempty"` // True for the last credential used for logging in on a given site. // Deprecated in M81. // - // Deprecated: Do not use. + // Deprecated: Marked as deprecated in password_specifics.proto. Preferred *bool `protobuf:"varint,10,opt,name=preferred" json:"preferred,omitempty"` // Time when the credential was created. Amount of microseconds since 1601. DateCreated *int64 `protobuf:"varint,11,opt,name=date_created,json=dateCreated" json:"date_created,omitempty"` @@ -91,9 +295,10 @@ type PasswordSpecificsData struct { // kApi(2), the credential was generated from Credential Management API. // kManuallyAdded(3), user manually created the password credential // via Settings. + // kImported(4), the credential was imported using the import flow. Type *int32 `protobuf:"varint,13,opt,name=type" json:"type,omitempty"` - // Number of times this login was used for logging in. Chrome uses this field - // to distinguish log-in and sign-up forms. + // Number of times this login was used for logging in using an HTML form. + // Chrome uses this field to distinguish log-in and sign-up forms. TimesUsed *int32 `protobuf:"varint,14,opt,name=times_used,json=timesUsed" json:"times_used,omitempty"` // A human readable name of the account holder. Set by CredentialManager API // and Android. @@ -116,7 +321,7 @@ type PasswordSpecificsData struct { // clients are expected to clear the field when the password value is updated. // 'reused' part can be additionally reset when the analysis on the entire // password store is completed. - PasswordIssues *PasswordSpecificsData_PasswordIssues `protobuf:"bytes,19,opt,name=password_issues,json=passwordIssues" json:"password_issues,omitempty"` + PasswordIssues *PasswordIssues `protobuf:"bytes,19,opt,name=password_issues,json=passwordIssues" json:"password_issues,omitempty"` // Time when the |password_value| was last modified. For new credentials it // should be set to |date_created|. For subsequent updates the timestamp is // changed if and only if the new password value was saved. @@ -126,13 +331,13 @@ type PasswordSpecificsData struct { // this field, even with an empty Notes message, becomes the authoritative // value for notes and would disregard whatever `encrypted_notes_backup` // contains. - Notes *PasswordSpecificsData_Notes `protobuf:"bytes,21,opt,name=notes" json:"notes,omitempty"` + Notes *PasswordSpecificsData_Notes `protobuf:"bytes,22,opt,name=notes" json:"notes,omitempty"` } func (x *PasswordSpecificsData) Reset() { *x = PasswordSpecificsData{} if protoimpl.UnsafeEnabled { - mi := &file_password_specifics_proto_msgTypes[0] + mi := &file_password_specifics_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -145,7 +350,7 @@ func (x *PasswordSpecificsData) String() string { func (*PasswordSpecificsData) ProtoMessage() {} func (x *PasswordSpecificsData) ProtoReflect() protoreflect.Message { - mi := &file_password_specifics_proto_msgTypes[0] + mi := &file_password_specifics_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -158,7 +363,7 @@ func (x *PasswordSpecificsData) ProtoReflect() protoreflect.Message { // Deprecated: Use PasswordSpecificsData.ProtoReflect.Descriptor instead. func (*PasswordSpecificsData) Descriptor() ([]byte, []int) { - return file_password_specifics_proto_rawDescGZIP(), []int{0} + return file_password_specifics_proto_rawDescGZIP(), []int{1} } func (x *PasswordSpecificsData) GetScheme() int32 { @@ -217,7 +422,7 @@ func (x *PasswordSpecificsData) GetPasswordValue() string { return "" } -// Deprecated: Do not use. +// Deprecated: Marked as deprecated in password_specifics.proto. func (x *PasswordSpecificsData) GetSslValid() bool { if x != nil && x.SslValid != nil { return *x.SslValid @@ -225,7 +430,7 @@ func (x *PasswordSpecificsData) GetSslValid() bool { return false } -// Deprecated: Do not use. +// Deprecated: Marked as deprecated in password_specifics.proto. func (x *PasswordSpecificsData) GetPreferred() bool { if x != nil && x.Preferred != nil { return *x.Preferred @@ -289,7 +494,7 @@ func (x *PasswordSpecificsData) GetDateLastUsed() int64 { return 0 } -func (x *PasswordSpecificsData) GetPasswordIssues() *PasswordSpecificsData_PasswordIssues { +func (x *PasswordSpecificsData) GetPasswordIssues() *PasswordIssues { if x != nil { return x.PasswordIssues } @@ -316,16 +521,23 @@ type PasswordSpecificsMetadata struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + // The signon realm for the credential. For more details, see the + // `signon_realm` field in PasswordSpecificsData. Url *string `protobuf:"bytes,1,opt,name=url" json:"url,omitempty"` // True, if user chose permanently not to save the credentials for the form. - // Introduced in M82. + // Introduced in M82. Copy from PasswordSpecificsData.blacklisted. Blacklisted *bool `protobuf:"varint,2,opt,name=blacklisted" json:"blacklisted,omitempty"` + // Copy from PasswordSpecificsData.date_last_used. + // Introduced in M112. + DateLastUsedWindowsEpochMicros *int64 `protobuf:"varint,3,opt,name=date_last_used_windows_epoch_micros,json=dateLastUsedWindowsEpochMicros" json:"date_last_used_windows_epoch_micros,omitempty"` + // Copy from PasswordSpecificsData.password_issues. Introduced in M114. + PasswordIssues *PasswordIssues `protobuf:"bytes,4,opt,name=password_issues,json=passwordIssues" json:"password_issues,omitempty"` } func (x *PasswordSpecificsMetadata) Reset() { *x = PasswordSpecificsMetadata{} if protoimpl.UnsafeEnabled { - mi := &file_password_specifics_proto_msgTypes[1] + mi := &file_password_specifics_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -338,7 +550,7 @@ func (x *PasswordSpecificsMetadata) String() string { func (*PasswordSpecificsMetadata) ProtoMessage() {} func (x *PasswordSpecificsMetadata) ProtoReflect() protoreflect.Message { - mi := &file_password_specifics_proto_msgTypes[1] + mi := &file_password_specifics_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -351,7 +563,7 @@ func (x *PasswordSpecificsMetadata) ProtoReflect() protoreflect.Message { // Deprecated: Use PasswordSpecificsMetadata.ProtoReflect.Descriptor instead. func (*PasswordSpecificsMetadata) Descriptor() ([]byte, []int) { - return file_password_specifics_proto_rawDescGZIP(), []int{1} + return file_password_specifics_proto_rawDescGZIP(), []int{2} } func (x *PasswordSpecificsMetadata) GetUrl() string { @@ -368,6 +580,20 @@ func (x *PasswordSpecificsMetadata) GetBlacklisted() bool { return false } +func (x *PasswordSpecificsMetadata) GetDateLastUsedWindowsEpochMicros() int64 { + if x != nil && x.DateLastUsedWindowsEpochMicros != nil { + return *x.DateLastUsedWindowsEpochMicros + } + return 0 +} + +func (x *PasswordSpecificsMetadata) GetPasswordIssues() *PasswordIssues { + if x != nil { + return x.PasswordIssues + } + return nil +} + // Properties of password sync objects. type PasswordSpecifics struct { state protoimpl.MessageState @@ -397,21 +623,22 @@ type PasswordSpecifics struct { // Encryption key considerations: // a) For commits, the client must use the same key for both encrypted blobs. // b) For handling getupdates, the two keys may NOT necessarily match the - // encryption key used, as in theory the new blob could be "behind" if key - // rotation took place. As of today, it is safe to assume that if - // |encrypted| is decryptable by a client, then |encrypted_notes_backup| - // must be decryptable too (i.e. the Nigori keybag should include older - // versions of the key). But not the other way round. + // + // encryption key used, as in theory the new blob could be "behind" if key + // rotation took place. As of today, it is safe to assume that if + // |encrypted| is decryptable by a client, then |encrypted_notes_backup| + // must be decryptable too (i.e. the Nigori keybag should include older + // versions of the key). But not the other way round. // // If both `encrypted_notes_backup` and the `notes` in `encrypted` are // populated, the one in notes is considered the authoritative value. - EncryptedNotesBackup *EncryptedData `protobuf:"bytes,4,opt,name=encrypted_notes_backup,json=encryptedNotesBackup" json:"encrypted_notes_backup,omitempty"` + EncryptedNotesBackup *EncryptedData `protobuf:"bytes,5,opt,name=encrypted_notes_backup,json=encryptedNotesBackup" json:"encrypted_notes_backup,omitempty"` } func (x *PasswordSpecifics) Reset() { *x = PasswordSpecifics{} if protoimpl.UnsafeEnabled { - mi := &file_password_specifics_proto_msgTypes[2] + mi := &file_password_specifics_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -424,7 +651,7 @@ func (x *PasswordSpecifics) String() string { func (*PasswordSpecifics) ProtoMessage() {} func (x *PasswordSpecifics) ProtoReflect() protoreflect.Message { - mi := &file_password_specifics_proto_msgTypes[2] + mi := &file_password_specifics_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -437,7 +664,7 @@ func (x *PasswordSpecifics) ProtoReflect() protoreflect.Message { // Deprecated: Use PasswordSpecifics.ProtoReflect.Descriptor instead. func (*PasswordSpecifics) Descriptor() ([]byte, []int) { - return file_password_specifics_proto_rawDescGZIP(), []int{2} + return file_password_specifics_proto_rawDescGZIP(), []int{3} } func (x *PasswordSpecifics) GetEncrypted() *EncryptedData { @@ -468,34 +695,45 @@ func (x *PasswordSpecifics) GetEncryptedNotesBackup() *EncryptedData { return nil } -type PasswordSpecificsData_PasswordIssues struct { +type PasswordIssues_PasswordIssue struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - LeakedPasswordIssue *PasswordSpecificsData_PasswordIssues_PasswordIssue `protobuf:"bytes,1,opt,name=leaked_password_issue,json=leakedPasswordIssue" json:"leaked_password_issue,omitempty"` - ReusedPasswordIssue *PasswordSpecificsData_PasswordIssues_PasswordIssue `protobuf:"bytes,2,opt,name=reused_password_issue,json=reusedPasswordIssue" json:"reused_password_issue,omitempty"` - WeakPasswordIssue *PasswordSpecificsData_PasswordIssues_PasswordIssue `protobuf:"bytes,3,opt,name=weak_password_issue,json=weakPasswordIssue" json:"weak_password_issue,omitempty"` - PhishedPasswordIssue *PasswordSpecificsData_PasswordIssues_PasswordIssue `protobuf:"bytes,4,opt,name=phished_password_issue,json=phishedPasswordIssue" json:"phished_password_issue,omitempty"` + // Timestamp set by a client detecting the issue for the first time. + // Number of microseconds since Windows epoch (1601). + // This can be unset even if is_muted is set in a few cases in + // storage (for a time mutes were written without setting this + // field - fixed starting 2021-11-10). + DateFirstDetectionWindowsEpochMicros *uint64 `protobuf:"varint,1,opt,name=date_first_detection_windows_epoch_micros,json=dateFirstDetectionWindowsEpochMicros" json:"date_first_detection_windows_epoch_micros,omitempty"` + // Whether the issue was muted by user. + IsMuted *bool `protobuf:"varint,2,opt,name=is_muted,json=isMuted" json:"is_muted,omitempty"` + // Whether the backend should notify the user about this issue. + // Set to true if the user hasn't already seen a client notification for + // this issue (e.g. a leak detection prompt in Chrome). The backend sending + // notifications does not reset this field. All other sources can write this + // in both `PasswordSpecificsData` and `PasswordSpecificsMetadata` and do + // so. + TriggerNotificationFromBackendOnDetection *bool `protobuf:"varint,3,opt,name=trigger_notification_from_backend_on_detection,json=triggerNotificationFromBackendOnDetection" json:"trigger_notification_from_backend_on_detection,omitempty"` } -func (x *PasswordSpecificsData_PasswordIssues) Reset() { - *x = PasswordSpecificsData_PasswordIssues{} +func (x *PasswordIssues_PasswordIssue) Reset() { + *x = PasswordIssues_PasswordIssue{} if protoimpl.UnsafeEnabled { - mi := &file_password_specifics_proto_msgTypes[3] + mi := &file_password_specifics_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PasswordSpecificsData_PasswordIssues) String() string { +func (x *PasswordIssues_PasswordIssue) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PasswordSpecificsData_PasswordIssues) ProtoMessage() {} +func (*PasswordIssues_PasswordIssue) ProtoMessage() {} -func (x *PasswordSpecificsData_PasswordIssues) ProtoReflect() protoreflect.Message { - mi := &file_password_specifics_proto_msgTypes[3] +func (x *PasswordIssues_PasswordIssue) ProtoReflect() protoreflect.Message { + mi := &file_password_specifics_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -506,37 +744,30 @@ func (x *PasswordSpecificsData_PasswordIssues) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use PasswordSpecificsData_PasswordIssues.ProtoReflect.Descriptor instead. -func (*PasswordSpecificsData_PasswordIssues) Descriptor() ([]byte, []int) { +// Deprecated: Use PasswordIssues_PasswordIssue.ProtoReflect.Descriptor instead. +func (*PasswordIssues_PasswordIssue) Descriptor() ([]byte, []int) { return file_password_specifics_proto_rawDescGZIP(), []int{0, 0} } -func (x *PasswordSpecificsData_PasswordIssues) GetLeakedPasswordIssue() *PasswordSpecificsData_PasswordIssues_PasswordIssue { - if x != nil { - return x.LeakedPasswordIssue - } - return nil -} - -func (x *PasswordSpecificsData_PasswordIssues) GetReusedPasswordIssue() *PasswordSpecificsData_PasswordIssues_PasswordIssue { - if x != nil { - return x.ReusedPasswordIssue +func (x *PasswordIssues_PasswordIssue) GetDateFirstDetectionWindowsEpochMicros() uint64 { + if x != nil && x.DateFirstDetectionWindowsEpochMicros != nil { + return *x.DateFirstDetectionWindowsEpochMicros } - return nil + return 0 } -func (x *PasswordSpecificsData_PasswordIssues) GetWeakPasswordIssue() *PasswordSpecificsData_PasswordIssues_PasswordIssue { - if x != nil { - return x.WeakPasswordIssue +func (x *PasswordIssues_PasswordIssue) GetIsMuted() bool { + if x != nil && x.IsMuted != nil { + return *x.IsMuted } - return nil + return false } -func (x *PasswordSpecificsData_PasswordIssues) GetPhishedPasswordIssue() *PasswordSpecificsData_PasswordIssues_PasswordIssue { - if x != nil { - return x.PhishedPasswordIssue +func (x *PasswordIssues_PasswordIssue) GetTriggerNotificationFromBackendOnDetection() bool { + if x != nil && x.TriggerNotificationFromBackendOnDetection != nil { + return *x.TriggerNotificationFromBackendOnDetection } - return nil + return false } type PasswordSpecificsData_Notes struct { @@ -550,7 +781,7 @@ type PasswordSpecificsData_Notes struct { func (x *PasswordSpecificsData_Notes) Reset() { *x = PasswordSpecificsData_Notes{} if protoimpl.UnsafeEnabled { - mi := &file_password_specifics_proto_msgTypes[4] + mi := &file_password_specifics_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -563,7 +794,7 @@ func (x *PasswordSpecificsData_Notes) String() string { func (*PasswordSpecificsData_Notes) ProtoMessage() {} func (x *PasswordSpecificsData_Notes) ProtoReflect() protoreflect.Message { - mi := &file_password_specifics_proto_msgTypes[4] + mi := &file_password_specifics_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -576,7 +807,7 @@ func (x *PasswordSpecificsData_Notes) ProtoReflect() protoreflect.Message { // Deprecated: Use PasswordSpecificsData_Notes.ProtoReflect.Descriptor instead. func (*PasswordSpecificsData_Notes) Descriptor() ([]byte, []int) { - return file_password_specifics_proto_rawDescGZIP(), []int{0, 1} + return file_password_specifics_proto_rawDescGZIP(), []int{1, 0} } func (x *PasswordSpecificsData_Notes) GetNote() []*PasswordSpecificsData_Notes_Note { @@ -586,67 +817,6 @@ func (x *PasswordSpecificsData_Notes) GetNote() []*PasswordSpecificsData_Notes_N return nil } -type PasswordSpecificsData_PasswordIssues_PasswordIssue struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Timestamp set by a client detecting the issue for the first time. - // Number of microseconds since Windows epoch (1601). - // This can be unset even if is_muted is set in a few cases in - // storage (for a time mutes were written without setting this - // field - fixed starting 2021-11-10). - DateFirstDetectionMicroseconds *uint64 `protobuf:"varint,1,opt,name=date_first_detection_microseconds,json=dateFirstDetectionMicroseconds" json:"date_first_detection_microseconds,omitempty"` - // Whether the issue was muted by user. - IsMuted *bool `protobuf:"varint,2,opt,name=is_muted,json=isMuted" json:"is_muted,omitempty"` -} - -func (x *PasswordSpecificsData_PasswordIssues_PasswordIssue) Reset() { - *x = PasswordSpecificsData_PasswordIssues_PasswordIssue{} - if protoimpl.UnsafeEnabled { - mi := &file_password_specifics_proto_msgTypes[5] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *PasswordSpecificsData_PasswordIssues_PasswordIssue) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*PasswordSpecificsData_PasswordIssues_PasswordIssue) ProtoMessage() {} - -func (x *PasswordSpecificsData_PasswordIssues_PasswordIssue) ProtoReflect() protoreflect.Message { - mi := &file_password_specifics_proto_msgTypes[5] - 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 PasswordSpecificsData_PasswordIssues_PasswordIssue.ProtoReflect.Descriptor instead. -func (*PasswordSpecificsData_PasswordIssues_PasswordIssue) Descriptor() ([]byte, []int) { - return file_password_specifics_proto_rawDescGZIP(), []int{0, 0, 0} -} - -func (x *PasswordSpecificsData_PasswordIssues_PasswordIssue) GetDateFirstDetectionMicroseconds() uint64 { - if x != nil && x.DateFirstDetectionMicroseconds != nil { - return *x.DateFirstDetectionMicroseconds - } - return 0 -} - -func (x *PasswordSpecificsData_PasswordIssues_PasswordIssue) GetIsMuted() bool { - if x != nil && x.IsMuted != nil { - return *x.IsMuted - } - return false -} - type PasswordSpecificsData_Notes_Note struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -692,7 +862,7 @@ func (x *PasswordSpecificsData_Notes_Note) ProtoReflect() protoreflect.Message { // Deprecated: Use PasswordSpecificsData_Notes_Note.ProtoReflect.Descriptor instead. func (*PasswordSpecificsData_Notes_Note) Descriptor() ([]byte, []int) { - return file_password_specifics_proto_rawDescGZIP(), []int{0, 1, 0} + return file_password_specifics_proto_rawDescGZIP(), []int{1, 0, 0} } func (x *PasswordSpecificsData_Notes_Note) GetUniqueDisplayName() string { @@ -729,50 +899,87 @@ var file_password_specifics_proto_rawDesc = []byte{ 0x0a, 0x18, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x07, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x1a, 0x10, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xb7, 0x0d, 0x0a, 0x15, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, - 0x72, 0x64, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x44, 0x61, 0x74, 0x61, 0x12, - 0x16, 0x0a, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x69, 0x67, 0x6e, 0x6f, - 0x6e, 0x5f, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, - 0x69, 0x67, 0x6e, 0x6f, 0x6e, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x72, - 0x69, 0x67, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6f, 0x72, 0x69, 0x67, - 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x29, 0x0a, 0x10, 0x75, 0x73, - 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x45, 0x6c, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, - 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x75, - 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x29, 0x0a, 0x10, - 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x5f, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, - 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x61, 0x73, 0x73, 0x77, - 0x6f, 0x72, 0x64, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0d, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1f, - 0x0a, 0x09, 0x73, 0x73, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, - 0x08, 0x42, 0x02, 0x18, 0x01, 0x52, 0x08, 0x73, 0x73, 0x6c, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x12, - 0x20, 0x0a, 0x09, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x08, 0x42, 0x02, 0x18, 0x01, 0x52, 0x09, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, - 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x64, 0x61, 0x74, 0x65, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x62, 0x6c, 0x61, 0x63, 0x6b, 0x6c, 0x69, 0x73, - 0x74, 0x65, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x62, 0x6c, 0x61, 0x63, 0x6b, - 0x6c, 0x69, 0x73, 0x74, 0x65, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0d, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x69, - 0x6d, 0x65, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, - 0x74, 0x69, 0x6d, 0x65, 0x73, 0x55, 0x73, 0x65, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, - 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, - 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x55, 0x72, 0x6c, 0x12, 0x25, 0x0a, 0x0e, 0x66, - 0x65, 0x64, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x11, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0d, 0x66, 0x65, 0x64, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, - 0x72, 0x6c, 0x12, 0x24, 0x0a, 0x0e, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, - 0x75, 0x73, 0x65, 0x64, 0x18, 0x12, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x64, 0x61, 0x74, 0x65, - 0x4c, 0x61, 0x73, 0x74, 0x55, 0x73, 0x65, 0x64, 0x12, 0x56, 0x0a, 0x0f, 0x70, 0x61, 0x73, 0x73, - 0x77, 0x6f, 0x72, 0x64, 0x5f, 0x69, 0x73, 0x73, 0x75, 0x65, 0x73, 0x18, 0x13, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x2d, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x50, 0x61, 0x73, 0x73, - 0x77, 0x6f, 0x72, 0x64, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x44, 0x61, 0x74, - 0x61, 0x2e, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x49, 0x73, 0x73, 0x75, 0x65, 0x73, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xe3, 0x04, 0x0a, 0x0e, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, + 0x72, 0x64, 0x49, 0x73, 0x73, 0x75, 0x65, 0x73, 0x12, 0x59, 0x0a, 0x15, 0x6c, 0x65, 0x61, 0x6b, + 0x65, 0x64, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x5f, 0x69, 0x73, 0x73, 0x75, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, + 0x62, 0x2e, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x49, 0x73, 0x73, 0x75, 0x65, 0x73, + 0x2e, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x49, 0x73, 0x73, 0x75, 0x65, 0x52, 0x13, + 0x6c, 0x65, 0x61, 0x6b, 0x65, 0x64, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x49, 0x73, + 0x73, 0x75, 0x65, 0x12, 0x59, 0x0a, 0x15, 0x72, 0x65, 0x75, 0x73, 0x65, 0x64, 0x5f, 0x70, 0x61, + 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x5f, 0x69, 0x73, 0x73, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x50, 0x61, 0x73, + 0x73, 0x77, 0x6f, 0x72, 0x64, 0x49, 0x73, 0x73, 0x75, 0x65, 0x73, 0x2e, 0x50, 0x61, 0x73, 0x73, + 0x77, 0x6f, 0x72, 0x64, 0x49, 0x73, 0x73, 0x75, 0x65, 0x52, 0x13, 0x72, 0x65, 0x75, 0x73, 0x65, + 0x64, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x49, 0x73, 0x73, 0x75, 0x65, 0x12, 0x55, + 0x0a, 0x13, 0x77, 0x65, 0x61, 0x6b, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x5f, + 0x69, 0x73, 0x73, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x73, 0x79, + 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x49, 0x73, + 0x73, 0x75, 0x65, 0x73, 0x2e, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x49, 0x73, 0x73, + 0x75, 0x65, 0x52, 0x11, 0x77, 0x65, 0x61, 0x6b, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, + 0x49, 0x73, 0x73, 0x75, 0x65, 0x12, 0x5b, 0x0a, 0x16, 0x70, 0x68, 0x69, 0x73, 0x68, 0x65, 0x64, + 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x5f, 0x69, 0x73, 0x73, 0x75, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, + 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x49, 0x73, 0x73, 0x75, 0x65, 0x73, 0x2e, 0x50, + 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x49, 0x73, 0x73, 0x75, 0x65, 0x52, 0x14, 0x70, 0x68, + 0x69, 0x73, 0x68, 0x65, 0x64, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x49, 0x73, 0x73, + 0x75, 0x65, 0x1a, 0xe6, 0x01, 0x0a, 0x0d, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x49, + 0x73, 0x73, 0x75, 0x65, 0x12, 0x57, 0x0a, 0x29, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x66, 0x69, 0x72, + 0x73, 0x74, 0x5f, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x77, 0x69, 0x6e, + 0x64, 0x6f, 0x77, 0x73, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x5f, 0x6d, 0x69, 0x63, 0x72, 0x6f, + 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x24, 0x64, 0x61, 0x74, 0x65, 0x46, 0x69, 0x72, + 0x73, 0x74, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x57, 0x69, 0x6e, 0x64, 0x6f, + 0x77, 0x73, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x12, 0x19, 0x0a, + 0x08, 0x69, 0x73, 0x5f, 0x6d, 0x75, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x07, 0x69, 0x73, 0x4d, 0x75, 0x74, 0x65, 0x64, 0x12, 0x61, 0x0a, 0x2e, 0x74, 0x72, 0x69, 0x67, + 0x67, 0x65, 0x72, 0x5f, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x5f, 0x6f, 0x6e, + 0x5f, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x29, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x72, 0x6f, 0x6d, 0x42, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, + 0x4f, 0x6e, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xc0, 0x09, 0x0a, 0x15, + 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, + 0x73, 0x44, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x12, 0x21, 0x0a, + 0x0c, 0x73, 0x69, 0x67, 0x6e, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x69, 0x67, 0x6e, 0x6f, 0x6e, 0x52, 0x65, 0x61, 0x6c, 0x6d, + 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x29, 0x0a, 0x10, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x65, 0x6c, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x75, 0x73, 0x65, 0x72, + 0x6e, 0x61, 0x6d, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x75, + 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x5f, 0x65, + 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x61, + 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x25, 0x0a, + 0x0e, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1f, 0x0a, 0x09, 0x73, 0x73, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x69, + 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x42, 0x02, 0x18, 0x01, 0x52, 0x08, 0x73, 0x73, 0x6c, + 0x56, 0x61, 0x6c, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, + 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x42, 0x02, 0x18, 0x01, 0x52, 0x09, 0x70, 0x72, + 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x61, 0x74, 0x65, 0x5f, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x64, + 0x61, 0x74, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x62, 0x6c, + 0x61, 0x63, 0x6b, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x0b, 0x62, 0x6c, 0x61, 0x63, 0x6b, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x64, 0x12, 0x12, 0x0a, 0x04, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, + 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x18, 0x0e, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x55, 0x73, 0x65, 0x64, 0x12, + 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x5f, 0x75, 0x72, 0x6c, + 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x55, 0x72, + 0x6c, 0x12, 0x25, 0x0a, 0x0e, 0x66, 0x65, 0x64, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x75, 0x72, 0x6c, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x66, 0x65, 0x64, 0x65, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x72, 0x6c, 0x12, 0x24, 0x0a, 0x0e, 0x64, 0x61, 0x74, 0x65, + 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x18, 0x12, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x0c, 0x64, 0x61, 0x74, 0x65, 0x4c, 0x61, 0x73, 0x74, 0x55, 0x73, 0x65, 0x64, 0x12, 0x40, + 0x0a, 0x0f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x5f, 0x69, 0x73, 0x73, 0x75, 0x65, + 0x73, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, + 0x62, 0x2e, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x49, 0x73, 0x73, 0x75, 0x65, 0x73, 0x52, 0x0e, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x49, 0x73, 0x73, 0x75, 0x65, 0x73, 0x12, 0x5b, 0x0a, 0x2b, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x5f, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x77, 0x69, 0x6e, 0x64, 0x6f, @@ -780,92 +987,72 @@ var file_password_specifics_proto_rawDesc = []byte{ 0x14, 0x20, 0x01, 0x28, 0x03, 0x52, 0x26, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x12, 0x3a, 0x0a, - 0x05, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, + 0x05, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x4e, 0x6f, 0x74, - 0x65, 0x73, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x1a, 0xc9, 0x04, 0x0a, 0x0e, 0x50, 0x61, - 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x49, 0x73, 0x73, 0x75, 0x65, 0x73, 0x12, 0x6f, 0x0a, 0x15, - 0x6c, 0x65, 0x61, 0x6b, 0x65, 0x64, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x5f, - 0x69, 0x73, 0x73, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x73, 0x79, - 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x53, 0x70, - 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x50, 0x61, 0x73, 0x73, - 0x77, 0x6f, 0x72, 0x64, 0x49, 0x73, 0x73, 0x75, 0x65, 0x73, 0x2e, 0x50, 0x61, 0x73, 0x73, 0x77, - 0x6f, 0x72, 0x64, 0x49, 0x73, 0x73, 0x75, 0x65, 0x52, 0x13, 0x6c, 0x65, 0x61, 0x6b, 0x65, 0x64, - 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x49, 0x73, 0x73, 0x75, 0x65, 0x12, 0x6f, 0x0a, - 0x15, 0x72, 0x65, 0x75, 0x73, 0x65, 0x64, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, - 0x5f, 0x69, 0x73, 0x73, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x73, - 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x53, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x50, 0x61, 0x73, - 0x73, 0x77, 0x6f, 0x72, 0x64, 0x49, 0x73, 0x73, 0x75, 0x65, 0x73, 0x2e, 0x50, 0x61, 0x73, 0x73, - 0x77, 0x6f, 0x72, 0x64, 0x49, 0x73, 0x73, 0x75, 0x65, 0x52, 0x13, 0x72, 0x65, 0x75, 0x73, 0x65, - 0x64, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x49, 0x73, 0x73, 0x75, 0x65, 0x12, 0x6b, - 0x0a, 0x13, 0x77, 0x65, 0x61, 0x6b, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x5f, - 0x69, 0x73, 0x73, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x73, 0x79, - 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x53, 0x70, - 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x50, 0x61, 0x73, 0x73, - 0x77, 0x6f, 0x72, 0x64, 0x49, 0x73, 0x73, 0x75, 0x65, 0x73, 0x2e, 0x50, 0x61, 0x73, 0x73, 0x77, - 0x6f, 0x72, 0x64, 0x49, 0x73, 0x73, 0x75, 0x65, 0x52, 0x11, 0x77, 0x65, 0x61, 0x6b, 0x50, 0x61, - 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x49, 0x73, 0x73, 0x75, 0x65, 0x12, 0x71, 0x0a, 0x16, 0x70, - 0x68, 0x69, 0x73, 0x68, 0x65, 0x64, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x5f, - 0x69, 0x73, 0x73, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x73, 0x79, - 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x53, 0x70, - 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x50, 0x61, 0x73, 0x73, - 0x77, 0x6f, 0x72, 0x64, 0x49, 0x73, 0x73, 0x75, 0x65, 0x73, 0x2e, 0x50, 0x61, 0x73, 0x73, 0x77, - 0x6f, 0x72, 0x64, 0x49, 0x73, 0x73, 0x75, 0x65, 0x52, 0x14, 0x70, 0x68, 0x69, 0x73, 0x68, 0x65, - 0x64, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x49, 0x73, 0x73, 0x75, 0x65, 0x1a, 0x75, - 0x0a, 0x0d, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x49, 0x73, 0x73, 0x75, 0x65, 0x12, - 0x49, 0x0a, 0x21, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x66, 0x69, 0x72, 0x73, 0x74, 0x5f, 0x64, 0x65, - 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x65, 0x63, - 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x1e, 0x64, 0x61, 0x74, 0x65, - 0x46, 0x69, 0x72, 0x73, 0x74, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x69, - 0x63, 0x72, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x69, 0x73, - 0x5f, 0x6d, 0x75, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x73, - 0x4d, 0x75, 0x74, 0x65, 0x64, 0x1a, 0x87, 0x02, 0x0a, 0x05, 0x4e, 0x6f, 0x74, 0x65, 0x73, 0x12, - 0x3d, 0x0a, 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, - 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, - 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x4e, 0x6f, - 0x74, 0x65, 0x73, 0x2e, 0x4e, 0x6f, 0x74, 0x65, 0x52, 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x1a, 0xbe, - 0x01, 0x0a, 0x04, 0x4e, 0x6f, 0x74, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x75, 0x6e, 0x69, 0x71, 0x75, - 0x65, 0x5f, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x44, 0x69, 0x73, 0x70, - 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x48, 0x0a, - 0x21, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x77, 0x69, - 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x5f, 0x6d, 0x69, 0x63, 0x72, - 0x6f, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x1d, 0x64, 0x61, 0x74, 0x65, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x64, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x45, 0x70, 0x6f, 0x63, - 0x68, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x68, 0x69, 0x64, 0x65, 0x5f, - 0x62, 0x79, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x0d, 0x68, 0x69, 0x64, 0x65, 0x42, 0x79, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x22, - 0x4f, 0x0a, 0x19, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x53, 0x70, 0x65, 0x63, 0x69, + 0x65, 0x73, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x1a, 0x87, 0x02, 0x0a, 0x05, 0x4e, 0x6f, + 0x74, 0x65, 0x73, 0x12, 0x3d, 0x0a, 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x29, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x50, 0x61, 0x73, 0x73, + 0x77, 0x6f, 0x72, 0x64, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x44, 0x61, 0x74, + 0x61, 0x2e, 0x4e, 0x6f, 0x74, 0x65, 0x73, 0x2e, 0x4e, 0x6f, 0x74, 0x65, 0x52, 0x04, 0x6e, 0x6f, + 0x74, 0x65, 0x1a, 0xbe, 0x01, 0x0a, 0x04, 0x4e, 0x6f, 0x74, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x75, + 0x6e, 0x69, 0x71, 0x75, 0x65, 0x5f, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, + 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x12, 0x48, 0x0a, 0x21, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x64, 0x5f, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x5f, + 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x1d, 0x64, 0x61, + 0x74, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, + 0x45, 0x70, 0x6f, 0x63, 0x68, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x68, + 0x69, 0x64, 0x65, 0x5f, 0x62, 0x79, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x68, 0x69, 0x64, 0x65, 0x42, 0x79, 0x44, 0x65, 0x66, 0x61, + 0x75, 0x6c, 0x74, 0x22, 0x63, 0x0a, 0x06, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x12, 0x0f, 0x0a, + 0x0b, 0x53, 0x43, 0x48, 0x45, 0x4d, 0x45, 0x5f, 0x48, 0x54, 0x4d, 0x4c, 0x10, 0x00, 0x12, 0x10, + 0x0a, 0x0c, 0x53, 0x43, 0x48, 0x45, 0x4d, 0x45, 0x5f, 0x42, 0x41, 0x53, 0x49, 0x43, 0x10, 0x01, + 0x12, 0x11, 0x0a, 0x0d, 0x53, 0x43, 0x48, 0x45, 0x4d, 0x45, 0x5f, 0x44, 0x49, 0x47, 0x45, 0x53, + 0x54, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x53, 0x43, 0x48, 0x45, 0x4d, 0x45, 0x5f, 0x4f, 0x54, + 0x48, 0x45, 0x52, 0x10, 0x03, 0x12, 0x11, 0x0a, 0x0d, 0x55, 0x53, 0x45, 0x52, 0x4e, 0x41, 0x4d, + 0x45, 0x5f, 0x4f, 0x4e, 0x4c, 0x59, 0x10, 0x04, 0x4a, 0x04, 0x08, 0x15, 0x10, 0x16, 0x22, 0xde, + 0x01, 0x0a, 0x19, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x20, 0x0a, 0x0b, 0x62, 0x6c, 0x61, 0x63, 0x6b, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x62, 0x6c, 0x61, 0x63, 0x6b, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x64, - 0x22, 0xcb, 0x02, 0x0a, 0x11, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x53, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x12, 0x34, 0x0a, 0x09, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, - 0x74, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x79, 0x6e, 0x63, - 0x5f, 0x70, 0x62, 0x2e, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, - 0x61, 0x52, 0x09, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x12, 0x5b, 0x0a, 0x1a, - 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x5f, 0x65, 0x6e, 0x63, 0x72, - 0x79, 0x70, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1e, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x50, 0x61, 0x73, 0x73, 0x77, - 0x6f, 0x72, 0x64, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x44, 0x61, 0x74, 0x61, - 0x52, 0x17, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4f, 0x6e, 0x6c, 0x79, 0x45, 0x6e, 0x63, 0x72, - 0x79, 0x70, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x55, 0x0a, 0x14, 0x75, 0x6e, 0x65, - 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, - 0x62, 0x2e, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x69, 0x63, 0x73, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x13, 0x75, 0x6e, 0x65, - 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x12, 0x4c, 0x0a, 0x16, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x5f, 0x6e, 0x6f, - 0x74, 0x65, 0x73, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x16, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x45, 0x6e, 0x63, 0x72, 0x79, - 0x70, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x14, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, - 0x74, 0x65, 0x64, 0x4e, 0x6f, 0x74, 0x65, 0x73, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x42, 0x2b, - 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x63, - 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x03, 0x50, 0x01, + 0x12, 0x4b, 0x0a, 0x23, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x75, 0x73, + 0x65, 0x64, 0x5f, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, + 0x5f, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x1e, 0x64, + 0x61, 0x74, 0x65, 0x4c, 0x61, 0x73, 0x74, 0x55, 0x73, 0x65, 0x64, 0x57, 0x69, 0x6e, 0x64, 0x6f, + 0x77, 0x73, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x12, 0x40, 0x0a, + 0x0f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x5f, 0x69, 0x73, 0x73, 0x75, 0x65, 0x73, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, + 0x2e, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x49, 0x73, 0x73, 0x75, 0x65, 0x73, 0x52, + 0x0e, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x49, 0x73, 0x73, 0x75, 0x65, 0x73, 0x22, + 0xd1, 0x02, 0x0a, 0x11, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x53, 0x70, 0x65, 0x63, + 0x69, 0x66, 0x69, 0x63, 0x73, 0x12, 0x34, 0x0a, 0x09, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, + 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, + 0x70, 0x62, 0x2e, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, + 0x52, 0x09, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x12, 0x5b, 0x0a, 0x1a, 0x63, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x5f, 0x65, 0x6e, 0x63, 0x72, 0x79, + 0x70, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1e, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, + 0x72, 0x64, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x44, 0x61, 0x74, 0x61, 0x52, + 0x17, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4f, 0x6e, 0x6c, 0x79, 0x45, 0x6e, 0x63, 0x72, 0x79, + 0x70, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x55, 0x0a, 0x14, 0x75, 0x6e, 0x65, 0x6e, + 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, + 0x2e, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x63, 0x73, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x13, 0x75, 0x6e, 0x65, 0x6e, + 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, + 0x4c, 0x0a, 0x16, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x5f, 0x6e, 0x6f, 0x74, + 0x65, 0x73, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x16, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, + 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x14, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, + 0x65, 0x64, 0x4e, 0x6f, 0x74, 0x65, 0x73, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x4a, 0x04, 0x08, + 0x04, 0x10, 0x05, 0x42, 0x36, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, + 0x69, 0x75, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x73, + 0x79, 0x6e, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x03, 0x50, 0x01, + 0x5a, 0x09, 0x2e, 0x2f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, } var ( @@ -880,34 +1067,37 @@ func file_password_specifics_proto_rawDescGZIP() []byte { return file_password_specifics_proto_rawDescData } +var file_password_specifics_proto_enumTypes = make([]protoimpl.EnumInfo, 1) var file_password_specifics_proto_msgTypes = make([]protoimpl.MessageInfo, 7) var file_password_specifics_proto_goTypes = []interface{}{ - (*PasswordSpecificsData)(nil), // 0: sync_pb.PasswordSpecificsData - (*PasswordSpecificsMetadata)(nil), // 1: sync_pb.PasswordSpecificsMetadata - (*PasswordSpecifics)(nil), // 2: sync_pb.PasswordSpecifics - (*PasswordSpecificsData_PasswordIssues)(nil), // 3: sync_pb.PasswordSpecificsData.PasswordIssues - (*PasswordSpecificsData_Notes)(nil), // 4: sync_pb.PasswordSpecificsData.Notes - (*PasswordSpecificsData_PasswordIssues_PasswordIssue)(nil), // 5: sync_pb.PasswordSpecificsData.PasswordIssues.PasswordIssue - (*PasswordSpecificsData_Notes_Note)(nil), // 6: sync_pb.PasswordSpecificsData.Notes.Note - (*EncryptedData)(nil), // 7: sync_pb.EncryptedData + (PasswordSpecificsData_Scheme)(0), // 0: sync_pb.PasswordSpecificsData.Scheme + (*PasswordIssues)(nil), // 1: sync_pb.PasswordIssues + (*PasswordSpecificsData)(nil), // 2: sync_pb.PasswordSpecificsData + (*PasswordSpecificsMetadata)(nil), // 3: sync_pb.PasswordSpecificsMetadata + (*PasswordSpecifics)(nil), // 4: sync_pb.PasswordSpecifics + (*PasswordIssues_PasswordIssue)(nil), // 5: sync_pb.PasswordIssues.PasswordIssue + (*PasswordSpecificsData_Notes)(nil), // 6: sync_pb.PasswordSpecificsData.Notes + (*PasswordSpecificsData_Notes_Note)(nil), // 7: sync_pb.PasswordSpecificsData.Notes.Note + (*EncryptedData)(nil), // 8: sync_pb.EncryptedData } var file_password_specifics_proto_depIdxs = []int32{ - 3, // 0: sync_pb.PasswordSpecificsData.password_issues:type_name -> sync_pb.PasswordSpecificsData.PasswordIssues - 4, // 1: sync_pb.PasswordSpecificsData.notes:type_name -> sync_pb.PasswordSpecificsData.Notes - 7, // 2: sync_pb.PasswordSpecifics.encrypted:type_name -> sync_pb.EncryptedData - 0, // 3: sync_pb.PasswordSpecifics.client_only_encrypted_data:type_name -> sync_pb.PasswordSpecificsData - 1, // 4: sync_pb.PasswordSpecifics.unencrypted_metadata:type_name -> sync_pb.PasswordSpecificsMetadata - 7, // 5: sync_pb.PasswordSpecifics.encrypted_notes_backup:type_name -> sync_pb.EncryptedData - 5, // 6: sync_pb.PasswordSpecificsData.PasswordIssues.leaked_password_issue:type_name -> sync_pb.PasswordSpecificsData.PasswordIssues.PasswordIssue - 5, // 7: sync_pb.PasswordSpecificsData.PasswordIssues.reused_password_issue:type_name -> sync_pb.PasswordSpecificsData.PasswordIssues.PasswordIssue - 5, // 8: sync_pb.PasswordSpecificsData.PasswordIssues.weak_password_issue:type_name -> sync_pb.PasswordSpecificsData.PasswordIssues.PasswordIssue - 5, // 9: sync_pb.PasswordSpecificsData.PasswordIssues.phished_password_issue:type_name -> sync_pb.PasswordSpecificsData.PasswordIssues.PasswordIssue - 6, // 10: sync_pb.PasswordSpecificsData.Notes.note:type_name -> sync_pb.PasswordSpecificsData.Notes.Note - 11, // [11:11] is the sub-list for method output_type - 11, // [11:11] is the sub-list for method input_type - 11, // [11:11] is the sub-list for extension type_name - 11, // [11:11] is the sub-list for extension extendee - 0, // [0:11] is the sub-list for field type_name + 5, // 0: sync_pb.PasswordIssues.leaked_password_issue:type_name -> sync_pb.PasswordIssues.PasswordIssue + 5, // 1: sync_pb.PasswordIssues.reused_password_issue:type_name -> sync_pb.PasswordIssues.PasswordIssue + 5, // 2: sync_pb.PasswordIssues.weak_password_issue:type_name -> sync_pb.PasswordIssues.PasswordIssue + 5, // 3: sync_pb.PasswordIssues.phished_password_issue:type_name -> sync_pb.PasswordIssues.PasswordIssue + 1, // 4: sync_pb.PasswordSpecificsData.password_issues:type_name -> sync_pb.PasswordIssues + 6, // 5: sync_pb.PasswordSpecificsData.notes:type_name -> sync_pb.PasswordSpecificsData.Notes + 1, // 6: sync_pb.PasswordSpecificsMetadata.password_issues:type_name -> sync_pb.PasswordIssues + 8, // 7: sync_pb.PasswordSpecifics.encrypted:type_name -> sync_pb.EncryptedData + 2, // 8: sync_pb.PasswordSpecifics.client_only_encrypted_data:type_name -> sync_pb.PasswordSpecificsData + 3, // 9: sync_pb.PasswordSpecifics.unencrypted_metadata:type_name -> sync_pb.PasswordSpecificsMetadata + 8, // 10: sync_pb.PasswordSpecifics.encrypted_notes_backup:type_name -> sync_pb.EncryptedData + 7, // 11: sync_pb.PasswordSpecificsData.Notes.note:type_name -> sync_pb.PasswordSpecificsData.Notes.Note + 12, // [12:12] is the sub-list for method output_type + 12, // [12:12] is the sub-list for method input_type + 12, // [12:12] is the sub-list for extension type_name + 12, // [12:12] is the sub-list for extension extendee + 0, // [0:12] is the sub-list for field type_name } func init() { file_password_specifics_proto_init() } @@ -918,7 +1108,7 @@ func file_password_specifics_proto_init() { file_encryption_proto_init() if !protoimpl.UnsafeEnabled { file_password_specifics_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PasswordSpecificsData); i { + switch v := v.(*PasswordIssues); i { case 0: return &v.state case 1: @@ -930,7 +1120,7 @@ func file_password_specifics_proto_init() { } } file_password_specifics_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PasswordSpecificsMetadata); i { + switch v := v.(*PasswordSpecificsData); i { case 0: return &v.state case 1: @@ -942,7 +1132,7 @@ func file_password_specifics_proto_init() { } } file_password_specifics_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PasswordSpecifics); i { + switch v := v.(*PasswordSpecificsMetadata); i { case 0: return &v.state case 1: @@ -954,7 +1144,7 @@ func file_password_specifics_proto_init() { } } file_password_specifics_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PasswordSpecificsData_PasswordIssues); i { + switch v := v.(*PasswordSpecifics); i { case 0: return &v.state case 1: @@ -966,7 +1156,7 @@ func file_password_specifics_proto_init() { } } file_password_specifics_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PasswordSpecificsData_Notes); i { + switch v := v.(*PasswordIssues_PasswordIssue); i { case 0: return &v.state case 1: @@ -978,7 +1168,7 @@ func file_password_specifics_proto_init() { } } file_password_specifics_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PasswordSpecificsData_PasswordIssues_PasswordIssue); i { + switch v := v.(*PasswordSpecificsData_Notes); i { case 0: return &v.state case 1: @@ -1007,13 +1197,14 @@ func file_password_specifics_proto_init() { File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_password_specifics_proto_rawDesc, - NumEnums: 0, + NumEnums: 1, NumMessages: 7, NumExtensions: 0, NumServices: 0, }, GoTypes: file_password_specifics_proto_goTypes, DependencyIndexes: file_password_specifics_proto_depIdxs, + EnumInfos: file_password_specifics_proto_enumTypes, MessageInfos: file_password_specifics_proto_msgTypes, }.Build() File_password_specifics_proto = out.File diff --git a/schema/protobuf/sync_pb/password_specifics.proto b/schema/protobuf/sync_pb/password_specifics.proto index 9ed30f71..55066bca 100644 --- a/schema/protobuf/sync_pb/password_specifics.proto +++ b/schema/protobuf/sync_pb/password_specifics.proto @@ -1,4 +1,4 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2012 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // @@ -9,6 +9,8 @@ syntax = "proto2"; +option go_package = "./sync_pb"; + option java_multiple_files = true; option java_package = "org.chromium.components.sync.protocol"; @@ -33,25 +35,148 @@ import "encryption.proto"; // (including space) the following characters ' "#%:<>?[\]^`{|}'. The space // character is encoded as '%20'. +// A simple example of PasswordSpecificsData, as created by Chrome for a web +// form that the user submitted. E.g. federated credentials or credentials for +// Android apps may have different fields set. +// PasswordSpecificsData { +// action: "https://example.com/", +// avatar_url: "", +// blacklisted: false, +// date_created: 13305119271948046, +// date_last_used: 13305119270102691, +// date_password_modified_windows_epoch_micros: 13305119271949070, +// display_name: "", +// federation_url: "", +// notes: {}, +// origin: "https://rsolomakhin.github.io/autofill/", +// password_element: "password", +// password_issues: {}, +// password_value: "pwd", +// scheme: 0, +// signon_realm: "https://rsolomakhin.github.io/", +// times_used: 0, +// type: 0, +// username_element: "username", +// username_value: "Superman" +// } + // All the strings are encoded with UTF-8. URLs are encoded in Punycode. +message PasswordIssues { + message PasswordIssue { + // Timestamp set by a client detecting the issue for the first time. + // Number of microseconds since Windows epoch (1601). + // This can be unset even if is_muted is set in a few cases in + // storage (for a time mutes were written without setting this + // field - fixed starting 2021-11-10). + optional uint64 date_first_detection_windows_epoch_micros = 1; + + // Whether the issue was muted by user. + optional bool is_muted = 2; + + // Whether the backend should notify the user about this issue. + // Set to true if the user hasn't already seen a client notification for + // this issue (e.g. a leak detection prompt in Chrome). The backend sending + // notifications does not reset this field. All other sources can write this + // in both `PasswordSpecificsData` and `PasswordSpecificsMetadata` and do + // so. + optional bool trigger_notification_from_backend_on_detection = 3; + } + optional PasswordIssue leaked_password_issue = 1; + optional PasswordIssue reused_password_issue = 2; + optional PasswordIssue weak_password_issue = 3; + optional PasswordIssue phished_password_issue = 4; +} + message PasswordSpecificsData { - // SCHEME_HTML(0), the credential represents either a parsed HTML form, or an - // android credential or a password saved through Credential Management API - // (https://w3c.github.io/webappsec/specs/credentialmanagement/). - // SCHEME_BASIC(1), basic access http authentication. - // SCHEME_DIGEST(2), digest access authentication. - // SCHEME_OTHER(3), another access authentication. + // The different types of the saved credential. + enum Scheme { + // SCHEME_HTML, the credential represents either a parsed HTML form, or an + // android credential or a password saved through Credential Management API + // (https://w3c.github.io/webappsec/specs/credentialmanagement/). + SCHEME_HTML = 0; + // SCHEME_BASIC, basic access http authentication. + SCHEME_BASIC = 1; + // SCHEME_DIGEST, digest access authentication. + SCHEME_DIGEST = 2; + // SCHEME_OTHER, another proxy access authentication. + SCHEME_OTHER = 3; + // USERNAME_ONLY, partial credentials saved on Android that contain only + // username and miss the password. + USERNAME_ONLY = 4; + } + // See the enum above. optional int32 scheme = 1; - // For parsed web forms and normal passwords saved through Credential Manager - // API: url-scheme://url-host[:url-port]/ - // For Android apps (local + federated): - // "android://@/" - // where the hash is base64 encoded SHA512 of the app's public certificate. - // For federated credentials: - // "federation://" + origin_host + "/" + federation_host - // For proxy auth: proxy-host/auth-realm - // For HTTP auth: url-scheme://url-host[:url-port]/auth-realm + // Signon realm stores information on where the saved password was stored, and + // where it's supposed to be filled again. + // + // It can take various formats depending on the exact circumstances where it + // was recorded. Note that the format is *not* guaranteed to be a valid URL or + // URI: + // + // * For parsed web forms and normal passwords saved through Credential + // Manager + // API: ://[:]/ + // + // where + // is one of "http" or "https" + // is the host for which the password was stored + // is the option port on the host + // The signon realm is a valid URL in this case with an empty path. + // Examples: + // http://www.example.com/ + // https://127.0.0.1/ + // http://www.google.com:8080/ + // http://192.168.1.254/ + // https://accounts.google.com/ + // + // * For Android apps saved through Autofill with Google: + // android://@/ + // where + // is the base64 encoded SHA512 of the app's public + // certificate is the app's package name + // Examples: + // android://kCyQDzpaoAX2gs-1zdGPKNAeICb8LzRFOxa4NCq0jO8c8d_NFS_q-Y35bU3Nq3GmFV2lLurmNvIZa6YPYZwmWg==@com.pinterest/ + // android://mNUCvTnoWBkzIhSSkVj-uzAdK42YagmCmyUtPoC6JPmYAN3wKpmTdIRsdJtz6pzNBye8XL7nBbEcx-y9CJeo9A==@com.twitter.android.lite/ + // + // * For federated credentials: + // federation:/// + // where + // is the host for which the login information was stored + // is the host of the federation provider that was + // used to sign in + // Examples: + // federation://www.example.com/accounts.google.com + // federation://uk.trustpilot.com/www.facebook.com + // + // * For proxy auth: + // [:]/ + // where + // is the host of the proxy for which the password was + // stored + // is the port of the proxy + // is a string provided by the proxy during authentication. + // It can contain spaces. + // Examples: + // proxy2.eq.edu.au:80/MISldap + // proxy.det.nsw.edu.au:8080/NSW Department of Education + // 10.47.2.250:3128/Squid Proxy Server CPUT + // default.go2https.com:443/(******Get password from vpnso.com/account/ + // *****) + // + // * For HTTP basic auth: + // ://[:]/ + // where + // is one of "http" or "https" + // is the host for which the password was stored + // is the option port on the host + // is a string provided by the host during authentication. + // It can contain spaces. + // Examples: + // http://192.168.1.1/Broadband Router + // http://192.168.0.1/TP-LINK Wireless N Router WR841N + // http://192.168.1.1/index.htm + // https://www.edge.asic.gov.au/ASIC eBusiness optional string signon_realm = 2; // For parsed web forms and Credential Management API: @@ -99,10 +224,11 @@ message PasswordSpecificsData { // kApi(2), the credential was generated from Credential Management API. // kManuallyAdded(3), user manually created the password credential // via Settings. + // kImported(4), the credential was imported using the import flow. optional int32 type = 13; - // Number of times this login was used for logging in. Chrome uses this field - // to distinguish log-in and sign-up forms. + // Number of times this login was used for logging in using an HTML form. + // Chrome uses this field to distinguish log-in and sign-up forms. optional int32 times_used = 14; // A human readable name of the account holder. Set by CredentialManager API @@ -126,23 +252,6 @@ message PasswordSpecificsData { // Amount of microseconds since 1601, aka Windows epoch. optional int64 date_last_used = 18; - message PasswordIssues { - message PasswordIssue { - // Timestamp set by a client detecting the issue for the first time. - // Number of microseconds since Windows epoch (1601). - // This can be unset even if is_muted is set in a few cases in - // storage (for a time mutes were written without setting this - // field - fixed starting 2021-11-10). - optional uint64 date_first_detection_microseconds = 1; - - // Whether the issue was muted by user. - optional bool is_muted = 2; - } - optional PasswordIssue leaked_password_issue = 1; - optional PasswordIssue reused_password_issue = 2; - optional PasswordIssue weak_password_issue = 3; - optional PasswordIssue phished_password_issue = 4; - } // Set if an issue was detected that puts this password at risk. All the // clients are expected to clear the field when the password value is updated. // 'reused' part can be additionally reset when the analysis on the entire @@ -169,20 +278,30 @@ message PasswordSpecificsData { } repeated Note note = 1; } + reserved 21; // Set of extra notes that the user attached to the password. The presence of // this field, even with an empty Notes message, becomes the authoritative // value for notes and would disregard whatever `encrypted_notes_backup` // contains. - optional Notes notes = 21; + optional Notes notes = 22; } // Contains the password specifics metadata which simplifies its lookup. message PasswordSpecificsMetadata { + // The signon realm for the credential. For more details, see the + // `signon_realm` field in PasswordSpecificsData. optional string url = 1; // True, if user chose permanently not to save the credentials for the form. - // Introduced in M82. + // Introduced in M82. Copy from PasswordSpecificsData.blacklisted. optional bool blacklisted = 2; + + // Copy from PasswordSpecificsData.date_last_used. + // Introduced in M112. + optional int64 date_last_used_windows_epoch_micros = 3; + + // Copy from PasswordSpecificsData.password_issues. Introduced in M114. + optional PasswordIssues password_issues = 4; } // Properties of password sync objects. @@ -198,6 +317,7 @@ message PasswordSpecifics { // should never be set for full encryption users. If encryption is enabled, // this field must be cleared. optional PasswordSpecificsMetadata unencrypted_metadata = 3; + reserved 4; // An encrypted backup of the notes field inside the PasswordSpecificsData. // The Sync server preserves the contents of this field across commits from // legacy clients that don't set this field. It is the responsibility of Sync @@ -218,5 +338,5 @@ message PasswordSpecifics { // // If both `encrypted_notes_backup` and the `notes` in `encrypted` are // populated, the one in notes is considered the authoritative value. - optional EncryptedData encrypted_notes_backup = 4; + optional EncryptedData encrypted_notes_backup = 5; } diff --git a/schema/protobuf/sync_pb/password_with_local_data.pb.go b/schema/protobuf/sync_pb/password_with_local_data.pb.go deleted file mode 100644 index 2266c833..00000000 --- a/schema/protobuf/sync_pb/password_with_local_data.pb.go +++ /dev/null @@ -1,274 +0,0 @@ -// Copyright 2021 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// If you change or add any fields in this file, update proto_visitors.h and -// potentially proto_enum_conversions.{h, cc}. - -// Code generated by protoc-gen-go. DO NOT EDIT. -// versions: -// protoc-gen-go v1.28.0 -// protoc v3.21.1 -// source: password_with_local_data.proto - -package sync_pb - -import ( - protoreflect "google.golang.org/protobuf/reflect/protoreflect" - protoimpl "google.golang.org/protobuf/runtime/protoimpl" - reflect "reflect" - sync "sync" -) - -const ( - // Verify that this generated code is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) - // Verify that runtime/protoimpl is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) -) - -// Wrapper for a set of credentials that consists of (possibly) synced password -// data and local data that is exclusively read and modified by Chrome. -// ATTENTION(crbug.com/1330911): This proto is being moved to -// components/password_manager/core/browser/protocol folder. Two files exist -// while the migration is in process, this file will be deleted when the -// migration is over. IF YOU MODIFY THIS FILE, PLEASE ALSO MODIFY THE COPY IN -// components/password_manager. -type PasswordWithLocalData struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // A potentially synced set of credentials. - PasswordSpecificsData *PasswordSpecificsData `protobuf:"bytes,1,opt,name=password_specifics_data,json=passwordSpecificsData" json:"password_specifics_data,omitempty"` - LocalData *PasswordWithLocalData_LocalData `protobuf:"bytes,3,opt,name=local_data,json=localData" json:"local_data,omitempty"` -} - -func (x *PasswordWithLocalData) Reset() { - *x = PasswordWithLocalData{} - if protoimpl.UnsafeEnabled { - mi := &file_password_with_local_data_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *PasswordWithLocalData) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*PasswordWithLocalData) ProtoMessage() {} - -func (x *PasswordWithLocalData) ProtoReflect() protoreflect.Message { - mi := &file_password_with_local_data_proto_msgTypes[0] - 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 PasswordWithLocalData.ProtoReflect.Descriptor instead. -func (*PasswordWithLocalData) Descriptor() ([]byte, []int) { - return file_password_with_local_data_proto_rawDescGZIP(), []int{0} -} - -func (x *PasswordWithLocalData) GetPasswordSpecificsData() *PasswordSpecificsData { - if x != nil { - return x.PasswordSpecificsData - } - return nil -} - -func (x *PasswordWithLocalData) GetLocalData() *PasswordWithLocalData_LocalData { - if x != nil { - return x.LocalData - } - return nil -} - -// Local data that is related to the `password_specifics_data`. Although it is -// stored close to the `password_specifics_data`, it always stays local to the -// device the password is stored on and is never synced. -type PasswordWithLocalData_LocalData struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Metadata that is opaque to the provider. The provider does not read, - // modify or interpret it, only Chrome does. This data will for example - // contain `FormData` or device-specific properties like - // `PasswordForm::skip_zero_click` that prevents a credential to be used for - // Credential Management requests on this device. - OpaqueMetadata []byte `protobuf:"bytes,1,opt,name=opaque_metadata,json=opaqueMetadata" json:"opaque_metadata,omitempty"` - // Email address of the last sync account this password was associated with. - // This field is maintained by Chrome as well as by the provider. - // This field is present only if the password is NOT currently associated - // with a syncing account AND it was associated with one in the past. - // E.g. test@gmail.com (lowercase and canonicalized). - PreviouslyAssociatedSyncAccountEmail *string `protobuf:"bytes,2,opt,name=previously_associated_sync_account_email,json=previouslyAssociatedSyncAccountEmail" json:"previously_associated_sync_account_email,omitempty"` -} - -func (x *PasswordWithLocalData_LocalData) Reset() { - *x = PasswordWithLocalData_LocalData{} - if protoimpl.UnsafeEnabled { - mi := &file_password_with_local_data_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *PasswordWithLocalData_LocalData) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*PasswordWithLocalData_LocalData) ProtoMessage() {} - -func (x *PasswordWithLocalData_LocalData) ProtoReflect() protoreflect.Message { - mi := &file_password_with_local_data_proto_msgTypes[1] - 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 PasswordWithLocalData_LocalData.ProtoReflect.Descriptor instead. -func (*PasswordWithLocalData_LocalData) Descriptor() ([]byte, []int) { - return file_password_with_local_data_proto_rawDescGZIP(), []int{0, 0} -} - -func (x *PasswordWithLocalData_LocalData) GetOpaqueMetadata() []byte { - if x != nil { - return x.OpaqueMetadata - } - return nil -} - -func (x *PasswordWithLocalData_LocalData) GetPreviouslyAssociatedSyncAccountEmail() string { - if x != nil && x.PreviouslyAssociatedSyncAccountEmail != nil { - return *x.PreviouslyAssociatedSyncAccountEmail - } - return "" -} - -var File_password_with_local_data_proto protoreflect.FileDescriptor - -var file_password_with_local_data_proto_rawDesc = []byte{ - 0x0a, 0x1e, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, - 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x12, 0x07, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x1a, 0x18, 0x70, 0x61, 0x73, 0x73, 0x77, - 0x6f, 0x72, 0x64, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x22, 0xe0, 0x02, 0x0a, 0x15, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, - 0x57, 0x69, 0x74, 0x68, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x12, 0x56, 0x0a, - 0x17, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x69, 0x63, 0x73, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, - 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, - 0x64, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x44, 0x61, 0x74, 0x61, 0x52, 0x15, - 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, - 0x73, 0x44, 0x61, 0x74, 0x61, 0x12, 0x47, 0x0a, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x64, - 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x73, 0x79, 0x6e, 0x63, - 0x5f, 0x70, 0x62, 0x2e, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x57, 0x69, 0x74, 0x68, - 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x44, - 0x61, 0x74, 0x61, 0x52, 0x09, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x1a, 0x8c, - 0x01, 0x0a, 0x09, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x12, 0x27, 0x0a, 0x0f, - 0x6f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x6f, 0x70, 0x61, 0x71, 0x75, 0x65, 0x4d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x56, 0x0a, 0x28, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, - 0x73, 0x6c, 0x79, 0x5f, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x73, - 0x79, 0x6e, 0x63, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x65, 0x6d, 0x61, 0x69, - 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x24, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, - 0x73, 0x6c, 0x79, 0x41, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x53, 0x79, 0x6e, - 0x63, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x4a, 0x04, 0x08, - 0x02, 0x10, 0x03, 0x52, 0x11, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x63, 0x68, 0x72, 0x6f, 0x6d, - 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x42, 0x2b, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, - 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, - 0x73, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, - 0x03, 0x50, 0x01, -} - -var ( - file_password_with_local_data_proto_rawDescOnce sync.Once - file_password_with_local_data_proto_rawDescData = file_password_with_local_data_proto_rawDesc -) - -func file_password_with_local_data_proto_rawDescGZIP() []byte { - file_password_with_local_data_proto_rawDescOnce.Do(func() { - file_password_with_local_data_proto_rawDescData = protoimpl.X.CompressGZIP(file_password_with_local_data_proto_rawDescData) - }) - return file_password_with_local_data_proto_rawDescData -} - -var file_password_with_local_data_proto_msgTypes = make([]protoimpl.MessageInfo, 2) -var file_password_with_local_data_proto_goTypes = []interface{}{ - (*PasswordWithLocalData)(nil), // 0: sync_pb.PasswordWithLocalData - (*PasswordWithLocalData_LocalData)(nil), // 1: sync_pb.PasswordWithLocalData.LocalData - (*PasswordSpecificsData)(nil), // 2: sync_pb.PasswordSpecificsData -} -var file_password_with_local_data_proto_depIdxs = []int32{ - 2, // 0: sync_pb.PasswordWithLocalData.password_specifics_data:type_name -> sync_pb.PasswordSpecificsData - 1, // 1: sync_pb.PasswordWithLocalData.local_data:type_name -> sync_pb.PasswordWithLocalData.LocalData - 2, // [2:2] is the sub-list for method output_type - 2, // [2:2] is the sub-list for method input_type - 2, // [2:2] is the sub-list for extension type_name - 2, // [2:2] is the sub-list for extension extendee - 0, // [0:2] is the sub-list for field type_name -} - -func init() { file_password_with_local_data_proto_init() } -func file_password_with_local_data_proto_init() { - if File_password_with_local_data_proto != nil { - return - } - file_password_specifics_proto_init() - if !protoimpl.UnsafeEnabled { - file_password_with_local_data_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PasswordWithLocalData); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_password_with_local_data_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PasswordWithLocalData_LocalData); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } - type x struct{} - out := protoimpl.TypeBuilder{ - File: protoimpl.DescBuilder{ - GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_password_with_local_data_proto_rawDesc, - NumEnums: 0, - NumMessages: 2, - NumExtensions: 0, - NumServices: 0, - }, - GoTypes: file_password_with_local_data_proto_goTypes, - DependencyIndexes: file_password_with_local_data_proto_depIdxs, - MessageInfos: file_password_with_local_data_proto_msgTypes, - }.Build() - File_password_with_local_data_proto = out.File - file_password_with_local_data_proto_rawDesc = nil - file_password_with_local_data_proto_goTypes = nil - file_password_with_local_data_proto_depIdxs = nil -} diff --git a/schema/protobuf/sync_pb/password_with_local_data.proto b/schema/protobuf/sync_pb/password_with_local_data.proto deleted file mode 100644 index 56537ae3..00000000 --- a/schema/protobuf/sync_pb/password_with_local_data.proto +++ /dev/null @@ -1,53 +0,0 @@ -// Copyright 2021 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// If you change or add any fields in this file, update proto_visitors.h and -// potentially proto_enum_conversions.{h, cc}. - -syntax = "proto2"; - -option java_multiple_files = true; -option java_package = "org.chromium.components.sync.protocol"; - -option optimize_for = LITE_RUNTIME; - -package sync_pb; - -import "password_specifics.proto"; - -// Wrapper for a set of credentials that consists of (possibly) synced password -// data and local data that is exclusively read and modified by Chrome. -// ATTENTION(crbug.com/1330911): This proto is being moved to -// components/password_manager/core/browser/protocol folder. Two files exist -// while the migration is in process, this file will be deleted when the -// migration is over. IF YOU MODIFY THIS FILE, PLEASE ALSO MODIFY THE COPY IN -// components/password_manager. -message PasswordWithLocalData { - // A potentially synced set of credentials. - optional PasswordSpecificsData password_specifics_data = 1; - - reserved 2; - reserved "local_chrome_data"; - - // Local data that is related to the `password_specifics_data`. Although it is - // stored close to the `password_specifics_data`, it always stays local to the - // device the password is stored on and is never synced. - message LocalData { - // Metadata that is opaque to the provider. The provider does not read, - // modify or interpret it, only Chrome does. This data will for example - // contain `FormData` or device-specific properties like - // `PasswordForm::skip_zero_click` that prevents a credential to be used for - // Credential Management requests on this device. - optional bytes opaque_metadata = 1; - - // Email address of the last sync account this password was associated with. - // This field is maintained by Chrome as well as by the provider. - // This field is present only if the password is NOT currently associated - // with a syncing account AND it was associated with one in the past. - // E.g. test@gmail.com (lowercase and canonicalized). - optional string previously_associated_sync_account_email = 2; - } - - optional LocalData local_data = 3; -} diff --git a/schema/protobuf/sync_pb/persisted_entity_data.pb.go b/schema/protobuf/sync_pb/persisted_entity_data.pb.go index 7b4bfb8d..2ac85dac 100644 --- a/schema/protobuf/sync_pb/persisted_entity_data.pb.go +++ b/schema/protobuf/sync_pb/persisted_entity_data.pb.go @@ -1,10 +1,10 @@ -// Copyright 2018 The Chromium Authors. All rights reserved. +// Copyright 2018 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.0 +// protoc-gen-go v1.31.0 // protoc v3.21.1 // source: persisted_entity_data.proto @@ -99,9 +99,10 @@ var file_persisted_entity_data_proto_rawDesc = []byte{ 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x52, 0x09, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, - 0x73, 0x42, 0x2b, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, + 0x73, 0x42, 0x36, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x73, 0x79, 0x6e, - 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x03, 0x50, 0x01, + 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x03, 0x50, 0x01, 0x5a, 0x09, + 0x2e, 0x2f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, } var ( diff --git a/schema/protobuf/sync_pb/persisted_entity_data.proto b/schema/protobuf/sync_pb/persisted_entity_data.proto index 026a8459..715cd074 100644 --- a/schema/protobuf/sync_pb/persisted_entity_data.proto +++ b/schema/protobuf/sync_pb/persisted_entity_data.proto @@ -1,9 +1,11 @@ -// Copyright 2018 The Chromium Authors. All rights reserved. +// Copyright 2018 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. syntax = "proto2"; +option go_package = "./sync_pb"; + option java_multiple_files = true; option java_package = "org.chromium.components.sync.protocol"; diff --git a/schema/protobuf/sync_pb/power_bookmark_specifics.pb.go b/schema/protobuf/sync_pb/power_bookmark_specifics.pb.go new file mode 100644 index 00000000..2839aff1 --- /dev/null +++ b/schema/protobuf/sync_pb/power_bookmark_specifics.pb.go @@ -0,0 +1,383 @@ +// Copyright 2022 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.31.0 +// protoc v3.21.1 +// source: power_bookmark_specifics.proto + +package sync_pb + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// PowerType is persisted to disk and therefore shouldn't be reoderered or +// changed. +// Should keep the field numbers of PowerType in sync with the ones in +// entity above. +type PowerBookmarkSpecifics_PowerType int32 + +const ( + // All powers should have type so this should be unused. + PowerBookmarkSpecifics_POWER_TYPE_UNSPECIFIED PowerBookmarkSpecifics_PowerType = 0 + // Used for testing. + PowerBookmarkSpecifics_POWER_TYPE_MOCK PowerBookmarkSpecifics_PowerType = 1 + // Used for notes. + PowerBookmarkSpecifics_POWER_TYPE_NOTE PowerBookmarkSpecifics_PowerType = 2 +) + +// Enum value maps for PowerBookmarkSpecifics_PowerType. +var ( + PowerBookmarkSpecifics_PowerType_name = map[int32]string{ + 0: "POWER_TYPE_UNSPECIFIED", + 1: "POWER_TYPE_MOCK", + 2: "POWER_TYPE_NOTE", + } + PowerBookmarkSpecifics_PowerType_value = map[string]int32{ + "POWER_TYPE_UNSPECIFIED": 0, + "POWER_TYPE_MOCK": 1, + "POWER_TYPE_NOTE": 2, + } +) + +func (x PowerBookmarkSpecifics_PowerType) Enum() *PowerBookmarkSpecifics_PowerType { + p := new(PowerBookmarkSpecifics_PowerType) + *p = x + return p +} + +func (x PowerBookmarkSpecifics_PowerType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (PowerBookmarkSpecifics_PowerType) Descriptor() protoreflect.EnumDescriptor { + return file_power_bookmark_specifics_proto_enumTypes[0].Descriptor() +} + +func (PowerBookmarkSpecifics_PowerType) Type() protoreflect.EnumType { + return &file_power_bookmark_specifics_proto_enumTypes[0] +} + +func (x PowerBookmarkSpecifics_PowerType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Do not use. +func (x *PowerBookmarkSpecifics_PowerType) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err + } + *x = PowerBookmarkSpecifics_PowerType(num) + return nil +} + +// Deprecated: Use PowerBookmarkSpecifics_PowerType.Descriptor instead. +func (PowerBookmarkSpecifics_PowerType) EnumDescriptor() ([]byte, []int) { + return file_power_bookmark_specifics_proto_rawDescGZIP(), []int{1, 0} +} + +// Data structure dedicated to each power type. +// Should keep the field numbers of specifics in sync with the ones in PowerType +// below. +type PowerEntity struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to Entity: + // + // *PowerEntity_NoteEntity + Entity isPowerEntity_Entity `protobuf_oneof:"entity"` +} + +func (x *PowerEntity) Reset() { + *x = PowerEntity{} + if protoimpl.UnsafeEnabled { + mi := &file_power_bookmark_specifics_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PowerEntity) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PowerEntity) ProtoMessage() {} + +func (x *PowerEntity) ProtoReflect() protoreflect.Message { + mi := &file_power_bookmark_specifics_proto_msgTypes[0] + 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 PowerEntity.ProtoReflect.Descriptor instead. +func (*PowerEntity) Descriptor() ([]byte, []int) { + return file_power_bookmark_specifics_proto_rawDescGZIP(), []int{0} +} + +func (m *PowerEntity) GetEntity() isPowerEntity_Entity { + if m != nil { + return m.Entity + } + return nil +} + +func (x *PowerEntity) GetNoteEntity() *NoteEntity { + if x, ok := x.GetEntity().(*PowerEntity_NoteEntity); ok { + return x.NoteEntity + } + return nil +} + +type isPowerEntity_Entity interface { + isPowerEntity_Entity() +} + +type PowerEntity_NoteEntity struct { + // Used for notes. + NoteEntity *NoteEntity `protobuf:"bytes,2,opt,name=note_entity,json=noteEntity,oneof"` +} + +func (*PowerEntity_NoteEntity) isPowerEntity_Entity() {} + +type PowerBookmarkSpecifics struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // required + Guid *string `protobuf:"bytes,1,opt,name=guid" json:"guid,omitempty"` + // required + Url *string `protobuf:"bytes,2,opt,name=url" json:"url,omitempty"` + // required + PowerType *PowerBookmarkSpecifics_PowerType `protobuf:"varint,3,opt,name=power_type,json=powerType,enum=sync_pb.PowerBookmarkSpecifics_PowerType" json:"power_type,omitempty"` + // required + CreationTimeUsec *int64 `protobuf:"varint,4,opt,name=creation_time_usec,json=creationTimeUsec" json:"creation_time_usec,omitempty"` + // required + UpdateTimeUsec *int64 `protobuf:"varint,5,opt,name=update_time_usec,json=updateTimeUsec" json:"update_time_usec,omitempty"` + // required + PowerEntity *PowerEntity `protobuf:"bytes,100,opt,name=power_entity,json=powerEntity" json:"power_entity,omitempty"` +} + +func (x *PowerBookmarkSpecifics) Reset() { + *x = PowerBookmarkSpecifics{} + if protoimpl.UnsafeEnabled { + mi := &file_power_bookmark_specifics_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PowerBookmarkSpecifics) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PowerBookmarkSpecifics) ProtoMessage() {} + +func (x *PowerBookmarkSpecifics) ProtoReflect() protoreflect.Message { + mi := &file_power_bookmark_specifics_proto_msgTypes[1] + 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 PowerBookmarkSpecifics.ProtoReflect.Descriptor instead. +func (*PowerBookmarkSpecifics) Descriptor() ([]byte, []int) { + return file_power_bookmark_specifics_proto_rawDescGZIP(), []int{1} +} + +func (x *PowerBookmarkSpecifics) GetGuid() string { + if x != nil && x.Guid != nil { + return *x.Guid + } + return "" +} + +func (x *PowerBookmarkSpecifics) GetUrl() string { + if x != nil && x.Url != nil { + return *x.Url + } + return "" +} + +func (x *PowerBookmarkSpecifics) GetPowerType() PowerBookmarkSpecifics_PowerType { + if x != nil && x.PowerType != nil { + return *x.PowerType + } + return PowerBookmarkSpecifics_POWER_TYPE_UNSPECIFIED +} + +func (x *PowerBookmarkSpecifics) GetCreationTimeUsec() int64 { + if x != nil && x.CreationTimeUsec != nil { + return *x.CreationTimeUsec + } + return 0 +} + +func (x *PowerBookmarkSpecifics) GetUpdateTimeUsec() int64 { + if x != nil && x.UpdateTimeUsec != nil { + return *x.UpdateTimeUsec + } + return 0 +} + +func (x *PowerBookmarkSpecifics) GetPowerEntity() *PowerEntity { + if x != nil { + return x.PowerEntity + } + return nil +} + +var File_power_bookmark_specifics_proto protoreflect.FileDescriptor + +var file_power_bookmark_specifics_proto_rawDesc = []byte{ + 0x0a, 0x1e, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x5f, 0x62, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, + 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x12, 0x07, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x1a, 0x11, 0x6e, 0x6f, 0x74, 0x65, 0x5f, + 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x4f, 0x0a, 0x0b, + 0x50, 0x6f, 0x77, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x36, 0x0a, 0x0b, 0x6e, + 0x6f, 0x74, 0x65, 0x5f, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x13, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x4e, 0x6f, 0x74, 0x65, 0x45, + 0x6e, 0x74, 0x69, 0x74, 0x79, 0x48, 0x00, 0x52, 0x0a, 0x6e, 0x6f, 0x74, 0x65, 0x45, 0x6e, 0x74, + 0x69, 0x74, 0x79, 0x42, 0x08, 0x0a, 0x06, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x22, 0xec, 0x02, + 0x0a, 0x16, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x42, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x53, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x67, 0x75, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x67, 0x75, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, + 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x48, + 0x0a, 0x0a, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x50, 0x6f, 0x77, + 0x65, 0x72, 0x42, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x63, 0x73, 0x2e, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x70, + 0x6f, 0x77, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x75, 0x73, 0x65, 0x63, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, + 0x6d, 0x65, 0x55, 0x73, 0x65, 0x63, 0x12, 0x28, 0x0a, 0x10, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x75, 0x73, 0x65, 0x63, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x0e, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x55, 0x73, 0x65, 0x63, + 0x12, 0x37, 0x0a, 0x0c, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x5f, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, + 0x18, 0x64, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, + 0x2e, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x70, 0x6f, + 0x77, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x22, 0x51, 0x0a, 0x09, 0x50, 0x6f, 0x77, + 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x16, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, + 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x4d, 0x4f, 0x43, 0x4b, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x50, 0x4f, 0x57, 0x45, 0x52, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, 0x4f, 0x54, 0x45, 0x10, 0x02, 0x42, 0x36, 0x0a, 0x25, + 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, + 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x03, 0x50, 0x01, 0x5a, 0x09, 0x2e, 0x2f, 0x73, 0x79, 0x6e, + 0x63, 0x5f, 0x70, 0x62, +} + +var ( + file_power_bookmark_specifics_proto_rawDescOnce sync.Once + file_power_bookmark_specifics_proto_rawDescData = file_power_bookmark_specifics_proto_rawDesc +) + +func file_power_bookmark_specifics_proto_rawDescGZIP() []byte { + file_power_bookmark_specifics_proto_rawDescOnce.Do(func() { + file_power_bookmark_specifics_proto_rawDescData = protoimpl.X.CompressGZIP(file_power_bookmark_specifics_proto_rawDescData) + }) + return file_power_bookmark_specifics_proto_rawDescData +} + +var file_power_bookmark_specifics_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_power_bookmark_specifics_proto_msgTypes = make([]protoimpl.MessageInfo, 2) +var file_power_bookmark_specifics_proto_goTypes = []interface{}{ + (PowerBookmarkSpecifics_PowerType)(0), // 0: sync_pb.PowerBookmarkSpecifics.PowerType + (*PowerEntity)(nil), // 1: sync_pb.PowerEntity + (*PowerBookmarkSpecifics)(nil), // 2: sync_pb.PowerBookmarkSpecifics + (*NoteEntity)(nil), // 3: sync_pb.NoteEntity +} +var file_power_bookmark_specifics_proto_depIdxs = []int32{ + 3, // 0: sync_pb.PowerEntity.note_entity:type_name -> sync_pb.NoteEntity + 0, // 1: sync_pb.PowerBookmarkSpecifics.power_type:type_name -> sync_pb.PowerBookmarkSpecifics.PowerType + 1, // 2: sync_pb.PowerBookmarkSpecifics.power_entity:type_name -> sync_pb.PowerEntity + 3, // [3:3] is the sub-list for method output_type + 3, // [3:3] is the sub-list for method input_type + 3, // [3:3] is the sub-list for extension type_name + 3, // [3:3] is the sub-list for extension extendee + 0, // [0:3] is the sub-list for field type_name +} + +func init() { file_power_bookmark_specifics_proto_init() } +func file_power_bookmark_specifics_proto_init() { + if File_power_bookmark_specifics_proto != nil { + return + } + file_note_entity_proto_init() + if !protoimpl.UnsafeEnabled { + file_power_bookmark_specifics_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PowerEntity); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_power_bookmark_specifics_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PowerBookmarkSpecifics); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_power_bookmark_specifics_proto_msgTypes[0].OneofWrappers = []interface{}{ + (*PowerEntity_NoteEntity)(nil), + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_power_bookmark_specifics_proto_rawDesc, + NumEnums: 1, + NumMessages: 2, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_power_bookmark_specifics_proto_goTypes, + DependencyIndexes: file_power_bookmark_specifics_proto_depIdxs, + EnumInfos: file_power_bookmark_specifics_proto_enumTypes, + MessageInfos: file_power_bookmark_specifics_proto_msgTypes, + }.Build() + File_power_bookmark_specifics_proto = out.File + file_power_bookmark_specifics_proto_rawDesc = nil + file_power_bookmark_specifics_proto_goTypes = nil + file_power_bookmark_specifics_proto_depIdxs = nil +} diff --git a/schema/protobuf/sync_pb/power_bookmark_specifics.proto b/schema/protobuf/sync_pb/power_bookmark_specifics.proto new file mode 100644 index 00000000..246f3df1 --- /dev/null +++ b/schema/protobuf/sync_pb/power_bookmark_specifics.proto @@ -0,0 +1,59 @@ +// Copyright 2022 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +syntax = "proto2"; + +option go_package = "./sync_pb"; + +option java_multiple_files = true; +option java_package = "org.chromium.components.sync.protocol"; + +option optimize_for = LITE_RUNTIME; + +package sync_pb; + +import "note_entity.proto"; + +// Data structure dedicated to each power type. +// Should keep the field numbers of specifics in sync with the ones in PowerType +// below. +message PowerEntity { + oneof entity { + // Used for notes. + NoteEntity note_entity = 2; + } +} + +message PowerBookmarkSpecifics { + // PowerType is persisted to disk and therefore shouldn't be reoderered or + // changed. + // Should keep the field numbers of PowerType in sync with the ones in + // entity above. + enum PowerType { + // All powers should have type so this should be unused. + POWER_TYPE_UNSPECIFIED = 0; + // Used for testing. + POWER_TYPE_MOCK = 1; + // Used for notes. + POWER_TYPE_NOTE = 2; + } + + // The primary key for local storage. + /* required */ optional string guid = 1; + + // Powers associated with a URL. + /* required */ optional string url = 2; + + // Tracks the type of the power. + /* required */ optional PowerType power_type = 3; + + // Tracks when this was added. + /* required */ optional int64 creation_time_usec = 4; + + // Tracks when this was last modified. + /* required */ optional int64 update_time_usec = 5; + + // Power entity. + /* required */ optional PowerEntity power_entity = 100; +} diff --git a/schema/protobuf/sync_pb/preference_specifics.pb.go b/schema/protobuf/sync_pb/preference_specifics.pb.go index 06d7589e..a58bcf19 100644 --- a/schema/protobuf/sync_pb/preference_specifics.pb.go +++ b/schema/protobuf/sync_pb/preference_specifics.pb.go @@ -1,4 +1,4 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2012 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // @@ -9,7 +9,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.0 +// protoc-gen-go v1.31.0 // protoc v3.21.1 // source: preference_specifics.proto @@ -94,10 +94,10 @@ var file_preference_specifics_proto_rawDesc = []byte{ 0x6e, 0x63, 0x65, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x2b, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x36, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, - 0x03, 0x50, 0x01, + 0x03, 0x50, 0x01, 0x5a, 0x09, 0x2e, 0x2f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, } var ( diff --git a/schema/protobuf/sync_pb/preference_specifics.proto b/schema/protobuf/sync_pb/preference_specifics.proto index 4a762bae..d52daafa 100644 --- a/schema/protobuf/sync_pb/preference_specifics.proto +++ b/schema/protobuf/sync_pb/preference_specifics.proto @@ -1,4 +1,4 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2012 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // @@ -9,6 +9,8 @@ syntax = "proto2"; +option go_package = "./sync_pb"; + option java_multiple_files = true; option java_package = "org.chromium.components.sync.protocol"; diff --git a/schema/protobuf/sync_pb/printer_specifics.pb.go b/schema/protobuf/sync_pb/printer_specifics.pb.go index ed921b7e..5c07db67 100644 --- a/schema/protobuf/sync_pb/printer_specifics.pb.go +++ b/schema/protobuf/sync_pb/printer_specifics.pb.go @@ -1,4 +1,4 @@ -// Copyright 2016 The Chromium Authors. All rights reserved. +// Copyright 2016 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // @@ -9,7 +9,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.0 +// protoc-gen-go v1.31.0 // protoc v3.21.1 // source: printer_specifics.proto @@ -39,9 +39,9 @@ type PrinterPPDReference struct { UserSuppliedPpdUrl *string `protobuf:"bytes,1,opt,name=user_supplied_ppd_url,json=userSuppliedPpdUrl" json:"user_supplied_ppd_url,omitempty"` // Retired fields // - // Deprecated: Do not use. + // Deprecated: Marked as deprecated in printer_specifics.proto. EffectiveManufacturer *string `protobuf:"bytes,2,opt,name=effective_manufacturer,json=effectiveManufacturer" json:"effective_manufacturer,omitempty"` - // Deprecated: Do not use. + // Deprecated: Marked as deprecated in printer_specifics.proto. EffectiveModel *string `protobuf:"bytes,3,opt,name=effective_model,json=effectiveModel" json:"effective_model,omitempty"` // String identifying the type of printer, used to look up a ppd to drive the // printer. @@ -94,7 +94,7 @@ func (x *PrinterPPDReference) GetUserSuppliedPpdUrl() string { return "" } -// Deprecated: Do not use. +// Deprecated: Marked as deprecated in printer_specifics.proto. func (x *PrinterPPDReference) GetEffectiveManufacturer() string { if x != nil && x.EffectiveManufacturer != nil { return *x.EffectiveManufacturer @@ -102,7 +102,7 @@ func (x *PrinterPPDReference) GetEffectiveManufacturer() string { return "" } -// Deprecated: Do not use. +// Deprecated: Marked as deprecated in printer_specifics.proto. func (x *PrinterPPDReference) GetEffectiveModel() string { if x != nil && x.EffectiveModel != nil { return *x.EffectiveModel @@ -138,12 +138,12 @@ type PrinterSpecifics struct { // Printer manufacturer. Should be a known manufacturuer. // Deprecated in favor of make_and_model. // - // Deprecated: Do not use. + // Deprecated: Marked as deprecated in printer_specifics.proto. Manufacturer *string `protobuf:"bytes,4,opt,name=manufacturer" json:"manufacturer,omitempty"` // Printer model. Should match a known model for the manufacturer. // Deprecated in favor of make_and_model. // - // Deprecated: Do not use. + // Deprecated: Marked as deprecated in printer_specifics.proto. Model *string `protobuf:"bytes,5,opt,name=model" json:"model,omitempty"` // Universal Resource Identifier for the printer on the network. usb:// will // be the scheme for USB printers. Example @@ -154,7 +154,7 @@ type PrinterSpecifics struct { Uuid *string `protobuf:"bytes,7,opt,name=uuid" json:"uuid,omitempty"` // PPDData was deprecated in favor of PPDReference format. // - // Deprecated: Do not use. + // Deprecated: Marked as deprecated in printer_specifics.proto. Ppd []byte `protobuf:"bytes,8,opt,name=ppd" json:"ppd,omitempty"` // Structure representing the user's ppd configuration. PpdReference *PrinterPPDReference `protobuf:"bytes,9,opt,name=ppd_reference,json=ppdReference" json:"ppd_reference,omitempty"` @@ -223,7 +223,7 @@ func (x *PrinterSpecifics) GetDescription() string { return "" } -// Deprecated: Do not use. +// Deprecated: Marked as deprecated in printer_specifics.proto. func (x *PrinterSpecifics) GetManufacturer() string { if x != nil && x.Manufacturer != nil { return *x.Manufacturer @@ -231,7 +231,7 @@ func (x *PrinterSpecifics) GetManufacturer() string { return "" } -// Deprecated: Do not use. +// Deprecated: Marked as deprecated in printer_specifics.proto. func (x *PrinterSpecifics) GetModel() string { if x != nil && x.Model != nil { return *x.Model @@ -253,7 +253,7 @@ func (x *PrinterSpecifics) GetUuid() string { return "" } -// Deprecated: Do not use. +// Deprecated: Marked as deprecated in printer_specifics.proto. func (x *PrinterSpecifics) GetPpd() []byte { if x != nil { return x.Ppd @@ -337,10 +337,11 @@ var file_printer_specifics_proto_rawDesc = []byte{ 0x09, 0x52, 0x0c, 0x6d, 0x61, 0x6b, 0x65, 0x41, 0x6e, 0x64, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x28, 0x0a, 0x10, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x72, 0x69, 0x6e, 0x74, - 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x55, 0x72, 0x69, 0x42, 0x2b, 0x0a, 0x25, 0x6f, 0x72, 0x67, + 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x55, 0x72, 0x69, 0x42, 0x36, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6c, 0x48, 0x03, 0x50, 0x01, + 0x6f, 0x6c, 0x48, 0x03, 0x50, 0x01, 0x5a, 0x09, 0x2e, 0x2f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, + 0x62, } var ( diff --git a/schema/protobuf/sync_pb/printer_specifics.proto b/schema/protobuf/sync_pb/printer_specifics.proto index 238b1591..be12008d 100644 --- a/schema/protobuf/sync_pb/printer_specifics.proto +++ b/schema/protobuf/sync_pb/printer_specifics.proto @@ -1,4 +1,4 @@ -// Copyright 2016 The Chromium Authors. All rights reserved. +// Copyright 2016 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // @@ -9,6 +9,8 @@ syntax = "proto2"; +option go_package = "./sync_pb"; + option java_multiple_files = true; option java_package = "org.chromium.components.sync.protocol"; diff --git a/schema/protobuf/sync_pb/printers_authorization_server_specifics.pb.go b/schema/protobuf/sync_pb/printers_authorization_server_specifics.pb.go new file mode 100644 index 00000000..48f32cdb --- /dev/null +++ b/schema/protobuf/sync_pb/printers_authorization_server_specifics.pb.go @@ -0,0 +1,160 @@ +// Copyright 2022 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. +// +// Sync protocol datatype extension for printer data. + +// If you change or add any fields in this file, update proto_visitors.h and +// potentially proto_enum_conversions.{h, cc}. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.31.0 +// protoc v3.21.1 +// source: printers_authorization_server_specifics.proto + +package sync_pb + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// Represents trusted Authorization Server for printers. +type PrintersAuthorizationServerSpecifics struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Universal Resource Identifier for the authorization server on the network. + // The scheme must be https. Example: https://address.example:port/path/path. + // This field must be unique and is required. + Uri *string `protobuf:"bytes,1,opt,name=uri" json:"uri,omitempty"` +} + +func (x *PrintersAuthorizationServerSpecifics) Reset() { + *x = PrintersAuthorizationServerSpecifics{} + if protoimpl.UnsafeEnabled { + mi := &file_printers_authorization_server_specifics_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PrintersAuthorizationServerSpecifics) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PrintersAuthorizationServerSpecifics) ProtoMessage() {} + +func (x *PrintersAuthorizationServerSpecifics) ProtoReflect() protoreflect.Message { + mi := &file_printers_authorization_server_specifics_proto_msgTypes[0] + 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 PrintersAuthorizationServerSpecifics.ProtoReflect.Descriptor instead. +func (*PrintersAuthorizationServerSpecifics) Descriptor() ([]byte, []int) { + return file_printers_authorization_server_specifics_proto_rawDescGZIP(), []int{0} +} + +func (x *PrintersAuthorizationServerSpecifics) GetUri() string { + if x != nil && x.Uri != nil { + return *x.Uri + } + return "" +} + +var File_printers_authorization_server_specifics_proto protoreflect.FileDescriptor + +var file_printers_authorization_server_specifics_proto_rawDesc = []byte{ + 0x0a, 0x2d, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x6f, + 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, + 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, + 0x07, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x22, 0x38, 0x0a, 0x24, 0x50, 0x72, 0x69, 0x6e, + 0x74, 0x65, 0x72, 0x73, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, + 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, + 0x72, 0x69, 0x42, 0x36, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, + 0x75, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x73, 0x79, + 0x6e, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x03, 0x50, 0x01, 0x5a, + 0x09, 0x2e, 0x2f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, +} + +var ( + file_printers_authorization_server_specifics_proto_rawDescOnce sync.Once + file_printers_authorization_server_specifics_proto_rawDescData = file_printers_authorization_server_specifics_proto_rawDesc +) + +func file_printers_authorization_server_specifics_proto_rawDescGZIP() []byte { + file_printers_authorization_server_specifics_proto_rawDescOnce.Do(func() { + file_printers_authorization_server_specifics_proto_rawDescData = protoimpl.X.CompressGZIP(file_printers_authorization_server_specifics_proto_rawDescData) + }) + return file_printers_authorization_server_specifics_proto_rawDescData +} + +var file_printers_authorization_server_specifics_proto_msgTypes = make([]protoimpl.MessageInfo, 1) +var file_printers_authorization_server_specifics_proto_goTypes = []interface{}{ + (*PrintersAuthorizationServerSpecifics)(nil), // 0: sync_pb.PrintersAuthorizationServerSpecifics +} +var file_printers_authorization_server_specifics_proto_depIdxs = []int32{ + 0, // [0:0] is the sub-list for method output_type + 0, // [0:0] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_printers_authorization_server_specifics_proto_init() } +func file_printers_authorization_server_specifics_proto_init() { + if File_printers_authorization_server_specifics_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_printers_authorization_server_specifics_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PrintersAuthorizationServerSpecifics); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_printers_authorization_server_specifics_proto_rawDesc, + NumEnums: 0, + NumMessages: 1, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_printers_authorization_server_specifics_proto_goTypes, + DependencyIndexes: file_printers_authorization_server_specifics_proto_depIdxs, + MessageInfos: file_printers_authorization_server_specifics_proto_msgTypes, + }.Build() + File_printers_authorization_server_specifics_proto = out.File + file_printers_authorization_server_specifics_proto_rawDesc = nil + file_printers_authorization_server_specifics_proto_goTypes = nil + file_printers_authorization_server_specifics_proto_depIdxs = nil +} diff --git a/schema/protobuf/sync_pb/printers_authorization_server_specifics.proto b/schema/protobuf/sync_pb/printers_authorization_server_specifics.proto new file mode 100644 index 00000000..752e05c9 --- /dev/null +++ b/schema/protobuf/sync_pb/printers_authorization_server_specifics.proto @@ -0,0 +1,27 @@ +// Copyright 2022 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. +// +// Sync protocol datatype extension for printer data. + +// If you change or add any fields in this file, update proto_visitors.h and +// potentially proto_enum_conversions.{h, cc}. + +syntax = "proto2"; + +option go_package = "./sync_pb"; + +option java_multiple_files = true; +option java_package = "org.chromium.components.sync.protocol"; + +option optimize_for = LITE_RUNTIME; + +package sync_pb; + +// Represents trusted Authorization Server for printers. +message PrintersAuthorizationServerSpecifics { + // Universal Resource Identifier for the authorization server on the network. + // The scheme must be https. Example: https://address.example:port/path/path. + // This field must be unique and is required. + optional string uri = 1; +} diff --git a/schema/protobuf/sync_pb/priority_preference_specifics.pb.go b/schema/protobuf/sync_pb/priority_preference_specifics.pb.go index 64d69d3e..c275a544 100644 --- a/schema/protobuf/sync_pb/priority_preference_specifics.pb.go +++ b/schema/protobuf/sync_pb/priority_preference_specifics.pb.go @@ -1,4 +1,4 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2012 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // @@ -9,7 +9,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.0 +// protoc-gen-go v1.31.0 // protoc v3.21.1 // source: priority_preference_specifics.proto @@ -90,10 +90,10 @@ var file_priority_preference_specifics_proto_rawDesc = []byte{ 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x52, 0x0a, 0x70, 0x72, 0x65, - 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x42, 0x2b, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, + 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x42, 0x36, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, - 0x48, 0x03, 0x50, 0x01, + 0x48, 0x03, 0x50, 0x01, 0x5a, 0x09, 0x2e, 0x2f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, } var ( diff --git a/schema/protobuf/sync_pb/priority_preference_specifics.proto b/schema/protobuf/sync_pb/priority_preference_specifics.proto index 66f100d2..4acf9662 100644 --- a/schema/protobuf/sync_pb/priority_preference_specifics.proto +++ b/schema/protobuf/sync_pb/priority_preference_specifics.proto @@ -1,4 +1,4 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2012 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // @@ -9,6 +9,8 @@ syntax = "proto2"; +option go_package = "./sync_pb"; + option java_multiple_files = true; option java_package = "org.chromium.components.sync.protocol"; diff --git a/schema/protobuf/sync_pb/reading_list_specifics.pb.go b/schema/protobuf/sync_pb/reading_list_specifics.pb.go index 53e1c02a..b68482db 100644 --- a/schema/protobuf/sync_pb/reading_list_specifics.pb.go +++ b/schema/protobuf/sync_pb/reading_list_specifics.pb.go @@ -1,4 +1,4 @@ -// Copyright 2016 The Chromium Authors. All rights reserved. +// Copyright 2016 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // @@ -9,7 +9,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.0 +// protoc-gen-go v1.31.0 // protoc v3.21.1 // source: reading_list_specifics.proto @@ -237,10 +237,11 @@ var file_reading_list_specifics_proto_rawDesc = []byte{ 0x0a, 0x16, 0x52, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0a, 0x0a, 0x06, 0x55, 0x4e, 0x52, 0x45, 0x41, 0x44, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x52, 0x45, 0x41, 0x44, 0x10, 0x01, 0x12, 0x0a, - 0x0a, 0x06, 0x55, 0x4e, 0x53, 0x45, 0x45, 0x4e, 0x10, 0x02, 0x42, 0x2b, 0x0a, 0x25, 0x6f, 0x72, + 0x0a, 0x06, 0x55, 0x4e, 0x53, 0x45, 0x45, 0x4e, 0x10, 0x02, 0x42, 0x36, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x63, 0x6f, 0x6c, 0x48, 0x03, 0x50, 0x01, + 0x63, 0x6f, 0x6c, 0x48, 0x03, 0x50, 0x01, 0x5a, 0x09, 0x2e, 0x2f, 0x73, 0x79, 0x6e, 0x63, 0x5f, + 0x70, 0x62, } var ( diff --git a/schema/protobuf/sync_pb/reading_list_specifics.proto b/schema/protobuf/sync_pb/reading_list_specifics.proto index 4b629ab6..d622d714 100644 --- a/schema/protobuf/sync_pb/reading_list_specifics.proto +++ b/schema/protobuf/sync_pb/reading_list_specifics.proto @@ -1,4 +1,4 @@ -// Copyright 2016 The Chromium Authors. All rights reserved. +// Copyright 2016 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // @@ -9,6 +9,8 @@ syntax = "proto2"; +option go_package = "./sync_pb"; + option java_multiple_files = true; option java_package = "org.chromium.components.sync.protocol"; diff --git a/schema/protobuf/sync_pb/saved_tab_group_specifics.pb.go b/schema/protobuf/sync_pb/saved_tab_group_specifics.pb.go new file mode 100644 index 00000000..3cc4486c --- /dev/null +++ b/schema/protobuf/sync_pb/saved_tab_group_specifics.pb.go @@ -0,0 +1,539 @@ +// Copyright 2022 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// If you change or add any fields in this file, update proto_visitors.h and +// potentially proto_enum_conversions.{h, cc}. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.31.0 +// protoc v3.21.1 +// source: saved_tab_group_specifics.proto + +package sync_pb + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// These colors map to tab_groups::TabGroupColorId. They DO NOT match the enum +// integer values due to "kGrey" being in the "Unspecified" field. +type SavedTabGroup_SavedTabGroupColor int32 + +const ( + SavedTabGroup_SAVED_TAB_GROUP_COLOR_UNSPECIFIED SavedTabGroup_SavedTabGroupColor = 0 + SavedTabGroup_SAVED_TAB_GROUP_COLOR_GREY SavedTabGroup_SavedTabGroupColor = 1 + SavedTabGroup_SAVED_TAB_GROUP_COLOR_BLUE SavedTabGroup_SavedTabGroupColor = 2 + SavedTabGroup_SAVED_TAB_GROUP_COLOR_RED SavedTabGroup_SavedTabGroupColor = 3 + SavedTabGroup_SAVED_TAB_GROUP_COLOR_YELLOW SavedTabGroup_SavedTabGroupColor = 4 + SavedTabGroup_SAVED_TAB_GROUP_COLOR_GREEN SavedTabGroup_SavedTabGroupColor = 5 + SavedTabGroup_SAVED_TAB_GROUP_COLOR_PINK SavedTabGroup_SavedTabGroupColor = 6 + SavedTabGroup_SAVED_TAB_GROUP_COLOR_PURPLE SavedTabGroup_SavedTabGroupColor = 7 + SavedTabGroup_SAVED_TAB_GROUP_COLOR_CYAN SavedTabGroup_SavedTabGroupColor = 8 + SavedTabGroup_SAVED_TAB_GROUP_COLOR_ORANGE SavedTabGroup_SavedTabGroupColor = 9 +) + +// Enum value maps for SavedTabGroup_SavedTabGroupColor. +var ( + SavedTabGroup_SavedTabGroupColor_name = map[int32]string{ + 0: "SAVED_TAB_GROUP_COLOR_UNSPECIFIED", + 1: "SAVED_TAB_GROUP_COLOR_GREY", + 2: "SAVED_TAB_GROUP_COLOR_BLUE", + 3: "SAVED_TAB_GROUP_COLOR_RED", + 4: "SAVED_TAB_GROUP_COLOR_YELLOW", + 5: "SAVED_TAB_GROUP_COLOR_GREEN", + 6: "SAVED_TAB_GROUP_COLOR_PINK", + 7: "SAVED_TAB_GROUP_COLOR_PURPLE", + 8: "SAVED_TAB_GROUP_COLOR_CYAN", + 9: "SAVED_TAB_GROUP_COLOR_ORANGE", + } + SavedTabGroup_SavedTabGroupColor_value = map[string]int32{ + "SAVED_TAB_GROUP_COLOR_UNSPECIFIED": 0, + "SAVED_TAB_GROUP_COLOR_GREY": 1, + "SAVED_TAB_GROUP_COLOR_BLUE": 2, + "SAVED_TAB_GROUP_COLOR_RED": 3, + "SAVED_TAB_GROUP_COLOR_YELLOW": 4, + "SAVED_TAB_GROUP_COLOR_GREEN": 5, + "SAVED_TAB_GROUP_COLOR_PINK": 6, + "SAVED_TAB_GROUP_COLOR_PURPLE": 7, + "SAVED_TAB_GROUP_COLOR_CYAN": 8, + "SAVED_TAB_GROUP_COLOR_ORANGE": 9, + } +) + +func (x SavedTabGroup_SavedTabGroupColor) Enum() *SavedTabGroup_SavedTabGroupColor { + p := new(SavedTabGroup_SavedTabGroupColor) + *p = x + return p +} + +func (x SavedTabGroup_SavedTabGroupColor) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (SavedTabGroup_SavedTabGroupColor) Descriptor() protoreflect.EnumDescriptor { + return file_saved_tab_group_specifics_proto_enumTypes[0].Descriptor() +} + +func (SavedTabGroup_SavedTabGroupColor) Type() protoreflect.EnumType { + return &file_saved_tab_group_specifics_proto_enumTypes[0] +} + +func (x SavedTabGroup_SavedTabGroupColor) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Do not use. +func (x *SavedTabGroup_SavedTabGroupColor) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err + } + *x = SavedTabGroup_SavedTabGroupColor(num) + return nil +} + +// Deprecated: Use SavedTabGroup_SavedTabGroupColor.Descriptor instead. +func (SavedTabGroup_SavedTabGroupColor) EnumDescriptor() ([]byte, []int) { + return file_saved_tab_group_specifics_proto_rawDescGZIP(), []int{0, 0} +} + +// Sync protocol datatype extension for saved tab groups. Saved Tab Groups are +// tab groups which can be recalled between browser sessions, and if sync is +// turned on, cross device. A saved tab group contains tabs which are stored as +// a SavedTabGroupSpecifics separately (SavedTabGroupTab). This is due to +// limitations from the sync service on the size of an individual sync entity. +type SavedTabGroup struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The position of the SavedTabGroup in any visual display. This also + // represents the index in the SavedTabGroupModel of the group. + Position *int64 `protobuf:"varint,1,opt,name=position" json:"position,omitempty"` + // The displayed title of the group, shown on the tab group and the saved tab + // group button. + Title *string `protobuf:"bytes,2,opt,name=title" json:"title,omitempty"` + // The color of the group, mapped to tab_groups::TabGroupColorId. + Color *SavedTabGroup_SavedTabGroupColor `protobuf:"varint,3,opt,name=color,enum=sync_pb.SavedTabGroup_SavedTabGroupColor" json:"color,omitempty"` +} + +func (x *SavedTabGroup) Reset() { + *x = SavedTabGroup{} + if protoimpl.UnsafeEnabled { + mi := &file_saved_tab_group_specifics_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SavedTabGroup) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SavedTabGroup) ProtoMessage() {} + +func (x *SavedTabGroup) ProtoReflect() protoreflect.Message { + mi := &file_saved_tab_group_specifics_proto_msgTypes[0] + 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 SavedTabGroup.ProtoReflect.Descriptor instead. +func (*SavedTabGroup) Descriptor() ([]byte, []int) { + return file_saved_tab_group_specifics_proto_rawDescGZIP(), []int{0} +} + +func (x *SavedTabGroup) GetPosition() int64 { + if x != nil && x.Position != nil { + return *x.Position + } + return 0 +} + +func (x *SavedTabGroup) GetTitle() string { + if x != nil && x.Title != nil { + return *x.Title + } + return "" +} + +func (x *SavedTabGroup) GetColor() SavedTabGroup_SavedTabGroupColor { + if x != nil && x.Color != nil { + return *x.Color + } + return SavedTabGroup_SAVED_TAB_GROUP_COLOR_UNSPECIFIED +} + +// Sync protocol datatype extension for saved tab group tabs. SavedTabGroupTab +// are the sync representation of a tab in a saved tab group. they are stored as +// separate entities due to size limitations of sync entities. +type SavedTabGroupTab struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // An id that links the saved tab group tab to it's saved tab group. + GroupGuid *string `protobuf:"bytes,1,opt,name=group_guid,json=groupGuid" json:"group_guid,omitempty"` + // The position in the Tab Strip the tab is located relative to the start of + // the tab group. This is also the index in the saved_tabs_ vector in the + // SavedTabGroup in the SavedTabGroupModel, which is updated by the + // TabStripModel. + Position *int64 `protobuf:"varint,2,opt,name=position" json:"position,omitempty"` + // Tab Data used for constructing the tab. + Url *string `protobuf:"bytes,3,opt,name=url" json:"url,omitempty"` + // The displayed title of the tab, shown on the saved tab group button's + // context menu. + Title *string `protobuf:"bytes,4,opt,name=title" json:"title,omitempty"` +} + +func (x *SavedTabGroupTab) Reset() { + *x = SavedTabGroupTab{} + if protoimpl.UnsafeEnabled { + mi := &file_saved_tab_group_specifics_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SavedTabGroupTab) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SavedTabGroupTab) ProtoMessage() {} + +func (x *SavedTabGroupTab) ProtoReflect() protoreflect.Message { + mi := &file_saved_tab_group_specifics_proto_msgTypes[1] + 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 SavedTabGroupTab.ProtoReflect.Descriptor instead. +func (*SavedTabGroupTab) Descriptor() ([]byte, []int) { + return file_saved_tab_group_specifics_proto_rawDescGZIP(), []int{1} +} + +func (x *SavedTabGroupTab) GetGroupGuid() string { + if x != nil && x.GroupGuid != nil { + return *x.GroupGuid + } + return "" +} + +func (x *SavedTabGroupTab) GetPosition() int64 { + if x != nil && x.Position != nil { + return *x.Position + } + return 0 +} + +func (x *SavedTabGroupTab) GetUrl() string { + if x != nil && x.Url != nil { + return *x.Url + } + return "" +} + +func (x *SavedTabGroupTab) GetTitle() string { + if x != nil && x.Title != nil { + return *x.Title + } + return "" +} + +type SavedTabGroupSpecifics struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // An id that refers to the sync saved tab group object. + Guid *string `protobuf:"bytes,1,opt,name=guid" json:"guid,omitempty"` + // Timestamps for CRUD operations. + CreationTimeWindowsEpochMicros *int64 `protobuf:"varint,2,opt,name=creation_time_windows_epoch_micros,json=creationTimeWindowsEpochMicros" json:"creation_time_windows_epoch_micros,omitempty"` + UpdateTimeWindowsEpochMicros *int64 `protobuf:"varint,3,opt,name=update_time_windows_epoch_micros,json=updateTimeWindowsEpochMicros" json:"update_time_windows_epoch_micros,omitempty"` + // Types that are assignable to Entity: + // + // *SavedTabGroupSpecifics_Group + // *SavedTabGroupSpecifics_Tab + Entity isSavedTabGroupSpecifics_Entity `protobuf_oneof:"entity"` +} + +func (x *SavedTabGroupSpecifics) Reset() { + *x = SavedTabGroupSpecifics{} + if protoimpl.UnsafeEnabled { + mi := &file_saved_tab_group_specifics_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SavedTabGroupSpecifics) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SavedTabGroupSpecifics) ProtoMessage() {} + +func (x *SavedTabGroupSpecifics) ProtoReflect() protoreflect.Message { + mi := &file_saved_tab_group_specifics_proto_msgTypes[2] + 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 SavedTabGroupSpecifics.ProtoReflect.Descriptor instead. +func (*SavedTabGroupSpecifics) Descriptor() ([]byte, []int) { + return file_saved_tab_group_specifics_proto_rawDescGZIP(), []int{2} +} + +func (x *SavedTabGroupSpecifics) GetGuid() string { + if x != nil && x.Guid != nil { + return *x.Guid + } + return "" +} + +func (x *SavedTabGroupSpecifics) GetCreationTimeWindowsEpochMicros() int64 { + if x != nil && x.CreationTimeWindowsEpochMicros != nil { + return *x.CreationTimeWindowsEpochMicros + } + return 0 +} + +func (x *SavedTabGroupSpecifics) GetUpdateTimeWindowsEpochMicros() int64 { + if x != nil && x.UpdateTimeWindowsEpochMicros != nil { + return *x.UpdateTimeWindowsEpochMicros + } + return 0 +} + +func (m *SavedTabGroupSpecifics) GetEntity() isSavedTabGroupSpecifics_Entity { + if m != nil { + return m.Entity + } + return nil +} + +func (x *SavedTabGroupSpecifics) GetGroup() *SavedTabGroup { + if x, ok := x.GetEntity().(*SavedTabGroupSpecifics_Group); ok { + return x.Group + } + return nil +} + +func (x *SavedTabGroupSpecifics) GetTab() *SavedTabGroupTab { + if x, ok := x.GetEntity().(*SavedTabGroupSpecifics_Tab); ok { + return x.Tab + } + return nil +} + +type isSavedTabGroupSpecifics_Entity interface { + isSavedTabGroupSpecifics_Entity() +} + +type SavedTabGroupSpecifics_Group struct { + Group *SavedTabGroup `protobuf:"bytes,4,opt,name=group,oneof"` +} + +type SavedTabGroupSpecifics_Tab struct { + Tab *SavedTabGroupTab `protobuf:"bytes,5,opt,name=tab,oneof"` +} + +func (*SavedTabGroupSpecifics_Group) isSavedTabGroupSpecifics_Entity() {} + +func (*SavedTabGroupSpecifics_Tab) isSavedTabGroupSpecifics_Entity() {} + +var File_saved_tab_group_specifics_proto protoreflect.FileDescriptor + +var file_saved_tab_group_specifics_proto_rawDesc = []byte{ + 0x0a, 0x1f, 0x73, 0x61, 0x76, 0x65, 0x64, 0x5f, 0x74, 0x61, 0x62, 0x5f, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x12, 0x07, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x22, 0xe6, 0x03, 0x0a, 0x0d, 0x53, + 0x61, 0x76, 0x65, 0x64, 0x54, 0x61, 0x62, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x1a, 0x0a, 0x08, + 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, + 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x3f, + 0x0a, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, + 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x53, 0x61, 0x76, 0x65, 0x64, 0x54, 0x61, 0x62, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x53, 0x61, 0x76, 0x65, 0x64, 0x54, 0x61, 0x62, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x52, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x22, + 0xe1, 0x02, 0x0a, 0x12, 0x53, 0x61, 0x76, 0x65, 0x64, 0x54, 0x61, 0x62, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x25, 0x0a, 0x21, 0x53, 0x41, 0x56, 0x45, 0x44, 0x5f, + 0x54, 0x41, 0x42, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x5f, + 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1e, 0x0a, + 0x1a, 0x53, 0x41, 0x56, 0x45, 0x44, 0x5f, 0x54, 0x41, 0x42, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, + 0x5f, 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x5f, 0x47, 0x52, 0x45, 0x59, 0x10, 0x01, 0x12, 0x1e, 0x0a, + 0x1a, 0x53, 0x41, 0x56, 0x45, 0x44, 0x5f, 0x54, 0x41, 0x42, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, + 0x5f, 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x5f, 0x42, 0x4c, 0x55, 0x45, 0x10, 0x02, 0x12, 0x1d, 0x0a, + 0x19, 0x53, 0x41, 0x56, 0x45, 0x44, 0x5f, 0x54, 0x41, 0x42, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, + 0x5f, 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x5f, 0x52, 0x45, 0x44, 0x10, 0x03, 0x12, 0x20, 0x0a, 0x1c, + 0x53, 0x41, 0x56, 0x45, 0x44, 0x5f, 0x54, 0x41, 0x42, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, + 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x5f, 0x59, 0x45, 0x4c, 0x4c, 0x4f, 0x57, 0x10, 0x04, 0x12, 0x1f, + 0x0a, 0x1b, 0x53, 0x41, 0x56, 0x45, 0x44, 0x5f, 0x54, 0x41, 0x42, 0x5f, 0x47, 0x52, 0x4f, 0x55, + 0x50, 0x5f, 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x5f, 0x47, 0x52, 0x45, 0x45, 0x4e, 0x10, 0x05, 0x12, + 0x1e, 0x0a, 0x1a, 0x53, 0x41, 0x56, 0x45, 0x44, 0x5f, 0x54, 0x41, 0x42, 0x5f, 0x47, 0x52, 0x4f, + 0x55, 0x50, 0x5f, 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x5f, 0x50, 0x49, 0x4e, 0x4b, 0x10, 0x06, 0x12, + 0x20, 0x0a, 0x1c, 0x53, 0x41, 0x56, 0x45, 0x44, 0x5f, 0x54, 0x41, 0x42, 0x5f, 0x47, 0x52, 0x4f, + 0x55, 0x50, 0x5f, 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x5f, 0x50, 0x55, 0x52, 0x50, 0x4c, 0x45, 0x10, + 0x07, 0x12, 0x1e, 0x0a, 0x1a, 0x53, 0x41, 0x56, 0x45, 0x44, 0x5f, 0x54, 0x41, 0x42, 0x5f, 0x47, + 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x5f, 0x43, 0x59, 0x41, 0x4e, 0x10, + 0x08, 0x12, 0x20, 0x0a, 0x1c, 0x53, 0x41, 0x56, 0x45, 0x44, 0x5f, 0x54, 0x41, 0x42, 0x5f, 0x47, + 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x5f, 0x4f, 0x52, 0x41, 0x4e, 0x47, + 0x45, 0x10, 0x09, 0x22, 0x75, 0x0a, 0x10, 0x53, 0x61, 0x76, 0x65, 0x64, 0x54, 0x61, 0x62, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x54, 0x61, 0x62, 0x12, 0x1d, 0x0a, 0x0a, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x5f, 0x67, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x47, 0x75, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x75, 0x72, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x22, 0xa9, 0x02, 0x0a, 0x16, 0x53, + 0x61, 0x76, 0x65, 0x64, 0x54, 0x61, 0x62, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x70, 0x65, 0x63, + 0x69, 0x66, 0x69, 0x63, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x67, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x67, 0x75, 0x69, 0x64, 0x12, 0x4a, 0x0a, 0x22, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x77, 0x69, 0x6e, 0x64, 0x6f, + 0x77, 0x73, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x5f, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x1e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, + 0x69, 0x6d, 0x65, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x4d, + 0x69, 0x63, 0x72, 0x6f, 0x73, 0x12, 0x46, 0x0a, 0x20, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, + 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x5f, 0x65, 0x70, 0x6f, + 0x63, 0x68, 0x5f, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x1c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x57, 0x69, 0x6e, 0x64, 0x6f, + 0x77, 0x73, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x12, 0x2e, 0x0a, + 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, + 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x53, 0x61, 0x76, 0x65, 0x64, 0x54, 0x61, 0x62, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x48, 0x00, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x2d, 0x0a, + 0x03, 0x74, 0x61, 0x62, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x79, 0x6e, + 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x53, 0x61, 0x76, 0x65, 0x64, 0x54, 0x61, 0x62, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x54, 0x61, 0x62, 0x48, 0x00, 0x52, 0x03, 0x74, 0x61, 0x62, 0x42, 0x08, 0x0a, 0x06, + 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x42, 0x36, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, + 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, + 0x73, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, + 0x03, 0x50, 0x01, 0x5a, 0x09, 0x2e, 0x2f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, +} + +var ( + file_saved_tab_group_specifics_proto_rawDescOnce sync.Once + file_saved_tab_group_specifics_proto_rawDescData = file_saved_tab_group_specifics_proto_rawDesc +) + +func file_saved_tab_group_specifics_proto_rawDescGZIP() []byte { + file_saved_tab_group_specifics_proto_rawDescOnce.Do(func() { + file_saved_tab_group_specifics_proto_rawDescData = protoimpl.X.CompressGZIP(file_saved_tab_group_specifics_proto_rawDescData) + }) + return file_saved_tab_group_specifics_proto_rawDescData +} + +var file_saved_tab_group_specifics_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_saved_tab_group_specifics_proto_msgTypes = make([]protoimpl.MessageInfo, 3) +var file_saved_tab_group_specifics_proto_goTypes = []interface{}{ + (SavedTabGroup_SavedTabGroupColor)(0), // 0: sync_pb.SavedTabGroup.SavedTabGroupColor + (*SavedTabGroup)(nil), // 1: sync_pb.SavedTabGroup + (*SavedTabGroupTab)(nil), // 2: sync_pb.SavedTabGroupTab + (*SavedTabGroupSpecifics)(nil), // 3: sync_pb.SavedTabGroupSpecifics +} +var file_saved_tab_group_specifics_proto_depIdxs = []int32{ + 0, // 0: sync_pb.SavedTabGroup.color:type_name -> sync_pb.SavedTabGroup.SavedTabGroupColor + 1, // 1: sync_pb.SavedTabGroupSpecifics.group:type_name -> sync_pb.SavedTabGroup + 2, // 2: sync_pb.SavedTabGroupSpecifics.tab:type_name -> sync_pb.SavedTabGroupTab + 3, // [3:3] is the sub-list for method output_type + 3, // [3:3] is the sub-list for method input_type + 3, // [3:3] is the sub-list for extension type_name + 3, // [3:3] is the sub-list for extension extendee + 0, // [0:3] is the sub-list for field type_name +} + +func init() { file_saved_tab_group_specifics_proto_init() } +func file_saved_tab_group_specifics_proto_init() { + if File_saved_tab_group_specifics_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_saved_tab_group_specifics_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SavedTabGroup); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_saved_tab_group_specifics_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SavedTabGroupTab); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_saved_tab_group_specifics_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SavedTabGroupSpecifics); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_saved_tab_group_specifics_proto_msgTypes[2].OneofWrappers = []interface{}{ + (*SavedTabGroupSpecifics_Group)(nil), + (*SavedTabGroupSpecifics_Tab)(nil), + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_saved_tab_group_specifics_proto_rawDesc, + NumEnums: 1, + NumMessages: 3, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_saved_tab_group_specifics_proto_goTypes, + DependencyIndexes: file_saved_tab_group_specifics_proto_depIdxs, + EnumInfos: file_saved_tab_group_specifics_proto_enumTypes, + MessageInfos: file_saved_tab_group_specifics_proto_msgTypes, + }.Build() + File_saved_tab_group_specifics_proto = out.File + file_saved_tab_group_specifics_proto_rawDesc = nil + file_saved_tab_group_specifics_proto_goTypes = nil + file_saved_tab_group_specifics_proto_depIdxs = nil +} diff --git a/schema/protobuf/sync_pb/saved_tab_group_specifics.proto b/schema/protobuf/sync_pb/saved_tab_group_specifics.proto new file mode 100644 index 00000000..0e00d131 --- /dev/null +++ b/schema/protobuf/sync_pb/saved_tab_group_specifics.proto @@ -0,0 +1,85 @@ +// Copyright 2022 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// If you change or add any fields in this file, update proto_visitors.h and +// potentially proto_enum_conversions.{h, cc}. + +syntax = "proto2"; + +option go_package = "./sync_pb"; + +option java_multiple_files = true; +option java_package = "org.chromium.components.sync.protocol"; + +option optimize_for = LITE_RUNTIME; + +package sync_pb; + +// Sync protocol datatype extension for saved tab groups. Saved Tab Groups are +// tab groups which can be recalled between browser sessions, and if sync is +// turned on, cross device. A saved tab group contains tabs which are stored as +// a SavedTabGroupSpecifics separately (SavedTabGroupTab). This is due to +// limitations from the sync service on the size of an individual sync entity. +message SavedTabGroup { + // These colors map to tab_groups::TabGroupColorId. They DO NOT match the enum + // integer values due to "kGrey" being in the "Unspecified" field. + enum SavedTabGroupColor { + SAVED_TAB_GROUP_COLOR_UNSPECIFIED = 0; + SAVED_TAB_GROUP_COLOR_GREY = 1; + SAVED_TAB_GROUP_COLOR_BLUE = 2; + SAVED_TAB_GROUP_COLOR_RED = 3; + SAVED_TAB_GROUP_COLOR_YELLOW = 4; + SAVED_TAB_GROUP_COLOR_GREEN = 5; + SAVED_TAB_GROUP_COLOR_PINK = 6; + SAVED_TAB_GROUP_COLOR_PURPLE = 7; + SAVED_TAB_GROUP_COLOR_CYAN = 8; + SAVED_TAB_GROUP_COLOR_ORANGE = 9; + } + + // The position of the SavedTabGroup in any visual display. This also + // represents the index in the SavedTabGroupModel of the group. + optional int64 position = 1; + + // The displayed title of the group, shown on the tab group and the saved tab + // group button. + optional string title = 2; + + // The color of the group, mapped to tab_groups::TabGroupColorId. + optional SavedTabGroupColor color = 3; +} + +// Sync protocol datatype extension for saved tab group tabs. SavedTabGroupTab +// are the sync representation of a tab in a saved tab group. they are stored as +// separate entities due to size limitations of sync entities. +message SavedTabGroupTab { + // An id that links the saved tab group tab to it's saved tab group. + optional string group_guid = 1; + + // The position in the Tab Strip the tab is located relative to the start of + // the tab group. This is also the index in the saved_tabs_ vector in the + // SavedTabGroup in the SavedTabGroupModel, which is updated by the + // TabStripModel. + optional int64 position = 2; + + // Tab Data used for constructing the tab. + optional string url = 3; + + // The displayed title of the tab, shown on the saved tab group button's + // context menu. + optional string title = 4; +} + +message SavedTabGroupSpecifics { + // An id that refers to the sync saved tab group object. + optional string guid = 1; + + // Timestamps for CRUD operations. + optional int64 creation_time_windows_epoch_micros = 2; + optional int64 update_time_windows_epoch_micros = 3; + + oneof entity { + SavedTabGroup group = 4; + SavedTabGroupTab tab = 5; + } +} diff --git a/schema/protobuf/sync_pb/search_engine_specifics.pb.go b/schema/protobuf/sync_pb/search_engine_specifics.pb.go index 2c47f030..e2999183 100644 --- a/schema/protobuf/sync_pb/search_engine_specifics.pb.go +++ b/schema/protobuf/sync_pb/search_engine_specifics.pb.go @@ -1,4 +1,4 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2012 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // @@ -11,7 +11,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.0 +// protoc-gen-go v1.31.0 // protoc v3.21.1 // source: search_engine_specifics.proto @@ -120,7 +120,7 @@ type SearchEngineSpecifics struct { // Obsolete field. This used to represent whether or not this entry is shown // in the list of default search engines. // - // Deprecated: Do not use. + // Deprecated: Marked as deprecated in search_engine_specifics.proto. DeprecatedShowInDefaultList *bool `protobuf:"varint,9,opt,name=deprecated_show_in_default_list,json=deprecatedShowInDefaultList" json:"deprecated_show_in_default_list,omitempty"` // The parameterized URL that provides suggestions as the user types. SuggestionsUrl *string `protobuf:"bytes,10,opt,name=suggestions_url,json=suggestionsUrl" json:"suggestions_url,omitempty"` @@ -131,16 +131,11 @@ type SearchEngineSpecifics struct { // Do not write to this field in the future. We preserve this for now so we // can read the field in order to migrate existing data that sets this bit. // - // Deprecated: Do not use. + // Deprecated: Marked as deprecated in search_engine_specifics.proto. AutogenerateKeyword *bool `protobuf:"varint,12,opt,name=autogenerate_keyword,json=autogenerateKeyword" json:"autogenerate_keyword,omitempty"` // ID 13 reserved - previously used by |logo_id|, now deprecated. - // Obsolete field. This used to represent whether or not this search engine - // entry was created automatically by an administrator via group policy. This - // notion no longer exists amongst synced search engines as we do not want to - // sync managed search engines. - // optional bool deprecated_created_by_policy = 14; // - // Deprecated: Do not use. + // Deprecated: Marked as deprecated in search_engine_specifics.proto. InstantUrl *string `protobuf:"bytes,15,opt,name=instant_url,json=instantUrl" json:"instant_url,omitempty"` // ID 16 reserved - previously used by |id|, now deprecated. // The last time this entry was modified by a user. A UTC timestamp with units @@ -151,7 +146,7 @@ type SearchEngineSpecifics struct { // A list of URL patterns that can be used, in addition to |url|, to extract // search terms from a URL. AlternateUrls []string `protobuf:"bytes,19,rep,name=alternate_urls,json=alternateUrls" json:"alternate_urls,omitempty"` - // Deprecated: Do not use. + // Deprecated: Marked as deprecated in search_engine_specifics.proto. SearchTermsReplacementKey *string `protobuf:"bytes,20,opt,name=search_terms_replacement_key,json=searchTermsReplacementKey" json:"search_terms_replacement_key,omitempty"` // The parameterized URL that provides image results according to the image // content or image URL provided by user. @@ -160,7 +155,7 @@ type SearchEngineSpecifics struct { // post parameters for the corresponding search URL. SearchUrlPostParams *string `protobuf:"bytes,22,opt,name=search_url_post_params,json=searchUrlPostParams" json:"search_url_post_params,omitempty"` SuggestionsUrlPostParams *string `protobuf:"bytes,23,opt,name=suggestions_url_post_params,json=suggestionsUrlPostParams" json:"suggestions_url_post_params,omitempty"` - // Deprecated: Do not use. + // Deprecated: Marked as deprecated in search_engine_specifics.proto. InstantUrlPostParams *string `protobuf:"bytes,24,opt,name=instant_url_post_params,json=instantUrlPostParams" json:"instant_url_post_params,omitempty"` ImageUrlPostParams *string `protobuf:"bytes,25,opt,name=image_url_post_params,json=imageUrlPostParams" json:"image_url_post_params,omitempty"` // The parameterized URL for a search provider specified new tab page. @@ -261,7 +256,7 @@ func (x *SearchEngineSpecifics) GetInputEncodings() string { return "" } -// Deprecated: Do not use. +// Deprecated: Marked as deprecated in search_engine_specifics.proto. func (x *SearchEngineSpecifics) GetDeprecatedShowInDefaultList() bool { if x != nil && x.DeprecatedShowInDefaultList != nil { return *x.DeprecatedShowInDefaultList @@ -283,7 +278,7 @@ func (x *SearchEngineSpecifics) GetPrepopulateId() int32 { return 0 } -// Deprecated: Do not use. +// Deprecated: Marked as deprecated in search_engine_specifics.proto. func (x *SearchEngineSpecifics) GetAutogenerateKeyword() bool { if x != nil && x.AutogenerateKeyword != nil { return *x.AutogenerateKeyword @@ -291,7 +286,7 @@ func (x *SearchEngineSpecifics) GetAutogenerateKeyword() bool { return false } -// Deprecated: Do not use. +// Deprecated: Marked as deprecated in search_engine_specifics.proto. func (x *SearchEngineSpecifics) GetInstantUrl() string { if x != nil && x.InstantUrl != nil { return *x.InstantUrl @@ -320,7 +315,7 @@ func (x *SearchEngineSpecifics) GetAlternateUrls() []string { return nil } -// Deprecated: Do not use. +// Deprecated: Marked as deprecated in search_engine_specifics.proto. func (x *SearchEngineSpecifics) GetSearchTermsReplacementKey() string { if x != nil && x.SearchTermsReplacementKey != nil { return *x.SearchTermsReplacementKey @@ -349,7 +344,7 @@ func (x *SearchEngineSpecifics) GetSuggestionsUrlPostParams() string { return "" } -// Deprecated: Do not use. +// Deprecated: Marked as deprecated in search_engine_specifics.proto. func (x *SearchEngineSpecifics) GetInstantUrlPostParams() string { if x != nil && x.InstantUrlPostParams != nil { return *x.InstantUrlPostParams @@ -390,7 +385,7 @@ var File_search_engine_specifics_proto protoreflect.FileDescriptor var file_search_engine_specifics_proto_rawDesc = []byte{ 0x0a, 0x1d, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, - 0x07, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x22, 0xbf, 0x09, 0x0a, 0x15, 0x53, 0x65, 0x61, + 0x07, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x22, 0xd8, 0x09, 0x0a, 0x15, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x4e, 0x61, 0x6d, @@ -466,10 +461,12 @@ var file_search_engine_specifics_proto_rawDesc = []byte{ 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x54, 0x52, 0x55, 0x45, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, - 0x55, 0x53, 0x5f, 0x46, 0x41, 0x4c, 0x53, 0x45, 0x10, 0x02, 0x42, 0x2b, 0x0a, 0x25, 0x6f, 0x72, - 0x67, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, - 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x63, 0x6f, 0x6c, 0x48, 0x03, 0x50, 0x01, + 0x55, 0x53, 0x5f, 0x46, 0x41, 0x4c, 0x53, 0x45, 0x10, 0x02, 0x4a, 0x04, 0x08, 0x0e, 0x10, 0x0f, + 0x52, 0x11, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x70, 0x6f, 0x6c, + 0x69, 0x63, 0x79, 0x42, 0x36, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, + 0x69, 0x75, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x73, + 0x79, 0x6e, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x03, 0x50, 0x01, + 0x5a, 0x09, 0x2e, 0x2f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, } var ( diff --git a/schema/protobuf/sync_pb/search_engine_specifics.proto b/schema/protobuf/sync_pb/search_engine_specifics.proto index 7b07e74d..117dcedd 100644 --- a/schema/protobuf/sync_pb/search_engine_specifics.proto +++ b/schema/protobuf/sync_pb/search_engine_specifics.proto @@ -1,4 +1,4 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2012 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // @@ -11,6 +11,8 @@ syntax = "proto2"; +option go_package = "./sync_pb"; + option java_multiple_files = true; option java_package = "org.chromium.components.sync.protocol"; @@ -51,11 +53,6 @@ message SearchEngineSpecifics { // can read the field in order to migrate existing data that sets this bit. optional bool autogenerate_keyword = 12 [deprecated = true]; // ID 13 reserved - previously used by |logo_id|, now deprecated. - // Obsolete field. This used to represent whether or not this search engine - // entry was created automatically by an administrator via group policy. This - // notion no longer exists amongst synced search engines as we do not want to - // sync managed search engines. - // optional bool deprecated_created_by_policy = 14; optional string instant_url = 15 [deprecated = true]; // ID 16 reserved - previously used by |id|, now deprecated. // The last time this entry was modified by a user. A UTC timestamp with units @@ -95,4 +92,7 @@ message SearchEngineSpecifics { // The ID associated with the starter pack engine. This is set to 0 if not a // starter pack engine. optional int32 starter_pack_id = 28; + + reserved 14; + reserved "created_by_policy"; } diff --git a/schema/protobuf/sync_pb/security_event_specifics.pb.go b/schema/protobuf/sync_pb/security_event_specifics.pb.go index acef743e..5ae99137 100644 --- a/schema/protobuf/sync_pb/security_event_specifics.pb.go +++ b/schema/protobuf/sync_pb/security_event_specifics.pb.go @@ -1,4 +1,4 @@ -// Copyright 2019 The Chromium Authors. All rights reserved. +// Copyright 2019 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // @@ -9,7 +9,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.0 +// protoc-gen-go v1.31.0 // protoc v3.21.1 // source: security_event_specifics.proto @@ -37,6 +37,7 @@ type SecurityEventSpecifics struct { // The specific security event to record. // // Types that are assignable to Event: + // // *SecurityEventSpecifics_GaiaPasswordReuseEvent Event isSecurityEventSpecifics_Event `protobuf_oneof:"event"` // Time of event, as measured by client in microseconds since Windows epoch. @@ -123,10 +124,11 @@ var file_security_event_specifics_proto_rawDesc = []byte{ 0x75, 0x73, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x75, 0x73, 0x65, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x55, 0x73, 0x65, 0x63, - 0x42, 0x07, 0x0a, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x42, 0x2b, 0x0a, 0x25, 0x6f, 0x72, 0x67, + 0x42, 0x07, 0x0a, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x42, 0x36, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6c, 0x48, 0x03, 0x50, 0x01, + 0x6f, 0x6c, 0x48, 0x03, 0x50, 0x01, 0x5a, 0x09, 0x2e, 0x2f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, + 0x62, } var ( diff --git a/schema/protobuf/sync_pb/security_event_specifics.proto b/schema/protobuf/sync_pb/security_event_specifics.proto index b6c9e6c6..a4f914f4 100644 --- a/schema/protobuf/sync_pb/security_event_specifics.proto +++ b/schema/protobuf/sync_pb/security_event_specifics.proto @@ -1,4 +1,4 @@ -// Copyright 2019 The Chromium Authors. All rights reserved. +// Copyright 2019 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // @@ -9,6 +9,8 @@ syntax = "proto2"; +option go_package = "./sync_pb"; + option java_multiple_files = true; option java_package = "org.chromium.components.sync.protocol"; diff --git a/schema/protobuf/sync_pb/segmentation_specifics.pb.go b/schema/protobuf/sync_pb/segmentation_specifics.pb.go new file mode 100644 index 00000000..b5786aad --- /dev/null +++ b/schema/protobuf/sync_pb/segmentation_specifics.pb.go @@ -0,0 +1,695 @@ +// Copyright 2022 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. +// +// Sync protocol datatype extension for segmentations. + +// If you change or add any fields in this file, update proto_visitors.h and +// potentially proto_enum_conversions.{h, cc}. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.31.0 +// protoc v3.21.1 +// source: segmentation_specifics.proto + +package sync_pb + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type SegmentationSpecifics_DeviceMetadata_PlatformType int32 + +const ( + SegmentationSpecifics_DeviceMetadata_PLATFORM_TYPE_UNSPECIFIED SegmentationSpecifics_DeviceMetadata_PlatformType = 0 + SegmentationSpecifics_DeviceMetadata_PLATFORM_WINDOWS SegmentationSpecifics_DeviceMetadata_PlatformType = 1 + SegmentationSpecifics_DeviceMetadata_PLATFORM_MAC SegmentationSpecifics_DeviceMetadata_PlatformType = 2 + SegmentationSpecifics_DeviceMetadata_PLATFORM_LINUX SegmentationSpecifics_DeviceMetadata_PlatformType = 3 + SegmentationSpecifics_DeviceMetadata_PLATFORM_CHROMEOS_ASH SegmentationSpecifics_DeviceMetadata_PlatformType = 4 + SegmentationSpecifics_DeviceMetadata_PLATFORM_ANDROID SegmentationSpecifics_DeviceMetadata_PlatformType = 5 + SegmentationSpecifics_DeviceMetadata_PLATFORM_IOS SegmentationSpecifics_DeviceMetadata_PlatformType = 6 + SegmentationSpecifics_DeviceMetadata_PLATFORM_CHROMEOS_LACROS SegmentationSpecifics_DeviceMetadata_PlatformType = 7 +) + +// Enum value maps for SegmentationSpecifics_DeviceMetadata_PlatformType. +var ( + SegmentationSpecifics_DeviceMetadata_PlatformType_name = map[int32]string{ + 0: "PLATFORM_TYPE_UNSPECIFIED", + 1: "PLATFORM_WINDOWS", + 2: "PLATFORM_MAC", + 3: "PLATFORM_LINUX", + 4: "PLATFORM_CHROMEOS_ASH", + 5: "PLATFORM_ANDROID", + 6: "PLATFORM_IOS", + 7: "PLATFORM_CHROMEOS_LACROS", + } + SegmentationSpecifics_DeviceMetadata_PlatformType_value = map[string]int32{ + "PLATFORM_TYPE_UNSPECIFIED": 0, + "PLATFORM_WINDOWS": 1, + "PLATFORM_MAC": 2, + "PLATFORM_LINUX": 3, + "PLATFORM_CHROMEOS_ASH": 4, + "PLATFORM_ANDROID": 5, + "PLATFORM_IOS": 6, + "PLATFORM_CHROMEOS_LACROS": 7, + } +) + +func (x SegmentationSpecifics_DeviceMetadata_PlatformType) Enum() *SegmentationSpecifics_DeviceMetadata_PlatformType { + p := new(SegmentationSpecifics_DeviceMetadata_PlatformType) + *p = x + return p +} + +func (x SegmentationSpecifics_DeviceMetadata_PlatformType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (SegmentationSpecifics_DeviceMetadata_PlatformType) Descriptor() protoreflect.EnumDescriptor { + return file_segmentation_specifics_proto_enumTypes[0].Descriptor() +} + +func (SegmentationSpecifics_DeviceMetadata_PlatformType) Type() protoreflect.EnumType { + return &file_segmentation_specifics_proto_enumTypes[0] +} + +func (x SegmentationSpecifics_DeviceMetadata_PlatformType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Do not use. +func (x *SegmentationSpecifics_DeviceMetadata_PlatformType) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err + } + *x = SegmentationSpecifics_DeviceMetadata_PlatformType(num) + return nil +} + +// Deprecated: Use SegmentationSpecifics_DeviceMetadata_PlatformType.Descriptor instead. +func (SegmentationSpecifics_DeviceMetadata_PlatformType) EnumDescriptor() ([]byte, []int) { + return file_segmentation_specifics_proto_rawDescGZIP(), []int{0, 1, 0} +} + +// Sync data proto for storing segmentation data. Keyed by the combination of +// cache_guid (a Sync client id) and segmentation key. +// +// The segmentation platform is a platform that uses intelligence and machine +// learning to guide developers for building purpose-built user experience for +// specific segments of users. See go/chrome-segmentation for more details. +type SegmentationSpecifics struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The key used to identify the type of segmentation associated with a + // feature, e.g. 'user_engagement'. + SegmentationKey *string `protobuf:"bytes,1,opt,name=segmentation_key,json=segmentationKey" json:"segmentation_key,omitempty"` + SegmentSelectionResult *SegmentationSpecifics_SegmentSelectionResult `protobuf:"bytes,2,opt,name=segment_selection_result,json=segmentSelectionResult" json:"segment_selection_result,omitempty"` + DeviceMetadata *SegmentationSpecifics_DeviceMetadata `protobuf:"bytes,3,opt,name=device_metadata,json=deviceMetadata" json:"device_metadata,omitempty"` + // One or more model execution data associated with each segment for the + // segmentation key. + ModelExecutionData []*SegmentationSpecifics_ModelExecutionData `protobuf:"bytes,4,rep,name=model_execution_data,json=modelExecutionData" json:"model_execution_data,omitempty"` +} + +func (x *SegmentationSpecifics) Reset() { + *x = SegmentationSpecifics{} + if protoimpl.UnsafeEnabled { + mi := &file_segmentation_specifics_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SegmentationSpecifics) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SegmentationSpecifics) ProtoMessage() {} + +func (x *SegmentationSpecifics) ProtoReflect() protoreflect.Message { + mi := &file_segmentation_specifics_proto_msgTypes[0] + 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 SegmentationSpecifics.ProtoReflect.Descriptor instead. +func (*SegmentationSpecifics) Descriptor() ([]byte, []int) { + return file_segmentation_specifics_proto_rawDescGZIP(), []int{0} +} + +func (x *SegmentationSpecifics) GetSegmentationKey() string { + if x != nil && x.SegmentationKey != nil { + return *x.SegmentationKey + } + return "" +} + +func (x *SegmentationSpecifics) GetSegmentSelectionResult() *SegmentationSpecifics_SegmentSelectionResult { + if x != nil { + return x.SegmentSelectionResult + } + return nil +} + +func (x *SegmentationSpecifics) GetDeviceMetadata() *SegmentationSpecifics_DeviceMetadata { + if x != nil { + return x.DeviceMetadata + } + return nil +} + +func (x *SegmentationSpecifics) GetModelExecutionData() []*SegmentationSpecifics_ModelExecutionData { + if x != nil { + return x.ModelExecutionData + } + return nil +} + +// The selected segment by the segmentation scheme. +type SegmentationSpecifics_SegmentSelectionResult struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The string ID that refers to the segment the user was assigned to, e.g., + // 'highly_engaged_user'. + SelectedSegment *string `protobuf:"bytes,1,opt,name=selected_segment,json=selectedSegment" json:"selected_segment,omitempty"` + // Expiry time of selection result. Represents time from windows epoch in + // seconds. Expired results are ignored by clients. + ExpiryTimeWindowsEpochSeconds *int64 `protobuf:"varint,2,opt,name=expiry_time_windows_epoch_seconds,json=expiryTimeWindowsEpochSeconds" json:"expiry_time_windows_epoch_seconds,omitempty"` + // Time when the segmentation data is updated. Used to weigh results by + // recency. Represents time from windows epoch in seconds. + LastUpdatedTimeWindowsEpochSeconds *int64 `protobuf:"varint,3,opt,name=last_updated_time_windows_epoch_seconds,json=lastUpdatedTimeWindowsEpochSeconds" json:"last_updated_time_windows_epoch_seconds,omitempty"` +} + +func (x *SegmentationSpecifics_SegmentSelectionResult) Reset() { + *x = SegmentationSpecifics_SegmentSelectionResult{} + if protoimpl.UnsafeEnabled { + mi := &file_segmentation_specifics_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SegmentationSpecifics_SegmentSelectionResult) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SegmentationSpecifics_SegmentSelectionResult) ProtoMessage() {} + +func (x *SegmentationSpecifics_SegmentSelectionResult) ProtoReflect() protoreflect.Message { + mi := &file_segmentation_specifics_proto_msgTypes[1] + 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 SegmentationSpecifics_SegmentSelectionResult.ProtoReflect.Descriptor instead. +func (*SegmentationSpecifics_SegmentSelectionResult) Descriptor() ([]byte, []int) { + return file_segmentation_specifics_proto_rawDescGZIP(), []int{0, 0} +} + +func (x *SegmentationSpecifics_SegmentSelectionResult) GetSelectedSegment() string { + if x != nil && x.SelectedSegment != nil { + return *x.SelectedSegment + } + return "" +} + +func (x *SegmentationSpecifics_SegmentSelectionResult) GetExpiryTimeWindowsEpochSeconds() int64 { + if x != nil && x.ExpiryTimeWindowsEpochSeconds != nil { + return *x.ExpiryTimeWindowsEpochSeconds + } + return 0 +} + +func (x *SegmentationSpecifics_SegmentSelectionResult) GetLastUpdatedTimeWindowsEpochSeconds() int64 { + if x != nil && x.LastUpdatedTimeWindowsEpochSeconds != nil { + return *x.LastUpdatedTimeWindowsEpochSeconds + } + return 0 +} + +// Metadata about the client device as used by the segmentation platform. +type SegmentationSpecifics_DeviceMetadata struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The cache_guid created to identify a sync client on this device. + // Reuses the same Sync guid. + CacheGuid *string `protobuf:"bytes,1,opt,name=cache_guid,json=cacheGuid" json:"cache_guid,omitempty"` + // The OS platform of the device. + PlatformType *SegmentationSpecifics_DeviceMetadata_PlatformType `protobuf:"varint,2,opt,name=platform_type,json=platformType,enum=sync_pb.SegmentationSpecifics_DeviceMetadata_PlatformType" json:"platform_type,omitempty"` +} + +func (x *SegmentationSpecifics_DeviceMetadata) Reset() { + *x = SegmentationSpecifics_DeviceMetadata{} + if protoimpl.UnsafeEnabled { + mi := &file_segmentation_specifics_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SegmentationSpecifics_DeviceMetadata) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SegmentationSpecifics_DeviceMetadata) ProtoMessage() {} + +func (x *SegmentationSpecifics_DeviceMetadata) ProtoReflect() protoreflect.Message { + mi := &file_segmentation_specifics_proto_msgTypes[2] + 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 SegmentationSpecifics_DeviceMetadata.ProtoReflect.Descriptor instead. +func (*SegmentationSpecifics_DeviceMetadata) Descriptor() ([]byte, []int) { + return file_segmentation_specifics_proto_rawDescGZIP(), []int{0, 1} +} + +func (x *SegmentationSpecifics_DeviceMetadata) GetCacheGuid() string { + if x != nil && x.CacheGuid != nil { + return *x.CacheGuid + } + return "" +} + +func (x *SegmentationSpecifics_DeviceMetadata) GetPlatformType() SegmentationSpecifics_DeviceMetadata_PlatformType { + if x != nil && x.PlatformType != nil { + return *x.PlatformType + } + return SegmentationSpecifics_DeviceMetadata_PLATFORM_TYPE_UNSPECIFIED +} + +// Model execution data including segment scores and related metadata, e.g., +// model version. +type SegmentationSpecifics_ModelExecutionData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // A string ID that identifies a model. + ModelId *string `protobuf:"bytes,1,opt,name=model_id,json=modelId" json:"model_id,omitempty"` + // A model may output one or multiple scores, one score for each segment + // label. + ModelOutputs []*SegmentationSpecifics_ModelExecutionData_ModelOutput `protobuf:"bytes,2,rep,name=model_outputs,json=modelOutputs" json:"model_outputs,omitempty"` + // Timestamp when the ML model was executed. + // Represents time from windows epoch in seconds. + ExecutionTimeWindowsEpochSeconds *int64 `protobuf:"varint,3,opt,name=execution_time_windows_epoch_seconds,json=executionTimeWindowsEpochSeconds" json:"execution_time_windows_epoch_seconds,omitempty"` + // Expiry timestamp for the model scores. + // Represents time from windows epoch in seconds. + ScoreExpiryTimeWindowsEpochSeconds *int64 `protobuf:"varint,4,opt,name=score_expiry_time_windows_epoch_seconds,json=scoreExpiryTimeWindowsEpochSeconds" json:"score_expiry_time_windows_epoch_seconds,omitempty"` + // The version of the ML model that was run. + ModelVersion *int32 `protobuf:"varint,5,opt,name=model_version,json=modelVersion" json:"model_version,omitempty"` +} + +func (x *SegmentationSpecifics_ModelExecutionData) Reset() { + *x = SegmentationSpecifics_ModelExecutionData{} + if protoimpl.UnsafeEnabled { + mi := &file_segmentation_specifics_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SegmentationSpecifics_ModelExecutionData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SegmentationSpecifics_ModelExecutionData) ProtoMessage() {} + +func (x *SegmentationSpecifics_ModelExecutionData) ProtoReflect() protoreflect.Message { + mi := &file_segmentation_specifics_proto_msgTypes[3] + 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 SegmentationSpecifics_ModelExecutionData.ProtoReflect.Descriptor instead. +func (*SegmentationSpecifics_ModelExecutionData) Descriptor() ([]byte, []int) { + return file_segmentation_specifics_proto_rawDescGZIP(), []int{0, 2} +} + +func (x *SegmentationSpecifics_ModelExecutionData) GetModelId() string { + if x != nil && x.ModelId != nil { + return *x.ModelId + } + return "" +} + +func (x *SegmentationSpecifics_ModelExecutionData) GetModelOutputs() []*SegmentationSpecifics_ModelExecutionData_ModelOutput { + if x != nil { + return x.ModelOutputs + } + return nil +} + +func (x *SegmentationSpecifics_ModelExecutionData) GetExecutionTimeWindowsEpochSeconds() int64 { + if x != nil && x.ExecutionTimeWindowsEpochSeconds != nil { + return *x.ExecutionTimeWindowsEpochSeconds + } + return 0 +} + +func (x *SegmentationSpecifics_ModelExecutionData) GetScoreExpiryTimeWindowsEpochSeconds() int64 { + if x != nil && x.ScoreExpiryTimeWindowsEpochSeconds != nil { + return *x.ScoreExpiryTimeWindowsEpochSeconds + } + return 0 +} + +func (x *SegmentationSpecifics_ModelExecutionData) GetModelVersion() int32 { + if x != nil && x.ModelVersion != nil { + return *x.ModelVersion + } + return 0 +} + +// Output of model. +type SegmentationSpecifics_ModelExecutionData_ModelOutput struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // When outputting multiple scores from a single model, this is the + // segment label for each output. + Label *string `protobuf:"bytes,1,opt,name=label" json:"label,omitempty"` + // Raw segment scores provided by the ML model or the heuristic model. + // The score is derived based on a combination of UMA histograms, + // user actions or UKM and URLs visited. The score can be treated as a + // probability of the user liking a feature, like feed, or NTP. + Score *float32 `protobuf:"fixed32,2,opt,name=score" json:"score,omitempty"` + // A rank defined by the segmentation scheme. + Rank *int32 `protobuf:"varint,3,opt,name=rank" json:"rank,omitempty"` +} + +func (x *SegmentationSpecifics_ModelExecutionData_ModelOutput) Reset() { + *x = SegmentationSpecifics_ModelExecutionData_ModelOutput{} + if protoimpl.UnsafeEnabled { + mi := &file_segmentation_specifics_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SegmentationSpecifics_ModelExecutionData_ModelOutput) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SegmentationSpecifics_ModelExecutionData_ModelOutput) ProtoMessage() {} + +func (x *SegmentationSpecifics_ModelExecutionData_ModelOutput) ProtoReflect() protoreflect.Message { + mi := &file_segmentation_specifics_proto_msgTypes[4] + 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 SegmentationSpecifics_ModelExecutionData_ModelOutput.ProtoReflect.Descriptor instead. +func (*SegmentationSpecifics_ModelExecutionData_ModelOutput) Descriptor() ([]byte, []int) { + return file_segmentation_specifics_proto_rawDescGZIP(), []int{0, 2, 0} +} + +func (x *SegmentationSpecifics_ModelExecutionData_ModelOutput) GetLabel() string { + if x != nil && x.Label != nil { + return *x.Label + } + return "" +} + +func (x *SegmentationSpecifics_ModelExecutionData_ModelOutput) GetScore() float32 { + if x != nil && x.Score != nil { + return *x.Score + } + return 0 +} + +func (x *SegmentationSpecifics_ModelExecutionData_ModelOutput) GetRank() int32 { + if x != nil && x.Rank != nil { + return *x.Rank + } + return 0 +} + +var File_segmentation_specifics_proto protoreflect.FileDescriptor + +var file_segmentation_specifics_proto_rawDesc = []byte{ + 0x0a, 0x1c, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x07, + 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x22, 0xe4, 0x0a, 0x0a, 0x15, 0x53, 0x65, 0x67, 0x6d, + 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, + 0x73, 0x12, 0x29, 0x0a, 0x10, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x65, 0x67, + 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x12, 0x6f, 0x0a, 0x18, + 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, + 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x53, + 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x16, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x65, + 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x56, 0x0a, + 0x0f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, + 0x2e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x0e, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x63, 0x0a, 0x14, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x65, + 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x53, 0x65, + 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x63, 0x73, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, + 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x12, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x45, 0x78, 0x65, + 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x1a, 0xe2, 0x01, 0x0a, 0x16, 0x53, + 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x29, 0x0a, 0x10, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, + 0x64, 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, + 0x12, 0x48, 0x0a, 0x21, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, + 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x5f, 0x73, 0x65, + 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x1d, 0x65, 0x78, 0x70, + 0x69, 0x72, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x45, 0x70, + 0x6f, 0x63, 0x68, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x53, 0x0a, 0x27, 0x6c, 0x61, + 0x73, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, + 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x5f, 0x73, 0x65, + 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x22, 0x6c, 0x61, 0x73, + 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x57, 0x69, 0x6e, 0x64, + 0x6f, 0x77, 0x73, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x1a, + 0xdd, 0x02, 0x0a, 0x0e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x61, 0x63, 0x68, 0x65, 0x5f, 0x67, 0x75, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x61, 0x63, 0x68, 0x65, 0x47, 0x75, 0x69, + 0x64, 0x12, 0x5f, 0x0a, 0x0d, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3a, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, + 0x70, 0x62, 0x2e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, + 0x54, 0x79, 0x70, 0x65, 0x52, 0x0c, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x54, 0x79, + 0x70, 0x65, 0x22, 0xca, 0x01, 0x0a, 0x0c, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x19, 0x50, 0x4c, 0x41, 0x54, 0x46, 0x4f, 0x52, 0x4d, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, + 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x50, 0x4c, 0x41, 0x54, 0x46, 0x4f, 0x52, 0x4d, 0x5f, 0x57, + 0x49, 0x4e, 0x44, 0x4f, 0x57, 0x53, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x50, 0x4c, 0x41, 0x54, + 0x46, 0x4f, 0x52, 0x4d, 0x5f, 0x4d, 0x41, 0x43, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x50, 0x4c, + 0x41, 0x54, 0x46, 0x4f, 0x52, 0x4d, 0x5f, 0x4c, 0x49, 0x4e, 0x55, 0x58, 0x10, 0x03, 0x12, 0x19, + 0x0a, 0x15, 0x50, 0x4c, 0x41, 0x54, 0x46, 0x4f, 0x52, 0x4d, 0x5f, 0x43, 0x48, 0x52, 0x4f, 0x4d, + 0x45, 0x4f, 0x53, 0x5f, 0x41, 0x53, 0x48, 0x10, 0x04, 0x12, 0x14, 0x0a, 0x10, 0x50, 0x4c, 0x41, + 0x54, 0x46, 0x4f, 0x52, 0x4d, 0x5f, 0x41, 0x4e, 0x44, 0x52, 0x4f, 0x49, 0x44, 0x10, 0x05, 0x12, + 0x10, 0x0a, 0x0c, 0x50, 0x4c, 0x41, 0x54, 0x46, 0x4f, 0x52, 0x4d, 0x5f, 0x49, 0x4f, 0x53, 0x10, + 0x06, 0x12, 0x1c, 0x0a, 0x18, 0x50, 0x4c, 0x41, 0x54, 0x46, 0x4f, 0x52, 0x4d, 0x5f, 0x43, 0x48, + 0x52, 0x4f, 0x4d, 0x45, 0x4f, 0x53, 0x5f, 0x4c, 0x41, 0x43, 0x52, 0x4f, 0x53, 0x10, 0x07, 0x1a, + 0xac, 0x03, 0x0a, 0x12, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, + 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x49, + 0x64, 0x12, 0x62, 0x0a, 0x0d, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, + 0x70, 0x62, 0x2e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x45, 0x78, + 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x4d, 0x6f, 0x64, 0x65, + 0x6c, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x0c, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x4f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x73, 0x12, 0x4e, 0x0a, 0x24, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x5f, + 0x65, 0x70, 0x6f, 0x63, 0x68, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x20, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, + 0x6d, 0x65, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x53, 0x65, + 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x53, 0x0a, 0x27, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x5f, 0x65, + 0x78, 0x70, 0x69, 0x72, 0x79, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x77, 0x69, 0x6e, 0x64, 0x6f, + 0x77, 0x73, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x22, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x45, 0x78, 0x70, + 0x69, 0x72, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x45, 0x70, + 0x6f, 0x63, 0x68, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x6d, 0x6f, + 0x64, 0x65, 0x6c, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0c, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x1a, + 0x4d, 0x0a, 0x0b, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x14, + 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, + 0x61, 0x62, 0x65, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x02, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x61, + 0x6e, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x72, 0x61, 0x6e, 0x6b, 0x42, 0x36, + 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x63, + 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x03, 0x50, 0x01, 0x5a, 0x09, 0x2e, 0x2f, 0x73, + 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, +} + +var ( + file_segmentation_specifics_proto_rawDescOnce sync.Once + file_segmentation_specifics_proto_rawDescData = file_segmentation_specifics_proto_rawDesc +) + +func file_segmentation_specifics_proto_rawDescGZIP() []byte { + file_segmentation_specifics_proto_rawDescOnce.Do(func() { + file_segmentation_specifics_proto_rawDescData = protoimpl.X.CompressGZIP(file_segmentation_specifics_proto_rawDescData) + }) + return file_segmentation_specifics_proto_rawDescData +} + +var file_segmentation_specifics_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_segmentation_specifics_proto_msgTypes = make([]protoimpl.MessageInfo, 5) +var file_segmentation_specifics_proto_goTypes = []interface{}{ + (SegmentationSpecifics_DeviceMetadata_PlatformType)(0), // 0: sync_pb.SegmentationSpecifics.DeviceMetadata.PlatformType + (*SegmentationSpecifics)(nil), // 1: sync_pb.SegmentationSpecifics + (*SegmentationSpecifics_SegmentSelectionResult)(nil), // 2: sync_pb.SegmentationSpecifics.SegmentSelectionResult + (*SegmentationSpecifics_DeviceMetadata)(nil), // 3: sync_pb.SegmentationSpecifics.DeviceMetadata + (*SegmentationSpecifics_ModelExecutionData)(nil), // 4: sync_pb.SegmentationSpecifics.ModelExecutionData + (*SegmentationSpecifics_ModelExecutionData_ModelOutput)(nil), // 5: sync_pb.SegmentationSpecifics.ModelExecutionData.ModelOutput +} +var file_segmentation_specifics_proto_depIdxs = []int32{ + 2, // 0: sync_pb.SegmentationSpecifics.segment_selection_result:type_name -> sync_pb.SegmentationSpecifics.SegmentSelectionResult + 3, // 1: sync_pb.SegmentationSpecifics.device_metadata:type_name -> sync_pb.SegmentationSpecifics.DeviceMetadata + 4, // 2: sync_pb.SegmentationSpecifics.model_execution_data:type_name -> sync_pb.SegmentationSpecifics.ModelExecutionData + 0, // 3: sync_pb.SegmentationSpecifics.DeviceMetadata.platform_type:type_name -> sync_pb.SegmentationSpecifics.DeviceMetadata.PlatformType + 5, // 4: sync_pb.SegmentationSpecifics.ModelExecutionData.model_outputs:type_name -> sync_pb.SegmentationSpecifics.ModelExecutionData.ModelOutput + 5, // [5:5] is the sub-list for method output_type + 5, // [5:5] is the sub-list for method input_type + 5, // [5:5] is the sub-list for extension type_name + 5, // [5:5] is the sub-list for extension extendee + 0, // [0:5] is the sub-list for field type_name +} + +func init() { file_segmentation_specifics_proto_init() } +func file_segmentation_specifics_proto_init() { + if File_segmentation_specifics_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_segmentation_specifics_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SegmentationSpecifics); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_segmentation_specifics_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SegmentationSpecifics_SegmentSelectionResult); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_segmentation_specifics_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SegmentationSpecifics_DeviceMetadata); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_segmentation_specifics_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SegmentationSpecifics_ModelExecutionData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_segmentation_specifics_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SegmentationSpecifics_ModelExecutionData_ModelOutput); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_segmentation_specifics_proto_rawDesc, + NumEnums: 1, + NumMessages: 5, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_segmentation_specifics_proto_goTypes, + DependencyIndexes: file_segmentation_specifics_proto_depIdxs, + EnumInfos: file_segmentation_specifics_proto_enumTypes, + MessageInfos: file_segmentation_specifics_proto_msgTypes, + }.Build() + File_segmentation_specifics_proto = out.File + file_segmentation_specifics_proto_rawDesc = nil + file_segmentation_specifics_proto_goTypes = nil + file_segmentation_specifics_proto_depIdxs = nil +} diff --git a/schema/protobuf/sync_pb/segmentation_specifics.proto b/schema/protobuf/sync_pb/segmentation_specifics.proto new file mode 100644 index 00000000..891cafa8 --- /dev/null +++ b/schema/protobuf/sync_pb/segmentation_specifics.proto @@ -0,0 +1,113 @@ +// Copyright 2022 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. +// +// Sync protocol datatype extension for segmentations. + +// If you change or add any fields in this file, update proto_visitors.h and +// potentially proto_enum_conversions.{h, cc}. + +syntax = "proto2"; + +option go_package = "./sync_pb"; + +option java_multiple_files = true; +option java_package = "org.chromium.components.sync.protocol"; + +option optimize_for = LITE_RUNTIME; + +package sync_pb; + +// Sync data proto for storing segmentation data. Keyed by the combination of +// cache_guid (a Sync client id) and segmentation key. +// +// The segmentation platform is a platform that uses intelligence and machine +// learning to guide developers for building purpose-built user experience for +// specific segments of users. See go/chrome-segmentation for more details. +message SegmentationSpecifics { + // The selected segment by the segmentation scheme. + message SegmentSelectionResult { + // The string ID that refers to the segment the user was assigned to, e.g., + // 'highly_engaged_user'. + optional string selected_segment = 1; + + // Expiry time of selection result. Represents time from windows epoch in + // seconds. Expired results are ignored by clients. + optional int64 expiry_time_windows_epoch_seconds = 2; + + // Time when the segmentation data is updated. Used to weigh results by + // recency. Represents time from windows epoch in seconds. + optional int64 last_updated_time_windows_epoch_seconds = 3; + } + + // Metadata about the client device as used by the segmentation platform. + message DeviceMetadata { + // The cache_guid created to identify a sync client on this device. + // Reuses the same Sync guid. + optional string cache_guid = 1; + + enum PlatformType { + PLATFORM_TYPE_UNSPECIFIED = 0; + PLATFORM_WINDOWS = 1; + PLATFORM_MAC = 2; + PLATFORM_LINUX = 3; + PLATFORM_CHROMEOS_ASH = 4; + PLATFORM_ANDROID = 5; + PLATFORM_IOS = 6; + PLATFORM_CHROMEOS_LACROS = 7; + } + + // The OS platform of the device. + optional PlatformType platform_type = 2; + } + + // Model execution data including segment scores and related metadata, e.g., + // model version. + message ModelExecutionData { + // Output of model. + message ModelOutput { + // When outputting multiple scores from a single model, this is the + // segment label for each output. + optional string label = 1; + + // Raw segment scores provided by the ML model or the heuristic model. + // The score is derived based on a combination of UMA histograms, + // user actions or UKM and URLs visited. The score can be treated as a + // probability of the user liking a feature, like feed, or NTP. + optional float score = 2; + + // A rank defined by the segmentation scheme. + optional int32 rank = 3; + } + + // A string ID that identifies a model. + optional string model_id = 1; + + // A model may output one or multiple scores, one score for each segment + // label. + repeated ModelOutput model_outputs = 2; + + // Timestamp when the ML model was executed. + // Represents time from windows epoch in seconds. + optional int64 execution_time_windows_epoch_seconds = 3; + + // Expiry timestamp for the model scores. + // Represents time from windows epoch in seconds. + optional int64 score_expiry_time_windows_epoch_seconds = 4; + + // The version of the ML model that was run. + optional int32 model_version = 5; + } + + // The key used to identify the type of segmentation associated with a + // feature, e.g. 'user_engagement'. + optional string segmentation_key = 1; + + optional SegmentSelectionResult segment_selection_result = 2; + + optional DeviceMetadata device_metadata = 3; + + // One or more model execution data associated with each segment for the + // segmentation key. + repeated ModelExecutionData model_execution_data = 4; +} diff --git a/schema/protobuf/sync_pb/send_tab_to_self_specifics.pb.go b/schema/protobuf/sync_pb/send_tab_to_self_specifics.pb.go index 29a61ac4..da389b35 100644 --- a/schema/protobuf/sync_pb/send_tab_to_self_specifics.pb.go +++ b/schema/protobuf/sync_pb/send_tab_to_self_specifics.pb.go @@ -1,4 +1,4 @@ -// Copyright 2018 The Chromium Authors. All rights reserved. +// Copyright 2018 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // @@ -9,7 +9,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.0 +// protoc-gen-go v1.31.0 // protoc v3.21.1 // source: send_tab_to_self_specifics.proto @@ -172,10 +172,11 @@ var file_send_tab_to_self_specifics_proto_rawDesc = []byte{ 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x69, 0x73, 0x6d, 0x69, 0x73, 0x73, 0x65, 0x64, 0x4a, 0x04, 0x08, 0x06, 0x10, 0x07, 0x52, 0x14, 0x6e, 0x61, 0x76, 0x69, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x75, 0x73, 0x65, 0x63, 0x42, 0x2b, 0x0a, 0x25, 0x6f, 0x72, + 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x75, 0x73, 0x65, 0x63, 0x42, 0x36, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x63, 0x6f, 0x6c, 0x48, 0x03, 0x50, 0x01, + 0x63, 0x6f, 0x6c, 0x48, 0x03, 0x50, 0x01, 0x5a, 0x09, 0x2e, 0x2f, 0x73, 0x79, 0x6e, 0x63, 0x5f, + 0x70, 0x62, } var ( diff --git a/schema/protobuf/sync_pb/send_tab_to_self_specifics.proto b/schema/protobuf/sync_pb/send_tab_to_self_specifics.proto index 67f2c37a..863958d7 100644 --- a/schema/protobuf/sync_pb/send_tab_to_self_specifics.proto +++ b/schema/protobuf/sync_pb/send_tab_to_self_specifics.proto @@ -1,4 +1,4 @@ -// Copyright 2018 The Chromium Authors. All rights reserved. +// Copyright 2018 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // @@ -9,6 +9,8 @@ syntax = "proto2"; +option go_package = "./sync_pb"; + option java_multiple_files = true; option java_package = "org.chromium.components.sync.protocol"; diff --git a/schema/protobuf/sync_pb/session_specifics.pb.go b/schema/protobuf/sync_pb/session_specifics.pb.go index bfd53d5f..22075c32 100644 --- a/schema/protobuf/sync_pb/session_specifics.pb.go +++ b/schema/protobuf/sync_pb/session_specifics.pb.go @@ -1,4 +1,4 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2012 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // @@ -9,7 +9,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.0 +// protoc-gen-go v1.31.0 // protoc v3.21.1 // source: session_specifics.proto @@ -29,66 +29,6 @@ const ( _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) -// Type of the window. -type SessionWindow_BrowserType int32 - -const ( - SessionWindow_TYPE_TABBED SessionWindow_BrowserType = 1 // A normal tabbed window. - SessionWindow_TYPE_POPUP SessionWindow_BrowserType = 2 // A popup window. - SessionWindow_TYPE_CUSTOM_TAB SessionWindow_BrowserType = 3 // A custom tab within an app. Not restored -) - -// Enum value maps for SessionWindow_BrowserType. -var ( - SessionWindow_BrowserType_name = map[int32]string{ - 1: "TYPE_TABBED", - 2: "TYPE_POPUP", - 3: "TYPE_CUSTOM_TAB", - } - SessionWindow_BrowserType_value = map[string]int32{ - "TYPE_TABBED": 1, - "TYPE_POPUP": 2, - "TYPE_CUSTOM_TAB": 3, - } -) - -func (x SessionWindow_BrowserType) Enum() *SessionWindow_BrowserType { - p := new(SessionWindow_BrowserType) - *p = x - return p -} - -func (x SessionWindow_BrowserType) String() string { - return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -} - -func (SessionWindow_BrowserType) Descriptor() protoreflect.EnumDescriptor { - return file_session_specifics_proto_enumTypes[0].Descriptor() -} - -func (SessionWindow_BrowserType) Type() protoreflect.EnumType { - return &file_session_specifics_proto_enumTypes[0] -} - -func (x SessionWindow_BrowserType) Number() protoreflect.EnumNumber { - return protoreflect.EnumNumber(x) -} - -// Deprecated: Do not use. -func (x *SessionWindow_BrowserType) UnmarshalJSON(b []byte) error { - num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) - if err != nil { - return err - } - *x = SessionWindow_BrowserType(num) - return nil -} - -// Deprecated: Use SessionWindow_BrowserType.Descriptor instead. -func (SessionWindow_BrowserType) EnumDescriptor() ([]byte, []int) { - return file_session_specifics_proto_rawDescGZIP(), []int{2, 0} -} - // The type of favicon. For now only normal web favicons are supported. type SessionTab_FaviconType int32 @@ -117,11 +57,11 @@ func (x SessionTab_FaviconType) String() string { } func (SessionTab_FaviconType) Descriptor() protoreflect.EnumDescriptor { - return file_session_specifics_proto_enumTypes[1].Descriptor() + return file_session_specifics_proto_enumTypes[0].Descriptor() } func (SessionTab_FaviconType) Type() protoreflect.EnumType { - return &file_session_specifics_proto_enumTypes[1] + return &file_session_specifics_proto_enumTypes[0] } func (x SessionTab_FaviconType) Number() protoreflect.EnumNumber { @@ -173,11 +113,11 @@ func (x TabNavigation_BlockedState) String() string { } func (TabNavigation_BlockedState) Descriptor() protoreflect.EnumDescriptor { - return file_session_specifics_proto_enumTypes[2].Descriptor() + return file_session_specifics_proto_enumTypes[1].Descriptor() } func (TabNavigation_BlockedState) Type() protoreflect.EnumType { - return &file_session_specifics_proto_enumTypes[2] + return &file_session_specifics_proto_enumTypes[1] } func (x TabNavigation_BlockedState) Number() protoreflect.EnumNumber { @@ -199,65 +139,6 @@ func (TabNavigation_BlockedState) EnumDescriptor() ([]byte, []int) { return file_session_specifics_proto_rawDescGZIP(), []int{4, 0} } -type TabNavigation_PasswordState int32 - -const ( - TabNavigation_PASSWORD_STATE_UNKNOWN TabNavigation_PasswordState = 0 - TabNavigation_NO_PASSWORD_FIELD TabNavigation_PasswordState = 1 - TabNavigation_HAS_PASSWORD_FIELD TabNavigation_PasswordState = 2 -) - -// Enum value maps for TabNavigation_PasswordState. -var ( - TabNavigation_PasswordState_name = map[int32]string{ - 0: "PASSWORD_STATE_UNKNOWN", - 1: "NO_PASSWORD_FIELD", - 2: "HAS_PASSWORD_FIELD", - } - TabNavigation_PasswordState_value = map[string]int32{ - "PASSWORD_STATE_UNKNOWN": 0, - "NO_PASSWORD_FIELD": 1, - "HAS_PASSWORD_FIELD": 2, - } -) - -func (x TabNavigation_PasswordState) Enum() *TabNavigation_PasswordState { - p := new(TabNavigation_PasswordState) - *p = x - return p -} - -func (x TabNavigation_PasswordState) String() string { - return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -} - -func (TabNavigation_PasswordState) Descriptor() protoreflect.EnumDescriptor { - return file_session_specifics_proto_enumTypes[3].Descriptor() -} - -func (TabNavigation_PasswordState) Type() protoreflect.EnumType { - return &file_session_specifics_proto_enumTypes[3] -} - -func (x TabNavigation_PasswordState) Number() protoreflect.EnumNumber { - return protoreflect.EnumNumber(x) -} - -// Deprecated: Do not use. -func (x *TabNavigation_PasswordState) UnmarshalJSON(b []byte) error { - num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) - if err != nil { - return err - } - *x = TabNavigation_PasswordState(num) - return nil -} - -// Deprecated: Use TabNavigation_PasswordState.Descriptor instead. -func (TabNavigation_PasswordState) EnumDescriptor() ([]byte, []int) { - return file_session_specifics_proto_rawDescGZIP(), []int{4, 1} -} - type SessionSpecifics struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -348,7 +229,13 @@ type SessionHeader struct { // A non-unique but human-readable name to describe this client. ClientName *string `protobuf:"bytes,3,opt,name=client_name,json=clientName" json:"client_name,omitempty"` // The type of device. + // Mandatory until M115. Replaced by device_form_factor afterwards, but still + // populated for backward compatibility. + // + // Deprecated: Marked as deprecated in session_specifics.proto. DeviceType *SyncEnums_DeviceType `protobuf:"varint,4,opt,name=device_type,json=deviceType,enum=sync_pb.SyncEnums_DeviceType" json:"device_type,omitempty"` + // The form factor of device. + DeviceFormFactor *SyncEnums_DeviceFormFactor `protobuf:"varint,5,opt,name=device_form_factor,json=deviceFormFactor,enum=sync_pb.SyncEnums_DeviceFormFactor" json:"device_form_factor,omitempty"` } func (x *SessionHeader) Reset() { @@ -397,6 +284,7 @@ func (x *SessionHeader) GetClientName() string { return "" } +// Deprecated: Marked as deprecated in session_specifics.proto. func (x *SessionHeader) GetDeviceType() SyncEnums_DeviceType { if x != nil && x.DeviceType != nil { return *x.DeviceType @@ -404,6 +292,13 @@ func (x *SessionHeader) GetDeviceType() SyncEnums_DeviceType { return SyncEnums_TYPE_UNSET } +func (x *SessionHeader) GetDeviceFormFactor() SyncEnums_DeviceFormFactor { + if x != nil && x.DeviceFormFactor != nil { + return *x.DeviceFormFactor + } + return SyncEnums_DEVICE_FORM_FACTOR_UNSPECIFIED +} + type SessionWindow struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -412,8 +307,9 @@ type SessionWindow struct { // Unique (to the owner) id for this window. WindowId *int32 `protobuf:"varint,1,opt,name=window_id,json=windowId" json:"window_id,omitempty"` // Index of the selected tab in tabs; -1 if no tab is selected. - SelectedTabIndex *int32 `protobuf:"varint,2,opt,name=selected_tab_index,json=selectedTabIndex,def=-1" json:"selected_tab_index,omitempty"` - BrowserType *SessionWindow_BrowserType `protobuf:"varint,3,opt,name=browser_type,json=browserType,enum=sync_pb.SessionWindow_BrowserType,def=1" json:"browser_type,omitempty"` + SelectedTabIndex *int32 `protobuf:"varint,2,opt,name=selected_tab_index,json=selectedTabIndex,def=-1" json:"selected_tab_index,omitempty"` + // Type of the window. + BrowserType *SyncEnums_BrowserType `protobuf:"varint,3,opt,name=browser_type,json=browserType,enum=sync_pb.SyncEnums_BrowserType,def=1" json:"browser_type,omitempty"` // The tabs that compose a window (correspond to tab id's). Tab []int32 `protobuf:"varint,4,rep,name=tab" json:"tab,omitempty"` } @@ -421,7 +317,7 @@ type SessionWindow struct { // Default values for SessionWindow fields. const ( Default_SessionWindow_SelectedTabIndex = int32(-1) - Default_SessionWindow_BrowserType = SessionWindow_TYPE_TABBED + Default_SessionWindow_BrowserType = SyncEnums_TYPE_TABBED ) func (x *SessionWindow) Reset() { @@ -470,7 +366,7 @@ func (x *SessionWindow) GetSelectedTabIndex() int32 { return Default_SessionWindow_SelectedTabIndex } -func (x *SessionWindow) GetBrowserType() SessionWindow_BrowserType { +func (x *SessionWindow) GetBrowserType() SyncEnums_BrowserType { if x != nil && x.BrowserType != nil { return *x.BrowserType } @@ -508,19 +404,19 @@ type SessionTab struct { // The favicon for the current url the tab is displaying. Either empty // or a valid PNG encoded favicon. // - // Deprecated: Do not use. + // Deprecated: Marked as deprecated in session_specifics.proto. Favicon []byte `protobuf:"bytes,8,opt,name=favicon" json:"favicon,omitempty"` - // Deprecated: Do not use. + // Deprecated: Marked as deprecated in session_specifics.proto. FaviconType *SessionTab_FaviconType `protobuf:"varint,9,opt,name=favicon_type,json=faviconType,enum=sync_pb.SessionTab_FaviconType" json:"favicon_type,omitempty"` // The url of the actual favicon (as opposed to the page using the favicon). // - // Deprecated: Do not use. + // Deprecated: Marked as deprecated in session_specifics.proto. FaviconSource *string `protobuf:"bytes,11,opt,name=favicon_source,json=faviconSource" json:"favicon_source,omitempty"` // Ids of the currently assigned variations which should be sent to sync. // - // Deprecated: Do not use. - VariationId []uint64 `protobuf:"varint,12,rep,name=variation_id,json=variationId" json:"variation_id,omitempty"` - BrowserType *SessionWindow_BrowserType `protobuf:"varint,13,opt,name=browser_type,json=browserType,enum=sync_pb.SessionWindow_BrowserType" json:"browser_type,omitempty"` + // Deprecated: Marked as deprecated in session_specifics.proto. + VariationId []uint64 `protobuf:"varint,12,rep,name=variation_id,json=variationId" json:"variation_id,omitempty"` + BrowserType *SyncEnums_BrowserType `protobuf:"varint,13,opt,name=browser_type,json=browserType,enum=sync_pb.SyncEnums_BrowserType" json:"browser_type,omitempty"` } // Default values for SessionTab fields. @@ -612,7 +508,7 @@ func (x *SessionTab) GetNavigation() []*TabNavigation { return nil } -// Deprecated: Do not use. +// Deprecated: Marked as deprecated in session_specifics.proto. func (x *SessionTab) GetFavicon() []byte { if x != nil { return x.Favicon @@ -620,7 +516,7 @@ func (x *SessionTab) GetFavicon() []byte { return nil } -// Deprecated: Do not use. +// Deprecated: Marked as deprecated in session_specifics.proto. func (x *SessionTab) GetFaviconType() SessionTab_FaviconType { if x != nil && x.FaviconType != nil { return *x.FaviconType @@ -628,7 +524,7 @@ func (x *SessionTab) GetFaviconType() SessionTab_FaviconType { return SessionTab_TYPE_WEB_FAVICON } -// Deprecated: Do not use. +// Deprecated: Marked as deprecated in session_specifics.proto. func (x *SessionTab) GetFaviconSource() string { if x != nil && x.FaviconSource != nil { return *x.FaviconSource @@ -636,7 +532,7 @@ func (x *SessionTab) GetFaviconSource() string { return "" } -// Deprecated: Do not use. +// Deprecated: Marked as deprecated in session_specifics.proto. func (x *SessionTab) GetVariationId() []uint64 { if x != nil { return x.VariationId @@ -644,11 +540,11 @@ func (x *SessionTab) GetVariationId() []uint64 { return nil } -func (x *SessionTab) GetBrowserType() SessionWindow_BrowserType { +func (x *SessionTab) GetBrowserType() SyncEnums_BrowserType { if x != nil && x.BrowserType != nil { return *x.BrowserType } - return SessionWindow_TYPE_TABBED + return SyncEnums_BROWSER_TYPE_UNKNOWN } type TabNavigation struct { @@ -656,9 +552,6 @@ type TabNavigation struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The index in the NavigationController. If this is -1, it means this - // TabNavigation is bogus. - // optional int32 index = 1 [default = -1]; // obsolete. // The virtual URL, when nonempty, will override the actual URL of the page // when we display it to the user. VirtualUrl *string `protobuf:"bytes,2,opt,name=virtual_url,json=virtualUrl" json:"virtual_url,omitempty"` @@ -666,10 +559,6 @@ type TabNavigation struct { Referrer *string `protobuf:"bytes,3,opt,name=referrer" json:"referrer,omitempty"` // The title of the page. Title *string `protobuf:"bytes,4,opt,name=title" json:"title,omitempty"` - // Content state is an opaque blob created by WebKit that represents the - // state of the page. This includes form entries and scroll position for each - // frame. - // optional string state = 5; // obsolete. // The core transition type. PageTransition *SyncEnums_PageTransition `protobuf:"varint,6,opt,name=page_transition,json=pageTransition,enum=sync_pb.SyncEnums_PageTransition,def=0" json:"page_transition,omitempty"` // If this transition was triggered by a redirect, the redirect type. @@ -685,16 +574,20 @@ type TabNavigation struct { NavigationFromAddressBar *bool `protobuf:"varint,11,opt,name=navigation_from_address_bar,json=navigationFromAddressBar" json:"navigation_from_address_bar,omitempty"` // User is navigating to the home page. NavigationHomePage *bool `protobuf:"varint,12,opt,name=navigation_home_page,json=navigationHomePage" json:"navigation_home_page,omitempty"` - // The beginning of a navigation chain. + // The start/end of a redirect chain. Deprecated because they were always + // set to false in practice, and don't make sense in the first place - this + // message corresponds to a complete chain. + // + // Deprecated: Marked as deprecated in session_specifics.proto. NavigationChainStart *bool `protobuf:"varint,13,opt,name=navigation_chain_start,json=navigationChainStart" json:"navigation_chain_start,omitempty"` - // The last transition in a redirect chain. + // Deprecated: Marked as deprecated in session_specifics.proto. NavigationChainEnd *bool `protobuf:"varint,14,opt,name=navigation_chain_end,json=navigationChainEnd" json:"navigation_chain_end,omitempty"` // The id for this navigation, which is globally unique with high // probability. GlobalId *int64 `protobuf:"varint,15,opt,name=global_id,json=globalId" json:"global_id,omitempty"` // Search terms extracted from the URL. // - // Deprecated: Do not use. + // Deprecated: Marked as deprecated in session_specifics.proto. SearchTerms *string `protobuf:"bytes,16,opt,name=search_terms,json=searchTerms" json:"search_terms,omitempty"` // The favicon url associated with this page. FaviconUrl *string `protobuf:"bytes,17,opt,name=favicon_url,json=faviconUrl" json:"favicon_url,omitempty"` @@ -704,7 +597,7 @@ type TabNavigation struct { HttpStatusCode *int32 `protobuf:"varint,20,opt,name=http_status_code,json=httpStatusCode" json:"http_status_code,omitempty"` // Referrer policy. Old, broken value. Deprecated in M61. // - // Deprecated: Do not use. + // Deprecated: Marked as deprecated in session_specifics.proto. ObsoleteReferrerPolicy *int32 `protobuf:"varint,21,opt,name=obsolete_referrer_policy,json=obsoleteReferrerPolicy" json:"obsolete_referrer_policy,omitempty"` // True if created from restored navigation entry that hasn't been loaded. IsRestored *bool `protobuf:"varint,22,opt,name=is_restored,json=isRestored" json:"is_restored,omitempty"` @@ -718,7 +611,7 @@ type TabNavigation struct { // third_party/WebKit/public/platform/WebReferrerPolicy.h. CorrectReferrerPolicy *int32 `protobuf:"varint,25,opt,name=correct_referrer_policy,json=correctReferrerPolicy,def=1" json:"correct_referrer_policy,omitempty"` // Whether the Password Manager saw a password field on the page. - PasswordState *TabNavigation_PasswordState `protobuf:"varint,26,opt,name=password_state,json=passwordState,enum=sync_pb.TabNavigation_PasswordState" json:"password_state,omitempty"` + PasswordState *SyncEnums_PasswordState `protobuf:"varint,26,opt,name=password_state,json=passwordState,enum=sync_pb.SyncEnums_PasswordState" json:"password_state,omitempty"` // The id for the task associated with this navigation, which is globally // unique with high probability. // Similar with global_id, but used to identify a navigation in Chrome Tasks, @@ -849,6 +742,7 @@ func (x *TabNavigation) GetNavigationHomePage() bool { return false } +// Deprecated: Marked as deprecated in session_specifics.proto. func (x *TabNavigation) GetNavigationChainStart() bool { if x != nil && x.NavigationChainStart != nil { return *x.NavigationChainStart @@ -856,6 +750,7 @@ func (x *TabNavigation) GetNavigationChainStart() bool { return false } +// Deprecated: Marked as deprecated in session_specifics.proto. func (x *TabNavigation) GetNavigationChainEnd() bool { if x != nil && x.NavigationChainEnd != nil { return *x.NavigationChainEnd @@ -870,7 +765,7 @@ func (x *TabNavigation) GetGlobalId() int64 { return 0 } -// Deprecated: Do not use. +// Deprecated: Marked as deprecated in session_specifics.proto. func (x *TabNavigation) GetSearchTerms() string { if x != nil && x.SearchTerms != nil { return *x.SearchTerms @@ -899,7 +794,7 @@ func (x *TabNavigation) GetHttpStatusCode() int32 { return 0 } -// Deprecated: Do not use. +// Deprecated: Marked as deprecated in session_specifics.proto. func (x *TabNavigation) GetObsoleteReferrerPolicy() int32 { if x != nil && x.ObsoleteReferrerPolicy != nil { return *x.ObsoleteReferrerPolicy @@ -935,11 +830,11 @@ func (x *TabNavigation) GetCorrectReferrerPolicy() int32 { return Default_TabNavigation_CorrectReferrerPolicy } -func (x *TabNavigation) GetPasswordState() TabNavigation_PasswordState { +func (x *TabNavigation) GetPasswordState() SyncEnums_PasswordState { if x != nil && x.PasswordState != nil { return *x.PasswordState } - return TabNavigation_PASSWORD_STATE_UNKNOWN + return SyncEnums_PASSWORD_STATE_UNKNOWN } func (x *TabNavigation) GetTaskId() int64 { @@ -1102,188 +997,185 @@ var file_session_specifics_proto_rawDesc = []byte{ 0x62, 0x2e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x62, 0x52, 0x03, 0x74, 0x61, 0x62, 0x12, 0x22, 0x0a, 0x0b, 0x74, 0x61, 0x62, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x02, 0x2d, 0x31, 0x52, 0x09, 0x74, 0x61, 0x62, 0x4e, - 0x6f, 0x64, 0x65, 0x49, 0x64, 0x22, 0xa0, 0x01, 0x0a, 0x0d, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6f, 0x64, 0x65, 0x49, 0x64, 0x22, 0xf7, 0x01, 0x0a, 0x0d, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x2e, 0x0a, 0x06, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x52, 0x06, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6c, - 0x69, 0x65, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3e, 0x0a, 0x0b, 0x64, 0x65, 0x76, 0x69, + 0x69, 0x65, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x42, 0x0a, 0x0b, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x45, 0x6e, 0x75, 0x6d, - 0x73, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x64, 0x65, - 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x89, 0x02, 0x0a, 0x0d, 0x53, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x12, 0x1b, 0x0a, 0x09, 0x77, 0x69, - 0x6e, 0x64, 0x6f, 0x77, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x77, - 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x49, 0x64, 0x12, 0x30, 0x0a, 0x12, 0x73, 0x65, 0x6c, 0x65, 0x63, - 0x74, 0x65, 0x64, 0x5f, 0x74, 0x61, 0x62, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x05, 0x3a, 0x02, 0x2d, 0x31, 0x52, 0x10, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, - 0x64, 0x54, 0x61, 0x62, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x52, 0x0a, 0x0c, 0x62, 0x72, 0x6f, - 0x77, 0x73, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x22, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x42, 0x72, 0x6f, 0x77, 0x73, 0x65, 0x72, 0x54, - 0x79, 0x70, 0x65, 0x3a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x54, 0x41, 0x42, 0x42, 0x45, 0x44, - 0x52, 0x0b, 0x62, 0x72, 0x6f, 0x77, 0x73, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, - 0x03, 0x74, 0x61, 0x62, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, 0x03, 0x74, 0x61, 0x62, 0x22, - 0x43, 0x0a, 0x0b, 0x42, 0x72, 0x6f, 0x77, 0x73, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0f, - 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x54, 0x41, 0x42, 0x42, 0x45, 0x44, 0x10, 0x01, 0x12, - 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x4f, 0x50, 0x55, 0x50, 0x10, 0x02, 0x12, - 0x13, 0x0a, 0x0f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x5f, 0x54, - 0x41, 0x42, 0x10, 0x03, 0x22, 0xd5, 0x04, 0x0a, 0x0a, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x54, 0x61, 0x62, 0x12, 0x19, 0x0a, 0x06, 0x74, 0x61, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x05, 0x3a, 0x02, 0x2d, 0x31, 0x52, 0x05, 0x74, 0x61, 0x62, 0x49, 0x64, 0x12, 0x1b, - 0x0a, 0x09, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x08, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x10, 0x74, - 0x61, 0x62, 0x5f, 0x76, 0x69, 0x73, 0x75, 0x61, 0x6c, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x02, 0x2d, 0x31, 0x52, 0x0e, 0x74, 0x61, 0x62, 0x56, 0x69, - 0x73, 0x75, 0x61, 0x6c, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x3c, 0x0a, 0x18, 0x63, 0x75, 0x72, - 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x76, 0x69, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x02, 0x2d, 0x31, 0x52, - 0x16, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x4e, 0x61, 0x76, 0x69, 0x67, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1d, 0x0a, 0x06, 0x70, 0x69, 0x6e, 0x6e, 0x65, - 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x06, - 0x70, 0x69, 0x6e, 0x6e, 0x65, 0x64, 0x12, 0x28, 0x0a, 0x10, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, - 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x70, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x70, 0x70, 0x49, 0x64, - 0x12, 0x36, 0x0a, 0x0a, 0x6e, 0x61, 0x76, 0x69, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x54, - 0x61, 0x62, 0x4e, 0x61, 0x76, 0x69, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x6e, 0x61, - 0x76, 0x69, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x07, 0x66, 0x61, 0x76, 0x69, - 0x63, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x02, 0x18, 0x01, 0x52, 0x07, 0x66, - 0x61, 0x76, 0x69, 0x63, 0x6f, 0x6e, 0x12, 0x46, 0x0a, 0x0c, 0x66, 0x61, 0x76, 0x69, 0x63, 0x6f, - 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x73, - 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x61, - 0x62, 0x2e, 0x46, 0x61, 0x76, 0x69, 0x63, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x42, 0x02, 0x18, - 0x01, 0x52, 0x0b, 0x66, 0x61, 0x76, 0x69, 0x63, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x29, - 0x0a, 0x0e, 0x66, 0x61, 0x76, 0x69, 0x63, 0x6f, 0x6e, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0d, 0x66, 0x61, 0x76, 0x69, - 0x63, 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x25, 0x0a, 0x0c, 0x76, 0x61, 0x72, - 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x04, 0x42, - 0x02, 0x18, 0x01, 0x52, 0x0b, 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, - 0x12, 0x45, 0x0a, 0x0c, 0x62, 0x72, 0x6f, 0x77, 0x73, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, - 0x2e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x42, - 0x72, 0x6f, 0x77, 0x73, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x62, 0x72, 0x6f, 0x77, - 0x73, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x23, 0x0a, 0x0b, 0x46, 0x61, 0x76, 0x69, 0x63, - 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x57, - 0x45, 0x42, 0x5f, 0x46, 0x41, 0x56, 0x49, 0x43, 0x4f, 0x4e, 0x10, 0x01, 0x22, 0xa2, 0x0c, 0x0a, - 0x0d, 0x54, 0x61, 0x62, 0x4e, 0x61, 0x76, 0x69, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1f, - 0x0a, 0x0b, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0a, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x55, 0x72, 0x6c, 0x12, - 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x74, - 0x69, 0x74, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, - 0x65, 0x12, 0x50, 0x0a, 0x0f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x73, 0x79, 0x6e, - 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x45, 0x6e, 0x75, 0x6d, 0x73, 0x2e, 0x50, - 0x61, 0x67, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x04, 0x4c, - 0x49, 0x4e, 0x4b, 0x52, 0x0e, 0x70, 0x61, 0x67, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x52, 0x0a, 0x0d, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x5f, - 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x73, 0x79, 0x6e, - 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x45, 0x6e, 0x75, 0x6d, 0x73, 0x2e, 0x50, - 0x61, 0x67, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x64, - 0x69, 0x72, 0x65, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0c, 0x72, 0x65, 0x64, 0x69, 0x72, - 0x65, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x75, 0x6e, 0x69, 0x71, 0x75, - 0x65, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x75, 0x6e, 0x69, 0x71, - 0x75, 0x65, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, - 0x70, 0x5f, 0x6d, 0x73, 0x65, 0x63, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x74, 0x69, - 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x4d, 0x73, 0x65, 0x63, 0x12, 0x36, 0x0a, 0x17, 0x6e, - 0x61, 0x76, 0x69, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, - 0x64, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x6e, 0x61, - 0x76, 0x69, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x42, - 0x61, 0x63, 0x6b, 0x12, 0x3d, 0x0a, 0x1b, 0x6e, 0x61, 0x76, 0x69, 0x67, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x62, - 0x61, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x18, 0x6e, 0x61, 0x76, 0x69, 0x67, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x72, 0x6f, 0x6d, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, - 0x61, 0x72, 0x12, 0x30, 0x0a, 0x14, 0x6e, 0x61, 0x76, 0x69, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x68, 0x6f, 0x6d, 0x65, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x12, 0x6e, 0x61, 0x76, 0x69, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x6f, 0x6d, 0x65, - 0x50, 0x61, 0x67, 0x65, 0x12, 0x34, 0x0a, 0x16, 0x6e, 0x61, 0x76, 0x69, 0x67, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x0d, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x6e, 0x61, 0x76, 0x69, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x43, 0x68, 0x61, 0x69, 0x6e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x30, 0x0a, 0x14, 0x6e, 0x61, - 0x76, 0x69, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x65, - 0x6e, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x6e, 0x61, 0x76, 0x69, 0x67, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x45, 0x6e, 0x64, 0x12, 0x1b, 0x0a, 0x09, - 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x08, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0c, 0x73, 0x65, 0x61, - 0x72, 0x63, 0x68, 0x5f, 0x74, 0x65, 0x72, 0x6d, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x02, 0x18, 0x01, 0x52, 0x0b, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x54, 0x65, 0x72, 0x6d, 0x73, - 0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x61, 0x76, 0x69, 0x63, 0x6f, 0x6e, 0x5f, 0x75, 0x72, 0x6c, 0x18, - 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x61, 0x76, 0x69, 0x63, 0x6f, 0x6e, 0x55, 0x72, - 0x6c, 0x12, 0x57, 0x0a, 0x0d, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x73, 0x74, 0x61, - 0x74, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, - 0x70, 0x62, 0x2e, 0x54, 0x61, 0x62, 0x4e, 0x61, 0x76, 0x69, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x3a, 0x0d, 0x53, - 0x54, 0x41, 0x54, 0x45, 0x5f, 0x41, 0x4c, 0x4c, 0x4f, 0x57, 0x45, 0x44, 0x52, 0x0c, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x68, 0x74, - 0x74, 0x70, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x14, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x68, 0x74, 0x74, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x43, 0x6f, 0x64, 0x65, 0x12, 0x3c, 0x0a, 0x18, 0x6f, 0x62, 0x73, 0x6f, 0x6c, 0x65, 0x74, 0x65, - 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, - 0x18, 0x15, 0x20, 0x01, 0x28, 0x05, 0x42, 0x02, 0x18, 0x01, 0x52, 0x16, 0x6f, 0x62, 0x73, 0x6f, - 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, 0x72, 0x50, 0x6f, 0x6c, 0x69, - 0x63, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x73, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, - 0x64, 0x18, 0x16, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x69, 0x73, 0x52, 0x65, 0x73, 0x74, 0x6f, - 0x72, 0x65, 0x64, 0x12, 0x4c, 0x0a, 0x13, 0x6e, 0x61, 0x76, 0x69, 0x67, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x18, 0x17, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x1b, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x4e, 0x61, 0x76, 0x69, 0x67, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x52, 0x12, 0x6e, + 0x73, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x42, 0x02, 0x18, 0x01, + 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x51, 0x0a, 0x12, + 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x5f, 0x66, 0x61, 0x63, 0x74, + 0x6f, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, + 0x70, 0x62, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x45, 0x6e, 0x75, 0x6d, 0x73, 0x2e, 0x44, 0x65, 0x76, + 0x69, 0x63, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x10, 0x64, + 0x65, 0x76, 0x69, 0x63, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x22, + 0xc0, 0x01, 0x0a, 0x0d, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x57, 0x69, 0x6e, 0x64, 0x6f, + 0x77, 0x12, 0x1b, 0x0a, 0x09, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x49, 0x64, 0x12, 0x30, + 0x0a, 0x12, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x74, 0x61, 0x62, 0x5f, 0x69, + 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x02, 0x2d, 0x31, 0x52, 0x10, + 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x54, 0x61, 0x62, 0x49, 0x6e, 0x64, 0x65, 0x78, + 0x12, 0x4e, 0x0a, 0x0c, 0x62, 0x72, 0x6f, 0x77, 0x73, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, + 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x45, 0x6e, 0x75, 0x6d, 0x73, 0x2e, 0x42, 0x72, 0x6f, 0x77, 0x73, + 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x3a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x54, 0x41, 0x42, + 0x42, 0x45, 0x44, 0x52, 0x0b, 0x62, 0x72, 0x6f, 0x77, 0x73, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x10, 0x0a, 0x03, 0x74, 0x61, 0x62, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, 0x03, 0x74, + 0x61, 0x62, 0x22, 0xd1, 0x04, 0x0a, 0x0a, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x61, + 0x62, 0x12, 0x19, 0x0a, 0x06, 0x74, 0x61, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x3a, 0x02, 0x2d, 0x31, 0x52, 0x05, 0x74, 0x61, 0x62, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, + 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x08, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x10, 0x74, 0x61, 0x62, + 0x5f, 0x76, 0x69, 0x73, 0x75, 0x61, 0x6c, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x05, 0x3a, 0x02, 0x2d, 0x31, 0x52, 0x0e, 0x74, 0x61, 0x62, 0x56, 0x69, 0x73, 0x75, + 0x61, 0x6c, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x3c, 0x0a, 0x18, 0x63, 0x75, 0x72, 0x72, 0x65, + 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x76, 0x69, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, + 0x64, 0x65, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x02, 0x2d, 0x31, 0x52, 0x16, 0x63, + 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x4e, 0x61, 0x76, 0x69, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1d, 0x0a, 0x06, 0x70, 0x69, 0x6e, 0x6e, 0x65, 0x64, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x06, 0x70, 0x69, + 0x6e, 0x6e, 0x65, 0x64, 0x12, 0x28, 0x0a, 0x10, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, + 0x6e, 0x5f, 0x61, 0x70, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, + 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x70, 0x70, 0x49, 0x64, 0x12, 0x36, + 0x0a, 0x0a, 0x6e, 0x61, 0x76, 0x69, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x54, 0x61, 0x62, + 0x4e, 0x61, 0x76, 0x69, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x6e, 0x61, 0x76, 0x69, + 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x07, 0x66, 0x61, 0x76, 0x69, 0x63, 0x6f, + 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x02, 0x18, 0x01, 0x52, 0x07, 0x66, 0x61, 0x76, + 0x69, 0x63, 0x6f, 0x6e, 0x12, 0x46, 0x0a, 0x0c, 0x66, 0x61, 0x76, 0x69, 0x63, 0x6f, 0x6e, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x73, 0x79, 0x6e, + 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x62, 0x2e, + 0x46, 0x61, 0x76, 0x69, 0x63, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x42, 0x02, 0x18, 0x01, 0x52, + 0x0b, 0x66, 0x61, 0x76, 0x69, 0x63, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x29, 0x0a, 0x0e, + 0x66, 0x61, 0x76, 0x69, 0x63, 0x6f, 0x6e, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x0b, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0d, 0x66, 0x61, 0x76, 0x69, 0x63, 0x6f, + 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x25, 0x0a, 0x0c, 0x76, 0x61, 0x72, 0x69, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x04, 0x42, 0x02, 0x18, + 0x01, 0x52, 0x0b, 0x76, 0x61, 0x72, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x41, + 0x0a, 0x0c, 0x62, 0x72, 0x6f, 0x77, 0x73, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0d, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x53, + 0x79, 0x6e, 0x63, 0x45, 0x6e, 0x75, 0x6d, 0x73, 0x2e, 0x42, 0x72, 0x6f, 0x77, 0x73, 0x65, 0x72, + 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x62, 0x72, 0x6f, 0x77, 0x73, 0x65, 0x72, 0x54, 0x79, 0x70, + 0x65, 0x22, 0x23, 0x0a, 0x0b, 0x46, 0x61, 0x76, 0x69, 0x63, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x14, 0x0a, 0x10, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x57, 0x45, 0x42, 0x5f, 0x46, 0x41, 0x56, + 0x49, 0x43, 0x4f, 0x4e, 0x10, 0x01, 0x22, 0xe4, 0x0b, 0x0a, 0x0d, 0x54, 0x61, 0x62, 0x4e, 0x61, + 0x76, 0x69, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x76, 0x69, 0x72, 0x74, + 0x75, 0x61, 0x6c, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x76, + 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x55, 0x72, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x66, + 0x65, 0x72, 0x72, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x66, + 0x65, 0x72, 0x72, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x50, 0x0a, 0x0f, 0x70, + 0x61, 0x67, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x53, + 0x79, 0x6e, 0x63, 0x45, 0x6e, 0x75, 0x6d, 0x73, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x54, 0x72, 0x61, + 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x04, 0x4c, 0x49, 0x4e, 0x4b, 0x52, 0x0e, 0x70, + 0x61, 0x67, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x52, 0x0a, + 0x0d, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x53, + 0x79, 0x6e, 0x63, 0x45, 0x6e, 0x75, 0x6d, 0x73, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x54, 0x72, 0x61, + 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x54, + 0x79, 0x70, 0x65, 0x52, 0x0c, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49, 0x64, 0x12, 0x25, + 0x0a, 0x0e, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x6d, 0x73, 0x65, 0x63, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x4d, 0x73, 0x65, 0x63, 0x12, 0x36, 0x0a, 0x17, 0x6e, 0x61, 0x76, 0x69, 0x67, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x5f, 0x62, 0x61, 0x63, 0x6b, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x6e, 0x61, 0x76, 0x69, 0x67, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x42, 0x61, 0x63, 0x6b, 0x12, 0x3d, 0x0a, + 0x1b, 0x6e, 0x61, 0x76, 0x69, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x72, 0x6f, 0x6d, + 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x62, 0x61, 0x72, 0x18, 0x0b, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x18, 0x6e, 0x61, 0x76, 0x69, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x72, + 0x6f, 0x6d, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x61, 0x72, 0x12, 0x30, 0x0a, 0x14, + 0x6e, 0x61, 0x76, 0x69, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x68, 0x6f, 0x6d, 0x65, 0x5f, + 0x70, 0x61, 0x67, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x6e, 0x61, 0x76, 0x69, + 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x6f, 0x6d, 0x65, 0x50, 0x61, 0x67, 0x65, 0x12, 0x38, + 0x0a, 0x16, 0x6e, 0x61, 0x76, 0x69, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x68, 0x61, + 0x69, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x42, 0x02, + 0x18, 0x01, 0x52, 0x14, 0x6e, 0x61, 0x76, 0x69, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x68, + 0x61, 0x69, 0x6e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x34, 0x0a, 0x14, 0x6e, 0x61, 0x76, 0x69, + 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x5f, 0x65, 0x6e, 0x64, + 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x42, 0x02, 0x18, 0x01, 0x52, 0x12, 0x6e, 0x61, 0x76, 0x69, + 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x45, 0x6e, 0x64, 0x12, 0x1b, + 0x0a, 0x09, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x08, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0c, 0x73, + 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x74, 0x65, 0x72, 0x6d, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0b, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x54, 0x65, 0x72, + 0x6d, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x61, 0x76, 0x69, 0x63, 0x6f, 0x6e, 0x5f, 0x75, 0x72, + 0x6c, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x61, 0x76, 0x69, 0x63, 0x6f, 0x6e, + 0x55, 0x72, 0x6c, 0x12, 0x57, 0x0a, 0x0d, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x73, + 0x74, 0x61, 0x74, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x73, 0x79, 0x6e, + 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x54, 0x61, 0x62, 0x4e, 0x61, 0x76, 0x69, 0x67, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x3a, + 0x0d, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x41, 0x4c, 0x4c, 0x4f, 0x57, 0x45, 0x44, 0x52, 0x0c, + 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x28, 0x0a, 0x10, + 0x68, 0x74, 0x74, 0x70, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x63, 0x6f, 0x64, 0x65, + 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x68, 0x74, 0x74, 0x70, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x3c, 0x0a, 0x18, 0x6f, 0x62, 0x73, 0x6f, 0x6c, 0x65, + 0x74, 0x65, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x6c, 0x69, + 0x63, 0x79, 0x18, 0x15, 0x20, 0x01, 0x28, 0x05, 0x42, 0x02, 0x18, 0x01, 0x52, 0x16, 0x6f, 0x62, + 0x73, 0x6f, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, 0x72, 0x50, 0x6f, + 0x6c, 0x69, 0x63, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x73, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x6f, + 0x72, 0x65, 0x64, 0x18, 0x16, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x69, 0x73, 0x52, 0x65, 0x73, + 0x74, 0x6f, 0x72, 0x65, 0x64, 0x12, 0x4c, 0x0a, 0x13, 0x6e, 0x61, 0x76, 0x69, 0x67, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x18, 0x17, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x4e, 0x61, 0x76, + 0x69, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x52, + 0x12, 0x6e, 0x61, 0x76, 0x69, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x64, 0x69, 0x72, + 0x65, 0x63, 0x74, 0x12, 0x3f, 0x0a, 0x1c, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x6e, 0x61, 0x76, 0x69, + 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x5f, + 0x75, 0x72, 0x6c, 0x18, 0x18, 0x20, 0x01, 0x28, 0x09, 0x52, 0x19, 0x6c, 0x61, 0x73, 0x74, 0x4e, 0x61, 0x76, 0x69, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, - 0x74, 0x12, 0x3f, 0x0a, 0x1c, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x6e, 0x61, 0x76, 0x69, 0x67, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x5f, 0x75, 0x72, - 0x6c, 0x18, 0x18, 0x20, 0x01, 0x28, 0x09, 0x52, 0x19, 0x6c, 0x61, 0x73, 0x74, 0x4e, 0x61, 0x76, - 0x69, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x55, - 0x72, 0x6c, 0x12, 0x39, 0x0a, 0x17, 0x63, 0x6f, 0x72, 0x72, 0x65, 0x63, 0x74, 0x5f, 0x72, 0x65, - 0x66, 0x65, 0x72, 0x72, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x19, 0x20, - 0x01, 0x28, 0x05, 0x3a, 0x01, 0x31, 0x52, 0x15, 0x63, 0x6f, 0x72, 0x72, 0x65, 0x63, 0x74, 0x52, - 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, 0x72, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x4b, 0x0a, - 0x0e, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, - 0x1a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, - 0x54, 0x61, 0x62, 0x4e, 0x61, 0x76, 0x69, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x50, 0x61, - 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0d, 0x70, 0x61, 0x73, - 0x73, 0x77, 0x6f, 0x72, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x61, - 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x74, 0x61, 0x73, - 0x6b, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x10, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x5f, - 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x1c, 0x20, 0x03, 0x28, 0x03, 0x52, 0x0e, 0x61, - 0x6e, 0x63, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x4c, 0x0a, - 0x13, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x64, 0x5f, 0x6e, 0x61, 0x76, 0x69, 0x67, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x79, 0x6e, - 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x64, 0x4e, 0x61, 0x76, - 0x69, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x12, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, - 0x64, 0x4e, 0x61, 0x76, 0x69, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x70, - 0x61, 0x67, 0x65, 0x5f, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x1e, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0c, 0x70, 0x61, 0x67, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, - 0x22, 0x34, 0x0a, 0x0c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x12, 0x11, 0x0a, 0x0d, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x41, 0x4c, 0x4c, 0x4f, 0x57, 0x45, - 0x44, 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x42, 0x4c, 0x4f, - 0x43, 0x4b, 0x45, 0x44, 0x10, 0x02, 0x22, 0x5a, 0x0a, 0x0d, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, - 0x72, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x16, 0x50, 0x41, 0x53, 0x53, 0x57, - 0x4f, 0x52, 0x44, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, - 0x4e, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x4e, 0x4f, 0x5f, 0x50, 0x41, 0x53, 0x53, 0x57, 0x4f, - 0x52, 0x44, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x48, 0x41, - 0x53, 0x5f, 0x50, 0x41, 0x53, 0x53, 0x57, 0x4f, 0x52, 0x44, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, - 0x10, 0x02, 0x4a, 0x04, 0x08, 0x13, 0x10, 0x14, 0x52, 0x17, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, - 0x74, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x5f, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x65, - 0x73, 0x22, 0x26, 0x0a, 0x12, 0x4e, 0x61, 0x76, 0x69, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x22, 0xcd, 0x01, 0x0a, 0x12, 0x52, 0x65, - 0x70, 0x6c, 0x61, 0x63, 0x65, 0x64, 0x4e, 0x61, 0x76, 0x69, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x2e, 0x0a, 0x13, 0x66, 0x69, 0x72, 0x73, 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, - 0x74, 0x65, 0x64, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x66, - 0x69, 0x72, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x64, 0x55, 0x72, 0x6c, - 0x12, 0x30, 0x0a, 0x14, 0x66, 0x69, 0x72, 0x73, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, - 0x61, 0x6d, 0x70, 0x5f, 0x6d, 0x73, 0x65, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, - 0x66, 0x69, 0x72, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x4d, 0x73, - 0x65, 0x63, 0x12, 0x55, 0x0a, 0x15, 0x66, 0x69, 0x72, 0x73, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, - 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x21, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x53, 0x79, 0x6e, 0x63, - 0x45, 0x6e, 0x75, 0x6d, 0x73, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x66, 0x69, 0x72, 0x73, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, - 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x2b, 0x0a, 0x25, 0x6f, 0x72, 0x67, - 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, - 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6c, 0x48, 0x03, 0x50, 0x01, + 0x74, 0x55, 0x72, 0x6c, 0x12, 0x39, 0x0a, 0x17, 0x63, 0x6f, 0x72, 0x72, 0x65, 0x63, 0x74, 0x5f, + 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, + 0x19, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x01, 0x31, 0x52, 0x15, 0x63, 0x6f, 0x72, 0x72, 0x65, 0x63, + 0x74, 0x52, 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, 0x72, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, + 0x47, 0x0a, 0x0e, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x5f, 0x73, 0x74, 0x61, 0x74, + 0x65, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, + 0x62, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x45, 0x6e, 0x75, 0x6d, 0x73, 0x2e, 0x50, 0x61, 0x73, 0x73, + 0x77, 0x6f, 0x72, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0d, 0x70, 0x61, 0x73, 0x73, 0x77, + 0x6f, 0x72, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, + 0x5f, 0x69, 0x64, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, + 0x64, 0x12, 0x28, 0x0a, 0x10, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x5f, 0x74, 0x61, + 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x1c, 0x20, 0x03, 0x28, 0x03, 0x52, 0x0e, 0x61, 0x6e, 0x63, + 0x65, 0x73, 0x74, 0x6f, 0x72, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x4c, 0x0a, 0x13, 0x72, + 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x64, 0x5f, 0x6e, 0x61, 0x76, 0x69, 0x67, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, + 0x70, 0x62, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x64, 0x4e, 0x61, 0x76, 0x69, 0x67, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x12, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x64, 0x4e, + 0x61, 0x76, 0x69, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x61, 0x67, + 0x65, 0x5f, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0c, 0x70, 0x61, 0x67, 0x65, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x22, 0x34, + 0x0a, 0x0c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x11, + 0x0a, 0x0d, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x41, 0x4c, 0x4c, 0x4f, 0x57, 0x45, 0x44, 0x10, + 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, + 0x45, 0x44, 0x10, 0x02, 0x4a, 0x04, 0x08, 0x13, 0x10, 0x14, 0x4a, 0x04, 0x08, 0x01, 0x10, 0x02, + 0x4a, 0x04, 0x08, 0x05, 0x10, 0x06, 0x52, 0x17, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, + 0x70, 0x61, 0x63, 0x6b, 0x5f, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x52, + 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0x26, 0x0a, + 0x12, 0x4e, 0x61, 0x76, 0x69, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x64, 0x69, 0x72, + 0x65, 0x63, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x75, 0x72, 0x6c, 0x22, 0xcd, 0x01, 0x0a, 0x12, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x63, + 0x65, 0x64, 0x4e, 0x61, 0x76, 0x69, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2e, 0x0a, 0x13, + 0x66, 0x69, 0x72, 0x73, 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x64, 0x5f, + 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x66, 0x69, 0x72, 0x73, 0x74, + 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x64, 0x55, 0x72, 0x6c, 0x12, 0x30, 0x0a, 0x14, + 0x66, 0x69, 0x72, 0x73, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, + 0x6d, 0x73, 0x65, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x66, 0x69, 0x72, 0x73, + 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x4d, 0x73, 0x65, 0x63, 0x12, 0x55, + 0x0a, 0x15, 0x66, 0x69, 0x72, 0x73, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, + 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x45, 0x6e, 0x75, 0x6d, + 0x73, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x13, 0x66, 0x69, 0x72, 0x73, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x36, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, 0x72, + 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, + 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x03, + 0x50, 0x01, 0x5a, 0x09, 0x2e, 0x2f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, } var ( @@ -1298,45 +1190,47 @@ func file_session_specifics_proto_rawDescGZIP() []byte { return file_session_specifics_proto_rawDescData } -var file_session_specifics_proto_enumTypes = make([]protoimpl.EnumInfo, 4) +var file_session_specifics_proto_enumTypes = make([]protoimpl.EnumInfo, 2) var file_session_specifics_proto_msgTypes = make([]protoimpl.MessageInfo, 7) var file_session_specifics_proto_goTypes = []interface{}{ - (SessionWindow_BrowserType)(0), // 0: sync_pb.SessionWindow.BrowserType - (SessionTab_FaviconType)(0), // 1: sync_pb.SessionTab.FaviconType - (TabNavigation_BlockedState)(0), // 2: sync_pb.TabNavigation.BlockedState - (TabNavigation_PasswordState)(0), // 3: sync_pb.TabNavigation.PasswordState - (*SessionSpecifics)(nil), // 4: sync_pb.SessionSpecifics - (*SessionHeader)(nil), // 5: sync_pb.SessionHeader - (*SessionWindow)(nil), // 6: sync_pb.SessionWindow - (*SessionTab)(nil), // 7: sync_pb.SessionTab - (*TabNavigation)(nil), // 8: sync_pb.TabNavigation - (*NavigationRedirect)(nil), // 9: sync_pb.NavigationRedirect - (*ReplacedNavigation)(nil), // 10: sync_pb.ReplacedNavigation - (SyncEnums_DeviceType)(0), // 11: sync_pb.SyncEnums.DeviceType + (SessionTab_FaviconType)(0), // 0: sync_pb.SessionTab.FaviconType + (TabNavigation_BlockedState)(0), // 1: sync_pb.TabNavigation.BlockedState + (*SessionSpecifics)(nil), // 2: sync_pb.SessionSpecifics + (*SessionHeader)(nil), // 3: sync_pb.SessionHeader + (*SessionWindow)(nil), // 4: sync_pb.SessionWindow + (*SessionTab)(nil), // 5: sync_pb.SessionTab + (*TabNavigation)(nil), // 6: sync_pb.TabNavigation + (*NavigationRedirect)(nil), // 7: sync_pb.NavigationRedirect + (*ReplacedNavigation)(nil), // 8: sync_pb.ReplacedNavigation + (SyncEnums_DeviceType)(0), // 9: sync_pb.SyncEnums.DeviceType + (SyncEnums_DeviceFormFactor)(0), // 10: sync_pb.SyncEnums.DeviceFormFactor + (SyncEnums_BrowserType)(0), // 11: sync_pb.SyncEnums.BrowserType (SyncEnums_PageTransition)(0), // 12: sync_pb.SyncEnums.PageTransition (SyncEnums_PageTransitionRedirectType)(0), // 13: sync_pb.SyncEnums.PageTransitionRedirectType + (SyncEnums_PasswordState)(0), // 14: sync_pb.SyncEnums.PasswordState } var file_session_specifics_proto_depIdxs = []int32{ - 5, // 0: sync_pb.SessionSpecifics.header:type_name -> sync_pb.SessionHeader - 7, // 1: sync_pb.SessionSpecifics.tab:type_name -> sync_pb.SessionTab - 6, // 2: sync_pb.SessionHeader.window:type_name -> sync_pb.SessionWindow - 11, // 3: sync_pb.SessionHeader.device_type:type_name -> sync_pb.SyncEnums.DeviceType - 0, // 4: sync_pb.SessionWindow.browser_type:type_name -> sync_pb.SessionWindow.BrowserType - 8, // 5: sync_pb.SessionTab.navigation:type_name -> sync_pb.TabNavigation - 1, // 6: sync_pb.SessionTab.favicon_type:type_name -> sync_pb.SessionTab.FaviconType - 0, // 7: sync_pb.SessionTab.browser_type:type_name -> sync_pb.SessionWindow.BrowserType - 12, // 8: sync_pb.TabNavigation.page_transition:type_name -> sync_pb.SyncEnums.PageTransition - 13, // 9: sync_pb.TabNavigation.redirect_type:type_name -> sync_pb.SyncEnums.PageTransitionRedirectType - 2, // 10: sync_pb.TabNavigation.blocked_state:type_name -> sync_pb.TabNavigation.BlockedState - 9, // 11: sync_pb.TabNavigation.navigation_redirect:type_name -> sync_pb.NavigationRedirect - 3, // 12: sync_pb.TabNavigation.password_state:type_name -> sync_pb.TabNavigation.PasswordState - 10, // 13: sync_pb.TabNavigation.replaced_navigation:type_name -> sync_pb.ReplacedNavigation - 12, // 14: sync_pb.ReplacedNavigation.first_page_transition:type_name -> sync_pb.SyncEnums.PageTransition - 15, // [15:15] is the sub-list for method output_type - 15, // [15:15] is the sub-list for method input_type - 15, // [15:15] is the sub-list for extension type_name - 15, // [15:15] is the sub-list for extension extendee - 0, // [0:15] is the sub-list for field type_name + 3, // 0: sync_pb.SessionSpecifics.header:type_name -> sync_pb.SessionHeader + 5, // 1: sync_pb.SessionSpecifics.tab:type_name -> sync_pb.SessionTab + 4, // 2: sync_pb.SessionHeader.window:type_name -> sync_pb.SessionWindow + 9, // 3: sync_pb.SessionHeader.device_type:type_name -> sync_pb.SyncEnums.DeviceType + 10, // 4: sync_pb.SessionHeader.device_form_factor:type_name -> sync_pb.SyncEnums.DeviceFormFactor + 11, // 5: sync_pb.SessionWindow.browser_type:type_name -> sync_pb.SyncEnums.BrowserType + 6, // 6: sync_pb.SessionTab.navigation:type_name -> sync_pb.TabNavigation + 0, // 7: sync_pb.SessionTab.favicon_type:type_name -> sync_pb.SessionTab.FaviconType + 11, // 8: sync_pb.SessionTab.browser_type:type_name -> sync_pb.SyncEnums.BrowserType + 12, // 9: sync_pb.TabNavigation.page_transition:type_name -> sync_pb.SyncEnums.PageTransition + 13, // 10: sync_pb.TabNavigation.redirect_type:type_name -> sync_pb.SyncEnums.PageTransitionRedirectType + 1, // 11: sync_pb.TabNavigation.blocked_state:type_name -> sync_pb.TabNavigation.BlockedState + 7, // 12: sync_pb.TabNavigation.navigation_redirect:type_name -> sync_pb.NavigationRedirect + 14, // 13: sync_pb.TabNavigation.password_state:type_name -> sync_pb.SyncEnums.PasswordState + 8, // 14: sync_pb.TabNavigation.replaced_navigation:type_name -> sync_pb.ReplacedNavigation + 12, // 15: sync_pb.ReplacedNavigation.first_page_transition:type_name -> sync_pb.SyncEnums.PageTransition + 16, // [16:16] is the sub-list for method output_type + 16, // [16:16] is the sub-list for method input_type + 16, // [16:16] is the sub-list for extension type_name + 16, // [16:16] is the sub-list for extension extendee + 0, // [0:16] is the sub-list for field type_name } func init() { file_session_specifics_proto_init() } @@ -1436,7 +1330,7 @@ func file_session_specifics_proto_init() { File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_session_specifics_proto_rawDesc, - NumEnums: 4, + NumEnums: 2, NumMessages: 7, NumExtensions: 0, NumServices: 0, diff --git a/schema/protobuf/sync_pb/session_specifics.proto b/schema/protobuf/sync_pb/session_specifics.proto index 65a0a585..876d9469 100644 --- a/schema/protobuf/sync_pb/session_specifics.proto +++ b/schema/protobuf/sync_pb/session_specifics.proto @@ -1,4 +1,4 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2012 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // @@ -9,6 +9,8 @@ syntax = "proto2"; +option go_package = "./sync_pb"; + option java_multiple_files = true; option java_package = "org.chromium.components.sync.protocol"; @@ -36,7 +38,11 @@ message SessionHeader { // A non-unique but human-readable name to describe this client. optional string client_name = 3; // The type of device. - optional SyncEnums.DeviceType device_type = 4; + // Mandatory until M115. Replaced by device_form_factor afterwards, but still + // populated for backward compatibility. + optional SyncEnums.DeviceType device_type = 4 [deprecated = true]; + // The form factor of device. + optional SyncEnums.DeviceFormFactor device_form_factor = 5; } message SessionWindow { @@ -45,13 +51,7 @@ message SessionWindow { // Index of the selected tab in tabs; -1 if no tab is selected. optional int32 selected_tab_index = 2 [default = -1]; // Type of the window. - enum BrowserType { - TYPE_TABBED = 1; // A normal tabbed window. - TYPE_POPUP = 2; // A popup window. - TYPE_CUSTOM_TAB = 3; // A custom tab within an app. Not restored - // automatically on sync startup. - } - optional BrowserType browser_type = 3 [default = TYPE_TABBED]; + optional SyncEnums.BrowserType browser_type = 3 [default = TYPE_TABBED]; // The tabs that compose a window (correspond to tab id's). repeated int32 tab = 4; } @@ -85,13 +85,10 @@ message SessionTab { // Ids of the currently assigned variations which should be sent to sync. repeated uint64 variation_id = 12 [deprecated = true]; - optional SessionWindow.BrowserType browser_type = 13; + optional SyncEnums.BrowserType browser_type = 13; } message TabNavigation { - // The index in the NavigationController. If this is -1, it means this - // TabNavigation is bogus. - // optional int32 index = 1 [default = -1]; // obsolete. // The virtual URL, when nonempty, will override the actual URL of the page // when we display it to the user. optional string virtual_url = 2; @@ -99,10 +96,6 @@ message TabNavigation { optional string referrer = 3; // The title of the page. optional string title = 4; - // Content state is an opaque blob created by WebKit that represents the - // state of the page. This includes form entries and scroll position for each - // frame. - // optional string state = 5; // obsolete. // The core transition type. optional SyncEnums.PageTransition page_transition = 6 [default = LINK]; // If this transition was triggered by a redirect, the redirect type. @@ -118,10 +111,11 @@ message TabNavigation { optional bool navigation_from_address_bar = 11; // User is navigating to the home page. optional bool navigation_home_page = 12; - // The beginning of a navigation chain. - optional bool navigation_chain_start = 13; - // The last transition in a redirect chain. - optional bool navigation_chain_end = 14; + // The start/end of a redirect chain. Deprecated because they were always + // set to false in practice, and don't make sense in the first place - this + // message corresponds to a complete chain. + optional bool navigation_chain_start = 13 [deprecated = true]; + optional bool navigation_chain_end = 14 [deprecated = true]; // The id for this navigation, which is globally unique with high // probability. optional int64 global_id = 15; @@ -154,13 +148,8 @@ message TabNavigation { // third_party/WebKit/public/platform/WebReferrerPolicy.h. optional int32 correct_referrer_policy = 25 [default = 1]; - enum PasswordState { - PASSWORD_STATE_UNKNOWN = 0; - NO_PASSWORD_FIELD = 1; - HAS_PASSWORD_FIELD = 2; - } // Whether the Password Manager saw a password field on the page. - optional PasswordState password_state = 26; + optional SyncEnums.PasswordState password_state = 26; // The id for the task associated with this navigation, which is globally // unique with high probability. @@ -183,6 +172,11 @@ message TabNavigation { // The page language as determined by its textual content. An ISO 639 language // code (two letters, except for Chinese where a localization is necessary). optional string page_language = 30; + + reserved 1; + reserved "index"; + reserved 5; + reserved "state"; } // Navigation information for a single redirection within a single navigation. diff --git a/schema/protobuf/sync_pb/sharing_message_specifics.pb.go b/schema/protobuf/sync_pb/sharing_message_specifics.pb.go index 89b36525..8f02f94e 100644 --- a/schema/protobuf/sync_pb/sharing_message_specifics.pb.go +++ b/schema/protobuf/sync_pb/sharing_message_specifics.pb.go @@ -1,4 +1,4 @@ -// Copyright 2020 The Chromium Authors. All rights reserved. +// Copyright 2020 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // @@ -9,7 +9,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.0 +// protoc-gen-go v1.31.0 // protoc v3.21.1 // source: sharing_message_specifics.proto @@ -252,6 +252,7 @@ type SharingMessageSpecifics_ChannelConfiguration struct { unknownFields protoimpl.UnknownFields // Types that are assignable to ChannelConfiguration: + // // *SharingMessageSpecifics_ChannelConfiguration_Fcm // *SharingMessageSpecifics_ChannelConfiguration_Server ChannelConfiguration isSharingMessageSpecifics_ChannelConfiguration_ChannelConfiguration `protobuf_oneof:"channel_configuration"` @@ -458,10 +459,11 @@ var file_sharing_message_specifics_proto_rawDesc = []byte{ 0x59, 0x4e, 0x43, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x10, 0x0b, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x59, 0x4e, 0x43, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x0c, 0x12, 0x13, 0x0a, 0x0f, 0x53, 0x59, 0x4e, 0x43, 0x5f, 0x41, 0x55, 0x54, - 0x48, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x0d, 0x42, 0x2b, 0x0a, 0x25, 0x6f, 0x72, 0x67, + 0x48, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x0d, 0x42, 0x36, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6c, 0x48, 0x03, 0x50, 0x01, + 0x6f, 0x6c, 0x48, 0x03, 0x50, 0x01, 0x5a, 0x09, 0x2e, 0x2f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, + 0x62, } var ( diff --git a/schema/protobuf/sync_pb/sharing_message_specifics.proto b/schema/protobuf/sync_pb/sharing_message_specifics.proto index 21252e10..95e8b1e0 100644 --- a/schema/protobuf/sync_pb/sharing_message_specifics.proto +++ b/schema/protobuf/sync_pb/sharing_message_specifics.proto @@ -1,4 +1,4 @@ -// Copyright 2020 The Chromium Authors. All rights reserved. +// Copyright 2020 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // @@ -9,6 +9,8 @@ syntax = "proto2"; +option go_package = "./sync_pb"; + option java_multiple_files = true; option java_package = "org.chromium.components.sync.protocol"; diff --git a/schema/protobuf/sync_pb/sync.pb.go b/schema/protobuf/sync_pb/sync.pb.go index 44b83e89..eebfb45a 100644 --- a/schema/protobuf/sync_pb/sync.pb.go +++ b/schema/protobuf/sync_pb/sync.pb.go @@ -1,4 +1,4 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2012 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // @@ -10,7 +10,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.0 +// protoc-gen-go v1.31.0 // protoc v3.21.1 // source: sync.proto @@ -247,7 +247,13 @@ type ClientConfigParams struct { // Indicates that the client is not aware of any other active clients // interested in the committed data types. This flag shows that it is not // necessary to send invalidations for the committed data. A client is - // considered active if it's DeviceInfo has updated recent enough. + // considered active if it's DeviceInfo has updated recent enough. This flag + // does not take into account whether standalone invalidations are enabled (as + // opposed to |single_client_with_standalone_invalidations|). However, it's + // set depending on interested data types of other devices, e.g. if there are + // other devices but they are not interested in SESSION data type, and current + // commit request contains only SESSION, it will be set to true. + // Introduced in M88. SingleClient *bool `protobuf:"varint,4,opt,name=single_client,json=singleClient" json:"single_client,omitempty"` // A list of FCM registration tokens which are obtained from other clients. // This list is used by the server to send invalidations to all other clients. @@ -258,10 +264,50 @@ type ClientConfigParams struct { // 2. There are too many active devices and the list would have too many // items. // 3. An empty list could also mean that the current client is the only - // client. This case should be covered by the |single_client| field instead - // (otherwise it could be mixed up with older clients). The server doesn't - // have to use this field and can ignore it. + // client. This case should be covered by the + // |single_client_with_standalone_invalidations| field instead (otherwise it + // could be mixed up with older clients). The server doesn't have to use this + // field and can ignore it. Note that this list does not take into account + // interested data types from the other clients. + // Introduced in M89. DevicesFcmRegistrationTokens []string `protobuf:"bytes,5,rep,name=devices_fcm_registration_tokens,json=devicesFcmRegistrationTokens" json:"devices_fcm_registration_tokens,omitempty"` + // Similar to |single_client| but takes into account only clients with enabled + // sync standalone invalidations. When set to true, there are no other clients + // with sync standalone invalidations interested in the committing types and + // hence it's not necessary to send out standalone invalidations (it may still + // be necessary to send out invalidations using the legacy system, see + // |single_client| instead). + // Introduced in M105. + SingleClientWithStandaloneInvalidations *bool `protobuf:"varint,6,opt,name=single_client_with_standalone_invalidations,json=singleClientWithStandaloneInvalidations" json:"single_client_with_standalone_invalidations,omitempty"` + // Similar to |devices_fcm_registration_tokens| but takes into account clients + // which are subscribed to the data types which are committed in current + // commit request. + // A list of FCM registration tokens which are obtained from other clients. + // This list is used by the server to send invalidations to all other clients. + // If the list is empty, the server should treat this as "there is no + // information about other clients". In practice, this happens by the next + // causes: + // 1. This is the old client which doesn't set this field. + // 2. There are too many active devices and the list would have too many + // items. + // 3. An empty list could also mean that the current client is the only + // client. This case should be covered by the + // |single_client_with_standalone_invalidations| field instead (otherwise it + // could be mixed up with older clients). The server doesn't have to use this + // field and can ignore it. + // Introduced in M105. + FcmRegistrationTokensForInterestedClients []string `protobuf:"bytes,7,rep,name=fcm_registration_tokens_for_interested_clients,json=fcmRegistrationTokensForInterestedClients" json:"fcm_registration_tokens_for_interested_clients,omitempty"` + // Similar to |single_client| but takes into account only clients which are + // subscribed to old invalidations (i.e. not subscribed to sync standalone + // invalidations). When set to true, there are no other clients subscribed to + // old invalidations. Note that opposed to |single_client|, this flag does not + // always take into account the list of interested data types (because + // interested data types were introduced in M89). When the list is empty, a + // client is considered to be subscribed to all data types. Note that "single + // client" is a bit misleading since this will also be true if there are no + // clients with old invalidations at all. + // Introduced in M110. + SingleClientWithOldInvalidations *bool `protobuf:"varint,8,opt,name=single_client_with_old_invalidations,json=singleClientWithOldInvalidations" json:"single_client_with_old_invalidations,omitempty"` } func (x *ClientConfigParams) Reset() { @@ -331,6 +377,27 @@ func (x *ClientConfigParams) GetDevicesFcmRegistrationTokens() []string { return nil } +func (x *ClientConfigParams) GetSingleClientWithStandaloneInvalidations() bool { + if x != nil && x.SingleClientWithStandaloneInvalidations != nil { + return *x.SingleClientWithStandaloneInvalidations + } + return false +} + +func (x *ClientConfigParams) GetFcmRegistrationTokensForInterestedClients() []string { + if x != nil { + return x.FcmRegistrationTokensForInterestedClients + } + return nil +} + +func (x *ClientConfigParams) GetSingleClientWithOldInvalidations() bool { + if x != nil && x.SingleClientWithOldInvalidations != nil { + return *x.SingleClientWithOldInvalidations + } + return false +} + type CommitMessage struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -445,10 +512,6 @@ type GetUpdatesMessage struct { CallerInfo *GetUpdatesCallerInfo `protobuf:"bytes,2,opt,name=caller_info,json=callerInfo" json:"caller_info,omitempty"` // Indicates whether related folders should be fetched. FetchFolders *bool `protobuf:"varint,3,opt,name=fetch_folders,json=fetchFolders,def=1" json:"fetch_folders,omitempty"` - // Client-requested limit on the maximum number of updates to return at once. - // The server may opt to return fewer updates than this amount, but it should - // not return more. - BatchSize *int32 `protobuf:"varint,5,opt,name=batch_size,json=batchSize" json:"batch_size,omitempty"` // Per-datatype progress marker. // // With the exception of certain configuration or initial sync requests, the @@ -469,11 +532,6 @@ type GetUpdatesMessage struct { // The allowed frequency for requesting encryption keys is much lower than // other datatypes, so repeated usage will likely result in throttling. NeedEncryptionKey *bool `protobuf:"varint,8,opt,name=need_encryption_key,json=needEncryptionKey,def=0" json:"need_encryption_key,omitempty"` - // Whether to create the mobile bookmarks folder if it's not - // already created. Set to true by all modern clients. - // - // Deprecated: Do not use. - CreateMobileBookmarksFolder *bool `protobuf:"varint,1000,opt,name=create_mobile_bookmarks_folder,json=createMobileBookmarksFolder,def=0" json:"create_mobile_bookmarks_folder,omitempty"` // This value is an updated version of the GetUpdatesCallerInfo's // GetUpdatesSource. It describes the reason for the GetUpdate request. // Introduced in M29. @@ -487,11 +545,10 @@ type GetUpdatesMessage struct { // Default values for GetUpdatesMessage fields. const ( - Default_GetUpdatesMessage_FetchFolders = bool(true) - Default_GetUpdatesMessage_Streaming = bool(false) - Default_GetUpdatesMessage_NeedEncryptionKey = bool(false) - Default_GetUpdatesMessage_CreateMobileBookmarksFolder = bool(false) - Default_GetUpdatesMessage_IsRetry = bool(false) + Default_GetUpdatesMessage_FetchFolders = bool(true) + Default_GetUpdatesMessage_Streaming = bool(false) + Default_GetUpdatesMessage_NeedEncryptionKey = bool(false) + Default_GetUpdatesMessage_IsRetry = bool(false) ) func (x *GetUpdatesMessage) Reset() { @@ -540,13 +597,6 @@ func (x *GetUpdatesMessage) GetFetchFolders() bool { return Default_GetUpdatesMessage_FetchFolders } -func (x *GetUpdatesMessage) GetBatchSize() int32 { - if x != nil && x.BatchSize != nil { - return *x.BatchSize - } - return 0 -} - func (x *GetUpdatesMessage) GetFromProgressMarker() []*DataTypeProgressMarker { if x != nil { return x.FromProgressMarker @@ -568,14 +618,6 @@ func (x *GetUpdatesMessage) GetNeedEncryptionKey() bool { return Default_GetUpdatesMessage_NeedEncryptionKey } -// Deprecated: Do not use. -func (x *GetUpdatesMessage) GetCreateMobileBookmarksFolder() bool { - if x != nil && x.CreateMobileBookmarksFolder != nil { - return *x.CreateMobileBookmarksFolder - } - return Default_GetUpdatesMessage_CreateMobileBookmarksFolder -} - func (x *GetUpdatesMessage) GetGetUpdatesOrigin() SyncEnums_GetUpdatesOrigin { if x != nil && x.GetUpdatesOrigin != nil { return *x.GetUpdatesOrigin @@ -597,7 +639,9 @@ func (x *GetUpdatesMessage) GetClientContexts() []*DataTypeContext { return nil } -// Message from a client asking the server to clear its data. +// Message from a client asking the server to clear its data. This causes the +// server to generate a new store birthday, which allows dealing reliably with +// in-flight requests (in particular commits) from other clients. type ClearServerDataMessage struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -752,7 +796,7 @@ type ClientStatus struct { // amount of time. // TODO(crbug.com/1315573): Deprecated in M103. // - // Deprecated: Do not use. + // Deprecated: Marked as deprecated in sync.proto. HierarchyConflictDetected *bool `protobuf:"varint,1,opt,name=hierarchy_conflict_detected,json=hierarchyConflictDetected" json:"hierarchy_conflict_detected,omitempty"` // Whether the client has full sync (or, sync the feature) enabled or not. IsSyncFeatureEnabled *bool `protobuf:"varint,2,opt,name=is_sync_feature_enabled,json=isSyncFeatureEnabled" json:"is_sync_feature_enabled,omitempty"` @@ -790,7 +834,7 @@ func (*ClientStatus) Descriptor() ([]byte, []int) { return file_sync_proto_rawDescGZIP(), []int{7} } -// Deprecated: Do not use. +// Deprecated: Marked as deprecated in sync.proto. func (x *ClientStatus) GetHierarchyConflictDetected() bool { if x != nil && x.HierarchyConflictDetected != nil { return *x.HierarchyConflictDetected @@ -1442,7 +1486,7 @@ type CommitResponse_EntryResponse struct { // server to override the client-supplied mtime during a commit operation. // TODO(crbug.com/1182252): Delete this field too. // - // Deprecated: Do not use. + // Deprecated: Marked as deprecated in sync.proto. Mtime *int64 `protobuf:"varint,10,opt,name=mtime" json:"mtime,omitempty"` // Datatype specific error (if any). DatatypeSpecificError *CommitResponse_EntryResponse_DatatypeSpecificError `protobuf:"bytes,11,opt,name=datatype_specific_error,json=datatypeSpecificError" json:"datatype_specific_error,omitempty"` @@ -1508,7 +1552,7 @@ func (x *CommitResponse_EntryResponse) GetErrorMessage() string { return "" } -// Deprecated: Do not use. +// Deprecated: Marked as deprecated in sync.proto. func (x *CommitResponse_EntryResponse) GetMtime() int64 { if x != nil && x.Mtime != nil { return *x.Mtime @@ -1529,6 +1573,7 @@ type CommitResponse_EntryResponse_DatatypeSpecificError struct { unknownFields protoimpl.UnknownFields // Types that are assignable to DatatypeError: + // // *CommitResponse_EntryResponse_DatatypeSpecificError_SharingMessageError DatatypeError isCommitResponse_EntryResponse_DatatypeSpecificError_DatatypeError `protobuf_oneof:"datatype_error"` } @@ -1696,7 +1741,7 @@ var file_sync_proto_rawDesc = []byte{ 0x5f, 0x73, 0x69, 0x6e, 0x63, 0x65, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x1d, 0x62, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x57, 0x72, 0x69, 0x74, 0x65, 0x73, 0x53, 0x69, 0x6e, 0x63, 0x65, 0x4c, 0x61, 0x73, - 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x22, 0x8e, 0x02, 0x0a, 0x12, 0x43, 0x6c, 0x69, 0x65, + 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x22, 0x9f, 0x04, 0x0a, 0x12, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x28, 0x0a, 0x10, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0e, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, @@ -1713,281 +1758,292 @@ var file_sync_proto_rawDesc = []byte{ 0x5f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x1c, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x46, 0x63, 0x6d, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0xd2, 0x02, 0x0a, 0x0d, 0x43, 0x6f, 0x6d, - 0x6d, 0x69, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x2d, 0x0a, 0x07, 0x65, 0x6e, - 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x79, - 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, - 0x52, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x61, 0x63, - 0x68, 0x65, 0x5f, 0x67, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, - 0x61, 0x63, 0x68, 0x65, 0x47, 0x75, 0x69, 0x64, 0x12, 0x54, 0x0a, 0x13, 0x65, 0x78, 0x74, 0x65, - 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, - 0x43, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, - 0x6e, 0x73, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x52, 0x12, 0x65, 0x78, 0x74, 0x65, - 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x12, 0x40, - 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, - 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, - 0x12, 0x41, 0x0a, 0x0f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, - 0x78, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x73, 0x79, 0x6e, 0x63, - 0x5f, 0x70, 0x62, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x6e, 0x74, - 0x65, 0x78, 0x74, 0x52, 0x0e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, - 0x78, 0x74, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x22, 0x82, 0x05, - 0x0a, 0x11, 0x47, 0x65, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x4d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x12, 0x3e, 0x0a, 0x0b, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x5f, 0x69, 0x6e, - 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, - 0x70, 0x62, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x43, 0x61, 0x6c, - 0x6c, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x49, - 0x6e, 0x66, 0x6f, 0x12, 0x29, 0x0a, 0x0d, 0x66, 0x65, 0x74, 0x63, 0x68, 0x5f, 0x66, 0x6f, 0x6c, - 0x64, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x04, 0x74, 0x72, 0x75, 0x65, - 0x52, 0x0c, 0x66, 0x65, 0x74, 0x63, 0x68, 0x46, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x73, 0x12, 0x1d, - 0x0a, 0x0a, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x09, 0x62, 0x61, 0x74, 0x63, 0x68, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x51, 0x0a, - 0x14, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x6d, - 0x61, 0x72, 0x6b, 0x65, 0x72, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x79, - 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x50, 0x72, - 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x52, 0x12, 0x66, 0x72, - 0x6f, 0x6d, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x72, - 0x12, 0x23, 0x0a, 0x09, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x09, 0x73, 0x74, 0x72, 0x65, - 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x12, 0x35, 0x0a, 0x13, 0x6e, 0x65, 0x65, 0x64, 0x5f, 0x65, 0x6e, - 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x11, 0x6e, 0x65, 0x65, 0x64, 0x45, - 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x12, 0x4f, 0x0a, 0x1e, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x5f, 0x62, 0x6f, - 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x5f, 0x66, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x18, 0xe8, - 0x07, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x42, 0x02, 0x18, 0x01, - 0x52, 0x1b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x42, 0x6f, - 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x46, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x12, 0x51, 0x0a, - 0x12, 0x67, 0x65, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x5f, 0x6f, 0x72, 0x69, - 0x67, 0x69, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x73, 0x79, 0x6e, 0x63, - 0x5f, 0x70, 0x62, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x45, 0x6e, 0x75, 0x6d, 0x73, 0x2e, 0x47, 0x65, - 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x52, 0x10, - 0x67, 0x65, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, - 0x12, 0x20, 0x0a, 0x08, 0x69, 0x73, 0x5f, 0x72, 0x65, 0x74, 0x72, 0x79, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x07, 0x69, 0x73, 0x52, 0x65, 0x74, - 0x72, 0x79, 0x12, 0x41, 0x0a, 0x0f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x6f, 0x6e, - 0x74, 0x65, 0x78, 0x74, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x73, 0x79, - 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, - 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x0e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, - 0x74, 0x65, 0x78, 0x74, 0x73, 0x4a, 0x04, 0x08, 0x01, 0x10, 0x02, 0x4a, 0x04, 0x08, 0x04, 0x10, - 0x05, 0x52, 0x0e, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, - 0x70, 0x52, 0x0f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x74, 0x79, 0x70, - 0x65, 0x73, 0x22, 0x47, 0x0a, 0x16, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x53, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x44, 0x61, 0x74, 0x61, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x2d, 0x0a, 0x12, - 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x63, 0x68, 0x61, - 0x69, 0x6e, 0x18, 0xe8, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x64, 0x69, 0x73, 0x61, 0x62, - 0x6c, 0x65, 0x53, 0x79, 0x6e, 0x63, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x22, 0x19, 0x0a, 0x17, 0x43, - 0x6c, 0x65, 0x61, 0x72, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2c, 0x0a, 0x07, 0x43, 0x68, 0x69, 0x70, 0x42, 0x61, - 0x67, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x63, 0x68, 0x69, 0x70, - 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, - 0x68, 0x69, 0x70, 0x73, 0x22, 0x89, 0x01, 0x0a, 0x0c, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x42, 0x0a, 0x1b, 0x68, 0x69, 0x65, 0x72, 0x61, 0x72, 0x63, - 0x68, 0x79, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x5f, 0x64, 0x65, 0x74, 0x65, - 0x63, 0x74, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x42, 0x02, 0x18, 0x01, 0x52, 0x19, - 0x68, 0x69, 0x65, 0x72, 0x61, 0x72, 0x63, 0x68, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, - 0x74, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x12, 0x35, 0x0a, 0x17, 0x69, 0x73, 0x5f, - 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x65, 0x6e, 0x61, - 0x62, 0x6c, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x69, 0x73, 0x53, 0x79, - 0x6e, 0x63, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, - 0x22, 0xba, 0x06, 0x0a, 0x15, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x53, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x68, - 0x61, 0x72, 0x65, 0x18, 0x01, 0x20, 0x02, 0x28, 0x09, 0x52, 0x05, 0x73, 0x68, 0x61, 0x72, 0x65, - 0x12, 0x2d, 0x0a, 0x10, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x02, 0x39, 0x39, 0x52, 0x0f, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, - 0x52, 0x0a, 0x10, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, - 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x02, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x73, 0x79, 0x6e, 0x63, - 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x53, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, - 0x74, 0x73, 0x52, 0x0f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, - 0x6e, 0x74, 0x73, 0x12, 0x2e, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x6f, - 0x6d, 0x6d, 0x69, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x06, 0x63, 0x6f, 0x6d, - 0x6d, 0x69, 0x74, 0x12, 0x3b, 0x0a, 0x0b, 0x67, 0x65, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, - 0x70, 0x62, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x4d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x52, 0x0a, 0x67, 0x65, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, - 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x5f, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, - 0x61, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x42, - 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x12, 0x39, 0x0a, 0x15, 0x73, 0x79, 0x6e, 0x63, 0x5f, - 0x70, 0x72, 0x6f, 0x62, 0x6c, 0x65, 0x6d, 0x5f, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x13, 0x73, - 0x79, 0x6e, 0x63, 0x50, 0x72, 0x6f, 0x62, 0x6c, 0x65, 0x6d, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, - 0x65, 0x64, 0x12, 0x31, 0x0a, 0x0a, 0x64, 0x65, 0x62, 0x75, 0x67, 0x5f, 0x69, 0x6e, 0x66, 0x6f, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, - 0x2e, 0x44, 0x65, 0x62, 0x75, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x64, 0x65, 0x62, 0x75, - 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x32, 0x0a, 0x0c, 0x62, 0x61, 0x67, 0x5f, 0x6f, 0x66, 0x5f, - 0x63, 0x68, 0x69, 0x70, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x73, 0x79, - 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x68, 0x69, 0x70, 0x42, 0x61, 0x67, 0x52, 0x0a, 0x62, - 0x61, 0x67, 0x4f, 0x66, 0x43, 0x68, 0x69, 0x70, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x61, 0x70, 0x69, - 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x70, 0x69, 0x4b, - 0x65, 0x79, 0x12, 0x3a, 0x0a, 0x0d, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x79, 0x6e, 0x63, - 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x52, 0x0c, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x32, - 0x0a, 0x15, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x63, 0x6c, - 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x69, - 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, - 0x49, 0x64, 0x12, 0x4b, 0x0a, 0x11, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x5f, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, - 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x53, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0f, - 0x63, 0x6c, 0x65, 0x61, 0x72, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x22, - 0x62, 0x0a, 0x08, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x0a, 0x0a, 0x06, 0x43, - 0x4f, 0x4d, 0x4d, 0x49, 0x54, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x47, 0x45, 0x54, 0x5f, 0x55, - 0x50, 0x44, 0x41, 0x54, 0x45, 0x53, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x44, 0x45, 0x50, 0x52, - 0x45, 0x43, 0x41, 0x54, 0x45, 0x44, 0x5f, 0x33, 0x10, 0x03, 0x12, 0x10, 0x0a, 0x0c, 0x44, 0x45, - 0x50, 0x52, 0x45, 0x43, 0x41, 0x54, 0x45, 0x44, 0x5f, 0x34, 0x10, 0x04, 0x12, 0x15, 0x0a, 0x11, - 0x43, 0x4c, 0x45, 0x41, 0x52, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x44, 0x41, 0x54, - 0x41, 0x10, 0x05, 0x4a, 0x04, 0x08, 0x06, 0x10, 0x07, 0x4a, 0x04, 0x08, 0x09, 0x10, 0x0a, 0x52, - 0x0c, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x22, 0xf0, 0x05, - 0x0a, 0x0e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x4b, 0x0a, 0x0d, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0a, 0x32, 0x25, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, - 0x62, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x2e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0d, - 0x65, 0x6e, 0x74, 0x72, 0x79, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x1a, 0xa0, 0x04, - 0x0a, 0x0d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x49, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x02, 0x20, 0x02, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, - 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0c, 0x72, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x64, - 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, - 0x64, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x18, 0x0a, 0x05, 0x6d, 0x74, 0x69, 0x6d, 0x65, 0x18, - 0x0a, 0x20, 0x01, 0x28, 0x03, 0x42, 0x02, 0x18, 0x01, 0x52, 0x05, 0x6d, 0x74, 0x69, 0x6d, 0x65, - 0x12, 0x73, 0x0a, 0x17, 0x64, 0x61, 0x74, 0x61, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x63, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x3b, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, - 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x74, 0x79, 0x70, - 0x65, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x15, - 0x64, 0x61, 0x74, 0x61, 0x74, 0x79, 0x70, 0x65, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, - 0x45, 0x72, 0x72, 0x6f, 0x72, 0x1a, 0x83, 0x01, 0x0a, 0x15, 0x44, 0x61, 0x74, 0x61, 0x74, 0x79, - 0x70, 0x65, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, - 0x58, 0x0a, 0x15, 0x73, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, - 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, - 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x45, 0x72, 0x72, - 0x6f, 0x72, 0x48, 0x00, 0x52, 0x13, 0x73, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x4d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x42, 0x10, 0x0a, 0x0e, 0x64, 0x61, 0x74, - 0x61, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4a, 0x04, 0x08, 0x04, 0x10, - 0x05, 0x4a, 0x04, 0x08, 0x05, 0x10, 0x06, 0x4a, 0x04, 0x08, 0x07, 0x10, 0x08, 0x4a, 0x04, 0x08, - 0x08, 0x10, 0x09, 0x52, 0x10, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x5f, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x12, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x69, 0x6e, 0x5f, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x52, - 0x0f, 0x6e, 0x6f, 0x6e, 0x5f, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x22, 0x6e, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, 0x01, 0x12, 0x0c, 0x0a, - 0x08, 0x43, 0x4f, 0x4e, 0x46, 0x4c, 0x49, 0x43, 0x54, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x52, - 0x45, 0x54, 0x52, 0x59, 0x10, 0x03, 0x12, 0x13, 0x0a, 0x0f, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, - 0x44, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x04, 0x12, 0x0e, 0x0a, 0x0a, 0x4f, - 0x56, 0x45, 0x52, 0x5f, 0x51, 0x55, 0x4f, 0x54, 0x41, 0x10, 0x05, 0x12, 0x13, 0x0a, 0x0f, 0x54, - 0x52, 0x41, 0x4e, 0x53, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x06, - 0x22, 0xde, 0x02, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2d, 0x0a, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, - 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, - 0x70, 0x62, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x07, 0x65, - 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x73, 0x5f, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x10, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x52, 0x65, 0x6d, 0x61, 0x69, 0x6e, - 0x69, 0x6e, 0x67, 0x12, 0x4f, 0x0a, 0x13, 0x6e, 0x65, 0x77, 0x5f, 0x70, 0x72, 0x6f, 0x67, 0x72, - 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x1f, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x54, - 0x79, 0x70, 0x65, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x4d, 0x61, 0x72, 0x6b, 0x65, - 0x72, 0x52, 0x11, 0x6e, 0x65, 0x77, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x4d, 0x61, - 0x72, 0x6b, 0x65, 0x72, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0e, 0x65, - 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x45, 0x0a, - 0x11, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x6d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, - 0x70, 0x62, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, - 0x78, 0x74, 0x52, 0x10, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x4d, 0x75, 0x74, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x4a, 0x04, 0x08, 0x02, 0x10, 0x03, 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04, - 0x52, 0x0d, 0x6e, 0x65, 0x77, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, - 0x10, 0x6e, 0x65, 0x77, 0x65, 0x73, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, - 0x70, 0x22, 0xa5, 0x07, 0x0a, 0x16, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x53, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2f, 0x0a, 0x06, - 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, - 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x3c, 0x0a, - 0x0b, 0x67, 0x65, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x47, 0x65, 0x74, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, - 0x0a, 0x67, 0x65, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x0a, 0x65, - 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x6f, 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x12, 0x5c, 0x0a, 0x2b, 0x73, 0x69, 0x6e, 0x67, + 0x6c, 0x65, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x73, + 0x74, 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x5f, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, + 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x27, 0x73, + 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x57, 0x69, 0x74, 0x68, 0x53, + 0x74, 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x6f, 0x6e, 0x65, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x61, 0x0a, 0x2e, 0x66, 0x63, 0x6d, 0x5f, 0x72, 0x65, + 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, + 0x73, 0x5f, 0x66, 0x6f, 0x72, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, 0x65, 0x64, + 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x29, + 0x66, 0x63, 0x6d, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x46, 0x6f, 0x72, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x73, 0x74, + 0x65, 0x64, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x4e, 0x0a, 0x24, 0x73, 0x69, 0x6e, + 0x67, 0x6c, 0x65, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, + 0x6f, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x43, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x57, 0x69, 0x74, 0x68, 0x4f, 0x6c, 0x64, 0x49, 0x6e, 0x76, 0x61, + 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xd2, 0x02, 0x0a, 0x0d, 0x43, 0x6f, + 0x6d, 0x6d, 0x69, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x2d, 0x0a, 0x07, 0x65, + 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, + 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x45, 0x6e, 0x74, 0x69, 0x74, + 0x79, 0x52, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x61, + 0x63, 0x68, 0x65, 0x5f, 0x67, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x63, 0x61, 0x63, 0x68, 0x65, 0x47, 0x75, 0x69, 0x64, 0x12, 0x54, 0x0a, 0x13, 0x65, 0x78, 0x74, + 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, + 0x2e, 0x43, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, + 0x6f, 0x6e, 0x73, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x52, 0x12, 0x65, 0x78, 0x74, + 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x12, + 0x40, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, + 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x73, 0x12, 0x41, 0x0a, 0x0f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x74, + 0x65, 0x78, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x73, 0x79, 0x6e, + 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x6e, + 0x74, 0x65, 0x78, 0x74, 0x52, 0x0e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x74, + 0x65, 0x78, 0x74, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x22, 0xcc, + 0x04, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x12, 0x3e, 0x0a, 0x0b, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x5f, 0x69, + 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x73, 0x79, 0x6e, 0x63, + 0x5f, 0x70, 0x62, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x43, 0x61, + 0x6c, 0x6c, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x72, + 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x29, 0x0a, 0x0d, 0x66, 0x65, 0x74, 0x63, 0x68, 0x5f, 0x66, 0x6f, + 0x6c, 0x64, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x04, 0x74, 0x72, 0x75, + 0x65, 0x52, 0x0c, 0x66, 0x65, 0x74, 0x63, 0x68, 0x46, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x73, 0x12, + 0x51, 0x0a, 0x14, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, + 0x5f, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, + 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, + 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x52, 0x12, + 0x66, 0x72, 0x6f, 0x6d, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x4d, 0x61, 0x72, 0x6b, + 0x65, 0x72, 0x12, 0x23, 0x0a, 0x09, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x09, 0x73, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x12, 0x35, 0x0a, 0x13, 0x6e, 0x65, 0x65, 0x64, 0x5f, + 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x11, 0x6e, 0x65, 0x65, + 0x64, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x12, 0x51, + 0x0a, 0x12, 0x67, 0x65, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x5f, 0x6f, 0x72, + 0x69, 0x67, 0x69, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x73, 0x79, 0x6e, + 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x45, 0x6e, 0x75, 0x6d, 0x73, 0x2e, 0x47, + 0x65, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x52, + 0x10, 0x67, 0x65, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x4f, 0x72, 0x69, 0x67, 0x69, + 0x6e, 0x12, 0x20, 0x0a, 0x08, 0x69, 0x73, 0x5f, 0x72, 0x65, 0x74, 0x72, 0x79, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x07, 0x69, 0x73, 0x52, 0x65, + 0x74, 0x72, 0x79, 0x12, 0x41, 0x0a, 0x0f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x6f, + 0x6e, 0x74, 0x65, 0x78, 0x74, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x73, + 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x43, + 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x0e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x6f, + 0x6e, 0x74, 0x65, 0x78, 0x74, 0x73, 0x4a, 0x04, 0x08, 0x01, 0x10, 0x02, 0x4a, 0x04, 0x08, 0x04, + 0x10, 0x05, 0x4a, 0x04, 0x08, 0x05, 0x10, 0x06, 0x4a, 0x06, 0x08, 0xe8, 0x07, 0x10, 0xe9, 0x07, + 0x52, 0x0e, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x52, 0x0f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x73, 0x52, 0x0a, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x52, 0x1e, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x5f, 0x62, 0x6f, 0x6f, + 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x5f, 0x66, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x22, 0x18, 0x0a, + 0x16, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x19, 0x0a, 0x17, 0x43, 0x6c, 0x65, 0x61, 0x72, + 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x2c, 0x0a, 0x07, 0x43, 0x68, 0x69, 0x70, 0x42, 0x61, 0x67, 0x12, 0x21, 0x0a, + 0x0c, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x63, 0x68, 0x69, 0x70, 0x73, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x68, 0x69, 0x70, 0x73, + 0x22, 0x89, 0x01, 0x0a, 0x0c, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x12, 0x42, 0x0a, 0x1b, 0x68, 0x69, 0x65, 0x72, 0x61, 0x72, 0x63, 0x68, 0x79, 0x5f, 0x63, + 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x5f, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x42, 0x02, 0x18, 0x01, 0x52, 0x19, 0x68, 0x69, 0x65, 0x72, + 0x61, 0x72, 0x63, 0x68, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x44, 0x65, 0x74, + 0x65, 0x63, 0x74, 0x65, 0x64, 0x12, 0x35, 0x0a, 0x17, 0x69, 0x73, 0x5f, 0x73, 0x79, 0x6e, 0x63, + 0x5f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x69, 0x73, 0x53, 0x79, 0x6e, 0x63, 0x46, 0x65, + 0x61, 0x74, 0x75, 0x72, 0x65, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x22, 0xba, 0x06, 0x0a, + 0x15, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x68, 0x61, 0x72, 0x65, 0x18, + 0x01, 0x20, 0x02, 0x28, 0x09, 0x52, 0x05, 0x73, 0x68, 0x61, 0x72, 0x65, 0x12, 0x2d, 0x0a, 0x10, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x02, 0x39, 0x39, 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x63, 0x6f, 0x6c, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x52, 0x0a, 0x10, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x18, + 0x03, 0x20, 0x02, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, + 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x0f, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x12, + 0x2e, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x16, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12, + 0x3b, 0x0a, 0x0b, 0x67, 0x65, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x47, + 0x65, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x52, 0x0a, 0x67, 0x65, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x0e, + 0x73, 0x74, 0x6f, 0x72, 0x65, 0x5f, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x42, 0x69, 0x72, 0x74, 0x68, + 0x64, 0x61, 0x79, 0x12, 0x39, 0x0a, 0x15, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x72, 0x6f, 0x62, + 0x6c, 0x65, 0x6d, 0x5f, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x13, 0x73, 0x79, 0x6e, 0x63, 0x50, + 0x72, 0x6f, 0x62, 0x6c, 0x65, 0x6d, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x12, 0x31, + 0x0a, 0x0a, 0x64, 0x65, 0x62, 0x75, 0x67, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x44, 0x65, 0x62, + 0x75, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x64, 0x65, 0x62, 0x75, 0x67, 0x49, 0x6e, 0x66, + 0x6f, 0x12, 0x32, 0x0a, 0x0c, 0x62, 0x61, 0x67, 0x5f, 0x6f, 0x66, 0x5f, 0x63, 0x68, 0x69, 0x70, + 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, + 0x62, 0x2e, 0x43, 0x68, 0x69, 0x70, 0x42, 0x61, 0x67, 0x52, 0x0a, 0x62, 0x61, 0x67, 0x4f, 0x66, + 0x43, 0x68, 0x69, 0x70, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x61, 0x70, 0x69, 0x5f, 0x6b, 0x65, 0x79, + 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x70, 0x69, 0x4b, 0x65, 0x79, 0x12, 0x3a, + 0x0a, 0x0d, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, + 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, + 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0c, 0x63, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x32, 0x0a, 0x15, 0x69, 0x6e, + 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x5f, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x69, 0x6e, 0x76, 0x61, 0x6c, + 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x4b, + 0x0a, 0x11, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x64, + 0x61, 0x74, 0x61, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x79, 0x6e, 0x63, + 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x44, + 0x61, 0x74, 0x61, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0f, 0x63, 0x6c, 0x65, 0x61, + 0x72, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x22, 0x62, 0x0a, 0x08, 0x43, + 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x4f, 0x4d, 0x4d, 0x49, + 0x54, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x47, 0x45, 0x54, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, + 0x45, 0x53, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x44, 0x45, 0x50, 0x52, 0x45, 0x43, 0x41, 0x54, + 0x45, 0x44, 0x5f, 0x33, 0x10, 0x03, 0x12, 0x10, 0x0a, 0x0c, 0x44, 0x45, 0x50, 0x52, 0x45, 0x43, + 0x41, 0x54, 0x45, 0x44, 0x5f, 0x34, 0x10, 0x04, 0x12, 0x15, 0x0a, 0x11, 0x43, 0x4c, 0x45, 0x41, + 0x52, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x10, 0x05, 0x4a, + 0x04, 0x08, 0x06, 0x10, 0x07, 0x4a, 0x04, 0x08, 0x09, 0x10, 0x0a, 0x52, 0x0c, 0x61, 0x75, 0x74, + 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x22, 0xf0, 0x05, 0x0a, 0x0e, 0x43, 0x6f, + 0x6d, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4b, 0x0a, 0x0d, + 0x65, 0x6e, 0x74, 0x72, 0x79, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0a, 0x32, 0x25, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x6f, + 0x6d, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0d, 0x65, 0x6e, 0x74, 0x72, + 0x79, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x1a, 0xa0, 0x04, 0x0a, 0x0d, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x49, 0x0a, 0x0d, 0x72, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x02, + 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6d, + 0x6d, 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x64, 0x5f, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x64, 0x53, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, + 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x12, 0x18, 0x0a, 0x05, 0x6d, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x03, 0x42, 0x02, 0x18, 0x01, 0x52, 0x05, 0x6d, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x73, 0x0a, 0x17, + 0x64, 0x61, 0x74, 0x61, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x63, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, + 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x74, 0x79, 0x70, 0x65, 0x53, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x63, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x15, 0x64, 0x61, 0x74, 0x61, + 0x74, 0x79, 0x70, 0x65, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x45, 0x72, 0x72, 0x6f, + 0x72, 0x1a, 0x83, 0x01, 0x0a, 0x15, 0x44, 0x61, 0x74, 0x61, 0x74, 0x79, 0x70, 0x65, 0x53, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x58, 0x0a, 0x15, 0x73, + 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x65, + 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x73, 0x79, 0x6e, + 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x00, + 0x52, 0x13, 0x73, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x45, 0x72, 0x72, 0x6f, 0x72, 0x42, 0x10, 0x0a, 0x0e, 0x64, 0x61, 0x74, 0x61, 0x74, 0x79, 0x70, + 0x65, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4a, 0x04, 0x08, 0x04, 0x10, 0x05, 0x4a, 0x04, 0x08, + 0x05, 0x10, 0x06, 0x4a, 0x04, 0x08, 0x07, 0x10, 0x08, 0x4a, 0x04, 0x08, 0x08, 0x10, 0x09, 0x52, + 0x10, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x52, 0x12, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x5f, 0x70, + 0x61, 0x72, 0x65, 0x6e, 0x74, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x52, 0x0f, 0x6e, 0x6f, 0x6e, + 0x5f, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x6e, 0x0a, 0x0c, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, + 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x43, 0x4f, 0x4e, + 0x46, 0x4c, 0x49, 0x43, 0x54, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x52, 0x45, 0x54, 0x52, 0x59, + 0x10, 0x03, 0x12, 0x13, 0x0a, 0x0f, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x5f, 0x4d, 0x45, + 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x04, 0x12, 0x0e, 0x0a, 0x0a, 0x4f, 0x56, 0x45, 0x52, 0x5f, + 0x51, 0x55, 0x4f, 0x54, 0x41, 0x10, 0x05, 0x12, 0x13, 0x0a, 0x0f, 0x54, 0x52, 0x41, 0x4e, 0x53, + 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x06, 0x22, 0xde, 0x02, 0x0a, + 0x12, 0x47, 0x65, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x2d, 0x0a, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x53, + 0x79, 0x6e, 0x63, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, + 0x65, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x5f, 0x72, 0x65, + 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x63, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x52, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x12, + 0x4f, 0x0a, 0x13, 0x6e, 0x65, 0x77, 0x5f, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, + 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, + 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x50, + 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x52, 0x11, 0x6e, + 0x65, 0x77, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x72, + 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6b, + 0x65, 0x79, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0e, 0x65, 0x6e, 0x63, 0x72, 0x79, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x45, 0x0a, 0x11, 0x63, 0x6f, 0x6e, + 0x74, 0x65, 0x78, 0x74, 0x5f, 0x6d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x07, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x44, + 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x10, + 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x4d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x4a, 0x04, 0x08, 0x02, 0x10, 0x03, 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04, 0x52, 0x0d, 0x6e, 0x65, + 0x77, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x10, 0x6e, 0x65, 0x77, + 0x65, 0x73, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0xa5, 0x07, + 0x0a, 0x16, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, + 0x69, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, + 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x3c, 0x0a, 0x0b, 0x67, 0x65, 0x74, + 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, + 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0a, 0x67, 0x65, 0x74, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x0a, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x73, 0x79, + 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x45, 0x6e, 0x75, 0x6d, 0x73, 0x2e, + 0x45, 0x72, 0x72, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x3a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, + 0x57, 0x4e, 0x52, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x23, 0x0a, + 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x5f, 0x62, 0x69, 0x72, 0x74, + 0x68, 0x64, 0x61, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x74, 0x6f, 0x72, + 0x65, 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x12, 0x3d, 0x0a, 0x0e, 0x63, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x0d, 0x63, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x31, 0x0a, 0x15, 0x6d, 0x69, 0x67, 0x72, + 0x61, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x69, + 0x64, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x05, 0x52, 0x12, 0x6d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, + 0x64, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x12, 0x3b, 0x0a, 0x05, 0x65, + 0x72, 0x72, 0x6f, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x73, 0x79, 0x6e, + 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x53, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45, 0x72, 0x72, 0x6f, + 0x72, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x39, 0x0a, 0x10, 0x6e, 0x65, 0x77, 0x5f, + 0x62, 0x61, 0x67, 0x5f, 0x6f, 0x66, 0x5f, 0x63, 0x68, 0x69, 0x70, 0x73, 0x18, 0x0e, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x68, 0x69, + 0x70, 0x42, 0x61, 0x67, 0x52, 0x0d, 0x6e, 0x65, 0x77, 0x42, 0x61, 0x67, 0x4f, 0x66, 0x43, 0x68, + 0x69, 0x70, 0x73, 0x12, 0x4c, 0x0a, 0x11, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x5f, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, + 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x53, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x52, 0x0f, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x44, 0x61, 0x74, + 0x61, 0x1a, 0xf7, 0x01, 0x0a, 0x05, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x44, 0x0a, 0x0a, 0x65, + 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x45, 0x6e, 0x75, 0x6d, 0x73, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x3a, 0x07, 0x55, - 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x52, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, - 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x5f, - 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, - 0x73, 0x74, 0x6f, 0x72, 0x65, 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x12, 0x3d, 0x0a, - 0x0e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, - 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x0d, 0x63, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x31, 0x0a, 0x15, - 0x6d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x74, 0x79, - 0x70, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x05, 0x52, 0x12, 0x6d, 0x69, 0x67, - 0x72, 0x61, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x12, - 0x3b, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, - 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, - 0x6f, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, - 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x39, 0x0a, 0x10, - 0x6e, 0x65, 0x77, 0x5f, 0x62, 0x61, 0x67, 0x5f, 0x6f, 0x66, 0x5f, 0x63, 0x68, 0x69, 0x70, 0x73, - 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, - 0x2e, 0x43, 0x68, 0x69, 0x70, 0x42, 0x61, 0x67, 0x52, 0x0d, 0x6e, 0x65, 0x77, 0x42, 0x61, 0x67, - 0x4f, 0x66, 0x43, 0x68, 0x69, 0x70, 0x73, 0x12, 0x4c, 0x0a, 0x11, 0x63, 0x6c, 0x65, 0x61, 0x72, - 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0f, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x43, 0x6c, 0x65, - 0x61, 0x72, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0f, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x53, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x44, 0x61, 0x74, 0x61, 0x1a, 0xf7, 0x01, 0x0a, 0x05, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, - 0x44, 0x0a, 0x0a, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x53, 0x79, - 0x6e, 0x63, 0x45, 0x6e, 0x75, 0x6d, 0x73, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x54, 0x79, 0x70, - 0x65, 0x3a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x52, 0x09, 0x65, 0x72, 0x72, 0x6f, - 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2b, 0x0a, 0x11, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x64, - 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x10, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x41, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x53, 0x79, 0x6e, - 0x63, 0x45, 0x6e, 0x75, 0x6d, 0x73, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x0e, 0x55, - 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x52, 0x06, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2d, 0x0a, 0x13, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x64, - 0x61, 0x74, 0x61, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x05, 0x20, 0x03, - 0x28, 0x05, 0x52, 0x10, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, - 0x65, 0x49, 0x64, 0x73, 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x4a, - 0x04, 0x08, 0x03, 0x10, 0x04, 0x4a, 0x04, 0x08, 0x08, 0x10, 0x09, 0x4a, 0x04, 0x08, 0x09, 0x10, - 0x0a, 0x4a, 0x04, 0x08, 0x0a, 0x10, 0x0b, 0x4a, 0x04, 0x08, 0x0b, 0x10, 0x0c, 0x52, 0x0c, 0x61, - 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x52, 0x0e, 0x70, 0x72, 0x6f, - 0x66, 0x69, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x52, 0x0f, 0x73, 0x74, 0x72, - 0x65, 0x61, 0x6d, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x0b, 0x73, 0x74, - 0x72, 0x65, 0x61, 0x6d, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x22, 0x4f, 0x0a, 0x0c, 0x45, 0x76, 0x65, - 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x0d, 0x73, 0x79, 0x6e, - 0x63, 0x5f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1a, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x44, - 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x0c, 0x73, 0x79, - 0x6e, 0x63, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x22, 0x0f, 0x0a, 0x0d, 0x45, 0x76, - 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x59, 0x0a, 0x11, 0x53, - 0x79, 0x6e, 0x63, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, - 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x61, 0x63, 0x68, 0x65, 0x5f, 0x67, 0x75, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x61, 0x63, 0x68, 0x65, 0x47, 0x75, 0x69, 0x64, 0x12, - 0x25, 0x0a, 0x0e, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x5f, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, - 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x42, 0x69, - 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x42, 0x2b, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, - 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, - 0x73, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, - 0x03, 0x50, 0x01, + 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x52, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x2b, 0x0a, 0x11, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x65, 0x72, + 0x72, 0x6f, 0x72, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x41, + 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, + 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x45, 0x6e, 0x75, + 0x6d, 0x73, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x0e, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, + 0x57, 0x4e, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x2d, 0x0a, 0x13, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x05, 0x52, 0x10, + 0x65, 0x72, 0x72, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x73, + 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x4a, 0x04, 0x08, 0x03, 0x10, + 0x04, 0x4a, 0x04, 0x08, 0x08, 0x10, 0x09, 0x4a, 0x04, 0x08, 0x09, 0x10, 0x0a, 0x4a, 0x04, 0x08, + 0x0a, 0x10, 0x0b, 0x4a, 0x04, 0x08, 0x0b, 0x10, 0x0c, 0x52, 0x0c, 0x61, 0x75, 0x74, 0x68, 0x65, + 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x69, + 0x6e, 0x67, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x52, 0x0f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x5f, + 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x5f, 0x64, 0x61, 0x74, 0x61, 0x22, 0x4f, 0x0a, 0x0c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x0d, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x64, 0x69, + 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x73, + 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x44, 0x69, 0x73, 0x61, 0x62, + 0x6c, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x0c, 0x73, 0x79, 0x6e, 0x63, 0x44, 0x69, + 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x22, 0x0f, 0x0a, 0x0d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x59, 0x0a, 0x11, 0x53, 0x79, 0x6e, 0x63, 0x44, + 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, + 0x63, 0x61, 0x63, 0x68, 0x65, 0x5f, 0x67, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x63, 0x61, 0x63, 0x68, 0x65, 0x47, 0x75, 0x69, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x73, + 0x74, 0x6f, 0x72, 0x65, 0x5f, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, + 0x61, 0x79, 0x42, 0x36, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, + 0x75, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x73, 0x79, + 0x6e, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x03, 0x50, 0x01, 0x5a, + 0x09, 0x2e, 0x2f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, } var ( diff --git a/schema/protobuf/sync_pb/sync.proto b/schema/protobuf/sync_pb/sync.proto index b7c4bd28..5b4d1eae 100644 --- a/schema/protobuf/sync_pb/sync.proto +++ b/schema/protobuf/sync_pb/sync.proto @@ -1,4 +1,4 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2012 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // @@ -10,6 +10,8 @@ syntax = "proto2"; +option go_package = "./sync_pb"; + option java_multiple_files = true; option java_package = "org.chromium.components.sync.protocol"; @@ -57,7 +59,13 @@ message ClientConfigParams { // Indicates that the client is not aware of any other active clients // interested in the committed data types. This flag shows that it is not // necessary to send invalidations for the committed data. A client is - // considered active if it's DeviceInfo has updated recent enough. + // considered active if it's DeviceInfo has updated recent enough. This flag + // does not take into account whether standalone invalidations are enabled (as + // opposed to |single_client_with_standalone_invalidations|). However, it's + // set depending on interested data types of other devices, e.g. if there are + // other devices but they are not interested in SESSION data type, and current + // commit request contains only SESSION, it will be set to true. + // Introduced in M88. optional bool single_client = 4; // A list of FCM registration tokens which are obtained from other clients. @@ -69,10 +77,53 @@ message ClientConfigParams { // 2. There are too many active devices and the list would have too many // items. // 3. An empty list could also mean that the current client is the only - // client. This case should be covered by the |single_client| field instead - // (otherwise it could be mixed up with older clients). The server doesn't - // have to use this field and can ignore it. + // client. This case should be covered by the + // |single_client_with_standalone_invalidations| field instead (otherwise it + // could be mixed up with older clients). The server doesn't have to use this + // field and can ignore it. Note that this list does not take into account + // interested data types from the other clients. + // Introduced in M89. repeated string devices_fcm_registration_tokens = 5; + + // Similar to |single_client| but takes into account only clients with enabled + // sync standalone invalidations. When set to true, there are no other clients + // with sync standalone invalidations interested in the committing types and + // hence it's not necessary to send out standalone invalidations (it may still + // be necessary to send out invalidations using the legacy system, see + // |single_client| instead). + // Introduced in M105. + optional bool single_client_with_standalone_invalidations = 6; + + // Similar to |devices_fcm_registration_tokens| but takes into account clients + // which are subscribed to the data types which are committed in current + // commit request. + // A list of FCM registration tokens which are obtained from other clients. + // This list is used by the server to send invalidations to all other clients. + // If the list is empty, the server should treat this as "there is no + // information about other clients". In practice, this happens by the next + // causes: + // 1. This is the old client which doesn't set this field. + // 2. There are too many active devices and the list would have too many + // items. + // 3. An empty list could also mean that the current client is the only + // client. This case should be covered by the + // |single_client_with_standalone_invalidations| field instead (otherwise it + // could be mixed up with older clients). The server doesn't have to use this + // field and can ignore it. + // Introduced in M105. + repeated string fcm_registration_tokens_for_interested_clients = 7; + + // Similar to |single_client| but takes into account only clients which are + // subscribed to old invalidations (i.e. not subscribed to sync standalone + // invalidations). When set to true, there are no other clients subscribed to + // old invalidations. Note that opposed to |single_client|, this flag does not + // always take into account the list of interested data types (because + // interested data types were introduced in M89). When the list is empty, a + // client is considered to be subscribed to all data types. Note that "single + // client" is a bit misleading since this will also be true if there are no + // clients with old invalidations at all. + // Introduced in M110. + optional bool single_client_with_old_invalidations = 8; } message CommitMessage { @@ -103,9 +154,6 @@ message CommitMessage { } message GetUpdatesMessage { - reserved 1; - reserved "from_timestamp"; - // Indicates the reason for the GetUpdatesMessage. // This was *mostly* deprecated in M29. GetUpdatesOrigin is the new way to // encode the reason for the GetUpdates request, but some parts of the server @@ -117,11 +165,6 @@ message GetUpdatesMessage { // Indicates whether related folders should be fetched. optional bool fetch_folders = 3 [default = true]; - // Client-requested limit on the maximum number of updates to return at once. - // The server may opt to return fewer updates than this amount, but it should - // not return more. - optional int32 batch_size = 5; - // Per-datatype progress marker. // // With the exception of certain configuration or initial sync requests, the @@ -145,11 +188,6 @@ message GetUpdatesMessage { // other datatypes, so repeated usage will likely result in throttling. optional bool need_encryption_key = 8 [default = false]; - // Whether to create the mobile bookmarks folder if it's not - // already created. Set to true by all modern clients. - optional bool create_mobile_bookmarks_folder = 1000 - [default = false, deprecated = true]; - // This value is an updated version of the GetUpdatesCallerInfo's // GetUpdatesSource. It describes the reason for the GetUpdate request. // Introduced in M29. @@ -162,14 +200,23 @@ message GetUpdatesMessage { // Set of optional per-client datatype contexts. repeated DataTypeContext client_contexts = 11; + reserved 1; + reserved "from_timestamp"; reserved 4; reserved "requested_types"; + reserved 5; + reserved "batch_size"; + reserved 1000; + reserved "create_mobile_bookmarks_folder"; } // Message from a client asking the server to clear its data. This causes the // server to generate a new store birthday, which allows dealing reliably with // in-flight requests (in particular commits) from other clients. -message ClearServerDataMessage {} +message ClearServerDataMessage { + // No arguments needed as the store birthday and user identifier are part of + // an enclosing message. +} // Response to a ClearServerData request. message ClearServerDataResponse { diff --git a/schema/protobuf/sync_pb/sync_entity.pb.go b/schema/protobuf/sync_pb/sync_entity.pb.go index 4b79e935..f97e94ba 100644 --- a/schema/protobuf/sync_pb/sync_entity.pb.go +++ b/schema/protobuf/sync_pb/sync_entity.pb.go @@ -1,10 +1,10 @@ -// Copyright 2021 The Chromium Authors. All rights reserved. +// Copyright 2021 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.0 +// protoc-gen-go v1.31.0 // protoc v3.21.1 // source: sync_entity.proto @@ -45,11 +45,11 @@ type SyncEntity struct { // // Starting with M99, this field is optional and used for legacy bookmarks // only: - // 1. When processing GetUpdatesResponse, it is unused for modern data created - // or reuploaded by M94 or above, which populates the parent's GUID in - // BookmarkSpecifics (which is sufficient). - // 2. When issuing CommitMessage, the field is populated for compatibility - // with clients before M99. + // 1. When processing GetUpdatesResponse, it is unused for modern data created + // or reuploaded by M94 or above, which populates the parent's GUID in + // BookmarkSpecifics (which is sufficient). + // 2. When issuing CommitMessage, the field is populated for compatibility + // with clients before M99. ParentIdString *string `protobuf:"bytes,2,opt,name=parent_id_string,json=parentIdString" json:"parent_id_string,omitempty"` // The version of this item -- a monotonically increasing value that is // maintained by for each item. If zero in a CommitMessage, the server @@ -74,11 +74,13 @@ type SyncEntity struct { Ctime *int64 `protobuf:"varint,6,opt,name=ctime" json:"ctime,omitempty"` // The name of this item. // Historical note: - // Since November 2010, this value is no different from non_unique_name. - // Before then, server implementations would maintain a unique-within-parent - // value separate from its base, "non-unique" value. Clients had not - // depended on the uniqueness of the property since November 2009; it was - // removed from Chromium by http://codereview.chromium.org/371029 . + // + // Since November 2010, this value is no different from non_unique_name. + // Before then, server implementations would maintain a unique-within-parent + // value separate from its base, "non-unique" value. Clients had not + // depended on the uniqueness of the property since November 2009; it was + // removed from Chromium by http://codereview.chromium.org/371029 . + // // Present in both GetUpdatesResponse and CommitMessage. // WARNING: This field used to be required before M60. Any client before this // will fail to deserialize if this field is missing. @@ -92,16 +94,15 @@ type SyncEntity struct { // If present, this tag identifies this item as being a uniquely // instanced item. The server ensures that there is never more // than one entity in a user's store with the same tag value. - // This value is used to identify and find e.g. the "Google Chrome" settings - // folder without relying on it existing at a particular path, or having - // a particular name, in the data store. + // This value is used to identify and find e.g. the "Bookmark Bar" folder + // without relying on a particular ID or name. // // This variant of the tag is created by the server, so clients can't create // an item with a tag using this field. // - // Use client_defined_unique_tag if you want to create one from the client. + // Use client_tag_hash if you want to create one from the client. // - // An item can't have both a client_defined_unique_tag and + // An item can't have both a client_tag_hash and // a server_defined_unique_tag. // // Present only in GetUpdatesResponse. @@ -111,9 +112,9 @@ type SyncEntity struct { // for details as well as the data-upgrading implementation in // GetUniquePositionFromSyncEntity(). // - // Deprecated: Do not use. + // Deprecated: Marked as deprecated in sync_entity.proto. PositionInParent *int64 `protobuf:"varint,15,opt,name=position_in_parent,json=positionInParent" json:"position_in_parent,omitempty"` - // Deprecated: Do not use. + // Deprecated: Marked as deprecated in sync_entity.proto. InsertAfterItemId *string `protobuf:"bytes,16,opt,name=insert_after_item_id,json=insertAfterItemId" json:"insert_after_item_id,omitempty"` // If true, indicates that this item has been (or should be) deleted. // Present in both GetUpdatesResponse and CommitMessage. @@ -131,17 +132,17 @@ type SyncEntity struct { // bookmarks' unique_position field. OriginatorCacheGuid *string `protobuf:"bytes,19,opt,name=originator_cache_guid,json=originatorCacheGuid" json:"originator_cache_guid,omitempty"` // Item ID as generated by the client that initially created this entity. Used - // exclusively for bookmarks (other datatypes use client_defined_unique_tag). + // exclusively for bookmarks (other datatypes use client_tag_hash). // There are three generation of bookmarks that have populated this field // differently, depending on which version of the browser created the // bookmark: - // 1. For bookmarks created before M44 (2015), the field got populated with an - // ID that is locally unique, but not globally unique (usually a negative - // number). - // 2. For bookmarks created between M45 and M51, both inclusive, the field got - // populated with a globally unique GUID in uppercase form. - // 3. For bookmarks created with M52 or above, the field gets populated with - // a globally unique GUID in lowercase form. + // 1. For bookmarks created before M44 (2015), the field got populated with an + // ID that is locally unique, but not globally unique (usually a negative + // number). + // 2. For bookmarks created between M45 and M51, both inclusive, the field got + // populated with a globally unique GUID in uppercase form. + // 3. For bookmarks created with M52 or above, the field gets populated with + // a globally unique GUID in lowercase form. // // Present only in GetUpdatesResponse. OriginatorClientItemId *string `protobuf:"bytes,20,opt,name=originator_client_item_id,json=originatorClientItemId" json:"originator_client_item_id,omitempty"` @@ -151,22 +152,26 @@ type SyncEntity struct { // Indicate whether this is a folder or not. Available in version 23+. Folder *bool `protobuf:"varint,22,opt,name=folder,def=0" json:"folder,omitempty"` // A client defined unique hash for this entity. - // Similar to server_defined_unique_tag. + // Analogous to server_defined_unique_tag, but allows the client to determine + // an immutable attribute of the entity in hashed form that makes it unique + // per user (i.e. at most one entity may exist per client tag hash). // - // When initially committing an entity, a client can request that the entity - // is unique per that account. To do so, the client should specify a - // client_defined_unique_tag. At most one entity per tag value may exist. - // per account. The server will enforce uniqueness on this tag - // and fail attempts to create duplicates of this tag. - // Will be returned in any updates for this entity. + // This value must be of the form base64(SHA1(client_tag)) where the + // client_tag is a value derived from the contents of an entity in a + // type-specific way. Since the hashed contents of the client_tag are exposed + // to the server via this field, take care when defining it that there is + // enough entropy to mask any secrets that the server shouldn't learn. // // The difference between server_defined_unique_tag and - // client_defined_unique_tag is the creator of the entity. Server defined + // client_tag_hash is the creator of the entity. Server defined // tags are entities created by the server at account creation, // while client defined tags are entities created by the client at any time. // // During GetUpdates, a sync entity update will come back with ONE of: - // a) Originator and cache id - If client committed the item as non "unique" + // a) Originator item and cache id - for bookmarks created using old versions + // + // of the browser (latest M93, before https://crrev.com/c/2945119). + // // b) Server tag - If server committed the item as unique // c) Client tag - If client committed the item as unique // @@ -174,21 +179,21 @@ type SyncEntity struct { // If present in Commit updates for the entity, it will be ignored. // // May be returned in GetUpdatesMessage and sent up in CommitMessage. - ClientDefinedUniqueTag *string `protobuf:"bytes,23,opt,name=client_defined_unique_tag,json=clientDefinedUniqueTag" json:"client_defined_unique_tag,omitempty"` + ClientTagHash *string `protobuf:"bytes,23,opt,name=client_tag_hash,json=clientTagHash" json:"client_tag_hash,omitempty"` // Introduced in M26, represents ordering among entities, in practice used for // bookmarks only. Clients should not assume it is always populated in // GetUpdatesMessage due to the following caveats: - // 1. Tombstones and permanent folders do not populate it (ordering is - // irrelevant). - // 2. It may remain unset by future versions of the client, as long as the - // field with the same name is populated inside BookmarkSpecifics. M94 and - // above populate both for backward compatibility reasons, but when support - // for M93 is retired, modern clients at the time may stop populating this - // field. - // 3. Very old data (last committed by M25 or below, before the field was - // introduced) does not include this field, and in that case the legacy - // fields |position_in_parent| or |insert_after_item_id| must be honored - // instead. + // 1. Tombstones and permanent folders do not populate it (ordering is + // irrelevant). + // 2. It may remain unset by future versions of the client, as long as the + // field with the same name is populated inside BookmarkSpecifics. M94 and + // above populate both for backward compatibility reasons, but when support + // for M93 is retired, modern clients at the time may stop populating this + // field. + // 3. Very old data (last committed by M25 or below, before the field was + // introduced) does not include this field, and in that case the legacy + // fields |position_in_parent| or |insert_after_item_id| must be honored + // instead. // // May be returned in GetUpdatesMessage and sent up in CommitMessage. UniquePosition *UniquePosition `protobuf:"bytes,25,opt,name=unique_position,json=uniquePosition" json:"unique_position,omitempty"` @@ -288,7 +293,7 @@ func (x *SyncEntity) GetServerDefinedUniqueTag() string { return "" } -// Deprecated: Do not use. +// Deprecated: Marked as deprecated in sync_entity.proto. func (x *SyncEntity) GetPositionInParent() int64 { if x != nil && x.PositionInParent != nil { return *x.PositionInParent @@ -296,7 +301,7 @@ func (x *SyncEntity) GetPositionInParent() int64 { return 0 } -// Deprecated: Do not use. +// Deprecated: Marked as deprecated in sync_entity.proto. func (x *SyncEntity) GetInsertAfterItemId() string { if x != nil && x.InsertAfterItemId != nil { return *x.InsertAfterItemId @@ -339,9 +344,9 @@ func (x *SyncEntity) GetFolder() bool { return Default_SyncEntity_Folder } -func (x *SyncEntity) GetClientDefinedUniqueTag() string { - if x != nil && x.ClientDefinedUniqueTag != nil { - return *x.ClientDefinedUniqueTag +func (x *SyncEntity) GetClientTagHash() string { + if x != nil && x.ClientTagHash != nil { + return *x.ClientTagHash } return "" } @@ -360,7 +365,7 @@ var file_sync_entity_proto_rawDesc = []byte{ 0x6f, 0x74, 0x6f, 0x12, 0x07, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x1a, 0x16, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x15, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x5f, 0x70, 0x6f, 0x73, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xa6, 0x07, 0x0a, 0x0a, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xae, 0x07, 0x0a, 0x0a, 0x53, 0x79, 0x6e, 0x63, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x64, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x64, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x28, 0x0a, 0x10, 0x70, 0x61, 0x72, 0x65, 0x6e, @@ -398,31 +403,32 @@ var file_sync_entity_proto_rawDesc = []byte{ 0x70, 0x62, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x52, 0x09, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x12, 0x1d, 0x0a, 0x06, 0x66, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x18, 0x16, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, - 0x61, 0x6c, 0x73, 0x65, 0x52, 0x06, 0x66, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x12, 0x39, 0x0a, 0x19, - 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x75, - 0x6e, 0x69, 0x71, 0x75, 0x65, 0x5f, 0x74, 0x61, 0x67, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x16, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x55, 0x6e, - 0x69, 0x71, 0x75, 0x65, 0x54, 0x61, 0x67, 0x12, 0x40, 0x0a, 0x0f, 0x75, 0x6e, 0x69, 0x71, 0x75, - 0x65, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x17, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x55, 0x6e, 0x69, 0x71, 0x75, - 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0e, 0x75, 0x6e, 0x69, 0x71, 0x75, - 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04, 0x4a, - 0x04, 0x08, 0x09, 0x10, 0x0a, 0x4a, 0x04, 0x08, 0x0b, 0x10, 0x0c, 0x4a, 0x04, 0x08, 0x0c, 0x10, - 0x0d, 0x4a, 0x04, 0x08, 0x0d, 0x10, 0x0e, 0x4a, 0x04, 0x08, 0x0e, 0x10, 0x0f, 0x4a, 0x04, 0x08, - 0x11, 0x10, 0x12, 0x4a, 0x04, 0x08, 0x18, 0x10, 0x19, 0x4a, 0x04, 0x08, 0x1a, 0x10, 0x1b, 0x52, - 0x0d, 0x6f, 0x6c, 0x64, 0x5f, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x52, 0x0e, - 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0c, - 0x42, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0f, 0x62, 0x6f, - 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x66, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x52, 0x0c, 0x62, - 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x75, 0x72, 0x6c, 0x52, 0x10, 0x62, 0x6f, 0x6f, - 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x66, 0x61, 0x76, 0x69, 0x63, 0x6f, 0x6e, 0x52, 0x13, 0x65, - 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x73, 0x52, 0x11, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x6c, 0x5f, 0x69, 0x6e, 0x5f, 0x70, - 0x61, 0x72, 0x65, 0x6e, 0x74, 0x52, 0x0d, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, - 0x74, 0x5f, 0x69, 0x64, 0x42, 0x2b, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, 0x72, 0x6f, - 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2e, - 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x03, 0x50, - 0x01, + 0x61, 0x6c, 0x73, 0x65, 0x52, 0x06, 0x66, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x12, 0x26, 0x0a, 0x0f, + 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x61, 0x67, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, + 0x17, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x67, + 0x48, 0x61, 0x73, 0x68, 0x12, 0x40, 0x0a, 0x0f, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x5f, 0x70, + 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, + 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x50, 0x6f, + 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0e, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x50, 0x6f, + 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04, 0x4a, 0x04, 0x08, 0x09, + 0x10, 0x0a, 0x4a, 0x04, 0x08, 0x0b, 0x10, 0x0c, 0x4a, 0x04, 0x08, 0x0c, 0x10, 0x0d, 0x4a, 0x04, + 0x08, 0x0d, 0x10, 0x0e, 0x4a, 0x04, 0x08, 0x0e, 0x10, 0x0f, 0x4a, 0x04, 0x08, 0x11, 0x10, 0x12, + 0x4a, 0x04, 0x08, 0x18, 0x10, 0x19, 0x4a, 0x04, 0x08, 0x1a, 0x10, 0x1b, 0x52, 0x0d, 0x6f, 0x6c, + 0x64, 0x5f, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x52, 0x0e, 0x73, 0x79, 0x6e, + 0x63, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0c, 0x42, 0x6f, 0x6f, + 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0f, 0x62, 0x6f, 0x6f, 0x6b, 0x6d, + 0x61, 0x72, 0x6b, 0x5f, 0x66, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x52, 0x0c, 0x62, 0x6f, 0x6f, 0x6b, + 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x75, 0x72, 0x6c, 0x52, 0x10, 0x62, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, + 0x72, 0x6b, 0x5f, 0x66, 0x61, 0x76, 0x69, 0x63, 0x6f, 0x6e, 0x52, 0x13, 0x65, 0x78, 0x74, 0x65, + 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x52, + 0x19, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, + 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x5f, 0x74, 0x61, 0x67, 0x52, 0x11, 0x6f, 0x72, 0x64, 0x69, + 0x6e, 0x61, 0x6c, 0x5f, 0x69, 0x6e, 0x5f, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x52, 0x0d, 0x61, + 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x42, 0x36, 0x0a, 0x25, + 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, + 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x03, 0x50, 0x01, 0x5a, 0x09, 0x2e, 0x2f, 0x73, 0x79, 0x6e, + 0x63, 0x5f, 0x70, 0x62, } var ( diff --git a/schema/protobuf/sync_pb/sync_entity.proto b/schema/protobuf/sync_pb/sync_entity.proto index 99089a53..a6d9ce00 100644 --- a/schema/protobuf/sync_pb/sync_entity.proto +++ b/schema/protobuf/sync_pb/sync_entity.proto @@ -1,9 +1,11 @@ -// Copyright 2021 The Chromium Authors. All rights reserved. +// Copyright 2021 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. syntax = "proto2"; +option go_package = "./sync_pb"; + option java_multiple_files = true; option java_package = "org.chromium.components.sync.protocol"; @@ -91,16 +93,15 @@ message SyncEntity { // If present, this tag identifies this item as being a uniquely // instanced item. The server ensures that there is never more // than one entity in a user's store with the same tag value. - // This value is used to identify and find e.g. the "Google Chrome" settings - // folder without relying on it existing at a particular path, or having - // a particular name, in the data store. + // This value is used to identify and find e.g. the "Bookmark Bar" folder + // without relying on a particular ID or name. // // This variant of the tag is created by the server, so clients can't create // an item with a tag using this field. // - // Use client_defined_unique_tag if you want to create one from the client. + // Use client_tag_hash if you want to create one from the client. // - // An item can't have both a client_defined_unique_tag and + // An item can't have both a client_tag_hash and // a server_defined_unique_tag. // // Present only in GetUpdatesResponse. @@ -143,7 +144,7 @@ message SyncEntity { optional string originator_cache_guid = 19; // Item ID as generated by the client that initially created this entity. Used - // exclusively for bookmarks (other datatypes use client_defined_unique_tag). + // exclusively for bookmarks (other datatypes use client_tag_hash). // There are three generation of bookmarks that have populated this field // differently, depending on which version of the browser created the // bookmark: @@ -166,22 +167,24 @@ message SyncEntity { optional bool folder = 22 [default = false]; // A client defined unique hash for this entity. - // Similar to server_defined_unique_tag. + // Analogous to server_defined_unique_tag, but allows the client to determine + // an immutable attribute of the entity in hashed form that makes it unique + // per user (i.e. at most one entity may exist per client tag hash). // - // When initially committing an entity, a client can request that the entity - // is unique per that account. To do so, the client should specify a - // client_defined_unique_tag. At most one entity per tag value may exist. - // per account. The server will enforce uniqueness on this tag - // and fail attempts to create duplicates of this tag. - // Will be returned in any updates for this entity. + // This value must be of the form base64(SHA1(client_tag)) where the + // client_tag is a value derived from the contents of an entity in a + // type-specific way. Since the hashed contents of the client_tag are exposed + // to the server via this field, take care when defining it that there is + // enough entropy to mask any secrets that the server shouldn't learn. // // The difference between server_defined_unique_tag and - // client_defined_unique_tag is the creator of the entity. Server defined + // client_tag_hash is the creator of the entity. Server defined // tags are entities created by the server at account creation, // while client defined tags are entities created by the client at any time. // // During GetUpdates, a sync entity update will come back with ONE of: - // a) Originator and cache id - If client committed the item as non "unique" + // a) Originator item and cache id - for bookmarks created using old versions + // of the browser (latest M93, before https://crrev.com/c/2945119). // b) Server tag - If server committed the item as unique // c) Client tag - If client committed the item as unique // @@ -189,7 +192,10 @@ message SyncEntity { // If present in Commit updates for the entity, it will be ignored. // // May be returned in GetUpdatesMessage and sent up in CommitMessage. - optional string client_defined_unique_tag = 23; + optional string client_tag_hash = 23; + + // Field 23 was previously named client_defined_unique_tag, avoid reuse. + reserved "client_defined_unique_tag"; reserved 24; reserved "ordinal_in_parent"; diff --git a/schema/protobuf/sync_pb/sync_enums.pb.go b/schema/protobuf/sync_pb/sync_enums.pb.go index 37cde824..56383035 100644 --- a/schema/protobuf/sync_pb/sync_enums.pb.go +++ b/schema/protobuf/sync_pb/sync_enums.pb.go @@ -1,4 +1,4 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2012 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // @@ -11,7 +11,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.0 +// protoc-gen-go v1.31.0 // protoc v3.21.1 // source: sync_enums.proto @@ -456,17 +456,27 @@ func (SyncEnums_Action) EnumDescriptor() ([]byte, []int) { return file_sync_enums_proto_rawDescGZIP(), []int{0, 4} } -// Please keep in sync with chrome/android/java/.../ForeignSessionHelper.java +// New enums to describe the device type were introduced; OsType and +// FormFactor. Deprecated 12/2022. +// TODO(1395353): Remove deprecated values from DeviceType enum. type SyncEnums_DeviceType int32 const ( - SyncEnums_TYPE_UNSET SyncEnums_DeviceType = 0 - SyncEnums_TYPE_WIN SyncEnums_DeviceType = 1 - SyncEnums_TYPE_MAC SyncEnums_DeviceType = 2 - SyncEnums_TYPE_LINUX SyncEnums_DeviceType = 3 - SyncEnums_TYPE_CROS SyncEnums_DeviceType = 4 - SyncEnums_TYPE_OTHER SyncEnums_DeviceType = 5 - SyncEnums_TYPE_PHONE SyncEnums_DeviceType = 6 + // Deprecated: Marked as deprecated in sync_enums.proto. + SyncEnums_TYPE_UNSET SyncEnums_DeviceType = 0 + // Deprecated: Marked as deprecated in sync_enums.proto. + SyncEnums_TYPE_WIN SyncEnums_DeviceType = 1 + // Deprecated: Marked as deprecated in sync_enums.proto. + SyncEnums_TYPE_MAC SyncEnums_DeviceType = 2 + // Deprecated: Marked as deprecated in sync_enums.proto. + SyncEnums_TYPE_LINUX SyncEnums_DeviceType = 3 + // Deprecated: Marked as deprecated in sync_enums.proto. + SyncEnums_TYPE_CROS SyncEnums_DeviceType = 4 + // Deprecated: Marked as deprecated in sync_enums.proto. + SyncEnums_TYPE_OTHER SyncEnums_DeviceType = 5 + // Deprecated: Marked as deprecated in sync_enums.proto. + SyncEnums_TYPE_PHONE SyncEnums_DeviceType = 6 + // Deprecated: Marked as deprecated in sync_enums.proto. SyncEnums_TYPE_TABLET SyncEnums_DeviceType = 7 ) @@ -531,6 +541,271 @@ func (SyncEnums_DeviceType) EnumDescriptor() ([]byte, []int) { return file_sync_enums_proto_rawDescGZIP(), []int{0, 5} } +// Types of device OS. +type SyncEnums_OsType int32 + +const ( + SyncEnums_OS_TYPE_UNSPECIFIED SyncEnums_OsType = 0 + SyncEnums_OS_TYPE_WINDOWS SyncEnums_OsType = 1 + SyncEnums_OS_TYPE_MAC SyncEnums_OsType = 2 + SyncEnums_OS_TYPE_LINUX SyncEnums_OsType = 3 + SyncEnums_OS_TYPE_CHROME_OS_ASH SyncEnums_OsType = 4 + SyncEnums_OS_TYPE_ANDROID SyncEnums_OsType = 5 + SyncEnums_OS_TYPE_IOS SyncEnums_OsType = 6 + SyncEnums_OS_TYPE_CHROME_OS_LACROS SyncEnums_OsType = 7 + SyncEnums_OS_TYPE_FUCHSIA SyncEnums_OsType = 8 +) + +// Enum value maps for SyncEnums_OsType. +var ( + SyncEnums_OsType_name = map[int32]string{ + 0: "OS_TYPE_UNSPECIFIED", + 1: "OS_TYPE_WINDOWS", + 2: "OS_TYPE_MAC", + 3: "OS_TYPE_LINUX", + 4: "OS_TYPE_CHROME_OS_ASH", + 5: "OS_TYPE_ANDROID", + 6: "OS_TYPE_IOS", + 7: "OS_TYPE_CHROME_OS_LACROS", + 8: "OS_TYPE_FUCHSIA", + } + SyncEnums_OsType_value = map[string]int32{ + "OS_TYPE_UNSPECIFIED": 0, + "OS_TYPE_WINDOWS": 1, + "OS_TYPE_MAC": 2, + "OS_TYPE_LINUX": 3, + "OS_TYPE_CHROME_OS_ASH": 4, + "OS_TYPE_ANDROID": 5, + "OS_TYPE_IOS": 6, + "OS_TYPE_CHROME_OS_LACROS": 7, + "OS_TYPE_FUCHSIA": 8, + } +) + +func (x SyncEnums_OsType) Enum() *SyncEnums_OsType { + p := new(SyncEnums_OsType) + *p = x + return p +} + +func (x SyncEnums_OsType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (SyncEnums_OsType) Descriptor() protoreflect.EnumDescriptor { + return file_sync_enums_proto_enumTypes[6].Descriptor() +} + +func (SyncEnums_OsType) Type() protoreflect.EnumType { + return &file_sync_enums_proto_enumTypes[6] +} + +func (x SyncEnums_OsType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Do not use. +func (x *SyncEnums_OsType) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err + } + *x = SyncEnums_OsType(num) + return nil +} + +// Deprecated: Use SyncEnums_OsType.Descriptor instead. +func (SyncEnums_OsType) EnumDescriptor() ([]byte, []int) { + return file_sync_enums_proto_rawDescGZIP(), []int{0, 6} +} + +// Types of device form factors. +type SyncEnums_DeviceFormFactor int32 + +const ( + SyncEnums_DEVICE_FORM_FACTOR_UNSPECIFIED SyncEnums_DeviceFormFactor = 0 + SyncEnums_DEVICE_FORM_FACTOR_DESKTOP SyncEnums_DeviceFormFactor = 1 + SyncEnums_DEVICE_FORM_FACTOR_PHONE SyncEnums_DeviceFormFactor = 2 + SyncEnums_DEVICE_FORM_FACTOR_TABLET SyncEnums_DeviceFormFactor = 3 +) + +// Enum value maps for SyncEnums_DeviceFormFactor. +var ( + SyncEnums_DeviceFormFactor_name = map[int32]string{ + 0: "DEVICE_FORM_FACTOR_UNSPECIFIED", + 1: "DEVICE_FORM_FACTOR_DESKTOP", + 2: "DEVICE_FORM_FACTOR_PHONE", + 3: "DEVICE_FORM_FACTOR_TABLET", + } + SyncEnums_DeviceFormFactor_value = map[string]int32{ + "DEVICE_FORM_FACTOR_UNSPECIFIED": 0, + "DEVICE_FORM_FACTOR_DESKTOP": 1, + "DEVICE_FORM_FACTOR_PHONE": 2, + "DEVICE_FORM_FACTOR_TABLET": 3, + } +) + +func (x SyncEnums_DeviceFormFactor) Enum() *SyncEnums_DeviceFormFactor { + p := new(SyncEnums_DeviceFormFactor) + *p = x + return p +} + +func (x SyncEnums_DeviceFormFactor) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (SyncEnums_DeviceFormFactor) Descriptor() protoreflect.EnumDescriptor { + return file_sync_enums_proto_enumTypes[7].Descriptor() +} + +func (SyncEnums_DeviceFormFactor) Type() protoreflect.EnumType { + return &file_sync_enums_proto_enumTypes[7] +} + +func (x SyncEnums_DeviceFormFactor) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Do not use. +func (x *SyncEnums_DeviceFormFactor) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err + } + *x = SyncEnums_DeviceFormFactor(num) + return nil +} + +// Deprecated: Use SyncEnums_DeviceFormFactor.Descriptor instead. +func (SyncEnums_DeviceFormFactor) EnumDescriptor() ([]byte, []int) { + return file_sync_enums_proto_rawDescGZIP(), []int{0, 7} +} + +// Types of browsers; used for history-related data types. +type SyncEnums_BrowserType int32 + +const ( + SyncEnums_BROWSER_TYPE_UNKNOWN SyncEnums_BrowserType = 0 + SyncEnums_TYPE_TABBED SyncEnums_BrowserType = 1 // A normal tabbed window. + SyncEnums_TYPE_POPUP SyncEnums_BrowserType = 2 // A popup window. + SyncEnums_TYPE_CUSTOM_TAB SyncEnums_BrowserType = 3 // A custom tab within an app. +) + +// Enum value maps for SyncEnums_BrowserType. +var ( + SyncEnums_BrowserType_name = map[int32]string{ + 0: "BROWSER_TYPE_UNKNOWN", + 1: "TYPE_TABBED", + 2: "TYPE_POPUP", + 3: "TYPE_CUSTOM_TAB", + } + SyncEnums_BrowserType_value = map[string]int32{ + "BROWSER_TYPE_UNKNOWN": 0, + "TYPE_TABBED": 1, + "TYPE_POPUP": 2, + "TYPE_CUSTOM_TAB": 3, + } +) + +func (x SyncEnums_BrowserType) Enum() *SyncEnums_BrowserType { + p := new(SyncEnums_BrowserType) + *p = x + return p +} + +func (x SyncEnums_BrowserType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (SyncEnums_BrowserType) Descriptor() protoreflect.EnumDescriptor { + return file_sync_enums_proto_enumTypes[8].Descriptor() +} + +func (SyncEnums_BrowserType) Type() protoreflect.EnumType { + return &file_sync_enums_proto_enumTypes[8] +} + +func (x SyncEnums_BrowserType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Do not use. +func (x *SyncEnums_BrowserType) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err + } + *x = SyncEnums_BrowserType(num) + return nil +} + +// Deprecated: Use SyncEnums_BrowserType.Descriptor instead. +func (SyncEnums_BrowserType) EnumDescriptor() ([]byte, []int) { + return file_sync_enums_proto_rawDescGZIP(), []int{0, 8} +} + +// The "password state" is the presence/absence of a password field on a +// website; used for history-related data types. +type SyncEnums_PasswordState int32 + +const ( + SyncEnums_PASSWORD_STATE_UNKNOWN SyncEnums_PasswordState = 0 + SyncEnums_NO_PASSWORD_FIELD SyncEnums_PasswordState = 1 + SyncEnums_HAS_PASSWORD_FIELD SyncEnums_PasswordState = 2 +) + +// Enum value maps for SyncEnums_PasswordState. +var ( + SyncEnums_PasswordState_name = map[int32]string{ + 0: "PASSWORD_STATE_UNKNOWN", + 1: "NO_PASSWORD_FIELD", + 2: "HAS_PASSWORD_FIELD", + } + SyncEnums_PasswordState_value = map[string]int32{ + "PASSWORD_STATE_UNKNOWN": 0, + "NO_PASSWORD_FIELD": 1, + "HAS_PASSWORD_FIELD": 2, + } +) + +func (x SyncEnums_PasswordState) Enum() *SyncEnums_PasswordState { + p := new(SyncEnums_PasswordState) + *p = x + return p +} + +func (x SyncEnums_PasswordState) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (SyncEnums_PasswordState) Descriptor() protoreflect.EnumDescriptor { + return file_sync_enums_proto_enumTypes[9].Descriptor() +} + +func (SyncEnums_PasswordState) Type() protoreflect.EnumType { + return &file_sync_enums_proto_enumTypes[9] +} + +func (x SyncEnums_PasswordState) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Do not use. +func (x *SyncEnums_PasswordState) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err + } + *x = SyncEnums_PasswordState(num) + return nil +} + +// Deprecated: Use SyncEnums_PasswordState.Descriptor instead. +func (SyncEnums_PasswordState) EnumDescriptor() ([]byte, []int) { + return file_sync_enums_proto_rawDescGZIP(), []int{0, 9} +} + // This is the successor to GetUpdatesSource. It merges the "normal mode" // values (LOCAL, NOTIFICATION and DATATYPE_REFRESH), which were never really // mutually exclusive to being with, into the GU_TRIGGER value. It also @@ -603,11 +878,11 @@ func (x SyncEnums_GetUpdatesOrigin) String() string { } func (SyncEnums_GetUpdatesOrigin) Descriptor() protoreflect.EnumDescriptor { - return file_sync_enums_proto_enumTypes[6].Descriptor() + return file_sync_enums_proto_enumTypes[10].Descriptor() } func (SyncEnums_GetUpdatesOrigin) Type() protoreflect.EnumType { - return &file_sync_enums_proto_enumTypes[6] + return &file_sync_enums_proto_enumTypes[10] } func (x SyncEnums_GetUpdatesOrigin) Number() protoreflect.EnumNumber { @@ -626,7 +901,7 @@ func (x *SyncEnums_GetUpdatesOrigin) UnmarshalJSON(b []byte) error { // Deprecated: Use SyncEnums_GetUpdatesOrigin.Descriptor instead. func (SyncEnums_GetUpdatesOrigin) EnumDescriptor() ([]byte, []int) { - return file_sync_enums_proto_rawDescGZIP(), []int{0, 6} + return file_sync_enums_proto_rawDescGZIP(), []int{0, 10} } type SyncEnums struct { @@ -671,7 +946,7 @@ var File_sync_enums_proto protoreflect.FileDescriptor var file_sync_enums_proto_rawDesc = []byte{ 0x0a, 0x10, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x73, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x12, 0x07, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x22, 0xa4, 0x0a, 0x0a, 0x09, + 0x74, 0x6f, 0x12, 0x07, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x22, 0xe6, 0x0e, 0x0a, 0x09, 0x53, 0x79, 0x6e, 0x63, 0x45, 0x6e, 0x75, 0x6d, 0x73, 0x22, 0xae, 0x03, 0x0a, 0x17, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x74, 0x6f, 0x6e, 0x44, 0x65, 0x62, 0x75, 0x67, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x18, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, @@ -734,29 +1009,66 @@ var file_sync_enums_proto_rawDesc = []byte{ 0x30, 0x0a, 0x06, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x0e, 0x55, 0x50, 0x47, 0x52, 0x41, 0x44, 0x45, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, - 0x05, 0x22, 0x88, 0x01, 0x0a, 0x0a, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x45, 0x54, 0x10, 0x00, - 0x12, 0x0c, 0x0a, 0x08, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x57, 0x49, 0x4e, 0x10, 0x01, 0x12, 0x0c, - 0x0a, 0x08, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x41, 0x43, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, - 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4c, 0x49, 0x4e, 0x55, 0x58, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, - 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x52, 0x4f, 0x53, 0x10, 0x04, 0x12, 0x0e, 0x0a, 0x0a, 0x54, - 0x59, 0x50, 0x45, 0x5f, 0x4f, 0x54, 0x48, 0x45, 0x52, 0x10, 0x05, 0x12, 0x0e, 0x0a, 0x0a, 0x54, - 0x59, 0x50, 0x45, 0x5f, 0x50, 0x48, 0x4f, 0x4e, 0x45, 0x10, 0x06, 0x12, 0x0f, 0x0a, 0x0b, 0x54, - 0x59, 0x50, 0x45, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x54, 0x10, 0x07, 0x22, 0xb3, 0x01, 0x0a, - 0x10, 0x47, 0x65, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x4f, 0x72, 0x69, 0x67, 0x69, - 0x6e, 0x12, 0x12, 0x0a, 0x0e, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x4f, 0x52, 0x49, - 0x47, 0x49, 0x4e, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x50, 0x45, 0x52, 0x49, 0x4f, 0x44, 0x49, - 0x43, 0x10, 0x04, 0x12, 0x1c, 0x0a, 0x18, 0x4e, 0x45, 0x57, 0x4c, 0x59, 0x5f, 0x53, 0x55, 0x50, - 0x50, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x54, 0x59, 0x50, 0x45, 0x10, - 0x07, 0x12, 0x0d, 0x0a, 0x09, 0x4d, 0x49, 0x47, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x08, - 0x12, 0x0e, 0x0a, 0x0a, 0x4e, 0x45, 0x57, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x10, 0x09, - 0x12, 0x13, 0x0a, 0x0f, 0x52, 0x45, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x55, 0x52, 0x41, 0x54, - 0x49, 0x4f, 0x4e, 0x10, 0x0a, 0x12, 0x0e, 0x0a, 0x0a, 0x47, 0x55, 0x5f, 0x54, 0x52, 0x49, 0x47, - 0x47, 0x45, 0x52, 0x10, 0x0c, 0x12, 0x09, 0x0a, 0x05, 0x52, 0x45, 0x54, 0x52, 0x59, 0x10, 0x0d, - 0x12, 0x10, 0x0a, 0x0c, 0x50, 0x52, 0x4f, 0x47, 0x52, 0x41, 0x4d, 0x4d, 0x41, 0x54, 0x49, 0x43, - 0x10, 0x0e, 0x42, 0x2b, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, - 0x75, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x73, 0x79, - 0x6e, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x03, 0x50, 0x01, + 0x05, 0x22, 0xa8, 0x01, 0x0a, 0x0a, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x12, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x45, 0x54, 0x10, 0x00, + 0x1a, 0x02, 0x08, 0x01, 0x12, 0x10, 0x0a, 0x08, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x57, 0x49, 0x4e, + 0x10, 0x01, 0x1a, 0x02, 0x08, 0x01, 0x12, 0x10, 0x0a, 0x08, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, + 0x41, 0x43, 0x10, 0x02, 0x1a, 0x02, 0x08, 0x01, 0x12, 0x12, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x4c, 0x49, 0x4e, 0x55, 0x58, 0x10, 0x03, 0x1a, 0x02, 0x08, 0x01, 0x12, 0x11, 0x0a, 0x09, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x52, 0x4f, 0x53, 0x10, 0x04, 0x1a, 0x02, 0x08, 0x01, 0x12, + 0x12, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4f, 0x54, 0x48, 0x45, 0x52, 0x10, 0x05, 0x1a, + 0x02, 0x08, 0x01, 0x12, 0x12, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x48, 0x4f, 0x4e, + 0x45, 0x10, 0x06, 0x1a, 0x02, 0x08, 0x01, 0x12, 0x13, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, + 0x54, 0x41, 0x42, 0x4c, 0x45, 0x54, 0x10, 0x07, 0x1a, 0x02, 0x08, 0x01, 0x22, 0xce, 0x01, 0x0a, + 0x06, 0x4f, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x17, 0x0a, 0x13, 0x4f, 0x53, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, + 0x12, 0x13, 0x0a, 0x0f, 0x4f, 0x53, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x57, 0x49, 0x4e, 0x44, + 0x4f, 0x57, 0x53, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x4f, 0x53, 0x5f, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x4d, 0x41, 0x43, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x4f, 0x53, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x4c, 0x49, 0x4e, 0x55, 0x58, 0x10, 0x03, 0x12, 0x19, 0x0a, 0x15, 0x4f, 0x53, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x48, 0x52, 0x4f, 0x4d, 0x45, 0x5f, 0x4f, 0x53, 0x5f, 0x41, + 0x53, 0x48, 0x10, 0x04, 0x12, 0x13, 0x0a, 0x0f, 0x4f, 0x53, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, + 0x41, 0x4e, 0x44, 0x52, 0x4f, 0x49, 0x44, 0x10, 0x05, 0x12, 0x0f, 0x0a, 0x0b, 0x4f, 0x53, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4f, 0x53, 0x10, 0x06, 0x12, 0x1c, 0x0a, 0x18, 0x4f, 0x53, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x48, 0x52, 0x4f, 0x4d, 0x45, 0x5f, 0x4f, 0x53, 0x5f, + 0x4c, 0x41, 0x43, 0x52, 0x4f, 0x53, 0x10, 0x07, 0x12, 0x13, 0x0a, 0x0f, 0x4f, 0x53, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x46, 0x55, 0x43, 0x48, 0x53, 0x49, 0x41, 0x10, 0x08, 0x22, 0x93, 0x01, + 0x0a, 0x10, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x46, 0x61, 0x63, 0x74, + 0x6f, 0x72, 0x12, 0x22, 0x0a, 0x1e, 0x44, 0x45, 0x56, 0x49, 0x43, 0x45, 0x5f, 0x46, 0x4f, 0x52, + 0x4d, 0x5f, 0x46, 0x41, 0x43, 0x54, 0x4f, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, + 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1e, 0x0a, 0x1a, 0x44, 0x45, 0x56, 0x49, 0x43, 0x45, + 0x5f, 0x46, 0x4f, 0x52, 0x4d, 0x5f, 0x46, 0x41, 0x43, 0x54, 0x4f, 0x52, 0x5f, 0x44, 0x45, 0x53, + 0x4b, 0x54, 0x4f, 0x50, 0x10, 0x01, 0x12, 0x1c, 0x0a, 0x18, 0x44, 0x45, 0x56, 0x49, 0x43, 0x45, + 0x5f, 0x46, 0x4f, 0x52, 0x4d, 0x5f, 0x46, 0x41, 0x43, 0x54, 0x4f, 0x52, 0x5f, 0x50, 0x48, 0x4f, + 0x4e, 0x45, 0x10, 0x02, 0x12, 0x1d, 0x0a, 0x19, 0x44, 0x45, 0x56, 0x49, 0x43, 0x45, 0x5f, 0x46, + 0x4f, 0x52, 0x4d, 0x5f, 0x46, 0x41, 0x43, 0x54, 0x4f, 0x52, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, + 0x54, 0x10, 0x03, 0x22, 0x5d, 0x0a, 0x0b, 0x42, 0x72, 0x6f, 0x77, 0x73, 0x65, 0x72, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x18, 0x0a, 0x14, 0x42, 0x52, 0x4f, 0x57, 0x53, 0x45, 0x52, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x54, 0x41, 0x42, 0x42, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0e, 0x0a, + 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x4f, 0x50, 0x55, 0x50, 0x10, 0x02, 0x12, 0x13, 0x0a, + 0x0f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x5f, 0x54, 0x41, 0x42, + 0x10, 0x03, 0x22, 0x5a, 0x0a, 0x0d, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x16, 0x50, 0x41, 0x53, 0x53, 0x57, 0x4f, 0x52, 0x44, 0x5f, + 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, + 0x15, 0x0a, 0x11, 0x4e, 0x4f, 0x5f, 0x50, 0x41, 0x53, 0x53, 0x57, 0x4f, 0x52, 0x44, 0x5f, 0x46, + 0x49, 0x45, 0x4c, 0x44, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x48, 0x41, 0x53, 0x5f, 0x50, 0x41, + 0x53, 0x53, 0x57, 0x4f, 0x52, 0x44, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x10, 0x02, 0x22, 0xb3, + 0x01, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x4f, 0x72, 0x69, + 0x67, 0x69, 0x6e, 0x12, 0x12, 0x0a, 0x0e, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x4f, + 0x52, 0x49, 0x47, 0x49, 0x4e, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x50, 0x45, 0x52, 0x49, 0x4f, + 0x44, 0x49, 0x43, 0x10, 0x04, 0x12, 0x1c, 0x0a, 0x18, 0x4e, 0x45, 0x57, 0x4c, 0x59, 0x5f, 0x53, + 0x55, 0x50, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x54, 0x59, 0x50, + 0x45, 0x10, 0x07, 0x12, 0x0d, 0x0a, 0x09, 0x4d, 0x49, 0x47, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, + 0x10, 0x08, 0x12, 0x0e, 0x0a, 0x0a, 0x4e, 0x45, 0x57, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, + 0x10, 0x09, 0x12, 0x13, 0x0a, 0x0f, 0x52, 0x45, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x55, 0x52, + 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x0a, 0x12, 0x0e, 0x0a, 0x0a, 0x47, 0x55, 0x5f, 0x54, 0x52, + 0x49, 0x47, 0x47, 0x45, 0x52, 0x10, 0x0c, 0x12, 0x09, 0x0a, 0x05, 0x52, 0x45, 0x54, 0x52, 0x59, + 0x10, 0x0d, 0x12, 0x10, 0x0a, 0x0c, 0x50, 0x52, 0x4f, 0x47, 0x52, 0x41, 0x4d, 0x4d, 0x41, 0x54, + 0x49, 0x43, 0x10, 0x0e, 0x42, 0x36, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, 0x72, 0x6f, + 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2e, + 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x03, 0x50, + 0x01, 0x5a, 0x09, 0x2e, 0x2f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, } var ( @@ -771,7 +1083,7 @@ func file_sync_enums_proto_rawDescGZIP() []byte { return file_sync_enums_proto_rawDescData } -var file_sync_enums_proto_enumTypes = make([]protoimpl.EnumInfo, 7) +var file_sync_enums_proto_enumTypes = make([]protoimpl.EnumInfo, 11) var file_sync_enums_proto_msgTypes = make([]protoimpl.MessageInfo, 1) var file_sync_enums_proto_goTypes = []interface{}{ (SyncEnums_SingletonDebugEventType)(0), // 0: sync_pb.SyncEnums.SingletonDebugEventType @@ -780,8 +1092,12 @@ var file_sync_enums_proto_goTypes = []interface{}{ (SyncEnums_ErrorType)(0), // 3: sync_pb.SyncEnums.ErrorType (SyncEnums_Action)(0), // 4: sync_pb.SyncEnums.Action (SyncEnums_DeviceType)(0), // 5: sync_pb.SyncEnums.DeviceType - (SyncEnums_GetUpdatesOrigin)(0), // 6: sync_pb.SyncEnums.GetUpdatesOrigin - (*SyncEnums)(nil), // 7: sync_pb.SyncEnums + (SyncEnums_OsType)(0), // 6: sync_pb.SyncEnums.OsType + (SyncEnums_DeviceFormFactor)(0), // 7: sync_pb.SyncEnums.DeviceFormFactor + (SyncEnums_BrowserType)(0), // 8: sync_pb.SyncEnums.BrowserType + (SyncEnums_PasswordState)(0), // 9: sync_pb.SyncEnums.PasswordState + (SyncEnums_GetUpdatesOrigin)(0), // 10: sync_pb.SyncEnums.GetUpdatesOrigin + (*SyncEnums)(nil), // 11: sync_pb.SyncEnums } var file_sync_enums_proto_depIdxs = []int32{ 0, // [0:0] is the sub-list for method output_type @@ -815,7 +1131,7 @@ func file_sync_enums_proto_init() { File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_sync_enums_proto_rawDesc, - NumEnums: 7, + NumEnums: 11, NumMessages: 1, NumExtensions: 0, NumServices: 0, diff --git a/schema/protobuf/sync_pb/sync_enums.proto b/schema/protobuf/sync_pb/sync_enums.proto index 127ab735..f5d937d3 100644 --- a/schema/protobuf/sync_pb/sync_enums.proto +++ b/schema/protobuf/sync_pb/sync_enums.proto @@ -1,4 +1,4 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2012 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // @@ -11,6 +11,8 @@ syntax = "proto2"; +option go_package = "./sync_pb"; + option java_multiple_files = true; option java_package = "org.chromium.components.sync.protocol"; @@ -138,16 +140,55 @@ message SyncEnums { UNKNOWN_ACTION = 5; // This is the default. } - // Please keep in sync with chrome/android/java/.../ForeignSessionHelper.java + // New enums to describe the device type were introduced; OsType and + // FormFactor. Deprecated 12/2022. + // TODO(1395353): Remove deprecated values from DeviceType enum. enum DeviceType { - TYPE_UNSET = 0; - TYPE_WIN = 1; - TYPE_MAC = 2; - TYPE_LINUX = 3; - TYPE_CROS = 4; - TYPE_OTHER = 5; - TYPE_PHONE = 6; - TYPE_TABLET = 7; + TYPE_UNSET = 0 [deprecated = true]; + TYPE_WIN = 1 [deprecated = true]; + TYPE_MAC = 2 [deprecated = true]; + TYPE_LINUX = 3 [deprecated = true]; + TYPE_CROS = 4 [deprecated = true]; + TYPE_OTHER = 5 [deprecated = true]; + TYPE_PHONE = 6 [deprecated = true]; + TYPE_TABLET = 7 [deprecated = true]; + } + + // Types of device OS. + enum OsType { + OS_TYPE_UNSPECIFIED = 0; + OS_TYPE_WINDOWS = 1; + OS_TYPE_MAC = 2; + OS_TYPE_LINUX = 3; + OS_TYPE_CHROME_OS_ASH = 4; + OS_TYPE_ANDROID = 5; + OS_TYPE_IOS = 6; + OS_TYPE_CHROME_OS_LACROS = 7; + OS_TYPE_FUCHSIA = 8; + } + + // Types of device form factors. + enum DeviceFormFactor { + DEVICE_FORM_FACTOR_UNSPECIFIED = 0; + DEVICE_FORM_FACTOR_DESKTOP = 1; + DEVICE_FORM_FACTOR_PHONE = 2; + DEVICE_FORM_FACTOR_TABLET = 3; + } + + // Types of browsers; used for history-related data types. + enum BrowserType { + BROWSER_TYPE_UNKNOWN = 0; + TYPE_TABBED = 1; // A normal tabbed window. + TYPE_POPUP = 2; // A popup window. + TYPE_CUSTOM_TAB = 3; // A custom tab within an app. + } + + // The "password state" is the presence/absence of a password field on a + // website; used for history-related data types. + enum PasswordState { + PASSWORD_STATE_UNKNOWN = 0; + NO_PASSWORD_FIELD = 1; + HAS_PASSWORD_FIELD = 2; } // This is the successor to GetUpdatesSource. It merges the "normal mode" diff --git a/schema/protobuf/sync_pb/sync_invalidations_payload.pb.go b/schema/protobuf/sync_pb/sync_invalidations_payload.pb.go index f0137a33..7f9648c1 100644 --- a/schema/protobuf/sync_pb/sync_invalidations_payload.pb.go +++ b/schema/protobuf/sync_pb/sync_invalidations_payload.pb.go @@ -1,4 +1,4 @@ -// Copyright 2020 The Chromium Authors. All rights reserved. +// Copyright 2020 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -7,7 +7,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.0 +// protoc-gen-go v1.31.0 // protoc v3.21.1 // source: sync_invalidations_payload.proto @@ -34,7 +34,8 @@ type SyncInvalidationsPayload struct { unknownFields protoimpl.UnknownFields // This field contains information about each data type which needs to be - // updated. + // updated. Note that it may contain data types which current client is not + // interested in. DataTypeInvalidations []*SyncInvalidationsPayload_DataTypeInvalidation `protobuf:"bytes,1,rep,name=data_type_invalidations,json=dataTypeInvalidations" json:"data_type_invalidations,omitempty"` // Opaque field, which has to be provided as part of resulting GetUpdates // back to the server. @@ -167,9 +168,10 @@ var file_sync_invalidations_payload_proto_rawDesc = []byte{ 0x70, 0x65, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0c, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x64, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, - 0x42, 0x2b, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, + 0x42, 0x36, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x73, 0x79, 0x6e, 0x63, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x03, 0x50, 0x01, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x03, 0x50, 0x01, 0x5a, 0x09, 0x2e, + 0x2f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, } var ( diff --git a/schema/protobuf/sync_pb/sync_invalidations_payload.proto b/schema/protobuf/sync_pb/sync_invalidations_payload.proto index ded35026..0916d965 100644 --- a/schema/protobuf/sync_pb/sync_invalidations_payload.proto +++ b/schema/protobuf/sync_pb/sync_invalidations_payload.proto @@ -1,4 +1,4 @@ -// Copyright 2020 The Chromium Authors. All rights reserved. +// Copyright 2020 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -7,6 +7,8 @@ syntax = "proto2"; +option go_package = "./sync_pb"; + option java_multiple_files = true; option java_package = "org.chromium.components.sync.protocol"; @@ -24,7 +26,8 @@ message SyncInvalidationsPayload { } // This field contains information about each data type which needs to be - // updated. + // updated. Note that it may contain data types which current client is not + // interested in. repeated DataTypeInvalidation data_type_invalidations = 1; // Opaque field, which has to be provided as part of resulting GetUpdates diff --git a/schema/protobuf/sync_pb/synced_notification_app_info_specifics.pb.go b/schema/protobuf/sync_pb/synced_notification_app_info_specifics.pb.go deleted file mode 100644 index d93cf987..00000000 --- a/schema/protobuf/sync_pb/synced_notification_app_info_specifics.pb.go +++ /dev/null @@ -1,144 +0,0 @@ -// Copyright 2014 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. -// -// Sync protocol datatype extension for synced notification app info objects. -// DO NOT USE: This datatype is deprecated. - -// Code generated by protoc-gen-go. DO NOT EDIT. -// versions: -// protoc-gen-go v1.28.0 -// protoc v3.21.1 -// source: synced_notification_app_info_specifics.proto - -package sync_pb - -import ( - protoreflect "google.golang.org/protobuf/reflect/protoreflect" - protoimpl "google.golang.org/protobuf/runtime/protoimpl" - reflect "reflect" - sync "sync" -) - -const ( - // Verify that this generated code is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) - // Verify that runtime/protoimpl is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) -) - -// This message is kept around for backwards compatibility sake. -type SyncedNotificationAppInfoSpecifics struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields -} - -func (x *SyncedNotificationAppInfoSpecifics) Reset() { - *x = SyncedNotificationAppInfoSpecifics{} - if protoimpl.UnsafeEnabled { - mi := &file_synced_notification_app_info_specifics_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SyncedNotificationAppInfoSpecifics) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SyncedNotificationAppInfoSpecifics) ProtoMessage() {} - -func (x *SyncedNotificationAppInfoSpecifics) ProtoReflect() protoreflect.Message { - mi := &file_synced_notification_app_info_specifics_proto_msgTypes[0] - 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 SyncedNotificationAppInfoSpecifics.ProtoReflect.Descriptor instead. -func (*SyncedNotificationAppInfoSpecifics) Descriptor() ([]byte, []int) { - return file_synced_notification_app_info_specifics_proto_rawDescGZIP(), []int{0} -} - -var File_synced_notification_app_info_specifics_proto protoreflect.FileDescriptor - -var file_synced_notification_app_info_specifics_proto_rawDesc = []byte{ - 0x0a, 0x2c, 0x73, 0x79, 0x6e, 0x63, 0x65, 0x64, 0x5f, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x70, 0x70, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x5f, 0x73, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x07, - 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x22, 0x24, 0x0a, 0x22, 0x53, 0x79, 0x6e, 0x63, 0x65, - 0x64, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x70, 0x70, - 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x42, 0x2b, 0x0a, - 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x63, 0x6f, - 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x03, 0x50, 0x01, -} - -var ( - file_synced_notification_app_info_specifics_proto_rawDescOnce sync.Once - file_synced_notification_app_info_specifics_proto_rawDescData = file_synced_notification_app_info_specifics_proto_rawDesc -) - -func file_synced_notification_app_info_specifics_proto_rawDescGZIP() []byte { - file_synced_notification_app_info_specifics_proto_rawDescOnce.Do(func() { - file_synced_notification_app_info_specifics_proto_rawDescData = protoimpl.X.CompressGZIP(file_synced_notification_app_info_specifics_proto_rawDescData) - }) - return file_synced_notification_app_info_specifics_proto_rawDescData -} - -var file_synced_notification_app_info_specifics_proto_msgTypes = make([]protoimpl.MessageInfo, 1) -var file_synced_notification_app_info_specifics_proto_goTypes = []interface{}{ - (*SyncedNotificationAppInfoSpecifics)(nil), // 0: sync_pb.SyncedNotificationAppInfoSpecifics -} -var file_synced_notification_app_info_specifics_proto_depIdxs = []int32{ - 0, // [0:0] is the sub-list for method output_type - 0, // [0:0] is the sub-list for method input_type - 0, // [0:0] is the sub-list for extension type_name - 0, // [0:0] is the sub-list for extension extendee - 0, // [0:0] is the sub-list for field type_name -} - -func init() { file_synced_notification_app_info_specifics_proto_init() } -func file_synced_notification_app_info_specifics_proto_init() { - if File_synced_notification_app_info_specifics_proto != nil { - return - } - if !protoimpl.UnsafeEnabled { - file_synced_notification_app_info_specifics_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SyncedNotificationAppInfoSpecifics); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } - type x struct{} - out := protoimpl.TypeBuilder{ - File: protoimpl.DescBuilder{ - GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_synced_notification_app_info_specifics_proto_rawDesc, - NumEnums: 0, - NumMessages: 1, - NumExtensions: 0, - NumServices: 0, - }, - GoTypes: file_synced_notification_app_info_specifics_proto_goTypes, - DependencyIndexes: file_synced_notification_app_info_specifics_proto_depIdxs, - MessageInfos: file_synced_notification_app_info_specifics_proto_msgTypes, - }.Build() - File_synced_notification_app_info_specifics_proto = out.File - file_synced_notification_app_info_specifics_proto_rawDesc = nil - file_synced_notification_app_info_specifics_proto_goTypes = nil - file_synced_notification_app_info_specifics_proto_depIdxs = nil -} diff --git a/schema/protobuf/sync_pb/synced_notification_app_info_specifics.proto b/schema/protobuf/sync_pb/synced_notification_app_info_specifics.proto deleted file mode 100644 index f8dea52b..00000000 --- a/schema/protobuf/sync_pb/synced_notification_app_info_specifics.proto +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright 2014 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. -// -// Sync protocol datatype extension for synced notification app info objects. -// DO NOT USE: This datatype is deprecated. - -syntax = "proto2"; - -option java_multiple_files = true; -option java_package = "org.chromium.components.sync.protocol"; - -option optimize_for = LITE_RUNTIME; - -package sync_pb; - -// This message is kept around for backwards compatibility sake. -message SyncedNotificationAppInfoSpecifics {} diff --git a/schema/protobuf/sync_pb/synced_notification_specifics.pb.go b/schema/protobuf/sync_pb/synced_notification_specifics.pb.go deleted file mode 100644 index 8a17d375..00000000 --- a/schema/protobuf/sync_pb/synced_notification_specifics.pb.go +++ /dev/null @@ -1,143 +0,0 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. -// -// Sync protocol datatype extension for synced notifications. -// DO NOT USE: This datatype is deprecated. - -// Code generated by protoc-gen-go. DO NOT EDIT. -// versions: -// protoc-gen-go v1.28.0 -// protoc v3.21.1 -// source: synced_notification_specifics.proto - -package sync_pb - -import ( - protoreflect "google.golang.org/protobuf/reflect/protoreflect" - protoimpl "google.golang.org/protobuf/runtime/protoimpl" - reflect "reflect" - sync "sync" -) - -const ( - // Verify that this generated code is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) - // Verify that runtime/protoimpl is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) -) - -// This message is kept around for backwards compatibility sake. -type SyncedNotificationSpecifics struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields -} - -func (x *SyncedNotificationSpecifics) Reset() { - *x = SyncedNotificationSpecifics{} - if protoimpl.UnsafeEnabled { - mi := &file_synced_notification_specifics_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SyncedNotificationSpecifics) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SyncedNotificationSpecifics) ProtoMessage() {} - -func (x *SyncedNotificationSpecifics) ProtoReflect() protoreflect.Message { - mi := &file_synced_notification_specifics_proto_msgTypes[0] - 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 SyncedNotificationSpecifics.ProtoReflect.Descriptor instead. -func (*SyncedNotificationSpecifics) Descriptor() ([]byte, []int) { - return file_synced_notification_specifics_proto_rawDescGZIP(), []int{0} -} - -var File_synced_notification_specifics_proto protoreflect.FileDescriptor - -var file_synced_notification_specifics_proto_rawDesc = []byte{ - 0x0a, 0x23, 0x73, 0x79, 0x6e, 0x63, 0x65, 0x64, 0x5f, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x07, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x22, 0x1d, - 0x0a, 0x1b, 0x53, 0x79, 0x6e, 0x63, 0x65, 0x64, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x42, 0x2b, 0x0a, - 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x63, 0x6f, - 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x03, 0x50, 0x01, -} - -var ( - file_synced_notification_specifics_proto_rawDescOnce sync.Once - file_synced_notification_specifics_proto_rawDescData = file_synced_notification_specifics_proto_rawDesc -) - -func file_synced_notification_specifics_proto_rawDescGZIP() []byte { - file_synced_notification_specifics_proto_rawDescOnce.Do(func() { - file_synced_notification_specifics_proto_rawDescData = protoimpl.X.CompressGZIP(file_synced_notification_specifics_proto_rawDescData) - }) - return file_synced_notification_specifics_proto_rawDescData -} - -var file_synced_notification_specifics_proto_msgTypes = make([]protoimpl.MessageInfo, 1) -var file_synced_notification_specifics_proto_goTypes = []interface{}{ - (*SyncedNotificationSpecifics)(nil), // 0: sync_pb.SyncedNotificationSpecifics -} -var file_synced_notification_specifics_proto_depIdxs = []int32{ - 0, // [0:0] is the sub-list for method output_type - 0, // [0:0] is the sub-list for method input_type - 0, // [0:0] is the sub-list for extension type_name - 0, // [0:0] is the sub-list for extension extendee - 0, // [0:0] is the sub-list for field type_name -} - -func init() { file_synced_notification_specifics_proto_init() } -func file_synced_notification_specifics_proto_init() { - if File_synced_notification_specifics_proto != nil { - return - } - if !protoimpl.UnsafeEnabled { - file_synced_notification_specifics_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SyncedNotificationSpecifics); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } - type x struct{} - out := protoimpl.TypeBuilder{ - File: protoimpl.DescBuilder{ - GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_synced_notification_specifics_proto_rawDesc, - NumEnums: 0, - NumMessages: 1, - NumExtensions: 0, - NumServices: 0, - }, - GoTypes: file_synced_notification_specifics_proto_goTypes, - DependencyIndexes: file_synced_notification_specifics_proto_depIdxs, - MessageInfos: file_synced_notification_specifics_proto_msgTypes, - }.Build() - File_synced_notification_specifics_proto = out.File - file_synced_notification_specifics_proto_rawDesc = nil - file_synced_notification_specifics_proto_goTypes = nil - file_synced_notification_specifics_proto_depIdxs = nil -} diff --git a/schema/protobuf/sync_pb/synced_notification_specifics.proto b/schema/protobuf/sync_pb/synced_notification_specifics.proto deleted file mode 100644 index c649f342..00000000 --- a/schema/protobuf/sync_pb/synced_notification_specifics.proto +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. -// -// Sync protocol datatype extension for synced notifications. -// DO NOT USE: This datatype is deprecated. - -syntax = "proto2"; - -option java_multiple_files = true; -option java_package = "org.chromium.components.sync.protocol"; - -option optimize_for = LITE_RUNTIME; - -package sync_pb; - -// This message is kept around for backwards compatibility sake. -message SyncedNotificationSpecifics {} diff --git a/schema/protobuf/sync_pb/test.pb.go b/schema/protobuf/sync_pb/test.pb.go index 9b22b114..777517dd 100644 --- a/schema/protobuf/sync_pb/test.pb.go +++ b/schema/protobuf/sync_pb/test.pb.go @@ -1,4 +1,4 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2012 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // @@ -6,7 +6,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.0 +// protoc-gen-go v1.31.0 // protoc v3.21.1 // source: test.proto @@ -138,10 +138,10 @@ var file_test_proto_rawDesc = []byte{ 0x12, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x54, 0x65, 0x73, 0x74, 0x42, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x6f, 0x6f, 0x18, 0x01, 0x20, 0x02, 0x28, 0x08, 0x52, 0x03, 0x66, 0x6f, 0x6f, 0x12, 0x10, 0x0a, 0x03, 0x62, 0x61, 0x72, 0x18, 0x02, 0x20, 0x02, - 0x28, 0x08, 0x52, 0x03, 0x62, 0x61, 0x72, 0x42, 0x2b, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, + 0x28, 0x08, 0x52, 0x03, 0x62, 0x61, 0x72, 0x42, 0x36, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, - 0x48, 0x03, 0x50, 0x01, + 0x48, 0x03, 0x50, 0x01, 0x5a, 0x09, 0x2e, 0x2f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, } var ( diff --git a/schema/protobuf/sync_pb/test.proto b/schema/protobuf/sync_pb/test.proto index 2d7ac5cf..13a05770 100644 --- a/schema/protobuf/sync_pb/test.proto +++ b/schema/protobuf/sync_pb/test.proto @@ -1,4 +1,4 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2012 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // @@ -6,6 +6,8 @@ syntax = "proto2"; +option go_package = "./sync_pb"; + option java_multiple_files = true; option java_package = "org.chromium.components.sync.protocol"; diff --git a/schema/protobuf/sync_pb/theme_specifics.pb.go b/schema/protobuf/sync_pb/theme_specifics.pb.go index d2179cd3..3b2ba0c2 100644 --- a/schema/protobuf/sync_pb/theme_specifics.pb.go +++ b/schema/protobuf/sync_pb/theme_specifics.pb.go @@ -1,4 +1,4 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2012 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // @@ -9,7 +9,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.0 +// protoc-gen-go v1.31.0 // protoc v3.21.1 // source: theme_specifics.proto @@ -38,15 +38,13 @@ type ThemeSpecifics struct { // If set, we're using a extension and all custom_* fields should be // present. If not set, and all custom_* fields should be omitted. UseCustomTheme *bool `protobuf:"varint,1,opt,name=use_custom_theme,json=useCustomTheme" json:"use_custom_theme,omitempty"` - // This field is only set (i.e., not cleared) on platforms that have - // a distinction between the system theme and the default theme, but - // other platforms must be careful to pass through the set state (not - // just the value) of this flag. + // This field is only relevant on platforms that have a distinction between + // the system theme and the default theme, but other platforms must be careful + // to pass through the value of this flag. // - // If true, we use the system theme by default (i.e., when we don't use - // a custom theme) for platforms that make a distinction between the - // default theme and the system theme. Has no effect if use_custom_theme - // is set. + // If true, we use the system theme by default (i.e., when we don't use a + // custom theme) for platforms that make a distinction between the default + // theme and the system theme. Has no effect if use_custom_theme is true. UseSystemThemeByDefault *bool `protobuf:"varint,2,opt,name=use_system_theme_by_default,json=useSystemThemeByDefault" json:"use_system_theme_by_default,omitempty"` // TODO(gayane): Migrate custom_* fields to a separate message. // Extension specific fields. Ignored if |autogenerated_theme| is set. @@ -209,9 +207,10 @@ var file_theme_specifics_proto_rawDesc = []byte{ 0x65, 0x6d, 0x65, 0x1a, 0x2a, 0x0a, 0x12, 0x41, 0x75, 0x74, 0x6f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x54, 0x68, 0x65, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x42, - 0x2b, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, + 0x36, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x03, 0x50, 0x01, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x03, 0x50, 0x01, 0x5a, 0x09, 0x2e, 0x2f, + 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, } var ( diff --git a/schema/protobuf/sync_pb/theme_specifics.proto b/schema/protobuf/sync_pb/theme_specifics.proto index a145b181..0611c3b5 100644 --- a/schema/protobuf/sync_pb/theme_specifics.proto +++ b/schema/protobuf/sync_pb/theme_specifics.proto @@ -1,4 +1,4 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2012 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // @@ -9,6 +9,8 @@ syntax = "proto2"; +option go_package = "./sync_pb"; + option java_multiple_files = true; option java_package = "org.chromium.components.sync.protocol"; @@ -22,15 +24,13 @@ message ThemeSpecifics { // present. If not set, and all custom_* fields should be omitted. optional bool use_custom_theme = 1; - // This field is only set (i.e., not cleared) on platforms that have - // a distinction between the system theme and the default theme, but - // other platforms must be careful to pass through the set state (not - // just the value) of this flag. + // This field is only relevant on platforms that have a distinction between + // the system theme and the default theme, but other platforms must be careful + // to pass through the value of this flag. // - // If true, we use the system theme by default (i.e., when we don't use - // a custom theme) for platforms that make a distinction between the - // default theme and the system theme. Has no effect if use_custom_theme - // is set. + // If true, we use the system theme by default (i.e., when we don't use a + // custom theme) for platforms that make a distinction between the default + // theme and the system theme. Has no effect if use_custom_theme is true. optional bool use_system_theme_by_default = 2; // TODO(gayane): Migrate custom_* fields to a separate message. diff --git a/schema/protobuf/sync_pb/typed_url_specifics.pb.go b/schema/protobuf/sync_pb/typed_url_specifics.pb.go index e747fb8c..f72b233c 100644 --- a/schema/protobuf/sync_pb/typed_url_specifics.pb.go +++ b/schema/protobuf/sync_pb/typed_url_specifics.pb.go @@ -1,4 +1,4 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2012 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // @@ -9,7 +9,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.0 +// protoc-gen-go v1.31.0 // protoc v3.21.1 // source: typed_url_specifics.proto @@ -40,18 +40,8 @@ type TypedUrlSpecifics struct { Url *string `protobuf:"bytes,1,opt,name=url" json:"url,omitempty"` // Title of the page corresponding to this URL. Title *string `protobuf:"bytes,2,opt,name=title" json:"title,omitempty"` - // The number of times this URL was typed. Deprecated since we no longer sync - // this information (it's inferred by the history code from the transition - // type for each visit). - // optional int32 typed_count = 3; (deprecated) // True if the URL should NOT be used for auto-complete. Hidden *bool `protobuf:"varint,4,opt,name=hidden" json:"hidden,omitempty"` - // The number of visits (includes page reloads). - // repeated int64 visit = 5; (deprecated) - // The number of explicit navigations to this URL (excludes page reloads) - - // deprecated as we no longer sync this (history code infers this from the - // |visits| array). - // optional int32 visited_count = 6; (deprecated) // Timestamps for all visits to this URL. Visits []int64 `protobuf:"varint,7,rep,packed,name=visits" json:"visits,omitempty"` // The PageTransition::Type for each of the visits in the |visit| array. Both @@ -131,7 +121,7 @@ var File_typed_url_specifics_proto protoreflect.FileDescriptor var file_typed_url_specifics_proto_rawDesc = []byte{ 0x0a, 0x19, 0x74, 0x79, 0x70, 0x65, 0x64, 0x5f, 0x75, 0x72, 0x6c, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x07, 0x73, 0x79, 0x6e, - 0x63, 0x5f, 0x70, 0x62, 0x22, 0xa0, 0x01, 0x0a, 0x11, 0x54, 0x79, 0x70, 0x65, 0x64, 0x55, 0x72, + 0x63, 0x5f, 0x70, 0x62, 0x22, 0xd5, 0x01, 0x0a, 0x11, 0x54, 0x79, 0x70, 0x65, 0x64, 0x55, 0x72, 0x6c, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, @@ -141,10 +131,14 @@ var file_typed_url_specifics_proto_rawDesc = []byte{ 0x76, 0x69, 0x73, 0x69, 0x74, 0x73, 0x12, 0x2f, 0x0a, 0x11, 0x76, 0x69, 0x73, 0x69, 0x74, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x05, 0x42, 0x02, 0x10, 0x01, 0x52, 0x10, 0x76, 0x69, 0x73, 0x69, 0x74, 0x54, 0x72, 0x61, 0x6e, - 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x42, 0x2b, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, - 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, - 0x74, 0x73, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, - 0x48, 0x03, 0x50, 0x01, + 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04, 0x4a, 0x04, 0x08, + 0x05, 0x10, 0x06, 0x4a, 0x04, 0x08, 0x06, 0x10, 0x07, 0x52, 0x0b, 0x74, 0x79, 0x70, 0x65, 0x64, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x05, 0x76, 0x69, 0x73, 0x69, 0x74, 0x52, 0x0d, 0x76, + 0x69, 0x73, 0x69, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x36, 0x0a, 0x25, + 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, + 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x03, 0x50, 0x01, 0x5a, 0x09, 0x2e, 0x2f, 0x73, 0x79, 0x6e, + 0x63, 0x5f, 0x70, 0x62, } var ( diff --git a/schema/protobuf/sync_pb/typed_url_specifics.proto b/schema/protobuf/sync_pb/typed_url_specifics.proto index f191a53a..929e70ee 100644 --- a/schema/protobuf/sync_pb/typed_url_specifics.proto +++ b/schema/protobuf/sync_pb/typed_url_specifics.proto @@ -1,4 +1,4 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2012 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // @@ -9,6 +9,8 @@ syntax = "proto2"; +option go_package = "./sync_pb"; + option java_multiple_files = true; option java_package = "org.chromium.components.sync.protocol"; @@ -23,21 +25,18 @@ message TypedUrlSpecifics { optional string url = 1; // Title of the page corresponding to this URL. optional string title = 2; - // The number of times this URL was typed. Deprecated since we no longer sync - // this information (it's inferred by the history code from the transition - // type for each visit). - // optional int32 typed_count = 3; (deprecated) // True if the URL should NOT be used for auto-complete. optional bool hidden = 4; - // The number of visits (includes page reloads). - // repeated int64 visit = 5; (deprecated) - // The number of explicit navigations to this URL (excludes page reloads) - - // deprecated as we no longer sync this (history code infers this from the - // |visits| array). - // optional int32 visited_count = 6; (deprecated) // Timestamps for all visits to this URL. repeated int64 visits = 7 [packed = true]; // The PageTransition::Type for each of the visits in the |visit| array. Both // arrays must be the same length. repeated int32 visit_transitions = 8 [packed = true]; + + reserved 3; + reserved "typed_count"; + reserved 5; + reserved "visit"; + reserved 6; + reserved "visited_count"; } diff --git a/schema/protobuf/sync_pb/unique_position.pb.go b/schema/protobuf/sync_pb/unique_position.pb.go index 9d60e67a..97dca9b4 100644 --- a/schema/protobuf/sync_pb/unique_position.pb.go +++ b/schema/protobuf/sync_pb/unique_position.pb.go @@ -1,4 +1,4 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2012 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // @@ -9,7 +9,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.0 +// protoc-gen-go v1.31.0 // protoc v3.21.1 // source: unique_position.proto @@ -47,7 +47,7 @@ type UniquePosition struct { // // Deprecated. See history note above. // - // Deprecated: Do not use. + // Deprecated: Marked as deprecated in unique_position.proto. Value []byte `protobuf:"bytes,1,opt,name=value" json:"value,omitempty"` // The client may choose to write a compressed position to this field instead // of populating the 'value' above. If it chooses to use compression, the @@ -58,9 +58,9 @@ type UniquePosition struct { // // Deprecated. See history note above. // - // Deprecated: Do not use. + // Deprecated: Marked as deprecated in unique_position.proto. CompressedValue []byte `protobuf:"bytes,2,opt,name=compressed_value,json=compressedValue" json:"compressed_value,omitempty"` - // Deprecated: Do not use. + // Deprecated: Marked as deprecated in unique_position.proto. UncompressedLength *uint64 `protobuf:"varint,3,opt,name=uncompressed_length,json=uncompressedLength" json:"uncompressed_length,omitempty"` // This encoding uses compression scheme designed especially for unique // positions. It has the property that X < Y precisely when Compressed(X) < @@ -109,7 +109,7 @@ func (*UniquePosition) Descriptor() ([]byte, []int) { return file_unique_position_proto_rawDescGZIP(), []int{0} } -// Deprecated: Do not use. +// Deprecated: Marked as deprecated in unique_position.proto. func (x *UniquePosition) GetValue() []byte { if x != nil { return x.Value @@ -117,7 +117,7 @@ func (x *UniquePosition) GetValue() []byte { return nil } -// Deprecated: Do not use. +// Deprecated: Marked as deprecated in unique_position.proto. func (x *UniquePosition) GetCompressedValue() []byte { if x != nil { return x.CompressedValue @@ -125,7 +125,7 @@ func (x *UniquePosition) GetCompressedValue() []byte { return nil } -// Deprecated: Do not use. +// Deprecated: Marked as deprecated in unique_position.proto. func (x *UniquePosition) GetUncompressedLength() uint64 { if x != nil && x.UncompressedLength != nil { return *x.UncompressedLength @@ -157,9 +157,10 @@ var file_unique_position_proto_rawDesc = []byte{ 0x68, 0x12, 0x30, 0x0a, 0x14, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x65, 0x64, 0x5f, 0x76, 0x31, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x12, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x43, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x65, - 0x64, 0x56, 0x31, 0x42, 0x2b, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, + 0x64, 0x56, 0x31, 0x42, 0x36, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x03, 0x50, 0x01, + 0x5a, 0x09, 0x2e, 0x2f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, } var ( diff --git a/schema/protobuf/sync_pb/unique_position.proto b/schema/protobuf/sync_pb/unique_position.proto index 67045ddb..67afef32 100644 --- a/schema/protobuf/sync_pb/unique_position.proto +++ b/schema/protobuf/sync_pb/unique_position.proto @@ -1,4 +1,4 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2012 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // @@ -9,6 +9,8 @@ syntax = "proto2"; +option go_package = "./sync_pb"; + option java_multiple_files = true; option java_package = "org.chromium.components.sync.protocol"; diff --git a/schema/protobuf/sync_pb/user_consent_specifics.pb.go b/schema/protobuf/sync_pb/user_consent_specifics.pb.go index e9b2955f..6cb33f7d 100644 --- a/schema/protobuf/sync_pb/user_consent_specifics.pb.go +++ b/schema/protobuf/sync_pb/user_consent_specifics.pb.go @@ -1,4 +1,4 @@ -// Copyright 2018 The Chromium Authors. All rights reserved. +// Copyright 2018 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // @@ -9,7 +9,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.0 +// protoc-gen-go v1.31.0 // protoc v3.21.1 // source: user_consent_specifics.proto @@ -104,7 +104,7 @@ func (UserConsentSpecifics_Feature) EnumDescriptor() ([]byte, []int) { return file_user_consent_specifics_proto_rawDescGZIP(), []int{0, 0} } -// Next id: 14 +// Next id: 17 type UserConsentSpecifics struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -121,6 +121,7 @@ type UserConsentSpecifics struct { // offline. ClientConsentTimeUsec *int64 `protobuf:"varint,12,opt,name=client_consent_time_usec,json=clientConsentTimeUsec" json:"client_consent_time_usec,omitempty"` // Types that are assignable to Consent: + // // *UserConsentSpecifics_SyncConsent // *UserConsentSpecifics_ArcBackupAndRestoreConsent // *UserConsentSpecifics_ArcLocationServiceConsent @@ -139,19 +140,19 @@ type UserConsentSpecifics struct { // For semantics and usage of the |account_id| in the signin codebase, // see IdentityManager::GetPrimaryAccountId() or CoreAccountId. AccountId *string `protobuf:"bytes,6,opt,name=account_id,json=accountId" json:"account_id,omitempty"` - // Deprecated: Do not use. + // Deprecated: Marked as deprecated in user_consent_specifics.proto. Feature *UserConsentSpecifics_Feature `protobuf:"varint,1,opt,name=feature,enum=sync_pb.UserConsentSpecifics_Feature" json:"feature,omitempty"` // Ids of the strings of the consent text presented to the user. // - // Deprecated: Do not use. + // Deprecated: Marked as deprecated in user_consent_specifics.proto. DescriptionGrdIds []int32 `protobuf:"varint,2,rep,name=description_grd_ids,json=descriptionGrdIds" json:"description_grd_ids,omitempty"` // Id of the string of the UI element the user clicked when consenting. // - // Deprecated: Do not use. + // Deprecated: Marked as deprecated in user_consent_specifics.proto. ConfirmationGrdId *int32 `protobuf:"varint,3,opt,name=confirmation_grd_id,json=confirmationGrdId" json:"confirmation_grd_id,omitempty"` // Was the consent for |feature| given or not given (denied/revoked)? // - // Deprecated: Do not use. + // Deprecated: Marked as deprecated in user_consent_specifics.proto. Status *UserConsentTypes_ConsentStatus `protobuf:"varint,5,opt,name=status,enum=sync_pb.UserConsentTypes_ConsentStatus" json:"status,omitempty"` } @@ -236,7 +237,7 @@ func (x *UserConsentSpecifics) GetArcPlayTermsOfServiceConsent() *UserConsentTyp return nil } -// Deprecated: Do not use. +// Deprecated: Marked as deprecated in user_consent_specifics.proto. func (x *UserConsentSpecifics) GetUnifiedConsent() *UserConsentTypes_UnifiedConsent { if x, ok := x.GetConsent().(*UserConsentSpecifics_UnifiedConsent); ok { return x.UnifiedConsent @@ -265,7 +266,7 @@ func (x *UserConsentSpecifics) GetAccountId() string { return "" } -// Deprecated: Do not use. +// Deprecated: Marked as deprecated in user_consent_specifics.proto. func (x *UserConsentSpecifics) GetFeature() UserConsentSpecifics_Feature { if x != nil && x.Feature != nil { return *x.Feature @@ -273,7 +274,7 @@ func (x *UserConsentSpecifics) GetFeature() UserConsentSpecifics_Feature { return UserConsentSpecifics_FEATURE_UNSPECIFIED } -// Deprecated: Do not use. +// Deprecated: Marked as deprecated in user_consent_specifics.proto. func (x *UserConsentSpecifics) GetDescriptionGrdIds() []int32 { if x != nil { return x.DescriptionGrdIds @@ -281,7 +282,7 @@ func (x *UserConsentSpecifics) GetDescriptionGrdIds() []int32 { return nil } -// Deprecated: Do not use. +// Deprecated: Marked as deprecated in user_consent_specifics.proto. func (x *UserConsentSpecifics) GetConfirmationGrdId() int32 { if x != nil && x.ConfirmationGrdId != nil { return *x.ConfirmationGrdId @@ -289,7 +290,7 @@ func (x *UserConsentSpecifics) GetConfirmationGrdId() int32 { return 0 } -// Deprecated: Do not use. +// Deprecated: Marked as deprecated in user_consent_specifics.proto. func (x *UserConsentSpecifics) GetStatus() UserConsentTypes_ConsentStatus { if x != nil && x.Status != nil { return *x.Status @@ -318,7 +319,7 @@ type UserConsentSpecifics_ArcPlayTermsOfServiceConsent struct { } type UserConsentSpecifics_UnifiedConsent struct { - // Deprecated: Do not use. + // Deprecated: Marked as deprecated in user_consent_specifics.proto. UnifiedConsent *UserConsentTypes_UnifiedConsent `protobuf:"bytes,13,opt,name=unified_consent,json=unifiedConsent,oneof"` } @@ -351,7 +352,7 @@ var file_user_consent_specifics_proto_rawDesc = []byte{ 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x07, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x1a, 0x18, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x22, 0xfe, 0x0a, 0x0a, 0x14, 0x55, 0x73, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, + 0x6f, 0x22, 0xa0, 0x0b, 0x0a, 0x14, 0x55, 0x73, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x74, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x65, 0x12, 0x37, 0x0a, 0x18, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x6f, 0x6e, @@ -437,11 +438,14 @@ var file_user_consent_specifics_proto_rawDesc = []byte{ 0x10, 0x05, 0x12, 0x1e, 0x0a, 0x1a, 0x41, 0x53, 0x53, 0x49, 0x53, 0x54, 0x41, 0x4e, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x56, 0x49, 0x54, 0x59, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x10, 0x06, 0x42, 0x09, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x74, 0x4a, 0x04, 0x08, - 0x0b, 0x10, 0x0c, 0x52, 0x1d, 0x61, 0x72, 0x63, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, - 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x75, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x65, - 0x6e, 0x74, 0x42, 0x2b, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, - 0x75, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x73, 0x79, - 0x6e, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x03, 0x50, 0x01, + 0x0b, 0x10, 0x0c, 0x4a, 0x04, 0x08, 0x10, 0x10, 0x11, 0x52, 0x1d, 0x61, 0x72, 0x63, 0x5f, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x75, 0x73, 0x61, 0x67, 0x65, + 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x74, 0x52, 0x1a, 0x61, 0x75, 0x74, 0x6f, 0x66, 0x69, + 0x6c, 0x6c, 0x5f, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x5f, 0x63, 0x6f, 0x6e, + 0x73, 0x65, 0x6e, 0x74, 0x42, 0x36, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, 0x72, 0x6f, + 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2e, + 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x03, 0x50, + 0x01, 0x5a, 0x09, 0x2e, 0x2f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, } var ( diff --git a/schema/protobuf/sync_pb/user_consent_specifics.proto b/schema/protobuf/sync_pb/user_consent_specifics.proto index bf8de9a0..c64edb35 100644 --- a/schema/protobuf/sync_pb/user_consent_specifics.proto +++ b/schema/protobuf/sync_pb/user_consent_specifics.proto @@ -1,4 +1,4 @@ -// Copyright 2018 The Chromium Authors. All rights reserved. +// Copyright 2018 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // @@ -9,6 +9,8 @@ syntax = "proto2"; +option go_package = "./sync_pb"; + option java_multiple_files = true; option java_package = "org.chromium.components.sync.protocol"; @@ -18,7 +20,7 @@ package sync_pb; import "user_consent_types.proto"; -// Next id: 14 +// Next id: 17 message UserConsentSpecifics { // =========================================================================== // Fields common to all Chrome User Consents. @@ -62,6 +64,8 @@ message UserConsentSpecifics { } reserved "arc_metrics_and_usage_consent"; reserved 11; + reserved "autofill_assistant_consent"; + reserved 16; // =========================================================================== // Client only fields. diff --git a/schema/protobuf/sync_pb/user_consent_types.pb.go b/schema/protobuf/sync_pb/user_consent_types.pb.go index 76a11472..672cc5c3 100644 --- a/schema/protobuf/sync_pb/user_consent_types.pb.go +++ b/schema/protobuf/sync_pb/user_consent_types.pb.go @@ -1,4 +1,4 @@ -// Copyright 2018 The Chromium Authors. All rights reserved. +// Copyright 2018 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // @@ -9,7 +9,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.0 +// protoc-gen-go v1.31.0 // protoc v3.21.1 // source: user_consent_types.proto @@ -895,10 +895,10 @@ var file_user_consent_types_proto_rawDesc = []byte{ 0x0a, 0x1a, 0x43, 0x4f, 0x4e, 0x53, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x4f, 0x54, 0x5f, 0x47, 0x49, 0x56, 0x45, 0x4e, 0x10, 0x01, 0x12, 0x09, 0x0a, - 0x05, 0x47, 0x49, 0x56, 0x45, 0x4e, 0x10, 0x02, 0x42, 0x2b, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, + 0x05, 0x47, 0x49, 0x56, 0x45, 0x4e, 0x10, 0x02, 0x42, 0x36, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, - 0x6c, 0x48, 0x03, 0x50, 0x01, + 0x6c, 0x48, 0x03, 0x50, 0x01, 0x5a, 0x09, 0x2e, 0x2f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, } var ( diff --git a/schema/protobuf/sync_pb/user_consent_types.proto b/schema/protobuf/sync_pb/user_consent_types.proto index 71eecc27..00383098 100644 --- a/schema/protobuf/sync_pb/user_consent_types.proto +++ b/schema/protobuf/sync_pb/user_consent_types.proto @@ -1,4 +1,4 @@ -// Copyright 2018 The Chromium Authors. All rights reserved. +// Copyright 2018 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // @@ -9,6 +9,8 @@ syntax = "proto2"; +option go_package = "./sync_pb"; + option java_multiple_files = true; option java_package = "org.chromium.components.sync.protocol"; diff --git a/schema/protobuf/sync_pb/user_event_specifics.pb.go b/schema/protobuf/sync_pb/user_event_specifics.pb.go index fb2a04c6..ab19e2d4 100644 --- a/schema/protobuf/sync_pb/user_event_specifics.pb.go +++ b/schema/protobuf/sync_pb/user_event_specifics.pb.go @@ -1,4 +1,4 @@ -// Copyright 2017 The Chromium Authors. All rights reserved. +// Copyright 2017 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // @@ -9,7 +9,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.0 +// protoc-gen-go v1.31.0 // protoc v3.21.1 // source: user_event_specifics.proto @@ -337,6 +337,7 @@ type UserEventSpecifics struct { // other events belonged to. SessionId *uint64 `protobuf:"fixed64,3,opt,name=session_id,json=sessionId" json:"session_id,omitempty"` // Types that are assignable to Event: + // // *UserEventSpecifics_TestEvent // *UserEventSpecifics_LanguageDetectionEvent // *UserEventSpecifics_TranslationEvent @@ -414,7 +415,7 @@ func (x *UserEventSpecifics) GetTestEvent() *UserEventSpecifics_Test { return nil } -// Deprecated: Do not use. +// Deprecated: Marked as deprecated in user_event_specifics.proto. func (x *UserEventSpecifics) GetLanguageDetectionEvent() *UserEventSpecifics_LanguageDetection { if x, ok := x.GetEvent().(*UserEventSpecifics_LanguageDetectionEvent); ok { return x.LanguageDetectionEvent @@ -422,7 +423,7 @@ func (x *UserEventSpecifics) GetLanguageDetectionEvent() *UserEventSpecifics_Lan return nil } -// Deprecated: Do not use. +// Deprecated: Marked as deprecated in user_event_specifics.proto. func (x *UserEventSpecifics) GetTranslationEvent() *UserEventSpecifics_Translation { if x, ok := x.GetEvent().(*UserEventSpecifics_TranslationEvent); ok { return x.TranslationEvent @@ -430,7 +431,7 @@ func (x *UserEventSpecifics) GetTranslationEvent() *UserEventSpecifics_Translati return nil } -// Deprecated: Do not use. +// Deprecated: Marked as deprecated in user_event_specifics.proto. func (x *UserEventSpecifics) GetUserConsent() *UserEventSpecifics_UserConsent { if x, ok := x.GetEvent().(*UserEventSpecifics_UserConsent_); ok { return x.UserConsent @@ -468,17 +469,17 @@ type UserEventSpecifics_TestEvent struct { } type UserEventSpecifics_LanguageDetectionEvent struct { - // Deprecated: Do not use. + // Deprecated: Marked as deprecated in user_event_specifics.proto. LanguageDetectionEvent *UserEventSpecifics_LanguageDetection `protobuf:"bytes,10,opt,name=language_detection_event,json=languageDetectionEvent,oneof"` } type UserEventSpecifics_TranslationEvent struct { - // Deprecated: Do not use. + // Deprecated: Marked as deprecated in user_event_specifics.proto. TranslationEvent *UserEventSpecifics_Translation `protobuf:"bytes,11,opt,name=translation_event,json=translationEvent,oneof"` } type UserEventSpecifics_UserConsent_ struct { - // Deprecated: Do not use. + // Deprecated: Marked as deprecated in user_event_specifics.proto. UserConsent *UserEventSpecifics_UserConsent `protobuf:"bytes,12,opt,name=user_consent,json=userConsent,oneof"` } @@ -550,7 +551,7 @@ func (*UserEventSpecifics_Test) Descriptor() ([]byte, []int) { // Language detection output. // -// Deprecated: Do not use. +// Deprecated: Marked as deprecated in user_event_specifics.proto. type UserEventSpecifics_LanguageDetection struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -614,7 +615,7 @@ func (x *UserEventSpecifics_LanguageDetection) GetAdoptedLanguageCode() string { // User translated a page or interacted with translate suggestion. // -// Deprecated: Do not use. +// Deprecated: Marked as deprecated in user_event_specifics.proto. type UserEventSpecifics_Translation struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -686,7 +687,7 @@ func (x *UserEventSpecifics_Translation) GetInteraction() UserEventSpecifics_Tra // consent formats like this. // Next id: 14 // -// Deprecated: Do not use. +// Deprecated: Marked as deprecated in user_event_specifics.proto. type UserEventSpecifics_UserConsent struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -703,25 +704,26 @@ type UserEventSpecifics_UserConsent struct { // offline. ClientConsentTimeUsec *int64 `protobuf:"varint,12,opt,name=client_consent_time_usec,json=clientConsentTimeUsec" json:"client_consent_time_usec,omitempty"` // Types that are assignable to Consent: + // // *UserEventSpecifics_UserConsent_SyncConsent // *UserEventSpecifics_UserConsent_ArcBackupAndRestoreConsent // *UserEventSpecifics_UserConsent_ArcLocationServiceConsent // *UserEventSpecifics_UserConsent_ArcPlayTermsOfServiceConsent // *UserEventSpecifics_UserConsent_UnifiedConsent Consent isUserEventSpecifics_UserConsent_Consent `protobuf_oneof:"consent"` - // Deprecated: Do not use. + // Deprecated: Marked as deprecated in user_event_specifics.proto. Feature *UserEventSpecifics_UserConsent_Feature `protobuf:"varint,1,opt,name=feature,enum=sync_pb.UserEventSpecifics_UserConsent_Feature" json:"feature,omitempty"` // Ids of the strings of the consent text presented to the user. // - // Deprecated: Do not use. + // Deprecated: Marked as deprecated in user_event_specifics.proto. DescriptionGrdIds []int32 `protobuf:"varint,2,rep,name=description_grd_ids,json=descriptionGrdIds" json:"description_grd_ids,omitempty"` // Id of the string of the UI element the user clicked when consenting. // - // Deprecated: Do not use. + // Deprecated: Marked as deprecated in user_event_specifics.proto. ConfirmationGrdId *int32 `protobuf:"varint,3,opt,name=confirmation_grd_id,json=confirmationGrdId" json:"confirmation_grd_id,omitempty"` // Was the consent for |feature| given or not given (denied/revoked)? // - // Deprecated: Do not use. + // Deprecated: Marked as deprecated in user_event_specifics.proto. Status *UserConsentTypes_ConsentStatus `protobuf:"varint,5,opt,name=status,enum=sync_pb.UserConsentTypes_ConsentStatus" json:"status,omitempty"` } @@ -813,7 +815,7 @@ func (x *UserEventSpecifics_UserConsent) GetUnifiedConsent() *UserConsentTypes_U return nil } -// Deprecated: Do not use. +// Deprecated: Marked as deprecated in user_event_specifics.proto. func (x *UserEventSpecifics_UserConsent) GetFeature() UserEventSpecifics_UserConsent_Feature { if x != nil && x.Feature != nil { return *x.Feature @@ -821,7 +823,7 @@ func (x *UserEventSpecifics_UserConsent) GetFeature() UserEventSpecifics_UserCon return UserEventSpecifics_UserConsent_FEATURE_UNSPECIFIED } -// Deprecated: Do not use. +// Deprecated: Marked as deprecated in user_event_specifics.proto. func (x *UserEventSpecifics_UserConsent) GetDescriptionGrdIds() []int32 { if x != nil { return x.DescriptionGrdIds @@ -829,7 +831,7 @@ func (x *UserEventSpecifics_UserConsent) GetDescriptionGrdIds() []int32 { return nil } -// Deprecated: Do not use. +// Deprecated: Marked as deprecated in user_event_specifics.proto. func (x *UserEventSpecifics_UserConsent) GetConfirmationGrdId() int32 { if x != nil && x.ConfirmationGrdId != nil { return *x.ConfirmationGrdId @@ -837,7 +839,7 @@ func (x *UserEventSpecifics_UserConsent) GetConfirmationGrdId() int32 { return 0 } -// Deprecated: Do not use. +// Deprecated: Marked as deprecated in user_event_specifics.proto. func (x *UserEventSpecifics_UserConsent) GetStatus() UserConsentTypes_ConsentStatus { if x != nil && x.Status != nil { return *x.Status @@ -1231,9 +1233,10 @@ var file_user_event_specifics_proto_rawDesc = []byte{ 0x0d, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x42, 0x07, 0x0a, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x4a, 0x04, 0x08, 0x09, 0x10, 0x0a, 0x52, 0x11, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x74, 0x72, 0x69, 0x61, 0x6c, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, - 0x42, 0x2b, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, + 0x42, 0x36, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x73, 0x79, 0x6e, 0x63, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x03, 0x50, 0x01, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x03, 0x50, 0x01, 0x5a, 0x09, 0x2e, + 0x2f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, } var ( diff --git a/schema/protobuf/sync_pb/user_event_specifics.proto b/schema/protobuf/sync_pb/user_event_specifics.proto index ffd1b187..9d4f5396 100644 --- a/schema/protobuf/sync_pb/user_event_specifics.proto +++ b/schema/protobuf/sync_pb/user_event_specifics.proto @@ -1,4 +1,4 @@ -// Copyright 2017 The Chromium Authors. All rights reserved. +// Copyright 2017 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // @@ -9,6 +9,8 @@ syntax = "proto2"; +option go_package = "./sync_pb"; + option java_multiple_files = true; option java_package = "org.chromium.components.sync.protocol"; diff --git a/schema/protobuf/sync_pb/vault.pb.go b/schema/protobuf/sync_pb/vault.pb.go deleted file mode 100644 index 01e571ef..00000000 --- a/schema/protobuf/sync_pb/vault.pb.go +++ /dev/null @@ -1,1089 +0,0 @@ -// Copyright 2020 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// Trusted vault protos to communicate with backend written in proto3 to avoid -// subtle differences between enum fields. - -// Code generated by protoc-gen-go. DO NOT EDIT. -// versions: -// protoc-gen-go v1.28.0 -// protoc v3.21.1 -// source: vault.proto - -package sync_pb - -import ( - protoreflect "google.golang.org/protobuf/reflect/protoreflect" - protoimpl "google.golang.org/protobuf/runtime/protoimpl" - reflect "reflect" - sync "sync" -) - -const ( - // Verify that this generated code is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) - // Verify that runtime/protoimpl is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) -) - -type SecurityDomainMember_MemberType int32 - -const ( - SecurityDomainMember_MEMBER_TYPE_UNSPECIFIED SecurityDomainMember_MemberType = 0 - SecurityDomainMember_MEMBER_TYPE_PHYSICAL_DEVICE SecurityDomainMember_MemberType = 1 -) - -// Enum value maps for SecurityDomainMember_MemberType. -var ( - SecurityDomainMember_MemberType_name = map[int32]string{ - 0: "MEMBER_TYPE_UNSPECIFIED", - 1: "MEMBER_TYPE_PHYSICAL_DEVICE", - } - SecurityDomainMember_MemberType_value = map[string]int32{ - "MEMBER_TYPE_UNSPECIFIED": 0, - "MEMBER_TYPE_PHYSICAL_DEVICE": 1, - } -) - -func (x SecurityDomainMember_MemberType) Enum() *SecurityDomainMember_MemberType { - p := new(SecurityDomainMember_MemberType) - *p = x - return p -} - -func (x SecurityDomainMember_MemberType) String() string { - return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -} - -func (SecurityDomainMember_MemberType) Descriptor() protoreflect.EnumDescriptor { - return file_vault_proto_enumTypes[0].Descriptor() -} - -func (SecurityDomainMember_MemberType) Type() protoreflect.EnumType { - return &file_vault_proto_enumTypes[0] -} - -func (x SecurityDomainMember_MemberType) Number() protoreflect.EnumNumber { - return protoreflect.EnumNumber(x) -} - -// Deprecated: Use SecurityDomainMember_MemberType.Descriptor instead. -func (SecurityDomainMember_MemberType) EnumDescriptor() ([]byte, []int) { - return file_vault_proto_rawDescGZIP(), []int{4, 0} -} - -type SharedMemberKey struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Epoch int32 `protobuf:"varint,1,opt,name=epoch,proto3" json:"epoch,omitempty"` - WrappedKey []byte `protobuf:"bytes,2,opt,name=wrapped_key,json=wrappedKey,proto3" json:"wrapped_key,omitempty"` - MemberProof []byte `protobuf:"bytes,3,opt,name=member_proof,json=memberProof,proto3" json:"member_proof,omitempty"` -} - -func (x *SharedMemberKey) Reset() { - *x = SharedMemberKey{} - if protoimpl.UnsafeEnabled { - mi := &file_vault_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SharedMemberKey) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SharedMemberKey) ProtoMessage() {} - -func (x *SharedMemberKey) ProtoReflect() protoreflect.Message { - mi := &file_vault_proto_msgTypes[0] - 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 SharedMemberKey.ProtoReflect.Descriptor instead. -func (*SharedMemberKey) Descriptor() ([]byte, []int) { - return file_vault_proto_rawDescGZIP(), []int{0} -} - -func (x *SharedMemberKey) GetEpoch() int32 { - if x != nil { - return x.Epoch - } - return 0 -} - -func (x *SharedMemberKey) GetWrappedKey() []byte { - if x != nil { - return x.WrappedKey - } - return nil -} - -func (x *SharedMemberKey) GetMemberProof() []byte { - if x != nil { - return x.MemberProof - } - return nil -} - -type RotationProof struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - NewEpoch int32 `protobuf:"varint,1,opt,name=new_epoch,json=newEpoch,proto3" json:"new_epoch,omitempty"` - RotationProof []byte `protobuf:"bytes,2,opt,name=rotation_proof,json=rotationProof,proto3" json:"rotation_proof,omitempty"` -} - -func (x *RotationProof) Reset() { - *x = RotationProof{} - if protoimpl.UnsafeEnabled { - mi := &file_vault_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *RotationProof) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*RotationProof) ProtoMessage() {} - -func (x *RotationProof) ProtoReflect() protoreflect.Message { - mi := &file_vault_proto_msgTypes[1] - 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 RotationProof.ProtoReflect.Descriptor instead. -func (*RotationProof) Descriptor() ([]byte, []int) { - return file_vault_proto_rawDescGZIP(), []int{1} -} - -func (x *RotationProof) GetNewEpoch() int32 { - if x != nil { - return x.NewEpoch - } - return 0 -} - -func (x *RotationProof) GetRotationProof() []byte { - if x != nil { - return x.RotationProof - } - return nil -} - -type SecurityDomainDetails struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - SyncDetails *SecurityDomainDetails_SyncDetails `protobuf:"bytes,1,opt,name=sync_details,json=syncDetails,proto3" json:"sync_details,omitempty"` -} - -func (x *SecurityDomainDetails) Reset() { - *x = SecurityDomainDetails{} - if protoimpl.UnsafeEnabled { - mi := &file_vault_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SecurityDomainDetails) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SecurityDomainDetails) ProtoMessage() {} - -func (x *SecurityDomainDetails) ProtoReflect() protoreflect.Message { - mi := &file_vault_proto_msgTypes[2] - 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 SecurityDomainDetails.ProtoReflect.Descriptor instead. -func (*SecurityDomainDetails) Descriptor() ([]byte, []int) { - return file_vault_proto_rawDescGZIP(), []int{2} -} - -func (x *SecurityDomainDetails) GetSyncDetails() *SecurityDomainDetails_SyncDetails { - if x != nil { - return x.SyncDetails - } - return nil -} - -type SecurityDomain struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - CurrentEpoch int32 `protobuf:"varint,2,opt,name=current_epoch,json=currentEpoch,proto3" json:"current_epoch,omitempty"` - SecurityDomainDetails *SecurityDomainDetails `protobuf:"bytes,3,opt,name=security_domain_details,json=securityDomainDetails,proto3" json:"security_domain_details,omitempty"` -} - -func (x *SecurityDomain) Reset() { - *x = SecurityDomain{} - if protoimpl.UnsafeEnabled { - mi := &file_vault_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SecurityDomain) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SecurityDomain) ProtoMessage() {} - -func (x *SecurityDomain) ProtoReflect() protoreflect.Message { - mi := &file_vault_proto_msgTypes[3] - 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 SecurityDomain.ProtoReflect.Descriptor instead. -func (*SecurityDomain) Descriptor() ([]byte, []int) { - return file_vault_proto_rawDescGZIP(), []int{3} -} - -func (x *SecurityDomain) GetName() string { - if x != nil { - return x.Name - } - return "" -} - -func (x *SecurityDomain) GetCurrentEpoch() int32 { - if x != nil { - return x.CurrentEpoch - } - return 0 -} - -func (x *SecurityDomain) GetSecurityDomainDetails() *SecurityDomainDetails { - if x != nil { - return x.SecurityDomainDetails - } - return nil -} - -type SecurityDomainMember struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - PublicKey []byte `protobuf:"bytes,2,opt,name=public_key,json=publicKey,proto3" json:"public_key,omitempty"` - Memberships []*SecurityDomainMember_SecurityDomainMembership `protobuf:"bytes,3,rep,name=memberships,proto3" json:"memberships,omitempty"` - MemberType SecurityDomainMember_MemberType `protobuf:"varint,4,opt,name=member_type,json=memberType,proto3,enum=sync_pb.SecurityDomainMember_MemberType" json:"member_type,omitempty"` -} - -func (x *SecurityDomainMember) Reset() { - *x = SecurityDomainMember{} - if protoimpl.UnsafeEnabled { - mi := &file_vault_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SecurityDomainMember) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SecurityDomainMember) ProtoMessage() {} - -func (x *SecurityDomainMember) ProtoReflect() protoreflect.Message { - mi := &file_vault_proto_msgTypes[4] - 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 SecurityDomainMember.ProtoReflect.Descriptor instead. -func (*SecurityDomainMember) Descriptor() ([]byte, []int) { - return file_vault_proto_rawDescGZIP(), []int{4} -} - -func (x *SecurityDomainMember) GetName() string { - if x != nil { - return x.Name - } - return "" -} - -func (x *SecurityDomainMember) GetPublicKey() []byte { - if x != nil { - return x.PublicKey - } - return nil -} - -func (x *SecurityDomainMember) GetMemberships() []*SecurityDomainMember_SecurityDomainMembership { - if x != nil { - return x.Memberships - } - return nil -} - -func (x *SecurityDomainMember) GetMemberType() SecurityDomainMember_MemberType { - if x != nil { - return x.MemberType - } - return SecurityDomainMember_MEMBER_TYPE_UNSPECIFIED -} - -type JoinSecurityDomainsRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - SecurityDomain *SecurityDomain `protobuf:"bytes,1,opt,name=security_domain,json=securityDomain,proto3" json:"security_domain,omitempty"` - SecurityDomainMember *SecurityDomainMember `protobuf:"bytes,2,opt,name=security_domain_member,json=securityDomainMember,proto3" json:"security_domain_member,omitempty"` - SharedMemberKey []*SharedMemberKey `protobuf:"bytes,3,rep,name=shared_member_key,json=sharedMemberKey,proto3" json:"shared_member_key,omitempty"` - MemberTypeHint int32 `protobuf:"varint,4,opt,name=member_type_hint,json=memberTypeHint,proto3" json:"member_type_hint,omitempty"` -} - -func (x *JoinSecurityDomainsRequest) Reset() { - *x = JoinSecurityDomainsRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_vault_proto_msgTypes[5] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *JoinSecurityDomainsRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*JoinSecurityDomainsRequest) ProtoMessage() {} - -func (x *JoinSecurityDomainsRequest) ProtoReflect() protoreflect.Message { - mi := &file_vault_proto_msgTypes[5] - 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 JoinSecurityDomainsRequest.ProtoReflect.Descriptor instead. -func (*JoinSecurityDomainsRequest) Descriptor() ([]byte, []int) { - return file_vault_proto_rawDescGZIP(), []int{5} -} - -func (x *JoinSecurityDomainsRequest) GetSecurityDomain() *SecurityDomain { - if x != nil { - return x.SecurityDomain - } - return nil -} - -func (x *JoinSecurityDomainsRequest) GetSecurityDomainMember() *SecurityDomainMember { - if x != nil { - return x.SecurityDomainMember - } - return nil -} - -func (x *JoinSecurityDomainsRequest) GetSharedMemberKey() []*SharedMemberKey { - if x != nil { - return x.SharedMemberKey - } - return nil -} - -func (x *JoinSecurityDomainsRequest) GetMemberTypeHint() int32 { - if x != nil { - return x.MemberTypeHint - } - return 0 -} - -type JoinSecurityDomainsResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - SecurityDomain *SecurityDomain `protobuf:"bytes,1,opt,name=security_domain,json=securityDomain,proto3" json:"security_domain,omitempty"` -} - -func (x *JoinSecurityDomainsResponse) Reset() { - *x = JoinSecurityDomainsResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_vault_proto_msgTypes[6] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *JoinSecurityDomainsResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*JoinSecurityDomainsResponse) ProtoMessage() {} - -func (x *JoinSecurityDomainsResponse) ProtoReflect() protoreflect.Message { - mi := &file_vault_proto_msgTypes[6] - 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 JoinSecurityDomainsResponse.ProtoReflect.Descriptor instead. -func (*JoinSecurityDomainsResponse) Descriptor() ([]byte, []int) { - return file_vault_proto_rawDescGZIP(), []int{6} -} - -func (x *JoinSecurityDomainsResponse) GetSecurityDomain() *SecurityDomain { - if x != nil { - return x.SecurityDomain - } - return nil -} - -type JoinSecurityDomainsErrorDetail struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - AlreadyExistsResponse *JoinSecurityDomainsResponse `protobuf:"bytes,1,opt,name=already_exists_response,json=alreadyExistsResponse,proto3" json:"already_exists_response,omitempty"` -} - -func (x *JoinSecurityDomainsErrorDetail) Reset() { - *x = JoinSecurityDomainsErrorDetail{} - if protoimpl.UnsafeEnabled { - mi := &file_vault_proto_msgTypes[7] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *JoinSecurityDomainsErrorDetail) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*JoinSecurityDomainsErrorDetail) ProtoMessage() {} - -func (x *JoinSecurityDomainsErrorDetail) ProtoReflect() protoreflect.Message { - mi := &file_vault_proto_msgTypes[7] - 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 JoinSecurityDomainsErrorDetail.ProtoReflect.Descriptor instead. -func (*JoinSecurityDomainsErrorDetail) Descriptor() ([]byte, []int) { - return file_vault_proto_rawDescGZIP(), []int{7} -} - -func (x *JoinSecurityDomainsErrorDetail) GetAlreadyExistsResponse() *JoinSecurityDomainsResponse { - if x != nil { - return x.AlreadyExistsResponse - } - return nil -} - -// TODO(crbug.com/1234719): figure out how to link google.protobuf.Any and use -// it instead. -type Proto3Any struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - TypeUrl string `protobuf:"bytes,1,opt,name=type_url,json=typeUrl,proto3" json:"type_url,omitempty"` - Value []byte `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` -} - -func (x *Proto3Any) Reset() { - *x = Proto3Any{} - if protoimpl.UnsafeEnabled { - mi := &file_vault_proto_msgTypes[8] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *Proto3Any) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Proto3Any) ProtoMessage() {} - -func (x *Proto3Any) ProtoReflect() protoreflect.Message { - mi := &file_vault_proto_msgTypes[8] - 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 Proto3Any.ProtoReflect.Descriptor instead. -func (*Proto3Any) Descriptor() ([]byte, []int) { - return file_vault_proto_rawDescGZIP(), []int{8} -} - -func (x *Proto3Any) GetTypeUrl() string { - if x != nil { - return x.TypeUrl - } - return "" -} - -func (x *Proto3Any) GetValue() []byte { - if x != nil { - return x.Value - } - return nil -} - -// Forked version of google.rpc.Status. -type RPCStatus struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Details []*Proto3Any `protobuf:"bytes,3,rep,name=details,proto3" json:"details,omitempty"` -} - -func (x *RPCStatus) Reset() { - *x = RPCStatus{} - if protoimpl.UnsafeEnabled { - mi := &file_vault_proto_msgTypes[9] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *RPCStatus) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*RPCStatus) ProtoMessage() {} - -func (x *RPCStatus) ProtoReflect() protoreflect.Message { - mi := &file_vault_proto_msgTypes[9] - 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 RPCStatus.ProtoReflect.Descriptor instead. -func (*RPCStatus) Descriptor() ([]byte, []int) { - return file_vault_proto_rawDescGZIP(), []int{9} -} - -func (x *RPCStatus) GetDetails() []*Proto3Any { - if x != nil { - return x.Details - } - return nil -} - -type SecurityDomainDetails_SyncDetails struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - DegradedRecoverability bool `protobuf:"varint,1,opt,name=degraded_recoverability,json=degradedRecoverability,proto3" json:"degraded_recoverability,omitempty"` -} - -func (x *SecurityDomainDetails_SyncDetails) Reset() { - *x = SecurityDomainDetails_SyncDetails{} - if protoimpl.UnsafeEnabled { - mi := &file_vault_proto_msgTypes[10] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SecurityDomainDetails_SyncDetails) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SecurityDomainDetails_SyncDetails) ProtoMessage() {} - -func (x *SecurityDomainDetails_SyncDetails) ProtoReflect() protoreflect.Message { - mi := &file_vault_proto_msgTypes[10] - 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 SecurityDomainDetails_SyncDetails.ProtoReflect.Descriptor instead. -func (*SecurityDomainDetails_SyncDetails) Descriptor() ([]byte, []int) { - return file_vault_proto_rawDescGZIP(), []int{2, 0} -} - -func (x *SecurityDomainDetails_SyncDetails) GetDegradedRecoverability() bool { - if x != nil { - return x.DegradedRecoverability - } - return false -} - -type SecurityDomainMember_SecurityDomainMembership struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - SecurityDomain string `protobuf:"bytes,1,opt,name=security_domain,json=securityDomain,proto3" json:"security_domain,omitempty"` - Keys []*SharedMemberKey `protobuf:"bytes,3,rep,name=keys,proto3" json:"keys,omitempty"` - RotationProofs []*RotationProof `protobuf:"bytes,4,rep,name=rotation_proofs,json=rotationProofs,proto3" json:"rotation_proofs,omitempty"` -} - -func (x *SecurityDomainMember_SecurityDomainMembership) Reset() { - *x = SecurityDomainMember_SecurityDomainMembership{} - if protoimpl.UnsafeEnabled { - mi := &file_vault_proto_msgTypes[11] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SecurityDomainMember_SecurityDomainMembership) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SecurityDomainMember_SecurityDomainMembership) ProtoMessage() {} - -func (x *SecurityDomainMember_SecurityDomainMembership) ProtoReflect() protoreflect.Message { - mi := &file_vault_proto_msgTypes[11] - 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 SecurityDomainMember_SecurityDomainMembership.ProtoReflect.Descriptor instead. -func (*SecurityDomainMember_SecurityDomainMembership) Descriptor() ([]byte, []int) { - return file_vault_proto_rawDescGZIP(), []int{4, 0} -} - -func (x *SecurityDomainMember_SecurityDomainMembership) GetSecurityDomain() string { - if x != nil { - return x.SecurityDomain - } - return "" -} - -func (x *SecurityDomainMember_SecurityDomainMembership) GetKeys() []*SharedMemberKey { - if x != nil { - return x.Keys - } - return nil -} - -func (x *SecurityDomainMember_SecurityDomainMembership) GetRotationProofs() []*RotationProof { - if x != nil { - return x.RotationProofs - } - return nil -} - -var File_vault_proto protoreflect.FileDescriptor - -var file_vault_proto_rawDesc = []byte{ - 0x0a, 0x0b, 0x76, 0x61, 0x75, 0x6c, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x07, 0x73, - 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x22, 0x6b, 0x0a, 0x0f, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, - 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x70, 0x6f, - 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, - 0x1f, 0x0a, 0x0b, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x64, 0x4b, 0x65, 0x79, - 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x50, 0x72, - 0x6f, 0x6f, 0x66, 0x22, 0x53, 0x0a, 0x0d, 0x52, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, - 0x72, 0x6f, 0x6f, 0x66, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x65, 0x77, 0x5f, 0x65, 0x70, 0x6f, 0x63, - 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x6e, 0x65, 0x77, 0x45, 0x70, 0x6f, 0x63, - 0x68, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, - 0x6f, 0x6f, 0x66, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x72, 0x6f, 0x74, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x22, 0xae, 0x01, 0x0a, 0x15, 0x53, 0x65, 0x63, - 0x75, 0x72, 0x69, 0x74, 0x79, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, - 0x6c, 0x73, 0x12, 0x4d, 0x0a, 0x0c, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, - 0x6c, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, - 0x70, 0x62, 0x2e, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x44, 0x6f, 0x6d, 0x61, 0x69, - 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x44, 0x65, 0x74, - 0x61, 0x69, 0x6c, 0x73, 0x52, 0x0b, 0x73, 0x79, 0x6e, 0x63, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, - 0x73, 0x1a, 0x46, 0x0a, 0x0b, 0x53, 0x79, 0x6e, 0x63, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, - 0x12, 0x37, 0x0a, 0x17, 0x64, 0x65, 0x67, 0x72, 0x61, 0x64, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x63, - 0x6f, 0x76, 0x65, 0x72, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x16, 0x64, 0x65, 0x67, 0x72, 0x61, 0x64, 0x65, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x76, - 0x65, 0x72, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x22, 0xa1, 0x01, 0x0a, 0x0e, 0x53, 0x65, - 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x12, 0x0a, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x65, 0x70, 0x6f, 0x63, - 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, - 0x45, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x56, 0x0a, 0x17, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, - 0x79, 0x5f, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, - 0x2e, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x44, - 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x15, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, - 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0xef, 0x03, - 0x0a, 0x14, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, - 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x75, - 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, - 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x12, 0x58, 0x0a, 0x0b, 0x6d, 0x65, 0x6d, - 0x62, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, - 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, - 0x79, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x53, 0x65, - 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x4d, 0x65, 0x6d, 0x62, - 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x52, 0x0b, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x68, - 0x69, 0x70, 0x73, 0x12, 0x49, 0x0a, 0x0b, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, - 0x70, 0x62, 0x2e, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x44, 0x6f, 0x6d, 0x61, 0x69, - 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x54, 0x79, - 0x70, 0x65, 0x52, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x1a, 0xb2, - 0x01, 0x0a, 0x18, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x44, 0x6f, 0x6d, 0x61, 0x69, - 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x12, 0x27, 0x0a, 0x0f, 0x73, - 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x44, 0x6f, - 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x2c, 0x0a, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x03, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x53, 0x68, 0x61, - 0x72, 0x65, 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x52, 0x04, 0x6b, 0x65, - 0x79, 0x73, 0x12, 0x3f, 0x0a, 0x0f, 0x72, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, - 0x72, 0x6f, 0x6f, 0x66, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x79, - 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x52, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, - 0x6f, 0x6f, 0x66, 0x52, 0x0e, 0x72, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, - 0x6f, 0x66, 0x73, 0x22, 0x4a, 0x0a, 0x0a, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x54, 0x79, 0x70, - 0x65, 0x12, 0x1b, 0x0a, 0x17, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1f, - 0x0a, 0x1b, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x48, - 0x59, 0x53, 0x49, 0x43, 0x41, 0x4c, 0x5f, 0x44, 0x45, 0x56, 0x49, 0x43, 0x45, 0x10, 0x01, 0x22, - 0xa3, 0x02, 0x0a, 0x1a, 0x4a, 0x6f, 0x69, 0x6e, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, - 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x40, - 0x0a, 0x0f, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x64, 0x6f, 0x6d, 0x61, 0x69, - 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, - 0x62, 0x2e, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, - 0x52, 0x0e, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, - 0x12, 0x53, 0x0a, 0x16, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x64, 0x6f, 0x6d, - 0x61, 0x69, 0x6e, 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1d, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x53, 0x65, 0x63, 0x75, 0x72, - 0x69, 0x74, 0x79, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, - 0x14, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x4d, - 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x44, 0x0a, 0x11, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x5f, - 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x18, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x65, - 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x52, 0x0f, 0x73, 0x68, 0x61, 0x72, - 0x65, 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x12, 0x28, 0x0a, 0x10, 0x6d, - 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x68, 0x69, 0x6e, 0x74, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x54, 0x79, 0x70, - 0x65, 0x48, 0x69, 0x6e, 0x74, 0x22, 0x5f, 0x0a, 0x1b, 0x4a, 0x6f, 0x69, 0x6e, 0x53, 0x65, 0x63, - 0x75, 0x72, 0x69, 0x74, 0x79, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x0f, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, - 0x5f, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, - 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, - 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x0e, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, - 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x22, 0x7e, 0x0a, 0x1e, 0x4a, 0x6f, 0x69, 0x6e, 0x53, 0x65, - 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x45, 0x72, 0x72, - 0x6f, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x5c, 0x0a, 0x17, 0x61, 0x6c, 0x72, 0x65, - 0x61, 0x64, 0x79, 0x5f, 0x65, 0x78, 0x69, 0x73, 0x74, 0x73, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x79, 0x6e, 0x63, - 0x5f, 0x70, 0x62, 0x2e, 0x4a, 0x6f, 0x69, 0x6e, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, - 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, - 0x15, 0x61, 0x6c, 0x72, 0x65, 0x61, 0x64, 0x79, 0x45, 0x78, 0x69, 0x73, 0x74, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3c, 0x0a, 0x09, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x33, - 0x41, 0x6e, 0x79, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x75, 0x72, 0x6c, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x79, 0x70, 0x65, 0x55, 0x72, 0x6c, 0x12, 0x14, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x22, 0x39, 0x0a, 0x09, 0x52, 0x50, 0x43, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x12, 0x2c, 0x0a, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x50, 0x72, 0x6f, - 0x74, 0x6f, 0x33, 0x41, 0x6e, 0x79, 0x52, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x42, - 0x2b, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, - 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x03, 0x50, 0x01, 0x62, 0x06, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x33, -} - -var ( - file_vault_proto_rawDescOnce sync.Once - file_vault_proto_rawDescData = file_vault_proto_rawDesc -) - -func file_vault_proto_rawDescGZIP() []byte { - file_vault_proto_rawDescOnce.Do(func() { - file_vault_proto_rawDescData = protoimpl.X.CompressGZIP(file_vault_proto_rawDescData) - }) - return file_vault_proto_rawDescData -} - -var file_vault_proto_enumTypes = make([]protoimpl.EnumInfo, 1) -var file_vault_proto_msgTypes = make([]protoimpl.MessageInfo, 12) -var file_vault_proto_goTypes = []interface{}{ - (SecurityDomainMember_MemberType)(0), // 0: sync_pb.SecurityDomainMember.MemberType - (*SharedMemberKey)(nil), // 1: sync_pb.SharedMemberKey - (*RotationProof)(nil), // 2: sync_pb.RotationProof - (*SecurityDomainDetails)(nil), // 3: sync_pb.SecurityDomainDetails - (*SecurityDomain)(nil), // 4: sync_pb.SecurityDomain - (*SecurityDomainMember)(nil), // 5: sync_pb.SecurityDomainMember - (*JoinSecurityDomainsRequest)(nil), // 6: sync_pb.JoinSecurityDomainsRequest - (*JoinSecurityDomainsResponse)(nil), // 7: sync_pb.JoinSecurityDomainsResponse - (*JoinSecurityDomainsErrorDetail)(nil), // 8: sync_pb.JoinSecurityDomainsErrorDetail - (*Proto3Any)(nil), // 9: sync_pb.Proto3Any - (*RPCStatus)(nil), // 10: sync_pb.RPCStatus - (*SecurityDomainDetails_SyncDetails)(nil), // 11: sync_pb.SecurityDomainDetails.SyncDetails - (*SecurityDomainMember_SecurityDomainMembership)(nil), // 12: sync_pb.SecurityDomainMember.SecurityDomainMembership -} -var file_vault_proto_depIdxs = []int32{ - 11, // 0: sync_pb.SecurityDomainDetails.sync_details:type_name -> sync_pb.SecurityDomainDetails.SyncDetails - 3, // 1: sync_pb.SecurityDomain.security_domain_details:type_name -> sync_pb.SecurityDomainDetails - 12, // 2: sync_pb.SecurityDomainMember.memberships:type_name -> sync_pb.SecurityDomainMember.SecurityDomainMembership - 0, // 3: sync_pb.SecurityDomainMember.member_type:type_name -> sync_pb.SecurityDomainMember.MemberType - 4, // 4: sync_pb.JoinSecurityDomainsRequest.security_domain:type_name -> sync_pb.SecurityDomain - 5, // 5: sync_pb.JoinSecurityDomainsRequest.security_domain_member:type_name -> sync_pb.SecurityDomainMember - 1, // 6: sync_pb.JoinSecurityDomainsRequest.shared_member_key:type_name -> sync_pb.SharedMemberKey - 4, // 7: sync_pb.JoinSecurityDomainsResponse.security_domain:type_name -> sync_pb.SecurityDomain - 7, // 8: sync_pb.JoinSecurityDomainsErrorDetail.already_exists_response:type_name -> sync_pb.JoinSecurityDomainsResponse - 9, // 9: sync_pb.RPCStatus.details:type_name -> sync_pb.Proto3Any - 1, // 10: sync_pb.SecurityDomainMember.SecurityDomainMembership.keys:type_name -> sync_pb.SharedMemberKey - 2, // 11: sync_pb.SecurityDomainMember.SecurityDomainMembership.rotation_proofs:type_name -> sync_pb.RotationProof - 12, // [12:12] is the sub-list for method output_type - 12, // [12:12] is the sub-list for method input_type - 12, // [12:12] is the sub-list for extension type_name - 12, // [12:12] is the sub-list for extension extendee - 0, // [0:12] is the sub-list for field type_name -} - -func init() { file_vault_proto_init() } -func file_vault_proto_init() { - if File_vault_proto != nil { - return - } - if !protoimpl.UnsafeEnabled { - file_vault_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SharedMemberKey); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vault_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RotationProof); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vault_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SecurityDomainDetails); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vault_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SecurityDomain); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vault_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SecurityDomainMember); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vault_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*JoinSecurityDomainsRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vault_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*JoinSecurityDomainsResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vault_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*JoinSecurityDomainsErrorDetail); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vault_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Proto3Any); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vault_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RPCStatus); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vault_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SecurityDomainDetails_SyncDetails); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_vault_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SecurityDomainMember_SecurityDomainMembership); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } - type x struct{} - out := protoimpl.TypeBuilder{ - File: protoimpl.DescBuilder{ - GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_vault_proto_rawDesc, - NumEnums: 1, - NumMessages: 12, - NumExtensions: 0, - NumServices: 0, - }, - GoTypes: file_vault_proto_goTypes, - DependencyIndexes: file_vault_proto_depIdxs, - EnumInfos: file_vault_proto_enumTypes, - MessageInfos: file_vault_proto_msgTypes, - }.Build() - File_vault_proto = out.File - file_vault_proto_rawDesc = nil - file_vault_proto_goTypes = nil - file_vault_proto_depIdxs = nil -} diff --git a/schema/protobuf/sync_pb/vault.proto b/schema/protobuf/sync_pb/vault.proto deleted file mode 100644 index d70168e9..00000000 --- a/schema/protobuf/sync_pb/vault.proto +++ /dev/null @@ -1,84 +0,0 @@ -// Copyright 2020 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// Trusted vault protos to communicate with backend written in proto3 to avoid -// subtle differences between enum fields. -syntax = "proto3"; - -option java_multiple_files = true; -option java_package = "org.chromium.components.sync.protocol"; - -option optimize_for = LITE_RUNTIME; - -package sync_pb; - -message SharedMemberKey { - int32 epoch = 1; - bytes wrapped_key = 2; - bytes member_proof = 3; -} - -message RotationProof { - int32 new_epoch = 1; - bytes rotation_proof = 2; -} - -message SecurityDomainDetails { - message SyncDetails { bool degraded_recoverability = 1; } - - SyncDetails sync_details = 1; -} - -message SecurityDomain { - string name = 1; - int32 current_epoch = 2; - SecurityDomainDetails security_domain_details = 3; -} - -message SecurityDomainMember { - string name = 1; - bytes public_key = 2; - - message SecurityDomainMembership { - string security_domain = 1; - repeated SharedMemberKey keys = 3; - repeated RotationProof rotation_proofs = 4; - } - - repeated SecurityDomainMembership memberships = 3; - - enum MemberType { - MEMBER_TYPE_UNSPECIFIED = 0; - MEMBER_TYPE_PHYSICAL_DEVICE = 1; - } - - MemberType member_type = 4; -} - -message JoinSecurityDomainsRequest { - SecurityDomain security_domain = 1; - SecurityDomainMember security_domain_member = 2; - repeated SharedMemberKey shared_member_key = 3; - int32 member_type_hint = 4; -} - -message JoinSecurityDomainsResponse { - SecurityDomain security_domain = 1; -} - -message JoinSecurityDomainsErrorDetail { - JoinSecurityDomainsResponse already_exists_response = 1; -} - -// TODO(crbug.com/1234719): figure out how to link google.protobuf.Any and use -// it instead. -message Proto3Any { - string type_url = 1; - bytes value = 2; -} - -// Forked version of google.rpc.Status. -message RPCStatus { - repeated Proto3Any details = 3; -} \ No newline at end of file diff --git a/schema/protobuf/sync_pb/web_apk_specifics.pb.go b/schema/protobuf/sync_pb/web_apk_specifics.pb.go new file mode 100644 index 00000000..69e0762b --- /dev/null +++ b/schema/protobuf/sync_pb/web_apk_specifics.pb.go @@ -0,0 +1,381 @@ +// Copyright 2023 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// If you change or add any fields in this file, update +// components/sync/protocol/proto_visitors.h and potentially +// components/sync/protocol/proto_enum_conversions.{h, cc}. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.31.0 +// protoc v3.21.1 +// source: web_apk_specifics.proto + +package sync_pb + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type WebApkIconInfo_Purpose int32 + +const ( + WebApkIconInfo_UNSPECIFIED WebApkIconInfo_Purpose = 0 + // Suitable for any purpose. + WebApkIconInfo_ANY WebApkIconInfo_Purpose = 1 + // Designed for masking. + WebApkIconInfo_MASKABLE WebApkIconInfo_Purpose = 2 + // Suitable for monochrome purposes. + WebApkIconInfo_MONOCHROME WebApkIconInfo_Purpose = 3 +) + +// Enum value maps for WebApkIconInfo_Purpose. +var ( + WebApkIconInfo_Purpose_name = map[int32]string{ + 0: "UNSPECIFIED", + 1: "ANY", + 2: "MASKABLE", + 3: "MONOCHROME", + } + WebApkIconInfo_Purpose_value = map[string]int32{ + "UNSPECIFIED": 0, + "ANY": 1, + "MASKABLE": 2, + "MONOCHROME": 3, + } +) + +func (x WebApkIconInfo_Purpose) Enum() *WebApkIconInfo_Purpose { + p := new(WebApkIconInfo_Purpose) + *p = x + return p +} + +func (x WebApkIconInfo_Purpose) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (WebApkIconInfo_Purpose) Descriptor() protoreflect.EnumDescriptor { + return file_web_apk_specifics_proto_enumTypes[0].Descriptor() +} + +func (WebApkIconInfo_Purpose) Type() protoreflect.EnumType { + return &file_web_apk_specifics_proto_enumTypes[0] +} + +func (x WebApkIconInfo_Purpose) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Do not use. +func (x *WebApkIconInfo_Purpose) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err + } + *x = WebApkIconInfo_Purpose(num) + return nil +} + +// Deprecated: Use WebApkIconInfo_Purpose.Descriptor instead. +func (WebApkIconInfo_Purpose) EnumDescriptor() ([]byte, []int) { + return file_web_apk_specifics_proto_rawDescGZIP(), []int{0, 0} +} + +// Sync & local data: Information about web app icon. +type WebApkIconInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The size of the square app icon, in raw pixels. + SizeInPx *int32 `protobuf:"varint,1,opt,name=size_in_px,json=sizeInPx" json:"size_in_px,omitempty"` + // The URL of the app icon. + Url *string `protobuf:"bytes,2,opt,name=url" json:"url,omitempty"` + // The purpose or context in which the icon should be used. + Purpose *WebApkIconInfo_Purpose `protobuf:"varint,3,opt,name=purpose,enum=sync_pb.WebApkIconInfo_Purpose" json:"purpose,omitempty"` +} + +func (x *WebApkIconInfo) Reset() { + *x = WebApkIconInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_web_apk_specifics_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WebApkIconInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WebApkIconInfo) ProtoMessage() {} + +func (x *WebApkIconInfo) ProtoReflect() protoreflect.Message { + mi := &file_web_apk_specifics_proto_msgTypes[0] + 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 WebApkIconInfo.ProtoReflect.Descriptor instead. +func (*WebApkIconInfo) Descriptor() ([]byte, []int) { + return file_web_apk_specifics_proto_rawDescGZIP(), []int{0} +} + +func (x *WebApkIconInfo) GetSizeInPx() int32 { + if x != nil && x.SizeInPx != nil { + return *x.SizeInPx + } + return 0 +} + +func (x *WebApkIconInfo) GetUrl() string { + if x != nil && x.Url != nil { + return *x.Url + } + return "" +} + +func (x *WebApkIconInfo) GetPurpose() WebApkIconInfo_Purpose { + if x != nil && x.Purpose != nil { + return *x.Purpose + } + return WebApkIconInfo_UNSPECIFIED +} + +// WebApk data. +type WebApkSpecifics struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ManifestId *string `protobuf:"bytes,1,opt,name=manifest_id,json=manifestId" json:"manifest_id,omitempty"` + StartUrl *string `protobuf:"bytes,2,opt,name=start_url,json=startUrl" json:"start_url,omitempty"` + Name *string `protobuf:"bytes,3,opt,name=name" json:"name,omitempty"` + ThemeColor *uint32 `protobuf:"varint,4,opt,name=theme_color,json=themeColor" json:"theme_color,omitempty"` + Scope *string `protobuf:"bytes,5,opt,name=scope" json:"scope,omitempty"` + IconInfos []*WebApkIconInfo `protobuf:"bytes,6,rep,name=icon_infos,json=iconInfos" json:"icon_infos,omitempty"` + // Time when this WebApk was last used or installed. + // Number of microseconds since 1601, aka Windows epoch. + LastUsedTimeWindowsEpochMicros *int64 `protobuf:"varint,7,opt,name=last_used_time_windows_epoch_micros,json=lastUsedTimeWindowsEpochMicros" json:"last_used_time_windows_epoch_micros,omitempty"` +} + +func (x *WebApkSpecifics) Reset() { + *x = WebApkSpecifics{} + if protoimpl.UnsafeEnabled { + mi := &file_web_apk_specifics_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WebApkSpecifics) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WebApkSpecifics) ProtoMessage() {} + +func (x *WebApkSpecifics) ProtoReflect() protoreflect.Message { + mi := &file_web_apk_specifics_proto_msgTypes[1] + 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 WebApkSpecifics.ProtoReflect.Descriptor instead. +func (*WebApkSpecifics) Descriptor() ([]byte, []int) { + return file_web_apk_specifics_proto_rawDescGZIP(), []int{1} +} + +func (x *WebApkSpecifics) GetManifestId() string { + if x != nil && x.ManifestId != nil { + return *x.ManifestId + } + return "" +} + +func (x *WebApkSpecifics) GetStartUrl() string { + if x != nil && x.StartUrl != nil { + return *x.StartUrl + } + return "" +} + +func (x *WebApkSpecifics) GetName() string { + if x != nil && x.Name != nil { + return *x.Name + } + return "" +} + +func (x *WebApkSpecifics) GetThemeColor() uint32 { + if x != nil && x.ThemeColor != nil { + return *x.ThemeColor + } + return 0 +} + +func (x *WebApkSpecifics) GetScope() string { + if x != nil && x.Scope != nil { + return *x.Scope + } + return "" +} + +func (x *WebApkSpecifics) GetIconInfos() []*WebApkIconInfo { + if x != nil { + return x.IconInfos + } + return nil +} + +func (x *WebApkSpecifics) GetLastUsedTimeWindowsEpochMicros() int64 { + if x != nil && x.LastUsedTimeWindowsEpochMicros != nil { + return *x.LastUsedTimeWindowsEpochMicros + } + return 0 +} + +var File_web_apk_specifics_proto protoreflect.FileDescriptor + +var file_web_apk_specifics_proto_rawDesc = []byte{ + 0x0a, 0x17, 0x77, 0x65, 0x62, 0x5f, 0x61, 0x70, 0x6b, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x07, 0x73, 0x79, 0x6e, 0x63, 0x5f, + 0x70, 0x62, 0x22, 0xbe, 0x01, 0x0a, 0x0e, 0x57, 0x65, 0x62, 0x41, 0x70, 0x6b, 0x49, 0x63, 0x6f, + 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x0a, 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x69, 0x6e, + 0x5f, 0x70, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x73, 0x69, 0x7a, 0x65, 0x49, + 0x6e, 0x50, 0x78, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x39, 0x0a, 0x07, 0x70, 0x75, 0x72, 0x70, 0x6f, 0x73, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, + 0x2e, 0x57, 0x65, 0x62, 0x41, 0x70, 0x6b, 0x49, 0x63, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x2e, + 0x50, 0x75, 0x72, 0x70, 0x6f, 0x73, 0x65, 0x52, 0x07, 0x70, 0x75, 0x72, 0x70, 0x6f, 0x73, 0x65, + 0x22, 0x41, 0x0a, 0x07, 0x50, 0x75, 0x72, 0x70, 0x6f, 0x73, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x55, + 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, + 0x41, 0x4e, 0x59, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x4d, 0x41, 0x53, 0x4b, 0x41, 0x42, 0x4c, + 0x45, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x4d, 0x4f, 0x4e, 0x4f, 0x43, 0x48, 0x52, 0x4f, 0x4d, + 0x45, 0x10, 0x03, 0x22, 0x9f, 0x02, 0x0a, 0x0f, 0x57, 0x65, 0x62, 0x41, 0x70, 0x6b, 0x53, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x61, 0x6e, 0x69, 0x66, + 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6d, 0x61, + 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x55, 0x72, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x68, 0x65, + 0x6d, 0x65, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, + 0x74, 0x68, 0x65, 0x6d, 0x65, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, + 0x6f, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x70, 0x65, + 0x12, 0x36, 0x0a, 0x0a, 0x69, 0x63, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x73, 0x18, 0x06, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x57, + 0x65, 0x62, 0x41, 0x70, 0x6b, 0x49, 0x63, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x69, + 0x63, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x12, 0x4b, 0x0a, 0x23, 0x6c, 0x61, 0x73, 0x74, + 0x5f, 0x75, 0x73, 0x65, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x77, 0x69, 0x6e, 0x64, 0x6f, + 0x77, 0x73, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x5f, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x1e, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x73, 0x65, 0x64, 0x54, + 0x69, 0x6d, 0x65, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x4d, + 0x69, 0x63, 0x72, 0x6f, 0x73, 0x42, 0x36, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, 0x72, + 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, + 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x03, + 0x50, 0x01, 0x5a, 0x09, 0x2e, 0x2f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, +} + +var ( + file_web_apk_specifics_proto_rawDescOnce sync.Once + file_web_apk_specifics_proto_rawDescData = file_web_apk_specifics_proto_rawDesc +) + +func file_web_apk_specifics_proto_rawDescGZIP() []byte { + file_web_apk_specifics_proto_rawDescOnce.Do(func() { + file_web_apk_specifics_proto_rawDescData = protoimpl.X.CompressGZIP(file_web_apk_specifics_proto_rawDescData) + }) + return file_web_apk_specifics_proto_rawDescData +} + +var file_web_apk_specifics_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_web_apk_specifics_proto_msgTypes = make([]protoimpl.MessageInfo, 2) +var file_web_apk_specifics_proto_goTypes = []interface{}{ + (WebApkIconInfo_Purpose)(0), // 0: sync_pb.WebApkIconInfo.Purpose + (*WebApkIconInfo)(nil), // 1: sync_pb.WebApkIconInfo + (*WebApkSpecifics)(nil), // 2: sync_pb.WebApkSpecifics +} +var file_web_apk_specifics_proto_depIdxs = []int32{ + 0, // 0: sync_pb.WebApkIconInfo.purpose:type_name -> sync_pb.WebApkIconInfo.Purpose + 1, // 1: sync_pb.WebApkSpecifics.icon_infos:type_name -> sync_pb.WebApkIconInfo + 2, // [2:2] is the sub-list for method output_type + 2, // [2:2] is the sub-list for method input_type + 2, // [2:2] is the sub-list for extension type_name + 2, // [2:2] is the sub-list for extension extendee + 0, // [0:2] is the sub-list for field type_name +} + +func init() { file_web_apk_specifics_proto_init() } +func file_web_apk_specifics_proto_init() { + if File_web_apk_specifics_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_web_apk_specifics_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WebApkIconInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_web_apk_specifics_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WebApkSpecifics); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_web_apk_specifics_proto_rawDesc, + NumEnums: 1, + NumMessages: 2, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_web_apk_specifics_proto_goTypes, + DependencyIndexes: file_web_apk_specifics_proto_depIdxs, + EnumInfos: file_web_apk_specifics_proto_enumTypes, + MessageInfos: file_web_apk_specifics_proto_msgTypes, + }.Build() + File_web_apk_specifics_proto = out.File + file_web_apk_specifics_proto_rawDesc = nil + file_web_apk_specifics_proto_goTypes = nil + file_web_apk_specifics_proto_depIdxs = nil +} diff --git a/schema/protobuf/sync_pb/web_apk_specifics.proto b/schema/protobuf/sync_pb/web_apk_specifics.proto new file mode 100644 index 00000000..e2b9f2f7 --- /dev/null +++ b/schema/protobuf/sync_pb/web_apk_specifics.proto @@ -0,0 +1,52 @@ +// Copyright 2023 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// If you change or add any fields in this file, update +// components/sync/protocol/proto_visitors.h and potentially +// components/sync/protocol/proto_enum_conversions.{h, cc}. + +syntax = "proto2"; + +option go_package = "./sync_pb"; + +option java_multiple_files = true; +option java_package = "org.chromium.components.sync.protocol"; + +option optimize_for = LITE_RUNTIME; + +package sync_pb; + +// Sync & local data: Information about web app icon. +message WebApkIconInfo { + enum Purpose { + UNSPECIFIED = 0; + // Suitable for any purpose. + ANY = 1; + // Designed for masking. + MASKABLE = 2; + // Suitable for monochrome purposes. + MONOCHROME = 3; + } + + // The size of the square app icon, in raw pixels. + optional int32 size_in_px = 1; + // The URL of the app icon. + optional string url = 2; + // The purpose or context in which the icon should be used. + optional Purpose purpose = 3; +} + +// WebApk data. +message WebApkSpecifics { + optional string manifest_id = 1; + optional string start_url = 2; + optional string name = 3; + optional uint32 theme_color = 4; + optional string scope = 5; + repeated WebApkIconInfo icon_infos = 6; + + // Time when this WebApk was last used or installed. + // Number of microseconds since 1601, aka Windows epoch. + optional int64 last_used_time_windows_epoch_micros = 7; +} diff --git a/schema/protobuf/sync_pb/web_app_specifics.pb.go b/schema/protobuf/sync_pb/web_app_specifics.pb.go index 58ab0b46..6052f39e 100644 --- a/schema/protobuf/sync_pb/web_app_specifics.pb.go +++ b/schema/protobuf/sync_pb/web_app_specifics.pb.go @@ -1,4 +1,4 @@ -// Copyright 2019 The Chromium Authors. All rights reserved. +// Copyright 2019 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -8,7 +8,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.0 +// protoc-gen-go v1.31.0 // protoc v3.21.1 // source: web_app_specifics.proto @@ -105,7 +105,7 @@ const ( WebAppSpecifics_STANDALONE WebAppSpecifics_UserDisplayMode = 3 // FULLSCREEN is never serialized. // WINDOW_CONTROLS_OVERLAY is never serialized. - WebAppSpecifics_TABBED WebAppSpecifics_UserDisplayMode = 6 + WebAppSpecifics_TABBED WebAppSpecifics_UserDisplayMode = 6 // BORDERLESS is never serialized. ) // Enum value maps for WebAppSpecifics_UserDisplayMode. @@ -247,8 +247,16 @@ type WebAppSpecifics struct { // Used to store the in-page ranking for ordering apps in its given // |user_page_ordinal| page. UserLaunchOrdinal *string `protobuf:"bytes,8,opt,name=user_launch_ordinal,json=userLaunchOrdinal" json:"user_launch_ordinal,omitempty"` - // Used to store id specified in the manifest. - ManifestId *string `protobuf:"bytes,9,opt,name=manifest_id,json=manifestId" json:"manifest_id,omitempty"` + // Used to store id specified in the manifest. This is a path that is relative + // to the start_url, similar to how the id field is parsed in + // https://www.w3.org/TR/appmanifest/#id-member, except this field does not + // include a scheme or origin. This is only the path after the origin, + // excluding the first "/". + // Note: If this field is not set, then the manifest_id is generated using the + // start_url in GenerateManifestIdFromStartUrlOnly. This is different than if + // this is set to "", which means the manifest_id will be set to the origin of + // the start_url. + RelativeManifestId *string `protobuf:"bytes,9,opt,name=relative_manifest_id,json=relativeManifestId" json:"relative_manifest_id,omitempty"` } func (x *WebAppSpecifics) Reset() { @@ -339,9 +347,9 @@ func (x *WebAppSpecifics) GetUserLaunchOrdinal() string { return "" } -func (x *WebAppSpecifics) GetManifestId() string { - if x != nil && x.ManifestId != nil { - return *x.ManifestId +func (x *WebAppSpecifics) GetRelativeManifestId() string { + if x != nil && x.RelativeManifestId != nil { + return *x.RelativeManifestId } return "" } @@ -363,7 +371,7 @@ var file_web_app_specifics_proto_rawDesc = []byte{ 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x4e, 0x59, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x4d, 0x41, 0x53, 0x4b, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x4d, 0x4f, 0x4e, 0x4f, 0x43, 0x48, 0x52, 0x4f, 0x4d, - 0x45, 0x10, 0x03, 0x22, 0xd1, 0x03, 0x0a, 0x0f, 0x57, 0x65, 0x62, 0x41, 0x70, 0x70, 0x53, 0x70, + 0x45, 0x10, 0x03, 0x22, 0xe2, 0x03, 0x0a, 0x0f, 0x57, 0x65, 0x62, 0x41, 0x70, 0x70, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, 0x72, 0x74, 0x55, 0x72, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, @@ -385,17 +393,18 @@ var file_web_app_specifics_proto_rawDesc = []byte{ 0x67, 0x65, 0x4f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x6c, 0x12, 0x2e, 0x0a, 0x13, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x5f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x75, 0x73, 0x65, 0x72, 0x4c, 0x61, 0x75, 0x6e, - 0x63, 0x68, 0x4f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x6c, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x61, 0x6e, - 0x69, 0x66, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, - 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x49, 0x64, 0x22, 0x4b, 0x0a, 0x0f, 0x55, 0x73, - 0x65, 0x72, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x0f, 0x0a, - 0x0b, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, - 0x0a, 0x07, 0x42, 0x52, 0x4f, 0x57, 0x53, 0x45, 0x52, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x53, - 0x54, 0x41, 0x4e, 0x44, 0x41, 0x4c, 0x4f, 0x4e, 0x45, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x54, - 0x41, 0x42, 0x42, 0x45, 0x44, 0x10, 0x06, 0x42, 0x2b, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, - 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, - 0x74, 0x73, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, - 0x48, 0x03, 0x50, 0x01, + 0x63, 0x68, 0x4f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x6c, 0x12, 0x30, 0x0a, 0x14, 0x72, 0x65, 0x6c, + 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x5f, 0x69, + 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, + 0x65, 0x4d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x49, 0x64, 0x22, 0x4b, 0x0a, 0x0f, 0x55, + 0x73, 0x65, 0x72, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x0f, + 0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, + 0x0b, 0x0a, 0x07, 0x42, 0x52, 0x4f, 0x57, 0x53, 0x45, 0x52, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, + 0x53, 0x54, 0x41, 0x4e, 0x44, 0x41, 0x4c, 0x4f, 0x4e, 0x45, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, + 0x54, 0x41, 0x42, 0x42, 0x45, 0x44, 0x10, 0x06, 0x42, 0x36, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, + 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, + 0x6e, 0x74, 0x73, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x48, 0x03, 0x50, 0x01, 0x5a, 0x09, 0x2e, 0x2f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, } var ( diff --git a/schema/protobuf/sync_pb/web_app_specifics.proto b/schema/protobuf/sync_pb/web_app_specifics.proto index ec1deaef..474d39e3 100644 --- a/schema/protobuf/sync_pb/web_app_specifics.proto +++ b/schema/protobuf/sync_pb/web_app_specifics.proto @@ -1,4 +1,4 @@ -// Copyright 2019 The Chromium Authors. All rights reserved. +// Copyright 2019 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -8,6 +8,8 @@ syntax = "proto2"; +option go_package = "./sync_pb"; + option java_multiple_files = true; option java_package = "org.chromium.components.sync.protocol"; @@ -49,6 +51,7 @@ message WebAppSpecifics { // FULLSCREEN is never serialized. // WINDOW_CONTROLS_OVERLAY is never serialized. TABBED = 6; + // BORDERLESS is never serialized. } optional string start_url = 1; @@ -65,6 +68,14 @@ message WebAppSpecifics { // |user_page_ordinal| page. optional string user_launch_ordinal = 8; - // Used to store id specified in the manifest. - optional string manifest_id = 9; + // Used to store id specified in the manifest. This is a path that is relative + // to the start_url, similar to how the id field is parsed in + // https://www.w3.org/TR/appmanifest/#id-member, except this field does not + // include a scheme or origin. This is only the path after the origin, + // excluding the first "/". + // Note: If this field is not set, then the manifest_id is generated using the + // start_url in GenerateManifestIdFromStartUrlOnly. This is different than if + // this is set to "", which means the manifest_id will be set to the origin of + // the start_url. + optional string relative_manifest_id = 9; } diff --git a/schema/protobuf/sync_pb/webauthn_credential_specifics.pb.go b/schema/protobuf/sync_pb/webauthn_credential_specifics.pb.go index 4e845ee3..ff59200a 100644 --- a/schema/protobuf/sync_pb/webauthn_credential_specifics.pb.go +++ b/schema/protobuf/sync_pb/webauthn_credential_specifics.pb.go @@ -1,4 +1,4 @@ -// Copyright 2021 The Chromium Authors. All rights reserved. +// Copyright 2021 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -7,7 +7,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.0 +// protoc-gen-go v1.31.0 // protoc v3.21.1 // source: webauthn_credential_specifics.proto @@ -27,73 +27,6 @@ const ( _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) -// Credentials may optionally be used as part of Web Payments Secure Payment -// Confirmation[1]. This is opt-in at creation time. -// -// [1] https://www.w3.org/TR/secure-payment-confirmation/ -type WebauthnCredentialSpecifics_PaymentsSupport int32 - -const ( - // Indicates that this credential cannot be used to authenticate a payment. - WebauthnCredentialSpecifics_NONE WebauthnCredentialSpecifics_PaymentsSupport = 0 - // Indicates that the credential may authenticate a payment, but only for - // the same RP ID (i.e. same site) that created it. - WebauthnCredentialSpecifics_FIRST_PARTY WebauthnCredentialSpecifics_PaymentsSupport = 1 - // Indicates that the credential may authenticate a payment on any site. - WebauthnCredentialSpecifics_FIRST_AND_THIRD_PARTY WebauthnCredentialSpecifics_PaymentsSupport = 2 -) - -// Enum value maps for WebauthnCredentialSpecifics_PaymentsSupport. -var ( - WebauthnCredentialSpecifics_PaymentsSupport_name = map[int32]string{ - 0: "NONE", - 1: "FIRST_PARTY", - 2: "FIRST_AND_THIRD_PARTY", - } - WebauthnCredentialSpecifics_PaymentsSupport_value = map[string]int32{ - "NONE": 0, - "FIRST_PARTY": 1, - "FIRST_AND_THIRD_PARTY": 2, - } -) - -func (x WebauthnCredentialSpecifics_PaymentsSupport) Enum() *WebauthnCredentialSpecifics_PaymentsSupport { - p := new(WebauthnCredentialSpecifics_PaymentsSupport) - *p = x - return p -} - -func (x WebauthnCredentialSpecifics_PaymentsSupport) String() string { - return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -} - -func (WebauthnCredentialSpecifics_PaymentsSupport) Descriptor() protoreflect.EnumDescriptor { - return file_webauthn_credential_specifics_proto_enumTypes[0].Descriptor() -} - -func (WebauthnCredentialSpecifics_PaymentsSupport) Type() protoreflect.EnumType { - return &file_webauthn_credential_specifics_proto_enumTypes[0] -} - -func (x WebauthnCredentialSpecifics_PaymentsSupport) Number() protoreflect.EnumNumber { - return protoreflect.EnumNumber(x) -} - -// Deprecated: Do not use. -func (x *WebauthnCredentialSpecifics_PaymentsSupport) UnmarshalJSON(b []byte) error { - num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) - if err != nil { - return err - } - *x = WebauthnCredentialSpecifics_PaymentsSupport(num) - return nil -} - -// Deprecated: Use WebauthnCredentialSpecifics_PaymentsSupport.Descriptor instead. -func (WebauthnCredentialSpecifics_PaymentsSupport) EnumDescriptor() ([]byte, []int) { - return file_webauthn_credential_specifics_proto_rawDescGZIP(), []int{0, 0} -} - // WebauthnCredentialSpecifics is an entity that backs a WebAuthn // PublicKeyCredential. Since it contains the authenticator’s view of this // object, it has a private key rather than a public key. @@ -102,8 +35,8 @@ func (WebauthnCredentialSpecifics_PaymentsSupport) EnumDescriptor() ([]byte, []i // Names of fields are taken from WebAuthn where possible. E.g. // user.displayName in WebAuthn becomes user_display_name here. // -// All fields are immutable after creation except for user_display_name, which -// may be updated by a user. +// All fields are immutable after creation except for user_name and +// user_display_name, which may be updated by a user. type WebauthnCredentialSpecifics struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -179,18 +112,27 @@ type WebauthnCredentialSpecifics struct { // milliseconds since the UNIX epoch. This is used to break ties between // credentials. See newly_shadowed_credential_ids. CreationTime *int64 `protobuf:"varint,6,opt,name=creation_time,json=creationTime" json:"creation_time,omitempty"` - // The human-readable account identifier. Usually an email address. + // The human-readable account identifier. Usually an email address. This is + // mutable. // https://www.w3.org/TR/webauthn-2/#dom-publickeycredentialentity-name UserName *string `protobuf:"bytes,7,opt,name=user_name,json=userName" json:"user_name,omitempty"` - // The human-readable name. Usually a legal name. This is the only mutable - // field in a credential. + // The human-readable name. Usually a legal name. This is mutable. // https://www.w3.org/TR/webauthn-2/#dom-publickeycredentialuserentity-displayname. UserDisplayName *string `protobuf:"bytes,8,opt,name=user_display_name,json=userDisplayName" json:"user_display_name,omitempty"` - // The bytes of the private key, in a format known to the consumers of these - // sync entities. In the future the private key may be encrypted with a - // different key and then stored in a future encrypted_private_key field. - PrivateKey []byte `protobuf:"bytes,9,opt,name=private_key,json=privateKey" json:"private_key,omitempty"` - PaymentsSupport *WebauthnCredentialSpecifics_PaymentsSupport `protobuf:"varint,10,opt,name=payments_support,json=paymentsSupport,enum=sync_pb.WebauthnCredentialSpecifics_PaymentsSupport" json:"payments_support,omitempty"` + // Credentials may optionally be enabled for Secure Payment Confirmation[1] on + // third-party sites. This is opt-in at creation time. + // + // [1] https://www.w3.org/TR/secure-payment-confirmation/ + ThirdPartyPaymentsSupport *bool `protobuf:"varint,11,opt,name=third_party_payments_support,json=thirdPartyPaymentsSupport" json:"third_party_payments_support,omitempty"` + // Time when this passkey was last successfully asserted. Number of + // microseconds since 1601, aka Windows epoch. This mirrors the + // `date_last_used` field in PasswordSpecificsData. + LastUsedTimeWindowsEpochMicros *int64 `protobuf:"varint,13,opt,name=last_used_time_windows_epoch_micros,json=lastUsedTimeWindowsEpochMicros" json:"last_used_time_windows_epoch_micros,omitempty"` + // Types that are assignable to EncryptedData: + // + // *WebauthnCredentialSpecifics_PrivateKey + // *WebauthnCredentialSpecifics_Encrypted_ + EncryptedData isWebauthnCredentialSpecifics_EncryptedData `protobuf_oneof:"encrypted_data"` } func (x *WebauthnCredentialSpecifics) Reset() { @@ -281,18 +223,157 @@ func (x *WebauthnCredentialSpecifics) GetUserDisplayName() string { return "" } +func (x *WebauthnCredentialSpecifics) GetThirdPartyPaymentsSupport() bool { + if x != nil && x.ThirdPartyPaymentsSupport != nil { + return *x.ThirdPartyPaymentsSupport + } + return false +} + +func (x *WebauthnCredentialSpecifics) GetLastUsedTimeWindowsEpochMicros() int64 { + if x != nil && x.LastUsedTimeWindowsEpochMicros != nil { + return *x.LastUsedTimeWindowsEpochMicros + } + return 0 +} + +func (m *WebauthnCredentialSpecifics) GetEncryptedData() isWebauthnCredentialSpecifics_EncryptedData { + if m != nil { + return m.EncryptedData + } + return nil +} + func (x *WebauthnCredentialSpecifics) GetPrivateKey() []byte { + if x, ok := x.GetEncryptedData().(*WebauthnCredentialSpecifics_PrivateKey); ok { + return x.PrivateKey + } + return nil +} + +func (x *WebauthnCredentialSpecifics) GetEncrypted() []byte { + if x, ok := x.GetEncryptedData().(*WebauthnCredentialSpecifics_Encrypted_); ok { + return x.Encrypted + } + return nil +} + +type isWebauthnCredentialSpecifics_EncryptedData interface { + isWebauthnCredentialSpecifics_EncryptedData() +} + +type WebauthnCredentialSpecifics_PrivateKey struct { + // The bytes of the private key, encrypted with a feature-specific security + // domain. + PrivateKey []byte `protobuf:"bytes,9,opt,name=private_key,json=privateKey,oneof"` +} + +type WebauthnCredentialSpecifics_Encrypted_ struct { + // A serialized, `Encrypted` message, encrypted with a feature-specific + // security domain. + Encrypted []byte `protobuf:"bytes,12,opt,name=encrypted,oneof"` +} + +func (*WebauthnCredentialSpecifics_PrivateKey) isWebauthnCredentialSpecifics_EncryptedData() {} + +func (*WebauthnCredentialSpecifics_Encrypted_) isWebauthnCredentialSpecifics_EncryptedData() {} + +type WebauthnCredentialSpecifics_Encrypted struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The bytes of the private key, in PKCS#8 format. + PrivateKey []byte `protobuf:"bytes,1,opt,name=private_key,json=privateKey" json:"private_key,omitempty"` + // The secret for implementing the hmac-secret extension + // https://fidoalliance.org/specs/fido-v2.1-ps-20210615/fido-client-to-authenticator-protocol-v2.1-ps-errata-20220621.html#sctn-hmac-secret-extension + HmacSecret []byte `protobuf:"bytes,2,opt,name=hmac_secret,json=hmacSecret" json:"hmac_secret,omitempty"` + // The contents of the credential's credBlob. + // https://fidoalliance.org/specs/fido-v2.1-ps-20210615/fido-client-to-authenticator-protocol-v2.1-ps-errata-20220621.html#sctn-credBlob-extension + CredBlob []byte `protobuf:"bytes,3,opt,name=cred_blob,json=credBlob" json:"cred_blob,omitempty"` + // The contents of the credential's largeBlob value(*). Unlike with security + // keys, largeBlob data is not stored in a single lump for all credentials, + // but as per-credential data. This data is presented to the authenticator + // over CTAP and thus has already had the required DEFLATE compression + // applied by the remote platform. The uncompressed size of this data is in + // the next field. + // + // (*) "large" with respect to embedded devices. Maximum length is 2KiB for + // Google Password Manager. + // + // https://fidoalliance.org/specs/fido-v2.1-ps-20210615/fido-client-to-authenticator-protocol-v2.1-ps-errata-20220621.html#authenticatorLargeBlobs + LargeBlob []byte `protobuf:"bytes,4,opt,name=large_blob,json=largeBlob" json:"large_blob,omitempty"` + // The claimed uncompressed size of the DEFLATE-compressed data in + // `large_blob`. This corresponds to the `origSize` field from the spec: + // https://fidoalliance.org/specs/fido-v2.1-ps-20210615/fido-client-to-authenticator-protocol-v2.1-ps-errata-20220621.html#large-blob + LargeBlobUncompressedSize *uint64 `protobuf:"varint,5,opt,name=large_blob_uncompressed_size,json=largeBlobUncompressedSize" json:"large_blob_uncompressed_size,omitempty"` +} + +func (x *WebauthnCredentialSpecifics_Encrypted) Reset() { + *x = WebauthnCredentialSpecifics_Encrypted{} + if protoimpl.UnsafeEnabled { + mi := &file_webauthn_credential_specifics_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WebauthnCredentialSpecifics_Encrypted) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WebauthnCredentialSpecifics_Encrypted) ProtoMessage() {} + +func (x *WebauthnCredentialSpecifics_Encrypted) ProtoReflect() protoreflect.Message { + mi := &file_webauthn_credential_specifics_proto_msgTypes[1] + 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 WebauthnCredentialSpecifics_Encrypted.ProtoReflect.Descriptor instead. +func (*WebauthnCredentialSpecifics_Encrypted) Descriptor() ([]byte, []int) { + return file_webauthn_credential_specifics_proto_rawDescGZIP(), []int{0, 0} +} + +func (x *WebauthnCredentialSpecifics_Encrypted) GetPrivateKey() []byte { if x != nil { return x.PrivateKey } return nil } -func (x *WebauthnCredentialSpecifics) GetPaymentsSupport() WebauthnCredentialSpecifics_PaymentsSupport { - if x != nil && x.PaymentsSupport != nil { - return *x.PaymentsSupport +func (x *WebauthnCredentialSpecifics_Encrypted) GetHmacSecret() []byte { + if x != nil { + return x.HmacSecret + } + return nil +} + +func (x *WebauthnCredentialSpecifics_Encrypted) GetCredBlob() []byte { + if x != nil { + return x.CredBlob + } + return nil +} + +func (x *WebauthnCredentialSpecifics_Encrypted) GetLargeBlob() []byte { + if x != nil { + return x.LargeBlob + } + return nil +} + +func (x *WebauthnCredentialSpecifics_Encrypted) GetLargeBlobUncompressedSize() uint64 { + if x != nil && x.LargeBlobUncompressedSize != nil { + return *x.LargeBlobUncompressedSize } - return WebauthnCredentialSpecifics_NONE + return 0 } var File_webauthn_credential_specifics_proto protoreflect.FileDescriptor @@ -300,8 +381,8 @@ var File_webauthn_credential_specifics_proto protoreflect.FileDescriptor var file_webauthn_credential_specifics_proto_rawDesc = []byte{ 0x0a, 0x23, 0x77, 0x65, 0x62, 0x61, 0x75, 0x74, 0x68, 0x6e, 0x5f, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x07, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x22, 0x85, - 0x04, 0x0a, 0x1b, 0x57, 0x65, 0x62, 0x61, 0x75, 0x74, 0x68, 0x6e, 0x43, 0x72, 0x65, 0x64, 0x65, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x07, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x22, 0xf0, + 0x05, 0x0a, 0x1b, 0x57, 0x65, 0x62, 0x61, 0x75, 0x74, 0x68, 0x6e, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x73, 0x79, 0x6e, 0x63, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x64, 0x65, @@ -320,23 +401,38 @@ var file_webauthn_credential_specifics_proto_rawDesc = []byte{ 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x75, 0x73, 0x65, 0x72, - 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x70, - 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, - 0x52, 0x0a, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x5f, 0x0a, 0x10, - 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, - 0x2e, 0x57, 0x65, 0x62, 0x61, 0x75, 0x74, 0x68, 0x6e, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, - 0x69, 0x61, 0x6c, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x50, 0x61, 0x79, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x0f, 0x70, 0x61, - 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x22, 0x47, 0x0a, - 0x0f, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, - 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x46, 0x49, - 0x52, 0x53, 0x54, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x59, 0x10, 0x01, 0x12, 0x19, 0x0a, 0x15, 0x46, - 0x49, 0x52, 0x53, 0x54, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x54, 0x48, 0x49, 0x52, 0x44, 0x5f, 0x50, - 0x41, 0x52, 0x54, 0x59, 0x10, 0x02, 0x42, 0x2b, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, - 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, - 0x73, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, - 0x03, 0x50, 0x01, + 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3f, 0x0a, 0x1c, 0x74, + 0x68, 0x69, 0x72, 0x64, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x79, 0x5f, 0x70, 0x61, 0x79, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x19, 0x74, 0x68, 0x69, 0x72, 0x64, 0x50, 0x61, 0x72, 0x74, 0x79, 0x50, 0x61, 0x79, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x4b, 0x0a, 0x23, + 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x77, + 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x5f, 0x6d, 0x69, 0x63, + 0x72, 0x6f, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x1e, 0x6c, 0x61, 0x73, 0x74, 0x55, + 0x73, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x45, 0x70, + 0x6f, 0x63, 0x68, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x12, 0x21, 0x0a, 0x0b, 0x70, 0x72, 0x69, + 0x76, 0x61, 0x74, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, + 0x52, 0x0a, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x1e, 0x0a, 0x09, + 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0c, 0x48, + 0x00, 0x52, 0x09, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x1a, 0xca, 0x01, 0x0a, + 0x09, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, + 0x69, 0x76, 0x61, 0x74, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x0a, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x68, + 0x6d, 0x61, 0x63, 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x0a, 0x68, 0x6d, 0x61, 0x63, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x1b, 0x0a, 0x09, + 0x63, 0x72, 0x65, 0x64, 0x5f, 0x62, 0x6c, 0x6f, 0x62, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x08, 0x63, 0x72, 0x65, 0x64, 0x42, 0x6c, 0x6f, 0x62, 0x12, 0x1d, 0x0a, 0x0a, 0x6c, 0x61, 0x72, + 0x67, 0x65, 0x5f, 0x62, 0x6c, 0x6f, 0x62, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x6c, + 0x61, 0x72, 0x67, 0x65, 0x42, 0x6c, 0x6f, 0x62, 0x12, 0x3f, 0x0a, 0x1c, 0x6c, 0x61, 0x72, 0x67, + 0x65, 0x5f, 0x62, 0x6c, 0x6f, 0x62, 0x5f, 0x75, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, + 0x73, 0x65, 0x64, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x19, + 0x6c, 0x61, 0x72, 0x67, 0x65, 0x42, 0x6c, 0x6f, 0x62, 0x55, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x72, + 0x65, 0x73, 0x73, 0x65, 0x64, 0x53, 0x69, 0x7a, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x65, 0x6e, 0x63, + 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x4a, 0x04, 0x08, 0x0a, 0x10, + 0x0b, 0x42, 0x36, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, + 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x73, 0x79, 0x6e, + 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x03, 0x50, 0x01, 0x5a, 0x09, + 0x2e, 0x2f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, } var ( @@ -351,19 +447,17 @@ func file_webauthn_credential_specifics_proto_rawDescGZIP() []byte { return file_webauthn_credential_specifics_proto_rawDescData } -var file_webauthn_credential_specifics_proto_enumTypes = make([]protoimpl.EnumInfo, 1) -var file_webauthn_credential_specifics_proto_msgTypes = make([]protoimpl.MessageInfo, 1) +var file_webauthn_credential_specifics_proto_msgTypes = make([]protoimpl.MessageInfo, 2) var file_webauthn_credential_specifics_proto_goTypes = []interface{}{ - (WebauthnCredentialSpecifics_PaymentsSupport)(0), // 0: sync_pb.WebauthnCredentialSpecifics.PaymentsSupport - (*WebauthnCredentialSpecifics)(nil), // 1: sync_pb.WebauthnCredentialSpecifics + (*WebauthnCredentialSpecifics)(nil), // 0: sync_pb.WebauthnCredentialSpecifics + (*WebauthnCredentialSpecifics_Encrypted)(nil), // 1: sync_pb.WebauthnCredentialSpecifics.Encrypted } var file_webauthn_credential_specifics_proto_depIdxs = []int32{ - 0, // 0: sync_pb.WebauthnCredentialSpecifics.payments_support:type_name -> sync_pb.WebauthnCredentialSpecifics.PaymentsSupport - 1, // [1:1] is the sub-list for method output_type - 1, // [1:1] is the sub-list for method input_type - 1, // [1:1] is the sub-list for extension type_name - 1, // [1:1] is the sub-list for extension extendee - 0, // [0:1] is the sub-list for field type_name + 0, // [0:0] is the sub-list for method output_type + 0, // [0:0] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name } func init() { file_webauthn_credential_specifics_proto_init() } @@ -384,20 +478,35 @@ func file_webauthn_credential_specifics_proto_init() { return nil } } + file_webauthn_credential_specifics_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WebauthnCredentialSpecifics_Encrypted); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_webauthn_credential_specifics_proto_msgTypes[0].OneofWrappers = []interface{}{ + (*WebauthnCredentialSpecifics_PrivateKey)(nil), + (*WebauthnCredentialSpecifics_Encrypted_)(nil), } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_webauthn_credential_specifics_proto_rawDesc, - NumEnums: 1, - NumMessages: 1, + NumEnums: 0, + NumMessages: 2, NumExtensions: 0, NumServices: 0, }, GoTypes: file_webauthn_credential_specifics_proto_goTypes, DependencyIndexes: file_webauthn_credential_specifics_proto_depIdxs, - EnumInfos: file_webauthn_credential_specifics_proto_enumTypes, MessageInfos: file_webauthn_credential_specifics_proto_msgTypes, }.Build() File_webauthn_credential_specifics_proto = out.File diff --git a/schema/protobuf/sync_pb/webauthn_credential_specifics.proto b/schema/protobuf/sync_pb/webauthn_credential_specifics.proto index 1838a3d3..565ea37c 100644 --- a/schema/protobuf/sync_pb/webauthn_credential_specifics.proto +++ b/schema/protobuf/sync_pb/webauthn_credential_specifics.proto @@ -1,4 +1,4 @@ -// Copyright 2021 The Chromium Authors. All rights reserved. +// Copyright 2021 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -7,6 +7,8 @@ syntax = "proto2"; +option go_package = "./sync_pb"; + option java_multiple_files = true; option java_package = "org.chromium.components.sync.protocol"; @@ -22,8 +24,8 @@ package sync_pb; // Names of fields are taken from WebAuthn where possible. E.g. // user.displayName in WebAuthn becomes user_display_name here. // -// All fields are immutable after creation except for user_display_name, which -// may be updated by a user. +// All fields are immutable after creation except for user_name and +// user_display_name, which may be updated by a user. message WebauthnCredentialSpecifics { // Sync's ID for this entity (sometimes called the client unique tag), 16 // random bytes. This value is used within Sync to identify this entity. The @@ -101,35 +103,67 @@ message WebauthnCredentialSpecifics { // credentials. See newly_shadowed_credential_ids. optional int64 creation_time = 6; - // The human-readable account identifier. Usually an email address. + // The human-readable account identifier. Usually an email address. This is + // mutable. // https://www.w3.org/TR/webauthn-2/#dom-publickeycredentialentity-name optional string user_name = 7; - // The human-readable name. Usually a legal name. This is the only mutable - // field in a credential. + // The human-readable name. Usually a legal name. This is mutable. // https://www.w3.org/TR/webauthn-2/#dom-publickeycredentialuserentity-displayname. optional string user_display_name = 8; - // The bytes of the private key, in a format known to the consumers of these - // sync entities. In the future the private key may be encrypted with a - // different key and then stored in a future encrypted_private_key field. - optional bytes private_key = 9; + // Reserving obsolete field. + reserved 10; - // Credentials may optionally be used as part of Web Payments Secure Payment - // Confirmation[1]. This is opt-in at creation time. + // Credentials may optionally be enabled for Secure Payment Confirmation[1] on + // third-party sites. This is opt-in at creation time. // // [1] https://www.w3.org/TR/secure-payment-confirmation/ - enum PaymentsSupport { - // Indicates that this credential cannot be used to authenticate a payment. - NONE = 0; - // Indicates that the credential may authenticate a payment, but only for - // the same RP ID (i.e. same site) that created it. - FIRST_PARTY = 1; - // Indicates that the credential may authenticate a payment on any site. - FIRST_AND_THIRD_PARTY = 2; - }; - optional PaymentsSupport payments_support = 10; - - // Support for CTAP 2.1 may require the addition of fields such as cred_blob - // and hmac_secret_key in the future, but they are not currently supported. + optional bool third_party_payments_support = 11; + + // Time when this passkey was last successfully asserted. Number of + // microseconds since 1601, aka Windows epoch. This mirrors the + // `date_last_used` field in PasswordSpecificsData. + optional int64 last_used_time_windows_epoch_micros = 13; + + message Encrypted { + // The bytes of the private key, in PKCS#8 format. + optional bytes private_key = 1; + + // The secret for implementing the hmac-secret extension + // https://fidoalliance.org/specs/fido-v2.1-ps-20210615/fido-client-to-authenticator-protocol-v2.1-ps-errata-20220621.html#sctn-hmac-secret-extension + optional bytes hmac_secret = 2; + + // The contents of the credential's credBlob. + // https://fidoalliance.org/specs/fido-v2.1-ps-20210615/fido-client-to-authenticator-protocol-v2.1-ps-errata-20220621.html#sctn-credBlob-extension + optional bytes cred_blob = 3; + + // The contents of the credential's largeBlob value(*). Unlike with security + // keys, largeBlob data is not stored in a single lump for all credentials, + // but as per-credential data. This data is presented to the authenticator + // over CTAP and thus has already had the required DEFLATE compression + // applied by the remote platform. The uncompressed size of this data is in + // the next field. + // + // (*) "large" with respect to embedded devices. Maximum length is 2KiB for + // Google Password Manager. + // + // https://fidoalliance.org/specs/fido-v2.1-ps-20210615/fido-client-to-authenticator-protocol-v2.1-ps-errata-20220621.html#authenticatorLargeBlobs + optional bytes large_blob = 4; + + // The claimed uncompressed size of the DEFLATE-compressed data in + // `large_blob`. This corresponds to the `origSize` field from the spec: + // https://fidoalliance.org/specs/fido-v2.1-ps-20210615/fido-client-to-authenticator-protocol-v2.1-ps-errata-20220621.html#large-blob + optional uint64 large_blob_uncompressed_size = 5; + } + + oneof encrypted_data { + // The bytes of the private key, encrypted with a feature-specific security + // domain. + bytes private_key = 9; + + // A serialized, `Encrypted` message, encrypted with a feature-specific + // security domain. + bytes encrypted = 12; + } } diff --git a/schema/protobuf/sync_pb/wifi_configuration_specifics.pb.go b/schema/protobuf/sync_pb/wifi_configuration_specifics.pb.go index 260bc9c8..a2737dc4 100644 --- a/schema/protobuf/sync_pb/wifi_configuration_specifics.pb.go +++ b/schema/protobuf/sync_pb/wifi_configuration_specifics.pb.go @@ -1,4 +1,4 @@ -// Copyright 2019 The Chromium Authors. All rights reserved. +// Copyright 2019 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // @@ -9,7 +9,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.0 +// protoc-gen-go v1.31.0 // protoc v3.21.1 // source: wifi_configuration_specifics.proto @@ -824,10 +824,10 @@ var file_wifi_configuration_specifics_proto_rawDesc = []byte{ 0x44, 0x10, 0x00, 0x12, 0x1b, 0x0a, 0x17, 0x44, 0x4e, 0x53, 0x5f, 0x4f, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x5f, 0x44, 0x48, 0x43, 0x50, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, 0x44, 0x4e, 0x53, 0x5f, 0x4f, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, - 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x10, 0x02, 0x42, 0x2b, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, + 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x10, 0x02, 0x42, 0x36, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, - 0x48, 0x03, 0x50, 0x01, + 0x48, 0x03, 0x50, 0x01, 0x5a, 0x09, 0x2e, 0x2f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, } var ( diff --git a/schema/protobuf/sync_pb/wifi_configuration_specifics.proto b/schema/protobuf/sync_pb/wifi_configuration_specifics.proto index 798de93e..bfa977d8 100644 --- a/schema/protobuf/sync_pb/wifi_configuration_specifics.proto +++ b/schema/protobuf/sync_pb/wifi_configuration_specifics.proto @@ -1,4 +1,4 @@ -// Copyright 2019 The Chromium Authors. All rights reserved. +// Copyright 2019 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // @@ -9,6 +9,8 @@ syntax = "proto2"; +option go_package = "./sync_pb"; + option java_multiple_files = true; option java_package = "org.chromium.components.sync.protocol"; diff --git a/schema/protobuf/sync_pb/workspace_desk_specifics.pb.go b/schema/protobuf/sync_pb/workspace_desk_specifics.pb.go index add9ad7c..cd897776 100644 --- a/schema/protobuf/sync_pb/workspace_desk_specifics.pb.go +++ b/schema/protobuf/sync_pb/workspace_desk_specifics.pb.go @@ -1,4 +1,4 @@ -// Copyright 2021 The Chromium Authors. All rights reserved. +// Copyright 2021 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // @@ -9,7 +9,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.28.0 +// protoc-gen-go v1.31.0 // protoc v3.21.1 // source: workspace_desk_specifics.proto @@ -116,6 +116,8 @@ const ( // in landscape screen orientation and bottom in portrait screen // orientation. WorkspaceDeskSpecifics_SECONDARY_SNAPPED WorkspaceDeskSpecifics_WindowState = 6 + // Floated window state. + WorkspaceDeskSpecifics_FLOATED WorkspaceDeskSpecifics_WindowState = 7 ) // Enum value maps for WorkspaceDeskSpecifics_WindowState. @@ -128,6 +130,7 @@ var ( 4: "FULLSCREEN", 5: "PRIMARY_SNAPPED", 6: "SECONDARY_SNAPPED", + 7: "FLOATED", } WorkspaceDeskSpecifics_WindowState_value = map[string]int32{ "UNKNOWN_WINDOW_STATE": 0, @@ -137,6 +140,7 @@ var ( "FULLSCREEN": 4, "PRIMARY_SNAPPED": 5, "SECONDARY_SNAPPED": 6, + "FLOATED": 7, } ) @@ -280,9 +284,10 @@ func (WorkspaceDeskSpecifics_WindowOpenDisposition) EnumDescriptor() ([]byte, [] type WorkspaceDeskSpecifics_DeskType int32 const ( - WorkspaceDeskSpecifics_UNKNOWN_TYPE WorkspaceDeskSpecifics_DeskType = 0 - WorkspaceDeskSpecifics_TEMPLATE WorkspaceDeskSpecifics_DeskType = 1 - WorkspaceDeskSpecifics_SAVE_AND_RECALL WorkspaceDeskSpecifics_DeskType = 2 + WorkspaceDeskSpecifics_UNKNOWN_TYPE WorkspaceDeskSpecifics_DeskType = 0 + WorkspaceDeskSpecifics_TEMPLATE WorkspaceDeskSpecifics_DeskType = 1 + WorkspaceDeskSpecifics_SAVE_AND_RECALL WorkspaceDeskSpecifics_DeskType = 2 + WorkspaceDeskSpecifics_FLOATING_WORKSPACE WorkspaceDeskSpecifics_DeskType = 3 ) // Enum value maps for WorkspaceDeskSpecifics_DeskType. @@ -291,11 +296,13 @@ var ( 0: "UNKNOWN_TYPE", 1: "TEMPLATE", 2: "SAVE_AND_RECALL", + 3: "FLOATING_WORKSPACE", } WorkspaceDeskSpecifics_DeskType_value = map[string]int32{ - "UNKNOWN_TYPE": 0, - "TEMPLATE": 1, - "SAVE_AND_RECALL": 2, + "UNKNOWN_TYPE": 0, + "TEMPLATE": 1, + "SAVE_AND_RECALL": 2, + "FLOATING_WORKSPACE": 3, } ) @@ -336,6 +343,89 @@ func (WorkspaceDeskSpecifics_DeskType) EnumDescriptor() ([]byte, []int) { return file_workspace_desk_specifics_proto_rawDescGZIP(), []int{0, 3} } +// Enumerates the possible colors that a tab group can have. This mirrors +// the enumeration that can be found in +// components/tab_groups/tab_group_color.h +type WorkspaceDeskSpecifics_TabGroupColor int32 + +const ( + WorkspaceDeskSpecifics_UNKNOWN_COLOR WorkspaceDeskSpecifics_TabGroupColor = 0 + WorkspaceDeskSpecifics_GREY WorkspaceDeskSpecifics_TabGroupColor = 1 + WorkspaceDeskSpecifics_BLUE WorkspaceDeskSpecifics_TabGroupColor = 2 + WorkspaceDeskSpecifics_RED WorkspaceDeskSpecifics_TabGroupColor = 3 + WorkspaceDeskSpecifics_YELLOW WorkspaceDeskSpecifics_TabGroupColor = 4 + WorkspaceDeskSpecifics_GREEN WorkspaceDeskSpecifics_TabGroupColor = 5 + WorkspaceDeskSpecifics_PINK WorkspaceDeskSpecifics_TabGroupColor = 6 + WorkspaceDeskSpecifics_PURPLE WorkspaceDeskSpecifics_TabGroupColor = 7 + WorkspaceDeskSpecifics_CYAN WorkspaceDeskSpecifics_TabGroupColor = 8 + WorkspaceDeskSpecifics_ORANGE WorkspaceDeskSpecifics_TabGroupColor = 9 +) + +// Enum value maps for WorkspaceDeskSpecifics_TabGroupColor. +var ( + WorkspaceDeskSpecifics_TabGroupColor_name = map[int32]string{ + 0: "UNKNOWN_COLOR", + 1: "GREY", + 2: "BLUE", + 3: "RED", + 4: "YELLOW", + 5: "GREEN", + 6: "PINK", + 7: "PURPLE", + 8: "CYAN", + 9: "ORANGE", + } + WorkspaceDeskSpecifics_TabGroupColor_value = map[string]int32{ + "UNKNOWN_COLOR": 0, + "GREY": 1, + "BLUE": 2, + "RED": 3, + "YELLOW": 4, + "GREEN": 5, + "PINK": 6, + "PURPLE": 7, + "CYAN": 8, + "ORANGE": 9, + } +) + +func (x WorkspaceDeskSpecifics_TabGroupColor) Enum() *WorkspaceDeskSpecifics_TabGroupColor { + p := new(WorkspaceDeskSpecifics_TabGroupColor) + *p = x + return p +} + +func (x WorkspaceDeskSpecifics_TabGroupColor) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (WorkspaceDeskSpecifics_TabGroupColor) Descriptor() protoreflect.EnumDescriptor { + return file_workspace_desk_specifics_proto_enumTypes[4].Descriptor() +} + +func (WorkspaceDeskSpecifics_TabGroupColor) Type() protoreflect.EnumType { + return &file_workspace_desk_specifics_proto_enumTypes[4] +} + +func (x WorkspaceDeskSpecifics_TabGroupColor) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Do not use. +func (x *WorkspaceDeskSpecifics_TabGroupColor) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err + } + *x = WorkspaceDeskSpecifics_TabGroupColor(num) + return nil +} + +// Deprecated: Use WorkspaceDeskSpecifics_TabGroupColor.Descriptor instead. +func (WorkspaceDeskSpecifics_TabGroupColor) EnumDescriptor() ([]byte, []int) { + return file_workspace_desk_specifics_proto_rawDescGZIP(), []int{0, 4} +} + // A workspace desk entry. This proto contains the fields synced to represent // a saved desk in user's workspace. type WorkspaceDeskSpecifics struct { @@ -355,6 +445,11 @@ type WorkspaceDeskSpecifics struct { Desk *WorkspaceDeskSpecifics_Desk `protobuf:"bytes,4,opt,name=desk" json:"desk,omitempty"` // The type of a desk. DeskType *WorkspaceDeskSpecifics_DeskType `protobuf:"varint,6,opt,name=desk_type,json=deskType,enum=sync_pb.WorkspaceDeskSpecifics_DeskType" json:"desk_type,omitempty"` + // The cache guid of the syncing client. Used to identify a unique device + // that's syncing data. + ClientCacheGuid *string `protobuf:"bytes,7,opt,name=client_cache_guid,json=clientCacheGuid" json:"client_cache_guid,omitempty"` + // The form factor of the device. + DeviceFormFactor *SyncEnums_DeviceFormFactor `protobuf:"varint,8,opt,name=device_form_factor,json=deviceFormFactor,enum=sync_pb.SyncEnums_DeviceFormFactor" json:"device_form_factor,omitempty"` } func (x *WorkspaceDeskSpecifics) Reset() { @@ -431,6 +526,20 @@ func (x *WorkspaceDeskSpecifics) GetDeskType() WorkspaceDeskSpecifics_DeskType { return WorkspaceDeskSpecifics_UNKNOWN_TYPE } +func (x *WorkspaceDeskSpecifics) GetClientCacheGuid() string { + if x != nil && x.ClientCacheGuid != nil { + return *x.ClientCacheGuid + } + return "" +} + +func (x *WorkspaceDeskSpecifics) GetDeviceFormFactor() SyncEnums_DeviceFormFactor { + if x != nil && x.DeviceFormFactor != nil { + return *x.DeviceFormFactor + } + return SyncEnums_DEVICE_FORM_FACTOR_UNSPECIFIED +} + // Represent a snapshot of the information on a desk. type WorkspaceDeskSpecifics_Desk struct { state protoimpl.MessageState @@ -641,6 +750,7 @@ type WorkspaceDeskSpecifics_AppOneOf struct { unknownFields protoimpl.UnknownFields // Types that are assignable to App: + // // *WorkspaceDeskSpecifics_AppOneOf_BrowserAppWindow // *WorkspaceDeskSpecifics_AppOneOf_ChromeApp // *WorkspaceDeskSpecifics_AppOneOf_ProgressWebApp @@ -755,6 +865,10 @@ type WorkspaceDeskSpecifics_BrowserAppWindow struct { ActiveTabIndex *int32 `protobuf:"varint,2,opt,name=active_tab_index,json=activeTabIndex" json:"active_tab_index,omitempty"` // Indicates whether to show as a dedicated app window. ShowAsApp *bool `protobuf:"varint,3,opt,name=show_as_app,json=showAsApp" json:"show_as_app,omitempty"` + // Tab groups associated with this window. + TabGroups []*WorkspaceDeskSpecifics_BrowserAppWindow_TabGroup `protobuf:"bytes,4,rep,name=tab_groups,json=tabGroups" json:"tab_groups,omitempty"` + // The index of the first non-pinned tab. + FirstNonPinnedTabIndex *int32 `protobuf:"varint,5,opt,name=first_non_pinned_tab_index,json=firstNonPinnedTabIndex" json:"first_non_pinned_tab_index,omitempty"` } func (x *WorkspaceDeskSpecifics_BrowserAppWindow) Reset() { @@ -810,6 +924,20 @@ func (x *WorkspaceDeskSpecifics_BrowserAppWindow) GetShowAsApp() bool { return false } +func (x *WorkspaceDeskSpecifics_BrowserAppWindow) GetTabGroups() []*WorkspaceDeskSpecifics_BrowserAppWindow_TabGroup { + if x != nil { + return x.TabGroups + } + return nil +} + +func (x *WorkspaceDeskSpecifics_BrowserAppWindow) GetFirstNonPinnedTabIndex() int32 { + if x != nil && x.FirstNonPinnedTabIndex != nil { + return *x.FirstNonPinnedTabIndex + } + return 0 +} + // A Chrome App window. type WorkspaceDeskSpecifics_ChromeApp struct { state protoimpl.MessageState @@ -1115,6 +1243,93 @@ func (x *WorkspaceDeskSpecifics_BrowserAppWindow_BrowserAppTab) GetTitle() strin return "" } +// Structure representing a tab group associated with this window. +type WorkspaceDeskSpecifics_BrowserAppWindow_TabGroup struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Zero-based index within the browser app tabs of the first tab in the + // group. + FirstIndex *int32 `protobuf:"varint,1,opt,name=first_index,json=firstIndex" json:"first_index,omitempty"` + // Zero-based Index wotjom the browser app tabs of the last tab in the + // group. + LastIndex *int32 `protobuf:"varint,2,opt,name=last_index,json=lastIndex" json:"last_index,omitempty"` + // User readable title of the tab group. + Title *string `protobuf:"bytes,3,opt,name=title" json:"title,omitempty"` + // Color associated with this tab group. + Color *WorkspaceDeskSpecifics_TabGroupColor `protobuf:"varint,4,opt,name=color,enum=sync_pb.WorkspaceDeskSpecifics_TabGroupColor" json:"color,omitempty"` + // Indicates whether the tab group is collapsed. + IsCollapsed *bool `protobuf:"varint,5,opt,name=is_collapsed,json=isCollapsed" json:"is_collapsed,omitempty"` +} + +func (x *WorkspaceDeskSpecifics_BrowserAppWindow_TabGroup) Reset() { + *x = WorkspaceDeskSpecifics_BrowserAppWindow_TabGroup{} + if protoimpl.UnsafeEnabled { + mi := &file_workspace_desk_specifics_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WorkspaceDeskSpecifics_BrowserAppWindow_TabGroup) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WorkspaceDeskSpecifics_BrowserAppWindow_TabGroup) ProtoMessage() {} + +func (x *WorkspaceDeskSpecifics_BrowserAppWindow_TabGroup) ProtoReflect() protoreflect.Message { + mi := &file_workspace_desk_specifics_proto_msgTypes[10] + 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 WorkspaceDeskSpecifics_BrowserAppWindow_TabGroup.ProtoReflect.Descriptor instead. +func (*WorkspaceDeskSpecifics_BrowserAppWindow_TabGroup) Descriptor() ([]byte, []int) { + return file_workspace_desk_specifics_proto_rawDescGZIP(), []int{0, 3, 1} +} + +func (x *WorkspaceDeskSpecifics_BrowserAppWindow_TabGroup) GetFirstIndex() int32 { + if x != nil && x.FirstIndex != nil { + return *x.FirstIndex + } + return 0 +} + +func (x *WorkspaceDeskSpecifics_BrowserAppWindow_TabGroup) GetLastIndex() int32 { + if x != nil && x.LastIndex != nil { + return *x.LastIndex + } + return 0 +} + +func (x *WorkspaceDeskSpecifics_BrowserAppWindow_TabGroup) GetTitle() string { + if x != nil && x.Title != nil { + return *x.Title + } + return "" +} + +func (x *WorkspaceDeskSpecifics_BrowserAppWindow_TabGroup) GetColor() WorkspaceDeskSpecifics_TabGroupColor { + if x != nil && x.Color != nil { + return *x.Color + } + return WorkspaceDeskSpecifics_UNKNOWN_COLOR +} + +func (x *WorkspaceDeskSpecifics_BrowserAppWindow_TabGroup) GetIsCollapsed() bool { + if x != nil && x.IsCollapsed != nil { + return *x.IsCollapsed + } + return false +} + // maps to gfx::Size. Width of the window, including the frame, // in pixels. type WorkspaceDeskSpecifics_ArcApp_WindowSize struct { @@ -1129,7 +1344,7 @@ type WorkspaceDeskSpecifics_ArcApp_WindowSize struct { func (x *WorkspaceDeskSpecifics_ArcApp_WindowSize) Reset() { *x = WorkspaceDeskSpecifics_ArcApp_WindowSize{} if protoimpl.UnsafeEnabled { - mi := &file_workspace_desk_specifics_proto_msgTypes[10] + mi := &file_workspace_desk_specifics_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1142,7 +1357,7 @@ func (x *WorkspaceDeskSpecifics_ArcApp_WindowSize) String() string { func (*WorkspaceDeskSpecifics_ArcApp_WindowSize) ProtoMessage() {} func (x *WorkspaceDeskSpecifics_ArcApp_WindowSize) ProtoReflect() protoreflect.Message { - mi := &file_workspace_desk_specifics_proto_msgTypes[10] + mi := &file_workspace_desk_specifics_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1177,190 +1392,233 @@ var File_workspace_desk_specifics_proto protoreflect.FileDescriptor var file_workspace_desk_specifics_proto_rawDesc = []byte{ 0x0a, 0x1e, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x64, 0x65, 0x73, 0x6b, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x12, 0x07, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x22, 0xc2, 0x16, 0x0a, 0x16, 0x57, 0x6f, - 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x44, 0x65, 0x73, 0x6b, 0x53, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x63, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x48, 0x0a, 0x21, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x77, 0x69, 0x6e, - 0x64, 0x6f, 0x77, 0x73, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x5f, 0x6d, 0x69, 0x63, 0x72, 0x6f, - 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x1d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, - 0x54, 0x69, 0x6d, 0x65, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x45, 0x70, 0x6f, 0x63, 0x68, - 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x12, 0x48, 0x0a, 0x21, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x5f, 0x65, - 0x70, 0x6f, 0x63, 0x68, 0x5f, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x1d, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x57, 0x69, - 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, - 0x12, 0x38, 0x0a, 0x04, 0x64, 0x65, 0x73, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, - 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, - 0x63, 0x65, 0x44, 0x65, 0x73, 0x6b, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, - 0x44, 0x65, 0x73, 0x6b, 0x52, 0x04, 0x64, 0x65, 0x73, 0x6b, 0x12, 0x45, 0x0a, 0x09, 0x64, 0x65, - 0x73, 0x6b, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, - 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, - 0x65, 0x44, 0x65, 0x73, 0x6b, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x44, - 0x65, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x64, 0x65, 0x73, 0x6b, 0x54, 0x79, 0x70, - 0x65, 0x1a, 0x3f, 0x0a, 0x04, 0x44, 0x65, 0x73, 0x6b, 0x12, 0x37, 0x0a, 0x04, 0x61, 0x70, 0x70, - 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, - 0x62, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x44, 0x65, 0x73, 0x6b, 0x53, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x41, 0x70, 0x70, 0x52, 0x04, 0x61, 0x70, - 0x70, 0x73, 0x1a, 0xa2, 0x05, 0x0a, 0x03, 0x41, 0x70, 0x70, 0x12, 0x4e, 0x0a, 0x0c, 0x77, 0x69, - 0x6e, 0x64, 0x6f, 0x77, 0x5f, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x2b, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x73, - 0x70, 0x61, 0x63, 0x65, 0x44, 0x65, 0x73, 0x6b, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, - 0x73, 0x2e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x0b, 0x77, - 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x4e, 0x0a, 0x0c, 0x77, 0x69, - 0x6e, 0x64, 0x6f, 0x77, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x2b, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x73, + 0x12, 0x07, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x1a, 0x10, 0x73, 0x79, 0x6e, 0x63, 0x5f, + 0x65, 0x6e, 0x75, 0x6d, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xcc, 0x1b, 0x0a, 0x16, + 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x44, 0x65, 0x73, 0x6b, 0x53, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x48, + 0x0a, 0x21, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x77, + 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x5f, 0x6d, 0x69, 0x63, + 0x72, 0x6f, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x1d, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x45, 0x70, 0x6f, + 0x63, 0x68, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x12, 0x48, 0x0a, 0x21, 0x75, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, + 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x5f, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x1d, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, + 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x4d, 0x69, 0x63, 0x72, + 0x6f, 0x73, 0x12, 0x38, 0x0a, 0x04, 0x64, 0x65, 0x73, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x24, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x44, 0x65, 0x73, 0x6b, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, - 0x73, 0x2e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0b, 0x77, - 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x7a, 0x5f, - 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x7a, 0x49, 0x6e, - 0x64, 0x65, 0x78, 0x12, 0x3a, 0x0a, 0x03, 0x61, 0x70, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x28, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x73, - 0x70, 0x61, 0x63, 0x65, 0x44, 0x65, 0x73, 0x6b, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, - 0x73, 0x2e, 0x41, 0x70, 0x70, 0x4f, 0x6e, 0x65, 0x4f, 0x66, 0x52, 0x03, 0x61, 0x70, 0x70, 0x12, - 0x1b, 0x0a, 0x09, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x08, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, - 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x09, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x49, 0x64, 0x12, 0x68, 0x0a, 0x1a, 0x70, - 0x72, 0x65, 0x5f, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x77, 0x69, 0x6e, - 0x64, 0x6f, 0x77, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x2b, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, + 0x73, 0x2e, 0x44, 0x65, 0x73, 0x6b, 0x52, 0x04, 0x64, 0x65, 0x73, 0x6b, 0x12, 0x45, 0x0a, 0x09, + 0x64, 0x65, 0x73, 0x6b, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x28, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x44, 0x65, 0x73, 0x6b, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, - 0x2e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x17, 0x70, 0x72, - 0x65, 0x4d, 0x69, 0x6e, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x64, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x4d, 0x0a, 0x09, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, - 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, + 0x2e, 0x44, 0x65, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x64, 0x65, 0x73, 0x6b, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x61, + 0x63, 0x68, 0x65, 0x5f, 0x67, 0x75, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, + 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x47, 0x75, 0x69, 0x64, 0x12, + 0x51, 0x0a, 0x12, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x5f, 0x66, + 0x61, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x73, 0x79, + 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x45, 0x6e, 0x75, 0x6d, 0x73, 0x2e, + 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, + 0x52, 0x10, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x46, 0x61, 0x63, 0x74, + 0x6f, 0x72, 0x1a, 0x3f, 0x0a, 0x04, 0x44, 0x65, 0x73, 0x6b, 0x12, 0x37, 0x0a, 0x04, 0x61, 0x70, + 0x70, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x44, 0x65, 0x73, 0x6b, - 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x4c, 0x61, 0x75, 0x6e, 0x63, 0x68, - 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x74, 0x61, - 0x69, 0x6e, 0x65, 0x72, 0x12, 0x57, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6f, 0x73, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x35, 0x2e, 0x73, 0x79, 0x6e, 0x63, - 0x5f, 0x70, 0x62, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x44, 0x65, 0x73, - 0x6b, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x57, 0x69, 0x6e, 0x64, 0x6f, - 0x77, 0x4f, 0x70, 0x65, 0x6e, 0x44, 0x69, 0x73, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x19, 0x0a, - 0x08, 0x61, 0x70, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x61, 0x70, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, - 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x27, - 0x0a, 0x0f, 0x73, 0x6e, 0x61, 0x70, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, - 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x73, 0x6e, 0x61, 0x70, 0x50, 0x65, 0x72, - 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x1a, 0xe1, 0x02, 0x0a, 0x08, 0x41, 0x70, 0x70, 0x4f, - 0x6e, 0x65, 0x4f, 0x66, 0x12, 0x60, 0x0a, 0x12, 0x62, 0x72, 0x6f, 0x77, 0x73, 0x65, 0x72, 0x5f, - 0x61, 0x70, 0x70, 0x5f, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x30, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x73, + 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x41, 0x70, 0x70, 0x52, 0x04, 0x61, + 0x70, 0x70, 0x73, 0x1a, 0xa2, 0x05, 0x0a, 0x03, 0x41, 0x70, 0x70, 0x12, 0x4e, 0x0a, 0x0c, 0x77, + 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x5f, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x2b, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x57, 0x6f, 0x72, 0x6b, + 0x73, 0x70, 0x61, 0x63, 0x65, 0x44, 0x65, 0x73, 0x6b, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x63, 0x73, 0x2e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x0b, + 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x4e, 0x0a, 0x0c, 0x77, + 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x2b, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x57, 0x6f, 0x72, 0x6b, + 0x73, 0x70, 0x61, 0x63, 0x65, 0x44, 0x65, 0x73, 0x6b, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x63, 0x73, 0x2e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0b, + 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x7a, + 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x7a, 0x49, + 0x6e, 0x64, 0x65, 0x78, 0x12, 0x3a, 0x0a, 0x03, 0x61, 0x70, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x28, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x57, 0x6f, 0x72, 0x6b, + 0x73, 0x70, 0x61, 0x63, 0x65, 0x44, 0x65, 0x73, 0x6b, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x63, 0x73, 0x2e, 0x41, 0x70, 0x70, 0x4f, 0x6e, 0x65, 0x4f, 0x66, 0x52, 0x03, 0x61, 0x70, 0x70, + 0x12, 0x1b, 0x0a, 0x09, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x08, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x49, 0x64, 0x12, 0x1d, 0x0a, + 0x0a, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x09, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x49, 0x64, 0x12, 0x68, 0x0a, 0x1a, + 0x70, 0x72, 0x65, 0x5f, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x77, 0x69, + 0x6e, 0x64, 0x6f, 0x77, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x2b, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x44, 0x65, 0x73, 0x6b, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, - 0x73, 0x2e, 0x42, 0x72, 0x6f, 0x77, 0x73, 0x65, 0x72, 0x41, 0x70, 0x70, 0x57, 0x69, 0x6e, 0x64, - 0x6f, 0x77, 0x48, 0x00, 0x52, 0x10, 0x62, 0x72, 0x6f, 0x77, 0x73, 0x65, 0x72, 0x41, 0x70, 0x70, - 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x12, 0x4a, 0x0a, 0x0a, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x65, - 0x5f, 0x61, 0x70, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x73, 0x79, 0x6e, + 0x73, 0x2e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x17, 0x70, + 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x64, 0x57, 0x69, 0x6e, 0x64, 0x6f, + 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x4d, 0x0a, 0x09, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, + 0x6e, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x73, 0x79, 0x6e, 0x63, + 0x5f, 0x70, 0x62, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x44, 0x65, 0x73, + 0x6b, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x4c, 0x61, 0x75, 0x6e, 0x63, + 0x68, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x74, + 0x61, 0x69, 0x6e, 0x65, 0x72, 0x12, 0x57, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6f, 0x73, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x35, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x44, 0x65, - 0x73, 0x6b, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x43, 0x68, 0x72, 0x6f, - 0x6d, 0x65, 0x41, 0x70, 0x70, 0x48, 0x00, 0x52, 0x09, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x65, 0x41, - 0x70, 0x70, 0x12, 0x5d, 0x0a, 0x10, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x77, - 0x65, 0x62, 0x5f, 0x61, 0x70, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x73, - 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, - 0x44, 0x65, 0x73, 0x6b, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x50, 0x72, - 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x69, 0x76, 0x65, 0x57, 0x65, 0x62, 0x41, 0x70, 0x70, 0x48, - 0x00, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x57, 0x65, 0x62, 0x41, 0x70, - 0x70, 0x12, 0x41, 0x0a, 0x07, 0x61, 0x72, 0x63, 0x5f, 0x61, 0x70, 0x70, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x57, 0x6f, 0x72, - 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x44, 0x65, 0x73, 0x6b, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x69, 0x63, 0x73, 0x2e, 0x41, 0x72, 0x63, 0x41, 0x70, 0x70, 0x48, 0x00, 0x52, 0x06, 0x61, 0x72, - 0x63, 0x41, 0x70, 0x70, 0x42, 0x05, 0x0a, 0x03, 0x61, 0x70, 0x70, 0x1a, 0xe9, 0x01, 0x0a, 0x10, - 0x42, 0x72, 0x6f, 0x77, 0x73, 0x65, 0x72, 0x41, 0x70, 0x70, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, - 0x12, 0x52, 0x0a, 0x04, 0x74, 0x61, 0x62, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3e, - 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, - 0x63, 0x65, 0x44, 0x65, 0x73, 0x6b, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, - 0x42, 0x72, 0x6f, 0x77, 0x73, 0x65, 0x72, 0x41, 0x70, 0x70, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, - 0x2e, 0x42, 0x72, 0x6f, 0x77, 0x73, 0x65, 0x72, 0x41, 0x70, 0x70, 0x54, 0x61, 0x62, 0x52, 0x04, - 0x74, 0x61, 0x62, 0x73, 0x12, 0x28, 0x0a, 0x10, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x74, - 0x61, 0x62, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, - 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x54, 0x61, 0x62, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1e, - 0x0a, 0x0b, 0x73, 0x68, 0x6f, 0x77, 0x5f, 0x61, 0x73, 0x5f, 0x61, 0x70, 0x70, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x09, 0x73, 0x68, 0x6f, 0x77, 0x41, 0x73, 0x41, 0x70, 0x70, 0x1a, 0x37, - 0x0a, 0x0d, 0x42, 0x72, 0x6f, 0x77, 0x73, 0x65, 0x72, 0x41, 0x70, 0x70, 0x54, 0x61, 0x62, 0x12, - 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, - 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x1a, 0x28, 0x0a, 0x09, 0x43, 0x68, 0x72, 0x6f, 0x6d, - 0x65, 0x41, 0x70, 0x70, 0x12, 0x15, 0x0a, 0x06, 0x61, 0x70, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x61, 0x70, 0x70, 0x49, 0x64, 0x4a, 0x04, 0x08, 0x02, 0x10, - 0x03, 0x1a, 0x30, 0x0a, 0x11, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x69, 0x76, 0x65, - 0x57, 0x65, 0x62, 0x41, 0x70, 0x70, 0x12, 0x15, 0x0a, 0x06, 0x61, 0x70, 0x70, 0x5f, 0x69, 0x64, + 0x73, 0x6b, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x57, 0x69, 0x6e, 0x64, + 0x6f, 0x77, 0x4f, 0x70, 0x65, 0x6e, 0x44, 0x69, 0x73, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x19, + 0x0a, 0x08, 0x61, 0x70, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x61, 0x70, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, + 0x6c, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, + 0x27, 0x0a, 0x0f, 0x73, 0x6e, 0x61, 0x70, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, + 0x67, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x73, 0x6e, 0x61, 0x70, 0x50, 0x65, + 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x1a, 0xe1, 0x02, 0x0a, 0x08, 0x41, 0x70, 0x70, + 0x4f, 0x6e, 0x65, 0x4f, 0x66, 0x12, 0x60, 0x0a, 0x12, 0x62, 0x72, 0x6f, 0x77, 0x73, 0x65, 0x72, + 0x5f, 0x61, 0x70, 0x70, 0x5f, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x30, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x57, 0x6f, 0x72, 0x6b, + 0x73, 0x70, 0x61, 0x63, 0x65, 0x44, 0x65, 0x73, 0x6b, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x63, 0x73, 0x2e, 0x42, 0x72, 0x6f, 0x77, 0x73, 0x65, 0x72, 0x41, 0x70, 0x70, 0x57, 0x69, 0x6e, + 0x64, 0x6f, 0x77, 0x48, 0x00, 0x52, 0x10, 0x62, 0x72, 0x6f, 0x77, 0x73, 0x65, 0x72, 0x41, 0x70, + 0x70, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x12, 0x4a, 0x0a, 0x0a, 0x63, 0x68, 0x72, 0x6f, 0x6d, + 0x65, 0x5f, 0x61, 0x70, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x73, 0x79, + 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x44, + 0x65, 0x73, 0x6b, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x43, 0x68, 0x72, + 0x6f, 0x6d, 0x65, 0x41, 0x70, 0x70, 0x48, 0x00, 0x52, 0x09, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x65, + 0x41, 0x70, 0x70, 0x12, 0x5d, 0x0a, 0x10, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, + 0x77, 0x65, 0x62, 0x5f, 0x61, 0x70, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, + 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, + 0x65, 0x44, 0x65, 0x73, 0x6b, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x50, + 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x69, 0x76, 0x65, 0x57, 0x65, 0x62, 0x41, 0x70, 0x70, + 0x48, 0x00, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x57, 0x65, 0x62, 0x41, + 0x70, 0x70, 0x12, 0x41, 0x0a, 0x07, 0x61, 0x72, 0x63, 0x5f, 0x61, 0x70, 0x70, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x57, 0x6f, + 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x44, 0x65, 0x73, 0x6b, 0x53, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x63, 0x73, 0x2e, 0x41, 0x72, 0x63, 0x41, 0x70, 0x70, 0x48, 0x00, 0x52, 0x06, 0x61, + 0x72, 0x63, 0x41, 0x70, 0x70, 0x42, 0x05, 0x0a, 0x03, 0x61, 0x70, 0x70, 0x1a, 0xca, 0x04, 0x0a, + 0x10, 0x42, 0x72, 0x6f, 0x77, 0x73, 0x65, 0x72, 0x41, 0x70, 0x70, 0x57, 0x69, 0x6e, 0x64, 0x6f, + 0x77, 0x12, 0x52, 0x0a, 0x04, 0x74, 0x61, 0x62, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x3e, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x44, 0x65, 0x73, 0x6b, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, + 0x2e, 0x42, 0x72, 0x6f, 0x77, 0x73, 0x65, 0x72, 0x41, 0x70, 0x70, 0x57, 0x69, 0x6e, 0x64, 0x6f, + 0x77, 0x2e, 0x42, 0x72, 0x6f, 0x77, 0x73, 0x65, 0x72, 0x41, 0x70, 0x70, 0x54, 0x61, 0x62, 0x52, + 0x04, 0x74, 0x61, 0x62, 0x73, 0x12, 0x28, 0x0a, 0x10, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x74, 0x61, 0x62, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x54, 0x61, 0x62, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, + 0x1e, 0x0a, 0x0b, 0x73, 0x68, 0x6f, 0x77, 0x5f, 0x61, 0x73, 0x5f, 0x61, 0x70, 0x70, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x73, 0x68, 0x6f, 0x77, 0x41, 0x73, 0x41, 0x70, 0x70, 0x12, + 0x58, 0x0a, 0x0a, 0x74, 0x61, 0x62, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18, 0x04, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x57, 0x6f, + 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x44, 0x65, 0x73, 0x6b, 0x53, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x63, 0x73, 0x2e, 0x42, 0x72, 0x6f, 0x77, 0x73, 0x65, 0x72, 0x41, 0x70, 0x70, 0x57, + 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x54, 0x61, 0x62, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x09, + 0x74, 0x61, 0x62, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x3a, 0x0a, 0x1a, 0x66, 0x69, 0x72, + 0x73, 0x74, 0x5f, 0x6e, 0x6f, 0x6e, 0x5f, 0x70, 0x69, 0x6e, 0x6e, 0x65, 0x64, 0x5f, 0x74, 0x61, + 0x62, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x16, 0x66, + 0x69, 0x72, 0x73, 0x74, 0x4e, 0x6f, 0x6e, 0x50, 0x69, 0x6e, 0x6e, 0x65, 0x64, 0x54, 0x61, 0x62, + 0x49, 0x6e, 0x64, 0x65, 0x78, 0x1a, 0x37, 0x0a, 0x0d, 0x42, 0x72, 0x6f, 0x77, 0x73, 0x65, 0x72, + 0x41, 0x70, 0x70, 0x54, 0x61, 0x62, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x1a, 0xc8, + 0x01, 0x0a, 0x08, 0x54, 0x61, 0x62, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x1f, 0x0a, 0x0b, 0x66, + 0x69, 0x72, 0x73, 0x74, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0a, 0x66, 0x69, 0x72, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1d, 0x0a, 0x0a, + 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x09, 0x6c, 0x61, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x14, 0x0a, 0x05, 0x74, + 0x69, 0x74, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, + 0x65, 0x12, 0x43, 0x0a, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x2d, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x44, 0x65, 0x73, 0x6b, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, + 0x73, 0x2e, 0x54, 0x61, 0x62, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x52, + 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x73, 0x5f, 0x63, 0x6f, 0x6c, + 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x73, + 0x43, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x1a, 0x28, 0x0a, 0x09, 0x43, 0x68, 0x72, + 0x6f, 0x6d, 0x65, 0x41, 0x70, 0x70, 0x12, 0x15, 0x0a, 0x06, 0x61, 0x70, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x61, 0x70, 0x70, 0x49, 0x64, 0x4a, 0x04, 0x08, - 0x02, 0x10, 0x03, 0x1a, 0xe0, 0x02, 0x0a, 0x06, 0x41, 0x72, 0x63, 0x41, 0x70, 0x70, 0x12, 0x15, - 0x0a, 0x06, 0x61, 0x70, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x61, 0x70, 0x70, 0x49, 0x64, 0x12, 0x54, 0x0a, 0x0c, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, - 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x73, 0x79, + 0x02, 0x10, 0x03, 0x1a, 0x30, 0x0a, 0x11, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x69, + 0x76, 0x65, 0x57, 0x65, 0x62, 0x41, 0x70, 0x70, 0x12, 0x15, 0x0a, 0x06, 0x61, 0x70, 0x70, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x61, 0x70, 0x70, 0x49, 0x64, 0x4a, + 0x04, 0x08, 0x02, 0x10, 0x03, 0x1a, 0xe0, 0x02, 0x0a, 0x06, 0x41, 0x72, 0x63, 0x41, 0x70, 0x70, + 0x12, 0x15, 0x0a, 0x06, 0x61, 0x70, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x61, 0x70, 0x70, 0x49, 0x64, 0x12, 0x54, 0x0a, 0x0c, 0x6d, 0x69, 0x6e, 0x69, 0x6d, + 0x75, 0x6d, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, + 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, + 0x65, 0x44, 0x65, 0x73, 0x6b, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x41, + 0x72, 0x63, 0x41, 0x70, 0x70, 0x2e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, + 0x52, 0x0b, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x54, 0x0a, + 0x0c, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x57, 0x6f, + 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x44, 0x65, 0x73, 0x6b, 0x53, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x63, 0x73, 0x2e, 0x41, 0x72, 0x63, 0x41, 0x70, 0x70, 0x2e, 0x57, 0x69, 0x6e, 0x64, + 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, 0x52, 0x0b, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x53, + 0x69, 0x7a, 0x65, 0x12, 0x51, 0x0a, 0x0e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x73, 0x5f, 0x69, 0x6e, + 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x44, - 0x65, 0x73, 0x6b, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x41, 0x72, 0x63, - 0x41, 0x70, 0x70, 0x2e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, 0x52, 0x0b, - 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x54, 0x0a, 0x0c, 0x6d, - 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x31, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x70, 0x62, 0x2e, 0x57, 0x6f, 0x72, 0x6b, - 0x73, 0x70, 0x61, 0x63, 0x65, 0x44, 0x65, 0x73, 0x6b, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x63, 0x73, 0x2e, 0x41, 0x72, 0x63, 0x41, 0x70, 0x70, 0x2e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, - 0x53, 0x69, 0x7a, 0x65, 0x52, 0x0b, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x53, 0x69, 0x7a, - 0x65, 0x12, 0x51, 0x0a, 0x0e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x73, 0x5f, 0x69, 0x6e, 0x5f, 0x72, - 0x6f, 0x6f, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x73, 0x79, 0x6e, 0x63, - 0x5f, 0x70, 0x62, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x44, 0x65, 0x73, - 0x6b, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x57, 0x69, 0x6e, 0x64, 0x6f, - 0x77, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x0c, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x73, 0x49, 0x6e, - 0x52, 0x6f, 0x6f, 0x74, 0x1a, 0x3a, 0x0a, 0x0a, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x53, 0x69, - 0x7a, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, - 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, - 0x4a, 0x04, 0x08, 0x04, 0x10, 0x05, 0x1a, 0x61, 0x0a, 0x0b, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, - 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x6f, 0x70, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x03, 0x74, 0x6f, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x65, 0x66, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x6c, 0x65, 0x66, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x77, - 0x69, 0x64, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x77, 0x69, 0x64, 0x74, - 0x68, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0xac, 0x01, 0x0a, 0x0f, 0x4c, 0x61, - 0x75, 0x6e, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x12, 0x20, 0x0a, - 0x1c, 0x4c, 0x41, 0x55, 0x4e, 0x43, 0x48, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x41, 0x49, 0x4e, 0x45, - 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, - 0x1b, 0x0a, 0x17, 0x4c, 0x41, 0x55, 0x4e, 0x43, 0x48, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x41, 0x49, - 0x4e, 0x45, 0x52, 0x5f, 0x57, 0x49, 0x4e, 0x44, 0x4f, 0x57, 0x10, 0x01, 0x12, 0x25, 0x0a, 0x21, - 0x4c, 0x41, 0x55, 0x4e, 0x43, 0x48, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x41, 0x49, 0x4e, 0x45, 0x52, - 0x5f, 0x50, 0x41, 0x4e, 0x45, 0x4c, 0x5f, 0x44, 0x45, 0x50, 0x52, 0x45, 0x43, 0x41, 0x54, 0x45, - 0x44, 0x10, 0x02, 0x12, 0x18, 0x0a, 0x14, 0x4c, 0x41, 0x55, 0x4e, 0x43, 0x48, 0x5f, 0x43, 0x4f, - 0x4e, 0x54, 0x41, 0x49, 0x4e, 0x45, 0x52, 0x5f, 0x54, 0x41, 0x42, 0x10, 0x03, 0x12, 0x19, 0x0a, - 0x15, 0x4c, 0x41, 0x55, 0x4e, 0x43, 0x48, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x41, 0x49, 0x4e, 0x45, - 0x52, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x04, 0x22, 0x8d, 0x01, 0x0a, 0x0b, 0x57, 0x69, 0x6e, - 0x64, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x14, 0x55, 0x4e, 0x4b, 0x4e, - 0x4f, 0x57, 0x4e, 0x5f, 0x57, 0x49, 0x4e, 0x44, 0x4f, 0x57, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, - 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x4e, 0x4f, 0x52, 0x4d, 0x41, 0x4c, 0x10, 0x01, 0x12, 0x0d, - 0x0a, 0x09, 0x4d, 0x49, 0x4e, 0x49, 0x4d, 0x49, 0x5a, 0x45, 0x44, 0x10, 0x02, 0x12, 0x0d, 0x0a, - 0x09, 0x4d, 0x41, 0x58, 0x49, 0x4d, 0x49, 0x5a, 0x45, 0x44, 0x10, 0x03, 0x12, 0x0e, 0x0a, 0x0a, - 0x46, 0x55, 0x4c, 0x4c, 0x53, 0x43, 0x52, 0x45, 0x45, 0x4e, 0x10, 0x04, 0x12, 0x13, 0x0a, 0x0f, - 0x50, 0x52, 0x49, 0x4d, 0x41, 0x52, 0x59, 0x5f, 0x53, 0x4e, 0x41, 0x50, 0x50, 0x45, 0x44, 0x10, - 0x05, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x45, 0x43, 0x4f, 0x4e, 0x44, 0x41, 0x52, 0x59, 0x5f, 0x53, - 0x4e, 0x41, 0x50, 0x50, 0x45, 0x44, 0x10, 0x06, 0x22, 0xff, 0x01, 0x0a, 0x15, 0x57, 0x69, 0x6e, - 0x64, 0x6f, 0x77, 0x4f, 0x70, 0x65, 0x6e, 0x44, 0x69, 0x73, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, - 0x0f, 0x0a, 0x0b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x41, 0x42, 0x10, 0x01, - 0x12, 0x11, 0x0a, 0x0d, 0x53, 0x49, 0x4e, 0x47, 0x4c, 0x45, 0x54, 0x4f, 0x4e, 0x5f, 0x54, 0x41, - 0x42, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x4e, 0x45, 0x57, 0x5f, 0x46, 0x4f, 0x52, 0x45, 0x47, - 0x52, 0x4f, 0x55, 0x4e, 0x44, 0x5f, 0x54, 0x41, 0x42, 0x10, 0x03, 0x12, 0x16, 0x0a, 0x12, 0x4e, - 0x45, 0x57, 0x5f, 0x42, 0x41, 0x43, 0x4b, 0x47, 0x52, 0x4f, 0x55, 0x4e, 0x44, 0x5f, 0x54, 0x41, - 0x42, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x45, 0x57, 0x5f, 0x50, 0x4f, 0x50, 0x55, 0x50, - 0x10, 0x05, 0x12, 0x0e, 0x0a, 0x0a, 0x4e, 0x45, 0x57, 0x5f, 0x57, 0x49, 0x4e, 0x44, 0x4f, 0x57, - 0x10, 0x06, 0x12, 0x10, 0x0a, 0x0c, 0x53, 0x41, 0x56, 0x45, 0x5f, 0x54, 0x4f, 0x5f, 0x44, 0x49, - 0x53, 0x4b, 0x10, 0x07, 0x12, 0x12, 0x0a, 0x0e, 0x4f, 0x46, 0x46, 0x5f, 0x54, 0x48, 0x45, 0x5f, - 0x52, 0x45, 0x43, 0x4f, 0x52, 0x44, 0x10, 0x08, 0x12, 0x11, 0x0a, 0x0d, 0x49, 0x47, 0x4e, 0x4f, - 0x52, 0x45, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x09, 0x12, 0x11, 0x0a, 0x0d, 0x53, - 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x54, 0x4f, 0x5f, 0x54, 0x41, 0x42, 0x10, 0x0a, 0x12, 0x1a, - 0x0a, 0x16, 0x4e, 0x45, 0x57, 0x5f, 0x50, 0x49, 0x43, 0x54, 0x55, 0x52, 0x45, 0x5f, 0x49, 0x4e, - 0x5f, 0x50, 0x49, 0x43, 0x54, 0x55, 0x52, 0x45, 0x10, 0x0b, 0x22, 0x3f, 0x0a, 0x08, 0x44, 0x65, - 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x0c, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, - 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x54, 0x45, 0x4d, 0x50, - 0x4c, 0x41, 0x54, 0x45, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x53, 0x41, 0x56, 0x45, 0x5f, 0x41, - 0x4e, 0x44, 0x5f, 0x52, 0x45, 0x43, 0x41, 0x4c, 0x4c, 0x10, 0x02, 0x52, 0x11, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x75, 0x73, 0x65, 0x63, 0x42, 0x2b, - 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x63, - 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x03, 0x50, 0x01, + 0x65, 0x73, 0x6b, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x73, 0x2e, 0x57, 0x69, 0x6e, + 0x64, 0x6f, 0x77, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x0c, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x73, + 0x49, 0x6e, 0x52, 0x6f, 0x6f, 0x74, 0x1a, 0x3a, 0x0a, 0x0a, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, + 0x53, 0x69, 0x7a, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x4a, 0x04, 0x08, 0x04, 0x10, 0x05, 0x1a, 0x61, 0x0a, 0x0b, 0x57, 0x69, 0x6e, 0x64, + 0x6f, 0x77, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x6f, 0x70, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x74, 0x6f, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x65, 0x66, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x6c, 0x65, 0x66, 0x74, 0x12, 0x14, 0x0a, + 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x77, 0x69, + 0x64, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0xac, 0x01, 0x0a, 0x0f, + 0x4c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x12, + 0x20, 0x0a, 0x1c, 0x4c, 0x41, 0x55, 0x4e, 0x43, 0x48, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x41, 0x49, + 0x4e, 0x45, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, + 0x00, 0x12, 0x1b, 0x0a, 0x17, 0x4c, 0x41, 0x55, 0x4e, 0x43, 0x48, 0x5f, 0x43, 0x4f, 0x4e, 0x54, + 0x41, 0x49, 0x4e, 0x45, 0x52, 0x5f, 0x57, 0x49, 0x4e, 0x44, 0x4f, 0x57, 0x10, 0x01, 0x12, 0x25, + 0x0a, 0x21, 0x4c, 0x41, 0x55, 0x4e, 0x43, 0x48, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x41, 0x49, 0x4e, + 0x45, 0x52, 0x5f, 0x50, 0x41, 0x4e, 0x45, 0x4c, 0x5f, 0x44, 0x45, 0x50, 0x52, 0x45, 0x43, 0x41, + 0x54, 0x45, 0x44, 0x10, 0x02, 0x12, 0x18, 0x0a, 0x14, 0x4c, 0x41, 0x55, 0x4e, 0x43, 0x48, 0x5f, + 0x43, 0x4f, 0x4e, 0x54, 0x41, 0x49, 0x4e, 0x45, 0x52, 0x5f, 0x54, 0x41, 0x42, 0x10, 0x03, 0x12, + 0x19, 0x0a, 0x15, 0x4c, 0x41, 0x55, 0x4e, 0x43, 0x48, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x41, 0x49, + 0x4e, 0x45, 0x52, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x04, 0x22, 0x9a, 0x01, 0x0a, 0x0b, 0x57, + 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x14, 0x55, 0x4e, + 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x57, 0x49, 0x4e, 0x44, 0x4f, 0x57, 0x5f, 0x53, 0x54, 0x41, + 0x54, 0x45, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x4e, 0x4f, 0x52, 0x4d, 0x41, 0x4c, 0x10, 0x01, + 0x12, 0x0d, 0x0a, 0x09, 0x4d, 0x49, 0x4e, 0x49, 0x4d, 0x49, 0x5a, 0x45, 0x44, 0x10, 0x02, 0x12, + 0x0d, 0x0a, 0x09, 0x4d, 0x41, 0x58, 0x49, 0x4d, 0x49, 0x5a, 0x45, 0x44, 0x10, 0x03, 0x12, 0x0e, + 0x0a, 0x0a, 0x46, 0x55, 0x4c, 0x4c, 0x53, 0x43, 0x52, 0x45, 0x45, 0x4e, 0x10, 0x04, 0x12, 0x13, + 0x0a, 0x0f, 0x50, 0x52, 0x49, 0x4d, 0x41, 0x52, 0x59, 0x5f, 0x53, 0x4e, 0x41, 0x50, 0x50, 0x45, + 0x44, 0x10, 0x05, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x45, 0x43, 0x4f, 0x4e, 0x44, 0x41, 0x52, 0x59, + 0x5f, 0x53, 0x4e, 0x41, 0x50, 0x50, 0x45, 0x44, 0x10, 0x06, 0x12, 0x0b, 0x0a, 0x07, 0x46, 0x4c, + 0x4f, 0x41, 0x54, 0x45, 0x44, 0x10, 0x07, 0x22, 0xff, 0x01, 0x0a, 0x15, 0x57, 0x69, 0x6e, 0x64, + 0x6f, 0x77, 0x4f, 0x70, 0x65, 0x6e, 0x44, 0x69, 0x73, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0f, + 0x0a, 0x0b, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x41, 0x42, 0x10, 0x01, 0x12, + 0x11, 0x0a, 0x0d, 0x53, 0x49, 0x4e, 0x47, 0x4c, 0x45, 0x54, 0x4f, 0x4e, 0x5f, 0x54, 0x41, 0x42, + 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x4e, 0x45, 0x57, 0x5f, 0x46, 0x4f, 0x52, 0x45, 0x47, 0x52, + 0x4f, 0x55, 0x4e, 0x44, 0x5f, 0x54, 0x41, 0x42, 0x10, 0x03, 0x12, 0x16, 0x0a, 0x12, 0x4e, 0x45, + 0x57, 0x5f, 0x42, 0x41, 0x43, 0x4b, 0x47, 0x52, 0x4f, 0x55, 0x4e, 0x44, 0x5f, 0x54, 0x41, 0x42, + 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x45, 0x57, 0x5f, 0x50, 0x4f, 0x50, 0x55, 0x50, 0x10, + 0x05, 0x12, 0x0e, 0x0a, 0x0a, 0x4e, 0x45, 0x57, 0x5f, 0x57, 0x49, 0x4e, 0x44, 0x4f, 0x57, 0x10, + 0x06, 0x12, 0x10, 0x0a, 0x0c, 0x53, 0x41, 0x56, 0x45, 0x5f, 0x54, 0x4f, 0x5f, 0x44, 0x49, 0x53, + 0x4b, 0x10, 0x07, 0x12, 0x12, 0x0a, 0x0e, 0x4f, 0x46, 0x46, 0x5f, 0x54, 0x48, 0x45, 0x5f, 0x52, + 0x45, 0x43, 0x4f, 0x52, 0x44, 0x10, 0x08, 0x12, 0x11, 0x0a, 0x0d, 0x49, 0x47, 0x4e, 0x4f, 0x52, + 0x45, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x09, 0x12, 0x11, 0x0a, 0x0d, 0x53, 0x57, + 0x49, 0x54, 0x43, 0x48, 0x5f, 0x54, 0x4f, 0x5f, 0x54, 0x41, 0x42, 0x10, 0x0a, 0x12, 0x1a, 0x0a, + 0x16, 0x4e, 0x45, 0x57, 0x5f, 0x50, 0x49, 0x43, 0x54, 0x55, 0x52, 0x45, 0x5f, 0x49, 0x4e, 0x5f, + 0x50, 0x49, 0x43, 0x54, 0x55, 0x52, 0x45, 0x10, 0x0b, 0x22, 0x57, 0x0a, 0x08, 0x44, 0x65, 0x73, + 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x0c, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x54, 0x45, 0x4d, 0x50, 0x4c, + 0x41, 0x54, 0x45, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x53, 0x41, 0x56, 0x45, 0x5f, 0x41, 0x4e, + 0x44, 0x5f, 0x52, 0x45, 0x43, 0x41, 0x4c, 0x4c, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x46, 0x4c, + 0x4f, 0x41, 0x54, 0x49, 0x4e, 0x47, 0x5f, 0x57, 0x4f, 0x52, 0x4b, 0x53, 0x50, 0x41, 0x43, 0x45, + 0x10, 0x03, 0x22, 0x82, 0x01, 0x0a, 0x0d, 0x54, 0x61, 0x62, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, + 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x11, 0x0a, 0x0d, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, + 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x47, 0x52, 0x45, 0x59, 0x10, + 0x01, 0x12, 0x08, 0x0a, 0x04, 0x42, 0x4c, 0x55, 0x45, 0x10, 0x02, 0x12, 0x07, 0x0a, 0x03, 0x52, + 0x45, 0x44, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x59, 0x45, 0x4c, 0x4c, 0x4f, 0x57, 0x10, 0x04, + 0x12, 0x09, 0x0a, 0x05, 0x47, 0x52, 0x45, 0x45, 0x4e, 0x10, 0x05, 0x12, 0x08, 0x0a, 0x04, 0x50, + 0x49, 0x4e, 0x4b, 0x10, 0x06, 0x12, 0x0a, 0x0a, 0x06, 0x50, 0x55, 0x52, 0x50, 0x4c, 0x45, 0x10, + 0x07, 0x12, 0x08, 0x0a, 0x04, 0x43, 0x59, 0x41, 0x4e, 0x10, 0x08, 0x12, 0x0a, 0x0a, 0x06, 0x4f, + 0x52, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x09, 0x52, 0x11, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, + 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x75, 0x73, 0x65, 0x63, 0x42, 0x36, 0x0a, 0x25, 0x6f, 0x72, + 0x67, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x70, 0x6f, + 0x6e, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6c, 0x48, 0x03, 0x50, 0x01, 0x5a, 0x09, 0x2e, 0x2f, 0x73, 0x79, 0x6e, 0x63, 0x5f, + 0x70, 0x62, } var ( @@ -1375,48 +1633,54 @@ func file_workspace_desk_specifics_proto_rawDescGZIP() []byte { return file_workspace_desk_specifics_proto_rawDescData } -var file_workspace_desk_specifics_proto_enumTypes = make([]protoimpl.EnumInfo, 4) -var file_workspace_desk_specifics_proto_msgTypes = make([]protoimpl.MessageInfo, 11) +var file_workspace_desk_specifics_proto_enumTypes = make([]protoimpl.EnumInfo, 5) +var file_workspace_desk_specifics_proto_msgTypes = make([]protoimpl.MessageInfo, 12) var file_workspace_desk_specifics_proto_goTypes = []interface{}{ (WorkspaceDeskSpecifics_LaunchContainer)(0), // 0: sync_pb.WorkspaceDeskSpecifics.LaunchContainer (WorkspaceDeskSpecifics_WindowState)(0), // 1: sync_pb.WorkspaceDeskSpecifics.WindowState (WorkspaceDeskSpecifics_WindowOpenDisposition)(0), // 2: sync_pb.WorkspaceDeskSpecifics.WindowOpenDisposition (WorkspaceDeskSpecifics_DeskType)(0), // 3: sync_pb.WorkspaceDeskSpecifics.DeskType - (*WorkspaceDeskSpecifics)(nil), // 4: sync_pb.WorkspaceDeskSpecifics - (*WorkspaceDeskSpecifics_Desk)(nil), // 5: sync_pb.WorkspaceDeskSpecifics.Desk - (*WorkspaceDeskSpecifics_App)(nil), // 6: sync_pb.WorkspaceDeskSpecifics.App - (*WorkspaceDeskSpecifics_AppOneOf)(nil), // 7: sync_pb.WorkspaceDeskSpecifics.AppOneOf - (*WorkspaceDeskSpecifics_BrowserAppWindow)(nil), // 8: sync_pb.WorkspaceDeskSpecifics.BrowserAppWindow - (*WorkspaceDeskSpecifics_ChromeApp)(nil), // 9: sync_pb.WorkspaceDeskSpecifics.ChromeApp - (*WorkspaceDeskSpecifics_ProgressiveWebApp)(nil), // 10: sync_pb.WorkspaceDeskSpecifics.ProgressiveWebApp - (*WorkspaceDeskSpecifics_ArcApp)(nil), // 11: sync_pb.WorkspaceDeskSpecifics.ArcApp - (*WorkspaceDeskSpecifics_WindowBound)(nil), // 12: sync_pb.WorkspaceDeskSpecifics.WindowBound - (*WorkspaceDeskSpecifics_BrowserAppWindow_BrowserAppTab)(nil), // 13: sync_pb.WorkspaceDeskSpecifics.BrowserAppWindow.BrowserAppTab - (*WorkspaceDeskSpecifics_ArcApp_WindowSize)(nil), // 14: sync_pb.WorkspaceDeskSpecifics.ArcApp.WindowSize + (WorkspaceDeskSpecifics_TabGroupColor)(0), // 4: sync_pb.WorkspaceDeskSpecifics.TabGroupColor + (*WorkspaceDeskSpecifics)(nil), // 5: sync_pb.WorkspaceDeskSpecifics + (*WorkspaceDeskSpecifics_Desk)(nil), // 6: sync_pb.WorkspaceDeskSpecifics.Desk + (*WorkspaceDeskSpecifics_App)(nil), // 7: sync_pb.WorkspaceDeskSpecifics.App + (*WorkspaceDeskSpecifics_AppOneOf)(nil), // 8: sync_pb.WorkspaceDeskSpecifics.AppOneOf + (*WorkspaceDeskSpecifics_BrowserAppWindow)(nil), // 9: sync_pb.WorkspaceDeskSpecifics.BrowserAppWindow + (*WorkspaceDeskSpecifics_ChromeApp)(nil), // 10: sync_pb.WorkspaceDeskSpecifics.ChromeApp + (*WorkspaceDeskSpecifics_ProgressiveWebApp)(nil), // 11: sync_pb.WorkspaceDeskSpecifics.ProgressiveWebApp + (*WorkspaceDeskSpecifics_ArcApp)(nil), // 12: sync_pb.WorkspaceDeskSpecifics.ArcApp + (*WorkspaceDeskSpecifics_WindowBound)(nil), // 13: sync_pb.WorkspaceDeskSpecifics.WindowBound + (*WorkspaceDeskSpecifics_BrowserAppWindow_BrowserAppTab)(nil), // 14: sync_pb.WorkspaceDeskSpecifics.BrowserAppWindow.BrowserAppTab + (*WorkspaceDeskSpecifics_BrowserAppWindow_TabGroup)(nil), // 15: sync_pb.WorkspaceDeskSpecifics.BrowserAppWindow.TabGroup + (*WorkspaceDeskSpecifics_ArcApp_WindowSize)(nil), // 16: sync_pb.WorkspaceDeskSpecifics.ArcApp.WindowSize + (SyncEnums_DeviceFormFactor)(0), // 17: sync_pb.SyncEnums.DeviceFormFactor } var file_workspace_desk_specifics_proto_depIdxs = []int32{ - 5, // 0: sync_pb.WorkspaceDeskSpecifics.desk:type_name -> sync_pb.WorkspaceDeskSpecifics.Desk + 6, // 0: sync_pb.WorkspaceDeskSpecifics.desk:type_name -> sync_pb.WorkspaceDeskSpecifics.Desk 3, // 1: sync_pb.WorkspaceDeskSpecifics.desk_type:type_name -> sync_pb.WorkspaceDeskSpecifics.DeskType - 6, // 2: sync_pb.WorkspaceDeskSpecifics.Desk.apps:type_name -> sync_pb.WorkspaceDeskSpecifics.App - 12, // 3: sync_pb.WorkspaceDeskSpecifics.App.window_bound:type_name -> sync_pb.WorkspaceDeskSpecifics.WindowBound - 1, // 4: sync_pb.WorkspaceDeskSpecifics.App.window_state:type_name -> sync_pb.WorkspaceDeskSpecifics.WindowState - 7, // 5: sync_pb.WorkspaceDeskSpecifics.App.app:type_name -> sync_pb.WorkspaceDeskSpecifics.AppOneOf - 1, // 6: sync_pb.WorkspaceDeskSpecifics.App.pre_minimized_window_state:type_name -> sync_pb.WorkspaceDeskSpecifics.WindowState - 0, // 7: sync_pb.WorkspaceDeskSpecifics.App.container:type_name -> sync_pb.WorkspaceDeskSpecifics.LaunchContainer - 2, // 8: sync_pb.WorkspaceDeskSpecifics.App.disposition:type_name -> sync_pb.WorkspaceDeskSpecifics.WindowOpenDisposition - 8, // 9: sync_pb.WorkspaceDeskSpecifics.AppOneOf.browser_app_window:type_name -> sync_pb.WorkspaceDeskSpecifics.BrowserAppWindow - 9, // 10: sync_pb.WorkspaceDeskSpecifics.AppOneOf.chrome_app:type_name -> sync_pb.WorkspaceDeskSpecifics.ChromeApp - 10, // 11: sync_pb.WorkspaceDeskSpecifics.AppOneOf.progress_web_app:type_name -> sync_pb.WorkspaceDeskSpecifics.ProgressiveWebApp - 11, // 12: sync_pb.WorkspaceDeskSpecifics.AppOneOf.arc_app:type_name -> sync_pb.WorkspaceDeskSpecifics.ArcApp - 13, // 13: sync_pb.WorkspaceDeskSpecifics.BrowserAppWindow.tabs:type_name -> sync_pb.WorkspaceDeskSpecifics.BrowserAppWindow.BrowserAppTab - 14, // 14: sync_pb.WorkspaceDeskSpecifics.ArcApp.minimum_size:type_name -> sync_pb.WorkspaceDeskSpecifics.ArcApp.WindowSize - 14, // 15: sync_pb.WorkspaceDeskSpecifics.ArcApp.maximum_size:type_name -> sync_pb.WorkspaceDeskSpecifics.ArcApp.WindowSize - 12, // 16: sync_pb.WorkspaceDeskSpecifics.ArcApp.bounds_in_root:type_name -> sync_pb.WorkspaceDeskSpecifics.WindowBound - 17, // [17:17] is the sub-list for method output_type - 17, // [17:17] is the sub-list for method input_type - 17, // [17:17] is the sub-list for extension type_name - 17, // [17:17] is the sub-list for extension extendee - 0, // [0:17] is the sub-list for field type_name + 17, // 2: sync_pb.WorkspaceDeskSpecifics.device_form_factor:type_name -> sync_pb.SyncEnums.DeviceFormFactor + 7, // 3: sync_pb.WorkspaceDeskSpecifics.Desk.apps:type_name -> sync_pb.WorkspaceDeskSpecifics.App + 13, // 4: sync_pb.WorkspaceDeskSpecifics.App.window_bound:type_name -> sync_pb.WorkspaceDeskSpecifics.WindowBound + 1, // 5: sync_pb.WorkspaceDeskSpecifics.App.window_state:type_name -> sync_pb.WorkspaceDeskSpecifics.WindowState + 8, // 6: sync_pb.WorkspaceDeskSpecifics.App.app:type_name -> sync_pb.WorkspaceDeskSpecifics.AppOneOf + 1, // 7: sync_pb.WorkspaceDeskSpecifics.App.pre_minimized_window_state:type_name -> sync_pb.WorkspaceDeskSpecifics.WindowState + 0, // 8: sync_pb.WorkspaceDeskSpecifics.App.container:type_name -> sync_pb.WorkspaceDeskSpecifics.LaunchContainer + 2, // 9: sync_pb.WorkspaceDeskSpecifics.App.disposition:type_name -> sync_pb.WorkspaceDeskSpecifics.WindowOpenDisposition + 9, // 10: sync_pb.WorkspaceDeskSpecifics.AppOneOf.browser_app_window:type_name -> sync_pb.WorkspaceDeskSpecifics.BrowserAppWindow + 10, // 11: sync_pb.WorkspaceDeskSpecifics.AppOneOf.chrome_app:type_name -> sync_pb.WorkspaceDeskSpecifics.ChromeApp + 11, // 12: sync_pb.WorkspaceDeskSpecifics.AppOneOf.progress_web_app:type_name -> sync_pb.WorkspaceDeskSpecifics.ProgressiveWebApp + 12, // 13: sync_pb.WorkspaceDeskSpecifics.AppOneOf.arc_app:type_name -> sync_pb.WorkspaceDeskSpecifics.ArcApp + 14, // 14: sync_pb.WorkspaceDeskSpecifics.BrowserAppWindow.tabs:type_name -> sync_pb.WorkspaceDeskSpecifics.BrowserAppWindow.BrowserAppTab + 15, // 15: sync_pb.WorkspaceDeskSpecifics.BrowserAppWindow.tab_groups:type_name -> sync_pb.WorkspaceDeskSpecifics.BrowserAppWindow.TabGroup + 16, // 16: sync_pb.WorkspaceDeskSpecifics.ArcApp.minimum_size:type_name -> sync_pb.WorkspaceDeskSpecifics.ArcApp.WindowSize + 16, // 17: sync_pb.WorkspaceDeskSpecifics.ArcApp.maximum_size:type_name -> sync_pb.WorkspaceDeskSpecifics.ArcApp.WindowSize + 13, // 18: sync_pb.WorkspaceDeskSpecifics.ArcApp.bounds_in_root:type_name -> sync_pb.WorkspaceDeskSpecifics.WindowBound + 4, // 19: sync_pb.WorkspaceDeskSpecifics.BrowserAppWindow.TabGroup.color:type_name -> sync_pb.WorkspaceDeskSpecifics.TabGroupColor + 20, // [20:20] is the sub-list for method output_type + 20, // [20:20] is the sub-list for method input_type + 20, // [20:20] is the sub-list for extension type_name + 20, // [20:20] is the sub-list for extension extendee + 0, // [0:20] is the sub-list for field type_name } func init() { file_workspace_desk_specifics_proto_init() } @@ -1424,6 +1688,7 @@ func file_workspace_desk_specifics_proto_init() { if File_workspace_desk_specifics_proto != nil { return } + file_sync_enums_proto_init() if !protoimpl.UnsafeEnabled { file_workspace_desk_specifics_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WorkspaceDeskSpecifics); i { @@ -1546,6 +1811,18 @@ func file_workspace_desk_specifics_proto_init() { } } file_workspace_desk_specifics_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WorkspaceDeskSpecifics_BrowserAppWindow_TabGroup); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_workspace_desk_specifics_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WorkspaceDeskSpecifics_ArcApp_WindowSize); i { case 0: return &v.state @@ -1569,8 +1846,8 @@ func file_workspace_desk_specifics_proto_init() { File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_workspace_desk_specifics_proto_rawDesc, - NumEnums: 4, - NumMessages: 11, + NumEnums: 5, + NumMessages: 12, NumExtensions: 0, NumServices: 0, }, diff --git a/schema/protobuf/sync_pb/workspace_desk_specifics.proto b/schema/protobuf/sync_pb/workspace_desk_specifics.proto index c8e803a9..e1020f5b 100644 --- a/schema/protobuf/sync_pb/workspace_desk_specifics.proto +++ b/schema/protobuf/sync_pb/workspace_desk_specifics.proto @@ -1,4 +1,4 @@ -// Copyright 2021 The Chromium Authors. All rights reserved. +// Copyright 2021 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // @@ -9,6 +9,8 @@ syntax = "proto2"; +option go_package = "./sync_pb"; + option java_multiple_files = true; option java_package = "org.chromium.components.sync.protocol"; @@ -16,6 +18,8 @@ option optimize_for = LITE_RUNTIME; package sync_pb; +import "sync_enums.proto"; + // A workspace desk entry. This proto contains the fields synced to represent // a saved desk in user's workspace. message WorkspaceDeskSpecifics { @@ -37,6 +41,13 @@ message WorkspaceDeskSpecifics { // The type of a desk. optional DeskType desk_type = 6; + // The cache guid of the syncing client. Used to identify a unique device + // that's syncing data. + optional string client_cache_guid = 7; + + // The form factor of the device. + optional SyncEnums.DeviceFormFactor device_form_factor = 8; + // Represent a snapshot of the information on a desk. message Desk { // The apps in this template. @@ -105,6 +116,26 @@ message WorkspaceDeskSpecifics { optional string title = 2; } + // Structure representing a tab group associated with this window. + message TabGroup { + // Zero-based index within the browser app tabs of the first tab in the + // group. + optional int32 first_index = 1; + + // Zero-based Index wotjom the browser app tabs of the last tab in the + // group. + optional int32 last_index = 2; + + // User readable title of the tab group. + optional string title = 3; + + // Color associated with this tab group. + optional TabGroupColor color = 4; + + // Indicates whether the tab group is collapsed. + optional bool is_collapsed = 5; + } + // The tabs in this browser window. repeated BrowserAppTab tabs = 1; @@ -113,6 +144,12 @@ message WorkspaceDeskSpecifics { // Indicates whether to show as a dedicated app window. optional bool show_as_app = 3; + + // Tab groups associated with this window. + repeated TabGroup tab_groups = 4; + + // The index of the first non-pinned tab. + optional int32 first_non_pinned_tab_index = 5; } // A Chrome App window. @@ -192,6 +229,8 @@ message WorkspaceDeskSpecifics { // in landscape screen orientation and bottom in portrait screen // orientation. SECONDARY_SNAPPED = 6; + // Floated window state. + FLOATED = 7; } // Enumeration for how a window opens. Maps to base::WindowOpenDisposition. @@ -227,5 +266,22 @@ message WorkspaceDeskSpecifics { UNKNOWN_TYPE = 0; TEMPLATE = 1; SAVE_AND_RECALL = 2; + FLOATING_WORKSPACE = 3; + } + + // Enumerates the possible colors that a tab group can have. This mirrors + // the enumeration that can be found in + // components/tab_groups/tab_group_color.h + enum TabGroupColor { + UNKNOWN_COLOR = 0; + GREY = 1; + BLUE = 2; + RED = 3; + YELLOW = 4; + GREEN = 5; + PINK = 6; + PURPLE = 7; + CYAN = 8; + ORANGE = 9; } } diff --git a/server/server.go b/server/server.go index af1f308f..47e6d147 100644 --- a/server/server.go +++ b/server/server.go @@ -19,7 +19,7 @@ import ( "github.com/brave/go-sync/controller" "github.com/brave/go-sync/datastore" "github.com/brave/go-sync/middleware" - "github.com/getsentry/sentry-go" + sentry "github.com/getsentry/sentry-go" "github.com/go-chi/chi" chiware "github.com/go-chi/chi/middleware" "github.com/rs/zerolog"