View Source GoogleApi.ContentWarehouse.V1.Model.AppsPeopleOzExternalMergedpeopleapiGender (google_api_content_warehouse v0.4.0)
Gender in PeopleApi has some odd semantics about writing and reading that are not obvious from the proto definition. First, the type
string, when read, always maps to the constrained domain of "male", "female", and "other", aside from a pathological case that PeopleApi would like to fix. There are two typical patterns: 1. type
is either "male" or "female" and custom_type
and address_me_as
are exactly as specified by an update to PeopleApi, although they are most often absent for "male" and "female" writes. 2. type
is "other" and custom_type
is set to a freeform string from the request. address_me_as
is equal to whatever was provided at write time. When writing, the free-form string for custom_type
can come from either custom_type
if the field is present on the request, or if custom_type
is absent, the string value of type
will be copied into it. Any value in type
will be coerced to "other" and the free-form value will be copied into custom_type
, even if type
is exactly "other". Prefer to explicitly set custom_type
and set type to "other" instead of setting type to a free-form value. There are weird edge cases when the value is "unknown". Consider the behavior for type
== "unknown" unspecified. Clients reading the gender should use the value from formatted_type
if type
is "male" or "female". If type
is "other", formatted_type
will be "Other" (or some translation) and clients should read custom_type
for more specificity.
Attributes
-
addressMeAs
(type:String.t
, default:nil
) - Preferred pronoun choice. It's unclear whether this value is constrained to a finite domain by UIs.address_me_as
may be populated regardless of whethertype
is "male", "female", or "other", although most writers only set it iftype
is "other". -
customType
(type:String.t
, default:nil
) - A free-form string indicating what the user entered as their gender.custom_type
may exist even if the type is "male" or "female", although most writers do not set it unlesstype
is "other". -
formattedType
(type:String.t
, default:nil
) - Thetype
translated and formatted in the request locale. See go/people-api-howto/localization for details on how to usage. -
metadata
(type:GoogleApi.ContentWarehouse.V1.Model.AppsPeopleOzExternalMergedpeopleapiPersonFieldMetadata.t
, default:nil
) - -
type
(type:String.t
, default:nil
) - The gender. "male", "female", or "other". If "other", typically, additional fields will have additional information.
Summary
Functions
Unwrap a decoded JSON object into its complex fields.
Types
@type t() :: %GoogleApi.ContentWarehouse.V1.Model.AppsPeopleOzExternalMergedpeopleapiGender{ addressMeAs: String.t() | nil, customType: String.t() | nil, formattedType: String.t() | nil, metadata: GoogleApi.ContentWarehouse.V1.Model.AppsPeopleOzExternalMergedpeopleapiPersonFieldMetadata.t() | nil, type: String.t() | nil }
Functions
Unwrap a decoded JSON object into its complex fields.