Resource annotation presence
This rule enforces that top-level messages that appear to represent resources
have a google.api.resource annotation, as described in AIP-123.
Details
This rule scans all top-level messages, and assumes that messages with a
string name field are resources unless the message name ends with Request.
For messages that are resources, it complains if the google.api.resource
annotation is missing.
Examples
Incorrect code for this rule:
// Incorrect.
message Book {
// A `google.api.resource` annotation should be here.
string name = 1;
}
Correct code for this rule:
// Correct.
message Book {
option (google.api.resource) = {
type: "library.googleapis.com/Book"
pattern: "publishers/{publisher}/books/{book}"
};
string name = 1;
}
Disabling
If you need to violate this rule, use a leading comment above the message.
// (-- api-linter: core::0123::resource-annotation=disabled
// aip.dev/not-precedent: We need to do this because reasons. --)
message Book {
string name = 1;
}
If you need to violate this rule for an entire file, place the comment at the top of the file.
View on GitHub