{-# LANGUAGE DeriveDataTypeable #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE NoImplicitPrelude #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RecordWildCards #-} {-# OPTIONS_GHC -fno-warn-unused-binds #-} {-# OPTIONS_GHC -fno-warn-unused-imports #-} -- | -- Module : Network.Google.FirebaseDynamicLinks.Types.Product -- Copyright : (c) 2015-2016 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- module Network.Google.FirebaseDynamicLinks.Types.Product where import Network.Google.FirebaseDynamicLinks.Types.Sum import Network.Google.Prelude -- | Short Dynamic Link suffix. -- -- /See:/ 'suffix' smart constructor. newtype Suffix = Suffix' { _sOption :: Maybe SuffixOption } deriving (Eq,Show,Data,Typeable,Generic) -- | Creates a value of 'Suffix' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'sOption' suffix :: Suffix suffix = Suffix' { _sOption = Nothing } -- | Suffix option. sOption :: Lens' Suffix (Maybe SuffixOption) sOption = lens _sOption (\ s a -> s{_sOption = a}) instance FromJSON Suffix where parseJSON = withObject "Suffix" (\ o -> Suffix' <$> (o .:? "option")) instance ToJSON Suffix where toJSON Suffix'{..} = object (catMaybes [("option" .=) <$> _sOption]) -- | Dynamic Links warning messages. -- -- /See:/ 'dynamicLinkWarning' smart constructor. data DynamicLinkWarning = DynamicLinkWarning' { _dlwWarningCode :: !(Maybe DynamicLinkWarningWarningCode) , _dlwWarningMessage :: !(Maybe Text) } deriving (Eq,Show,Data,Typeable,Generic) -- | Creates a value of 'DynamicLinkWarning' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'dlwWarningCode' -- -- * 'dlwWarningMessage' dynamicLinkWarning :: DynamicLinkWarning dynamicLinkWarning = DynamicLinkWarning' { _dlwWarningCode = Nothing , _dlwWarningMessage = Nothing } -- | The warning code. dlwWarningCode :: Lens' DynamicLinkWarning (Maybe DynamicLinkWarningWarningCode) dlwWarningCode = lens _dlwWarningCode (\ s a -> s{_dlwWarningCode = a}) -- | The warning message to help developers improve their requests. dlwWarningMessage :: Lens' DynamicLinkWarning (Maybe Text) dlwWarningMessage = lens _dlwWarningMessage (\ s a -> s{_dlwWarningMessage = a}) instance FromJSON DynamicLinkWarning where parseJSON = withObject "DynamicLinkWarning" (\ o -> DynamicLinkWarning' <$> (o .:? "warningCode") <*> (o .:? "warningMessage")) instance ToJSON DynamicLinkWarning where toJSON DynamicLinkWarning'{..} = object (catMaybes [("warningCode" .=) <$> _dlwWarningCode, ("warningMessage" .=) <$> _dlwWarningMessage]) -- | Request to create a short Dynamic Link. -- -- /See:/ 'createShortDynamicLinkRequest' smart constructor. data CreateShortDynamicLinkRequest = CreateShortDynamicLinkRequest' { _csdlrLongDynamicLink :: !(Maybe Text) , _csdlrSuffix :: !(Maybe Suffix) , _csdlrDynamicLinkInfo :: !(Maybe DynamicLinkInfo) } deriving (Eq,Show,Data,Typeable,Generic) -- | Creates a value of 'CreateShortDynamicLinkRequest' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'csdlrLongDynamicLink' -- -- * 'csdlrSuffix' -- -- * 'csdlrDynamicLinkInfo' createShortDynamicLinkRequest :: CreateShortDynamicLinkRequest createShortDynamicLinkRequest = CreateShortDynamicLinkRequest' { _csdlrLongDynamicLink = Nothing , _csdlrSuffix = Nothing , _csdlrDynamicLinkInfo = Nothing } -- | Full long Dynamic Link URL with desired query parameters specified. For -- example, -- \"https:\/\/sample.app.goo.gl\/?link=http:\/\/www.google.com&apn=com.sample\", -- [Learn -- more](https:\/\/firebase.google.com\/docs\/dynamic-links\/android#create-a-dynamic-link-programmatically). csdlrLongDynamicLink :: Lens' CreateShortDynamicLinkRequest (Maybe Text) csdlrLongDynamicLink = lens _csdlrLongDynamicLink (\ s a -> s{_csdlrLongDynamicLink = a}) -- | Short Dynamic Link suffix. Optional. csdlrSuffix :: Lens' CreateShortDynamicLinkRequest (Maybe Suffix) csdlrSuffix = lens _csdlrSuffix (\ s a -> s{_csdlrSuffix = a}) -- | Information about the Dynamic Link to be shortened. [Learn -- more](https:\/\/firebase.google.com\/docs\/dynamic-links\/android#create-a-dynamic-link-programmatically). csdlrDynamicLinkInfo :: Lens' CreateShortDynamicLinkRequest (Maybe DynamicLinkInfo) csdlrDynamicLinkInfo = lens _csdlrDynamicLinkInfo (\ s a -> s{_csdlrDynamicLinkInfo = a}) instance FromJSON CreateShortDynamicLinkRequest where parseJSON = withObject "CreateShortDynamicLinkRequest" (\ o -> CreateShortDynamicLinkRequest' <$> (o .:? "longDynamicLink") <*> (o .:? "suffix") <*> (o .:? "dynamicLinkInfo")) instance ToJSON CreateShortDynamicLinkRequest where toJSON CreateShortDynamicLinkRequest'{..} = object (catMaybes [("longDynamicLink" .=) <$> _csdlrLongDynamicLink, ("suffix" .=) <$> _csdlrSuffix, ("dynamicLinkInfo" .=) <$> _csdlrDynamicLinkInfo]) -- | Parameters for social meta tag params. Used to set meta tag data for -- link previews on social sites. -- -- /See:/ 'socialMetaTagInfo' smart constructor. data SocialMetaTagInfo = SocialMetaTagInfo' { _smtiSocialImageLink :: !(Maybe Text) , _smtiSocialDescription :: !(Maybe Text) , _smtiSocialTitle :: !(Maybe Text) } deriving (Eq,Show,Data,Typeable,Generic) -- | Creates a value of 'SocialMetaTagInfo' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'smtiSocialImageLink' -- -- * 'smtiSocialDescription' -- -- * 'smtiSocialTitle' socialMetaTagInfo :: SocialMetaTagInfo socialMetaTagInfo = SocialMetaTagInfo' { _smtiSocialImageLink = Nothing , _smtiSocialDescription = Nothing , _smtiSocialTitle = Nothing } -- | An image url string. Optional. smtiSocialImageLink :: Lens' SocialMetaTagInfo (Maybe Text) smtiSocialImageLink = lens _smtiSocialImageLink (\ s a -> s{_smtiSocialImageLink = a}) -- | A short description of the link. Optional. smtiSocialDescription :: Lens' SocialMetaTagInfo (Maybe Text) smtiSocialDescription = lens _smtiSocialDescription (\ s a -> s{_smtiSocialDescription = a}) -- | Title to be displayed. Optional. smtiSocialTitle :: Lens' SocialMetaTagInfo (Maybe Text) smtiSocialTitle = lens _smtiSocialTitle (\ s a -> s{_smtiSocialTitle = a}) instance FromJSON SocialMetaTagInfo where parseJSON = withObject "SocialMetaTagInfo" (\ o -> SocialMetaTagInfo' <$> (o .:? "socialImageLink") <*> (o .:? "socialDescription") <*> (o .:? "socialTitle")) instance ToJSON SocialMetaTagInfo where toJSON SocialMetaTagInfo'{..} = object (catMaybes [("socialImageLink" .=) <$> _smtiSocialImageLink, ("socialDescription" .=) <$> _smtiSocialDescription, ("socialTitle" .=) <$> _smtiSocialTitle]) -- | Response to create a short Dynamic Link. -- -- /See:/ 'createShortDynamicLinkResponse' smart constructor. data CreateShortDynamicLinkResponse = CreateShortDynamicLinkResponse' { _csdlrPreviewLink :: !(Maybe Text) , _csdlrWarning :: !(Maybe [DynamicLinkWarning]) , _csdlrShortLink :: !(Maybe Text) } deriving (Eq,Show,Data,Typeable,Generic) -- | Creates a value of 'CreateShortDynamicLinkResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'csdlrPreviewLink' -- -- * 'csdlrWarning' -- -- * 'csdlrShortLink' createShortDynamicLinkResponse :: CreateShortDynamicLinkResponse createShortDynamicLinkResponse = CreateShortDynamicLinkResponse' { _csdlrPreviewLink = Nothing , _csdlrWarning = Nothing , _csdlrShortLink = Nothing } -- | Preivew link to show the link flow chart. csdlrPreviewLink :: Lens' CreateShortDynamicLinkResponse (Maybe Text) csdlrPreviewLink = lens _csdlrPreviewLink (\ s a -> s{_csdlrPreviewLink = a}) -- | Information about potential warnings on link creation. csdlrWarning :: Lens' CreateShortDynamicLinkResponse [DynamicLinkWarning] csdlrWarning = lens _csdlrWarning (\ s a -> s{_csdlrWarning = a}) . _Default . _Coerce -- | Short Dynamic Link value. e.g. https:\/\/abcd.app.goo.gl\/wxyz csdlrShortLink :: Lens' CreateShortDynamicLinkResponse (Maybe Text) csdlrShortLink = lens _csdlrShortLink (\ s a -> s{_csdlrShortLink = a}) instance FromJSON CreateShortDynamicLinkResponse where parseJSON = withObject "CreateShortDynamicLinkResponse" (\ o -> CreateShortDynamicLinkResponse' <$> (o .:? "previewLink") <*> (o .:? "warning" .!= mempty) <*> (o .:? "shortLink")) instance ToJSON CreateShortDynamicLinkResponse where toJSON CreateShortDynamicLinkResponse'{..} = object (catMaybes [("previewLink" .=) <$> _csdlrPreviewLink, ("warning" .=) <$> _csdlrWarning, ("shortLink" .=) <$> _csdlrShortLink]) -- | iOS related attributes to the Dynamic Link.. -- -- /See:/ 'iosInfo' smart constructor. data IosInfo = IosInfo' { _iiIosBundleId :: !(Maybe Text) , _iiIosIPadBundleId :: !(Maybe Text) , _iiIosAppStoreId :: !(Maybe Text) , _iiIosIPadFallbackLink :: !(Maybe Text) , _iiIosCustomScheme :: !(Maybe Text) , _iiIosFallbackLink :: !(Maybe Text) } deriving (Eq,Show,Data,Typeable,Generic) -- | Creates a value of 'IosInfo' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'iiIosBundleId' -- -- * 'iiIosIPadBundleId' -- -- * 'iiIosAppStoreId' -- -- * 'iiIosIPadFallbackLink' -- -- * 'iiIosCustomScheme' -- -- * 'iiIosFallbackLink' iosInfo :: IosInfo iosInfo = IosInfo' { _iiIosBundleId = Nothing , _iiIosIPadBundleId = Nothing , _iiIosAppStoreId = Nothing , _iiIosIPadFallbackLink = Nothing , _iiIosCustomScheme = Nothing , _iiIosFallbackLink = Nothing } -- | iOS bundle ID of the app. iiIosBundleId :: Lens' IosInfo (Maybe Text) iiIosBundleId = lens _iiIosBundleId (\ s a -> s{_iiIosBundleId = a}) -- | iPad bundle ID of the app. iiIosIPadBundleId :: Lens' IosInfo (Maybe Text) iiIosIPadBundleId = lens _iiIosIPadBundleId (\ s a -> s{_iiIosIPadBundleId = a}) -- | iOS App Store ID. iiIosAppStoreId :: Lens' IosInfo (Maybe Text) iiIosAppStoreId = lens _iiIosAppStoreId (\ s a -> s{_iiIosAppStoreId = a}) -- | If specified, this overrides the ios_fallback_link value on iPads. iiIosIPadFallbackLink :: Lens' IosInfo (Maybe Text) iiIosIPadFallbackLink = lens _iiIosIPadFallbackLink (\ s a -> s{_iiIosIPadFallbackLink = a}) -- | Custom (destination) scheme to use for iOS. By default, we’ll use the -- bundle ID as the custom scheme. Developer can override this behavior -- using this param. iiIosCustomScheme :: Lens' IosInfo (Maybe Text) iiIosCustomScheme = lens _iiIosCustomScheme (\ s a -> s{_iiIosCustomScheme = a}) -- | Link to open on iOS if the app is not installed. iiIosFallbackLink :: Lens' IosInfo (Maybe Text) iiIosFallbackLink = lens _iiIosFallbackLink (\ s a -> s{_iiIosFallbackLink = a}) instance FromJSON IosInfo where parseJSON = withObject "IosInfo" (\ o -> IosInfo' <$> (o .:? "iosBundleId") <*> (o .:? "iosIpadBundleId") <*> (o .:? "iosAppStoreId") <*> (o .:? "iosIpadFallbackLink") <*> (o .:? "iosCustomScheme") <*> (o .:? "iosFallbackLink")) instance ToJSON IosInfo where toJSON IosInfo'{..} = object (catMaybes [("iosBundleId" .=) <$> _iiIosBundleId, ("iosIpadBundleId" .=) <$> _iiIosIPadBundleId, ("iosAppStoreId" .=) <$> _iiIosAppStoreId, ("iosIpadFallbackLink" .=) <$> _iiIosIPadFallbackLink, ("iosCustomScheme" .=) <$> _iiIosCustomScheme, ("iosFallbackLink" .=) <$> _iiIosFallbackLink]) -- | Information about a Dynamic Link. -- -- /See:/ 'dynamicLinkInfo' smart constructor. data DynamicLinkInfo = DynamicLinkInfo' { _dliSocialMetaTagInfo :: !(Maybe SocialMetaTagInfo) , _dliDynamicLinkDomain :: !(Maybe Text) , _dliLink :: !(Maybe Text) , _dliIosInfo :: !(Maybe IosInfo) , _dliAndroidInfo :: !(Maybe AndroidInfo) , _dliAnalyticsInfo :: !(Maybe AnalyticsInfo) } deriving (Eq,Show,Data,Typeable,Generic) -- | Creates a value of 'DynamicLinkInfo' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'dliSocialMetaTagInfo' -- -- * 'dliDynamicLinkDomain' -- -- * 'dliLink' -- -- * 'dliIosInfo' -- -- * 'dliAndroidInfo' -- -- * 'dliAnalyticsInfo' dynamicLinkInfo :: DynamicLinkInfo dynamicLinkInfo = DynamicLinkInfo' { _dliSocialMetaTagInfo = Nothing , _dliDynamicLinkDomain = Nothing , _dliLink = Nothing , _dliIosInfo = Nothing , _dliAndroidInfo = Nothing , _dliAnalyticsInfo = Nothing } -- | Parameters for social meta tag params. Used to set meta tag data for -- link previews on social sites. dliSocialMetaTagInfo :: Lens' DynamicLinkInfo (Maybe SocialMetaTagInfo) dliSocialMetaTagInfo = lens _dliSocialMetaTagInfo (\ s a -> s{_dliSocialMetaTagInfo = a}) -- | Dynamic Links domain that the project owns, e.g. abcd.app.goo.gl [Learn -- more](https:\/\/firebase.google.com\/docs\/dynamic-links\/android#set-up-firebase-and-the-dynamic-links-sdk) -- on how to set up Dynamic Link domain associated with your Firebase -- project. Required. dliDynamicLinkDomain :: Lens' DynamicLinkInfo (Maybe Text) dliDynamicLinkDomain = lens _dliDynamicLinkDomain (\ s a -> s{_dliDynamicLinkDomain = a}) -- | The link your app will open, You can specify any URL your app can -- handle. This link must be a well-formatted URL, be properly URL-encoded, -- and use the HTTP or HTTPS scheme. See \'link\' parameters in the -- [documentation](https:\/\/firebase.google.com\/docs\/dynamic-links\/android#create-a-dynamic-link-programmatically). -- Required. dliLink :: Lens' DynamicLinkInfo (Maybe Text) dliLink = lens _dliLink (\ s a -> s{_dliLink = a}) -- | iOS related information. See iOS related parameters in the -- [documentation](https:\/\/firebase.google.com\/docs\/dynamic-links\/ios#create-a-dynamic-link-programmatically). dliIosInfo :: Lens' DynamicLinkInfo (Maybe IosInfo) dliIosInfo = lens _dliIosInfo (\ s a -> s{_dliIosInfo = a}) -- | Android related information. See Android related parameters in the -- [documentation](https:\/\/firebase.google.com\/docs\/dynamic-links\/android#create-a-dynamic-link-programmatically). dliAndroidInfo :: Lens' DynamicLinkInfo (Maybe AndroidInfo) dliAndroidInfo = lens _dliAndroidInfo (\ s a -> s{_dliAndroidInfo = a}) -- | Parameters used for tracking. See all tracking parameters in the -- [documentation](https:\/\/firebase.google.com\/docs\/dynamic-links\/android#create-a-dynamic-link-programmatically). dliAnalyticsInfo :: Lens' DynamicLinkInfo (Maybe AnalyticsInfo) dliAnalyticsInfo = lens _dliAnalyticsInfo (\ s a -> s{_dliAnalyticsInfo = a}) instance FromJSON DynamicLinkInfo where parseJSON = withObject "DynamicLinkInfo" (\ o -> DynamicLinkInfo' <$> (o .:? "socialMetaTagInfo") <*> (o .:? "dynamicLinkDomain") <*> (o .:? "link") <*> (o .:? "iosInfo") <*> (o .:? "androidInfo") <*> (o .:? "analyticsInfo")) instance ToJSON DynamicLinkInfo where toJSON DynamicLinkInfo'{..} = object (catMaybes [("socialMetaTagInfo" .=) <$> _dliSocialMetaTagInfo, ("dynamicLinkDomain" .=) <$> _dliDynamicLinkDomain, ("link" .=) <$> _dliLink, ("iosInfo" .=) <$> _dliIosInfo, ("androidInfo" .=) <$> _dliAndroidInfo, ("analyticsInfo" .=) <$> _dliAnalyticsInfo]) -- | Android related attributes to the Dynamic Link. -- -- /See:/ 'androidInfo' smart constructor. data AndroidInfo = AndroidInfo' { _aiAndroidMinPackageVersionCode :: !(Maybe Text) , _aiAndroidFallbackLink :: !(Maybe Text) , _aiAndroidLink :: !(Maybe Text) , _aiAndroidPackageName :: !(Maybe Text) } deriving (Eq,Show,Data,Typeable,Generic) -- | Creates a value of 'AndroidInfo' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'aiAndroidMinPackageVersionCode' -- -- * 'aiAndroidFallbackLink' -- -- * 'aiAndroidLink' -- -- * 'aiAndroidPackageName' androidInfo :: AndroidInfo androidInfo = AndroidInfo' { _aiAndroidMinPackageVersionCode = Nothing , _aiAndroidFallbackLink = Nothing , _aiAndroidLink = Nothing , _aiAndroidPackageName = Nothing } -- | Minimum version code for the Android app. If the installed app’s version -- code is lower, then the user is taken to the Play Store. aiAndroidMinPackageVersionCode :: Lens' AndroidInfo (Maybe Text) aiAndroidMinPackageVersionCode = lens _aiAndroidMinPackageVersionCode (\ s a -> s{_aiAndroidMinPackageVersionCode = a}) -- | Link to open on Android if the app is not installed. aiAndroidFallbackLink :: Lens' AndroidInfo (Maybe Text) aiAndroidFallbackLink = lens _aiAndroidFallbackLink (\ s a -> s{_aiAndroidFallbackLink = a}) -- | If specified, this overrides the ‘link’ parameter on Android. aiAndroidLink :: Lens' AndroidInfo (Maybe Text) aiAndroidLink = lens _aiAndroidLink (\ s a -> s{_aiAndroidLink = a}) -- | Android package name of the app. aiAndroidPackageName :: Lens' AndroidInfo (Maybe Text) aiAndroidPackageName = lens _aiAndroidPackageName (\ s a -> s{_aiAndroidPackageName = a}) instance FromJSON AndroidInfo where parseJSON = withObject "AndroidInfo" (\ o -> AndroidInfo' <$> (o .:? "androidMinPackageVersionCode") <*> (o .:? "androidFallbackLink") <*> (o .:? "androidLink") <*> (o .:? "androidPackageName")) instance ToJSON AndroidInfo where toJSON AndroidInfo'{..} = object (catMaybes [("androidMinPackageVersionCode" .=) <$> _aiAndroidMinPackageVersionCode, ("androidFallbackLink" .=) <$> _aiAndroidFallbackLink, ("androidLink" .=) <$> _aiAndroidLink, ("androidPackageName" .=) <$> _aiAndroidPackageName]) -- | Tracking parameters supported by Dynamic Link. -- -- /See:/ 'analyticsInfo' smart constructor. data AnalyticsInfo = AnalyticsInfo' { _aiItunesConnectAnalytics :: !(Maybe ITunesConnectAnalytics) , _aiGooglePlayAnalytics :: !(Maybe GooglePlayAnalytics) } deriving (Eq,Show,Data,Typeable,Generic) -- | Creates a value of 'AnalyticsInfo' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'aiItunesConnectAnalytics' -- -- * 'aiGooglePlayAnalytics' analyticsInfo :: AnalyticsInfo analyticsInfo = AnalyticsInfo' { _aiItunesConnectAnalytics = Nothing , _aiGooglePlayAnalytics = Nothing } -- | iTunes Connect App Analytics. aiItunesConnectAnalytics :: Lens' AnalyticsInfo (Maybe ITunesConnectAnalytics) aiItunesConnectAnalytics = lens _aiItunesConnectAnalytics (\ s a -> s{_aiItunesConnectAnalytics = a}) -- | Google Play Campaign Measurements. aiGooglePlayAnalytics :: Lens' AnalyticsInfo (Maybe GooglePlayAnalytics) aiGooglePlayAnalytics = lens _aiGooglePlayAnalytics (\ s a -> s{_aiGooglePlayAnalytics = a}) instance FromJSON AnalyticsInfo where parseJSON = withObject "AnalyticsInfo" (\ o -> AnalyticsInfo' <$> (o .:? "itunesConnectAnalytics") <*> (o .:? "googlePlayAnalytics")) instance ToJSON AnalyticsInfo where toJSON AnalyticsInfo'{..} = object (catMaybes [("itunesConnectAnalytics" .=) <$> _aiItunesConnectAnalytics, ("googlePlayAnalytics" .=) <$> _aiGooglePlayAnalytics]) -- | Parameters for iTunes Connect App Analytics. -- -- /See:/ 'iTunesConnectAnalytics' smart constructor. data ITunesConnectAnalytics = ITunesConnectAnalytics' { _itcaAt :: !(Maybe Text) , _itcaMt :: !(Maybe Text) , _itcaPt :: !(Maybe Text) , _itcaCt :: !(Maybe Text) } deriving (Eq,Show,Data,Typeable,Generic) -- | Creates a value of 'ITunesConnectAnalytics' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'itcaAt' -- -- * 'itcaMt' -- -- * 'itcaPt' -- -- * 'itcaCt' iTunesConnectAnalytics :: ITunesConnectAnalytics iTunesConnectAnalytics = ITunesConnectAnalytics' { _itcaAt = Nothing , _itcaMt = Nothing , _itcaPt = Nothing , _itcaCt = Nothing } -- | Affiliate token used to create affiliate-coded links. itcaAt :: Lens' ITunesConnectAnalytics (Maybe Text) itcaAt = lens _itcaAt (\ s a -> s{_itcaAt = a}) -- | iTune media types, including music, podcasts, audiobooks and so on. itcaMt :: Lens' ITunesConnectAnalytics (Maybe Text) itcaMt = lens _itcaMt (\ s a -> s{_itcaMt = a}) -- | Provider token that enables analytics for Dynamic Links from within -- iTunes Connect. itcaPt :: Lens' ITunesConnectAnalytics (Maybe Text) itcaPt = lens _itcaPt (\ s a -> s{_itcaPt = a}) -- | Campaign text that developers can optionally add to any link in order to -- track sales from a specific marketing campaign. itcaCt :: Lens' ITunesConnectAnalytics (Maybe Text) itcaCt = lens _itcaCt (\ s a -> s{_itcaCt = a}) instance FromJSON ITunesConnectAnalytics where parseJSON = withObject "ITunesConnectAnalytics" (\ o -> ITunesConnectAnalytics' <$> (o .:? "at") <*> (o .:? "mt") <*> (o .:? "pt") <*> (o .:? "ct")) instance ToJSON ITunesConnectAnalytics where toJSON ITunesConnectAnalytics'{..} = object (catMaybes [("at" .=) <$> _itcaAt, ("mt" .=) <$> _itcaMt, ("pt" .=) <$> _itcaPt, ("ct" .=) <$> _itcaCt]) -- | Parameters for Google Play Campaign Measurements. [Learn -- more](https:\/\/developers.google.com\/analytics\/devguides\/collection\/android\/v4\/campaigns#campaign-params) -- -- /See:/ 'googlePlayAnalytics' smart constructor. data GooglePlayAnalytics = GooglePlayAnalytics' { _gpaUtmContent :: !(Maybe Text) , _gpaUtmMedium :: !(Maybe Text) , _gpaUtmTerm :: !(Maybe Text) , _gpaUtmCampaign :: !(Maybe Text) , _gpaGclid :: !(Maybe Text) , _gpaUtmSource :: !(Maybe Text) } deriving (Eq,Show,Data,Typeable,Generic) -- | Creates a value of 'GooglePlayAnalytics' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'gpaUtmContent' -- -- * 'gpaUtmMedium' -- -- * 'gpaUtmTerm' -- -- * 'gpaUtmCampaign' -- -- * 'gpaGclid' -- -- * 'gpaUtmSource' googlePlayAnalytics :: GooglePlayAnalytics googlePlayAnalytics = GooglePlayAnalytics' { _gpaUtmContent = Nothing , _gpaUtmMedium = Nothing , _gpaUtmTerm = Nothing , _gpaUtmCampaign = Nothing , _gpaGclid = Nothing , _gpaUtmSource = Nothing } -- | Campaign content; used for A\/B testing and content-targeted ads to -- differentiate ads or links that point to the same URL. gpaUtmContent :: Lens' GooglePlayAnalytics (Maybe Text) gpaUtmContent = lens _gpaUtmContent (\ s a -> s{_gpaUtmContent = a}) -- | Campaign medium; used to identify a medium such as email or -- cost-per-click. gpaUtmMedium :: Lens' GooglePlayAnalytics (Maybe Text) gpaUtmMedium = lens _gpaUtmMedium (\ s a -> s{_gpaUtmMedium = a}) -- | Campaign term; used with paid search to supply the keywords for ads. gpaUtmTerm :: Lens' GooglePlayAnalytics (Maybe Text) gpaUtmTerm = lens _gpaUtmTerm (\ s a -> s{_gpaUtmTerm = a}) -- | Campaign name; used for keyword analysis to identify a specific product -- promotion or strategic campaign. gpaUtmCampaign :: Lens' GooglePlayAnalytics (Maybe Text) gpaUtmCampaign = lens _gpaUtmCampaign (\ s a -> s{_gpaUtmCampaign = a}) -- | [AdWords autotagging -- parameter](https:\/\/support.google.com\/analytics\/answer\/1033981?hl=en); -- used to measure Google AdWords ads. This value is generated dynamically -- and should never be modified. gpaGclid :: Lens' GooglePlayAnalytics (Maybe Text) gpaGclid = lens _gpaGclid (\ s a -> s{_gpaGclid = a}) -- | Campaign source; used to identify a search engine, newsletter, or other -- source. gpaUtmSource :: Lens' GooglePlayAnalytics (Maybe Text) gpaUtmSource = lens _gpaUtmSource (\ s a -> s{_gpaUtmSource = a}) instance FromJSON GooglePlayAnalytics where parseJSON = withObject "GooglePlayAnalytics" (\ o -> GooglePlayAnalytics' <$> (o .:? "utmContent") <*> (o .:? "utmMedium") <*> (o .:? "utmTerm") <*> (o .:? "utmCampaign") <*> (o .:? "gclid") <*> (o .:? "utmSource")) instance ToJSON GooglePlayAnalytics where toJSON GooglePlayAnalytics'{..} = object (catMaybes [("utmContent" .=) <$> _gpaUtmContent, ("utmMedium" .=) <$> _gpaUtmMedium, ("utmTerm" .=) <$> _gpaUtmTerm, ("utmCampaign" .=) <$> _gpaUtmCampaign, ("gclid" .=) <$> _gpaGclid, ("utmSource" .=) <$> _gpaUtmSource])