Skip to content

Naming Conventions (AIP-190)

Fresh -- Updated March 2026 from official Google Cloud API Design Guide.

Overview

Consistent naming is critical for API usability and developer experience. Google Cloud APIs follow strict naming conventions defined in AIP-190.

General Rules

  1. Use American English spelling (e.g., "color" not "colour")
  2. Use simple, intuitive nouns for resource types
  3. Avoid abbreviations except well-known ones (API, URL, HTTP, ID, DNS, CPU, GPU)
  4. Do not use brand names or project-internal jargon

Naming by Entity Type

EntityCaseExample
Service namelower.dot.caselibrary.googleapis.com
Package namelower.dot.casegoogle.library.v1
Interface/ServiceUpperCamelCaseLibraryService
MethodUpperCamelCaseListBooks, GetBook
Message typeUpperCamelCaseListBooksRequest, ListBooksResponse
Field namelower_snake_casedisplay_name, page_size
Enum typeUpperCamelCaseBookFormat
Enum valueUPPER_SNAKE_CASEBOOK_FORMAT_PDF, BOOK_FORMAT_EPUB
Oneof namelower_snake_casedelivery_method

Method Naming

Standard Methods

Standard methods always use these exact names:

MethodNameRequest MessageResponse Message
GetGetBookGetBookRequestBook
ListListBooksListBooksRequestListBooksResponse
CreateCreateBookCreateBookRequestBook
UpdateUpdateBookUpdateBookRequestBook
DeleteDeleteBookDeleteBookRequestgoogle.protobuf.Empty

Custom Methods

Custom methods use VerbNoun pattern:

CorrectIncorrectWhy
ArchiveBookBookArchiveVerb comes first
BatchCreateBooksCreateBooksBatch"Batch" prefix for batch operations
TranslateTextDoTranslationUse specific verbs, not "Do"
ExportDataDataExportVerb first

Field Naming

Common Field Names

FieldTypeDescription
namestringResource name
display_namestringHuman-readable name
titlestringOfficial title
descriptionstringLonger explanation
create_timeTimestampCreation time
update_timeTimestampLast modification time
delete_timeTimestampSoft-deletion time
expire_timeTimestampExpiration time
start_timeTimestampStart of a time range
end_timeTimestampEnd of a time range
etagstringConcurrency control
labelsmapUser metadata
filterstringList filter expression
page_sizeint32List page size
page_tokenstringList pagination token
order_bystringList sort order
request_idstringIdempotency key

Field Name Rules

RuleCorrectIncorrect
Use snake_casedisplay_namedisplayName
Use singular for scalarsbook_countbooks_count
Use plural for repeatedbooksbook (for a list)
Suffix booleansis_active, has_childrenactive, children_exist
Suffix time fields with _timecreate_timecreated, created_at
Suffix duration fields with _durationtimeout_durationtimeout

Enum Naming

enum BookFormat {
  BOOK_FORMAT_UNSPECIFIED = 0;  // Always include UNSPECIFIED as 0
  BOOK_FORMAT_PDF = 1;
  BOOK_FORMAT_EPUB = 2;
  BOOK_FORMAT_HARDCOVER = 3;
}

Rules:

  • Prefix each value with the enum type name in UPPER_SNAKE_CASE
  • Always include an UNSPECIFIED value as 0
  • UNSPECIFIED must be the first value

Naming Hierarchy

Words to Avoid

AvoidUse InsteadReason
info, dataSpecific nounToo vague
object, itemSpecific resource typeToo generic
get_datalist_metricsBe specific
type (as field name)format, kindReserved word in many languages
configconfigurationAvoid abbreviation

See Also