{-# 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.FirebaseRules.Projects.Releases.List
(
ProjectsReleasesListResource
, projectsReleasesList
, ProjectsReleasesList
, prlrXgafv
, prlrUploadProtocol
, prlrPp
, prlrAccessToken
, prlrUploadType
, prlrBearerToken
, prlrName
, prlrFilter
, prlrPageToken
, prlrPageSize
, prlrCallback
) where
import Network.Google.FirebaseRules.Types
import Network.Google.Prelude
type ProjectsReleasesListResource =
"v1" :>
Capture "name" Text :>
"releases" :>
QueryParam "$.xgafv" Xgafv :>
QueryParam "upload_protocol" Text :>
QueryParam "pp" Bool :>
QueryParam "access_token" Text :>
QueryParam "uploadType" Text :>
QueryParam "bearer_token" Text :>
QueryParam "filter" Text :>
QueryParam "pageToken" Text :>
QueryParam "pageSize" (Textual Int32) :>
QueryParam "callback" Text :>
QueryParam "alt" AltJSON :>
Get '[JSON] ListReleasesResponse
-- | List the \`Release\` values for a project. This list may optionally be
-- filtered by \`Release\` name or \`Ruleset\` id or both.
--
-- /See:/ 'projectsReleasesList' smart constructor.
data ProjectsReleasesList = ProjectsReleasesList'
{ _prlrXgafv :: !(Maybe Xgafv)
, _prlrUploadProtocol :: !(Maybe Text)
, _prlrPp :: !Bool
, _prlrAccessToken :: !(Maybe Text)
, _prlrUploadType :: !(Maybe Text)
, _prlrBearerToken :: !(Maybe Text)
, _prlrName :: !Text
, _prlrFilter :: !(Maybe Text)
, _prlrPageToken :: !(Maybe Text)
, _prlrPageSize :: !(Maybe (Textual Int32))
, _prlrCallback :: !(Maybe Text)
} deriving (Eq,Show,Data,Typeable,Generic)
-- | Creates a value of 'ProjectsReleasesList' with the minimum fields required to make a request.
--
-- Use one of the following lenses to modify other fields as desired:
--
-- * 'prlrXgafv'
--
-- * 'prlrUploadProtocol'
--
-- * 'prlrPp'
--
-- * 'prlrAccessToken'
--
-- * 'prlrUploadType'
--
-- * 'prlrBearerToken'
--
-- * 'prlrName'
--
-- * 'prlrFilter'
--
-- * 'prlrPageToken'
--
-- * 'prlrPageSize'
--
-- * 'prlrCallback'
projectsReleasesList
:: Text -- ^ 'prlrName'
-> ProjectsReleasesList
projectsReleasesList pPrlrName_ =
ProjectsReleasesList'
{ _prlrXgafv = Nothing
, _prlrUploadProtocol = Nothing
, _prlrPp = True
, _prlrAccessToken = Nothing
, _prlrUploadType = Nothing
, _prlrBearerToken = Nothing
, _prlrName = pPrlrName_
, _prlrFilter = Nothing
, _prlrPageToken = Nothing
, _prlrPageSize = Nothing
, _prlrCallback = Nothing
}
-- | V1 error format.
prlrXgafv :: Lens' ProjectsReleasesList (Maybe Xgafv)
prlrXgafv
= lens _prlrXgafv (\ s a -> s{_prlrXgafv = a})
-- | Upload protocol for media (e.g. \"raw\", \"multipart\").
prlrUploadProtocol :: Lens' ProjectsReleasesList (Maybe Text)
prlrUploadProtocol
= lens _prlrUploadProtocol
(\ s a -> s{_prlrUploadProtocol = a})
-- | Pretty-print response.
prlrPp :: Lens' ProjectsReleasesList Bool
prlrPp = lens _prlrPp (\ s a -> s{_prlrPp = a})
-- | OAuth access token.
prlrAccessToken :: Lens' ProjectsReleasesList (Maybe Text)
prlrAccessToken
= lens _prlrAccessToken
(\ s a -> s{_prlrAccessToken = a})
-- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
prlrUploadType :: Lens' ProjectsReleasesList (Maybe Text)
prlrUploadType
= lens _prlrUploadType
(\ s a -> s{_prlrUploadType = a})
-- | OAuth bearer token.
prlrBearerToken :: Lens' ProjectsReleasesList (Maybe Text)
prlrBearerToken
= lens _prlrBearerToken
(\ s a -> s{_prlrBearerToken = a})
-- | Resource name for the project. Format: \`projects\/{project_id}\`
prlrName :: Lens' ProjectsReleasesList Text
prlrName = lens _prlrName (\ s a -> s{_prlrName = a})
-- | \`Release\` filter. The list method supports filters with restrictions
-- on the \`Release\` \`name\` and also on the \`Ruleset\`
-- \`ruleset_name\`. Example 1) A filter of \'name=prod*\' might return
-- \`Release\`s with names within \'projects\/foo\' prefixed with \'prod\':
-- Name | Ruleset Name ------------------------------|-------------
-- projects\/foo\/releases\/prod | projects\/foo\/rulesets\/uuid1234
-- projects\/foo\/releases\/prod\/v1 | projects\/foo\/rulesets\/uuid1234
-- projects\/foo\/releases\/prod\/v2 | projects\/foo\/rulesets\/uuid8888
-- Example 2) A filter of \`name=prod* ruleset_name=uuid1234\` would return
-- only \`Release\` instances for \'projects\/foo\' with names prefixed
-- with \'prod\' referring to the same \`Ruleset\` name of \'uuid1234\':
-- Name | Ruleset Name ------------------------------|-------------
-- projects\/foo\/releases\/prod | projects\/foo\/rulesets\/1234
-- projects\/foo\/releases\/prod\/v1 | projects\/foo\/rulesets\/1234 In the
-- examples, the filter parameters refer to the search filters for release
-- and ruleset names are relative to the project releases and rulesets
-- collections. Fully qualified prefixed may also be used. e.g.
-- \`name=projects\/foo\/releases\/prod*
-- ruleset_name=projects\/foo\/rulesets\/uuid1\`
prlrFilter :: Lens' ProjectsReleasesList (Maybe Text)
prlrFilter
= lens _prlrFilter (\ s a -> s{_prlrFilter = a})
-- | Next page token for the next batch of \`Release\` instances.
prlrPageToken :: Lens' ProjectsReleasesList (Maybe Text)
prlrPageToken
= lens _prlrPageToken
(\ s a -> s{_prlrPageToken = a})
-- | Page size to load. Maximum of 100. Defaults to 10. Note: \`page_size\`
-- is just a hint and the service may choose to load less than
-- \`page_size\` due to the size of the output. To traverse all of the
-- releases, caller should iterate until the \`page_token\` is empty.
prlrPageSize :: Lens' ProjectsReleasesList (Maybe Int32)
prlrPageSize
= lens _prlrPageSize (\ s a -> s{_prlrPageSize = a})
. mapping _Coerce
-- | JSONP
prlrCallback :: Lens' ProjectsReleasesList (Maybe Text)
prlrCallback
= lens _prlrCallback (\ s a -> s{_prlrCallback = a})
instance GoogleRequest ProjectsReleasesList where
type Rs ProjectsReleasesList = ListReleasesResponse
type Scopes ProjectsReleasesList =
'["https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/firebase",
"https://www.googleapis.com/auth/firebase.readonly"]
requestClient ProjectsReleasesList'{..}
= go _prlrName _prlrXgafv _prlrUploadProtocol
(Just _prlrPp)
_prlrAccessToken
_prlrUploadType
_prlrBearerToken
_prlrFilter
_prlrPageToken
_prlrPageSize
_prlrCallback
(Just AltJSON)
firebaseRulesService
where go
= buildClient
(Proxy :: Proxy ProjectsReleasesListResource)
mempty