diff --git a/rules/aip0133/request_unknown_fields.go b/rules/aip0133/request_unknown_fields.go index 5a47ad4f1..68417d89f 100644 --- a/rules/aip0133/request_unknown_fields.go +++ b/rules/aip0133/request_unknown_fields.go @@ -35,6 +35,7 @@ var unknownFields = &lint.MessageRule{ // Rule check: Establish that there are no unexpected fields. allowedFields := stringset.New( "parent", // AIP-133 + "read_mask", // AIP-157 "request_id", // AIP-155 "validate_only", // AIP-163 "view", // AIP-157 diff --git a/rules/aip0133/request_unknown_fields_test.go b/rules/aip0133/request_unknown_fields_test.go index 4c19b753c..d6d0a6e18 100644 --- a/rules/aip0133/request_unknown_fields_test.go +++ b/rules/aip0133/request_unknown_fields_test.go @@ -71,6 +71,14 @@ func TestUnknownFields(t *testing.T) { testutils.Problems{}, "", }, + { + "ReadMaskField", + "CreateBookRequest", + "read_mask", + "google.protobuf.FieldMask", + testutils.Problems{}, + "", + }, { "ViewField", "CreateBookRequest", @@ -117,6 +125,7 @@ func TestUnknownFields(t *testing.T) { for _, test := range tests { t.Run(test.testName, func(t *testing.T) { f := testutils.ParseProto3Tmpl(t, ` + import "google/protobuf/field_mask.proto"; enum BookView { BOOK_VIEW_UNSPECIFIED = 0; BOOK_VIEW_BASIC = 1; diff --git a/rules/aip0134/request_unknown_fields.go b/rules/aip0134/request_unknown_fields.go index f9110acb7..e114c5ddf 100644 --- a/rules/aip0134/request_unknown_fields.go +++ b/rules/aip0134/request_unknown_fields.go @@ -35,6 +35,7 @@ var unknownFields = &lint.MessageRule{ allowedFields := stringset.New( fieldNameFromResource(resource), // AIP-134 "allow_missing", // AIP-134 + "read_mask", // AIP-157 "request_id", // AIP-155 "update_mask", // AIP-134 "validate_only", // AIP-163 diff --git a/rules/aip0134/request_unknown_fields_test.go b/rules/aip0134/request_unknown_fields_test.go index adb4285c0..8bfb33cf0 100644 --- a/rules/aip0134/request_unknown_fields_test.go +++ b/rules/aip0134/request_unknown_fields_test.go @@ -34,6 +34,11 @@ func TestUnknownFields(t *testing.T) { "google.protobuf.FieldMask", testutils.Problems{}, }, + { + "ReadMask", "UpdateBigBookRequest", "read_mask", + "google.protobuf.FieldMask", + testutils.Problems{}, + }, { "ValidateOnly", "UpdateBigBookRequest", "validate_only", "bool", diff --git a/rules/aip0135/request_unknown_fields.go b/rules/aip0135/request_unknown_fields.go index d701adb60..f14df39b1 100644 --- a/rules/aip0135/request_unknown_fields.go +++ b/rules/aip0135/request_unknown_fields.go @@ -35,6 +35,7 @@ var unknownFields = &lint.MessageRule{ "force": {}, // AIP-135 "allow_missing": {}, // AIP-135 "etag": {}, // AIP-154 + "read_mask": {}, // AIP-157 "request_id": {}, // AIP-155 "validate_only": {}, // AIP-163 "view": {}, // AIP-157 diff --git a/rules/aip0135/request_unknown_fields_test.go b/rules/aip0135/request_unknown_fields_test.go index f25091b52..e14313013 100644 --- a/rules/aip0135/request_unknown_fields_test.go +++ b/rules/aip0135/request_unknown_fields_test.go @@ -32,6 +32,7 @@ func TestUnknownFields(t *testing.T) { {"Force", "DeleteBookRequest", "force", "bool", testutils.Problems{}}, {"Etag", "DeleteBookRequest", "etag", "string", testutils.Problems{}}, {"AllowMissing", "DeleteBookRequest", "allow_missing", "bool", testutils.Problems{}}, + {"ReadMask", "DeleteBookRequest", "read_mask", "google.protobuf.FieldMask", testutils.Problems{}}, {"RequestId", "DeleteBookRequest", "request_id", "string", testutils.Problems{}}, {"ValidateOnly", "DeleteBookRequest", "validate_only", "bool", testutils.Problems{}}, {"ValidView", "DeleteBookRequest", "view", "BookView", testutils.Problems{}}, @@ -45,6 +46,7 @@ func TestUnknownFields(t *testing.T) { for _, test := range tests { t.Run(test.testName, func(t *testing.T) { f := testutils.ParseProto3Tmpl(t, ` + import "google/protobuf/field_mask.proto"; enum BookView { BOOK_VIEW_UNSPECIFIED = 0; BOOK_VIEW_BASIC = 1;