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


-- | Google Partners SDK.
--   
--   Lets advertisers search certified companies and create contact leads
--   with them, and also audits the usage of clients.
--   
--   <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>v2</tt> of the API.
@package gogol-partners
@version 0.3.0


module Network.Google.Partners.Types

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

-- | An object representing a latitude/longitude pair. This is expressed as
--   a pair of doubles representing degrees latitude and degrees longitude.
--   Unless specified otherwise, this must conform to the WGS84 standard.
--   Values must be within normalized ranges. Example of normalization code
--   in Python: def NormalizeLongitude(longitude): """Wrapsdecimal degrees
--   longitude to [-180.0, 180.0].""" q, r = divmod(longitude, 360.0) if r
--   &gt; 180.0 or (r == 180.0 and q &lt;= -1.0): return r - 360.0 return r
--   def NormalizeLatLng(latitude, longitude): """Wraps decimal degrees
--   latitude and longitude to [-180.0, 180.0] and [-90.0, 90.0],
--   respectively.""" r = latitude % 360.0 if r = 270.0: return r - 360,
--   NormalizeLongitude(longitude) else: return 180 - r,
--   NormalizeLongitude(longitude + 180.0) assert 180.0 ==
--   NormalizeLongitude(180.0) assert -180.0 == NormalizeLongitude(-180.0)
--   assert -179.0 == NormalizeLongitude(181.0) assert (0.0, 0.0) ==
--   NormalizeLatLng(360.0, 0.0) assert (0.0, 0.0) ==
--   NormalizeLatLng(-360.0, 0.0) assert (85.0, 180.0) ==
--   NormalizeLatLng(95.0, 0.0) assert (-85.0, -170.0) ==
--   NormalizeLatLng(-95.0, 10.0) assert (90.0, 10.0) ==
--   NormalizeLatLng(90.0, 10.0) assert (-90.0, -10.0) ==
--   NormalizeLatLng(-90.0, -10.0) assert (0.0, -170.0) ==
--   NormalizeLatLng(-180.0, 10.0) assert (0.0, -170.0) ==
--   NormalizeLatLng(180.0, 10.0) assert (-90.0, 10.0) ==
--   NormalizeLatLng(270.0, 10.0) assert (90.0, 10.0) ==
--   NormalizeLatLng(-270.0, 10.0)
--   
--   <i>See:</i> <a>latLng</a> smart constructor.
data LatLng

-- | Creates a value of <a>LatLng</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>llLatitude</a></li>
--   <li><a>llLongitude</a></li>
--   </ul>
latLng :: LatLng

-- | The latitude in degrees. It must be in the range [-90.0, +90.0].
llLatitude :: Lens' LatLng (Maybe Double)

-- | The longitude in degrees. It must be in the range [-180.0, +180.0].
llLongitude :: Lens' LatLng (Maybe Double)

-- | Response message for ListUserStates.
--   
--   <i>See:</i> <a>listUserStatesResponse</a> smart constructor.
data ListUserStatesResponse

-- | Creates a value of <a>ListUserStatesResponse</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>lusrUserStates</a></li>
--   <li><a>lusrResponseMetadata</a></li>
--   </ul>
listUserStatesResponse :: ListUserStatesResponse

-- | User's states.
lusrUserStates :: Lens' ListUserStatesResponse [Text]

-- | Current response metadata.
lusrResponseMetadata :: Lens' ListUserStatesResponse (Maybe ResponseMetadata)

-- | Key value data pair for an event.
--   
--   <i>See:</i> <a>eventData</a> smart constructor.
data EventData

-- | Creates a value of <a>EventData</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>edValues</a></li>
--   <li><a>edKey</a></li>
--   </ul>
eventData :: EventData

-- | Data values.
edValues :: Lens' EventData [Text]

-- | Data type.
edKey :: Lens' EventData (Maybe Text)

-- | Common data that is in each API request.
--   
--   <i>See:</i> <a>requestMetadata</a> smart constructor.
data RequestMetadata

-- | Creates a value of <a>RequestMetadata</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>rmExperimentIds</a></li>
--   <li><a>rmTrafficSource</a></li>
--   <li><a>rmLocale</a></li>
--   <li><a>rmUserOverrides</a></li>
--   <li><a>rmPartnersSessionId</a></li>
--   </ul>
requestMetadata :: RequestMetadata

-- | Experiment IDs the current request belongs to.
rmExperimentIds :: Lens' RequestMetadata [Text]

-- | Source of traffic for the current request.
rmTrafficSource :: Lens' RequestMetadata (Maybe TrafficSource)

-- | Locale to use for the current request.
rmLocale :: Lens' RequestMetadata (Maybe Text)

-- | Values to use instead of the user's respective defaults for the
--   current request. These are only honored by whitelisted products.
rmUserOverrides :: Lens' RequestMetadata (Maybe UserOverrides)

-- | Google Partners session ID.
rmPartnersSessionId :: Lens' RequestMetadata (Maybe Text)

-- | Google Partners certification status.
--   
--   <i>See:</i> <a>certificationStatus</a> smart constructor.
data CertificationStatus

-- | Creates a value of <a>CertificationStatus</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>csIsCertified</a></li>
--   <li><a>csType</a></li>
--   <li><a>csExamStatuses</a></li>
--   </ul>
certificationStatus :: CertificationStatus

-- | Whether certification is passing.
csIsCertified :: Lens' CertificationStatus (Maybe Bool)

-- | The type of the certification.
csType :: Lens' CertificationStatus (Maybe Text)

-- | List of certification exam statuses.
csExamStatuses :: Lens' CertificationStatus [CertificationExamStatus]

-- | Debug information about this request.
--   
--   <i>See:</i> <a>debugInfo</a> smart constructor.
data DebugInfo

-- | Creates a value of <a>DebugInfo</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>diServiceURL</a></li>
--   <li><a>diServerTraceInfo</a></li>
--   <li><a>diServerInfo</a></li>
--   </ul>
debugInfo :: DebugInfo

-- | URL of the service that handled this request.
diServiceURL :: Lens' DebugInfo (Maybe Text)

-- | Server-side debug stack trace.
diServerTraceInfo :: Lens' DebugInfo (Maybe Text)

-- | Info about the server that serviced this request.
diServerInfo :: Lens' DebugInfo (Maybe Text)

-- | Response message for GetCompany.
--   
--   <i>See:</i> <a>getCompanyResponse</a> smart constructor.
data GetCompanyResponse

-- | Creates a value of <a>GetCompanyResponse</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>gcrResponseMetadata</a></li>
--   <li><a>gcrCompany</a></li>
--   </ul>
getCompanyResponse :: GetCompanyResponse

-- | Current response metadata.
gcrResponseMetadata :: Lens' GetCompanyResponse (Maybe ResponseMetadata)

-- | The company.
gcrCompany :: Lens' GetCompanyResponse (Maybe Company)

-- | Basic information from a public profile.
--   
--   <i>See:</i> <a>publicProFile</a> smart constructor.
data PublicProFile

-- | Creates a value of <a>PublicProFile</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>ppfURL</a></li>
--   <li><a>ppfDisplayImageURL</a></li>
--   <li><a>ppfDisplayName</a></li>
--   <li><a>ppfId</a></li>
--   </ul>
publicProFile :: PublicProFile

-- | The URL of the public profile.
ppfURL :: Lens' PublicProFile (Maybe Text)

-- | The URL to the main display image of the public profile.
ppfDisplayImageURL :: Lens' PublicProFile (Maybe Text)

-- | The display name of the public profile.
ppfDisplayName :: Lens' PublicProFile (Maybe Text)

-- | The ID which can be used to retrieve more details about the public
--   profile.
ppfId :: Lens' PublicProFile (Maybe Text)

-- | Status for a Google Partners certification exam.
--   
--   <i>See:</i> <a>certificationExamStatus</a> smart constructor.
data CertificationExamStatus

-- | Creates a value of <a>CertificationExamStatus</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>cesNumberUsersPass</a></li>
--   <li><a>cesType</a></li>
--   </ul>
certificationExamStatus :: CertificationExamStatus

-- | The number of people who have passed the certification exam.
cesNumberUsersPass :: Lens' CertificationExamStatus (Maybe Int32)

-- | The type of certification exam.
cesType :: Lens' CertificationExamStatus (Maybe Text)

-- | A location with address and geographic coordinates.
--   
--   <i>See:</i> <a>location</a> smart constructor.
data Location

-- | Creates a value of <a>Location</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>lLatLng</a></li>
--   <li><a>lAddress</a></li>
--   </ul>
location :: Location

-- | The latitude and longitude of the location, in degrees.
lLatLng :: Lens' Location (Maybe LatLng)

-- | The complete address of the location.
lAddress :: Lens' Location (Maybe Text)

-- | Source of traffic for the current request.
--   
--   <i>See:</i> <a>trafficSource</a> smart constructor.
data TrafficSource

-- | Creates a value of <a>TrafficSource</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>tsTrafficSubId</a></li>
--   <li><a>tsTrafficSourceId</a></li>
--   </ul>
trafficSource :: TrafficSource

-- | Second level identifier to indicate where the traffic comes from. An
--   identifier has multiple letters created by a team which redirected the
--   traffic to us.
tsTrafficSubId :: Lens' TrafficSource (Maybe Text)

