-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | Google People SDK.
--   
--   The Google People API service gives access to information about
--   profiles and contacts.
--   
--   <i>Warning:</i> This is an experimental prototype/preview release
--   which is still under exploratory development and not intended for
--   public use, caveat emptor!
--   
--   This library is compatible with version <tt>v1</tt> of the API.
@package gogol-people
@version 0.3.0


module Network.Google.People.Types

-- | Default request referring to version <tt>v1</tt> of the Google People
--   API. This contains the host and root path used as a starting point for
--   constructing service requests.
peopleService :: ServiceConfig

-- | View your complete date of birth
userBirthdayReadScope :: Proxy '["https://www.googleapis.com/auth/user.birthday.read"]

-- | View your basic profile info
userInfoProFileScope :: Proxy '["https://www.googleapis.com/auth/userinfo.profile"]

-- | Know your basic profile info and list of people in your circles.
plusLoginScope :: Proxy '["https://www.googleapis.com/auth/plus.login"]

-- | View your phone numbers
userPhoneNumbersReadScope :: Proxy '["https://www.googleapis.com/auth/user.phonenumbers.read"]

-- | View your email address
userInfoEmailScope :: Proxy '["https://www.googleapis.com/auth/userinfo.email"]

-- | View your contacts
contactsReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/contacts.readonly"]

-- | View your street addresses
userAddressesReadScope :: Proxy '["https://www.googleapis.com/auth/user.addresses.read"]

-- | Manage your contacts
contactsScope :: Proxy '["https://www.googleapis.com/auth/contacts"]

-- | View your email addresses
userEmailsReadScope :: Proxy '["https://www.googleapis.com/auth/user.emails.read"]

-- | A person's photo. A picture shown next to the person's name to help
--   others recognize the person.
--   
--   <i>See:</i> <a>photo</a> smart constructor.
data Photo

-- | Creates a value of <a>Photo</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pURL</a></li>
--   <li><a>pMetadata</a></li>
--   </ul>
photo :: Photo

-- | The URL of the photo.
pURL :: Lens' Photo (Maybe Text)

-- | Metadata about the photo.
pMetadata :: Lens' Photo (Maybe FieldMetadata)

-- | An event related to the person.
--   
--   <i>See:</i> <a>event</a> smart constructor.
data Event

-- | Creates a value of <a>Event</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>eDate</a></li>
--   <li><a>eMetadata</a></li>
--   <li><a>eType</a></li>
--   <li><a>eFormattedType</a></li>
--   </ul>
event :: Event

-- | The date of the event.
eDate :: Lens' Event (Maybe Date)

-- | Metadata about the event.
eMetadata :: Lens' Event (Maybe FieldMetadata)

-- | The type of the event. The type can be custom or predefined. Possible
--   values include, but are not limited to, the following: * `anniversary`
--   * `other`
eType :: Lens' Event (Maybe Text)

-- | The read-only type of the event translated and formatted in the
--   viewer's account locale or the `Accept-Language` HTTP header locale.
eFormattedType :: Lens' Event (Maybe Text)
data ListConnectionsResponse

-- | Creates a value of <a>ListConnectionsResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lcrNextPageToken</a></li>
--   <li><a>lcrConnections</a></li>
--   <li><a>lcrNextSyncToken</a></li>
--   </ul>
listConnectionsResponse :: ListConnectionsResponse

-- | The token that can be used to retrieve the next page of results.
lcrNextPageToken :: Lens' ListConnectionsResponse (Maybe Text)

-- | The list of people that the requestor is connected to.
lcrConnections :: Lens' ListConnectionsResponse [Person]

-- | The token that can be used to retrieve changes since the last request.
lcrNextSyncToken :: Lens' ListConnectionsResponse (Maybe Text)

-- | A Google Apps Domain membership.
--   
--   <i>See:</i> <a>domainMembership</a> smart constructor.
data DomainMembership

-- | Creates a value of <a>DomainMembership</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dmInViewerDomain</a></li>
--   </ul>
domainMembership :: DomainMembership

-- | True if the person is in the viewer's Google Apps domain.
dmInViewerDomain :: Lens' DomainMembership (Maybe Bool)

-- | The kind of relationship the person is looking for.
--   
--   <i>See:</i> <a>relationshipInterest</a> smart constructor.
data RelationshipInterest

-- | Creates a value of <a>RelationshipInterest</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>riValue</a></li>
--   <li><a>riMetadata</a></li>
--   <li><a>riFormattedValue</a></li>
--   </ul>
relationshipInterest :: RelationshipInterest

-- | The kind of relationship the person is looking for. The value can be
--   custom or predefined. Possible values include, but are not limited to,
--   the following values: * `friend` * `date` * `relationship` *
--   `networking`
riValue :: Lens' RelationshipInterest (Maybe Text)

-- | Metadata about the relationship interest.
riMetadata :: Lens' RelationshipInterest (Maybe FieldMetadata)

-- | The value of the relationship interest translated and formatted in the
--   viewer's account locale or the locale specified in the Accept-Language
--   HTTP header.
riFormattedValue :: Lens' RelationshipInterest (Maybe Text)

-- | A person's bragging rights.
--   
--   <i>See:</i> <a>braggingRights</a> smart constructor.
data BraggingRights

-- | Creates a value of <a>BraggingRights</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>brValue</a></li>
--   <li><a>brMetadata</a></li>
--   </ul>
braggingRights :: BraggingRights

-- | The bragging rights; for example, `climbed mount everest`.
brValue :: Lens' BraggingRights (Maybe Text)

-- | Metadata about the bragging rights.
brMetadata :: Lens' BraggingRights (Maybe FieldMetadata)

-- | A person's membership in a group.
--   
--   <i>See:</i> <a>membership</a> smart constructor.
data Membership

-- | Creates a value of <a>Membership</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mDomainMembership</a></li>
--   <li><a>mContactGroupMembership</a></li>
--   <li><a>mMetadata</a></li>
--   </ul>
membership :: Membership

-- | The domain membership.
mDomainMembership :: Lens' Membership (Maybe DomainMembership)

-- | The contact group membership.
mContactGroupMembership :: Lens' Membership (Maybe ContactGroupMembership)

-- | Metadata about the membership.
mMetadata :: Lens' Membership (Maybe FieldMetadata)

-- | Information about a person merged from various data sources such as
--   the authenticated user's contacts and profile data. Fields other than
--   IDs, metadata, and group memberships are user-edited. Most fields can
--   have multiple items. The items in a field have no guaranteed order,
--   but each non-empty field is guaranteed to have exactly one field with
--   `metadata.primary` set to true.
--   
--   <i>See:</i> <a>person</a> smart constructor.
data Person

-- | Creates a value of <a>Person</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>perEmailAddresses</a></li>
--   <li><a>perAgeRange</a></li>
--   <li><a>perEtag</a></li>
--   <li><a>perResidences</a></li>
--   <li><a>perBiographies</a></li>
--   <li><a>perTaglines</a></li>
--   <li><a>perBraggingRights</a></li>
--   <li><a>perBirthdays</a></li>
--   <li><a>perResourceName</a></li>
--   <li><a>perRelations</a></li>
--   <li><a>perURLs</a></li>
--   <li><a>perAddresses</a></li>
--   <li><a>perNicknames</a></li>
--   <li><a>perRelationshipStatuses</a></li>
--   <li><a>perImClients</a></li>
--   <li><a>perPhoneNumbers</a></li>
--   <li><a>perOccupations</a></li>
--   <li><a>perNames</a></li>
--   <li><a>perGenders</a></li>
--   <li><a>perPhotos</a></li>
--   <li><a>perEvents</a></li>
--   <li><a>perCoverPhotos</a></li>
--   <li><a>perSkills</a></li>
--   <li><a>perMetadata</a></li>
--   <li><a>perInterests</a></li>
--   <li><a>perOrganizations</a></li>
--   <li><a>perLocales</a></li>
--   <li><a>perMemberships</a></li>
--   <li><a>perRelationshipInterests</a></li>
--   </ul>
person :: Person

-- | The person's email addresses.
perEmailAddresses :: Lens' Person [EmailAddress]

-- | The person's age range.
perAgeRange :: Lens' Person (Maybe Text)

-- | The <a>HTTP entity tag</a> of the resource. Used for web cache
--   validation.
perEtag :: Lens' Person (Maybe Text)

-- | The person's residences.
perResidences :: Lens' Person [Residence]

-- | The person's biographies.
perBiographies :: Lens' Person [Biography]

-- | The person's taglines.
perTaglines :: Lens' Person [Tagline]

-- | The person's bragging rights.
perBraggingRights :: Lens' Person [BraggingRights]

-- | The person's birthdays.
perBirthdays :: Lens' Person [Birthday]

-- | The resource name for the person, assigned by the server. An ASCII
--   string with a max length of 27 characters. Always starts with
--   `people/`.
perResourceName :: Lens' Person (Maybe Text)

-- | The person's relations.
perRelations :: Lens' Person [Relation]

-- | The person's associated URLs.
perURLs :: Lens' Person [URL]

-- | The person's street addresses.
perAddresses :: Lens' Person [Address]

-- | The person's nicknames.
perNicknames :: Lens' Person [Nickname]

-- | The person's relationship statuses.
perRelationshipStatuses :: Lens' Person [RelationshipStatus]

-- | The person's instant messaging clients.
perImClients :: Lens' Person [ImClient]

-- | The person's phone numbers.
perPhoneNumbers :: Lens' Person [PhoneNumber]

-- | The person's occupations.
perOccupations :: Lens' Person [Occupation]

-- | The person's names.
perNames :: Lens' Person [Name]

-- | The person's genders.
perGenders :: Lens' Person [Gender]

-- | The person's photos.
perPhotos :: Lens' Person [Photo]

-- | The person's events.
perEvents :: Lens' Person [Event]

-- | The person's cover photos.
perCoverPhotos :: Lens' Person [CoverPhoto]

-- | The person's skills.
perSkills :: Lens' Person [Skill]

-- | Metadata about the person.
perMetadata :: Lens' Person (Maybe PersonMetadata)

-- | The person's interests.
perInterests :: Lens' Person [Interest]

-- | The person's past or current organizations.
perOrganizations :: Lens' Person [Organization]

