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


-- | Google Play Game Services Publishing SDK.
--   
--   The Publishing API for Google Play Game Services.
--   
--   <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>v1configuration</tt> of
--   the API.
@package gogol-games-configuration
@version 0.3.0


module Network.Google.GamesConfiguration.Types

-- | Default request referring to version <tt>v1configuration</tt> of the
--   Google Play Game Services Publishing API. This contains the host and
--   root path used as a starting point for constructing service requests.
gamesConfigurationService :: ServiceConfig

-- | View and manage your Google Play Developer account
androidPublisherScope :: Proxy '["https://www.googleapis.com/auth/androidpublisher"]

-- | This is a JSON template for an image configuration resource.
--   
--   <i>See:</i> <a>imageConfiguration</a> smart constructor.
data ImageConfiguration

-- | Creates a value of <a>ImageConfiguration</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>icResourceId</a></li>
--   <li><a>icKind</a></li>
--   <li><a>icURL</a></li>
--   <li><a>icImageType</a></li>
--   </ul>
imageConfiguration :: ImageConfiguration

-- | The resource ID of resource which the image belongs to.
icResourceId :: Lens' ImageConfiguration (Maybe Text)

-- | Uniquely identifies the type of this resource. Value is always the
--   fixed string gamesConfiguration#imageConfiguration.
icKind :: Lens' ImageConfiguration Text

-- | The url for this image.
icURL :: Lens' ImageConfiguration (Maybe Text)

-- | The image type for the image.
icImageType :: Lens' ImageConfiguration (Maybe Text)

-- | This is a JSON template for a ListConfigurations response.
--   
--   <i>See:</i> <a>leaderboardConfigurationListResponse</a> smart
--   constructor.
data LeaderboardConfigurationListResponse

-- | Creates a value of <a>LeaderboardConfigurationListResponse</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>lclrNextPageToken</a></li>
--   <li><a>lclrKind</a></li>
--   <li><a>lclrItems</a></li>
--   </ul>
leaderboardConfigurationListResponse :: LeaderboardConfigurationListResponse

-- | The pagination token for the next page of results.
lclrNextPageToken :: Lens' LeaderboardConfigurationListResponse (Maybe Text)

-- | Uniquely identifies the type of this resource. Value is always the
--   fixed string games#leaderboardConfigurationListResponse.
lclrKind :: Lens' LeaderboardConfigurationListResponse Text

-- | The leaderboard configurations.
lclrItems :: Lens' LeaderboardConfigurationListResponse [LeaderboardConfiguration]

-- | This is a JSON template for a number affix resource.
--   
--   <i>See:</i> <a>gamesNumberAffixConfiguration</a> smart constructor.
data GamesNumberAffixConfiguration

-- | Creates a value of <a>GamesNumberAffixConfiguration</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>gnacFew</a></li>
--   <li><a>gnacOther</a></li>
--   <li><a>gnacTwo</a></li>
--   <li><a>gnacOne</a></li>
--   <li><a>gnacZero</a></li>
--   <li><a>gnacMany</a></li>
--   </ul>
gamesNumberAffixConfiguration :: GamesNumberAffixConfiguration

-- | When the language requires special treatment of "small" numbers (as
--   with 2, 3, and 4 in Czech; or numbers ending 2, 3, or 4 but not 12,
--   13, or 14 in Polish).
gnacFew :: Lens' GamesNumberAffixConfiguration (Maybe LocalizedStringBundle)

-- | When the language does not require special treatment of the given
--   quantity (as with all numbers in Chinese, or 42 in English).
gnacOther :: Lens' GamesNumberAffixConfiguration (Maybe LocalizedStringBundle)

-- | When the language requires special treatment of numbers like two (as
--   with 2 in Welsh, or 102 in Slovenian).
gnacTwo :: Lens' GamesNumberAffixConfiguration (Maybe LocalizedStringBundle)

-- | When the language requires special treatment of numbers like one (as
--   with the number 1 in English and most other languages; in Russian, any
--   number ending in 1 but not ending in 11 is in this class).
gnacOne :: Lens' GamesNumberAffixConfiguration (Maybe LocalizedStringBundle)

-- | When the language requires special treatment of the number 0 (as in
--   Arabic).
gnacZero :: Lens' GamesNumberAffixConfiguration (Maybe LocalizedStringBundle)

-- | When the language requires special treatment of "large" numbers (as
--   with numbers ending 11-99 in Maltese).
gnacMany :: Lens' GamesNumberAffixConfiguration (Maybe LocalizedStringBundle)

-- | This is a JSON template for a ListConfigurations response.
--   
--   <i>See:</i> <a>achievementConfigurationListResponse</a> smart
--   constructor.
data AchievementConfigurationListResponse

-- | Creates a value of <a>AchievementConfigurationListResponse</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>aclrNextPageToken</a></li>
--   <li><a>aclrKind</a></li>
--   <li><a>aclrItems</a></li>
--   </ul>
achievementConfigurationListResponse :: AchievementConfigurationListResponse

-- | The pagination token for the next page of results.
aclrNextPageToken :: Lens' AchievementConfigurationListResponse (Maybe Text)

-- | Uniquely identifies the type of this resource. Value is always the
--   fixed string games#achievementConfigurationListResponse.
aclrKind :: Lens' AchievementConfigurationListResponse Text

-- | The achievement configurations.
aclrItems :: Lens' AchievementConfigurationListResponse [AchievementConfiguration]

-- | This is a JSON template for an leaderboard configuration resource.
--   
--   <i>See:</i> <a>leaderboardConfiguration</a> smart constructor.
data LeaderboardConfiguration

-- | Creates a value of <a>LeaderboardConfiguration</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>lcScoreMax</a></li>
--   <li><a>lcKind</a></li>
--   <li><a>lcPublished</a></li>
--   <li><a>lcToken</a></li>
--   <li><a>lcScoreMin</a></li>
--   <li><a>lcDraft</a></li>
--   <li><a>lcId</a></li>
--   <li><a>lcScoreOrder</a></li>
--   </ul>
leaderboardConfiguration :: LeaderboardConfiguration

-- | Maximum score that can be posted to this leaderboard.
lcScoreMax :: Lens' LeaderboardConfiguration (Maybe Int64)

-- | Uniquely identifies the type of this resource. Value is always the
--   fixed string gamesConfiguration#leaderboardConfiguration.
lcKind :: Lens' LeaderboardConfiguration Text

-- | The read-only published data of the leaderboard.
lcPublished :: Lens' LeaderboardConfiguration (Maybe LeaderboardConfigurationDetail)

-- | The token for this resource.
lcToken :: Lens' LeaderboardConfiguration (Maybe Text)

-- | Minimum score that can be posted to this leaderboard.
lcScoreMin :: Lens' LeaderboardConfiguration (Maybe Int64)

-- | The draft data of the leaderboard.
lcDraft :: Lens' LeaderboardConfiguration (Maybe LeaderboardConfigurationDetail)

-- | The ID of the leaderboard.
lcId :: Lens' LeaderboardConfiguration (Maybe Text)

-- | The type of the leaderboard. Possible values are: - "LARGER_IS_BETTER"
--   - Larger scores posted are ranked higher. - "SMALLER_IS_BETTER" -
--   Smaller scores posted are ranked higher.
lcScoreOrder :: Lens' LeaderboardConfiguration (Maybe Text)

-- | This is a JSON template for an achievement configuration resource.
--   
--   <i>See:</i> <a>achievementConfiguration</a> smart constructor.
data AchievementConfiguration