-- | Identifier to indicate where the traffic comes from. An identifier has
--   multiple letters created by a team which redirected the traffic to us.
tsTrafficSourceId :: Lens' TrafficSource (Maybe Text)

-- | Represents an amount of money with its currency type.
--   
--   <i>See:</i> <a>money</a> smart constructor.
data Money

-- | Creates a value of <a>Money</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>mCurrencyCode</a></li>
--   <li><a>mNanos</a></li>
--   <li><a>mUnits</a></li>
--   </ul>
money :: Money

-- | The 3-letter currency code defined in ISO 4217.
mCurrencyCode :: Lens' Money (Maybe Text)

-- | Number of nano (10^-9) units of the amount. The value must be between
--   -999,999,999 and +999,999,999 inclusive. If `units` is positive,
--   `nanos` must be positive or zero. If `units` is zero, `nanos` can be
--   positive, zero, or negative. If `units` is negative, `nanos` must be
--   negative or zero. For example $-1.75 is represented as `units`=-1 and
--   `nanos`=-750,000,000.
mNanos :: Lens' Money (Maybe Int32)

-- | The whole units of the amount. For example if `currencyCode` is
--   `"USD"`, then 1 unit is one US dollar.
mUnits :: Lens' Money (Maybe Int64)

-- | Response message for ListCompanies.
--   
--   <i>See:</i> <a>listCompaniesResponse</a> smart constructor.
data ListCompaniesResponse

-- | Creates a value of <a>ListCompaniesResponse</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>lcrResponseMetadata</a></li>
--   <li><a>lcrCompanies</a></li>
--   </ul>
listCompaniesResponse :: ListCompaniesResponse

-- | A token to retrieve next page of results. Pass this value in the
--   `ListCompaniesRequest.page_token` field in the subsequent call to
--   ListCompanies to retrieve the next page of results.
lcrNextPageToken :: Lens' ListCompaniesResponse (Maybe Text)

-- | Current response metadata.
lcrResponseMetadata :: Lens' ListCompaniesResponse (Maybe ResponseMetadata)

-- | The list of companies.
lcrCompanies :: Lens' ListCompaniesResponse [Company]

-- | reCaptcha challenge info.
--   
--   <i>See:</i> <a>recaptchaChallenge</a> smart constructor.
data RecaptchaChallenge

-- | Creates a value of <a>RecaptchaChallenge</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>rcResponse</a></li>
--   <li><a>rcId</a></li>
--   </ul>
recaptchaChallenge :: RecaptchaChallenge

-- | The response to the reCaptcha challenge.
rcResponse :: Lens' RecaptchaChallenge (Maybe Text)

-- | The ID of the reCaptcha challenge.
rcId :: Lens' RecaptchaChallenge (Maybe Text)

-- | Response message for CreateLead. Debug information about this request.
--   
--   <i>See:</i> <a>createLeadResponse</a> smart constructor.
data CreateLeadResponse

-- | Creates a value of <a>CreateLeadResponse</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>clrRecaptchaStatus</a></li>
--   <li><a>clrResponseMetadata</a></li>
--   <li><a>clrLead</a></li>
--   </ul>
createLeadResponse :: CreateLeadResponse

-- | The outcome of reCaptcha validation.
clrRecaptchaStatus :: Lens' CreateLeadResponse (Maybe Text)

-- | Current response metadata.
clrResponseMetadata :: Lens' CreateLeadResponse (Maybe ResponseMetadata)

-- | Lead that was created depending on the outcome of reCaptcha
--   validation.
clrLead :: Lens' CreateLeadResponse (Maybe Lead)

-- | Values to use instead of the user's respective defaults. These are
--   only honored by whitelisted products.
--   
--   <i>See:</i> <a>userOverrides</a> smart constructor.
data UserOverrides

-- | Creates a value of <a>UserOverrides</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>uoIPAddress</a></li>
--   <li><a>uoUserId</a></li>
--   </ul>
userOverrides :: UserOverrides

-- | IP address to use instead of the user's geo-located IP address.
uoIPAddress :: Lens' UserOverrides (Maybe Text)

-- | Logged-in user ID to impersonate instead of the user's ID.
uoUserId :: Lens' UserOverrides (Maybe Text)

-- | Common data that is in each API response.
--   
--   <i>See:</i> <a>responseMetadata</a> smart constructor.
data ResponseMetadata

-- | Creates a value of <a>ResponseMetadata</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>rmDebugInfo</a></li>
--   </ul>
responseMetadata :: ResponseMetadata

-- | Debug information about this request.
rmDebugInfo :: Lens' ResponseMetadata (Maybe DebugInfo)

-- | Request message for LogClientMessage.
--   
--   <i>See:</i> <a>logMessageRequest</a> smart constructor.
data LogMessageRequest

-- | Creates a value of <a>LogMessageRequest</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>lmrRequestMetadata</a></li>
--   <li><a>lmrClientInfo</a></li>
--   <li><a>lmrDetails</a></li>
--   <li><a>lmrLevel</a></li>
--   </ul>
logMessageRequest :: LogMessageRequest

-- | Current request metadata.
lmrRequestMetadata :: Lens' LogMessageRequest (Maybe RequestMetadata)

-- | Map of client info, such as URL, browser navigator, browser platform,
--   etc.
lmrClientInfo :: Lens' LogMessageRequest (Maybe LogMessageRequestClientInfo)

-- | Details about the client message.
lmrDetails :: Lens' LogMessageRequest (Maybe Text)

-- | Message level of client message.
lmrLevel :: Lens' LogMessageRequest (Maybe Text)

-- | The localized company information.
--   
--   <i>See:</i> <a>localizedCompanyInfo</a> smart constructor.
data LocalizedCompanyInfo

-- | Creates a value of <a>LocalizedCompanyInfo</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>lciLanguageCode</a></li>
--   <li><a>lciOverview</a></li>
--   <li><a>lciCountryCodes</a></li>
--   <li><a>lciDisplayName</a></li>
--   </ul>
localizedCompanyInfo :: LocalizedCompanyInfo

-- | Language code of the localized company info, as defined by BCP 47
--   (IETF BCP 47, "Tags for Identifying Languages").
lciLanguageCode :: Lens' LocalizedCompanyInfo (Maybe Text)

-- | Localized brief description that the company uses to advertise
--   themselves.
lciOverview :: Lens' LocalizedCompanyInfo (Maybe Text)

-- | List of country codes for the localized company info.
lciCountryCodes :: Lens' LocalizedCompanyInfo [Text]

-- | Localized display name.
lciDisplayName :: Lens' LocalizedCompanyInfo (Maybe Text)

-- | Map of client info, such as URL, browser navigator, browser platform,
--   etc.
--   
--   <i>See:</i> <a>logMessageRequestClientInfo</a> smart constructor.
data LogMessageRequestClientInfo

-- | Creates a value of <a>LogMessageRequestClientInfo</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>lmrciAddtional</a></li>
--   </ul>
logMessageRequestClientInfo :: HashMap Text Text -> LogMessageRequestClientInfo
lmrciAddtional :: Lens' LogMessageRequestClientInfo (HashMap Text Text)

-- | A lead resource that represents an advertiser contact for a `Company`.
--   These are usually generated via Google Partner Search (the advertiser
--   portal).
--   
--   <i>See:</i> <a>lead</a> smart constructor.
data Lead

-- | Creates a value of <a>Lead</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>lGivenName</a></li>
--   <li><a>lEmail</a></li>
--   <li><a>lFamilyName</a></li>
--   <li><a>lPhoneNumber</a></li>
--   <li><a>lMinMonthlyBudget</a></li>
--   <li><a>lId</a></li>
--   <li><a>lComments</a></li>
--   <li><a>lWebsiteURL</a></li>
--   <li><a>lType</a></li>
--   <li><a>lGpsMotivations</a></li>
--   </ul>
lead :: Lead

-- | First name of lead source.
lGivenName :: Lens' Lead (Maybe Text)

-- | Email address of lead source.
lEmail :: Lens' Lead (Maybe Text)

-- | Last name of lead source.
lFamilyName :: Lens' Lead (Maybe Text)

-- | Phone number of lead source.
lPhoneNumber :: Lens' Lead (Maybe Text)

-- | The minimum monthly budget lead source is willing to spend.
lMinMonthlyBudget :: Lens' Lead (Maybe Money)

-- | ID of the lead.
lId :: Lens' Lead (Maybe Text)

-- | Comments lead source gave.
lComments :: Lens' Lead (Maybe Text)

-- | Website URL of lead source.
lWebsiteURL :: Lens' Lead (Maybe Text)

-- | Type of lead.
lType :: Lens' Lead (Maybe Text)

-- | List of reasons for using Google Partner Search and creating a lead.
lGpsMotivations :: Lens' Lead [Text]

-- | Response message for LogClientMessage.
--   
--   <i>See:</i> <a>logMessageResponse</a> smart constructor.
data LogMessageResponse

-- | Creates a value of <a>LogMessageResponse</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>lmrResponseMetadata</a></li>
--   </ul>
logMessageResponse :: LogMessageResponse

-- | Current response metadata.
lmrResponseMetadata :: Lens' LogMessageResponse (Maybe ResponseMetadata)