-- | The person's locale preferences.
perLocales :: Lens' Person [Locale]

-- | The person's group memberships.
perMemberships :: Lens' Person [Membership]

-- | The kind of relationship the person is looking for.
perRelationshipInterests :: Lens' Person [RelationshipInterest]

-- | A Google contact group membership.
--   
--   <i>See:</i> <a>contactGroupMembership</a> smart constructor.
data ContactGroupMembership

-- | Creates a value of <a>ContactGroupMembership</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cgmContactGroupId</a></li>
--   </ul>
contactGroupMembership :: ContactGroupMembership

-- | The contact group ID for the contact group membership. The contact
--   group ID can be custom or predefined. Possible values include, but are
--   not limited to, the following: * `myContacts` * `starred` * A
--   numerical ID for user-created groups.
cgmContactGroupId :: Lens' ContactGroupMembership (Maybe Text)

-- | A person's locale preference.
--   
--   <i>See:</i> <a>locale</a> smart constructor.
data Locale

-- | Creates a value of <a>Locale</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lValue</a></li>
--   <li><a>lMetadata</a></li>
--   </ul>
locale :: Locale

-- | The well-formed <a>IETF BCP 47</a> language tag representing the
--   locale.
lValue :: Lens' Locale (Maybe Text)

-- | Metadata about the locale.
lMetadata :: Lens' Locale (Maybe FieldMetadata)

-- | A person's relationship status.
--   
--   <i>See:</i> <a>relationshipStatus</a> smart constructor.
data RelationshipStatus

-- | Creates a value of <a>RelationshipStatus</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rsValue</a></li>
--   <li><a>rsMetadata</a></li>
--   <li><a>rsFormattedValue</a></li>
--   </ul>
relationshipStatus :: RelationshipStatus

-- | The relationship status. The value can be custom or predefined.
--   Possible values include, but are not limited to, the following: *
--   `single` * `inARelationship` * `engaged` * `married` *
--   `itsComplicated` * `openRelationship` * `widowed` *
--   `inDomesticPartnership` * `inCivilUnion`
rsValue :: Lens' RelationshipStatus (Maybe Text)

-- | Metadata about the relationship status.
rsMetadata :: Lens' RelationshipStatus (Maybe FieldMetadata)

-- | The read-only value of the relationship status translated and
--   formatted in the viewer's account locale or the `Accept-Language` HTTP
--   header locale.
rsFormattedValue :: Lens' RelationshipStatus (Maybe Text)

-- | A person's associated URLs.
--   
--   <i>See:</i> <a>url</a> smart constructor.
data URL

-- | Creates a value of <a>URL</a> with the minimum fields required to make
--   a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>uValue</a></li>
--   <li><a>uMetadata</a></li>
--   <li><a>uType</a></li>
--   <li><a>uFormattedType</a></li>
--   </ul>
url :: URL

-- | The URL.
uValue :: Lens' URL (Maybe Text)

-- | Metadata about the URL.
uMetadata :: Lens' URL (Maybe FieldMetadata)

-- | The type of the URL. The type can be custom or predefined. Possible
--   values include, but are not limited to, the following: * `home` *
--   `work` * `blog` * `profile` * `homePage` * `ftp` * `reservations` *
--   `appInstallPage`: website for a Google+ application. * `other`
uType :: Lens' URL (Maybe Text)

-- | The read-only type of the URL translated and formatted in the viewer's
--   account locale or the `Accept-Language` HTTP header locale.
uFormattedType :: Lens' URL (Maybe Text)

-- | A person's physical address. May be a P.O. box or street address. All
--   fields are optional.
--   
--   <i>See:</i> <a>address</a> smart constructor.
data Address

-- | Creates a value of <a>Address</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>aStreetAddress</a></li>
--   <li><a>aPoBox</a></li>
--   <li><a>aCountry</a></li>
--   <li><a>aPostalCode</a></li>
--   <li><a>aExtendedAddress</a></li>
--   <li><a>aCity</a></li>
--   <li><a>aMetadata</a></li>
--   <li><a>aCountryCode</a></li>
--   <li><a>aFormattedValue</a></li>
--   <li><a>aRegion</a></li>
--   <li><a>aType</a></li>
--   <li><a>aFormattedType</a></li>
--   </ul>
address :: Address

-- | The street address.
aStreetAddress :: Lens' Address (Maybe Text)

-- | The P.O. box of the address.
aPoBox :: Lens' Address (Maybe Text)

-- | The country of the address.
aCountry :: Lens' Address (Maybe Text)

-- | The postal code of the address.
aPostalCode :: Lens' Address (Maybe Text)

-- | The extended address of the address; for example, the apartment
--   number.
aExtendedAddress :: Lens' Address (Maybe Text)

-- | The city of the address.
aCity :: Lens' Address (Maybe Text)

-- | Metadata about the address.
aMetadata :: Lens' Address (Maybe FieldMetadata)

-- | The <a>ISO 3166-1 alpha-2</a> country code of the address.
aCountryCode :: Lens' Address (Maybe Text)

-- | The read-only value of the address formatted in the viewer's account
--   locale or the `Accept-Language` HTTP header locale.
aFormattedValue :: Lens' Address (Maybe Text)

-- | The region of the address; for example, the state or province.
aRegion :: Lens' Address (Maybe Text)

-- | The type of the address. The type can be custom or predefined.
--   Possible values include, but are not limited to, the following: *
--   `home` * `work` * `other`
aType :: Lens' Address (Maybe Text)

-- | The read-only type of the address translated and formatted in the
--   viewer's account locale or the `Accept-Language` HTTP header locale.
aFormattedType :: Lens' Address (Maybe Text)

-- | A person's relation to another person.
--   
--   <i>See:</i> <a>relation</a> smart constructor.
data Relation

-- | Creates a value of <a>Relation</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rPerson</a></li>
--   <li><a>rMetadata</a></li>
--   <li><a>rType</a></li>
--   <li><a>rFormattedType</a></li>
--   </ul>
relation :: Relation

-- | The name of the other person this relation refers to.
rPerson :: Lens' Relation (Maybe Text)

-- | Metadata about the relation.
rMetadata :: Lens' Relation (Maybe FieldMetadata)

-- | The person's relation to the other person. The type can be custom or
--   predefined. Possible values include, but are not limited to, the
--   following values: * `spouse` * `child` * `mother` * `father` *
--   `parent` * `brother` * `sister` * `friend` * `relative` *
--   `domesticPartner` * `manager` * `assistant` * `referredBy` * `partner`
rType :: Lens' Relation (Maybe Text)

-- | The type of the relation translated and formatted in the viewer's
--   account locale or the locale specified in the Accept-Language HTTP
--   header.
rFormattedType :: Lens' Relation (Maybe Text)
data GetPeopleResponse

-- | Creates a value of <a>GetPeopleResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gprResponses</a></li>
--   </ul>
getPeopleResponse :: GetPeopleResponse

-- | The response for each requested resource name.
gprResponses :: Lens' GetPeopleResponse [PersonResponse]

-- | A person's birthday. At least one of the `date` and `text` fields are
--   specified. The `date` and `text` fields typically represent the same
--   date, but are not guaranteed to.
--   
--   <i>See:</i> <a>birthday</a> smart constructor.
data Birthday

-- | Creates a value of <a>Birthday</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>bText</a></li>
--   <li><a>bDate</a></li>
--   <li><a>bMetadata</a></li>
--   </ul>
birthday :: Birthday

-- | A free-form string representing the user's birthday.
bText :: Lens' Birthday (Maybe Text)

-- | The date of the birthday.
bDate :: Lens' Birthday (Maybe Date)

-- | Metadata about the birthday.
bMetadata :: Lens' Birthday (Maybe FieldMetadata)

-- | Represents a whole calendar date, for example a date of birth. The
--   time of day and time zone are either specified elsewhere or are not
--   significant. The date is relative to the <a>Proleptic Gregorian
--   Calendar</a>. The day may be 0 to represent a year and month where the
--   day is not significant. The year may be 0 to represent a month and day
--   independent of year; for example, anniversary date.
--   
--   <i>See:</i> <a>date</a> smart constructor.
data Date

-- | Creates a value of <a>Date</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dDay</a></li>
--   <li><a>dYear</a></li>
--   <li><a>dMonth</a></li>
--   </ul>
date :: Date

-- | Day of month. Must be from 1 to 31 and valid for the year and month,
--   or 0 if specifying a year/month where the day is not significant.
dDay :: Lens' Date (Maybe Int32)

-- | Year of date. Must be from 1 to 9999, or 0 if specifying a date
--   without a year.
dYear :: Lens' Date (Maybe Int32)

-- | Month of year. Must be from 1 to 12.
dMonth :: Lens' Date (Maybe Int32)

-- | A brief one-line description of the person.
--   
--   <i>See:</i> <a>tagline</a> smart constructor.
data Tagline

-- | Creates a value of <a>Tagline</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tValue</a></li>
--   <li><a>tMetadata</a></li>
--   </ul>
tagline :: Tagline

-- | The tagline.
tValue :: Lens' Tagline (Maybe Text)

-- | Metadata about the tagline.
tMetadata :: Lens' Tagline (Maybe FieldMetadata)

-- | A person's past or current residence.
--   
--   <i>See:</i> <a>residence</a> smart constructor.
data Residence

-- | Creates a value of <a>Residence</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>resValue</a></li>
--   <li><a>resCurrent</a></li>
--   <li><a>resMetadata</a></li>
--   </ul>
residence :: Residence

-- | The address of the residence.
resValue :: Lens' Residence (Maybe Text)

-- | True if the residence is the person's current residence; false if the
--   residence is a past residence.
resCurrent :: Lens' Residence (Maybe Bool)

-- | Metadata about the residence.
resMetadata :: Lens' Residence (Maybe FieldMetadata)

-- | A person's gender.
--   
--   <i>See:</i> <a>gender</a> smart constructor.
data Gender

-- | Creates a value of <a>Gender</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gValue</a></li>
--   <li><a>gMetadata</a></li>
--   <li><a>gFormattedValue</a></li>
--   </ul>
gender :: Gender