-- | Creates a value of <a>AchievementConfiguration</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>acAchievementType</a></li>
--   <li><a>acStepsToUnlock</a></li>
--   <li><a>acKind</a></li>
--   <li><a>acPublished</a></li>
--   <li><a>acToken</a></li>
--   <li><a>acInitialState</a></li>
--   <li><a>acDraft</a></li>
--   <li><a>acId</a></li>
--   </ul>
achievementConfiguration :: AchievementConfiguration

-- | The type of the achievement. Possible values are: - "STANDARD" -
--   Achievement is either locked or unlocked. - "INCREMENTAL" -
--   Achievement is incremental.
acAchievementType :: Lens' AchievementConfiguration (Maybe Text)

-- | Steps to unlock. Only applicable to incremental achievements.
acStepsToUnlock :: Lens' AchievementConfiguration (Maybe Int32)

-- | Uniquely identifies the type of this resource. Value is always the
--   fixed string gamesConfiguration#achievementConfiguration.
acKind :: Lens' AchievementConfiguration Text

-- | The read-only published data of the achievement.
acPublished :: Lens' AchievementConfiguration (Maybe AchievementConfigurationDetail)

-- | The token for this resource.
acToken :: Lens' AchievementConfiguration (Maybe Text)

-- | The initial state of the achievement. Possible values are: - "HIDDEN"
--   - Achievement is hidden. - "REVEALED" - Achievement is revealed. -
--   "UNLOCKED" - Achievement is unlocked.
acInitialState :: Lens' AchievementConfiguration (Maybe Text)

-- | The draft data of the achievement.
acDraft :: Lens' AchievementConfiguration (Maybe AchievementConfigurationDetail)

-- | The ID of the achievement.
acId :: Lens' AchievementConfiguration (Maybe Text)

-- | This is a JSON template for a localized string resource.
--   
--   <i>See:</i> <a>localizedString</a> smart constructor.
data LocalizedString

-- | Creates a value of <a>LocalizedString</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>lsKind</a></li>
--   <li><a>lsLocale</a></li>
--   <li><a>lsValue</a></li>
--   </ul>
localizedString :: LocalizedString

-- | Uniquely identifies the type of this resource. Value is always the
--   fixed string gamesConfiguration#localizedString.
lsKind :: Lens' LocalizedString Text

-- | The locale string.
lsLocale :: Lens' LocalizedString (Maybe Text)

-- | The string value.
lsValue :: Lens' LocalizedString (Maybe Text)

-- | This is a JSON template for a number format resource.
--   
--   <i>See:</i> <a>gamesNumberFormatConfiguration</a> smart constructor.
data GamesNumberFormatConfiguration

-- | Creates a value of <a>GamesNumberFormatConfiguration</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>gnfcSuffix</a></li>
--   <li><a>gnfcCurrencyCode</a></li>
--   <li><a>gnfcNumberFormatType</a></li>
--   <li><a>gnfcNumDecimalPlaces</a></li>
--   </ul>
gamesNumberFormatConfiguration :: GamesNumberFormatConfiguration

-- | An optional suffix for the NUMERIC format type. These strings follow
--   the same plural rules as all Android string resources.
gnfcSuffix :: Lens' GamesNumberFormatConfiguration (Maybe GamesNumberAffixConfiguration)

-- | The curreny code string. Only used for CURRENCY format type.
gnfcCurrencyCode :: Lens' GamesNumberFormatConfiguration (Maybe Text)

-- | The formatting for the number. Possible values are: - "NUMERIC" -
--   Numbers are formatted to have no digits or a fixed number of digits
--   after the decimal point according to locale. An optional custom unit
--   can be added. - "TIME_DURATION" - Numbers are formatted to hours,
--   minutes and seconds. - "CURRENCY" - Numbers are formatted to currency
--   according to locale.
gnfcNumberFormatType :: Lens' GamesNumberFormatConfiguration (Maybe Text)

-- | The number of decimal places for number. Only used for NUMERIC format
--   type.
gnfcNumDecimalPlaces :: Lens' GamesNumberFormatConfiguration (Maybe Int32)

-- | Selects which image in a resource for this method.
data ImageConfigurationsUploadImageType

-- | <tt>ACHIEVEMENT_ICON</tt> The icon image for an achievement resource.
AchievementIcon :: ImageConfigurationsUploadImageType

-- | <tt>LEADERBOARD_ICON</tt> The icon image for a leaderboard resource.
LeaderboardIcon :: ImageConfigurationsUploadImageType

-- | This is a JSON template for a leaderboard configuration detail.
--   
--   <i>See:</i> <a>leaderboardConfigurationDetail</a> smart constructor.
data LeaderboardConfigurationDetail

-- | Creates a value of <a>LeaderboardConfigurationDetail</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>lcdKind</a></li>
--   <li><a>lcdScoreFormat</a></li>
--   <li><a>lcdSortRank</a></li>
--   <li><a>lcdName</a></li>
--   <li><a>lcdIconURL</a></li>
--   </ul>
leaderboardConfigurationDetail :: LeaderboardConfigurationDetail

-- | Uniquely identifies the type of this resource. Value is always the
--   fixed string gamesConfiguration#leaderboardConfigurationDetail.
lcdKind :: Lens' LeaderboardConfigurationDetail Text

-- | The score formatting for the leaderboard.
lcdScoreFormat :: Lens' LeaderboardConfigurationDetail (Maybe GamesNumberFormatConfiguration)

-- | The sort rank of this leaderboard. Writes to this field are ignored.
lcdSortRank :: Lens' LeaderboardConfigurationDetail (Maybe Int32)

-- | Localized strings for the leaderboard name.
lcdName :: Lens' LeaderboardConfigurationDetail (Maybe LocalizedStringBundle)

-- | The icon url of this leaderboard. Writes to this field are ignored.
lcdIconURL :: Lens' LeaderboardConfigurationDetail (Maybe Text)

-- | This is a JSON template for an achievement configuration detail.
--   
--   <i>See:</i> <a>achievementConfigurationDetail</a> smart constructor.
data AchievementConfigurationDetail

-- | Creates a value of <a>AchievementConfigurationDetail</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>acdKind</a></li>
--   <li><a>acdSortRank</a></li>
--   <li><a>acdName</a></li>
--   <li><a>acdPointValue</a></li>
--   <li><a>acdIconURL</a></li>
--   <li><a>acdDescription</a></li>
--   </ul>
achievementConfigurationDetail :: AchievementConfigurationDetail

-- | Uniquely identifies the type of this resource. Value is always the
--   fixed string gamesConfiguration#achievementConfigurationDetail.
acdKind :: Lens' AchievementConfigurationDetail Text

-- | The sort rank of this achievement. Writes to this field are ignored.
acdSortRank :: Lens' AchievementConfigurationDetail (Maybe Int32)

-- | Localized strings for the achievement name.
acdName :: Lens' AchievementConfigurationDetail (Maybe LocalizedStringBundle)

-- | Point value for the achievement.
acdPointValue :: Lens' AchievementConfigurationDetail (Maybe Int32)

-- | The icon url of this achievement. Writes to this field are ignored.
acdIconURL :: Lens' AchievementConfigurationDetail (Maybe Text)

-- | Localized strings for the achievement description.
acdDescription :: Lens' AchievementConfigurationDetail (Maybe LocalizedStringBundle)

-- | This is a JSON template for a localized string bundle resource.
--   
--   <i>See:</i> <a>localizedStringBundle</a> smart constructor.
data LocalizedStringBundle

-- | Creates a value of <a>LocalizedStringBundle</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>lsbKind</a></li>
--   <li><a>lsbTranslations</a></li>
--   </ul>
localizedStringBundle :: LocalizedStringBundle

