diff --git a/aip/client-libraries/4235.md b/aip/client-libraries/4235.md index fe792b64d4..2ad9b0d851 100644 --- a/aip/client-libraries/4235.md +++ b/aip/client-libraries/4235.md @@ -38,10 +38,12 @@ If the aforementioned requirements are met for a given field, client library generators **must** enable automatic population of said field in the generated client. -If the field value is not equal to default value at the time of sending the -request, implying it was set by the user or if the field has explicit presence -and is set by the user, the field **must not** be automatically populated by the -client. +The field **must not** be automatically populated by the client if: + +- The field does not support explicit presence, and its value is not equal to + the default +- The field supports explicit presence, and presence indicates that it has been + set (even to the default value) If a field is specified in the `auto_populated_fields`, but does not meet the structural requirements, the client library generators **must not** enable @@ -49,8 +51,8 @@ automatic population for that field. Client library generators **may** emit an error during generation. Client libraries **must** reuse automatically populated values for retries of -the same request. In other words, the automatically populated fields -**must not** be regenerated for each RPC attempt with the same request message. +the same request. In other words, the automatically populated fields **must not** +be regenerated for each RPC attempt with the same request message. [AIP-155]: https://google.aip.dev/155