-- | The gender for the person. The gender can be custom or predefined.
--   Possible values include, but are not limited to, the following: *
--   `male` * `female` * `other` * `unknown`
gValue :: Lens' Gender (Maybe Text)

-- | Metadata about the gender.
gMetadata :: Lens' Gender (Maybe FieldMetadata)

-- | The read-only value of the gender translated and formatted in the
--   viewer's account locale or the `Accept-Language` HTTP header locale.
gFormattedValue :: Lens' Gender (Maybe Text)

-- | A person's name. If the name is a mononym, the family name is empty.
--   
--   <i>See:</i> <a>name</a> smart constructor.
data Name

-- | Creates a value of <a>Name</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>nGivenName</a></li>
--   <li><a>nPhoneticHonorificSuffix</a></li>
--   <li><a>nMiddleName</a></li>
--   <li><a>nPhoneticMiddleName</a></li>
--   <li><a>nPhoneticFamilyName</a></li>
--   <li><a>nPhoneticHonorificPrefix</a></li>
--   <li><a>nHonorificPrefix</a></li>
--   <li><a>nFamilyName</a></li>
--   <li><a>nMetadata</a></li>
--   <li><a>nDisplayName</a></li>
--   <li><a>nPhoneticGivenName</a></li>
--   <li><a>nHonorificSuffix</a></li>
--   </ul>
name :: Name

-- | The given name.
nGivenName :: Lens' Name (Maybe Text)

-- | The honorific suffixes spelled as they sound.
nPhoneticHonorificSuffix :: Lens' Name (Maybe Text)

-- | The middle name(s).
nMiddleName :: Lens' Name (Maybe Text)

-- | The middle name(s) spelled as they sound.
nPhoneticMiddleName :: Lens' Name (Maybe Text)

-- | The family name spelled as it sounds.
nPhoneticFamilyName :: Lens' Name (Maybe Text)

-- | The honorific prefixes spelled as they sound.
nPhoneticHonorificPrefix :: Lens' Name (Maybe Text)

-- | The honorific prefixes, such as `Mrs.` or `Dr.`
nHonorificPrefix :: Lens' Name (Maybe Text)

-- | The family name.
nFamilyName :: Lens' Name (Maybe Text)

-- | Metadata about the name.
nMetadata :: Lens' Name (Maybe FieldMetadata)

-- | The display name formatted according to the locale specified by the
--   viewer's account or the Accept-Language HTTP header.
nDisplayName :: Lens' Name (Maybe Text)

-- | The given name spelled as it sounds.
nPhoneticGivenName :: Lens' Name (Maybe Text)

-- | The honorific suffixes, such as `Jr.`
nHonorificSuffix :: Lens' Name (Maybe Text)

-- | Metadata about a field.
--   
--   <i>See:</i> <a>fieldMetadata</a> smart constructor.
data FieldMetadata

-- | Creates a value of <a>FieldMetadata</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>fmVerified</a></li>
--   <li><a>fmPrimary</a></li>
--   <li><a>fmSource</a></li>
--   </ul>
fieldMetadata :: FieldMetadata

-- | True if the field is verified; false if the field is unverified. A
--   verified field is typically a name, email address, phone number, or
--   website that has been confirmed to be owned by the person.
fmVerified :: Lens' FieldMetadata (Maybe Bool)

-- | True if the field is the primary field; false if the field is a
--   secondary field.
fmPrimary :: Lens' FieldMetadata (Maybe Bool)

-- | The source of the field.
fmSource :: Lens' FieldMetadata (Maybe Source)

-- | A person's phone number.
--   
--   <i>See:</i> <a>phoneNumber</a> smart constructor.
data PhoneNumber

-- | Creates a value of <a>PhoneNumber</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pnCanonicalForm</a></li>
--   <li><a>pnValue</a></li>
--   <li><a>pnMetadata</a></li>
--   <li><a>pnType</a></li>
--   <li><a>pnFormattedType</a></li>
--   </ul>
phoneNumber :: PhoneNumber

-- | The read-only canonicalized <a>ITU-T E.164</a> form of the phone
--   number.
pnCanonicalForm :: Lens' PhoneNumber (Maybe Text)

-- | The phone number.
pnValue :: Lens' PhoneNumber (Maybe Text)

-- | Metadata about the phone number.
pnMetadata :: Lens' PhoneNumber (Maybe FieldMetadata)

-- | The type of the phone number. The type can be custom or predefined.
--   Possible values include, but are not limited to, the following: *
--   `home` * `work` * `mobile` * `homeFax` * `workFax` * `otherFax` *
--   `pager` * `workMobile` * `workPager` * `main` * `googleVoice` *
--   `other`
pnType :: Lens' PhoneNumber (Maybe Text)

-- | The read-only type of the phone number translated and formatted in the
--   viewer's account locale or the the `Accept-Language` HTTP header
--   locale.
pnFormattedType :: Lens' PhoneNumber (Maybe Text)

-- | A person's occupation.
--   
--   <i>See:</i> <a>occupation</a> smart constructor.
data Occupation

-- | Creates a value of <a>Occupation</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>oValue</a></li>
--   <li><a>oMetadata</a></li>
--   </ul>
occupation :: Occupation

-- | The occupation; for example, `carpenter`.
oValue :: Lens' Occupation (Maybe Text)

-- | Metadata about the occupation.
oMetadata :: Lens' Occupation (Maybe FieldMetadata)

-- | A person's email address.
--   
--   <i>See:</i> <a>emailAddress</a> smart constructor.
data EmailAddress

-- | Creates a value of <a>EmailAddress</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>eaValue</a></li>
--   <li><a>eaMetadata</a></li>
--   <li><a>eaType</a></li>
--   <li><a>eaFormattedType</a></li>
--   </ul>
emailAddress :: EmailAddress

-- | The email address.
eaValue :: Lens' EmailAddress (Maybe Text)

-- | Metadata about the email address.
eaMetadata :: Lens' EmailAddress (Maybe FieldMetadata)

-- | The type of the email address. The type can be custom or predefined.
--   Possible values include, but are not limited to, the following: *
--   `home` * `work` * `other`
eaType :: Lens' EmailAddress (Maybe Text)

-- | The read-only type of the email address translated and formatted in
--   the viewer's account locale or the `Accept-Language` HTTP header
--   locale.
eaFormattedType :: Lens' EmailAddress (Maybe Text)

-- | The source of a field.
--   
--   <i>See:</i> <a>source</a> smart constructor.
data Source

-- | Creates a value of <a>Source</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sId</a></li>
--   <li><a>sType</a></li>
--   </ul>
source :: Source

-- | A unique identifier within the source type generated by the server.
sId :: Lens' Source (Maybe Text)

-- | The source type.
sType :: Lens' Source (Maybe Text)

-- | A person's instant messaging client.
--   
--   <i>See:</i> <a>imClient</a> smart constructor.
data ImClient

-- | Creates a value of <a>ImClient</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>icFormattedProtocol</a></li>
--   <li><a>icUsername</a></li>
--   <li><a>icProtocol</a></li>
--   <li><a>icMetadata</a></li>
--   <li><a>icType</a></li>
--   <li><a>icFormattedType</a></li>
--   </ul>
imClient :: ImClient

-- | The read-only protocol of the IM client formatted in the viewer's
--   account locale or the `Accept-Language` HTTP header locale.
icFormattedProtocol :: Lens' ImClient (Maybe Text)

-- | The user name used in the IM client.
icUsername :: Lens' ImClient (Maybe Text)

-- | The protocol of the IM client. The protocol can be custom or
--   predefined. Possible values include, but are not limited to, the
--   following: * `aim` * `msn` * `yahoo` * `skype` * `qq` * `googleTalk` *
--   `icq` * `jabber` * `netMeeting`
icProtocol :: Lens' ImClient (Maybe Text)

-- | Metadata about the IM client.
icMetadata :: Lens' ImClient (Maybe FieldMetadata)

-- | The type of the IM client. The type can be custom or predefined.
--   Possible values include, but are not limited to, the following: *
--   `home` * `work` * `other`
icType :: Lens' ImClient (Maybe Text)

-- | The read-only type of the IM client translated and formatted in the
--   viewer's account locale or the `Accept-Language` HTTP header locale.
icFormattedType :: Lens' ImClient (Maybe Text)

-- | Metadata about a person.
--   
--   <i>See:</i> <a>personMetadata</a> smart constructor.
data PersonMetadata

-- | Creates a value of <a>PersonMetadata</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pmPreviousResourceNames</a></li>
--   <li><a>pmObjectType</a></li>
--   <li><a>pmSources</a></li>
--   <li><a>pmDeleted</a></li>
--   </ul>
personMetadata :: PersonMetadata

-- | Any former resource names this person has had. Populated only for
--   <a>`connections.list`</a> requests that include a sync token. The
--   resource name may change when adding or removing fields that link a
--   contact and profile such as a verified email, verified phone number,
--   or profile URL.
pmPreviousResourceNames :: Lens' PersonMetadata [Text]

-- | The type of the person object.
pmObjectType :: Lens' PersonMetadata (Maybe Text)

-- | The sources of data for the person.
pmSources :: Lens' PersonMetadata [Source]

-- | True if the person resource has been deleted. Populated only for
--   <a>`connections.list`</a> requests that include a sync token.
pmDeleted :: Lens' PersonMetadata (Maybe Bool)

-- | A person's nickname.
--   
--   <i>See:</i> <a>nickname</a> smart constructor.
data Nickname

-- | Creates a value of <a>Nickname</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>nicValue</a></li>
--   <li><a>nicMetadata</a></li>
--   <li><a>nicType</a></li>
--   </ul>
nickname :: Nickname

-- | The nickname.
nicValue :: Lens' Nickname (Maybe Text)

-- | Metadata about the nickname.
nicMetadata :: Lens' Nickname (Maybe FieldMetadata)

-- | The type of the nickname.
nicType :: Lens' Nickname (Maybe Text)

-- | A person's past or current organization. Overlapping date ranges are
--   permitted.
--   
--   <i>See:</i> <a>organization</a> smart constructor.
data Organization