-- | A company resource in the Google Partners API. Once certified, it
--   qualifies for being searched by advertisers.
--   
--   <i>See:</i> <a>company</a> smart constructor.
data Company

-- | Creates a value of <a>Company</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>cPublicProFile</a></li>
--   <li><a>cOriginalMinMonthlyBudget</a></li>
--   <li><a>cIndustries</a></li>
--   <li><a>cConvertedMinMonthlyBudget</a></li>
--   <li><a>cName</a></li>
--   <li><a>cLocalizedInfos</a></li>
--   <li><a>cCertificationStatuses</a></li>
--   <li><a>cRanks</a></li>
--   <li><a>cId</a></li>
--   <li><a>cWebsiteURL</a></li>
--   <li><a>cLocations</a></li>
--   <li><a>cServices</a></li>
--   </ul>
company :: Company

-- | Basic information from the company's public profile.
cPublicProFile :: Lens' Company (Maybe PublicProFile)

-- | The unconverted minimum monthly budget that the company accepts for
--   partner business.
cOriginalMinMonthlyBudget :: Lens' Company (Maybe Money)

-- | Industries the company can help with.
cIndustries :: Lens' Company [Text]

-- | The minimum monthly budget that the company accepts for partner
--   business, converted to the requested currency code.
cConvertedMinMonthlyBudget :: Lens' Company (Maybe Money)

-- | The name of the company.
cName :: Lens' Company (Maybe Text)

-- | The list of localized info for the company.
cLocalizedInfos :: Lens' Company [LocalizedCompanyInfo]

-- | The list of Google Partners certification statuses for the company.
cCertificationStatuses :: Lens' Company [CertificationStatus]

-- | Information related to the ranking of the company within the list of
--   companies.
cRanks :: Lens' Company [Rank]

-- | The ID of the company.
cId :: Lens' Company (Maybe Text)

-- | URL of the company's website.
cWebsiteURL :: Lens' Company (Maybe Text)

-- | The list of company locations.
cLocations :: Lens' Company [Location]

-- | Services the company can help with.
cServices :: Lens' Company [Text]

-- | Response message for LogUserEvent.
--   
--   <i>See:</i> <a>logUserEventResponse</a> smart constructor.
data LogUserEventResponse

-- | Creates a value of <a>LogUserEventResponse</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>luerResponseMetadata</a></li>
--   </ul>
logUserEventResponse :: LogUserEventResponse

-- | Current response metadata.
luerResponseMetadata :: Lens' LogUserEventResponse (Maybe ResponseMetadata)

-- | Request message for LogUserEvent.
--   
--   <i>See:</i> <a>logUserEventRequest</a> smart constructor.
data LogUserEventRequest

-- | Creates a value of <a>LogUserEventRequest</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>luerEventCategory</a></li>
--   <li><a>luerRequestMetadata</a></li>
--   <li><a>luerURL</a></li>
--   <li><a>luerEventScope</a></li>
--   <li><a>luerLead</a></li>
--   <li><a>luerEventDatas</a></li>
--   <li><a>luerEventAction</a></li>
--   </ul>
logUserEventRequest :: LogUserEventRequest

-- | The category the action belongs to.
luerEventCategory :: Lens' LogUserEventRequest (Maybe Text)

-- | Current request metadata.
luerRequestMetadata :: Lens' LogUserEventRequest (Maybe RequestMetadata)

-- | The URL where the event occurred.
luerURL :: Lens' LogUserEventRequest (Maybe Text)

-- | The scope of the event.
luerEventScope :: Lens' LogUserEventRequest (Maybe Text)

-- | Advertiser lead information.
luerLead :: Lens' LogUserEventRequest (Maybe Lead)

-- | List of event data for the event.
luerEventDatas :: Lens' LogUserEventRequest [EventData]

-- | The action that occurred.
luerEventAction :: Lens' LogUserEventRequest (Maybe Text)

-- | Information related to ranking of results.
--   
--   <i>See:</i> <a>rank</a> smart constructor.
data Rank

-- | Creates a value of <a>Rank</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>rValue</a></li>
--   <li><a>rType</a></li>
--   </ul>
rank :: Rank

-- | The numerical value of the rank.
rValue :: Lens' Rank (Maybe Double)

-- | The type of rank.
rType :: Lens' Rank (Maybe Text)

-- | Request message for CreateLead.
--   
--   <i>See:</i> <a>createLeadRequest</a> smart constructor.
data CreateLeadRequest

-- | Creates a value of <a>CreateLeadRequest</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>cRequestMetadata</a></li>
--   <li><a>cRecaptchaChallenge</a></li>
--   <li><a>cLead</a></li>
--   </ul>
createLeadRequest :: CreateLeadRequest

-- | Current request metadata.
cRequestMetadata :: Lens' CreateLeadRequest (Maybe RequestMetadata)

-- | reCaptcha challenge info.
cRecaptchaChallenge :: Lens' CreateLeadRequest (Maybe RecaptchaChallenge)

-- | The lead resource. The `LeadType` must not be `LEAD_TYPE_UNSPECIFIED`
--   and either `email` or `phone_number` must be provided.
cLead :: Lens' CreateLeadRequest (Maybe Lead)


-- | Logs a generic message from the client, such as `Failed to render
--   component`, `Profile page is running slow`, `More than 500 users have
--   accessed this result.`, etc.
--   
--   <i>See:</i> <a>Google Partners API Reference</a> for
--   <tt>partners.clientMessages.log</tt>.
module Network.Google.Resource.Partners.ClientMessages.Log

-- | A resource alias for <tt>partners.clientMessages.log</tt> method which
--   the <a>ClientMessagesLog</a> request conforms to.
type ClientMessagesLogResource = "v2" :> ("clientMessages:log" :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] LogMessageRequest :> Post '[JSON] LogMessageResponse))))))))))

-- | Creates a value of <a>ClientMessagesLog</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>cmlXgafv</a></li>
--   <li><a>cmlUploadProtocol</a></li>
--   <li><a>cmlPp</a></li>
--   <li><a>cmlAccessToken</a></li>
--   <li><a>cmlUploadType</a></li>
--   <li><a>cmlPayload</a></li>
--   <li><a>cmlBearerToken</a></li>
--   <li><a>cmlCallback</a></li>
--   </ul>
clientMessagesLog :: LogMessageRequest -> ClientMessagesLog

-- | Logs a generic message from the client, such as `Failed to render
--   component`, `Profile page is running slow`, `More than 500 users have
--   accessed this result.`, etc.
--   
--   <i>See:</i> <a>clientMessagesLog</a> smart constructor.
data ClientMessagesLog

-- | V1 error format.
cmlXgafv :: Lens' ClientMessagesLog (Maybe Text)

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

-- | Pretty-print response.
cmlPp :: Lens' ClientMessagesLog Bool

-- | OAuth access token.
cmlAccessToken :: Lens' ClientMessagesLog (Maybe Text)

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

-- | Multipart request metadata.
cmlPayload :: Lens' ClientMessagesLog LogMessageRequest

-- | OAuth bearer token.
cmlBearerToken :: Lens' ClientMessagesLog (Maybe Text)

-- | JSONP
cmlCallback :: Lens' ClientMessagesLog (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Partners.ClientMessages.Log.ClientMessagesLog
instance Data.Data.Data Network.Google.Resource.Partners.ClientMessages.Log.ClientMessagesLog
instance GHC.Show.Show Network.Google.Resource.Partners.ClientMessages.Log.ClientMessagesLog
instance GHC.Classes.Eq Network.Google.Resource.Partners.ClientMessages.Log.ClientMessagesLog
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Partners.ClientMessages.Log.ClientMessagesLog


-- | Gets a company.
--   
--   <i>See:</i> <a>Google Partners API Reference</a> for
--   <tt>partners.companies.get</tt>.
module Network.Google.Resource.Partners.Companies.Get

-- | A resource alias for <tt>partners.companies.get</tt> method which the
--   <a>CompaniesGet</a> request conforms to.
type CompaniesGetResource = "v2" :> ("companies" :> (Capture "companyId" Text :> (QueryParam "$.xgafv" Text :> (QueryParam "currencyCode" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "orderBy" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "address" Text :> (QueryParam "requestMetadata.partnersSessionId" Text :> (QueryParam "bearer_token" Text :> (QueryParam "requestMetadata.locale" Text :> (QueryParam "view" Text :> (QueryParams "requestMetadata.experimentIds" Text :> (QueryParam "requestMetadata.userOverrides.ipAddress" Text :> (QueryParam "requestMetadata.trafficSource.trafficSubId" Text :> (QueryParam "requestMetadata.userOverrides.userId" Text :> (QueryParam "requestMetadata.trafficSource.trafficSourceId" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] GetCompanyResponse)))))))))))))))))))))

