gogol-digitalassetlinks-0.4.0: gen/Network/Google/Resource/DigitalAssetLinks/Statements/List.hs
{-# 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