-- | Creates a value of <a>Organization</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>orgDePartment</a></li>
--   <li><a>orgLocation</a></li>
--   <li><a>orgDomain</a></li>
--   <li><a>orgEndDate</a></li>
--   <li><a>orgSymbol</a></li>
--   <li><a>orgJobDescription</a></li>
--   <li><a>orgCurrent</a></li>
--   <li><a>orgStartDate</a></li>
--   <li><a>orgName</a></li>
--   <li><a>orgMetadata</a></li>
--   <li><a>orgPhoneticName</a></li>
--   <li><a>orgTitle</a></li>
--   <li><a>orgType</a></li>
--   <li><a>orgFormattedType</a></li>
--   </ul>
organization :: Organization

-- | The person's department at the organization.
orgDePartment :: Lens' Organization (Maybe Text)

-- | The location of the organization office the person works at.
orgLocation :: Lens' Organization (Maybe Text)

-- | The domain name associated with the organization; for example,
--   `google.com`.
orgDomain :: Lens' Organization (Maybe Text)

-- | The end date when the person left the organization.
orgEndDate :: Lens' Organization (Maybe Date)

-- | The symbol associated with the organization; for example, a stock
--   ticker symbol, abbreviation, or acronym.
orgSymbol :: Lens' Organization (Maybe Text)

-- | The person's job description at the organization.
orgJobDescription :: Lens' Organization (Maybe Text)

-- | True if the organization is the person's current organization; false
--   if the organization is a past organization.
orgCurrent :: Lens' Organization (Maybe Bool)

-- | The start date when the person joined the organization.
orgStartDate :: Lens' Organization (Maybe Date)

-- | The name of the organization.
orgName :: Lens' Organization (Maybe Text)

-- | Metadata about the organization.
orgMetadata :: Lens' Organization (Maybe FieldMetadata)

-- | The phonetic name of the organization.
orgPhoneticName :: Lens' Organization (Maybe Text)

-- | The person's job title at the organization.
orgTitle :: Lens' Organization (Maybe Text)

-- | The type of the organization. The type can be custom or predefined.
--   Possible values include, but are not limited to, the following: *
--   `work` * `school`
orgType :: Lens' Organization (Maybe Text)

-- | The read-only type of the organization translated and formatted in the
--   viewer's account locale or the `Accept-Language` HTTP header locale.
orgFormattedType :: Lens' Organization (Maybe Text)

-- | One of the person's interests.
--   
--   <i>See:</i> <a>interest</a> smart constructor.
data Interest

-- | Creates a value of <a>Interest</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>iValue</a></li>
--   <li><a>iMetadata</a></li>
--   </ul>
interest :: Interest

-- | The interest; for example, `stargazing`.
iValue :: Lens' Interest (Maybe Text)

-- | Metadata about the interest.
iMetadata :: Lens' Interest (Maybe FieldMetadata)

-- | The response for a single person
--   
--   <i>See:</i> <a>personResponse</a> smart constructor.
data PersonResponse

-- | Creates a value of <a>PersonResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>prRequestedResourceName</a></li>
--   <li><a>prPerson</a></li>
--   <li><a>prHTTPStatusCode</a></li>
--   </ul>
personResponse :: PersonResponse

-- | The original requested resource name. May be different than the
--   resource name on the returned person. The resource name can change
--   when adding or removing fields that link a contact and profile such as
--   a verified email, verified phone number, or a profile URL.
prRequestedResourceName :: Lens' PersonResponse (Maybe Text)

-- | The person.
prPerson :: Lens' PersonResponse (Maybe Person)

-- | <a>HTTP 1.1 status code</a>.
prHTTPStatusCode :: Lens' PersonResponse (Maybe Int32)

-- | A skill that the person has.
--   
--   <i>See:</i> <a>skill</a> smart constructor.
data Skill

-- | Creates a value of <a>Skill</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sValue</a></li>
--   <li><a>sMetadata</a></li>
--   </ul>
skill :: Skill

-- | The skill; for example, `underwater basket weaving`.
sValue :: Lens' Skill (Maybe Text)

-- | Metadata about the skill.
sMetadata :: Lens' Skill (Maybe FieldMetadata)

-- | A person's short biography.
--   
--   <i>See:</i> <a>biography</a> smart constructor.
data Biography

-- | Creates a value of <a>Biography</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>bioValue</a></li>
--   <li><a>bioMetadata</a></li>
--   </ul>
biography :: Biography

-- | The short biography.
bioValue :: Lens' Biography (Maybe Text)

-- | Metadata about the biography.
bioMetadata :: Lens' Biography (Maybe FieldMetadata)

-- | A person's cover photo. A large image shown on the person's profile
--   page that represents who they are or what they care about.
--   
--   <i>See:</i> <a>coverPhoto</a> smart constructor.
data CoverPhoto

-- | Creates a value of <a>CoverPhoto</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cpDefault</a></li>
--   <li><a>cpURL</a></li>
--   <li><a>cpMetadata</a></li>
--   </ul>
coverPhoto :: CoverPhoto

-- | True if the cover photo is the default cover photo; false if the cover
--   photo is a user-provided cover photo.
cpDefault :: Lens' CoverPhoto (Maybe Bool)

-- | The URL of the cover photo.
cpURL :: Lens' CoverPhoto (Maybe Text)

-- | Metadata about the cover photo.
cpMetadata :: Lens' CoverPhoto (Maybe FieldMetadata)


-- | Provides a list of the authenticated user's contacts merged with any
--   linked profiles.
--   
--   <i>See:</i> <a>Google People API Reference</a> for
--   <tt>people.people.connections.list</tt>.
module Network.Google.Resource.People.People.Connections.List

-- | A resource alias for <tt>people.people.connections.list</tt> method
--   which the <a>PeopleConnectionsList</a> request conforms to.
type PeopleConnectionsListResource = "v1" :> (Capture "resourceName" Text :> ("connections" :> (QueryParam "syncToken" Text :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "requestMask.includeField" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "sortOrder" Text :> (QueryParam "bearer_token" Text :> (QueryParam "pageToken" Text :> (QueryParam "pageSize" (Textual Int32) :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] ListConnectionsResponse)))))))))))))))

-- | Creates a value of <a>PeopleConnectionsList</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pclSyncToken</a></li>
--   <li><a>pclXgafv</a></li>
--   <li><a>pclUploadProtocol</a></li>
--   <li><a>pclResourceName</a></li>
--   <li><a>pclRequestMaskIncludeField</a></li>
--   <li><a>pclPp</a></li>
--   <li><a>pclAccessToken</a></li>
--   <li><a>pclUploadType</a></li>
--   <li><a>pclSortOrder</a></li>
--   <li><a>pclBearerToken</a></li>
--   <li><a>pclPageToken</a></li>
--   <li><a>pclPageSize</a></li>
--   <li><a>pclCallback</a></li>
--   </ul>
peopleConnectionsList :: Text -> PeopleConnectionsList

-- | Provides a list of the authenticated user's contacts merged with any
--   linked profiles.
--   
--   <i>See:</i> <a>peopleConnectionsList</a> smart constructor.
data PeopleConnectionsList

-- | A sync token, returned by a previous call to
--   `people.connections.list`. Only resources changed since the sync token
--   was created are returned.
pclSyncToken :: Lens' PeopleConnectionsList (Maybe Text)

-- | V1 error format.
pclXgafv :: Lens' PeopleConnectionsList (Maybe Text)

-- | Upload protocol for media (e.g. "raw", "multipart").
pclUploadProtocol :: Lens' PeopleConnectionsList (Maybe Text)

-- | The resource name to return connections for. Only `people/me` is
--   valid.
pclResourceName :: Lens' PeopleConnectionsList Text

-- | Comma-separated list of fields to be included in the response.
--   Omitting this field will include all fields. Each path should start
--   with `person.`: for example, `person.names` or `person.photos`.
pclRequestMaskIncludeField :: Lens' PeopleConnectionsList (Maybe Text)

-- | Pretty-print response.
pclPp :: Lens' PeopleConnectionsList Bool

-- | OAuth access token.
pclAccessToken :: Lens' PeopleConnectionsList (Maybe Text)

-- | Legacy upload protocol for media (e.g. "media", "multipart").
pclUploadType :: Lens' PeopleConnectionsList (Maybe Text)

-- | The order in which the connections should be sorted. Defaults to
--   `LAST_MODIFIED_ASCENDING`.
pclSortOrder :: Lens' PeopleConnectionsList (Maybe Text)

-- | OAuth bearer token.
pclBearerToken :: Lens' PeopleConnectionsList (Maybe Text)

-- | The token of the page to be returned.
pclPageToken :: Lens' PeopleConnectionsList (Maybe Text)

-- | The number of connections to include in the response. Valid values are
--   between 1 and 500, inclusive. Defaults to 100.
pclPageSize :: Lens' PeopleConnectionsList (Maybe Int32)

-- | JSONP
pclCallback :: Lens' PeopleConnectionsList (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.People.People.Connections.List.PeopleConnectionsList
instance Data.Data.Data Network.Google.Resource.People.People.Connections.List.PeopleConnectionsList
instance GHC.Show.Show Network.Google.Resource.People.People.Connections.List.PeopleConnectionsList
instance GHC.Classes.Eq Network.Google.Resource.People.People.Connections.List.PeopleConnectionsList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.People.People.Connections.List.PeopleConnectionsList


-- | Provides information about a person resource for a resource name. Use
--   `people/me` to indicate the authenticated user.
--   
--   <i>See:</i> <a>Google People API Reference</a> for
--   <tt>people.people.get</tt>.
module Network.Google.Resource.People.People.Get

-- | A resource alias for <tt>people.people.get</tt> method which the
--   <a>PeopleGet</a> request conforms to.
type PeopleGetResource = "v1" :> (Capture "resourceName" Text :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "requestMask.includeField" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] Person))))))))))

-- | Creates a value of <a>PeopleGet</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pgXgafv</a></li>
--   <li><a>pgUploadProtocol</a></li>
--   <li><a>pgResourceName</a></li>
--   <li><a>pgRequestMaskIncludeField</a></li>
--   <li><a>pgPp</a></li>
--   <li><a>pgAccessToken</a></li>
--   <li><a>pgUploadType</a></li>
--   <li><a>pgBearerToken</a></li>
--   <li><a>pgCallback</a></li>
--   </ul>
peopleGet :: Text -> PeopleGet