-- | Uniquely identifies the type of this resource. Value is always the
--   fixed string gamesConfiguration#localizedStringBundle.
lsbKind :: Lens' LocalizedStringBundle Text

-- | The locale strings.
lsbTranslations :: Lens' LocalizedStringBundle [LocalizedString]


-- | Delete the achievement configuration with the given ID.
--   
--   <i>See:</i> <a>Google Play Game Services Publishing API Reference</a>
--   for <tt>gamesConfiguration.achievementConfigurations.delete</tt>.
module Network.Google.Resource.GamesConfiguration.AchievementConfigurations.Delete

-- | A resource alias for
--   <tt>gamesConfiguration.achievementConfigurations.delete</tt> method
--   which the <a>AchievementConfigurationsDelete</a> request conforms to.
type AchievementConfigurationsDeleteResource = "games" :> ("v1configuration" :> ("achievements" :> (Capture "achievementId" Text :> (QueryParam "alt" AltJSON :> Delete '[JSON] ()))))

-- | Creates a value of <a>AchievementConfigurationsDelete</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>acdAchievementId</a></li>
--   </ul>
achievementConfigurationsDelete :: Text -> AchievementConfigurationsDelete

-- | Delete the achievement configuration with the given ID.
--   
--   <i>See:</i> <a>achievementConfigurationsDelete</a> smart constructor.
data AchievementConfigurationsDelete

-- | The ID of the achievement used by this method.
acdAchievementId :: Lens' AchievementConfigurationsDelete Text
instance GHC.Generics.Generic Network.Google.Resource.GamesConfiguration.AchievementConfigurations.Delete.AchievementConfigurationsDelete
instance Data.Data.Data Network.Google.Resource.GamesConfiguration.AchievementConfigurations.Delete.AchievementConfigurationsDelete
instance GHC.Show.Show Network.Google.Resource.GamesConfiguration.AchievementConfigurations.Delete.AchievementConfigurationsDelete
instance GHC.Classes.Eq Network.Google.Resource.GamesConfiguration.AchievementConfigurations.Delete.AchievementConfigurationsDelete
instance Network.Google.Types.GoogleRequest Network.Google.Resource.GamesConfiguration.AchievementConfigurations.Delete.AchievementConfigurationsDelete


-- | Retrieves the metadata of the achievement configuration with the given
--   ID.
--   
--   <i>See:</i> <a>Google Play Game Services Publishing API Reference</a>
--   for <tt>gamesConfiguration.achievementConfigurations.get</tt>.
module Network.Google.Resource.GamesConfiguration.AchievementConfigurations.Get

-- | A resource alias for
--   <tt>gamesConfiguration.achievementConfigurations.get</tt> method which
--   the <a>AchievementConfigurationsGet</a> request conforms to.
type AchievementConfigurationsGetResource = "games" :> ("v1configuration" :> ("achievements" :> (Capture "achievementId" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] AchievementConfiguration))))

-- | Creates a value of <a>AchievementConfigurationsGet</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>acgAchievementId</a></li>
--   </ul>
achievementConfigurationsGet :: Text -> AchievementConfigurationsGet

-- | Retrieves the metadata of the achievement configuration with the given
--   ID.
--   
--   <i>See:</i> <a>achievementConfigurationsGet</a> smart constructor.
data AchievementConfigurationsGet

-- | The ID of the achievement used by this method.
acgAchievementId :: Lens' AchievementConfigurationsGet Text
instance GHC.Generics.Generic Network.Google.Resource.GamesConfiguration.AchievementConfigurations.Get.AchievementConfigurationsGet
instance Data.Data.Data Network.Google.Resource.GamesConfiguration.AchievementConfigurations.Get.AchievementConfigurationsGet
instance GHC.Show.Show Network.Google.Resource.GamesConfiguration.AchievementConfigurations.Get.AchievementConfigurationsGet
instance GHC.Classes.Eq Network.Google.Resource.GamesConfiguration.AchievementConfigurations.Get.AchievementConfigurationsGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.GamesConfiguration.AchievementConfigurations.Get.AchievementConfigurationsGet


-- | Insert a new achievement configuration in this application.
--   
--   <i>See:</i> <a>Google Play Game Services Publishing API Reference</a>
--   for <tt>gamesConfiguration.achievementConfigurations.insert</tt>.
module Network.Google.Resource.GamesConfiguration.AchievementConfigurations.Insert

-- | A resource alias for
--   <tt>gamesConfiguration.achievementConfigurations.insert</tt> method
--   which the <a>AchievementConfigurationsInsert</a> request conforms to.
type AchievementConfigurationsInsertResource = "games" :> ("v1configuration" :> ("applications" :> (Capture "applicationId" Text :> ("achievements" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] AchievementConfiguration :> Post '[JSON] AchievementConfiguration))))))

-- | Creates a value of <a>AchievementConfigurationsInsert</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>aciPayload</a></li>
--   <li><a>aciApplicationId</a></li>
--   </ul>
achievementConfigurationsInsert :: AchievementConfiguration -> Text -> AchievementConfigurationsInsert

-- | Insert a new achievement configuration in this application.
--   
--   <i>See:</i> <a>achievementConfigurationsInsert</a> smart constructor.
data AchievementConfigurationsInsert

-- | Multipart request metadata.
aciPayload :: Lens' AchievementConfigurationsInsert AchievementConfiguration

-- | The application ID from the Google Play developer console.
aciApplicationId :: Lens' AchievementConfigurationsInsert Text
instance GHC.Generics.Generic Network.Google.Resource.GamesConfiguration.AchievementConfigurations.Insert.AchievementConfigurationsInsert
instance Data.Data.Data Network.Google.Resource.GamesConfiguration.AchievementConfigurations.Insert.AchievementConfigurationsInsert
instance GHC.Show.Show Network.Google.Resource.GamesConfiguration.AchievementConfigurations.Insert.AchievementConfigurationsInsert
instance GHC.Classes.Eq Network.Google.Resource.GamesConfiguration.AchievementConfigurations.Insert.AchievementConfigurationsInsert
instance Network.Google.Types.GoogleRequest Network.Google.Resource.GamesConfiguration.AchievementConfigurations.Insert.AchievementConfigurationsInsert


-- | Returns a list of the achievement configurations in this application.
--   
--   <i>See:</i> <a>Google Play Game Services Publishing API Reference</a>
--   for <tt>gamesConfiguration.achievementConfigurations.list</tt>.
module Network.Google.Resource.GamesConfiguration.AchievementConfigurations.List

-- | A resource alias for
--   <tt>gamesConfiguration.achievementConfigurations.list</tt> method
--   which the <a>AchievementConfigurationsList</a> request conforms to.
type AchievementConfigurationsListResource = "games" :> ("v1configuration" :> ("applications" :> (Capture "applicationId" Text :> ("achievements" :> (QueryParam "pageToken" Text :> (QueryParam "maxResults" (Textual Int32) :> (QueryParam "alt" AltJSON :> Get '[JSON] AchievementConfigurationListResponse)))))))

-- | Creates a value of <a>AchievementConfigurationsList</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>aclApplicationId</a></li>
--   <li><a>aclPageToken</a></li>
--   <li><a>aclMaxResults</a></li>
--   </ul>
achievementConfigurationsList :: Text -> AchievementConfigurationsList

-- | Returns a list of the achievement configurations in this application.
--   
--   <i>See:</i> <a>achievementConfigurationsList</a> smart constructor.
data AchievementConfigurationsList

-- | The application ID from the Google Play developer console.
aclApplicationId :: Lens' AchievementConfigurationsList Text

-- | The token returned by the previous request.
aclPageToken :: Lens' AchievementConfigurationsList (Maybe Text)

-- | The maximum number of resource configurations to return in the
--   response, used for paging. For any response, the actual number of
--   resources returned may be less than the specified maxResults.
aclMaxResults :: Lens' AchievementConfigurationsList (Maybe Int32)
instance GHC.Generics.Generic Network.Google.Resource.GamesConfiguration.AchievementConfigurations.List.AchievementConfigurationsList
instance Data.Data.Data Network.Google.Resource.GamesConfiguration.AchievementConfigurations.List.AchievementConfigurationsList
instance GHC.Show.Show Network.Google.Resource.GamesConfiguration.AchievementConfigurations.List.AchievementConfigurationsList
instance GHC.Classes.Eq Network.Google.Resource.GamesConfiguration.AchievementConfigurations.List.AchievementConfigurationsList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.GamesConfiguration.AchievementConfigurations.List.AchievementConfigurationsList


-- | Update the metadata of the achievement configuration with the given
--   ID. This method supports patch semantics.
--   
--   <i>See:</i> <a>Google Play Game Services Publishing API Reference</a>
--   for <tt>gamesConfiguration.achievementConfigurations.patch</tt>.
module Network.Google.Resource.GamesConfiguration.AchievementConfigurations.Patch

-- | A resource alias for
--   <tt>gamesConfiguration.achievementConfigurations.patch</tt> method
--   which the <a>AchievementConfigurationsPatch</a> request conforms to.
type AchievementConfigurationsPatchResource = "games" :> ("v1configuration" :> ("achievements" :> (Capture "achievementId" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] AchievementConfiguration :> Patch '[JSON] AchievementConfiguration)))))

-- | Creates a value of <a>AchievementConfigurationsPatch</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>acpAchievementId</a></li>
--   <li><a>acpPayload</a></li>
--   </ul>
achievementConfigurationsPatch :: Text -> AchievementConfiguration -> AchievementConfigurationsPatch

-- | Update the metadata of the achievement configuration with the given
--   ID. This method supports patch semantics.
--   
--   <i>See:</i> <a>achievementConfigurationsPatch</a> smart constructor.
data AchievementConfigurationsPatch

-- | The ID of the achievement used by this method.
acpAchievementId :: Lens' AchievementConfigurationsPatch Text

-- | Multipart request metadata.
acpPayload :: Lens' AchievementConfigurationsPatch AchievementConfiguration
instance GHC.Generics.Generic Network.Google.Resource.GamesConfiguration.AchievementConfigurations.Patch.AchievementConfigurationsPatch
instance Data.Data.Data Network.Google.Resource.GamesConfiguration.AchievementConfigurations.Patch.AchievementConfigurationsPatch
instance GHC.Show.Show Network.Google.Resource.GamesConfiguration.AchievementConfigurations.Patch.AchievementConfigurationsPatch
instance GHC.Classes.Eq Network.Google.Resource.GamesConfiguration.AchievementConfigurations.Patch.AchievementConfigurationsPatch
instance Network.Google.Types.GoogleRequest Network.Google.Resource.GamesConfiguration.AchievementConfigurations.Patch.AchievementConfigurationsPatch


-- | Update the metadata of the achievement configuration with the given
--   ID.
--   
--   <i>See:</i> <a>Google Play Game Services Publishing API Reference</a>
--   for <tt>gamesConfiguration.achievementConfigurations.update</tt>.
module Network.Google.Resource.GamesConfiguration.AchievementConfigurations.Update

-- | A resource alias for
--   <tt>gamesConfiguration.achievementConfigurations.update</tt> method
--   which the <a>AchievementConfigurationsUpdate</a> request conforms to.
type AchievementConfigurationsUpdateResource = "games" :> ("v1configuration" :> ("achievements" :> (Capture "achievementId" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] AchievementConfiguration :> Put '[JSON] AchievementConfiguration)))))

-- | Creates a value of <a>AchievementConfigurationsUpdate</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>acuAchievementId</a></li>
--   <li><a>acuPayload</a></li>
--   </ul>
achievementConfigurationsUpdate :: Text -> AchievementConfiguration -> AchievementConfigurationsUpdate

-- | Update the metadata of the achievement configuration with the given
--   ID.
--   
--   <i>See:</i> <a>achievementConfigurationsUpdate</a> smart constructor.
data AchievementConfigurationsUpdate

-- | The ID of the achievement used by this method.
acuAchievementId :: Lens' AchievementConfigurationsUpdate Text

-- | Multipart request metadata.
acuPayload :: Lens' AchievementConfigurationsUpdate AchievementConfiguration
instance GHC.Generics.Generic Network.Google.Resource.GamesConfiguration.AchievementConfigurations.Update.AchievementConfigurationsUpdate
instance Data.Data.Data Network.Google.Resource.GamesConfiguration.AchievementConfigurations.Update.AchievementConfigurationsUpdate
instance GHC.Show.Show Network.Google.Resource.GamesConfiguration.AchievementConfigurations.Update.AchievementConfigurationsUpdate
instance GHC.Classes.Eq Network.Google.Resource.GamesConfiguration.AchievementConfigurations.Update.AchievementConfigurationsUpdate
instance Network.Google.Types.GoogleRequest Network.Google.Resource.GamesConfiguration.AchievementConfigurations.Update.AchievementConfigurationsUpdate


-- | Uploads an image for a resource with the given ID and image type.
--   
--   <i>See:</i> <a>Google Play Game Services Publishing API Reference</a>
--   for <tt>gamesConfiguration.imageConfigurations.upload</tt>.
module Network.Google.Resource.GamesConfiguration.ImageConfigurations.Upload

-- | A resource alias for
--   <tt>gamesConfiguration.imageConfigurations.upload</tt> method which
--   the <a>ImageConfigurationsUpload</a> request conforms to.
type ImageConfigurationsUploadResource = ("games" :> ("v1configuration" :> ("images" :> (Capture "resourceId" Text :> ("imageType" :> (Capture "imageType" ImageConfigurationsUploadImageType :> (QueryParam "alt" AltJSON :> Post '[JSON] ImageConfiguration))))))) :<|> ("upload" :> ("games" :> ("v1configuration" :> ("images" :> (Capture "resourceId" Text :> ("imageType" :> (Capture "imageType" ImageConfigurationsUploadImageType :> (QueryParam "alt" AltJSON :> (QueryParam "uploadType" AltMedia :> (AltMedia :> Post '[JSON] ImageConfiguration))))))))))

-- | Creates a value of <a>ImageConfigurationsUpload</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>icuResourceId</a></li>
--   <li><a>icuImageType</a></li>
--   </ul>
imageConfigurationsUpload :: Text -> ImageConfigurationsUploadImageType -> ImageConfigurationsUpload

-- | Uploads an image for a resource with the given ID and image type.
--   
--   <i>See:</i> <a>imageConfigurationsUpload</a> smart constructor.
data ImageConfigurationsUpload

-- | The ID of the resource used by this method.
icuResourceId :: Lens' ImageConfigurationsUpload Text

-- | Selects which image in a resource for this method.
icuImageType :: Lens' ImageConfigurationsUpload ImageConfigurationsUploadImageType
instance GHC.Generics.Generic Network.Google.Resource.GamesConfiguration.ImageConfigurations.Upload.ImageConfigurationsUpload
instance Data.Data.Data Network.Google.Resource.GamesConfiguration.ImageConfigurations.Upload.ImageConfigurationsUpload
instance GHC.Show.Show Network.Google.Resource.GamesConfiguration.ImageConfigurations.Upload.ImageConfigurationsUpload
instance GHC.Classes.Eq Network.Google.Resource.GamesConfiguration.ImageConfigurations.Upload.ImageConfigurationsUpload
instance Network.Google.Types.GoogleRequest Network.Google.Resource.GamesConfiguration.ImageConfigurations.Upload.ImageConfigurationsUpload
instance Network.Google.Types.GoogleRequest (Network.Google.Types.MediaUpload Network.Google.Resource.GamesConfiguration.ImageConfigurations.Upload.ImageConfigurationsUpload)


-- | Delete the leaderboard configuration with the given ID.
--   
--   <i>See:</i> <a>Google Play Game Services Publishing API Reference</a>
--   for <tt>gamesConfiguration.leaderboardConfigurations.delete</tt>.
module Network.Google.Resource.GamesConfiguration.LeaderboardConfigurations.Delete

-- | A resource alias for
--   <tt>gamesConfiguration.leaderboardConfigurations.delete</tt> method
--   which the <a>LeaderboardConfigurationsDelete</a> request conforms to.
type LeaderboardConfigurationsDeleteResource = "games" :> ("v1configuration" :> ("leaderboards" :> (Capture "leaderboardId" Text :> (QueryParam "alt" AltJSON :> Delete '[JSON] ()))))

-- | Creates a value of <a>LeaderboardConfigurationsDelete</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>lcdLeaderboardId</a></li>
--   </ul>
leaderboardConfigurationsDelete :: Text -> LeaderboardConfigurationsDelete

-- | Delete the leaderboard configuration with the given ID.
--   
--   <i>See:</i> <a>leaderboardConfigurationsDelete</a> smart constructor.
data LeaderboardConfigurationsDelete

-- | The ID of the leaderboard.
lcdLeaderboardId :: Lens' LeaderboardConfigurationsDelete Text
instance GHC.Generics.Generic Network.Google.Resource.GamesConfiguration.LeaderboardConfigurations.Delete.LeaderboardConfigurationsDelete
instance Data.Data.Data Network.Google.Resource.GamesConfiguration.LeaderboardConfigurations.Delete.LeaderboardConfigurationsDelete
instance GHC.Show.Show Network.Google.Resource.GamesConfiguration.LeaderboardConfigurations.Delete.LeaderboardConfigurationsDelete
instance GHC.Classes.Eq Network.Google.Resource.GamesConfiguration.LeaderboardConfigurations.Delete.LeaderboardConfigurationsDelete
instance Network.Google.Types.GoogleRequest Network.Google.Resource.GamesConfiguration.LeaderboardConfigurations.Delete.LeaderboardConfigurationsDelete


-- | Retrieves the metadata of the leaderboard configuration with the given
--   ID.
--   
--   <i>See:</i> <a>Google Play Game Services Publishing API Reference</a>
--   for <tt>gamesConfiguration.leaderboardConfigurations.get</tt>.
module Network.Google.Resource.GamesConfiguration.LeaderboardConfigurations.Get

-- | A resource alias for
--   <tt>gamesConfiguration.leaderboardConfigurations.get</tt> method which
--   the <a>LeaderboardConfigurationsGet</a> request conforms to.
type LeaderboardConfigurationsGetResource = "games" :> ("v1configuration" :> ("leaderboards" :> (Capture "leaderboardId" Text :> (QueryParam "alt" AltJSON :> Get '[JSON] LeaderboardConfiguration))))

-- | Creates a value of <a>LeaderboardConfigurationsGet</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>lcgLeaderboardId</a></li>
--   </ul>
leaderboardConfigurationsGet :: Text -> LeaderboardConfigurationsGet

-- | Retrieves the metadata of the leaderboard configuration with the given
--   ID.
--   
--   <i>See:</i> <a>leaderboardConfigurationsGet</a> smart constructor.
data LeaderboardConfigurationsGet

-- | The ID of the leaderboard.
lcgLeaderboardId :: Lens' LeaderboardConfigurationsGet Text
instance GHC.Generics.Generic Network.Google.Resource.GamesConfiguration.LeaderboardConfigurations.Get.LeaderboardConfigurationsGet
instance Data.Data.Data Network.Google.Resource.GamesConfiguration.LeaderboardConfigurations.Get.LeaderboardConfigurationsGet
instance GHC.Show.Show Network.Google.Resource.GamesConfiguration.LeaderboardConfigurations.Get.LeaderboardConfigurationsGet
instance GHC.Classes.Eq Network.Google.Resource.GamesConfiguration.LeaderboardConfigurations.Get.LeaderboardConfigurationsGet
instance Network.Google.Types.GoogleRequest Network.Google.Resource.GamesConfiguration.LeaderboardConfigurations.Get.LeaderboardConfigurationsGet


-- | Insert a new leaderboard configuration in this application.
--   
--   <i>See:</i> <a>Google Play Game Services Publishing API Reference</a>
--   for <tt>gamesConfiguration.leaderboardConfigurations.insert</tt>.
module Network.Google.Resource.GamesConfiguration.LeaderboardConfigurations.Insert

-- | A resource alias for
--   <tt>gamesConfiguration.leaderboardConfigurations.insert</tt> method
--   which the <a>LeaderboardConfigurationsInsert</a> request conforms to.
type LeaderboardConfigurationsInsertResource = "games" :> ("v1configuration" :> ("applications" :> (Capture "applicationId" Text :> ("leaderboards" :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] LeaderboardConfiguration :> Post '[JSON] LeaderboardConfiguration))))))

-- | Creates a value of <a>LeaderboardConfigurationsInsert</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>lciPayload</a></li>
--   <li><a>lciApplicationId</a></li>
--   </ul>
leaderboardConfigurationsInsert :: LeaderboardConfiguration -> Text -> LeaderboardConfigurationsInsert

-- | Insert a new leaderboard configuration in this application.
--   
--   <i>See:</i> <a>leaderboardConfigurationsInsert</a> smart constructor.
data LeaderboardConfigurationsInsert

-- | Multipart request metadata.
lciPayload :: Lens' LeaderboardConfigurationsInsert LeaderboardConfiguration

-- | The application ID from the Google Play developer console.
lciApplicationId :: Lens' LeaderboardConfigurationsInsert Text
instance GHC.Generics.Generic Network.Google.Resource.GamesConfiguration.LeaderboardConfigurations.Insert.LeaderboardConfigurationsInsert
instance Data.Data.Data Network.Google.Resource.GamesConfiguration.LeaderboardConfigurations.Insert.LeaderboardConfigurationsInsert
instance GHC.Show.Show Network.Google.Resource.GamesConfiguration.LeaderboardConfigurations.Insert.LeaderboardConfigurationsInsert
instance GHC.Classes.Eq Network.Google.Resource.GamesConfiguration.LeaderboardConfigurations.Insert.LeaderboardConfigurationsInsert
instance Network.Google.Types.GoogleRequest Network.Google.Resource.GamesConfiguration.LeaderboardConfigurations.Insert.LeaderboardConfigurationsInsert


-- | Returns a list of the leaderboard configurations in this application.
--   
--   <i>See:</i> <a>Google Play Game Services Publishing API Reference</a>
--   for <tt>gamesConfiguration.leaderboardConfigurations.list</tt>.
module Network.Google.Resource.GamesConfiguration.LeaderboardConfigurations.List

-- | A resource alias for
--   <tt>gamesConfiguration.leaderboardConfigurations.list</tt> method
--   which the <a>LeaderboardConfigurationsList</a> request conforms to.
type LeaderboardConfigurationsListResource = "games" :> ("v1configuration" :> ("applications" :> (Capture "applicationId" Text :> ("leaderboards" :> (QueryParam "pageToken" Text :> (QueryParam "maxResults" (Textual Int32) :> (QueryParam "alt" AltJSON :> Get '[JSON] LeaderboardConfigurationListResponse)))))))

-- | Creates a value of <a>LeaderboardConfigurationsList</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>lclApplicationId</a></li>
--   <li><a>lclPageToken</a></li>
--   <li><a>lclMaxResults</a></li>
--   </ul>
leaderboardConfigurationsList :: Text -> LeaderboardConfigurationsList

-- | Returns a list of the leaderboard configurations in this application.
--   
--   <i>See:</i> <a>leaderboardConfigurationsList</a> smart constructor.
data LeaderboardConfigurationsList

-- | The application ID from the Google Play developer console.
lclApplicationId :: Lens' LeaderboardConfigurationsList Text

-- | The token returned by the previous request.
lclPageToken :: Lens' LeaderboardConfigurationsList (Maybe Text)

-- | The maximum number of resource configurations to return in the
--   response, used for paging. For any response, the actual number of
--   resources returned may be less than the specified maxResults.
lclMaxResults :: Lens' LeaderboardConfigurationsList (Maybe Int32)
instance GHC.Generics.Generic Network.Google.Resource.GamesConfiguration.LeaderboardConfigurations.List.LeaderboardConfigurationsList
instance Data.Data.Data Network.Google.Resource.GamesConfiguration.LeaderboardConfigurations.List.LeaderboardConfigurationsList
instance GHC.Show.Show Network.Google.Resource.GamesConfiguration.LeaderboardConfigurations.List.LeaderboardConfigurationsList
instance GHC.Classes.Eq Network.Google.Resource.GamesConfiguration.LeaderboardConfigurations.List.LeaderboardConfigurationsList
instance Network.Google.Types.GoogleRequest Network.Google.Resource.GamesConfiguration.LeaderboardConfigurations.List.LeaderboardConfigurationsList


-- | Update the metadata of the leaderboard configuration with the given
--   ID. This method supports patch semantics.
--   
--   <i>See:</i> <a>Google Play Game Services Publishing API Reference</a>
--   for <tt>gamesConfiguration.leaderboardConfigurations.patch</tt>.
module Network.Google.Resource.GamesConfiguration.LeaderboardConfigurations.Patch

-- | A resource alias for
--   <tt>gamesConfiguration.leaderboardConfigurations.patch</tt> method
--   which the <a>LeaderboardConfigurationsPatch</a> request conforms to.
type LeaderboardConfigurationsPatchResource = "games" :> ("v1configuration" :> ("leaderboards" :> (Capture "leaderboardId" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] LeaderboardConfiguration :> Patch '[JSON] LeaderboardConfiguration)))))

-- | Creates a value of <a>LeaderboardConfigurationsPatch</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>lcpPayload</a></li>
--   <li><a>lcpLeaderboardId</a></li>
--   </ul>
leaderboardConfigurationsPatch :: LeaderboardConfiguration -> Text -> LeaderboardConfigurationsPatch

-- | Update the metadata of the leaderboard configuration with the given
--   ID. This method supports patch semantics.
--   
--   <i>See:</i> <a>leaderboardConfigurationsPatch</a> smart constructor.
data LeaderboardConfigurationsPatch

-- | Multipart request metadata.
lcpPayload :: Lens' LeaderboardConfigurationsPatch LeaderboardConfiguration

-- | The ID of the leaderboard.
lcpLeaderboardId :: Lens' LeaderboardConfigurationsPatch Text
instance GHC.Generics.Generic Network.Google.Resource.GamesConfiguration.LeaderboardConfigurations.Patch.LeaderboardConfigurationsPatch
instance Data.Data.Data Network.Google.Resource.GamesConfiguration.LeaderboardConfigurations.Patch.LeaderboardConfigurationsPatch
instance GHC.Show.Show Network.Google.Resource.GamesConfiguration.LeaderboardConfigurations.Patch.LeaderboardConfigurationsPatch
instance GHC.Classes.Eq Network.Google.Resource.GamesConfiguration.LeaderboardConfigurations.Patch.LeaderboardConfigurationsPatch
instance Network.Google.Types.GoogleRequest Network.Google.Resource.GamesConfiguration.LeaderboardConfigurations.Patch.LeaderboardConfigurationsPatch


-- | Update the metadata of the leaderboard configuration with the given
--   ID.
--   
--   <i>See:</i> <a>Google Play Game Services Publishing API Reference</a>
--   for <tt>gamesConfiguration.leaderboardConfigurations.update</tt>.
module Network.Google.Resource.GamesConfiguration.LeaderboardConfigurations.Update

-- | A resource alias for
--   <tt>gamesConfiguration.leaderboardConfigurations.update</tt> method
--   which the <a>LeaderboardConfigurationsUpdate</a> request conforms to.
type LeaderboardConfigurationsUpdateResource = "games" :> ("v1configuration" :> ("leaderboards" :> (Capture "leaderboardId" Text :> (QueryParam "alt" AltJSON :> (ReqBody '[JSON] LeaderboardConfiguration :> Put '[JSON] LeaderboardConfiguration)))))

-- | Creates a value of <a>LeaderboardConfigurationsUpdate</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>lcuPayload</a></li>
--   <li><a>lcuLeaderboardId</a></li>
--   </ul>
leaderboardConfigurationsUpdate :: LeaderboardConfiguration -> Text -> LeaderboardConfigurationsUpdate

-- | Update the metadata of the leaderboard configuration with the given
--   ID.
--   
--   <i>See:</i> <a>leaderboardConfigurationsUpdate</a> smart constructor.
data LeaderboardConfigurationsUpdate

-- | Multipart request metadata.
lcuPayload :: Lens' LeaderboardConfigurationsUpdate LeaderboardConfiguration

-- | The ID of the leaderboard.
lcuLeaderboardId :: Lens' LeaderboardConfigurationsUpdate Text
instance GHC.Generics.Generic Network.Google.Resource.GamesConfiguration.LeaderboardConfigurations.Update.LeaderboardConfigurationsUpdate
instance Data.Data.Data Network.Google.Resource.GamesConfiguration.LeaderboardConfigurations.Update.LeaderboardConfigurationsUpdate
instance GHC.Show.Show Network.Google.Resource.GamesConfiguration.LeaderboardConfigurations.Update.LeaderboardConfigurationsUpdate
instance GHC.Classes.Eq Network.Google.Resource.GamesConfiguration.LeaderboardConfigurations.Update.LeaderboardConfigurationsUpdate
instance Network.Google.Types.GoogleRequest Network.Google.Resource.GamesConfiguration.LeaderboardConfigurations.Update.LeaderboardConfigurationsUpdate


-- | The Publishing API for Google Play Game Services.
--   
--   <i>See:</i> <a>Google Play Game Services Publishing API Reference</a>
module Network.Google.GamesConfiguration

-- | Default request referring to version <tt>v1configuration</tt> of the
--   Google Play Game Services Publishing API. This contains the host and
--   root path used as a starting point for constructing service requests.
gamesConfigurationService :: ServiceConfig

-- | View and manage your Google Play Developer account
androidPublisherScope :: Proxy '["https://www.googleapis.com/auth/androidpublisher"]

-- | Represents the entirety of the methods and resources available for the
--   Google Play Game Services Publishing API service.
type GamesConfigurationAPI = ImageConfigurationsUploadResource :<|> (LeaderboardConfigurationsInsertResource :<|> (LeaderboardConfigurationsListResource :<|> (LeaderboardConfigurationsPatchResource :<|> (LeaderboardConfigurationsGetResource :<|> (LeaderboardConfigurationsDeleteResource :<|> (LeaderboardConfigurationsUpdateResource :<|> (AchievementConfigurationsInsertResource :<|> (AchievementConfigurationsListResource :<|> (AchievementConfigurationsPatchResource :<|> (AchievementConfigurationsGetResource :<|> (AchievementConfigurationsDeleteResource :<|> AchievementConfigurationsUpdateResource)))))))))))

-- | This is a JSON template for an image configuration resource.
--   
--   <i>See:</i> <a>imageConfiguration</a> smart constructor.
data ImageConfiguration

-- | Creates a value of <a>ImageConfiguration</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>icResourceId</a></li>
--   <li><a>icKind</a></li>
--   <li><a>icURL</a></li>
--   <li><a>icImageType</a></li>
--   </ul>
imageConfiguration :: ImageConfiguration

-- | The resource ID of resource which the image belongs to.
icResourceId :: Lens' ImageConfiguration (Maybe Text)

-- | Uniquely identifies the type of this resource. Value is always the
--   fixed string gamesConfiguration#imageConfiguration.
icKind :: Lens' ImageConfiguration Text

-- | The url for this image.
icURL :: Lens' ImageConfiguration (Maybe Text)

-- | The image type for the image.
icImageType :: Lens' ImageConfiguration (Maybe Text)

-- | This is a JSON template for a ListConfigurations response.
--   
--   <i>See:</i> <a>leaderboardConfigurationListResponse</a> smart
--   constructor.
data LeaderboardConfigurationListResponse

-- | Creates a value of <a>LeaderboardConfigurationListResponse</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>lclrNextPageToken</a></li>
--   <li><a>lclrKind</a></li>
--   <li><a>lclrItems</a></li>
--   </ul>
leaderboardConfigurationListResponse :: LeaderboardConfigurationListResponse

-- | The pagination token for the next page of results.
lclrNextPageToken :: Lens' LeaderboardConfigurationListResponse (Maybe Text)

-- | Uniquely identifies the type of this resource. Value is always the
--   fixed string games#leaderboardConfigurationListResponse.
lclrKind :: Lens' LeaderboardConfigurationListResponse Text

-- | The leaderboard configurations.
lclrItems :: Lens' LeaderboardConfigurationListResponse [LeaderboardConfiguration]

-- | This is a JSON template for a number affix resource.
--   
--   <i>See:</i> <a>gamesNumberAffixConfiguration</a> smart constructor.
data GamesNumberAffixConfiguration

-- | Creates a value of <a>GamesNumberAffixConfiguration</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>gnacFew</a></li>
--   <li><a>gnacOther</a></li>
--   <li><a>gnacTwo</a></li>
--   <li><a>gnacOne</a></li>
--   <li><a>gnacZero</a></li>
--   <li><a>gnacMany</a></li>
--   </ul>
gamesNumberAffixConfiguration :: GamesNumberAffixConfiguration

-- | When the language requires special treatment of "small" numbers (as
--   with 2, 3, and 4 in Czech; or numbers ending 2, 3, or 4 but not 12,
--   13, or 14 in Polish).
gnacFew :: Lens' GamesNumberAffixConfiguration (Maybe LocalizedStringBundle)

-- | When the language does not require special treatment of the given
--   quantity (as with all numbers in Chinese, or 42 in English).
gnacOther :: Lens' GamesNumberAffixConfiguration (Maybe LocalizedStringBundle)

-- | When the language requires special treatment of numbers like two (as
--   with 2 in Welsh, or 102 in Slovenian).
gnacTwo :: Lens' GamesNumberAffixConfiguration (Maybe LocalizedStringBundle)

-- | When the language requires special treatment of numbers like one (as
--   with the number 1 in English and most other languages; in Russian, any
--   number ending in 1 but not ending in 11 is in this class).
gnacOne :: Lens' GamesNumberAffixConfiguration (Maybe LocalizedStringBundle)

-- | When the language requires special treatment of the number 0 (as in
--   Arabic).
gnacZero :: Lens' GamesNumberAffixConfiguration (Maybe LocalizedStringBundle)

-- | When the language requires special treatment of "large" numbers (as
--   with numbers ending 11-99 in Maltese).
gnacMany :: Lens' GamesNumberAffixConfiguration (Maybe LocalizedStringBundle)

-- | This is a JSON template for a ListConfigurations response.
--   
--   <i>See:</i> <a>achievementConfigurationListResponse</a> smart
--   constructor.
data AchievementConfigurationListResponse

-- | Creates a value of <a>AchievementConfigurationListResponse</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>aclrNextPageToken</a></li>
--   <li><a>aclrKind</a></li>
--   <li><a>aclrItems</a></li>
--   </ul>
achievementConfigurationListResponse :: AchievementConfigurationListResponse

-- | The pagination token for the next page of results.
aclrNextPageToken :: Lens' AchievementConfigurationListResponse (Maybe Text)

-- | Uniquely identifies the type of this resource. Value is always the
--   fixed string games#achievementConfigurationListResponse.
aclrKind :: Lens' AchievementConfigurationListResponse Text

-- | The achievement configurations.
aclrItems :: Lens' AchievementConfigurationListResponse [AchievementConfiguration]

-- | This is a JSON template for an leaderboard configuration resource.
--   
--   <i>See:</i> <a>leaderboardConfiguration</a> smart constructor.
data LeaderboardConfiguration

-- | Creates a value of <a>LeaderboardConfiguration</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>lcScoreMax</a></li>
--   <li><a>lcKind</a></li>
--   <li><a>lcPublished</a></li>
--   <li><a>lcToken</a></li>
--   <li><a>lcScoreMin</a></li>
--   <li><a>lcDraft</a></li>
--   <li><a>lcId</a></li>
--   <li><a>lcScoreOrder</a></li>
--   </ul>
leaderboardConfiguration :: LeaderboardConfiguration

-- | Maximum score that can be posted to this leaderboard.
lcScoreMax :: Lens' LeaderboardConfiguration (Maybe Int64)

-- | Uniquely identifies the type of this resource. Value is always the
--   fixed string gamesConfiguration#leaderboardConfiguration.
lcKind :: Lens' LeaderboardConfiguration Text

-- | The read-only published data of the leaderboard.
lcPublished :: Lens' LeaderboardConfiguration (Maybe LeaderboardConfigurationDetail)

-- | The token for this resource.
lcToken :: Lens' LeaderboardConfiguration (Maybe Text)

-- | Minimum score that can be posted to this leaderboard.
lcScoreMin :: Lens' LeaderboardConfiguration (Maybe Int64)

-- | The draft data of the leaderboard.
lcDraft :: Lens' LeaderboardConfiguration (Maybe LeaderboardConfigurationDetail)

-- | The ID of the leaderboard.
lcId :: Lens' LeaderboardConfiguration (Maybe Text)

-- | The type of the leaderboard. Possible values are: - "LARGER_IS_BETTER"
--   - Larger scores posted are ranked higher. - "SMALLER_IS_BETTER" -
--   Smaller scores posted are ranked higher.
lcScoreOrder :: Lens' LeaderboardConfiguration (Maybe Text)

-- | This is a JSON template for an achievement configuration resource.
--   
--   <i>See:</i> <a>achievementConfiguration</a> smart constructor.
data AchievementConfiguration

-- | Creates a value of <a>AchievementConfiguration</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>acAchievementType</a></li>
--   <li><a>acStepsToUnlock</a></li>
--   <li><a>acKind</a></li>
--   <li><a>acPublished</a></li>
--   <li><a>acToken</a></li>
--   <li><a>acInitialState</a></li>
--   <li><a>acDraft</a></li>
--   <li><a>acId</a></li>
--   </ul>
achievementConfiguration :: AchievementConfiguration

-- | The type of the achievement. Possible values are: - "STANDARD" -
--   Achievement is either locked or unlocked. - "INCREMENTAL" -
--   Achievement is incremental.
acAchievementType :: Lens' AchievementConfiguration (Maybe Text)

-- | Steps to unlock. Only applicable to incremental achievements.
acStepsToUnlock :: Lens' AchievementConfiguration (Maybe Int32)

-- | Uniquely identifies the type of this resource. Value is always the
--   fixed string gamesConfiguration#achievementConfiguration.
acKind :: Lens' AchievementConfiguration Text

-- | The read-only published data of the achievement.
acPublished :: Lens' AchievementConfiguration (Maybe AchievementConfigurationDetail)

-- | The token for this resource.
acToken :: Lens' AchievementConfiguration (Maybe Text)

-- | The initial state of the achievement. Possible values are: - "HIDDEN"
--   - Achievement is hidden. - "REVEALED" - Achievement is revealed. -
--   "UNLOCKED" - Achievement is unlocked.
acInitialState :: Lens' AchievementConfiguration (Maybe Text)

-- | The draft data of the achievement.
acDraft :: Lens' AchievementConfiguration (Maybe AchievementConfigurationDetail)

-- | The ID of the achievement.
acId :: Lens' AchievementConfiguration (Maybe Text)

-- | This is a JSON template for a localized string resource.
--   
--   <i>See:</i> <a>localizedString</a> smart constructor.
data LocalizedString

-- | Creates a value of <a>LocalizedString</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>lsKind</a></li>
--   <li><a>lsLocale</a></li>
--   <li><a>lsValue</a></li>
--   </ul>
localizedString :: LocalizedString

-- | Uniquely identifies the type of this resource. Value is always the
--   fixed string gamesConfiguration#localizedString.
lsKind :: Lens' LocalizedString Text

-- | The locale string.
lsLocale :: Lens' LocalizedString (Maybe Text)

-- | The string value.
lsValue :: Lens' LocalizedString (Maybe Text)

-- | This is a JSON template for a number format resource.
--   
--   <i>See:</i> <a>gamesNumberFormatConfiguration</a> smart constructor.
data GamesNumberFormatConfiguration

-- | Creates a value of <a>GamesNumberFormatConfiguration</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>gnfcSuffix</a></li>
--   <li><a>gnfcCurrencyCode</a></li>
--   <li><a>gnfcNumberFormatType</a></li>
--   <li><a>gnfcNumDecimalPlaces</a></li>
--   </ul>
gamesNumberFormatConfiguration :: GamesNumberFormatConfiguration

-- | An optional suffix for the NUMERIC format type. These strings follow
--   the same plural rules as all Android string resources.
gnfcSuffix :: Lens' GamesNumberFormatConfiguration (Maybe GamesNumberAffixConfiguration)

-- | The curreny code string. Only used for CURRENCY format type.
gnfcCurrencyCode :: Lens' GamesNumberFormatConfiguration (Maybe Text)

-- | The formatting for the number. Possible values are: - "NUMERIC" -
--   Numbers are formatted to have no digits or a fixed number of digits
--   after the decimal point according to locale. An optional custom unit
--   can be added. - "TIME_DURATION" - Numbers are formatted to hours,
--   minutes and seconds. - "CURRENCY" - Numbers are formatted to currency
--   according to locale.
gnfcNumberFormatType :: Lens' GamesNumberFormatConfiguration (Maybe Text)

-- | The number of decimal places for number. Only used for NUMERIC format
--   type.
gnfcNumDecimalPlaces :: Lens' GamesNumberFormatConfiguration (Maybe Int32)

-- | Selects which image in a resource for this method.
data ImageConfigurationsUploadImageType

-- | <tt>ACHIEVEMENT_ICON</tt> The icon image for an achievement resource.
AchievementIcon :: ImageConfigurationsUploadImageType

-- | <tt>LEADERBOARD_ICON</tt> The icon image for a leaderboard resource.
LeaderboardIcon :: ImageConfigurationsUploadImageType

-- | This is a JSON template for a leaderboard configuration detail.
--   
--   <i>See:</i> <a>leaderboardConfigurationDetail</a> smart constructor.
data LeaderboardConfigurationDetail

-- | Creates a value of <a>LeaderboardConfigurationDetail</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>lcdKind</a></li>
--   <li><a>lcdScoreFormat</a></li>
--   <li><a>lcdSortRank</a></li>
--   <li><a>lcdName</a></li>
--   <li><a>lcdIconURL</a></li>
--   </ul>
leaderboardConfigurationDetail :: LeaderboardConfigurationDetail

-- | Uniquely identifies the type of this resource. Value is always the
--   fixed string gamesConfiguration#leaderboardConfigurationDetail.
lcdKind :: Lens' LeaderboardConfigurationDetail Text

-- | The score formatting for the leaderboard.
lcdScoreFormat :: Lens' LeaderboardConfigurationDetail (Maybe GamesNumberFormatConfiguration)

-- | The sort rank of this leaderboard. Writes to this field are ignored.
lcdSortRank :: Lens' LeaderboardConfigurationDetail (Maybe Int32)

-- | Localized strings for the leaderboard name.
lcdName :: Lens' LeaderboardConfigurationDetail (Maybe LocalizedStringBundle)

-- | The icon url of this leaderboard. Writes to this field are ignored.
lcdIconURL :: Lens' LeaderboardConfigurationDetail (Maybe Text)

-- | This is a JSON template for an achievement configuration detail.
--   
--   <i>See:</i> <a>achievementConfigurationDetail</a> smart constructor.
data AchievementConfigurationDetail

-- | Creates a value of <a>AchievementConfigurationDetail</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>acdKind</a></li>
--   <li><a>acdSortRank</a></li>
--   <li><a>acdName</a></li>
--   <li><a>acdPointValue</a></li>
--   <li><a>acdIconURL</a></li>
--   <li><a>acdDescription</a></li>
--   </ul>
achievementConfigurationDetail :: AchievementConfigurationDetail

-- | Uniquely identifies the type of this resource. Value is always the
--   fixed string gamesConfiguration#achievementConfigurationDetail.
acdKind :: Lens' AchievementConfigurationDetail Text

-- | The sort rank of this achievement. Writes to this field are ignored.
acdSortRank :: Lens' AchievementConfigurationDetail (Maybe Int32)

-- | Localized strings for the achievement name.
acdName :: Lens' AchievementConfigurationDetail (Maybe LocalizedStringBundle)

-- | Point value for the achievement.
acdPointValue :: Lens' AchievementConfigurationDetail (Maybe Int32)

-- | The icon url of this achievement. Writes to this field are ignored.
acdIconURL :: Lens' AchievementConfigurationDetail (Maybe Text)

-- | Localized strings for the achievement description.
acdDescription :: Lens' AchievementConfigurationDetail (Maybe LocalizedStringBundle)

-- | This is a JSON template for a localized string bundle resource.
--   
--   <i>See:</i> <a>localizedStringBundle</a> smart constructor.
data LocalizedStringBundle

-- | Creates a value of <a>LocalizedStringBundle</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>lsbKind</a></li>
--   <li><a>lsbTranslations</a></li>
--   </ul>
localizedStringBundle :: LocalizedStringBundle

-- | Uniquely identifies the type of this resource. Value is always the
--   fixed string gamesConfiguration#localizedStringBundle.
lsbKind :: Lens' LocalizedStringBundle Text

-- | The locale strings.
lsbTranslations :: Lens' LocalizedStringBundle [LocalizedString]