-- | Creates a value of <a>CompaniesGet</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>cgXgafv</a></li>
--   <li><a>cgCurrencyCode</a></li>
--   <li><a>cgUploadProtocol</a></li>
--   <li><a>cgCompanyId</a></li>
--   <li><a>cgOrderBy</a></li>
--   <li><a>cgPp</a></li>
--   <li><a>cgAccessToken</a></li>
--   <li><a>cgUploadType</a></li>
--   <li><a>cgAddress</a></li>
--   <li><a>cgRequestMetadataPartnersSessionId</a></li>
--   <li><a>cgBearerToken</a></li>
--   <li><a>cgRequestMetadataLocale</a></li>
--   <li><a>cgView</a></li>
--   <li><a>cgRequestMetadataExperimentIds</a></li>
--   <li><a>cgRequestMetadataUserOverridesIPAddress</a></li>
--   <li><a>cgRequestMetadataTrafficSourceTrafficSubId</a></li>
--   <li><a>cgRequestMetadataUserOverridesUserId</a></li>
--   <li><a>cgRequestMetadataTrafficSourceTrafficSourceId</a></li>
--   <li><a>cgCallback</a></li>
--   </ul>
companiesGet :: Text -> CompaniesGet

-- | Gets a company.
--   
--   <i>See:</i> <a>companiesGet</a> smart constructor.
data CompaniesGet

-- | V1 error format.
cgXgafv :: Lens' CompaniesGet (Maybe Text)

-- | If the company's budget is in a different currency code than this one,
--   then the converted budget is converted to this currency code.
cgCurrencyCode :: Lens' CompaniesGet (Maybe Text)

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

-- | The ID of the company to retrieve.
cgCompanyId :: Lens' CompaniesGet Text

-- | How to order addresses within the returned company. Currently, only
--   `address` and `address desc` is supported which will sorted by closest
--   to farthest in distance from given address and farthest to closest
--   distance from given address respectively.
cgOrderBy :: Lens' CompaniesGet (Maybe Text)

-- | Pretty-print response.
cgPp :: Lens' CompaniesGet Bool

-- | OAuth access token.
cgAccessToken :: Lens' CompaniesGet (Maybe Text)

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

-- | The address to use for sorting the company's addresses by proximity.
--   If not given, the geo-located address of the request is used. Used
--   when order_by is set.
cgAddress :: Lens' CompaniesGet (Maybe Text)

-- | Google Partners session ID.
cgRequestMetadataPartnersSessionId :: Lens' CompaniesGet (Maybe Text)

-- | OAuth bearer token.
cgBearerToken :: Lens' CompaniesGet (Maybe Text)

-- | Locale to use for the current request.
cgRequestMetadataLocale :: Lens' CompaniesGet (Maybe Text)

-- | The view of `Company` resource to be returned. This must not be
--   `COMPANY_VIEW_UNSPECIFIED`.
cgView :: Lens' CompaniesGet (Maybe Text)

-- | Experiment IDs the current request belongs to.
cgRequestMetadataExperimentIds :: Lens' CompaniesGet [Text]

-- | IP address to use instead of the user's geo-located IP address.
cgRequestMetadataUserOverridesIPAddress :: Lens' CompaniesGet (Maybe Text)

-- | Second level identifier to indicate where the traffic comes from. An
--   identifier has multiple letters created by a team which redirected the
--   traffic to us.
cgRequestMetadataTrafficSourceTrafficSubId :: Lens' CompaniesGet (Maybe Text)

-- | Logged-in user ID to impersonate instead of the user's ID.
cgRequestMetadataUserOverridesUserId :: Lens' CompaniesGet (Maybe Text)

-- | Identifier to indicate where the traffic comes from. An identifier has
--   multiple letters created by a team which redirected the traffic to us.
cgRequestMetadataTrafficSourceTrafficSourceId :: Lens' CompaniesGet (Maybe Text)

-- | JSONP
cgCallback :: Lens' CompaniesGet (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Partners.Companies.Get.CompaniesGet
instance Data.Data.Data Network.Google.Resource.Partners.Companies.Get.CompaniesGet
instance GHC.Show.Show Network.Google.Resource.Partners.Companies.Get.CompaniesGet
instance GHC.Classes.Eq Network.Google.Resource.Partners.Companies.Get.CompaniesGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Partners.Companies.Get.CompaniesGet


-- | Creates an advertiser lead for the given company ID.
--   
--   <i>See:</i> <a>Google Partners API Reference</a> for
--   <tt>partners.companies.leads.create</tt>.
module Network.Google.Resource.Partners.Companies.Leads.Create

-- | A resource alias for <tt>partners.companies.leads.create</tt> method
--   which the <a>CompaniesLeadsCreate</a> request conforms to.
type CompaniesLeadsCreateResource = "v2" :> ("companies" :> (Capture "companyId" Text :> ("leads" :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] CreateLeadRequest :> Post '[JSON] CreateLeadResponse))))))))))))

-- | Creates a value of <a>CompaniesLeadsCreate</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>clcXgafv</a></li>
--   <li><a>clcUploadProtocol</a></li>
--   <li><a>clcCompanyId</a></li>
--   <li><a>clcPp</a></li>
--   <li><a>clcAccessToken</a></li>
--   <li><a>clcUploadType</a></li>
--   <li><a>clcPayload</a></li>
--   <li><a>clcBearerToken</a></li>
--   <li><a>clcCallback</a></li>
--   </ul>
companiesLeadsCreate :: Text -> CreateLeadRequest -> CompaniesLeadsCreate

-- | Creates an advertiser lead for the given company ID.
--   
--   <i>See:</i> <a>companiesLeadsCreate</a> smart constructor.
data CompaniesLeadsCreate

-- | V1 error format.
clcXgafv :: Lens' CompaniesLeadsCreate (Maybe Text)

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

-- | The ID of the company to contact.
clcCompanyId :: Lens' CompaniesLeadsCreate Text

-- | Pretty-print response.
clcPp :: Lens' CompaniesLeadsCreate Bool

-- | OAuth access token.
clcAccessToken :: Lens' CompaniesLeadsCreate (Maybe Text)

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

-- | Multipart request metadata.
clcPayload :: Lens' CompaniesLeadsCreate CreateLeadRequest

-- | OAuth bearer token.
clcBearerToken :: Lens' CompaniesLeadsCreate (Maybe Text)

-- | JSONP
clcCallback :: Lens' CompaniesLeadsCreate (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Partners.Companies.Leads.Create.CompaniesLeadsCreate
instance Data.Data.Data Network.Google.Resource.Partners.Companies.Leads.Create.CompaniesLeadsCreate
instance GHC.Show.Show Network.Google.Resource.Partners.Companies.Leads.Create.CompaniesLeadsCreate
instance GHC.Classes.Eq Network.Google.Resource.Partners.Companies.Leads.Create.CompaniesLeadsCreate
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Partners.Companies.Leads.Create.CompaniesLeadsCreate


-- | Lists companies.
--   
--   <i>See:</i> <a>Google Partners API Reference</a> for
--   <tt>partners.companies.list</tt>.
module Network.Google.Resource.Partners.Companies.List

-- | A resource alias for <tt>partners.companies.list</tt> method which the
--   <a>CompaniesList</a> request conforms to.
type CompaniesListResource = "v2" :> ("companies" :> (QueryParams "languageCodes" Text :> (QueryParam "$.xgafv" Text :> (QueryParam "maxMonthlyBudget.units" (Textual Int64) :> (QueryParam "upload_protocol" Text :> (QueryParam "orderBy" Text :> (QueryParam "pp" Bool :> (QueryParam "companyName" Text :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "address" Text :> (QueryParam "minMonthlyBudget.nanos" (Textual Int32) :> (QueryParams "industries" Text :> (QueryParam "requestMetadata.partnersSessionId" Text :> (QueryParam "bearer_token" Text :> (QueryParam "maxMonthlyBudget.nanos" (Textual Int32) :> (QueryParam "requestMetadata.locale" Text :> (QueryParam "view" Text :> (QueryParams "requestMetadata.experimentIds" Text :> (QueryParam "requestMetadata.userOverrides.ipAddress" Text :> (QueryParam "maxMonthlyBudget.currencyCode" Text :> (QueryParam "websiteUrl" Text :> (QueryParam "pageToken" Text :> (QueryParam "requestMetadata.trafficSource.trafficSubId" Text :> (QueryParams "gpsMotivations" Text :> (QueryParam "pageSize" (Textual Int32) :> (QueryParam "minMonthlyBudget.currencyCode" Text :> (QueryParams "services" Text :> (QueryParam "requestMetadata.userOverrides.userId" Text :> (QueryParam "minMonthlyBudget.units" (Textual Int64) :> (QueryParam "requestMetadata.trafficSource.trafficSourceId" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] ListCompaniesResponse)))))))))))))))))))))))))))))))))