-- | Provides information about a person resource for a resource name. Use
--   `people/me` to indicate the authenticated user.
--   
--   <i>See:</i> <a>peopleGet</a> smart constructor.
data PeopleGet

-- | V1 error format.
pgXgafv :: Lens' PeopleGet (Maybe Text)

-- | Upload protocol for media (e.g. "raw", "multipart").
pgUploadProtocol :: Lens' PeopleGet (Maybe Text)

-- | The resource name of the person to provide information about. - To get
--   information about the authenticated user, specify `people/me`. - To
--   get information about any user, specify the resource name that
--   identifies the user, such as the resource names returned by
--   <a>`people.connections.list`</a>.
pgResourceName :: Lens' PeopleGet Text

-- | Comma-separated list of fields to be included in the response.
--   Omitting this field will include all fields. Each path should start
--   with `person.`: for example, `person.names` or `person.photos`.
pgRequestMaskIncludeField :: Lens' PeopleGet (Maybe Text)

-- | Pretty-print response.
pgPp :: Lens' PeopleGet Bool

-- | OAuth access token.
pgAccessToken :: Lens' PeopleGet (Maybe Text)

-- | Legacy upload protocol for media (e.g. "media", "multipart").
pgUploadType :: Lens' PeopleGet (Maybe Text)

-- | OAuth bearer token.
pgBearerToken :: Lens' PeopleGet (Maybe Text)

-- | JSONP
pgCallback :: Lens' PeopleGet (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.People.People.Get.PeopleGet
instance Data.Data.Data Network.Google.Resource.People.People.Get.PeopleGet
instance GHC.Show.Show Network.Google.Resource.People.People.Get.PeopleGet
instance GHC.Classes.Eq Network.Google.Resource.People.People.Get.PeopleGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.People.People.Get.PeopleGet


-- | Provides information about a list of specific people by specifying a
--   list of requested resource names. Use `people/me` to indicate the
--   authenticated user.
--   
--   <i>See:</i> <a>Google People API Reference</a> for
--   <tt>people.people.getBatchGet</tt>.
module Network.Google.Resource.People.People.GetBatchGet

-- | A resource alias for <tt>people.people.getBatchGet</tt> method which
--   the <a>PeopleGetBatchGet</a> request conforms to.
type PeopleGetBatchGetResource = "v1" :> ("people:batchGet" :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "requestMask.includeField" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParams "resourceNames" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] GetPeopleResponse)))))))))))

-- | Creates a value of <a>PeopleGetBatchGet</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pgbgXgafv</a></li>
--   <li><a>pgbgUploadProtocol</a></li>
--   <li><a>pgbgRequestMaskIncludeField</a></li>
--   <li><a>pgbgPp</a></li>
--   <li><a>pgbgAccessToken</a></li>
--   <li><a>pgbgUploadType</a></li>
--   <li><a>pgbgBearerToken</a></li>
--   <li><a>pgbgResourceNames</a></li>
--   <li><a>pgbgCallback</a></li>
--   </ul>
peopleGetBatchGet :: PeopleGetBatchGet

-- | Provides information about a list of specific people by specifying a
--   list of requested resource names. Use `people/me` to indicate the
--   authenticated user.
--   
--   <i>See:</i> <a>peopleGetBatchGet</a> smart constructor.
data PeopleGetBatchGet

-- | V1 error format.
pgbgXgafv :: Lens' PeopleGetBatchGet (Maybe Text)

-- | Upload protocol for media (e.g. "raw", "multipart").
pgbgUploadProtocol :: Lens' PeopleGetBatchGet (Maybe Text)

-- | Comma-separated list of fields to be included in the response.
--   Omitting this field will include all fields. Each path should start
--   with `person.`: for example, `person.names` or `person.photos`.
pgbgRequestMaskIncludeField :: Lens' PeopleGetBatchGet (Maybe Text)

-- | Pretty-print response.
pgbgPp :: Lens' PeopleGetBatchGet Bool

-- | OAuth access token.
pgbgAccessToken :: Lens' PeopleGetBatchGet (Maybe Text)

-- | Legacy upload protocol for media (e.g. "media", "multipart").
pgbgUploadType :: Lens' PeopleGetBatchGet (Maybe Text)

-- | OAuth bearer token.
pgbgBearerToken :: Lens' PeopleGetBatchGet (Maybe Text)

-- | The resource name, such as one returned by
--   <a>`people.connections.list`</a>, of one of the people to provide
--   information about. You can include this parameter up to 50 times in
--   one request.
pgbgResourceNames :: Lens' PeopleGetBatchGet [Text]

-- | JSONP
pgbgCallback :: Lens' PeopleGetBatchGet (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.People.People.GetBatchGet.PeopleGetBatchGet
instance Data.Data.Data Network.Google.Resource.People.People.GetBatchGet.PeopleGetBatchGet
instance GHC.Show.Show Network.Google.Resource.People.People.GetBatchGet.PeopleGetBatchGet
instance GHC.Classes.Eq Network.Google.Resource.People.People.GetBatchGet.PeopleGetBatchGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.People.People.GetBatchGet.PeopleGetBatchGet


-- | The Google People API service gives access to information about
--   profiles and contacts.
--   
--   <i>See:</i> <a>Google People API Reference</a>
module Network.Google.People

-- | Default request referring to version <tt>v1</tt> of the Google People
--   API. This contains the host and root path used as a starting point for
--   constructing service requests.
peopleService :: ServiceConfig

-- | View your complete date of birth
userBirthdayReadScope :: Proxy '["https://www.googleapis.com/auth/user.birthday.read"]

-- | View your basic profile info
userInfoProFileScope :: Proxy '["https://www.googleapis.com/auth/userinfo.profile"]

-- | Know your basic profile info and list of people in your circles.
plusLoginScope :: Proxy '["https://www.googleapis.com/auth/plus.login"]

-- | View your phone numbers
userPhoneNumbersReadScope :: Proxy '["https://www.googleapis.com/auth/user.phonenumbers.read"]

-- | View your email address
userInfoEmailScope :: Proxy '["https://www.googleapis.com/auth/userinfo.email"]

-- | View your contacts
contactsReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/contacts.readonly"]

-- | View your street addresses
userAddressesReadScope :: Proxy '["https://www.googleapis.com/auth/user.addresses.read"]

-- | Manage your contacts
contactsScope :: Proxy '["https://www.googleapis.com/auth/contacts"]

-- | View your email addresses
userEmailsReadScope :: Proxy '["https://www.googleapis.com/auth/user.emails.read"]

-- | Represents the entirety of the methods and resources available for the
--   Google People API service.
type PeopleAPI = PeopleConnectionsListResource :<|> (PeopleGetBatchGetResource :<|> PeopleGetResource)

-- | A person's photo. A picture shown next to the person's name to help
--   others recognize the person.
--   
--   <i>See:</i> <a>photo</a> smart constructor.
data Photo

-- | Creates a value of <a>Photo</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pURL</a></li>
--   <li><a>pMetadata</a></li>
--   </ul>
photo :: Photo

-- | The URL of the photo.
pURL :: Lens' Photo (Maybe Text)

-- | Metadata about the photo.
pMetadata :: Lens' Photo (Maybe FieldMetadata)

-- | An event related to the person.
--   
--   <i>See:</i> <a>event</a> smart constructor.
data Event

-- | Creates a value of <a>Event</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>eDate</a></li>
--   <li><a>eMetadata</a></li>
--   <li><a>eType</a></li>
--   <li><a>eFormattedType</a></li>
--   </ul>
event :: Event

-- | The date of the event.
eDate :: Lens' Event (Maybe Date)

-- | Metadata about the event.
eMetadata :: Lens' Event (Maybe FieldMetadata)

-- | The type of the event. The type can be custom or predefined. Possible
--   values include, but are not limited to, the following: * `anniversary`
--   * `other`
eType :: Lens' Event (Maybe Text)

-- | The read-only type of the event translated and formatted in the
--   viewer's account locale or the `Accept-Language` HTTP header locale.
eFormattedType :: Lens' Event (Maybe Text)
data ListConnectionsResponse

-- | Creates a value of <a>ListConnectionsResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lcrNextPageToken</a></li>
--   <li><a>lcrConnections</a></li>
--   <li><a>lcrNextSyncToken</a></li>
--   </ul>
listConnectionsResponse :: ListConnectionsResponse

-- | The token that can be used to retrieve the next page of results.
lcrNextPageToken :: Lens' ListConnectionsResponse (Maybe Text)

-- | The list of people that the requestor is connected to.
lcrConnections :: Lens' ListConnectionsResponse [Person]

-- | The token that can be used to retrieve changes since the last request.
lcrNextSyncToken :: Lens' ListConnectionsResponse (Maybe Text)

-- | A Google Apps Domain membership.
--   
--   <i>See:</i> <a>domainMembership</a> smart constructor.
data DomainMembership

-- | Creates a value of <a>DomainMembership</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dmInViewerDomain</a></li>
--   </ul>
domainMembership :: DomainMembership

-- | True if the person is in the viewer's Google Apps domain.
dmInViewerDomain :: Lens' DomainMembership (Maybe Bool)

-- | The kind of relationship the person is looking for.
--   
--   <i>See:</i> <a>relationshipInterest</a> smart constructor.
data RelationshipInterest

-- | Creates a value of <a>RelationshipInterest</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>riValue</a></li>
--   <li><a>riMetadata</a></li>
--   <li><a>riFormattedValue</a></li>
--   </ul>
relationshipInterest :: RelationshipInterest

-- | The kind of relationship the person is looking for. The value can be
--   custom or predefined. Possible values include, but are not limited to,
--   the following values: * `friend` * `date` * `relationship` *
--   `networking`
riValue :: Lens' RelationshipInterest (Maybe Text)

-- | Metadata about the relationship interest.
riMetadata :: Lens' RelationshipInterest (Maybe FieldMetadata)

-- | The value of the relationship interest translated and formatted in the
--   viewer's account locale or the locale specified in the Accept-Language
--   HTTP header.
riFormattedValue :: Lens' RelationshipInterest (Maybe Text)

-- | A person's bragging rights.
--   
--   <i>See:</i> <a>braggingRights</a> smart constructor.
data BraggingRights

