{-# LANGUAGE DataKinds #-} {-# LANGUAGE DeriveDataTypeable #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE NoImplicitPrelude #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RecordWildCards #-} {-# LANGUAGE TypeFamilies #-} {-# LANGUAGE TypeOperators #-} {-# OPTIONS_GHC -fno-warn-duplicate-exports #-} {-# OPTIONS_GHC -fno-warn-unused-binds #-} {-# OPTIONS_GHC -fno-warn-unused-imports #-} -- | -- Module : Network.Google.Resource.DigitalAssetLinks.Statements.List -- Copyright : (c) 2015-2016 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay <brendan.g.hay@gmail.com> -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- -- Retrieves a list of all statements from a given source that match the -- specified target and statement string. The API guarantees that all -- statements with secure source assets, such as HTTPS websites or Android -- apps, have been made in a secure way by the owner of those assets, as -- described in the [Digital Asset Links technical design -- specification](https:\/\/github.com\/google\/digitalassetlinks\/blob\/master\/well-known\/details.md). -- Specifically, you should consider that for insecure websites (that is, -- where the URL starts with \`http:\/\/\` instead of \`https:\/\/\`), this -- guarantee cannot be made. The \`List\` command is most useful in cases -- where the API client wants to know all the ways in which two assets are -- related, or enumerate all the relationships from a particular source -- asset. Example: a feature that helps users navigate to related items. -- When a mobile app is running on a device, the feature would make it easy -- to navigate to the corresponding web site or Google+ profile. -- -- /See:/ <https://developers.google.com/digital-asset-links/ Digital Asset Links API Reference> for @digitalassetlinks.statements.list@. module Network.Google.Resource.DigitalAssetLinks.Statements.List ( -- * REST Resource StatementsListResource -- * Creating a Request , statementsList , StatementsList -- * Request Lenses , slXgafv , slSourceAndroidAppCertificateSha256Fingerprint , slSourceAndroidAppPackageName , slUploadProtocol , slAccessToken , slUploadType , slRelation , slSourceWebSite , slCallback ) where import Network.Google.DigitalAssetLinks.Types import Network.Google.Prelude -- | A resource alias for @digitalassetlinks.statements.list@ method which the -- 'StatementsList' request conforms to. type StatementsListResource = "v1" :> "statements:list" :> QueryParam "$.xgafv" Xgafv :> QueryParam "source.androidApp.certificate.sha256Fingerprint" Text :> QueryParam "source.androidApp.packageName" Text :> QueryParam "upload_protocol" Text :> QueryParam "access_token" Text :> QueryParam "uploadType" Text :> QueryParam "relation" Text :> QueryParam "source.web.site" Text :> QueryParam "callback" Text :> QueryParam "alt" AltJSON :> Get '[JSON] ListResponse -- | Retrieves a list of all statements from a given source that match the -- specified target and statement string. The API guarantees that all -- statements with secure source assets, such as HTTPS websites or Android -- apps, have been made in a secure way by the owner of those assets, as -- described in the [Digital Asset Links technical design -- specification](https:\/\/github.com\/google\/digitalassetlinks\/blob\/master\/well-known\/details.md). -- Specifically, you should consider that for insecure websites (that is, -- where the URL starts with \`http:\/\/\` instead of \`https:\/\/\`), this -- guarantee cannot be made. The \`List\` command is most useful in cases -- where the API client wants to know all the ways in which two assets are -- related, or enumerate all the relationships from a particular source -- asset. Example: a feature that helps users navigate to related items. -- When a mobile app is running on a device, the feature would make it easy -- to navigate to the corresponding web site or Google+ profile. -- -- /See:/ 'statementsList' smart constructor. data StatementsList = StatementsList' { _slXgafv :: !(Maybe Xgafv) , _slSourceAndroidAppCertificateSha256Fingerprint :: !(Maybe Text) , _slSourceAndroidAppPackageName :: !(Maybe Text) , _slUploadProtocol :: !(Maybe Text) , _slAccessToken :: !(Maybe Text) , _slUploadType :: !(Maybe Text) , _slRelation :: !(Maybe Text) , _slSourceWebSite :: !(Maybe Text) , _slCallback :: !(Maybe Text) } deriving (Eq,Show,Data,Typeable,Generic) -- | Creates a value of 'StatementsList' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'slXgafv' -- -- * 'slSourceAndroidAppCertificateSha256Fingerprint' -- -- * 'slSourceAndroidAppPackageName' -- -- * 'slUploadProtocol' -- -- * 'slAccessToken' -- -- * 'slUploadType' -- -- * 'slRelation' -- -- * 'slSourceWebSite' -- -- * 'slCallback' statementsList :: StatementsList statementsList = StatementsList' { _slXgafv = Nothing , _slSourceAndroidAppCertificateSha256Fingerprint = Nothing , _slSourceAndroidAppPackageName = Nothing , _slUploadProtocol = Nothing , _slAccessToken = Nothing , _slUploadType = Nothing , _slRelation = Nothing , _slSourceWebSite = Nothing , _slCallback = Nothing } -- | V1 error format. slXgafv :: Lens' StatementsList (Maybe Xgafv) slXgafv = lens _slXgafv (\ s a -> s{_slXgafv = a}) -- | The uppercase SHA-265 fingerprint of the certificate. From the PEM -- certificate, it can be acquired like this: $ keytool -printcert -file -- $CERTFILE | grep SHA256: SHA256: -- 14:6D:E9:83:C5:73:06:50:D8:EE:B9:95:2F:34:FC:64:16:A0:83: \\ -- 42:E6:1D:BE:A8:8A:04:96:B2:3F:CF:44:E5 or like this: $ openssl x509 -in -- $CERTFILE -noout -fingerprint -sha256 SHA256 -- Fingerprint=14:6D:E9:83:C5:73:06:50:D8:EE:B9:95:2F:34:FC:64: \\ -- 16:A0:83:42:E6:1D:BE:A8:8A:04:96:B2:3F:CF:44:E5 In this example, the -- contents of this field would be \`14:6D:E9:83:C5:73: -- 06:50:D8:EE:B9:95:2F:34:FC:64:16:A0:83:42:E6:1D:BE:A8:8A:04:96:B2:3F:CF: -- 44:E5\`. If these tools are not available to you, you can convert the -- PEM certificate into the DER format, compute the SHA-256 hash of that -- string and represent the result as a hexstring (that is, uppercase -- hexadecimal representations of each octet, separated by colons). slSourceAndroidAppCertificateSha256Fingerprint :: Lens' StatementsList (Maybe Text) slSourceAndroidAppCertificateSha256Fingerprint = lens _slSourceAndroidAppCertificateSha256Fingerprint (\ s a -> s{_slSourceAndroidAppCertificateSha256Fingerprint = a}) -- | Android App assets are naturally identified by their Java package name. -- For example, the Google Maps app uses the package name -- \`com.google.android.apps.maps\`. REQUIRED slSourceAndroidAppPackageName :: Lens' StatementsList (Maybe Text) slSourceAndroidAppPackageName = lens _slSourceAndroidAppPackageName (\ s a -> s{_slSourceAndroidAppPackageName = a}) -- | Upload protocol for media (e.g. \"raw\", \"multipart\"). slUploadProtocol :: Lens' StatementsList (Maybe Text) slUploadProtocol = lens _slUploadProtocol (\ s a -> s{_slUploadProtocol = a}) -- | OAuth access token. slAccessToken :: Lens' StatementsList (Maybe Text) slAccessToken = lens _slAccessToken (\ s a -> s{_slAccessToken = a}) -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\"). slUploadType :: Lens' StatementsList (Maybe Text) slUploadType = lens _slUploadType (\ s a -> s{_slUploadType = a}) -- | Use only associations that match the specified relation. See the -- [\`Statement\`](#Statement) message for a detailed definition of -- relation strings. For a query to match a statement, one of the following -- must be true: * both the query\'s and the statement\'s relation strings -- match exactly, or * the query\'s relation string is empty or missing. -- Example: A query with relation -- \`delegate_permission\/common.handle_all_urls\` matches an asset link -- with relation \`delegate_permission\/common.handle_all_urls\`. slRelation :: Lens' StatementsList (Maybe Text) slRelation = lens _slRelation (\ s a -> s{_slRelation = a}) -- | Web assets are identified by a URL that contains only the scheme, -- hostname and port parts. The format is http[s]:\/\/[:] Hostnames must be -- fully qualified: they must end in a single period (\"\`.\`\"). Only the -- schemes \"http\" and \"https\" are currently allowed. Port numbers are -- given as a decimal number, and they must be omitted if the standard port -- numbers are used: 80 for http and 443 for https. We call this limited -- URL the \"site\". All URLs that share the same scheme, hostname and port -- are considered to be a part of the site and thus belong to the web -- asset. Example: the asset with the site \`https:\/\/www.google.com\` -- contains all these URLs: * \`https:\/\/www.google.com\/\` * -- \`https:\/\/www.google.com:443\/\` * \`https:\/\/www.google.com\/foo\` * -- \`https:\/\/www.google.com\/foo?bar\` * -- \`https:\/\/www.google.com\/foo#bar\` * -- \`https:\/\/user\'password:www.google.com\/\` But it does not contain -- these URLs: * \`http:\/\/www.google.com\/\` (wrong scheme) * -- \`https:\/\/google.com\/\` (hostname does not match) * -- \`https:\/\/www.google.com:444\/\` (port does not match) REQUIRED slSourceWebSite :: Lens' StatementsList (Maybe Text) slSourceWebSite = lens _slSourceWebSite (\ s a -> s{_slSourceWebSite = a}) -- | JSONP slCallback :: Lens' StatementsList (Maybe Text) slCallback = lens _slCallback (\ s a -> s{_slCallback = a}) instance GoogleRequest StatementsList where type Rs StatementsList = ListResponse type Scopes StatementsList = '[] requestClient StatementsList'{..} = go _slXgafv _slSourceAndroidAppCertificateSha256Fingerprint _slSourceAndroidAppPackageName _slUploadProtocol _slAccessToken _slUploadType _slRelation _slSourceWebSite _slCallback (Just AltJSON) digitalAssetLinksService where go = buildClient (Proxy :: Proxy StatementsListResource) mempty