-- | Creates a value of <a>CompaniesList</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>clLanguageCodes</a></li>
--   <li><a>clXgafv</a></li>
--   <li><a>clMaxMonthlyBudgetUnits</a></li>
--   <li><a>clUploadProtocol</a></li>
--   <li><a>clOrderBy</a></li>
--   <li><a>clPp</a></li>
--   <li><a>clCompanyName</a></li>
--   <li><a>clAccessToken</a></li>
--   <li><a>clUploadType</a></li>
--   <li><a>clAddress</a></li>
--   <li><a>clMinMonthlyBudgetNanos</a></li>
--   <li><a>clIndustries</a></li>
--   <li><a>clRequestMetadataPartnersSessionId</a></li>
--   <li><a>clBearerToken</a></li>
--   <li><a>clMaxMonthlyBudgetNanos</a></li>
--   <li><a>clRequestMetadataLocale</a></li>
--   <li><a>clView</a></li>
--   <li><a>clRequestMetadataExperimentIds</a></li>
--   <li><a>clRequestMetadataUserOverridesIPAddress</a></li>
--   <li><a>clMaxMonthlyBudgetCurrencyCode</a></li>
--   <li><a>clWebsiteURL</a></li>
--   <li><a>clPageToken</a></li>
--   <li><a>clRequestMetadataTrafficSourceTrafficSubId</a></li>
--   <li><a>clGpsMotivations</a></li>
--   <li><a>clPageSize</a></li>
--   <li><a>clMinMonthlyBudgetCurrencyCode</a></li>
--   <li><a>clServices</a></li>
--   <li><a>clRequestMetadataUserOverridesUserId</a></li>
--   <li><a>clMinMonthlyBudgetUnits</a></li>
--   <li><a>clRequestMetadataTrafficSourceTrafficSourceId</a></li>
--   <li><a>clCallback</a></li>
--   </ul>
companiesList :: CompaniesList

-- | Lists companies.
--   
--   <i>See:</i> <a>companiesList</a> smart constructor.
data CompaniesList

-- | List of language codes that company can support. Only primary language
--   subtags are accepted as defined by BCP 47 (IETF BCP 47, "Tags for
--   Identifying Languages").
clLanguageCodes :: Lens' CompaniesList [Text]

-- | V1 error format.
clXgafv :: Lens' CompaniesList (Maybe Text)

-- | The whole units of the amount. For example if `currencyCode` is
--   `"USD"`, then 1 unit is one US dollar.
clMaxMonthlyBudgetUnits :: Lens' CompaniesList (Maybe Int64)

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

-- | How to order addresses within the returned companies. Currently, only
--   `address` and `address desc` is supported which will sorted by closest
--   to farthest in distance from given address and farthest to closest
--   distance from given address respectively.
clOrderBy :: Lens' CompaniesList (Maybe Text)

-- | Pretty-print response.
clPp :: Lens' CompaniesList Bool

-- | Company name to search for.
clCompanyName :: Lens' CompaniesList (Maybe Text)

-- | OAuth access token.
clAccessToken :: Lens' CompaniesList (Maybe Text)

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

-- | The address to use when searching for companies. If not given, the
--   geo-located address of the request is used.
clAddress :: Lens' CompaniesList (Maybe Text)

-- | Number of nano (10^-9) units of the amount. The value must be between
--   -999,999,999 and +999,999,999 inclusive. If `units` is positive,
--   `nanos` must be positive or zero. If `units` is zero, `nanos` can be
--   positive, zero, or negative. If `units` is negative, `nanos` must be
--   negative or zero. For example $-1.75 is represented as `units`=-1 and
--   `nanos`=-750,000,000.
clMinMonthlyBudgetNanos :: Lens' CompaniesList (Maybe Int32)

-- | List of industries the company can help with.
clIndustries :: Lens' CompaniesList [Text]

-- | Google Partners session ID.
clRequestMetadataPartnersSessionId :: Lens' CompaniesList (Maybe Text)

-- | OAuth bearer token.
clBearerToken :: Lens' CompaniesList (Maybe Text)

-- | Number of nano (10^-9) units of the amount. The value must be between
--   -999,999,999 and +999,999,999 inclusive. If `units` is positive,
--   `nanos` must be positive or zero. If `units` is zero, `nanos` can be
--   positive, zero, or negative. If `units` is negative, `nanos` must be
--   negative or zero. For example $-1.75 is represented as `units`=-1 and
--   `nanos`=-750,000,000.
clMaxMonthlyBudgetNanos :: Lens' CompaniesList (Maybe Int32)

-- | Locale to use for the current request.
clRequestMetadataLocale :: Lens' CompaniesList (Maybe Text)

-- | The view of the `Company` resource to be returned. This must not be
--   `COMPANY_VIEW_UNSPECIFIED`.
clView :: Lens' CompaniesList (Maybe Text)

-- | Experiment IDs the current request belongs to.
clRequestMetadataExperimentIds :: Lens' CompaniesList [Text]

-- | IP address to use instead of the user's geo-located IP address.
clRequestMetadataUserOverridesIPAddress :: Lens' CompaniesList (Maybe Text)

-- | The 3-letter currency code defined in ISO 4217.
clMaxMonthlyBudgetCurrencyCode :: Lens' CompaniesList (Maybe Text)

-- | Website URL that will help to find a better matched company. .
clWebsiteURL :: Lens' CompaniesList (Maybe Text)

-- | A token identifying a page of results that the server returns.
--   Typically, this is the value of
--   `ListCompaniesResponse.next_page_token` returned from the previous
--   call to ListCompanies.
clPageToken :: Lens' CompaniesList (Maybe Text)

-- | Second level identifier to indicate where the traffic comes from. An
--   identifier has multiple letters created by a team which redirected the
--   traffic to us.
clRequestMetadataTrafficSourceTrafficSubId :: Lens' CompaniesList (Maybe Text)

-- | List of reasons for using Google Partner Search to get companies.
clGpsMotivations :: Lens' CompaniesList [Text]

-- | Requested page size. Server may return fewer companies than requested.
--   If unspecified, server picks an appropriate default.
clPageSize :: Lens' CompaniesList (Maybe Int32)

-- | The 3-letter currency code defined in ISO 4217.
clMinMonthlyBudgetCurrencyCode :: Lens' CompaniesList (Maybe Text)

-- | List of services the company can help with.
clServices :: Lens' CompaniesList [Text]

-- | Logged-in user ID to impersonate instead of the user's ID.
clRequestMetadataUserOverridesUserId :: Lens' CompaniesList (Maybe Text)

-- | The whole units of the amount. For example if `currencyCode` is
--   `"USD"`, then 1 unit is one US dollar.
clMinMonthlyBudgetUnits :: Lens' CompaniesList (Maybe Int64)

-- | Identifier to indicate where the traffic comes from. An identifier has
--   multiple letters created by a team which redirected the traffic to us.
clRequestMetadataTrafficSourceTrafficSourceId :: Lens' CompaniesList (Maybe Text)

-- | JSONP
clCallback :: Lens' CompaniesList (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Partners.Companies.List.CompaniesList
instance Data.Data.Data Network.Google.Resource.Partners.Companies.List.CompaniesList
instance GHC.Show.Show Network.Google.Resource.Partners.Companies.List.CompaniesList
instance GHC.Classes.Eq Network.Google.Resource.Partners.Companies.List.CompaniesList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Partners.Companies.List.CompaniesList


-- | Logs a user event.
--   
--   <i>See:</i> <a>Google Partners API Reference</a> for
--   <tt>partners.userEvents.log</tt>.
module Network.Google.Resource.Partners.UserEvents.Log

-- | A resource alias for <tt>partners.userEvents.log</tt> method which the
--   <a>UserEventsLog</a> request conforms to.
type UserEventsLogResource = "v2" :> ("userEvents:log" :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "bearer_token" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] LogUserEventRequest :> Post '[JSON] LogUserEventResponse))))))))))

-- | Creates a value of <a>UserEventsLog</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>uelXgafv</a></li>
--   <li><a>uelUploadProtocol</a></li>
--   <li><a>uelPp</a></li>
--   <li><a>uelAccessToken</a></li>
--   <li><a>uelUploadType</a></li>
--   <li><a>uelPayload</a></li>
--   <li><a>uelBearerToken</a></li>
--   <li><a>uelCallback</a></li>
--   </ul>
userEventsLog :: LogUserEventRequest -> UserEventsLog

-- | Logs a user event.
--   
--   <i>See:</i> <a>userEventsLog</a> smart constructor.
data UserEventsLog

-- | V1 error format.
uelXgafv :: Lens' UserEventsLog (Maybe Text)

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

-- | Pretty-print response.
uelPp :: Lens' UserEventsLog Bool

-- | OAuth access token.
uelAccessToken :: Lens' UserEventsLog (Maybe Text)

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

-- | Multipart request metadata.
uelPayload :: Lens' UserEventsLog LogUserEventRequest

-- | OAuth bearer token.
uelBearerToken :: Lens' UserEventsLog (Maybe Text)

-- | JSONP
uelCallback :: Lens' UserEventsLog (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Partners.UserEvents.Log.UserEventsLog
instance Data.Data.Data Network.Google.Resource.Partners.UserEvents.Log.UserEventsLog
instance GHC.Show.Show Network.Google.Resource.Partners.UserEvents.Log.UserEventsLog
instance GHC.Classes.Eq Network.Google.Resource.Partners.UserEvents.Log.UserEventsLog
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Partners.UserEvents.Log.UserEventsLog


-- | Lists states for current user.
--   
--   <i>See:</i> <a>Google Partners API Reference</a> for
--   <tt>partners.userStates.list</tt>.
module Network.Google.Resource.Partners.UserStates.List

-- | A resource alias for <tt>partners.userStates.list</tt> method which
--   the <a>UserStatesList</a> request conforms to.
type UserStatesListResource = "v2" :> ("userStates" :> (QueryParam "$.xgafv" Text :> (QueryParam "upload_protocol" Text :> (QueryParam "pp" Bool :> (QueryParam "access_token" Text :> (QueryParam "uploadType" Text :> (QueryParam "requestMetadata.partnersSessionId" Text :> (QueryParam "bearer_token" Text :> (QueryParam "requestMetadata.locale" Text :> (QueryParams "requestMetadata.experimentIds" Text :> (QueryParam "requestMetadata.userOverrides.ipAddress" Text :> (QueryParam "requestMetadata.trafficSource.trafficSubId" Text :> (QueryParam "requestMetadata.userOverrides.userId" Text :> (QueryParam "requestMetadata.trafficSource.trafficSourceId" Text :> (QueryParam "callback" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] ListUserStatesResponse))))))))))))))))