-- | Creates a value of <a>BraggingRights</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>brValue</a></li>
--   <li><a>brMetadata</a></li>
--   </ul>
braggingRights :: BraggingRights

-- | The bragging rights; for example, `climbed mount everest`.
brValue :: Lens' BraggingRights (Maybe Text)

-- | Metadata about the bragging rights.
brMetadata :: Lens' BraggingRights (Maybe FieldMetadata)

-- | A person's membership in a group.
--   
--   <i>See:</i> <a>membership</a> smart constructor.
data Membership

-- | Creates a value of <a>Membership</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>mDomainMembership</a></li>
--   <li><a>mContactGroupMembership</a></li>
--   <li><a>mMetadata</a></li>
--   </ul>
membership :: Membership

-- | The domain membership.
mDomainMembership :: Lens' Membership (Maybe DomainMembership)

-- | The contact group membership.
mContactGroupMembership :: Lens' Membership (Maybe ContactGroupMembership)

-- | Metadata about the membership.
mMetadata :: Lens' Membership (Maybe FieldMetadata)

-- | Information about a person merged from various data sources such as
--   the authenticated user's contacts and profile data. Fields other than
--   IDs, metadata, and group memberships are user-edited. Most fields can
--   have multiple items. The items in a field have no guaranteed order,
--   but each non-empty field is guaranteed to have exactly one field with
--   `metadata.primary` set to true.
--   
--   <i>See:</i> <a>person</a> smart constructor.
data Person

-- | Creates a value of <a>Person</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>perEmailAddresses</a></li>
--   <li><a>perAgeRange</a></li>
--   <li><a>perEtag</a></li>
--   <li><a>perResidences</a></li>
--   <li><a>perBiographies</a></li>
--   <li><a>perTaglines</a></li>
--   <li><a>perBraggingRights</a></li>
--   <li><a>perBirthdays</a></li>
--   <li><a>perResourceName</a></li>
--   <li><a>perRelations</a></li>
--   <li><a>perURLs</a></li>
--   <li><a>perAddresses</a></li>
--   <li><a>perNicknames</a></li>
--   <li><a>perRelationshipStatuses</a></li>
--   <li><a>perImClients</a></li>
--   <li><a>perPhoneNumbers</a></li>
--   <li><a>perOccupations</a></li>
--   <li><a>perNames</a></li>
--   <li><a>perGenders</a></li>
--   <li><a>perPhotos</a></li>
--   <li><a>perEvents</a></li>
--   <li><a>perCoverPhotos</a></li>
--   <li><a>perSkills</a></li>
--   <li><a>perMetadata</a></li>
--   <li><a>perInterests</a></li>
--   <li><a>perOrganizations</a></li>
--   <li><a>perLocales</a></li>
--   <li><a>perMemberships</a></li>
--   <li><a>perRelationshipInterests</a></li>
--   </ul>
person :: Person

-- | The person's email addresses.
perEmailAddresses :: Lens' Person [EmailAddress]

-- | The person's age range.
perAgeRange :: Lens' Person (Maybe Text)

-- | The <a>HTTP entity tag</a> of the resource. Used for web cache
--   validation.
perEtag :: Lens' Person (Maybe Text)

-- | The person's residences.
perResidences :: Lens' Person [Residence]

-- | The person's biographies.
perBiographies :: Lens' Person [Biography]

-- | The person's taglines.
perTaglines :: Lens' Person [Tagline]

-- | The person's bragging rights.
perBraggingRights :: Lens' Person [BraggingRights]

-- | The person's birthdays.
perBirthdays :: Lens' Person [Birthday]

-- | The resource name for the person, assigned by the server. An ASCII
--   string with a max length of 27 characters. Always starts with
--   `people/`.
perResourceName :: Lens' Person (Maybe Text)

-- | The person's relations.
perRelations :: Lens' Person [Relation]

-- | The person's associated URLs.
perURLs :: Lens' Person [URL]

-- | The person's street addresses.
perAddresses :: Lens' Person [Address]

-- | The person's nicknames.
perNicknames :: Lens' Person [Nickname]

-- | The person's relationship statuses.
perRelationshipStatuses :: Lens' Person [RelationshipStatus]

-- | The person's instant messaging clients.
perImClients :: Lens' Person [ImClient]

-- | The person's phone numbers.
perPhoneNumbers :: Lens' Person [PhoneNumber]

-- | The person's occupations.
perOccupations :: Lens' Person [Occupation]

-- | The person's names.
perNames :: Lens' Person [Name]

-- | The person's genders.
perGenders :: Lens' Person [Gender]

-- | The person's photos.
perPhotos :: Lens' Person [Photo]

-- | The person's events.
perEvents :: Lens' Person [Event]

-- | The person's cover photos.
perCoverPhotos :: Lens' Person [CoverPhoto]

-- | The person's skills.
perSkills :: Lens' Person [Skill]

-- | Metadata about the person.
perMetadata :: Lens' Person (Maybe PersonMetadata)

-- | The person's interests.
perInterests :: Lens' Person [Interest]

-- | The person's past or current organizations.
perOrganizations :: Lens' Person [Organization]

-- | The person's locale preferences.
perLocales :: Lens' Person [Locale]

-- | The person's group memberships.
perMemberships :: Lens' Person [Membership]

-- | The kind of relationship the person is looking for.
perRelationshipInterests :: Lens' Person [RelationshipInterest]

-- | A Google contact group membership.
--   
--   <i>See:</i> <a>contactGroupMembership</a> smart constructor.
data ContactGroupMembership

-- | Creates a value of <a>ContactGroupMembership</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cgmContactGroupId</a></li>
--   </ul>
contactGroupMembership :: ContactGroupMembership

-- | The contact group ID for the contact group membership. The contact
--   group ID can be custom or predefined. Possible values include, but are
--   not limited to, the following: * `myContacts` * `starred` * A
--   numerical ID for user-created groups.
cgmContactGroupId :: Lens' ContactGroupMembership (Maybe Text)

-- | A person's locale preference.
--   
--   <i>See:</i> <a>locale</a> smart constructor.
data Locale

-- | Creates a value of <a>Locale</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lValue</a></li>
--   <li><a>lMetadata</a></li>
--   </ul>
locale :: Locale

-- | The well-formed <a>IETF BCP 47</a> language tag representing the
--   locale.
lValue :: Lens' Locale (Maybe Text)

-- | Metadata about the locale.
lMetadata :: Lens' Locale (Maybe FieldMetadata)

-- | A person's relationship status.
--   
--   <i>See:</i> <a>relationshipStatus</a> smart constructor.
data RelationshipStatus

-- | Creates a value of <a>RelationshipStatus</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rsValue</a></li>
--   <li><a>rsMetadata</a></li>
--   <li><a>rsFormattedValue</a></li>
--   </ul>
relationshipStatus :: RelationshipStatus

-- | The relationship status. The value can be custom or predefined.
--   Possible values include, but are not limited to, the following: *
--   `single` * `inARelationship` * `engaged` * `married` *
--   `itsComplicated` * `openRelationship` * `widowed` *
--   `inDomesticPartnership` * `inCivilUnion`
rsValue :: Lens' RelationshipStatus (Maybe Text)

-- | Metadata about the relationship status.
rsMetadata :: Lens' RelationshipStatus (Maybe FieldMetadata)

-- | The read-only value of the relationship status translated and
--   formatted in the viewer's account locale or the `Accept-Language` HTTP
--   header locale.
rsFormattedValue :: Lens' RelationshipStatus (Maybe Text)

-- | A person's associated URLs.
--   
--   <i>See:</i> <a>url</a> smart constructor.
data URL

-- | Creates a value of <a>URL</a> with the minimum fields required to make
--   a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>uValue</a></li>
--   <li><a>uMetadata</a></li>
--   <li><a>uType</a></li>
--   <li><a>uFormattedType</a></li>
--   </ul>
url :: URL

-- | The URL.
uValue :: Lens' URL (Maybe Text)

-- | Metadata about the URL.
uMetadata :: Lens' URL (Maybe FieldMetadata)

-- | The type of the URL. The type can be custom or predefined. Possible
--   values include, but are not limited to, the following: * `home` *
--   `work` * `blog` * `profile` * `homePage` * `ftp` * `reservations` *
--   `appInstallPage`: website for a Google+ application. * `other`
uType :: Lens' URL (Maybe Text)

-- | The read-only type of the URL translated and formatted in the viewer's
--   account locale or the `Accept-Language` HTTP header locale.
uFormattedType :: Lens' URL (Maybe Text)

-- | A person's physical address. May be a P.O. box or street address. All
--   fields are optional.
--   
--   <i>See:</i> <a>address</a> smart constructor.
data Address

-- | Creates a value of <a>Address</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>aStreetAddress</a></li>
--   <li><a>aPoBox</a></li>
--   <li><a>aCountry</a></li>
--   <li><a>aPostalCode</a></li>
--   <li><a>aExtendedAddress</a></li>
--   <li><a>aCity</a></li>
--   <li><a>aMetadata</a></li>
--   <li><a>aCountryCode</a></li>
--   <li><a>aFormattedValue</a></li>
--   <li><a>aRegion</a></li>
--   <li><a>aType</a></li>
--   <li><a>aFormattedType</a></li>
--   </ul>
address :: Address

-- | The street address.
aStreetAddress :: Lens' Address (Maybe Text)

-- | The P.O. box of the address.
aPoBox :: Lens' Address (Maybe Text)

-- | The country of the address.
aCountry :: Lens' Address (Maybe Text)

-- | The postal code of the address.
aPostalCode :: Lens' Address (Maybe Text)

-- | The extended address of the address; for example, the apartment
--   number.
aExtendedAddress :: Lens' Address (Maybe Text)

-- | The city of the address.
aCity :: Lens' Address (Maybe Text)

-- | Metadata about the address.
aMetadata :: Lens' Address (Maybe FieldMetadata)

-- | The <a>ISO 3166-1 alpha-2</a> country code of the address.
aCountryCode :: Lens' Address (Maybe Text)

-- | The read-only value of the address formatted in the viewer's account
--   locale or the `Accept-Language` HTTP header locale.
aFormattedValue :: Lens' Address (Maybe Text)

-- | The region of the address; for example, the state or province.
aRegion :: Lens' Address (Maybe Text)

-- | The type of the address. The type can be custom or predefined.
--   Possible values include, but are not limited to, the following: *
--   `home` * `work` * `other`
aType :: Lens' Address (Maybe Text)

-- | The read-only type of the address translated and formatted in the
--   viewer's account locale or the `Accept-Language` HTTP header locale.
aFormattedType :: Lens' Address (Maybe Text)

-- | A person's relation to another person.
--   
--   <i>See:</i> <a>relation</a> smart constructor.
data Relation

-- | Creates a value of <a>Relation</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rPerson</a></li>
--   <li><a>rMetadata</a></li>
--   <li><a>rType</a></li>
--   <li><a>rFormattedType</a></li>
--   </ul>
relation :: Relation

-- | The name of the other person this relation refers to.
rPerson :: Lens' Relation (Maybe Text)

-- | Metadata about the relation.
rMetadata :: Lens' Relation (Maybe FieldMetadata)

-- | The person's relation to the other person. The type can be custom or
--   predefined. Possible values include, but are not limited to, the
--   following values: * `spouse` * `child` * `mother` * `father` *
--   `parent` * `brother` * `sister` * `friend` * `relative` *
--   `domesticPartner` * `manager` * `assistant` * `referredBy` * `partner`
rType :: Lens' Relation (Maybe Text)

-- | The type of the relation translated and formatted in the viewer's
--   account locale or the locale specified in the Accept-Language HTTP
--   header.
rFormattedType :: Lens' Relation (Maybe Text)
data GetPeopleResponse

-- | Creates a value of <a>GetPeopleResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gprResponses</a></li>
--   </ul>
getPeopleResponse :: GetPeopleResponse

-- | The response for each requested resource name.
gprResponses :: Lens' GetPeopleResponse [PersonResponse]

-- | A person's birthday. At least one of the `date` and `text` fields are
--   specified. The `date` and `text` fields typically represent the same
--   date, but are not guaranteed to.
--   
--   <i>See:</i> <a>birthday</a> smart constructor.
data Birthday

-- | Creates a value of <a>Birthday</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>bText</a></li>
--   <li><a>bDate</a></li>
--   <li><a>bMetadata</a></li>
--   </ul>
birthday :: Birthday

-- | A free-form string representing the user's birthday.
bText :: Lens' Birthday (Maybe Text)

-- | The date of the birthday.
bDate :: Lens' Birthday (Maybe Date)

-- | Metadata about the birthday.
bMetadata :: Lens' Birthday (Maybe FieldMetadata)

-- | Represents a whole calendar date, for example a date of birth. The
--   time of day and time zone are either specified elsewhere or are not
--   significant. The date is relative to the <a>Proleptic Gregorian
--   Calendar</a>. The day may be 0 to represent a year and month where the
--   day is not significant. The year may be 0 to represent a month and day
--   independent of year; for example, anniversary date.
--   
--   <i>See:</i> <a>date</a> smart constructor.
data Date

-- | Creates a value of <a>Date</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dDay</a></li>
--   <li><a>dYear</a></li>
--   <li><a>dMonth</a></li>
--   </ul>
date :: Date

-- | Day of month. Must be from 1 to 31 and valid for the year and month,
--   or 0 if specifying a year/month where the day is not significant.
dDay :: Lens' Date (Maybe Int32)

-- | Year of date. Must be from 1 to 9999, or 0 if specifying a date
--   without a year.
dYear :: Lens' Date (Maybe Int32)

-- | Month of year. Must be from 1 to 12.
dMonth :: Lens' Date (Maybe Int32)

-- | A brief one-line description of the person.
--   
--   <i>See:</i> <a>tagline</a> smart constructor.
data Tagline

-- | Creates a value of <a>Tagline</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>tValue</a></li>
--   <li><a>tMetadata</a></li>
--   </ul>
tagline :: Tagline

-- | The tagline.
tValue :: Lens' Tagline (Maybe Text)

-- | Metadata about the tagline.
tMetadata :: Lens' Tagline (Maybe FieldMetadata)

-- | A person's past or current residence.
--   
--   <i>See:</i> <a>residence</a> smart constructor.
data Residence

-- | Creates a value of <a>Residence</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>resValue</a></li>
--   <li><a>resCurrent</a></li>
--   <li><a>resMetadata</a></li>
--   </ul>
residence :: Residence

-- | The address of the residence.
resValue :: Lens' Residence (Maybe Text)

-- | True if the residence is the person's current residence; false if the
--   residence is a past residence.
resCurrent :: Lens' Residence (Maybe Bool)

-- | Metadata about the residence.
resMetadata :: Lens' Residence (Maybe FieldMetadata)

-- | A person's gender.
--   
--   <i>See:</i> <a>gender</a> smart constructor.
data Gender

-- | Creates a value of <a>Gender</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gValue</a></li>
--   <li><a>gMetadata</a></li>
--   <li><a>gFormattedValue</a></li>
--   </ul>
gender :: Gender

-- | The gender for the person. The gender can be custom or predefined.
--   Possible values include, but are not limited to, the following: *
--   `male` * `female` * `other` * `unknown`
gValue :: Lens' Gender (Maybe Text)

-- | Metadata about the gender.
gMetadata :: Lens' Gender (Maybe FieldMetadata)

-- | The read-only value of the gender translated and formatted in the
--   viewer's account locale or the `Accept-Language` HTTP header locale.
gFormattedValue :: Lens' Gender (Maybe Text)

-- | A person's name. If the name is a mononym, the family name is empty.
--   
--   <i>See:</i> <a>name</a> smart constructor.
data Name

-- | Creates a value of <a>Name</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>nGivenName</a></li>
--   <li><a>nPhoneticHonorificSuffix</a></li>
--   <li><a>nMiddleName</a></li>
--   <li><a>nPhoneticMiddleName</a></li>
--   <li><a>nPhoneticFamilyName</a></li>
--   <li><a>nPhoneticHonorificPrefix</a></li>
--   <li><a>nHonorificPrefix</a></li>
--   <li><a>nFamilyName</a></li>
--   <li><a>nMetadata</a></li>
--   <li><a>nDisplayName</a></li>
--   <li><a>nPhoneticGivenName</a></li>
--   <li><a>nHonorificSuffix</a></li>
--   </ul>
name :: Name

-- | The given name.
nGivenName :: Lens' Name (Maybe Text)

-- | The honorific suffixes spelled as they sound.
nPhoneticHonorificSuffix :: Lens' Name (Maybe Text)

-- | The middle name(s).
nMiddleName :: Lens' Name (Maybe Text)

-- | The middle name(s) spelled as they sound.
nPhoneticMiddleName :: Lens' Name (Maybe Text)

-- | The family name spelled as it sounds.
nPhoneticFamilyName :: Lens' Name (Maybe Text)

-- | The honorific prefixes spelled as they sound.
nPhoneticHonorificPrefix :: Lens' Name (Maybe Text)

-- | The honorific prefixes, such as `Mrs.` or `Dr.`
nHonorificPrefix :: Lens' Name (Maybe Text)

-- | The family name.
nFamilyName :: Lens' Name (Maybe Text)

-- | Metadata about the name.
nMetadata :: Lens' Name (Maybe FieldMetadata)

-- | The display name formatted according to the locale specified by the
--   viewer's account or the Accept-Language HTTP header.
nDisplayName :: Lens' Name (Maybe Text)

-- | The given name spelled as it sounds.
nPhoneticGivenName :: Lens' Name (Maybe Text)

-- | The honorific suffixes, such as `Jr.`
nHonorificSuffix :: Lens' Name (Maybe Text)

-- | Metadata about a field.
--   
--   <i>See:</i> <a>fieldMetadata</a> smart constructor.
data FieldMetadata

-- | Creates a value of <a>FieldMetadata</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>fmVerified</a></li>
--   <li><a>fmPrimary</a></li>
--   <li><a>fmSource</a></li>
--   </ul>
fieldMetadata :: FieldMetadata

-- | True if the field is verified; false if the field is unverified. A
--   verified field is typically a name, email address, phone number, or
--   website that has been confirmed to be owned by the person.
fmVerified :: Lens' FieldMetadata (Maybe Bool)

-- | True if the field is the primary field; false if the field is a
--   secondary field.
fmPrimary :: Lens' FieldMetadata (Maybe Bool)

-- | The source of the field.
fmSource :: Lens' FieldMetadata (Maybe Source)

-- | A person's phone number.
--   
--   <i>See:</i> <a>phoneNumber</a> smart constructor.
data PhoneNumber

-- | Creates a value of <a>PhoneNumber</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pnCanonicalForm</a></li>
--   <li><a>pnValue</a></li>
--   <li><a>pnMetadata</a></li>
--   <li><a>pnType</a></li>
--   <li><a>pnFormattedType</a></li>
--   </ul>
phoneNumber :: PhoneNumber

-- | The read-only canonicalized <a>ITU-T E.164</a> form of the phone
--   number.
pnCanonicalForm :: Lens' PhoneNumber (Maybe Text)

-- | The phone number.
pnValue :: Lens' PhoneNumber (Maybe Text)

-- | Metadata about the phone number.
pnMetadata :: Lens' PhoneNumber (Maybe FieldMetadata)

-- | The type of the phone number. The type can be custom or predefined.
--   Possible values include, but are not limited to, the following: *
--   `home` * `work` * `mobile` * `homeFax` * `workFax` * `otherFax` *
--   `pager` * `workMobile` * `workPager` * `main` * `googleVoice` *
--   `other`
pnType :: Lens' PhoneNumber (Maybe Text)

-- | The read-only type of the phone number translated and formatted in the
--   viewer's account locale or the the `Accept-Language` HTTP header
--   locale.
pnFormattedType :: Lens' PhoneNumber (Maybe Text)

-- | A person's occupation.
--   
--   <i>See:</i> <a>occupation</a> smart constructor.
data Occupation

-- | Creates a value of <a>Occupation</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>oValue</a></li>
--   <li><a>oMetadata</a></li>
--   </ul>
occupation :: Occupation

-- | The occupation; for example, `carpenter`.
oValue :: Lens' Occupation (Maybe Text)