-- | Creates a value of <a>UserStatesList</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>uslXgafv</a></li>
--   <li><a>uslUploadProtocol</a></li>
--   <li><a>uslPp</a></li>
--   <li><a>uslAccessToken</a></li>
--   <li><a>uslUploadType</a></li>
--   <li><a>uslRequestMetadataPartnersSessionId</a></li>
--   <li><a>uslBearerToken</a></li>
--   <li><a>uslRequestMetadataLocale</a></li>
--   <li><a>uslRequestMetadataExperimentIds</a></li>
--   <li><a>uslRequestMetadataUserOverridesIPAddress</a></li>
--   <li><a>uslRequestMetadataTrafficSourceTrafficSubId</a></li>
--   <li><a>uslRequestMetadataUserOverridesUserId</a></li>
--   <li><a>uslRequestMetadataTrafficSourceTrafficSourceId</a></li>
--   <li><a>uslCallback</a></li>
--   </ul>
userStatesList :: UserStatesList

-- | Lists states for current user.
--   
--   <i>See:</i> <a>userStatesList</a> smart constructor.
data UserStatesList

-- | V1 error format.
uslXgafv :: Lens' UserStatesList (Maybe Text)

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

-- | Pretty-print response.
uslPp :: Lens' UserStatesList Bool

-- | OAuth access token.
uslAccessToken :: Lens' UserStatesList (Maybe Text)

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

-- | Google Partners session ID.
uslRequestMetadataPartnersSessionId :: Lens' UserStatesList (Maybe Text)

-- | OAuth bearer token.
uslBearerToken :: Lens' UserStatesList (Maybe Text)

-- | Locale to use for the current request.
uslRequestMetadataLocale :: Lens' UserStatesList (Maybe Text)

-- | Experiment IDs the current request belongs to.
uslRequestMetadataExperimentIds :: Lens' UserStatesList [Text]

-- | IP address to use instead of the user's geo-located IP address.
uslRequestMetadataUserOverridesIPAddress :: Lens' UserStatesList (Maybe Text)

-- | Second level identifier to indicate where the traffic comes from. An
--   identifier has multiple letters created by a team which redirected the
--   traffic to us.
uslRequestMetadataTrafficSourceTrafficSubId :: Lens' UserStatesList (Maybe Text)

-- | Logged-in user ID to impersonate instead of the user's ID.
uslRequestMetadataUserOverridesUserId :: Lens' UserStatesList (Maybe Text)

-- | Identifier to indicate where the traffic comes from. An identifier has
--   multiple letters created by a team which redirected the traffic to us.
uslRequestMetadataTrafficSourceTrafficSourceId :: Lens' UserStatesList (Maybe Text)

-- | JSONP
uslCallback :: Lens' UserStatesList (Maybe Text)
instance GHC.Generics.Generic Network.Google.Resource.Partners.UserStates.List.UserStatesList
instance Data.Data.Data Network.Google.Resource.Partners.UserStates.List.UserStatesList
instance GHC.Show.Show Network.Google.Resource.Partners.UserStates.List.UserStatesList
instance GHC.Classes.Eq Network.Google.Resource.Partners.UserStates.List.UserStatesList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.Partners.UserStates.List.UserStatesList


-- | Lets advertisers search certified companies and create contact leads
--   with them, and also audits the usage of clients.
--   
--   <i>See:</i> <a>Google Partners API Reference</a>
module Network.Google.Partners

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

-- | Represents the entirety of the methods and resources available for the
--   Google Partners API service.
type PartnersAPI = UserStatesListResource :<|> (UserEventsLogResource :<|> (CompaniesLeadsCreateResource :<|> (CompaniesListResource :<|> (CompaniesGetResource :<|> ClientMessagesLogResource))))

-- | An object representing a latitude/longitude pair. This is expressed as
--   a pair of doubles representing degrees latitude and degrees longitude.
--   Unless specified otherwise, this must conform to the WGS84 standard.
--   Values must be within normalized ranges. Example of normalization code
--   in Python: def NormalizeLongitude(longitude): """Wrapsdecimal degrees
--   longitude to [-180.0, 180.0].""" q, r = divmod(longitude, 360.0) if r
--   &gt; 180.0 or (r == 180.0 and q &lt;= -1.0): return r - 360.0 return r
--   def NormalizeLatLng(latitude, longitude): """Wraps decimal degrees
--   latitude and longitude to [-180.0, 180.0] and [-90.0, 90.0],
--   respectively.""" r = latitude % 360.0 if r = 270.0: return r - 360,
--   NormalizeLongitude(longitude) else: return 180 - r,
--   NormalizeLongitude(longitude + 180.0) assert 180.0 ==
--   NormalizeLongitude(180.0) assert -180.0 == NormalizeLongitude(-180.0)
--   assert -179.0 == NormalizeLongitude(181.0) assert (0.0, 0.0) ==
--   NormalizeLatLng(360.0, 0.0) assert (0.0, 0.0) ==
--   NormalizeLatLng(-360.0, 0.0) assert (85.0, 180.0) ==
--   NormalizeLatLng(95.0, 0.0) assert (-85.0, -170.0) ==
--   NormalizeLatLng(-95.0, 10.0) assert (90.0, 10.0) ==
--   NormalizeLatLng(90.0, 10.0) assert (-90.0, -10.0) ==
--   NormalizeLatLng(-90.0, -10.0) assert (0.0, -170.0) ==
--   NormalizeLatLng(-180.0, 10.0) assert (0.0, -170.0) ==
--   NormalizeLatLng(180.0, 10.0) assert (-90.0, 10.0) ==
--   NormalizeLatLng(270.0, 10.0) assert (90.0, 10.0) ==
--   NormalizeLatLng(-270.0, 10.0)
--   
--   <i>See:</i> <a>latLng</a> smart constructor.
data LatLng

-- | Creates a value of <a>LatLng</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>llLatitude</a></li>
--   <li><a>llLongitude</a></li>
--   </ul>
latLng :: LatLng

-- | The latitude in degrees. It must be in the range [-90.0, +90.0].
llLatitude :: Lens' LatLng (Maybe Double)

-- | The longitude in degrees. It must be in the range [-180.0, +180.0].
llLongitude :: Lens' LatLng (Maybe Double)

-- | Response message for ListUserStates.
--   
--   <i>See:</i> <a>listUserStatesResponse</a> smart constructor.
data ListUserStatesResponse

-- | Creates a value of <a>ListUserStatesResponse</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>lusrUserStates</a></li>
--   <li><a>lusrResponseMetadata</a></li>
--   </ul>
listUserStatesResponse :: ListUserStatesResponse

-- | User's states.
lusrUserStates :: Lens' ListUserStatesResponse [Text]

-- | Current response metadata.
lusrResponseMetadata :: Lens' ListUserStatesResponse (Maybe ResponseMetadata)

-- | Key value data pair for an event.
--   
--   <i>See:</i> <a>eventData</a> smart constructor.
data EventData

-- | Creates a value of <a>EventData</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>edValues</a></li>
--   <li><a>edKey</a></li>
--   </ul>
eventData :: EventData

-- | Data values.
edValues :: Lens' EventData [Text]

-- | Data type.
edKey :: Lens' EventData (Maybe Text)

-- | Common data that is in each API request.
--   
--   <i>See:</i> <a>requestMetadata</a> smart constructor.
data RequestMetadata

-- | Creates a value of <a>RequestMetadata</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>rmExperimentIds</a></li>
--   <li><a>rmTrafficSource</a></li>
--   <li><a>rmLocale</a></li>
--   <li><a>rmUserOverrides</a></li>
--   <li><a>rmPartnersSessionId</a></li>
--   </ul>
requestMetadata :: RequestMetadata

-- | Experiment IDs the current request belongs to.
rmExperimentIds :: Lens' RequestMetadata [Text]

-- | Source of traffic for the current request.
rmTrafficSource :: Lens' RequestMetadata (Maybe TrafficSource)

-- | Locale to use for the current request.
rmLocale :: Lens' RequestMetadata (Maybe Text)

-- | Values to use instead of the user's respective defaults for the
--   current request. These are only honored by whitelisted products.
rmUserOverrides :: Lens' RequestMetadata (Maybe UserOverrides)

-- | Google Partners session ID.
rmPartnersSessionId :: Lens' RequestMetadata (Maybe Text)

-- | Google Partners certification status.
--   
--   <i>See:</i> <a>certificationStatus</a> smart constructor.
data CertificationStatus

-- | Creates a value of <a>CertificationStatus</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>csIsCertified</a></li>
--   <li><a>csType</a></li>
--   <li><a>csExamStatuses</a></li>
--   </ul>
certificationStatus :: CertificationStatus

-- | Whether certification is passing.
csIsCertified :: Lens' CertificationStatus (Maybe Bool)

-- | The type of the certification.
csType :: Lens' CertificationStatus (Maybe Text)

-- | List of certification exam statuses.
csExamStatuses :: Lens' CertificationStatus [CertificationExamStatus]

-- | Debug information about this request.
--   
--   <i>See:</i> <a>debugInfo</a> smart constructor.
data DebugInfo

-- | Creates a value of <a>DebugInfo</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>diServiceURL</a></li>
--   <li><a>diServerTraceInfo</a></li>
--   <li><a>diServerInfo</a></li>
--   </ul>
debugInfo :: DebugInfo

-- | URL of the service that handled this request.
diServiceURL :: Lens' DebugInfo (Maybe Text)

-- | Server-side debug stack trace.
diServerTraceInfo :: Lens' DebugInfo (Maybe Text)

-- | Info about the server that serviced this request.
diServerInfo :: Lens' DebugInfo (Maybe Text)

-- | Response message for GetCompany.
--   
--   <i>See:</i> <a>getCompanyResponse</a> smart constructor.
data GetCompanyResponse

-- | Creates a value of <a>GetCompanyResponse</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>gcrResponseMetadata</a></li>
--   <li><a>gcrCompany</a></li>
--   </ul>
getCompanyResponse :: GetCompanyResponse

-- | Current response metadata.
gcrResponseMetadata :: Lens' GetCompanyResponse (Maybe ResponseMetadata)

-- | The company.
gcrCompany :: Lens' GetCompanyResponse (Maybe Company)

-- | Basic information from a public profile.
--   
--   <i>See:</i> <a>publicProFile</a> smart constructor.
data PublicProFile

-- | Creates a value of <a>PublicProFile</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>ppfURL</a></li>
--   <li><a>ppfDisplayImageURL</a></li>
--   <li><a>ppfDisplayName</a></li>
--   <li><a>ppfId</a></li>
--   </ul>
publicProFile :: PublicProFile

-- | The URL of the public profile.
ppfURL :: Lens' PublicProFile (Maybe Text)

-- | The URL to the main display image of the public profile.
ppfDisplayImageURL :: Lens' PublicProFile (Maybe Text)

-- | The display name of the public profile.
ppfDisplayName :: Lens' PublicProFile (Maybe Text)

-- | The ID which can be used to retrieve more details about the public
--   profile.
ppfId :: Lens' PublicProFile (Maybe Text)

-- | Status for a Google Partners certification exam.
--   
--   <i>See:</i> <a>certificationExamStatus</a> smart constructor.
data CertificationExamStatus

-- | Creates a value of <a>CertificationExamStatus</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>cesNumberUsersPass</a></li>
--   <li><a>cesType</a></li>
--   </ul>
certificationExamStatus :: CertificationExamStatus

-- | The number of people who have passed the certification exam.
cesNumberUsersPass :: Lens' CertificationExamStatus (Maybe Int32)

-- | The type of certification exam.
cesType :: Lens' CertificationExamStatus (Maybe Text)

-- | A location with address and geographic coordinates.
--   
--   <i>See:</i> <a>location</a> smart constructor.
data Location

-- | Creates a value of <a>Location</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>lLatLng</a></li>
--   <li><a>lAddress</a></li>
--   </ul>
location :: Location

-- | The latitude and longitude of the location, in degrees.
lLatLng :: Lens' Location (Maybe LatLng)

-- | The complete address of the location.
lAddress :: Lens' Location (Maybe Text)

-- | Source of traffic for the current request.
--   
--   <i>See:</i> <a>trafficSource</a> smart constructor.
data TrafficSource

-- | Creates a value of <a>TrafficSource</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>tsTrafficSubId</a></li>
--   <li><a>tsTrafficSourceId</a></li>
--   </ul>
trafficSource :: TrafficSource

-- | Second level identifier to indicate where the traffic comes from. An
--   identifier has multiple letters created by a team which redirected the
--   traffic to us.
tsTrafficSubId :: Lens' TrafficSource (Maybe Text)

-- | Identifier to indicate where the traffic comes from. An identifier has
--   multiple letters created by a team which redirected the traffic to us.
tsTrafficSourceId :: Lens' TrafficSource (Maybe Text)

-- | Represents an amount of money with its currency type.
--   
--   <i>See:</i> <a>money</a> smart constructor.
data Money

-- | Creates a value of <a>Money</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>mCurrencyCode</a></li>
--   <li><a>mNanos</a></li>
--   <li><a>mUnits</a></li>
--   </ul>
money :: Money

-- | The 3-letter currency code defined in ISO 4217.
mCurrencyCode :: Lens' Money (Maybe Text)

-- | Number of nano (10^-9) units of the amount. The value must be between
--   -999,999,999 and +999,999,999 inclusive. If `units` is positive,
--   `nanos` must be positive or zero. If `units` is zero, `nanos` can be
--   positive, zero, or negative. If `units` is negative, `nanos` must be
--   negative or zero. For example $-1.75 is represented as `units`=-1 and
--   `nanos`=-750,000,000.
mNanos :: Lens' Money (Maybe Int32)

-- | The whole units of the amount. For example if `currencyCode` is
--   `"USD"`, then 1 unit is one US dollar.
mUnits :: Lens' Money (Maybe Int64)

-- | Response message for ListCompanies.
--   
--   <i>See:</i> <a>listCompaniesResponse</a> smart constructor.
data ListCompaniesResponse

-- | Creates a value of <a>ListCompaniesResponse</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>lcrResponseMetadata</a></li>
--   <li><a>lcrCompanies</a></li>
--   </ul>
listCompaniesResponse :: ListCompaniesResponse

-- | A token to retrieve next page of results. Pass this value in the
--   `ListCompaniesRequest.page_token` field in the subsequent call to
--   ListCompanies to retrieve the next page of results.
lcrNextPageToken :: Lens' ListCompaniesResponse (Maybe Text)

-- | Current response metadata.
lcrResponseMetadata :: Lens' ListCompaniesResponse (Maybe ResponseMetadata)

-- | The list of companies.
lcrCompanies :: Lens' ListCompaniesResponse [Company]

-- | reCaptcha challenge info.
--   
--   <i>See:</i> <a>recaptchaChallenge</a> smart constructor.
data RecaptchaChallenge

-- | Creates a value of <a>RecaptchaChallenge</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>rcResponse</a></li>
--   <li><a>rcId</a></li>
--   </ul>
recaptchaChallenge :: RecaptchaChallenge

-- | The response to the reCaptcha challenge.
rcResponse :: Lens' RecaptchaChallenge (Maybe Text)

-- | The ID of the reCaptcha challenge.
rcId :: Lens' RecaptchaChallenge (Maybe Text)

-- | Response message for CreateLead. Debug information about this request.
--   
--   <i>See:</i> <a>createLeadResponse</a> smart constructor.
data CreateLeadResponse

-- | Creates a value of <a>CreateLeadResponse</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>clrRecaptchaStatus</a></li>
--   <li><a>clrResponseMetadata</a></li>
--   <li><a>clrLead</a></li>
--   </ul>
createLeadResponse :: CreateLeadResponse

-- | The outcome of reCaptcha validation.
clrRecaptchaStatus :: Lens' CreateLeadResponse (Maybe Text)

-- | Current response metadata.
clrResponseMetadata :: Lens' CreateLeadResponse (Maybe ResponseMetadata)

-- | Lead that was created depending on the outcome of reCaptcha
--   validation.
clrLead :: Lens' CreateLeadResponse (Maybe Lead)

-- | Values to use instead of the user's respective defaults. These are
--   only honored by whitelisted products.
--   
--   <i>See:</i> <a>userOverrides</a> smart constructor.
data UserOverrides

-- | Creates a value of <a>UserOverrides</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>uoIPAddress</a></li>
--   <li><a>uoUserId</a></li>
--   </ul>
userOverrides :: UserOverrides

-- | IP address to use instead of the user's geo-located IP address.
uoIPAddress :: Lens' UserOverrides (Maybe Text)

-- | Logged-in user ID to impersonate instead of the user's ID.
uoUserId :: Lens' UserOverrides (Maybe Text)

-- | Common data that is in each API response.
--   
--   <i>See:</i> <a>responseMetadata</a> smart constructor.
data ResponseMetadata

-- | Creates a value of <a>ResponseMetadata</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>rmDebugInfo</a></li>
--   </ul>
responseMetadata :: ResponseMetadata

-- | Debug information about this request.
rmDebugInfo :: Lens' ResponseMetadata (Maybe DebugInfo)

-- | Request message for LogClientMessage.
--   
--   <i>See:</i> <a>logMessageRequest</a> smart constructor.
data LogMessageRequest

-- | Creates a value of <a>LogMessageRequest</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>lmrRequestMetadata</a></li>
--   <li><a>lmrClientInfo</a></li>
--   <li><a>lmrDetails</a></li>
--   <li><a>lmrLevel</a></li>
--   </ul>
logMessageRequest :: LogMessageRequest

-- | Current request metadata.
lmrRequestMetadata :: Lens' LogMessageRequest (Maybe RequestMetadata)