-- | Metadata about the occupation.
oMetadata :: Lens' Occupation (Maybe FieldMetadata)

-- | A person's email address.
--   
--   <i>See:</i> <a>emailAddress</a> smart constructor.
data EmailAddress

-- | Creates a value of <a>EmailAddress</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>eaValue</a></li>
--   <li><a>eaMetadata</a></li>
--   <li><a>eaType</a></li>
--   <li><a>eaFormattedType</a></li>
--   </ul>
emailAddress :: EmailAddress

-- | The email address.
eaValue :: Lens' EmailAddress (Maybe Text)

-- | Metadata about the email address.
eaMetadata :: Lens' EmailAddress (Maybe FieldMetadata)

-- | The type of the email address. The type can be custom or predefined.
--   Possible values include, but are not limited to, the following: *
--   `home` * `work` * `other`
eaType :: Lens' EmailAddress (Maybe Text)

-- | The read-only type of the email address translated and formatted in
--   the viewer's account locale or the `Accept-Language` HTTP header
--   locale.
eaFormattedType :: Lens' EmailAddress (Maybe Text)

-- | The source of a field.
--   
--   <i>See:</i> <a>source</a> smart constructor.
data Source

-- | Creates a value of <a>Source</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sId</a></li>
--   <li><a>sType</a></li>
--   </ul>
source :: Source

-- | A unique identifier within the source type generated by the server.
sId :: Lens' Source (Maybe Text)

-- | The source type.
sType :: Lens' Source (Maybe Text)

-- | A person's instant messaging client.
--   
--   <i>See:</i> <a>imClient</a> smart constructor.
data ImClient

-- | Creates a value of <a>ImClient</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>icFormattedProtocol</a></li>
--   <li><a>icUsername</a></li>
--   <li><a>icProtocol</a></li>
--   <li><a>icMetadata</a></li>
--   <li><a>icType</a></li>
--   <li><a>icFormattedType</a></li>
--   </ul>
imClient :: ImClient

-- | The read-only protocol of the IM client formatted in the viewer's
--   account locale or the `Accept-Language` HTTP header locale.
icFormattedProtocol :: Lens' ImClient (Maybe Text)

-- | The user name used in the IM client.
icUsername :: Lens' ImClient (Maybe Text)

-- | The protocol of the IM client. The protocol can be custom or
--   predefined. Possible values include, but are not limited to, the
--   following: * `aim` * `msn` * `yahoo` * `skype` * `qq` * `googleTalk` *
--   `icq` * `jabber` * `netMeeting`
icProtocol :: Lens' ImClient (Maybe Text)

-- | Metadata about the IM client.
icMetadata :: Lens' ImClient (Maybe FieldMetadata)

-- | The type of the IM client. The type can be custom or predefined.
--   Possible values include, but are not limited to, the following: *
--   `home` * `work` * `other`
icType :: Lens' ImClient (Maybe Text)

-- | The read-only type of the IM client translated and formatted in the
--   viewer's account locale or the `Accept-Language` HTTP header locale.
icFormattedType :: Lens' ImClient (Maybe Text)

-- | Metadata about a person.
--   
--   <i>See:</i> <a>personMetadata</a> smart constructor.
data PersonMetadata

-- | Creates a value of <a>PersonMetadata</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pmPreviousResourceNames</a></li>
--   <li><a>pmObjectType</a></li>
--   <li><a>pmSources</a></li>
--   <li><a>pmDeleted</a></li>
--   </ul>
personMetadata :: PersonMetadata

-- | Any former resource names this person has had. Populated only for
--   <a>`connections.list`</a> requests that include a sync token. The
--   resource name may change when adding or removing fields that link a
--   contact and profile such as a verified email, verified phone number,
--   or profile URL.
pmPreviousResourceNames :: Lens' PersonMetadata [Text]

-- | The type of the person object.
pmObjectType :: Lens' PersonMetadata (Maybe Text)

-- | The sources of data for the person.
pmSources :: Lens' PersonMetadata [Source]

-- | True if the person resource has been deleted. Populated only for
--   <a>`connections.list`</a> requests that include a sync token.
pmDeleted :: Lens' PersonMetadata (Maybe Bool)

-- | A person's nickname.
--   
--   <i>See:</i> <a>nickname</a> smart constructor.
data Nickname

-- | Creates a value of <a>Nickname</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>nicValue</a></li>
--   <li><a>nicMetadata</a></li>
--   <li><a>nicType</a></li>
--   </ul>
nickname :: Nickname

-- | The nickname.
nicValue :: Lens' Nickname (Maybe Text)

-- | Metadata about the nickname.
nicMetadata :: Lens' Nickname (Maybe FieldMetadata)

-- | The type of the nickname.
nicType :: Lens' Nickname (Maybe Text)

-- | A person's past or current organization. Overlapping date ranges are
--   permitted.
--   
--   <i>See:</i> <a>organization</a> smart constructor.
data Organization

-- | Creates a value of <a>Organization</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>orgDePartment</a></li>
--   <li><a>orgLocation</a></li>
--   <li><a>orgDomain</a></li>
--   <li><a>orgEndDate</a></li>
--   <li><a>orgSymbol</a></li>
--   <li><a>orgJobDescription</a></li>
--   <li><a>orgCurrent</a></li>
--   <li><a>orgStartDate</a></li>
--   <li><a>orgName</a></li>
--   <li><a>orgMetadata</a></li>
--   <li><a>orgPhoneticName</a></li>
--   <li><a>orgTitle</a></li>
--   <li><a>orgType</a></li>
--   <li><a>orgFormattedType</a></li>
--   </ul>
organization :: Organization

-- | The person's department at the organization.
orgDePartment :: Lens' Organization (Maybe Text)

-- | The location of the organization office the person works at.
orgLocation :: Lens' Organization (Maybe Text)

-- | The domain name associated with the organization; for example,
--   `google.com`.
orgDomain :: Lens' Organization (Maybe Text)

-- | The end date when the person left the organization.
orgEndDate :: Lens' Organization (Maybe Date)

-- | The symbol associated with the organization; for example, a stock
--   ticker symbol, abbreviation, or acronym.
orgSymbol :: Lens' Organization (Maybe Text)

-- | The person's job description at the organization.
orgJobDescription :: Lens' Organization (Maybe Text)

-- | True if the organization is the person's current organization; false
--   if the organization is a past organization.
orgCurrent :: Lens' Organization (Maybe Bool)

-- | The start date when the person joined the organization.
orgStartDate :: Lens' Organization (Maybe Date)

-- | The name of the organization.
orgName :: Lens' Organization (Maybe Text)

-- | Metadata about the organization.
orgMetadata :: Lens' Organization (Maybe FieldMetadata)

-- | The phonetic name of the organization.
orgPhoneticName :: Lens' Organization (Maybe Text)

-- | The person's job title at the organization.
orgTitle :: Lens' Organization (Maybe Text)

-- | The type of the organization. The type can be custom or predefined.
--   Possible values include, but are not limited to, the following: *
--   `work` * `school`
orgType :: Lens' Organization (Maybe Text)

-- | The read-only type of the organization translated and formatted in the
--   viewer's account locale or the `Accept-Language` HTTP header locale.
orgFormattedType :: Lens' Organization (Maybe Text)

-- | One of the person's interests.
--   
--   <i>See:</i> <a>interest</a> smart constructor.
data Interest

-- | Creates a value of <a>Interest</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>iValue</a></li>
--   <li><a>iMetadata</a></li>
--   </ul>
interest :: Interest

-- | The interest; for example, `stargazing`.
iValue :: Lens' Interest (Maybe Text)

-- | Metadata about the interest.
iMetadata :: Lens' Interest (Maybe FieldMetadata)

-- | The response for a single person
--   
--   <i>See:</i> <a>personResponse</a> smart constructor.
data PersonResponse

-- | Creates a value of <a>PersonResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>prRequestedResourceName</a></li>
--   <li><a>prPerson</a></li>
--   <li><a>prHTTPStatusCode</a></li>
--   </ul>
personResponse :: PersonResponse

-- | The original requested resource name. May be different than the
--   resource name on the returned person. The resource name can change
--   when adding or removing fields that link a contact and profile such as
--   a verified email, verified phone number, or a profile URL.
prRequestedResourceName :: Lens' PersonResponse (Maybe Text)

-- | The person.
prPerson :: Lens' PersonResponse (Maybe Person)

-- | <a>HTTP 1.1 status code</a>.
prHTTPStatusCode :: Lens' PersonResponse (Maybe Int32)

-- | A skill that the person has.
--   
--   <i>See:</i> <a>skill</a> smart constructor.
data Skill

-- | Creates a value of <a>Skill</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sValue</a></li>
--   <li><a>sMetadata</a></li>
--   </ul>
skill :: Skill

-- | The skill; for example, `underwater basket weaving`.
sValue :: Lens' Skill (Maybe Text)

-- | Metadata about the skill.
sMetadata :: Lens' Skill (Maybe FieldMetadata)

-- | A person's short biography.
--   
--   <i>See:</i> <a>biography</a> smart constructor.
data Biography

-- | Creates a value of <a>Biography</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>bioValue</a></li>
--   <li><a>bioMetadata</a></li>
--   </ul>
biography :: Biography

-- | The short biography.
bioValue :: Lens' Biography (Maybe Text)

-- | Metadata about the biography.
bioMetadata :: Lens' Biography (Maybe FieldMetadata)

-- | A person's cover photo. A large image shown on the person's profile
--   page that represents who they are or what they care about.
--   
--   <i>See:</i> <a>coverPhoto</a> smart constructor.
data CoverPhoto

-- | Creates a value of <a>CoverPhoto</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cpDefault</a></li>
--   <li><a>cpURL</a></li>
--   <li><a>cpMetadata</a></li>
--   </ul>
coverPhoto :: CoverPhoto

-- | True if the cover photo is the default cover photo; false if the cover
--   photo is a user-provided cover photo.
cpDefault :: Lens' CoverPhoto (Maybe Bool)

-- | The URL of the cover photo.
cpURL :: Lens' CoverPhoto (Maybe Text)

-- | Metadata about the cover photo.
cpMetadata :: Lens' CoverPhoto (Maybe FieldMetadata)