-- | Map of client info, such as URL, browser navigator, browser platform,
--   etc.
lmrClientInfo :: Lens' LogMessageRequest (Maybe LogMessageRequestClientInfo)

-- | Details about the client message.
lmrDetails :: Lens' LogMessageRequest (Maybe Text)

-- | Message level of client message.
lmrLevel :: Lens' LogMessageRequest (Maybe Text)

-- | The localized company information.
--   
--   <i>See:</i> <a>localizedCompanyInfo</a> smart constructor.
data LocalizedCompanyInfo

-- | Creates a value of <a>LocalizedCompanyInfo</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>lciLanguageCode</a></li>
--   <li><a>lciOverview</a></li>
--   <li><a>lciCountryCodes</a></li>
--   <li><a>lciDisplayName</a></li>
--   </ul>
localizedCompanyInfo :: LocalizedCompanyInfo

-- | Language code of the localized company info, as defined by BCP 47
--   (IETF BCP 47, "Tags for Identifying Languages").
lciLanguageCode :: Lens' LocalizedCompanyInfo (Maybe Text)

-- | Localized brief description that the company uses to advertise
--   themselves.
lciOverview :: Lens' LocalizedCompanyInfo (Maybe Text)

-- | List of country codes for the localized company info.
lciCountryCodes :: Lens' LocalizedCompanyInfo [Text]

-- | Localized display name.
lciDisplayName :: Lens' LocalizedCompanyInfo (Maybe Text)

-- | Map of client info, such as URL, browser navigator, browser platform,
--   etc.
--   
--   <i>See:</i> <a>logMessageRequestClientInfo</a> smart constructor.
data LogMessageRequestClientInfo

-- | Creates a value of <a>LogMessageRequestClientInfo</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>lmrciAddtional</a></li>
--   </ul>
logMessageRequestClientInfo :: HashMap Text Text -> LogMessageRequestClientInfo
lmrciAddtional :: Lens' LogMessageRequestClientInfo (HashMap Text Text)

-- | A lead resource that represents an advertiser contact for a `Company`.
--   These are usually generated via Google Partner Search (the advertiser
--   portal).
--   
--   <i>See:</i> <a>lead</a> smart constructor.
data Lead

-- | Creates a value of <a>Lead</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>lGivenName</a></li>
--   <li><a>lEmail</a></li>
--   <li><a>lFamilyName</a></li>
--   <li><a>lPhoneNumber</a></li>
--   <li><a>lMinMonthlyBudget</a></li>
--   <li><a>lId</a></li>
--   <li><a>lComments</a></li>
--   <li><a>lWebsiteURL</a></li>
--   <li><a>lType</a></li>
--   <li><a>lGpsMotivations</a></li>
--   </ul>
lead :: Lead

-- | First name of lead source.
lGivenName :: Lens' Lead (Maybe Text)

-- | Email address of lead source.
lEmail :: Lens' Lead (Maybe Text)

-- | Last name of lead source.
lFamilyName :: Lens' Lead (Maybe Text)

-- | Phone number of lead source.
lPhoneNumber :: Lens' Lead (Maybe Text)

-- | The minimum monthly budget lead source is willing to spend.
lMinMonthlyBudget :: Lens' Lead (Maybe Money)

-- | ID of the lead.
lId :: Lens' Lead (Maybe Text)

-- | Comments lead source gave.
lComments :: Lens' Lead (Maybe Text)

-- | Website URL of lead source.
lWebsiteURL :: Lens' Lead (Maybe Text)

-- | Type of lead.
lType :: Lens' Lead (Maybe Text)

-- | List of reasons for using Google Partner Search and creating a lead.
lGpsMotivations :: Lens' Lead [Text]

-- | Response message for LogClientMessage.
--   
--   <i>See:</i> <a>logMessageResponse</a> smart constructor.
data LogMessageResponse

-- | Creates a value of <a>LogMessageResponse</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>lmrResponseMetadata</a></li>
--   </ul>
logMessageResponse :: LogMessageResponse

-- | Current response metadata.
lmrResponseMetadata :: Lens' LogMessageResponse (Maybe ResponseMetadata)

-- | A company resource in the Google Partners API. Once certified, it
--   qualifies for being searched by advertisers.
--   
--   <i>See:</i> <a>company</a> smart constructor.
data Company

-- | Creates a value of <a>Company</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>cPublicProFile</a></li>
--   <li><a>cOriginalMinMonthlyBudget</a></li>
--   <li><a>cIndustries</a></li>
--   <li><a>cConvertedMinMonthlyBudget</a></li>
--   <li><a>cName</a></li>
--   <li><a>cLocalizedInfos</a></li>
--   <li><a>cCertificationStatuses</a></li>
--   <li><a>cRanks</a></li>
--   <li><a>cId</a></li>
--   <li><a>cWebsiteURL</a></li>
--   <li><a>cLocations</a></li>
--   <li><a>cServices</a></li>
--   </ul>
company :: Company

-- | Basic information from the company's public profile.
cPublicProFile :: Lens' Company (Maybe PublicProFile)

-- | The unconverted minimum monthly budget that the company accepts for
--   partner business.
cOriginalMinMonthlyBudget :: Lens' Company (Maybe Money)

-- | Industries the company can help with.
cIndustries :: Lens' Company [Text]

-- | The minimum monthly budget that the company accepts for partner
--   business, converted to the requested currency code.
cConvertedMinMonthlyBudget :: Lens' Company (Maybe Money)

-- | The name of the company.
cName :: Lens' Company (Maybe Text)

-- | The list of localized info for the company.
cLocalizedInfos :: Lens' Company [LocalizedCompanyInfo]

-- | The list of Google Partners certification statuses for the company.
cCertificationStatuses :: Lens' Company [CertificationStatus]

-- | Information related to the ranking of the company within the list of
--   companies.
cRanks :: Lens' Company [Rank]

-- | The ID of the company.
cId :: Lens' Company (Maybe Text)

-- | URL of the company's website.
cWebsiteURL :: Lens' Company (Maybe Text)

-- | The list of company locations.
cLocations :: Lens' Company [Location]

-- | Services the company can help with.
cServices :: Lens' Company [Text]

-- | Response message for LogUserEvent.
--   
--   <i>See:</i> <a>logUserEventResponse</a> smart constructor.
data LogUserEventResponse

-- | Creates a value of <a>LogUserEventResponse</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>luerResponseMetadata</a></li>
--   </ul>
logUserEventResponse :: LogUserEventResponse

-- | Current response metadata.
luerResponseMetadata :: Lens' LogUserEventResponse (Maybe ResponseMetadata)

-- | Request message for LogUserEvent.
--   
--   <i>See:</i> <a>logUserEventRequest</a> smart constructor.
data LogUserEventRequest

-- | Creates a value of <a>LogUserEventRequest</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>luerEventCategory</a></li>
--   <li><a>luerRequestMetadata</a></li>
--   <li><a>luerURL</a></li>
--   <li><a>luerEventScope</a></li>
--   <li><a>luerLead</a></li>
--   <li><a>luerEventDatas</a></li>
--   <li><a>luerEventAction</a></li>
--   </ul>
logUserEventRequest :: LogUserEventRequest

-- | The category the action belongs to.
luerEventCategory :: Lens' LogUserEventRequest (Maybe Text)

-- | Current request metadata.
luerRequestMetadata :: Lens' LogUserEventRequest (Maybe RequestMetadata)

-- | The URL where the event occurred.
luerURL :: Lens' LogUserEventRequest (Maybe Text)

-- | The scope of the event.
luerEventScope :: Lens' LogUserEventRequest (Maybe Text)

-- | Advertiser lead information.
luerLead :: Lens' LogUserEventRequest (Maybe Lead)

-- | List of event data for the event.
luerEventDatas :: Lens' LogUserEventRequest [EventData]

-- | The action that occurred.
luerEventAction :: Lens' LogUserEventRequest (Maybe Text)

-- | Information related to ranking of results.
--   
--   <i>See:</i> <a>rank</a> smart constructor.
data Rank

-- | Creates a value of <a>Rank</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>rValue</a></li>
--   <li><a>rType</a></li>
--   </ul>
rank :: Rank

-- | The numerical value of the rank.
rValue :: Lens' Rank (Maybe Double)

-- | The type of rank.
rType :: Lens' Rank (Maybe Text)

-- | Request message for CreateLead.
--   
--   <i>See:</i> <a>createLeadRequest</a> smart constructor.
data CreateLeadRequest

-- | Creates a value of <a>CreateLeadRequest</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>cRequestMetadata</a></li>
--   <li><a>cRecaptchaChallenge</a></li>
--   <li><a>cLead</a></li>
--   </ul>
createLeadRequest :: CreateLeadRequest

-- | Current request metadata.
cRequestMetadata :: Lens' CreateLeadRequest (Maybe RequestMetadata)

-- | reCaptcha challenge info.
cRecaptchaChallenge :: Lens' CreateLeadRequest (Maybe RecaptchaChallenge)

-- | The lead resource. The `LeadType` must not be `LEAD_TYPE_UNSPECIFIED`
--   and either `email` or `phone_number` must be provided.
cLead :: Lens' CreateLeadRequest (Maybe Lead)
