packages feed

gitea-api (empty) → 1.19.4.0

raw patch · 30 files changed

+54946/−0 lines, 30 filesdep +QuickCheckdep +aesondep +basesetup-changed

Dependencies added: QuickCheck, aeson, base, base64-bytestring, bytestring, case-insensitive, containers, deepseq, exceptions, gitea-api, hspec, http-api-data, http-client, http-client-tls, http-media, http-types, iso8601-time, katip, microlens, monad-logger, mtl, network, random, safe-exceptions, semigroups, text, time, transformers, unordered-containers, vector

Files

+ ChangeLog.md view
@@ -0,0 +1,9 @@+# Revision history for gitea-api++## 1.11.6.0++* Autogenerated api bindings for Gitea API version 1.11.6++## 1.1.1.0++* Autogenerated api bindings for Gitea API version 1.1.1
+ LICENSE view
@@ -0,0 +1,30 @@+Copyright (c) 2018, Obsidian Systems LLC++All rights reserved.++Redistribution and use in source and binary forms, with or without+modification, are permitted provided that the following conditions are met:++    * Redistributions of source code must retain the above copyright+      notice, this list of conditions and the following disclaimer.++    * Redistributions in binary form must reproduce the above+      copyright notice, this list of conditions and the following+      disclaimer in the documentation and/or other materials provided+      with the distribution.++    * Neither the name of Obsidian Systems LLC nor the names of other+      contributors may be used to endorse or promote products derived+      from this software without specific prior written permission.++THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ README.md view
@@ -0,0 +1,203 @@+## OpenAPI Auto-Generated [http-client](https://www.stackage.org/lts-10.0/package/http-client-0.5.7.1) Bindings to `Gitea API.`++The library in `lib` provides auto-generated-from-OpenAPI [http-client](https://www.stackage.org/lts-10.0/package/http-client-0.5.7.1) bindings to the Gitea API. API.++OpenApi Version: 3.0.1++## Installation++Installation follows the standard approach to installing Stack-based projects.++1. Install the [Haskell `stack` tool](http://docs.haskellstack.org/en/stable/README).+2. To build the package, and generate the documentation (recommended):+```+stack haddock+```+which will generate docs for this lib in the `docs` folder.++To generate the docs in the normal location (to enable hyperlinks to external libs), remove+```+build:+  haddock-arguments:+    haddock-args:+    - "--odir=./docs"+```+from the stack.yaml file and run `stack haddock` again.++3. To run unit tests:+```+stack test+```++## OpenAPI-Generator++The code generator that produced this library, and which explains how+to obtain and use the openapi-generator cli tool lives at++https://openapi-generator.tech++The _generator-name_ argument (`--generator-name`) passed to the cli tool used should be++```+haskell-http-client+```++### Unsupported OpenAPI Features++* Model Inheritance++This is beta software; other cases may not be supported.++### Codegen "additional properties" parameters++These options allow some customization of the code generation process.++**haskell-http-client additional properties:**++| OPTION                          | DESCRIPTION                                                                                                                   | DEFAULT  | ACTUAL                                |+|---------------------------------|-------------------------------------------------------------------------------------------------------------------------------|----------|---------------------------------------|+| allowFromJsonNulls              | allow JSON Null during model decoding from JSON                                                                               | true     | true              |+| allowNonUniqueOperationIds      | allow *different* API modules to contain the same operationId. Each API must be imported qualified                            | false    | false    |+| allowToJsonNulls                | allow emitting JSON Null during model encoding to JSON                                                                        | false    | false                |+| baseModule                      | Set the base module namespace                                                                                                 |          | Gitea                      |+| cabalPackage                    | Set the cabal package name, which consists of one or more alphanumeric words separated by hyphens                             |          | gitea-api                    |+| cabalVersion                    | Set the cabal version number, consisting of a sequence of one or more integers separated by dots                              | 0.1.0.0  | 1.19.4.0                    |+| customTestInstanceModule        | test module used to provide typeclass instances for types not known by the generator                                          |          |         |+| configType                      | Set the name of the type used for configuration                                                                               |          | GiteaConfig                      |+| dateFormat                      | format string used to parse/render a date                                                                                     | %Y-%m-%d | %Y-%m-%d                      |+| dateTimeFormat                  | format string used to parse/render a datetime. (Defaults to [formatISO8601Millis][1] when not provided)                       |          |                   |+| dateTimeParseFormat             | overrides the format string used to parse a datetime                                                                          |          |              |+| generateEnums                   | Generate specific datatypes for OpenAPI enums                                                                                 | true     | true                   |+| generateFormUrlEncodedInstances | Generate FromForm/ToForm instances for models used by x-www-form-urlencoded operations (model fields must be primitive types) | true     | true |+| generateLenses                  | Generate Lens optics for Models                                                                                               | true     | true                  |+| generateModelConstructors       | Generate smart constructors (only supply required fields) for models                                                          | true     | true       |+| inlineMimeTypes                 | Inline (hardcode) the content-type and accept parameters on operations, when there is only 1 option                           | true     | true                 |+| modelDeriving                   | Additional classes to include in the deriving() clause of Models                                                              |          |                    |+| requestType                     | Set the name of the type used to generate requests                                                                            |          | GiteaRequest                     |+| strictFields                    | Add strictness annotations to all model fields                                                                                | true     | true                  |+| useKatip                        | Sets the default value for the UseKatip cabal flag. If true, the katip package provides logging instead of monad-logger       | true     | true                      |+| queryExtraUnreserved            | Configures additional querystring characters which must not be URI encoded, e.g. '+' or ':'                                   |          |           |++[1]: https://www.stackage.org/haddock/lts-9.0/iso8601-time-0.1.4/Data-Time-ISO8601.html#v:formatISO8601Millis++An example setting _dateTimeFormat_ and _strictFields_:++```+java -jar openapi-generator-cli.jar generate -i petstore.yaml -g haskell-http-client -o output/haskell-http-client --additional-properties=dateTimeFormat="%Y-%m-%dT%H:%M:%S%Q%z" --additional-properties=strictFields=false+```++View the full list of Codegen "config option" parameters with the command:++```+java -jar openapi-generator-cli.jar config-help -g haskell-http-client+```++## Usage Notes++### Example Petstore Haddock documentation++An example of the generated haddock documentation targeting the server http://petstore.swagger.io/ (Petstore) can be found [here][2]++[2]: https://hackage.haskell.org/package/swagger-petstore++### Example Petstore App++An example application using the auto-generated haskell-http-client bindings for the server http://petstore.swagger.io/ can be found [here][3]++[3]: https://github.com/openapitools/openapi-generator/tree/master/samples/client/petstore/haskell-http-client/example-app++This library is intended to be imported qualified.++### Modules++| MODULE              | NOTES                                               |+| ------------------- | --------------------------------------------------- |+| Gitea.Client    | use the "dispatch" functions to send requests       |+| Gitea.Core      | core functions, config and request types            |+| Gitea.API       | construct api requests                              |+| Gitea.Model     | describes api models                                |+| Gitea.MimeTypes | encoding/decoding MIME types (content-types/accept) |+| Gitea.ModelLens | lenses for model fields                             |+| Gitea.Logging   | logging functions and utils                         |+++### MimeTypes++This library adds type safety around what OpenAPI specifies as+Produces and Consumes for each Operation (e.g. the list of MIME types an+Operation can Produce (using 'accept' headers) and Consume (using 'content-type' headers).++For example, if there is an Operation named _addFoo_, there will be a+data type generated named _AddFoo_ (note the capitalization), which+describes additional constraints and actions on the _addFoo_ operation+via its typeclass instances. These typeclass instances can be viewed+in GHCi or via the Haddocks.++* required parameters are included as function arguments to _addFoo_+* optional non-body parameters are included by using  `applyOptionalParam`+* optional body parameters are set by using  `setBodyParam`++Example code generated for pretend _addFoo_ operation:++```haskell+data AddFoo+instance Consumes AddFoo MimeJSON+instance Produces AddFoo MimeJSON+instance Produces AddFoo MimeXML+instance HasBodyParam AddFoo FooModel+instance HasOptionalParam AddFoo FooName+instance HasOptionalParam AddFoo FooId+```++this would indicate that:++* the _addFoo_ operation can consume JSON+* the _addFoo_ operation produces JSON or XML, depending on the argument passed to the dispatch function+* the _addFoo_ operation can set it's body param of _FooModel_ via `setBodyParam`+* the _addFoo_ operation can set 2 different optional parameters via `applyOptionalParam`++If the OpenAPI spec doesn't declare it can accept or produce a certain+MIME type for a given Operation, you should either add a Produces or+Consumes instance for the desired MIME types (assuming the server+supports it), use `dispatchLbsUnsafe` or modify the OpenAPI spec and+run the generator again.++New MIME type instances can be added via MimeType/MimeRender/MimeUnrender++Only JSON instances are generated by default, and in some case+x-www-form-urlencoded instances (FromFrom, ToForm) will also be+generated if the model fields are primitive types, and there are+Operations using x-www-form-urlencoded which use those models.++### Authentication++A haskell data type will be generated for each OpenAPI authentication type.++If for example the AuthMethod `AuthOAuthFoo` is generated for OAuth operations, then+`addAuthMethod` should be used to add the AuthMethod config.++When a request is dispatched, if a matching auth method is found in+the config, it will be applied to the request.++### Example++```haskell+mgr <- newManager defaultManagerSettings+config0 <- withStdoutLogging =<< newConfig+let config = config0+    `addAuthMethod` AuthOAuthFoo "secret-key"++let addFooRequest =+  addFoo+    (ContentType MimeJSON)+    (Accept MimeXML)+    (ParamBar paramBar)+    (ParamQux paramQux)+    modelBaz+  `applyOptionalParam` FooId 1+  `applyOptionalParam` FooName "name"+  `setHeader` [("qux_header","xxyy")]+addFooResult <- dispatchMime mgr config addFooRequest+```++See the example app and the haddocks for details.
+ Setup.hs view
@@ -0,0 +1,2 @@+import Distribution.Simple+main = defaultMain
+ gitea-api.cabal view
@@ -0,0 +1,131 @@+name:           gitea-api+version:        1.19.4.0+synopsis:       Auto-generated gitea-api API Client+description:    .+                Client library for calling the Gitea API. API based on http-client.+                .+                host: https+                .+                base path: http://https://gitea.com/api/v1+                .+                Gitea API. API version: 1.19.4+                .+                OpenAPI version: 3.0.1+                .+                Generator version: 7.6.0+                .+category:       Web+homepage:       https://openapi-generator.tech+author:         Obsidian Systems LLC+maintainer:     maintainer@obsidian.systems+copyright:      2020 Obsidian Systems LLC+license:        BSD3+build-type:     Simple+cabal-version:  >= 1.10+tested-with: GHC ==8.6.5+license-file: LICENSE+++extra-source-files:+    ChangeLog.md+    README.md+    openapi.yaml++Flag UseKatip+  Description: Use the katip package to provide logging (if false, use the default monad-logger package)+  Default:     True+  Manual:      True++library+  hs-source-dirs:+      lib+  ghc-options: -Wall -funbox-strict-fields+  build-depends:+      aeson >=1.0 && <3.0+    , base >=4.7 && <5.0+    , base64-bytestring >1.0 && <2.0+    , bytestring >=0.10.0+    , case-insensitive+    , containers >=0.5.0.0 && <0.8+    , deepseq >= 1.4 && <1.6+    , exceptions >= 0.4+    , http-api-data >= 0.3.4 && <0.6+    , http-client >=0.5 && <0.8+    , http-client-tls+    , http-media >= 0.4 && < 0.9+    , http-types >=0.8 && <0.13+    , iso8601-time >=0.1.3 && <0.2.0+    , microlens >= 0.4.3+    , mtl >=2.2.1+    , network >=2.6.2 && <3.9+    , random >=1.1+    , safe-exceptions <0.2+    , text >=0.11 && <3+    , time >=1.5+    , transformers >=0.4.0.0+    , unordered-containers+    , vector >=0.10.9 && <0.14+  other-modules:+      Paths_gitea_api+  exposed-modules:+      Gitea+      Gitea.API+      Gitea.API.Activitypub+      Gitea.API.Admin+      Gitea.API.Issue+      Gitea.API.Miscellaneous+      Gitea.API.Notification+      Gitea.API.Organization+      Gitea.API.Package+      Gitea.API.Repository+      Gitea.API.Settings+      Gitea.API.User+      Gitea.Client+      Gitea.Core+      Gitea.Logging+      Gitea.MimeTypes+      Gitea.Model+      Gitea.ModelLens+  default-language: Haskell2010++  if flag(UseKatip)+      build-depends: katip >=0.8 && < 1.0+      other-modules: Gitea.LoggingKatip+      cpp-options: -DUSE_KATIP+  else+      build-depends: monad-logger >=0.3 && <0.4+      other-modules: Gitea.LoggingMonadLogger+      cpp-options: -DUSE_MONAD_LOGGER++test-suite tests+  type: exitcode-stdio-1.0+  main-is: Test.hs+  hs-source-dirs:+      tests+  ghc-options: -Wall -fno-warn-orphans+  build-depends:+      gitea-api+    , QuickCheck+    , aeson+    , base >=4.7 && <5.0+    , bytestring >=0.10.0+    , containers+    , hspec >=1.8+    , iso8601-time+    , mtl >=2.2.1+    , semigroups+    , text+    , time+    , transformers >=0.4.0.0+    , unordered-containers+    , vector+  other-modules:+      ApproxEq+      Instances+      PropMime+  default-language: Haskell2010++source-repository head+  type: git+  location: https://github.com/obsidiansystems/gitea-api+
+ lib/Gitea.hs view
@@ -0,0 +1,31 @@+{-+   Gitea API.++   This documentation describes the Gitea API.++   OpenAPI Version: 3.0.1+   Gitea API. API version: 1.19.4+   Generated by OpenAPI Generator (https://openapi-generator.tech)+-}++{-|+Module : Gitea+-}++module Gitea+  (  module Gitea.API+  , module Gitea.Client+  , module Gitea.Core+  , module Gitea.Logging+  , module Gitea.MimeTypes+  , module Gitea.Model+  , module Gitea.ModelLens+  ) where++import Gitea.API+import Gitea.Client+import Gitea.Core+import Gitea.Logging+import Gitea.MimeTypes+import Gitea.Model+import Gitea.ModelLens
+ lib/Gitea/API.hs view
@@ -0,0 +1,37 @@+{-+   Gitea API.++   This documentation describes the Gitea API.++   OpenAPI Version: 3.0.1+   Gitea API. API version: 1.19.4+   Generated by OpenAPI Generator (https://openapi-generator.tech)+-}++{-|+Module : Gitea.API+-}++module Gitea.API+  ( module Gitea.API.Activitypub+  , module Gitea.API.Admin+  , module Gitea.API.Issue+  , module Gitea.API.Miscellaneous+  , module Gitea.API.Notification+  , module Gitea.API.Organization+  , module Gitea.API.Package+  , module Gitea.API.Repository+  , module Gitea.API.Settings+  , module Gitea.API.User+  ) where++import Gitea.API.Activitypub+import Gitea.API.Admin+import Gitea.API.Issue+import Gitea.API.Miscellaneous+import Gitea.API.Notification+import Gitea.API.Organization+import Gitea.API.Package+import Gitea.API.Repository+import Gitea.API.Settings+import Gitea.API.User
+ lib/Gitea/API/Activitypub.hs view
@@ -0,0 +1,109 @@+{-+   Gitea API.++   This documentation describes the Gitea API.++   OpenAPI Version: 3.0.1+   Gitea API. API version: 1.19.4+   Generated by OpenAPI Generator (https://openapi-generator.tech)+-}++{-|+Module : Gitea.API.Activitypub+-}++{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE MonoLocalBinds #-}+{-# LANGUAGE MultiParamTypeClasses #-}+{-# LANGUAGE OverloadedStrings #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing -fno-warn-unused-binds -fno-warn-unused-imports #-}++module Gitea.API.Activitypub where++import Gitea.Core+import Gitea.MimeTypes+import Gitea.Model as M++import qualified Data.Aeson as A+import qualified Data.ByteString as B+import qualified Data.ByteString.Lazy as BL+import qualified Data.Data as P (Typeable, TypeRep, typeOf, typeRep)+import qualified Data.Foldable as P+import qualified Data.Map as Map+import qualified Data.Maybe as P+import qualified Data.Proxy as P (Proxy(..))+import qualified Data.Set as Set+import qualified Data.String as P+import qualified Data.Text as T+import qualified Data.Text.Encoding as T+import qualified Data.Text.Lazy as TL+import qualified Data.Text.Lazy.Encoding as TL+import qualified Data.Time as TI+import qualified Network.HTTP.Client.MultipartFormData as NH+import qualified Network.HTTP.Media as ME+import qualified Network.HTTP.Types as NH+import qualified Web.FormUrlEncoded as WH+import qualified Web.HttpApiData as WH++import Data.Text (Text)+import GHC.Base ((<|>))++import Prelude ((==),(/=),($), (.),(<$>),(<*>),(>>=),Maybe(..),Bool(..),Char,Double,FilePath,Float,Int,Integer,String,fmap,undefined,mempty,maybe,pure,Monad,Applicative,Functor)+import qualified Prelude as P++-- * Operations+++-- ** Activitypub++-- *** activitypubPerson++-- | @GET \/activitypub\/user-id\/{user-id}@+-- +-- Returns the Person actor for a user+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +activitypubPerson+  :: UserId -- ^ "userId" -  user ID of the user+  -> GiteaRequest ActivitypubPerson MimeNoContent ActivityPub MimeJSON+activitypubPerson (UserId userId) =+  _mkRequest "GET" ["/activitypub/user-id/",toPath userId]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data ActivitypubPerson  +-- | @application/json@+instance Produces ActivitypubPerson MimeJSON+++-- *** activitypubPersonInbox++-- | @POST \/activitypub\/user-id\/{user-id}\/inbox@+-- +-- Send to the inbox+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +activitypubPersonInbox+  :: UserId -- ^ "userId" -  user ID of the user+  -> GiteaRequest ActivitypubPersonInbox MimeNoContent NoContent MimeNoContent+activitypubPersonInbox (UserId userId) =+  _mkRequest "POST" ["/activitypub/user-id/",toPath userId,"/inbox"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data ActivitypubPersonInbox  +instance Produces ActivitypubPersonInbox MimeNoContent+
+ lib/Gitea/API/Admin.hs view
@@ -0,0 +1,650 @@+{-+   Gitea API.++   This documentation describes the Gitea API.++   OpenAPI Version: 3.0.1+   Gitea API. API version: 1.19.4+   Generated by OpenAPI Generator (https://openapi-generator.tech)+-}++{-|+Module : Gitea.API.Admin+-}++{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE MonoLocalBinds #-}+{-# LANGUAGE MultiParamTypeClasses #-}+{-# LANGUAGE OverloadedStrings #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing -fno-warn-unused-binds -fno-warn-unused-imports #-}++module Gitea.API.Admin where++import Gitea.Core+import Gitea.MimeTypes+import Gitea.Model as M++import qualified Data.Aeson as A+import qualified Data.ByteString as B+import qualified Data.ByteString.Lazy as BL+import qualified Data.Data as P (Typeable, TypeRep, typeOf, typeRep)+import qualified Data.Foldable as P+import qualified Data.Map as Map+import qualified Data.Maybe as P+import qualified Data.Proxy as P (Proxy(..))+import qualified Data.Set as Set+import qualified Data.String as P+import qualified Data.Text as T+import qualified Data.Text.Encoding as T+import qualified Data.Text.Lazy as TL+import qualified Data.Text.Lazy.Encoding as TL+import qualified Data.Time as TI+import qualified Network.HTTP.Client.MultipartFormData as NH+import qualified Network.HTTP.Media as ME+import qualified Network.HTTP.Types as NH+import qualified Web.FormUrlEncoded as WH+import qualified Web.HttpApiData as WH++import Data.Text (Text)+import GHC.Base ((<|>))++import Prelude ((==),(/=),($), (.),(<$>),(<*>),(>>=),Maybe(..),Bool(..),Char,Double,FilePath,Float,Int,Integer,String,fmap,undefined,mempty,maybe,pure,Monad,Applicative,Functor)+import qualified Prelude as P++-- * Operations+++-- ** Admin++-- *** adminAdoptRepository++-- | @POST \/admin\/unadopted\/{owner}\/{repo}@+-- +-- Adopt unadopted files as a repository+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +adminAdoptRepository+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> GiteaRequest AdminAdoptRepository MimeNoContent NoContent MimeNoContent+adminAdoptRepository (Owner owner) (Repo repo) =+  _mkRequest "POST" ["/admin/unadopted/",toPath owner,"/",toPath repo]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data AdminAdoptRepository  +instance Produces AdminAdoptRepository MimeNoContent+++-- *** adminCreateHook++-- | @POST \/admin\/hooks@+-- +-- Create a hook+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +adminCreateHook+  :: (Consumes AdminCreateHook MimeJSON, MimeRender MimeJSON CreateHookOption)+  => CreateHookOption -- ^ "body"+  -> GiteaRequest AdminCreateHook MimeJSON Hook MimeJSON+adminCreateHook body =+  _mkRequest "POST" ["/admin/hooks"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)+    `setBodyParam` body++data AdminCreateHook +instance HasBodyParam AdminCreateHook CreateHookOption ++-- | @application/json@+instance Consumes AdminCreateHook MimeJSON++-- | @application/json@+instance Produces AdminCreateHook MimeJSON+++-- *** adminCreateOrg++-- | @POST \/admin\/users\/{username}\/orgs@+-- +-- Create an organization+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +adminCreateOrg+  :: (Consumes AdminCreateOrg MimeJSON, MimeRender MimeJSON CreateOrgOption)+  => CreateOrgOption -- ^ "organization"+  -> Username -- ^ "username" -  username of the user that will own the created organization+  -> GiteaRequest AdminCreateOrg MimeJSON Organization MimeJSON+adminCreateOrg organization (Username username) =+  _mkRequest "POST" ["/admin/users/",toPath username,"/orgs"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)+    `setBodyParam` organization++data AdminCreateOrg +instance HasBodyParam AdminCreateOrg CreateOrgOption ++-- | @application/json@+instance Consumes AdminCreateOrg MimeJSON++-- | @application/json@+instance Produces AdminCreateOrg MimeJSON+++-- *** adminCreatePublicKey++-- | @POST \/admin\/users\/{username}\/keys@+-- +-- Add a public key on behalf of a user+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +adminCreatePublicKey+  :: (Consumes AdminCreatePublicKey MimeJSON)+  => Username -- ^ "username" -  username of the user+  -> GiteaRequest AdminCreatePublicKey MimeJSON PublicKey MimeJSON+adminCreatePublicKey (Username username) =+  _mkRequest "POST" ["/admin/users/",toPath username,"/keys"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data AdminCreatePublicKey +instance HasBodyParam AdminCreatePublicKey CreateKeyOption ++-- | @application/json@+instance Consumes AdminCreatePublicKey MimeJSON++-- | @application/json@+instance Produces AdminCreatePublicKey MimeJSON+++-- *** adminCreateRepo++-- | @POST \/admin\/users\/{username}\/repos@+-- +-- Create a repository on behalf of a user+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +adminCreateRepo+  :: (Consumes AdminCreateRepo MimeJSON, MimeRender MimeJSON CreateRepoOption)+  => CreateRepoOption -- ^ "repository"+  -> Username -- ^ "username" -  username of the user. This user will own the created repository+  -> GiteaRequest AdminCreateRepo MimeJSON Repository MimeJSON+adminCreateRepo repository (Username username) =+  _mkRequest "POST" ["/admin/users/",toPath username,"/repos"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)+    `setBodyParam` repository++data AdminCreateRepo +instance HasBodyParam AdminCreateRepo CreateRepoOption ++-- | @application/json@+instance Consumes AdminCreateRepo MimeJSON++-- | @application/json@+instance Produces AdminCreateRepo MimeJSON+++-- *** adminCreateUser++-- | @POST \/admin\/users@+-- +-- Create a user+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +adminCreateUser+  :: (Consumes AdminCreateUser MimeJSON)+  => GiteaRequest AdminCreateUser MimeJSON User MimeJSON+adminCreateUser =+  _mkRequest "POST" ["/admin/users"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data AdminCreateUser +instance HasBodyParam AdminCreateUser CreateUserOption ++-- | @application/json@+instance Consumes AdminCreateUser MimeJSON++-- | @application/json@+instance Produces AdminCreateUser MimeJSON+++-- *** adminCronList++-- | @GET \/admin\/cron@+-- +-- List cron tasks+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +adminCronList+  :: GiteaRequest AdminCronList MimeNoContent [Cron] MimeJSON+adminCronList =+  _mkRequest "GET" ["/admin/cron"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data AdminCronList  ++-- | /Optional Param/ "page" - page number of results to return (1-based)+instance HasOptionalParam AdminCronList Page where+  applyOptionalParam req (Page xs) =+    req `addQuery` toQuery ("page", Just xs)++-- | /Optional Param/ "limit" - page size of results+instance HasOptionalParam AdminCronList Limit where+  applyOptionalParam req (Limit xs) =+    req `addQuery` toQuery ("limit", Just xs)+-- | @application/json@+instance Produces AdminCronList MimeJSON+++-- *** adminCronRun++-- | @POST \/admin\/cron\/{task}@+-- +-- Run cron task+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +adminCronRun+  :: Task -- ^ "task" -  task to run+  -> GiteaRequest AdminCronRun MimeNoContent NoContent MimeNoContent+adminCronRun (Task task) =+  _mkRequest "POST" ["/admin/cron/",toPath task]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data AdminCronRun  +instance Produces AdminCronRun MimeNoContent+++-- *** adminDeleteHook++-- | @DELETE \/admin\/hooks\/{id}@+-- +-- Delete a hook+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +adminDeleteHook+  :: Id -- ^ "id" -  id of the hook to delete+  -> GiteaRequest AdminDeleteHook MimeNoContent NoContent MimeNoContent+adminDeleteHook (Id id) =+  _mkRequest "DELETE" ["/admin/hooks/",toPath id]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data AdminDeleteHook  +instance Produces AdminDeleteHook MimeNoContent+++-- *** adminDeleteUnadoptedRepository++-- | @DELETE \/admin\/unadopted\/{owner}\/{repo}@+-- +-- Delete unadopted files+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +adminDeleteUnadoptedRepository+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> GiteaRequest AdminDeleteUnadoptedRepository MimeNoContent NoContent MimeNoContent+adminDeleteUnadoptedRepository (Owner owner) (Repo repo) =+  _mkRequest "DELETE" ["/admin/unadopted/",toPath owner,"/",toPath repo]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data AdminDeleteUnadoptedRepository  +instance Produces AdminDeleteUnadoptedRepository MimeNoContent+++-- *** adminDeleteUser++-- | @DELETE \/admin\/users\/{username}@+-- +-- Delete a user+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +adminDeleteUser+  :: Username -- ^ "username" -  username of user to delete+  -> GiteaRequest AdminDeleteUser MimeNoContent NoContent MimeNoContent+adminDeleteUser (Username username) =+  _mkRequest "DELETE" ["/admin/users/",toPath username]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data AdminDeleteUser  ++-- | /Optional Param/ "purge" - purge the user from the system completely+instance HasOptionalParam AdminDeleteUser Purge where+  applyOptionalParam req (Purge xs) =+    req `addQuery` toQuery ("purge", Just xs)+instance Produces AdminDeleteUser MimeNoContent+++-- *** adminDeleteUserPublicKey++-- | @DELETE \/admin\/users\/{username}\/keys\/{id}@+-- +-- Delete a user's public key+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +adminDeleteUserPublicKey+  :: Username -- ^ "username" -  username of user+  -> Id -- ^ "id" -  id of the key to delete+  -> GiteaRequest AdminDeleteUserPublicKey MimeNoContent NoContent MimeNoContent+adminDeleteUserPublicKey (Username username) (Id id) =+  _mkRequest "DELETE" ["/admin/users/",toPath username,"/keys/",toPath id]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data AdminDeleteUserPublicKey  +instance Produces AdminDeleteUserPublicKey MimeNoContent+++-- *** adminEditHook++-- | @PATCH \/admin\/hooks\/{id}@+-- +-- Update a hook+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +adminEditHook+  :: (Consumes AdminEditHook MimeJSON)+  => Id -- ^ "id" -  id of the hook to update+  -> GiteaRequest AdminEditHook MimeJSON Hook MimeJSON+adminEditHook (Id id) =+  _mkRequest "PATCH" ["/admin/hooks/",toPath id]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data AdminEditHook +instance HasBodyParam AdminEditHook EditHookOption ++-- | @application/json@+instance Consumes AdminEditHook MimeJSON++-- | @application/json@+instance Produces AdminEditHook MimeJSON+++-- *** adminEditUser++-- | @PATCH \/admin\/users\/{username}@+-- +-- Edit an existing user+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +adminEditUser+  :: (Consumes AdminEditUser MimeJSON)+  => Username -- ^ "username" -  username of user to edit+  -> GiteaRequest AdminEditUser MimeJSON User MimeJSON+adminEditUser (Username username) =+  _mkRequest "PATCH" ["/admin/users/",toPath username]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data AdminEditUser +instance HasBodyParam AdminEditUser EditUserOption ++-- | @application/json@+instance Consumes AdminEditUser MimeJSON++-- | @application/json@+instance Produces AdminEditUser MimeJSON+++-- *** adminGetAllOrgs++-- | @GET \/admin\/orgs@+-- +-- List all organizations+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +adminGetAllOrgs+  :: GiteaRequest AdminGetAllOrgs MimeNoContent [Organization] MimeJSON+adminGetAllOrgs =+  _mkRequest "GET" ["/admin/orgs"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data AdminGetAllOrgs  ++-- | /Optional Param/ "page" - page number of results to return (1-based)+instance HasOptionalParam AdminGetAllOrgs Page where+  applyOptionalParam req (Page xs) =+    req `addQuery` toQuery ("page", Just xs)++-- | /Optional Param/ "limit" - page size of results+instance HasOptionalParam AdminGetAllOrgs Limit where+  applyOptionalParam req (Limit xs) =+    req `addQuery` toQuery ("limit", Just xs)+-- | @application/json@+instance Produces AdminGetAllOrgs MimeJSON+++-- *** adminGetAllUsers++-- | @GET \/admin\/users@+-- +-- List all users+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +adminGetAllUsers+  :: GiteaRequest AdminGetAllUsers MimeNoContent [User] MimeJSON+adminGetAllUsers =+  _mkRequest "GET" ["/admin/users"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data AdminGetAllUsers  ++-- | /Optional Param/ "page" - page number of results to return (1-based)+instance HasOptionalParam AdminGetAllUsers Page where+  applyOptionalParam req (Page xs) =+    req `addQuery` toQuery ("page", Just xs)++-- | /Optional Param/ "limit" - page size of results+instance HasOptionalParam AdminGetAllUsers Limit where+  applyOptionalParam req (Limit xs) =+    req `addQuery` toQuery ("limit", Just xs)+-- | @application/json@+instance Produces AdminGetAllUsers MimeJSON+++-- *** adminGetHook++-- | @GET \/admin\/hooks\/{id}@+-- +-- Get a hook+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +adminGetHook+  :: Id -- ^ "id" -  id of the hook to get+  -> GiteaRequest AdminGetHook MimeNoContent Hook MimeJSON+adminGetHook (Id id) =+  _mkRequest "GET" ["/admin/hooks/",toPath id]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data AdminGetHook  +-- | @application/json@+instance Produces AdminGetHook MimeJSON+++-- *** adminListHooks++-- | @GET \/admin\/hooks@+-- +-- List system's webhooks+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +adminListHooks+  :: GiteaRequest AdminListHooks MimeNoContent [Hook] MimeJSON+adminListHooks =+  _mkRequest "GET" ["/admin/hooks"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data AdminListHooks  ++-- | /Optional Param/ "page" - page number of results to return (1-based)+instance HasOptionalParam AdminListHooks Page where+  applyOptionalParam req (Page xs) =+    req `addQuery` toQuery ("page", Just xs)++-- | /Optional Param/ "limit" - page size of results+instance HasOptionalParam AdminListHooks Limit where+  applyOptionalParam req (Limit xs) =+    req `addQuery` toQuery ("limit", Just xs)+-- | @application/json@+instance Produces AdminListHooks MimeJSON+++-- *** adminUnadoptedList++-- | @GET \/admin\/unadopted@+-- +-- List unadopted repositories+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +adminUnadoptedList+  :: GiteaRequest AdminUnadoptedList MimeNoContent [Text] MimeJSON+adminUnadoptedList =+  _mkRequest "GET" ["/admin/unadopted"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data AdminUnadoptedList  ++-- | /Optional Param/ "page" - page number of results to return (1-based)+instance HasOptionalParam AdminUnadoptedList Page where+  applyOptionalParam req (Page xs) =+    req `addQuery` toQuery ("page", Just xs)++-- | /Optional Param/ "limit" - page size of results+instance HasOptionalParam AdminUnadoptedList Limit where+  applyOptionalParam req (Limit xs) =+    req `addQuery` toQuery ("limit", Just xs)++-- | /Optional Param/ "pattern" - pattern of repositories to search for+instance HasOptionalParam AdminUnadoptedList Pattern where+  applyOptionalParam req (Pattern xs) =+    req `addQuery` toQuery ("pattern", Just xs)+-- | @application/json@+instance Produces AdminUnadoptedList MimeJSON+
+ lib/Gitea/API/Issue.hs view
@@ -0,0 +1,2073 @@+{-+   Gitea API.++   This documentation describes the Gitea API.++   OpenAPI Version: 3.0.1+   Gitea API. API version: 1.19.4+   Generated by OpenAPI Generator (https://openapi-generator.tech)+-}++{-|+Module : Gitea.API.Issue+-}++{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE MonoLocalBinds #-}+{-# LANGUAGE MultiParamTypeClasses #-}+{-# LANGUAGE OverloadedStrings #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing -fno-warn-unused-binds -fno-warn-unused-imports #-}++module Gitea.API.Issue where++import Gitea.Core+import Gitea.MimeTypes+import Gitea.Model as M++import qualified Data.Aeson as A+import qualified Data.ByteString as B+import qualified Data.ByteString.Lazy as BL+import qualified Data.Data as P (Typeable, TypeRep, typeOf, typeRep)+import qualified Data.Foldable as P+import qualified Data.Map as Map+import qualified Data.Maybe as P+import qualified Data.Proxy as P (Proxy(..))+import qualified Data.Set as Set+import qualified Data.String as P+import qualified Data.Text as T+import qualified Data.Text.Encoding as T+import qualified Data.Text.Lazy as TL+import qualified Data.Text.Lazy.Encoding as TL+import qualified Data.Time as TI+import qualified Network.HTTP.Client.MultipartFormData as NH+import qualified Network.HTTP.Media as ME+import qualified Network.HTTP.Types as NH+import qualified Web.FormUrlEncoded as WH+import qualified Web.HttpApiData as WH++import Data.Text (Text)+import GHC.Base ((<|>))++import Prelude ((==),(/=),($), (.),(<$>),(<*>),(>>=),Maybe(..),Bool(..),Char,Double,FilePath,Float,Int,Integer,String,fmap,undefined,mempty,maybe,pure,Monad,Applicative,Functor)+import qualified Prelude as P++-- * Operations+++-- ** Issue++-- *** issueAddLabel++-- | @POST \/repos\/{owner}\/{repo}\/issues\/{index}\/labels@+-- +-- Add a label to an issue+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +issueAddLabel+  :: (Consumes IssueAddLabel MimeJSON)+  => Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Index -- ^ "index" -  index of the issue+  -> GiteaRequest IssueAddLabel MimeJSON [Label] MimeJSON+issueAddLabel (Owner owner) (Repo repo) (Index index) =+  _mkRequest "POST" ["/repos/",toPath owner,"/",toPath repo,"/issues/",toPath index,"/labels"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data IssueAddLabel +instance HasBodyParam IssueAddLabel IssueLabelsOption ++-- | @application/json@+instance Consumes IssueAddLabel MimeJSON++-- | @application/json@+instance Produces IssueAddLabel MimeJSON+++-- *** issueAddSubscription++-- | @PUT \/repos\/{owner}\/{repo}\/issues\/{index}\/subscriptions\/{user}@+-- +-- Subscribe user to issue+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +issueAddSubscription+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Index -- ^ "index" -  index of the issue+  -> User2 -- ^ "user" -  user to subscribe+  -> GiteaRequest IssueAddSubscription MimeNoContent NoContent MimeNoContent+issueAddSubscription (Owner owner) (Repo repo) (Index index) (User2 user) =+  _mkRequest "PUT" ["/repos/",toPath owner,"/",toPath repo,"/issues/",toPath index,"/subscriptions/",toPath user]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data IssueAddSubscription  +instance Produces IssueAddSubscription MimeNoContent+++-- *** issueAddTime++-- | @POST \/repos\/{owner}\/{repo}\/issues\/{index}\/times@+-- +-- Add tracked time to a issue+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +issueAddTime+  :: (Consumes IssueAddTime MimeJSON)+  => Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Index -- ^ "index" -  index of the issue+  -> GiteaRequest IssueAddTime MimeJSON TrackedTime MimeJSON+issueAddTime (Owner owner) (Repo repo) (Index index) =+  _mkRequest "POST" ["/repos/",toPath owner,"/",toPath repo,"/issues/",toPath index,"/times"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data IssueAddTime +instance HasBodyParam IssueAddTime AddTimeOption ++-- | @application/json@+instance Consumes IssueAddTime MimeJSON++-- | @application/json@+instance Produces IssueAddTime MimeJSON+++-- *** issueCheckSubscription++-- | @GET \/repos\/{owner}\/{repo}\/issues\/{index}\/subscriptions\/check@+-- +-- Check if user is subscribed to an issue+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +issueCheckSubscription+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Index -- ^ "index" -  index of the issue+  -> GiteaRequest IssueCheckSubscription MimeNoContent WatchInfo MimeJSON+issueCheckSubscription (Owner owner) (Repo repo) (Index index) =+  _mkRequest "GET" ["/repos/",toPath owner,"/",toPath repo,"/issues/",toPath index,"/subscriptions/check"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data IssueCheckSubscription  +-- | @application/json@+instance Produces IssueCheckSubscription MimeJSON+++-- *** issueClearLabels++-- | @DELETE \/repos\/{owner}\/{repo}\/issues\/{index}\/labels@+-- +-- Remove all labels from an issue+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +issueClearLabels+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Index -- ^ "index" -  index of the issue+  -> GiteaRequest IssueClearLabels MimeNoContent NoContent MimeNoContent+issueClearLabels (Owner owner) (Repo repo) (Index index) =+  _mkRequest "DELETE" ["/repos/",toPath owner,"/",toPath repo,"/issues/",toPath index,"/labels"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data IssueClearLabels  +instance Produces IssueClearLabels MimeNoContent+++-- *** issueCreateComment++-- | @POST \/repos\/{owner}\/{repo}\/issues\/{index}\/comments@+-- +-- Add a comment to an issue+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +issueCreateComment+  :: (Consumes IssueCreateComment MimeJSON)+  => Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Index -- ^ "index" -  index of the issue+  -> GiteaRequest IssueCreateComment MimeJSON Comment MimeJSON+issueCreateComment (Owner owner) (Repo repo) (Index index) =+  _mkRequest "POST" ["/repos/",toPath owner,"/",toPath repo,"/issues/",toPath index,"/comments"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data IssueCreateComment +instance HasBodyParam IssueCreateComment CreateIssueCommentOption ++-- | @application/json@+instance Consumes IssueCreateComment MimeJSON++-- | @application/json@+instance Produces IssueCreateComment MimeJSON+++-- *** issueCreateIssue++-- | @POST \/repos\/{owner}\/{repo}\/issues@+-- +-- Create an issue. If using deadline only the date will be taken into account, and time of day ignored.+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +issueCreateIssue+  :: (Consumes IssueCreateIssue MimeJSON)+  => Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> GiteaRequest IssueCreateIssue MimeJSON Issue MimeJSON+issueCreateIssue (Owner owner) (Repo repo) =+  _mkRequest "POST" ["/repos/",toPath owner,"/",toPath repo,"/issues"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data IssueCreateIssue +instance HasBodyParam IssueCreateIssue CreateIssueOption ++-- | @application/json@+instance Consumes IssueCreateIssue MimeJSON++-- | @application/json@+instance Produces IssueCreateIssue MimeJSON+++-- *** issueCreateIssueAttachment++-- | @POST \/repos\/{owner}\/{repo}\/issues\/{index}\/assets@+-- +-- Create an issue attachment+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +issueCreateIssueAttachment+  :: (Consumes IssueCreateIssueAttachment MimeMultipartFormData)+  => Attachment2 -- ^ "attachment" -  attachment to upload+  -> Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Index -- ^ "index" -  index of the issue+  -> GiteaRequest IssueCreateIssueAttachment MimeMultipartFormData Attachment MimeJSON+issueCreateIssueAttachment (Attachment2 attachment) (Owner owner) (Repo repo) (Index index) =+  _mkRequest "POST" ["/repos/",toPath owner,"/",toPath repo,"/issues/",toPath index,"/assets"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)+    `_addMultiFormPart` NH.partFileSource "attachment" attachment++data IssueCreateIssueAttachment  ++-- | /Optional Param/ "name" - name of the attachment+instance HasOptionalParam IssueCreateIssueAttachment Name where+  applyOptionalParam req (Name xs) =+    req `addQuery` toQuery ("name", Just xs)++-- | @multipart/form-data@+instance Consumes IssueCreateIssueAttachment MimeMultipartFormData++-- | @application/json@+instance Produces IssueCreateIssueAttachment MimeJSON+++-- *** issueCreateIssueCommentAttachment++-- | @POST \/repos\/{owner}\/{repo}\/issues\/comments\/{id}\/assets@+-- +-- Create a comment attachment+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +issueCreateIssueCommentAttachment+  :: (Consumes IssueCreateIssueCommentAttachment MimeMultipartFormData)+  => Attachment2 -- ^ "attachment" -  attachment to upload+  -> Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Id -- ^ "id" -  id of the comment+  -> GiteaRequest IssueCreateIssueCommentAttachment MimeMultipartFormData Attachment MimeJSON+issueCreateIssueCommentAttachment (Attachment2 attachment) (Owner owner) (Repo repo) (Id id) =+  _mkRequest "POST" ["/repos/",toPath owner,"/",toPath repo,"/issues/comments/",toPath id,"/assets"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)+    `_addMultiFormPart` NH.partFileSource "attachment" attachment++data IssueCreateIssueCommentAttachment  ++-- | /Optional Param/ "name" - name of the attachment+instance HasOptionalParam IssueCreateIssueCommentAttachment Name where+  applyOptionalParam req (Name xs) =+    req `addQuery` toQuery ("name", Just xs)++-- | @multipart/form-data@+instance Consumes IssueCreateIssueCommentAttachment MimeMultipartFormData++-- | @application/json@+instance Produces IssueCreateIssueCommentAttachment MimeJSON+++-- *** issueCreateLabel++-- | @POST \/repos\/{owner}\/{repo}\/labels@+-- +-- Create a label+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +issueCreateLabel+  :: (Consumes IssueCreateLabel MimeJSON)+  => Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> GiteaRequest IssueCreateLabel MimeJSON Label MimeJSON+issueCreateLabel (Owner owner) (Repo repo) =+  _mkRequest "POST" ["/repos/",toPath owner,"/",toPath repo,"/labels"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data IssueCreateLabel +instance HasBodyParam IssueCreateLabel CreateLabelOption ++-- | @application/json@+instance Consumes IssueCreateLabel MimeJSON++-- | @application/json@+instance Produces IssueCreateLabel MimeJSON+++-- *** issueCreateMilestone++-- | @POST \/repos\/{owner}\/{repo}\/milestones@+-- +-- Create a milestone+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +issueCreateMilestone+  :: (Consumes IssueCreateMilestone MimeJSON)+  => Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> GiteaRequest IssueCreateMilestone MimeJSON Milestone MimeJSON+issueCreateMilestone (Owner owner) (Repo repo) =+  _mkRequest "POST" ["/repos/",toPath owner,"/",toPath repo,"/milestones"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data IssueCreateMilestone +instance HasBodyParam IssueCreateMilestone CreateMilestoneOption ++-- | @application/json@+instance Consumes IssueCreateMilestone MimeJSON++-- | @application/json@+instance Produces IssueCreateMilestone MimeJSON+++-- *** issueDelete++-- | @DELETE \/repos\/{owner}\/{repo}\/issues\/{index}@+-- +-- Delete an issue+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +issueDelete+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Index -- ^ "index" -  index of issue to delete+  -> GiteaRequest IssueDelete MimeNoContent NoContent MimeNoContent+issueDelete (Owner owner) (Repo repo) (Index index) =+  _mkRequest "DELETE" ["/repos/",toPath owner,"/",toPath repo,"/issues/",toPath index]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data IssueDelete  +instance Produces IssueDelete MimeNoContent+++-- *** issueDeleteComment++-- | @DELETE \/repos\/{owner}\/{repo}\/issues\/comments\/{id}@+-- +-- Delete a comment+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +issueDeleteComment+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Id -- ^ "id" -  id of comment to delete+  -> GiteaRequest IssueDeleteComment MimeNoContent NoContent MimeNoContent+issueDeleteComment (Owner owner) (Repo repo) (Id id) =+  _mkRequest "DELETE" ["/repos/",toPath owner,"/",toPath repo,"/issues/comments/",toPath id]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data IssueDeleteComment  +instance Produces IssueDeleteComment MimeNoContent+++-- *** issueDeleteCommentDeprecated++-- | @DELETE \/repos\/{owner}\/{repo}\/issues\/{index}\/comments\/{id}@+-- +-- Delete a comment+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +issueDeleteCommentDeprecated+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> IndexInt -- ^ "index" -  this parameter is ignored+  -> Id -- ^ "id" -  id of comment to delete+  -> GiteaRequest IssueDeleteCommentDeprecated MimeNoContent NoContent MimeNoContent+issueDeleteCommentDeprecated (Owner owner) (Repo repo) (IndexInt index) (Id id) =+  _mkRequest "DELETE" ["/repos/",toPath owner,"/",toPath repo,"/issues/",toPath index,"/comments/",toPath id]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++{-# DEPRECATED issueDeleteCommentDeprecated "" #-}++data IssueDeleteCommentDeprecated  +instance Produces IssueDeleteCommentDeprecated MimeNoContent+++-- *** issueDeleteCommentReaction++-- | @DELETE \/repos\/{owner}\/{repo}\/issues\/comments\/{id}\/reactions@+-- +-- Remove a reaction from a comment of an issue+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +issueDeleteCommentReaction+  :: (Consumes IssueDeleteCommentReaction MimeJSON)+  => Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Id -- ^ "id" -  id of the comment to edit+  -> GiteaRequest IssueDeleteCommentReaction MimeJSON NoContent MimeNoContent+issueDeleteCommentReaction (Owner owner) (Repo repo) (Id id) =+  _mkRequest "DELETE" ["/repos/",toPath owner,"/",toPath repo,"/issues/comments/",toPath id,"/reactions"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data IssueDeleteCommentReaction +instance HasBodyParam IssueDeleteCommentReaction EditReactionOption ++-- | @application/json@+instance Consumes IssueDeleteCommentReaction MimeJSON++instance Produces IssueDeleteCommentReaction MimeNoContent+++-- *** issueDeleteIssueAttachment++-- | @DELETE \/repos\/{owner}\/{repo}\/issues\/{index}\/assets\/{attachment_id}@+-- +-- Delete an issue attachment+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +issueDeleteIssueAttachment+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Index -- ^ "index" -  index of the issue+  -> AttachmentId -- ^ "attachmentId" -  id of the attachment to delete+  -> GiteaRequest IssueDeleteIssueAttachment MimeNoContent NoContent MimeNoContent+issueDeleteIssueAttachment (Owner owner) (Repo repo) (Index index) (AttachmentId attachmentId) =+  _mkRequest "DELETE" ["/repos/",toPath owner,"/",toPath repo,"/issues/",toPath index,"/assets/",toPath attachmentId]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data IssueDeleteIssueAttachment  +instance Produces IssueDeleteIssueAttachment MimeNoContent+++-- *** issueDeleteIssueCommentAttachment++-- | @DELETE \/repos\/{owner}\/{repo}\/issues\/comments\/{id}\/assets\/{attachment_id}@+-- +-- Delete a comment attachment+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +issueDeleteIssueCommentAttachment+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Id -- ^ "id" -  id of the comment+  -> AttachmentId -- ^ "attachmentId" -  id of the attachment to delete+  -> GiteaRequest IssueDeleteIssueCommentAttachment MimeNoContent NoContent MimeNoContent+issueDeleteIssueCommentAttachment (Owner owner) (Repo repo) (Id id) (AttachmentId attachmentId) =+  _mkRequest "DELETE" ["/repos/",toPath owner,"/",toPath repo,"/issues/comments/",toPath id,"/assets/",toPath attachmentId]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data IssueDeleteIssueCommentAttachment  +instance Produces IssueDeleteIssueCommentAttachment MimeNoContent+++-- *** issueDeleteIssueReaction++-- | @DELETE \/repos\/{owner}\/{repo}\/issues\/{index}\/reactions@+-- +-- Remove a reaction from an issue+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +issueDeleteIssueReaction+  :: (Consumes IssueDeleteIssueReaction MimeJSON)+  => Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Index -- ^ "index" -  index of the issue+  -> GiteaRequest IssueDeleteIssueReaction MimeJSON NoContent MimeNoContent+issueDeleteIssueReaction (Owner owner) (Repo repo) (Index index) =+  _mkRequest "DELETE" ["/repos/",toPath owner,"/",toPath repo,"/issues/",toPath index,"/reactions"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data IssueDeleteIssueReaction +instance HasBodyParam IssueDeleteIssueReaction EditReactionOption ++-- | @application/json@+instance Consumes IssueDeleteIssueReaction MimeJSON++instance Produces IssueDeleteIssueReaction MimeNoContent+++-- *** issueDeleteLabel++-- | @DELETE \/repos\/{owner}\/{repo}\/labels\/{id}@+-- +-- Delete a label+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +issueDeleteLabel+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Id -- ^ "id" -  id of the label to delete+  -> GiteaRequest IssueDeleteLabel MimeNoContent NoContent MimeNoContent+issueDeleteLabel (Owner owner) (Repo repo) (Id id) =+  _mkRequest "DELETE" ["/repos/",toPath owner,"/",toPath repo,"/labels/",toPath id]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data IssueDeleteLabel  +instance Produces IssueDeleteLabel MimeNoContent+++-- *** issueDeleteMilestone++-- | @DELETE \/repos\/{owner}\/{repo}\/milestones\/{id}@+-- +-- Delete a milestone+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +issueDeleteMilestone+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> IdText -- ^ "id" -  the milestone to delete, identified by ID and if not available by name+  -> GiteaRequest IssueDeleteMilestone MimeNoContent NoContent MimeNoContent+issueDeleteMilestone (Owner owner) (Repo repo) (IdText id) =+  _mkRequest "DELETE" ["/repos/",toPath owner,"/",toPath repo,"/milestones/",toPath id]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data IssueDeleteMilestone  +instance Produces IssueDeleteMilestone MimeNoContent+++-- *** issueDeleteStopWatch++-- | @DELETE \/repos\/{owner}\/{repo}\/issues\/{index}\/stopwatch\/delete@+-- +-- Delete an issue's existing stopwatch.+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +issueDeleteStopWatch+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Index -- ^ "index" -  index of the issue to stop the stopwatch on+  -> GiteaRequest IssueDeleteStopWatch MimeNoContent NoContent MimeNoContent+issueDeleteStopWatch (Owner owner) (Repo repo) (Index index) =+  _mkRequest "DELETE" ["/repos/",toPath owner,"/",toPath repo,"/issues/",toPath index,"/stopwatch/delete"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data IssueDeleteStopWatch  +instance Produces IssueDeleteStopWatch MimeNoContent+++-- *** issueDeleteSubscription++-- | @DELETE \/repos\/{owner}\/{repo}\/issues\/{index}\/subscriptions\/{user}@+-- +-- Unsubscribe user from issue+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +issueDeleteSubscription+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Index -- ^ "index" -  index of the issue+  -> User2 -- ^ "user" -  user witch unsubscribe+  -> GiteaRequest IssueDeleteSubscription MimeNoContent NoContent MimeNoContent+issueDeleteSubscription (Owner owner) (Repo repo) (Index index) (User2 user) =+  _mkRequest "DELETE" ["/repos/",toPath owner,"/",toPath repo,"/issues/",toPath index,"/subscriptions/",toPath user]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data IssueDeleteSubscription  +instance Produces IssueDeleteSubscription MimeNoContent+++-- *** issueDeleteTime++-- | @DELETE \/repos\/{owner}\/{repo}\/issues\/{index}\/times\/{id}@+-- +-- Delete specific tracked time+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +issueDeleteTime+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Index -- ^ "index" -  index of the issue+  -> Id -- ^ "id" -  id of time to delete+  -> GiteaRequest IssueDeleteTime MimeNoContent NoContent MimeNoContent+issueDeleteTime (Owner owner) (Repo repo) (Index index) (Id id) =+  _mkRequest "DELETE" ["/repos/",toPath owner,"/",toPath repo,"/issues/",toPath index,"/times/",toPath id]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data IssueDeleteTime  +instance Produces IssueDeleteTime MimeNoContent+++-- *** issueEditComment++-- | @PATCH \/repos\/{owner}\/{repo}\/issues\/comments\/{id}@+-- +-- Edit a comment+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +issueEditComment+  :: (Consumes IssueEditComment MimeJSON)+  => Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Id -- ^ "id" -  id of the comment to edit+  -> GiteaRequest IssueEditComment MimeJSON Comment MimeJSON+issueEditComment (Owner owner) (Repo repo) (Id id) =+  _mkRequest "PATCH" ["/repos/",toPath owner,"/",toPath repo,"/issues/comments/",toPath id]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data IssueEditComment +instance HasBodyParam IssueEditComment EditIssueCommentOption ++-- | @application/json@+instance Consumes IssueEditComment MimeJSON++-- | @application/json@+instance Produces IssueEditComment MimeJSON+++-- *** issueEditCommentDeprecated++-- | @PATCH \/repos\/{owner}\/{repo}\/issues\/{index}\/comments\/{id}@+-- +-- Edit a comment+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +issueEditCommentDeprecated+  :: (Consumes IssueEditCommentDeprecated MimeJSON)+  => Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> IndexInt -- ^ "index" -  this parameter is ignored+  -> Id -- ^ "id" -  id of the comment to edit+  -> GiteaRequest IssueEditCommentDeprecated MimeJSON Comment MimeJSON+issueEditCommentDeprecated (Owner owner) (Repo repo) (IndexInt index) (Id id) =+  _mkRequest "PATCH" ["/repos/",toPath owner,"/",toPath repo,"/issues/",toPath index,"/comments/",toPath id]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++{-# DEPRECATED issueEditCommentDeprecated "" #-}++data IssueEditCommentDeprecated +instance HasBodyParam IssueEditCommentDeprecated EditIssueCommentOption ++-- | @application/json@+instance Consumes IssueEditCommentDeprecated MimeJSON++-- | @application/json@+instance Produces IssueEditCommentDeprecated MimeJSON+++-- *** issueEditIssue++-- | @PATCH \/repos\/{owner}\/{repo}\/issues\/{index}@+-- +-- Edit an issue. If using deadline only the date will be taken into account, and time of day ignored.+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +issueEditIssue+  :: (Consumes IssueEditIssue MimeJSON)+  => Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Index -- ^ "index" -  index of the issue to edit+  -> GiteaRequest IssueEditIssue MimeJSON Issue MimeJSON+issueEditIssue (Owner owner) (Repo repo) (Index index) =+  _mkRequest "PATCH" ["/repos/",toPath owner,"/",toPath repo,"/issues/",toPath index]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data IssueEditIssue +instance HasBodyParam IssueEditIssue EditIssueOption ++-- | @application/json@+instance Consumes IssueEditIssue MimeJSON++-- | @application/json@+instance Produces IssueEditIssue MimeJSON+++-- *** issueEditIssueAttachment++-- | @PATCH \/repos\/{owner}\/{repo}\/issues\/{index}\/assets\/{attachment_id}@+-- +-- Edit an issue attachment+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +issueEditIssueAttachment+  :: (Consumes IssueEditIssueAttachment MimeJSON)+  => Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Index -- ^ "index" -  index of the issue+  -> AttachmentId -- ^ "attachmentId" -  id of the attachment to edit+  -> GiteaRequest IssueEditIssueAttachment MimeJSON Attachment MimeJSON+issueEditIssueAttachment (Owner owner) (Repo repo) (Index index) (AttachmentId attachmentId) =+  _mkRequest "PATCH" ["/repos/",toPath owner,"/",toPath repo,"/issues/",toPath index,"/assets/",toPath attachmentId]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data IssueEditIssueAttachment +instance HasBodyParam IssueEditIssueAttachment EditAttachmentOptions ++-- | @application/json@+instance Consumes IssueEditIssueAttachment MimeJSON++-- | @application/json@+instance Produces IssueEditIssueAttachment MimeJSON+++-- *** issueEditIssueCommentAttachment++-- | @PATCH \/repos\/{owner}\/{repo}\/issues\/comments\/{id}\/assets\/{attachment_id}@+-- +-- Edit a comment attachment+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +issueEditIssueCommentAttachment+  :: (Consumes IssueEditIssueCommentAttachment MimeJSON)+  => Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Id -- ^ "id" -  id of the comment+  -> AttachmentId -- ^ "attachmentId" -  id of the attachment to edit+  -> GiteaRequest IssueEditIssueCommentAttachment MimeJSON Attachment MimeJSON+issueEditIssueCommentAttachment (Owner owner) (Repo repo) (Id id) (AttachmentId attachmentId) =+  _mkRequest "PATCH" ["/repos/",toPath owner,"/",toPath repo,"/issues/comments/",toPath id,"/assets/",toPath attachmentId]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data IssueEditIssueCommentAttachment +instance HasBodyParam IssueEditIssueCommentAttachment EditAttachmentOptions ++-- | @application/json@+instance Consumes IssueEditIssueCommentAttachment MimeJSON++-- | @application/json@+instance Produces IssueEditIssueCommentAttachment MimeJSON+++-- *** issueEditIssueDeadline++-- | @POST \/repos\/{owner}\/{repo}\/issues\/{index}\/deadline@+-- +-- Set an issue deadline. If set to null, the deadline is deleted. If using deadline only the date will be taken into account, and time of day ignored.+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +issueEditIssueDeadline+  :: (Consumes IssueEditIssueDeadline MimeJSON)+  => Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Index -- ^ "index" -  index of the issue to create or update a deadline on+  -> GiteaRequest IssueEditIssueDeadline MimeJSON IssueDeadline MimeJSON+issueEditIssueDeadline (Owner owner) (Repo repo) (Index index) =+  _mkRequest "POST" ["/repos/",toPath owner,"/",toPath repo,"/issues/",toPath index,"/deadline"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data IssueEditIssueDeadline +instance HasBodyParam IssueEditIssueDeadline EditDeadlineOption ++-- | @application/json@+instance Consumes IssueEditIssueDeadline MimeJSON++-- | @application/json@+instance Produces IssueEditIssueDeadline MimeJSON+++-- *** issueEditLabel++-- | @PATCH \/repos\/{owner}\/{repo}\/labels\/{id}@+-- +-- Update a label+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +issueEditLabel+  :: (Consumes IssueEditLabel MimeJSON)+  => Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Id -- ^ "id" -  id of the label to edit+  -> GiteaRequest IssueEditLabel MimeJSON Label MimeJSON+issueEditLabel (Owner owner) (Repo repo) (Id id) =+  _mkRequest "PATCH" ["/repos/",toPath owner,"/",toPath repo,"/labels/",toPath id]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data IssueEditLabel +instance HasBodyParam IssueEditLabel EditLabelOption ++-- | @application/json@+instance Consumes IssueEditLabel MimeJSON++-- | @application/json@+instance Produces IssueEditLabel MimeJSON+++-- *** issueEditMilestone++-- | @PATCH \/repos\/{owner}\/{repo}\/milestones\/{id}@+-- +-- Update a milestone+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +issueEditMilestone+  :: (Consumes IssueEditMilestone MimeJSON)+  => Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> IdText -- ^ "id" -  the milestone to edit, identified by ID and if not available by name+  -> GiteaRequest IssueEditMilestone MimeJSON Milestone MimeJSON+issueEditMilestone (Owner owner) (Repo repo) (IdText id) =+  _mkRequest "PATCH" ["/repos/",toPath owner,"/",toPath repo,"/milestones/",toPath id]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data IssueEditMilestone +instance HasBodyParam IssueEditMilestone EditMilestoneOption ++-- | @application/json@+instance Consumes IssueEditMilestone MimeJSON++-- | @application/json@+instance Produces IssueEditMilestone MimeJSON+++-- *** issueGetComment++-- | @GET \/repos\/{owner}\/{repo}\/issues\/comments\/{id}@+-- +-- Get a comment+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +issueGetComment+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Id -- ^ "id" -  id of the comment+  -> GiteaRequest IssueGetComment MimeNoContent Comment MimeJSON+issueGetComment (Owner owner) (Repo repo) (Id id) =+  _mkRequest "GET" ["/repos/",toPath owner,"/",toPath repo,"/issues/comments/",toPath id]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data IssueGetComment  +-- | @application/json@+instance Produces IssueGetComment MimeJSON+++-- *** issueGetCommentReactions++-- | @GET \/repos\/{owner}\/{repo}\/issues\/comments\/{id}\/reactions@+-- +-- Get a list of reactions from a comment of an issue+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +issueGetCommentReactions+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Id -- ^ "id" -  id of the comment to edit+  -> GiteaRequest IssueGetCommentReactions MimeNoContent [Reaction] MimeJSON+issueGetCommentReactions (Owner owner) (Repo repo) (Id id) =+  _mkRequest "GET" ["/repos/",toPath owner,"/",toPath repo,"/issues/comments/",toPath id,"/reactions"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data IssueGetCommentReactions  +-- | @application/json@+instance Produces IssueGetCommentReactions MimeJSON+++-- *** issueGetComments++-- | @GET \/repos\/{owner}\/{repo}\/issues\/{index}\/comments@+-- +-- List all comments on an issue+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +issueGetComments+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Index -- ^ "index" -  index of the issue+  -> GiteaRequest IssueGetComments MimeNoContent [Comment] MimeJSON+issueGetComments (Owner owner) (Repo repo) (Index index) =+  _mkRequest "GET" ["/repos/",toPath owner,"/",toPath repo,"/issues/",toPath index,"/comments"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data IssueGetComments  ++-- | /Optional Param/ "since" - if provided, only comments updated since the specified time are returned.+instance HasOptionalParam IssueGetComments Since where+  applyOptionalParam req (Since xs) =+    req `addQuery` toQuery ("since", Just xs)++-- | /Optional Param/ "before" - if provided, only comments updated before the provided time are returned.+instance HasOptionalParam IssueGetComments Before where+  applyOptionalParam req (Before xs) =+    req `addQuery` toQuery ("before", Just xs)+-- | @application/json@+instance Produces IssueGetComments MimeJSON+++-- *** issueGetCommentsAndTimeline++-- | @GET \/repos\/{owner}\/{repo}\/issues\/{index}\/timeline@+-- +-- List all comments and events on an issue+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +issueGetCommentsAndTimeline+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Index -- ^ "index" -  index of the issue+  -> GiteaRequest IssueGetCommentsAndTimeline MimeNoContent [TimelineComment] MimeJSON+issueGetCommentsAndTimeline (Owner owner) (Repo repo) (Index index) =+  _mkRequest "GET" ["/repos/",toPath owner,"/",toPath repo,"/issues/",toPath index,"/timeline"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data IssueGetCommentsAndTimeline  ++-- | /Optional Param/ "since" - if provided, only comments updated since the specified time are returned.+instance HasOptionalParam IssueGetCommentsAndTimeline Since where+  applyOptionalParam req (Since xs) =+    req `addQuery` toQuery ("since", Just xs)++-- | /Optional Param/ "page" - page number of results to return (1-based)+instance HasOptionalParam IssueGetCommentsAndTimeline Page where+  applyOptionalParam req (Page xs) =+    req `addQuery` toQuery ("page", Just xs)++-- | /Optional Param/ "limit" - page size of results+instance HasOptionalParam IssueGetCommentsAndTimeline Limit where+  applyOptionalParam req (Limit xs) =+    req `addQuery` toQuery ("limit", Just xs)++-- | /Optional Param/ "before" - if provided, only comments updated before the provided time are returned.+instance HasOptionalParam IssueGetCommentsAndTimeline Before where+  applyOptionalParam req (Before xs) =+    req `addQuery` toQuery ("before", Just xs)+-- | @application/json@+instance Produces IssueGetCommentsAndTimeline MimeJSON+++-- *** issueGetIssue++-- | @GET \/repos\/{owner}\/{repo}\/issues\/{index}@+-- +-- Get an issue+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +issueGetIssue+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Index -- ^ "index" -  index of the issue to get+  -> GiteaRequest IssueGetIssue MimeNoContent Issue MimeJSON+issueGetIssue (Owner owner) (Repo repo) (Index index) =+  _mkRequest "GET" ["/repos/",toPath owner,"/",toPath repo,"/issues/",toPath index]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data IssueGetIssue  +-- | @application/json@+instance Produces IssueGetIssue MimeJSON+++-- *** issueGetIssueAttachment++-- | @GET \/repos\/{owner}\/{repo}\/issues\/{index}\/assets\/{attachment_id}@+-- +-- Get an issue attachment+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +issueGetIssueAttachment+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Index -- ^ "index" -  index of the issue+  -> AttachmentId -- ^ "attachmentId" -  id of the attachment to get+  -> GiteaRequest IssueGetIssueAttachment MimeNoContent Attachment MimeJSON+issueGetIssueAttachment (Owner owner) (Repo repo) (Index index) (AttachmentId attachmentId) =+  _mkRequest "GET" ["/repos/",toPath owner,"/",toPath repo,"/issues/",toPath index,"/assets/",toPath attachmentId]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data IssueGetIssueAttachment  +-- | @application/json@+instance Produces IssueGetIssueAttachment MimeJSON+++-- *** issueGetIssueCommentAttachment++-- | @GET \/repos\/{owner}\/{repo}\/issues\/comments\/{id}\/assets\/{attachment_id}@+-- +-- Get a comment attachment+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +issueGetIssueCommentAttachment+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Id -- ^ "id" -  id of the comment+  -> AttachmentId -- ^ "attachmentId" -  id of the attachment to get+  -> GiteaRequest IssueGetIssueCommentAttachment MimeNoContent Attachment MimeJSON+issueGetIssueCommentAttachment (Owner owner) (Repo repo) (Id id) (AttachmentId attachmentId) =+  _mkRequest "GET" ["/repos/",toPath owner,"/",toPath repo,"/issues/comments/",toPath id,"/assets/",toPath attachmentId]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data IssueGetIssueCommentAttachment  +-- | @application/json@+instance Produces IssueGetIssueCommentAttachment MimeJSON+++-- *** issueGetIssueReactions++-- | @GET \/repos\/{owner}\/{repo}\/issues\/{index}\/reactions@+-- +-- Get a list reactions of an issue+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +issueGetIssueReactions+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Index -- ^ "index" -  index of the issue+  -> GiteaRequest IssueGetIssueReactions MimeNoContent [Reaction] MimeJSON+issueGetIssueReactions (Owner owner) (Repo repo) (Index index) =+  _mkRequest "GET" ["/repos/",toPath owner,"/",toPath repo,"/issues/",toPath index,"/reactions"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data IssueGetIssueReactions  ++-- | /Optional Param/ "page" - page number of results to return (1-based)+instance HasOptionalParam IssueGetIssueReactions Page where+  applyOptionalParam req (Page xs) =+    req `addQuery` toQuery ("page", Just xs)++-- | /Optional Param/ "limit" - page size of results+instance HasOptionalParam IssueGetIssueReactions Limit where+  applyOptionalParam req (Limit xs) =+    req `addQuery` toQuery ("limit", Just xs)+-- | @application/json@+instance Produces IssueGetIssueReactions MimeJSON+++-- *** issueGetLabel++-- | @GET \/repos\/{owner}\/{repo}\/labels\/{id}@+-- +-- Get a single label+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +issueGetLabel+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Id -- ^ "id" -  id of the label to get+  -> GiteaRequest IssueGetLabel MimeNoContent Label MimeJSON+issueGetLabel (Owner owner) (Repo repo) (Id id) =+  _mkRequest "GET" ["/repos/",toPath owner,"/",toPath repo,"/labels/",toPath id]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data IssueGetLabel  +-- | @application/json@+instance Produces IssueGetLabel MimeJSON+++-- *** issueGetLabels++-- | @GET \/repos\/{owner}\/{repo}\/issues\/{index}\/labels@+-- +-- Get an issue's labels+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +issueGetLabels+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Index -- ^ "index" -  index of the issue+  -> GiteaRequest IssueGetLabels MimeNoContent [Label] MimeJSON+issueGetLabels (Owner owner) (Repo repo) (Index index) =+  _mkRequest "GET" ["/repos/",toPath owner,"/",toPath repo,"/issues/",toPath index,"/labels"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data IssueGetLabels  +-- | @application/json@+instance Produces IssueGetLabels MimeJSON+++-- *** issueGetMilestone++-- | @GET \/repos\/{owner}\/{repo}\/milestones\/{id}@+-- +-- Get a milestone+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +issueGetMilestone+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> IdText -- ^ "id" -  the milestone to get, identified by ID and if not available by name+  -> GiteaRequest IssueGetMilestone MimeNoContent Milestone MimeJSON+issueGetMilestone (Owner owner) (Repo repo) (IdText id) =+  _mkRequest "GET" ["/repos/",toPath owner,"/",toPath repo,"/milestones/",toPath id]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data IssueGetMilestone  +-- | @application/json@+instance Produces IssueGetMilestone MimeJSON+++-- *** issueGetMilestonesList++-- | @GET \/repos\/{owner}\/{repo}\/milestones@+-- +-- Get all of a repository's opened milestones+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +issueGetMilestonesList+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> GiteaRequest IssueGetMilestonesList MimeNoContent [Milestone] MimeJSON+issueGetMilestonesList (Owner owner) (Repo repo) =+  _mkRequest "GET" ["/repos/",toPath owner,"/",toPath repo,"/milestones"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data IssueGetMilestonesList  ++-- | /Optional Param/ "state" - Milestone state, Recognized values are open, closed and all. Defaults to \"open\"+instance HasOptionalParam IssueGetMilestonesList State where+  applyOptionalParam req (State xs) =+    req `addQuery` toQuery ("state", Just xs)++-- | /Optional Param/ "name" - filter by milestone name+instance HasOptionalParam IssueGetMilestonesList Name where+  applyOptionalParam req (Name xs) =+    req `addQuery` toQuery ("name", Just xs)++-- | /Optional Param/ "page" - page number of results to return (1-based)+instance HasOptionalParam IssueGetMilestonesList Page where+  applyOptionalParam req (Page xs) =+    req `addQuery` toQuery ("page", Just xs)++-- | /Optional Param/ "limit" - page size of results+instance HasOptionalParam IssueGetMilestonesList Limit where+  applyOptionalParam req (Limit xs) =+    req `addQuery` toQuery ("limit", Just xs)+-- | @application/json@+instance Produces IssueGetMilestonesList MimeJSON+++-- *** issueGetRepoComments++-- | @GET \/repos\/{owner}\/{repo}\/issues\/comments@+-- +-- List all comments in a repository+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +issueGetRepoComments+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> GiteaRequest IssueGetRepoComments MimeNoContent [Comment] MimeJSON+issueGetRepoComments (Owner owner) (Repo repo) =+  _mkRequest "GET" ["/repos/",toPath owner,"/",toPath repo,"/issues/comments"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data IssueGetRepoComments  ++-- | /Optional Param/ "since" - if provided, only comments updated since the provided time are returned.+instance HasOptionalParam IssueGetRepoComments Since where+  applyOptionalParam req (Since xs) =+    req `addQuery` toQuery ("since", Just xs)++-- | /Optional Param/ "before" - if provided, only comments updated before the provided time are returned.+instance HasOptionalParam IssueGetRepoComments Before where+  applyOptionalParam req (Before xs) =+    req `addQuery` toQuery ("before", Just xs)++-- | /Optional Param/ "page" - page number of results to return (1-based)+instance HasOptionalParam IssueGetRepoComments Page where+  applyOptionalParam req (Page xs) =+    req `addQuery` toQuery ("page", Just xs)++-- | /Optional Param/ "limit" - page size of results+instance HasOptionalParam IssueGetRepoComments Limit where+  applyOptionalParam req (Limit xs) =+    req `addQuery` toQuery ("limit", Just xs)+-- | @application/json@+instance Produces IssueGetRepoComments MimeJSON+++-- *** issueListIssueAttachments++-- | @GET \/repos\/{owner}\/{repo}\/issues\/{index}\/assets@+-- +-- List issue's attachments+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +issueListIssueAttachments+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Index -- ^ "index" -  index of the issue+  -> GiteaRequest IssueListIssueAttachments MimeNoContent [Attachment] MimeJSON+issueListIssueAttachments (Owner owner) (Repo repo) (Index index) =+  _mkRequest "GET" ["/repos/",toPath owner,"/",toPath repo,"/issues/",toPath index,"/assets"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data IssueListIssueAttachments  +-- | @application/json@+instance Produces IssueListIssueAttachments MimeJSON+++-- *** issueListIssueCommentAttachments++-- | @GET \/repos\/{owner}\/{repo}\/issues\/comments\/{id}\/assets@+-- +-- List comment's attachments+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +issueListIssueCommentAttachments+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Id -- ^ "id" -  id of the comment+  -> GiteaRequest IssueListIssueCommentAttachments MimeNoContent [Attachment] MimeJSON+issueListIssueCommentAttachments (Owner owner) (Repo repo) (Id id) =+  _mkRequest "GET" ["/repos/",toPath owner,"/",toPath repo,"/issues/comments/",toPath id,"/assets"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data IssueListIssueCommentAttachments  +-- | @application/json@+instance Produces IssueListIssueCommentAttachments MimeJSON+++-- *** issueListIssues++-- | @GET \/repos\/{owner}\/{repo}\/issues@+-- +-- List a repository's issues+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +issueListIssues+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> GiteaRequest IssueListIssues MimeNoContent [Issue] MimeJSON+issueListIssues (Owner owner) (Repo repo) =+  _mkRequest "GET" ["/repos/",toPath owner,"/",toPath repo,"/issues"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data IssueListIssues  ++-- | /Optional Param/ "state" - whether issue is open or closed+instance HasOptionalParam IssueListIssues State3 where+  applyOptionalParam req (State3 xs) =+    req `addQuery` toQuery ("state", Just xs)++-- | /Optional Param/ "labels" - comma separated list of labels. Fetch only issues that have any of this labels. Non existent labels are discarded+instance HasOptionalParam IssueListIssues Labels where+  applyOptionalParam req (Labels xs) =+    req `addQuery` toQuery ("labels", Just xs)++-- | /Optional Param/ "q" - search string+instance HasOptionalParam IssueListIssues Q where+  applyOptionalParam req (Q xs) =+    req `addQuery` toQuery ("q", Just xs)++-- | /Optional Param/ "type" - filter by type (issues / pulls) if set+instance HasOptionalParam IssueListIssues ParamType2 where+  applyOptionalParam req (ParamType2 xs) =+    req `addQuery` toQuery ("type", Just xs)++-- | /Optional Param/ "milestones" - comma separated list of milestone names or ids. It uses names and fall back to ids. Fetch only issues that have any of this milestones. Non existent milestones are discarded+instance HasOptionalParam IssueListIssues Milestones where+  applyOptionalParam req (Milestones xs) =+    req `addQuery` toQuery ("milestones", Just xs)++-- | /Optional Param/ "since" - Only show items updated after the given time. This is a timestamp in RFC 3339 format+instance HasOptionalParam IssueListIssues Since where+  applyOptionalParam req (Since xs) =+    req `addQuery` toQuery ("since", Just xs)++-- | /Optional Param/ "before" - Only show items updated before the given time. This is a timestamp in RFC 3339 format+instance HasOptionalParam IssueListIssues Before where+  applyOptionalParam req (Before xs) =+    req `addQuery` toQuery ("before", Just xs)++-- | /Optional Param/ "created_by" - Only show items which were created by the the given user+instance HasOptionalParam IssueListIssues CreatedBy where+  applyOptionalParam req (CreatedBy xs) =+    req `addQuery` toQuery ("created_by", Just xs)++-- | /Optional Param/ "assigned_by" - Only show items for which the given user is assigned+instance HasOptionalParam IssueListIssues AssignedBy where+  applyOptionalParam req (AssignedBy xs) =+    req `addQuery` toQuery ("assigned_by", Just xs)++-- | /Optional Param/ "mentioned_by" - Only show items in which the given user was mentioned+instance HasOptionalParam IssueListIssues MentionedBy where+  applyOptionalParam req (MentionedBy xs) =+    req `addQuery` toQuery ("mentioned_by", Just xs)++-- | /Optional Param/ "page" - page number of results to return (1-based)+instance HasOptionalParam IssueListIssues Page where+  applyOptionalParam req (Page xs) =+    req `addQuery` toQuery ("page", Just xs)++-- | /Optional Param/ "limit" - page size of results+instance HasOptionalParam IssueListIssues Limit where+  applyOptionalParam req (Limit xs) =+    req `addQuery` toQuery ("limit", Just xs)+-- | @application/json@+instance Produces IssueListIssues MimeJSON+++-- *** issueListLabels++-- | @GET \/repos\/{owner}\/{repo}\/labels@+-- +-- Get all of a repository's labels+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +issueListLabels+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> GiteaRequest IssueListLabels MimeNoContent [Label] MimeJSON+issueListLabels (Owner owner) (Repo repo) =+  _mkRequest "GET" ["/repos/",toPath owner,"/",toPath repo,"/labels"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data IssueListLabels  ++-- | /Optional Param/ "page" - page number of results to return (1-based)+instance HasOptionalParam IssueListLabels Page where+  applyOptionalParam req (Page xs) =+    req `addQuery` toQuery ("page", Just xs)++-- | /Optional Param/ "limit" - page size of results+instance HasOptionalParam IssueListLabels Limit where+  applyOptionalParam req (Limit xs) =+    req `addQuery` toQuery ("limit", Just xs)+-- | @application/json@+instance Produces IssueListLabels MimeJSON+++-- *** issuePostCommentReaction++-- | @POST \/repos\/{owner}\/{repo}\/issues\/comments\/{id}\/reactions@+-- +-- Add a reaction to a comment of an issue+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +issuePostCommentReaction+  :: (Consumes IssuePostCommentReaction MimeJSON)+  => Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Id -- ^ "id" -  id of the comment to edit+  -> GiteaRequest IssuePostCommentReaction MimeJSON Reaction MimeJSON+issuePostCommentReaction (Owner owner) (Repo repo) (Id id) =+  _mkRequest "POST" ["/repos/",toPath owner,"/",toPath repo,"/issues/comments/",toPath id,"/reactions"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data IssuePostCommentReaction +instance HasBodyParam IssuePostCommentReaction EditReactionOption ++-- | @application/json@+instance Consumes IssuePostCommentReaction MimeJSON++-- | @application/json@+instance Produces IssuePostCommentReaction MimeJSON+++-- *** issuePostIssueReaction++-- | @POST \/repos\/{owner}\/{repo}\/issues\/{index}\/reactions@+-- +-- Add a reaction to an issue+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +issuePostIssueReaction+  :: (Consumes IssuePostIssueReaction MimeJSON)+  => Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Index -- ^ "index" -  index of the issue+  -> GiteaRequest IssuePostIssueReaction MimeJSON Reaction MimeJSON+issuePostIssueReaction (Owner owner) (Repo repo) (Index index) =+  _mkRequest "POST" ["/repos/",toPath owner,"/",toPath repo,"/issues/",toPath index,"/reactions"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data IssuePostIssueReaction +instance HasBodyParam IssuePostIssueReaction EditReactionOption ++-- | @application/json@+instance Consumes IssuePostIssueReaction MimeJSON++-- | @application/json@+instance Produces IssuePostIssueReaction MimeJSON+++-- *** issueRemoveLabel++-- | @DELETE \/repos\/{owner}\/{repo}\/issues\/{index}\/labels\/{id}@+-- +-- Remove a label from an issue+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +issueRemoveLabel+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Index -- ^ "index" -  index of the issue+  -> Id -- ^ "id" -  id of the label to remove+  -> GiteaRequest IssueRemoveLabel MimeNoContent NoContent MimeNoContent+issueRemoveLabel (Owner owner) (Repo repo) (Index index) (Id id) =+  _mkRequest "DELETE" ["/repos/",toPath owner,"/",toPath repo,"/issues/",toPath index,"/labels/",toPath id]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data IssueRemoveLabel  +instance Produces IssueRemoveLabel MimeNoContent+++-- *** issueReplaceLabels++-- | @PUT \/repos\/{owner}\/{repo}\/issues\/{index}\/labels@+-- +-- Replace an issue's labels+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +issueReplaceLabels+  :: (Consumes IssueReplaceLabels MimeJSON)+  => Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Index -- ^ "index" -  index of the issue+  -> GiteaRequest IssueReplaceLabels MimeJSON [Label] MimeJSON+issueReplaceLabels (Owner owner) (Repo repo) (Index index) =+  _mkRequest "PUT" ["/repos/",toPath owner,"/",toPath repo,"/issues/",toPath index,"/labels"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data IssueReplaceLabels +instance HasBodyParam IssueReplaceLabels IssueLabelsOption ++-- | @application/json@+instance Consumes IssueReplaceLabels MimeJSON++-- | @application/json@+instance Produces IssueReplaceLabels MimeJSON+++-- *** issueResetTime++-- | @DELETE \/repos\/{owner}\/{repo}\/issues\/{index}\/times@+-- +-- Reset a tracked time of an issue+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +issueResetTime+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Index -- ^ "index" -  index of the issue to add tracked time to+  -> GiteaRequest IssueResetTime MimeNoContent NoContent MimeNoContent+issueResetTime (Owner owner) (Repo repo) (Index index) =+  _mkRequest "DELETE" ["/repos/",toPath owner,"/",toPath repo,"/issues/",toPath index,"/times"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data IssueResetTime  +instance Produces IssueResetTime MimeNoContent+++-- *** issueSearchIssues++-- | @GET \/repos\/issues\/search@+-- +-- Search for issues across the repositories that the user has access to+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +issueSearchIssues+  :: GiteaRequest IssueSearchIssues MimeNoContent [Issue] MimeJSON+issueSearchIssues =+  _mkRequest "GET" ["/repos/issues/search"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data IssueSearchIssues  ++-- | /Optional Param/ "state" - whether issue is open or closed+instance HasOptionalParam IssueSearchIssues State where+  applyOptionalParam req (State xs) =+    req `addQuery` toQuery ("state", Just xs)++-- | /Optional Param/ "labels" - comma separated list of labels. Fetch only issues that have any of this labels. Non existent labels are discarded+instance HasOptionalParam IssueSearchIssues Labels where+  applyOptionalParam req (Labels xs) =+    req `addQuery` toQuery ("labels", Just xs)++-- | /Optional Param/ "milestones" - comma separated list of milestone names. Fetch only issues that have any of this milestones. Non existent are discarded+instance HasOptionalParam IssueSearchIssues Milestones where+  applyOptionalParam req (Milestones xs) =+    req `addQuery` toQuery ("milestones", Just xs)++-- | /Optional Param/ "q" - search string+instance HasOptionalParam IssueSearchIssues Q where+  applyOptionalParam req (Q xs) =+    req `addQuery` toQuery ("q", Just xs)++-- | /Optional Param/ "priority_repo_id" - repository to prioritize in the results+instance HasOptionalParam IssueSearchIssues PriorityRepoId where+  applyOptionalParam req (PriorityRepoId xs) =+    req `addQuery` toQuery ("priority_repo_id", Just xs)++-- | /Optional Param/ "type" - filter by type (issues / pulls) if set+instance HasOptionalParam IssueSearchIssues ParamTypeText where+  applyOptionalParam req (ParamTypeText xs) =+    req `addQuery` toQuery ("type", Just xs)++-- | /Optional Param/ "since" - Only show notifications updated after the given time. This is a timestamp in RFC 3339 format+instance HasOptionalParam IssueSearchIssues Since where+  applyOptionalParam req (Since xs) =+    req `addQuery` toQuery ("since", Just xs)++-- | /Optional Param/ "before" - Only show notifications updated before the given time. This is a timestamp in RFC 3339 format+instance HasOptionalParam IssueSearchIssues Before where+  applyOptionalParam req (Before xs) =+    req `addQuery` toQuery ("before", Just xs)++-- | /Optional Param/ "assigned" - filter (issues / pulls) assigned to you, default is false+instance HasOptionalParam IssueSearchIssues Assigned where+  applyOptionalParam req (Assigned xs) =+    req `addQuery` toQuery ("assigned", Just xs)++-- | /Optional Param/ "created" - filter (issues / pulls) created by you, default is false+instance HasOptionalParam IssueSearchIssues Created where+  applyOptionalParam req (Created xs) =+    req `addQuery` toQuery ("created", Just xs)++-- | /Optional Param/ "mentioned" - filter (issues / pulls) mentioning you, default is false+instance HasOptionalParam IssueSearchIssues Mentioned where+  applyOptionalParam req (Mentioned xs) =+    req `addQuery` toQuery ("mentioned", Just xs)++-- | /Optional Param/ "review_requested" - filter pulls requesting your review, default is false+instance HasOptionalParam IssueSearchIssues ReviewRequested where+  applyOptionalParam req (ReviewRequested xs) =+    req `addQuery` toQuery ("review_requested", Just xs)++-- | /Optional Param/ "owner" - filter by owner+instance HasOptionalParam IssueSearchIssues Owner where+  applyOptionalParam req (Owner xs) =+    req `addQuery` toQuery ("owner", Just xs)++-- | /Optional Param/ "team" - filter by team (requires organization owner parameter to be provided)+instance HasOptionalParam IssueSearchIssues Team2 where+  applyOptionalParam req (Team2 xs) =+    req `addQuery` toQuery ("team", Just xs)++-- | /Optional Param/ "page" - page number of results to return (1-based)+instance HasOptionalParam IssueSearchIssues Page where+  applyOptionalParam req (Page xs) =+    req `addQuery` toQuery ("page", Just xs)++-- | /Optional Param/ "limit" - page size of results+instance HasOptionalParam IssueSearchIssues Limit where+  applyOptionalParam req (Limit xs) =+    req `addQuery` toQuery ("limit", Just xs)+-- | @application/json@+instance Produces IssueSearchIssues MimeJSON+++-- *** issueStartStopWatch++-- | @POST \/repos\/{owner}\/{repo}\/issues\/{index}\/stopwatch\/start@+-- +-- Start stopwatch on an issue.+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +issueStartStopWatch+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Index -- ^ "index" -  index of the issue to create the stopwatch on+  -> GiteaRequest IssueStartStopWatch MimeNoContent NoContent MimeNoContent+issueStartStopWatch (Owner owner) (Repo repo) (Index index) =+  _mkRequest "POST" ["/repos/",toPath owner,"/",toPath repo,"/issues/",toPath index,"/stopwatch/start"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data IssueStartStopWatch  +instance Produces IssueStartStopWatch MimeNoContent+++-- *** issueStopStopWatch++-- | @POST \/repos\/{owner}\/{repo}\/issues\/{index}\/stopwatch\/stop@+-- +-- Stop an issue's existing stopwatch.+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +issueStopStopWatch+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Index -- ^ "index" -  index of the issue to stop the stopwatch on+  -> GiteaRequest IssueStopStopWatch MimeNoContent NoContent MimeNoContent+issueStopStopWatch (Owner owner) (Repo repo) (Index index) =+  _mkRequest "POST" ["/repos/",toPath owner,"/",toPath repo,"/issues/",toPath index,"/stopwatch/stop"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data IssueStopStopWatch  +instance Produces IssueStopStopWatch MimeNoContent+++-- *** issueSubscriptions++-- | @GET \/repos\/{owner}\/{repo}\/issues\/{index}\/subscriptions@+-- +-- Get users who subscribed on an issue.+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +issueSubscriptions+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Index -- ^ "index" -  index of the issue+  -> GiteaRequest IssueSubscriptions MimeNoContent [User] MimeJSON+issueSubscriptions (Owner owner) (Repo repo) (Index index) =+  _mkRequest "GET" ["/repos/",toPath owner,"/",toPath repo,"/issues/",toPath index,"/subscriptions"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data IssueSubscriptions  ++-- | /Optional Param/ "page" - page number of results to return (1-based)+instance HasOptionalParam IssueSubscriptions Page where+  applyOptionalParam req (Page xs) =+    req `addQuery` toQuery ("page", Just xs)++-- | /Optional Param/ "limit" - page size of results+instance HasOptionalParam IssueSubscriptions Limit where+  applyOptionalParam req (Limit xs) =+    req `addQuery` toQuery ("limit", Just xs)+-- | @application/json@+instance Produces IssueSubscriptions MimeJSON+++-- *** issueTrackedTimes++-- | @GET \/repos\/{owner}\/{repo}\/issues\/{index}\/times@+-- +-- List an issue's tracked times+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +issueTrackedTimes+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Index -- ^ "index" -  index of the issue+  -> GiteaRequest IssueTrackedTimes MimeNoContent [TrackedTime] MimeJSON+issueTrackedTimes (Owner owner) (Repo repo) (Index index) =+  _mkRequest "GET" ["/repos/",toPath owner,"/",toPath repo,"/issues/",toPath index,"/times"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data IssueTrackedTimes  ++-- | /Optional Param/ "user" - optional filter by user (available for issue managers)+instance HasOptionalParam IssueTrackedTimes User2 where+  applyOptionalParam req (User2 xs) =+    req `addQuery` toQuery ("user", Just xs)++-- | /Optional Param/ "since" - Only show times updated after the given time. This is a timestamp in RFC 3339 format+instance HasOptionalParam IssueTrackedTimes Since where+  applyOptionalParam req (Since xs) =+    req `addQuery` toQuery ("since", Just xs)++-- | /Optional Param/ "before" - Only show times updated before the given time. This is a timestamp in RFC 3339 format+instance HasOptionalParam IssueTrackedTimes Before where+  applyOptionalParam req (Before xs) =+    req `addQuery` toQuery ("before", Just xs)++-- | /Optional Param/ "page" - page number of results to return (1-based)+instance HasOptionalParam IssueTrackedTimes Page where+  applyOptionalParam req (Page xs) =+    req `addQuery` toQuery ("page", Just xs)++-- | /Optional Param/ "limit" - page size of results+instance HasOptionalParam IssueTrackedTimes Limit where+  applyOptionalParam req (Limit xs) =+    req `addQuery` toQuery ("limit", Just xs)+-- | @application/json@+instance Produces IssueTrackedTimes MimeJSON+
+ lib/Gitea/API/Miscellaneous.hs view
@@ -0,0 +1,199 @@+{-+   Gitea API.++   This documentation describes the Gitea API.++   OpenAPI Version: 3.0.1+   Gitea API. API version: 1.19.4+   Generated by OpenAPI Generator (https://openapi-generator.tech)+-}++{-|+Module : Gitea.API.Miscellaneous+-}++{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE MonoLocalBinds #-}+{-# LANGUAGE MultiParamTypeClasses #-}+{-# LANGUAGE OverloadedStrings #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing -fno-warn-unused-binds -fno-warn-unused-imports #-}++module Gitea.API.Miscellaneous where++import Gitea.Core+import Gitea.MimeTypes+import Gitea.Model as M++import qualified Data.Aeson as A+import qualified Data.ByteString as B+import qualified Data.ByteString.Lazy as BL+import qualified Data.Data as P (Typeable, TypeRep, typeOf, typeRep)+import qualified Data.Foldable as P+import qualified Data.Map as Map+import qualified Data.Maybe as P+import qualified Data.Proxy as P (Proxy(..))+import qualified Data.Set as Set+import qualified Data.String as P+import qualified Data.Text as T+import qualified Data.Text.Encoding as T+import qualified Data.Text.Lazy as TL+import qualified Data.Text.Lazy.Encoding as TL+import qualified Data.Time as TI+import qualified Network.HTTP.Client.MultipartFormData as NH+import qualified Network.HTTP.Media as ME+import qualified Network.HTTP.Types as NH+import qualified Web.FormUrlEncoded as WH+import qualified Web.HttpApiData as WH++import Data.Text (Text)+import GHC.Base ((<|>))++import Prelude ((==),(/=),($), (.),(<$>),(<*>),(>>=),Maybe(..),Bool(..),Char,Double,FilePath,Float,Int,Integer,String,fmap,undefined,mempty,maybe,pure,Monad,Applicative,Functor)+import qualified Prelude as P++-- * Operations+++-- ** Miscellaneous++-- *** getNodeInfo++-- | @GET \/nodeinfo@+-- +-- Returns the nodeinfo of the Gitea application+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +getNodeInfo+  :: GiteaRequest GetNodeInfo MimeNoContent NodeInfo MimeJSON+getNodeInfo =+  _mkRequest "GET" ["/nodeinfo"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data GetNodeInfo  +-- | @application/json@+instance Produces GetNodeInfo MimeJSON+++-- *** getSigningKey++-- | @GET \/signing-key.gpg@+-- +-- Get default signing-key.gpg+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +getSigningKey+  :: GiteaRequest GetSigningKey MimeNoContent Text MimePlainText+getSigningKey =+  _mkRequest "GET" ["/signing-key.gpg"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data GetSigningKey  +-- | @text/plain@+instance Produces GetSigningKey MimePlainText+++-- *** getVersion++-- | @GET \/version@+-- +-- Returns the version of the Gitea application+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +getVersion+  :: GiteaRequest GetVersion MimeNoContent ServerVersion MimeJSON+getVersion =+  _mkRequest "GET" ["/version"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data GetVersion  +-- | @application/json@+instance Produces GetVersion MimeJSON+++-- *** renderMarkdown++-- | @POST \/markdown@+-- +-- Render a markdown document as HTML+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +renderMarkdown+  :: (Consumes RenderMarkdown MimeJSON)+  => GiteaRequest RenderMarkdown MimeJSON Text MimeTextHtml+renderMarkdown =+  _mkRequest "POST" ["/markdown"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RenderMarkdown +instance HasBodyParam RenderMarkdown MarkdownOption ++-- | @application/json@+instance Consumes RenderMarkdown MimeJSON++-- | @text/html@+instance Produces RenderMarkdown MimeTextHtml+++-- *** renderMarkdownRaw++-- | @POST \/markdown\/raw@+-- +-- Render raw markdown as HTML+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +renderMarkdownRaw+  :: (Consumes RenderMarkdownRaw MimePlainText, MimeRender MimePlainText Body)+  => Body -- ^ "body" -  Request body to render+  -> GiteaRequest RenderMarkdownRaw MimePlainText Text MimeTextHtml+renderMarkdownRaw body =+  _mkRequest "POST" ["/markdown/raw"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)+    `setBodyParam` body++data RenderMarkdownRaw ++-- | /Body Param/ "body" - Request body to render+instance HasBodyParam RenderMarkdownRaw Body ++-- | @text/plain@+instance Consumes RenderMarkdownRaw MimePlainText++-- | @text/html@+instance Produces RenderMarkdownRaw MimeTextHtml+
+ lib/Gitea/API/Notification.hs view
@@ -0,0 +1,357 @@+{-+   Gitea API.++   This documentation describes the Gitea API.++   OpenAPI Version: 3.0.1+   Gitea API. API version: 1.19.4+   Generated by OpenAPI Generator (https://openapi-generator.tech)+-}++{-|+Module : Gitea.API.Notification+-}++{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE MonoLocalBinds #-}+{-# LANGUAGE MultiParamTypeClasses #-}+{-# LANGUAGE OverloadedStrings #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing -fno-warn-unused-binds -fno-warn-unused-imports #-}++module Gitea.API.Notification where++import Gitea.Core+import Gitea.MimeTypes+import Gitea.Model as M++import qualified Data.Aeson as A+import qualified Data.ByteString as B+import qualified Data.ByteString.Lazy as BL+import qualified Data.Data as P (Typeable, TypeRep, typeOf, typeRep)+import qualified Data.Foldable as P+import qualified Data.Map as Map+import qualified Data.Maybe as P+import qualified Data.Proxy as P (Proxy(..))+import qualified Data.Set as Set+import qualified Data.String as P+import qualified Data.Text as T+import qualified Data.Text.Encoding as T+import qualified Data.Text.Lazy as TL+import qualified Data.Text.Lazy.Encoding as TL+import qualified Data.Time as TI+import qualified Network.HTTP.Client.MultipartFormData as NH+import qualified Network.HTTP.Media as ME+import qualified Network.HTTP.Types as NH+import qualified Web.FormUrlEncoded as WH+import qualified Web.HttpApiData as WH++import Data.Text (Text)+import GHC.Base ((<|>))++import Prelude ((==),(/=),($), (.),(<$>),(<*>),(>>=),Maybe(..),Bool(..),Char,Double,FilePath,Float,Int,Integer,String,fmap,undefined,mempty,maybe,pure,Monad,Applicative,Functor)+import qualified Prelude as P++-- * Operations+++-- ** Notification++-- *** notifyGetList++-- | @GET \/notifications@+-- +-- List users's notification threads+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +notifyGetList+  :: GiteaRequest NotifyGetList MimeNoContent [NotificationThread] MimeJSON+notifyGetList =+  _mkRequest "GET" ["/notifications"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data NotifyGetList  ++-- | /Optional Param/ "all" - If true, show notifications marked as read. Default value is false+instance HasOptionalParam NotifyGetList All where+  applyOptionalParam req (All xs) =+    req `addQuery` toQuery ("all", Just xs)++-- | /Optional Param/ "status-types" - Show notifications with the provided status types. Options are: unread, read and/or pinned. Defaults to unread & pinned.+instance HasOptionalParam NotifyGetList StatusTypes where+  applyOptionalParam req (StatusTypes xs) =+    req `addQuery` toQueryColl MultiParamArray ("status-types", Just xs)++-- | /Optional Param/ "subject-type" - filter notifications by subject type+instance HasOptionalParam NotifyGetList SubjectType where+  applyOptionalParam req (SubjectType xs) =+    req `addQuery` toQueryColl MultiParamArray ("subject-type", Just xs)++-- | /Optional Param/ "since" - Only show notifications updated after the given time. This is a timestamp in RFC 3339 format+instance HasOptionalParam NotifyGetList Since where+  applyOptionalParam req (Since xs) =+    req `addQuery` toQuery ("since", Just xs)++-- | /Optional Param/ "before" - Only show notifications updated before the given time. This is a timestamp in RFC 3339 format+instance HasOptionalParam NotifyGetList Before where+  applyOptionalParam req (Before xs) =+    req `addQuery` toQuery ("before", Just xs)++-- | /Optional Param/ "page" - page number of results to return (1-based)+instance HasOptionalParam NotifyGetList Page where+  applyOptionalParam req (Page xs) =+    req `addQuery` toQuery ("page", Just xs)++-- | /Optional Param/ "limit" - page size of results+instance HasOptionalParam NotifyGetList Limit where+  applyOptionalParam req (Limit xs) =+    req `addQuery` toQuery ("limit", Just xs)+-- | @application/json@+instance Produces NotifyGetList MimeJSON+++-- *** notifyGetRepoList++-- | @GET \/repos\/{owner}\/{repo}\/notifications@+-- +-- List users's notification threads on a specific repo+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +notifyGetRepoList+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> GiteaRequest NotifyGetRepoList MimeNoContent [NotificationThread] MimeJSON+notifyGetRepoList (Owner owner) (Repo repo) =+  _mkRequest "GET" ["/repos/",toPath owner,"/",toPath repo,"/notifications"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data NotifyGetRepoList  ++-- | /Optional Param/ "all" - If true, show notifications marked as read. Default value is false+instance HasOptionalParam NotifyGetRepoList All where+  applyOptionalParam req (All xs) =+    req `addQuery` toQuery ("all", Just xs)++-- | /Optional Param/ "status-types" - Show notifications with the provided status types. Options are: unread, read and/or pinned. Defaults to unread & pinned+instance HasOptionalParam NotifyGetRepoList StatusTypes where+  applyOptionalParam req (StatusTypes xs) =+    req `addQuery` toQueryColl MultiParamArray ("status-types", Just xs)++-- | /Optional Param/ "subject-type" - filter notifications by subject type+instance HasOptionalParam NotifyGetRepoList SubjectType where+  applyOptionalParam req (SubjectType xs) =+    req `addQuery` toQueryColl MultiParamArray ("subject-type", Just xs)++-- | /Optional Param/ "since" - Only show notifications updated after the given time. This is a timestamp in RFC 3339 format+instance HasOptionalParam NotifyGetRepoList Since where+  applyOptionalParam req (Since xs) =+    req `addQuery` toQuery ("since", Just xs)++-- | /Optional Param/ "before" - Only show notifications updated before the given time. This is a timestamp in RFC 3339 format+instance HasOptionalParam NotifyGetRepoList Before where+  applyOptionalParam req (Before xs) =+    req `addQuery` toQuery ("before", Just xs)++-- | /Optional Param/ "page" - page number of results to return (1-based)+instance HasOptionalParam NotifyGetRepoList Page where+  applyOptionalParam req (Page xs) =+    req `addQuery` toQuery ("page", Just xs)++-- | /Optional Param/ "limit" - page size of results+instance HasOptionalParam NotifyGetRepoList Limit where+  applyOptionalParam req (Limit xs) =+    req `addQuery` toQuery ("limit", Just xs)+-- | @application/json@+instance Produces NotifyGetRepoList MimeJSON+++-- *** notifyGetThread++-- | @GET \/notifications\/threads\/{id}@+-- +-- Get notification thread by ID+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +notifyGetThread+  :: IdText -- ^ "id" -  id of notification thread+  -> GiteaRequest NotifyGetThread MimeNoContent NotificationThread MimeJSON+notifyGetThread (IdText id) =+  _mkRequest "GET" ["/notifications/threads/",toPath id]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data NotifyGetThread  +-- | @application/json@+instance Produces NotifyGetThread MimeJSON+++-- *** notifyNewAvailable++-- | @GET \/notifications\/new@+-- +-- Check if unread notifications exist+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +notifyNewAvailable+  :: Accept accept -- ^ request accept ('MimeType')+  -> GiteaRequest NotifyNewAvailable MimeNoContent NotificationCount accept+notifyNewAvailable  _ =+  _mkRequest "GET" ["/notifications/new"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data NotifyNewAvailable  +-- | @text/html@+instance Produces NotifyNewAvailable MimeTextHtml+-- | @application/json@+instance Produces NotifyNewAvailable MimeJSON+++-- *** notifyReadList++-- | @PUT \/notifications@+-- +-- Mark notification threads as read, pinned or unread+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +notifyReadList+  :: GiteaRequest NotifyReadList MimeNoContent [NotificationThread] MimeJSON+notifyReadList =+  _mkRequest "PUT" ["/notifications"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data NotifyReadList  ++-- | /Optional Param/ "last_read_at" - Describes the last point that notifications were checked. Anything updated since this time will not be updated.+instance HasOptionalParam NotifyReadList LastReadAt where+  applyOptionalParam req (LastReadAt xs) =+    req `addQuery` toQuery ("last_read_at", Just xs)++-- | /Optional Param/ "all" - If true, mark all notifications on this repo. Default value is false+instance HasOptionalParam NotifyReadList AllText where+  applyOptionalParam req (AllText xs) =+    req `addQuery` toQuery ("all", Just xs)++-- | /Optional Param/ "status-types" - Mark notifications with the provided status types. Options are: unread, read and/or pinned. Defaults to unread.+instance HasOptionalParam NotifyReadList StatusTypes where+  applyOptionalParam req (StatusTypes xs) =+    req `addQuery` toQueryColl MultiParamArray ("status-types", Just xs)++-- | /Optional Param/ "to-status" - Status to mark notifications as, Defaults to read.+instance HasOptionalParam NotifyReadList ToStatus where+  applyOptionalParam req (ToStatus xs) =+    req `addQuery` toQuery ("to-status", Just xs)+-- | @application/json@+instance Produces NotifyReadList MimeJSON+++-- *** notifyReadRepoList++-- | @PUT \/repos\/{owner}\/{repo}\/notifications@+-- +-- Mark notification threads as read, pinned or unread on a specific repo+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +notifyReadRepoList+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> GiteaRequest NotifyReadRepoList MimeNoContent [NotificationThread] MimeJSON+notifyReadRepoList (Owner owner) (Repo repo) =+  _mkRequest "PUT" ["/repos/",toPath owner,"/",toPath repo,"/notifications"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data NotifyReadRepoList  ++-- | /Optional Param/ "all" - If true, mark all notifications on this repo. Default value is false+instance HasOptionalParam NotifyReadRepoList AllText where+  applyOptionalParam req (AllText xs) =+    req `addQuery` toQuery ("all", Just xs)++-- | /Optional Param/ "status-types" - Mark notifications with the provided status types. Options are: unread, read and/or pinned. Defaults to unread.+instance HasOptionalParam NotifyReadRepoList StatusTypes where+  applyOptionalParam req (StatusTypes xs) =+    req `addQuery` toQueryColl MultiParamArray ("status-types", Just xs)++-- | /Optional Param/ "to-status" - Status to mark notifications as. Defaults to read.+instance HasOptionalParam NotifyReadRepoList ToStatus where+  applyOptionalParam req (ToStatus xs) =+    req `addQuery` toQuery ("to-status", Just xs)++-- | /Optional Param/ "last_read_at" - Describes the last point that notifications were checked. Anything updated since this time will not be updated.+instance HasOptionalParam NotifyReadRepoList LastReadAt where+  applyOptionalParam req (LastReadAt xs) =+    req `addQuery` toQuery ("last_read_at", Just xs)+-- | @application/json@+instance Produces NotifyReadRepoList MimeJSON+++-- *** notifyReadThread++-- | @PATCH \/notifications\/threads\/{id}@+-- +-- Mark notification thread as read by ID+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +notifyReadThread+  :: IdText -- ^ "id" -  id of notification thread+  -> GiteaRequest NotifyReadThread MimeNoContent NotificationThread MimeJSON+notifyReadThread (IdText id) =+  _mkRequest "PATCH" ["/notifications/threads/",toPath id]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data NotifyReadThread  ++-- | /Optional Param/ "to-status" - Status to mark notifications as+instance HasOptionalParam NotifyReadThread ToStatus where+  applyOptionalParam req (ToStatus xs) =+    req `addQuery` toQuery ("to-status", Just xs)+-- | @application/json@+instance Produces NotifyReadThread MimeJSON+
+ lib/Gitea/API/Organization.hs view
@@ -0,0 +1,1355 @@+{-+   Gitea API.++   This documentation describes the Gitea API.++   OpenAPI Version: 3.0.1+   Gitea API. API version: 1.19.4+   Generated by OpenAPI Generator (https://openapi-generator.tech)+-}++{-|+Module : Gitea.API.Organization+-}++{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE MonoLocalBinds #-}+{-# LANGUAGE MultiParamTypeClasses #-}+{-# LANGUAGE OverloadedStrings #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing -fno-warn-unused-binds -fno-warn-unused-imports #-}++module Gitea.API.Organization where++import Gitea.Core+import Gitea.MimeTypes+import Gitea.Model as M++import qualified Data.Aeson as A+import qualified Data.ByteString as B+import qualified Data.ByteString.Lazy as BL+import qualified Data.Data as P (Typeable, TypeRep, typeOf, typeRep)+import qualified Data.Foldable as P+import qualified Data.Map as Map+import qualified Data.Maybe as P+import qualified Data.Proxy as P (Proxy(..))+import qualified Data.Set as Set+import qualified Data.String as P+import qualified Data.Text as T+import qualified Data.Text.Encoding as T+import qualified Data.Text.Lazy as TL+import qualified Data.Text.Lazy.Encoding as TL+import qualified Data.Time as TI+import qualified Network.HTTP.Client.MultipartFormData as NH+import qualified Network.HTTP.Media as ME+import qualified Network.HTTP.Types as NH+import qualified Web.FormUrlEncoded as WH+import qualified Web.HttpApiData as WH++import Data.Text (Text)+import GHC.Base ((<|>))++import Prelude ((==),(/=),($), (.),(<$>),(<*>),(>>=),Maybe(..),Bool(..),Char,Double,FilePath,Float,Int,Integer,String,fmap,undefined,mempty,maybe,pure,Monad,Applicative,Functor)+import qualified Prelude as P++-- * Operations+++-- ** Organization++-- *** createOrgRepo++-- | @POST \/orgs\/{org}\/repos@+-- +-- Create a repository in an organization+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +createOrgRepo+  :: (Consumes CreateOrgRepo MimeJSON)+  => Org -- ^ "org" -  name of organization+  -> GiteaRequest CreateOrgRepo MimeJSON Repository MimeJSON+createOrgRepo (Org org) =+  _mkRequest "POST" ["/orgs/",toPath org,"/repos"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data CreateOrgRepo +instance HasBodyParam CreateOrgRepo CreateRepoOption ++-- | @application/json@+instance Consumes CreateOrgRepo MimeJSON++-- | @application/json@+instance Produces CreateOrgRepo MimeJSON+++-- *** createOrgRepoDeprecated++-- | @POST \/org\/{org}\/repos@+-- +-- Create a repository in an organization+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +createOrgRepoDeprecated+  :: (Consumes CreateOrgRepoDeprecated MimeJSON)+  => Org -- ^ "org" -  name of organization+  -> GiteaRequest CreateOrgRepoDeprecated MimeJSON Repository MimeJSON+createOrgRepoDeprecated (Org org) =+  _mkRequest "POST" ["/org/",toPath org,"/repos"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++{-# DEPRECATED createOrgRepoDeprecated "" #-}++data CreateOrgRepoDeprecated +instance HasBodyParam CreateOrgRepoDeprecated CreateRepoOption ++-- | @application/json@+instance Consumes CreateOrgRepoDeprecated MimeJSON++-- | @application/json@+instance Produces CreateOrgRepoDeprecated MimeJSON+++-- *** orgAddTeamMember++-- | @PUT \/teams\/{id}\/members\/{username}@+-- +-- Add a team member+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +orgAddTeamMember+  :: Id -- ^ "id" -  id of the team+  -> Username -- ^ "username" -  username of the user to add+  -> GiteaRequest OrgAddTeamMember MimeNoContent NoContent MimeNoContent+orgAddTeamMember (Id id) (Username username) =+  _mkRequest "PUT" ["/teams/",toPath id,"/members/",toPath username]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data OrgAddTeamMember  +instance Produces OrgAddTeamMember MimeNoContent+++-- *** orgAddTeamRepository++-- | @PUT \/teams\/{id}\/repos\/{org}\/{repo}@+-- +-- Add a repository to a team+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +orgAddTeamRepository+  :: Id -- ^ "id" -  id of the team+  -> Org -- ^ "org" -  organization that owns the repo to add+  -> Repo -- ^ "repo" -  name of the repo to add+  -> GiteaRequest OrgAddTeamRepository MimeNoContent NoContent MimeNoContent+orgAddTeamRepository (Id id) (Org org) (Repo repo) =+  _mkRequest "PUT" ["/teams/",toPath id,"/repos/",toPath org,"/",toPath repo]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data OrgAddTeamRepository  +instance Produces OrgAddTeamRepository MimeNoContent+++-- *** orgConcealMember++-- | @DELETE \/orgs\/{org}\/public_members\/{username}@+-- +-- Conceal a user's membership+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +orgConcealMember+  :: Org -- ^ "org" -  name of the organization+  -> Username -- ^ "username" -  username of the user+  -> GiteaRequest OrgConcealMember MimeNoContent NoContent MimeNoContent+orgConcealMember (Org org) (Username username) =+  _mkRequest "DELETE" ["/orgs/",toPath org,"/public_members/",toPath username]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data OrgConcealMember  +instance Produces OrgConcealMember MimeNoContent+++-- *** orgCreate++-- | @POST \/orgs@+-- +-- Create an organization+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +orgCreate+  :: (Consumes OrgCreate MimeJSON, MimeRender MimeJSON CreateOrgOption)+  => CreateOrgOption -- ^ "organization"+  -> GiteaRequest OrgCreate MimeJSON Organization MimeJSON+orgCreate organization =+  _mkRequest "POST" ["/orgs"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)+    `setBodyParam` organization++data OrgCreate +instance HasBodyParam OrgCreate CreateOrgOption ++-- | @application/json@+instance Consumes OrgCreate MimeJSON++-- | @application/json@+instance Produces OrgCreate MimeJSON+++-- *** orgCreateHook++-- | @POST \/orgs\/{org}\/hooks@+-- +-- Create a hook+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +orgCreateHook+  :: (Consumes OrgCreateHook MimeJSON, MimeRender MimeJSON CreateHookOption)+  => CreateHookOption -- ^ "body"+  -> Org -- ^ "org" -  name of the organization+  -> GiteaRequest OrgCreateHook MimeJSON Hook MimeJSON+orgCreateHook body (Org org) =+  _mkRequest "POST" ["/orgs/",toPath org,"/hooks"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)+    `setBodyParam` body++data OrgCreateHook +instance HasBodyParam OrgCreateHook CreateHookOption ++-- | @application/json@+instance Consumes OrgCreateHook MimeJSON++-- | @application/json@+instance Produces OrgCreateHook MimeJSON+++-- *** orgCreateLabel++-- | @POST \/orgs\/{org}\/labels@+-- +-- Create a label for an organization+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +orgCreateLabel+  :: (Consumes OrgCreateLabel MimeJSON)+  => Org -- ^ "org" -  name of the organization+  -> GiteaRequest OrgCreateLabel MimeJSON Label MimeJSON+orgCreateLabel (Org org) =+  _mkRequest "POST" ["/orgs/",toPath org,"/labels"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data OrgCreateLabel +instance HasBodyParam OrgCreateLabel CreateLabelOption ++-- | @application/json@+instance Consumes OrgCreateLabel MimeJSON++-- | @application/json@+instance Produces OrgCreateLabel MimeJSON+++-- *** orgCreateTeam++-- | @POST \/orgs\/{org}\/teams@+-- +-- Create a team+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +orgCreateTeam+  :: (Consumes OrgCreateTeam MimeJSON)+  => Org -- ^ "org" -  name of the organization+  -> GiteaRequest OrgCreateTeam MimeJSON Team MimeJSON+orgCreateTeam (Org org) =+  _mkRequest "POST" ["/orgs/",toPath org,"/teams"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data OrgCreateTeam +instance HasBodyParam OrgCreateTeam CreateTeamOption ++-- | @application/json@+instance Consumes OrgCreateTeam MimeJSON++-- | @application/json@+instance Produces OrgCreateTeam MimeJSON+++-- *** orgDelete++-- | @DELETE \/orgs\/{org}@+-- +-- Delete an organization+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +orgDelete+  :: Org -- ^ "org" -  organization that is to be deleted+  -> GiteaRequest OrgDelete MimeNoContent NoContent MimeNoContent+orgDelete (Org org) =+  _mkRequest "DELETE" ["/orgs/",toPath org]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data OrgDelete  +instance Produces OrgDelete MimeNoContent+++-- *** orgDeleteHook++-- | @DELETE \/orgs\/{org}\/hooks\/{id}@+-- +-- Delete a hook+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +orgDeleteHook+  :: Org -- ^ "org" -  name of the organization+  -> Id -- ^ "id" -  id of the hook to delete+  -> GiteaRequest OrgDeleteHook MimeNoContent NoContent MimeNoContent+orgDeleteHook (Org org) (Id id) =+  _mkRequest "DELETE" ["/orgs/",toPath org,"/hooks/",toPath id]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data OrgDeleteHook  +instance Produces OrgDeleteHook MimeNoContent+++-- *** orgDeleteLabel++-- | @DELETE \/orgs\/{org}\/labels\/{id}@+-- +-- Delete a label+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +orgDeleteLabel+  :: Org -- ^ "org" -  name of the organization+  -> Id -- ^ "id" -  id of the label to delete+  -> GiteaRequest OrgDeleteLabel MimeNoContent NoContent MimeNoContent+orgDeleteLabel (Org org) (Id id) =+  _mkRequest "DELETE" ["/orgs/",toPath org,"/labels/",toPath id]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data OrgDeleteLabel  +instance Produces OrgDeleteLabel MimeNoContent+++-- *** orgDeleteMember++-- | @DELETE \/orgs\/{org}\/members\/{username}@+-- +-- Remove a member from an organization+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +orgDeleteMember+  :: Org -- ^ "org" -  name of the organization+  -> Username -- ^ "username" -  username of the user+  -> GiteaRequest OrgDeleteMember MimeNoContent NoContent MimeNoContent+orgDeleteMember (Org org) (Username username) =+  _mkRequest "DELETE" ["/orgs/",toPath org,"/members/",toPath username]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data OrgDeleteMember  +instance Produces OrgDeleteMember MimeNoContent+++-- *** orgDeleteTeam++-- | @DELETE \/teams\/{id}@+-- +-- Delete a team+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +orgDeleteTeam+  :: Id -- ^ "id" -  id of the team to delete+  -> GiteaRequest OrgDeleteTeam MimeNoContent NoContent MimeNoContent+orgDeleteTeam (Id id) =+  _mkRequest "DELETE" ["/teams/",toPath id]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data OrgDeleteTeam  +instance Produces OrgDeleteTeam MimeNoContent+++-- *** orgEdit++-- | @PATCH \/orgs\/{org}@+-- +-- Edit an organization+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +orgEdit+  :: (Consumes OrgEdit MimeJSON, MimeRender MimeJSON EditOrgOption)+  => EditOrgOption -- ^ "body"+  -> Org -- ^ "org" -  name of the organization to edit+  -> GiteaRequest OrgEdit MimeJSON Organization MimeJSON+orgEdit body (Org org) =+  _mkRequest "PATCH" ["/orgs/",toPath org]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)+    `setBodyParam` body++data OrgEdit +instance HasBodyParam OrgEdit EditOrgOption ++-- | @application/json@+instance Consumes OrgEdit MimeJSON++-- | @application/json@+instance Produces OrgEdit MimeJSON+++-- *** orgEditHook++-- | @PATCH \/orgs\/{org}\/hooks\/{id}@+-- +-- Update a hook+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +orgEditHook+  :: (Consumes OrgEditHook MimeJSON)+  => Org -- ^ "org" -  name of the organization+  -> Id -- ^ "id" -  id of the hook to update+  -> GiteaRequest OrgEditHook MimeJSON Hook MimeJSON+orgEditHook (Org org) (Id id) =+  _mkRequest "PATCH" ["/orgs/",toPath org,"/hooks/",toPath id]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data OrgEditHook +instance HasBodyParam OrgEditHook EditHookOption ++-- | @application/json@+instance Consumes OrgEditHook MimeJSON++-- | @application/json@+instance Produces OrgEditHook MimeJSON+++-- *** orgEditLabel++-- | @PATCH \/orgs\/{org}\/labels\/{id}@+-- +-- Update a label+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +orgEditLabel+  :: (Consumes OrgEditLabel MimeJSON)+  => Org -- ^ "org" -  name of the organization+  -> Id -- ^ "id" -  id of the label to edit+  -> GiteaRequest OrgEditLabel MimeJSON Label MimeJSON+orgEditLabel (Org org) (Id id) =+  _mkRequest "PATCH" ["/orgs/",toPath org,"/labels/",toPath id]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data OrgEditLabel +instance HasBodyParam OrgEditLabel EditLabelOption ++-- | @application/json@+instance Consumes OrgEditLabel MimeJSON++-- | @application/json@+instance Produces OrgEditLabel MimeJSON+++-- *** orgEditTeam++-- | @PATCH \/teams\/{id}@+-- +-- Edit a team+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +orgEditTeam+  :: (Consumes OrgEditTeam MimeJSON)+  => IdInt -- ^ "id" -  id of the team to edit+  -> GiteaRequest OrgEditTeam MimeJSON Team MimeJSON+orgEditTeam (IdInt id) =+  _mkRequest "PATCH" ["/teams/",toPath id]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data OrgEditTeam +instance HasBodyParam OrgEditTeam EditTeamOption ++-- | @application/json@+instance Consumes OrgEditTeam MimeJSON++-- | @application/json@+instance Produces OrgEditTeam MimeJSON+++-- *** orgGet++-- | @GET \/orgs\/{org}@+-- +-- Get an organization+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +orgGet+  :: Org -- ^ "org" -  name of the organization to get+  -> GiteaRequest OrgGet MimeNoContent Organization MimeJSON+orgGet (Org org) =+  _mkRequest "GET" ["/orgs/",toPath org]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data OrgGet  +-- | @application/json@+instance Produces OrgGet MimeJSON+++-- *** orgGetAll++-- | @GET \/orgs@+-- +-- Get list of organizations+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +orgGetAll+  :: GiteaRequest OrgGetAll MimeNoContent [Organization] MimeJSON+orgGetAll =+  _mkRequest "GET" ["/orgs"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data OrgGetAll  ++-- | /Optional Param/ "page" - page number of results to return (1-based)+instance HasOptionalParam OrgGetAll Page where+  applyOptionalParam req (Page xs) =+    req `addQuery` toQuery ("page", Just xs)++-- | /Optional Param/ "limit" - page size of results+instance HasOptionalParam OrgGetAll Limit where+  applyOptionalParam req (Limit xs) =+    req `addQuery` toQuery ("limit", Just xs)+-- | @application/json@+instance Produces OrgGetAll MimeJSON+++-- *** orgGetHook++-- | @GET \/orgs\/{org}\/hooks\/{id}@+-- +-- Get a hook+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +orgGetHook+  :: Org -- ^ "org" -  name of the organization+  -> Id -- ^ "id" -  id of the hook to get+  -> GiteaRequest OrgGetHook MimeNoContent Hook MimeJSON+orgGetHook (Org org) (Id id) =+  _mkRequest "GET" ["/orgs/",toPath org,"/hooks/",toPath id]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data OrgGetHook  +-- | @application/json@+instance Produces OrgGetHook MimeJSON+++-- *** orgGetLabel++-- | @GET \/orgs\/{org}\/labels\/{id}@+-- +-- Get a single label+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +orgGetLabel+  :: Org -- ^ "org" -  name of the organization+  -> Id -- ^ "id" -  id of the label to get+  -> GiteaRequest OrgGetLabel MimeNoContent Label MimeJSON+orgGetLabel (Org org) (Id id) =+  _mkRequest "GET" ["/orgs/",toPath org,"/labels/",toPath id]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data OrgGetLabel  +-- | @application/json@+instance Produces OrgGetLabel MimeJSON+++-- *** orgGetTeam++-- | @GET \/teams\/{id}@+-- +-- Get a team+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +orgGetTeam+  :: Id -- ^ "id" -  id of the team to get+  -> GiteaRequest OrgGetTeam MimeNoContent Team MimeJSON+orgGetTeam (Id id) =+  _mkRequest "GET" ["/teams/",toPath id]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data OrgGetTeam  +-- | @application/json@+instance Produces OrgGetTeam MimeJSON+++-- *** orgGetUserPermissions++-- | @GET \/users\/{username}\/orgs\/{org}\/permissions@+-- +-- Get user permissions in organization+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +orgGetUserPermissions+  :: Username -- ^ "username" -  username of user+  -> Org -- ^ "org" -  name of the organization+  -> GiteaRequest OrgGetUserPermissions MimeNoContent OrganizationPermissions MimeJSON+orgGetUserPermissions (Username username) (Org org) =+  _mkRequest "GET" ["/users/",toPath username,"/orgs/",toPath org,"/permissions"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data OrgGetUserPermissions  +-- | @application/json@+instance Produces OrgGetUserPermissions MimeJSON+++-- *** orgIsMember++-- | @GET \/orgs\/{org}\/members\/{username}@+-- +-- Check if a user is a member of an organization+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +orgIsMember+  :: Org -- ^ "org" -  name of the organization+  -> Username -- ^ "username" -  username of the user+  -> GiteaRequest OrgIsMember MimeNoContent NoContent MimeNoContent+orgIsMember (Org org) (Username username) =+  _mkRequest "GET" ["/orgs/",toPath org,"/members/",toPath username]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data OrgIsMember  +instance Produces OrgIsMember MimeNoContent+++-- *** orgIsPublicMember++-- | @GET \/orgs\/{org}\/public_members\/{username}@+-- +-- Check if a user is a public member of an organization+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +orgIsPublicMember+  :: Org -- ^ "org" -  name of the organization+  -> Username -- ^ "username" -  username of the user+  -> GiteaRequest OrgIsPublicMember MimeNoContent NoContent MimeNoContent+orgIsPublicMember (Org org) (Username username) =+  _mkRequest "GET" ["/orgs/",toPath org,"/public_members/",toPath username]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data OrgIsPublicMember  +instance Produces OrgIsPublicMember MimeNoContent+++-- *** orgListCurrentUserOrgs++-- | @GET \/user\/orgs@+-- +-- List the current user's organizations+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +orgListCurrentUserOrgs+  :: GiteaRequest OrgListCurrentUserOrgs MimeNoContent [Organization] MimeJSON+orgListCurrentUserOrgs =+  _mkRequest "GET" ["/user/orgs"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data OrgListCurrentUserOrgs  ++-- | /Optional Param/ "page" - page number of results to return (1-based)+instance HasOptionalParam OrgListCurrentUserOrgs Page where+  applyOptionalParam req (Page xs) =+    req `addQuery` toQuery ("page", Just xs)++-- | /Optional Param/ "limit" - page size of results+instance HasOptionalParam OrgListCurrentUserOrgs Limit where+  applyOptionalParam req (Limit xs) =+    req `addQuery` toQuery ("limit", Just xs)+-- | @application/json@+instance Produces OrgListCurrentUserOrgs MimeJSON+++-- *** orgListHooks++-- | @GET \/orgs\/{org}\/hooks@+-- +-- List an organization's webhooks+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +orgListHooks+  :: Org -- ^ "org" -  name of the organization+  -> GiteaRequest OrgListHooks MimeNoContent [Hook] MimeJSON+orgListHooks (Org org) =+  _mkRequest "GET" ["/orgs/",toPath org,"/hooks"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data OrgListHooks  ++-- | /Optional Param/ "page" - page number of results to return (1-based)+instance HasOptionalParam OrgListHooks Page where+  applyOptionalParam req (Page xs) =+    req `addQuery` toQuery ("page", Just xs)++-- | /Optional Param/ "limit" - page size of results+instance HasOptionalParam OrgListHooks Limit where+  applyOptionalParam req (Limit xs) =+    req `addQuery` toQuery ("limit", Just xs)+-- | @application/json@+instance Produces OrgListHooks MimeJSON+++-- *** orgListLabels++-- | @GET \/orgs\/{org}\/labels@+-- +-- List an organization's labels+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +orgListLabels+  :: Org -- ^ "org" -  name of the organization+  -> GiteaRequest OrgListLabels MimeNoContent [Label] MimeJSON+orgListLabels (Org org) =+  _mkRequest "GET" ["/orgs/",toPath org,"/labels"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data OrgListLabels  ++-- | /Optional Param/ "page" - page number of results to return (1-based)+instance HasOptionalParam OrgListLabels Page where+  applyOptionalParam req (Page xs) =+    req `addQuery` toQuery ("page", Just xs)++-- | /Optional Param/ "limit" - page size of results+instance HasOptionalParam OrgListLabels Limit where+  applyOptionalParam req (Limit xs) =+    req `addQuery` toQuery ("limit", Just xs)+-- | @application/json@+instance Produces OrgListLabels MimeJSON+++-- *** orgListMembers++-- | @GET \/orgs\/{org}\/members@+-- +-- List an organization's members+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +orgListMembers+  :: Org -- ^ "org" -  name of the organization+  -> GiteaRequest OrgListMembers MimeNoContent [User] MimeJSON+orgListMembers (Org org) =+  _mkRequest "GET" ["/orgs/",toPath org,"/members"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data OrgListMembers  ++-- | /Optional Param/ "page" - page number of results to return (1-based)+instance HasOptionalParam OrgListMembers Page where+  applyOptionalParam req (Page xs) =+    req `addQuery` toQuery ("page", Just xs)++-- | /Optional Param/ "limit" - page size of results+instance HasOptionalParam OrgListMembers Limit where+  applyOptionalParam req (Limit xs) =+    req `addQuery` toQuery ("limit", Just xs)+-- | @application/json@+instance Produces OrgListMembers MimeJSON+++-- *** orgListPublicMembers++-- | @GET \/orgs\/{org}\/public_members@+-- +-- List an organization's public members+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +orgListPublicMembers+  :: Org -- ^ "org" -  name of the organization+  -> GiteaRequest OrgListPublicMembers MimeNoContent [User] MimeJSON+orgListPublicMembers (Org org) =+  _mkRequest "GET" ["/orgs/",toPath org,"/public_members"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data OrgListPublicMembers  ++-- | /Optional Param/ "page" - page number of results to return (1-based)+instance HasOptionalParam OrgListPublicMembers Page where+  applyOptionalParam req (Page xs) =+    req `addQuery` toQuery ("page", Just xs)++-- | /Optional Param/ "limit" - page size of results+instance HasOptionalParam OrgListPublicMembers Limit where+  applyOptionalParam req (Limit xs) =+    req `addQuery` toQuery ("limit", Just xs)+-- | @application/json@+instance Produces OrgListPublicMembers MimeJSON+++-- *** orgListRepos++-- | @GET \/orgs\/{org}\/repos@+-- +-- List an organization's repos+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +orgListRepos+  :: Org -- ^ "org" -  name of the organization+  -> GiteaRequest OrgListRepos MimeNoContent [Repository] MimeJSON+orgListRepos (Org org) =+  _mkRequest "GET" ["/orgs/",toPath org,"/repos"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data OrgListRepos  ++-- | /Optional Param/ "page" - page number of results to return (1-based)+instance HasOptionalParam OrgListRepos Page where+  applyOptionalParam req (Page xs) =+    req `addQuery` toQuery ("page", Just xs)++-- | /Optional Param/ "limit" - page size of results+instance HasOptionalParam OrgListRepos Limit where+  applyOptionalParam req (Limit xs) =+    req `addQuery` toQuery ("limit", Just xs)+-- | @application/json@+instance Produces OrgListRepos MimeJSON+++-- *** orgListTeamMember++-- | @GET \/teams\/{id}\/members\/{username}@+-- +-- List a particular member of team+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +orgListTeamMember+  :: Id -- ^ "id" -  id of the team+  -> Username -- ^ "username" -  username of the member to list+  -> GiteaRequest OrgListTeamMember MimeNoContent User MimeJSON+orgListTeamMember (Id id) (Username username) =+  _mkRequest "GET" ["/teams/",toPath id,"/members/",toPath username]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data OrgListTeamMember  +-- | @application/json@+instance Produces OrgListTeamMember MimeJSON+++-- *** orgListTeamMembers++-- | @GET \/teams\/{id}\/members@+-- +-- List a team's members+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +orgListTeamMembers+  :: Id -- ^ "id" -  id of the team+  -> GiteaRequest OrgListTeamMembers MimeNoContent [User] MimeJSON+orgListTeamMembers (Id id) =+  _mkRequest "GET" ["/teams/",toPath id,"/members"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data OrgListTeamMembers  ++-- | /Optional Param/ "page" - page number of results to return (1-based)+instance HasOptionalParam OrgListTeamMembers Page where+  applyOptionalParam req (Page xs) =+    req `addQuery` toQuery ("page", Just xs)++-- | /Optional Param/ "limit" - page size of results+instance HasOptionalParam OrgListTeamMembers Limit where+  applyOptionalParam req (Limit xs) =+    req `addQuery` toQuery ("limit", Just xs)+-- | @application/json@+instance Produces OrgListTeamMembers MimeJSON+++-- *** orgListTeamRepo++-- | @GET \/teams\/{id}\/repos\/{org}\/{repo}@+-- +-- List a particular repo of team+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +orgListTeamRepo+  :: Id -- ^ "id" -  id of the team+  -> Org -- ^ "org" -  organization that owns the repo to list+  -> Repo -- ^ "repo" -  name of the repo to list+  -> GiteaRequest OrgListTeamRepo MimeNoContent Repository MimeJSON+orgListTeamRepo (Id id) (Org org) (Repo repo) =+  _mkRequest "GET" ["/teams/",toPath id,"/repos/",toPath org,"/",toPath repo]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data OrgListTeamRepo  +-- | @application/json@+instance Produces OrgListTeamRepo MimeJSON+++-- *** orgListTeamRepos++-- | @GET \/teams\/{id}\/repos@+-- +-- List a team's repos+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +orgListTeamRepos+  :: Id -- ^ "id" -  id of the team+  -> GiteaRequest OrgListTeamRepos MimeNoContent [Repository] MimeJSON+orgListTeamRepos (Id id) =+  _mkRequest "GET" ["/teams/",toPath id,"/repos"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data OrgListTeamRepos  ++-- | /Optional Param/ "page" - page number of results to return (1-based)+instance HasOptionalParam OrgListTeamRepos Page where+  applyOptionalParam req (Page xs) =+    req `addQuery` toQuery ("page", Just xs)++-- | /Optional Param/ "limit" - page size of results+instance HasOptionalParam OrgListTeamRepos Limit where+  applyOptionalParam req (Limit xs) =+    req `addQuery` toQuery ("limit", Just xs)+-- | @application/json@+instance Produces OrgListTeamRepos MimeJSON+++-- *** orgListTeams++-- | @GET \/orgs\/{org}\/teams@+-- +-- List an organization's teams+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +orgListTeams+  :: Org -- ^ "org" -  name of the organization+  -> GiteaRequest OrgListTeams MimeNoContent [Team] MimeJSON+orgListTeams (Org org) =+  _mkRequest "GET" ["/orgs/",toPath org,"/teams"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data OrgListTeams  ++-- | /Optional Param/ "page" - page number of results to return (1-based)+instance HasOptionalParam OrgListTeams Page where+  applyOptionalParam req (Page xs) =+    req `addQuery` toQuery ("page", Just xs)++-- | /Optional Param/ "limit" - page size of results+instance HasOptionalParam OrgListTeams Limit where+  applyOptionalParam req (Limit xs) =+    req `addQuery` toQuery ("limit", Just xs)+-- | @application/json@+instance Produces OrgListTeams MimeJSON+++-- *** orgListUserOrgs++-- | @GET \/users\/{username}\/orgs@+-- +-- List a user's organizations+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +orgListUserOrgs+  :: Username -- ^ "username" -  username of user+  -> GiteaRequest OrgListUserOrgs MimeNoContent [Organization] MimeJSON+orgListUserOrgs (Username username) =+  _mkRequest "GET" ["/users/",toPath username,"/orgs"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data OrgListUserOrgs  ++-- | /Optional Param/ "page" - page number of results to return (1-based)+instance HasOptionalParam OrgListUserOrgs Page where+  applyOptionalParam req (Page xs) =+    req `addQuery` toQuery ("page", Just xs)++-- | /Optional Param/ "limit" - page size of results+instance HasOptionalParam OrgListUserOrgs Limit where+  applyOptionalParam req (Limit xs) =+    req `addQuery` toQuery ("limit", Just xs)+-- | @application/json@+instance Produces OrgListUserOrgs MimeJSON+++-- *** orgPublicizeMember++-- | @PUT \/orgs\/{org}\/public_members\/{username}@+-- +-- Publicize a user's membership+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +orgPublicizeMember+  :: Org -- ^ "org" -  name of the organization+  -> Username -- ^ "username" -  username of the user+  -> GiteaRequest OrgPublicizeMember MimeNoContent NoContent MimeNoContent+orgPublicizeMember (Org org) (Username username) =+  _mkRequest "PUT" ["/orgs/",toPath org,"/public_members/",toPath username]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data OrgPublicizeMember  +instance Produces OrgPublicizeMember MimeNoContent+++-- *** orgRemoveTeamMember++-- | @DELETE \/teams\/{id}\/members\/{username}@+-- +-- Remove a team member+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +orgRemoveTeamMember+  :: Id -- ^ "id" -  id of the team+  -> Username -- ^ "username" -  username of the user to remove+  -> GiteaRequest OrgRemoveTeamMember MimeNoContent NoContent MimeNoContent+orgRemoveTeamMember (Id id) (Username username) =+  _mkRequest "DELETE" ["/teams/",toPath id,"/members/",toPath username]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data OrgRemoveTeamMember  +instance Produces OrgRemoveTeamMember MimeNoContent+++-- *** orgRemoveTeamRepository++-- | @DELETE \/teams\/{id}\/repos\/{org}\/{repo}@+-- +-- Remove a repository from a team+-- +-- This does not delete the repository, it only removes the repository from the team.+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +orgRemoveTeamRepository+  :: Id -- ^ "id" -  id of the team+  -> Org -- ^ "org" -  organization that owns the repo to remove+  -> Repo -- ^ "repo" -  name of the repo to remove+  -> GiteaRequest OrgRemoveTeamRepository MimeNoContent NoContent MimeNoContent+orgRemoveTeamRepository (Id id) (Org org) (Repo repo) =+  _mkRequest "DELETE" ["/teams/",toPath id,"/repos/",toPath org,"/",toPath repo]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data OrgRemoveTeamRepository  +instance Produces OrgRemoveTeamRepository MimeNoContent+++-- *** teamSearch++-- | @GET \/orgs\/{org}\/teams\/search@+-- +-- Search for teams within an organization+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +teamSearch+  :: Org -- ^ "org" -  name of the organization+  -> GiteaRequest TeamSearch MimeNoContent TeamSearch200Response MimeJSON+teamSearch (Org org) =+  _mkRequest "GET" ["/orgs/",toPath org,"/teams/search"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data TeamSearch  ++-- | /Optional Param/ "q" - keywords to search+instance HasOptionalParam TeamSearch Q where+  applyOptionalParam req (Q xs) =+    req `addQuery` toQuery ("q", Just xs)++-- | /Optional Param/ "include_desc" - include search within team description (defaults to true)+instance HasOptionalParam TeamSearch IncludeDesc where+  applyOptionalParam req (IncludeDesc xs) =+    req `addQuery` toQuery ("include_desc", Just xs)++-- | /Optional Param/ "page" - page number of results to return (1-based)+instance HasOptionalParam TeamSearch Page where+  applyOptionalParam req (Page xs) =+    req `addQuery` toQuery ("page", Just xs)++-- | /Optional Param/ "limit" - page size of results+instance HasOptionalParam TeamSearch Limit where+  applyOptionalParam req (Limit xs) =+    req `addQuery` toQuery ("limit", Just xs)+-- | @application/json@+instance Produces TeamSearch MimeJSON+
+ lib/Gitea/API/Package.hs view
@@ -0,0 +1,190 @@+{-+   Gitea API.++   This documentation describes the Gitea API.++   OpenAPI Version: 3.0.1+   Gitea API. API version: 1.19.4+   Generated by OpenAPI Generator (https://openapi-generator.tech)+-}++{-|+Module : Gitea.API.Package+-}++{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE MonoLocalBinds #-}+{-# LANGUAGE MultiParamTypeClasses #-}+{-# LANGUAGE OverloadedStrings #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing -fno-warn-unused-binds -fno-warn-unused-imports #-}++module Gitea.API.Package where++import Gitea.Core+import Gitea.MimeTypes+import Gitea.Model as M++import qualified Data.Aeson as A+import qualified Data.ByteString as B+import qualified Data.ByteString.Lazy as BL+import qualified Data.Data as P (Typeable, TypeRep, typeOf, typeRep)+import qualified Data.Foldable as P+import qualified Data.Map as Map+import qualified Data.Maybe as P+import qualified Data.Proxy as P (Proxy(..))+import qualified Data.Set as Set+import qualified Data.String as P+import qualified Data.Text as T+import qualified Data.Text.Encoding as T+import qualified Data.Text.Lazy as TL+import qualified Data.Text.Lazy.Encoding as TL+import qualified Data.Time as TI+import qualified Network.HTTP.Client.MultipartFormData as NH+import qualified Network.HTTP.Media as ME+import qualified Network.HTTP.Types as NH+import qualified Web.FormUrlEncoded as WH+import qualified Web.HttpApiData as WH++import Data.Text (Text)+import GHC.Base ((<|>))++import Prelude ((==),(/=),($), (.),(<$>),(<*>),(>>=),Maybe(..),Bool(..),Char,Double,FilePath,Float,Int,Integer,String,fmap,undefined,mempty,maybe,pure,Monad,Applicative,Functor)+import qualified Prelude as P++-- * Operations+++-- ** Package++-- *** deletePackage++-- | @DELETE \/packages\/{owner}\/{type}\/{name}\/{version}@+-- +-- Delete a package+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +deletePackage+  :: Owner -- ^ "owner" -  owner of the package+  -> ParamTypeText -- ^ "_type" -  type of the package+  -> Name -- ^ "name" -  name of the package+  -> Version -- ^ "version" -  version of the package+  -> GiteaRequest DeletePackage MimeNoContent NoContent MimeNoContent+deletePackage (Owner owner) (ParamTypeText _type) (Name name) (Version version) =+  _mkRequest "DELETE" ["/packages/",toPath owner,"/",toPath _type,"/",toPath name,"/",toPath version]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data DeletePackage  +instance Produces DeletePackage MimeNoContent+++-- *** getPackage++-- | @GET \/packages\/{owner}\/{type}\/{name}\/{version}@+-- +-- Gets a package+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +getPackage+  :: Owner -- ^ "owner" -  owner of the package+  -> ParamTypeText -- ^ "_type" -  type of the package+  -> Name -- ^ "name" -  name of the package+  -> Version -- ^ "version" -  version of the package+  -> GiteaRequest GetPackage MimeNoContent Package MimeJSON+getPackage (Owner owner) (ParamTypeText _type) (Name name) (Version version) =+  _mkRequest "GET" ["/packages/",toPath owner,"/",toPath _type,"/",toPath name,"/",toPath version]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data GetPackage  +-- | @application/json@+instance Produces GetPackage MimeJSON+++-- *** listPackageFiles++-- | @GET \/packages\/{owner}\/{type}\/{name}\/{version}\/files@+-- +-- Gets all files of a package+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +listPackageFiles+  :: Owner -- ^ "owner" -  owner of the package+  -> ParamTypeText -- ^ "_type" -  type of the package+  -> Name -- ^ "name" -  name of the package+  -> Version -- ^ "version" -  version of the package+  -> GiteaRequest ListPackageFiles MimeNoContent [PackageFile] MimeJSON+listPackageFiles (Owner owner) (ParamTypeText _type) (Name name) (Version version) =+  _mkRequest "GET" ["/packages/",toPath owner,"/",toPath _type,"/",toPath name,"/",toPath version,"/files"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data ListPackageFiles  +-- | @application/json@+instance Produces ListPackageFiles MimeJSON+++-- *** listPackages++-- | @GET \/packages\/{owner}@+-- +-- Gets all packages of an owner+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +listPackages+  :: Owner -- ^ "owner" -  owner of the packages+  -> GiteaRequest ListPackages MimeNoContent [Package] MimeJSON+listPackages (Owner owner) =+  _mkRequest "GET" ["/packages/",toPath owner]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data ListPackages  ++-- | /Optional Param/ "page" - page number of results to return (1-based)+instance HasOptionalParam ListPackages Page where+  applyOptionalParam req (Page xs) =+    req `addQuery` toQuery ("page", Just xs)++-- | /Optional Param/ "limit" - page size of results+instance HasOptionalParam ListPackages Limit where+  applyOptionalParam req (Limit xs) =+    req `addQuery` toQuery ("limit", Just xs)++-- | /Optional Param/ "type" - package type filter+instance HasOptionalParam ListPackages ParamType where+  applyOptionalParam req (ParamType xs) =+    req `addQuery` toQuery ("type", Just xs)++-- | /Optional Param/ "q" - name filter+instance HasOptionalParam ListPackages Q where+  applyOptionalParam req (Q xs) =+    req `addQuery` toQuery ("q", Just xs)+-- | @application/json@+instance Produces ListPackages MimeJSON+
+ lib/Gitea/API/Repository.hs view
@@ -0,0 +1,4528 @@+{-+   Gitea API.++   This documentation describes the Gitea API.++   OpenAPI Version: 3.0.1+   Gitea API. API version: 1.19.4+   Generated by OpenAPI Generator (https://openapi-generator.tech)+-}++{-|+Module : Gitea.API.Repository+-}++{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE MonoLocalBinds #-}+{-# LANGUAGE MultiParamTypeClasses #-}+{-# LANGUAGE OverloadedStrings #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing -fno-warn-unused-binds -fno-warn-unused-imports #-}++module Gitea.API.Repository where++import Gitea.Core+import Gitea.MimeTypes+import Gitea.Model as M++import qualified Data.Aeson as A+import qualified Data.ByteString as B+import qualified Data.ByteString.Lazy as BL+import qualified Data.Data as P (Typeable, TypeRep, typeOf, typeRep)+import qualified Data.Foldable as P+import qualified Data.Map as Map+import qualified Data.Maybe as P+import qualified Data.Proxy as P (Proxy(..))+import qualified Data.Set as Set+import qualified Data.String as P+import qualified Data.Text as T+import qualified Data.Text.Encoding as T+import qualified Data.Text.Lazy as TL+import qualified Data.Text.Lazy.Encoding as TL+import qualified Data.Time as TI+import qualified Network.HTTP.Client.MultipartFormData as NH+import qualified Network.HTTP.Media as ME+import qualified Network.HTTP.Types as NH+import qualified Web.FormUrlEncoded as WH+import qualified Web.HttpApiData as WH++import Data.Text (Text)+import GHC.Base ((<|>))++import Prelude ((==),(/=),($), (.),(<$>),(<*>),(>>=),Maybe(..),Bool(..),Char,Double,FilePath,Float,Int,Integer,String,fmap,undefined,mempty,maybe,pure,Monad,Applicative,Functor)+import qualified Prelude as P++-- * Operations+++-- ** Repository++-- *** acceptRepoTransfer++-- | @POST \/repos\/{owner}\/{repo}\/transfer\/accept@+-- +-- Accept a repo transfer+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +acceptRepoTransfer+  :: Owner -- ^ "owner" -  owner of the repo to transfer+  -> Repo -- ^ "repo" -  name of the repo to transfer+  -> GiteaRequest AcceptRepoTransfer MimeNoContent Repository MimeJSON+acceptRepoTransfer (Owner owner) (Repo repo) =+  _mkRequest "POST" ["/repos/",toPath owner,"/",toPath repo,"/transfer/accept"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data AcceptRepoTransfer  +-- | @application/json@+instance Produces AcceptRepoTransfer MimeJSON+++-- *** createCurrentUserRepo++-- | @POST \/user\/repos@+-- +-- Create a repository+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +createCurrentUserRepo+  :: (Consumes CreateCurrentUserRepo MimeJSON)+  => GiteaRequest CreateCurrentUserRepo MimeJSON Repository MimeJSON+createCurrentUserRepo =+  _mkRequest "POST" ["/user/repos"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data CreateCurrentUserRepo +instance HasBodyParam CreateCurrentUserRepo CreateRepoOption ++-- | @application/json@+instance Consumes CreateCurrentUserRepo MimeJSON++-- | @application/json@+instance Produces CreateCurrentUserRepo MimeJSON+++-- *** createFork++-- | @POST \/repos\/{owner}\/{repo}\/forks@+-- +-- Fork a repository+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +createFork+  :: (Consumes CreateFork contentType)+  => ContentType contentType -- ^ request content-type ('MimeType')+  -> Owner -- ^ "owner" -  owner of the repo to fork+  -> Repo -- ^ "repo" -  name of the repo to fork+  -> GiteaRequest CreateFork contentType Repository MimeJSON+createFork _ (Owner owner) (Repo repo) =+  _mkRequest "POST" ["/repos/",toPath owner,"/",toPath repo,"/forks"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data CreateFork +instance HasBodyParam CreateFork CreateForkOption ++-- | @application/json@+instance Consumes CreateFork MimeJSON+-- | @text/plain@+instance Consumes CreateFork MimePlainText++-- | @application/json@+instance Produces CreateFork MimeJSON+++-- *** generateRepo++-- | @POST \/repos\/{template_owner}\/{template_repo}\/generate@+-- +-- Create a repository using a template+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +generateRepo+  :: (Consumes GenerateRepo MimeJSON)+  => TemplateOwner -- ^ "templateOwner" -  name of the template repository owner+  -> TemplateRepo -- ^ "templateRepo" -  name of the template repository+  -> GiteaRequest GenerateRepo MimeJSON Repository MimeJSON+generateRepo (TemplateOwner templateOwner) (TemplateRepo templateRepo) =+  _mkRequest "POST" ["/repos/",toPath templateOwner,"/",toPath templateRepo,"/generate"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data GenerateRepo +instance HasBodyParam GenerateRepo GenerateRepoOption ++-- | @application/json@+instance Consumes GenerateRepo MimeJSON++-- | @application/json@+instance Produces GenerateRepo MimeJSON+++-- *** getAnnotatedTag++-- | @GET \/repos\/{owner}\/{repo}\/git\/tags\/{sha}@+-- +-- Gets the tag object of an annotated tag (not lightweight tags)+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +getAnnotatedTag+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Sha -- ^ "sha" -  sha of the tag. The Git tags API only supports annotated tag objects, not lightweight tags.+  -> GiteaRequest GetAnnotatedTag MimeNoContent AnnotatedTag MimeJSON+getAnnotatedTag (Owner owner) (Repo repo) (Sha sha) =+  _mkRequest "GET" ["/repos/",toPath owner,"/",toPath repo,"/git/tags/",toPath sha]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data GetAnnotatedTag  +-- | @application/json@+instance Produces GetAnnotatedTag MimeJSON+++-- *** getBlob++-- | @GET \/repos\/{owner}\/{repo}\/git\/blobs\/{sha}@+-- +-- Gets the blob of a repository.+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +getBlob+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Sha -- ^ "sha" -  sha of the commit+  -> GiteaRequest GetBlob MimeNoContent GitBlobResponse MimeJSON+getBlob (Owner owner) (Repo repo) (Sha sha) =+  _mkRequest "GET" ["/repos/",toPath owner,"/",toPath repo,"/git/blobs/",toPath sha]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data GetBlob  +-- | @application/json@+instance Produces GetBlob MimeJSON+++-- *** getTree++-- | @GET \/repos\/{owner}\/{repo}\/git\/trees\/{sha}@+-- +-- Gets the tree of a repository.+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +getTree+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Sha -- ^ "sha" -  sha of the commit+  -> GiteaRequest GetTree MimeNoContent GitTreeResponse MimeJSON+getTree (Owner owner) (Repo repo) (Sha sha) =+  _mkRequest "GET" ["/repos/",toPath owner,"/",toPath repo,"/git/trees/",toPath sha]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data GetTree  ++-- | /Optional Param/ "recursive" - show all directories and files+instance HasOptionalParam GetTree Recursive where+  applyOptionalParam req (Recursive xs) =+    req `addQuery` toQuery ("recursive", Just xs)++-- | /Optional Param/ "page" - page number; the 'truncated' field in the response will be true if there are still more items after this page, false if the last page+instance HasOptionalParam GetTree Page where+  applyOptionalParam req (Page xs) =+    req `addQuery` toQuery ("page", Just xs)++-- | /Optional Param/ "per_page" - number of items per page+instance HasOptionalParam GetTree PerPage where+  applyOptionalParam req (PerPage xs) =+    req `addQuery` toQuery ("per_page", Just xs)+-- | @application/json@+instance Produces GetTree MimeJSON+++-- *** listForks++-- | @GET \/repos\/{owner}\/{repo}\/forks@+-- +-- List a repository's forks+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +listForks+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> GiteaRequest ListForks MimeNoContent [Repository] MimeJSON+listForks (Owner owner) (Repo repo) =+  _mkRequest "GET" ["/repos/",toPath owner,"/",toPath repo,"/forks"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data ListForks  ++-- | /Optional Param/ "page" - page number of results to return (1-based)+instance HasOptionalParam ListForks Page where+  applyOptionalParam req (Page xs) =+    req `addQuery` toQuery ("page", Just xs)++-- | /Optional Param/ "limit" - page size of results+instance HasOptionalParam ListForks Limit where+  applyOptionalParam req (Limit xs) =+    req `addQuery` toQuery ("limit", Just xs)+-- | @application/json@+instance Produces ListForks MimeJSON+++-- *** rejectRepoTransfer++-- | @POST \/repos\/{owner}\/{repo}\/transfer\/reject@+-- +-- Reject a repo transfer+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +rejectRepoTransfer+  :: Owner -- ^ "owner" -  owner of the repo to transfer+  -> Repo -- ^ "repo" -  name of the repo to transfer+  -> GiteaRequest RejectRepoTransfer MimeNoContent Repository MimeJSON+rejectRepoTransfer (Owner owner) (Repo repo) =+  _mkRequest "POST" ["/repos/",toPath owner,"/",toPath repo,"/transfer/reject"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RejectRepoTransfer  +-- | @application/json@+instance Produces RejectRepoTransfer MimeJSON+++-- *** repoAddCollaborator++-- | @PUT \/repos\/{owner}\/{repo}\/collaborators\/{collaborator}@+-- +-- Add a collaborator to a repository+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoAddCollaborator+  :: (Consumes RepoAddCollaborator contentType)+  => ContentType contentType -- ^ request content-type ('MimeType')+  -> Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Collaborator -- ^ "collaborator" -  username of the collaborator to add+  -> GiteaRequest RepoAddCollaborator contentType NoContent MimeNoContent+repoAddCollaborator _ (Owner owner) (Repo repo) (Collaborator collaborator) =+  _mkRequest "PUT" ["/repos/",toPath owner,"/",toPath repo,"/collaborators/",toPath collaborator]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoAddCollaborator +instance HasBodyParam RepoAddCollaborator AddCollaboratorOption ++-- | @application/json@+instance Consumes RepoAddCollaborator MimeJSON+-- | @text/plain@+instance Consumes RepoAddCollaborator MimePlainText++instance Produces RepoAddCollaborator MimeNoContent+++-- *** repoAddPushMirror++-- | @POST \/repos\/{owner}\/{repo}\/push_mirrors@+-- +-- add a push mirror to the repository+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoAddPushMirror+  :: (Consumes RepoAddPushMirror MimeJSON)+  => Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> GiteaRequest RepoAddPushMirror MimeJSON PushMirror MimeJSON+repoAddPushMirror (Owner owner) (Repo repo) =+  _mkRequest "POST" ["/repos/",toPath owner,"/",toPath repo,"/push_mirrors"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoAddPushMirror +instance HasBodyParam RepoAddPushMirror CreatePushMirrorOption ++-- | @application/json@+instance Consumes RepoAddPushMirror MimeJSON++-- | @application/json@+instance Produces RepoAddPushMirror MimeJSON+++-- *** repoAddTeam++-- | @PUT \/repos\/{owner}\/{repo}\/teams\/{team}@+-- +-- Add a team to a repository+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoAddTeam+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Team2 -- ^ "team" -  team name+  -> GiteaRequest RepoAddTeam MimeNoContent NoContent MimeNoContent+repoAddTeam (Owner owner) (Repo repo) (Team2 team) =+  _mkRequest "PUT" ["/repos/",toPath owner,"/",toPath repo,"/teams/",toPath team]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoAddTeam  +instance Produces RepoAddTeam MimeNoContent+++-- *** repoAddTopic++-- | @PUT \/repos\/{owner}\/{repo}\/topics\/{topic}@+-- +-- Add a topic to a repository+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoAddTopic+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> TopicText -- ^ "topic" -  name of the topic to add+  -> GiteaRequest RepoAddTopic MimeNoContent NoContent MimeNoContent+repoAddTopic (Owner owner) (Repo repo) (TopicText topic) =+  _mkRequest "PUT" ["/repos/",toPath owner,"/",toPath repo,"/topics/",toPath topic]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoAddTopic  +instance Produces RepoAddTopic MimeNoContent+++-- *** repoApplyDiffPatch++-- | @POST \/repos\/{owner}\/{repo}\/diffpatch@+-- +-- Apply diff patch to repository+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoApplyDiffPatch+  :: (Consumes RepoApplyDiffPatch MimeJSON, MimeRender MimeJSON UpdateFileOptions)+  => UpdateFileOptions -- ^ "body"+  -> Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> GiteaRequest RepoApplyDiffPatch MimeJSON FileResponse MimeJSON+repoApplyDiffPatch body (Owner owner) (Repo repo) =+  _mkRequest "POST" ["/repos/",toPath owner,"/",toPath repo,"/diffpatch"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)+    `setBodyParam` body++data RepoApplyDiffPatch +instance HasBodyParam RepoApplyDiffPatch UpdateFileOptions ++-- | @application/json@+instance Consumes RepoApplyDiffPatch MimeJSON++-- | @application/json@+instance Produces RepoApplyDiffPatch MimeJSON+++-- *** repoCancelScheduledAutoMerge++-- | @DELETE \/repos\/{owner}\/{repo}\/pulls\/{index}\/merge@+-- +-- Cancel the scheduled auto merge for the given pull request+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoCancelScheduledAutoMerge+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Index -- ^ "index" -  index of the pull request to merge+  -> GiteaRequest RepoCancelScheduledAutoMerge MimeNoContent NoContent MimeNoContent+repoCancelScheduledAutoMerge (Owner owner) (Repo repo) (Index index) =+  _mkRequest "DELETE" ["/repos/",toPath owner,"/",toPath repo,"/pulls/",toPath index,"/merge"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoCancelScheduledAutoMerge  +instance Produces RepoCancelScheduledAutoMerge MimeNoContent+++-- *** repoCheckCollaborator++-- | @GET \/repos\/{owner}\/{repo}\/collaborators\/{collaborator}@+-- +-- Check if a user is a collaborator of a repository+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoCheckCollaborator+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Collaborator -- ^ "collaborator" -  username of the collaborator+  -> GiteaRequest RepoCheckCollaborator MimeNoContent NoContent MimeNoContent+repoCheckCollaborator (Owner owner) (Repo repo) (Collaborator collaborator) =+  _mkRequest "GET" ["/repos/",toPath owner,"/",toPath repo,"/collaborators/",toPath collaborator]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoCheckCollaborator  +instance Produces RepoCheckCollaborator MimeNoContent+++-- *** repoCheckTeam++-- | @GET \/repos\/{owner}\/{repo}\/teams\/{team}@+-- +-- Check if a team is assigned to a repository+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoCheckTeam+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Team2 -- ^ "team" -  team name+  -> GiteaRequest RepoCheckTeam MimeNoContent Team MimeJSON+repoCheckTeam (Owner owner) (Repo repo) (Team2 team) =+  _mkRequest "GET" ["/repos/",toPath owner,"/",toPath repo,"/teams/",toPath team]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoCheckTeam  +-- | @application/json@+instance Produces RepoCheckTeam MimeJSON+++-- *** repoCreateBranch++-- | @POST \/repos\/{owner}\/{repo}\/branches@+-- +-- Create a branch+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoCreateBranch+  :: (Consumes RepoCreateBranch MimeJSON)+  => Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> GiteaRequest RepoCreateBranch MimeJSON Branch MimeJSON+repoCreateBranch (Owner owner) (Repo repo) =+  _mkRequest "POST" ["/repos/",toPath owner,"/",toPath repo,"/branches"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoCreateBranch +instance HasBodyParam RepoCreateBranch CreateBranchRepoOption ++-- | @application/json@+instance Consumes RepoCreateBranch MimeJSON++-- | @application/json@+instance Produces RepoCreateBranch MimeJSON+++-- *** repoCreateBranchProtection++-- | @POST \/repos\/{owner}\/{repo}\/branch_protections@+-- +-- Create a branch protections for a repository+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoCreateBranchProtection+  :: (Consumes RepoCreateBranchProtection MimeJSON)+  => Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> GiteaRequest RepoCreateBranchProtection MimeJSON BranchProtection MimeJSON+repoCreateBranchProtection (Owner owner) (Repo repo) =+  _mkRequest "POST" ["/repos/",toPath owner,"/",toPath repo,"/branch_protections"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoCreateBranchProtection +instance HasBodyParam RepoCreateBranchProtection CreateBranchProtectionOption ++-- | @application/json@+instance Consumes RepoCreateBranchProtection MimeJSON++-- | @application/json@+instance Produces RepoCreateBranchProtection MimeJSON+++-- *** repoCreateFile++-- | @POST \/repos\/{owner}\/{repo}\/contents\/{filepath}@+-- +-- Create a file in a repository+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoCreateFile+  :: (Consumes RepoCreateFile MimeJSON, MimeRender MimeJSON CreateFileOptions)+  => CreateFileOptions -- ^ "body"+  -> Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Filepath -- ^ "filepath" -  path of the file to create+  -> GiteaRequest RepoCreateFile MimeJSON FileResponse MimeJSON+repoCreateFile body (Owner owner) (Repo repo) (Filepath filepath) =+  _mkRequest "POST" ["/repos/",toPath owner,"/",toPath repo,"/contents/",toPath filepath]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)+    `setBodyParam` body++data RepoCreateFile +instance HasBodyParam RepoCreateFile CreateFileOptions ++-- | @application/json@+instance Consumes RepoCreateFile MimeJSON++-- | @application/json@+instance Produces RepoCreateFile MimeJSON+++-- *** repoCreateHook++-- | @POST \/repos\/{owner}\/{repo}\/hooks@+-- +-- Create a hook+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoCreateHook+  :: (Consumes RepoCreateHook MimeJSON)+  => Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> GiteaRequest RepoCreateHook MimeJSON Hook MimeJSON+repoCreateHook (Owner owner) (Repo repo) =+  _mkRequest "POST" ["/repos/",toPath owner,"/",toPath repo,"/hooks"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoCreateHook +instance HasBodyParam RepoCreateHook CreateHookOption ++-- | @application/json@+instance Consumes RepoCreateHook MimeJSON++-- | @application/json@+instance Produces RepoCreateHook MimeJSON+++-- *** repoCreateKey++-- | @POST \/repos\/{owner}\/{repo}\/keys@+-- +-- Add a key to a repository+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoCreateKey+  :: (Consumes RepoCreateKey MimeJSON)+  => Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> GiteaRequest RepoCreateKey MimeJSON DeployKey MimeJSON+repoCreateKey (Owner owner) (Repo repo) =+  _mkRequest "POST" ["/repos/",toPath owner,"/",toPath repo,"/keys"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoCreateKey +instance HasBodyParam RepoCreateKey CreateKeyOption ++-- | @application/json@+instance Consumes RepoCreateKey MimeJSON++-- | @application/json@+instance Produces RepoCreateKey MimeJSON+++-- *** repoCreatePullRequest++-- | @POST \/repos\/{owner}\/{repo}\/pulls@+-- +-- Create a pull request+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoCreatePullRequest+  :: (Consumes RepoCreatePullRequest MimeJSON)+  => Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> GiteaRequest RepoCreatePullRequest MimeJSON PullRequest MimeJSON+repoCreatePullRequest (Owner owner) (Repo repo) =+  _mkRequest "POST" ["/repos/",toPath owner,"/",toPath repo,"/pulls"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoCreatePullRequest +instance HasBodyParam RepoCreatePullRequest CreatePullRequestOption ++-- | @application/json@+instance Consumes RepoCreatePullRequest MimeJSON++-- | @application/json@+instance Produces RepoCreatePullRequest MimeJSON+++-- *** repoCreatePullReview++-- | @POST \/repos\/{owner}\/{repo}\/pulls\/{index}\/reviews@+-- +-- Create a review to an pull request+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoCreatePullReview+  :: (Consumes RepoCreatePullReview contentType, MimeRender contentType CreatePullReviewOptions)+  => ContentType contentType -- ^ request content-type ('MimeType')+  -> CreatePullReviewOptions -- ^ "body"+  -> Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Index -- ^ "index" -  index of the pull request+  -> GiteaRequest RepoCreatePullReview contentType PullReview MimeJSON+repoCreatePullReview _ body (Owner owner) (Repo repo) (Index index) =+  _mkRequest "POST" ["/repos/",toPath owner,"/",toPath repo,"/pulls/",toPath index,"/reviews"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)+    `setBodyParam` body++data RepoCreatePullReview +instance HasBodyParam RepoCreatePullReview CreatePullReviewOptions ++-- | @application/json@+instance Consumes RepoCreatePullReview MimeJSON+-- | @text/plain@+instance Consumes RepoCreatePullReview MimePlainText++-- | @application/json@+instance Produces RepoCreatePullReview MimeJSON+++-- *** repoCreatePullReviewRequests++-- | @POST \/repos\/{owner}\/{repo}\/pulls\/{index}\/requested_reviewers@+-- +-- create review requests for a pull request+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoCreatePullReviewRequests+  :: (Consumes RepoCreatePullReviewRequests contentType, MimeRender contentType PullReviewRequestOptions)+  => ContentType contentType -- ^ request content-type ('MimeType')+  -> PullReviewRequestOptions -- ^ "body"+  -> Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Index -- ^ "index" -  index of the pull request+  -> GiteaRequest RepoCreatePullReviewRequests contentType [PullReview] MimeJSON+repoCreatePullReviewRequests _ body (Owner owner) (Repo repo) (Index index) =+  _mkRequest "POST" ["/repos/",toPath owner,"/",toPath repo,"/pulls/",toPath index,"/requested_reviewers"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)+    `setBodyParam` body++data RepoCreatePullReviewRequests +instance HasBodyParam RepoCreatePullReviewRequests PullReviewRequestOptions ++-- | @application/json@+instance Consumes RepoCreatePullReviewRequests MimeJSON+-- | @text/plain@+instance Consumes RepoCreatePullReviewRequests MimePlainText++-- | @application/json@+instance Produces RepoCreatePullReviewRequests MimeJSON+++-- *** repoCreateRelease++-- | @POST \/repos\/{owner}\/{repo}\/releases@+-- +-- Create a release+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoCreateRelease+  :: (Consumes RepoCreateRelease MimeJSON)+  => Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> GiteaRequest RepoCreateRelease MimeJSON Release MimeJSON+repoCreateRelease (Owner owner) (Repo repo) =+  _mkRequest "POST" ["/repos/",toPath owner,"/",toPath repo,"/releases"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoCreateRelease +instance HasBodyParam RepoCreateRelease CreateReleaseOption ++-- | @application/json@+instance Consumes RepoCreateRelease MimeJSON++-- | @application/json@+instance Produces RepoCreateRelease MimeJSON+++-- *** repoCreateReleaseAttachment++-- | @POST \/repos\/{owner}\/{repo}\/releases\/{id}\/assets@+-- +-- Create a release attachment+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoCreateReleaseAttachment+  :: (Consumes RepoCreateReleaseAttachment MimeMultipartFormData)+  => Attachment2 -- ^ "attachment" -  attachment to upload+  -> Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Id -- ^ "id" -  id of the release+  -> GiteaRequest RepoCreateReleaseAttachment MimeMultipartFormData Attachment MimeJSON+repoCreateReleaseAttachment (Attachment2 attachment) (Owner owner) (Repo repo) (Id id) =+  _mkRequest "POST" ["/repos/",toPath owner,"/",toPath repo,"/releases/",toPath id,"/assets"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)+    `_addMultiFormPart` NH.partFileSource "attachment" attachment++data RepoCreateReleaseAttachment  ++-- | /Optional Param/ "name" - name of the attachment+instance HasOptionalParam RepoCreateReleaseAttachment Name where+  applyOptionalParam req (Name xs) =+    req `addQuery` toQuery ("name", Just xs)++-- | @multipart/form-data@+instance Consumes RepoCreateReleaseAttachment MimeMultipartFormData++-- | @application/json@+instance Produces RepoCreateReleaseAttachment MimeJSON+++-- *** repoCreateStatus++-- | @POST \/repos\/{owner}\/{repo}\/statuses\/{sha}@+-- +-- Create a commit status+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoCreateStatus+  :: (Consumes RepoCreateStatus contentType)+  => ContentType contentType -- ^ request content-type ('MimeType')+  -> Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Sha -- ^ "sha" -  sha of the commit+  -> GiteaRequest RepoCreateStatus contentType CommitStatus MimeJSON+repoCreateStatus _ (Owner owner) (Repo repo) (Sha sha) =+  _mkRequest "POST" ["/repos/",toPath owner,"/",toPath repo,"/statuses/",toPath sha]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoCreateStatus +instance HasBodyParam RepoCreateStatus CreateStatusOption ++-- | @application/json@+instance Consumes RepoCreateStatus MimeJSON+-- | @text/plain@+instance Consumes RepoCreateStatus MimePlainText++-- | @application/json@+instance Produces RepoCreateStatus MimeJSON+++-- *** repoCreateTag++-- | @POST \/repos\/{owner}\/{repo}\/tags@+-- +-- Create a new git tag in a repository+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoCreateTag+  :: (Consumes RepoCreateTag contentType)+  => ContentType contentType -- ^ request content-type ('MimeType')+  -> Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> GiteaRequest RepoCreateTag contentType Tag MimeJSON+repoCreateTag _ (Owner owner) (Repo repo) =+  _mkRequest "POST" ["/repos/",toPath owner,"/",toPath repo,"/tags"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoCreateTag +instance HasBodyParam RepoCreateTag CreateTagOption ++-- | @application/json@+instance Consumes RepoCreateTag MimeJSON+-- | @text/plain@+instance Consumes RepoCreateTag MimePlainText++-- | @application/json@+instance Produces RepoCreateTag MimeJSON+++-- *** repoCreateWikiPage++-- | @POST \/repos\/{owner}\/{repo}\/wiki\/new@+-- +-- Create a wiki page+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoCreateWikiPage+  :: (Consumes RepoCreateWikiPage MimeJSON)+  => Accept accept -- ^ request accept ('MimeType')+  -> Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> GiteaRequest RepoCreateWikiPage MimeJSON WikiPage accept+repoCreateWikiPage  _ (Owner owner) (Repo repo) =+  _mkRequest "POST" ["/repos/",toPath owner,"/",toPath repo,"/wiki/new"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoCreateWikiPage +instance HasBodyParam RepoCreateWikiPage CreateWikiPageOptions ++-- | @application/json@+instance Consumes RepoCreateWikiPage MimeJSON++-- | @text/html@+instance Produces RepoCreateWikiPage MimeTextHtml+-- | @application/json@+instance Produces RepoCreateWikiPage MimeJSON+++-- *** repoDelete++-- | @DELETE \/repos\/{owner}\/{repo}@+-- +-- Delete a repository+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoDelete+  :: Owner -- ^ "owner" -  owner of the repo to delete+  -> Repo -- ^ "repo" -  name of the repo to delete+  -> GiteaRequest RepoDelete MimeNoContent NoContent MimeNoContent+repoDelete (Owner owner) (Repo repo) =+  _mkRequest "DELETE" ["/repos/",toPath owner,"/",toPath repo]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoDelete  +instance Produces RepoDelete MimeNoContent+++-- *** repoDeleteBranch++-- | @DELETE \/repos\/{owner}\/{repo}\/branches\/{branch}@+-- +-- Delete a specific branch from a repository+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoDeleteBranch+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Branch2 -- ^ "branch" -  branch to delete+  -> GiteaRequest RepoDeleteBranch MimeNoContent NoContent MimeNoContent+repoDeleteBranch (Owner owner) (Repo repo) (Branch2 branch) =+  _mkRequest "DELETE" ["/repos/",toPath owner,"/",toPath repo,"/branches/",toPath branch]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoDeleteBranch  +instance Produces RepoDeleteBranch MimeNoContent+++-- *** repoDeleteBranchProtection++-- | @DELETE \/repos\/{owner}\/{repo}\/branch_protections\/{name}@+-- +-- Delete a specific branch protection for the repository+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoDeleteBranchProtection+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Name -- ^ "name" -  name of protected branch+  -> GiteaRequest RepoDeleteBranchProtection MimeNoContent NoContent MimeNoContent+repoDeleteBranchProtection (Owner owner) (Repo repo) (Name name) =+  _mkRequest "DELETE" ["/repos/",toPath owner,"/",toPath repo,"/branch_protections/",toPath name]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoDeleteBranchProtection  +instance Produces RepoDeleteBranchProtection MimeNoContent+++-- *** repoDeleteCollaborator++-- | @DELETE \/repos\/{owner}\/{repo}\/collaborators\/{collaborator}@+-- +-- Delete a collaborator from a repository+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoDeleteCollaborator+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Collaborator -- ^ "collaborator" -  username of the collaborator to delete+  -> GiteaRequest RepoDeleteCollaborator MimeNoContent NoContent MimeNoContent+repoDeleteCollaborator (Owner owner) (Repo repo) (Collaborator collaborator) =+  _mkRequest "DELETE" ["/repos/",toPath owner,"/",toPath repo,"/collaborators/",toPath collaborator]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoDeleteCollaborator  +instance Produces RepoDeleteCollaborator MimeNoContent+++-- *** repoDeleteFile++-- | @DELETE \/repos\/{owner}\/{repo}\/contents\/{filepath}@+-- +-- Delete a file in a repository+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoDeleteFile+  :: (Consumes RepoDeleteFile MimeJSON, MimeRender MimeJSON DeleteFileOptions)+  => DeleteFileOptions -- ^ "body"+  -> Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Filepath -- ^ "filepath" -  path of the file to delete+  -> GiteaRequest RepoDeleteFile MimeJSON FileDeleteResponse MimeJSON+repoDeleteFile body (Owner owner) (Repo repo) (Filepath filepath) =+  _mkRequest "DELETE" ["/repos/",toPath owner,"/",toPath repo,"/contents/",toPath filepath]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)+    `setBodyParam` body++data RepoDeleteFile +instance HasBodyParam RepoDeleteFile DeleteFileOptions ++-- | @application/json@+instance Consumes RepoDeleteFile MimeJSON++-- | @application/json@+instance Produces RepoDeleteFile MimeJSON+++-- *** repoDeleteGitHook++-- | @DELETE \/repos\/{owner}\/{repo}\/hooks\/git\/{id}@+-- +-- Delete a Git hook in a repository+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoDeleteGitHook+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> IdText -- ^ "id" -  id of the hook to get+  -> GiteaRequest RepoDeleteGitHook MimeNoContent NoContent MimeNoContent+repoDeleteGitHook (Owner owner) (Repo repo) (IdText id) =+  _mkRequest "DELETE" ["/repos/",toPath owner,"/",toPath repo,"/hooks/git/",toPath id]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoDeleteGitHook  +instance Produces RepoDeleteGitHook MimeNoContent+++-- *** repoDeleteHook++-- | @DELETE \/repos\/{owner}\/{repo}\/hooks\/{id}@+-- +-- Delete a hook in a repository+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoDeleteHook+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Id -- ^ "id" -  id of the hook to delete+  -> GiteaRequest RepoDeleteHook MimeNoContent NoContent MimeNoContent+repoDeleteHook (Owner owner) (Repo repo) (Id id) =+  _mkRequest "DELETE" ["/repos/",toPath owner,"/",toPath repo,"/hooks/",toPath id]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoDeleteHook  +instance Produces RepoDeleteHook MimeNoContent+++-- *** repoDeleteKey++-- | @DELETE \/repos\/{owner}\/{repo}\/keys\/{id}@+-- +-- Delete a key from a repository+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoDeleteKey+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Id -- ^ "id" -  id of the key to delete+  -> GiteaRequest RepoDeleteKey MimeNoContent NoContent MimeNoContent+repoDeleteKey (Owner owner) (Repo repo) (Id id) =+  _mkRequest "DELETE" ["/repos/",toPath owner,"/",toPath repo,"/keys/",toPath id]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoDeleteKey  +instance Produces RepoDeleteKey MimeNoContent+++-- *** repoDeletePullReview++-- | @DELETE \/repos\/{owner}\/{repo}\/pulls\/{index}\/reviews\/{id}@+-- +-- Delete a specific review from a pull request+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoDeletePullReview+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Index -- ^ "index" -  index of the pull request+  -> Id -- ^ "id" -  id of the review+  -> GiteaRequest RepoDeletePullReview MimeNoContent NoContent MimeNoContent+repoDeletePullReview (Owner owner) (Repo repo) (Index index) (Id id) =+  _mkRequest "DELETE" ["/repos/",toPath owner,"/",toPath repo,"/pulls/",toPath index,"/reviews/",toPath id]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoDeletePullReview  +instance Produces RepoDeletePullReview MimeNoContent+++-- *** repoDeletePullReviewRequests++-- | @DELETE \/repos\/{owner}\/{repo}\/pulls\/{index}\/requested_reviewers@+-- +-- cancel review requests for a pull request+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoDeletePullReviewRequests+  :: (Consumes RepoDeletePullReviewRequests contentType, MimeRender contentType PullReviewRequestOptions)+  => ContentType contentType -- ^ request content-type ('MimeType')+  -> PullReviewRequestOptions -- ^ "body"+  -> Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Index -- ^ "index" -  index of the pull request+  -> GiteaRequest RepoDeletePullReviewRequests contentType NoContent MimeNoContent+repoDeletePullReviewRequests _ body (Owner owner) (Repo repo) (Index index) =+  _mkRequest "DELETE" ["/repos/",toPath owner,"/",toPath repo,"/pulls/",toPath index,"/requested_reviewers"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)+    `setBodyParam` body++data RepoDeletePullReviewRequests +instance HasBodyParam RepoDeletePullReviewRequests PullReviewRequestOptions ++-- | @application/json@+instance Consumes RepoDeletePullReviewRequests MimeJSON+-- | @text/plain@+instance Consumes RepoDeletePullReviewRequests MimePlainText++instance Produces RepoDeletePullReviewRequests MimeNoContent+++-- *** repoDeletePushMirror++-- | @DELETE \/repos\/{owner}\/{repo}\/push_mirrors\/{name}@+-- +-- deletes a push mirror from a repository by remoteName+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoDeletePushMirror+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Name -- ^ "name" -  remote name of the pushMirror+  -> GiteaRequest RepoDeletePushMirror MimeNoContent NoContent MimeNoContent+repoDeletePushMirror (Owner owner) (Repo repo) (Name name) =+  _mkRequest "DELETE" ["/repos/",toPath owner,"/",toPath repo,"/push_mirrors/",toPath name]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoDeletePushMirror  +instance Produces RepoDeletePushMirror MimeNoContent+++-- *** repoDeleteRelease++-- | @DELETE \/repos\/{owner}\/{repo}\/releases\/{id}@+-- +-- Delete a release+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoDeleteRelease+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Id -- ^ "id" -  id of the release to delete+  -> GiteaRequest RepoDeleteRelease MimeNoContent NoContent MimeNoContent+repoDeleteRelease (Owner owner) (Repo repo) (Id id) =+  _mkRequest "DELETE" ["/repos/",toPath owner,"/",toPath repo,"/releases/",toPath id]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoDeleteRelease  +instance Produces RepoDeleteRelease MimeNoContent+++-- *** repoDeleteReleaseAttachment++-- | @DELETE \/repos\/{owner}\/{repo}\/releases\/{id}\/assets\/{attachment_id}@+-- +-- Delete a release attachment+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoDeleteReleaseAttachment+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Id -- ^ "id" -  id of the release+  -> AttachmentId -- ^ "attachmentId" -  id of the attachment to delete+  -> GiteaRequest RepoDeleteReleaseAttachment MimeNoContent NoContent MimeNoContent+repoDeleteReleaseAttachment (Owner owner) (Repo repo) (Id id) (AttachmentId attachmentId) =+  _mkRequest "DELETE" ["/repos/",toPath owner,"/",toPath repo,"/releases/",toPath id,"/assets/",toPath attachmentId]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoDeleteReleaseAttachment  +instance Produces RepoDeleteReleaseAttachment MimeNoContent+++-- *** repoDeleteReleaseByTag++-- | @DELETE \/repos\/{owner}\/{repo}\/releases\/tags\/{tag}@+-- +-- Delete a release by tag name+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoDeleteReleaseByTag+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Tag2 -- ^ "tag" -  tag name of the release to delete+  -> GiteaRequest RepoDeleteReleaseByTag MimeNoContent NoContent MimeNoContent+repoDeleteReleaseByTag (Owner owner) (Repo repo) (Tag2 tag) =+  _mkRequest "DELETE" ["/repos/",toPath owner,"/",toPath repo,"/releases/tags/",toPath tag]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoDeleteReleaseByTag  +instance Produces RepoDeleteReleaseByTag MimeNoContent+++-- *** repoDeleteTag++-- | @DELETE \/repos\/{owner}\/{repo}\/tags\/{tag}@+-- +-- Delete a repository's tag by name+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoDeleteTag+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Tag2 -- ^ "tag" -  name of tag to delete+  -> GiteaRequest RepoDeleteTag MimeNoContent NoContent MimeNoContent+repoDeleteTag (Owner owner) (Repo repo) (Tag2 tag) =+  _mkRequest "DELETE" ["/repos/",toPath owner,"/",toPath repo,"/tags/",toPath tag]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoDeleteTag  +instance Produces RepoDeleteTag MimeNoContent+++-- *** repoDeleteTeam++-- | @DELETE \/repos\/{owner}\/{repo}\/teams\/{team}@+-- +-- Delete a team from a repository+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoDeleteTeam+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Team2 -- ^ "team" -  team name+  -> GiteaRequest RepoDeleteTeam MimeNoContent NoContent MimeNoContent+repoDeleteTeam (Owner owner) (Repo repo) (Team2 team) =+  _mkRequest "DELETE" ["/repos/",toPath owner,"/",toPath repo,"/teams/",toPath team]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoDeleteTeam  +instance Produces RepoDeleteTeam MimeNoContent+++-- *** repoDeleteTopic++-- | @DELETE \/repos\/{owner}\/{repo}\/topics\/{topic}@+-- +-- Delete a topic from a repository+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoDeleteTopic+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> TopicText -- ^ "topic" -  name of the topic to delete+  -> GiteaRequest RepoDeleteTopic MimeNoContent NoContent MimeNoContent+repoDeleteTopic (Owner owner) (Repo repo) (TopicText topic) =+  _mkRequest "DELETE" ["/repos/",toPath owner,"/",toPath repo,"/topics/",toPath topic]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoDeleteTopic  +instance Produces RepoDeleteTopic MimeNoContent+++-- *** repoDeleteWikiPage++-- | @DELETE \/repos\/{owner}\/{repo}\/wiki\/page\/{pageName}@+-- +-- Delete a wiki page+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoDeleteWikiPage+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> PageName -- ^ "pageName" -  name of the page+  -> GiteaRequest RepoDeleteWikiPage MimeNoContent NoContent MimeNoContent+repoDeleteWikiPage (Owner owner) (Repo repo) (PageName pageName) =+  _mkRequest "DELETE" ["/repos/",toPath owner,"/",toPath repo,"/wiki/page/",toPath pageName]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoDeleteWikiPage  +instance Produces RepoDeleteWikiPage MimeNoContent+++-- *** repoDismissPullReview++-- | @POST \/repos\/{owner}\/{repo}\/pulls\/{index}\/reviews\/{id}\/dismissals@+-- +-- Dismiss a review for a pull request+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoDismissPullReview+  :: (Consumes RepoDismissPullReview contentType, MimeRender contentType DismissPullReviewOptions)+  => ContentType contentType -- ^ request content-type ('MimeType')+  -> DismissPullReviewOptions -- ^ "body"+  -> Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Index -- ^ "index" -  index of the pull request+  -> Id -- ^ "id" -  id of the review+  -> GiteaRequest RepoDismissPullReview contentType PullReview MimeJSON+repoDismissPullReview _ body (Owner owner) (Repo repo) (Index index) (Id id) =+  _mkRequest "POST" ["/repos/",toPath owner,"/",toPath repo,"/pulls/",toPath index,"/reviews/",toPath id,"/dismissals"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)+    `setBodyParam` body++data RepoDismissPullReview +instance HasBodyParam RepoDismissPullReview DismissPullReviewOptions ++-- | @application/json@+instance Consumes RepoDismissPullReview MimeJSON+-- | @text/plain@+instance Consumes RepoDismissPullReview MimePlainText++-- | @application/json@+instance Produces RepoDismissPullReview MimeJSON+++-- *** repoDownloadCommitDiffOrPatch++-- | @GET \/repos\/{owner}\/{repo}\/git\/commits\/{sha}.{diffType}@+-- +-- Get a commit's diff or patch+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoDownloadCommitDiffOrPatch+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Sha -- ^ "sha" -  SHA of the commit to get+  -> DiffType -- ^ "diffType" -  whether the output is diff or patch+  -> GiteaRequest RepoDownloadCommitDiffOrPatch MimeNoContent Text MimePlainText+repoDownloadCommitDiffOrPatch (Owner owner) (Repo repo) (Sha sha) (DiffType diffType) =+  _mkRequest "GET" ["/repos/",toPath owner,"/",toPath repo,"/git/commits/",toPath sha,".",toPath diffType]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoDownloadCommitDiffOrPatch  +-- | @text/plain@+instance Produces RepoDownloadCommitDiffOrPatch MimePlainText+++-- *** repoDownloadPullDiffOrPatch++-- | @GET \/repos\/{owner}\/{repo}\/pulls\/{index}.{diffType}@+-- +-- Get a pull request diff or patch+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoDownloadPullDiffOrPatch+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Index -- ^ "index" -  index of the pull request to get+  -> DiffType -- ^ "diffType" -  whether the output is diff or patch+  -> GiteaRequest RepoDownloadPullDiffOrPatch MimeNoContent Text MimePlainText+repoDownloadPullDiffOrPatch (Owner owner) (Repo repo) (Index index) (DiffType diffType) =+  _mkRequest "GET" ["/repos/",toPath owner,"/",toPath repo,"/pulls/",toPath index,".",toPath diffType]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoDownloadPullDiffOrPatch  ++-- | /Optional Param/ "binary" - whether to include binary file changes. if true, the diff is applicable with `git apply`+instance HasOptionalParam RepoDownloadPullDiffOrPatch ParamBinary where+  applyOptionalParam req (ParamBinary xs) =+    req `addQuery` toQuery ("binary", Just xs)+-- | @text/plain@+instance Produces RepoDownloadPullDiffOrPatch MimePlainText+++-- *** repoEdit++-- | @PATCH \/repos\/{owner}\/{repo}@+-- +-- Edit a repository's properties. Only fields that are set will be changed.+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoEdit+  :: (Consumes RepoEdit contentType)+  => ContentType contentType -- ^ request content-type ('MimeType')+  -> Owner -- ^ "owner" -  owner of the repo to edit+  -> Repo -- ^ "repo" -  name of the repo to edit+  -> GiteaRequest RepoEdit contentType Repository MimeJSON+repoEdit _ (Owner owner) (Repo repo) =+  _mkRequest "PATCH" ["/repos/",toPath owner,"/",toPath repo]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoEdit ++-- | /Body Param/ "body" - Properties of a repo that you can edit+instance HasBodyParam RepoEdit EditRepoOption ++-- | @application/json@+instance Consumes RepoEdit MimeJSON+-- | @text/plain@+instance Consumes RepoEdit MimePlainText++-- | @application/json@+instance Produces RepoEdit MimeJSON+++-- *** repoEditBranchProtection++-- | @PATCH \/repos\/{owner}\/{repo}\/branch_protections\/{name}@+-- +-- Edit a branch protections for a repository. Only fields that are set will be changed+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoEditBranchProtection+  :: (Consumes RepoEditBranchProtection MimeJSON)+  => Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Name -- ^ "name" -  name of protected branch+  -> GiteaRequest RepoEditBranchProtection MimeJSON BranchProtection MimeJSON+repoEditBranchProtection (Owner owner) (Repo repo) (Name name) =+  _mkRequest "PATCH" ["/repos/",toPath owner,"/",toPath repo,"/branch_protections/",toPath name]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoEditBranchProtection +instance HasBodyParam RepoEditBranchProtection EditBranchProtectionOption ++-- | @application/json@+instance Consumes RepoEditBranchProtection MimeJSON++-- | @application/json@+instance Produces RepoEditBranchProtection MimeJSON+++-- *** repoEditGitHook++-- | @PATCH \/repos\/{owner}\/{repo}\/hooks\/git\/{id}@+-- +-- Edit a Git hook in a repository+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoEditGitHook+  :: (Consumes RepoEditGitHook contentType)+  => ContentType contentType -- ^ request content-type ('MimeType')+  -> Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> IdText -- ^ "id" -  id of the hook to get+  -> GiteaRequest RepoEditGitHook contentType GitHook MimeJSON+repoEditGitHook _ (Owner owner) (Repo repo) (IdText id) =+  _mkRequest "PATCH" ["/repos/",toPath owner,"/",toPath repo,"/hooks/git/",toPath id]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoEditGitHook +instance HasBodyParam RepoEditGitHook EditGitHookOption ++-- | @application/json@+instance Consumes RepoEditGitHook MimeJSON+-- | @text/plain@+instance Consumes RepoEditGitHook MimePlainText++-- | @application/json@+instance Produces RepoEditGitHook MimeJSON+++-- *** repoEditHook++-- | @PATCH \/repos\/{owner}\/{repo}\/hooks\/{id}@+-- +-- Edit a hook in a repository+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoEditHook+  :: (Consumes RepoEditHook contentType)+  => ContentType contentType -- ^ request content-type ('MimeType')+  -> Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Id -- ^ "id" -  index of the hook+  -> GiteaRequest RepoEditHook contentType Hook MimeJSON+repoEditHook _ (Owner owner) (Repo repo) (Id id) =+  _mkRequest "PATCH" ["/repos/",toPath owner,"/",toPath repo,"/hooks/",toPath id]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoEditHook +instance HasBodyParam RepoEditHook EditHookOption ++-- | @application/json@+instance Consumes RepoEditHook MimeJSON+-- | @text/plain@+instance Consumes RepoEditHook MimePlainText++-- | @application/json@+instance Produces RepoEditHook MimeJSON+++-- *** repoEditPullRequest++-- | @PATCH \/repos\/{owner}\/{repo}\/pulls\/{index}@+-- +-- Update a pull request. If using deadline only the date will be taken into account, and time of day ignored.+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoEditPullRequest+  :: (Consumes RepoEditPullRequest MimeJSON)+  => Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Index -- ^ "index" -  index of the pull request to edit+  -> GiteaRequest RepoEditPullRequest MimeJSON PullRequest MimeJSON+repoEditPullRequest (Owner owner) (Repo repo) (Index index) =+  _mkRequest "PATCH" ["/repos/",toPath owner,"/",toPath repo,"/pulls/",toPath index]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoEditPullRequest +instance HasBodyParam RepoEditPullRequest EditPullRequestOption ++-- | @application/json@+instance Consumes RepoEditPullRequest MimeJSON++-- | @application/json@+instance Produces RepoEditPullRequest MimeJSON+++-- *** repoEditRelease++-- | @PATCH \/repos\/{owner}\/{repo}\/releases\/{id}@+-- +-- Update a release+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoEditRelease+  :: (Consumes RepoEditRelease MimeJSON)+  => Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Id -- ^ "id" -  id of the release to edit+  -> GiteaRequest RepoEditRelease MimeJSON Release MimeJSON+repoEditRelease (Owner owner) (Repo repo) (Id id) =+  _mkRequest "PATCH" ["/repos/",toPath owner,"/",toPath repo,"/releases/",toPath id]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoEditRelease +instance HasBodyParam RepoEditRelease EditReleaseOption ++-- | @application/json@+instance Consumes RepoEditRelease MimeJSON++-- | @application/json@+instance Produces RepoEditRelease MimeJSON+++-- *** repoEditReleaseAttachment++-- | @PATCH \/repos\/{owner}\/{repo}\/releases\/{id}\/assets\/{attachment_id}@+-- +-- Edit a release attachment+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoEditReleaseAttachment+  :: (Consumes RepoEditReleaseAttachment MimeJSON)+  => Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Id -- ^ "id" -  id of the release+  -> AttachmentId -- ^ "attachmentId" -  id of the attachment to edit+  -> GiteaRequest RepoEditReleaseAttachment MimeJSON Attachment MimeJSON+repoEditReleaseAttachment (Owner owner) (Repo repo) (Id id) (AttachmentId attachmentId) =+  _mkRequest "PATCH" ["/repos/",toPath owner,"/",toPath repo,"/releases/",toPath id,"/assets/",toPath attachmentId]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoEditReleaseAttachment +instance HasBodyParam RepoEditReleaseAttachment EditAttachmentOptions ++-- | @application/json@+instance Consumes RepoEditReleaseAttachment MimeJSON++-- | @application/json@+instance Produces RepoEditReleaseAttachment MimeJSON+++-- *** repoEditWikiPage++-- | @PATCH \/repos\/{owner}\/{repo}\/wiki\/page\/{pageName}@+-- +-- Edit a wiki page+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoEditWikiPage+  :: (Consumes RepoEditWikiPage MimeJSON)+  => Accept accept -- ^ request accept ('MimeType')+  -> Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> PageName -- ^ "pageName" -  name of the page+  -> GiteaRequest RepoEditWikiPage MimeJSON WikiPage accept+repoEditWikiPage  _ (Owner owner) (Repo repo) (PageName pageName) =+  _mkRequest "PATCH" ["/repos/",toPath owner,"/",toPath repo,"/wiki/page/",toPath pageName]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoEditWikiPage +instance HasBodyParam RepoEditWikiPage CreateWikiPageOptions ++-- | @application/json@+instance Consumes RepoEditWikiPage MimeJSON++-- | @text/html@+instance Produces RepoEditWikiPage MimeTextHtml+-- | @application/json@+instance Produces RepoEditWikiPage MimeJSON+++-- *** repoGet++-- | @GET \/repos\/{owner}\/{repo}@+-- +-- Get a repository+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoGet+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> GiteaRequest RepoGet MimeNoContent Repository MimeJSON+repoGet (Owner owner) (Repo repo) =+  _mkRequest "GET" ["/repos/",toPath owner,"/",toPath repo]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoGet  +-- | @application/json@+instance Produces RepoGet MimeJSON+++-- *** repoGetAllCommits++-- | @GET \/repos\/{owner}\/{repo}\/commits@+-- +-- Get a list of all commits from a repository+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoGetAllCommits+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> GiteaRequest RepoGetAllCommits MimeNoContent [Commit] MimeJSON+repoGetAllCommits (Owner owner) (Repo repo) =+  _mkRequest "GET" ["/repos/",toPath owner,"/",toPath repo,"/commits"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoGetAllCommits  ++-- | /Optional Param/ "sha" - SHA or branch to start listing commits from (usually 'master')+instance HasOptionalParam RepoGetAllCommits Sha where+  applyOptionalParam req (Sha xs) =+    req `addQuery` toQuery ("sha", Just xs)++-- | /Optional Param/ "path" - filepath of a file/dir+instance HasOptionalParam RepoGetAllCommits Path where+  applyOptionalParam req (Path xs) =+    req `addQuery` toQuery ("path", Just xs)++-- | /Optional Param/ "stat" - include diff stats for every commit (disable for speedup, default 'true')+instance HasOptionalParam RepoGetAllCommits Stat where+  applyOptionalParam req (Stat xs) =+    req `addQuery` toQuery ("stat", Just xs)++-- | /Optional Param/ "page" - page number of results to return (1-based)+instance HasOptionalParam RepoGetAllCommits Page where+  applyOptionalParam req (Page xs) =+    req `addQuery` toQuery ("page", Just xs)++-- | /Optional Param/ "limit" - page size of results (ignored if used with 'path')+instance HasOptionalParam RepoGetAllCommits Limit where+  applyOptionalParam req (Limit xs) =+    req `addQuery` toQuery ("limit", Just xs)+-- | @application/json@+instance Produces RepoGetAllCommits MimeJSON+++-- *** repoGetArchive++-- | @GET \/repos\/{owner}\/{repo}\/archive\/{archive}@+-- +-- Get an archive of a repository+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoGetArchive+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Archive -- ^ "archive" -  the git reference for download with attached archive format (e.g. master.zip)+  -> GiteaRequest RepoGetArchive MimeNoContent NoContent MimeNoContent+repoGetArchive (Owner owner) (Repo repo) (Archive archive) =+  _mkRequest "GET" ["/repos/",toPath owner,"/",toPath repo,"/archive/",toPath archive]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoGetArchive  +instance Produces RepoGetArchive MimeNoContent+++-- *** repoGetAssignees++-- | @GET \/repos\/{owner}\/{repo}\/assignees@+-- +-- Return all users that have write access and can be assigned to issues+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoGetAssignees+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> GiteaRequest RepoGetAssignees MimeNoContent [User] MimeJSON+repoGetAssignees (Owner owner) (Repo repo) =+  _mkRequest "GET" ["/repos/",toPath owner,"/",toPath repo,"/assignees"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoGetAssignees  +-- | @application/json@+instance Produces RepoGetAssignees MimeJSON+++-- *** repoGetBranch++-- | @GET \/repos\/{owner}\/{repo}\/branches\/{branch}@+-- +-- Retrieve a specific branch from a repository, including its effective branch protection+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoGetBranch+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Branch2 -- ^ "branch" -  branch to get+  -> GiteaRequest RepoGetBranch MimeNoContent Branch MimeJSON+repoGetBranch (Owner owner) (Repo repo) (Branch2 branch) =+  _mkRequest "GET" ["/repos/",toPath owner,"/",toPath repo,"/branches/",toPath branch]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoGetBranch  +-- | @application/json@+instance Produces RepoGetBranch MimeJSON+++-- *** repoGetBranchProtection++-- | @GET \/repos\/{owner}\/{repo}\/branch_protections\/{name}@+-- +-- Get a specific branch protection for the repository+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoGetBranchProtection+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Name -- ^ "name" -  name of protected branch+  -> GiteaRequest RepoGetBranchProtection MimeNoContent BranchProtection MimeJSON+repoGetBranchProtection (Owner owner) (Repo repo) (Name name) =+  _mkRequest "GET" ["/repos/",toPath owner,"/",toPath repo,"/branch_protections/",toPath name]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoGetBranchProtection  +-- | @application/json@+instance Produces RepoGetBranchProtection MimeJSON+++-- *** repoGetByID++-- | @GET \/repositories\/{id}@+-- +-- Get a repository by id+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoGetByID+  :: Id -- ^ "id" -  id of the repo to get+  -> GiteaRequest RepoGetByID MimeNoContent Repository MimeJSON+repoGetByID (Id id) =+  _mkRequest "GET" ["/repositories/",toPath id]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoGetByID  +-- | @application/json@+instance Produces RepoGetByID MimeJSON+++-- *** repoGetCombinedStatusByRef++-- | @GET \/repos\/{owner}\/{repo}\/commits\/{ref}\/status@+-- +-- Get a commit's combined status, by branch/tag/commit reference+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoGetCombinedStatusByRef+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Ref -- ^ "ref" -  name of branch/tag/commit+  -> GiteaRequest RepoGetCombinedStatusByRef MimeNoContent CombinedStatus MimeJSON+repoGetCombinedStatusByRef (Owner owner) (Repo repo) (Ref ref) =+  _mkRequest "GET" ["/repos/",toPath owner,"/",toPath repo,"/commits/",toPath ref,"/status"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoGetCombinedStatusByRef  ++-- | /Optional Param/ "page" - page number of results to return (1-based)+instance HasOptionalParam RepoGetCombinedStatusByRef Page where+  applyOptionalParam req (Page xs) =+    req `addQuery` toQuery ("page", Just xs)++-- | /Optional Param/ "limit" - page size of results+instance HasOptionalParam RepoGetCombinedStatusByRef Limit where+  applyOptionalParam req (Limit xs) =+    req `addQuery` toQuery ("limit", Just xs)+-- | @application/json@+instance Produces RepoGetCombinedStatusByRef MimeJSON+++-- *** repoGetContents++-- | @GET \/repos\/{owner}\/{repo}\/contents\/{filepath}@+-- +-- Gets the metadata and contents (if a file) of an entry in a repository, or a list of entries if a dir+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoGetContents+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Filepath -- ^ "filepath" -  path of the dir, file, symlink or submodule in the repo+  -> GiteaRequest RepoGetContents MimeNoContent ContentsResponse MimeJSON+repoGetContents (Owner owner) (Repo repo) (Filepath filepath) =+  _mkRequest "GET" ["/repos/",toPath owner,"/",toPath repo,"/contents/",toPath filepath]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoGetContents  ++-- | /Optional Param/ "ref" - The name of the commit/branch/tag. Default the repository’s default branch (usually master)+instance HasOptionalParam RepoGetContents Ref where+  applyOptionalParam req (Ref xs) =+    req `addQuery` toQuery ("ref", Just xs)+-- | @application/json@+instance Produces RepoGetContents MimeJSON+++-- *** repoGetContentsList++-- | @GET \/repos\/{owner}\/{repo}\/contents@+-- +-- Gets the metadata of all the entries of the root dir+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoGetContentsList+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> GiteaRequest RepoGetContentsList MimeNoContent [ContentsResponse] MimeJSON+repoGetContentsList (Owner owner) (Repo repo) =+  _mkRequest "GET" ["/repos/",toPath owner,"/",toPath repo,"/contents"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoGetContentsList  ++-- | /Optional Param/ "ref" - The name of the commit/branch/tag. Default the repository’s default branch (usually master)+instance HasOptionalParam RepoGetContentsList Ref where+  applyOptionalParam req (Ref xs) =+    req `addQuery` toQuery ("ref", Just xs)+-- | @application/json@+instance Produces RepoGetContentsList MimeJSON+++-- *** repoGetEditorConfig++-- | @GET \/repos\/{owner}\/{repo}\/editorconfig\/{filepath}@+-- +-- Get the EditorConfig definitions of a file in a repository+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoGetEditorConfig+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Filepath -- ^ "filepath" -  filepath of file to get+  -> GiteaRequest RepoGetEditorConfig MimeNoContent NoContent MimeNoContent+repoGetEditorConfig (Owner owner) (Repo repo) (Filepath filepath) =+  _mkRequest "GET" ["/repos/",toPath owner,"/",toPath repo,"/editorconfig/",toPath filepath]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoGetEditorConfig  ++-- | /Optional Param/ "ref" - The name of the commit/branch/tag. Default the repository’s default branch (usually master)+instance HasOptionalParam RepoGetEditorConfig Ref where+  applyOptionalParam req (Ref xs) =+    req `addQuery` toQuery ("ref", Just xs)+instance Produces RepoGetEditorConfig MimeNoContent+++-- *** repoGetGitHook++-- | @GET \/repos\/{owner}\/{repo}\/hooks\/git\/{id}@+-- +-- Get a Git hook+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoGetGitHook+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> IdText -- ^ "id" -  id of the hook to get+  -> GiteaRequest RepoGetGitHook MimeNoContent GitHook MimeJSON+repoGetGitHook (Owner owner) (Repo repo) (IdText id) =+  _mkRequest "GET" ["/repos/",toPath owner,"/",toPath repo,"/hooks/git/",toPath id]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoGetGitHook  +-- | @application/json@+instance Produces RepoGetGitHook MimeJSON+++-- *** repoGetHook++-- | @GET \/repos\/{owner}\/{repo}\/hooks\/{id}@+-- +-- Get a hook+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoGetHook+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Id -- ^ "id" -  id of the hook to get+  -> GiteaRequest RepoGetHook MimeNoContent Hook MimeJSON+repoGetHook (Owner owner) (Repo repo) (Id id) =+  _mkRequest "GET" ["/repos/",toPath owner,"/",toPath repo,"/hooks/",toPath id]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoGetHook  +-- | @application/json@+instance Produces RepoGetHook MimeJSON+++-- *** repoGetIssueTemplates++-- | @GET \/repos\/{owner}\/{repo}\/issue_templates@+-- +-- Get available issue templates for a repository+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoGetIssueTemplates+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> GiteaRequest RepoGetIssueTemplates MimeNoContent [IssueTemplate] MimeJSON+repoGetIssueTemplates (Owner owner) (Repo repo) =+  _mkRequest "GET" ["/repos/",toPath owner,"/",toPath repo,"/issue_templates"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoGetIssueTemplates  +-- | @application/json@+instance Produces RepoGetIssueTemplates MimeJSON+++-- *** repoGetKey++-- | @GET \/repos\/{owner}\/{repo}\/keys\/{id}@+-- +-- Get a repository's key by id+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoGetKey+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Id -- ^ "id" -  id of the key to get+  -> GiteaRequest RepoGetKey MimeNoContent DeployKey MimeJSON+repoGetKey (Owner owner) (Repo repo) (Id id) =+  _mkRequest "GET" ["/repos/",toPath owner,"/",toPath repo,"/keys/",toPath id]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoGetKey  +-- | @application/json@+instance Produces RepoGetKey MimeJSON+++-- *** repoGetLanguages++-- | @GET \/repos\/{owner}\/{repo}\/languages@+-- +-- Get languages and number of bytes of code written+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoGetLanguages+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> GiteaRequest RepoGetLanguages MimeNoContent ((Map.Map String Integer)) MimeJSON+repoGetLanguages (Owner owner) (Repo repo) =+  _mkRequest "GET" ["/repos/",toPath owner,"/",toPath repo,"/languages"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoGetLanguages  +-- | @application/json@+instance Produces RepoGetLanguages MimeJSON+++-- *** repoGetLatestRelease++-- | @GET \/repos\/{owner}\/{repo}\/releases\/latest@+-- +-- Gets the most recent non-prerelease, non-draft release of a repository, sorted by created_at+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoGetLatestRelease+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> GiteaRequest RepoGetLatestRelease MimeNoContent Release MimeJSON+repoGetLatestRelease (Owner owner) (Repo repo) =+  _mkRequest "GET" ["/repos/",toPath owner,"/",toPath repo,"/releases/latest"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoGetLatestRelease  +-- | @application/json@+instance Produces RepoGetLatestRelease MimeJSON+++-- *** repoGetNote++-- | @GET \/repos\/{owner}\/{repo}\/git\/notes\/{sha}@+-- +-- Get a note corresponding to a single commit from a repository+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoGetNote+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Sha -- ^ "sha" -  a git ref or commit sha+  -> GiteaRequest RepoGetNote MimeNoContent Note MimeJSON+repoGetNote (Owner owner) (Repo repo) (Sha sha) =+  _mkRequest "GET" ["/repos/",toPath owner,"/",toPath repo,"/git/notes/",toPath sha]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoGetNote  +-- | @application/json@+instance Produces RepoGetNote MimeJSON+++-- *** repoGetPullRequest++-- | @GET \/repos\/{owner}\/{repo}\/pulls\/{index}@+-- +-- Get a pull request+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoGetPullRequest+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Index -- ^ "index" -  index of the pull request to get+  -> GiteaRequest RepoGetPullRequest MimeNoContent PullRequest MimeJSON+repoGetPullRequest (Owner owner) (Repo repo) (Index index) =+  _mkRequest "GET" ["/repos/",toPath owner,"/",toPath repo,"/pulls/",toPath index]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoGetPullRequest  +-- | @application/json@+instance Produces RepoGetPullRequest MimeJSON+++-- *** repoGetPullRequestCommits++-- | @GET \/repos\/{owner}\/{repo}\/pulls\/{index}\/commits@+-- +-- Get commits for a pull request+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoGetPullRequestCommits+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Index -- ^ "index" -  index of the pull request to get+  -> GiteaRequest RepoGetPullRequestCommits MimeNoContent [Commit] MimeJSON+repoGetPullRequestCommits (Owner owner) (Repo repo) (Index index) =+  _mkRequest "GET" ["/repos/",toPath owner,"/",toPath repo,"/pulls/",toPath index,"/commits"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoGetPullRequestCommits  ++-- | /Optional Param/ "page" - page number of results to return (1-based)+instance HasOptionalParam RepoGetPullRequestCommits Page where+  applyOptionalParam req (Page xs) =+    req `addQuery` toQuery ("page", Just xs)++-- | /Optional Param/ "limit" - page size of results+instance HasOptionalParam RepoGetPullRequestCommits Limit where+  applyOptionalParam req (Limit xs) =+    req `addQuery` toQuery ("limit", Just xs)+-- | @application/json@+instance Produces RepoGetPullRequestCommits MimeJSON+++-- *** repoGetPullRequestFiles++-- | @GET \/repos\/{owner}\/{repo}\/pulls\/{index}\/files@+-- +-- Get changed files for a pull request+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoGetPullRequestFiles+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Index -- ^ "index" -  index of the pull request to get+  -> GiteaRequest RepoGetPullRequestFiles MimeNoContent [ChangedFile] MimeJSON+repoGetPullRequestFiles (Owner owner) (Repo repo) (Index index) =+  _mkRequest "GET" ["/repos/",toPath owner,"/",toPath repo,"/pulls/",toPath index,"/files"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoGetPullRequestFiles  ++-- | /Optional Param/ "skip-to" - skip to given file+instance HasOptionalParam RepoGetPullRequestFiles SkipTo where+  applyOptionalParam req (SkipTo xs) =+    req `addQuery` toQuery ("skip-to", Just xs)++-- | /Optional Param/ "whitespace" - whitespace behavior+instance HasOptionalParam RepoGetPullRequestFiles Whitespace where+  applyOptionalParam req (Whitespace xs) =+    req `addQuery` toQuery ("whitespace", Just xs)++-- | /Optional Param/ "page" - page number of results to return (1-based)+instance HasOptionalParam RepoGetPullRequestFiles Page where+  applyOptionalParam req (Page xs) =+    req `addQuery` toQuery ("page", Just xs)++-- | /Optional Param/ "limit" - page size of results+instance HasOptionalParam RepoGetPullRequestFiles Limit where+  applyOptionalParam req (Limit xs) =+    req `addQuery` toQuery ("limit", Just xs)+-- | @application/json@+instance Produces RepoGetPullRequestFiles MimeJSON+++-- *** repoGetPullReview++-- | @GET \/repos\/{owner}\/{repo}\/pulls\/{index}\/reviews\/{id}@+-- +-- Get a specific review for a pull request+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoGetPullReview+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Index -- ^ "index" -  index of the pull request+  -> Id -- ^ "id" -  id of the review+  -> GiteaRequest RepoGetPullReview MimeNoContent PullReview MimeJSON+repoGetPullReview (Owner owner) (Repo repo) (Index index) (Id id) =+  _mkRequest "GET" ["/repos/",toPath owner,"/",toPath repo,"/pulls/",toPath index,"/reviews/",toPath id]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoGetPullReview  +-- | @application/json@+instance Produces RepoGetPullReview MimeJSON+++-- *** repoGetPullReviewComments++-- | @GET \/repos\/{owner}\/{repo}\/pulls\/{index}\/reviews\/{id}\/comments@+-- +-- Get a specific review for a pull request+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoGetPullReviewComments+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Index -- ^ "index" -  index of the pull request+  -> Id -- ^ "id" -  id of the review+  -> GiteaRequest RepoGetPullReviewComments MimeNoContent [PullReviewComment] MimeJSON+repoGetPullReviewComments (Owner owner) (Repo repo) (Index index) (Id id) =+  _mkRequest "GET" ["/repos/",toPath owner,"/",toPath repo,"/pulls/",toPath index,"/reviews/",toPath id,"/comments"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoGetPullReviewComments  +-- | @application/json@+instance Produces RepoGetPullReviewComments MimeJSON+++-- *** repoGetPushMirrorByRemoteName++-- | @GET \/repos\/{owner}\/{repo}\/push_mirrors\/{name}@+-- +-- Get push mirror of the repository by remoteName+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoGetPushMirrorByRemoteName+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Name -- ^ "name" -  remote name of push mirror+  -> GiteaRequest RepoGetPushMirrorByRemoteName MimeNoContent PushMirror MimeJSON+repoGetPushMirrorByRemoteName (Owner owner) (Repo repo) (Name name) =+  _mkRequest "GET" ["/repos/",toPath owner,"/",toPath repo,"/push_mirrors/",toPath name]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoGetPushMirrorByRemoteName  +-- | @application/json@+instance Produces RepoGetPushMirrorByRemoteName MimeJSON+++-- *** repoGetRawFile++-- | @GET \/repos\/{owner}\/{repo}\/raw\/{filepath}@+-- +-- Get a file from a repository+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoGetRawFile+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Filepath -- ^ "filepath" -  filepath of the file to get+  -> GiteaRequest RepoGetRawFile MimeNoContent NoContent MimeNoContent+repoGetRawFile (Owner owner) (Repo repo) (Filepath filepath) =+  _mkRequest "GET" ["/repos/",toPath owner,"/",toPath repo,"/raw/",toPath filepath]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoGetRawFile  ++-- | /Optional Param/ "ref" - The name of the commit/branch/tag. Default the repository’s default branch (usually master)+instance HasOptionalParam RepoGetRawFile Ref where+  applyOptionalParam req (Ref xs) =+    req `addQuery` toQuery ("ref", Just xs)+instance Produces RepoGetRawFile MimeNoContent+++-- *** repoGetRawFileOrLFS++-- | @GET \/repos\/{owner}\/{repo}\/media\/{filepath}@+-- +-- Get a file or it's LFS object from a repository+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoGetRawFileOrLFS+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Filepath -- ^ "filepath" -  filepath of the file to get+  -> GiteaRequest RepoGetRawFileOrLFS MimeNoContent NoContent MimeNoContent+repoGetRawFileOrLFS (Owner owner) (Repo repo) (Filepath filepath) =+  _mkRequest "GET" ["/repos/",toPath owner,"/",toPath repo,"/media/",toPath filepath]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoGetRawFileOrLFS  ++-- | /Optional Param/ "ref" - The name of the commit/branch/tag. Default the repository’s default branch (usually master)+instance HasOptionalParam RepoGetRawFileOrLFS Ref where+  applyOptionalParam req (Ref xs) =+    req `addQuery` toQuery ("ref", Just xs)+instance Produces RepoGetRawFileOrLFS MimeNoContent+++-- *** repoGetRelease++-- | @GET \/repos\/{owner}\/{repo}\/releases\/{id}@+-- +-- Get a release+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoGetRelease+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Id -- ^ "id" -  id of the release to get+  -> GiteaRequest RepoGetRelease MimeNoContent Release MimeJSON+repoGetRelease (Owner owner) (Repo repo) (Id id) =+  _mkRequest "GET" ["/repos/",toPath owner,"/",toPath repo,"/releases/",toPath id]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoGetRelease  +-- | @application/json@+instance Produces RepoGetRelease MimeJSON+++-- *** repoGetReleaseAttachment++-- | @GET \/repos\/{owner}\/{repo}\/releases\/{id}\/assets\/{attachment_id}@+-- +-- Get a release attachment+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoGetReleaseAttachment+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Id -- ^ "id" -  id of the release+  -> AttachmentId -- ^ "attachmentId" -  id of the attachment to get+  -> GiteaRequest RepoGetReleaseAttachment MimeNoContent Attachment MimeJSON+repoGetReleaseAttachment (Owner owner) (Repo repo) (Id id) (AttachmentId attachmentId) =+  _mkRequest "GET" ["/repos/",toPath owner,"/",toPath repo,"/releases/",toPath id,"/assets/",toPath attachmentId]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoGetReleaseAttachment  +-- | @application/json@+instance Produces RepoGetReleaseAttachment MimeJSON+++-- *** repoGetReleaseByTag++-- | @GET \/repos\/{owner}\/{repo}\/releases\/tags\/{tag}@+-- +-- Get a release by tag name+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoGetReleaseByTag+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Tag2 -- ^ "tag" -  tag name of the release to get+  -> GiteaRequest RepoGetReleaseByTag MimeNoContent Release MimeJSON+repoGetReleaseByTag (Owner owner) (Repo repo) (Tag2 tag) =+  _mkRequest "GET" ["/repos/",toPath owner,"/",toPath repo,"/releases/tags/",toPath tag]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoGetReleaseByTag  +-- | @application/json@+instance Produces RepoGetReleaseByTag MimeJSON+++-- *** repoGetRepoPermissions++-- | @GET \/repos\/{owner}\/{repo}\/collaborators\/{collaborator}\/permission@+-- +-- Get repository permissions for a user+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoGetRepoPermissions+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Collaborator -- ^ "collaborator" -  username of the collaborator+  -> GiteaRequest RepoGetRepoPermissions MimeNoContent RepoCollaboratorPermission MimeJSON+repoGetRepoPermissions (Owner owner) (Repo repo) (Collaborator collaborator) =+  _mkRequest "GET" ["/repos/",toPath owner,"/",toPath repo,"/collaborators/",toPath collaborator,"/permission"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoGetRepoPermissions  +-- | @application/json@+instance Produces RepoGetRepoPermissions MimeJSON+++-- *** repoGetReviewers++-- | @GET \/repos\/{owner}\/{repo}\/reviewers@+-- +-- Return all users that can be requested to review in this repo+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoGetReviewers+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> GiteaRequest RepoGetReviewers MimeNoContent [User] MimeJSON+repoGetReviewers (Owner owner) (Repo repo) =+  _mkRequest "GET" ["/repos/",toPath owner,"/",toPath repo,"/reviewers"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoGetReviewers  +-- | @application/json@+instance Produces RepoGetReviewers MimeJSON+++-- *** repoGetSingleCommit++-- | @GET \/repos\/{owner}\/{repo}\/git\/commits\/{sha}@+-- +-- Get a single commit from a repository+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoGetSingleCommit+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Sha -- ^ "sha" -  a git ref or commit sha+  -> GiteaRequest RepoGetSingleCommit MimeNoContent Commit MimeJSON+repoGetSingleCommit (Owner owner) (Repo repo) (Sha sha) =+  _mkRequest "GET" ["/repos/",toPath owner,"/",toPath repo,"/git/commits/",toPath sha]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoGetSingleCommit  +-- | @application/json@+instance Produces RepoGetSingleCommit MimeJSON+++-- *** repoGetTag++-- | @GET \/repos\/{owner}\/{repo}\/tags\/{tag}@+-- +-- Get the tag of a repository by tag name+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoGetTag+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Tag2 -- ^ "tag" -  name of tag+  -> GiteaRequest RepoGetTag MimeNoContent Tag MimeJSON+repoGetTag (Owner owner) (Repo repo) (Tag2 tag) =+  _mkRequest "GET" ["/repos/",toPath owner,"/",toPath repo,"/tags/",toPath tag]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoGetTag  +-- | @application/json@+instance Produces RepoGetTag MimeJSON+++-- *** repoGetWikiPage++-- | @GET \/repos\/{owner}\/{repo}\/wiki\/page\/{pageName}@+-- +-- Get a wiki page+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoGetWikiPage+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> PageName -- ^ "pageName" -  name of the page+  -> GiteaRequest RepoGetWikiPage MimeNoContent WikiPage MimeJSON+repoGetWikiPage (Owner owner) (Repo repo) (PageName pageName) =+  _mkRequest "GET" ["/repos/",toPath owner,"/",toPath repo,"/wiki/page/",toPath pageName]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoGetWikiPage  +-- | @application/json@+instance Produces RepoGetWikiPage MimeJSON+++-- *** repoGetWikiPageRevisions++-- | @GET \/repos\/{owner}\/{repo}\/wiki\/revisions\/{pageName}@+-- +-- Get revisions of a wiki page+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoGetWikiPageRevisions+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> PageName -- ^ "pageName" -  name of the page+  -> GiteaRequest RepoGetWikiPageRevisions MimeNoContent WikiCommitList MimeJSON+repoGetWikiPageRevisions (Owner owner) (Repo repo) (PageName pageName) =+  _mkRequest "GET" ["/repos/",toPath owner,"/",toPath repo,"/wiki/revisions/",toPath pageName]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoGetWikiPageRevisions  ++-- | /Optional Param/ "page" - page number of results to return (1-based)+instance HasOptionalParam RepoGetWikiPageRevisions Page where+  applyOptionalParam req (Page xs) =+    req `addQuery` toQuery ("page", Just xs)+-- | @application/json@+instance Produces RepoGetWikiPageRevisions MimeJSON+++-- *** repoGetWikiPages++-- | @GET \/repos\/{owner}\/{repo}\/wiki\/pages@+-- +-- Get all wiki pages+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoGetWikiPages+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> GiteaRequest RepoGetWikiPages MimeNoContent [WikiPageMetaData] MimeJSON+repoGetWikiPages (Owner owner) (Repo repo) =+  _mkRequest "GET" ["/repos/",toPath owner,"/",toPath repo,"/wiki/pages"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoGetWikiPages  ++-- | /Optional Param/ "page" - page number of results to return (1-based)+instance HasOptionalParam RepoGetWikiPages Page where+  applyOptionalParam req (Page xs) =+    req `addQuery` toQuery ("page", Just xs)++-- | /Optional Param/ "limit" - page size of results+instance HasOptionalParam RepoGetWikiPages Limit where+  applyOptionalParam req (Limit xs) =+    req `addQuery` toQuery ("limit", Just xs)+-- | @application/json@+instance Produces RepoGetWikiPages MimeJSON+++-- *** repoListAllGitRefs++-- | @GET \/repos\/{owner}\/{repo}\/git\/refs@+-- +-- Get specified ref or filtered repository's refs+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoListAllGitRefs+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> GiteaRequest RepoListAllGitRefs MimeNoContent [Reference] MimeJSON+repoListAllGitRefs (Owner owner) (Repo repo) =+  _mkRequest "GET" ["/repos/",toPath owner,"/",toPath repo,"/git/refs"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoListAllGitRefs  +-- | @application/json@+instance Produces RepoListAllGitRefs MimeJSON+++-- *** repoListBranchProtection++-- | @GET \/repos\/{owner}\/{repo}\/branch_protections@+-- +-- List branch protections for a repository+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoListBranchProtection+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> GiteaRequest RepoListBranchProtection MimeNoContent [BranchProtection] MimeJSON+repoListBranchProtection (Owner owner) (Repo repo) =+  _mkRequest "GET" ["/repos/",toPath owner,"/",toPath repo,"/branch_protections"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoListBranchProtection  +-- | @application/json@+instance Produces RepoListBranchProtection MimeJSON+++-- *** repoListBranches++-- | @GET \/repos\/{owner}\/{repo}\/branches@+-- +-- List a repository's branches+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoListBranches+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> GiteaRequest RepoListBranches MimeNoContent [Branch] MimeJSON+repoListBranches (Owner owner) (Repo repo) =+  _mkRequest "GET" ["/repos/",toPath owner,"/",toPath repo,"/branches"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoListBranches  ++-- | /Optional Param/ "page" - page number of results to return (1-based)+instance HasOptionalParam RepoListBranches Page where+  applyOptionalParam req (Page xs) =+    req `addQuery` toQuery ("page", Just xs)++-- | /Optional Param/ "limit" - page size of results+instance HasOptionalParam RepoListBranches Limit where+  applyOptionalParam req (Limit xs) =+    req `addQuery` toQuery ("limit", Just xs)+-- | @application/json@+instance Produces RepoListBranches MimeJSON+++-- *** repoListCollaborators++-- | @GET \/repos\/{owner}\/{repo}\/collaborators@+-- +-- List a repository's collaborators+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoListCollaborators+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> GiteaRequest RepoListCollaborators MimeNoContent [User] MimeJSON+repoListCollaborators (Owner owner) (Repo repo) =+  _mkRequest "GET" ["/repos/",toPath owner,"/",toPath repo,"/collaborators"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoListCollaborators  ++-- | /Optional Param/ "page" - page number of results to return (1-based)+instance HasOptionalParam RepoListCollaborators Page where+  applyOptionalParam req (Page xs) =+    req `addQuery` toQuery ("page", Just xs)++-- | /Optional Param/ "limit" - page size of results+instance HasOptionalParam RepoListCollaborators Limit where+  applyOptionalParam req (Limit xs) =+    req `addQuery` toQuery ("limit", Just xs)+-- | @application/json@+instance Produces RepoListCollaborators MimeJSON+++-- *** repoListGitHooks++-- | @GET \/repos\/{owner}\/{repo}\/hooks\/git@+-- +-- List the Git hooks in a repository+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoListGitHooks+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> GiteaRequest RepoListGitHooks MimeNoContent [GitHook] MimeJSON+repoListGitHooks (Owner owner) (Repo repo) =+  _mkRequest "GET" ["/repos/",toPath owner,"/",toPath repo,"/hooks/git"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoListGitHooks  +-- | @application/json@+instance Produces RepoListGitHooks MimeJSON+++-- *** repoListGitRefs++-- | @GET \/repos\/{owner}\/{repo}\/git\/refs\/{ref}@+-- +-- Get specified ref or filtered repository's refs+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoListGitRefs+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Ref -- ^ "ref" -  part or full name of the ref+  -> GiteaRequest RepoListGitRefs MimeNoContent [Reference] MimeJSON+repoListGitRefs (Owner owner) (Repo repo) (Ref ref) =+  _mkRequest "GET" ["/repos/",toPath owner,"/",toPath repo,"/git/refs/",toPath ref]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoListGitRefs  +-- | @application/json@+instance Produces RepoListGitRefs MimeJSON+++-- *** repoListHooks++-- | @GET \/repos\/{owner}\/{repo}\/hooks@+-- +-- List the hooks in a repository+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoListHooks+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> GiteaRequest RepoListHooks MimeNoContent [Hook] MimeJSON+repoListHooks (Owner owner) (Repo repo) =+  _mkRequest "GET" ["/repos/",toPath owner,"/",toPath repo,"/hooks"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoListHooks  ++-- | /Optional Param/ "page" - page number of results to return (1-based)+instance HasOptionalParam RepoListHooks Page where+  applyOptionalParam req (Page xs) =+    req `addQuery` toQuery ("page", Just xs)++-- | /Optional Param/ "limit" - page size of results+instance HasOptionalParam RepoListHooks Limit where+  applyOptionalParam req (Limit xs) =+    req `addQuery` toQuery ("limit", Just xs)+-- | @application/json@+instance Produces RepoListHooks MimeJSON+++-- *** repoListKeys++-- | @GET \/repos\/{owner}\/{repo}\/keys@+-- +-- List a repository's keys+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoListKeys+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> GiteaRequest RepoListKeys MimeNoContent [DeployKey] MimeJSON+repoListKeys (Owner owner) (Repo repo) =+  _mkRequest "GET" ["/repos/",toPath owner,"/",toPath repo,"/keys"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoListKeys  ++-- | /Optional Param/ "key_id" - the key_id to search for+instance HasOptionalParam RepoListKeys KeyId where+  applyOptionalParam req (KeyId xs) =+    req `addQuery` toQuery ("key_id", Just xs)++-- | /Optional Param/ "fingerprint" - fingerprint of the key+instance HasOptionalParam RepoListKeys Fingerprint where+  applyOptionalParam req (Fingerprint xs) =+    req `addQuery` toQuery ("fingerprint", Just xs)++-- | /Optional Param/ "page" - page number of results to return (1-based)+instance HasOptionalParam RepoListKeys Page where+  applyOptionalParam req (Page xs) =+    req `addQuery` toQuery ("page", Just xs)++-- | /Optional Param/ "limit" - page size of results+instance HasOptionalParam RepoListKeys Limit where+  applyOptionalParam req (Limit xs) =+    req `addQuery` toQuery ("limit", Just xs)+-- | @application/json@+instance Produces RepoListKeys MimeJSON+++-- *** repoListPullRequests++-- | @GET \/repos\/{owner}\/{repo}\/pulls@+-- +-- List a repo's pull requests+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoListPullRequests+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> GiteaRequest RepoListPullRequests MimeNoContent [PullRequest] MimeJSON+repoListPullRequests (Owner owner) (Repo repo) =+  _mkRequest "GET" ["/repos/",toPath owner,"/",toPath repo,"/pulls"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoListPullRequests  ++-- | /Optional Param/ "state" - State of pull request: open or closed (optional)+instance HasOptionalParam RepoListPullRequests State3 where+  applyOptionalParam req (State3 xs) =+    req `addQuery` toQuery ("state", Just xs)++-- | /Optional Param/ "sort" - Type of sort+instance HasOptionalParam RepoListPullRequests Sort3 where+  applyOptionalParam req (Sort3 xs) =+    req `addQuery` toQuery ("sort", Just xs)++-- | /Optional Param/ "milestone" - ID of the milestone+instance HasOptionalParam RepoListPullRequests Milestone2 where+  applyOptionalParam req (Milestone2 xs) =+    req `addQuery` toQuery ("milestone", Just xs)++-- | /Optional Param/ "labels" - Label IDs+instance HasOptionalParam RepoListPullRequests LabelsInteger where+  applyOptionalParam req (LabelsInteger xs) =+    req `addQuery` toQueryColl MultiParamArray ("labels", Just xs)++-- | /Optional Param/ "page" - page number of results to return (1-based)+instance HasOptionalParam RepoListPullRequests Page where+  applyOptionalParam req (Page xs) =+    req `addQuery` toQuery ("page", Just xs)++-- | /Optional Param/ "limit" - page size of results+instance HasOptionalParam RepoListPullRequests Limit where+  applyOptionalParam req (Limit xs) =+    req `addQuery` toQuery ("limit", Just xs)+-- | @application/json@+instance Produces RepoListPullRequests MimeJSON+++-- *** repoListPullReviews++-- | @GET \/repos\/{owner}\/{repo}\/pulls\/{index}\/reviews@+-- +-- List all reviews for a pull request+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoListPullReviews+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Index -- ^ "index" -  index of the pull request+  -> GiteaRequest RepoListPullReviews MimeNoContent [PullReview] MimeJSON+repoListPullReviews (Owner owner) (Repo repo) (Index index) =+  _mkRequest "GET" ["/repos/",toPath owner,"/",toPath repo,"/pulls/",toPath index,"/reviews"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoListPullReviews  ++-- | /Optional Param/ "page" - page number of results to return (1-based)+instance HasOptionalParam RepoListPullReviews Page where+  applyOptionalParam req (Page xs) =+    req `addQuery` toQuery ("page", Just xs)++-- | /Optional Param/ "limit" - page size of results+instance HasOptionalParam RepoListPullReviews Limit where+  applyOptionalParam req (Limit xs) =+    req `addQuery` toQuery ("limit", Just xs)+-- | @application/json@+instance Produces RepoListPullReviews MimeJSON+++-- *** repoListPushMirrors++-- | @GET \/repos\/{owner}\/{repo}\/push_mirrors@+-- +-- Get all push mirrors of the repository+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoListPushMirrors+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> GiteaRequest RepoListPushMirrors MimeNoContent [PushMirror] MimeJSON+repoListPushMirrors (Owner owner) (Repo repo) =+  _mkRequest "GET" ["/repos/",toPath owner,"/",toPath repo,"/push_mirrors"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoListPushMirrors  ++-- | /Optional Param/ "page" - page number of results to return (1-based)+instance HasOptionalParam RepoListPushMirrors Page where+  applyOptionalParam req (Page xs) =+    req `addQuery` toQuery ("page", Just xs)++-- | /Optional Param/ "limit" - page size of results+instance HasOptionalParam RepoListPushMirrors Limit where+  applyOptionalParam req (Limit xs) =+    req `addQuery` toQuery ("limit", Just xs)+-- | @application/json@+instance Produces RepoListPushMirrors MimeJSON+++-- *** repoListReleaseAttachments++-- | @GET \/repos\/{owner}\/{repo}\/releases\/{id}\/assets@+-- +-- List release's attachments+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoListReleaseAttachments+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Id -- ^ "id" -  id of the release+  -> GiteaRequest RepoListReleaseAttachments MimeNoContent [Attachment] MimeJSON+repoListReleaseAttachments (Owner owner) (Repo repo) (Id id) =+  _mkRequest "GET" ["/repos/",toPath owner,"/",toPath repo,"/releases/",toPath id,"/assets"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoListReleaseAttachments  +-- | @application/json@+instance Produces RepoListReleaseAttachments MimeJSON+++-- *** repoListReleases++-- | @GET \/repos\/{owner}\/{repo}\/releases@+-- +-- List a repo's releases+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoListReleases+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> GiteaRequest RepoListReleases MimeNoContent [Release] MimeJSON+repoListReleases (Owner owner) (Repo repo) =+  _mkRequest "GET" ["/repos/",toPath owner,"/",toPath repo,"/releases"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoListReleases  ++-- | /Optional Param/ "draft" - filter (exclude / include) drafts, if you dont have repo write access none will show+instance HasOptionalParam RepoListReleases Draft where+  applyOptionalParam req (Draft xs) =+    req `addQuery` toQuery ("draft", Just xs)++-- | /Optional Param/ "pre-release" - filter (exclude / include) pre-releases+instance HasOptionalParam RepoListReleases PreRelease where+  applyOptionalParam req (PreRelease xs) =+    req `addQuery` toQuery ("pre-release", Just xs)++-- | /Optional Param/ "per_page" - page size of results, deprecated - use limit+instance HasOptionalParam RepoListReleases PerPage where+  applyOptionalParam req (PerPage xs) =+    req `addQuery` toQuery ("per_page", Just xs)++-- | /Optional Param/ "page" - page number of results to return (1-based)+instance HasOptionalParam RepoListReleases Page where+  applyOptionalParam req (Page xs) =+    req `addQuery` toQuery ("page", Just xs)++-- | /Optional Param/ "limit" - page size of results+instance HasOptionalParam RepoListReleases Limit where+  applyOptionalParam req (Limit xs) =+    req `addQuery` toQuery ("limit", Just xs)+-- | @application/json@+instance Produces RepoListReleases MimeJSON+++-- *** repoListStargazers++-- | @GET \/repos\/{owner}\/{repo}\/stargazers@+-- +-- List a repo's stargazers+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoListStargazers+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> GiteaRequest RepoListStargazers MimeNoContent [User] MimeJSON+repoListStargazers (Owner owner) (Repo repo) =+  _mkRequest "GET" ["/repos/",toPath owner,"/",toPath repo,"/stargazers"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoListStargazers  ++-- | /Optional Param/ "page" - page number of results to return (1-based)+instance HasOptionalParam RepoListStargazers Page where+  applyOptionalParam req (Page xs) =+    req `addQuery` toQuery ("page", Just xs)++-- | /Optional Param/ "limit" - page size of results+instance HasOptionalParam RepoListStargazers Limit where+  applyOptionalParam req (Limit xs) =+    req `addQuery` toQuery ("limit", Just xs)+-- | @application/json@+instance Produces RepoListStargazers MimeJSON+++-- *** repoListStatuses++-- | @GET \/repos\/{owner}\/{repo}\/statuses\/{sha}@+-- +-- Get a commit's statuses+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoListStatuses+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Sha -- ^ "sha" -  sha of the commit+  -> GiteaRequest RepoListStatuses MimeNoContent [CommitStatus] MimeJSON+repoListStatuses (Owner owner) (Repo repo) (Sha sha) =+  _mkRequest "GET" ["/repos/",toPath owner,"/",toPath repo,"/statuses/",toPath sha]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoListStatuses  ++-- | /Optional Param/ "sort" - type of sort+instance HasOptionalParam RepoListStatuses Sort2 where+  applyOptionalParam req (Sort2 xs) =+    req `addQuery` toQuery ("sort", Just xs)++-- | /Optional Param/ "state" - type of state+instance HasOptionalParam RepoListStatuses State2 where+  applyOptionalParam req (State2 xs) =+    req `addQuery` toQuery ("state", Just xs)++-- | /Optional Param/ "page" - page number of results to return (1-based)+instance HasOptionalParam RepoListStatuses Page where+  applyOptionalParam req (Page xs) =+    req `addQuery` toQuery ("page", Just xs)++-- | /Optional Param/ "limit" - page size of results+instance HasOptionalParam RepoListStatuses Limit where+  applyOptionalParam req (Limit xs) =+    req `addQuery` toQuery ("limit", Just xs)+-- | @application/json@+instance Produces RepoListStatuses MimeJSON+++-- *** repoListStatusesByRef++-- | @GET \/repos\/{owner}\/{repo}\/commits\/{ref}\/statuses@+-- +-- Get a commit's statuses, by branch/tag/commit reference+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoListStatusesByRef+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Ref -- ^ "ref" -  name of branch/tag/commit+  -> GiteaRequest RepoListStatusesByRef MimeNoContent [CommitStatus] MimeJSON+repoListStatusesByRef (Owner owner) (Repo repo) (Ref ref) =+  _mkRequest "GET" ["/repos/",toPath owner,"/",toPath repo,"/commits/",toPath ref,"/statuses"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoListStatusesByRef  ++-- | /Optional Param/ "sort" - type of sort+instance HasOptionalParam RepoListStatusesByRef Sort2 where+  applyOptionalParam req (Sort2 xs) =+    req `addQuery` toQuery ("sort", Just xs)++-- | /Optional Param/ "state" - type of state+instance HasOptionalParam RepoListStatusesByRef State2 where+  applyOptionalParam req (State2 xs) =+    req `addQuery` toQuery ("state", Just xs)++-- | /Optional Param/ "page" - page number of results to return (1-based)+instance HasOptionalParam RepoListStatusesByRef Page where+  applyOptionalParam req (Page xs) =+    req `addQuery` toQuery ("page", Just xs)++-- | /Optional Param/ "limit" - page size of results+instance HasOptionalParam RepoListStatusesByRef Limit where+  applyOptionalParam req (Limit xs) =+    req `addQuery` toQuery ("limit", Just xs)+-- | @application/json@+instance Produces RepoListStatusesByRef MimeJSON+++-- *** repoListSubscribers++-- | @GET \/repos\/{owner}\/{repo}\/subscribers@+-- +-- List a repo's watchers+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoListSubscribers+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> GiteaRequest RepoListSubscribers MimeNoContent [User] MimeJSON+repoListSubscribers (Owner owner) (Repo repo) =+  _mkRequest "GET" ["/repos/",toPath owner,"/",toPath repo,"/subscribers"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoListSubscribers  ++-- | /Optional Param/ "page" - page number of results to return (1-based)+instance HasOptionalParam RepoListSubscribers Page where+  applyOptionalParam req (Page xs) =+    req `addQuery` toQuery ("page", Just xs)++-- | /Optional Param/ "limit" - page size of results+instance HasOptionalParam RepoListSubscribers Limit where+  applyOptionalParam req (Limit xs) =+    req `addQuery` toQuery ("limit", Just xs)+-- | @application/json@+instance Produces RepoListSubscribers MimeJSON+++-- *** repoListTags++-- | @GET \/repos\/{owner}\/{repo}\/tags@+-- +-- List a repository's tags+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoListTags+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> GiteaRequest RepoListTags MimeNoContent [Tag] MimeJSON+repoListTags (Owner owner) (Repo repo) =+  _mkRequest "GET" ["/repos/",toPath owner,"/",toPath repo,"/tags"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoListTags  ++-- | /Optional Param/ "page" - page number of results to return (1-based)+instance HasOptionalParam RepoListTags Page where+  applyOptionalParam req (Page xs) =+    req `addQuery` toQuery ("page", Just xs)++-- | /Optional Param/ "limit" - page size of results, default maximum page size is 50+instance HasOptionalParam RepoListTags Limit where+  applyOptionalParam req (Limit xs) =+    req `addQuery` toQuery ("limit", Just xs)+-- | @application/json@+instance Produces RepoListTags MimeJSON+++-- *** repoListTeams++-- | @GET \/repos\/{owner}\/{repo}\/teams@+-- +-- List a repository's teams+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoListTeams+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> GiteaRequest RepoListTeams MimeNoContent [Team] MimeJSON+repoListTeams (Owner owner) (Repo repo) =+  _mkRequest "GET" ["/repos/",toPath owner,"/",toPath repo,"/teams"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoListTeams  +-- | @application/json@+instance Produces RepoListTeams MimeJSON+++-- *** repoListTopics++-- | @GET \/repos\/{owner}\/{repo}\/topics@+-- +-- Get list of topics that a repository has+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoListTopics+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> GiteaRequest RepoListTopics MimeNoContent TopicName MimeJSON+repoListTopics (Owner owner) (Repo repo) =+  _mkRequest "GET" ["/repos/",toPath owner,"/",toPath repo,"/topics"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoListTopics  ++-- | /Optional Param/ "page" - page number of results to return (1-based)+instance HasOptionalParam RepoListTopics Page where+  applyOptionalParam req (Page xs) =+    req `addQuery` toQuery ("page", Just xs)++-- | /Optional Param/ "limit" - page size of results+instance HasOptionalParam RepoListTopics Limit where+  applyOptionalParam req (Limit xs) =+    req `addQuery` toQuery ("limit", Just xs)+-- | @application/json@+instance Produces RepoListTopics MimeJSON+++-- *** repoMergePullRequest++-- | @POST \/repos\/{owner}\/{repo}\/pulls\/{index}\/merge@+-- +-- Merge a pull request+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoMergePullRequest+  :: (Consumes RepoMergePullRequest contentType)+  => ContentType contentType -- ^ request content-type ('MimeType')+  -> Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Index -- ^ "index" -  index of the pull request to merge+  -> GiteaRequest RepoMergePullRequest contentType NoContent MimeNoContent+repoMergePullRequest _ (Owner owner) (Repo repo) (Index index) =+  _mkRequest "POST" ["/repos/",toPath owner,"/",toPath repo,"/pulls/",toPath index,"/merge"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoMergePullRequest +instance HasBodyParam RepoMergePullRequest MergePullRequestOption ++-- | @application/json@+instance Consumes RepoMergePullRequest MimeJSON+-- | @text/plain@+instance Consumes RepoMergePullRequest MimePlainText++instance Produces RepoMergePullRequest MimeNoContent+++-- *** repoMigrate++-- | @POST \/repos\/migrate@+-- +-- Migrate a remote git repository+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoMigrate+  :: (Consumes RepoMigrate MimeJSON)+  => GiteaRequest RepoMigrate MimeJSON Repository MimeJSON+repoMigrate =+  _mkRequest "POST" ["/repos/migrate"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoMigrate +instance HasBodyParam RepoMigrate MigrateRepoOptions ++-- | @application/json@+instance Consumes RepoMigrate MimeJSON++-- | @application/json@+instance Produces RepoMigrate MimeJSON+++-- *** repoMirrorSync++-- | @POST \/repos\/{owner}\/{repo}\/mirror-sync@+-- +-- Sync a mirrored repository+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoMirrorSync+  :: Owner -- ^ "owner" -  owner of the repo to sync+  -> Repo -- ^ "repo" -  name of the repo to sync+  -> GiteaRequest RepoMirrorSync MimeNoContent NoContent MimeNoContent+repoMirrorSync (Owner owner) (Repo repo) =+  _mkRequest "POST" ["/repos/",toPath owner,"/",toPath repo,"/mirror-sync"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoMirrorSync  +instance Produces RepoMirrorSync MimeNoContent+++-- *** repoPullRequestIsMerged++-- | @GET \/repos\/{owner}\/{repo}\/pulls\/{index}\/merge@+-- +-- Check if a pull request has been merged+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoPullRequestIsMerged+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Index -- ^ "index" -  index of the pull request+  -> GiteaRequest RepoPullRequestIsMerged MimeNoContent NoContent MimeNoContent+repoPullRequestIsMerged (Owner owner) (Repo repo) (Index index) =+  _mkRequest "GET" ["/repos/",toPath owner,"/",toPath repo,"/pulls/",toPath index,"/merge"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoPullRequestIsMerged  +instance Produces RepoPullRequestIsMerged MimeNoContent+++-- *** repoPushMirrorSync++-- | @POST \/repos\/{owner}\/{repo}\/push_mirrors-sync@+-- +-- Sync all push mirrored repository+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoPushMirrorSync+  :: Owner -- ^ "owner" -  owner of the repo to sync+  -> Repo -- ^ "repo" -  name of the repo to sync+  -> GiteaRequest RepoPushMirrorSync MimeNoContent NoContent MimeNoContent+repoPushMirrorSync (Owner owner) (Repo repo) =+  _mkRequest "POST" ["/repos/",toPath owner,"/",toPath repo,"/push_mirrors-sync"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoPushMirrorSync  +instance Produces RepoPushMirrorSync MimeNoContent+++-- *** repoSearch++-- | @GET \/repos\/search@+-- +-- Search for repositories+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoSearch+  :: GiteaRequest RepoSearch MimeNoContent SearchResults MimeJSON+repoSearch =+  _mkRequest "GET" ["/repos/search"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoSearch  ++-- | /Optional Param/ "q" - keyword+instance HasOptionalParam RepoSearch Q where+  applyOptionalParam req (Q xs) =+    req `addQuery` toQuery ("q", Just xs)++-- | /Optional Param/ "topic" - Limit search to repositories with keyword as topic+instance HasOptionalParam RepoSearch Topic where+  applyOptionalParam req (Topic xs) =+    req `addQuery` toQuery ("topic", Just xs)++-- | /Optional Param/ "includeDesc" - include search of keyword within repository description+instance HasOptionalParam RepoSearch IncludeDesc where+  applyOptionalParam req (IncludeDesc xs) =+    req `addQuery` toQuery ("includeDesc", Just xs)++-- | /Optional Param/ "uid" - search only for repos that the user with the given id owns or contributes to+instance HasOptionalParam RepoSearch Uid where+  applyOptionalParam req (Uid xs) =+    req `addQuery` toQuery ("uid", Just xs)++-- | /Optional Param/ "priority_owner_id" - repo owner to prioritize in the results+instance HasOptionalParam RepoSearch PriorityOwnerId where+  applyOptionalParam req (PriorityOwnerId xs) =+    req `addQuery` toQuery ("priority_owner_id", Just xs)++-- | /Optional Param/ "team_id" - search only for repos that belong to the given team id+instance HasOptionalParam RepoSearch TeamId where+  applyOptionalParam req (TeamId xs) =+    req `addQuery` toQuery ("team_id", Just xs)++-- | /Optional Param/ "starredBy" - search only for repos that the user with the given id has starred+instance HasOptionalParam RepoSearch StarredBy where+  applyOptionalParam req (StarredBy xs) =+    req `addQuery` toQuery ("starredBy", Just xs)++-- | /Optional Param/ "private" - include private repositories this user has access to (defaults to true)+instance HasOptionalParam RepoSearch Private where+  applyOptionalParam req (Private xs) =+    req `addQuery` toQuery ("private", Just xs)++-- | /Optional Param/ "is_private" - show only pubic, private or all repositories (defaults to all)+instance HasOptionalParam RepoSearch IsPrivate where+  applyOptionalParam req (IsPrivate xs) =+    req `addQuery` toQuery ("is_private", Just xs)++-- | /Optional Param/ "template" - include template repositories this user has access to (defaults to true)+instance HasOptionalParam RepoSearch Template where+  applyOptionalParam req (Template xs) =+    req `addQuery` toQuery ("template", Just xs)++-- | /Optional Param/ "archived" - show only archived, non-archived or all repositories (defaults to all)+instance HasOptionalParam RepoSearch Archived where+  applyOptionalParam req (Archived xs) =+    req `addQuery` toQuery ("archived", Just xs)++-- | /Optional Param/ "mode" - type of repository to search for. Supported values are \"fork\", \"source\", \"mirror\" and \"collaborative\"+instance HasOptionalParam RepoSearch Mode where+  applyOptionalParam req (Mode xs) =+    req `addQuery` toQuery ("mode", Just xs)++-- | /Optional Param/ "exclusive" - if `uid` is given, search only for repos that the user owns+instance HasOptionalParam RepoSearch Exclusive where+  applyOptionalParam req (Exclusive xs) =+    req `addQuery` toQuery ("exclusive", Just xs)++-- | /Optional Param/ "sort" - sort repos by attribute. Supported values are \"alpha\", \"created\", \"updated\", \"size\", and \"id\". Default is \"alpha\"+instance HasOptionalParam RepoSearch Sort where+  applyOptionalParam req (Sort xs) =+    req `addQuery` toQuery ("sort", Just xs)++-- | /Optional Param/ "order" - sort order, either \"asc\" (ascending) or \"desc\" (descending). Default is \"asc\", ignored if \"sort\" is not specified.+instance HasOptionalParam RepoSearch Order where+  applyOptionalParam req (Order xs) =+    req `addQuery` toQuery ("order", Just xs)++-- | /Optional Param/ "page" - page number of results to return (1-based)+instance HasOptionalParam RepoSearch Page where+  applyOptionalParam req (Page xs) =+    req `addQuery` toQuery ("page", Just xs)++-- | /Optional Param/ "limit" - page size of results+instance HasOptionalParam RepoSearch Limit where+  applyOptionalParam req (Limit xs) =+    req `addQuery` toQuery ("limit", Just xs)+-- | @application/json@+instance Produces RepoSearch MimeJSON+++-- *** repoSigningKey++-- | @GET \/repos\/{owner}\/{repo}\/signing-key.gpg@+-- +-- Get signing-key.gpg for given repository+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoSigningKey+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> GiteaRequest RepoSigningKey MimeNoContent Text MimePlainText+repoSigningKey (Owner owner) (Repo repo) =+  _mkRequest "GET" ["/repos/",toPath owner,"/",toPath repo,"/signing-key.gpg"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoSigningKey  +-- | @text/plain@+instance Produces RepoSigningKey MimePlainText+++-- *** repoSubmitPullReview++-- | @POST \/repos\/{owner}\/{repo}\/pulls\/{index}\/reviews\/{id}@+-- +-- Submit a pending review to an pull request+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoSubmitPullReview+  :: (Consumes RepoSubmitPullReview contentType, MimeRender contentType SubmitPullReviewOptions)+  => ContentType contentType -- ^ request content-type ('MimeType')+  -> SubmitPullReviewOptions -- ^ "body"+  -> Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Index -- ^ "index" -  index of the pull request+  -> Id -- ^ "id" -  id of the review+  -> GiteaRequest RepoSubmitPullReview contentType PullReview MimeJSON+repoSubmitPullReview _ body (Owner owner) (Repo repo) (Index index) (Id id) =+  _mkRequest "POST" ["/repos/",toPath owner,"/",toPath repo,"/pulls/",toPath index,"/reviews/",toPath id]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)+    `setBodyParam` body++data RepoSubmitPullReview +instance HasBodyParam RepoSubmitPullReview SubmitPullReviewOptions ++-- | @application/json@+instance Consumes RepoSubmitPullReview MimeJSON+-- | @text/plain@+instance Consumes RepoSubmitPullReview MimePlainText++-- | @application/json@+instance Produces RepoSubmitPullReview MimeJSON+++-- *** repoTestHook++-- | @POST \/repos\/{owner}\/{repo}\/hooks\/{id}\/tests@+-- +-- Test a push webhook+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoTestHook+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Id -- ^ "id" -  id of the hook to test+  -> GiteaRequest RepoTestHook MimeNoContent NoContent MimeNoContent+repoTestHook (Owner owner) (Repo repo) (Id id) =+  _mkRequest "POST" ["/repos/",toPath owner,"/",toPath repo,"/hooks/",toPath id,"/tests"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoTestHook  ++-- | /Optional Param/ "ref" - The name of the commit/branch/tag, indicates which commit will be loaded to the webhook payload.+instance HasOptionalParam RepoTestHook Ref where+  applyOptionalParam req (Ref xs) =+    req `addQuery` toQuery ("ref", Just xs)+instance Produces RepoTestHook MimeNoContent+++-- *** repoTrackedTimes++-- | @GET \/repos\/{owner}\/{repo}\/times@+-- +-- List a repo's tracked times+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoTrackedTimes+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> GiteaRequest RepoTrackedTimes MimeNoContent [TrackedTime] MimeJSON+repoTrackedTimes (Owner owner) (Repo repo) =+  _mkRequest "GET" ["/repos/",toPath owner,"/",toPath repo,"/times"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoTrackedTimes  ++-- | /Optional Param/ "user" - optional filter by user (available for issue managers)+instance HasOptionalParam RepoTrackedTimes User2 where+  applyOptionalParam req (User2 xs) =+    req `addQuery` toQuery ("user", Just xs)++-- | /Optional Param/ "since" - Only show times updated after the given time. This is a timestamp in RFC 3339 format+instance HasOptionalParam RepoTrackedTimes Since where+  applyOptionalParam req (Since xs) =+    req `addQuery` toQuery ("since", Just xs)++-- | /Optional Param/ "before" - Only show times updated before the given time. This is a timestamp in RFC 3339 format+instance HasOptionalParam RepoTrackedTimes Before where+  applyOptionalParam req (Before xs) =+    req `addQuery` toQuery ("before", Just xs)++-- | /Optional Param/ "page" - page number of results to return (1-based)+instance HasOptionalParam RepoTrackedTimes Page where+  applyOptionalParam req (Page xs) =+    req `addQuery` toQuery ("page", Just xs)++-- | /Optional Param/ "limit" - page size of results+instance HasOptionalParam RepoTrackedTimes Limit where+  applyOptionalParam req (Limit xs) =+    req `addQuery` toQuery ("limit", Just xs)+-- | @application/json@+instance Produces RepoTrackedTimes MimeJSON+++-- *** repoTransfer0++-- | @POST \/repos\/{owner}\/{repo}\/transfer@+-- +-- Transfer a repo ownership+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoTransfer0+  :: (Consumes RepoTransfer0 contentType, MimeRender contentType TransferRepoOption)+  => ContentType contentType -- ^ request content-type ('MimeType')+  -> TransferRepoOption -- ^ "body" -  Transfer Options+  -> Owner -- ^ "owner" -  owner of the repo to transfer+  -> Repo -- ^ "repo" -  name of the repo to transfer+  -> GiteaRequest RepoTransfer0 contentType Repository MimeJSON+repoTransfer0 _ body (Owner owner) (Repo repo) =+  _mkRequest "POST" ["/repos/",toPath owner,"/",toPath repo,"/transfer"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)+    `setBodyParam` body++data RepoTransfer0 ++-- | /Body Param/ "body" - Transfer Options+instance HasBodyParam RepoTransfer0 TransferRepoOption ++-- | @application/json@+instance Consumes RepoTransfer0 MimeJSON+-- | @text/plain@+instance Consumes RepoTransfer0 MimePlainText++-- | @application/json@+instance Produces RepoTransfer0 MimeJSON+++-- *** repoUnDismissPullReview++-- | @POST \/repos\/{owner}\/{repo}\/pulls\/{index}\/reviews\/{id}\/undismissals@+-- +-- Cancel to dismiss a review for a pull request+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoUnDismissPullReview+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Index -- ^ "index" -  index of the pull request+  -> Id -- ^ "id" -  id of the review+  -> GiteaRequest RepoUnDismissPullReview MimeNoContent PullReview MimeJSON+repoUnDismissPullReview (Owner owner) (Repo repo) (Index index) (Id id) =+  _mkRequest "POST" ["/repos/",toPath owner,"/",toPath repo,"/pulls/",toPath index,"/reviews/",toPath id,"/undismissals"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoUnDismissPullReview  +-- | @application/json@+instance Produces RepoUnDismissPullReview MimeJSON+++-- *** repoUpdateFile++-- | @PUT \/repos\/{owner}\/{repo}\/contents\/{filepath}@+-- +-- Update a file in a repository+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoUpdateFile+  :: (Consumes RepoUpdateFile MimeJSON, MimeRender MimeJSON UpdateFileOptions)+  => UpdateFileOptions -- ^ "body"+  -> Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Filepath -- ^ "filepath" -  path of the file to update+  -> GiteaRequest RepoUpdateFile MimeJSON FileResponse MimeJSON+repoUpdateFile body (Owner owner) (Repo repo) (Filepath filepath) =+  _mkRequest "PUT" ["/repos/",toPath owner,"/",toPath repo,"/contents/",toPath filepath]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)+    `setBodyParam` body++data RepoUpdateFile +instance HasBodyParam RepoUpdateFile UpdateFileOptions ++-- | @application/json@+instance Consumes RepoUpdateFile MimeJSON++-- | @application/json@+instance Produces RepoUpdateFile MimeJSON+++-- *** repoUpdatePullRequest++-- | @POST \/repos\/{owner}\/{repo}\/pulls\/{index}\/update@+-- +-- Merge PR's baseBranch into headBranch+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoUpdatePullRequest+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> Index -- ^ "index" -  index of the pull request to get+  -> GiteaRequest RepoUpdatePullRequest MimeNoContent NoContent MimeNoContent+repoUpdatePullRequest (Owner owner) (Repo repo) (Index index) =+  _mkRequest "POST" ["/repos/",toPath owner,"/",toPath repo,"/pulls/",toPath index,"/update"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoUpdatePullRequest  ++-- | /Optional Param/ "style" - how to update pull request+instance HasOptionalParam RepoUpdatePullRequest Style where+  applyOptionalParam req (Style xs) =+    req `addQuery` toQuery ("style", Just xs)+instance Produces RepoUpdatePullRequest MimeNoContent+++-- *** repoUpdateTopics++-- | @PUT \/repos\/{owner}\/{repo}\/topics@+-- +-- Replace list of topics for a repository+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +repoUpdateTopics+  :: (Consumes RepoUpdateTopics contentType)+  => ContentType contentType -- ^ request content-type ('MimeType')+  -> Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> GiteaRequest RepoUpdateTopics contentType NoContent MimeNoContent+repoUpdateTopics _ (Owner owner) (Repo repo) =+  _mkRequest "PUT" ["/repos/",toPath owner,"/",toPath repo,"/topics"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data RepoUpdateTopics +instance HasBodyParam RepoUpdateTopics RepoTopicOptions ++-- | @application/json@+instance Consumes RepoUpdateTopics MimeJSON+-- | @text/plain@+instance Consumes RepoUpdateTopics MimePlainText++instance Produces RepoUpdateTopics MimeNoContent+++-- *** topicSearch++-- | @GET \/topics\/search@+-- +-- search topics via keyword+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +topicSearch+  :: Q -- ^ "q" -  keywords to search+  -> GiteaRequest TopicSearch MimeNoContent [TopicResponse] MimeJSON+topicSearch (Q q) =+  _mkRequest "GET" ["/topics/search"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)+    `addQuery` toQuery ("q", Just q)++data TopicSearch  ++-- | /Optional Param/ "page" - page number of results to return (1-based)+instance HasOptionalParam TopicSearch Page where+  applyOptionalParam req (Page xs) =+    req `addQuery` toQuery ("page", Just xs)++-- | /Optional Param/ "limit" - page size of results+instance HasOptionalParam TopicSearch Limit where+  applyOptionalParam req (Limit xs) =+    req `addQuery` toQuery ("limit", Just xs)+-- | @application/json@+instance Produces TopicSearch MimeJSON+++-- *** userCurrentCheckSubscription++-- | @GET \/repos\/{owner}\/{repo}\/subscription@+-- +-- Check if the current user is watching a repo+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +userCurrentCheckSubscription+  :: Accept accept -- ^ request accept ('MimeType')+  -> Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> GiteaRequest UserCurrentCheckSubscription MimeNoContent WatchInfo accept+userCurrentCheckSubscription  _ (Owner owner) (Repo repo) =+  _mkRequest "GET" ["/repos/",toPath owner,"/",toPath repo,"/subscription"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data UserCurrentCheckSubscription  +-- | @text/html@+instance Produces UserCurrentCheckSubscription MimeTextHtml+-- | @application/json@+instance Produces UserCurrentCheckSubscription MimeJSON+++-- *** userCurrentDeleteSubscription++-- | @DELETE \/repos\/{owner}\/{repo}\/subscription@+-- +-- Unwatch a repo+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +userCurrentDeleteSubscription+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> GiteaRequest UserCurrentDeleteSubscription MimeNoContent NoContent MimeNoContent+userCurrentDeleteSubscription (Owner owner) (Repo repo) =+  _mkRequest "DELETE" ["/repos/",toPath owner,"/",toPath repo,"/subscription"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data UserCurrentDeleteSubscription  +instance Produces UserCurrentDeleteSubscription MimeNoContent+++-- *** userCurrentPutSubscription++-- | @PUT \/repos\/{owner}\/{repo}\/subscription@+-- +-- Watch a repo+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +userCurrentPutSubscription+  :: Accept accept -- ^ request accept ('MimeType')+  -> Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> GiteaRequest UserCurrentPutSubscription MimeNoContent WatchInfo accept+userCurrentPutSubscription  _ (Owner owner) (Repo repo) =+  _mkRequest "PUT" ["/repos/",toPath owner,"/",toPath repo,"/subscription"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data UserCurrentPutSubscription  +-- | @text/html@+instance Produces UserCurrentPutSubscription MimeTextHtml+-- | @application/json@+instance Produces UserCurrentPutSubscription MimeJSON+++-- *** userTrackedTimes++-- | @GET \/repos\/{owner}\/{repo}\/times\/{user}@+-- +-- List a user's tracked times in a repo+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +userTrackedTimes+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> User2 -- ^ "user" -  username of user+  -> GiteaRequest UserTrackedTimes MimeNoContent [TrackedTime] MimeJSON+userTrackedTimes (Owner owner) (Repo repo) (User2 user) =+  _mkRequest "GET" ["/repos/",toPath owner,"/",toPath repo,"/times/",toPath user]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++{-# DEPRECATED userTrackedTimes "" #-}++data UserTrackedTimes  +-- | @application/json@+instance Produces UserTrackedTimes MimeJSON+
+ lib/Gitea/API/Settings.hs view
@@ -0,0 +1,158 @@+{-+   Gitea API.++   This documentation describes the Gitea API.++   OpenAPI Version: 3.0.1+   Gitea API. API version: 1.19.4+   Generated by OpenAPI Generator (https://openapi-generator.tech)+-}++{-|+Module : Gitea.API.Settings+-}++{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE MonoLocalBinds #-}+{-# LANGUAGE MultiParamTypeClasses #-}+{-# LANGUAGE OverloadedStrings #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing -fno-warn-unused-binds -fno-warn-unused-imports #-}++module Gitea.API.Settings where++import Gitea.Core+import Gitea.MimeTypes+import Gitea.Model as M++import qualified Data.Aeson as A+import qualified Data.ByteString as B+import qualified Data.ByteString.Lazy as BL+import qualified Data.Data as P (Typeable, TypeRep, typeOf, typeRep)+import qualified Data.Foldable as P+import qualified Data.Map as Map+import qualified Data.Maybe as P+import qualified Data.Proxy as P (Proxy(..))+import qualified Data.Set as Set+import qualified Data.String as P+import qualified Data.Text as T+import qualified Data.Text.Encoding as T+import qualified Data.Text.Lazy as TL+import qualified Data.Text.Lazy.Encoding as TL+import qualified Data.Time as TI+import qualified Network.HTTP.Client.MultipartFormData as NH+import qualified Network.HTTP.Media as ME+import qualified Network.HTTP.Types as NH+import qualified Web.FormUrlEncoded as WH+import qualified Web.HttpApiData as WH++import Data.Text (Text)+import GHC.Base ((<|>))++import Prelude ((==),(/=),($), (.),(<$>),(<*>),(>>=),Maybe(..),Bool(..),Char,Double,FilePath,Float,Int,Integer,String,fmap,undefined,mempty,maybe,pure,Monad,Applicative,Functor)+import qualified Prelude as P++-- * Operations+++-- ** Settings++-- *** getGeneralAPISettings++-- | @GET \/settings\/api@+-- +-- Get instance's global settings for api+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +getGeneralAPISettings+  :: GiteaRequest GetGeneralAPISettings MimeNoContent GeneralAPISettings MimeJSON+getGeneralAPISettings =+  _mkRequest "GET" ["/settings/api"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data GetGeneralAPISettings  +-- | @application/json@+instance Produces GetGeneralAPISettings MimeJSON+++-- *** getGeneralAttachmentSettings++-- | @GET \/settings\/attachment@+-- +-- Get instance's global settings for Attachment+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +getGeneralAttachmentSettings+  :: GiteaRequest GetGeneralAttachmentSettings MimeNoContent GeneralAttachmentSettings MimeJSON+getGeneralAttachmentSettings =+  _mkRequest "GET" ["/settings/attachment"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data GetGeneralAttachmentSettings  +-- | @application/json@+instance Produces GetGeneralAttachmentSettings MimeJSON+++-- *** getGeneralRepositorySettings++-- | @GET \/settings\/repository@+-- +-- Get instance's global settings for repositories+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +getGeneralRepositorySettings+  :: GiteaRequest GetGeneralRepositorySettings MimeNoContent GeneralRepoSettings MimeJSON+getGeneralRepositorySettings =+  _mkRequest "GET" ["/settings/repository"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data GetGeneralRepositorySettings  +-- | @application/json@+instance Produces GetGeneralRepositorySettings MimeJSON+++-- *** getGeneralUISettings++-- | @GET \/settings\/ui@+-- +-- Get instance's global settings for ui+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +getGeneralUISettings+  :: GiteaRequest GetGeneralUISettings MimeNoContent GeneralUISettings MimeJSON+getGeneralUISettings =+  _mkRequest "GET" ["/settings/ui"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data GetGeneralUISettings  +-- | @application/json@+instance Produces GetGeneralUISettings MimeJSON+
+ lib/Gitea/API/User.hs view
@@ -0,0 +1,1630 @@+{-+   Gitea API.++   This documentation describes the Gitea API.++   OpenAPI Version: 3.0.1+   Gitea API. API version: 1.19.4+   Generated by OpenAPI Generator (https://openapi-generator.tech)+-}++{-|+Module : Gitea.API.User+-}++{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE MonoLocalBinds #-}+{-# LANGUAGE MultiParamTypeClasses #-}+{-# LANGUAGE OverloadedStrings #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing -fno-warn-unused-binds -fno-warn-unused-imports #-}++module Gitea.API.User where++import Gitea.Core+import Gitea.MimeTypes+import Gitea.Model as M++import qualified Data.Aeson as A+import qualified Data.ByteString as B+import qualified Data.ByteString.Lazy as BL+import qualified Data.Data as P (Typeable, TypeRep, typeOf, typeRep)+import qualified Data.Foldable as P+import qualified Data.Map as Map+import qualified Data.Maybe as P+import qualified Data.Proxy as P (Proxy(..))+import qualified Data.Set as Set+import qualified Data.String as P+import qualified Data.Text as T+import qualified Data.Text.Encoding as T+import qualified Data.Text.Lazy as TL+import qualified Data.Text.Lazy.Encoding as TL+import qualified Data.Time as TI+import qualified Network.HTTP.Client.MultipartFormData as NH+import qualified Network.HTTP.Media as ME+import qualified Network.HTTP.Types as NH+import qualified Web.FormUrlEncoded as WH+import qualified Web.HttpApiData as WH++import Data.Text (Text)+import GHC.Base ((<|>))++import Prelude ((==),(/=),($), (.),(<$>),(<*>),(>>=),Maybe(..),Bool(..),Char,Double,FilePath,Float,Int,Integer,String,fmap,undefined,mempty,maybe,pure,Monad,Applicative,Functor)+import qualified Prelude as P++-- * Operations+++-- ** User++-- *** createCurrentUserRepo0++-- | @POST \/user\/repos@+-- +-- Create a repository+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +createCurrentUserRepo0+  :: (Consumes CreateCurrentUserRepo0 MimeJSON)+  => GiteaRequest CreateCurrentUserRepo0 MimeJSON Repository MimeJSON+createCurrentUserRepo0 =+  _mkRequest "POST" ["/user/repos"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data CreateCurrentUserRepo0 +instance HasBodyParam CreateCurrentUserRepo0 CreateRepoOption ++-- | @application/json@+instance Consumes CreateCurrentUserRepo0 MimeJSON++-- | @application/json@+instance Produces CreateCurrentUserRepo0 MimeJSON+++-- *** getUserSettings++-- | @GET \/user\/settings@+-- +-- Get user settings+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +getUserSettings+  :: GiteaRequest GetUserSettings MimeNoContent [UserSettings] MimeJSON+getUserSettings =+  _mkRequest "GET" ["/user/settings"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data GetUserSettings  +-- | @application/json@+instance Produces GetUserSettings MimeJSON+++-- *** getVerificationToken++-- | @GET \/user\/gpg_key_token@+-- +-- Get a Token to verify+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +getVerificationToken+  :: GiteaRequest GetVerificationToken MimeNoContent Text MimePlainText+getVerificationToken =+  _mkRequest "GET" ["/user/gpg_key_token"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data GetVerificationToken  +-- | @text/plain@+instance Produces GetVerificationToken MimePlainText+++-- *** updateUserSettings++-- | @PATCH \/user\/settings@+-- +-- Update user settings+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +updateUserSettings+  :: (Consumes UpdateUserSettings contentType)+  => ContentType contentType -- ^ request content-type ('MimeType')+  -> GiteaRequest UpdateUserSettings contentType [UserSettings] MimeJSON+updateUserSettings _ =+  _mkRequest "PATCH" ["/user/settings"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data UpdateUserSettings +instance HasBodyParam UpdateUserSettings UserSettingsOptions ++-- | @application/json@+instance Consumes UpdateUserSettings MimeJSON+-- | @text/plain@+instance Consumes UpdateUserSettings MimePlainText++-- | @application/json@+instance Produces UpdateUserSettings MimeJSON+++-- *** userAddEmail++-- | @POST \/user\/emails@+-- +-- Add email addresses+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +userAddEmail+  :: (Consumes UserAddEmail contentType)+  => ContentType contentType -- ^ request content-type ('MimeType')+  -> GiteaRequest UserAddEmail contentType [Email] MimeJSON+userAddEmail _ =+  _mkRequest "POST" ["/user/emails"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data UserAddEmail +instance HasBodyParam UserAddEmail CreateEmailOption ++-- | @application/json@+instance Consumes UserAddEmail MimeJSON+-- | @text/plain@+instance Consumes UserAddEmail MimePlainText++-- | @application/json@+instance Produces UserAddEmail MimeJSON+++-- *** userCheckFollowing++-- | @GET \/users\/{username}\/following\/{target}@+-- +-- Check if one user is following another user+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +userCheckFollowing+  :: Username -- ^ "username" -  username of following user+  -> Target -- ^ "target" -  username of followed user+  -> GiteaRequest UserCheckFollowing MimeNoContent NoContent MimeNoContent+userCheckFollowing (Username username) (Target target) =+  _mkRequest "GET" ["/users/",toPath username,"/following/",toPath target]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data UserCheckFollowing  +instance Produces UserCheckFollowing MimeNoContent+++-- *** userCreateOAuth2Application++-- | @POST \/user\/applications\/oauth2@+-- +-- creates a new OAuth2 application+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +userCreateOAuth2Application+  :: (Consumes UserCreateOAuth2Application contentType, MimeRender contentType CreateOAuth2ApplicationOptions)+  => ContentType contentType -- ^ request content-type ('MimeType')+  -> CreateOAuth2ApplicationOptions -- ^ "body"+  -> GiteaRequest UserCreateOAuth2Application contentType OAuth2Application MimeJSON+userCreateOAuth2Application _ body =+  _mkRequest "POST" ["/user/applications/oauth2"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)+    `setBodyParam` body++data UserCreateOAuth2Application +instance HasBodyParam UserCreateOAuth2Application CreateOAuth2ApplicationOptions ++-- | @application/json@+instance Consumes UserCreateOAuth2Application MimeJSON+-- | @text/plain@+instance Consumes UserCreateOAuth2Application MimePlainText++-- | @application/json@+instance Produces UserCreateOAuth2Application MimeJSON+++-- *** userCreateToken++-- | @POST \/users\/{username}\/tokens@+-- +-- Create an access token+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +userCreateToken+  :: (Consumes UserCreateToken MimeJSON)+  => Username -- ^ "username" -  username of user+  -> GiteaRequest UserCreateToken MimeJSON AccessToken MimeJSON+userCreateToken (Username username) =+  _mkRequest "POST" ["/users/",toPath username,"/tokens"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data UserCreateToken +instance HasBodyParam UserCreateToken CreateAccessTokenOption ++-- | @application/json@+instance Consumes UserCreateToken MimeJSON++-- | @application/json@+instance Produces UserCreateToken MimeJSON+++-- *** userCurrentCheckFollowing++-- | @GET \/user\/following\/{username}@+-- +-- Check whether a user is followed by the authenticated user+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +userCurrentCheckFollowing+  :: Username -- ^ "username" -  username of followed user+  -> GiteaRequest UserCurrentCheckFollowing MimeNoContent NoContent MimeNoContent+userCurrentCheckFollowing (Username username) =+  _mkRequest "GET" ["/user/following/",toPath username]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data UserCurrentCheckFollowing  +instance Produces UserCurrentCheckFollowing MimeNoContent+++-- *** userCurrentCheckStarring++-- | @GET \/user\/starred\/{owner}\/{repo}@+-- +-- Whether the authenticated is starring the repo+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +userCurrentCheckStarring+  :: Owner -- ^ "owner" -  owner of the repo+  -> Repo -- ^ "repo" -  name of the repo+  -> GiteaRequest UserCurrentCheckStarring MimeNoContent NoContent MimeNoContent+userCurrentCheckStarring (Owner owner) (Repo repo) =+  _mkRequest "GET" ["/user/starred/",toPath owner,"/",toPath repo]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data UserCurrentCheckStarring  +instance Produces UserCurrentCheckStarring MimeNoContent+++-- *** userCurrentDeleteFollow++-- | @DELETE \/user\/following\/{username}@+-- +-- Unfollow a user+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +userCurrentDeleteFollow+  :: Username -- ^ "username" -  username of user to unfollow+  -> GiteaRequest UserCurrentDeleteFollow MimeNoContent NoContent MimeNoContent+userCurrentDeleteFollow (Username username) =+  _mkRequest "DELETE" ["/user/following/",toPath username]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data UserCurrentDeleteFollow  +instance Produces UserCurrentDeleteFollow MimeNoContent+++-- *** userCurrentDeleteGPGKey++-- | @DELETE \/user\/gpg_keys\/{id}@+-- +-- Remove a GPG key+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +userCurrentDeleteGPGKey+  :: Id -- ^ "id" -  id of key to delete+  -> GiteaRequest UserCurrentDeleteGPGKey MimeNoContent NoContent MimeNoContent+userCurrentDeleteGPGKey (Id id) =+  _mkRequest "DELETE" ["/user/gpg_keys/",toPath id]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data UserCurrentDeleteGPGKey  +instance Produces UserCurrentDeleteGPGKey MimeNoContent+++-- *** userCurrentDeleteKey++-- | @DELETE \/user\/keys\/{id}@+-- +-- Delete a public key+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +userCurrentDeleteKey+  :: Id -- ^ "id" -  id of key to delete+  -> GiteaRequest UserCurrentDeleteKey MimeNoContent NoContent MimeNoContent+userCurrentDeleteKey (Id id) =+  _mkRequest "DELETE" ["/user/keys/",toPath id]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data UserCurrentDeleteKey  +instance Produces UserCurrentDeleteKey MimeNoContent+++-- *** userCurrentDeleteStar++-- | @DELETE \/user\/starred\/{owner}\/{repo}@+-- +-- Unstar the given repo+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +userCurrentDeleteStar+  :: Owner -- ^ "owner" -  owner of the repo to unstar+  -> Repo -- ^ "repo" -  name of the repo to unstar+  -> GiteaRequest UserCurrentDeleteStar MimeNoContent NoContent MimeNoContent+userCurrentDeleteStar (Owner owner) (Repo repo) =+  _mkRequest "DELETE" ["/user/starred/",toPath owner,"/",toPath repo]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data UserCurrentDeleteStar  +instance Produces UserCurrentDeleteStar MimeNoContent+++-- *** userCurrentGetGPGKey++-- | @GET \/user\/gpg_keys\/{id}@+-- +-- Get a GPG key+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +userCurrentGetGPGKey+  :: Id -- ^ "id" -  id of key to get+  -> GiteaRequest UserCurrentGetGPGKey MimeNoContent GPGKey MimeJSON+userCurrentGetGPGKey (Id id) =+  _mkRequest "GET" ["/user/gpg_keys/",toPath id]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data UserCurrentGetGPGKey  +-- | @application/json@+instance Produces UserCurrentGetGPGKey MimeJSON+++-- *** userCurrentGetKey++-- | @GET \/user\/keys\/{id}@+-- +-- Get a public key+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +userCurrentGetKey+  :: Id -- ^ "id" -  id of key to get+  -> GiteaRequest UserCurrentGetKey MimeNoContent PublicKey MimeJSON+userCurrentGetKey (Id id) =+  _mkRequest "GET" ["/user/keys/",toPath id]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data UserCurrentGetKey  +-- | @application/json@+instance Produces UserCurrentGetKey MimeJSON+++-- *** userCurrentListFollowers++-- | @GET \/user\/followers@+-- +-- List the authenticated user's followers+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +userCurrentListFollowers+  :: GiteaRequest UserCurrentListFollowers MimeNoContent [User] MimeJSON+userCurrentListFollowers =+  _mkRequest "GET" ["/user/followers"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data UserCurrentListFollowers  ++-- | /Optional Param/ "page" - page number of results to return (1-based)+instance HasOptionalParam UserCurrentListFollowers Page where+  applyOptionalParam req (Page xs) =+    req `addQuery` toQuery ("page", Just xs)++-- | /Optional Param/ "limit" - page size of results+instance HasOptionalParam UserCurrentListFollowers Limit where+  applyOptionalParam req (Limit xs) =+    req `addQuery` toQuery ("limit", Just xs)+-- | @application/json@+instance Produces UserCurrentListFollowers MimeJSON+++-- *** userCurrentListFollowing++-- | @GET \/user\/following@+-- +-- List the users that the authenticated user is following+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +userCurrentListFollowing+  :: GiteaRequest UserCurrentListFollowing MimeNoContent [User] MimeJSON+userCurrentListFollowing =+  _mkRequest "GET" ["/user/following"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data UserCurrentListFollowing  ++-- | /Optional Param/ "page" - page number of results to return (1-based)+instance HasOptionalParam UserCurrentListFollowing Page where+  applyOptionalParam req (Page xs) =+    req `addQuery` toQuery ("page", Just xs)++-- | /Optional Param/ "limit" - page size of results+instance HasOptionalParam UserCurrentListFollowing Limit where+  applyOptionalParam req (Limit xs) =+    req `addQuery` toQuery ("limit", Just xs)+-- | @application/json@+instance Produces UserCurrentListFollowing MimeJSON+++-- *** userCurrentListGPGKeys++-- | @GET \/user\/gpg_keys@+-- +-- List the authenticated user's GPG keys+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +userCurrentListGPGKeys+  :: GiteaRequest UserCurrentListGPGKeys MimeNoContent [GPGKey] MimeJSON+userCurrentListGPGKeys =+  _mkRequest "GET" ["/user/gpg_keys"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data UserCurrentListGPGKeys  ++-- | /Optional Param/ "page" - page number of results to return (1-based)+instance HasOptionalParam UserCurrentListGPGKeys Page where+  applyOptionalParam req (Page xs) =+    req `addQuery` toQuery ("page", Just xs)++-- | /Optional Param/ "limit" - page size of results+instance HasOptionalParam UserCurrentListGPGKeys Limit where+  applyOptionalParam req (Limit xs) =+    req `addQuery` toQuery ("limit", Just xs)+-- | @application/json@+instance Produces UserCurrentListGPGKeys MimeJSON+++-- *** userCurrentListKeys++-- | @GET \/user\/keys@+-- +-- List the authenticated user's public keys+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +userCurrentListKeys+  :: GiteaRequest UserCurrentListKeys MimeNoContent [PublicKey] MimeJSON+userCurrentListKeys =+  _mkRequest "GET" ["/user/keys"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data UserCurrentListKeys  ++-- | /Optional Param/ "fingerprint" - fingerprint of the key+instance HasOptionalParam UserCurrentListKeys Fingerprint where+  applyOptionalParam req (Fingerprint xs) =+    req `addQuery` toQuery ("fingerprint", Just xs)++-- | /Optional Param/ "page" - page number of results to return (1-based)+instance HasOptionalParam UserCurrentListKeys Page where+  applyOptionalParam req (Page xs) =+    req `addQuery` toQuery ("page", Just xs)++-- | /Optional Param/ "limit" - page size of results+instance HasOptionalParam UserCurrentListKeys Limit where+  applyOptionalParam req (Limit xs) =+    req `addQuery` toQuery ("limit", Just xs)+-- | @application/json@+instance Produces UserCurrentListKeys MimeJSON+++-- *** userCurrentListRepos++-- | @GET \/user\/repos@+-- +-- List the repos that the authenticated user owns+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +userCurrentListRepos+  :: GiteaRequest UserCurrentListRepos MimeNoContent [Repository] MimeJSON+userCurrentListRepos =+  _mkRequest "GET" ["/user/repos"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data UserCurrentListRepos  ++-- | /Optional Param/ "page" - page number of results to return (1-based)+instance HasOptionalParam UserCurrentListRepos Page where+  applyOptionalParam req (Page xs) =+    req `addQuery` toQuery ("page", Just xs)++-- | /Optional Param/ "limit" - page size of results+instance HasOptionalParam UserCurrentListRepos Limit where+  applyOptionalParam req (Limit xs) =+    req `addQuery` toQuery ("limit", Just xs)+-- | @application/json@+instance Produces UserCurrentListRepos MimeJSON+++-- *** userCurrentListStarred++-- | @GET \/user\/starred@+-- +-- The repos that the authenticated user has starred+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +userCurrentListStarred+  :: GiteaRequest UserCurrentListStarred MimeNoContent [Repository] MimeJSON+userCurrentListStarred =+  _mkRequest "GET" ["/user/starred"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data UserCurrentListStarred  ++-- | /Optional Param/ "page" - page number of results to return (1-based)+instance HasOptionalParam UserCurrentListStarred Page where+  applyOptionalParam req (Page xs) =+    req `addQuery` toQuery ("page", Just xs)++-- | /Optional Param/ "limit" - page size of results+instance HasOptionalParam UserCurrentListStarred Limit where+  applyOptionalParam req (Limit xs) =+    req `addQuery` toQuery ("limit", Just xs)+-- | @application/json@+instance Produces UserCurrentListStarred MimeJSON+++-- *** userCurrentListSubscriptions++-- | @GET \/user\/subscriptions@+-- +-- List repositories watched by the authenticated user+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +userCurrentListSubscriptions+  :: GiteaRequest UserCurrentListSubscriptions MimeNoContent [Repository] MimeJSON+userCurrentListSubscriptions =+  _mkRequest "GET" ["/user/subscriptions"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data UserCurrentListSubscriptions  ++-- | /Optional Param/ "page" - page number of results to return (1-based)+instance HasOptionalParam UserCurrentListSubscriptions Page where+  applyOptionalParam req (Page xs) =+    req `addQuery` toQuery ("page", Just xs)++-- | /Optional Param/ "limit" - page size of results+instance HasOptionalParam UserCurrentListSubscriptions Limit where+  applyOptionalParam req (Limit xs) =+    req `addQuery` toQuery ("limit", Just xs)+-- | @application/json@+instance Produces UserCurrentListSubscriptions MimeJSON+++-- *** userCurrentPostGPGKey++-- | @POST \/user\/gpg_keys@+-- +-- Create a GPG key+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +userCurrentPostGPGKey+  :: (Consumes UserCurrentPostGPGKey MimeJSON)+  => GiteaRequest UserCurrentPostGPGKey MimeJSON GPGKey MimeJSON+userCurrentPostGPGKey =+  _mkRequest "POST" ["/user/gpg_keys"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data UserCurrentPostGPGKey +instance HasBodyParam UserCurrentPostGPGKey CreateGPGKeyOption ++-- | @application/json@+instance Consumes UserCurrentPostGPGKey MimeJSON++-- | @application/json@+instance Produces UserCurrentPostGPGKey MimeJSON+++-- *** userCurrentPostKey++-- | @POST \/user\/keys@+-- +-- Create a public key+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +userCurrentPostKey+  :: (Consumes UserCurrentPostKey MimeJSON)+  => GiteaRequest UserCurrentPostKey MimeJSON PublicKey MimeJSON+userCurrentPostKey =+  _mkRequest "POST" ["/user/keys"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data UserCurrentPostKey +instance HasBodyParam UserCurrentPostKey CreateKeyOption ++-- | @application/json@+instance Consumes UserCurrentPostKey MimeJSON++-- | @application/json@+instance Produces UserCurrentPostKey MimeJSON+++-- *** userCurrentPutFollow++-- | @PUT \/user\/following\/{username}@+-- +-- Follow a user+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +userCurrentPutFollow+  :: Username -- ^ "username" -  username of user to follow+  -> GiteaRequest UserCurrentPutFollow MimeNoContent NoContent MimeNoContent+userCurrentPutFollow (Username username) =+  _mkRequest "PUT" ["/user/following/",toPath username]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data UserCurrentPutFollow  +instance Produces UserCurrentPutFollow MimeNoContent+++-- *** userCurrentPutStar++-- | @PUT \/user\/starred\/{owner}\/{repo}@+-- +-- Star the given repo+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +userCurrentPutStar+  :: Owner -- ^ "owner" -  owner of the repo to star+  -> Repo -- ^ "repo" -  name of the repo to star+  -> GiteaRequest UserCurrentPutStar MimeNoContent NoContent MimeNoContent+userCurrentPutStar (Owner owner) (Repo repo) =+  _mkRequest "PUT" ["/user/starred/",toPath owner,"/",toPath repo]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data UserCurrentPutStar  +instance Produces UserCurrentPutStar MimeNoContent+++-- *** userCurrentTrackedTimes++-- | @GET \/user\/times@+-- +-- List the current user's tracked times+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +userCurrentTrackedTimes+  :: GiteaRequest UserCurrentTrackedTimes MimeNoContent [TrackedTime] MimeJSON+userCurrentTrackedTimes =+  _mkRequest "GET" ["/user/times"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data UserCurrentTrackedTimes  ++-- | /Optional Param/ "page" - page number of results to return (1-based)+instance HasOptionalParam UserCurrentTrackedTimes Page where+  applyOptionalParam req (Page xs) =+    req `addQuery` toQuery ("page", Just xs)++-- | /Optional Param/ "limit" - page size of results+instance HasOptionalParam UserCurrentTrackedTimes Limit where+  applyOptionalParam req (Limit xs) =+    req `addQuery` toQuery ("limit", Just xs)++-- | /Optional Param/ "since" - Only show times updated after the given time. This is a timestamp in RFC 3339 format+instance HasOptionalParam UserCurrentTrackedTimes Since where+  applyOptionalParam req (Since xs) =+    req `addQuery` toQuery ("since", Just xs)++-- | /Optional Param/ "before" - Only show times updated before the given time. This is a timestamp in RFC 3339 format+instance HasOptionalParam UserCurrentTrackedTimes Before where+  applyOptionalParam req (Before xs) =+    req `addQuery` toQuery ("before", Just xs)+-- | @application/json@+instance Produces UserCurrentTrackedTimes MimeJSON+++-- *** userDeleteAccessToken++-- | @DELETE \/users\/{username}\/tokens\/{token}@+-- +-- delete an access token+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +userDeleteAccessToken+  :: Username -- ^ "username" -  username of user+  -> Token -- ^ "token" -  token to be deleted, identified by ID and if not available by name+  -> GiteaRequest UserDeleteAccessToken MimeNoContent NoContent MimeNoContent+userDeleteAccessToken (Username username) (Token token) =+  _mkRequest "DELETE" ["/users/",toPath username,"/tokens/",toPath token]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data UserDeleteAccessToken  +instance Produces UserDeleteAccessToken MimeNoContent+++-- *** userDeleteEmail++-- | @DELETE \/user\/emails@+-- +-- Delete email addresses+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +userDeleteEmail+  :: (Consumes UserDeleteEmail contentType)+  => ContentType contentType -- ^ request content-type ('MimeType')+  -> GiteaRequest UserDeleteEmail contentType NoContent MimeNoContent+userDeleteEmail _ =+  _mkRequest "DELETE" ["/user/emails"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data UserDeleteEmail +instance HasBodyParam UserDeleteEmail DeleteEmailOption ++-- | @application/json@+instance Consumes UserDeleteEmail MimeJSON+-- | @text/plain@+instance Consumes UserDeleteEmail MimePlainText++instance Produces UserDeleteEmail MimeNoContent+++-- *** userDeleteOAuth2Application++-- | @DELETE \/user\/applications\/oauth2\/{id}@+-- +-- delete an OAuth2 Application+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +userDeleteOAuth2Application+  :: Id -- ^ "id" -  token to be deleted+  -> GiteaRequest UserDeleteOAuth2Application MimeNoContent NoContent MimeNoContent+userDeleteOAuth2Application (Id id) =+  _mkRequest "DELETE" ["/user/applications/oauth2/",toPath id]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data UserDeleteOAuth2Application  +instance Produces UserDeleteOAuth2Application MimeNoContent+++-- *** userGet++-- | @GET \/users\/{username}@+-- +-- Get a user+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +userGet+  :: Username -- ^ "username" -  username of user to get+  -> GiteaRequest UserGet MimeNoContent User MimeJSON+userGet (Username username) =+  _mkRequest "GET" ["/users/",toPath username]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data UserGet  +-- | @application/json@+instance Produces UserGet MimeJSON+++-- *** userGetCurrent++-- | @GET \/user@+-- +-- Get the authenticated user+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +userGetCurrent+  :: GiteaRequest UserGetCurrent MimeNoContent User MimeJSON+userGetCurrent =+  _mkRequest "GET" ["/user"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data UserGetCurrent  +-- | @application/json@+instance Produces UserGetCurrent MimeJSON+++-- *** userGetHeatmapData++-- | @GET \/users\/{username}\/heatmap@+-- +-- Get a user's heatmap+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +userGetHeatmapData+  :: Username -- ^ "username" -  username of user to get+  -> GiteaRequest UserGetHeatmapData MimeNoContent [UserHeatmapData] MimeJSON+userGetHeatmapData (Username username) =+  _mkRequest "GET" ["/users/",toPath username,"/heatmap"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data UserGetHeatmapData  +-- | @application/json@+instance Produces UserGetHeatmapData MimeJSON+++-- *** userGetOAuth2Application++-- | @GET \/user\/applications\/oauth2\/{id}@+-- +-- get an OAuth2 Application+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +userGetOAuth2Application+  :: Id -- ^ "id" -  Application ID to be found+  -> GiteaRequest UserGetOAuth2Application MimeNoContent OAuth2Application MimeJSON+userGetOAuth2Application (Id id) =+  _mkRequest "GET" ["/user/applications/oauth2/",toPath id]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data UserGetOAuth2Application  +-- | @application/json@+instance Produces UserGetOAuth2Application MimeJSON+++-- *** userGetOauth2Application++-- | @GET \/user\/applications\/oauth2@+-- +-- List the authenticated user's oauth2 applications+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +userGetOauth2Application+  :: GiteaRequest UserGetOauth2Application MimeNoContent [OAuth2Application] MimeJSON+userGetOauth2Application =+  _mkRequest "GET" ["/user/applications/oauth2"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data UserGetOauth2Application  ++-- | /Optional Param/ "page" - page number of results to return (1-based)+instance HasOptionalParam UserGetOauth2Application Page where+  applyOptionalParam req (Page xs) =+    req `addQuery` toQuery ("page", Just xs)++-- | /Optional Param/ "limit" - page size of results+instance HasOptionalParam UserGetOauth2Application Limit where+  applyOptionalParam req (Limit xs) =+    req `addQuery` toQuery ("limit", Just xs)+-- | @application/json@+instance Produces UserGetOauth2Application MimeJSON+++-- *** userGetStopWatches++-- | @GET \/user\/stopwatches@+-- +-- Get list of all existing stopwatches+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +userGetStopWatches+  :: GiteaRequest UserGetStopWatches MimeNoContent [StopWatch] MimeJSON+userGetStopWatches =+  _mkRequest "GET" ["/user/stopwatches"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data UserGetStopWatches  ++-- | /Optional Param/ "page" - page number of results to return (1-based)+instance HasOptionalParam UserGetStopWatches Page where+  applyOptionalParam req (Page xs) =+    req `addQuery` toQuery ("page", Just xs)++-- | /Optional Param/ "limit" - page size of results+instance HasOptionalParam UserGetStopWatches Limit where+  applyOptionalParam req (Limit xs) =+    req `addQuery` toQuery ("limit", Just xs)+-- | @application/json@+instance Produces UserGetStopWatches MimeJSON+++-- *** userGetTokens++-- | @GET \/users\/{username}\/tokens@+-- +-- List the authenticated user's access tokens+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +userGetTokens+  :: Username -- ^ "username" -  username of user+  -> GiteaRequest UserGetTokens MimeNoContent [AccessToken] MimeJSON+userGetTokens (Username username) =+  _mkRequest "GET" ["/users/",toPath username,"/tokens"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data UserGetTokens  ++-- | /Optional Param/ "page" - page number of results to return (1-based)+instance HasOptionalParam UserGetTokens Page where+  applyOptionalParam req (Page xs) =+    req `addQuery` toQuery ("page", Just xs)++-- | /Optional Param/ "limit" - page size of results+instance HasOptionalParam UserGetTokens Limit where+  applyOptionalParam req (Limit xs) =+    req `addQuery` toQuery ("limit", Just xs)+-- | @application/json@+instance Produces UserGetTokens MimeJSON+++-- *** userListEmails++-- | @GET \/user\/emails@+-- +-- List the authenticated user's email addresses+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +userListEmails+  :: GiteaRequest UserListEmails MimeNoContent [Email] MimeJSON+userListEmails =+  _mkRequest "GET" ["/user/emails"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data UserListEmails  +-- | @application/json@+instance Produces UserListEmails MimeJSON+++-- *** userListFollowers++-- | @GET \/users\/{username}\/followers@+-- +-- List the given user's followers+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +userListFollowers+  :: Username -- ^ "username" -  username of user+  -> GiteaRequest UserListFollowers MimeNoContent [User] MimeJSON+userListFollowers (Username username) =+  _mkRequest "GET" ["/users/",toPath username,"/followers"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data UserListFollowers  ++-- | /Optional Param/ "page" - page number of results to return (1-based)+instance HasOptionalParam UserListFollowers Page where+  applyOptionalParam req (Page xs) =+    req `addQuery` toQuery ("page", Just xs)++-- | /Optional Param/ "limit" - page size of results+instance HasOptionalParam UserListFollowers Limit where+  applyOptionalParam req (Limit xs) =+    req `addQuery` toQuery ("limit", Just xs)+-- | @application/json@+instance Produces UserListFollowers MimeJSON+++-- *** userListFollowing++-- | @GET \/users\/{username}\/following@+-- +-- List the users that the given user is following+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +userListFollowing+  :: Username -- ^ "username" -  username of user+  -> GiteaRequest UserListFollowing MimeNoContent [User] MimeJSON+userListFollowing (Username username) =+  _mkRequest "GET" ["/users/",toPath username,"/following"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data UserListFollowing  ++-- | /Optional Param/ "page" - page number of results to return (1-based)+instance HasOptionalParam UserListFollowing Page where+  applyOptionalParam req (Page xs) =+    req `addQuery` toQuery ("page", Just xs)++-- | /Optional Param/ "limit" - page size of results+instance HasOptionalParam UserListFollowing Limit where+  applyOptionalParam req (Limit xs) =+    req `addQuery` toQuery ("limit", Just xs)+-- | @application/json@+instance Produces UserListFollowing MimeJSON+++-- *** userListGPGKeys++-- | @GET \/users\/{username}\/gpg_keys@+-- +-- List the given user's GPG keys+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +userListGPGKeys+  :: Username -- ^ "username" -  username of user+  -> GiteaRequest UserListGPGKeys MimeNoContent [GPGKey] MimeJSON+userListGPGKeys (Username username) =+  _mkRequest "GET" ["/users/",toPath username,"/gpg_keys"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data UserListGPGKeys  ++-- | /Optional Param/ "page" - page number of results to return (1-based)+instance HasOptionalParam UserListGPGKeys Page where+  applyOptionalParam req (Page xs) =+    req `addQuery` toQuery ("page", Just xs)++-- | /Optional Param/ "limit" - page size of results+instance HasOptionalParam UserListGPGKeys Limit where+  applyOptionalParam req (Limit xs) =+    req `addQuery` toQuery ("limit", Just xs)+-- | @application/json@+instance Produces UserListGPGKeys MimeJSON+++-- *** userListKeys++-- | @GET \/users\/{username}\/keys@+-- +-- List the given user's public keys+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +userListKeys+  :: Username -- ^ "username" -  username of user+  -> GiteaRequest UserListKeys MimeNoContent [PublicKey] MimeJSON+userListKeys (Username username) =+  _mkRequest "GET" ["/users/",toPath username,"/keys"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data UserListKeys  ++-- | /Optional Param/ "fingerprint" - fingerprint of the key+instance HasOptionalParam UserListKeys Fingerprint where+  applyOptionalParam req (Fingerprint xs) =+    req `addQuery` toQuery ("fingerprint", Just xs)++-- | /Optional Param/ "page" - page number of results to return (1-based)+instance HasOptionalParam UserListKeys Page where+  applyOptionalParam req (Page xs) =+    req `addQuery` toQuery ("page", Just xs)++-- | /Optional Param/ "limit" - page size of results+instance HasOptionalParam UserListKeys Limit where+  applyOptionalParam req (Limit xs) =+    req `addQuery` toQuery ("limit", Just xs)+-- | @application/json@+instance Produces UserListKeys MimeJSON+++-- *** userListRepos++-- | @GET \/users\/{username}\/repos@+-- +-- List the repos owned by the given user+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +userListRepos+  :: Username -- ^ "username" -  username of user+  -> GiteaRequest UserListRepos MimeNoContent [Repository] MimeJSON+userListRepos (Username username) =+  _mkRequest "GET" ["/users/",toPath username,"/repos"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data UserListRepos  ++-- | /Optional Param/ "page" - page number of results to return (1-based)+instance HasOptionalParam UserListRepos Page where+  applyOptionalParam req (Page xs) =+    req `addQuery` toQuery ("page", Just xs)++-- | /Optional Param/ "limit" - page size of results+instance HasOptionalParam UserListRepos Limit where+  applyOptionalParam req (Limit xs) =+    req `addQuery` toQuery ("limit", Just xs)+-- | @application/json@+instance Produces UserListRepos MimeJSON+++-- *** userListStarred++-- | @GET \/users\/{username}\/starred@+-- +-- The repos that the given user has starred+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +userListStarred+  :: Username -- ^ "username" -  username of user+  -> GiteaRequest UserListStarred MimeNoContent [Repository] MimeJSON+userListStarred (Username username) =+  _mkRequest "GET" ["/users/",toPath username,"/starred"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data UserListStarred  ++-- | /Optional Param/ "page" - page number of results to return (1-based)+instance HasOptionalParam UserListStarred Page where+  applyOptionalParam req (Page xs) =+    req `addQuery` toQuery ("page", Just xs)++-- | /Optional Param/ "limit" - page size of results+instance HasOptionalParam UserListStarred Limit where+  applyOptionalParam req (Limit xs) =+    req `addQuery` toQuery ("limit", Just xs)+-- | @application/json@+instance Produces UserListStarred MimeJSON+++-- *** userListSubscriptions++-- | @GET \/users\/{username}\/subscriptions@+-- +-- List the repositories watched by a user+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +userListSubscriptions+  :: Username -- ^ "username" -  username of the user+  -> GiteaRequest UserListSubscriptions MimeNoContent [Repository] MimeJSON+userListSubscriptions (Username username) =+  _mkRequest "GET" ["/users/",toPath username,"/subscriptions"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data UserListSubscriptions  ++-- | /Optional Param/ "page" - page number of results to return (1-based)+instance HasOptionalParam UserListSubscriptions Page where+  applyOptionalParam req (Page xs) =+    req `addQuery` toQuery ("page", Just xs)++-- | /Optional Param/ "limit" - page size of results+instance HasOptionalParam UserListSubscriptions Limit where+  applyOptionalParam req (Limit xs) =+    req `addQuery` toQuery ("limit", Just xs)+-- | @application/json@+instance Produces UserListSubscriptions MimeJSON+++-- *** userListTeams++-- | @GET \/user\/teams@+-- +-- List all the teams a user belongs to+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +userListTeams+  :: GiteaRequest UserListTeams MimeNoContent [Team] MimeJSON+userListTeams =+  _mkRequest "GET" ["/user/teams"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data UserListTeams  ++-- | /Optional Param/ "page" - page number of results to return (1-based)+instance HasOptionalParam UserListTeams Page where+  applyOptionalParam req (Page xs) =+    req `addQuery` toQuery ("page", Just xs)++-- | /Optional Param/ "limit" - page size of results+instance HasOptionalParam UserListTeams Limit where+  applyOptionalParam req (Limit xs) =+    req `addQuery` toQuery ("limit", Just xs)+-- | @application/json@+instance Produces UserListTeams MimeJSON+++-- *** userSearch++-- | @GET \/users\/search@+-- +-- Search for users+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +userSearch+  :: GiteaRequest UserSearch MimeNoContent UserSearch200Response MimeJSON+userSearch =+  _mkRequest "GET" ["/users/search"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data UserSearch  ++-- | /Optional Param/ "q" - keyword+instance HasOptionalParam UserSearch Q where+  applyOptionalParam req (Q xs) =+    req `addQuery` toQuery ("q", Just xs)++-- | /Optional Param/ "uid" - ID of the user to search for+instance HasOptionalParam UserSearch Uid where+  applyOptionalParam req (Uid xs) =+    req `addQuery` toQuery ("uid", Just xs)++-- | /Optional Param/ "page" - page number of results to return (1-based)+instance HasOptionalParam UserSearch Page where+  applyOptionalParam req (Page xs) =+    req `addQuery` toQuery ("page", Just xs)++-- | /Optional Param/ "limit" - page size of results+instance HasOptionalParam UserSearch Limit where+  applyOptionalParam req (Limit xs) =+    req `addQuery` toQuery ("limit", Just xs)+-- | @application/json@+instance Produces UserSearch MimeJSON+++-- *** userUpdateOAuth2Application++-- | @PATCH \/user\/applications\/oauth2\/{id}@+-- +-- update an OAuth2 Application, this includes regenerating the client secret+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +userUpdateOAuth2Application+  :: (Consumes UserUpdateOAuth2Application contentType, MimeRender contentType CreateOAuth2ApplicationOptions)+  => ContentType contentType -- ^ request content-type ('MimeType')+  -> CreateOAuth2ApplicationOptions -- ^ "body"+  -> Id -- ^ "id" -  application to be updated+  -> GiteaRequest UserUpdateOAuth2Application contentType OAuth2Application MimeJSON+userUpdateOAuth2Application _ body (Id id) =+  _mkRequest "PATCH" ["/user/applications/oauth2/",toPath id]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)+    `setBodyParam` body++data UserUpdateOAuth2Application +instance HasBodyParam UserUpdateOAuth2Application CreateOAuth2ApplicationOptions ++-- | @application/json@+instance Consumes UserUpdateOAuth2Application MimeJSON+-- | @text/plain@+instance Consumes UserUpdateOAuth2Application MimePlainText++-- | @application/json@+instance Produces UserUpdateOAuth2Application MimeJSON+++-- *** userVerifyGPGKey++-- | @POST \/user\/gpg_key_verify@+-- +-- Verify a GPG key+-- +-- AuthMethod: 'AuthApiKeyTOTPHeader', 'AuthApiKeyAuthorizationHeaderToken', 'AuthApiKeySudoHeader', 'AuthBasicBasicAuth', 'AuthApiKeyAccessToken', 'AuthApiKeySudoParam', 'AuthApiKeyToken'+-- +userVerifyGPGKey+  :: GiteaRequest UserVerifyGPGKey MimeNoContent GPGKey MimeJSON+userVerifyGPGKey =+  _mkRequest "POST" ["/user/gpg_key_verify"]+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyTOTPHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAuthorizationHeaderToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoHeader)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicBasicAuth)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAccessToken)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeySudoParam)+    `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyToken)++data UserVerifyGPGKey  +-- | @application/json@+instance Produces UserVerifyGPGKey MimeJSON+
+ lib/Gitea/Client.hs view
@@ -0,0 +1,223 @@+{-+   Gitea API.++   This documentation describes the Gitea API.++   OpenAPI Version: 3.0.1+   Gitea API. API version: 1.19.4+   Generated by OpenAPI Generator (https://openapi-generator.tech)+-}++{-|+Module : Gitea.Client+-}++{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RankNTypes #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE ScopedTypeVariables #-}+{-# LANGUAGE DeriveFunctor #-}+{-# LANGUAGE DeriveFoldable #-}+{-# LANGUAGE DeriveTraversable #-}+{-# OPTIONS_GHC -fno-warn-unused-binds -fno-warn-unused-imports #-}++module Gitea.Client where++import Gitea.Core+import Gitea.Logging+import Gitea.MimeTypes++import qualified Control.Exception.Safe as E+import qualified Control.Monad.IO.Class as P+import qualified Control.Monad as P+import qualified Data.Aeson.Types as A+import qualified Data.ByteString as B+import qualified Data.ByteString.Char8 as BC+import qualified Data.ByteString.Lazy as BL+import qualified Data.ByteString.Lazy.Char8 as BCL+import qualified Data.Proxy as P (Proxy(..))+import qualified Data.Text as T+import qualified Data.Text.Encoding as T+import qualified Network.HTTP.Client as NH+import qualified Network.HTTP.Client.MultipartFormData as NH+import qualified Network.HTTP.Types as NH+import qualified Web.FormUrlEncoded as WH+import qualified Web.HttpApiData as WH++import Data.Function ((&))+import Data.Monoid ((<>))+import Data.Text (Text)+import GHC.Exts (IsString(..))++-- * Dispatch++-- ** Lbs++-- | send a request returning the raw http response+dispatchLbs+  :: (Produces req accept, MimeType contentType)+  => NH.Manager -- ^ http-client Connection manager+  -> GiteaConfig -- ^ config+  -> GiteaRequest req contentType res accept -- ^ request+  -> IO (NH.Response BCL.ByteString) -- ^ response+dispatchLbs manager config request  = do+  initReq <- _toInitRequest config request+  dispatchInitUnsafe manager config initReq++-- ** Mime++-- | pair of decoded http body and http response+data MimeResult res =+  MimeResult { mimeResult :: Either MimeError res -- ^ decoded http body+             , mimeResultResponse :: NH.Response BCL.ByteString -- ^ http response+             }+  deriving (Show, Functor, Foldable, Traversable)++-- | pair of unrender/parser error and http response+data MimeError =+  MimeError {+    mimeError :: String -- ^ unrender/parser error+  , mimeErrorResponse :: NH.Response BCL.ByteString -- ^ http response+  } deriving (Show)++-- | send a request returning the 'MimeResult'+dispatchMime+  :: forall req contentType res accept. (Produces req accept, MimeUnrender accept res, MimeType contentType)+  => NH.Manager -- ^ http-client Connection manager+  -> GiteaConfig -- ^ config+  -> GiteaRequest req contentType res accept -- ^ request+  -> IO (MimeResult res) -- ^ response+dispatchMime manager config request = do+  httpResponse <- dispatchLbs manager config request+  let statusCode = NH.statusCode . NH.responseStatus $ httpResponse+  parsedResult <-+    runConfigLogWithExceptions "Client" config $+    do if (statusCode >= 400 && statusCode < 600)+         then do+           let s = "error statusCode: " ++ show statusCode+           _log "Client" levelError (T.pack s)+           pure (Left (MimeError s httpResponse))+         else case mimeUnrender (P.Proxy :: P.Proxy accept) (NH.responseBody httpResponse) of+           Left s -> do+             _log "Client" levelError (T.pack s)+             pure (Left (MimeError s httpResponse))+           Right r -> pure (Right r)+  return (MimeResult parsedResult httpResponse)++-- | like 'dispatchMime', but only returns the decoded http body+dispatchMime'+  :: (Produces req accept, MimeUnrender accept res, MimeType contentType)+  => NH.Manager -- ^ http-client Connection manager+  -> GiteaConfig -- ^ config+  -> GiteaRequest req contentType res accept -- ^ request+  -> IO (Either MimeError res) -- ^ response+dispatchMime' manager config request  = do+    MimeResult parsedResult _ <- dispatchMime manager config request+    return parsedResult++-- ** Unsafe++-- | like 'dispatchReqLbs', but does not validate the operation is a 'Producer' of the "accept" 'MimeType'.  (Useful if the server's response is undocumented)+dispatchLbsUnsafe+  :: (MimeType accept, MimeType contentType)+  => NH.Manager -- ^ http-client Connection manager+  -> GiteaConfig -- ^ config+  -> GiteaRequest req contentType res accept -- ^ request+  -> IO (NH.Response BCL.ByteString) -- ^ response+dispatchLbsUnsafe manager config request  = do+  initReq <- _toInitRequest config request+  dispatchInitUnsafe manager config initReq++-- | dispatch an InitRequest+dispatchInitUnsafe+  :: NH.Manager -- ^ http-client Connection manager+  -> GiteaConfig -- ^ config+  -> InitRequest req contentType res accept -- ^ init request+  -> IO (NH.Response BCL.ByteString) -- ^ response+dispatchInitUnsafe manager config (InitRequest req) = do+  runConfigLogWithExceptions src config $+    do _log src levelInfo requestLogMsg+       _log src levelDebug requestDbgLogMsg+       res <- P.liftIO $ NH.httpLbs req manager+       _log src levelInfo (responseLogMsg res)+       _log src levelDebug ((T.pack . show) res)+       return res+  where+    src = "Client"+    endpoint =+      T.pack $+      BC.unpack $+      NH.method req <> " " <> NH.host req <> NH.path req <> NH.queryString req+    requestLogMsg = "REQ:" <> endpoint+    requestDbgLogMsg =+      "Headers=" <> (T.pack . show) (NH.requestHeaders req) <> " Body=" <>+      (case NH.requestBody req of+         NH.RequestBodyLBS xs -> T.decodeUtf8 (BL.toStrict xs)+         _ -> "<RequestBody>")+    responseStatusCode = (T.pack . show) . NH.statusCode . NH.responseStatus+    responseLogMsg res =+      "RES:statusCode=" <> responseStatusCode res <> " (" <> endpoint <> ")"++-- * InitRequest++-- | wraps an http-client 'Request' with request/response type parameters+newtype InitRequest req contentType res accept = InitRequest+  { unInitRequest :: NH.Request+  } deriving (Show)++-- |  Build an http-client 'Request' record from the supplied config and request+_toInitRequest+  :: (MimeType accept, MimeType contentType)+  => GiteaConfig -- ^ config+  -> GiteaRequest req contentType res accept -- ^ request+  -> IO (InitRequest req contentType res accept) -- ^ initialized request+_toInitRequest config req0  =+  runConfigLogWithExceptions "Client" config $ do+    parsedReq <- P.liftIO $ NH.parseRequest $ BCL.unpack $ BCL.append (configHost config) (BCL.concat (rUrlPath req0))+    req1 <- P.liftIO $ _applyAuthMethods req0 config+    P.when+        (configValidateAuthMethods config && (not . null . rAuthTypes) req1)+        (E.throw $ AuthMethodException $ "AuthMethod not configured: " <> (show . head . rAuthTypes) req1)+    let req2 = req1 & _setContentTypeHeader & _setAcceptHeader+        params = rParams req2+        reqHeaders = ("User-Agent", WH.toHeader (configUserAgent config)) : paramsHeaders params+        reqQuery = let query = paramsQuery params+                       queryExtraUnreserved = configQueryExtraUnreserved config+                   in if B.null queryExtraUnreserved+                        then NH.renderQuery True query+                        else NH.renderQueryPartialEscape True (toPartialEscapeQuery queryExtraUnreserved query)+        pReq = parsedReq { NH.method = rMethod req2+                        , NH.requestHeaders = reqHeaders+                        , NH.queryString = reqQuery+                        }+    outReq <- case paramsBody params of+        ParamBodyNone -> pure (pReq { NH.requestBody = mempty })+        ParamBodyB bs -> pure (pReq { NH.requestBody = NH.RequestBodyBS bs })+        ParamBodyBL bl -> pure (pReq { NH.requestBody = NH.RequestBodyLBS bl })+        ParamBodyFormUrlEncoded form -> pure (pReq { NH.requestBody = NH.RequestBodyLBS (WH.urlEncodeForm form) })+        ParamBodyMultipartFormData parts -> NH.formDataBody parts pReq++    pure (InitRequest outReq)++-- | modify the underlying Request+modifyInitRequest :: InitRequest req contentType res accept -> (NH.Request -> NH.Request) -> InitRequest req contentType res accept+modifyInitRequest (InitRequest req) f = InitRequest (f req)++-- | modify the underlying Request (monadic)+modifyInitRequestM :: Monad m => InitRequest req contentType res accept -> (NH.Request -> m NH.Request) -> m (InitRequest req contentType res accept)+modifyInitRequestM (InitRequest req) f = fmap InitRequest (f req)++-- ** Logging++-- | Run a block using the configured logger instance+runConfigLog+  :: P.MonadIO m+  => GiteaConfig -> LogExec m a+runConfigLog config = configLogExecWithContext config (configLogContext config)++-- | Run a block using the configured logger instance (logs exceptions)+runConfigLogWithExceptions+  :: (E.MonadCatch m, P.MonadIO m)+  => T.Text -> GiteaConfig -> LogExec m a+runConfigLogWithExceptions src config = runConfigLog config . logExceptions src
+ lib/Gitea/Core.hs view
@@ -0,0 +1,588 @@+{-+   Gitea API.++   This documentation describes the Gitea API.++   OpenAPI Version: 3.0.1+   Gitea API. API version: 1.19.4+   Generated by OpenAPI Generator (https://openapi-generator.tech)+-}++{-|+Module : Gitea.Core+-}++{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE ExistentialQuantification #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE MultiParamTypeClasses #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RankNTypes #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE ScopedTypeVariables #-}+{-# LANGUAGE TupleSections #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE CPP #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing -fno-warn-unused-binds -fno-warn-unused-imports #-}++module Gitea.Core where++import Gitea.MimeTypes+import Gitea.Logging++import qualified Control.Arrow as P (left)+import qualified Control.DeepSeq as NF+import qualified Control.Exception.Safe as E+import qualified Data.Aeson as A+import qualified Data.ByteString as B+import qualified Data.ByteString.Base64.Lazy as BL64+import qualified Data.ByteString.Builder as BB+import qualified Data.ByteString.Char8 as BC+import qualified Data.ByteString.Lazy as BL+import qualified Data.ByteString.Lazy.Char8 as BCL+import qualified Data.CaseInsensitive as CI+import qualified Data.Data as P (Data, Typeable, TypeRep, typeRep)+import qualified Data.Foldable as P+import qualified Data.Ix as P+import qualified Data.Kind as K (Type)+import qualified Data.Maybe as P+import qualified Data.Proxy as P (Proxy(..))+import qualified Data.Text as T+import qualified Data.Text.Encoding as T+import qualified Data.Text.Lazy.Encoding as TL+import qualified Data.Time as TI+import qualified Data.Time.ISO8601 as TI+import qualified GHC.Base as P (Alternative)+import qualified Lens.Micro as L+import qualified Network.HTTP.Client.MultipartFormData as NH+import qualified Network.HTTP.Types as NH+import qualified Prelude as P+import qualified Text.Printf as T+import qualified Web.FormUrlEncoded as WH+import qualified Web.HttpApiData as WH++import Control.Applicative ((<|>))+import Control.Applicative (Alternative)+import Control.Monad.Fail (MonadFail)+import Data.Function ((&))+import Data.Foldable(foldlM)+import Data.Monoid ((<>))+import Data.Text (Text)+import Prelude (($), (.), (&&), (<$>), (<*>), Maybe(..), Bool(..), Char, String, fmap, mempty, pure, return, show, IO, Monad, Functor, maybe)++-- * GiteaConfig++-- |+data GiteaConfig = GiteaConfig+  { configHost  :: BCL.ByteString -- ^ host supplied in the Request+  , configUserAgent :: Text -- ^ user-agent supplied in the Request+  , configLogExecWithContext :: LogExecWithContext -- ^ Run a block using a Logger instance+  , configLogContext :: LogContext -- ^ Configures the logger+  , configAuthMethods :: [AnyAuthMethod] -- ^ List of configured auth methods+  , configValidateAuthMethods :: Bool -- ^ throw exceptions if auth methods are not configured+  , configQueryExtraUnreserved :: B.ByteString -- ^ Configures additional querystring characters which must not be URI encoded, e.g. '+' or ':'+  }++-- | display the config+instance P.Show GiteaConfig where+  show c =+    T.printf+      "{ configHost = %v, configUserAgent = %v, ..}"+      (show (configHost c))+      (show (configUserAgent c))++-- | constructs a default GiteaConfig+--+-- configHost:+--+-- @http://https://gitea.com/api/v1@+--+-- configUserAgent:+--+-- @"gitea-api/1.19.4.0"@+--+newConfig :: IO GiteaConfig+newConfig = do+    logCxt <- initLogContext+    return $ GiteaConfig+        { configHost = "http://https://gitea.com/api/v1"+        , configUserAgent = "gitea-api/1.19.4.0"+        , configLogExecWithContext = runDefaultLogExecWithContext+        , configLogContext = logCxt+        , configAuthMethods = []+        , configValidateAuthMethods = True+        , configQueryExtraUnreserved = ""+        }++-- | updates config use AuthMethod on matching requests+addAuthMethod :: AuthMethod auth => GiteaConfig -> auth -> GiteaConfig+addAuthMethod config@GiteaConfig {configAuthMethods = as} a =+  config { configAuthMethods = AnyAuthMethod a : as}++-- | updates the config to use stdout logging+withStdoutLogging :: GiteaConfig -> IO GiteaConfig+withStdoutLogging p = do+    logCxt <- stdoutLoggingContext (configLogContext p)+    return $ p { configLogExecWithContext = stdoutLoggingExec, configLogContext = logCxt }++-- | updates the config to use stderr logging+withStderrLogging :: GiteaConfig -> IO GiteaConfig+withStderrLogging p = do+    logCxt <- stderrLoggingContext (configLogContext p)+    return $ p { configLogExecWithContext = stderrLoggingExec, configLogContext = logCxt }++-- | updates the config to disable logging+withNoLogging :: GiteaConfig -> GiteaConfig+withNoLogging p = p { configLogExecWithContext =  runNullLogExec}++-- * GiteaRequest++-- | Represents a request.+--+--   Type Variables:+--+--   * req - request operation+--   * contentType - 'MimeType' associated with request body+--   * res - response model+--   * accept - 'MimeType' associated with response body+data GiteaRequest req contentType res accept = GiteaRequest+  { rMethod  :: NH.Method   -- ^ Method of GiteaRequest+  , rUrlPath :: [BCL.ByteString] -- ^ Endpoint of GiteaRequest+  , rParams   :: Params -- ^ params of GiteaRequest+  , rAuthTypes :: [P.TypeRep] -- ^ types of auth methods+  }+  deriving (P.Show)++-- | 'rMethod' Lens+rMethodL :: Lens_' (GiteaRequest req contentType res accept) NH.Method+rMethodL f GiteaRequest{..} = (\rMethod -> GiteaRequest { rMethod, ..} ) <$> f rMethod+{-# INLINE rMethodL #-}++-- | 'rUrlPath' Lens+rUrlPathL :: Lens_' (GiteaRequest req contentType res accept) [BCL.ByteString]+rUrlPathL f GiteaRequest{..} = (\rUrlPath -> GiteaRequest { rUrlPath, ..} ) <$> f rUrlPath+{-# INLINE rUrlPathL #-}++-- | 'rParams' Lens+rParamsL :: Lens_' (GiteaRequest req contentType res accept) Params+rParamsL f GiteaRequest{..} = (\rParams -> GiteaRequest { rParams, ..} ) <$> f rParams+{-# INLINE rParamsL #-}++-- | 'rParams' Lens+rAuthTypesL :: Lens_' (GiteaRequest req contentType res accept) [P.TypeRep]+rAuthTypesL f GiteaRequest{..} = (\rAuthTypes -> GiteaRequest { rAuthTypes, ..} ) <$> f rAuthTypes+{-# INLINE rAuthTypesL #-}++-- * HasBodyParam++-- | Designates the body parameter of a request+class HasBodyParam req param where+  setBodyParam :: forall contentType res accept. (Consumes req contentType, MimeRender contentType param) => GiteaRequest req contentType res accept -> param -> GiteaRequest req contentType res accept+  setBodyParam req xs =+    req `_setBodyLBS` mimeRender (P.Proxy :: P.Proxy contentType) xs & _setContentTypeHeader++-- * HasOptionalParam++-- | Designates the optional parameters of a request+class HasOptionalParam req param where+  {-# MINIMAL applyOptionalParam | (-&-) #-}++  -- | Apply an optional parameter to a request+  applyOptionalParam :: GiteaRequest req contentType res accept -> param -> GiteaRequest req contentType res accept+  applyOptionalParam = (-&-)+  {-# INLINE applyOptionalParam #-}++  -- | infix operator \/ alias for 'addOptionalParam'+  (-&-) :: GiteaRequest req contentType res accept -> param -> GiteaRequest req contentType res accept+  (-&-) = applyOptionalParam+  {-# INLINE (-&-) #-}++infixl 2 -&-++-- | Request Params+data Params = Params+  { paramsQuery :: NH.Query+  , paramsHeaders :: NH.RequestHeaders+  , paramsBody :: ParamBody+  }+  deriving (P.Show)++-- | 'paramsQuery' Lens+paramsQueryL :: Lens_' Params NH.Query+paramsQueryL f Params{..} = (\paramsQuery -> Params { paramsQuery, ..} ) <$> f paramsQuery+{-# INLINE paramsQueryL #-}++-- | 'paramsHeaders' Lens+paramsHeadersL :: Lens_' Params NH.RequestHeaders+paramsHeadersL f Params{..} = (\paramsHeaders -> Params { paramsHeaders, ..} ) <$> f paramsHeaders+{-# INLINE paramsHeadersL #-}++-- | 'paramsBody' Lens+paramsBodyL :: Lens_' Params ParamBody+paramsBodyL f Params{..} = (\paramsBody -> Params { paramsBody, ..} ) <$> f paramsBody+{-# INLINE paramsBodyL #-}++-- | Request Body+data ParamBody+  = ParamBodyNone+  | ParamBodyB B.ByteString+  | ParamBodyBL BL.ByteString+  | ParamBodyFormUrlEncoded WH.Form+  | ParamBodyMultipartFormData [NH.Part]+  deriving (P.Show)++-- ** GiteaRequest Utils++_mkRequest :: NH.Method -- ^ Method+          -> [BCL.ByteString] -- ^ Endpoint+          -> GiteaRequest req contentType res accept -- ^ req: Request Type, res: Response Type+_mkRequest m u = GiteaRequest m u _mkParams []++_mkParams :: Params+_mkParams = Params [] [] ParamBodyNone++setHeader ::+     GiteaRequest req contentType res accept+  -> [NH.Header]+  -> GiteaRequest req contentType res accept+setHeader req header =+  req `removeHeader` P.fmap P.fst header+  & (`addHeader` header)++addHeader ::+     GiteaRequest req contentType res accept+  -> [NH.Header]+  -> GiteaRequest req contentType res accept+addHeader req header = L.over (rParamsL . paramsHeadersL) (header P.++) req++removeHeader :: GiteaRequest req contentType res accept -> [NH.HeaderName] -> GiteaRequest req contentType res accept+removeHeader req header =+  req &+  L.over+    (rParamsL . paramsHeadersL)+    (P.filter (\h -> cifst h `P.notElem` P.fmap CI.mk header))+  where+    cifst = CI.mk . P.fst+++_setContentTypeHeader :: forall req contentType res accept. MimeType contentType => GiteaRequest req contentType res accept -> GiteaRequest req contentType res accept+_setContentTypeHeader req =+    case mimeType (P.Proxy :: P.Proxy contentType) of+        Just m -> req `setHeader` [("content-type", BC.pack $ P.show m)]+        Nothing -> req `removeHeader` ["content-type"]++_setAcceptHeader :: forall req contentType res accept. MimeType accept => GiteaRequest req contentType res accept -> GiteaRequest req contentType res accept+_setAcceptHeader req =+    case mimeType (P.Proxy :: P.Proxy accept) of+        Just m -> req `setHeader` [("accept", BC.pack $ P.show m)]+        Nothing -> req `removeHeader` ["accept"]++setQuery ::+     GiteaRequest req contentType res accept+  -> [NH.QueryItem]+  -> GiteaRequest req contentType res accept+setQuery req query =+  req &+  L.over+    (rParamsL . paramsQueryL)+    (P.filter (\q -> cifst q `P.notElem` P.fmap cifst query)) &+  (`addQuery` query)+  where+    cifst = CI.mk . P.fst++addQuery ::+     GiteaRequest req contentType res accept+  -> [NH.QueryItem]+  -> GiteaRequest req contentType res accept+addQuery req query = req & L.over (rParamsL . paramsQueryL) (query P.++)++addForm :: GiteaRequest req contentType res accept -> WH.Form -> GiteaRequest req contentType res accept+addForm req newform =+    let form = case paramsBody (rParams req) of+            ParamBodyFormUrlEncoded _form -> _form+            _ -> mempty+    in req & L.set (rParamsL . paramsBodyL) (ParamBodyFormUrlEncoded (newform <> form))++_addMultiFormPart :: GiteaRequest req contentType res accept -> NH.Part -> GiteaRequest req contentType res accept+_addMultiFormPart req newpart =+    let parts = case paramsBody (rParams req) of+            ParamBodyMultipartFormData _parts -> _parts+            _ -> []+    in req & L.set (rParamsL . paramsBodyL) (ParamBodyMultipartFormData (newpart : parts))++_setBodyBS :: GiteaRequest req contentType res accept -> B.ByteString -> GiteaRequest req contentType res accept+_setBodyBS req body =+    req & L.set (rParamsL . paramsBodyL) (ParamBodyB body)++_setBodyLBS :: GiteaRequest req contentType res accept -> BL.ByteString -> GiteaRequest req contentType res accept+_setBodyLBS req body =+    req & L.set (rParamsL . paramsBodyL) (ParamBodyBL body)++_hasAuthType :: AuthMethod authMethod => GiteaRequest req contentType res accept -> P.Proxy authMethod -> GiteaRequest req contentType res accept+_hasAuthType req proxy =+  req & L.over rAuthTypesL (P.typeRep proxy :)++-- ** Params Utils++toPath+  :: WH.ToHttpApiData a+  => a -> BCL.ByteString+toPath = BB.toLazyByteString . WH.toEncodedUrlPiece++toHeader :: WH.ToHttpApiData a => (NH.HeaderName, a) -> [NH.Header]+toHeader x = [fmap WH.toHeader x]++toForm :: WH.ToHttpApiData v => (BC.ByteString, v) -> WH.Form+toForm (k,v) = WH.toForm [(BC.unpack k,v)]++toQuery :: WH.ToHttpApiData a => (BC.ByteString, Maybe a) -> [NH.QueryItem]+toQuery x = [(fmap . fmap) toQueryParam x]+  where toQueryParam = T.encodeUtf8 . WH.toQueryParam++toJsonQuery :: A.ToJSON a => (BC.ByteString, Maybe a) -> [NH.QueryItem]+toJsonQuery = toQuery . (fmap . fmap) (TL.decodeUtf8 . A.encode)++toPartialEscapeQuery :: B.ByteString -> NH.Query -> NH.PartialEscapeQuery+toPartialEscapeQuery extraUnreserved query = fmap (\(k, v) -> (k, maybe [] go v)) query+  where go :: B.ByteString -> [NH.EscapeItem]+        go v = v & B.groupBy (\a b -> a `B.notElem` extraUnreserved && b `B.notElem` extraUnreserved)+                 & fmap (\xs -> if B.null xs then NH.QN xs+                                  else if B.head xs `B.elem` extraUnreserved+                                          then NH.QN xs -- Not Encoded+                                          else NH.QE xs -- Encoded+                        )++-- *** OpenAPI `CollectionFormat` Utils++-- | Determines the format of the array if type array is used.+data CollectionFormat+  = CommaSeparated -- ^ CSV format for multiple parameters.+  | SpaceSeparated -- ^ Also called "SSV"+  | TabSeparated -- ^ Also called "TSV"+  | PipeSeparated -- ^ `value1|value2|value2`+  | MultiParamArray -- ^ Using multiple GET parameters, e.g. `foo=bar&foo=baz`. This is valid only for parameters in "query" ('NH.Query') or "formData" ('WH.Form')++toHeaderColl :: WH.ToHttpApiData a => CollectionFormat -> (NH.HeaderName, [a]) -> [NH.Header]+toHeaderColl c xs = _toColl c toHeader xs++toFormColl :: WH.ToHttpApiData v => CollectionFormat -> (BC.ByteString, [v]) -> WH.Form+toFormColl c xs = WH.toForm $ fmap unpack $ _toColl c toHeader $ pack xs+  where+    pack (k,v) = (CI.mk k, v)+    unpack (k,v) = (BC.unpack (CI.original k), BC.unpack v)++toQueryColl :: WH.ToHttpApiData a => CollectionFormat -> (BC.ByteString, Maybe [a]) -> NH.Query+toQueryColl c xs = _toCollA c toQuery xs++toJsonQueryColl :: A.ToJSON a => CollectionFormat -> (BC.ByteString, Maybe [a]) -> NH.Query+toJsonQueryColl c xs = _toCollA c toJsonQuery xs++_toColl :: P.Traversable f => CollectionFormat -> (f a -> [(b, BC.ByteString)]) -> f [a] -> [(b, BC.ByteString)]+_toColl c encode xs = fmap (fmap P.fromJust) (_toCollA' c fencode BC.singleton (fmap Just xs))+  where fencode = fmap (fmap Just) . encode . fmap P.fromJust+        {-# INLINE fencode #-}++_toCollA :: (P.Traversable f, P.Traversable t, P.Alternative t) => CollectionFormat -> (f (t a) -> [(b, t BC.ByteString)]) -> f (t [a]) -> [(b, t BC.ByteString)]+_toCollA c encode xs = _toCollA' c encode BC.singleton xs++_toCollA' :: (P.Monoid c, P.Traversable f, P.Traversable t, P.Alternative t) => CollectionFormat -> (f (t a) -> [(b, t c)]) -> (Char -> c) -> f (t [a]) -> [(b, t c)]+_toCollA' c encode one xs = case c of+  CommaSeparated -> go (one ',')+  SpaceSeparated -> go (one ' ')+  TabSeparated -> go (one '\t')+  PipeSeparated -> go (one '|')+  MultiParamArray -> expandList+  where+    go sep =+      [P.foldl1 (\(sk, sv) (_, v) -> (sk, (combine sep <$> sv <*> v) <|> sv <|> v)) expandList]+    combine sep x y = x <> sep <> y+    expandList = (P.concatMap encode . (P.traverse . P.traverse) P.toList) xs+    {-# INLINE go #-}+    {-# INLINE expandList #-}+    {-# INLINE combine #-}++-- * AuthMethods++-- | Provides a method to apply auth methods to requests+class P.Typeable a =>+      AuthMethod a  where+  applyAuthMethod+    :: GiteaConfig+    -> a+    -> GiteaRequest req contentType res accept+    -> IO (GiteaRequest req contentType res accept)++-- | An existential wrapper for any AuthMethod+data AnyAuthMethod = forall a. AuthMethod a => AnyAuthMethod a deriving (P.Typeable)++instance AuthMethod AnyAuthMethod where applyAuthMethod config (AnyAuthMethod a) req = applyAuthMethod config a req++-- | indicates exceptions related to AuthMethods+data AuthMethodException = AuthMethodException String deriving (P.Show, P.Typeable)++instance E.Exception AuthMethodException++-- | apply all matching AuthMethods in config to request+_applyAuthMethods+  :: GiteaRequest req contentType res accept+  -> GiteaConfig+  -> IO (GiteaRequest req contentType res accept)+_applyAuthMethods req config@(GiteaConfig {configAuthMethods = as}) =+  foldlM go req as+  where+    go r (AnyAuthMethod a) = applyAuthMethod config a r++-- * Utils++-- | Removes Null fields.  (OpenAPI-Specification 2.0 does not allow Null in JSON)+#if MIN_VERSION_aeson(2,0,0)+_omitNulls :: [(A.Key, A.Value)] -> A.Value+#else+_omitNulls :: [(Text, A.Value)] -> A.Value+#endif+_omitNulls = A.object . P.filter notNull+  where+    notNull (_, A.Null) = False+    notNull _ = True++-- | Encodes fields using WH.toQueryParam+_toFormItem :: (WH.ToHttpApiData a, Functor f) => t -> f a -> f (t, [Text])+_toFormItem name x = (name,) . (:[]) . WH.toQueryParam <$> x++-- | Collapse (Just "") to Nothing+_emptyToNothing :: Maybe String -> Maybe String+_emptyToNothing (Just "") = Nothing+_emptyToNothing x = x+{-# INLINE _emptyToNothing #-}++-- | Collapse (Just mempty) to Nothing+_memptyToNothing :: (P.Monoid a, P.Eq a) => Maybe a -> Maybe a+_memptyToNothing (Just x) | x P.== P.mempty = Nothing+_memptyToNothing x = x+{-# INLINE _memptyToNothing #-}++-- * DateTime Formatting++newtype DateTime = DateTime { unDateTime :: TI.UTCTime }+  deriving (P.Eq,P.Data,P.Ord,P.Typeable,NF.NFData)+instance A.FromJSON DateTime where+  parseJSON = A.withText "DateTime" (_readDateTime . T.unpack)+instance A.ToJSON DateTime where+  toJSON (DateTime t) = A.toJSON (_showDateTime t)+instance WH.FromHttpApiData DateTime where+  parseUrlPiece = P.maybe (P.Left "parseUrlPiece @DateTime") P.Right . _readDateTime . T.unpack+instance WH.ToHttpApiData DateTime where+  toUrlPiece (DateTime t) = T.pack (_showDateTime t)+instance P.Show DateTime where+  show (DateTime t) = _showDateTime t+instance MimeRender MimeMultipartFormData DateTime where+  mimeRender _ = mimeRenderDefaultMultipartFormData++-- | @_parseISO8601@+_readDateTime :: (MonadFail m, Alternative m) => String -> m DateTime+_readDateTime s =+  DateTime <$> _parseISO8601 s+{-# INLINE _readDateTime #-}++-- | @TI.formatISO8601Millis@+_showDateTime :: (t ~ TI.UTCTime, TI.FormatTime t) => t -> String+_showDateTime =+  TI.formatISO8601Millis+{-# INLINE _showDateTime #-}++-- | parse an ISO8601 date-time string+_parseISO8601 :: (TI.ParseTime t, MonadFail m, Alternative m) => String -> m t+_parseISO8601 t =+  P.asum $+  P.flip (TI.parseTimeM True TI.defaultTimeLocale) t <$>+  ["%FT%T%QZ", "%FT%T%Q%z", "%FT%T%Q%Z"]+{-# INLINE _parseISO8601 #-}++-- * Date Formatting++newtype Date = Date { unDate :: TI.Day }+  deriving (P.Enum,P.Eq,P.Data,P.Ord,P.Ix,NF.NFData)+instance A.FromJSON Date where+  parseJSON = A.withText "Date" (_readDate . T.unpack)+instance A.ToJSON Date where+  toJSON (Date t) = A.toJSON (_showDate t)+instance WH.FromHttpApiData Date where+  parseUrlPiece = P.maybe (P.Left "parseUrlPiece @Date") P.Right . _readDate . T.unpack+instance WH.ToHttpApiData Date where+  toUrlPiece (Date t) = T.pack (_showDate t)+instance P.Show Date where+  show (Date t) = _showDate t+instance MimeRender MimeMultipartFormData Date where+  mimeRender _ = mimeRenderDefaultMultipartFormData++-- | @TI.parseTimeM True TI.defaultTimeLocale "%Y-%m-%d"@+_readDate :: MonadFail m => String -> m Date+_readDate s = Date <$> TI.parseTimeM True TI.defaultTimeLocale "%Y-%m-%d" s+{-# INLINE _readDate #-}++-- | @TI.formatTime TI.defaultTimeLocale "%Y-%m-%d"@+_showDate :: TI.FormatTime t => t -> String+_showDate =+  TI.formatTime TI.defaultTimeLocale "%Y-%m-%d"+{-# INLINE _showDate #-}++-- * Byte/Binary Formatting+++-- | base64 encoded characters+newtype ByteArray = ByteArray { unByteArray :: BL.ByteString }+  deriving (P.Eq,P.Data,P.Ord,P.Typeable,NF.NFData)++instance A.FromJSON ByteArray where+  parseJSON = A.withText "ByteArray" _readByteArray+instance A.ToJSON ByteArray where+  toJSON = A.toJSON . _showByteArray+instance WH.FromHttpApiData ByteArray where+  parseUrlPiece = P.maybe (P.Left "parseUrlPiece @ByteArray") P.Right . _readByteArray+instance WH.ToHttpApiData ByteArray where+  toUrlPiece = _showByteArray+instance P.Show ByteArray where+  show = T.unpack . _showByteArray+instance MimeRender MimeMultipartFormData ByteArray where+  mimeRender _ = mimeRenderDefaultMultipartFormData++-- | read base64 encoded characters+_readByteArray :: MonadFail m => Text -> m ByteArray+_readByteArray = P.either P.fail (pure . ByteArray) . BL64.decode . BL.fromStrict . T.encodeUtf8+{-# INLINE _readByteArray #-}++-- | show base64 encoded characters+_showByteArray :: ByteArray -> Text+_showByteArray = T.decodeUtf8 . BL.toStrict . BL64.encode . unByteArray+{-# INLINE _showByteArray #-}++-- | any sequence of octets+newtype Binary = Binary { unBinary :: BL.ByteString }+  deriving (P.Eq,P.Data,P.Ord,P.Typeable,NF.NFData)++instance A.FromJSON Binary where+  parseJSON = A.withText "Binary" _readBinaryBase64+instance A.ToJSON Binary where+  toJSON = A.toJSON . _showBinaryBase64+instance WH.FromHttpApiData Binary where+  parseUrlPiece = P.maybe (P.Left "parseUrlPiece @Binary") P.Right . _readBinaryBase64+instance WH.ToHttpApiData Binary where+  toUrlPiece = _showBinaryBase64+instance P.Show Binary where+  show = T.unpack . _showBinaryBase64+instance MimeRender MimeMultipartFormData Binary where+  mimeRender _ = unBinary++_readBinaryBase64 :: MonadFail m => Text -> m Binary+_readBinaryBase64 = P.either P.fail (pure . Binary) . BL64.decode . BL.fromStrict . T.encodeUtf8+{-# INLINE _readBinaryBase64 #-}++_showBinaryBase64 :: Binary -> Text+_showBinaryBase64 = T.decodeUtf8 . BL.toStrict . BL64.encode . unBinary+{-# INLINE _showBinaryBase64 #-}++-- * Lens Type Aliases++type Lens_' s a = Lens_ s s a a+type Lens_ s t a b = forall (f :: K.Type -> K.Type). Functor f => (a -> f b) -> s -> f t
+ lib/Gitea/Logging.hs view
@@ -0,0 +1,33 @@+{-+   Gitea API.++   This documentation describes the Gitea API.++   OpenAPI Version: 3.0.1+   Gitea API. API version: 1.19.4+   Generated by OpenAPI Generator (https://openapi-generator.tech)+-}++{-|+Module : Gitea.Logging+Logging functions+-}+{-# LANGUAGE CPP #-}++#ifdef USE_KATIP++module Gitea.Logging+  ( module Gitea.LoggingKatip+  ) where++import Gitea.LoggingKatip++#else++module Gitea.Logging+  ( module Gitea.LoggingMonadLogger+  ) where++import Gitea.LoggingMonadLogger++#endif
+ lib/Gitea/LoggingKatip.hs view
@@ -0,0 +1,117 @@+{-+   Gitea API.++   This documentation describes the Gitea API.++   OpenAPI Version: 3.0.1+   Gitea API. API version: 1.19.4+   Generated by OpenAPI Generator (https://openapi-generator.tech)+-}++{-|+Module : Gitea.LoggingKatip+Katip Logging functions+-}++{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RankNTypes #-}+{-# LANGUAGE ScopedTypeVariables #-}++module Gitea.LoggingKatip where++import qualified Control.Exception.Safe as E+import qualified Control.Monad.IO.Class as P+import qualified Control.Monad.Trans.Reader as P+import qualified Data.Text as T+import qualified Lens.Micro as L+import qualified System.IO as IO++import Data.Text (Text)+import GHC.Exts (IsString(..))++import qualified Katip as LG++-- * Type Aliases (for compatibility)++-- | Runs a Katip logging block with the Log environment+type LogExecWithContext = forall m a. P.MonadIO m =>+                                      LogContext -> LogExec m a++-- | A Katip logging block+type LogExec m a = LG.KatipT m a -> m a++-- | A Katip Log environment+type LogContext = LG.LogEnv++-- | A Katip Log severity+type LogLevel = LG.Severity++-- * default logger++-- | the default log environment+initLogContext :: IO LogContext+initLogContext = LG.initLogEnv "Gitea" "dev"++-- | Runs a Katip logging block with the Log environment+runDefaultLogExecWithContext :: LogExecWithContext+runDefaultLogExecWithContext = LG.runKatipT++-- * stdout logger++-- | Runs a Katip logging block with the Log environment+stdoutLoggingExec :: LogExecWithContext+stdoutLoggingExec = runDefaultLogExecWithContext++-- | A Katip Log environment which targets stdout+stdoutLoggingContext :: LogContext -> IO LogContext+stdoutLoggingContext cxt = do+    handleScribe <- LG.mkHandleScribe LG.ColorIfTerminal IO.stdout (LG.permitItem LG.InfoS) LG.V2+    LG.registerScribe "stdout" handleScribe LG.defaultScribeSettings cxt++-- * stderr logger++-- | Runs a Katip logging block with the Log environment+stderrLoggingExec :: LogExecWithContext+stderrLoggingExec = runDefaultLogExecWithContext++-- | A Katip Log environment which targets stderr+stderrLoggingContext :: LogContext -> IO LogContext+stderrLoggingContext cxt = do+    handleScribe <- LG.mkHandleScribe LG.ColorIfTerminal IO.stderr (LG.permitItem LG.InfoS) LG.V2+    LG.registerScribe "stderr" handleScribe LG.defaultScribeSettings cxt++-- * Null logger++-- | Disables Katip logging+runNullLogExec :: LogExecWithContext+runNullLogExec le (LG.KatipT f) = P.runReaderT f (L.set LG.logEnvScribes mempty le)++-- * Log Msg++-- | Log a katip message+_log :: (Applicative m, LG.Katip m) => Text -> LogLevel -> Text -> m ()+_log src level msg = do+  LG.logMsg (fromString $ T.unpack src) level (LG.logStr msg)++-- * Log Exceptions++-- | re-throws exceptions after logging them+logExceptions+  :: (LG.Katip m, E.MonadCatch m, Applicative m)+  => Text -> m a -> m a+logExceptions src =+  E.handle+    (\(e :: E.SomeException) -> do+       _log src LG.ErrorS ((T.pack . show) e)+       E.throw e)++-- * Log Level++levelInfo :: LogLevel+levelInfo = LG.InfoS++levelError :: LogLevel+levelError = LG.ErrorS++levelDebug :: LogLevel+levelDebug = LG.DebugS
+ lib/Gitea/LoggingMonadLogger.hs view
@@ -0,0 +1,126 @@+{-+   Gitea API.++   This documentation describes the Gitea API.++   OpenAPI Version: 3.0.1+   Gitea API. API version: 1.19.4+   Generated by OpenAPI Generator (https://openapi-generator.tech)+-}++{-|+Module : Gitea.LoggingMonadLogger+monad-logger Logging functions+-}++{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RankNTypes #-}+{-# LANGUAGE ScopedTypeVariables #-}++module Gitea.LoggingMonadLogger where++import qualified Control.Exception.Safe as E+import qualified Control.Monad.IO.Class as P+import qualified Data.Text as T+import qualified Data.Time as TI++import Data.Text (Text)++import qualified Control.Monad.Logger as LG++-- * Type Aliases (for compatibility)++-- | Runs a monad-logger  block with the filter predicate+type LogExecWithContext = forall m a. P.MonadIO m =>+                                      LogContext -> LogExec m a++-- | A monad-logger block+type LogExec m a = LG.LoggingT m a -> m a++-- | A monad-logger filter predicate+type LogContext = LG.LogSource -> LG.LogLevel -> Bool++-- | A monad-logger log level+type LogLevel = LG.LogLevel++-- * default logger++-- | the default log environment+initLogContext :: IO LogContext+initLogContext = pure infoLevelFilter++-- | Runs a monad-logger block with the filter predicate+runDefaultLogExecWithContext :: LogExecWithContext+runDefaultLogExecWithContext = runNullLogExec++-- * stdout logger++-- | Runs a monad-logger block targeting stdout, with the filter predicate+stdoutLoggingExec :: LogExecWithContext+stdoutLoggingExec cxt = LG.runStdoutLoggingT . LG.filterLogger cxt++-- | @pure@+stdoutLoggingContext :: LogContext -> IO LogContext+stdoutLoggingContext = pure++-- * stderr logger++-- | Runs a monad-logger block targeting stderr, with the filter predicate+stderrLoggingExec :: LogExecWithContext+stderrLoggingExec cxt = LG.runStderrLoggingT . LG.filterLogger cxt++-- | @pure@+stderrLoggingContext :: LogContext -> IO LogContext+stderrLoggingContext = pure++-- * Null logger++-- | Disables monad-logger logging+runNullLogExec :: LogExecWithContext+runNullLogExec = const (`LG.runLoggingT` nullLogger)++-- | monad-logger which does nothing+nullLogger :: LG.Loc -> LG.LogSource -> LG.LogLevel -> LG.LogStr -> IO ()+nullLogger _ _ _ _ = return ()++-- * Log Msg++-- | Log a message using the current time+_log :: (P.MonadIO m, LG.MonadLogger m) => Text -> LG.LogLevel -> Text -> m ()+_log src level msg = do+  now <- P.liftIO (formatTimeLog <$> TI.getCurrentTime)+  LG.logOtherNS ("Gitea." <> src) level ("[" <> now <> "] " <> msg)+ where+  formatTimeLog =+    T.pack . TI.formatTime TI.defaultTimeLocale "%Y-%m-%dT%H:%M:%S%Z"++-- * Log Exceptions++-- | re-throws exceptions after logging them+logExceptions+   :: (LG.MonadLogger m, E.MonadCatch m, P.MonadIO m)+   => Text -> m a -> m a+logExceptions src =+   E.handle+     (\(e :: E.SomeException) -> do+        _log src LG.LevelError ((T.pack . show) e)+        E.throw e)++-- * Log Level++levelInfo :: LogLevel+levelInfo = LG.LevelInfo++levelError :: LogLevel+levelError = LG.LevelError++levelDebug :: LogLevel+levelDebug = LG.LevelDebug++-- * Level Filter++minLevelFilter :: LG.LogLevel -> LG.LogSource -> LG.LogLevel -> Bool+minLevelFilter l _ l' = l' >= l++infoLevelFilter :: LG.LogSource -> LG.LogLevel -> Bool+infoLevelFilter = minLevelFilter LG.LevelInfo
+ lib/Gitea/MimeTypes.hs view
@@ -0,0 +1,215 @@+{-+   Gitea API.++   This documentation describes the Gitea API.++   OpenAPI Version: 3.0.1+   Gitea API. API version: 1.19.4+   Generated by OpenAPI Generator (https://openapi-generator.tech)+-}++{-|+Module : Gitea.MimeTypes+-}++{-# LANGUAGE ConstraintKinds #-}+{-# LANGUAGE ExistentialQuantification #-}+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE MultiParamTypeClasses #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE ScopedTypeVariables #-}+{-# OPTIONS_GHC -fno-warn-unused-binds -fno-warn-unused-imports #-}++module Gitea.MimeTypes where++import qualified Control.Arrow as P (left)+import qualified Data.Aeson as A+import qualified Data.ByteString as B+import qualified Data.ByteString.Builder as BB+import qualified Data.ByteString.Char8 as BC+import qualified Data.ByteString.Lazy as BL+import qualified Data.ByteString.Lazy.Char8 as BCL+import qualified Data.Data as P (Typeable)+import qualified Data.Proxy as P (Proxy(..))+import qualified Data.String as P+import qualified Data.Text as T+import qualified Data.Text.Encoding as T+import qualified Network.HTTP.Media as ME+import qualified Web.FormUrlEncoded as WH+import qualified Web.HttpApiData as WH++import Prelude (($), (.),(<$>),(<*>),Maybe(..),Bool(..),Char,Double,FilePath,Float,Int,Integer,String,fmap,undefined,mempty)+import qualified Prelude as P++-- * ContentType MimeType++data ContentType a = MimeType a => ContentType { unContentType :: a }++-- * Accept MimeType++data Accept a = MimeType a => Accept { unAccept :: a }++-- * Consumes Class++class MimeType mtype => Consumes req mtype where++-- * Produces Class++class MimeType mtype => Produces req mtype where++-- * Default Mime Types++data MimeJSON = MimeJSON deriving (P.Typeable)+data MimeXML = MimeXML deriving (P.Typeable)+data MimePlainText = MimePlainText deriving (P.Typeable)+data MimeFormUrlEncoded = MimeFormUrlEncoded deriving (P.Typeable)+data MimeMultipartFormData = MimeMultipartFormData deriving (P.Typeable)+data MimeOctetStream = MimeOctetStream deriving (P.Typeable)+data MimeNoContent = MimeNoContent deriving (P.Typeable)+data MimeAny = MimeAny deriving (P.Typeable)++-- | A type for responses without content-body.+data NoContent = NoContent+  deriving (P.Show, P.Eq, P.Typeable)+++-- * MimeType Class++class P.Typeable mtype => MimeType mtype  where+  {-# MINIMAL mimeType | mimeTypes #-}++  mimeTypes :: P.Proxy mtype -> [ME.MediaType]+  mimeTypes p =+    case mimeType p of+      Just x -> [x]+      Nothing -> []++  mimeType :: P.Proxy mtype -> Maybe ME.MediaType+  mimeType p =+    case mimeTypes p of+      [] -> Nothing+      (x:_) -> Just x++  mimeType' :: mtype -> Maybe ME.MediaType+  mimeType' _ = mimeType (P.Proxy :: P.Proxy mtype)+  mimeTypes' :: mtype -> [ME.MediaType]+  mimeTypes' _ = mimeTypes (P.Proxy :: P.Proxy mtype)++-- Default MimeType Instances++-- | @application/json; charset=utf-8@+instance MimeType MimeJSON where+  mimeType _ = Just $ P.fromString "application/json"+-- | @application/xml; charset=utf-8@+instance MimeType MimeXML where+  mimeType _ = Just $ P.fromString "application/xml"+-- | @application/x-www-form-urlencoded@+instance MimeType MimeFormUrlEncoded where+  mimeType _ = Just $ P.fromString "application/x-www-form-urlencoded"+-- | @multipart/form-data@+instance MimeType MimeMultipartFormData where+  mimeType _ = Just $ P.fromString "multipart/form-data"+-- | @text/plain; charset=utf-8@+instance MimeType MimePlainText where+  mimeType _ = Just $ P.fromString "text/plain"+-- | @application/octet-stream@+instance MimeType MimeOctetStream where+  mimeType _ = Just $ P.fromString "application/octet-stream"+-- | @"*/*"@+instance MimeType MimeAny where+  mimeType _ = Just $ P.fromString "*/*"+instance MimeType MimeNoContent where+  mimeType _ = Nothing++-- * MimeRender Class++class MimeType mtype => MimeRender mtype x where+    mimeRender  :: P.Proxy mtype -> x -> BL.ByteString+    mimeRender' :: mtype -> x -> BL.ByteString+    mimeRender' _ x = mimeRender (P.Proxy :: P.Proxy mtype) x+++mimeRenderDefaultMultipartFormData :: WH.ToHttpApiData a => a -> BL.ByteString+mimeRenderDefaultMultipartFormData = BL.fromStrict . T.encodeUtf8 . WH.toQueryParam++-- Default MimeRender Instances++-- | `A.encode`+instance A.ToJSON a => MimeRender MimeJSON a where mimeRender _ = A.encode+-- | @WH.urlEncodeAsForm@+instance WH.ToForm a => MimeRender MimeFormUrlEncoded a where mimeRender _ = WH.urlEncodeAsForm++-- | @P.id@+instance MimeRender MimePlainText BL.ByteString where mimeRender _ = P.id+-- | @BL.fromStrict . T.encodeUtf8@+instance MimeRender MimePlainText T.Text where mimeRender _ = BL.fromStrict . T.encodeUtf8+-- | @BCL.pack@+instance MimeRender MimePlainText String where mimeRender _ = BCL.pack++-- | @P.id@+instance MimeRender MimeOctetStream BL.ByteString where mimeRender _ = P.id+-- | @BL.fromStrict . T.encodeUtf8@+instance MimeRender MimeOctetStream T.Text where mimeRender _ = BL.fromStrict . T.encodeUtf8+-- | @BCL.pack@+instance MimeRender MimeOctetStream String where mimeRender _ = BCL.pack++instance MimeRender MimeMultipartFormData BL.ByteString where mimeRender _ = P.id++instance MimeRender MimeMultipartFormData Bool where mimeRender _ = mimeRenderDefaultMultipartFormData+instance MimeRender MimeMultipartFormData Char where mimeRender _ = mimeRenderDefaultMultipartFormData+instance MimeRender MimeMultipartFormData Double where mimeRender _ = mimeRenderDefaultMultipartFormData+instance MimeRender MimeMultipartFormData Float where mimeRender _ = mimeRenderDefaultMultipartFormData+instance MimeRender MimeMultipartFormData Int where mimeRender _ = mimeRenderDefaultMultipartFormData+instance MimeRender MimeMultipartFormData Integer where mimeRender _ = mimeRenderDefaultMultipartFormData+instance MimeRender MimeMultipartFormData String where mimeRender _ = mimeRenderDefaultMultipartFormData+instance MimeRender MimeMultipartFormData T.Text where mimeRender _ = mimeRenderDefaultMultipartFormData++-- | @P.Right . P.const NoContent@+instance MimeRender MimeNoContent NoContent where mimeRender _ = P.const BCL.empty+++-- * MimeUnrender Class++class MimeType mtype => MimeUnrender mtype o where+    mimeUnrender :: P.Proxy mtype -> BL.ByteString -> P.Either String o+    mimeUnrender' :: mtype -> BL.ByteString -> P.Either String o+    mimeUnrender' _ x = mimeUnrender (P.Proxy :: P.Proxy mtype) x++-- Default MimeUnrender Instances++-- | @A.eitherDecode@+instance A.FromJSON a => MimeUnrender MimeJSON a where mimeUnrender _ = A.eitherDecode+-- | @P.left T.unpack . WH.urlDecodeAsForm@+instance WH.FromForm a => MimeUnrender MimeFormUrlEncoded a where mimeUnrender _ = P.left T.unpack . WH.urlDecodeAsForm+-- | @P.Right . P.id@++instance MimeUnrender MimePlainText BL.ByteString where mimeUnrender _ = P.Right . P.id+-- | @P.left P.show . TL.decodeUtf8'@+instance MimeUnrender MimePlainText T.Text where mimeUnrender _ = P.left P.show . T.decodeUtf8' . BL.toStrict+-- | @P.Right . BCL.unpack@+instance MimeUnrender MimePlainText String where mimeUnrender _ = P.Right . BCL.unpack++-- | @P.Right . P.id@+instance MimeUnrender MimeOctetStream BL.ByteString where mimeUnrender _ = P.Right . P.id+-- | @P.left P.show . T.decodeUtf8' . BL.toStrict@+instance MimeUnrender MimeOctetStream T.Text where mimeUnrender _ = P.left P.show . T.decodeUtf8' . BL.toStrict+-- | @P.Right . BCL.unpack@+instance MimeUnrender MimeOctetStream String where mimeUnrender _ = P.Right . BCL.unpack++-- | @P.Right . P.const NoContent@+instance MimeUnrender MimeNoContent NoContent where mimeUnrender _ = P.Right . P.const NoContent+++-- * Custom Mime Types++-- ** MimeTextHtml++data MimeTextHtml = MimeTextHtml deriving (P.Typeable)++-- | @text/html@+instance MimeType MimeTextHtml where+  mimeType _ = Just $ P.fromString "text/html"+-- instance MimeRender MimeTextHtml T.Text where mimeRender _ = undefined+-- instance MimeUnrender MimeTextHtml T.Text where mimeUnrender _ = undefined+
+ lib/Gitea/Model.hs view
@@ -0,0 +1,9243 @@+{-+   Gitea API.++   This documentation describes the Gitea API.++   OpenAPI Version: 3.0.1+   Gitea API. API version: 1.19.4+   Generated by OpenAPI Generator (https://openapi-generator.tech)+-}++{-|+Module : Gitea.Model+-}++{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveFoldable #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DeriveTraversable #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE MultiParamTypeClasses #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TupleSections #-}+{-# LANGUAGE TypeFamilies #-}+{-# OPTIONS_GHC -fno-warn-unused-matches -fno-warn-unused-binds -fno-warn-unused-imports #-}++module Gitea.Model where++import Gitea.Core+import Gitea.MimeTypes++import Data.Aeson ((.:),(.:!),(.:?),(.=))++import qualified Control.Arrow as P (left)+import qualified Data.Aeson as A+import qualified Data.ByteString as B+import qualified Data.ByteString.Base64 as B64+import qualified Data.ByteString.Char8 as BC+import qualified Data.ByteString.Lazy as BL+import qualified Data.Data as P (Typeable, TypeRep, typeOf, typeRep)+import qualified Data.Foldable as P+import qualified Data.HashMap.Lazy as HM+import qualified Data.Map as Map+import qualified Data.Maybe as P+import qualified Data.Set as Set+import qualified Data.Text as T+import qualified Data.Text.Encoding as T+import qualified Data.Time as TI+import qualified Lens.Micro as L+import qualified Web.FormUrlEncoded as WH+import qualified Web.HttpApiData as WH++import Control.Applicative ((<|>))+import Control.Applicative (Alternative)+import Data.Function ((&))+import Data.Monoid ((<>))+import Data.Text (Text)+import Prelude (($),(/=),(.),(<$>),(<*>),(>>=),(=<<),Maybe(..),Bool(..),Char,Double,FilePath,Float,Int,Integer,String,fmap,undefined,mempty,maybe,pure,Monad,Applicative,Functor)++import qualified Prelude as P++++-- * Parameter newtypes+++-- ** All+newtype All = All { unAll :: Bool } deriving (P.Eq, P.Show)++-- ** AllText+newtype AllText = AllText { unAllText :: Text } deriving (P.Eq, P.Show)++-- ** Archive+newtype Archive = Archive { unArchive :: Text } deriving (P.Eq, P.Show)++-- ** Archived+newtype Archived = Archived { unArchived :: Bool } deriving (P.Eq, P.Show)++-- ** Assigned+newtype Assigned = Assigned { unAssigned :: Bool } deriving (P.Eq, P.Show)++-- ** AssignedBy+newtype AssignedBy = AssignedBy { unAssignedBy :: Text } deriving (P.Eq, P.Show)++-- ** Attachment2+newtype Attachment2 = Attachment2 { unAttachment2 :: FilePath } deriving (P.Eq, P.Show)++-- ** AttachmentId+newtype AttachmentId = AttachmentId { unAttachmentId :: Integer } deriving (P.Eq, P.Show)++-- ** Before+newtype Before = Before { unBefore :: DateTime } deriving (P.Eq, P.Show)++-- ** Body+newtype Body = Body { unBody :: Text } deriving (P.Eq, P.Show, A.ToJSON)++-- ** Branch2+newtype Branch2 = Branch2 { unBranch2 :: Text } deriving (P.Eq, P.Show)++-- ** Collaborator+newtype Collaborator = Collaborator { unCollaborator :: Text } deriving (P.Eq, P.Show)++-- ** Created+newtype Created = Created { unCreated :: Bool } deriving (P.Eq, P.Show)++-- ** CreatedBy+newtype CreatedBy = CreatedBy { unCreatedBy :: Text } deriving (P.Eq, P.Show)++-- ** DiffType+newtype DiffType = DiffType { unDiffType :: E'DiffType } deriving (P.Eq, P.Show)++-- ** Draft+newtype Draft = Draft { unDraft :: Bool } deriving (P.Eq, P.Show)++-- ** Exclusive+newtype Exclusive = Exclusive { unExclusive :: Bool } deriving (P.Eq, P.Show)++-- ** Filepath+newtype Filepath = Filepath { unFilepath :: Text } deriving (P.Eq, P.Show)++-- ** Fingerprint+newtype Fingerprint = Fingerprint { unFingerprint :: Text } deriving (P.Eq, P.Show)++-- ** Id+newtype Id = Id { unId :: Integer } deriving (P.Eq, P.Show)++-- ** IdInt+newtype IdInt = IdInt { unIdInt :: Int } deriving (P.Eq, P.Show)++-- ** IdText+newtype IdText = IdText { unIdText :: Text } deriving (P.Eq, P.Show)++-- ** IncludeDesc+newtype IncludeDesc = IncludeDesc { unIncludeDesc :: Bool } deriving (P.Eq, P.Show)++-- ** Index+newtype Index = Index { unIndex :: Integer } deriving (P.Eq, P.Show)++-- ** IndexInt+newtype IndexInt = IndexInt { unIndexInt :: Int } deriving (P.Eq, P.Show)++-- ** IsPrivate+newtype IsPrivate = IsPrivate { unIsPrivate :: Bool } deriving (P.Eq, P.Show)++-- ** KeyId+newtype KeyId = KeyId { unKeyId :: Int } deriving (P.Eq, P.Show)++-- ** Labels+newtype Labels = Labels { unLabels :: Text } deriving (P.Eq, P.Show)++-- ** LabelsInteger+newtype LabelsInteger = LabelsInteger { unLabelsInteger :: [Integer] } deriving (P.Eq, P.Show)++-- ** LastReadAt+newtype LastReadAt = LastReadAt { unLastReadAt :: DateTime } deriving (P.Eq, P.Show)++-- ** Limit+newtype Limit = Limit { unLimit :: Int } deriving (P.Eq, P.Show)++-- ** Mentioned+newtype Mentioned = Mentioned { unMentioned :: Bool } deriving (P.Eq, P.Show)++-- ** MentionedBy+newtype MentionedBy = MentionedBy { unMentionedBy :: Text } deriving (P.Eq, P.Show)++-- ** Milestone2+newtype Milestone2 = Milestone2 { unMilestone2 :: Integer } deriving (P.Eq, P.Show)++-- ** Milestones+newtype Milestones = Milestones { unMilestones :: Text } deriving (P.Eq, P.Show)++-- ** Mode+newtype Mode = Mode { unMode :: Text } deriving (P.Eq, P.Show)++-- ** Name+newtype Name = Name { unName :: Text } deriving (P.Eq, P.Show)++-- ** Order+newtype Order = Order { unOrder :: Text } deriving (P.Eq, P.Show)++-- ** Org+newtype Org = Org { unOrg :: Text } deriving (P.Eq, P.Show)++-- ** Owner+newtype Owner = Owner { unOwner :: Text } deriving (P.Eq, P.Show)++-- ** Page+newtype Page = Page { unPage :: Int } deriving (P.Eq, P.Show)++-- ** PageName+newtype PageName = PageName { unPageName :: Text } deriving (P.Eq, P.Show)++-- ** ParamBinary+newtype ParamBinary = ParamBinary { unParamBinary :: Bool } deriving (P.Eq, P.Show)++-- ** ParamType+newtype ParamType = ParamType { unParamType :: E'Type2 } deriving (P.Eq, P.Show)++-- ** ParamType2+newtype ParamType2 = ParamType2 { unParamType2 :: E'Type3 } deriving (P.Eq, P.Show)++-- ** ParamTypeText+newtype ParamTypeText = ParamTypeText { unParamTypeText :: Text } deriving (P.Eq, P.Show)++-- ** Path+newtype Path = Path { unPath :: Text } deriving (P.Eq, P.Show)++-- ** Pattern+newtype Pattern = Pattern { unPattern :: Text } deriving (P.Eq, P.Show)++-- ** PerPage+newtype PerPage = PerPage { unPerPage :: Int } deriving (P.Eq, P.Show)++-- ** PreRelease+newtype PreRelease = PreRelease { unPreRelease :: Bool } deriving (P.Eq, P.Show)++-- ** PriorityOwnerId+newtype PriorityOwnerId = PriorityOwnerId { unPriorityOwnerId :: Integer } deriving (P.Eq, P.Show)++-- ** PriorityRepoId+newtype PriorityRepoId = PriorityRepoId { unPriorityRepoId :: Integer } deriving (P.Eq, P.Show)++-- ** Private+newtype Private = Private { unPrivate :: Bool } deriving (P.Eq, P.Show)++-- ** Purge+newtype Purge = Purge { unPurge :: Bool } deriving (P.Eq, P.Show)++-- ** Q+newtype Q = Q { unQ :: Text } deriving (P.Eq, P.Show)++-- ** Recursive+newtype Recursive = Recursive { unRecursive :: Bool } deriving (P.Eq, P.Show)++-- ** Ref+newtype Ref = Ref { unRef :: Text } deriving (P.Eq, P.Show)++-- ** Repo+newtype Repo = Repo { unRepo :: Text } deriving (P.Eq, P.Show)++-- ** ReviewRequested+newtype ReviewRequested = ReviewRequested { unReviewRequested :: Bool } deriving (P.Eq, P.Show)++-- ** Sha+newtype Sha = Sha { unSha :: Text } deriving (P.Eq, P.Show)++-- ** Since+newtype Since = Since { unSince :: DateTime } deriving (P.Eq, P.Show)++-- ** SkipTo+newtype SkipTo = SkipTo { unSkipTo :: Text } deriving (P.Eq, P.Show)++-- ** Sort+newtype Sort = Sort { unSort :: Text } deriving (P.Eq, P.Show)++-- ** Sort2+newtype Sort2 = Sort2 { unSort2 :: E'Sort } deriving (P.Eq, P.Show)++-- ** Sort3+newtype Sort3 = Sort3 { unSort3 :: E'Sort2 } deriving (P.Eq, P.Show)++-- ** StarredBy+newtype StarredBy = StarredBy { unStarredBy :: Integer } deriving (P.Eq, P.Show)++-- ** Stat+newtype Stat = Stat { unStat :: Bool } deriving (P.Eq, P.Show)++-- ** State+newtype State = State { unState :: Text } deriving (P.Eq, P.Show)++-- ** State2+newtype State2 = State2 { unState2 :: E'State2 } deriving (P.Eq, P.Show)++-- ** State3+newtype State3 = State3 { unState3 :: E'State3 } deriving (P.Eq, P.Show)++-- ** StatusTypes+newtype StatusTypes = StatusTypes { unStatusTypes :: [Text] } deriving (P.Eq, P.Show)++-- ** Style+newtype Style = Style { unStyle :: E'Style } deriving (P.Eq, P.Show)++-- ** SubjectType+newtype SubjectType = SubjectType { unSubjectType :: [E'SubjectType] } deriving (P.Eq, P.Show)++-- ** Tag2+newtype Tag2 = Tag2 { unTag2 :: Text } deriving (P.Eq, P.Show)++-- ** Target+newtype Target = Target { unTarget :: Text } deriving (P.Eq, P.Show)++-- ** Task+newtype Task = Task { unTask :: Text } deriving (P.Eq, P.Show)++-- ** Team2+newtype Team2 = Team2 { unTeam2 :: Text } deriving (P.Eq, P.Show)++-- ** TeamId+newtype TeamId = TeamId { unTeamId :: Integer } deriving (P.Eq, P.Show)++-- ** Template+newtype Template = Template { unTemplate :: Bool } deriving (P.Eq, P.Show)++-- ** TemplateOwner+newtype TemplateOwner = TemplateOwner { unTemplateOwner :: Text } deriving (P.Eq, P.Show)++-- ** TemplateRepo+newtype TemplateRepo = TemplateRepo { unTemplateRepo :: Text } deriving (P.Eq, P.Show)++-- ** ToStatus+newtype ToStatus = ToStatus { unToStatus :: Text } deriving (P.Eq, P.Show)++-- ** Token+newtype Token = Token { unToken :: Text } deriving (P.Eq, P.Show)++-- ** Topic+newtype Topic = Topic { unTopic :: Bool } deriving (P.Eq, P.Show)++-- ** TopicText+newtype TopicText = TopicText { unTopicText :: Text } deriving (P.Eq, P.Show)++-- ** Uid+newtype Uid = Uid { unUid :: Integer } deriving (P.Eq, P.Show)++-- ** User2+newtype User2 = User2 { unUser2 :: Text } deriving (P.Eq, P.Show)++-- ** UserId+newtype UserId = UserId { unUserId :: Int } deriving (P.Eq, P.Show)++-- ** Username+newtype Username = Username { unUsername :: Text } deriving (P.Eq, P.Show)++-- ** Version+newtype Version = Version { unVersion :: Text } deriving (P.Eq, P.Show)++-- ** Whitespace+newtype Whitespace = Whitespace { unWhitespace :: E'Whitespace } deriving (P.Eq, P.Show)++-- * Models+++-- ** APIError+-- | APIError+-- APIError is an api error with a message+data APIError = APIError+  { aPIErrorMessage :: !(Maybe Text) -- ^ "message"+  , aPIErrorUrl :: !(Maybe Text) -- ^ "url"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON APIError+instance A.FromJSON APIError where+  parseJSON = A.withObject "APIError" $ \o ->+    APIError+      <$> (o .:? "message")+      <*> (o .:? "url")++-- | ToJSON APIError+instance A.ToJSON APIError where+  toJSON APIError {..} =+   _omitNulls+      [ "message" .= aPIErrorMessage+      , "url" .= aPIErrorUrl+      ]+++-- | Construct a value of type 'APIError' (by applying it's required fields, if any)+mkAPIError+  :: APIError+mkAPIError =+  APIError+  { aPIErrorMessage = Nothing+  , aPIErrorUrl = Nothing+  }++-- ** AccessToken+-- | AccessToken+-- AccessToken represents an API access token.+-- +data AccessToken = AccessToken+  { accessTokenId :: !(Maybe Integer) -- ^ "id"+  , accessTokenName :: !(Maybe Text) -- ^ "name"+  , accessTokenScopes :: !(Maybe [Text]) -- ^ "scopes"+  , accessTokenSha1 :: !(Maybe Text) -- ^ "sha1"+  , accessTokenTokenLastEight :: !(Maybe Text) -- ^ "token_last_eight"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON AccessToken+instance A.FromJSON AccessToken where+  parseJSON = A.withObject "AccessToken" $ \o ->+    AccessToken+      <$> (o .:? "id")+      <*> (o .:? "name")+      <*> (o .:? "scopes")+      <*> (o .:? "sha1")+      <*> (o .:? "token_last_eight")++-- | ToJSON AccessToken+instance A.ToJSON AccessToken where+  toJSON AccessToken {..} =+   _omitNulls+      [ "id" .= accessTokenId+      , "name" .= accessTokenName+      , "scopes" .= accessTokenScopes+      , "sha1" .= accessTokenSha1+      , "token_last_eight" .= accessTokenTokenLastEight+      ]+++-- | Construct a value of type 'AccessToken' (by applying it's required fields, if any)+mkAccessToken+  :: AccessToken+mkAccessToken =+  AccessToken+  { accessTokenId = Nothing+  , accessTokenName = Nothing+  , accessTokenScopes = Nothing+  , accessTokenSha1 = Nothing+  , accessTokenTokenLastEight = Nothing+  }++-- ** ActivityPub+-- | ActivityPub+-- ActivityPub type+data ActivityPub = ActivityPub+  { activityPubContext :: !(Maybe Text) -- ^ "@context"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON ActivityPub+instance A.FromJSON ActivityPub where+  parseJSON = A.withObject "ActivityPub" $ \o ->+    ActivityPub+      <$> (o .:? "@context")++-- | ToJSON ActivityPub+instance A.ToJSON ActivityPub where+  toJSON ActivityPub {..} =+   _omitNulls+      [ "@context" .= activityPubContext+      ]+++-- | Construct a value of type 'ActivityPub' (by applying it's required fields, if any)+mkActivityPub+  :: ActivityPub+mkActivityPub =+  ActivityPub+  { activityPubContext = Nothing+  }++-- ** AddCollaboratorOption+-- | AddCollaboratorOption+-- AddCollaboratorOption options when adding a user as a collaborator of a repository+data AddCollaboratorOption = AddCollaboratorOption+  { addCollaboratorOptionPermission :: !(Maybe Text) -- ^ "permission"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON AddCollaboratorOption+instance A.FromJSON AddCollaboratorOption where+  parseJSON = A.withObject "AddCollaboratorOption" $ \o ->+    AddCollaboratorOption+      <$> (o .:? "permission")++-- | ToJSON AddCollaboratorOption+instance A.ToJSON AddCollaboratorOption where+  toJSON AddCollaboratorOption {..} =+   _omitNulls+      [ "permission" .= addCollaboratorOptionPermission+      ]+++-- | Construct a value of type 'AddCollaboratorOption' (by applying it's required fields, if any)+mkAddCollaboratorOption+  :: AddCollaboratorOption+mkAddCollaboratorOption =+  AddCollaboratorOption+  { addCollaboratorOptionPermission = Nothing+  }++-- ** AddTimeOption+-- | AddTimeOption+-- AddTimeOption options for adding time to an issue+data AddTimeOption = AddTimeOption+  { addTimeOptionCreated :: !(Maybe DateTime) -- ^ "created"+  , addTimeOptionTime :: !(Integer) -- ^ /Required/ "time" - time in seconds+  , addTimeOptionUserName :: !(Maybe Text) -- ^ "user_name" - User who spent the time (optional)+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON AddTimeOption+instance A.FromJSON AddTimeOption where+  parseJSON = A.withObject "AddTimeOption" $ \o ->+    AddTimeOption+      <$> (o .:? "created")+      <*> (o .:  "time")+      <*> (o .:? "user_name")++-- | ToJSON AddTimeOption+instance A.ToJSON AddTimeOption where+  toJSON AddTimeOption {..} =+   _omitNulls+      [ "created" .= addTimeOptionCreated+      , "time" .= addTimeOptionTime+      , "user_name" .= addTimeOptionUserName+      ]+++-- | Construct a value of type 'AddTimeOption' (by applying it's required fields, if any)+mkAddTimeOption+  :: Integer -- ^ 'addTimeOptionTime': time in seconds+  -> AddTimeOption+mkAddTimeOption addTimeOptionTime =+  AddTimeOption+  { addTimeOptionCreated = Nothing+  , addTimeOptionTime+  , addTimeOptionUserName = Nothing+  }++-- ** AnnotatedTag+-- | AnnotatedTag+-- AnnotatedTag represents an annotated tag+data AnnotatedTag = AnnotatedTag+  { annotatedTagMessage :: !(Maybe Text) -- ^ "message"+  , annotatedTagObject :: !(Maybe AnnotatedTagObject) -- ^ "object"+  , annotatedTagSha :: !(Maybe Text) -- ^ "sha"+  , annotatedTagTag :: !(Maybe Text) -- ^ "tag"+  , annotatedTagTagger :: !(Maybe CommitUser) -- ^ "tagger"+  , annotatedTagUrl :: !(Maybe Text) -- ^ "url"+  , annotatedTagVerification :: !(Maybe PayloadCommitVerification) -- ^ "verification"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON AnnotatedTag+instance A.FromJSON AnnotatedTag where+  parseJSON = A.withObject "AnnotatedTag" $ \o ->+    AnnotatedTag+      <$> (o .:? "message")+      <*> (o .:? "object")+      <*> (o .:? "sha")+      <*> (o .:? "tag")+      <*> (o .:? "tagger")+      <*> (o .:? "url")+      <*> (o .:? "verification")++-- | ToJSON AnnotatedTag+instance A.ToJSON AnnotatedTag where+  toJSON AnnotatedTag {..} =+   _omitNulls+      [ "message" .= annotatedTagMessage+      , "object" .= annotatedTagObject+      , "sha" .= annotatedTagSha+      , "tag" .= annotatedTagTag+      , "tagger" .= annotatedTagTagger+      , "url" .= annotatedTagUrl+      , "verification" .= annotatedTagVerification+      ]+++-- | Construct a value of type 'AnnotatedTag' (by applying it's required fields, if any)+mkAnnotatedTag+  :: AnnotatedTag+mkAnnotatedTag =+  AnnotatedTag+  { annotatedTagMessage = Nothing+  , annotatedTagObject = Nothing+  , annotatedTagSha = Nothing+  , annotatedTagTag = Nothing+  , annotatedTagTagger = Nothing+  , annotatedTagUrl = Nothing+  , annotatedTagVerification = Nothing+  }++-- ** AnnotatedTagObject+-- | AnnotatedTagObject+-- AnnotatedTagObject contains meta information of the tag object+data AnnotatedTagObject = AnnotatedTagObject+  { annotatedTagObjectSha :: !(Maybe Text) -- ^ "sha"+  , annotatedTagObjectType :: !(Maybe Text) -- ^ "type"+  , annotatedTagObjectUrl :: !(Maybe Text) -- ^ "url"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON AnnotatedTagObject+instance A.FromJSON AnnotatedTagObject where+  parseJSON = A.withObject "AnnotatedTagObject" $ \o ->+    AnnotatedTagObject+      <$> (o .:? "sha")+      <*> (o .:? "type")+      <*> (o .:? "url")++-- | ToJSON AnnotatedTagObject+instance A.ToJSON AnnotatedTagObject where+  toJSON AnnotatedTagObject {..} =+   _omitNulls+      [ "sha" .= annotatedTagObjectSha+      , "type" .= annotatedTagObjectType+      , "url" .= annotatedTagObjectUrl+      ]+++-- | Construct a value of type 'AnnotatedTagObject' (by applying it's required fields, if any)+mkAnnotatedTagObject+  :: AnnotatedTagObject+mkAnnotatedTagObject =+  AnnotatedTagObject+  { annotatedTagObjectSha = Nothing+  , annotatedTagObjectType = Nothing+  , annotatedTagObjectUrl = Nothing+  }++-- ** Attachment+-- | Attachment+-- Attachment a generic attachment+data Attachment = Attachment+  { attachmentBrowserDownloadUrl :: !(Maybe Text) -- ^ "browser_download_url"+  , attachmentCreatedAt :: !(Maybe DateTime) -- ^ "created_at"+  , attachmentDownloadCount :: !(Maybe Integer) -- ^ "download_count"+  , attachmentId :: !(Maybe Integer) -- ^ "id"+  , attachmentName :: !(Maybe Text) -- ^ "name"+  , attachmentSize :: !(Maybe Integer) -- ^ "size"+  , attachmentUuid :: !(Maybe Text) -- ^ "uuid"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON Attachment+instance A.FromJSON Attachment where+  parseJSON = A.withObject "Attachment" $ \o ->+    Attachment+      <$> (o .:? "browser_download_url")+      <*> (o .:? "created_at")+      <*> (o .:? "download_count")+      <*> (o .:? "id")+      <*> (o .:? "name")+      <*> (o .:? "size")+      <*> (o .:? "uuid")++-- | ToJSON Attachment+instance A.ToJSON Attachment where+  toJSON Attachment {..} =+   _omitNulls+      [ "browser_download_url" .= attachmentBrowserDownloadUrl+      , "created_at" .= attachmentCreatedAt+      , "download_count" .= attachmentDownloadCount+      , "id" .= attachmentId+      , "name" .= attachmentName+      , "size" .= attachmentSize+      , "uuid" .= attachmentUuid+      ]+++-- | Construct a value of type 'Attachment' (by applying it's required fields, if any)+mkAttachment+  :: Attachment+mkAttachment =+  Attachment+  { attachmentBrowserDownloadUrl = Nothing+  , attachmentCreatedAt = Nothing+  , attachmentDownloadCount = Nothing+  , attachmentId = Nothing+  , attachmentName = Nothing+  , attachmentSize = Nothing+  , attachmentUuid = Nothing+  }++-- ** Branch+-- | Branch+-- Branch represents a repository branch+data Branch = Branch+  { branchCommit :: !(Maybe PayloadCommit) -- ^ "commit"+  , branchEffectiveBranchProtectionName :: !(Maybe Text) -- ^ "effective_branch_protection_name"+  , branchEnableStatusCheck :: !(Maybe Bool) -- ^ "enable_status_check"+  , branchName :: !(Maybe Text) -- ^ "name"+  , branchProtected :: !(Maybe Bool) -- ^ "protected"+  , branchRequiredApprovals :: !(Maybe Integer) -- ^ "required_approvals"+  , branchStatusCheckContexts :: !(Maybe [Text]) -- ^ "status_check_contexts"+  , branchUserCanMerge :: !(Maybe Bool) -- ^ "user_can_merge"+  , branchUserCanPush :: !(Maybe Bool) -- ^ "user_can_push"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON Branch+instance A.FromJSON Branch where+  parseJSON = A.withObject "Branch" $ \o ->+    Branch+      <$> (o .:? "commit")+      <*> (o .:? "effective_branch_protection_name")+      <*> (o .:? "enable_status_check")+      <*> (o .:? "name")+      <*> (o .:? "protected")+      <*> (o .:? "required_approvals")+      <*> (o .:? "status_check_contexts")+      <*> (o .:? "user_can_merge")+      <*> (o .:? "user_can_push")++-- | ToJSON Branch+instance A.ToJSON Branch where+  toJSON Branch {..} =+   _omitNulls+      [ "commit" .= branchCommit+      , "effective_branch_protection_name" .= branchEffectiveBranchProtectionName+      , "enable_status_check" .= branchEnableStatusCheck+      , "name" .= branchName+      , "protected" .= branchProtected+      , "required_approvals" .= branchRequiredApprovals+      , "status_check_contexts" .= branchStatusCheckContexts+      , "user_can_merge" .= branchUserCanMerge+      , "user_can_push" .= branchUserCanPush+      ]+++-- | Construct a value of type 'Branch' (by applying it's required fields, if any)+mkBranch+  :: Branch+mkBranch =+  Branch+  { branchCommit = Nothing+  , branchEffectiveBranchProtectionName = Nothing+  , branchEnableStatusCheck = Nothing+  , branchName = Nothing+  , branchProtected = Nothing+  , branchRequiredApprovals = Nothing+  , branchStatusCheckContexts = Nothing+  , branchUserCanMerge = Nothing+  , branchUserCanPush = Nothing+  }++-- ** BranchProtection+-- | BranchProtection+-- BranchProtection represents a branch protection for a repository+data BranchProtection = BranchProtection+  { branchProtectionApprovalsWhitelistTeams :: !(Maybe [Text]) -- ^ "approvals_whitelist_teams"+  , branchProtectionApprovalsWhitelistUsername :: !(Maybe [Text]) -- ^ "approvals_whitelist_username"+  , branchProtectionBlockOnOfficialReviewRequests :: !(Maybe Bool) -- ^ "block_on_official_review_requests"+  , branchProtectionBlockOnOutdatedBranch :: !(Maybe Bool) -- ^ "block_on_outdated_branch"+  , branchProtectionBlockOnRejectedReviews :: !(Maybe Bool) -- ^ "block_on_rejected_reviews"+  , branchProtectionBranchName :: !(Maybe Text) -- ^ "branch_name" - Deprecated: true+  , branchProtectionCreatedAt :: !(Maybe DateTime) -- ^ "created_at"+  , branchProtectionDismissStaleApprovals :: !(Maybe Bool) -- ^ "dismiss_stale_approvals"+  , branchProtectionEnableApprovalsWhitelist :: !(Maybe Bool) -- ^ "enable_approvals_whitelist"+  , branchProtectionEnableMergeWhitelist :: !(Maybe Bool) -- ^ "enable_merge_whitelist"+  , branchProtectionEnablePush :: !(Maybe Bool) -- ^ "enable_push"+  , branchProtectionEnablePushWhitelist :: !(Maybe Bool) -- ^ "enable_push_whitelist"+  , branchProtectionEnableStatusCheck :: !(Maybe Bool) -- ^ "enable_status_check"+  , branchProtectionMergeWhitelistTeams :: !(Maybe [Text]) -- ^ "merge_whitelist_teams"+  , branchProtectionMergeWhitelistUsernames :: !(Maybe [Text]) -- ^ "merge_whitelist_usernames"+  , branchProtectionProtectedFilePatterns :: !(Maybe Text) -- ^ "protected_file_patterns"+  , branchProtectionPushWhitelistDeployKeys :: !(Maybe Bool) -- ^ "push_whitelist_deploy_keys"+  , branchProtectionPushWhitelistTeams :: !(Maybe [Text]) -- ^ "push_whitelist_teams"+  , branchProtectionPushWhitelistUsernames :: !(Maybe [Text]) -- ^ "push_whitelist_usernames"+  , branchProtectionRequireSignedCommits :: !(Maybe Bool) -- ^ "require_signed_commits"+  , branchProtectionRequiredApprovals :: !(Maybe Integer) -- ^ "required_approvals"+  , branchProtectionRuleName :: !(Maybe Text) -- ^ "rule_name"+  , branchProtectionStatusCheckContexts :: !(Maybe [Text]) -- ^ "status_check_contexts"+  , branchProtectionUnprotectedFilePatterns :: !(Maybe Text) -- ^ "unprotected_file_patterns"+  , branchProtectionUpdatedAt :: !(Maybe DateTime) -- ^ "updated_at"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON BranchProtection+instance A.FromJSON BranchProtection where+  parseJSON = A.withObject "BranchProtection" $ \o ->+    BranchProtection+      <$> (o .:? "approvals_whitelist_teams")+      <*> (o .:? "approvals_whitelist_username")+      <*> (o .:? "block_on_official_review_requests")+      <*> (o .:? "block_on_outdated_branch")+      <*> (o .:? "block_on_rejected_reviews")+      <*> (o .:? "branch_name")+      <*> (o .:? "created_at")+      <*> (o .:? "dismiss_stale_approvals")+      <*> (o .:? "enable_approvals_whitelist")+      <*> (o .:? "enable_merge_whitelist")+      <*> (o .:? "enable_push")+      <*> (o .:? "enable_push_whitelist")+      <*> (o .:? "enable_status_check")+      <*> (o .:? "merge_whitelist_teams")+      <*> (o .:? "merge_whitelist_usernames")+      <*> (o .:? "protected_file_patterns")+      <*> (o .:? "push_whitelist_deploy_keys")+      <*> (o .:? "push_whitelist_teams")+      <*> (o .:? "push_whitelist_usernames")+      <*> (o .:? "require_signed_commits")+      <*> (o .:? "required_approvals")+      <*> (o .:? "rule_name")+      <*> (o .:? "status_check_contexts")+      <*> (o .:? "unprotected_file_patterns")+      <*> (o .:? "updated_at")++-- | ToJSON BranchProtection+instance A.ToJSON BranchProtection where+  toJSON BranchProtection {..} =+   _omitNulls+      [ "approvals_whitelist_teams" .= branchProtectionApprovalsWhitelistTeams+      , "approvals_whitelist_username" .= branchProtectionApprovalsWhitelistUsername+      , "block_on_official_review_requests" .= branchProtectionBlockOnOfficialReviewRequests+      , "block_on_outdated_branch" .= branchProtectionBlockOnOutdatedBranch+      , "block_on_rejected_reviews" .= branchProtectionBlockOnRejectedReviews+      , "branch_name" .= branchProtectionBranchName+      , "created_at" .= branchProtectionCreatedAt+      , "dismiss_stale_approvals" .= branchProtectionDismissStaleApprovals+      , "enable_approvals_whitelist" .= branchProtectionEnableApprovalsWhitelist+      , "enable_merge_whitelist" .= branchProtectionEnableMergeWhitelist+      , "enable_push" .= branchProtectionEnablePush+      , "enable_push_whitelist" .= branchProtectionEnablePushWhitelist+      , "enable_status_check" .= branchProtectionEnableStatusCheck+      , "merge_whitelist_teams" .= branchProtectionMergeWhitelistTeams+      , "merge_whitelist_usernames" .= branchProtectionMergeWhitelistUsernames+      , "protected_file_patterns" .= branchProtectionProtectedFilePatterns+      , "push_whitelist_deploy_keys" .= branchProtectionPushWhitelistDeployKeys+      , "push_whitelist_teams" .= branchProtectionPushWhitelistTeams+      , "push_whitelist_usernames" .= branchProtectionPushWhitelistUsernames+      , "require_signed_commits" .= branchProtectionRequireSignedCommits+      , "required_approvals" .= branchProtectionRequiredApprovals+      , "rule_name" .= branchProtectionRuleName+      , "status_check_contexts" .= branchProtectionStatusCheckContexts+      , "unprotected_file_patterns" .= branchProtectionUnprotectedFilePatterns+      , "updated_at" .= branchProtectionUpdatedAt+      ]+++-- | Construct a value of type 'BranchProtection' (by applying it's required fields, if any)+mkBranchProtection+  :: BranchProtection+mkBranchProtection =+  BranchProtection+  { branchProtectionApprovalsWhitelistTeams = Nothing+  , branchProtectionApprovalsWhitelistUsername = Nothing+  , branchProtectionBlockOnOfficialReviewRequests = Nothing+  , branchProtectionBlockOnOutdatedBranch = Nothing+  , branchProtectionBlockOnRejectedReviews = Nothing+  , branchProtectionBranchName = Nothing+  , branchProtectionCreatedAt = Nothing+  , branchProtectionDismissStaleApprovals = Nothing+  , branchProtectionEnableApprovalsWhitelist = Nothing+  , branchProtectionEnableMergeWhitelist = Nothing+  , branchProtectionEnablePush = Nothing+  , branchProtectionEnablePushWhitelist = Nothing+  , branchProtectionEnableStatusCheck = Nothing+  , branchProtectionMergeWhitelistTeams = Nothing+  , branchProtectionMergeWhitelistUsernames = Nothing+  , branchProtectionProtectedFilePatterns = Nothing+  , branchProtectionPushWhitelistDeployKeys = Nothing+  , branchProtectionPushWhitelistTeams = Nothing+  , branchProtectionPushWhitelistUsernames = Nothing+  , branchProtectionRequireSignedCommits = Nothing+  , branchProtectionRequiredApprovals = Nothing+  , branchProtectionRuleName = Nothing+  , branchProtectionStatusCheckContexts = Nothing+  , branchProtectionUnprotectedFilePatterns = Nothing+  , branchProtectionUpdatedAt = Nothing+  }++-- ** ChangedFile+-- | ChangedFile+-- ChangedFile store information about files affected by the pull request+data ChangedFile = ChangedFile+  { changedFileAdditions :: !(Maybe Integer) -- ^ "additions"+  , changedFileChanges :: !(Maybe Integer) -- ^ "changes"+  , changedFileContentsUrl :: !(Maybe Text) -- ^ "contents_url"+  , changedFileDeletions :: !(Maybe Integer) -- ^ "deletions"+  , changedFileFilename :: !(Maybe Text) -- ^ "filename"+  , changedFileHtmlUrl :: !(Maybe Text) -- ^ "html_url"+  , changedFilePreviousFilename :: !(Maybe Text) -- ^ "previous_filename"+  , changedFileRawUrl :: !(Maybe Text) -- ^ "raw_url"+  , changedFileStatus :: !(Maybe Text) -- ^ "status"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON ChangedFile+instance A.FromJSON ChangedFile where+  parseJSON = A.withObject "ChangedFile" $ \o ->+    ChangedFile+      <$> (o .:? "additions")+      <*> (o .:? "changes")+      <*> (o .:? "contents_url")+      <*> (o .:? "deletions")+      <*> (o .:? "filename")+      <*> (o .:? "html_url")+      <*> (o .:? "previous_filename")+      <*> (o .:? "raw_url")+      <*> (o .:? "status")++-- | ToJSON ChangedFile+instance A.ToJSON ChangedFile where+  toJSON ChangedFile {..} =+   _omitNulls+      [ "additions" .= changedFileAdditions+      , "changes" .= changedFileChanges+      , "contents_url" .= changedFileContentsUrl+      , "deletions" .= changedFileDeletions+      , "filename" .= changedFileFilename+      , "html_url" .= changedFileHtmlUrl+      , "previous_filename" .= changedFilePreviousFilename+      , "raw_url" .= changedFileRawUrl+      , "status" .= changedFileStatus+      ]+++-- | Construct a value of type 'ChangedFile' (by applying it's required fields, if any)+mkChangedFile+  :: ChangedFile+mkChangedFile =+  ChangedFile+  { changedFileAdditions = Nothing+  , changedFileChanges = Nothing+  , changedFileContentsUrl = Nothing+  , changedFileDeletions = Nothing+  , changedFileFilename = Nothing+  , changedFileHtmlUrl = Nothing+  , changedFilePreviousFilename = Nothing+  , changedFileRawUrl = Nothing+  , changedFileStatus = Nothing+  }++-- ** CombinedStatus+-- | CombinedStatus+-- CombinedStatus holds the combined state of several statuses for a single commit+data CombinedStatus = CombinedStatus+  { combinedStatusCommitUrl :: !(Maybe Text) -- ^ "commit_url"+  , combinedStatusRepository :: !(Maybe Repository) -- ^ "repository"+  , combinedStatusSha :: !(Maybe Text) -- ^ "sha"+  , combinedStatusState :: !(Maybe Text) -- ^ "state" - CommitStatusState holds the state of a CommitStatus It can be \&quot;pending\&quot;, \&quot;success\&quot;, \&quot;error\&quot;, \&quot;failure\&quot;, and \&quot;warning\&quot;+  , combinedStatusStatuses :: !(Maybe [CommitStatus]) -- ^ "statuses"+  , combinedStatusTotalCount :: !(Maybe Integer) -- ^ "total_count"+  , combinedStatusUrl :: !(Maybe Text) -- ^ "url"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON CombinedStatus+instance A.FromJSON CombinedStatus where+  parseJSON = A.withObject "CombinedStatus" $ \o ->+    CombinedStatus+      <$> (o .:? "commit_url")+      <*> (o .:? "repository")+      <*> (o .:? "sha")+      <*> (o .:? "state")+      <*> (o .:? "statuses")+      <*> (o .:? "total_count")+      <*> (o .:? "url")++-- | ToJSON CombinedStatus+instance A.ToJSON CombinedStatus where+  toJSON CombinedStatus {..} =+   _omitNulls+      [ "commit_url" .= combinedStatusCommitUrl+      , "repository" .= combinedStatusRepository+      , "sha" .= combinedStatusSha+      , "state" .= combinedStatusState+      , "statuses" .= combinedStatusStatuses+      , "total_count" .= combinedStatusTotalCount+      , "url" .= combinedStatusUrl+      ]+++-- | Construct a value of type 'CombinedStatus' (by applying it's required fields, if any)+mkCombinedStatus+  :: CombinedStatus+mkCombinedStatus =+  CombinedStatus+  { combinedStatusCommitUrl = Nothing+  , combinedStatusRepository = Nothing+  , combinedStatusSha = Nothing+  , combinedStatusState = Nothing+  , combinedStatusStatuses = Nothing+  , combinedStatusTotalCount = Nothing+  , combinedStatusUrl = Nothing+  }++-- ** Comment+-- | Comment+-- Comment represents a comment on a commit or issue+data Comment = Comment+  { commentAssets :: !(Maybe [Attachment]) -- ^ "assets"+  , commentBody :: !(Maybe Text) -- ^ "body"+  , commentCreatedAt :: !(Maybe DateTime) -- ^ "created_at"+  , commentHtmlUrl :: !(Maybe Text) -- ^ "html_url"+  , commentId :: !(Maybe Integer) -- ^ "id"+  , commentIssueUrl :: !(Maybe Text) -- ^ "issue_url"+  , commentOriginalAuthor :: !(Maybe Text) -- ^ "original_author"+  , commentOriginalAuthorId :: !(Maybe Integer) -- ^ "original_author_id"+  , commentPullRequestUrl :: !(Maybe Text) -- ^ "pull_request_url"+  , commentUpdatedAt :: !(Maybe DateTime) -- ^ "updated_at"+  , commentUser :: !(Maybe User) -- ^ "user"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON Comment+instance A.FromJSON Comment where+  parseJSON = A.withObject "Comment" $ \o ->+    Comment+      <$> (o .:? "assets")+      <*> (o .:? "body")+      <*> (o .:? "created_at")+      <*> (o .:? "html_url")+      <*> (o .:? "id")+      <*> (o .:? "issue_url")+      <*> (o .:? "original_author")+      <*> (o .:? "original_author_id")+      <*> (o .:? "pull_request_url")+      <*> (o .:? "updated_at")+      <*> (o .:? "user")++-- | ToJSON Comment+instance A.ToJSON Comment where+  toJSON Comment {..} =+   _omitNulls+      [ "assets" .= commentAssets+      , "body" .= commentBody+      , "created_at" .= commentCreatedAt+      , "html_url" .= commentHtmlUrl+      , "id" .= commentId+      , "issue_url" .= commentIssueUrl+      , "original_author" .= commentOriginalAuthor+      , "original_author_id" .= commentOriginalAuthorId+      , "pull_request_url" .= commentPullRequestUrl+      , "updated_at" .= commentUpdatedAt+      , "user" .= commentUser+      ]+++-- | Construct a value of type 'Comment' (by applying it's required fields, if any)+mkComment+  :: Comment+mkComment =+  Comment+  { commentAssets = Nothing+  , commentBody = Nothing+  , commentCreatedAt = Nothing+  , commentHtmlUrl = Nothing+  , commentId = Nothing+  , commentIssueUrl = Nothing+  , commentOriginalAuthor = Nothing+  , commentOriginalAuthorId = Nothing+  , commentPullRequestUrl = Nothing+  , commentUpdatedAt = Nothing+  , commentUser = Nothing+  }++-- ** Commit+-- | Commit+-- Commit contains information generated from a Git commit.+-- +data Commit = Commit+  { commitAuthor :: !(Maybe User) -- ^ "author"+  , commitCommit :: !(Maybe RepoCommit) -- ^ "commit"+  , commitCommitter :: !(Maybe User) -- ^ "committer"+  , commitCreated :: !(Maybe DateTime) -- ^ "created"+  , commitFiles :: !(Maybe [CommitAffectedFiles]) -- ^ "files"+  , commitHtmlUrl :: !(Maybe Text) -- ^ "html_url"+  , commitParents :: !(Maybe [CommitMeta]) -- ^ "parents"+  , commitSha :: !(Maybe Text) -- ^ "sha"+  , commitStats :: !(Maybe CommitStats) -- ^ "stats"+  , commitUrl :: !(Maybe Text) -- ^ "url"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON Commit+instance A.FromJSON Commit where+  parseJSON = A.withObject "Commit" $ \o ->+    Commit+      <$> (o .:? "author")+      <*> (o .:? "commit")+      <*> (o .:? "committer")+      <*> (o .:? "created")+      <*> (o .:? "files")+      <*> (o .:? "html_url")+      <*> (o .:? "parents")+      <*> (o .:? "sha")+      <*> (o .:? "stats")+      <*> (o .:? "url")++-- | ToJSON Commit+instance A.ToJSON Commit where+  toJSON Commit {..} =+   _omitNulls+      [ "author" .= commitAuthor+      , "commit" .= commitCommit+      , "committer" .= commitCommitter+      , "created" .= commitCreated+      , "files" .= commitFiles+      , "html_url" .= commitHtmlUrl+      , "parents" .= commitParents+      , "sha" .= commitSha+      , "stats" .= commitStats+      , "url" .= commitUrl+      ]+++-- | Construct a value of type 'Commit' (by applying it's required fields, if any)+mkCommit+  :: Commit+mkCommit =+  Commit+  { commitAuthor = Nothing+  , commitCommit = Nothing+  , commitCommitter = Nothing+  , commitCreated = Nothing+  , commitFiles = Nothing+  , commitHtmlUrl = Nothing+  , commitParents = Nothing+  , commitSha = Nothing+  , commitStats = Nothing+  , commitUrl = Nothing+  }++-- ** CommitAffectedFiles+-- | CommitAffectedFiles+-- CommitAffectedFiles store information about files affected by the commit+data CommitAffectedFiles = CommitAffectedFiles+  { commitAffectedFilesFilename :: !(Maybe Text) -- ^ "filename"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON CommitAffectedFiles+instance A.FromJSON CommitAffectedFiles where+  parseJSON = A.withObject "CommitAffectedFiles" $ \o ->+    CommitAffectedFiles+      <$> (o .:? "filename")++-- | ToJSON CommitAffectedFiles+instance A.ToJSON CommitAffectedFiles where+  toJSON CommitAffectedFiles {..} =+   _omitNulls+      [ "filename" .= commitAffectedFilesFilename+      ]+++-- | Construct a value of type 'CommitAffectedFiles' (by applying it's required fields, if any)+mkCommitAffectedFiles+  :: CommitAffectedFiles+mkCommitAffectedFiles =+  CommitAffectedFiles+  { commitAffectedFilesFilename = Nothing+  }++-- ** CommitDateOptions+-- | CommitDateOptions+-- CommitDateOptions store dates for GIT_AUTHOR_DATE and GIT_COMMITTER_DATE+data CommitDateOptions = CommitDateOptions+  { commitDateOptionsAuthor :: !(Maybe DateTime) -- ^ "author"+  , commitDateOptionsCommitter :: !(Maybe DateTime) -- ^ "committer"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON CommitDateOptions+instance A.FromJSON CommitDateOptions where+  parseJSON = A.withObject "CommitDateOptions" $ \o ->+    CommitDateOptions+      <$> (o .:? "author")+      <*> (o .:? "committer")++-- | ToJSON CommitDateOptions+instance A.ToJSON CommitDateOptions where+  toJSON CommitDateOptions {..} =+   _omitNulls+      [ "author" .= commitDateOptionsAuthor+      , "committer" .= commitDateOptionsCommitter+      ]+++-- | Construct a value of type 'CommitDateOptions' (by applying it's required fields, if any)+mkCommitDateOptions+  :: CommitDateOptions+mkCommitDateOptions =+  CommitDateOptions+  { commitDateOptionsAuthor = Nothing+  , commitDateOptionsCommitter = Nothing+  }++-- ** CommitMeta+-- | CommitMeta+-- CommitMeta contains meta information of a commit in terms of API.+-- +data CommitMeta = CommitMeta+  { commitMetaCreated :: !(Maybe DateTime) -- ^ "created"+  , commitMetaSha :: !(Maybe Text) -- ^ "sha"+  , commitMetaUrl :: !(Maybe Text) -- ^ "url"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON CommitMeta+instance A.FromJSON CommitMeta where+  parseJSON = A.withObject "CommitMeta" $ \o ->+    CommitMeta+      <$> (o .:? "created")+      <*> (o .:? "sha")+      <*> (o .:? "url")++-- | ToJSON CommitMeta+instance A.ToJSON CommitMeta where+  toJSON CommitMeta {..} =+   _omitNulls+      [ "created" .= commitMetaCreated+      , "sha" .= commitMetaSha+      , "url" .= commitMetaUrl+      ]+++-- | Construct a value of type 'CommitMeta' (by applying it's required fields, if any)+mkCommitMeta+  :: CommitMeta+mkCommitMeta =+  CommitMeta+  { commitMetaCreated = Nothing+  , commitMetaSha = Nothing+  , commitMetaUrl = Nothing+  }++-- ** CommitStats+-- | CommitStats+-- CommitStats is statistics for a RepoCommit+data CommitStats = CommitStats+  { commitStatsAdditions :: !(Maybe Integer) -- ^ "additions"+  , commitStatsDeletions :: !(Maybe Integer) -- ^ "deletions"+  , commitStatsTotal :: !(Maybe Integer) -- ^ "total"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON CommitStats+instance A.FromJSON CommitStats where+  parseJSON = A.withObject "CommitStats" $ \o ->+    CommitStats+      <$> (o .:? "additions")+      <*> (o .:? "deletions")+      <*> (o .:? "total")++-- | ToJSON CommitStats+instance A.ToJSON CommitStats where+  toJSON CommitStats {..} =+   _omitNulls+      [ "additions" .= commitStatsAdditions+      , "deletions" .= commitStatsDeletions+      , "total" .= commitStatsTotal+      ]+++-- | Construct a value of type 'CommitStats' (by applying it's required fields, if any)+mkCommitStats+  :: CommitStats+mkCommitStats =+  CommitStats+  { commitStatsAdditions = Nothing+  , commitStatsDeletions = Nothing+  , commitStatsTotal = Nothing+  }++-- ** CommitStatus+-- | CommitStatus+-- CommitStatus holds a single status of a single Commit+data CommitStatus = CommitStatus+  { commitStatusContext :: !(Maybe Text) -- ^ "context"+  , commitStatusCreatedAt :: !(Maybe DateTime) -- ^ "created_at"+  , commitStatusCreator :: !(Maybe User) -- ^ "creator"+  , commitStatusDescription :: !(Maybe Text) -- ^ "description"+  , commitStatusId :: !(Maybe Integer) -- ^ "id"+  , commitStatusStatus :: !(Maybe Text) -- ^ "status" - CommitStatusState holds the state of a CommitStatus It can be \&quot;pending\&quot;, \&quot;success\&quot;, \&quot;error\&quot;, \&quot;failure\&quot;, and \&quot;warning\&quot;+  , commitStatusTargetUrl :: !(Maybe Text) -- ^ "target_url"+  , commitStatusUpdatedAt :: !(Maybe DateTime) -- ^ "updated_at"+  , commitStatusUrl :: !(Maybe Text) -- ^ "url"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON CommitStatus+instance A.FromJSON CommitStatus where+  parseJSON = A.withObject "CommitStatus" $ \o ->+    CommitStatus+      <$> (o .:? "context")+      <*> (o .:? "created_at")+      <*> (o .:? "creator")+      <*> (o .:? "description")+      <*> (o .:? "id")+      <*> (o .:? "status")+      <*> (o .:? "target_url")+      <*> (o .:? "updated_at")+      <*> (o .:? "url")++-- | ToJSON CommitStatus+instance A.ToJSON CommitStatus where+  toJSON CommitStatus {..} =+   _omitNulls+      [ "context" .= commitStatusContext+      , "created_at" .= commitStatusCreatedAt+      , "creator" .= commitStatusCreator+      , "description" .= commitStatusDescription+      , "id" .= commitStatusId+      , "status" .= commitStatusStatus+      , "target_url" .= commitStatusTargetUrl+      , "updated_at" .= commitStatusUpdatedAt+      , "url" .= commitStatusUrl+      ]+++-- | Construct a value of type 'CommitStatus' (by applying it's required fields, if any)+mkCommitStatus+  :: CommitStatus+mkCommitStatus =+  CommitStatus+  { commitStatusContext = Nothing+  , commitStatusCreatedAt = Nothing+  , commitStatusCreator = Nothing+  , commitStatusDescription = Nothing+  , commitStatusId = Nothing+  , commitStatusStatus = Nothing+  , commitStatusTargetUrl = Nothing+  , commitStatusUpdatedAt = Nothing+  , commitStatusUrl = Nothing+  }++-- ** CommitUser+-- | CommitUser+-- CommitUser contains information of a user in the context of a commit.+-- +data CommitUser = CommitUser+  { commitUserDate :: !(Maybe Text) -- ^ "date"+  , commitUserEmail :: !(Maybe Text) -- ^ "email"+  , commitUserName :: !(Maybe Text) -- ^ "name"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON CommitUser+instance A.FromJSON CommitUser where+  parseJSON = A.withObject "CommitUser" $ \o ->+    CommitUser+      <$> (o .:? "date")+      <*> (o .:? "email")+      <*> (o .:? "name")++-- | ToJSON CommitUser+instance A.ToJSON CommitUser where+  toJSON CommitUser {..} =+   _omitNulls+      [ "date" .= commitUserDate+      , "email" .= commitUserEmail+      , "name" .= commitUserName+      ]+++-- | Construct a value of type 'CommitUser' (by applying it's required fields, if any)+mkCommitUser+  :: CommitUser+mkCommitUser =+  CommitUser+  { commitUserDate = Nothing+  , commitUserEmail = Nothing+  , commitUserName = Nothing+  }++-- ** ContentsResponse+-- | ContentsResponse+-- ContentsResponse contains information about a repo's entry's (dir, file, symlink, submodule) metadata and content+data ContentsResponse = ContentsResponse+  { contentsResponseLinks :: !(Maybe FileLinksResponse) -- ^ "_links"+  , contentsResponseContent :: !(Maybe Text) -- ^ "content" - &#x60;content&#x60; is populated when &#x60;type&#x60; is &#x60;file&#x60;, otherwise null+  , contentsResponseDownloadUrl :: !(Maybe Text) -- ^ "download_url"+  , contentsResponseEncoding :: !(Maybe Text) -- ^ "encoding" - &#x60;encoding&#x60; is populated when &#x60;type&#x60; is &#x60;file&#x60;, otherwise null+  , contentsResponseGitUrl :: !(Maybe Text) -- ^ "git_url"+  , contentsResponseHtmlUrl :: !(Maybe Text) -- ^ "html_url"+  , contentsResponseLastCommitSha :: !(Maybe Text) -- ^ "last_commit_sha"+  , contentsResponseName :: !(Maybe Text) -- ^ "name"+  , contentsResponsePath :: !(Maybe Text) -- ^ "path"+  , contentsResponseSha :: !(Maybe Text) -- ^ "sha"+  , contentsResponseSize :: !(Maybe Integer) -- ^ "size"+  , contentsResponseSubmoduleGitUrl :: !(Maybe Text) -- ^ "submodule_git_url" - &#x60;submodule_git_url&#x60; is populated when &#x60;type&#x60; is &#x60;submodule&#x60;, otherwise null+  , contentsResponseTarget :: !(Maybe Text) -- ^ "target" - &#x60;target&#x60; is populated when &#x60;type&#x60; is &#x60;symlink&#x60;, otherwise null+  , contentsResponseType :: !(Maybe Text) -- ^ "type" - &#x60;type&#x60; will be &#x60;file&#x60;, &#x60;dir&#x60;, &#x60;symlink&#x60;, or &#x60;submodule&#x60;+  , contentsResponseUrl :: !(Maybe Text) -- ^ "url"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON ContentsResponse+instance A.FromJSON ContentsResponse where+  parseJSON = A.withObject "ContentsResponse" $ \o ->+    ContentsResponse+      <$> (o .:? "_links")+      <*> (o .:? "content")+      <*> (o .:? "download_url")+      <*> (o .:? "encoding")+      <*> (o .:? "git_url")+      <*> (o .:? "html_url")+      <*> (o .:? "last_commit_sha")+      <*> (o .:? "name")+      <*> (o .:? "path")+      <*> (o .:? "sha")+      <*> (o .:? "size")+      <*> (o .:? "submodule_git_url")+      <*> (o .:? "target")+      <*> (o .:? "type")+      <*> (o .:? "url")++-- | ToJSON ContentsResponse+instance A.ToJSON ContentsResponse where+  toJSON ContentsResponse {..} =+   _omitNulls+      [ "_links" .= contentsResponseLinks+      , "content" .= contentsResponseContent+      , "download_url" .= contentsResponseDownloadUrl+      , "encoding" .= contentsResponseEncoding+      , "git_url" .= contentsResponseGitUrl+      , "html_url" .= contentsResponseHtmlUrl+      , "last_commit_sha" .= contentsResponseLastCommitSha+      , "name" .= contentsResponseName+      , "path" .= contentsResponsePath+      , "sha" .= contentsResponseSha+      , "size" .= contentsResponseSize+      , "submodule_git_url" .= contentsResponseSubmoduleGitUrl+      , "target" .= contentsResponseTarget+      , "type" .= contentsResponseType+      , "url" .= contentsResponseUrl+      ]+++-- | Construct a value of type 'ContentsResponse' (by applying it's required fields, if any)+mkContentsResponse+  :: ContentsResponse+mkContentsResponse =+  ContentsResponse+  { contentsResponseLinks = Nothing+  , contentsResponseContent = Nothing+  , contentsResponseDownloadUrl = Nothing+  , contentsResponseEncoding = Nothing+  , contentsResponseGitUrl = Nothing+  , contentsResponseHtmlUrl = Nothing+  , contentsResponseLastCommitSha = Nothing+  , contentsResponseName = Nothing+  , contentsResponsePath = Nothing+  , contentsResponseSha = Nothing+  , contentsResponseSize = Nothing+  , contentsResponseSubmoduleGitUrl = Nothing+  , contentsResponseTarget = Nothing+  , contentsResponseType = Nothing+  , contentsResponseUrl = Nothing+  }++-- ** CreateAccessTokenOption+-- | CreateAccessTokenOption+-- CreateAccessTokenOption options when create access token+data CreateAccessTokenOption = CreateAccessTokenOption+  { createAccessTokenOptionName :: !(Text) -- ^ /Required/ "name"+  , createAccessTokenOptionScopes :: !(Maybe [Text]) -- ^ "scopes"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON CreateAccessTokenOption+instance A.FromJSON CreateAccessTokenOption where+  parseJSON = A.withObject "CreateAccessTokenOption" $ \o ->+    CreateAccessTokenOption+      <$> (o .:  "name")+      <*> (o .:? "scopes")++-- | ToJSON CreateAccessTokenOption+instance A.ToJSON CreateAccessTokenOption where+  toJSON CreateAccessTokenOption {..} =+   _omitNulls+      [ "name" .= createAccessTokenOptionName+      , "scopes" .= createAccessTokenOptionScopes+      ]+++-- | Construct a value of type 'CreateAccessTokenOption' (by applying it's required fields, if any)+mkCreateAccessTokenOption+  :: Text -- ^ 'createAccessTokenOptionName' +  -> CreateAccessTokenOption+mkCreateAccessTokenOption createAccessTokenOptionName =+  CreateAccessTokenOption+  { createAccessTokenOptionName+  , createAccessTokenOptionScopes = Nothing+  }++-- ** CreateBranchProtectionOption+-- | CreateBranchProtectionOption+-- CreateBranchProtectionOption options for creating a branch protection+data CreateBranchProtectionOption = CreateBranchProtectionOption+  { createBranchProtectionOptionApprovalsWhitelistTeams :: !(Maybe [Text]) -- ^ "approvals_whitelist_teams"+  , createBranchProtectionOptionApprovalsWhitelistUsername :: !(Maybe [Text]) -- ^ "approvals_whitelist_username"+  , createBranchProtectionOptionBlockOnOfficialReviewRequests :: !(Maybe Bool) -- ^ "block_on_official_review_requests"+  , createBranchProtectionOptionBlockOnOutdatedBranch :: !(Maybe Bool) -- ^ "block_on_outdated_branch"+  , createBranchProtectionOptionBlockOnRejectedReviews :: !(Maybe Bool) -- ^ "block_on_rejected_reviews"+  , createBranchProtectionOptionBranchName :: !(Maybe Text) -- ^ "branch_name" - Deprecated: true+  , createBranchProtectionOptionDismissStaleApprovals :: !(Maybe Bool) -- ^ "dismiss_stale_approvals"+  , createBranchProtectionOptionEnableApprovalsWhitelist :: !(Maybe Bool) -- ^ "enable_approvals_whitelist"+  , createBranchProtectionOptionEnableMergeWhitelist :: !(Maybe Bool) -- ^ "enable_merge_whitelist"+  , createBranchProtectionOptionEnablePush :: !(Maybe Bool) -- ^ "enable_push"+  , createBranchProtectionOptionEnablePushWhitelist :: !(Maybe Bool) -- ^ "enable_push_whitelist"+  , createBranchProtectionOptionEnableStatusCheck :: !(Maybe Bool) -- ^ "enable_status_check"+  , createBranchProtectionOptionMergeWhitelistTeams :: !(Maybe [Text]) -- ^ "merge_whitelist_teams"+  , createBranchProtectionOptionMergeWhitelistUsernames :: !(Maybe [Text]) -- ^ "merge_whitelist_usernames"+  , createBranchProtectionOptionProtectedFilePatterns :: !(Maybe Text) -- ^ "protected_file_patterns"+  , createBranchProtectionOptionPushWhitelistDeployKeys :: !(Maybe Bool) -- ^ "push_whitelist_deploy_keys"+  , createBranchProtectionOptionPushWhitelistTeams :: !(Maybe [Text]) -- ^ "push_whitelist_teams"+  , createBranchProtectionOptionPushWhitelistUsernames :: !(Maybe [Text]) -- ^ "push_whitelist_usernames"+  , createBranchProtectionOptionRequireSignedCommits :: !(Maybe Bool) -- ^ "require_signed_commits"+  , createBranchProtectionOptionRequiredApprovals :: !(Maybe Integer) -- ^ "required_approvals"+  , createBranchProtectionOptionRuleName :: !(Maybe Text) -- ^ "rule_name"+  , createBranchProtectionOptionStatusCheckContexts :: !(Maybe [Text]) -- ^ "status_check_contexts"+  , createBranchProtectionOptionUnprotectedFilePatterns :: !(Maybe Text) -- ^ "unprotected_file_patterns"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON CreateBranchProtectionOption+instance A.FromJSON CreateBranchProtectionOption where+  parseJSON = A.withObject "CreateBranchProtectionOption" $ \o ->+    CreateBranchProtectionOption+      <$> (o .:? "approvals_whitelist_teams")+      <*> (o .:? "approvals_whitelist_username")+      <*> (o .:? "block_on_official_review_requests")+      <*> (o .:? "block_on_outdated_branch")+      <*> (o .:? "block_on_rejected_reviews")+      <*> (o .:? "branch_name")+      <*> (o .:? "dismiss_stale_approvals")+      <*> (o .:? "enable_approvals_whitelist")+      <*> (o .:? "enable_merge_whitelist")+      <*> (o .:? "enable_push")+      <*> (o .:? "enable_push_whitelist")+      <*> (o .:? "enable_status_check")+      <*> (o .:? "merge_whitelist_teams")+      <*> (o .:? "merge_whitelist_usernames")+      <*> (o .:? "protected_file_patterns")+      <*> (o .:? "push_whitelist_deploy_keys")+      <*> (o .:? "push_whitelist_teams")+      <*> (o .:? "push_whitelist_usernames")+      <*> (o .:? "require_signed_commits")+      <*> (o .:? "required_approvals")+      <*> (o .:? "rule_name")+      <*> (o .:? "status_check_contexts")+      <*> (o .:? "unprotected_file_patterns")++-- | ToJSON CreateBranchProtectionOption+instance A.ToJSON CreateBranchProtectionOption where+  toJSON CreateBranchProtectionOption {..} =+   _omitNulls+      [ "approvals_whitelist_teams" .= createBranchProtectionOptionApprovalsWhitelistTeams+      , "approvals_whitelist_username" .= createBranchProtectionOptionApprovalsWhitelistUsername+      , "block_on_official_review_requests" .= createBranchProtectionOptionBlockOnOfficialReviewRequests+      , "block_on_outdated_branch" .= createBranchProtectionOptionBlockOnOutdatedBranch+      , "block_on_rejected_reviews" .= createBranchProtectionOptionBlockOnRejectedReviews+      , "branch_name" .= createBranchProtectionOptionBranchName+      , "dismiss_stale_approvals" .= createBranchProtectionOptionDismissStaleApprovals+      , "enable_approvals_whitelist" .= createBranchProtectionOptionEnableApprovalsWhitelist+      , "enable_merge_whitelist" .= createBranchProtectionOptionEnableMergeWhitelist+      , "enable_push" .= createBranchProtectionOptionEnablePush+      , "enable_push_whitelist" .= createBranchProtectionOptionEnablePushWhitelist+      , "enable_status_check" .= createBranchProtectionOptionEnableStatusCheck+      , "merge_whitelist_teams" .= createBranchProtectionOptionMergeWhitelistTeams+      , "merge_whitelist_usernames" .= createBranchProtectionOptionMergeWhitelistUsernames+      , "protected_file_patterns" .= createBranchProtectionOptionProtectedFilePatterns+      , "push_whitelist_deploy_keys" .= createBranchProtectionOptionPushWhitelistDeployKeys+      , "push_whitelist_teams" .= createBranchProtectionOptionPushWhitelistTeams+      , "push_whitelist_usernames" .= createBranchProtectionOptionPushWhitelistUsernames+      , "require_signed_commits" .= createBranchProtectionOptionRequireSignedCommits+      , "required_approvals" .= createBranchProtectionOptionRequiredApprovals+      , "rule_name" .= createBranchProtectionOptionRuleName+      , "status_check_contexts" .= createBranchProtectionOptionStatusCheckContexts+      , "unprotected_file_patterns" .= createBranchProtectionOptionUnprotectedFilePatterns+      ]+++-- | Construct a value of type 'CreateBranchProtectionOption' (by applying it's required fields, if any)+mkCreateBranchProtectionOption+  :: CreateBranchProtectionOption+mkCreateBranchProtectionOption =+  CreateBranchProtectionOption+  { createBranchProtectionOptionApprovalsWhitelistTeams = Nothing+  , createBranchProtectionOptionApprovalsWhitelistUsername = Nothing+  , createBranchProtectionOptionBlockOnOfficialReviewRequests = Nothing+  , createBranchProtectionOptionBlockOnOutdatedBranch = Nothing+  , createBranchProtectionOptionBlockOnRejectedReviews = Nothing+  , createBranchProtectionOptionBranchName = Nothing+  , createBranchProtectionOptionDismissStaleApprovals = Nothing+  , createBranchProtectionOptionEnableApprovalsWhitelist = Nothing+  , createBranchProtectionOptionEnableMergeWhitelist = Nothing+  , createBranchProtectionOptionEnablePush = Nothing+  , createBranchProtectionOptionEnablePushWhitelist = Nothing+  , createBranchProtectionOptionEnableStatusCheck = Nothing+  , createBranchProtectionOptionMergeWhitelistTeams = Nothing+  , createBranchProtectionOptionMergeWhitelistUsernames = Nothing+  , createBranchProtectionOptionProtectedFilePatterns = Nothing+  , createBranchProtectionOptionPushWhitelistDeployKeys = Nothing+  , createBranchProtectionOptionPushWhitelistTeams = Nothing+  , createBranchProtectionOptionPushWhitelistUsernames = Nothing+  , createBranchProtectionOptionRequireSignedCommits = Nothing+  , createBranchProtectionOptionRequiredApprovals = Nothing+  , createBranchProtectionOptionRuleName = Nothing+  , createBranchProtectionOptionStatusCheckContexts = Nothing+  , createBranchProtectionOptionUnprotectedFilePatterns = Nothing+  }++-- ** CreateBranchRepoOption+-- | CreateBranchRepoOption+-- CreateBranchRepoOption options when creating a branch in a repository+data CreateBranchRepoOption = CreateBranchRepoOption+  { createBranchRepoOptionNewBranchName :: !(Text) -- ^ /Required/ "new_branch_name" - Name of the branch to create+  , createBranchRepoOptionOldBranchName :: !(Maybe Text) -- ^ "old_branch_name" - Name of the old branch to create from+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON CreateBranchRepoOption+instance A.FromJSON CreateBranchRepoOption where+  parseJSON = A.withObject "CreateBranchRepoOption" $ \o ->+    CreateBranchRepoOption+      <$> (o .:  "new_branch_name")+      <*> (o .:? "old_branch_name")++-- | ToJSON CreateBranchRepoOption+instance A.ToJSON CreateBranchRepoOption where+  toJSON CreateBranchRepoOption {..} =+   _omitNulls+      [ "new_branch_name" .= createBranchRepoOptionNewBranchName+      , "old_branch_name" .= createBranchRepoOptionOldBranchName+      ]+++-- | Construct a value of type 'CreateBranchRepoOption' (by applying it's required fields, if any)+mkCreateBranchRepoOption+  :: Text -- ^ 'createBranchRepoOptionNewBranchName': Name of the branch to create+  -> CreateBranchRepoOption+mkCreateBranchRepoOption createBranchRepoOptionNewBranchName =+  CreateBranchRepoOption+  { createBranchRepoOptionNewBranchName+  , createBranchRepoOptionOldBranchName = Nothing+  }++-- ** CreateEmailOption+-- | CreateEmailOption+-- CreateEmailOption options when creating email addresses+data CreateEmailOption = CreateEmailOption+  { createEmailOptionEmails :: !(Maybe [Text]) -- ^ "emails" - email addresses to add+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON CreateEmailOption+instance A.FromJSON CreateEmailOption where+  parseJSON = A.withObject "CreateEmailOption" $ \o ->+    CreateEmailOption+      <$> (o .:? "emails")++-- | ToJSON CreateEmailOption+instance A.ToJSON CreateEmailOption where+  toJSON CreateEmailOption {..} =+   _omitNulls+      [ "emails" .= createEmailOptionEmails+      ]+++-- | Construct a value of type 'CreateEmailOption' (by applying it's required fields, if any)+mkCreateEmailOption+  :: CreateEmailOption+mkCreateEmailOption =+  CreateEmailOption+  { createEmailOptionEmails = Nothing+  }++-- ** CreateFileOptions+-- | CreateFileOptions+-- CreateFileOptions options for creating files Note: `author` and `committer` are optional (if only one is given, it will be used for the other, otherwise the authenticated user will be used)+data CreateFileOptions = CreateFileOptions+  { createFileOptionsAuthor :: !(Maybe Identity) -- ^ "author"+  , createFileOptionsBranch :: !(Maybe Text) -- ^ "branch" - branch (optional) to base this file from. if not given, the default branch is used+  , createFileOptionsCommitter :: !(Maybe Identity) -- ^ "committer"+  , createFileOptionsContent :: !(Text) -- ^ /Required/ "content" - content must be base64 encoded+  , createFileOptionsDates :: !(Maybe CommitDateOptions) -- ^ "dates"+  , createFileOptionsMessage :: !(Maybe Text) -- ^ "message" - message (optional) for the commit of this file. if not supplied, a default message will be used+  , createFileOptionsNewBranch :: !(Maybe Text) -- ^ "new_branch" - new_branch (optional) will make a new branch from &#x60;branch&#x60; before creating the file+  , createFileOptionsSignoff :: !(Maybe Bool) -- ^ "signoff" - Add a Signed-off-by trailer by the committer at the end of the commit log message.+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON CreateFileOptions+instance A.FromJSON CreateFileOptions where+  parseJSON = A.withObject "CreateFileOptions" $ \o ->+    CreateFileOptions+      <$> (o .:? "author")+      <*> (o .:? "branch")+      <*> (o .:? "committer")+      <*> (o .:  "content")+      <*> (o .:? "dates")+      <*> (o .:? "message")+      <*> (o .:? "new_branch")+      <*> (o .:? "signoff")++-- | ToJSON CreateFileOptions+instance A.ToJSON CreateFileOptions where+  toJSON CreateFileOptions {..} =+   _omitNulls+      [ "author" .= createFileOptionsAuthor+      , "branch" .= createFileOptionsBranch+      , "committer" .= createFileOptionsCommitter+      , "content" .= createFileOptionsContent+      , "dates" .= createFileOptionsDates+      , "message" .= createFileOptionsMessage+      , "new_branch" .= createFileOptionsNewBranch+      , "signoff" .= createFileOptionsSignoff+      ]+++-- | Construct a value of type 'CreateFileOptions' (by applying it's required fields, if any)+mkCreateFileOptions+  :: Text -- ^ 'createFileOptionsContent': content must be base64 encoded+  -> CreateFileOptions+mkCreateFileOptions createFileOptionsContent =+  CreateFileOptions+  { createFileOptionsAuthor = Nothing+  , createFileOptionsBranch = Nothing+  , createFileOptionsCommitter = Nothing+  , createFileOptionsContent+  , createFileOptionsDates = Nothing+  , createFileOptionsMessage = Nothing+  , createFileOptionsNewBranch = Nothing+  , createFileOptionsSignoff = Nothing+  }++-- ** CreateForkOption+-- | CreateForkOption+-- CreateForkOption options for creating a fork+data CreateForkOption = CreateForkOption+  { createForkOptionName :: !(Maybe Text) -- ^ "name" - name of the forked repository+  , createForkOptionOrganization :: !(Maybe Text) -- ^ "organization" - organization name, if forking into an organization+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON CreateForkOption+instance A.FromJSON CreateForkOption where+  parseJSON = A.withObject "CreateForkOption" $ \o ->+    CreateForkOption+      <$> (o .:? "name")+      <*> (o .:? "organization")++-- | ToJSON CreateForkOption+instance A.ToJSON CreateForkOption where+  toJSON CreateForkOption {..} =+   _omitNulls+      [ "name" .= createForkOptionName+      , "organization" .= createForkOptionOrganization+      ]+++-- | Construct a value of type 'CreateForkOption' (by applying it's required fields, if any)+mkCreateForkOption+  :: CreateForkOption+mkCreateForkOption =+  CreateForkOption+  { createForkOptionName = Nothing+  , createForkOptionOrganization = Nothing+  }++-- ** CreateGPGKeyOption+-- | CreateGPGKeyOption+-- CreateGPGKeyOption options create user GPG key+data CreateGPGKeyOption = CreateGPGKeyOption+  { createGPGKeyOptionArmoredPublicKey :: !(Text) -- ^ /Required/ "armored_public_key" - An armored GPG key to add+  , createGPGKeyOptionArmoredSignature :: !(Maybe Text) -- ^ "armored_signature"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON CreateGPGKeyOption+instance A.FromJSON CreateGPGKeyOption where+  parseJSON = A.withObject "CreateGPGKeyOption" $ \o ->+    CreateGPGKeyOption+      <$> (o .:  "armored_public_key")+      <*> (o .:? "armored_signature")++-- | ToJSON CreateGPGKeyOption+instance A.ToJSON CreateGPGKeyOption where+  toJSON CreateGPGKeyOption {..} =+   _omitNulls+      [ "armored_public_key" .= createGPGKeyOptionArmoredPublicKey+      , "armored_signature" .= createGPGKeyOptionArmoredSignature+      ]+++-- | Construct a value of type 'CreateGPGKeyOption' (by applying it's required fields, if any)+mkCreateGPGKeyOption+  :: Text -- ^ 'createGPGKeyOptionArmoredPublicKey': An armored GPG key to add+  -> CreateGPGKeyOption+mkCreateGPGKeyOption createGPGKeyOptionArmoredPublicKey =+  CreateGPGKeyOption+  { createGPGKeyOptionArmoredPublicKey+  , createGPGKeyOptionArmoredSignature = Nothing+  }++-- ** CreateHookOption+-- | CreateHookOption+-- CreateHookOption options when create a hook+data CreateHookOption = CreateHookOption+  { createHookOptionActive :: !(Maybe Bool) -- ^ "active"+  , createHookOptionAuthorizationHeader :: !(Maybe Text) -- ^ "authorization_header"+  , createHookOptionBranchFilter :: !(Maybe Text) -- ^ "branch_filter"+  , createHookOptionConfig :: !((Map.Map String Text)) -- ^ /Required/ "config" - CreateHookOptionConfig has all config options in it required are \&quot;content_type\&quot; and \&quot;url\&quot; Required+  , createHookOptionEvents :: !(Maybe [Text]) -- ^ "events"+  , createHookOptionType :: !(E'Type) -- ^ /Required/ "type"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON CreateHookOption+instance A.FromJSON CreateHookOption where+  parseJSON = A.withObject "CreateHookOption" $ \o ->+    CreateHookOption+      <$> (o .:? "active")+      <*> (o .:? "authorization_header")+      <*> (o .:? "branch_filter")+      <*> (o .:  "config")+      <*> (o .:? "events")+      <*> (o .:  "type")++-- | ToJSON CreateHookOption+instance A.ToJSON CreateHookOption where+  toJSON CreateHookOption {..} =+   _omitNulls+      [ "active" .= createHookOptionActive+      , "authorization_header" .= createHookOptionAuthorizationHeader+      , "branch_filter" .= createHookOptionBranchFilter+      , "config" .= createHookOptionConfig+      , "events" .= createHookOptionEvents+      , "type" .= createHookOptionType+      ]+++-- | Construct a value of type 'CreateHookOption' (by applying it's required fields, if any)+mkCreateHookOption+  :: (Map.Map String Text) -- ^ 'createHookOptionConfig': CreateHookOptionConfig has all config options in it required are \"content_type\" and \"url\" Required+  -> E'Type -- ^ 'createHookOptionType' +  -> CreateHookOption+mkCreateHookOption createHookOptionConfig createHookOptionType =+  CreateHookOption+  { createHookOptionActive = Nothing+  , createHookOptionAuthorizationHeader = Nothing+  , createHookOptionBranchFilter = Nothing+  , createHookOptionConfig+  , createHookOptionEvents = Nothing+  , createHookOptionType+  }++-- ** CreateIssueCommentOption+-- | CreateIssueCommentOption+-- CreateIssueCommentOption options for creating a comment on an issue+data CreateIssueCommentOption = CreateIssueCommentOption+  { createIssueCommentOptionBody :: !(Text) -- ^ /Required/ "body"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON CreateIssueCommentOption+instance A.FromJSON CreateIssueCommentOption where+  parseJSON = A.withObject "CreateIssueCommentOption" $ \o ->+    CreateIssueCommentOption+      <$> (o .:  "body")++-- | ToJSON CreateIssueCommentOption+instance A.ToJSON CreateIssueCommentOption where+  toJSON CreateIssueCommentOption {..} =+   _omitNulls+      [ "body" .= createIssueCommentOptionBody+      ]+++-- | Construct a value of type 'CreateIssueCommentOption' (by applying it's required fields, if any)+mkCreateIssueCommentOption+  :: Text -- ^ 'createIssueCommentOptionBody' +  -> CreateIssueCommentOption+mkCreateIssueCommentOption createIssueCommentOptionBody =+  CreateIssueCommentOption+  { createIssueCommentOptionBody+  }++-- ** CreateIssueOption+-- | CreateIssueOption+-- CreateIssueOption options to create one issue+data CreateIssueOption = CreateIssueOption+  { createIssueOptionAssignee :: !(Maybe Text) -- ^ "assignee" - deprecated+  , createIssueOptionAssignees :: !(Maybe [Text]) -- ^ "assignees"+  , createIssueOptionBody :: !(Maybe Text) -- ^ "body"+  , createIssueOptionClosed :: !(Maybe Bool) -- ^ "closed"+  , createIssueOptionDueDate :: !(Maybe DateTime) -- ^ "due_date"+  , createIssueOptionLabels :: !(Maybe [Integer]) -- ^ "labels" - list of label ids+  , createIssueOptionMilestone :: !(Maybe Integer) -- ^ "milestone" - milestone id+  , createIssueOptionRef :: !(Maybe Text) -- ^ "ref"+  , createIssueOptionTitle :: !(Text) -- ^ /Required/ "title"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON CreateIssueOption+instance A.FromJSON CreateIssueOption where+  parseJSON = A.withObject "CreateIssueOption" $ \o ->+    CreateIssueOption+      <$> (o .:? "assignee")+      <*> (o .:? "assignees")+      <*> (o .:? "body")+      <*> (o .:? "closed")+      <*> (o .:? "due_date")+      <*> (o .:? "labels")+      <*> (o .:? "milestone")+      <*> (o .:? "ref")+      <*> (o .:  "title")++-- | ToJSON CreateIssueOption+instance A.ToJSON CreateIssueOption where+  toJSON CreateIssueOption {..} =+   _omitNulls+      [ "assignee" .= createIssueOptionAssignee+      , "assignees" .= createIssueOptionAssignees+      , "body" .= createIssueOptionBody+      , "closed" .= createIssueOptionClosed+      , "due_date" .= createIssueOptionDueDate+      , "labels" .= createIssueOptionLabels+      , "milestone" .= createIssueOptionMilestone+      , "ref" .= createIssueOptionRef+      , "title" .= createIssueOptionTitle+      ]+++-- | Construct a value of type 'CreateIssueOption' (by applying it's required fields, if any)+mkCreateIssueOption+  :: Text -- ^ 'createIssueOptionTitle' +  -> CreateIssueOption+mkCreateIssueOption createIssueOptionTitle =+  CreateIssueOption+  { createIssueOptionAssignee = Nothing+  , createIssueOptionAssignees = Nothing+  , createIssueOptionBody = Nothing+  , createIssueOptionClosed = Nothing+  , createIssueOptionDueDate = Nothing+  , createIssueOptionLabels = Nothing+  , createIssueOptionMilestone = Nothing+  , createIssueOptionRef = Nothing+  , createIssueOptionTitle+  }++-- ** CreateKeyOption+-- | CreateKeyOption+-- CreateKeyOption options when creating a key+data CreateKeyOption = CreateKeyOption+  { createKeyOptionKey :: !(Text) -- ^ /Required/ "key" - An armored SSH key to add+  , createKeyOptionReadOnly :: !(Maybe Bool) -- ^ "read_only" - Describe if the key has only read access or read/write+  , createKeyOptionTitle :: !(Text) -- ^ /Required/ "title" - Title of the key to add+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON CreateKeyOption+instance A.FromJSON CreateKeyOption where+  parseJSON = A.withObject "CreateKeyOption" $ \o ->+    CreateKeyOption+      <$> (o .:  "key")+      <*> (o .:? "read_only")+      <*> (o .:  "title")++-- | ToJSON CreateKeyOption+instance A.ToJSON CreateKeyOption where+  toJSON CreateKeyOption {..} =+   _omitNulls+      [ "key" .= createKeyOptionKey+      , "read_only" .= createKeyOptionReadOnly+      , "title" .= createKeyOptionTitle+      ]+++-- | Construct a value of type 'CreateKeyOption' (by applying it's required fields, if any)+mkCreateKeyOption+  :: Text -- ^ 'createKeyOptionKey': An armored SSH key to add+  -> Text -- ^ 'createKeyOptionTitle': Title of the key to add+  -> CreateKeyOption+mkCreateKeyOption createKeyOptionKey createKeyOptionTitle =+  CreateKeyOption+  { createKeyOptionKey+  , createKeyOptionReadOnly = Nothing+  , createKeyOptionTitle+  }++-- ** CreateLabelOption+-- | CreateLabelOption+-- CreateLabelOption options for creating a label+data CreateLabelOption = CreateLabelOption+  { createLabelOptionColor :: !(Text) -- ^ /Required/ "color"+  , createLabelOptionDescription :: !(Maybe Text) -- ^ "description"+  , createLabelOptionExclusive :: !(Maybe Bool) -- ^ "exclusive"+  , createLabelOptionName :: !(Text) -- ^ /Required/ "name"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON CreateLabelOption+instance A.FromJSON CreateLabelOption where+  parseJSON = A.withObject "CreateLabelOption" $ \o ->+    CreateLabelOption+      <$> (o .:  "color")+      <*> (o .:? "description")+      <*> (o .:? "exclusive")+      <*> (o .:  "name")++-- | ToJSON CreateLabelOption+instance A.ToJSON CreateLabelOption where+  toJSON CreateLabelOption {..} =+   _omitNulls+      [ "color" .= createLabelOptionColor+      , "description" .= createLabelOptionDescription+      , "exclusive" .= createLabelOptionExclusive+      , "name" .= createLabelOptionName+      ]+++-- | Construct a value of type 'CreateLabelOption' (by applying it's required fields, if any)+mkCreateLabelOption+  :: Text -- ^ 'createLabelOptionColor' +  -> Text -- ^ 'createLabelOptionName' +  -> CreateLabelOption+mkCreateLabelOption createLabelOptionColor createLabelOptionName =+  CreateLabelOption+  { createLabelOptionColor+  , createLabelOptionDescription = Nothing+  , createLabelOptionExclusive = Nothing+  , createLabelOptionName+  }++-- ** CreateMilestoneOption+-- | CreateMilestoneOption+-- CreateMilestoneOption options for creating a milestone+data CreateMilestoneOption = CreateMilestoneOption+  { createMilestoneOptionDescription :: !(Maybe Text) -- ^ "description"+  , createMilestoneOptionDueOn :: !(Maybe DateTime) -- ^ "due_on"+  , createMilestoneOptionState :: !(Maybe E'State) -- ^ "state"+  , createMilestoneOptionTitle :: !(Maybe Text) -- ^ "title"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON CreateMilestoneOption+instance A.FromJSON CreateMilestoneOption where+  parseJSON = A.withObject "CreateMilestoneOption" $ \o ->+    CreateMilestoneOption+      <$> (o .:? "description")+      <*> (o .:? "due_on")+      <*> (o .:? "state")+      <*> (o .:? "title")++-- | ToJSON CreateMilestoneOption+instance A.ToJSON CreateMilestoneOption where+  toJSON CreateMilestoneOption {..} =+   _omitNulls+      [ "description" .= createMilestoneOptionDescription+      , "due_on" .= createMilestoneOptionDueOn+      , "state" .= createMilestoneOptionState+      , "title" .= createMilestoneOptionTitle+      ]+++-- | Construct a value of type 'CreateMilestoneOption' (by applying it's required fields, if any)+mkCreateMilestoneOption+  :: CreateMilestoneOption+mkCreateMilestoneOption =+  CreateMilestoneOption+  { createMilestoneOptionDescription = Nothing+  , createMilestoneOptionDueOn = Nothing+  , createMilestoneOptionState = Nothing+  , createMilestoneOptionTitle = Nothing+  }++-- ** CreateOAuth2ApplicationOptions+-- | CreateOAuth2ApplicationOptions+-- CreateOAuth2ApplicationOptions holds options to create an oauth2 application+data CreateOAuth2ApplicationOptions = CreateOAuth2ApplicationOptions+  { createOAuth2ApplicationOptionsConfidentialClient :: !(Maybe Bool) -- ^ "confidential_client"+  , createOAuth2ApplicationOptionsName :: !(Maybe Text) -- ^ "name"+  , createOAuth2ApplicationOptionsRedirectUris :: !(Maybe [Text]) -- ^ "redirect_uris"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON CreateOAuth2ApplicationOptions+instance A.FromJSON CreateOAuth2ApplicationOptions where+  parseJSON = A.withObject "CreateOAuth2ApplicationOptions" $ \o ->+    CreateOAuth2ApplicationOptions+      <$> (o .:? "confidential_client")+      <*> (o .:? "name")+      <*> (o .:? "redirect_uris")++-- | ToJSON CreateOAuth2ApplicationOptions+instance A.ToJSON CreateOAuth2ApplicationOptions where+  toJSON CreateOAuth2ApplicationOptions {..} =+   _omitNulls+      [ "confidential_client" .= createOAuth2ApplicationOptionsConfidentialClient+      , "name" .= createOAuth2ApplicationOptionsName+      , "redirect_uris" .= createOAuth2ApplicationOptionsRedirectUris+      ]+++-- | Construct a value of type 'CreateOAuth2ApplicationOptions' (by applying it's required fields, if any)+mkCreateOAuth2ApplicationOptions+  :: CreateOAuth2ApplicationOptions+mkCreateOAuth2ApplicationOptions =+  CreateOAuth2ApplicationOptions+  { createOAuth2ApplicationOptionsConfidentialClient = Nothing+  , createOAuth2ApplicationOptionsName = Nothing+  , createOAuth2ApplicationOptionsRedirectUris = Nothing+  }++-- ** CreateOrgOption+-- | CreateOrgOption+-- CreateOrgOption options for creating an organization+data CreateOrgOption = CreateOrgOption+  { createOrgOptionDescription :: !(Maybe Text) -- ^ "description"+  , createOrgOptionFullName :: !(Maybe Text) -- ^ "full_name"+  , createOrgOptionLocation :: !(Maybe Text) -- ^ "location"+  , createOrgOptionRepoAdminChangeTeamAccess :: !(Maybe Bool) -- ^ "repo_admin_change_team_access"+  , createOrgOptionUsername :: !(Text) -- ^ /Required/ "username"+  , createOrgOptionVisibility :: !(Maybe E'Visibility) -- ^ "visibility" - possible values are &#x60;public&#x60; (default), &#x60;limited&#x60; or &#x60;private&#x60;+  , createOrgOptionWebsite :: !(Maybe Text) -- ^ "website"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON CreateOrgOption+instance A.FromJSON CreateOrgOption where+  parseJSON = A.withObject "CreateOrgOption" $ \o ->+    CreateOrgOption+      <$> (o .:? "description")+      <*> (o .:? "full_name")+      <*> (o .:? "location")+      <*> (o .:? "repo_admin_change_team_access")+      <*> (o .:  "username")+      <*> (o .:? "visibility")+      <*> (o .:? "website")++-- | ToJSON CreateOrgOption+instance A.ToJSON CreateOrgOption where+  toJSON CreateOrgOption {..} =+   _omitNulls+      [ "description" .= createOrgOptionDescription+      , "full_name" .= createOrgOptionFullName+      , "location" .= createOrgOptionLocation+      , "repo_admin_change_team_access" .= createOrgOptionRepoAdminChangeTeamAccess+      , "username" .= createOrgOptionUsername+      , "visibility" .= createOrgOptionVisibility+      , "website" .= createOrgOptionWebsite+      ]+++-- | Construct a value of type 'CreateOrgOption' (by applying it's required fields, if any)+mkCreateOrgOption+  :: Text -- ^ 'createOrgOptionUsername' +  -> CreateOrgOption+mkCreateOrgOption createOrgOptionUsername =+  CreateOrgOption+  { createOrgOptionDescription = Nothing+  , createOrgOptionFullName = Nothing+  , createOrgOptionLocation = Nothing+  , createOrgOptionRepoAdminChangeTeamAccess = Nothing+  , createOrgOptionUsername+  , createOrgOptionVisibility = Nothing+  , createOrgOptionWebsite = Nothing+  }++-- ** CreatePullRequestOption+-- | CreatePullRequestOption+-- CreatePullRequestOption options when creating a pull request+data CreatePullRequestOption = CreatePullRequestOption+  { createPullRequestOptionAssignee :: !(Maybe Text) -- ^ "assignee"+  , createPullRequestOptionAssignees :: !(Maybe [Text]) -- ^ "assignees"+  , createPullRequestOptionBase :: !(Maybe Text) -- ^ "base"+  , createPullRequestOptionBody :: !(Maybe Text) -- ^ "body"+  , createPullRequestOptionDueDate :: !(Maybe DateTime) -- ^ "due_date"+  , createPullRequestOptionHead :: !(Maybe Text) -- ^ "head"+  , createPullRequestOptionLabels :: !(Maybe [Integer]) -- ^ "labels"+  , createPullRequestOptionMilestone :: !(Maybe Integer) -- ^ "milestone"+  , createPullRequestOptionTitle :: !(Maybe Text) -- ^ "title"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON CreatePullRequestOption+instance A.FromJSON CreatePullRequestOption where+  parseJSON = A.withObject "CreatePullRequestOption" $ \o ->+    CreatePullRequestOption+      <$> (o .:? "assignee")+      <*> (o .:? "assignees")+      <*> (o .:? "base")+      <*> (o .:? "body")+      <*> (o .:? "due_date")+      <*> (o .:? "head")+      <*> (o .:? "labels")+      <*> (o .:? "milestone")+      <*> (o .:? "title")++-- | ToJSON CreatePullRequestOption+instance A.ToJSON CreatePullRequestOption where+  toJSON CreatePullRequestOption {..} =+   _omitNulls+      [ "assignee" .= createPullRequestOptionAssignee+      , "assignees" .= createPullRequestOptionAssignees+      , "base" .= createPullRequestOptionBase+      , "body" .= createPullRequestOptionBody+      , "due_date" .= createPullRequestOptionDueDate+      , "head" .= createPullRequestOptionHead+      , "labels" .= createPullRequestOptionLabels+      , "milestone" .= createPullRequestOptionMilestone+      , "title" .= createPullRequestOptionTitle+      ]+++-- | Construct a value of type 'CreatePullRequestOption' (by applying it's required fields, if any)+mkCreatePullRequestOption+  :: CreatePullRequestOption+mkCreatePullRequestOption =+  CreatePullRequestOption+  { createPullRequestOptionAssignee = Nothing+  , createPullRequestOptionAssignees = Nothing+  , createPullRequestOptionBase = Nothing+  , createPullRequestOptionBody = Nothing+  , createPullRequestOptionDueDate = Nothing+  , createPullRequestOptionHead = Nothing+  , createPullRequestOptionLabels = Nothing+  , createPullRequestOptionMilestone = Nothing+  , createPullRequestOptionTitle = Nothing+  }++-- ** CreatePullReviewComment+-- | CreatePullReviewComment+-- CreatePullReviewComment represent a review comment for creation api+data CreatePullReviewComment = CreatePullReviewComment+  { createPullReviewCommentBody :: !(Maybe Text) -- ^ "body"+  , createPullReviewCommentNewPosition :: !(Maybe Integer) -- ^ "new_position" - if comment to new file line or 0+  , createPullReviewCommentOldPosition :: !(Maybe Integer) -- ^ "old_position" - if comment to old file line or 0+  , createPullReviewCommentPath :: !(Maybe Text) -- ^ "path" - the tree path+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON CreatePullReviewComment+instance A.FromJSON CreatePullReviewComment where+  parseJSON = A.withObject "CreatePullReviewComment" $ \o ->+    CreatePullReviewComment+      <$> (o .:? "body")+      <*> (o .:? "new_position")+      <*> (o .:? "old_position")+      <*> (o .:? "path")++-- | ToJSON CreatePullReviewComment+instance A.ToJSON CreatePullReviewComment where+  toJSON CreatePullReviewComment {..} =+   _omitNulls+      [ "body" .= createPullReviewCommentBody+      , "new_position" .= createPullReviewCommentNewPosition+      , "old_position" .= createPullReviewCommentOldPosition+      , "path" .= createPullReviewCommentPath+      ]+++-- | Construct a value of type 'CreatePullReviewComment' (by applying it's required fields, if any)+mkCreatePullReviewComment+  :: CreatePullReviewComment+mkCreatePullReviewComment =+  CreatePullReviewComment+  { createPullReviewCommentBody = Nothing+  , createPullReviewCommentNewPosition = Nothing+  , createPullReviewCommentOldPosition = Nothing+  , createPullReviewCommentPath = Nothing+  }++-- ** CreatePullReviewOptions+-- | CreatePullReviewOptions+-- CreatePullReviewOptions are options to create a pull review+data CreatePullReviewOptions = CreatePullReviewOptions+  { createPullReviewOptionsBody :: !(Maybe Text) -- ^ "body"+  , createPullReviewOptionsComments :: !(Maybe [CreatePullReviewComment]) -- ^ "comments"+  , createPullReviewOptionsCommitId :: !(Maybe Text) -- ^ "commit_id"+  , createPullReviewOptionsEvent :: !(Maybe Text) -- ^ "event" - ReviewStateType review state type+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON CreatePullReviewOptions+instance A.FromJSON CreatePullReviewOptions where+  parseJSON = A.withObject "CreatePullReviewOptions" $ \o ->+    CreatePullReviewOptions+      <$> (o .:? "body")+      <*> (o .:? "comments")+      <*> (o .:? "commit_id")+      <*> (o .:? "event")++-- | ToJSON CreatePullReviewOptions+instance A.ToJSON CreatePullReviewOptions where+  toJSON CreatePullReviewOptions {..} =+   _omitNulls+      [ "body" .= createPullReviewOptionsBody+      , "comments" .= createPullReviewOptionsComments+      , "commit_id" .= createPullReviewOptionsCommitId+      , "event" .= createPullReviewOptionsEvent+      ]+++-- | Construct a value of type 'CreatePullReviewOptions' (by applying it's required fields, if any)+mkCreatePullReviewOptions+  :: CreatePullReviewOptions+mkCreatePullReviewOptions =+  CreatePullReviewOptions+  { createPullReviewOptionsBody = Nothing+  , createPullReviewOptionsComments = Nothing+  , createPullReviewOptionsCommitId = Nothing+  , createPullReviewOptionsEvent = Nothing+  }++-- ** CreatePushMirrorOption+-- | CreatePushMirrorOption+-- CreatePushMirrorOption represents need information to create a push mirror of a repository.+-- +data CreatePushMirrorOption = CreatePushMirrorOption+  { createPushMirrorOptionInterval :: !(Maybe Text) -- ^ "interval"+  , createPushMirrorOptionRemoteAddress :: !(Maybe Text) -- ^ "remote_address"+  , createPushMirrorOptionRemotePassword :: !(Maybe Text) -- ^ "remote_password"+  , createPushMirrorOptionRemoteUsername :: !(Maybe Text) -- ^ "remote_username"+  , createPushMirrorOptionSyncOnCommit :: !(Maybe Bool) -- ^ "sync_on_commit"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON CreatePushMirrorOption+instance A.FromJSON CreatePushMirrorOption where+  parseJSON = A.withObject "CreatePushMirrorOption" $ \o ->+    CreatePushMirrorOption+      <$> (o .:? "interval")+      <*> (o .:? "remote_address")+      <*> (o .:? "remote_password")+      <*> (o .:? "remote_username")+      <*> (o .:? "sync_on_commit")++-- | ToJSON CreatePushMirrorOption+instance A.ToJSON CreatePushMirrorOption where+  toJSON CreatePushMirrorOption {..} =+   _omitNulls+      [ "interval" .= createPushMirrorOptionInterval+      , "remote_address" .= createPushMirrorOptionRemoteAddress+      , "remote_password" .= createPushMirrorOptionRemotePassword+      , "remote_username" .= createPushMirrorOptionRemoteUsername+      , "sync_on_commit" .= createPushMirrorOptionSyncOnCommit+      ]+++-- | Construct a value of type 'CreatePushMirrorOption' (by applying it's required fields, if any)+mkCreatePushMirrorOption+  :: CreatePushMirrorOption+mkCreatePushMirrorOption =+  CreatePushMirrorOption+  { createPushMirrorOptionInterval = Nothing+  , createPushMirrorOptionRemoteAddress = Nothing+  , createPushMirrorOptionRemotePassword = Nothing+  , createPushMirrorOptionRemoteUsername = Nothing+  , createPushMirrorOptionSyncOnCommit = Nothing+  }++-- ** CreateReleaseOption+-- | CreateReleaseOption+-- CreateReleaseOption options when creating a release+data CreateReleaseOption = CreateReleaseOption+  { createReleaseOptionBody :: !(Maybe Text) -- ^ "body"+  , createReleaseOptionDraft :: !(Maybe Bool) -- ^ "draft"+  , createReleaseOptionName :: !(Maybe Text) -- ^ "name"+  , createReleaseOptionPrerelease :: !(Maybe Bool) -- ^ "prerelease"+  , createReleaseOptionTagName :: !(Text) -- ^ /Required/ "tag_name"+  , createReleaseOptionTargetCommitish :: !(Maybe Text) -- ^ "target_commitish"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON CreateReleaseOption+instance A.FromJSON CreateReleaseOption where+  parseJSON = A.withObject "CreateReleaseOption" $ \o ->+    CreateReleaseOption+      <$> (o .:? "body")+      <*> (o .:? "draft")+      <*> (o .:? "name")+      <*> (o .:? "prerelease")+      <*> (o .:  "tag_name")+      <*> (o .:? "target_commitish")++-- | ToJSON CreateReleaseOption+instance A.ToJSON CreateReleaseOption where+  toJSON CreateReleaseOption {..} =+   _omitNulls+      [ "body" .= createReleaseOptionBody+      , "draft" .= createReleaseOptionDraft+      , "name" .= createReleaseOptionName+      , "prerelease" .= createReleaseOptionPrerelease+      , "tag_name" .= createReleaseOptionTagName+      , "target_commitish" .= createReleaseOptionTargetCommitish+      ]+++-- | Construct a value of type 'CreateReleaseOption' (by applying it's required fields, if any)+mkCreateReleaseOption+  :: Text -- ^ 'createReleaseOptionTagName' +  -> CreateReleaseOption+mkCreateReleaseOption createReleaseOptionTagName =+  CreateReleaseOption+  { createReleaseOptionBody = Nothing+  , createReleaseOptionDraft = Nothing+  , createReleaseOptionName = Nothing+  , createReleaseOptionPrerelease = Nothing+  , createReleaseOptionTagName+  , createReleaseOptionTargetCommitish = Nothing+  }++-- ** CreateRepoOption+-- | CreateRepoOption+-- CreateRepoOption options when creating repository+data CreateRepoOption = CreateRepoOption+  { createRepoOptionAutoInit :: !(Maybe Bool) -- ^ "auto_init" - Whether the repository should be auto-initialized?+  , createRepoOptionDefaultBranch :: !(Maybe Text) -- ^ "default_branch" - DefaultBranch of the repository (used when initializes and in template)+  , createRepoOptionDescription :: !(Maybe Text) -- ^ "description" - Description of the repository to create+  , createRepoOptionGitignores :: !(Maybe Text) -- ^ "gitignores" - Gitignores to use+  , createRepoOptionIssueLabels :: !(Maybe Text) -- ^ "issue_labels" - Label-Set to use+  , createRepoOptionLicense :: !(Maybe Text) -- ^ "license" - License to use+  , createRepoOptionName :: !(Text) -- ^ /Required/ "name" - Name of the repository to create+  , createRepoOptionPrivate :: !(Maybe Bool) -- ^ "private" - Whether the repository is private+  , createRepoOptionReadme :: !(Maybe Text) -- ^ "readme" - Readme of the repository to create+  , createRepoOptionTemplate :: !(Maybe Bool) -- ^ "template" - Whether the repository is template+  , createRepoOptionTrustModel :: !(Maybe E'TrustModel) -- ^ "trust_model" - TrustModel of the repository+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON CreateRepoOption+instance A.FromJSON CreateRepoOption where+  parseJSON = A.withObject "CreateRepoOption" $ \o ->+    CreateRepoOption+      <$> (o .:? "auto_init")+      <*> (o .:? "default_branch")+      <*> (o .:? "description")+      <*> (o .:? "gitignores")+      <*> (o .:? "issue_labels")+      <*> (o .:? "license")+      <*> (o .:  "name")+      <*> (o .:? "private")+      <*> (o .:? "readme")+      <*> (o .:? "template")+      <*> (o .:? "trust_model")++-- | ToJSON CreateRepoOption+instance A.ToJSON CreateRepoOption where+  toJSON CreateRepoOption {..} =+   _omitNulls+      [ "auto_init" .= createRepoOptionAutoInit+      , "default_branch" .= createRepoOptionDefaultBranch+      , "description" .= createRepoOptionDescription+      , "gitignores" .= createRepoOptionGitignores+      , "issue_labels" .= createRepoOptionIssueLabels+      , "license" .= createRepoOptionLicense+      , "name" .= createRepoOptionName+      , "private" .= createRepoOptionPrivate+      , "readme" .= createRepoOptionReadme+      , "template" .= createRepoOptionTemplate+      , "trust_model" .= createRepoOptionTrustModel+      ]+++-- | Construct a value of type 'CreateRepoOption' (by applying it's required fields, if any)+mkCreateRepoOption+  :: Text -- ^ 'createRepoOptionName': Name of the repository to create+  -> CreateRepoOption+mkCreateRepoOption createRepoOptionName =+  CreateRepoOption+  { createRepoOptionAutoInit = Nothing+  , createRepoOptionDefaultBranch = Nothing+  , createRepoOptionDescription = Nothing+  , createRepoOptionGitignores = Nothing+  , createRepoOptionIssueLabels = Nothing+  , createRepoOptionLicense = Nothing+  , createRepoOptionName+  , createRepoOptionPrivate = Nothing+  , createRepoOptionReadme = Nothing+  , createRepoOptionTemplate = Nothing+  , createRepoOptionTrustModel = Nothing+  }++-- ** CreateStatusOption+-- | CreateStatusOption+-- CreateStatusOption holds the information needed to create a new CommitStatus for a Commit+data CreateStatusOption = CreateStatusOption+  { createStatusOptionContext :: !(Maybe Text) -- ^ "context"+  , createStatusOptionDescription :: !(Maybe Text) -- ^ "description"+  , createStatusOptionState :: !(Maybe Text) -- ^ "state" - CommitStatusState holds the state of a CommitStatus It can be \&quot;pending\&quot;, \&quot;success\&quot;, \&quot;error\&quot;, \&quot;failure\&quot;, and \&quot;warning\&quot;+  , createStatusOptionTargetUrl :: !(Maybe Text) -- ^ "target_url"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON CreateStatusOption+instance A.FromJSON CreateStatusOption where+  parseJSON = A.withObject "CreateStatusOption" $ \o ->+    CreateStatusOption+      <$> (o .:? "context")+      <*> (o .:? "description")+      <*> (o .:? "state")+      <*> (o .:? "target_url")++-- | ToJSON CreateStatusOption+instance A.ToJSON CreateStatusOption where+  toJSON CreateStatusOption {..} =+   _omitNulls+      [ "context" .= createStatusOptionContext+      , "description" .= createStatusOptionDescription+      , "state" .= createStatusOptionState+      , "target_url" .= createStatusOptionTargetUrl+      ]+++-- | Construct a value of type 'CreateStatusOption' (by applying it's required fields, if any)+mkCreateStatusOption+  :: CreateStatusOption+mkCreateStatusOption =+  CreateStatusOption+  { createStatusOptionContext = Nothing+  , createStatusOptionDescription = Nothing+  , createStatusOptionState = Nothing+  , createStatusOptionTargetUrl = Nothing+  }++-- ** CreateTagOption+-- | CreateTagOption+-- CreateTagOption options when creating a tag+data CreateTagOption = CreateTagOption+  { createTagOptionMessage :: !(Maybe Text) -- ^ "message"+  , createTagOptionTagName :: !(Text) -- ^ /Required/ "tag_name"+  , createTagOptionTarget :: !(Maybe Text) -- ^ "target"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON CreateTagOption+instance A.FromJSON CreateTagOption where+  parseJSON = A.withObject "CreateTagOption" $ \o ->+    CreateTagOption+      <$> (o .:? "message")+      <*> (o .:  "tag_name")+      <*> (o .:? "target")++-- | ToJSON CreateTagOption+instance A.ToJSON CreateTagOption where+  toJSON CreateTagOption {..} =+   _omitNulls+      [ "message" .= createTagOptionMessage+      , "tag_name" .= createTagOptionTagName+      , "target" .= createTagOptionTarget+      ]+++-- | Construct a value of type 'CreateTagOption' (by applying it's required fields, if any)+mkCreateTagOption+  :: Text -- ^ 'createTagOptionTagName' +  -> CreateTagOption+mkCreateTagOption createTagOptionTagName =+  CreateTagOption+  { createTagOptionMessage = Nothing+  , createTagOptionTagName+  , createTagOptionTarget = Nothing+  }++-- ** CreateTeamOption+-- | CreateTeamOption+-- CreateTeamOption options for creating a team+data CreateTeamOption = CreateTeamOption+  { createTeamOptionCanCreateOrgRepo :: !(Maybe Bool) -- ^ "can_create_org_repo"+  , createTeamOptionDescription :: !(Maybe Text) -- ^ "description"+  , createTeamOptionIncludesAllRepositories :: !(Maybe Bool) -- ^ "includes_all_repositories"+  , createTeamOptionName :: !(Text) -- ^ /Required/ "name"+  , createTeamOptionPermission :: !(Maybe E'Permission) -- ^ "permission"+  , createTeamOptionUnits :: !(Maybe [Text]) -- ^ "units"+  , createTeamOptionUnitsMap :: !(Maybe (Map.Map String Text)) -- ^ "units_map"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON CreateTeamOption+instance A.FromJSON CreateTeamOption where+  parseJSON = A.withObject "CreateTeamOption" $ \o ->+    CreateTeamOption+      <$> (o .:? "can_create_org_repo")+      <*> (o .:? "description")+      <*> (o .:? "includes_all_repositories")+      <*> (o .:  "name")+      <*> (o .:? "permission")+      <*> (o .:? "units")+      <*> (o .:? "units_map")++-- | ToJSON CreateTeamOption+instance A.ToJSON CreateTeamOption where+  toJSON CreateTeamOption {..} =+   _omitNulls+      [ "can_create_org_repo" .= createTeamOptionCanCreateOrgRepo+      , "description" .= createTeamOptionDescription+      , "includes_all_repositories" .= createTeamOptionIncludesAllRepositories+      , "name" .= createTeamOptionName+      , "permission" .= createTeamOptionPermission+      , "units" .= createTeamOptionUnits+      , "units_map" .= createTeamOptionUnitsMap+      ]+++-- | Construct a value of type 'CreateTeamOption' (by applying it's required fields, if any)+mkCreateTeamOption+  :: Text -- ^ 'createTeamOptionName' +  -> CreateTeamOption+mkCreateTeamOption createTeamOptionName =+  CreateTeamOption+  { createTeamOptionCanCreateOrgRepo = Nothing+  , createTeamOptionDescription = Nothing+  , createTeamOptionIncludesAllRepositories = Nothing+  , createTeamOptionName+  , createTeamOptionPermission = Nothing+  , createTeamOptionUnits = Nothing+  , createTeamOptionUnitsMap = Nothing+  }++-- ** CreateUserOption+-- | CreateUserOption+-- CreateUserOption create user options+data CreateUserOption = CreateUserOption+  { createUserOptionCreatedAt :: !(Maybe DateTime) -- ^ "created_at" - For explicitly setting the user creation timestamp. Useful when users are migrated from other systems. When omitted, the user&#39;s creation timestamp will be set to \&quot;now\&quot;.+  , createUserOptionEmail :: !(Text) -- ^ /Required/ "email"+  , createUserOptionFullName :: !(Maybe Text) -- ^ "full_name"+  , createUserOptionLoginName :: !(Maybe Text) -- ^ "login_name"+  , createUserOptionMustChangePassword :: !(Maybe Bool) -- ^ "must_change_password"+  , createUserOptionPassword :: !(Text) -- ^ /Required/ "password"+  , createUserOptionRestricted :: !(Maybe Bool) -- ^ "restricted"+  , createUserOptionSendNotify :: !(Maybe Bool) -- ^ "send_notify"+  , createUserOptionSourceId :: !(Maybe Integer) -- ^ "source_id"+  , createUserOptionUsername :: !(Text) -- ^ /Required/ "username"+  , createUserOptionVisibility :: !(Maybe Text) -- ^ "visibility"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON CreateUserOption+instance A.FromJSON CreateUserOption where+  parseJSON = A.withObject "CreateUserOption" $ \o ->+    CreateUserOption+      <$> (o .:? "created_at")+      <*> (o .:  "email")+      <*> (o .:? "full_name")+      <*> (o .:? "login_name")+      <*> (o .:? "must_change_password")+      <*> (o .:  "password")+      <*> (o .:? "restricted")+      <*> (o .:? "send_notify")+      <*> (o .:? "source_id")+      <*> (o .:  "username")+      <*> (o .:? "visibility")++-- | ToJSON CreateUserOption+instance A.ToJSON CreateUserOption where+  toJSON CreateUserOption {..} =+   _omitNulls+      [ "created_at" .= createUserOptionCreatedAt+      , "email" .= createUserOptionEmail+      , "full_name" .= createUserOptionFullName+      , "login_name" .= createUserOptionLoginName+      , "must_change_password" .= createUserOptionMustChangePassword+      , "password" .= createUserOptionPassword+      , "restricted" .= createUserOptionRestricted+      , "send_notify" .= createUserOptionSendNotify+      , "source_id" .= createUserOptionSourceId+      , "username" .= createUserOptionUsername+      , "visibility" .= createUserOptionVisibility+      ]+++-- | Construct a value of type 'CreateUserOption' (by applying it's required fields, if any)+mkCreateUserOption+  :: Text -- ^ 'createUserOptionEmail' +  -> Text -- ^ 'createUserOptionPassword' +  -> Text -- ^ 'createUserOptionUsername' +  -> CreateUserOption+mkCreateUserOption createUserOptionEmail createUserOptionPassword createUserOptionUsername =+  CreateUserOption+  { createUserOptionCreatedAt = Nothing+  , createUserOptionEmail+  , createUserOptionFullName = Nothing+  , createUserOptionLoginName = Nothing+  , createUserOptionMustChangePassword = Nothing+  , createUserOptionPassword+  , createUserOptionRestricted = Nothing+  , createUserOptionSendNotify = Nothing+  , createUserOptionSourceId = Nothing+  , createUserOptionUsername+  , createUserOptionVisibility = Nothing+  }++-- ** CreateWikiPageOptions+-- | CreateWikiPageOptions+-- CreateWikiPageOptions form for creating wiki+data CreateWikiPageOptions = CreateWikiPageOptions+  { createWikiPageOptionsContentBase64 :: !(Maybe Text) -- ^ "content_base64" - content must be base64 encoded+  , createWikiPageOptionsMessage :: !(Maybe Text) -- ^ "message" - optional commit message summarizing the change+  , createWikiPageOptionsTitle :: !(Maybe Text) -- ^ "title" - page title. leave empty to keep unchanged+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON CreateWikiPageOptions+instance A.FromJSON CreateWikiPageOptions where+  parseJSON = A.withObject "CreateWikiPageOptions" $ \o ->+    CreateWikiPageOptions+      <$> (o .:? "content_base64")+      <*> (o .:? "message")+      <*> (o .:? "title")++-- | ToJSON CreateWikiPageOptions+instance A.ToJSON CreateWikiPageOptions where+  toJSON CreateWikiPageOptions {..} =+   _omitNulls+      [ "content_base64" .= createWikiPageOptionsContentBase64+      , "message" .= createWikiPageOptionsMessage+      , "title" .= createWikiPageOptionsTitle+      ]+++-- | Construct a value of type 'CreateWikiPageOptions' (by applying it's required fields, if any)+mkCreateWikiPageOptions+  :: CreateWikiPageOptions+mkCreateWikiPageOptions =+  CreateWikiPageOptions+  { createWikiPageOptionsContentBase64 = Nothing+  , createWikiPageOptionsMessage = Nothing+  , createWikiPageOptionsTitle = Nothing+  }++-- ** Cron+-- | Cron+-- Cron represents a Cron task+data Cron = Cron+  { cronExecTimes :: !(Maybe Integer) -- ^ "exec_times"+  , cronName :: !(Maybe Text) -- ^ "name"+  , cronNext :: !(Maybe DateTime) -- ^ "next"+  , cronPrev :: !(Maybe DateTime) -- ^ "prev"+  , cronSchedule :: !(Maybe Text) -- ^ "schedule"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON Cron+instance A.FromJSON Cron where+  parseJSON = A.withObject "Cron" $ \o ->+    Cron+      <$> (o .:? "exec_times")+      <*> (o .:? "name")+      <*> (o .:? "next")+      <*> (o .:? "prev")+      <*> (o .:? "schedule")++-- | ToJSON Cron+instance A.ToJSON Cron where+  toJSON Cron {..} =+   _omitNulls+      [ "exec_times" .= cronExecTimes+      , "name" .= cronName+      , "next" .= cronNext+      , "prev" .= cronPrev+      , "schedule" .= cronSchedule+      ]+++-- | Construct a value of type 'Cron' (by applying it's required fields, if any)+mkCron+  :: Cron+mkCron =+  Cron+  { cronExecTimes = Nothing+  , cronName = Nothing+  , cronNext = Nothing+  , cronPrev = Nothing+  , cronSchedule = Nothing+  }++-- ** DeleteEmailOption+-- | DeleteEmailOption+-- DeleteEmailOption options when deleting email addresses+data DeleteEmailOption = DeleteEmailOption+  { deleteEmailOptionEmails :: !(Maybe [Text]) -- ^ "emails" - email addresses to delete+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON DeleteEmailOption+instance A.FromJSON DeleteEmailOption where+  parseJSON = A.withObject "DeleteEmailOption" $ \o ->+    DeleteEmailOption+      <$> (o .:? "emails")++-- | ToJSON DeleteEmailOption+instance A.ToJSON DeleteEmailOption where+  toJSON DeleteEmailOption {..} =+   _omitNulls+      [ "emails" .= deleteEmailOptionEmails+      ]+++-- | Construct a value of type 'DeleteEmailOption' (by applying it's required fields, if any)+mkDeleteEmailOption+  :: DeleteEmailOption+mkDeleteEmailOption =+  DeleteEmailOption+  { deleteEmailOptionEmails = Nothing+  }++-- ** DeleteFileOptions+-- | DeleteFileOptions+-- DeleteFileOptions options for deleting files (used for other File structs below) Note: `author` and `committer` are optional (if only one is given, it will be used for the other, otherwise the authenticated user will be used)+data DeleteFileOptions = DeleteFileOptions+  { deleteFileOptionsAuthor :: !(Maybe Identity) -- ^ "author"+  , deleteFileOptionsBranch :: !(Maybe Text) -- ^ "branch" - branch (optional) to base this file from. if not given, the default branch is used+  , deleteFileOptionsCommitter :: !(Maybe Identity) -- ^ "committer"+  , deleteFileOptionsDates :: !(Maybe CommitDateOptions) -- ^ "dates"+  , deleteFileOptionsMessage :: !(Maybe Text) -- ^ "message" - message (optional) for the commit of this file. if not supplied, a default message will be used+  , deleteFileOptionsNewBranch :: !(Maybe Text) -- ^ "new_branch" - new_branch (optional) will make a new branch from &#x60;branch&#x60; before creating the file+  , deleteFileOptionsSha :: !(Text) -- ^ /Required/ "sha" - sha is the SHA for the file that already exists+  , deleteFileOptionsSignoff :: !(Maybe Bool) -- ^ "signoff" - Add a Signed-off-by trailer by the committer at the end of the commit log message.+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON DeleteFileOptions+instance A.FromJSON DeleteFileOptions where+  parseJSON = A.withObject "DeleteFileOptions" $ \o ->+    DeleteFileOptions+      <$> (o .:? "author")+      <*> (o .:? "branch")+      <*> (o .:? "committer")+      <*> (o .:? "dates")+      <*> (o .:? "message")+      <*> (o .:? "new_branch")+      <*> (o .:  "sha")+      <*> (o .:? "signoff")++-- | ToJSON DeleteFileOptions+instance A.ToJSON DeleteFileOptions where+  toJSON DeleteFileOptions {..} =+   _omitNulls+      [ "author" .= deleteFileOptionsAuthor+      , "branch" .= deleteFileOptionsBranch+      , "committer" .= deleteFileOptionsCommitter+      , "dates" .= deleteFileOptionsDates+      , "message" .= deleteFileOptionsMessage+      , "new_branch" .= deleteFileOptionsNewBranch+      , "sha" .= deleteFileOptionsSha+      , "signoff" .= deleteFileOptionsSignoff+      ]+++-- | Construct a value of type 'DeleteFileOptions' (by applying it's required fields, if any)+mkDeleteFileOptions+  :: Text -- ^ 'deleteFileOptionsSha': sha is the SHA for the file that already exists+  -> DeleteFileOptions+mkDeleteFileOptions deleteFileOptionsSha =+  DeleteFileOptions+  { deleteFileOptionsAuthor = Nothing+  , deleteFileOptionsBranch = Nothing+  , deleteFileOptionsCommitter = Nothing+  , deleteFileOptionsDates = Nothing+  , deleteFileOptionsMessage = Nothing+  , deleteFileOptionsNewBranch = Nothing+  , deleteFileOptionsSha+  , deleteFileOptionsSignoff = Nothing+  }++-- ** DeployKey+-- | DeployKey+-- DeployKey a deploy key+data DeployKey = DeployKey+  { deployKeyCreatedAt :: !(Maybe DateTime) -- ^ "created_at"+  , deployKeyFingerprint :: !(Maybe Text) -- ^ "fingerprint"+  , deployKeyId :: !(Maybe Integer) -- ^ "id"+  , deployKeyKey :: !(Maybe Text) -- ^ "key"+  , deployKeyKeyId :: !(Maybe Integer) -- ^ "key_id"+  , deployKeyReadOnly :: !(Maybe Bool) -- ^ "read_only"+  , deployKeyRepository :: !(Maybe Repository) -- ^ "repository"+  , deployKeyTitle :: !(Maybe Text) -- ^ "title"+  , deployKeyUrl :: !(Maybe Text) -- ^ "url"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON DeployKey+instance A.FromJSON DeployKey where+  parseJSON = A.withObject "DeployKey" $ \o ->+    DeployKey+      <$> (o .:? "created_at")+      <*> (o .:? "fingerprint")+      <*> (o .:? "id")+      <*> (o .:? "key")+      <*> (o .:? "key_id")+      <*> (o .:? "read_only")+      <*> (o .:? "repository")+      <*> (o .:? "title")+      <*> (o .:? "url")++-- | ToJSON DeployKey+instance A.ToJSON DeployKey where+  toJSON DeployKey {..} =+   _omitNulls+      [ "created_at" .= deployKeyCreatedAt+      , "fingerprint" .= deployKeyFingerprint+      , "id" .= deployKeyId+      , "key" .= deployKeyKey+      , "key_id" .= deployKeyKeyId+      , "read_only" .= deployKeyReadOnly+      , "repository" .= deployKeyRepository+      , "title" .= deployKeyTitle+      , "url" .= deployKeyUrl+      ]+++-- | Construct a value of type 'DeployKey' (by applying it's required fields, if any)+mkDeployKey+  :: DeployKey+mkDeployKey =+  DeployKey+  { deployKeyCreatedAt = Nothing+  , deployKeyFingerprint = Nothing+  , deployKeyId = Nothing+  , deployKeyKey = Nothing+  , deployKeyKeyId = Nothing+  , deployKeyReadOnly = Nothing+  , deployKeyRepository = Nothing+  , deployKeyTitle = Nothing+  , deployKeyUrl = Nothing+  }++-- ** DismissPullReviewOptions+-- | DismissPullReviewOptions+-- DismissPullReviewOptions are options to dismiss a pull review+data DismissPullReviewOptions = DismissPullReviewOptions+  { dismissPullReviewOptionsMessage :: !(Maybe Text) -- ^ "message"+  , dismissPullReviewOptionsPriors :: !(Maybe Bool) -- ^ "priors"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON DismissPullReviewOptions+instance A.FromJSON DismissPullReviewOptions where+  parseJSON = A.withObject "DismissPullReviewOptions" $ \o ->+    DismissPullReviewOptions+      <$> (o .:? "message")+      <*> (o .:? "priors")++-- | ToJSON DismissPullReviewOptions+instance A.ToJSON DismissPullReviewOptions where+  toJSON DismissPullReviewOptions {..} =+   _omitNulls+      [ "message" .= dismissPullReviewOptionsMessage+      , "priors" .= dismissPullReviewOptionsPriors+      ]+++-- | Construct a value of type 'DismissPullReviewOptions' (by applying it's required fields, if any)+mkDismissPullReviewOptions+  :: DismissPullReviewOptions+mkDismissPullReviewOptions =+  DismissPullReviewOptions+  { dismissPullReviewOptionsMessage = Nothing+  , dismissPullReviewOptionsPriors = Nothing+  }++-- ** EditAttachmentOptions+-- | EditAttachmentOptions+-- EditAttachmentOptions options for editing attachments+data EditAttachmentOptions = EditAttachmentOptions+  { editAttachmentOptionsName :: !(Maybe Text) -- ^ "name"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON EditAttachmentOptions+instance A.FromJSON EditAttachmentOptions where+  parseJSON = A.withObject "EditAttachmentOptions" $ \o ->+    EditAttachmentOptions+      <$> (o .:? "name")++-- | ToJSON EditAttachmentOptions+instance A.ToJSON EditAttachmentOptions where+  toJSON EditAttachmentOptions {..} =+   _omitNulls+      [ "name" .= editAttachmentOptionsName+      ]+++-- | Construct a value of type 'EditAttachmentOptions' (by applying it's required fields, if any)+mkEditAttachmentOptions+  :: EditAttachmentOptions+mkEditAttachmentOptions =+  EditAttachmentOptions+  { editAttachmentOptionsName = Nothing+  }++-- ** EditBranchProtectionOption+-- | EditBranchProtectionOption+-- EditBranchProtectionOption options for editing a branch protection+data EditBranchProtectionOption = EditBranchProtectionOption+  { editBranchProtectionOptionApprovalsWhitelistTeams :: !(Maybe [Text]) -- ^ "approvals_whitelist_teams"+  , editBranchProtectionOptionApprovalsWhitelistUsername :: !(Maybe [Text]) -- ^ "approvals_whitelist_username"+  , editBranchProtectionOptionBlockOnOfficialReviewRequests :: !(Maybe Bool) -- ^ "block_on_official_review_requests"+  , editBranchProtectionOptionBlockOnOutdatedBranch :: !(Maybe Bool) -- ^ "block_on_outdated_branch"+  , editBranchProtectionOptionBlockOnRejectedReviews :: !(Maybe Bool) -- ^ "block_on_rejected_reviews"+  , editBranchProtectionOptionDismissStaleApprovals :: !(Maybe Bool) -- ^ "dismiss_stale_approvals"+  , editBranchProtectionOptionEnableApprovalsWhitelist :: !(Maybe Bool) -- ^ "enable_approvals_whitelist"+  , editBranchProtectionOptionEnableMergeWhitelist :: !(Maybe Bool) -- ^ "enable_merge_whitelist"+  , editBranchProtectionOptionEnablePush :: !(Maybe Bool) -- ^ "enable_push"+  , editBranchProtectionOptionEnablePushWhitelist :: !(Maybe Bool) -- ^ "enable_push_whitelist"+  , editBranchProtectionOptionEnableStatusCheck :: !(Maybe Bool) -- ^ "enable_status_check"+  , editBranchProtectionOptionMergeWhitelistTeams :: !(Maybe [Text]) -- ^ "merge_whitelist_teams"+  , editBranchProtectionOptionMergeWhitelistUsernames :: !(Maybe [Text]) -- ^ "merge_whitelist_usernames"+  , editBranchProtectionOptionProtectedFilePatterns :: !(Maybe Text) -- ^ "protected_file_patterns"+  , editBranchProtectionOptionPushWhitelistDeployKeys :: !(Maybe Bool) -- ^ "push_whitelist_deploy_keys"+  , editBranchProtectionOptionPushWhitelistTeams :: !(Maybe [Text]) -- ^ "push_whitelist_teams"+  , editBranchProtectionOptionPushWhitelistUsernames :: !(Maybe [Text]) -- ^ "push_whitelist_usernames"+  , editBranchProtectionOptionRequireSignedCommits :: !(Maybe Bool) -- ^ "require_signed_commits"+  , editBranchProtectionOptionRequiredApprovals :: !(Maybe Integer) -- ^ "required_approvals"+  , editBranchProtectionOptionStatusCheckContexts :: !(Maybe [Text]) -- ^ "status_check_contexts"+  , editBranchProtectionOptionUnprotectedFilePatterns :: !(Maybe Text) -- ^ "unprotected_file_patterns"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON EditBranchProtectionOption+instance A.FromJSON EditBranchProtectionOption where+  parseJSON = A.withObject "EditBranchProtectionOption" $ \o ->+    EditBranchProtectionOption+      <$> (o .:? "approvals_whitelist_teams")+      <*> (o .:? "approvals_whitelist_username")+      <*> (o .:? "block_on_official_review_requests")+      <*> (o .:? "block_on_outdated_branch")+      <*> (o .:? "block_on_rejected_reviews")+      <*> (o .:? "dismiss_stale_approvals")+      <*> (o .:? "enable_approvals_whitelist")+      <*> (o .:? "enable_merge_whitelist")+      <*> (o .:? "enable_push")+      <*> (o .:? "enable_push_whitelist")+      <*> (o .:? "enable_status_check")+      <*> (o .:? "merge_whitelist_teams")+      <*> (o .:? "merge_whitelist_usernames")+      <*> (o .:? "protected_file_patterns")+      <*> (o .:? "push_whitelist_deploy_keys")+      <*> (o .:? "push_whitelist_teams")+      <*> (o .:? "push_whitelist_usernames")+      <*> (o .:? "require_signed_commits")+      <*> (o .:? "required_approvals")+      <*> (o .:? "status_check_contexts")+      <*> (o .:? "unprotected_file_patterns")++-- | ToJSON EditBranchProtectionOption+instance A.ToJSON EditBranchProtectionOption where+  toJSON EditBranchProtectionOption {..} =+   _omitNulls+      [ "approvals_whitelist_teams" .= editBranchProtectionOptionApprovalsWhitelistTeams+      , "approvals_whitelist_username" .= editBranchProtectionOptionApprovalsWhitelistUsername+      , "block_on_official_review_requests" .= editBranchProtectionOptionBlockOnOfficialReviewRequests+      , "block_on_outdated_branch" .= editBranchProtectionOptionBlockOnOutdatedBranch+      , "block_on_rejected_reviews" .= editBranchProtectionOptionBlockOnRejectedReviews+      , "dismiss_stale_approvals" .= editBranchProtectionOptionDismissStaleApprovals+      , "enable_approvals_whitelist" .= editBranchProtectionOptionEnableApprovalsWhitelist+      , "enable_merge_whitelist" .= editBranchProtectionOptionEnableMergeWhitelist+      , "enable_push" .= editBranchProtectionOptionEnablePush+      , "enable_push_whitelist" .= editBranchProtectionOptionEnablePushWhitelist+      , "enable_status_check" .= editBranchProtectionOptionEnableStatusCheck+      , "merge_whitelist_teams" .= editBranchProtectionOptionMergeWhitelistTeams+      , "merge_whitelist_usernames" .= editBranchProtectionOptionMergeWhitelistUsernames+      , "protected_file_patterns" .= editBranchProtectionOptionProtectedFilePatterns+      , "push_whitelist_deploy_keys" .= editBranchProtectionOptionPushWhitelistDeployKeys+      , "push_whitelist_teams" .= editBranchProtectionOptionPushWhitelistTeams+      , "push_whitelist_usernames" .= editBranchProtectionOptionPushWhitelistUsernames+      , "require_signed_commits" .= editBranchProtectionOptionRequireSignedCommits+      , "required_approvals" .= editBranchProtectionOptionRequiredApprovals+      , "status_check_contexts" .= editBranchProtectionOptionStatusCheckContexts+      , "unprotected_file_patterns" .= editBranchProtectionOptionUnprotectedFilePatterns+      ]+++-- | Construct a value of type 'EditBranchProtectionOption' (by applying it's required fields, if any)+mkEditBranchProtectionOption+  :: EditBranchProtectionOption+mkEditBranchProtectionOption =+  EditBranchProtectionOption+  { editBranchProtectionOptionApprovalsWhitelistTeams = Nothing+  , editBranchProtectionOptionApprovalsWhitelistUsername = Nothing+  , editBranchProtectionOptionBlockOnOfficialReviewRequests = Nothing+  , editBranchProtectionOptionBlockOnOutdatedBranch = Nothing+  , editBranchProtectionOptionBlockOnRejectedReviews = Nothing+  , editBranchProtectionOptionDismissStaleApprovals = Nothing+  , editBranchProtectionOptionEnableApprovalsWhitelist = Nothing+  , editBranchProtectionOptionEnableMergeWhitelist = Nothing+  , editBranchProtectionOptionEnablePush = Nothing+  , editBranchProtectionOptionEnablePushWhitelist = Nothing+  , editBranchProtectionOptionEnableStatusCheck = Nothing+  , editBranchProtectionOptionMergeWhitelistTeams = Nothing+  , editBranchProtectionOptionMergeWhitelistUsernames = Nothing+  , editBranchProtectionOptionProtectedFilePatterns = Nothing+  , editBranchProtectionOptionPushWhitelistDeployKeys = Nothing+  , editBranchProtectionOptionPushWhitelistTeams = Nothing+  , editBranchProtectionOptionPushWhitelistUsernames = Nothing+  , editBranchProtectionOptionRequireSignedCommits = Nothing+  , editBranchProtectionOptionRequiredApprovals = Nothing+  , editBranchProtectionOptionStatusCheckContexts = Nothing+  , editBranchProtectionOptionUnprotectedFilePatterns = Nothing+  }++-- ** EditDeadlineOption+-- | EditDeadlineOption+-- EditDeadlineOption options for creating a deadline+data EditDeadlineOption = EditDeadlineOption+  { editDeadlineOptionDueDate :: !(DateTime) -- ^ /Required/ "due_date"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON EditDeadlineOption+instance A.FromJSON EditDeadlineOption where+  parseJSON = A.withObject "EditDeadlineOption" $ \o ->+    EditDeadlineOption+      <$> (o .:  "due_date")++-- | ToJSON EditDeadlineOption+instance A.ToJSON EditDeadlineOption where+  toJSON EditDeadlineOption {..} =+   _omitNulls+      [ "due_date" .= editDeadlineOptionDueDate+      ]+++-- | Construct a value of type 'EditDeadlineOption' (by applying it's required fields, if any)+mkEditDeadlineOption+  :: DateTime -- ^ 'editDeadlineOptionDueDate' +  -> EditDeadlineOption+mkEditDeadlineOption editDeadlineOptionDueDate =+  EditDeadlineOption+  { editDeadlineOptionDueDate+  }++-- ** EditGitHookOption+-- | EditGitHookOption+-- EditGitHookOption options when modifying one Git hook+data EditGitHookOption = EditGitHookOption+  { editGitHookOptionContent :: !(Maybe Text) -- ^ "content"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON EditGitHookOption+instance A.FromJSON EditGitHookOption where+  parseJSON = A.withObject "EditGitHookOption" $ \o ->+    EditGitHookOption+      <$> (o .:? "content")++-- | ToJSON EditGitHookOption+instance A.ToJSON EditGitHookOption where+  toJSON EditGitHookOption {..} =+   _omitNulls+      [ "content" .= editGitHookOptionContent+      ]+++-- | Construct a value of type 'EditGitHookOption' (by applying it's required fields, if any)+mkEditGitHookOption+  :: EditGitHookOption+mkEditGitHookOption =+  EditGitHookOption+  { editGitHookOptionContent = Nothing+  }++-- ** EditHookOption+-- | EditHookOption+-- EditHookOption options when modify one hook+data EditHookOption = EditHookOption+  { editHookOptionActive :: !(Maybe Bool) -- ^ "active"+  , editHookOptionAuthorizationHeader :: !(Maybe Text) -- ^ "authorization_header"+  , editHookOptionBranchFilter :: !(Maybe Text) -- ^ "branch_filter"+  , editHookOptionConfig :: !(Maybe (Map.Map String Text)) -- ^ "config"+  , editHookOptionEvents :: !(Maybe [Text]) -- ^ "events"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON EditHookOption+instance A.FromJSON EditHookOption where+  parseJSON = A.withObject "EditHookOption" $ \o ->+    EditHookOption+      <$> (o .:? "active")+      <*> (o .:? "authorization_header")+      <*> (o .:? "branch_filter")+      <*> (o .:? "config")+      <*> (o .:? "events")++-- | ToJSON EditHookOption+instance A.ToJSON EditHookOption where+  toJSON EditHookOption {..} =+   _omitNulls+      [ "active" .= editHookOptionActive+      , "authorization_header" .= editHookOptionAuthorizationHeader+      , "branch_filter" .= editHookOptionBranchFilter+      , "config" .= editHookOptionConfig+      , "events" .= editHookOptionEvents+      ]+++-- | Construct a value of type 'EditHookOption' (by applying it's required fields, if any)+mkEditHookOption+  :: EditHookOption+mkEditHookOption =+  EditHookOption+  { editHookOptionActive = Nothing+  , editHookOptionAuthorizationHeader = Nothing+  , editHookOptionBranchFilter = Nothing+  , editHookOptionConfig = Nothing+  , editHookOptionEvents = Nothing+  }++-- ** EditIssueCommentOption+-- | EditIssueCommentOption+-- EditIssueCommentOption options for editing a comment+data EditIssueCommentOption = EditIssueCommentOption+  { editIssueCommentOptionBody :: !(Text) -- ^ /Required/ "body"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON EditIssueCommentOption+instance A.FromJSON EditIssueCommentOption where+  parseJSON = A.withObject "EditIssueCommentOption" $ \o ->+    EditIssueCommentOption+      <$> (o .:  "body")++-- | ToJSON EditIssueCommentOption+instance A.ToJSON EditIssueCommentOption where+  toJSON EditIssueCommentOption {..} =+   _omitNulls+      [ "body" .= editIssueCommentOptionBody+      ]+++-- | Construct a value of type 'EditIssueCommentOption' (by applying it's required fields, if any)+mkEditIssueCommentOption+  :: Text -- ^ 'editIssueCommentOptionBody' +  -> EditIssueCommentOption+mkEditIssueCommentOption editIssueCommentOptionBody =+  EditIssueCommentOption+  { editIssueCommentOptionBody+  }++-- ** EditIssueOption+-- | EditIssueOption+-- EditIssueOption options for editing an issue+data EditIssueOption = EditIssueOption+  { editIssueOptionAssignee :: !(Maybe Text) -- ^ "assignee" - deprecated+  , editIssueOptionAssignees :: !(Maybe [Text]) -- ^ "assignees"+  , editIssueOptionBody :: !(Maybe Text) -- ^ "body"+  , editIssueOptionDueDate :: !(Maybe DateTime) -- ^ "due_date"+  , editIssueOptionMilestone :: !(Maybe Integer) -- ^ "milestone"+  , editIssueOptionRef :: !(Maybe Text) -- ^ "ref"+  , editIssueOptionState :: !(Maybe Text) -- ^ "state"+  , editIssueOptionTitle :: !(Maybe Text) -- ^ "title"+  , editIssueOptionUnsetDueDate :: !(Maybe Bool) -- ^ "unset_due_date"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON EditIssueOption+instance A.FromJSON EditIssueOption where+  parseJSON = A.withObject "EditIssueOption" $ \o ->+    EditIssueOption+      <$> (o .:? "assignee")+      <*> (o .:? "assignees")+      <*> (o .:? "body")+      <*> (o .:? "due_date")+      <*> (o .:? "milestone")+      <*> (o .:? "ref")+      <*> (o .:? "state")+      <*> (o .:? "title")+      <*> (o .:? "unset_due_date")++-- | ToJSON EditIssueOption+instance A.ToJSON EditIssueOption where+  toJSON EditIssueOption {..} =+   _omitNulls+      [ "assignee" .= editIssueOptionAssignee+      , "assignees" .= editIssueOptionAssignees+      , "body" .= editIssueOptionBody+      , "due_date" .= editIssueOptionDueDate+      , "milestone" .= editIssueOptionMilestone+      , "ref" .= editIssueOptionRef+      , "state" .= editIssueOptionState+      , "title" .= editIssueOptionTitle+      , "unset_due_date" .= editIssueOptionUnsetDueDate+      ]+++-- | Construct a value of type 'EditIssueOption' (by applying it's required fields, if any)+mkEditIssueOption+  :: EditIssueOption+mkEditIssueOption =+  EditIssueOption+  { editIssueOptionAssignee = Nothing+  , editIssueOptionAssignees = Nothing+  , editIssueOptionBody = Nothing+  , editIssueOptionDueDate = Nothing+  , editIssueOptionMilestone = Nothing+  , editIssueOptionRef = Nothing+  , editIssueOptionState = Nothing+  , editIssueOptionTitle = Nothing+  , editIssueOptionUnsetDueDate = Nothing+  }++-- ** EditLabelOption+-- | EditLabelOption+-- EditLabelOption options for editing a label+data EditLabelOption = EditLabelOption+  { editLabelOptionColor :: !(Maybe Text) -- ^ "color"+  , editLabelOptionDescription :: !(Maybe Text) -- ^ "description"+  , editLabelOptionExclusive :: !(Maybe Bool) -- ^ "exclusive"+  , editLabelOptionName :: !(Maybe Text) -- ^ "name"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON EditLabelOption+instance A.FromJSON EditLabelOption where+  parseJSON = A.withObject "EditLabelOption" $ \o ->+    EditLabelOption+      <$> (o .:? "color")+      <*> (o .:? "description")+      <*> (o .:? "exclusive")+      <*> (o .:? "name")++-- | ToJSON EditLabelOption+instance A.ToJSON EditLabelOption where+  toJSON EditLabelOption {..} =+   _omitNulls+      [ "color" .= editLabelOptionColor+      , "description" .= editLabelOptionDescription+      , "exclusive" .= editLabelOptionExclusive+      , "name" .= editLabelOptionName+      ]+++-- | Construct a value of type 'EditLabelOption' (by applying it's required fields, if any)+mkEditLabelOption+  :: EditLabelOption+mkEditLabelOption =+  EditLabelOption+  { editLabelOptionColor = Nothing+  , editLabelOptionDescription = Nothing+  , editLabelOptionExclusive = Nothing+  , editLabelOptionName = Nothing+  }++-- ** EditMilestoneOption+-- | EditMilestoneOption+-- EditMilestoneOption options for editing a milestone+data EditMilestoneOption = EditMilestoneOption+  { editMilestoneOptionDescription :: !(Maybe Text) -- ^ "description"+  , editMilestoneOptionDueOn :: !(Maybe DateTime) -- ^ "due_on"+  , editMilestoneOptionState :: !(Maybe Text) -- ^ "state"+  , editMilestoneOptionTitle :: !(Maybe Text) -- ^ "title"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON EditMilestoneOption+instance A.FromJSON EditMilestoneOption where+  parseJSON = A.withObject "EditMilestoneOption" $ \o ->+    EditMilestoneOption+      <$> (o .:? "description")+      <*> (o .:? "due_on")+      <*> (o .:? "state")+      <*> (o .:? "title")++-- | ToJSON EditMilestoneOption+instance A.ToJSON EditMilestoneOption where+  toJSON EditMilestoneOption {..} =+   _omitNulls+      [ "description" .= editMilestoneOptionDescription+      , "due_on" .= editMilestoneOptionDueOn+      , "state" .= editMilestoneOptionState+      , "title" .= editMilestoneOptionTitle+      ]+++-- | Construct a value of type 'EditMilestoneOption' (by applying it's required fields, if any)+mkEditMilestoneOption+  :: EditMilestoneOption+mkEditMilestoneOption =+  EditMilestoneOption+  { editMilestoneOptionDescription = Nothing+  , editMilestoneOptionDueOn = Nothing+  , editMilestoneOptionState = Nothing+  , editMilestoneOptionTitle = Nothing+  }++-- ** EditOrgOption+-- | EditOrgOption+-- EditOrgOption options for editing an organization+data EditOrgOption = EditOrgOption+  { editOrgOptionDescription :: !(Maybe Text) -- ^ "description"+  , editOrgOptionFullName :: !(Maybe Text) -- ^ "full_name"+  , editOrgOptionLocation :: !(Maybe Text) -- ^ "location"+  , editOrgOptionRepoAdminChangeTeamAccess :: !(Maybe Bool) -- ^ "repo_admin_change_team_access"+  , editOrgOptionVisibility :: !(Maybe E'Visibility) -- ^ "visibility" - possible values are &#x60;public&#x60;, &#x60;limited&#x60; or &#x60;private&#x60;+  , editOrgOptionWebsite :: !(Maybe Text) -- ^ "website"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON EditOrgOption+instance A.FromJSON EditOrgOption where+  parseJSON = A.withObject "EditOrgOption" $ \o ->+    EditOrgOption+      <$> (o .:? "description")+      <*> (o .:? "full_name")+      <*> (o .:? "location")+      <*> (o .:? "repo_admin_change_team_access")+      <*> (o .:? "visibility")+      <*> (o .:? "website")++-- | ToJSON EditOrgOption+instance A.ToJSON EditOrgOption where+  toJSON EditOrgOption {..} =+   _omitNulls+      [ "description" .= editOrgOptionDescription+      , "full_name" .= editOrgOptionFullName+      , "location" .= editOrgOptionLocation+      , "repo_admin_change_team_access" .= editOrgOptionRepoAdminChangeTeamAccess+      , "visibility" .= editOrgOptionVisibility+      , "website" .= editOrgOptionWebsite+      ]+++-- | Construct a value of type 'EditOrgOption' (by applying it's required fields, if any)+mkEditOrgOption+  :: EditOrgOption+mkEditOrgOption =+  EditOrgOption+  { editOrgOptionDescription = Nothing+  , editOrgOptionFullName = Nothing+  , editOrgOptionLocation = Nothing+  , editOrgOptionRepoAdminChangeTeamAccess = Nothing+  , editOrgOptionVisibility = Nothing+  , editOrgOptionWebsite = Nothing+  }++-- ** EditPullRequestOption+-- | EditPullRequestOption+-- EditPullRequestOption options when modify pull request+data EditPullRequestOption = EditPullRequestOption+  { editPullRequestOptionAllowMaintainerEdit :: !(Maybe Bool) -- ^ "allow_maintainer_edit"+  , editPullRequestOptionAssignee :: !(Maybe Text) -- ^ "assignee"+  , editPullRequestOptionAssignees :: !(Maybe [Text]) -- ^ "assignees"+  , editPullRequestOptionBase :: !(Maybe Text) -- ^ "base"+  , editPullRequestOptionBody :: !(Maybe Text) -- ^ "body"+  , editPullRequestOptionDueDate :: !(Maybe DateTime) -- ^ "due_date"+  , editPullRequestOptionLabels :: !(Maybe [Integer]) -- ^ "labels"+  , editPullRequestOptionMilestone :: !(Maybe Integer) -- ^ "milestone"+  , editPullRequestOptionState :: !(Maybe Text) -- ^ "state"+  , editPullRequestOptionTitle :: !(Maybe Text) -- ^ "title"+  , editPullRequestOptionUnsetDueDate :: !(Maybe Bool) -- ^ "unset_due_date"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON EditPullRequestOption+instance A.FromJSON EditPullRequestOption where+  parseJSON = A.withObject "EditPullRequestOption" $ \o ->+    EditPullRequestOption+      <$> (o .:? "allow_maintainer_edit")+      <*> (o .:? "assignee")+      <*> (o .:? "assignees")+      <*> (o .:? "base")+      <*> (o .:? "body")+      <*> (o .:? "due_date")+      <*> (o .:? "labels")+      <*> (o .:? "milestone")+      <*> (o .:? "state")+      <*> (o .:? "title")+      <*> (o .:? "unset_due_date")++-- | ToJSON EditPullRequestOption+instance A.ToJSON EditPullRequestOption where+  toJSON EditPullRequestOption {..} =+   _omitNulls+      [ "allow_maintainer_edit" .= editPullRequestOptionAllowMaintainerEdit+      , "assignee" .= editPullRequestOptionAssignee+      , "assignees" .= editPullRequestOptionAssignees+      , "base" .= editPullRequestOptionBase+      , "body" .= editPullRequestOptionBody+      , "due_date" .= editPullRequestOptionDueDate+      , "labels" .= editPullRequestOptionLabels+      , "milestone" .= editPullRequestOptionMilestone+      , "state" .= editPullRequestOptionState+      , "title" .= editPullRequestOptionTitle+      , "unset_due_date" .= editPullRequestOptionUnsetDueDate+      ]+++-- | Construct a value of type 'EditPullRequestOption' (by applying it's required fields, if any)+mkEditPullRequestOption+  :: EditPullRequestOption+mkEditPullRequestOption =+  EditPullRequestOption+  { editPullRequestOptionAllowMaintainerEdit = Nothing+  , editPullRequestOptionAssignee = Nothing+  , editPullRequestOptionAssignees = Nothing+  , editPullRequestOptionBase = Nothing+  , editPullRequestOptionBody = Nothing+  , editPullRequestOptionDueDate = Nothing+  , editPullRequestOptionLabels = Nothing+  , editPullRequestOptionMilestone = Nothing+  , editPullRequestOptionState = Nothing+  , editPullRequestOptionTitle = Nothing+  , editPullRequestOptionUnsetDueDate = Nothing+  }++-- ** EditReactionOption+-- | EditReactionOption+-- EditReactionOption contain the reaction type+data EditReactionOption = EditReactionOption+  { editReactionOptionContent :: !(Maybe Text) -- ^ "content"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON EditReactionOption+instance A.FromJSON EditReactionOption where+  parseJSON = A.withObject "EditReactionOption" $ \o ->+    EditReactionOption+      <$> (o .:? "content")++-- | ToJSON EditReactionOption+instance A.ToJSON EditReactionOption where+  toJSON EditReactionOption {..} =+   _omitNulls+      [ "content" .= editReactionOptionContent+      ]+++-- | Construct a value of type 'EditReactionOption' (by applying it's required fields, if any)+mkEditReactionOption+  :: EditReactionOption+mkEditReactionOption =+  EditReactionOption+  { editReactionOptionContent = Nothing+  }++-- ** EditReleaseOption+-- | EditReleaseOption+-- EditReleaseOption options when editing a release+data EditReleaseOption = EditReleaseOption+  { editReleaseOptionBody :: !(Maybe Text) -- ^ "body"+  , editReleaseOptionDraft :: !(Maybe Bool) -- ^ "draft"+  , editReleaseOptionName :: !(Maybe Text) -- ^ "name"+  , editReleaseOptionPrerelease :: !(Maybe Bool) -- ^ "prerelease"+  , editReleaseOptionTagName :: !(Maybe Text) -- ^ "tag_name"+  , editReleaseOptionTargetCommitish :: !(Maybe Text) -- ^ "target_commitish"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON EditReleaseOption+instance A.FromJSON EditReleaseOption where+  parseJSON = A.withObject "EditReleaseOption" $ \o ->+    EditReleaseOption+      <$> (o .:? "body")+      <*> (o .:? "draft")+      <*> (o .:? "name")+      <*> (o .:? "prerelease")+      <*> (o .:? "tag_name")+      <*> (o .:? "target_commitish")++-- | ToJSON EditReleaseOption+instance A.ToJSON EditReleaseOption where+  toJSON EditReleaseOption {..} =+   _omitNulls+      [ "body" .= editReleaseOptionBody+      , "draft" .= editReleaseOptionDraft+      , "name" .= editReleaseOptionName+      , "prerelease" .= editReleaseOptionPrerelease+      , "tag_name" .= editReleaseOptionTagName+      , "target_commitish" .= editReleaseOptionTargetCommitish+      ]+++-- | Construct a value of type 'EditReleaseOption' (by applying it's required fields, if any)+mkEditReleaseOption+  :: EditReleaseOption+mkEditReleaseOption =+  EditReleaseOption+  { editReleaseOptionBody = Nothing+  , editReleaseOptionDraft = Nothing+  , editReleaseOptionName = Nothing+  , editReleaseOptionPrerelease = Nothing+  , editReleaseOptionTagName = Nothing+  , editReleaseOptionTargetCommitish = Nothing+  }++-- ** EditRepoOption+-- | EditRepoOption+-- EditRepoOption options when editing a repository's properties+data EditRepoOption = EditRepoOption+  { editRepoOptionAllowManualMerge :: !(Maybe Bool) -- ^ "allow_manual_merge" - either &#x60;true&#x60; to allow mark pr as merged manually, or &#x60;false&#x60; to prevent it.+  , editRepoOptionAllowMergeCommits :: !(Maybe Bool) -- ^ "allow_merge_commits" - either &#x60;true&#x60; to allow merging pull requests with a merge commit, or &#x60;false&#x60; to prevent merging pull requests with merge commits.+  , editRepoOptionAllowRebase :: !(Maybe Bool) -- ^ "allow_rebase" - either &#x60;true&#x60; to allow rebase-merging pull requests, or &#x60;false&#x60; to prevent rebase-merging.+  , editRepoOptionAllowRebaseExplicit :: !(Maybe Bool) -- ^ "allow_rebase_explicit" - either &#x60;true&#x60; to allow rebase with explicit merge commits (--no-ff), or &#x60;false&#x60; to prevent rebase with explicit merge commits.+  , editRepoOptionAllowRebaseUpdate :: !(Maybe Bool) -- ^ "allow_rebase_update" - either &#x60;true&#x60; to allow updating pull request branch by rebase, or &#x60;false&#x60; to prevent it.+  , editRepoOptionAllowSquashMerge :: !(Maybe Bool) -- ^ "allow_squash_merge" - either &#x60;true&#x60; to allow squash-merging pull requests, or &#x60;false&#x60; to prevent squash-merging.+  , editRepoOptionArchived :: !(Maybe Bool) -- ^ "archived" - set to &#x60;true&#x60; to archive this repository.+  , editRepoOptionAutodetectManualMerge :: !(Maybe Bool) -- ^ "autodetect_manual_merge" - either &#x60;true&#x60; to enable AutodetectManualMerge, or &#x60;false&#x60; to prevent it. Note: In some special cases, misjudgments can occur.+  , editRepoOptionDefaultAllowMaintainerEdit :: !(Maybe Bool) -- ^ "default_allow_maintainer_edit" - set to &#x60;true&#x60; to allow edits from maintainers by default+  , editRepoOptionDefaultBranch :: !(Maybe Text) -- ^ "default_branch" - sets the default branch for this repository.+  , editRepoOptionDefaultDeleteBranchAfterMerge :: !(Maybe Bool) -- ^ "default_delete_branch_after_merge" - set to &#x60;true&#x60; to delete pr branch after merge by default+  , editRepoOptionDefaultMergeStyle :: !(Maybe Text) -- ^ "default_merge_style" - set to a merge style to be used by this repository: \&quot;merge\&quot;, \&quot;rebase\&quot;, \&quot;rebase-merge\&quot;, or \&quot;squash\&quot;.+  , editRepoOptionDescription :: !(Maybe Text) -- ^ "description" - a short description of the repository.+  , editRepoOptionEnablePrune :: !(Maybe Bool) -- ^ "enable_prune" - enable prune - remove obsolete remote-tracking references+  , editRepoOptionExternalTracker :: !(Maybe ExternalTracker) -- ^ "external_tracker"+  , editRepoOptionExternalWiki :: !(Maybe ExternalWiki) -- ^ "external_wiki"+  , editRepoOptionHasIssues :: !(Maybe Bool) -- ^ "has_issues" - either &#x60;true&#x60; to enable issues for this repository or &#x60;false&#x60; to disable them.+  , editRepoOptionHasProjects :: !(Maybe Bool) -- ^ "has_projects" - either &#x60;true&#x60; to enable project unit, or &#x60;false&#x60; to disable them.+  , editRepoOptionHasPullRequests :: !(Maybe Bool) -- ^ "has_pull_requests" - either &#x60;true&#x60; to allow pull requests, or &#x60;false&#x60; to prevent pull request.+  , editRepoOptionHasWiki :: !(Maybe Bool) -- ^ "has_wiki" - either &#x60;true&#x60; to enable the wiki for this repository or &#x60;false&#x60; to disable it.+  , editRepoOptionIgnoreWhitespaceConflicts :: !(Maybe Bool) -- ^ "ignore_whitespace_conflicts" - either &#x60;true&#x60; to ignore whitespace for conflicts, or &#x60;false&#x60; to not ignore whitespace.+  , editRepoOptionInternalTracker :: !(Maybe InternalTracker) -- ^ "internal_tracker"+  , editRepoOptionMirrorInterval :: !(Maybe Text) -- ^ "mirror_interval" - set to a string like &#x60;8h30m0s&#x60; to set the mirror interval time+  , editRepoOptionName :: !(Maybe Text) -- ^ "name" - name of the repository+  , editRepoOptionPrivate :: !(Maybe Bool) -- ^ "private" - either &#x60;true&#x60; to make the repository private or &#x60;false&#x60; to make it public. Note: you will get a 422 error if the organization restricts changing repository visibility to organization owners and a non-owner tries to change the value of private.+  , editRepoOptionTemplate :: !(Maybe Bool) -- ^ "template" - either &#x60;true&#x60; to make this repository a template or &#x60;false&#x60; to make it a normal repository+  , editRepoOptionWebsite :: !(Maybe Text) -- ^ "website" - a URL with more information about the repository.+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON EditRepoOption+instance A.FromJSON EditRepoOption where+  parseJSON = A.withObject "EditRepoOption" $ \o ->+    EditRepoOption+      <$> (o .:? "allow_manual_merge")+      <*> (o .:? "allow_merge_commits")+      <*> (o .:? "allow_rebase")+      <*> (o .:? "allow_rebase_explicit")+      <*> (o .:? "allow_rebase_update")+      <*> (o .:? "allow_squash_merge")+      <*> (o .:? "archived")+      <*> (o .:? "autodetect_manual_merge")+      <*> (o .:? "default_allow_maintainer_edit")+      <*> (o .:? "default_branch")+      <*> (o .:? "default_delete_branch_after_merge")+      <*> (o .:? "default_merge_style")+      <*> (o .:? "description")+      <*> (o .:? "enable_prune")+      <*> (o .:? "external_tracker")+      <*> (o .:? "external_wiki")+      <*> (o .:? "has_issues")+      <*> (o .:? "has_projects")+      <*> (o .:? "has_pull_requests")+      <*> (o .:? "has_wiki")+      <*> (o .:? "ignore_whitespace_conflicts")+      <*> (o .:? "internal_tracker")+      <*> (o .:? "mirror_interval")+      <*> (o .:? "name")+      <*> (o .:? "private")+      <*> (o .:? "template")+      <*> (o .:? "website")++-- | ToJSON EditRepoOption+instance A.ToJSON EditRepoOption where+  toJSON EditRepoOption {..} =+   _omitNulls+      [ "allow_manual_merge" .= editRepoOptionAllowManualMerge+      , "allow_merge_commits" .= editRepoOptionAllowMergeCommits+      , "allow_rebase" .= editRepoOptionAllowRebase+      , "allow_rebase_explicit" .= editRepoOptionAllowRebaseExplicit+      , "allow_rebase_update" .= editRepoOptionAllowRebaseUpdate+      , "allow_squash_merge" .= editRepoOptionAllowSquashMerge+      , "archived" .= editRepoOptionArchived+      , "autodetect_manual_merge" .= editRepoOptionAutodetectManualMerge+      , "default_allow_maintainer_edit" .= editRepoOptionDefaultAllowMaintainerEdit+      , "default_branch" .= editRepoOptionDefaultBranch+      , "default_delete_branch_after_merge" .= editRepoOptionDefaultDeleteBranchAfterMerge+      , "default_merge_style" .= editRepoOptionDefaultMergeStyle+      , "description" .= editRepoOptionDescription+      , "enable_prune" .= editRepoOptionEnablePrune+      , "external_tracker" .= editRepoOptionExternalTracker+      , "external_wiki" .= editRepoOptionExternalWiki+      , "has_issues" .= editRepoOptionHasIssues+      , "has_projects" .= editRepoOptionHasProjects+      , "has_pull_requests" .= editRepoOptionHasPullRequests+      , "has_wiki" .= editRepoOptionHasWiki+      , "ignore_whitespace_conflicts" .= editRepoOptionIgnoreWhitespaceConflicts+      , "internal_tracker" .= editRepoOptionInternalTracker+      , "mirror_interval" .= editRepoOptionMirrorInterval+      , "name" .= editRepoOptionName+      , "private" .= editRepoOptionPrivate+      , "template" .= editRepoOptionTemplate+      , "website" .= editRepoOptionWebsite+      ]+++-- | Construct a value of type 'EditRepoOption' (by applying it's required fields, if any)+mkEditRepoOption+  :: EditRepoOption+mkEditRepoOption =+  EditRepoOption+  { editRepoOptionAllowManualMerge = Nothing+  , editRepoOptionAllowMergeCommits = Nothing+  , editRepoOptionAllowRebase = Nothing+  , editRepoOptionAllowRebaseExplicit = Nothing+  , editRepoOptionAllowRebaseUpdate = Nothing+  , editRepoOptionAllowSquashMerge = Nothing+  , editRepoOptionArchived = Nothing+  , editRepoOptionAutodetectManualMerge = Nothing+  , editRepoOptionDefaultAllowMaintainerEdit = Nothing+  , editRepoOptionDefaultBranch = Nothing+  , editRepoOptionDefaultDeleteBranchAfterMerge = Nothing+  , editRepoOptionDefaultMergeStyle = Nothing+  , editRepoOptionDescription = Nothing+  , editRepoOptionEnablePrune = Nothing+  , editRepoOptionExternalTracker = Nothing+  , editRepoOptionExternalWiki = Nothing+  , editRepoOptionHasIssues = Nothing+  , editRepoOptionHasProjects = Nothing+  , editRepoOptionHasPullRequests = Nothing+  , editRepoOptionHasWiki = Nothing+  , editRepoOptionIgnoreWhitespaceConflicts = Nothing+  , editRepoOptionInternalTracker = Nothing+  , editRepoOptionMirrorInterval = Nothing+  , editRepoOptionName = Nothing+  , editRepoOptionPrivate = Nothing+  , editRepoOptionTemplate = Nothing+  , editRepoOptionWebsite = Nothing+  }++-- ** EditTeamOption+-- | EditTeamOption+-- EditTeamOption options for editing a team+data EditTeamOption = EditTeamOption+  { editTeamOptionCanCreateOrgRepo :: !(Maybe Bool) -- ^ "can_create_org_repo"+  , editTeamOptionDescription :: !(Maybe Text) -- ^ "description"+  , editTeamOptionIncludesAllRepositories :: !(Maybe Bool) -- ^ "includes_all_repositories"+  , editTeamOptionName :: !(Text) -- ^ /Required/ "name"+  , editTeamOptionPermission :: !(Maybe E'Permission) -- ^ "permission"+  , editTeamOptionUnits :: !(Maybe [Text]) -- ^ "units"+  , editTeamOptionUnitsMap :: !(Maybe (Map.Map String Text)) -- ^ "units_map"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON EditTeamOption+instance A.FromJSON EditTeamOption where+  parseJSON = A.withObject "EditTeamOption" $ \o ->+    EditTeamOption+      <$> (o .:? "can_create_org_repo")+      <*> (o .:? "description")+      <*> (o .:? "includes_all_repositories")+      <*> (o .:  "name")+      <*> (o .:? "permission")+      <*> (o .:? "units")+      <*> (o .:? "units_map")++-- | ToJSON EditTeamOption+instance A.ToJSON EditTeamOption where+  toJSON EditTeamOption {..} =+   _omitNulls+      [ "can_create_org_repo" .= editTeamOptionCanCreateOrgRepo+      , "description" .= editTeamOptionDescription+      , "includes_all_repositories" .= editTeamOptionIncludesAllRepositories+      , "name" .= editTeamOptionName+      , "permission" .= editTeamOptionPermission+      , "units" .= editTeamOptionUnits+      , "units_map" .= editTeamOptionUnitsMap+      ]+++-- | Construct a value of type 'EditTeamOption' (by applying it's required fields, if any)+mkEditTeamOption+  :: Text -- ^ 'editTeamOptionName' +  -> EditTeamOption+mkEditTeamOption editTeamOptionName =+  EditTeamOption+  { editTeamOptionCanCreateOrgRepo = Nothing+  , editTeamOptionDescription = Nothing+  , editTeamOptionIncludesAllRepositories = Nothing+  , editTeamOptionName+  , editTeamOptionPermission = Nothing+  , editTeamOptionUnits = Nothing+  , editTeamOptionUnitsMap = Nothing+  }++-- ** EditUserOption+-- | EditUserOption+-- EditUserOption edit user options+data EditUserOption = EditUserOption+  { editUserOptionActive :: !(Maybe Bool) -- ^ "active"+  , editUserOptionAdmin :: !(Maybe Bool) -- ^ "admin"+  , editUserOptionAllowCreateOrganization :: !(Maybe Bool) -- ^ "allow_create_organization"+  , editUserOptionAllowGitHook :: !(Maybe Bool) -- ^ "allow_git_hook"+  , editUserOptionAllowImportLocal :: !(Maybe Bool) -- ^ "allow_import_local"+  , editUserOptionDescription :: !(Maybe Text) -- ^ "description"+  , editUserOptionEmail :: !(Maybe Text) -- ^ "email"+  , editUserOptionFullName :: !(Maybe Text) -- ^ "full_name"+  , editUserOptionLocation :: !(Maybe Text) -- ^ "location"+  , editUserOptionLoginName :: !(Text) -- ^ /Required/ "login_name"+  , editUserOptionMaxRepoCreation :: !(Maybe Integer) -- ^ "max_repo_creation"+  , editUserOptionMustChangePassword :: !(Maybe Bool) -- ^ "must_change_password"+  , editUserOptionPassword :: !(Maybe Text) -- ^ "password"+  , editUserOptionProhibitLogin :: !(Maybe Bool) -- ^ "prohibit_login"+  , editUserOptionRestricted :: !(Maybe Bool) -- ^ "restricted"+  , editUserOptionSourceId :: !(Integer) -- ^ /Required/ "source_id"+  , editUserOptionVisibility :: !(Maybe Text) -- ^ "visibility"+  , editUserOptionWebsite :: !(Maybe Text) -- ^ "website"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON EditUserOption+instance A.FromJSON EditUserOption where+  parseJSON = A.withObject "EditUserOption" $ \o ->+    EditUserOption+      <$> (o .:? "active")+      <*> (o .:? "admin")+      <*> (o .:? "allow_create_organization")+      <*> (o .:? "allow_git_hook")+      <*> (o .:? "allow_import_local")+      <*> (o .:? "description")+      <*> (o .:? "email")+      <*> (o .:? "full_name")+      <*> (o .:? "location")+      <*> (o .:  "login_name")+      <*> (o .:? "max_repo_creation")+      <*> (o .:? "must_change_password")+      <*> (o .:? "password")+      <*> (o .:? "prohibit_login")+      <*> (o .:? "restricted")+      <*> (o .:  "source_id")+      <*> (o .:? "visibility")+      <*> (o .:? "website")++-- | ToJSON EditUserOption+instance A.ToJSON EditUserOption where+  toJSON EditUserOption {..} =+   _omitNulls+      [ "active" .= editUserOptionActive+      , "admin" .= editUserOptionAdmin+      , "allow_create_organization" .= editUserOptionAllowCreateOrganization+      , "allow_git_hook" .= editUserOptionAllowGitHook+      , "allow_import_local" .= editUserOptionAllowImportLocal+      , "description" .= editUserOptionDescription+      , "email" .= editUserOptionEmail+      , "full_name" .= editUserOptionFullName+      , "location" .= editUserOptionLocation+      , "login_name" .= editUserOptionLoginName+      , "max_repo_creation" .= editUserOptionMaxRepoCreation+      , "must_change_password" .= editUserOptionMustChangePassword+      , "password" .= editUserOptionPassword+      , "prohibit_login" .= editUserOptionProhibitLogin+      , "restricted" .= editUserOptionRestricted+      , "source_id" .= editUserOptionSourceId+      , "visibility" .= editUserOptionVisibility+      , "website" .= editUserOptionWebsite+      ]+++-- | Construct a value of type 'EditUserOption' (by applying it's required fields, if any)+mkEditUserOption+  :: Text -- ^ 'editUserOptionLoginName' +  -> Integer -- ^ 'editUserOptionSourceId' +  -> EditUserOption+mkEditUserOption editUserOptionLoginName editUserOptionSourceId =+  EditUserOption+  { editUserOptionActive = Nothing+  , editUserOptionAdmin = Nothing+  , editUserOptionAllowCreateOrganization = Nothing+  , editUserOptionAllowGitHook = Nothing+  , editUserOptionAllowImportLocal = Nothing+  , editUserOptionDescription = Nothing+  , editUserOptionEmail = Nothing+  , editUserOptionFullName = Nothing+  , editUserOptionLocation = Nothing+  , editUserOptionLoginName+  , editUserOptionMaxRepoCreation = Nothing+  , editUserOptionMustChangePassword = Nothing+  , editUserOptionPassword = Nothing+  , editUserOptionProhibitLogin = Nothing+  , editUserOptionRestricted = Nothing+  , editUserOptionSourceId+  , editUserOptionVisibility = Nothing+  , editUserOptionWebsite = Nothing+  }++-- ** Email+-- | Email+-- Email an email address belonging to a user+data Email = Email+  { emailEmail :: !(Maybe Text) -- ^ "email"+  , emailPrimary :: !(Maybe Bool) -- ^ "primary"+  , emailVerified :: !(Maybe Bool) -- ^ "verified"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON Email+instance A.FromJSON Email where+  parseJSON = A.withObject "Email" $ \o ->+    Email+      <$> (o .:? "email")+      <*> (o .:? "primary")+      <*> (o .:? "verified")++-- | ToJSON Email+instance A.ToJSON Email where+  toJSON Email {..} =+   _omitNulls+      [ "email" .= emailEmail+      , "primary" .= emailPrimary+      , "verified" .= emailVerified+      ]+++-- | Construct a value of type 'Email' (by applying it's required fields, if any)+mkEmail+  :: Email+mkEmail =+  Email+  { emailEmail = Nothing+  , emailPrimary = Nothing+  , emailVerified = Nothing+  }++-- ** ExternalTracker+-- | ExternalTracker+-- ExternalTracker represents settings for external tracker+data ExternalTracker = ExternalTracker+  { externalTrackerExternalTrackerFormat :: !(Maybe Text) -- ^ "external_tracker_format" - External Issue Tracker URL Format. Use the placeholders {user}, {repo} and {index} for the username, repository name and issue index.+  , externalTrackerExternalTrackerRegexpPattern :: !(Maybe Text) -- ^ "external_tracker_regexp_pattern" - External Issue Tracker issue regular expression+  , externalTrackerExternalTrackerStyle :: !(Maybe Text) -- ^ "external_tracker_style" - External Issue Tracker Number Format, either &#x60;numeric&#x60;, &#x60;alphanumeric&#x60;, or &#x60;regexp&#x60;+  , externalTrackerExternalTrackerUrl :: !(Maybe Text) -- ^ "external_tracker_url" - URL of external issue tracker.+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON ExternalTracker+instance A.FromJSON ExternalTracker where+  parseJSON = A.withObject "ExternalTracker" $ \o ->+    ExternalTracker+      <$> (o .:? "external_tracker_format")+      <*> (o .:? "external_tracker_regexp_pattern")+      <*> (o .:? "external_tracker_style")+      <*> (o .:? "external_tracker_url")++-- | ToJSON ExternalTracker+instance A.ToJSON ExternalTracker where+  toJSON ExternalTracker {..} =+   _omitNulls+      [ "external_tracker_format" .= externalTrackerExternalTrackerFormat+      , "external_tracker_regexp_pattern" .= externalTrackerExternalTrackerRegexpPattern+      , "external_tracker_style" .= externalTrackerExternalTrackerStyle+      , "external_tracker_url" .= externalTrackerExternalTrackerUrl+      ]+++-- | Construct a value of type 'ExternalTracker' (by applying it's required fields, if any)+mkExternalTracker+  :: ExternalTracker+mkExternalTracker =+  ExternalTracker+  { externalTrackerExternalTrackerFormat = Nothing+  , externalTrackerExternalTrackerRegexpPattern = Nothing+  , externalTrackerExternalTrackerStyle = Nothing+  , externalTrackerExternalTrackerUrl = Nothing+  }++-- ** ExternalWiki+-- | ExternalWiki+-- ExternalWiki represents setting for external wiki+data ExternalWiki = ExternalWiki+  { externalWikiExternalWikiUrl :: !(Maybe Text) -- ^ "external_wiki_url" - URL of external wiki.+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON ExternalWiki+instance A.FromJSON ExternalWiki where+  parseJSON = A.withObject "ExternalWiki" $ \o ->+    ExternalWiki+      <$> (o .:? "external_wiki_url")++-- | ToJSON ExternalWiki+instance A.ToJSON ExternalWiki where+  toJSON ExternalWiki {..} =+   _omitNulls+      [ "external_wiki_url" .= externalWikiExternalWikiUrl+      ]+++-- | Construct a value of type 'ExternalWiki' (by applying it's required fields, if any)+mkExternalWiki+  :: ExternalWiki+mkExternalWiki =+  ExternalWiki+  { externalWikiExternalWikiUrl = Nothing+  }++-- ** FileCommitResponse+-- | FileCommitResponse+-- FileCommitResponse contains information generated from a Git commit for a repo's file.+-- +data FileCommitResponse = FileCommitResponse+  { fileCommitResponseAuthor :: !(Maybe CommitUser) -- ^ "author"+  , fileCommitResponseCommitter :: !(Maybe CommitUser) -- ^ "committer"+  , fileCommitResponseCreated :: !(Maybe DateTime) -- ^ "created"+  , fileCommitResponseHtmlUrl :: !(Maybe Text) -- ^ "html_url"+  , fileCommitResponseMessage :: !(Maybe Text) -- ^ "message"+  , fileCommitResponseParents :: !(Maybe [CommitMeta]) -- ^ "parents"+  , fileCommitResponseSha :: !(Maybe Text) -- ^ "sha"+  , fileCommitResponseTree :: !(Maybe CommitMeta) -- ^ "tree"+  , fileCommitResponseUrl :: !(Maybe Text) -- ^ "url"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON FileCommitResponse+instance A.FromJSON FileCommitResponse where+  parseJSON = A.withObject "FileCommitResponse" $ \o ->+    FileCommitResponse+      <$> (o .:? "author")+      <*> (o .:? "committer")+      <*> (o .:? "created")+      <*> (o .:? "html_url")+      <*> (o .:? "message")+      <*> (o .:? "parents")+      <*> (o .:? "sha")+      <*> (o .:? "tree")+      <*> (o .:? "url")++-- | ToJSON FileCommitResponse+instance A.ToJSON FileCommitResponse where+  toJSON FileCommitResponse {..} =+   _omitNulls+      [ "author" .= fileCommitResponseAuthor+      , "committer" .= fileCommitResponseCommitter+      , "created" .= fileCommitResponseCreated+      , "html_url" .= fileCommitResponseHtmlUrl+      , "message" .= fileCommitResponseMessage+      , "parents" .= fileCommitResponseParents+      , "sha" .= fileCommitResponseSha+      , "tree" .= fileCommitResponseTree+      , "url" .= fileCommitResponseUrl+      ]+++-- | Construct a value of type 'FileCommitResponse' (by applying it's required fields, if any)+mkFileCommitResponse+  :: FileCommitResponse+mkFileCommitResponse =+  FileCommitResponse+  { fileCommitResponseAuthor = Nothing+  , fileCommitResponseCommitter = Nothing+  , fileCommitResponseCreated = Nothing+  , fileCommitResponseHtmlUrl = Nothing+  , fileCommitResponseMessage = Nothing+  , fileCommitResponseParents = Nothing+  , fileCommitResponseSha = Nothing+  , fileCommitResponseTree = Nothing+  , fileCommitResponseUrl = Nothing+  }++-- ** FileDeleteResponse+-- | FileDeleteResponse+-- FileDeleteResponse contains information about a repo's file that was deleted+data FileDeleteResponse = FileDeleteResponse+  { fileDeleteResponseCommit :: !(Maybe FileCommitResponse) -- ^ "commit"+  , fileDeleteResponseContent :: !(Maybe A.Value) -- ^ "content"+  , fileDeleteResponseVerification :: !(Maybe PayloadCommitVerification) -- ^ "verification"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON FileDeleteResponse+instance A.FromJSON FileDeleteResponse where+  parseJSON = A.withObject "FileDeleteResponse" $ \o ->+    FileDeleteResponse+      <$> (o .:? "commit")+      <*> (o .:? "content")+      <*> (o .:? "verification")++-- | ToJSON FileDeleteResponse+instance A.ToJSON FileDeleteResponse where+  toJSON FileDeleteResponse {..} =+   _omitNulls+      [ "commit" .= fileDeleteResponseCommit+      , "content" .= fileDeleteResponseContent+      , "verification" .= fileDeleteResponseVerification+      ]+++-- | Construct a value of type 'FileDeleteResponse' (by applying it's required fields, if any)+mkFileDeleteResponse+  :: FileDeleteResponse+mkFileDeleteResponse =+  FileDeleteResponse+  { fileDeleteResponseCommit = Nothing+  , fileDeleteResponseContent = Nothing+  , fileDeleteResponseVerification = Nothing+  }++-- ** FileLinksResponse+-- | FileLinksResponse+-- FileLinksResponse contains the links for a repo's file+data FileLinksResponse = FileLinksResponse+  { fileLinksResponseGit :: !(Maybe Text) -- ^ "git"+  , fileLinksResponseHtml :: !(Maybe Text) -- ^ "html"+  , fileLinksResponseSelf :: !(Maybe Text) -- ^ "self"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON FileLinksResponse+instance A.FromJSON FileLinksResponse where+  parseJSON = A.withObject "FileLinksResponse" $ \o ->+    FileLinksResponse+      <$> (o .:? "git")+      <*> (o .:? "html")+      <*> (o .:? "self")++-- | ToJSON FileLinksResponse+instance A.ToJSON FileLinksResponse where+  toJSON FileLinksResponse {..} =+   _omitNulls+      [ "git" .= fileLinksResponseGit+      , "html" .= fileLinksResponseHtml+      , "self" .= fileLinksResponseSelf+      ]+++-- | Construct a value of type 'FileLinksResponse' (by applying it's required fields, if any)+mkFileLinksResponse+  :: FileLinksResponse+mkFileLinksResponse =+  FileLinksResponse+  { fileLinksResponseGit = Nothing+  , fileLinksResponseHtml = Nothing+  , fileLinksResponseSelf = Nothing+  }++-- ** FileResponse+-- | FileResponse+-- FileResponse contains information about a repo's file+data FileResponse = FileResponse+  { fileResponseCommit :: !(Maybe FileCommitResponse) -- ^ "commit"+  , fileResponseContent :: !(Maybe ContentsResponse) -- ^ "content"+  , fileResponseVerification :: !(Maybe PayloadCommitVerification) -- ^ "verification"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON FileResponse+instance A.FromJSON FileResponse where+  parseJSON = A.withObject "FileResponse" $ \o ->+    FileResponse+      <$> (o .:? "commit")+      <*> (o .:? "content")+      <*> (o .:? "verification")++-- | ToJSON FileResponse+instance A.ToJSON FileResponse where+  toJSON FileResponse {..} =+   _omitNulls+      [ "commit" .= fileResponseCommit+      , "content" .= fileResponseContent+      , "verification" .= fileResponseVerification+      ]+++-- | Construct a value of type 'FileResponse' (by applying it's required fields, if any)+mkFileResponse+  :: FileResponse+mkFileResponse =+  FileResponse+  { fileResponseCommit = Nothing+  , fileResponseContent = Nothing+  , fileResponseVerification = Nothing+  }++-- ** GPGKey+-- | GPGKey+-- GPGKey a user GPG key to sign commit and tag in repository+data GPGKey = GPGKey+  { gPGKeyCanCertify :: !(Maybe Bool) -- ^ "can_certify"+  , gPGKeyCanEncryptComms :: !(Maybe Bool) -- ^ "can_encrypt_comms"+  , gPGKeyCanEncryptStorage :: !(Maybe Bool) -- ^ "can_encrypt_storage"+  , gPGKeyCanSign :: !(Maybe Bool) -- ^ "can_sign"+  , gPGKeyCreatedAt :: !(Maybe DateTime) -- ^ "created_at"+  , gPGKeyEmails :: !(Maybe [GPGKeyEmail]) -- ^ "emails"+  , gPGKeyExpiresAt :: !(Maybe DateTime) -- ^ "expires_at"+  , gPGKeyId :: !(Maybe Integer) -- ^ "id"+  , gPGKeyKeyId :: !(Maybe Text) -- ^ "key_id"+  , gPGKeyPrimaryKeyId :: !(Maybe Text) -- ^ "primary_key_id"+  , gPGKeyPublicKey :: !(Maybe Text) -- ^ "public_key"+  , gPGKeySubkeys :: !(Maybe [GPGKey]) -- ^ "subkeys"+  , gPGKeyVerified :: !(Maybe Bool) -- ^ "verified"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON GPGKey+instance A.FromJSON GPGKey where+  parseJSON = A.withObject "GPGKey" $ \o ->+    GPGKey+      <$> (o .:? "can_certify")+      <*> (o .:? "can_encrypt_comms")+      <*> (o .:? "can_encrypt_storage")+      <*> (o .:? "can_sign")+      <*> (o .:? "created_at")+      <*> (o .:? "emails")+      <*> (o .:? "expires_at")+      <*> (o .:? "id")+      <*> (o .:? "key_id")+      <*> (o .:? "primary_key_id")+      <*> (o .:? "public_key")+      <*> (o .:? "subkeys")+      <*> (o .:? "verified")++-- | ToJSON GPGKey+instance A.ToJSON GPGKey where+  toJSON GPGKey {..} =+   _omitNulls+      [ "can_certify" .= gPGKeyCanCertify+      , "can_encrypt_comms" .= gPGKeyCanEncryptComms+      , "can_encrypt_storage" .= gPGKeyCanEncryptStorage+      , "can_sign" .= gPGKeyCanSign+      , "created_at" .= gPGKeyCreatedAt+      , "emails" .= gPGKeyEmails+      , "expires_at" .= gPGKeyExpiresAt+      , "id" .= gPGKeyId+      , "key_id" .= gPGKeyKeyId+      , "primary_key_id" .= gPGKeyPrimaryKeyId+      , "public_key" .= gPGKeyPublicKey+      , "subkeys" .= gPGKeySubkeys+      , "verified" .= gPGKeyVerified+      ]+++-- | Construct a value of type 'GPGKey' (by applying it's required fields, if any)+mkGPGKey+  :: GPGKey+mkGPGKey =+  GPGKey+  { gPGKeyCanCertify = Nothing+  , gPGKeyCanEncryptComms = Nothing+  , gPGKeyCanEncryptStorage = Nothing+  , gPGKeyCanSign = Nothing+  , gPGKeyCreatedAt = Nothing+  , gPGKeyEmails = Nothing+  , gPGKeyExpiresAt = Nothing+  , gPGKeyId = Nothing+  , gPGKeyKeyId = Nothing+  , gPGKeyPrimaryKeyId = Nothing+  , gPGKeyPublicKey = Nothing+  , gPGKeySubkeys = Nothing+  , gPGKeyVerified = Nothing+  }++-- ** GPGKeyEmail+-- | GPGKeyEmail+-- GPGKeyEmail an email attached to a GPGKey+data GPGKeyEmail = GPGKeyEmail+  { gPGKeyEmailEmail :: !(Maybe Text) -- ^ "email"+  , gPGKeyEmailVerified :: !(Maybe Bool) -- ^ "verified"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON GPGKeyEmail+instance A.FromJSON GPGKeyEmail where+  parseJSON = A.withObject "GPGKeyEmail" $ \o ->+    GPGKeyEmail+      <$> (o .:? "email")+      <*> (o .:? "verified")++-- | ToJSON GPGKeyEmail+instance A.ToJSON GPGKeyEmail where+  toJSON GPGKeyEmail {..} =+   _omitNulls+      [ "email" .= gPGKeyEmailEmail+      , "verified" .= gPGKeyEmailVerified+      ]+++-- | Construct a value of type 'GPGKeyEmail' (by applying it's required fields, if any)+mkGPGKeyEmail+  :: GPGKeyEmail+mkGPGKeyEmail =+  GPGKeyEmail+  { gPGKeyEmailEmail = Nothing+  , gPGKeyEmailVerified = Nothing+  }++-- ** GeneralAPISettings+-- | GeneralAPISettings+-- GeneralAPISettings contains global api settings exposed by it+data GeneralAPISettings = GeneralAPISettings+  { generalAPISettingsDefaultGitTreesPerPage :: !(Maybe Integer) -- ^ "default_git_trees_per_page"+  , generalAPISettingsDefaultMaxBlobSize :: !(Maybe Integer) -- ^ "default_max_blob_size"+  , generalAPISettingsDefaultPagingNum :: !(Maybe Integer) -- ^ "default_paging_num"+  , generalAPISettingsMaxResponseItems :: !(Maybe Integer) -- ^ "max_response_items"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON GeneralAPISettings+instance A.FromJSON GeneralAPISettings where+  parseJSON = A.withObject "GeneralAPISettings" $ \o ->+    GeneralAPISettings+      <$> (o .:? "default_git_trees_per_page")+      <*> (o .:? "default_max_blob_size")+      <*> (o .:? "default_paging_num")+      <*> (o .:? "max_response_items")++-- | ToJSON GeneralAPISettings+instance A.ToJSON GeneralAPISettings where+  toJSON GeneralAPISettings {..} =+   _omitNulls+      [ "default_git_trees_per_page" .= generalAPISettingsDefaultGitTreesPerPage+      , "default_max_blob_size" .= generalAPISettingsDefaultMaxBlobSize+      , "default_paging_num" .= generalAPISettingsDefaultPagingNum+      , "max_response_items" .= generalAPISettingsMaxResponseItems+      ]+++-- | Construct a value of type 'GeneralAPISettings' (by applying it's required fields, if any)+mkGeneralAPISettings+  :: GeneralAPISettings+mkGeneralAPISettings =+  GeneralAPISettings+  { generalAPISettingsDefaultGitTreesPerPage = Nothing+  , generalAPISettingsDefaultMaxBlobSize = Nothing+  , generalAPISettingsDefaultPagingNum = Nothing+  , generalAPISettingsMaxResponseItems = Nothing+  }++-- ** GeneralAttachmentSettings+-- | GeneralAttachmentSettings+-- GeneralAttachmentSettings contains global Attachment settings exposed by API+data GeneralAttachmentSettings = GeneralAttachmentSettings+  { generalAttachmentSettingsAllowedTypes :: !(Maybe Text) -- ^ "allowed_types"+  , generalAttachmentSettingsEnabled :: !(Maybe Bool) -- ^ "enabled"+  , generalAttachmentSettingsMaxFiles :: !(Maybe Integer) -- ^ "max_files"+  , generalAttachmentSettingsMaxSize :: !(Maybe Integer) -- ^ "max_size"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON GeneralAttachmentSettings+instance A.FromJSON GeneralAttachmentSettings where+  parseJSON = A.withObject "GeneralAttachmentSettings" $ \o ->+    GeneralAttachmentSettings+      <$> (o .:? "allowed_types")+      <*> (o .:? "enabled")+      <*> (o .:? "max_files")+      <*> (o .:? "max_size")++-- | ToJSON GeneralAttachmentSettings+instance A.ToJSON GeneralAttachmentSettings where+  toJSON GeneralAttachmentSettings {..} =+   _omitNulls+      [ "allowed_types" .= generalAttachmentSettingsAllowedTypes+      , "enabled" .= generalAttachmentSettingsEnabled+      , "max_files" .= generalAttachmentSettingsMaxFiles+      , "max_size" .= generalAttachmentSettingsMaxSize+      ]+++-- | Construct a value of type 'GeneralAttachmentSettings' (by applying it's required fields, if any)+mkGeneralAttachmentSettings+  :: GeneralAttachmentSettings+mkGeneralAttachmentSettings =+  GeneralAttachmentSettings+  { generalAttachmentSettingsAllowedTypes = Nothing+  , generalAttachmentSettingsEnabled = Nothing+  , generalAttachmentSettingsMaxFiles = Nothing+  , generalAttachmentSettingsMaxSize = Nothing+  }++-- ** GeneralRepoSettings+-- | GeneralRepoSettings+-- GeneralRepoSettings contains global repository settings exposed by API+data GeneralRepoSettings = GeneralRepoSettings+  { generalRepoSettingsHttpGitDisabled :: !(Maybe Bool) -- ^ "http_git_disabled"+  , generalRepoSettingsLfsDisabled :: !(Maybe Bool) -- ^ "lfs_disabled"+  , generalRepoSettingsMigrationsDisabled :: !(Maybe Bool) -- ^ "migrations_disabled"+  , generalRepoSettingsMirrorsDisabled :: !(Maybe Bool) -- ^ "mirrors_disabled"+  , generalRepoSettingsStarsDisabled :: !(Maybe Bool) -- ^ "stars_disabled"+  , generalRepoSettingsTimeTrackingDisabled :: !(Maybe Bool) -- ^ "time_tracking_disabled"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON GeneralRepoSettings+instance A.FromJSON GeneralRepoSettings where+  parseJSON = A.withObject "GeneralRepoSettings" $ \o ->+    GeneralRepoSettings+      <$> (o .:? "http_git_disabled")+      <*> (o .:? "lfs_disabled")+      <*> (o .:? "migrations_disabled")+      <*> (o .:? "mirrors_disabled")+      <*> (o .:? "stars_disabled")+      <*> (o .:? "time_tracking_disabled")++-- | ToJSON GeneralRepoSettings+instance A.ToJSON GeneralRepoSettings where+  toJSON GeneralRepoSettings {..} =+   _omitNulls+      [ "http_git_disabled" .= generalRepoSettingsHttpGitDisabled+      , "lfs_disabled" .= generalRepoSettingsLfsDisabled+      , "migrations_disabled" .= generalRepoSettingsMigrationsDisabled+      , "mirrors_disabled" .= generalRepoSettingsMirrorsDisabled+      , "stars_disabled" .= generalRepoSettingsStarsDisabled+      , "time_tracking_disabled" .= generalRepoSettingsTimeTrackingDisabled+      ]+++-- | Construct a value of type 'GeneralRepoSettings' (by applying it's required fields, if any)+mkGeneralRepoSettings+  :: GeneralRepoSettings+mkGeneralRepoSettings =+  GeneralRepoSettings+  { generalRepoSettingsHttpGitDisabled = Nothing+  , generalRepoSettingsLfsDisabled = Nothing+  , generalRepoSettingsMigrationsDisabled = Nothing+  , generalRepoSettingsMirrorsDisabled = Nothing+  , generalRepoSettingsStarsDisabled = Nothing+  , generalRepoSettingsTimeTrackingDisabled = Nothing+  }++-- ** GeneralUISettings+-- | GeneralUISettings+-- GeneralUISettings contains global ui settings exposed by API+data GeneralUISettings = GeneralUISettings+  { generalUISettingsAllowedReactions :: !(Maybe [Text]) -- ^ "allowed_reactions"+  , generalUISettingsCustomEmojis :: !(Maybe [Text]) -- ^ "custom_emojis"+  , generalUISettingsDefaultTheme :: !(Maybe Text) -- ^ "default_theme"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON GeneralUISettings+instance A.FromJSON GeneralUISettings where+  parseJSON = A.withObject "GeneralUISettings" $ \o ->+    GeneralUISettings+      <$> (o .:? "allowed_reactions")+      <*> (o .:? "custom_emojis")+      <*> (o .:? "default_theme")++-- | ToJSON GeneralUISettings+instance A.ToJSON GeneralUISettings where+  toJSON GeneralUISettings {..} =+   _omitNulls+      [ "allowed_reactions" .= generalUISettingsAllowedReactions+      , "custom_emojis" .= generalUISettingsCustomEmojis+      , "default_theme" .= generalUISettingsDefaultTheme+      ]+++-- | Construct a value of type 'GeneralUISettings' (by applying it's required fields, if any)+mkGeneralUISettings+  :: GeneralUISettings+mkGeneralUISettings =+  GeneralUISettings+  { generalUISettingsAllowedReactions = Nothing+  , generalUISettingsCustomEmojis = Nothing+  , generalUISettingsDefaultTheme = Nothing+  }++-- ** GenerateRepoOption+-- | GenerateRepoOption+-- GenerateRepoOption options when creating repository using a template+data GenerateRepoOption = GenerateRepoOption+  { generateRepoOptionAvatar :: !(Maybe Bool) -- ^ "avatar" - include avatar of the template repo+  , generateRepoOptionDefaultBranch :: !(Maybe Text) -- ^ "default_branch" - Default branch of the new repository+  , generateRepoOptionDescription :: !(Maybe Text) -- ^ "description" - Description of the repository to create+  , generateRepoOptionGitContent :: !(Maybe Bool) -- ^ "git_content" - include git content of default branch in template repo+  , generateRepoOptionGitHooks :: !(Maybe Bool) -- ^ "git_hooks" - include git hooks in template repo+  , generateRepoOptionLabels :: !(Maybe Bool) -- ^ "labels" - include labels in template repo+  , generateRepoOptionName :: !(Text) -- ^ /Required/ "name" - Name of the repository to create+  , generateRepoOptionOwner :: !(Text) -- ^ /Required/ "owner" - The organization or person who will own the new repository+  , generateRepoOptionPrivate :: !(Maybe Bool) -- ^ "private" - Whether the repository is private+  , generateRepoOptionTopics :: !(Maybe Bool) -- ^ "topics" - include topics in template repo+  , generateRepoOptionWebhooks :: !(Maybe Bool) -- ^ "webhooks" - include webhooks in template repo+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON GenerateRepoOption+instance A.FromJSON GenerateRepoOption where+  parseJSON = A.withObject "GenerateRepoOption" $ \o ->+    GenerateRepoOption+      <$> (o .:? "avatar")+      <*> (o .:? "default_branch")+      <*> (o .:? "description")+      <*> (o .:? "git_content")+      <*> (o .:? "git_hooks")+      <*> (o .:? "labels")+      <*> (o .:  "name")+      <*> (o .:  "owner")+      <*> (o .:? "private")+      <*> (o .:? "topics")+      <*> (o .:? "webhooks")++-- | ToJSON GenerateRepoOption+instance A.ToJSON GenerateRepoOption where+  toJSON GenerateRepoOption {..} =+   _omitNulls+      [ "avatar" .= generateRepoOptionAvatar+      , "default_branch" .= generateRepoOptionDefaultBranch+      , "description" .= generateRepoOptionDescription+      , "git_content" .= generateRepoOptionGitContent+      , "git_hooks" .= generateRepoOptionGitHooks+      , "labels" .= generateRepoOptionLabels+      , "name" .= generateRepoOptionName+      , "owner" .= generateRepoOptionOwner+      , "private" .= generateRepoOptionPrivate+      , "topics" .= generateRepoOptionTopics+      , "webhooks" .= generateRepoOptionWebhooks+      ]+++-- | Construct a value of type 'GenerateRepoOption' (by applying it's required fields, if any)+mkGenerateRepoOption+  :: Text -- ^ 'generateRepoOptionName': Name of the repository to create+  -> Text -- ^ 'generateRepoOptionOwner': The organization or person who will own the new repository+  -> GenerateRepoOption+mkGenerateRepoOption generateRepoOptionName generateRepoOptionOwner =+  GenerateRepoOption+  { generateRepoOptionAvatar = Nothing+  , generateRepoOptionDefaultBranch = Nothing+  , generateRepoOptionDescription = Nothing+  , generateRepoOptionGitContent = Nothing+  , generateRepoOptionGitHooks = Nothing+  , generateRepoOptionLabels = Nothing+  , generateRepoOptionName+  , generateRepoOptionOwner+  , generateRepoOptionPrivate = Nothing+  , generateRepoOptionTopics = Nothing+  , generateRepoOptionWebhooks = Nothing+  }++-- ** GitBlobResponse+-- | GitBlobResponse+-- GitBlobResponse represents a git blob+data GitBlobResponse = GitBlobResponse+  { gitBlobResponseContent :: !(Maybe Text) -- ^ "content"+  , gitBlobResponseEncoding :: !(Maybe Text) -- ^ "encoding"+  , gitBlobResponseSha :: !(Maybe Text) -- ^ "sha"+  , gitBlobResponseSize :: !(Maybe Integer) -- ^ "size"+  , gitBlobResponseUrl :: !(Maybe Text) -- ^ "url"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON GitBlobResponse+instance A.FromJSON GitBlobResponse where+  parseJSON = A.withObject "GitBlobResponse" $ \o ->+    GitBlobResponse+      <$> (o .:? "content")+      <*> (o .:? "encoding")+      <*> (o .:? "sha")+      <*> (o .:? "size")+      <*> (o .:? "url")++-- | ToJSON GitBlobResponse+instance A.ToJSON GitBlobResponse where+  toJSON GitBlobResponse {..} =+   _omitNulls+      [ "content" .= gitBlobResponseContent+      , "encoding" .= gitBlobResponseEncoding+      , "sha" .= gitBlobResponseSha+      , "size" .= gitBlobResponseSize+      , "url" .= gitBlobResponseUrl+      ]+++-- | Construct a value of type 'GitBlobResponse' (by applying it's required fields, if any)+mkGitBlobResponse+  :: GitBlobResponse+mkGitBlobResponse =+  GitBlobResponse+  { gitBlobResponseContent = Nothing+  , gitBlobResponseEncoding = Nothing+  , gitBlobResponseSha = Nothing+  , gitBlobResponseSize = Nothing+  , gitBlobResponseUrl = Nothing+  }++-- ** GitEntry+-- | GitEntry+-- GitEntry represents a git tree+data GitEntry = GitEntry+  { gitEntryMode :: !(Maybe Text) -- ^ "mode"+  , gitEntryPath :: !(Maybe Text) -- ^ "path"+  , gitEntrySha :: !(Maybe Text) -- ^ "sha"+  , gitEntrySize :: !(Maybe Integer) -- ^ "size"+  , gitEntryType :: !(Maybe Text) -- ^ "type"+  , gitEntryUrl :: !(Maybe Text) -- ^ "url"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON GitEntry+instance A.FromJSON GitEntry where+  parseJSON = A.withObject "GitEntry" $ \o ->+    GitEntry+      <$> (o .:? "mode")+      <*> (o .:? "path")+      <*> (o .:? "sha")+      <*> (o .:? "size")+      <*> (o .:? "type")+      <*> (o .:? "url")++-- | ToJSON GitEntry+instance A.ToJSON GitEntry where+  toJSON GitEntry {..} =+   _omitNulls+      [ "mode" .= gitEntryMode+      , "path" .= gitEntryPath+      , "sha" .= gitEntrySha+      , "size" .= gitEntrySize+      , "type" .= gitEntryType+      , "url" .= gitEntryUrl+      ]+++-- | Construct a value of type 'GitEntry' (by applying it's required fields, if any)+mkGitEntry+  :: GitEntry+mkGitEntry =+  GitEntry+  { gitEntryMode = Nothing+  , gitEntryPath = Nothing+  , gitEntrySha = Nothing+  , gitEntrySize = Nothing+  , gitEntryType = Nothing+  , gitEntryUrl = Nothing+  }++-- ** GitHook+-- | GitHook+-- GitHook represents a Git repository hook+data GitHook = GitHook+  { gitHookContent :: !(Maybe Text) -- ^ "content"+  , gitHookIsActive :: !(Maybe Bool) -- ^ "is_active"+  , gitHookName :: !(Maybe Text) -- ^ "name"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON GitHook+instance A.FromJSON GitHook where+  parseJSON = A.withObject "GitHook" $ \o ->+    GitHook+      <$> (o .:? "content")+      <*> (o .:? "is_active")+      <*> (o .:? "name")++-- | ToJSON GitHook+instance A.ToJSON GitHook where+  toJSON GitHook {..} =+   _omitNulls+      [ "content" .= gitHookContent+      , "is_active" .= gitHookIsActive+      , "name" .= gitHookName+      ]+++-- | Construct a value of type 'GitHook' (by applying it's required fields, if any)+mkGitHook+  :: GitHook+mkGitHook =+  GitHook+  { gitHookContent = Nothing+  , gitHookIsActive = Nothing+  , gitHookName = Nothing+  }++-- ** GitObject+-- | GitObject+-- GitObject represents a Git object.+-- +data GitObject = GitObject+  { gitObjectSha :: !(Maybe Text) -- ^ "sha"+  , gitObjectType :: !(Maybe Text) -- ^ "type"+  , gitObjectUrl :: !(Maybe Text) -- ^ "url"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON GitObject+instance A.FromJSON GitObject where+  parseJSON = A.withObject "GitObject" $ \o ->+    GitObject+      <$> (o .:? "sha")+      <*> (o .:? "type")+      <*> (o .:? "url")++-- | ToJSON GitObject+instance A.ToJSON GitObject where+  toJSON GitObject {..} =+   _omitNulls+      [ "sha" .= gitObjectSha+      , "type" .= gitObjectType+      , "url" .= gitObjectUrl+      ]+++-- | Construct a value of type 'GitObject' (by applying it's required fields, if any)+mkGitObject+  :: GitObject+mkGitObject =+  GitObject+  { gitObjectSha = Nothing+  , gitObjectType = Nothing+  , gitObjectUrl = Nothing+  }++-- ** GitTreeResponse+-- | GitTreeResponse+-- GitTreeResponse returns a git tree+data GitTreeResponse = GitTreeResponse+  { gitTreeResponsePage :: !(Maybe Integer) -- ^ "page"+  , gitTreeResponseSha :: !(Maybe Text) -- ^ "sha"+  , gitTreeResponseTotalCount :: !(Maybe Integer) -- ^ "total_count"+  , gitTreeResponseTree :: !(Maybe [GitEntry]) -- ^ "tree"+  , gitTreeResponseTruncated :: !(Maybe Bool) -- ^ "truncated"+  , gitTreeResponseUrl :: !(Maybe Text) -- ^ "url"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON GitTreeResponse+instance A.FromJSON GitTreeResponse where+  parseJSON = A.withObject "GitTreeResponse" $ \o ->+    GitTreeResponse+      <$> (o .:? "page")+      <*> (o .:? "sha")+      <*> (o .:? "total_count")+      <*> (o .:? "tree")+      <*> (o .:? "truncated")+      <*> (o .:? "url")++-- | ToJSON GitTreeResponse+instance A.ToJSON GitTreeResponse where+  toJSON GitTreeResponse {..} =+   _omitNulls+      [ "page" .= gitTreeResponsePage+      , "sha" .= gitTreeResponseSha+      , "total_count" .= gitTreeResponseTotalCount+      , "tree" .= gitTreeResponseTree+      , "truncated" .= gitTreeResponseTruncated+      , "url" .= gitTreeResponseUrl+      ]+++-- | Construct a value of type 'GitTreeResponse' (by applying it's required fields, if any)+mkGitTreeResponse+  :: GitTreeResponse+mkGitTreeResponse =+  GitTreeResponse+  { gitTreeResponsePage = Nothing+  , gitTreeResponseSha = Nothing+  , gitTreeResponseTotalCount = Nothing+  , gitTreeResponseTree = Nothing+  , gitTreeResponseTruncated = Nothing+  , gitTreeResponseUrl = Nothing+  }++-- ** Hook+-- | Hook+-- Hook a hook is a web hook when one repository changed+data Hook = Hook+  { hookActive :: !(Maybe Bool) -- ^ "active"+  , hookAuthorizationHeader :: !(Maybe Text) -- ^ "authorization_header"+  , hookConfig :: !(Maybe (Map.Map String Text)) -- ^ "config"+  , hookCreatedAt :: !(Maybe DateTime) -- ^ "created_at"+  , hookEvents :: !(Maybe [Text]) -- ^ "events"+  , hookId :: !(Maybe Integer) -- ^ "id"+  , hookType :: !(Maybe Text) -- ^ "type"+  , hookUpdatedAt :: !(Maybe DateTime) -- ^ "updated_at"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON Hook+instance A.FromJSON Hook where+  parseJSON = A.withObject "Hook" $ \o ->+    Hook+      <$> (o .:? "active")+      <*> (o .:? "authorization_header")+      <*> (o .:? "config")+      <*> (o .:? "created_at")+      <*> (o .:? "events")+      <*> (o .:? "id")+      <*> (o .:? "type")+      <*> (o .:? "updated_at")++-- | ToJSON Hook+instance A.ToJSON Hook where+  toJSON Hook {..} =+   _omitNulls+      [ "active" .= hookActive+      , "authorization_header" .= hookAuthorizationHeader+      , "config" .= hookConfig+      , "created_at" .= hookCreatedAt+      , "events" .= hookEvents+      , "id" .= hookId+      , "type" .= hookType+      , "updated_at" .= hookUpdatedAt+      ]+++-- | Construct a value of type 'Hook' (by applying it's required fields, if any)+mkHook+  :: Hook+mkHook =+  Hook+  { hookActive = Nothing+  , hookAuthorizationHeader = Nothing+  , hookConfig = Nothing+  , hookCreatedAt = Nothing+  , hookEvents = Nothing+  , hookId = Nothing+  , hookType = Nothing+  , hookUpdatedAt = Nothing+  }++-- ** Identity+-- | Identity+-- Identity for a person's identity like an author or committer+data Identity = Identity+  { identityEmail :: !(Maybe Text) -- ^ "email"+  , identityName :: !(Maybe Text) -- ^ "name"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON Identity+instance A.FromJSON Identity where+  parseJSON = A.withObject "Identity" $ \o ->+    Identity+      <$> (o .:? "email")+      <*> (o .:? "name")++-- | ToJSON Identity+instance A.ToJSON Identity where+  toJSON Identity {..} =+   _omitNulls+      [ "email" .= identityEmail+      , "name" .= identityName+      ]+++-- | Construct a value of type 'Identity' (by applying it's required fields, if any)+mkIdentity+  :: Identity+mkIdentity =+  Identity+  { identityEmail = Nothing+  , identityName = Nothing+  }++-- ** InternalTracker+-- | InternalTracker+-- InternalTracker represents settings for internal tracker+data InternalTracker = InternalTracker+  { internalTrackerAllowOnlyContributorsToTrackTime :: !(Maybe Bool) -- ^ "allow_only_contributors_to_track_time" - Let only contributors track time (Built-in issue tracker)+  , internalTrackerEnableIssueDependencies :: !(Maybe Bool) -- ^ "enable_issue_dependencies" - Enable dependencies for issues and pull requests (Built-in issue tracker)+  , internalTrackerEnableTimeTracker :: !(Maybe Bool) -- ^ "enable_time_tracker" - Enable time tracking (Built-in issue tracker)+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON InternalTracker+instance A.FromJSON InternalTracker where+  parseJSON = A.withObject "InternalTracker" $ \o ->+    InternalTracker+      <$> (o .:? "allow_only_contributors_to_track_time")+      <*> (o .:? "enable_issue_dependencies")+      <*> (o .:? "enable_time_tracker")++-- | ToJSON InternalTracker+instance A.ToJSON InternalTracker where+  toJSON InternalTracker {..} =+   _omitNulls+      [ "allow_only_contributors_to_track_time" .= internalTrackerAllowOnlyContributorsToTrackTime+      , "enable_issue_dependencies" .= internalTrackerEnableIssueDependencies+      , "enable_time_tracker" .= internalTrackerEnableTimeTracker+      ]+++-- | Construct a value of type 'InternalTracker' (by applying it's required fields, if any)+mkInternalTracker+  :: InternalTracker+mkInternalTracker =+  InternalTracker+  { internalTrackerAllowOnlyContributorsToTrackTime = Nothing+  , internalTrackerEnableIssueDependencies = Nothing+  , internalTrackerEnableTimeTracker = Nothing+  }++-- ** Issue+-- | Issue+-- Issue represents an issue in a repository+data Issue = Issue+  { issueAssets :: !(Maybe [Attachment]) -- ^ "assets"+  , issueAssignee :: !(Maybe User) -- ^ "assignee"+  , issueAssignees :: !(Maybe [User]) -- ^ "assignees"+  , issueBody :: !(Maybe Text) -- ^ "body"+  , issueClosedAt :: !(Maybe DateTime) -- ^ "closed_at"+  , issueComments :: !(Maybe Integer) -- ^ "comments"+  , issueCreatedAt :: !(Maybe DateTime) -- ^ "created_at"+  , issueDueDate :: !(Maybe DateTime) -- ^ "due_date"+  , issueHtmlUrl :: !(Maybe Text) -- ^ "html_url"+  , issueId :: !(Maybe Integer) -- ^ "id"+  , issueIsLocked :: !(Maybe Bool) -- ^ "is_locked"+  , issueLabels :: !(Maybe [Label]) -- ^ "labels"+  , issueMilestone :: !(Maybe Milestone) -- ^ "milestone"+  , issueNumber :: !(Maybe Integer) -- ^ "number"+  , issueOriginalAuthor :: !(Maybe Text) -- ^ "original_author"+  , issueOriginalAuthorId :: !(Maybe Integer) -- ^ "original_author_id"+  , issuePullRequest :: !(Maybe PullRequestMeta) -- ^ "pull_request"+  , issueRef :: !(Maybe Text) -- ^ "ref"+  , issueRepository :: !(Maybe RepositoryMeta) -- ^ "repository"+  , issueState :: !(Maybe Text) -- ^ "state" - StateType issue state type+  , issueTitle :: !(Maybe Text) -- ^ "title"+  , issueUpdatedAt :: !(Maybe DateTime) -- ^ "updated_at"+  , issueUrl :: !(Maybe Text) -- ^ "url"+  , issueUser :: !(Maybe User) -- ^ "user"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON Issue+instance A.FromJSON Issue where+  parseJSON = A.withObject "Issue" $ \o ->+    Issue+      <$> (o .:? "assets")+      <*> (o .:? "assignee")+      <*> (o .:? "assignees")+      <*> (o .:? "body")+      <*> (o .:? "closed_at")+      <*> (o .:? "comments")+      <*> (o .:? "created_at")+      <*> (o .:? "due_date")+      <*> (o .:? "html_url")+      <*> (o .:? "id")+      <*> (o .:? "is_locked")+      <*> (o .:? "labels")+      <*> (o .:? "milestone")+      <*> (o .:? "number")+      <*> (o .:? "original_author")+      <*> (o .:? "original_author_id")+      <*> (o .:? "pull_request")+      <*> (o .:? "ref")+      <*> (o .:? "repository")+      <*> (o .:? "state")+      <*> (o .:? "title")+      <*> (o .:? "updated_at")+      <*> (o .:? "url")+      <*> (o .:? "user")++-- | ToJSON Issue+instance A.ToJSON Issue where+  toJSON Issue {..} =+   _omitNulls+      [ "assets" .= issueAssets+      , "assignee" .= issueAssignee+      , "assignees" .= issueAssignees+      , "body" .= issueBody+      , "closed_at" .= issueClosedAt+      , "comments" .= issueComments+      , "created_at" .= issueCreatedAt+      , "due_date" .= issueDueDate+      , "html_url" .= issueHtmlUrl+      , "id" .= issueId+      , "is_locked" .= issueIsLocked+      , "labels" .= issueLabels+      , "milestone" .= issueMilestone+      , "number" .= issueNumber+      , "original_author" .= issueOriginalAuthor+      , "original_author_id" .= issueOriginalAuthorId+      , "pull_request" .= issuePullRequest+      , "ref" .= issueRef+      , "repository" .= issueRepository+      , "state" .= issueState+      , "title" .= issueTitle+      , "updated_at" .= issueUpdatedAt+      , "url" .= issueUrl+      , "user" .= issueUser+      ]+++-- | Construct a value of type 'Issue' (by applying it's required fields, if any)+mkIssue+  :: Issue+mkIssue =+  Issue+  { issueAssets = Nothing+  , issueAssignee = Nothing+  , issueAssignees = Nothing+  , issueBody = Nothing+  , issueClosedAt = Nothing+  , issueComments = Nothing+  , issueCreatedAt = Nothing+  , issueDueDate = Nothing+  , issueHtmlUrl = Nothing+  , issueId = Nothing+  , issueIsLocked = Nothing+  , issueLabels = Nothing+  , issueMilestone = Nothing+  , issueNumber = Nothing+  , issueOriginalAuthor = Nothing+  , issueOriginalAuthorId = Nothing+  , issuePullRequest = Nothing+  , issueRef = Nothing+  , issueRepository = Nothing+  , issueState = Nothing+  , issueTitle = Nothing+  , issueUpdatedAt = Nothing+  , issueUrl = Nothing+  , issueUser = Nothing+  }++-- ** IssueDeadline+-- | IssueDeadline+-- IssueDeadline represents an issue deadline+data IssueDeadline = IssueDeadline+  { issueDeadlineDueDate :: !(Maybe DateTime) -- ^ "due_date"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON IssueDeadline+instance A.FromJSON IssueDeadline where+  parseJSON = A.withObject "IssueDeadline" $ \o ->+    IssueDeadline+      <$> (o .:? "due_date")++-- | ToJSON IssueDeadline+instance A.ToJSON IssueDeadline where+  toJSON IssueDeadline {..} =+   _omitNulls+      [ "due_date" .= issueDeadlineDueDate+      ]+++-- | Construct a value of type 'IssueDeadline' (by applying it's required fields, if any)+mkIssueDeadline+  :: IssueDeadline+mkIssueDeadline =+  IssueDeadline+  { issueDeadlineDueDate = Nothing+  }++-- ** IssueFormField+-- | IssueFormField+-- IssueFormField represents a form field+data IssueFormField = IssueFormField+  { issueFormFieldAttributes :: !(Maybe (Map.Map String A.Value)) -- ^ "attributes"+  , issueFormFieldId :: !(Maybe Text) -- ^ "id"+  , issueFormFieldType :: !(Maybe Text) -- ^ "type"+  , issueFormFieldValidations :: !(Maybe (Map.Map String A.Value)) -- ^ "validations"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON IssueFormField+instance A.FromJSON IssueFormField where+  parseJSON = A.withObject "IssueFormField" $ \o ->+    IssueFormField+      <$> (o .:? "attributes")+      <*> (o .:? "id")+      <*> (o .:? "type")+      <*> (o .:? "validations")++-- | ToJSON IssueFormField+instance A.ToJSON IssueFormField where+  toJSON IssueFormField {..} =+   _omitNulls+      [ "attributes" .= issueFormFieldAttributes+      , "id" .= issueFormFieldId+      , "type" .= issueFormFieldType+      , "validations" .= issueFormFieldValidations+      ]+++-- | Construct a value of type 'IssueFormField' (by applying it's required fields, if any)+mkIssueFormField+  :: IssueFormField+mkIssueFormField =+  IssueFormField+  { issueFormFieldAttributes = Nothing+  , issueFormFieldId = Nothing+  , issueFormFieldType = Nothing+  , issueFormFieldValidations = Nothing+  }++-- ** IssueLabelsOption+-- | IssueLabelsOption+-- IssueLabelsOption a collection of labels+data IssueLabelsOption = IssueLabelsOption+  { issueLabelsOptionLabels :: !(Maybe [Integer]) -- ^ "labels" - list of label IDs+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON IssueLabelsOption+instance A.FromJSON IssueLabelsOption where+  parseJSON = A.withObject "IssueLabelsOption" $ \o ->+    IssueLabelsOption+      <$> (o .:? "labels")++-- | ToJSON IssueLabelsOption+instance A.ToJSON IssueLabelsOption where+  toJSON IssueLabelsOption {..} =+   _omitNulls+      [ "labels" .= issueLabelsOptionLabels+      ]+++-- | Construct a value of type 'IssueLabelsOption' (by applying it's required fields, if any)+mkIssueLabelsOption+  :: IssueLabelsOption+mkIssueLabelsOption =+  IssueLabelsOption+  { issueLabelsOptionLabels = Nothing+  }++-- ** IssueTemplate+-- | IssueTemplate+-- IssueTemplate represents an issue template for a repository+data IssueTemplate = IssueTemplate+  { issueTemplateAbout :: !(Maybe Text) -- ^ "about"+  , issueTemplateBody :: !(Maybe [IssueFormField]) -- ^ "body"+  , issueTemplateContent :: !(Maybe Text) -- ^ "content"+  , issueTemplateFileName :: !(Maybe Text) -- ^ "file_name"+  , issueTemplateLabels :: !(Maybe [Text]) -- ^ "labels"+  , issueTemplateName :: !(Maybe Text) -- ^ "name"+  , issueTemplateRef :: !(Maybe Text) -- ^ "ref"+  , issueTemplateTitle :: !(Maybe Text) -- ^ "title"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON IssueTemplate+instance A.FromJSON IssueTemplate where+  parseJSON = A.withObject "IssueTemplate" $ \o ->+    IssueTemplate+      <$> (o .:? "about")+      <*> (o .:? "body")+      <*> (o .:? "content")+      <*> (o .:? "file_name")+      <*> (o .:? "labels")+      <*> (o .:? "name")+      <*> (o .:? "ref")+      <*> (o .:? "title")++-- | ToJSON IssueTemplate+instance A.ToJSON IssueTemplate where+  toJSON IssueTemplate {..} =+   _omitNulls+      [ "about" .= issueTemplateAbout+      , "body" .= issueTemplateBody+      , "content" .= issueTemplateContent+      , "file_name" .= issueTemplateFileName+      , "labels" .= issueTemplateLabels+      , "name" .= issueTemplateName+      , "ref" .= issueTemplateRef+      , "title" .= issueTemplateTitle+      ]+++-- | Construct a value of type 'IssueTemplate' (by applying it's required fields, if any)+mkIssueTemplate+  :: IssueTemplate+mkIssueTemplate =+  IssueTemplate+  { issueTemplateAbout = Nothing+  , issueTemplateBody = Nothing+  , issueTemplateContent = Nothing+  , issueTemplateFileName = Nothing+  , issueTemplateLabels = Nothing+  , issueTemplateName = Nothing+  , issueTemplateRef = Nothing+  , issueTemplateTitle = Nothing+  }++-- ** Label+-- | Label+-- Label a label to an issue or a pr+data Label = Label+  { labelColor :: !(Maybe Text) -- ^ "color"+  , labelDescription :: !(Maybe Text) -- ^ "description"+  , labelExclusive :: !(Maybe Bool) -- ^ "exclusive"+  , labelId :: !(Maybe Integer) -- ^ "id"+  , labelName :: !(Maybe Text) -- ^ "name"+  , labelUrl :: !(Maybe Text) -- ^ "url"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON Label+instance A.FromJSON Label where+  parseJSON = A.withObject "Label" $ \o ->+    Label+      <$> (o .:? "color")+      <*> (o .:? "description")+      <*> (o .:? "exclusive")+      <*> (o .:? "id")+      <*> (o .:? "name")+      <*> (o .:? "url")++-- | ToJSON Label+instance A.ToJSON Label where+  toJSON Label {..} =+   _omitNulls+      [ "color" .= labelColor+      , "description" .= labelDescription+      , "exclusive" .= labelExclusive+      , "id" .= labelId+      , "name" .= labelName+      , "url" .= labelUrl+      ]+++-- | Construct a value of type 'Label' (by applying it's required fields, if any)+mkLabel+  :: Label+mkLabel =+  Label+  { labelColor = Nothing+  , labelDescription = Nothing+  , labelExclusive = Nothing+  , labelId = Nothing+  , labelName = Nothing+  , labelUrl = Nothing+  }++-- ** MarkdownOption+-- | MarkdownOption+-- MarkdownOption markdown options+data MarkdownOption = MarkdownOption+  { markdownOptionContext :: !(Maybe Text) -- ^ "Context" - Context to render  in: body+  , markdownOptionMode :: !(Maybe Text) -- ^ "Mode" - Mode to render  in: body+  , markdownOptionText :: !(Maybe Text) -- ^ "Text" - Text markdown to render  in: body+  , markdownOptionWiki :: !(Maybe Bool) -- ^ "Wiki" - Is it a wiki page ?  in: body+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON MarkdownOption+instance A.FromJSON MarkdownOption where+  parseJSON = A.withObject "MarkdownOption" $ \o ->+    MarkdownOption+      <$> (o .:? "Context")+      <*> (o .:? "Mode")+      <*> (o .:? "Text")+      <*> (o .:? "Wiki")++-- | ToJSON MarkdownOption+instance A.ToJSON MarkdownOption where+  toJSON MarkdownOption {..} =+   _omitNulls+      [ "Context" .= markdownOptionContext+      , "Mode" .= markdownOptionMode+      , "Text" .= markdownOptionText+      , "Wiki" .= markdownOptionWiki+      ]+++-- | Construct a value of type 'MarkdownOption' (by applying it's required fields, if any)+mkMarkdownOption+  :: MarkdownOption+mkMarkdownOption =+  MarkdownOption+  { markdownOptionContext = Nothing+  , markdownOptionMode = Nothing+  , markdownOptionText = Nothing+  , markdownOptionWiki = Nothing+  }++-- ** MergePullRequestOption+-- | MergePullRequestOption+-- MergePullRequestForm form for merging Pull Request+data MergePullRequestOption = MergePullRequestOption+  { mergePullRequestOptionDo :: !(E'Do) -- ^ /Required/ "Do"+  , mergePullRequestOptionMergeCommitId :: !(Maybe Text) -- ^ "MergeCommitID"+  , mergePullRequestOptionMergeMessageField :: !(Maybe Text) -- ^ "MergeMessageField"+  , mergePullRequestOptionMergeTitleField :: !(Maybe Text) -- ^ "MergeTitleField"+  , mergePullRequestOptionDeleteBranchAfterMerge :: !(Maybe Bool) -- ^ "delete_branch_after_merge"+  , mergePullRequestOptionForceMerge :: !(Maybe Bool) -- ^ "force_merge"+  , mergePullRequestOptionHeadCommitId :: !(Maybe Text) -- ^ "head_commit_id"+  , mergePullRequestOptionMergeWhenChecksSucceed :: !(Maybe Bool) -- ^ "merge_when_checks_succeed"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON MergePullRequestOption+instance A.FromJSON MergePullRequestOption where+  parseJSON = A.withObject "MergePullRequestOption" $ \o ->+    MergePullRequestOption+      <$> (o .:  "Do")+      <*> (o .:? "MergeCommitID")+      <*> (o .:? "MergeMessageField")+      <*> (o .:? "MergeTitleField")+      <*> (o .:? "delete_branch_after_merge")+      <*> (o .:? "force_merge")+      <*> (o .:? "head_commit_id")+      <*> (o .:? "merge_when_checks_succeed")++-- | ToJSON MergePullRequestOption+instance A.ToJSON MergePullRequestOption where+  toJSON MergePullRequestOption {..} =+   _omitNulls+      [ "Do" .= mergePullRequestOptionDo+      , "MergeCommitID" .= mergePullRequestOptionMergeCommitId+      , "MergeMessageField" .= mergePullRequestOptionMergeMessageField+      , "MergeTitleField" .= mergePullRequestOptionMergeTitleField+      , "delete_branch_after_merge" .= mergePullRequestOptionDeleteBranchAfterMerge+      , "force_merge" .= mergePullRequestOptionForceMerge+      , "head_commit_id" .= mergePullRequestOptionHeadCommitId+      , "merge_when_checks_succeed" .= mergePullRequestOptionMergeWhenChecksSucceed+      ]+++-- | Construct a value of type 'MergePullRequestOption' (by applying it's required fields, if any)+mkMergePullRequestOption+  :: E'Do -- ^ 'mergePullRequestOptionDo' +  -> MergePullRequestOption+mkMergePullRequestOption mergePullRequestOptionDo =+  MergePullRequestOption+  { mergePullRequestOptionDo+  , mergePullRequestOptionMergeCommitId = Nothing+  , mergePullRequestOptionMergeMessageField = Nothing+  , mergePullRequestOptionMergeTitleField = Nothing+  , mergePullRequestOptionDeleteBranchAfterMerge = Nothing+  , mergePullRequestOptionForceMerge = Nothing+  , mergePullRequestOptionHeadCommitId = Nothing+  , mergePullRequestOptionMergeWhenChecksSucceed = Nothing+  }++-- ** MigrateRepoOptions+-- | MigrateRepoOptions+-- MigrateRepoOptions options for migrating repository's this is used to interact with api v1+data MigrateRepoOptions = MigrateRepoOptions+  { migrateRepoOptionsAuthPassword :: !(Maybe Text) -- ^ "auth_password"+  , migrateRepoOptionsAuthToken :: !(Maybe Text) -- ^ "auth_token"+  , migrateRepoOptionsAuthUsername :: !(Maybe Text) -- ^ "auth_username"+  , migrateRepoOptionsCloneAddr :: !(Text) -- ^ /Required/ "clone_addr"+  , migrateRepoOptionsDescription :: !(Maybe Text) -- ^ "description"+  , migrateRepoOptionsIssues :: !(Maybe Bool) -- ^ "issues"+  , migrateRepoOptionsLabels :: !(Maybe Bool) -- ^ "labels"+  , migrateRepoOptionsLfs :: !(Maybe Bool) -- ^ "lfs"+  , migrateRepoOptionsLfsEndpoint :: !(Maybe Text) -- ^ "lfs_endpoint"+  , migrateRepoOptionsMilestones :: !(Maybe Bool) -- ^ "milestones"+  , migrateRepoOptionsMirror :: !(Maybe Bool) -- ^ "mirror"+  , migrateRepoOptionsMirrorInterval :: !(Maybe Text) -- ^ "mirror_interval"+  , migrateRepoOptionsPrivate :: !(Maybe Bool) -- ^ "private"+  , migrateRepoOptionsPullRequests :: !(Maybe Bool) -- ^ "pull_requests"+  , migrateRepoOptionsReleases :: !(Maybe Bool) -- ^ "releases"+  , migrateRepoOptionsRepoName :: !(Text) -- ^ /Required/ "repo_name"+  , migrateRepoOptionsRepoOwner :: !(Maybe Text) -- ^ "repo_owner" - Name of User or Organisation who will own Repo after migration+  , migrateRepoOptionsService :: !(Maybe E'Service) -- ^ "service"+  , migrateRepoOptionsUid :: !(Maybe Integer) -- ^ "uid" - deprecated (only for backwards compatibility)+  , migrateRepoOptionsWiki :: !(Maybe Bool) -- ^ "wiki"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON MigrateRepoOptions+instance A.FromJSON MigrateRepoOptions where+  parseJSON = A.withObject "MigrateRepoOptions" $ \o ->+    MigrateRepoOptions+      <$> (o .:? "auth_password")+      <*> (o .:? "auth_token")+      <*> (o .:? "auth_username")+      <*> (o .:  "clone_addr")+      <*> (o .:? "description")+      <*> (o .:? "issues")+      <*> (o .:? "labels")+      <*> (o .:? "lfs")+      <*> (o .:? "lfs_endpoint")+      <*> (o .:? "milestones")+      <*> (o .:? "mirror")+      <*> (o .:? "mirror_interval")+      <*> (o .:? "private")+      <*> (o .:? "pull_requests")+      <*> (o .:? "releases")+      <*> (o .:  "repo_name")+      <*> (o .:? "repo_owner")+      <*> (o .:? "service")+      <*> (o .:? "uid")+      <*> (o .:? "wiki")++-- | ToJSON MigrateRepoOptions+instance A.ToJSON MigrateRepoOptions where+  toJSON MigrateRepoOptions {..} =+   _omitNulls+      [ "auth_password" .= migrateRepoOptionsAuthPassword+      , "auth_token" .= migrateRepoOptionsAuthToken+      , "auth_username" .= migrateRepoOptionsAuthUsername+      , "clone_addr" .= migrateRepoOptionsCloneAddr+      , "description" .= migrateRepoOptionsDescription+      , "issues" .= migrateRepoOptionsIssues+      , "labels" .= migrateRepoOptionsLabels+      , "lfs" .= migrateRepoOptionsLfs+      , "lfs_endpoint" .= migrateRepoOptionsLfsEndpoint+      , "milestones" .= migrateRepoOptionsMilestones+      , "mirror" .= migrateRepoOptionsMirror+      , "mirror_interval" .= migrateRepoOptionsMirrorInterval+      , "private" .= migrateRepoOptionsPrivate+      , "pull_requests" .= migrateRepoOptionsPullRequests+      , "releases" .= migrateRepoOptionsReleases+      , "repo_name" .= migrateRepoOptionsRepoName+      , "repo_owner" .= migrateRepoOptionsRepoOwner+      , "service" .= migrateRepoOptionsService+      , "uid" .= migrateRepoOptionsUid+      , "wiki" .= migrateRepoOptionsWiki+      ]+++-- | Construct a value of type 'MigrateRepoOptions' (by applying it's required fields, if any)+mkMigrateRepoOptions+  :: Text -- ^ 'migrateRepoOptionsCloneAddr' +  -> Text -- ^ 'migrateRepoOptionsRepoName' +  -> MigrateRepoOptions+mkMigrateRepoOptions migrateRepoOptionsCloneAddr migrateRepoOptionsRepoName =+  MigrateRepoOptions+  { migrateRepoOptionsAuthPassword = Nothing+  , migrateRepoOptionsAuthToken = Nothing+  , migrateRepoOptionsAuthUsername = Nothing+  , migrateRepoOptionsCloneAddr+  , migrateRepoOptionsDescription = Nothing+  , migrateRepoOptionsIssues = Nothing+  , migrateRepoOptionsLabels = Nothing+  , migrateRepoOptionsLfs = Nothing+  , migrateRepoOptionsLfsEndpoint = Nothing+  , migrateRepoOptionsMilestones = Nothing+  , migrateRepoOptionsMirror = Nothing+  , migrateRepoOptionsMirrorInterval = Nothing+  , migrateRepoOptionsPrivate = Nothing+  , migrateRepoOptionsPullRequests = Nothing+  , migrateRepoOptionsReleases = Nothing+  , migrateRepoOptionsRepoName+  , migrateRepoOptionsRepoOwner = Nothing+  , migrateRepoOptionsService = Nothing+  , migrateRepoOptionsUid = Nothing+  , migrateRepoOptionsWiki = Nothing+  }++-- ** Milestone+-- | Milestone+-- Milestone milestone is a collection of issues on one repository+data Milestone = Milestone+  { milestoneClosedAt :: !(Maybe DateTime) -- ^ "closed_at"+  , milestoneClosedIssues :: !(Maybe Integer) -- ^ "closed_issues"+  , milestoneCreatedAt :: !(Maybe DateTime) -- ^ "created_at"+  , milestoneDescription :: !(Maybe Text) -- ^ "description"+  , milestoneDueOn :: !(Maybe DateTime) -- ^ "due_on"+  , milestoneId :: !(Maybe Integer) -- ^ "id"+  , milestoneOpenIssues :: !(Maybe Integer) -- ^ "open_issues"+  , milestoneState :: !(Maybe Text) -- ^ "state" - StateType issue state type+  , milestoneTitle :: !(Maybe Text) -- ^ "title"+  , milestoneUpdatedAt :: !(Maybe DateTime) -- ^ "updated_at"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON Milestone+instance A.FromJSON Milestone where+  parseJSON = A.withObject "Milestone" $ \o ->+    Milestone+      <$> (o .:? "closed_at")+      <*> (o .:? "closed_issues")+      <*> (o .:? "created_at")+      <*> (o .:? "description")+      <*> (o .:? "due_on")+      <*> (o .:? "id")+      <*> (o .:? "open_issues")+      <*> (o .:? "state")+      <*> (o .:? "title")+      <*> (o .:? "updated_at")++-- | ToJSON Milestone+instance A.ToJSON Milestone where+  toJSON Milestone {..} =+   _omitNulls+      [ "closed_at" .= milestoneClosedAt+      , "closed_issues" .= milestoneClosedIssues+      , "created_at" .= milestoneCreatedAt+      , "description" .= milestoneDescription+      , "due_on" .= milestoneDueOn+      , "id" .= milestoneId+      , "open_issues" .= milestoneOpenIssues+      , "state" .= milestoneState+      , "title" .= milestoneTitle+      , "updated_at" .= milestoneUpdatedAt+      ]+++-- | Construct a value of type 'Milestone' (by applying it's required fields, if any)+mkMilestone+  :: Milestone+mkMilestone =+  Milestone+  { milestoneClosedAt = Nothing+  , milestoneClosedIssues = Nothing+  , milestoneCreatedAt = Nothing+  , milestoneDescription = Nothing+  , milestoneDueOn = Nothing+  , milestoneId = Nothing+  , milestoneOpenIssues = Nothing+  , milestoneState = Nothing+  , milestoneTitle = Nothing+  , milestoneUpdatedAt = Nothing+  }++-- ** NodeInfo+-- | NodeInfo+-- NodeInfo contains standardized way of exposing metadata about a server running one of the distributed social networks+data NodeInfo = NodeInfo+  { nodeInfoMetadata :: !(Maybe A.Value) -- ^ "metadata"+  , nodeInfoOpenRegistrations :: !(Maybe Bool) -- ^ "openRegistrations"+  , nodeInfoProtocols :: !(Maybe [Text]) -- ^ "protocols"+  , nodeInfoServices :: !(Maybe NodeInfoServices) -- ^ "services"+  , nodeInfoSoftware :: !(Maybe NodeInfoSoftware) -- ^ "software"+  , nodeInfoUsage :: !(Maybe NodeInfoUsage) -- ^ "usage"+  , nodeInfoVersion :: !(Maybe Text) -- ^ "version"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON NodeInfo+instance A.FromJSON NodeInfo where+  parseJSON = A.withObject "NodeInfo" $ \o ->+    NodeInfo+      <$> (o .:? "metadata")+      <*> (o .:? "openRegistrations")+      <*> (o .:? "protocols")+      <*> (o .:? "services")+      <*> (o .:? "software")+      <*> (o .:? "usage")+      <*> (o .:? "version")++-- | ToJSON NodeInfo+instance A.ToJSON NodeInfo where+  toJSON NodeInfo {..} =+   _omitNulls+      [ "metadata" .= nodeInfoMetadata+      , "openRegistrations" .= nodeInfoOpenRegistrations+      , "protocols" .= nodeInfoProtocols+      , "services" .= nodeInfoServices+      , "software" .= nodeInfoSoftware+      , "usage" .= nodeInfoUsage+      , "version" .= nodeInfoVersion+      ]+++-- | Construct a value of type 'NodeInfo' (by applying it's required fields, if any)+mkNodeInfo+  :: NodeInfo+mkNodeInfo =+  NodeInfo+  { nodeInfoMetadata = Nothing+  , nodeInfoOpenRegistrations = Nothing+  , nodeInfoProtocols = Nothing+  , nodeInfoServices = Nothing+  , nodeInfoSoftware = Nothing+  , nodeInfoUsage = Nothing+  , nodeInfoVersion = Nothing+  }++-- ** NodeInfoServices+-- | NodeInfoServices+-- NodeInfoServices contains the third party sites this server can connect to via their application API+data NodeInfoServices = NodeInfoServices+  { nodeInfoServicesInbound :: !(Maybe [Text]) -- ^ "inbound"+  , nodeInfoServicesOutbound :: !(Maybe [Text]) -- ^ "outbound"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON NodeInfoServices+instance A.FromJSON NodeInfoServices where+  parseJSON = A.withObject "NodeInfoServices" $ \o ->+    NodeInfoServices+      <$> (o .:? "inbound")+      <*> (o .:? "outbound")++-- | ToJSON NodeInfoServices+instance A.ToJSON NodeInfoServices where+  toJSON NodeInfoServices {..} =+   _omitNulls+      [ "inbound" .= nodeInfoServicesInbound+      , "outbound" .= nodeInfoServicesOutbound+      ]+++-- | Construct a value of type 'NodeInfoServices' (by applying it's required fields, if any)+mkNodeInfoServices+  :: NodeInfoServices+mkNodeInfoServices =+  NodeInfoServices+  { nodeInfoServicesInbound = Nothing+  , nodeInfoServicesOutbound = Nothing+  }++-- ** NodeInfoSoftware+-- | NodeInfoSoftware+-- NodeInfoSoftware contains Metadata about server software in use+data NodeInfoSoftware = NodeInfoSoftware+  { nodeInfoSoftwareHomepage :: !(Maybe Text) -- ^ "homepage"+  , nodeInfoSoftwareName :: !(Maybe Text) -- ^ "name"+  , nodeInfoSoftwareRepository :: !(Maybe Text) -- ^ "repository"+  , nodeInfoSoftwareVersion :: !(Maybe Text) -- ^ "version"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON NodeInfoSoftware+instance A.FromJSON NodeInfoSoftware where+  parseJSON = A.withObject "NodeInfoSoftware" $ \o ->+    NodeInfoSoftware+      <$> (o .:? "homepage")+      <*> (o .:? "name")+      <*> (o .:? "repository")+      <*> (o .:? "version")++-- | ToJSON NodeInfoSoftware+instance A.ToJSON NodeInfoSoftware where+  toJSON NodeInfoSoftware {..} =+   _omitNulls+      [ "homepage" .= nodeInfoSoftwareHomepage+      , "name" .= nodeInfoSoftwareName+      , "repository" .= nodeInfoSoftwareRepository+      , "version" .= nodeInfoSoftwareVersion+      ]+++-- | Construct a value of type 'NodeInfoSoftware' (by applying it's required fields, if any)+mkNodeInfoSoftware+  :: NodeInfoSoftware+mkNodeInfoSoftware =+  NodeInfoSoftware+  { nodeInfoSoftwareHomepage = Nothing+  , nodeInfoSoftwareName = Nothing+  , nodeInfoSoftwareRepository = Nothing+  , nodeInfoSoftwareVersion = Nothing+  }++-- ** NodeInfoUsage+-- | NodeInfoUsage+-- NodeInfoUsage contains usage statistics for this server+data NodeInfoUsage = NodeInfoUsage+  { nodeInfoUsageLocalComments :: !(Maybe Integer) -- ^ "localComments"+  , nodeInfoUsageLocalPosts :: !(Maybe Integer) -- ^ "localPosts"+  , nodeInfoUsageUsers :: !(Maybe NodeInfoUsageUsers) -- ^ "users"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON NodeInfoUsage+instance A.FromJSON NodeInfoUsage where+  parseJSON = A.withObject "NodeInfoUsage" $ \o ->+    NodeInfoUsage+      <$> (o .:? "localComments")+      <*> (o .:? "localPosts")+      <*> (o .:? "users")++-- | ToJSON NodeInfoUsage+instance A.ToJSON NodeInfoUsage where+  toJSON NodeInfoUsage {..} =+   _omitNulls+      [ "localComments" .= nodeInfoUsageLocalComments+      , "localPosts" .= nodeInfoUsageLocalPosts+      , "users" .= nodeInfoUsageUsers+      ]+++-- | Construct a value of type 'NodeInfoUsage' (by applying it's required fields, if any)+mkNodeInfoUsage+  :: NodeInfoUsage+mkNodeInfoUsage =+  NodeInfoUsage+  { nodeInfoUsageLocalComments = Nothing+  , nodeInfoUsageLocalPosts = Nothing+  , nodeInfoUsageUsers = Nothing+  }++-- ** NodeInfoUsageUsers+-- | NodeInfoUsageUsers+-- NodeInfoUsageUsers contains statistics about the users of this server+data NodeInfoUsageUsers = NodeInfoUsageUsers+  { nodeInfoUsageUsersActiveHalfyear :: !(Maybe Integer) -- ^ "activeHalfyear"+  , nodeInfoUsageUsersActiveMonth :: !(Maybe Integer) -- ^ "activeMonth"+  , nodeInfoUsageUsersTotal :: !(Maybe Integer) -- ^ "total"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON NodeInfoUsageUsers+instance A.FromJSON NodeInfoUsageUsers where+  parseJSON = A.withObject "NodeInfoUsageUsers" $ \o ->+    NodeInfoUsageUsers+      <$> (o .:? "activeHalfyear")+      <*> (o .:? "activeMonth")+      <*> (o .:? "total")++-- | ToJSON NodeInfoUsageUsers+instance A.ToJSON NodeInfoUsageUsers where+  toJSON NodeInfoUsageUsers {..} =+   _omitNulls+      [ "activeHalfyear" .= nodeInfoUsageUsersActiveHalfyear+      , "activeMonth" .= nodeInfoUsageUsersActiveMonth+      , "total" .= nodeInfoUsageUsersTotal+      ]+++-- | Construct a value of type 'NodeInfoUsageUsers' (by applying it's required fields, if any)+mkNodeInfoUsageUsers+  :: NodeInfoUsageUsers+mkNodeInfoUsageUsers =+  NodeInfoUsageUsers+  { nodeInfoUsageUsersActiveHalfyear = Nothing+  , nodeInfoUsageUsersActiveMonth = Nothing+  , nodeInfoUsageUsersTotal = Nothing+  }++-- ** Note+-- | Note+-- Note contains information related to a git note+data Note = Note+  { noteCommit :: !(Maybe Commit) -- ^ "commit"+  , noteMessage :: !(Maybe Text) -- ^ "message"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON Note+instance A.FromJSON Note where+  parseJSON = A.withObject "Note" $ \o ->+    Note+      <$> (o .:? "commit")+      <*> (o .:? "message")++-- | ToJSON Note+instance A.ToJSON Note where+  toJSON Note {..} =+   _omitNulls+      [ "commit" .= noteCommit+      , "message" .= noteMessage+      ]+++-- | Construct a value of type 'Note' (by applying it's required fields, if any)+mkNote+  :: Note+mkNote =+  Note+  { noteCommit = Nothing+  , noteMessage = Nothing+  }++-- ** NotificationCount+-- | NotificationCount+-- NotificationCount number of unread notifications+data NotificationCount = NotificationCount+  { notificationCountNew :: !(Maybe Integer) -- ^ "new"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON NotificationCount+instance A.FromJSON NotificationCount where+  parseJSON = A.withObject "NotificationCount" $ \o ->+    NotificationCount+      <$> (o .:? "new")++-- | ToJSON NotificationCount+instance A.ToJSON NotificationCount where+  toJSON NotificationCount {..} =+   _omitNulls+      [ "new" .= notificationCountNew+      ]+++-- | Construct a value of type 'NotificationCount' (by applying it's required fields, if any)+mkNotificationCount+  :: NotificationCount+mkNotificationCount =+  NotificationCount+  { notificationCountNew = Nothing+  }++-- ** NotificationSubject+-- | NotificationSubject+-- NotificationSubject contains the notification subject (Issue/Pull/Commit)+data NotificationSubject = NotificationSubject+  { notificationSubjectHtmlUrl :: !(Maybe Text) -- ^ "html_url"+  , notificationSubjectLatestCommentHtmlUrl :: !(Maybe Text) -- ^ "latest_comment_html_url"+  , notificationSubjectLatestCommentUrl :: !(Maybe Text) -- ^ "latest_comment_url"+  , notificationSubjectState :: !(Maybe Text) -- ^ "state" - StateType issue state type+  , notificationSubjectTitle :: !(Maybe Text) -- ^ "title"+  , notificationSubjectType :: !(Maybe Text) -- ^ "type" - NotifySubjectType represent type of notification subject+  , notificationSubjectUrl :: !(Maybe Text) -- ^ "url"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON NotificationSubject+instance A.FromJSON NotificationSubject where+  parseJSON = A.withObject "NotificationSubject" $ \o ->+    NotificationSubject+      <$> (o .:? "html_url")+      <*> (o .:? "latest_comment_html_url")+      <*> (o .:? "latest_comment_url")+      <*> (o .:? "state")+      <*> (o .:? "title")+      <*> (o .:? "type")+      <*> (o .:? "url")++-- | ToJSON NotificationSubject+instance A.ToJSON NotificationSubject where+  toJSON NotificationSubject {..} =+   _omitNulls+      [ "html_url" .= notificationSubjectHtmlUrl+      , "latest_comment_html_url" .= notificationSubjectLatestCommentHtmlUrl+      , "latest_comment_url" .= notificationSubjectLatestCommentUrl+      , "state" .= notificationSubjectState+      , "title" .= notificationSubjectTitle+      , "type" .= notificationSubjectType+      , "url" .= notificationSubjectUrl+      ]+++-- | Construct a value of type 'NotificationSubject' (by applying it's required fields, if any)+mkNotificationSubject+  :: NotificationSubject+mkNotificationSubject =+  NotificationSubject+  { notificationSubjectHtmlUrl = Nothing+  , notificationSubjectLatestCommentHtmlUrl = Nothing+  , notificationSubjectLatestCommentUrl = Nothing+  , notificationSubjectState = Nothing+  , notificationSubjectTitle = Nothing+  , notificationSubjectType = Nothing+  , notificationSubjectUrl = Nothing+  }++-- ** NotificationThread+-- | NotificationThread+-- NotificationThread expose Notification on API+data NotificationThread = NotificationThread+  { notificationThreadId :: !(Maybe Integer) -- ^ "id"+  , notificationThreadPinned :: !(Maybe Bool) -- ^ "pinned"+  , notificationThreadRepository :: !(Maybe Repository) -- ^ "repository"+  , notificationThreadSubject :: !(Maybe NotificationSubject) -- ^ "subject"+  , notificationThreadUnread :: !(Maybe Bool) -- ^ "unread"+  , notificationThreadUpdatedAt :: !(Maybe DateTime) -- ^ "updated_at"+  , notificationThreadUrl :: !(Maybe Text) -- ^ "url"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON NotificationThread+instance A.FromJSON NotificationThread where+  parseJSON = A.withObject "NotificationThread" $ \o ->+    NotificationThread+      <$> (o .:? "id")+      <*> (o .:? "pinned")+      <*> (o .:? "repository")+      <*> (o .:? "subject")+      <*> (o .:? "unread")+      <*> (o .:? "updated_at")+      <*> (o .:? "url")++-- | ToJSON NotificationThread+instance A.ToJSON NotificationThread where+  toJSON NotificationThread {..} =+   _omitNulls+      [ "id" .= notificationThreadId+      , "pinned" .= notificationThreadPinned+      , "repository" .= notificationThreadRepository+      , "subject" .= notificationThreadSubject+      , "unread" .= notificationThreadUnread+      , "updated_at" .= notificationThreadUpdatedAt+      , "url" .= notificationThreadUrl+      ]+++-- | Construct a value of type 'NotificationThread' (by applying it's required fields, if any)+mkNotificationThread+  :: NotificationThread+mkNotificationThread =+  NotificationThread+  { notificationThreadId = Nothing+  , notificationThreadPinned = Nothing+  , notificationThreadRepository = Nothing+  , notificationThreadSubject = Nothing+  , notificationThreadUnread = Nothing+  , notificationThreadUpdatedAt = Nothing+  , notificationThreadUrl = Nothing+  }++-- ** OAuth2Application+-- | OAuth2Application+-- OAuth2Application represents an OAuth2 application.+-- +data OAuth2Application = OAuth2Application+  { oAuth2ApplicationClientId :: !(Maybe Text) -- ^ "client_id"+  , oAuth2ApplicationClientSecret :: !(Maybe Text) -- ^ "client_secret"+  , oAuth2ApplicationConfidentialClient :: !(Maybe Bool) -- ^ "confidential_client"+  , oAuth2ApplicationCreated :: !(Maybe DateTime) -- ^ "created"+  , oAuth2ApplicationId :: !(Maybe Integer) -- ^ "id"+  , oAuth2ApplicationName :: !(Maybe Text) -- ^ "name"+  , oAuth2ApplicationRedirectUris :: !(Maybe [Text]) -- ^ "redirect_uris"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON OAuth2Application+instance A.FromJSON OAuth2Application where+  parseJSON = A.withObject "OAuth2Application" $ \o ->+    OAuth2Application+      <$> (o .:? "client_id")+      <*> (o .:? "client_secret")+      <*> (o .:? "confidential_client")+      <*> (o .:? "created")+      <*> (o .:? "id")+      <*> (o .:? "name")+      <*> (o .:? "redirect_uris")++-- | ToJSON OAuth2Application+instance A.ToJSON OAuth2Application where+  toJSON OAuth2Application {..} =+   _omitNulls+      [ "client_id" .= oAuth2ApplicationClientId+      , "client_secret" .= oAuth2ApplicationClientSecret+      , "confidential_client" .= oAuth2ApplicationConfidentialClient+      , "created" .= oAuth2ApplicationCreated+      , "id" .= oAuth2ApplicationId+      , "name" .= oAuth2ApplicationName+      , "redirect_uris" .= oAuth2ApplicationRedirectUris+      ]+++-- | Construct a value of type 'OAuth2Application' (by applying it's required fields, if any)+mkOAuth2Application+  :: OAuth2Application+mkOAuth2Application =+  OAuth2Application+  { oAuth2ApplicationClientId = Nothing+  , oAuth2ApplicationClientSecret = Nothing+  , oAuth2ApplicationConfidentialClient = Nothing+  , oAuth2ApplicationCreated = Nothing+  , oAuth2ApplicationId = Nothing+  , oAuth2ApplicationName = Nothing+  , oAuth2ApplicationRedirectUris = Nothing+  }++-- ** Organization+-- | Organization+-- Organization represents an organization+data Organization = Organization+  { organizationAvatarUrl :: !(Maybe Text) -- ^ "avatar_url"+  , organizationDescription :: !(Maybe Text) -- ^ "description"+  , organizationFullName :: !(Maybe Text) -- ^ "full_name"+  , organizationId :: !(Maybe Integer) -- ^ "id"+  , organizationLocation :: !(Maybe Text) -- ^ "location"+  , organizationName :: !(Maybe Text) -- ^ "name"+  , organizationRepoAdminChangeTeamAccess :: !(Maybe Bool) -- ^ "repo_admin_change_team_access"+  , organizationUsername :: !(Maybe Text) -- ^ "username" - deprecated+  , organizationVisibility :: !(Maybe Text) -- ^ "visibility"+  , organizationWebsite :: !(Maybe Text) -- ^ "website"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON Organization+instance A.FromJSON Organization where+  parseJSON = A.withObject "Organization" $ \o ->+    Organization+      <$> (o .:? "avatar_url")+      <*> (o .:? "description")+      <*> (o .:? "full_name")+      <*> (o .:? "id")+      <*> (o .:? "location")+      <*> (o .:? "name")+      <*> (o .:? "repo_admin_change_team_access")+      <*> (o .:? "username")+      <*> (o .:? "visibility")+      <*> (o .:? "website")++-- | ToJSON Organization+instance A.ToJSON Organization where+  toJSON Organization {..} =+   _omitNulls+      [ "avatar_url" .= organizationAvatarUrl+      , "description" .= organizationDescription+      , "full_name" .= organizationFullName+      , "id" .= organizationId+      , "location" .= organizationLocation+      , "name" .= organizationName+      , "repo_admin_change_team_access" .= organizationRepoAdminChangeTeamAccess+      , "username" .= organizationUsername+      , "visibility" .= organizationVisibility+      , "website" .= organizationWebsite+      ]+++-- | Construct a value of type 'Organization' (by applying it's required fields, if any)+mkOrganization+  :: Organization+mkOrganization =+  Organization+  { organizationAvatarUrl = Nothing+  , organizationDescription = Nothing+  , organizationFullName = Nothing+  , organizationId = Nothing+  , organizationLocation = Nothing+  , organizationName = Nothing+  , organizationRepoAdminChangeTeamAccess = Nothing+  , organizationUsername = Nothing+  , organizationVisibility = Nothing+  , organizationWebsite = Nothing+  }++-- ** OrganizationPermissions+-- | OrganizationPermissions+-- OrganizationPermissions list different users permissions on an organization+data OrganizationPermissions = OrganizationPermissions+  { organizationPermissionsCanCreateRepository :: !(Maybe Bool) -- ^ "can_create_repository"+  , organizationPermissionsCanRead :: !(Maybe Bool) -- ^ "can_read"+  , organizationPermissionsCanWrite :: !(Maybe Bool) -- ^ "can_write"+  , organizationPermissionsIsAdmin :: !(Maybe Bool) -- ^ "is_admin"+  , organizationPermissionsIsOwner :: !(Maybe Bool) -- ^ "is_owner"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON OrganizationPermissions+instance A.FromJSON OrganizationPermissions where+  parseJSON = A.withObject "OrganizationPermissions" $ \o ->+    OrganizationPermissions+      <$> (o .:? "can_create_repository")+      <*> (o .:? "can_read")+      <*> (o .:? "can_write")+      <*> (o .:? "is_admin")+      <*> (o .:? "is_owner")++-- | ToJSON OrganizationPermissions+instance A.ToJSON OrganizationPermissions where+  toJSON OrganizationPermissions {..} =+   _omitNulls+      [ "can_create_repository" .= organizationPermissionsCanCreateRepository+      , "can_read" .= organizationPermissionsCanRead+      , "can_write" .= organizationPermissionsCanWrite+      , "is_admin" .= organizationPermissionsIsAdmin+      , "is_owner" .= organizationPermissionsIsOwner+      ]+++-- | Construct a value of type 'OrganizationPermissions' (by applying it's required fields, if any)+mkOrganizationPermissions+  :: OrganizationPermissions+mkOrganizationPermissions =+  OrganizationPermissions+  { organizationPermissionsCanCreateRepository = Nothing+  , organizationPermissionsCanRead = Nothing+  , organizationPermissionsCanWrite = Nothing+  , organizationPermissionsIsAdmin = Nothing+  , organizationPermissionsIsOwner = Nothing+  }++-- ** PRBranchInfo+-- | PRBranchInfo+-- PRBranchInfo information about a branch+data PRBranchInfo = PRBranchInfo+  { pRBranchInfoLabel :: !(Maybe Text) -- ^ "label"+  , pRBranchInfoRef :: !(Maybe Text) -- ^ "ref"+  , pRBranchInfoRepo :: !(Maybe Repository) -- ^ "repo"+  , pRBranchInfoRepoId :: !(Maybe Integer) -- ^ "repo_id"+  , pRBranchInfoSha :: !(Maybe Text) -- ^ "sha"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON PRBranchInfo+instance A.FromJSON PRBranchInfo where+  parseJSON = A.withObject "PRBranchInfo" $ \o ->+    PRBranchInfo+      <$> (o .:? "label")+      <*> (o .:? "ref")+      <*> (o .:? "repo")+      <*> (o .:? "repo_id")+      <*> (o .:? "sha")++-- | ToJSON PRBranchInfo+instance A.ToJSON PRBranchInfo where+  toJSON PRBranchInfo {..} =+   _omitNulls+      [ "label" .= pRBranchInfoLabel+      , "ref" .= pRBranchInfoRef+      , "repo" .= pRBranchInfoRepo+      , "repo_id" .= pRBranchInfoRepoId+      , "sha" .= pRBranchInfoSha+      ]+++-- | Construct a value of type 'PRBranchInfo' (by applying it's required fields, if any)+mkPRBranchInfo+  :: PRBranchInfo+mkPRBranchInfo =+  PRBranchInfo+  { pRBranchInfoLabel = Nothing+  , pRBranchInfoRef = Nothing+  , pRBranchInfoRepo = Nothing+  , pRBranchInfoRepoId = Nothing+  , pRBranchInfoSha = Nothing+  }++-- ** Package+-- | Package+-- Package represents a package+data Package = Package+  { packageCreatedAt :: !(Maybe DateTime) -- ^ "created_at"+  , packageCreator :: !(Maybe User) -- ^ "creator"+  , packageId :: !(Maybe Integer) -- ^ "id"+  , packageName :: !(Maybe Text) -- ^ "name"+  , packageOwner :: !(Maybe User) -- ^ "owner"+  , packageRepository :: !(Maybe Repository) -- ^ "repository"+  , packageType :: !(Maybe Text) -- ^ "type"+  , packageVersion :: !(Maybe Text) -- ^ "version"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON Package+instance A.FromJSON Package where+  parseJSON = A.withObject "Package" $ \o ->+    Package+      <$> (o .:? "created_at")+      <*> (o .:? "creator")+      <*> (o .:? "id")+      <*> (o .:? "name")+      <*> (o .:? "owner")+      <*> (o .:? "repository")+      <*> (o .:? "type")+      <*> (o .:? "version")++-- | ToJSON Package+instance A.ToJSON Package where+  toJSON Package {..} =+   _omitNulls+      [ "created_at" .= packageCreatedAt+      , "creator" .= packageCreator+      , "id" .= packageId+      , "name" .= packageName+      , "owner" .= packageOwner+      , "repository" .= packageRepository+      , "type" .= packageType+      , "version" .= packageVersion+      ]+++-- | Construct a value of type 'Package' (by applying it's required fields, if any)+mkPackage+  :: Package+mkPackage =+  Package+  { packageCreatedAt = Nothing+  , packageCreator = Nothing+  , packageId = Nothing+  , packageName = Nothing+  , packageOwner = Nothing+  , packageRepository = Nothing+  , packageType = Nothing+  , packageVersion = Nothing+  }++-- ** PackageFile+-- | PackageFile+-- PackageFile represents a package file+data PackageFile = PackageFile+  { packageFileSize :: !(Maybe Integer) -- ^ "Size"+  , packageFileId :: !(Maybe Integer) -- ^ "id"+  , packageFileMd5 :: !(Maybe Text) -- ^ "md5"+  , packageFileName :: !(Maybe Text) -- ^ "name"+  , packageFileSha1 :: !(Maybe Text) -- ^ "sha1"+  , packageFileSha256 :: !(Maybe Text) -- ^ "sha256"+  , packageFileSha512 :: !(Maybe Text) -- ^ "sha512"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON PackageFile+instance A.FromJSON PackageFile where+  parseJSON = A.withObject "PackageFile" $ \o ->+    PackageFile+      <$> (o .:? "Size")+      <*> (o .:? "id")+      <*> (o .:? "md5")+      <*> (o .:? "name")+      <*> (o .:? "sha1")+      <*> (o .:? "sha256")+      <*> (o .:? "sha512")++-- | ToJSON PackageFile+instance A.ToJSON PackageFile where+  toJSON PackageFile {..} =+   _omitNulls+      [ "Size" .= packageFileSize+      , "id" .= packageFileId+      , "md5" .= packageFileMd5+      , "name" .= packageFileName+      , "sha1" .= packageFileSha1+      , "sha256" .= packageFileSha256+      , "sha512" .= packageFileSha512+      ]+++-- | Construct a value of type 'PackageFile' (by applying it's required fields, if any)+mkPackageFile+  :: PackageFile+mkPackageFile =+  PackageFile+  { packageFileSize = Nothing+  , packageFileId = Nothing+  , packageFileMd5 = Nothing+  , packageFileName = Nothing+  , packageFileSha1 = Nothing+  , packageFileSha256 = Nothing+  , packageFileSha512 = Nothing+  }++-- ** PayloadCommit+-- | PayloadCommit+-- PayloadCommit represents a commit+data PayloadCommit = PayloadCommit+  { payloadCommitAdded :: !(Maybe [Text]) -- ^ "added"+  , payloadCommitAuthor :: !(Maybe PayloadUser) -- ^ "author"+  , payloadCommitCommitter :: !(Maybe PayloadUser) -- ^ "committer"+  , payloadCommitId :: !(Maybe Text) -- ^ "id" - sha1 hash of the commit+  , payloadCommitMessage :: !(Maybe Text) -- ^ "message"+  , payloadCommitModified :: !(Maybe [Text]) -- ^ "modified"+  , payloadCommitRemoved :: !(Maybe [Text]) -- ^ "removed"+  , payloadCommitTimestamp :: !(Maybe DateTime) -- ^ "timestamp"+  , payloadCommitUrl :: !(Maybe Text) -- ^ "url"+  , payloadCommitVerification :: !(Maybe PayloadCommitVerification) -- ^ "verification"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON PayloadCommit+instance A.FromJSON PayloadCommit where+  parseJSON = A.withObject "PayloadCommit" $ \o ->+    PayloadCommit+      <$> (o .:? "added")+      <*> (o .:? "author")+      <*> (o .:? "committer")+      <*> (o .:? "id")+      <*> (o .:? "message")+      <*> (o .:? "modified")+      <*> (o .:? "removed")+      <*> (o .:? "timestamp")+      <*> (o .:? "url")+      <*> (o .:? "verification")++-- | ToJSON PayloadCommit+instance A.ToJSON PayloadCommit where+  toJSON PayloadCommit {..} =+   _omitNulls+      [ "added" .= payloadCommitAdded+      , "author" .= payloadCommitAuthor+      , "committer" .= payloadCommitCommitter+      , "id" .= payloadCommitId+      , "message" .= payloadCommitMessage+      , "modified" .= payloadCommitModified+      , "removed" .= payloadCommitRemoved+      , "timestamp" .= payloadCommitTimestamp+      , "url" .= payloadCommitUrl+      , "verification" .= payloadCommitVerification+      ]+++-- | Construct a value of type 'PayloadCommit' (by applying it's required fields, if any)+mkPayloadCommit+  :: PayloadCommit+mkPayloadCommit =+  PayloadCommit+  { payloadCommitAdded = Nothing+  , payloadCommitAuthor = Nothing+  , payloadCommitCommitter = Nothing+  , payloadCommitId = Nothing+  , payloadCommitMessage = Nothing+  , payloadCommitModified = Nothing+  , payloadCommitRemoved = Nothing+  , payloadCommitTimestamp = Nothing+  , payloadCommitUrl = Nothing+  , payloadCommitVerification = Nothing+  }++-- ** PayloadCommitVerification+-- | PayloadCommitVerification+-- PayloadCommitVerification represents the GPG verification of a commit+data PayloadCommitVerification = PayloadCommitVerification+  { payloadCommitVerificationPayload :: !(Maybe Text) -- ^ "payload"+  , payloadCommitVerificationReason :: !(Maybe Text) -- ^ "reason"+  , payloadCommitVerificationSignature :: !(Maybe Text) -- ^ "signature"+  , payloadCommitVerificationSigner :: !(Maybe PayloadUser) -- ^ "signer"+  , payloadCommitVerificationVerified :: !(Maybe Bool) -- ^ "verified"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON PayloadCommitVerification+instance A.FromJSON PayloadCommitVerification where+  parseJSON = A.withObject "PayloadCommitVerification" $ \o ->+    PayloadCommitVerification+      <$> (o .:? "payload")+      <*> (o .:? "reason")+      <*> (o .:? "signature")+      <*> (o .:? "signer")+      <*> (o .:? "verified")++-- | ToJSON PayloadCommitVerification+instance A.ToJSON PayloadCommitVerification where+  toJSON PayloadCommitVerification {..} =+   _omitNulls+      [ "payload" .= payloadCommitVerificationPayload+      , "reason" .= payloadCommitVerificationReason+      , "signature" .= payloadCommitVerificationSignature+      , "signer" .= payloadCommitVerificationSigner+      , "verified" .= payloadCommitVerificationVerified+      ]+++-- | Construct a value of type 'PayloadCommitVerification' (by applying it's required fields, if any)+mkPayloadCommitVerification+  :: PayloadCommitVerification+mkPayloadCommitVerification =+  PayloadCommitVerification+  { payloadCommitVerificationPayload = Nothing+  , payloadCommitVerificationReason = Nothing+  , payloadCommitVerificationSignature = Nothing+  , payloadCommitVerificationSigner = Nothing+  , payloadCommitVerificationVerified = Nothing+  }++-- ** PayloadUser+-- | PayloadUser+-- PayloadUser represents the author or committer of a commit+data PayloadUser = PayloadUser+  { payloadUserEmail :: !(Maybe Text) -- ^ "email"+  , payloadUserName :: !(Maybe Text) -- ^ "name" - Full name of the commit author+  , payloadUserUsername :: !(Maybe Text) -- ^ "username"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON PayloadUser+instance A.FromJSON PayloadUser where+  parseJSON = A.withObject "PayloadUser" $ \o ->+    PayloadUser+      <$> (o .:? "email")+      <*> (o .:? "name")+      <*> (o .:? "username")++-- | ToJSON PayloadUser+instance A.ToJSON PayloadUser where+  toJSON PayloadUser {..} =+   _omitNulls+      [ "email" .= payloadUserEmail+      , "name" .= payloadUserName+      , "username" .= payloadUserUsername+      ]+++-- | Construct a value of type 'PayloadUser' (by applying it's required fields, if any)+mkPayloadUser+  :: PayloadUser+mkPayloadUser =+  PayloadUser+  { payloadUserEmail = Nothing+  , payloadUserName = Nothing+  , payloadUserUsername = Nothing+  }++-- ** Permission+-- | Permission+-- Permission represents a set of permissions+data Permission = Permission+  { permissionAdmin :: !(Maybe Bool) -- ^ "admin"+  , permissionPull :: !(Maybe Bool) -- ^ "pull"+  , permissionPush :: !(Maybe Bool) -- ^ "push"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON Permission+instance A.FromJSON Permission where+  parseJSON = A.withObject "Permission" $ \o ->+    Permission+      <$> (o .:? "admin")+      <*> (o .:? "pull")+      <*> (o .:? "push")++-- | ToJSON Permission+instance A.ToJSON Permission where+  toJSON Permission {..} =+   _omitNulls+      [ "admin" .= permissionAdmin+      , "pull" .= permissionPull+      , "push" .= permissionPush+      ]+++-- | Construct a value of type 'Permission' (by applying it's required fields, if any)+mkPermission+  :: Permission+mkPermission =+  Permission+  { permissionAdmin = Nothing+  , permissionPull = Nothing+  , permissionPush = Nothing+  }++-- ** PublicKey+-- | PublicKey+-- PublicKey publickey is a user key to push code to repository+data PublicKey = PublicKey+  { publicKeyCreatedAt :: !(Maybe DateTime) -- ^ "created_at"+  , publicKeyFingerprint :: !(Maybe Text) -- ^ "fingerprint"+  , publicKeyId :: !(Maybe Integer) -- ^ "id"+  , publicKeyKey :: !(Maybe Text) -- ^ "key"+  , publicKeyKeyType :: !(Maybe Text) -- ^ "key_type"+  , publicKeyReadOnly :: !(Maybe Bool) -- ^ "read_only"+  , publicKeyTitle :: !(Maybe Text) -- ^ "title"+  , publicKeyUrl :: !(Maybe Text) -- ^ "url"+  , publicKeyUser :: !(Maybe User) -- ^ "user"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON PublicKey+instance A.FromJSON PublicKey where+  parseJSON = A.withObject "PublicKey" $ \o ->+    PublicKey+      <$> (o .:? "created_at")+      <*> (o .:? "fingerprint")+      <*> (o .:? "id")+      <*> (o .:? "key")+      <*> (o .:? "key_type")+      <*> (o .:? "read_only")+      <*> (o .:? "title")+      <*> (o .:? "url")+      <*> (o .:? "user")++-- | ToJSON PublicKey+instance A.ToJSON PublicKey where+  toJSON PublicKey {..} =+   _omitNulls+      [ "created_at" .= publicKeyCreatedAt+      , "fingerprint" .= publicKeyFingerprint+      , "id" .= publicKeyId+      , "key" .= publicKeyKey+      , "key_type" .= publicKeyKeyType+      , "read_only" .= publicKeyReadOnly+      , "title" .= publicKeyTitle+      , "url" .= publicKeyUrl+      , "user" .= publicKeyUser+      ]+++-- | Construct a value of type 'PublicKey' (by applying it's required fields, if any)+mkPublicKey+  :: PublicKey+mkPublicKey =+  PublicKey+  { publicKeyCreatedAt = Nothing+  , publicKeyFingerprint = Nothing+  , publicKeyId = Nothing+  , publicKeyKey = Nothing+  , publicKeyKeyType = Nothing+  , publicKeyReadOnly = Nothing+  , publicKeyTitle = Nothing+  , publicKeyUrl = Nothing+  , publicKeyUser = Nothing+  }++-- ** PullRequest+-- | PullRequest+-- PullRequest represents a pull request+data PullRequest = PullRequest+  { pullRequestAllowMaintainerEdit :: !(Maybe Bool) -- ^ "allow_maintainer_edit"+  , pullRequestAssignee :: !(Maybe User) -- ^ "assignee"+  , pullRequestAssignees :: !(Maybe [User]) -- ^ "assignees"+  , pullRequestBase :: !(Maybe PRBranchInfo) -- ^ "base"+  , pullRequestBody :: !(Maybe Text) -- ^ "body"+  , pullRequestClosedAt :: !(Maybe DateTime) -- ^ "closed_at"+  , pullRequestComments :: !(Maybe Integer) -- ^ "comments"+  , pullRequestCreatedAt :: !(Maybe DateTime) -- ^ "created_at"+  , pullRequestDiffUrl :: !(Maybe Text) -- ^ "diff_url"+  , pullRequestDueDate :: !(Maybe DateTime) -- ^ "due_date"+  , pullRequestHead :: !(Maybe PRBranchInfo) -- ^ "head"+  , pullRequestHtmlUrl :: !(Maybe Text) -- ^ "html_url"+  , pullRequestId :: !(Maybe Integer) -- ^ "id"+  , pullRequestIsLocked :: !(Maybe Bool) -- ^ "is_locked"+  , pullRequestLabels :: !(Maybe [Label]) -- ^ "labels"+  , pullRequestMergeBase :: !(Maybe Text) -- ^ "merge_base"+  , pullRequestMergeCommitSha :: !(Maybe Text) -- ^ "merge_commit_sha"+  , pullRequestMergeable :: !(Maybe Bool) -- ^ "mergeable"+  , pullRequestMerged :: !(Maybe Bool) -- ^ "merged"+  , pullRequestMergedAt :: !(Maybe DateTime) -- ^ "merged_at"+  , pullRequestMergedBy :: !(Maybe User) -- ^ "merged_by"+  , pullRequestMilestone :: !(Maybe Milestone) -- ^ "milestone"+  , pullRequestNumber :: !(Maybe Integer) -- ^ "number"+  , pullRequestPatchUrl :: !(Maybe Text) -- ^ "patch_url"+  , pullRequestState :: !(Maybe Text) -- ^ "state" - StateType issue state type+  , pullRequestTitle :: !(Maybe Text) -- ^ "title"+  , pullRequestUpdatedAt :: !(Maybe DateTime) -- ^ "updated_at"+  , pullRequestUrl :: !(Maybe Text) -- ^ "url"+  , pullRequestUser :: !(Maybe User) -- ^ "user"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON PullRequest+instance A.FromJSON PullRequest where+  parseJSON = A.withObject "PullRequest" $ \o ->+    PullRequest+      <$> (o .:? "allow_maintainer_edit")+      <*> (o .:? "assignee")+      <*> (o .:? "assignees")+      <*> (o .:? "base")+      <*> (o .:? "body")+      <*> (o .:? "closed_at")+      <*> (o .:? "comments")+      <*> (o .:? "created_at")+      <*> (o .:? "diff_url")+      <*> (o .:? "due_date")+      <*> (o .:? "head")+      <*> (o .:? "html_url")+      <*> (o .:? "id")+      <*> (o .:? "is_locked")+      <*> (o .:? "labels")+      <*> (o .:? "merge_base")+      <*> (o .:? "merge_commit_sha")+      <*> (o .:? "mergeable")+      <*> (o .:? "merged")+      <*> (o .:? "merged_at")+      <*> (o .:? "merged_by")+      <*> (o .:? "milestone")+      <*> (o .:? "number")+      <*> (o .:? "patch_url")+      <*> (o .:? "state")+      <*> (o .:? "title")+      <*> (o .:? "updated_at")+      <*> (o .:? "url")+      <*> (o .:? "user")++-- | ToJSON PullRequest+instance A.ToJSON PullRequest where+  toJSON PullRequest {..} =+   _omitNulls+      [ "allow_maintainer_edit" .= pullRequestAllowMaintainerEdit+      , "assignee" .= pullRequestAssignee+      , "assignees" .= pullRequestAssignees+      , "base" .= pullRequestBase+      , "body" .= pullRequestBody+      , "closed_at" .= pullRequestClosedAt+      , "comments" .= pullRequestComments+      , "created_at" .= pullRequestCreatedAt+      , "diff_url" .= pullRequestDiffUrl+      , "due_date" .= pullRequestDueDate+      , "head" .= pullRequestHead+      , "html_url" .= pullRequestHtmlUrl+      , "id" .= pullRequestId+      , "is_locked" .= pullRequestIsLocked+      , "labels" .= pullRequestLabels+      , "merge_base" .= pullRequestMergeBase+      , "merge_commit_sha" .= pullRequestMergeCommitSha+      , "mergeable" .= pullRequestMergeable+      , "merged" .= pullRequestMerged+      , "merged_at" .= pullRequestMergedAt+      , "merged_by" .= pullRequestMergedBy+      , "milestone" .= pullRequestMilestone+      , "number" .= pullRequestNumber+      , "patch_url" .= pullRequestPatchUrl+      , "state" .= pullRequestState+      , "title" .= pullRequestTitle+      , "updated_at" .= pullRequestUpdatedAt+      , "url" .= pullRequestUrl+      , "user" .= pullRequestUser+      ]+++-- | Construct a value of type 'PullRequest' (by applying it's required fields, if any)+mkPullRequest+  :: PullRequest+mkPullRequest =+  PullRequest+  { pullRequestAllowMaintainerEdit = Nothing+  , pullRequestAssignee = Nothing+  , pullRequestAssignees = Nothing+  , pullRequestBase = Nothing+  , pullRequestBody = Nothing+  , pullRequestClosedAt = Nothing+  , pullRequestComments = Nothing+  , pullRequestCreatedAt = Nothing+  , pullRequestDiffUrl = Nothing+  , pullRequestDueDate = Nothing+  , pullRequestHead = Nothing+  , pullRequestHtmlUrl = Nothing+  , pullRequestId = Nothing+  , pullRequestIsLocked = Nothing+  , pullRequestLabels = Nothing+  , pullRequestMergeBase = Nothing+  , pullRequestMergeCommitSha = Nothing+  , pullRequestMergeable = Nothing+  , pullRequestMerged = Nothing+  , pullRequestMergedAt = Nothing+  , pullRequestMergedBy = Nothing+  , pullRequestMilestone = Nothing+  , pullRequestNumber = Nothing+  , pullRequestPatchUrl = Nothing+  , pullRequestState = Nothing+  , pullRequestTitle = Nothing+  , pullRequestUpdatedAt = Nothing+  , pullRequestUrl = Nothing+  , pullRequestUser = Nothing+  }++-- ** PullRequestMeta+-- | PullRequestMeta+-- PullRequestMeta PR info if an issue is a PR+data PullRequestMeta = PullRequestMeta+  { pullRequestMetaMerged :: !(Maybe Bool) -- ^ "merged"+  , pullRequestMetaMergedAt :: !(Maybe DateTime) -- ^ "merged_at"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON PullRequestMeta+instance A.FromJSON PullRequestMeta where+  parseJSON = A.withObject "PullRequestMeta" $ \o ->+    PullRequestMeta+      <$> (o .:? "merged")+      <*> (o .:? "merged_at")++-- | ToJSON PullRequestMeta+instance A.ToJSON PullRequestMeta where+  toJSON PullRequestMeta {..} =+   _omitNulls+      [ "merged" .= pullRequestMetaMerged+      , "merged_at" .= pullRequestMetaMergedAt+      ]+++-- | Construct a value of type 'PullRequestMeta' (by applying it's required fields, if any)+mkPullRequestMeta+  :: PullRequestMeta+mkPullRequestMeta =+  PullRequestMeta+  { pullRequestMetaMerged = Nothing+  , pullRequestMetaMergedAt = Nothing+  }++-- ** PullReview+-- | PullReview+-- PullReview represents a pull request review+data PullReview = PullReview+  { pullReviewBody :: !(Maybe Text) -- ^ "body"+  , pullReviewCommentsCount :: !(Maybe Integer) -- ^ "comments_count"+  , pullReviewCommitId :: !(Maybe Text) -- ^ "commit_id"+  , pullReviewDismissed :: !(Maybe Bool) -- ^ "dismissed"+  , pullReviewHtmlUrl :: !(Maybe Text) -- ^ "html_url"+  , pullReviewId :: !(Maybe Integer) -- ^ "id"+  , pullReviewOfficial :: !(Maybe Bool) -- ^ "official"+  , pullReviewPullRequestUrl :: !(Maybe Text) -- ^ "pull_request_url"+  , pullReviewStale :: !(Maybe Bool) -- ^ "stale"+  , pullReviewState :: !(Maybe Text) -- ^ "state" - ReviewStateType review state type+  , pullReviewSubmittedAt :: !(Maybe DateTime) -- ^ "submitted_at"+  , pullReviewTeam :: !(Maybe Team) -- ^ "team"+  , pullReviewUpdatedAt :: !(Maybe DateTime) -- ^ "updated_at"+  , pullReviewUser :: !(Maybe User) -- ^ "user"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON PullReview+instance A.FromJSON PullReview where+  parseJSON = A.withObject "PullReview" $ \o ->+    PullReview+      <$> (o .:? "body")+      <*> (o .:? "comments_count")+      <*> (o .:? "commit_id")+      <*> (o .:? "dismissed")+      <*> (o .:? "html_url")+      <*> (o .:? "id")+      <*> (o .:? "official")+      <*> (o .:? "pull_request_url")+      <*> (o .:? "stale")+      <*> (o .:? "state")+      <*> (o .:? "submitted_at")+      <*> (o .:? "team")+      <*> (o .:? "updated_at")+      <*> (o .:? "user")++-- | ToJSON PullReview+instance A.ToJSON PullReview where+  toJSON PullReview {..} =+   _omitNulls+      [ "body" .= pullReviewBody+      , "comments_count" .= pullReviewCommentsCount+      , "commit_id" .= pullReviewCommitId+      , "dismissed" .= pullReviewDismissed+      , "html_url" .= pullReviewHtmlUrl+      , "id" .= pullReviewId+      , "official" .= pullReviewOfficial+      , "pull_request_url" .= pullReviewPullRequestUrl+      , "stale" .= pullReviewStale+      , "state" .= pullReviewState+      , "submitted_at" .= pullReviewSubmittedAt+      , "team" .= pullReviewTeam+      , "updated_at" .= pullReviewUpdatedAt+      , "user" .= pullReviewUser+      ]+++-- | Construct a value of type 'PullReview' (by applying it's required fields, if any)+mkPullReview+  :: PullReview+mkPullReview =+  PullReview+  { pullReviewBody = Nothing+  , pullReviewCommentsCount = Nothing+  , pullReviewCommitId = Nothing+  , pullReviewDismissed = Nothing+  , pullReviewHtmlUrl = Nothing+  , pullReviewId = Nothing+  , pullReviewOfficial = Nothing+  , pullReviewPullRequestUrl = Nothing+  , pullReviewStale = Nothing+  , pullReviewState = Nothing+  , pullReviewSubmittedAt = Nothing+  , pullReviewTeam = Nothing+  , pullReviewUpdatedAt = Nothing+  , pullReviewUser = Nothing+  }++-- ** PullReviewComment+-- | PullReviewComment+-- PullReviewComment represents a comment on a pull request review+data PullReviewComment = PullReviewComment+  { pullReviewCommentBody :: !(Maybe Text) -- ^ "body"+  , pullReviewCommentCommitId :: !(Maybe Text) -- ^ "commit_id"+  , pullReviewCommentCreatedAt :: !(Maybe DateTime) -- ^ "created_at"+  , pullReviewCommentDiffHunk :: !(Maybe Text) -- ^ "diff_hunk"+  , pullReviewCommentHtmlUrl :: !(Maybe Text) -- ^ "html_url"+  , pullReviewCommentId :: !(Maybe Integer) -- ^ "id"+  , pullReviewCommentOriginalCommitId :: !(Maybe Text) -- ^ "original_commit_id"+  , pullReviewCommentOriginalPosition :: !(Maybe Int) -- ^ "original_position"+  , pullReviewCommentPath :: !(Maybe Text) -- ^ "path"+  , pullReviewCommentPosition :: !(Maybe Int) -- ^ "position"+  , pullReviewCommentPullRequestReviewId :: !(Maybe Integer) -- ^ "pull_request_review_id"+  , pullReviewCommentPullRequestUrl :: !(Maybe Text) -- ^ "pull_request_url"+  , pullReviewCommentResolver :: !(Maybe User) -- ^ "resolver"+  , pullReviewCommentUpdatedAt :: !(Maybe DateTime) -- ^ "updated_at"+  , pullReviewCommentUser :: !(Maybe User) -- ^ "user"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON PullReviewComment+instance A.FromJSON PullReviewComment where+  parseJSON = A.withObject "PullReviewComment" $ \o ->+    PullReviewComment+      <$> (o .:? "body")+      <*> (o .:? "commit_id")+      <*> (o .:? "created_at")+      <*> (o .:? "diff_hunk")+      <*> (o .:? "html_url")+      <*> (o .:? "id")+      <*> (o .:? "original_commit_id")+      <*> (o .:? "original_position")+      <*> (o .:? "path")+      <*> (o .:? "position")+      <*> (o .:? "pull_request_review_id")+      <*> (o .:? "pull_request_url")+      <*> (o .:? "resolver")+      <*> (o .:? "updated_at")+      <*> (o .:? "user")++-- | ToJSON PullReviewComment+instance A.ToJSON PullReviewComment where+  toJSON PullReviewComment {..} =+   _omitNulls+      [ "body" .= pullReviewCommentBody+      , "commit_id" .= pullReviewCommentCommitId+      , "created_at" .= pullReviewCommentCreatedAt+      , "diff_hunk" .= pullReviewCommentDiffHunk+      , "html_url" .= pullReviewCommentHtmlUrl+      , "id" .= pullReviewCommentId+      , "original_commit_id" .= pullReviewCommentOriginalCommitId+      , "original_position" .= pullReviewCommentOriginalPosition+      , "path" .= pullReviewCommentPath+      , "position" .= pullReviewCommentPosition+      , "pull_request_review_id" .= pullReviewCommentPullRequestReviewId+      , "pull_request_url" .= pullReviewCommentPullRequestUrl+      , "resolver" .= pullReviewCommentResolver+      , "updated_at" .= pullReviewCommentUpdatedAt+      , "user" .= pullReviewCommentUser+      ]+++-- | Construct a value of type 'PullReviewComment' (by applying it's required fields, if any)+mkPullReviewComment+  :: PullReviewComment+mkPullReviewComment =+  PullReviewComment+  { pullReviewCommentBody = Nothing+  , pullReviewCommentCommitId = Nothing+  , pullReviewCommentCreatedAt = Nothing+  , pullReviewCommentDiffHunk = Nothing+  , pullReviewCommentHtmlUrl = Nothing+  , pullReviewCommentId = Nothing+  , pullReviewCommentOriginalCommitId = Nothing+  , pullReviewCommentOriginalPosition = Nothing+  , pullReviewCommentPath = Nothing+  , pullReviewCommentPosition = Nothing+  , pullReviewCommentPullRequestReviewId = Nothing+  , pullReviewCommentPullRequestUrl = Nothing+  , pullReviewCommentResolver = Nothing+  , pullReviewCommentUpdatedAt = Nothing+  , pullReviewCommentUser = Nothing+  }++-- ** PullReviewRequestOptions+-- | PullReviewRequestOptions+-- PullReviewRequestOptions are options to add or remove pull review requests+data PullReviewRequestOptions = PullReviewRequestOptions+  { pullReviewRequestOptionsReviewers :: !(Maybe [Text]) -- ^ "reviewers"+  , pullReviewRequestOptionsTeamReviewers :: !(Maybe [Text]) -- ^ "team_reviewers"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON PullReviewRequestOptions+instance A.FromJSON PullReviewRequestOptions where+  parseJSON = A.withObject "PullReviewRequestOptions" $ \o ->+    PullReviewRequestOptions+      <$> (o .:? "reviewers")+      <*> (o .:? "team_reviewers")++-- | ToJSON PullReviewRequestOptions+instance A.ToJSON PullReviewRequestOptions where+  toJSON PullReviewRequestOptions {..} =+   _omitNulls+      [ "reviewers" .= pullReviewRequestOptionsReviewers+      , "team_reviewers" .= pullReviewRequestOptionsTeamReviewers+      ]+++-- | Construct a value of type 'PullReviewRequestOptions' (by applying it's required fields, if any)+mkPullReviewRequestOptions+  :: PullReviewRequestOptions+mkPullReviewRequestOptions =+  PullReviewRequestOptions+  { pullReviewRequestOptionsReviewers = Nothing+  , pullReviewRequestOptionsTeamReviewers = Nothing+  }++-- ** PushMirror+-- | PushMirror+-- PushMirror represents information of a push mirror+data PushMirror = PushMirror+  { pushMirrorCreated :: !(Maybe Text) -- ^ "created"+  , pushMirrorInterval :: !(Maybe Text) -- ^ "interval"+  , pushMirrorLastError :: !(Maybe Text) -- ^ "last_error"+  , pushMirrorLastUpdate :: !(Maybe Text) -- ^ "last_update"+  , pushMirrorRemoteAddress :: !(Maybe Text) -- ^ "remote_address"+  , pushMirrorRemoteName :: !(Maybe Text) -- ^ "remote_name"+  , pushMirrorRepoName :: !(Maybe Text) -- ^ "repo_name"+  , pushMirrorSyncOnCommit :: !(Maybe Bool) -- ^ "sync_on_commit"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON PushMirror+instance A.FromJSON PushMirror where+  parseJSON = A.withObject "PushMirror" $ \o ->+    PushMirror+      <$> (o .:? "created")+      <*> (o .:? "interval")+      <*> (o .:? "last_error")+      <*> (o .:? "last_update")+      <*> (o .:? "remote_address")+      <*> (o .:? "remote_name")+      <*> (o .:? "repo_name")+      <*> (o .:? "sync_on_commit")++-- | ToJSON PushMirror+instance A.ToJSON PushMirror where+  toJSON PushMirror {..} =+   _omitNulls+      [ "created" .= pushMirrorCreated+      , "interval" .= pushMirrorInterval+      , "last_error" .= pushMirrorLastError+      , "last_update" .= pushMirrorLastUpdate+      , "remote_address" .= pushMirrorRemoteAddress+      , "remote_name" .= pushMirrorRemoteName+      , "repo_name" .= pushMirrorRepoName+      , "sync_on_commit" .= pushMirrorSyncOnCommit+      ]+++-- | Construct a value of type 'PushMirror' (by applying it's required fields, if any)+mkPushMirror+  :: PushMirror+mkPushMirror =+  PushMirror+  { pushMirrorCreated = Nothing+  , pushMirrorInterval = Nothing+  , pushMirrorLastError = Nothing+  , pushMirrorLastUpdate = Nothing+  , pushMirrorRemoteAddress = Nothing+  , pushMirrorRemoteName = Nothing+  , pushMirrorRepoName = Nothing+  , pushMirrorSyncOnCommit = Nothing+  }++-- ** Reaction+-- | Reaction+-- Reaction contain one reaction+data Reaction = Reaction+  { reactionContent :: !(Maybe Text) -- ^ "content"+  , reactionCreatedAt :: !(Maybe DateTime) -- ^ "created_at"+  , reactionUser :: !(Maybe User) -- ^ "user"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON Reaction+instance A.FromJSON Reaction where+  parseJSON = A.withObject "Reaction" $ \o ->+    Reaction+      <$> (o .:? "content")+      <*> (o .:? "created_at")+      <*> (o .:? "user")++-- | ToJSON Reaction+instance A.ToJSON Reaction where+  toJSON Reaction {..} =+   _omitNulls+      [ "content" .= reactionContent+      , "created_at" .= reactionCreatedAt+      , "user" .= reactionUser+      ]+++-- | Construct a value of type 'Reaction' (by applying it's required fields, if any)+mkReaction+  :: Reaction+mkReaction =+  Reaction+  { reactionContent = Nothing+  , reactionCreatedAt = Nothing+  , reactionUser = Nothing+  }++-- ** Reference+-- | Reference+-- Reference represents a Git reference.+-- +data Reference = Reference+  { referenceObject :: !(Maybe GitObject) -- ^ "object"+  , referenceRef :: !(Maybe Text) -- ^ "ref"+  , referenceUrl :: !(Maybe Text) -- ^ "url"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON Reference+instance A.FromJSON Reference where+  parseJSON = A.withObject "Reference" $ \o ->+    Reference+      <$> (o .:? "object")+      <*> (o .:? "ref")+      <*> (o .:? "url")++-- | ToJSON Reference+instance A.ToJSON Reference where+  toJSON Reference {..} =+   _omitNulls+      [ "object" .= referenceObject+      , "ref" .= referenceRef+      , "url" .= referenceUrl+      ]+++-- | Construct a value of type 'Reference' (by applying it's required fields, if any)+mkReference+  :: Reference+mkReference =+  Reference+  { referenceObject = Nothing+  , referenceRef = Nothing+  , referenceUrl = Nothing+  }++-- ** Release+-- | Release+-- Release represents a repository release+data Release = Release+  { releaseAssets :: !(Maybe [Attachment]) -- ^ "assets"+  , releaseAuthor :: !(Maybe User) -- ^ "author"+  , releaseBody :: !(Maybe Text) -- ^ "body"+  , releaseCreatedAt :: !(Maybe DateTime) -- ^ "created_at"+  , releaseDraft :: !(Maybe Bool) -- ^ "draft"+  , releaseHtmlUrl :: !(Maybe Text) -- ^ "html_url"+  , releaseId :: !(Maybe Integer) -- ^ "id"+  , releaseName :: !(Maybe Text) -- ^ "name"+  , releasePrerelease :: !(Maybe Bool) -- ^ "prerelease"+  , releasePublishedAt :: !(Maybe DateTime) -- ^ "published_at"+  , releaseTagName :: !(Maybe Text) -- ^ "tag_name"+  , releaseTarballUrl :: !(Maybe Text) -- ^ "tarball_url"+  , releaseTargetCommitish :: !(Maybe Text) -- ^ "target_commitish"+  , releaseUrl :: !(Maybe Text) -- ^ "url"+  , releaseZipballUrl :: !(Maybe Text) -- ^ "zipball_url"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON Release+instance A.FromJSON Release where+  parseJSON = A.withObject "Release" $ \o ->+    Release+      <$> (o .:? "assets")+      <*> (o .:? "author")+      <*> (o .:? "body")+      <*> (o .:? "created_at")+      <*> (o .:? "draft")+      <*> (o .:? "html_url")+      <*> (o .:? "id")+      <*> (o .:? "name")+      <*> (o .:? "prerelease")+      <*> (o .:? "published_at")+      <*> (o .:? "tag_name")+      <*> (o .:? "tarball_url")+      <*> (o .:? "target_commitish")+      <*> (o .:? "url")+      <*> (o .:? "zipball_url")++-- | ToJSON Release+instance A.ToJSON Release where+  toJSON Release {..} =+   _omitNulls+      [ "assets" .= releaseAssets+      , "author" .= releaseAuthor+      , "body" .= releaseBody+      , "created_at" .= releaseCreatedAt+      , "draft" .= releaseDraft+      , "html_url" .= releaseHtmlUrl+      , "id" .= releaseId+      , "name" .= releaseName+      , "prerelease" .= releasePrerelease+      , "published_at" .= releasePublishedAt+      , "tag_name" .= releaseTagName+      , "tarball_url" .= releaseTarballUrl+      , "target_commitish" .= releaseTargetCommitish+      , "url" .= releaseUrl+      , "zipball_url" .= releaseZipballUrl+      ]+++-- | Construct a value of type 'Release' (by applying it's required fields, if any)+mkRelease+  :: Release+mkRelease =+  Release+  { releaseAssets = Nothing+  , releaseAuthor = Nothing+  , releaseBody = Nothing+  , releaseCreatedAt = Nothing+  , releaseDraft = Nothing+  , releaseHtmlUrl = Nothing+  , releaseId = Nothing+  , releaseName = Nothing+  , releasePrerelease = Nothing+  , releasePublishedAt = Nothing+  , releaseTagName = Nothing+  , releaseTarballUrl = Nothing+  , releaseTargetCommitish = Nothing+  , releaseUrl = Nothing+  , releaseZipballUrl = Nothing+  }++-- ** RepoCollaboratorPermission+-- | RepoCollaboratorPermission+-- RepoCollaboratorPermission to get repository permission for a collaborator+data RepoCollaboratorPermission = RepoCollaboratorPermission+  { repoCollaboratorPermissionPermission :: !(Maybe Text) -- ^ "permission"+  , repoCollaboratorPermissionRoleName :: !(Maybe Text) -- ^ "role_name"+  , repoCollaboratorPermissionUser :: !(Maybe User) -- ^ "user"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON RepoCollaboratorPermission+instance A.FromJSON RepoCollaboratorPermission where+  parseJSON = A.withObject "RepoCollaboratorPermission" $ \o ->+    RepoCollaboratorPermission+      <$> (o .:? "permission")+      <*> (o .:? "role_name")+      <*> (o .:? "user")++-- | ToJSON RepoCollaboratorPermission+instance A.ToJSON RepoCollaboratorPermission where+  toJSON RepoCollaboratorPermission {..} =+   _omitNulls+      [ "permission" .= repoCollaboratorPermissionPermission+      , "role_name" .= repoCollaboratorPermissionRoleName+      , "user" .= repoCollaboratorPermissionUser+      ]+++-- | Construct a value of type 'RepoCollaboratorPermission' (by applying it's required fields, if any)+mkRepoCollaboratorPermission+  :: RepoCollaboratorPermission+mkRepoCollaboratorPermission =+  RepoCollaboratorPermission+  { repoCollaboratorPermissionPermission = Nothing+  , repoCollaboratorPermissionRoleName = Nothing+  , repoCollaboratorPermissionUser = Nothing+  }++-- ** RepoCommit+-- | RepoCommit+-- RepoCommit contains information of a commit in the context of a repository.+-- +data RepoCommit = RepoCommit+  { repoCommitAuthor :: !(Maybe CommitUser) -- ^ "author"+  , repoCommitCommitter :: !(Maybe CommitUser) -- ^ "committer"+  , repoCommitMessage :: !(Maybe Text) -- ^ "message"+  , repoCommitTree :: !(Maybe CommitMeta) -- ^ "tree"+  , repoCommitUrl :: !(Maybe Text) -- ^ "url"+  , repoCommitVerification :: !(Maybe PayloadCommitVerification) -- ^ "verification"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON RepoCommit+instance A.FromJSON RepoCommit where+  parseJSON = A.withObject "RepoCommit" $ \o ->+    RepoCommit+      <$> (o .:? "author")+      <*> (o .:? "committer")+      <*> (o .:? "message")+      <*> (o .:? "tree")+      <*> (o .:? "url")+      <*> (o .:? "verification")++-- | ToJSON RepoCommit+instance A.ToJSON RepoCommit where+  toJSON RepoCommit {..} =+   _omitNulls+      [ "author" .= repoCommitAuthor+      , "committer" .= repoCommitCommitter+      , "message" .= repoCommitMessage+      , "tree" .= repoCommitTree+      , "url" .= repoCommitUrl+      , "verification" .= repoCommitVerification+      ]+++-- | Construct a value of type 'RepoCommit' (by applying it's required fields, if any)+mkRepoCommit+  :: RepoCommit+mkRepoCommit =+  RepoCommit+  { repoCommitAuthor = Nothing+  , repoCommitCommitter = Nothing+  , repoCommitMessage = Nothing+  , repoCommitTree = Nothing+  , repoCommitUrl = Nothing+  , repoCommitVerification = Nothing+  }++-- ** RepoTopicOptions+-- | RepoTopicOptions+-- RepoTopicOptions a collection of repo topic names+data RepoTopicOptions = RepoTopicOptions+  { repoTopicOptionsTopics :: !(Maybe [Text]) -- ^ "topics" - list of topic names+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON RepoTopicOptions+instance A.FromJSON RepoTopicOptions where+  parseJSON = A.withObject "RepoTopicOptions" $ \o ->+    RepoTopicOptions+      <$> (o .:? "topics")++-- | ToJSON RepoTopicOptions+instance A.ToJSON RepoTopicOptions where+  toJSON RepoTopicOptions {..} =+   _omitNulls+      [ "topics" .= repoTopicOptionsTopics+      ]+++-- | Construct a value of type 'RepoTopicOptions' (by applying it's required fields, if any)+mkRepoTopicOptions+  :: RepoTopicOptions+mkRepoTopicOptions =+  RepoTopicOptions+  { repoTopicOptionsTopics = Nothing+  }++-- ** RepoTransfer+-- | RepoTransfer+-- RepoTransfer represents a pending repo transfer+data RepoTransfer = RepoTransfer+  { repoTransferDoer :: !(Maybe User) -- ^ "doer"+  , repoTransferRecipient :: !(Maybe User) -- ^ "recipient"+  , repoTransferTeams :: !(Maybe [Team]) -- ^ "teams"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON RepoTransfer+instance A.FromJSON RepoTransfer where+  parseJSON = A.withObject "RepoTransfer" $ \o ->+    RepoTransfer+      <$> (o .:? "doer")+      <*> (o .:? "recipient")+      <*> (o .:? "teams")++-- | ToJSON RepoTransfer+instance A.ToJSON RepoTransfer where+  toJSON RepoTransfer {..} =+   _omitNulls+      [ "doer" .= repoTransferDoer+      , "recipient" .= repoTransferRecipient+      , "teams" .= repoTransferTeams+      ]+++-- | Construct a value of type 'RepoTransfer' (by applying it's required fields, if any)+mkRepoTransfer+  :: RepoTransfer+mkRepoTransfer =+  RepoTransfer+  { repoTransferDoer = Nothing+  , repoTransferRecipient = Nothing+  , repoTransferTeams = Nothing+  }++-- ** Repository+-- | Repository+-- Repository represents a repository+data Repository = Repository+  { repositoryAllowMergeCommits :: !(Maybe Bool) -- ^ "allow_merge_commits"+  , repositoryAllowRebase :: !(Maybe Bool) -- ^ "allow_rebase"+  , repositoryAllowRebaseExplicit :: !(Maybe Bool) -- ^ "allow_rebase_explicit"+  , repositoryAllowRebaseUpdate :: !(Maybe Bool) -- ^ "allow_rebase_update"+  , repositoryAllowSquashMerge :: !(Maybe Bool) -- ^ "allow_squash_merge"+  , repositoryArchived :: !(Maybe Bool) -- ^ "archived"+  , repositoryAvatarUrl :: !(Maybe Text) -- ^ "avatar_url"+  , repositoryCloneUrl :: !(Maybe Text) -- ^ "clone_url"+  , repositoryCreatedAt :: !(Maybe DateTime) -- ^ "created_at"+  , repositoryDefaultAllowMaintainerEdit :: !(Maybe Bool) -- ^ "default_allow_maintainer_edit"+  , repositoryDefaultBranch :: !(Maybe Text) -- ^ "default_branch"+  , repositoryDefaultDeleteBranchAfterMerge :: !(Maybe Bool) -- ^ "default_delete_branch_after_merge"+  , repositoryDefaultMergeStyle :: !(Maybe Text) -- ^ "default_merge_style"+  , repositoryDescription :: !(Maybe Text) -- ^ "description"+  , repositoryEmpty :: !(Maybe Bool) -- ^ "empty"+  , repositoryExternalTracker :: !(Maybe ExternalTracker) -- ^ "external_tracker"+  , repositoryExternalWiki :: !(Maybe ExternalWiki) -- ^ "external_wiki"+  , repositoryFork :: !(Maybe Bool) -- ^ "fork"+  , repositoryForksCount :: !(Maybe Integer) -- ^ "forks_count"+  , repositoryFullName :: !(Maybe Text) -- ^ "full_name"+  , repositoryHasIssues :: !(Maybe Bool) -- ^ "has_issues"+  , repositoryHasProjects :: !(Maybe Bool) -- ^ "has_projects"+  , repositoryHasPullRequests :: !(Maybe Bool) -- ^ "has_pull_requests"+  , repositoryHasWiki :: !(Maybe Bool) -- ^ "has_wiki"+  , repositoryHtmlUrl :: !(Maybe Text) -- ^ "html_url"+  , repositoryId :: !(Maybe Integer) -- ^ "id"+  , repositoryIgnoreWhitespaceConflicts :: !(Maybe Bool) -- ^ "ignore_whitespace_conflicts"+  , repositoryInternal :: !(Maybe Bool) -- ^ "internal"+  , repositoryInternalTracker :: !(Maybe InternalTracker) -- ^ "internal_tracker"+  , repositoryLanguage :: !(Maybe Text) -- ^ "language"+  , repositoryLanguagesUrl :: !(Maybe Text) -- ^ "languages_url"+  , repositoryLink :: !(Maybe Text) -- ^ "link"+  , repositoryMirror :: !(Maybe Bool) -- ^ "mirror"+  , repositoryMirrorInterval :: !(Maybe Text) -- ^ "mirror_interval"+  , repositoryMirrorUpdated :: !(Maybe DateTime) -- ^ "mirror_updated"+  , repositoryName :: !(Maybe Text) -- ^ "name"+  , repositoryOpenIssuesCount :: !(Maybe Integer) -- ^ "open_issues_count"+  , repositoryOpenPrCounter :: !(Maybe Integer) -- ^ "open_pr_counter"+  , repositoryOriginalUrl :: !(Maybe Text) -- ^ "original_url"+  , repositoryOwner :: !(Maybe User) -- ^ "owner"+  , repositoryParent :: !(Maybe Repository) -- ^ "parent"+  , repositoryPermissions :: !(Maybe Permission) -- ^ "permissions"+  , repositoryPrivate :: !(Maybe Bool) -- ^ "private"+  , repositoryReleaseCounter :: !(Maybe Integer) -- ^ "release_counter"+  , repositoryRepoTransfer :: !(Maybe RepoTransfer) -- ^ "repo_transfer"+  , repositorySize :: !(Maybe Integer) -- ^ "size"+  , repositorySshUrl :: !(Maybe Text) -- ^ "ssh_url"+  , repositoryStarsCount :: !(Maybe Integer) -- ^ "stars_count"+  , repositoryTemplate :: !(Maybe Bool) -- ^ "template"+  , repositoryUpdatedAt :: !(Maybe DateTime) -- ^ "updated_at"+  , repositoryWatchersCount :: !(Maybe Integer) -- ^ "watchers_count"+  , repositoryWebsite :: !(Maybe Text) -- ^ "website"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON Repository+instance A.FromJSON Repository where+  parseJSON = A.withObject "Repository" $ \o ->+    Repository+      <$> (o .:? "allow_merge_commits")+      <*> (o .:? "allow_rebase")+      <*> (o .:? "allow_rebase_explicit")+      <*> (o .:? "allow_rebase_update")+      <*> (o .:? "allow_squash_merge")+      <*> (o .:? "archived")+      <*> (o .:? "avatar_url")+      <*> (o .:? "clone_url")+      <*> (o .:? "created_at")+      <*> (o .:? "default_allow_maintainer_edit")+      <*> (o .:? "default_branch")+      <*> (o .:? "default_delete_branch_after_merge")+      <*> (o .:? "default_merge_style")+      <*> (o .:? "description")+      <*> (o .:? "empty")+      <*> (o .:? "external_tracker")+      <*> (o .:? "external_wiki")+      <*> (o .:? "fork")+      <*> (o .:? "forks_count")+      <*> (o .:? "full_name")+      <*> (o .:? "has_issues")+      <*> (o .:? "has_projects")+      <*> (o .:? "has_pull_requests")+      <*> (o .:? "has_wiki")+      <*> (o .:? "html_url")+      <*> (o .:? "id")+      <*> (o .:? "ignore_whitespace_conflicts")+      <*> (o .:? "internal")+      <*> (o .:? "internal_tracker")+      <*> (o .:? "language")+      <*> (o .:? "languages_url")+      <*> (o .:? "link")+      <*> (o .:? "mirror")+      <*> (o .:? "mirror_interval")+      <*> (o .:? "mirror_updated")+      <*> (o .:? "name")+      <*> (o .:? "open_issues_count")+      <*> (o .:? "open_pr_counter")+      <*> (o .:? "original_url")+      <*> (o .:? "owner")+      <*> (o .:? "parent")+      <*> (o .:? "permissions")+      <*> (o .:? "private")+      <*> (o .:? "release_counter")+      <*> (o .:? "repo_transfer")+      <*> (o .:? "size")+      <*> (o .:? "ssh_url")+      <*> (o .:? "stars_count")+      <*> (o .:? "template")+      <*> (o .:? "updated_at")+      <*> (o .:? "watchers_count")+      <*> (o .:? "website")++-- | ToJSON Repository+instance A.ToJSON Repository where+  toJSON Repository {..} =+   _omitNulls+      [ "allow_merge_commits" .= repositoryAllowMergeCommits+      , "allow_rebase" .= repositoryAllowRebase+      , "allow_rebase_explicit" .= repositoryAllowRebaseExplicit+      , "allow_rebase_update" .= repositoryAllowRebaseUpdate+      , "allow_squash_merge" .= repositoryAllowSquashMerge+      , "archived" .= repositoryArchived+      , "avatar_url" .= repositoryAvatarUrl+      , "clone_url" .= repositoryCloneUrl+      , "created_at" .= repositoryCreatedAt+      , "default_allow_maintainer_edit" .= repositoryDefaultAllowMaintainerEdit+      , "default_branch" .= repositoryDefaultBranch+      , "default_delete_branch_after_merge" .= repositoryDefaultDeleteBranchAfterMerge+      , "default_merge_style" .= repositoryDefaultMergeStyle+      , "description" .= repositoryDescription+      , "empty" .= repositoryEmpty+      , "external_tracker" .= repositoryExternalTracker+      , "external_wiki" .= repositoryExternalWiki+      , "fork" .= repositoryFork+      , "forks_count" .= repositoryForksCount+      , "full_name" .= repositoryFullName+      , "has_issues" .= repositoryHasIssues+      , "has_projects" .= repositoryHasProjects+      , "has_pull_requests" .= repositoryHasPullRequests+      , "has_wiki" .= repositoryHasWiki+      , "html_url" .= repositoryHtmlUrl+      , "id" .= repositoryId+      , "ignore_whitespace_conflicts" .= repositoryIgnoreWhitespaceConflicts+      , "internal" .= repositoryInternal+      , "internal_tracker" .= repositoryInternalTracker+      , "language" .= repositoryLanguage+      , "languages_url" .= repositoryLanguagesUrl+      , "link" .= repositoryLink+      , "mirror" .= repositoryMirror+      , "mirror_interval" .= repositoryMirrorInterval+      , "mirror_updated" .= repositoryMirrorUpdated+      , "name" .= repositoryName+      , "open_issues_count" .= repositoryOpenIssuesCount+      , "open_pr_counter" .= repositoryOpenPrCounter+      , "original_url" .= repositoryOriginalUrl+      , "owner" .= repositoryOwner+      , "parent" .= repositoryParent+      , "permissions" .= repositoryPermissions+      , "private" .= repositoryPrivate+      , "release_counter" .= repositoryReleaseCounter+      , "repo_transfer" .= repositoryRepoTransfer+      , "size" .= repositorySize+      , "ssh_url" .= repositorySshUrl+      , "stars_count" .= repositoryStarsCount+      , "template" .= repositoryTemplate+      , "updated_at" .= repositoryUpdatedAt+      , "watchers_count" .= repositoryWatchersCount+      , "website" .= repositoryWebsite+      ]+++-- | Construct a value of type 'Repository' (by applying it's required fields, if any)+mkRepository+  :: Repository+mkRepository =+  Repository+  { repositoryAllowMergeCommits = Nothing+  , repositoryAllowRebase = Nothing+  , repositoryAllowRebaseExplicit = Nothing+  , repositoryAllowRebaseUpdate = Nothing+  , repositoryAllowSquashMerge = Nothing+  , repositoryArchived = Nothing+  , repositoryAvatarUrl = Nothing+  , repositoryCloneUrl = Nothing+  , repositoryCreatedAt = Nothing+  , repositoryDefaultAllowMaintainerEdit = Nothing+  , repositoryDefaultBranch = Nothing+  , repositoryDefaultDeleteBranchAfterMerge = Nothing+  , repositoryDefaultMergeStyle = Nothing+  , repositoryDescription = Nothing+  , repositoryEmpty = Nothing+  , repositoryExternalTracker = Nothing+  , repositoryExternalWiki = Nothing+  , repositoryFork = Nothing+  , repositoryForksCount = Nothing+  , repositoryFullName = Nothing+  , repositoryHasIssues = Nothing+  , repositoryHasProjects = Nothing+  , repositoryHasPullRequests = Nothing+  , repositoryHasWiki = Nothing+  , repositoryHtmlUrl = Nothing+  , repositoryId = Nothing+  , repositoryIgnoreWhitespaceConflicts = Nothing+  , repositoryInternal = Nothing+  , repositoryInternalTracker = Nothing+  , repositoryLanguage = Nothing+  , repositoryLanguagesUrl = Nothing+  , repositoryLink = Nothing+  , repositoryMirror = Nothing+  , repositoryMirrorInterval = Nothing+  , repositoryMirrorUpdated = Nothing+  , repositoryName = Nothing+  , repositoryOpenIssuesCount = Nothing+  , repositoryOpenPrCounter = Nothing+  , repositoryOriginalUrl = Nothing+  , repositoryOwner = Nothing+  , repositoryParent = Nothing+  , repositoryPermissions = Nothing+  , repositoryPrivate = Nothing+  , repositoryReleaseCounter = Nothing+  , repositoryRepoTransfer = Nothing+  , repositorySize = Nothing+  , repositorySshUrl = Nothing+  , repositoryStarsCount = Nothing+  , repositoryTemplate = Nothing+  , repositoryUpdatedAt = Nothing+  , repositoryWatchersCount = Nothing+  , repositoryWebsite = Nothing+  }++-- ** RepositoryMeta+-- | RepositoryMeta+-- RepositoryMeta basic repository information+data RepositoryMeta = RepositoryMeta+  { repositoryMetaFullName :: !(Maybe Text) -- ^ "full_name"+  , repositoryMetaId :: !(Maybe Integer) -- ^ "id"+  , repositoryMetaName :: !(Maybe Text) -- ^ "name"+  , repositoryMetaOwner :: !(Maybe Text) -- ^ "owner"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON RepositoryMeta+instance A.FromJSON RepositoryMeta where+  parseJSON = A.withObject "RepositoryMeta" $ \o ->+    RepositoryMeta+      <$> (o .:? "full_name")+      <*> (o .:? "id")+      <*> (o .:? "name")+      <*> (o .:? "owner")++-- | ToJSON RepositoryMeta+instance A.ToJSON RepositoryMeta where+  toJSON RepositoryMeta {..} =+   _omitNulls+      [ "full_name" .= repositoryMetaFullName+      , "id" .= repositoryMetaId+      , "name" .= repositoryMetaName+      , "owner" .= repositoryMetaOwner+      ]+++-- | Construct a value of type 'RepositoryMeta' (by applying it's required fields, if any)+mkRepositoryMeta+  :: RepositoryMeta+mkRepositoryMeta =+  RepositoryMeta+  { repositoryMetaFullName = Nothing+  , repositoryMetaId = Nothing+  , repositoryMetaName = Nothing+  , repositoryMetaOwner = Nothing+  }++-- ** SearchResults+-- | SearchResults+-- SearchResults results of a successful search+data SearchResults = SearchResults+  { searchResultsData :: !(Maybe [Repository]) -- ^ "data"+  , searchResultsOk :: !(Maybe Bool) -- ^ "ok"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON SearchResults+instance A.FromJSON SearchResults where+  parseJSON = A.withObject "SearchResults" $ \o ->+    SearchResults+      <$> (o .:? "data")+      <*> (o .:? "ok")++-- | ToJSON SearchResults+instance A.ToJSON SearchResults where+  toJSON SearchResults {..} =+   _omitNulls+      [ "data" .= searchResultsData+      , "ok" .= searchResultsOk+      ]+++-- | Construct a value of type 'SearchResults' (by applying it's required fields, if any)+mkSearchResults+  :: SearchResults+mkSearchResults =+  SearchResults+  { searchResultsData = Nothing+  , searchResultsOk = Nothing+  }++-- ** ServerVersion+-- | ServerVersion+-- ServerVersion wraps the version of the server+data ServerVersion = ServerVersion+  { serverVersionVersion :: !(Maybe Text) -- ^ "version"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON ServerVersion+instance A.FromJSON ServerVersion where+  parseJSON = A.withObject "ServerVersion" $ \o ->+    ServerVersion+      <$> (o .:? "version")++-- | ToJSON ServerVersion+instance A.ToJSON ServerVersion where+  toJSON ServerVersion {..} =+   _omitNulls+      [ "version" .= serverVersionVersion+      ]+++-- | Construct a value of type 'ServerVersion' (by applying it's required fields, if any)+mkServerVersion+  :: ServerVersion+mkServerVersion =+  ServerVersion+  { serverVersionVersion = Nothing+  }++-- ** StopWatch+-- | StopWatch+-- StopWatch represent a running stopwatch+data StopWatch = StopWatch+  { stopWatchCreated :: !(Maybe DateTime) -- ^ "created"+  , stopWatchDuration :: !(Maybe Text) -- ^ "duration"+  , stopWatchIssueIndex :: !(Maybe Integer) -- ^ "issue_index"+  , stopWatchIssueTitle :: !(Maybe Text) -- ^ "issue_title"+  , stopWatchRepoName :: !(Maybe Text) -- ^ "repo_name"+  , stopWatchRepoOwnerName :: !(Maybe Text) -- ^ "repo_owner_name"+  , stopWatchSeconds :: !(Maybe Integer) -- ^ "seconds"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON StopWatch+instance A.FromJSON StopWatch where+  parseJSON = A.withObject "StopWatch" $ \o ->+    StopWatch+      <$> (o .:? "created")+      <*> (o .:? "duration")+      <*> (o .:? "issue_index")+      <*> (o .:? "issue_title")+      <*> (o .:? "repo_name")+      <*> (o .:? "repo_owner_name")+      <*> (o .:? "seconds")++-- | ToJSON StopWatch+instance A.ToJSON StopWatch where+  toJSON StopWatch {..} =+   _omitNulls+      [ "created" .= stopWatchCreated+      , "duration" .= stopWatchDuration+      , "issue_index" .= stopWatchIssueIndex+      , "issue_title" .= stopWatchIssueTitle+      , "repo_name" .= stopWatchRepoName+      , "repo_owner_name" .= stopWatchRepoOwnerName+      , "seconds" .= stopWatchSeconds+      ]+++-- | Construct a value of type 'StopWatch' (by applying it's required fields, if any)+mkStopWatch+  :: StopWatch+mkStopWatch =+  StopWatch+  { stopWatchCreated = Nothing+  , stopWatchDuration = Nothing+  , stopWatchIssueIndex = Nothing+  , stopWatchIssueTitle = Nothing+  , stopWatchRepoName = Nothing+  , stopWatchRepoOwnerName = Nothing+  , stopWatchSeconds = Nothing+  }++-- ** SubmitPullReviewOptions+-- | SubmitPullReviewOptions+-- SubmitPullReviewOptions are options to submit a pending pull review+data SubmitPullReviewOptions = SubmitPullReviewOptions+  { submitPullReviewOptionsBody :: !(Maybe Text) -- ^ "body"+  , submitPullReviewOptionsEvent :: !(Maybe Text) -- ^ "event" - ReviewStateType review state type+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON SubmitPullReviewOptions+instance A.FromJSON SubmitPullReviewOptions where+  parseJSON = A.withObject "SubmitPullReviewOptions" $ \o ->+    SubmitPullReviewOptions+      <$> (o .:? "body")+      <*> (o .:? "event")++-- | ToJSON SubmitPullReviewOptions+instance A.ToJSON SubmitPullReviewOptions where+  toJSON SubmitPullReviewOptions {..} =+   _omitNulls+      [ "body" .= submitPullReviewOptionsBody+      , "event" .= submitPullReviewOptionsEvent+      ]+++-- | Construct a value of type 'SubmitPullReviewOptions' (by applying it's required fields, if any)+mkSubmitPullReviewOptions+  :: SubmitPullReviewOptions+mkSubmitPullReviewOptions =+  SubmitPullReviewOptions+  { submitPullReviewOptionsBody = Nothing+  , submitPullReviewOptionsEvent = Nothing+  }++-- ** Tag+-- | Tag+-- Tag represents a repository tag+data Tag = Tag+  { tagCommit :: !(Maybe CommitMeta) -- ^ "commit"+  , tagId :: !(Maybe Text) -- ^ "id"+  , tagMessage :: !(Maybe Text) -- ^ "message"+  , tagName :: !(Maybe Text) -- ^ "name"+  , tagTarballUrl :: !(Maybe Text) -- ^ "tarball_url"+  , tagZipballUrl :: !(Maybe Text) -- ^ "zipball_url"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON Tag+instance A.FromJSON Tag where+  parseJSON = A.withObject "Tag" $ \o ->+    Tag+      <$> (o .:? "commit")+      <*> (o .:? "id")+      <*> (o .:? "message")+      <*> (o .:? "name")+      <*> (o .:? "tarball_url")+      <*> (o .:? "zipball_url")++-- | ToJSON Tag+instance A.ToJSON Tag where+  toJSON Tag {..} =+   _omitNulls+      [ "commit" .= tagCommit+      , "id" .= tagId+      , "message" .= tagMessage+      , "name" .= tagName+      , "tarball_url" .= tagTarballUrl+      , "zipball_url" .= tagZipballUrl+      ]+++-- | Construct a value of type 'Tag' (by applying it's required fields, if any)+mkTag+  :: Tag+mkTag =+  Tag+  { tagCommit = Nothing+  , tagId = Nothing+  , tagMessage = Nothing+  , tagName = Nothing+  , tagTarballUrl = Nothing+  , tagZipballUrl = Nothing+  }++-- ** Team+-- | Team+-- Team represents a team in an organization+data Team = Team+  { teamCanCreateOrgRepo :: !(Maybe Bool) -- ^ "can_create_org_repo"+  , teamDescription :: !(Maybe Text) -- ^ "description"+  , teamId :: !(Maybe Integer) -- ^ "id"+  , teamIncludesAllRepositories :: !(Maybe Bool) -- ^ "includes_all_repositories"+  , teamName :: !(Maybe Text) -- ^ "name"+  , teamOrganization :: !(Maybe Organization) -- ^ "organization"+  , teamPermission :: !(Maybe E'Permission2) -- ^ "permission"+  , teamUnits :: !(Maybe [Text]) -- ^ "units"+  , teamUnitsMap :: !(Maybe (Map.Map String Text)) -- ^ "units_map"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON Team+instance A.FromJSON Team where+  parseJSON = A.withObject "Team" $ \o ->+    Team+      <$> (o .:? "can_create_org_repo")+      <*> (o .:? "description")+      <*> (o .:? "id")+      <*> (o .:? "includes_all_repositories")+      <*> (o .:? "name")+      <*> (o .:? "organization")+      <*> (o .:? "permission")+      <*> (o .:? "units")+      <*> (o .:? "units_map")++-- | ToJSON Team+instance A.ToJSON Team where+  toJSON Team {..} =+   _omitNulls+      [ "can_create_org_repo" .= teamCanCreateOrgRepo+      , "description" .= teamDescription+      , "id" .= teamId+      , "includes_all_repositories" .= teamIncludesAllRepositories+      , "name" .= teamName+      , "organization" .= teamOrganization+      , "permission" .= teamPermission+      , "units" .= teamUnits+      , "units_map" .= teamUnitsMap+      ]+++-- | Construct a value of type 'Team' (by applying it's required fields, if any)+mkTeam+  :: Team+mkTeam =+  Team+  { teamCanCreateOrgRepo = Nothing+  , teamDescription = Nothing+  , teamId = Nothing+  , teamIncludesAllRepositories = Nothing+  , teamName = Nothing+  , teamOrganization = Nothing+  , teamPermission = Nothing+  , teamUnits = Nothing+  , teamUnitsMap = Nothing+  }++-- ** TeamSearch200Response+-- | TeamSearch200Response+data TeamSearch200Response = TeamSearch200Response+  { teamSearch200ResponseData :: !(Maybe [Team]) -- ^ "data"+  , teamSearch200ResponseOk :: !(Maybe Bool) -- ^ "ok"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON TeamSearch200Response+instance A.FromJSON TeamSearch200Response where+  parseJSON = A.withObject "TeamSearch200Response" $ \o ->+    TeamSearch200Response+      <$> (o .:? "data")+      <*> (o .:? "ok")++-- | ToJSON TeamSearch200Response+instance A.ToJSON TeamSearch200Response where+  toJSON TeamSearch200Response {..} =+   _omitNulls+      [ "data" .= teamSearch200ResponseData+      , "ok" .= teamSearch200ResponseOk+      ]+++-- | Construct a value of type 'TeamSearch200Response' (by applying it's required fields, if any)+mkTeamSearch200Response+  :: TeamSearch200Response+mkTeamSearch200Response =+  TeamSearch200Response+  { teamSearch200ResponseData = Nothing+  , teamSearch200ResponseOk = Nothing+  }++-- ** TimelineComment+-- | TimelineComment+-- TimelineComment represents a timeline comment (comment of any type) on a commit or issue+data TimelineComment = TimelineComment+  { timelineCommentAssignee :: !(Maybe User) -- ^ "assignee"+  , timelineCommentAssigneeTeam :: !(Maybe Team) -- ^ "assignee_team"+  , timelineCommentBody :: !(Maybe Text) -- ^ "body"+  , timelineCommentCreatedAt :: !(Maybe DateTime) -- ^ "created_at"+  , timelineCommentDependentIssue :: !(Maybe Issue) -- ^ "dependent_issue"+  , timelineCommentHtmlUrl :: !(Maybe Text) -- ^ "html_url"+  , timelineCommentId :: !(Maybe Integer) -- ^ "id"+  , timelineCommentIssueUrl :: !(Maybe Text) -- ^ "issue_url"+  , timelineCommentLabel :: !(Maybe Label) -- ^ "label"+  , timelineCommentMilestone :: !(Maybe Milestone) -- ^ "milestone"+  , timelineCommentNewRef :: !(Maybe Text) -- ^ "new_ref"+  , timelineCommentNewTitle :: !(Maybe Text) -- ^ "new_title"+  , timelineCommentOldMilestone :: !(Maybe Milestone) -- ^ "old_milestone"+  , timelineCommentOldProjectId :: !(Maybe Integer) -- ^ "old_project_id"+  , timelineCommentOldRef :: !(Maybe Text) -- ^ "old_ref"+  , timelineCommentOldTitle :: !(Maybe Text) -- ^ "old_title"+  , timelineCommentProjectId :: !(Maybe Integer) -- ^ "project_id"+  , timelineCommentPullRequestUrl :: !(Maybe Text) -- ^ "pull_request_url"+  , timelineCommentRefAction :: !(Maybe Text) -- ^ "ref_action"+  , timelineCommentRefComment :: !(Maybe Comment) -- ^ "ref_comment"+  , timelineCommentRefCommitSha :: !(Maybe Text) -- ^ "ref_commit_sha" - commit SHA where issue/PR was referenced+  , timelineCommentRefIssue :: !(Maybe Issue) -- ^ "ref_issue"+  , timelineCommentRemovedAssignee :: !(Maybe Bool) -- ^ "removed_assignee" - whether the assignees were removed or added+  , timelineCommentResolveDoer :: !(Maybe User) -- ^ "resolve_doer"+  , timelineCommentReviewId :: !(Maybe Integer) -- ^ "review_id"+  , timelineCommentTrackedTime :: !(Maybe TrackedTime) -- ^ "tracked_time"+  , timelineCommentType :: !(Maybe Text) -- ^ "type"+  , timelineCommentUpdatedAt :: !(Maybe DateTime) -- ^ "updated_at"+  , timelineCommentUser :: !(Maybe User) -- ^ "user"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON TimelineComment+instance A.FromJSON TimelineComment where+  parseJSON = A.withObject "TimelineComment" $ \o ->+    TimelineComment+      <$> (o .:? "assignee")+      <*> (o .:? "assignee_team")+      <*> (o .:? "body")+      <*> (o .:? "created_at")+      <*> (o .:? "dependent_issue")+      <*> (o .:? "html_url")+      <*> (o .:? "id")+      <*> (o .:? "issue_url")+      <*> (o .:? "label")+      <*> (o .:? "milestone")+      <*> (o .:? "new_ref")+      <*> (o .:? "new_title")+      <*> (o .:? "old_milestone")+      <*> (o .:? "old_project_id")+      <*> (o .:? "old_ref")+      <*> (o .:? "old_title")+      <*> (o .:? "project_id")+      <*> (o .:? "pull_request_url")+      <*> (o .:? "ref_action")+      <*> (o .:? "ref_comment")+      <*> (o .:? "ref_commit_sha")+      <*> (o .:? "ref_issue")+      <*> (o .:? "removed_assignee")+      <*> (o .:? "resolve_doer")+      <*> (o .:? "review_id")+      <*> (o .:? "tracked_time")+      <*> (o .:? "type")+      <*> (o .:? "updated_at")+      <*> (o .:? "user")++-- | ToJSON TimelineComment+instance A.ToJSON TimelineComment where+  toJSON TimelineComment {..} =+   _omitNulls+      [ "assignee" .= timelineCommentAssignee+      , "assignee_team" .= timelineCommentAssigneeTeam+      , "body" .= timelineCommentBody+      , "created_at" .= timelineCommentCreatedAt+      , "dependent_issue" .= timelineCommentDependentIssue+      , "html_url" .= timelineCommentHtmlUrl+      , "id" .= timelineCommentId+      , "issue_url" .= timelineCommentIssueUrl+      , "label" .= timelineCommentLabel+      , "milestone" .= timelineCommentMilestone+      , "new_ref" .= timelineCommentNewRef+      , "new_title" .= timelineCommentNewTitle+      , "old_milestone" .= timelineCommentOldMilestone+      , "old_project_id" .= timelineCommentOldProjectId+      , "old_ref" .= timelineCommentOldRef+      , "old_title" .= timelineCommentOldTitle+      , "project_id" .= timelineCommentProjectId+      , "pull_request_url" .= timelineCommentPullRequestUrl+      , "ref_action" .= timelineCommentRefAction+      , "ref_comment" .= timelineCommentRefComment+      , "ref_commit_sha" .= timelineCommentRefCommitSha+      , "ref_issue" .= timelineCommentRefIssue+      , "removed_assignee" .= timelineCommentRemovedAssignee+      , "resolve_doer" .= timelineCommentResolveDoer+      , "review_id" .= timelineCommentReviewId+      , "tracked_time" .= timelineCommentTrackedTime+      , "type" .= timelineCommentType+      , "updated_at" .= timelineCommentUpdatedAt+      , "user" .= timelineCommentUser+      ]+++-- | Construct a value of type 'TimelineComment' (by applying it's required fields, if any)+mkTimelineComment+  :: TimelineComment+mkTimelineComment =+  TimelineComment+  { timelineCommentAssignee = Nothing+  , timelineCommentAssigneeTeam = Nothing+  , timelineCommentBody = Nothing+  , timelineCommentCreatedAt = Nothing+  , timelineCommentDependentIssue = Nothing+  , timelineCommentHtmlUrl = Nothing+  , timelineCommentId = Nothing+  , timelineCommentIssueUrl = Nothing+  , timelineCommentLabel = Nothing+  , timelineCommentMilestone = Nothing+  , timelineCommentNewRef = Nothing+  , timelineCommentNewTitle = Nothing+  , timelineCommentOldMilestone = Nothing+  , timelineCommentOldProjectId = Nothing+  , timelineCommentOldRef = Nothing+  , timelineCommentOldTitle = Nothing+  , timelineCommentProjectId = Nothing+  , timelineCommentPullRequestUrl = Nothing+  , timelineCommentRefAction = Nothing+  , timelineCommentRefComment = Nothing+  , timelineCommentRefCommitSha = Nothing+  , timelineCommentRefIssue = Nothing+  , timelineCommentRemovedAssignee = Nothing+  , timelineCommentResolveDoer = Nothing+  , timelineCommentReviewId = Nothing+  , timelineCommentTrackedTime = Nothing+  , timelineCommentType = Nothing+  , timelineCommentUpdatedAt = Nothing+  , timelineCommentUser = Nothing+  }++-- ** TopicName+-- | TopicName+-- TopicName a list of repo topic names+data TopicName = TopicName+  { topicNameTopics :: !(Maybe [Text]) -- ^ "topics"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON TopicName+instance A.FromJSON TopicName where+  parseJSON = A.withObject "TopicName" $ \o ->+    TopicName+      <$> (o .:? "topics")++-- | ToJSON TopicName+instance A.ToJSON TopicName where+  toJSON TopicName {..} =+   _omitNulls+      [ "topics" .= topicNameTopics+      ]+++-- | Construct a value of type 'TopicName' (by applying it's required fields, if any)+mkTopicName+  :: TopicName+mkTopicName =+  TopicName+  { topicNameTopics = Nothing+  }++-- ** TopicResponse+-- | TopicResponse+-- TopicResponse for returning topics+data TopicResponse = TopicResponse+  { topicResponseCreated :: !(Maybe DateTime) -- ^ "created"+  , topicResponseId :: !(Maybe Integer) -- ^ "id"+  , topicResponseRepoCount :: !(Maybe Integer) -- ^ "repo_count"+  , topicResponseTopicName :: !(Maybe Text) -- ^ "topic_name"+  , topicResponseUpdated :: !(Maybe DateTime) -- ^ "updated"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON TopicResponse+instance A.FromJSON TopicResponse where+  parseJSON = A.withObject "TopicResponse" $ \o ->+    TopicResponse+      <$> (o .:? "created")+      <*> (o .:? "id")+      <*> (o .:? "repo_count")+      <*> (o .:? "topic_name")+      <*> (o .:? "updated")++-- | ToJSON TopicResponse+instance A.ToJSON TopicResponse where+  toJSON TopicResponse {..} =+   _omitNulls+      [ "created" .= topicResponseCreated+      , "id" .= topicResponseId+      , "repo_count" .= topicResponseRepoCount+      , "topic_name" .= topicResponseTopicName+      , "updated" .= topicResponseUpdated+      ]+++-- | Construct a value of type 'TopicResponse' (by applying it's required fields, if any)+mkTopicResponse+  :: TopicResponse+mkTopicResponse =+  TopicResponse+  { topicResponseCreated = Nothing+  , topicResponseId = Nothing+  , topicResponseRepoCount = Nothing+  , topicResponseTopicName = Nothing+  , topicResponseUpdated = Nothing+  }++-- ** TrackedTime+-- | TrackedTime+-- TrackedTime worked time for an issue / pr+data TrackedTime = TrackedTime+  { trackedTimeCreated :: !(Maybe DateTime) -- ^ "created"+  , trackedTimeId :: !(Maybe Integer) -- ^ "id"+  , trackedTimeIssue :: !(Maybe Issue) -- ^ "issue"+  , trackedTimeIssueId :: !(Maybe Integer) -- ^ "issue_id" - deprecated (only for backwards compatibility)+  , trackedTimeTime :: !(Maybe Integer) -- ^ "time" - Time in seconds+  , trackedTimeUserId :: !(Maybe Integer) -- ^ "user_id" - deprecated (only for backwards compatibility)+  , trackedTimeUserName :: !(Maybe Text) -- ^ "user_name"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON TrackedTime+instance A.FromJSON TrackedTime where+  parseJSON = A.withObject "TrackedTime" $ \o ->+    TrackedTime+      <$> (o .:? "created")+      <*> (o .:? "id")+      <*> (o .:? "issue")+      <*> (o .:? "issue_id")+      <*> (o .:? "time")+      <*> (o .:? "user_id")+      <*> (o .:? "user_name")++-- | ToJSON TrackedTime+instance A.ToJSON TrackedTime where+  toJSON TrackedTime {..} =+   _omitNulls+      [ "created" .= trackedTimeCreated+      , "id" .= trackedTimeId+      , "issue" .= trackedTimeIssue+      , "issue_id" .= trackedTimeIssueId+      , "time" .= trackedTimeTime+      , "user_id" .= trackedTimeUserId+      , "user_name" .= trackedTimeUserName+      ]+++-- | Construct a value of type 'TrackedTime' (by applying it's required fields, if any)+mkTrackedTime+  :: TrackedTime+mkTrackedTime =+  TrackedTime+  { trackedTimeCreated = Nothing+  , trackedTimeId = Nothing+  , trackedTimeIssue = Nothing+  , trackedTimeIssueId = Nothing+  , trackedTimeTime = Nothing+  , trackedTimeUserId = Nothing+  , trackedTimeUserName = Nothing+  }++-- ** TransferRepoOption+-- | TransferRepoOption+-- TransferRepoOption options when transfer a repository's ownership+data TransferRepoOption = TransferRepoOption+  { transferRepoOptionNewOwner :: !(Text) -- ^ /Required/ "new_owner"+  , transferRepoOptionTeamIds :: !(Maybe [Integer]) -- ^ "team_ids" - ID of the team or teams to add to the repository. Teams can only be added to organization-owned repositories.+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON TransferRepoOption+instance A.FromJSON TransferRepoOption where+  parseJSON = A.withObject "TransferRepoOption" $ \o ->+    TransferRepoOption+      <$> (o .:  "new_owner")+      <*> (o .:? "team_ids")++-- | ToJSON TransferRepoOption+instance A.ToJSON TransferRepoOption where+  toJSON TransferRepoOption {..} =+   _omitNulls+      [ "new_owner" .= transferRepoOptionNewOwner+      , "team_ids" .= transferRepoOptionTeamIds+      ]+++-- | Construct a value of type 'TransferRepoOption' (by applying it's required fields, if any)+mkTransferRepoOption+  :: Text -- ^ 'transferRepoOptionNewOwner' +  -> TransferRepoOption+mkTransferRepoOption transferRepoOptionNewOwner =+  TransferRepoOption+  { transferRepoOptionNewOwner+  , transferRepoOptionTeamIds = Nothing+  }++-- ** UpdateFileOptions+-- | UpdateFileOptions+-- UpdateFileOptions options for updating files Note: `author` and `committer` are optional (if only one is given, it will be used for the other, otherwise the authenticated user will be used)+data UpdateFileOptions = UpdateFileOptions+  { updateFileOptionsAuthor :: !(Maybe Identity) -- ^ "author"+  , updateFileOptionsBranch :: !(Maybe Text) -- ^ "branch" - branch (optional) to base this file from. if not given, the default branch is used+  , updateFileOptionsCommitter :: !(Maybe Identity) -- ^ "committer"+  , updateFileOptionsContent :: !(Text) -- ^ /Required/ "content" - content must be base64 encoded+  , updateFileOptionsDates :: !(Maybe CommitDateOptions) -- ^ "dates"+  , updateFileOptionsFromPath :: !(Maybe Text) -- ^ "from_path" - from_path (optional) is the path of the original file which will be moved/renamed to the path in the URL+  , updateFileOptionsMessage :: !(Maybe Text) -- ^ "message" - message (optional) for the commit of this file. if not supplied, a default message will be used+  , updateFileOptionsNewBranch :: !(Maybe Text) -- ^ "new_branch" - new_branch (optional) will make a new branch from &#x60;branch&#x60; before creating the file+  , updateFileOptionsSha :: !(Text) -- ^ /Required/ "sha" - sha is the SHA for the file that already exists+  , updateFileOptionsSignoff :: !(Maybe Bool) -- ^ "signoff" - Add a Signed-off-by trailer by the committer at the end of the commit log message.+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON UpdateFileOptions+instance A.FromJSON UpdateFileOptions where+  parseJSON = A.withObject "UpdateFileOptions" $ \o ->+    UpdateFileOptions+      <$> (o .:? "author")+      <*> (o .:? "branch")+      <*> (o .:? "committer")+      <*> (o .:  "content")+      <*> (o .:? "dates")+      <*> (o .:? "from_path")+      <*> (o .:? "message")+      <*> (o .:? "new_branch")+      <*> (o .:  "sha")+      <*> (o .:? "signoff")++-- | ToJSON UpdateFileOptions+instance A.ToJSON UpdateFileOptions where+  toJSON UpdateFileOptions {..} =+   _omitNulls+      [ "author" .= updateFileOptionsAuthor+      , "branch" .= updateFileOptionsBranch+      , "committer" .= updateFileOptionsCommitter+      , "content" .= updateFileOptionsContent+      , "dates" .= updateFileOptionsDates+      , "from_path" .= updateFileOptionsFromPath+      , "message" .= updateFileOptionsMessage+      , "new_branch" .= updateFileOptionsNewBranch+      , "sha" .= updateFileOptionsSha+      , "signoff" .= updateFileOptionsSignoff+      ]+++-- | Construct a value of type 'UpdateFileOptions' (by applying it's required fields, if any)+mkUpdateFileOptions+  :: Text -- ^ 'updateFileOptionsContent': content must be base64 encoded+  -> Text -- ^ 'updateFileOptionsSha': sha is the SHA for the file that already exists+  -> UpdateFileOptions+mkUpdateFileOptions updateFileOptionsContent updateFileOptionsSha =+  UpdateFileOptions+  { updateFileOptionsAuthor = Nothing+  , updateFileOptionsBranch = Nothing+  , updateFileOptionsCommitter = Nothing+  , updateFileOptionsContent+  , updateFileOptionsDates = Nothing+  , updateFileOptionsFromPath = Nothing+  , updateFileOptionsMessage = Nothing+  , updateFileOptionsNewBranch = Nothing+  , updateFileOptionsSha+  , updateFileOptionsSignoff = Nothing+  }++-- ** User+-- | User+-- User represents a user+data User = User+  { userActive :: !(Maybe Bool) -- ^ "active" - Is user active+  , userAvatarUrl :: !(Maybe Text) -- ^ "avatar_url" - URL to the user&#39;s avatar+  , userCreated :: !(Maybe DateTime) -- ^ "created"+  , userDescription :: !(Maybe Text) -- ^ "description" - the user&#39;s description+  , userEmail :: !(Maybe Text) -- ^ "email"+  , userFollowersCount :: !(Maybe Integer) -- ^ "followers_count" - user counts+  , userFollowingCount :: !(Maybe Integer) -- ^ "following_count"+  , userFullName :: !(Maybe Text) -- ^ "full_name" - the user&#39;s full name+  , userId :: !(Maybe Integer) -- ^ "id" - the user&#39;s id+  , userIsAdmin :: !(Maybe Bool) -- ^ "is_admin" - Is the user an administrator+  , userLanguage :: !(Maybe Text) -- ^ "language" - User locale+  , userLastLogin :: !(Maybe DateTime) -- ^ "last_login"+  , userLocation :: !(Maybe Text) -- ^ "location" - the user&#39;s location+  , userLogin :: !(Maybe Text) -- ^ "login" - the user&#39;s username+  , userLoginName :: !(Maybe Text) -- ^ "login_name" - the user&#39;s authentication sign-in name.+  , userProhibitLogin :: !(Maybe Bool) -- ^ "prohibit_login" - Is user login prohibited+  , userRestricted :: !(Maybe Bool) -- ^ "restricted" - Is user restricted+  , userStarredReposCount :: !(Maybe Integer) -- ^ "starred_repos_count"+  , userVisibility :: !(Maybe Text) -- ^ "visibility" - User visibility level option: public, limited, private+  , userWebsite :: !(Maybe Text) -- ^ "website" - the user&#39;s website+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON User+instance A.FromJSON User where+  parseJSON = A.withObject "User" $ \o ->+    User+      <$> (o .:? "active")+      <*> (o .:? "avatar_url")+      <*> (o .:? "created")+      <*> (o .:? "description")+      <*> (o .:? "email")+      <*> (o .:? "followers_count")+      <*> (o .:? "following_count")+      <*> (o .:? "full_name")+      <*> (o .:? "id")+      <*> (o .:? "is_admin")+      <*> (o .:? "language")+      <*> (o .:? "last_login")+      <*> (o .:? "location")+      <*> (o .:? "login")+      <*> (o .:? "login_name")+      <*> (o .:? "prohibit_login")+      <*> (o .:? "restricted")+      <*> (o .:? "starred_repos_count")+      <*> (o .:? "visibility")+      <*> (o .:? "website")++-- | ToJSON User+instance A.ToJSON User where+  toJSON User {..} =+   _omitNulls+      [ "active" .= userActive+      , "avatar_url" .= userAvatarUrl+      , "created" .= userCreated+      , "description" .= userDescription+      , "email" .= userEmail+      , "followers_count" .= userFollowersCount+      , "following_count" .= userFollowingCount+      , "full_name" .= userFullName+      , "id" .= userId+      , "is_admin" .= userIsAdmin+      , "language" .= userLanguage+      , "last_login" .= userLastLogin+      , "location" .= userLocation+      , "login" .= userLogin+      , "login_name" .= userLoginName+      , "prohibit_login" .= userProhibitLogin+      , "restricted" .= userRestricted+      , "starred_repos_count" .= userStarredReposCount+      , "visibility" .= userVisibility+      , "website" .= userWebsite+      ]+++-- | Construct a value of type 'User' (by applying it's required fields, if any)+mkUser+  :: User+mkUser =+  User+  { userActive = Nothing+  , userAvatarUrl = Nothing+  , userCreated = Nothing+  , userDescription = Nothing+  , userEmail = Nothing+  , userFollowersCount = Nothing+  , userFollowingCount = Nothing+  , userFullName = Nothing+  , userId = Nothing+  , userIsAdmin = Nothing+  , userLanguage = Nothing+  , userLastLogin = Nothing+  , userLocation = Nothing+  , userLogin = Nothing+  , userLoginName = Nothing+  , userProhibitLogin = Nothing+  , userRestricted = Nothing+  , userStarredReposCount = Nothing+  , userVisibility = Nothing+  , userWebsite = Nothing+  }++-- ** UserHeatmapData+-- | UserHeatmapData+-- UserHeatmapData represents the data needed to create a heatmap+data UserHeatmapData = UserHeatmapData+  { userHeatmapDataContributions :: !(Maybe Integer) -- ^ "contributions"+  , userHeatmapDataTimestamp :: !(Maybe Integer) -- ^ "timestamp" - TimeStamp defines a timestamp+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON UserHeatmapData+instance A.FromJSON UserHeatmapData where+  parseJSON = A.withObject "UserHeatmapData" $ \o ->+    UserHeatmapData+      <$> (o .:? "contributions")+      <*> (o .:? "timestamp")++-- | ToJSON UserHeatmapData+instance A.ToJSON UserHeatmapData where+  toJSON UserHeatmapData {..} =+   _omitNulls+      [ "contributions" .= userHeatmapDataContributions+      , "timestamp" .= userHeatmapDataTimestamp+      ]+++-- | Construct a value of type 'UserHeatmapData' (by applying it's required fields, if any)+mkUserHeatmapData+  :: UserHeatmapData+mkUserHeatmapData =+  UserHeatmapData+  { userHeatmapDataContributions = Nothing+  , userHeatmapDataTimestamp = Nothing+  }++-- ** UserSearch200Response+-- | UserSearch200Response+data UserSearch200Response = UserSearch200Response+  { userSearch200ResponseData :: !(Maybe [User]) -- ^ "data"+  , userSearch200ResponseOk :: !(Maybe Bool) -- ^ "ok"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON UserSearch200Response+instance A.FromJSON UserSearch200Response where+  parseJSON = A.withObject "UserSearch200Response" $ \o ->+    UserSearch200Response+      <$> (o .:? "data")+      <*> (o .:? "ok")++-- | ToJSON UserSearch200Response+instance A.ToJSON UserSearch200Response where+  toJSON UserSearch200Response {..} =+   _omitNulls+      [ "data" .= userSearch200ResponseData+      , "ok" .= userSearch200ResponseOk+      ]+++-- | Construct a value of type 'UserSearch200Response' (by applying it's required fields, if any)+mkUserSearch200Response+  :: UserSearch200Response+mkUserSearch200Response =+  UserSearch200Response+  { userSearch200ResponseData = Nothing+  , userSearch200ResponseOk = Nothing+  }++-- ** UserSettings+-- | UserSettings+-- UserSettings represents user settings+data UserSettings = UserSettings+  { userSettingsDescription :: !(Maybe Text) -- ^ "description"+  , userSettingsDiffViewStyle :: !(Maybe Text) -- ^ "diff_view_style"+  , userSettingsFullName :: !(Maybe Text) -- ^ "full_name"+  , userSettingsHideActivity :: !(Maybe Bool) -- ^ "hide_activity"+  , userSettingsHideEmail :: !(Maybe Bool) -- ^ "hide_email" - Privacy+  , userSettingsLanguage :: !(Maybe Text) -- ^ "language"+  , userSettingsLocation :: !(Maybe Text) -- ^ "location"+  , userSettingsTheme :: !(Maybe Text) -- ^ "theme"+  , userSettingsWebsite :: !(Maybe Text) -- ^ "website"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON UserSettings+instance A.FromJSON UserSettings where+  parseJSON = A.withObject "UserSettings" $ \o ->+    UserSettings+      <$> (o .:? "description")+      <*> (o .:? "diff_view_style")+      <*> (o .:? "full_name")+      <*> (o .:? "hide_activity")+      <*> (o .:? "hide_email")+      <*> (o .:? "language")+      <*> (o .:? "location")+      <*> (o .:? "theme")+      <*> (o .:? "website")++-- | ToJSON UserSettings+instance A.ToJSON UserSettings where+  toJSON UserSettings {..} =+   _omitNulls+      [ "description" .= userSettingsDescription+      , "diff_view_style" .= userSettingsDiffViewStyle+      , "full_name" .= userSettingsFullName+      , "hide_activity" .= userSettingsHideActivity+      , "hide_email" .= userSettingsHideEmail+      , "language" .= userSettingsLanguage+      , "location" .= userSettingsLocation+      , "theme" .= userSettingsTheme+      , "website" .= userSettingsWebsite+      ]+++-- | Construct a value of type 'UserSettings' (by applying it's required fields, if any)+mkUserSettings+  :: UserSettings+mkUserSettings =+  UserSettings+  { userSettingsDescription = Nothing+  , userSettingsDiffViewStyle = Nothing+  , userSettingsFullName = Nothing+  , userSettingsHideActivity = Nothing+  , userSettingsHideEmail = Nothing+  , userSettingsLanguage = Nothing+  , userSettingsLocation = Nothing+  , userSettingsTheme = Nothing+  , userSettingsWebsite = Nothing+  }++-- ** UserSettingsOptions+-- | UserSettingsOptions+-- UserSettingsOptions represents options to change user settings+data UserSettingsOptions = UserSettingsOptions+  { userSettingsOptionsDescription :: !(Maybe Text) -- ^ "description"+  , userSettingsOptionsDiffViewStyle :: !(Maybe Text) -- ^ "diff_view_style"+  , userSettingsOptionsFullName :: !(Maybe Text) -- ^ "full_name"+  , userSettingsOptionsHideActivity :: !(Maybe Bool) -- ^ "hide_activity"+  , userSettingsOptionsHideEmail :: !(Maybe Bool) -- ^ "hide_email" - Privacy+  , userSettingsOptionsLanguage :: !(Maybe Text) -- ^ "language"+  , userSettingsOptionsLocation :: !(Maybe Text) -- ^ "location"+  , userSettingsOptionsTheme :: !(Maybe Text) -- ^ "theme"+  , userSettingsOptionsWebsite :: !(Maybe Text) -- ^ "website"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON UserSettingsOptions+instance A.FromJSON UserSettingsOptions where+  parseJSON = A.withObject "UserSettingsOptions" $ \o ->+    UserSettingsOptions+      <$> (o .:? "description")+      <*> (o .:? "diff_view_style")+      <*> (o .:? "full_name")+      <*> (o .:? "hide_activity")+      <*> (o .:? "hide_email")+      <*> (o .:? "language")+      <*> (o .:? "location")+      <*> (o .:? "theme")+      <*> (o .:? "website")++-- | ToJSON UserSettingsOptions+instance A.ToJSON UserSettingsOptions where+  toJSON UserSettingsOptions {..} =+   _omitNulls+      [ "description" .= userSettingsOptionsDescription+      , "diff_view_style" .= userSettingsOptionsDiffViewStyle+      , "full_name" .= userSettingsOptionsFullName+      , "hide_activity" .= userSettingsOptionsHideActivity+      , "hide_email" .= userSettingsOptionsHideEmail+      , "language" .= userSettingsOptionsLanguage+      , "location" .= userSettingsOptionsLocation+      , "theme" .= userSettingsOptionsTheme+      , "website" .= userSettingsOptionsWebsite+      ]+++-- | Construct a value of type 'UserSettingsOptions' (by applying it's required fields, if any)+mkUserSettingsOptions+  :: UserSettingsOptions+mkUserSettingsOptions =+  UserSettingsOptions+  { userSettingsOptionsDescription = Nothing+  , userSettingsOptionsDiffViewStyle = Nothing+  , userSettingsOptionsFullName = Nothing+  , userSettingsOptionsHideActivity = Nothing+  , userSettingsOptionsHideEmail = Nothing+  , userSettingsOptionsLanguage = Nothing+  , userSettingsOptionsLocation = Nothing+  , userSettingsOptionsTheme = Nothing+  , userSettingsOptionsWebsite = Nothing+  }++-- ** WatchInfo+-- | WatchInfo+-- WatchInfo represents an API watch status of one repository+data WatchInfo = WatchInfo+  { watchInfoCreatedAt :: !(Maybe DateTime) -- ^ "created_at"+  , watchInfoIgnored :: !(Maybe Bool) -- ^ "ignored"+  , watchInfoReason :: !(Maybe A.Value) -- ^ "reason"+  , watchInfoRepositoryUrl :: !(Maybe Text) -- ^ "repository_url"+  , watchInfoSubscribed :: !(Maybe Bool) -- ^ "subscribed"+  , watchInfoUrl :: !(Maybe Text) -- ^ "url"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON WatchInfo+instance A.FromJSON WatchInfo where+  parseJSON = A.withObject "WatchInfo" $ \o ->+    WatchInfo+      <$> (o .:? "created_at")+      <*> (o .:? "ignored")+      <*> (o .:? "reason")+      <*> (o .:? "repository_url")+      <*> (o .:? "subscribed")+      <*> (o .:? "url")++-- | ToJSON WatchInfo+instance A.ToJSON WatchInfo where+  toJSON WatchInfo {..} =+   _omitNulls+      [ "created_at" .= watchInfoCreatedAt+      , "ignored" .= watchInfoIgnored+      , "reason" .= watchInfoReason+      , "repository_url" .= watchInfoRepositoryUrl+      , "subscribed" .= watchInfoSubscribed+      , "url" .= watchInfoUrl+      ]+++-- | Construct a value of type 'WatchInfo' (by applying it's required fields, if any)+mkWatchInfo+  :: WatchInfo+mkWatchInfo =+  WatchInfo+  { watchInfoCreatedAt = Nothing+  , watchInfoIgnored = Nothing+  , watchInfoReason = Nothing+  , watchInfoRepositoryUrl = Nothing+  , watchInfoSubscribed = Nothing+  , watchInfoUrl = Nothing+  }++-- ** WikiCommit+-- | WikiCommit+-- WikiCommit page commit/revision+data WikiCommit = WikiCommit+  { wikiCommitAuthor :: !(Maybe CommitUser) -- ^ "author"+  , wikiCommitCommiter :: !(Maybe CommitUser) -- ^ "commiter"+  , wikiCommitMessage :: !(Maybe Text) -- ^ "message"+  , wikiCommitSha :: !(Maybe Text) -- ^ "sha"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON WikiCommit+instance A.FromJSON WikiCommit where+  parseJSON = A.withObject "WikiCommit" $ \o ->+    WikiCommit+      <$> (o .:? "author")+      <*> (o .:? "commiter")+      <*> (o .:? "message")+      <*> (o .:? "sha")++-- | ToJSON WikiCommit+instance A.ToJSON WikiCommit where+  toJSON WikiCommit {..} =+   _omitNulls+      [ "author" .= wikiCommitAuthor+      , "commiter" .= wikiCommitCommiter+      , "message" .= wikiCommitMessage+      , "sha" .= wikiCommitSha+      ]+++-- | Construct a value of type 'WikiCommit' (by applying it's required fields, if any)+mkWikiCommit+  :: WikiCommit+mkWikiCommit =+  WikiCommit+  { wikiCommitAuthor = Nothing+  , wikiCommitCommiter = Nothing+  , wikiCommitMessage = Nothing+  , wikiCommitSha = Nothing+  }++-- ** WikiCommitList+-- | WikiCommitList+-- WikiCommitList commit/revision list+data WikiCommitList = WikiCommitList+  { wikiCommitListCommits :: !(Maybe [WikiCommit]) -- ^ "commits"+  , wikiCommitListCount :: !(Maybe Integer) -- ^ "count"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON WikiCommitList+instance A.FromJSON WikiCommitList where+  parseJSON = A.withObject "WikiCommitList" $ \o ->+    WikiCommitList+      <$> (o .:? "commits")+      <*> (o .:? "count")++-- | ToJSON WikiCommitList+instance A.ToJSON WikiCommitList where+  toJSON WikiCommitList {..} =+   _omitNulls+      [ "commits" .= wikiCommitListCommits+      , "count" .= wikiCommitListCount+      ]+++-- | Construct a value of type 'WikiCommitList' (by applying it's required fields, if any)+mkWikiCommitList+  :: WikiCommitList+mkWikiCommitList =+  WikiCommitList+  { wikiCommitListCommits = Nothing+  , wikiCommitListCount = Nothing+  }++-- ** WikiPage+-- | WikiPage+-- WikiPage a wiki page+data WikiPage = WikiPage+  { wikiPageCommitCount :: !(Maybe Integer) -- ^ "commit_count"+  , wikiPageContentBase64 :: !(Maybe Text) -- ^ "content_base64" - Page content, base64 encoded+  , wikiPageFooter :: !(Maybe Text) -- ^ "footer"+  , wikiPageHtmlUrl :: !(Maybe Text) -- ^ "html_url"+  , wikiPageLastCommit :: !(Maybe WikiCommit) -- ^ "last_commit"+  , wikiPageSidebar :: !(Maybe Text) -- ^ "sidebar"+  , wikiPageSubUrl :: !(Maybe Text) -- ^ "sub_url"+  , wikiPageTitle :: !(Maybe Text) -- ^ "title"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON WikiPage+instance A.FromJSON WikiPage where+  parseJSON = A.withObject "WikiPage" $ \o ->+    WikiPage+      <$> (o .:? "commit_count")+      <*> (o .:? "content_base64")+      <*> (o .:? "footer")+      <*> (o .:? "html_url")+      <*> (o .:? "last_commit")+      <*> (o .:? "sidebar")+      <*> (o .:? "sub_url")+      <*> (o .:? "title")++-- | ToJSON WikiPage+instance A.ToJSON WikiPage where+  toJSON WikiPage {..} =+   _omitNulls+      [ "commit_count" .= wikiPageCommitCount+      , "content_base64" .= wikiPageContentBase64+      , "footer" .= wikiPageFooter+      , "html_url" .= wikiPageHtmlUrl+      , "last_commit" .= wikiPageLastCommit+      , "sidebar" .= wikiPageSidebar+      , "sub_url" .= wikiPageSubUrl+      , "title" .= wikiPageTitle+      ]+++-- | Construct a value of type 'WikiPage' (by applying it's required fields, if any)+mkWikiPage+  :: WikiPage+mkWikiPage =+  WikiPage+  { wikiPageCommitCount = Nothing+  , wikiPageContentBase64 = Nothing+  , wikiPageFooter = Nothing+  , wikiPageHtmlUrl = Nothing+  , wikiPageLastCommit = Nothing+  , wikiPageSidebar = Nothing+  , wikiPageSubUrl = Nothing+  , wikiPageTitle = Nothing+  }++-- ** WikiPageMetaData+-- | WikiPageMetaData+-- WikiPageMetaData wiki page meta information+data WikiPageMetaData = WikiPageMetaData+  { wikiPageMetaDataHtmlUrl :: !(Maybe Text) -- ^ "html_url"+  , wikiPageMetaDataLastCommit :: !(Maybe WikiCommit) -- ^ "last_commit"+  , wikiPageMetaDataSubUrl :: !(Maybe Text) -- ^ "sub_url"+  , wikiPageMetaDataTitle :: !(Maybe Text) -- ^ "title"+  } deriving (P.Show, P.Eq, P.Typeable)++-- | FromJSON WikiPageMetaData+instance A.FromJSON WikiPageMetaData where+  parseJSON = A.withObject "WikiPageMetaData" $ \o ->+    WikiPageMetaData+      <$> (o .:? "html_url")+      <*> (o .:? "last_commit")+      <*> (o .:? "sub_url")+      <*> (o .:? "title")++-- | ToJSON WikiPageMetaData+instance A.ToJSON WikiPageMetaData where+  toJSON WikiPageMetaData {..} =+   _omitNulls+      [ "html_url" .= wikiPageMetaDataHtmlUrl+      , "last_commit" .= wikiPageMetaDataLastCommit+      , "sub_url" .= wikiPageMetaDataSubUrl+      , "title" .= wikiPageMetaDataTitle+      ]+++-- | Construct a value of type 'WikiPageMetaData' (by applying it's required fields, if any)+mkWikiPageMetaData+  :: WikiPageMetaData+mkWikiPageMetaData =+  WikiPageMetaData+  { wikiPageMetaDataHtmlUrl = Nothing+  , wikiPageMetaDataLastCommit = Nothing+  , wikiPageMetaDataSubUrl = Nothing+  , wikiPageMetaDataTitle = Nothing+  }+++-- * Enums+++-- ** E'DiffType++-- | Enum of 'Text'+data E'DiffType+  = E'DiffType'Diff -- ^ @"diff"@+  | E'DiffType'Patch -- ^ @"patch"@+  deriving (P.Show, P.Eq, P.Typeable, P.Ord, P.Bounded, P.Enum)++instance A.ToJSON E'DiffType where toJSON = A.toJSON . fromE'DiffType+instance A.FromJSON E'DiffType where parseJSON o = P.either P.fail (pure . P.id) . toE'DiffType =<< A.parseJSON o+instance WH.ToHttpApiData E'DiffType where toQueryParam = WH.toQueryParam . fromE'DiffType+instance WH.FromHttpApiData E'DiffType where parseQueryParam o = WH.parseQueryParam o >>= P.left T.pack . toE'DiffType+instance MimeRender MimeMultipartFormData E'DiffType where mimeRender _ = mimeRenderDefaultMultipartFormData++-- | unwrap 'E'DiffType' enum+fromE'DiffType :: E'DiffType -> Text+fromE'DiffType = \case+  E'DiffType'Diff -> "diff"+  E'DiffType'Patch -> "patch"++-- | parse 'E'DiffType' enum+toE'DiffType :: Text -> P.Either String E'DiffType+toE'DiffType = \case+  "diff" -> P.Right E'DiffType'Diff+  "patch" -> P.Right E'DiffType'Patch+  s -> P.Left $ "toE'DiffType: enum parse failure: " P.++ P.show s+++-- ** E'Do++-- | Enum of 'Text'+data E'Do+  = E'Do'Merge -- ^ @"merge"@+  | E'Do'Rebase -- ^ @"rebase"@+  | E'Do'Rebase_merge -- ^ @"rebase-merge"@+  | E'Do'Squash -- ^ @"squash"@+  | E'Do'Manually_merged -- ^ @"manually-merged"@+  deriving (P.Show, P.Eq, P.Typeable, P.Ord, P.Bounded, P.Enum)++instance A.ToJSON E'Do where toJSON = A.toJSON . fromE'Do+instance A.FromJSON E'Do where parseJSON o = P.either P.fail (pure . P.id) . toE'Do =<< A.parseJSON o+instance WH.ToHttpApiData E'Do where toQueryParam = WH.toQueryParam . fromE'Do+instance WH.FromHttpApiData E'Do where parseQueryParam o = WH.parseQueryParam o >>= P.left T.pack . toE'Do+instance MimeRender MimeMultipartFormData E'Do where mimeRender _ = mimeRenderDefaultMultipartFormData++-- | unwrap 'E'Do' enum+fromE'Do :: E'Do -> Text+fromE'Do = \case+  E'Do'Merge -> "merge"+  E'Do'Rebase -> "rebase"+  E'Do'Rebase_merge -> "rebase-merge"+  E'Do'Squash -> "squash"+  E'Do'Manually_merged -> "manually-merged"++-- | parse 'E'Do' enum+toE'Do :: Text -> P.Either String E'Do+toE'Do = \case+  "merge" -> P.Right E'Do'Merge+  "rebase" -> P.Right E'Do'Rebase+  "rebase-merge" -> P.Right E'Do'Rebase_merge+  "squash" -> P.Right E'Do'Squash+  "manually-merged" -> P.Right E'Do'Manually_merged+  s -> P.Left $ "toE'Do: enum parse failure: " P.++ P.show s+++-- ** E'Permission++-- | Enum of 'Text'+data E'Permission+  = E'Permission'Read -- ^ @"read"@+  | E'Permission'Write -- ^ @"write"@+  | E'Permission'Admin -- ^ @"admin"@+  deriving (P.Show, P.Eq, P.Typeable, P.Ord, P.Bounded, P.Enum)++instance A.ToJSON E'Permission where toJSON = A.toJSON . fromE'Permission+instance A.FromJSON E'Permission where parseJSON o = P.either P.fail (pure . P.id) . toE'Permission =<< A.parseJSON o+instance WH.ToHttpApiData E'Permission where toQueryParam = WH.toQueryParam . fromE'Permission+instance WH.FromHttpApiData E'Permission where parseQueryParam o = WH.parseQueryParam o >>= P.left T.pack . toE'Permission+instance MimeRender MimeMultipartFormData E'Permission where mimeRender _ = mimeRenderDefaultMultipartFormData++-- | unwrap 'E'Permission' enum+fromE'Permission :: E'Permission -> Text+fromE'Permission = \case+  E'Permission'Read -> "read"+  E'Permission'Write -> "write"+  E'Permission'Admin -> "admin"++-- | parse 'E'Permission' enum+toE'Permission :: Text -> P.Either String E'Permission+toE'Permission = \case+  "read" -> P.Right E'Permission'Read+  "write" -> P.Right E'Permission'Write+  "admin" -> P.Right E'Permission'Admin+  s -> P.Left $ "toE'Permission: enum parse failure: " P.++ P.show s+++-- ** E'Permission2++-- | Enum of 'Text'+data E'Permission2+  = E'Permission2'None -- ^ @"none"@+  | E'Permission2'Read -- ^ @"read"@+  | E'Permission2'Write -- ^ @"write"@+  | E'Permission2'Admin -- ^ @"admin"@+  | E'Permission2'Owner -- ^ @"owner"@+  deriving (P.Show, P.Eq, P.Typeable, P.Ord, P.Bounded, P.Enum)++instance A.ToJSON E'Permission2 where toJSON = A.toJSON . fromE'Permission2+instance A.FromJSON E'Permission2 where parseJSON o = P.either P.fail (pure . P.id) . toE'Permission2 =<< A.parseJSON o+instance WH.ToHttpApiData E'Permission2 where toQueryParam = WH.toQueryParam . fromE'Permission2+instance WH.FromHttpApiData E'Permission2 where parseQueryParam o = WH.parseQueryParam o >>= P.left T.pack . toE'Permission2+instance MimeRender MimeMultipartFormData E'Permission2 where mimeRender _ = mimeRenderDefaultMultipartFormData++-- | unwrap 'E'Permission2' enum+fromE'Permission2 :: E'Permission2 -> Text+fromE'Permission2 = \case+  E'Permission2'None -> "none"+  E'Permission2'Read -> "read"+  E'Permission2'Write -> "write"+  E'Permission2'Admin -> "admin"+  E'Permission2'Owner -> "owner"++-- | parse 'E'Permission2' enum+toE'Permission2 :: Text -> P.Either String E'Permission2+toE'Permission2 = \case+  "none" -> P.Right E'Permission2'None+  "read" -> P.Right E'Permission2'Read+  "write" -> P.Right E'Permission2'Write+  "admin" -> P.Right E'Permission2'Admin+  "owner" -> P.Right E'Permission2'Owner+  s -> P.Left $ "toE'Permission2: enum parse failure: " P.++ P.show s+++-- ** E'Service++-- | Enum of 'Text'+data E'Service+  = E'Service'Git -- ^ @"git"@+  | E'Service'Github -- ^ @"github"@+  | E'Service'Gitea -- ^ @"gitea"@+  | E'Service'Gitlab -- ^ @"gitlab"@+  | E'Service'Gogs -- ^ @"gogs"@+  | E'Service'Onedev -- ^ @"onedev"@+  | E'Service'Gitbucket -- ^ @"gitbucket"@+  | E'Service'Codebase -- ^ @"codebase"@+  deriving (P.Show, P.Eq, P.Typeable, P.Ord, P.Bounded, P.Enum)++instance A.ToJSON E'Service where toJSON = A.toJSON . fromE'Service+instance A.FromJSON E'Service where parseJSON o = P.either P.fail (pure . P.id) . toE'Service =<< A.parseJSON o+instance WH.ToHttpApiData E'Service where toQueryParam = WH.toQueryParam . fromE'Service+instance WH.FromHttpApiData E'Service where parseQueryParam o = WH.parseQueryParam o >>= P.left T.pack . toE'Service+instance MimeRender MimeMultipartFormData E'Service where mimeRender _ = mimeRenderDefaultMultipartFormData++-- | unwrap 'E'Service' enum+fromE'Service :: E'Service -> Text+fromE'Service = \case+  E'Service'Git -> "git"+  E'Service'Github -> "github"+  E'Service'Gitea -> "gitea"+  E'Service'Gitlab -> "gitlab"+  E'Service'Gogs -> "gogs"+  E'Service'Onedev -> "onedev"+  E'Service'Gitbucket -> "gitbucket"+  E'Service'Codebase -> "codebase"++-- | parse 'E'Service' enum+toE'Service :: Text -> P.Either String E'Service+toE'Service = \case+  "git" -> P.Right E'Service'Git+  "github" -> P.Right E'Service'Github+  "gitea" -> P.Right E'Service'Gitea+  "gitlab" -> P.Right E'Service'Gitlab+  "gogs" -> P.Right E'Service'Gogs+  "onedev" -> P.Right E'Service'Onedev+  "gitbucket" -> P.Right E'Service'Gitbucket+  "codebase" -> P.Right E'Service'Codebase+  s -> P.Left $ "toE'Service: enum parse failure: " P.++ P.show s+++-- ** E'Sort++-- | Enum of 'Text'+data E'Sort+  = E'Sort'Oldest -- ^ @"oldest"@+  | E'Sort'Recentupdate -- ^ @"recentupdate"@+  | E'Sort'Leastupdate -- ^ @"leastupdate"@+  | E'Sort'Leastindex -- ^ @"leastindex"@+  | E'Sort'Highestindex -- ^ @"highestindex"@+  deriving (P.Show, P.Eq, P.Typeable, P.Ord, P.Bounded, P.Enum)++instance A.ToJSON E'Sort where toJSON = A.toJSON . fromE'Sort+instance A.FromJSON E'Sort where parseJSON o = P.either P.fail (pure . P.id) . toE'Sort =<< A.parseJSON o+instance WH.ToHttpApiData E'Sort where toQueryParam = WH.toQueryParam . fromE'Sort+instance WH.FromHttpApiData E'Sort where parseQueryParam o = WH.parseQueryParam o >>= P.left T.pack . toE'Sort+instance MimeRender MimeMultipartFormData E'Sort where mimeRender _ = mimeRenderDefaultMultipartFormData++-- | unwrap 'E'Sort' enum+fromE'Sort :: E'Sort -> Text+fromE'Sort = \case+  E'Sort'Oldest -> "oldest"+  E'Sort'Recentupdate -> "recentupdate"+  E'Sort'Leastupdate -> "leastupdate"+  E'Sort'Leastindex -> "leastindex"+  E'Sort'Highestindex -> "highestindex"++-- | parse 'E'Sort' enum+toE'Sort :: Text -> P.Either String E'Sort+toE'Sort = \case+  "oldest" -> P.Right E'Sort'Oldest+  "recentupdate" -> P.Right E'Sort'Recentupdate+  "leastupdate" -> P.Right E'Sort'Leastupdate+  "leastindex" -> P.Right E'Sort'Leastindex+  "highestindex" -> P.Right E'Sort'Highestindex+  s -> P.Left $ "toE'Sort: enum parse failure: " P.++ P.show s+++-- ** E'Sort2++-- | Enum of 'Text'+data E'Sort2+  = E'Sort2'Oldest -- ^ @"oldest"@+  | E'Sort2'Recentupdate -- ^ @"recentupdate"@+  | E'Sort2'Leastupdate -- ^ @"leastupdate"@+  | E'Sort2'Mostcomment -- ^ @"mostcomment"@+  | E'Sort2'Leastcomment -- ^ @"leastcomment"@+  | E'Sort2'Priority -- ^ @"priority"@+  deriving (P.Show, P.Eq, P.Typeable, P.Ord, P.Bounded, P.Enum)++instance A.ToJSON E'Sort2 where toJSON = A.toJSON . fromE'Sort2+instance A.FromJSON E'Sort2 where parseJSON o = P.either P.fail (pure . P.id) . toE'Sort2 =<< A.parseJSON o+instance WH.ToHttpApiData E'Sort2 where toQueryParam = WH.toQueryParam . fromE'Sort2+instance WH.FromHttpApiData E'Sort2 where parseQueryParam o = WH.parseQueryParam o >>= P.left T.pack . toE'Sort2+instance MimeRender MimeMultipartFormData E'Sort2 where mimeRender _ = mimeRenderDefaultMultipartFormData++-- | unwrap 'E'Sort2' enum+fromE'Sort2 :: E'Sort2 -> Text+fromE'Sort2 = \case+  E'Sort2'Oldest -> "oldest"+  E'Sort2'Recentupdate -> "recentupdate"+  E'Sort2'Leastupdate -> "leastupdate"+  E'Sort2'Mostcomment -> "mostcomment"+  E'Sort2'Leastcomment -> "leastcomment"+  E'Sort2'Priority -> "priority"++-- | parse 'E'Sort2' enum+toE'Sort2 :: Text -> P.Either String E'Sort2+toE'Sort2 = \case+  "oldest" -> P.Right E'Sort2'Oldest+  "recentupdate" -> P.Right E'Sort2'Recentupdate+  "leastupdate" -> P.Right E'Sort2'Leastupdate+  "mostcomment" -> P.Right E'Sort2'Mostcomment+  "leastcomment" -> P.Right E'Sort2'Leastcomment+  "priority" -> P.Right E'Sort2'Priority+  s -> P.Left $ "toE'Sort2: enum parse failure: " P.++ P.show s+++-- ** E'State++-- | Enum of 'Text'+data E'State+  = E'State'Open -- ^ @"open"@+  | E'State'Closed -- ^ @"closed"@+  deriving (P.Show, P.Eq, P.Typeable, P.Ord, P.Bounded, P.Enum)++instance A.ToJSON E'State where toJSON = A.toJSON . fromE'State+instance A.FromJSON E'State where parseJSON o = P.either P.fail (pure . P.id) . toE'State =<< A.parseJSON o+instance WH.ToHttpApiData E'State where toQueryParam = WH.toQueryParam . fromE'State+instance WH.FromHttpApiData E'State where parseQueryParam o = WH.parseQueryParam o >>= P.left T.pack . toE'State+instance MimeRender MimeMultipartFormData E'State where mimeRender _ = mimeRenderDefaultMultipartFormData++-- | unwrap 'E'State' enum+fromE'State :: E'State -> Text+fromE'State = \case+  E'State'Open -> "open"+  E'State'Closed -> "closed"++-- | parse 'E'State' enum+toE'State :: Text -> P.Either String E'State+toE'State = \case+  "open" -> P.Right E'State'Open+  "closed" -> P.Right E'State'Closed+  s -> P.Left $ "toE'State: enum parse failure: " P.++ P.show s+++-- ** E'State2++-- | Enum of 'Text'+data E'State2+  = E'State2'Pending -- ^ @"pending"@+  | E'State2'Success -- ^ @"success"@+  | E'State2'Error -- ^ @"error"@+  | E'State2'Failure -- ^ @"failure"@+  | E'State2'Warning -- ^ @"warning"@+  deriving (P.Show, P.Eq, P.Typeable, P.Ord, P.Bounded, P.Enum)++instance A.ToJSON E'State2 where toJSON = A.toJSON . fromE'State2+instance A.FromJSON E'State2 where parseJSON o = P.either P.fail (pure . P.id) . toE'State2 =<< A.parseJSON o+instance WH.ToHttpApiData E'State2 where toQueryParam = WH.toQueryParam . fromE'State2+instance WH.FromHttpApiData E'State2 where parseQueryParam o = WH.parseQueryParam o >>= P.left T.pack . toE'State2+instance MimeRender MimeMultipartFormData E'State2 where mimeRender _ = mimeRenderDefaultMultipartFormData++-- | unwrap 'E'State2' enum+fromE'State2 :: E'State2 -> Text+fromE'State2 = \case+  E'State2'Pending -> "pending"+  E'State2'Success -> "success"+  E'State2'Error -> "error"+  E'State2'Failure -> "failure"+  E'State2'Warning -> "warning"++-- | parse 'E'State2' enum+toE'State2 :: Text -> P.Either String E'State2+toE'State2 = \case+  "pending" -> P.Right E'State2'Pending+  "success" -> P.Right E'State2'Success+  "error" -> P.Right E'State2'Error+  "failure" -> P.Right E'State2'Failure+  "warning" -> P.Right E'State2'Warning+  s -> P.Left $ "toE'State2: enum parse failure: " P.++ P.show s+++-- ** E'State3++-- | Enum of 'Text'+data E'State3+  = E'State3'Closed -- ^ @"closed"@+  | E'State3'Open -- ^ @"open"@+  | E'State3'All -- ^ @"all"@+  deriving (P.Show, P.Eq, P.Typeable, P.Ord, P.Bounded, P.Enum)++instance A.ToJSON E'State3 where toJSON = A.toJSON . fromE'State3+instance A.FromJSON E'State3 where parseJSON o = P.either P.fail (pure . P.id) . toE'State3 =<< A.parseJSON o+instance WH.ToHttpApiData E'State3 where toQueryParam = WH.toQueryParam . fromE'State3+instance WH.FromHttpApiData E'State3 where parseQueryParam o = WH.parseQueryParam o >>= P.left T.pack . toE'State3+instance MimeRender MimeMultipartFormData E'State3 where mimeRender _ = mimeRenderDefaultMultipartFormData++-- | unwrap 'E'State3' enum+fromE'State3 :: E'State3 -> Text+fromE'State3 = \case+  E'State3'Closed -> "closed"+  E'State3'Open -> "open"+  E'State3'All -> "all"++-- | parse 'E'State3' enum+toE'State3 :: Text -> P.Either String E'State3+toE'State3 = \case+  "closed" -> P.Right E'State3'Closed+  "open" -> P.Right E'State3'Open+  "all" -> P.Right E'State3'All+  s -> P.Left $ "toE'State3: enum parse failure: " P.++ P.show s+++-- ** E'Style++-- | Enum of 'Text'+data E'Style+  = E'Style'Merge -- ^ @"merge"@+  | E'Style'Rebase -- ^ @"rebase"@+  deriving (P.Show, P.Eq, P.Typeable, P.Ord, P.Bounded, P.Enum)++instance A.ToJSON E'Style where toJSON = A.toJSON . fromE'Style+instance A.FromJSON E'Style where parseJSON o = P.either P.fail (pure . P.id) . toE'Style =<< A.parseJSON o+instance WH.ToHttpApiData E'Style where toQueryParam = WH.toQueryParam . fromE'Style+instance WH.FromHttpApiData E'Style where parseQueryParam o = WH.parseQueryParam o >>= P.left T.pack . toE'Style+instance MimeRender MimeMultipartFormData E'Style where mimeRender _ = mimeRenderDefaultMultipartFormData++-- | unwrap 'E'Style' enum+fromE'Style :: E'Style -> Text+fromE'Style = \case+  E'Style'Merge -> "merge"+  E'Style'Rebase -> "rebase"++-- | parse 'E'Style' enum+toE'Style :: Text -> P.Either String E'Style+toE'Style = \case+  "merge" -> P.Right E'Style'Merge+  "rebase" -> P.Right E'Style'Rebase+  s -> P.Left $ "toE'Style: enum parse failure: " P.++ P.show s+++-- ** E'SubjectType++-- | Enum of 'Text'+data E'SubjectType+  = E'SubjectType'Issue -- ^ @"issue"@+  | E'SubjectType'Pull -- ^ @"pull"@+  | E'SubjectType'Commit -- ^ @"commit"@+  | E'SubjectType'Repository -- ^ @"repository"@+  deriving (P.Show, P.Eq, P.Typeable, P.Ord, P.Bounded, P.Enum)++instance A.ToJSON E'SubjectType where toJSON = A.toJSON . fromE'SubjectType+instance A.FromJSON E'SubjectType where parseJSON o = P.either P.fail (pure . P.id) . toE'SubjectType =<< A.parseJSON o+instance WH.ToHttpApiData E'SubjectType where toQueryParam = WH.toQueryParam . fromE'SubjectType+instance WH.FromHttpApiData E'SubjectType where parseQueryParam o = WH.parseQueryParam o >>= P.left T.pack . toE'SubjectType+instance MimeRender MimeMultipartFormData E'SubjectType where mimeRender _ = mimeRenderDefaultMultipartFormData++-- | unwrap 'E'SubjectType' enum+fromE'SubjectType :: E'SubjectType -> Text+fromE'SubjectType = \case+  E'SubjectType'Issue -> "issue"+  E'SubjectType'Pull -> "pull"+  E'SubjectType'Commit -> "commit"+  E'SubjectType'Repository -> "repository"++-- | parse 'E'SubjectType' enum+toE'SubjectType :: Text -> P.Either String E'SubjectType+toE'SubjectType = \case+  "issue" -> P.Right E'SubjectType'Issue+  "pull" -> P.Right E'SubjectType'Pull+  "commit" -> P.Right E'SubjectType'Commit+  "repository" -> P.Right E'SubjectType'Repository+  s -> P.Left $ "toE'SubjectType: enum parse failure: " P.++ P.show s+++-- ** E'TrustModel++-- | Enum of 'Text' .+-- TrustModel of the repository+data E'TrustModel+  = E'TrustModel'Default -- ^ @"default"@+  | E'TrustModel'Collaborator -- ^ @"collaborator"@+  | E'TrustModel'Committer -- ^ @"committer"@+  | E'TrustModel'Collaboratorcommitter -- ^ @"collaboratorcommitter"@+  deriving (P.Show, P.Eq, P.Typeable, P.Ord, P.Bounded, P.Enum)++instance A.ToJSON E'TrustModel where toJSON = A.toJSON . fromE'TrustModel+instance A.FromJSON E'TrustModel where parseJSON o = P.either P.fail (pure . P.id) . toE'TrustModel =<< A.parseJSON o+instance WH.ToHttpApiData E'TrustModel where toQueryParam = WH.toQueryParam . fromE'TrustModel+instance WH.FromHttpApiData E'TrustModel where parseQueryParam o = WH.parseQueryParam o >>= P.left T.pack . toE'TrustModel+instance MimeRender MimeMultipartFormData E'TrustModel where mimeRender _ = mimeRenderDefaultMultipartFormData++-- | unwrap 'E'TrustModel' enum+fromE'TrustModel :: E'TrustModel -> Text+fromE'TrustModel = \case+  E'TrustModel'Default -> "default"+  E'TrustModel'Collaborator -> "collaborator"+  E'TrustModel'Committer -> "committer"+  E'TrustModel'Collaboratorcommitter -> "collaboratorcommitter"++-- | parse 'E'TrustModel' enum+toE'TrustModel :: Text -> P.Either String E'TrustModel+toE'TrustModel = \case+  "default" -> P.Right E'TrustModel'Default+  "collaborator" -> P.Right E'TrustModel'Collaborator+  "committer" -> P.Right E'TrustModel'Committer+  "collaboratorcommitter" -> P.Right E'TrustModel'Collaboratorcommitter+  s -> P.Left $ "toE'TrustModel: enum parse failure: " P.++ P.show s+++-- ** E'Type++-- | Enum of 'Text'+data E'Type+  = E'Type'Dingtalk -- ^ @"dingtalk"@+  | E'Type'Discord -- ^ @"discord"@+  | E'Type'Gitea -- ^ @"gitea"@+  | E'Type'Gogs -- ^ @"gogs"@+  | E'Type'Msteams -- ^ @"msteams"@+  | E'Type'Slack -- ^ @"slack"@+  | E'Type'Telegram -- ^ @"telegram"@+  | E'Type'Feishu -- ^ @"feishu"@+  | E'Type'Wechatwork -- ^ @"wechatwork"@+  | E'Type'Packagist -- ^ @"packagist"@+  deriving (P.Show, P.Eq, P.Typeable, P.Ord, P.Bounded, P.Enum)++instance A.ToJSON E'Type where toJSON = A.toJSON . fromE'Type+instance A.FromJSON E'Type where parseJSON o = P.either P.fail (pure . P.id) . toE'Type =<< A.parseJSON o+instance WH.ToHttpApiData E'Type where toQueryParam = WH.toQueryParam . fromE'Type+instance WH.FromHttpApiData E'Type where parseQueryParam o = WH.parseQueryParam o >>= P.left T.pack . toE'Type+instance MimeRender MimeMultipartFormData E'Type where mimeRender _ = mimeRenderDefaultMultipartFormData++-- | unwrap 'E'Type' enum+fromE'Type :: E'Type -> Text+fromE'Type = \case+  E'Type'Dingtalk -> "dingtalk"+  E'Type'Discord -> "discord"+  E'Type'Gitea -> "gitea"+  E'Type'Gogs -> "gogs"+  E'Type'Msteams -> "msteams"+  E'Type'Slack -> "slack"+  E'Type'Telegram -> "telegram"+  E'Type'Feishu -> "feishu"+  E'Type'Wechatwork -> "wechatwork"+  E'Type'Packagist -> "packagist"++-- | parse 'E'Type' enum+toE'Type :: Text -> P.Either String E'Type+toE'Type = \case+  "dingtalk" -> P.Right E'Type'Dingtalk+  "discord" -> P.Right E'Type'Discord+  "gitea" -> P.Right E'Type'Gitea+  "gogs" -> P.Right E'Type'Gogs+  "msteams" -> P.Right E'Type'Msteams+  "slack" -> P.Right E'Type'Slack+  "telegram" -> P.Right E'Type'Telegram+  "feishu" -> P.Right E'Type'Feishu+  "wechatwork" -> P.Right E'Type'Wechatwork+  "packagist" -> P.Right E'Type'Packagist+  s -> P.Left $ "toE'Type: enum parse failure: " P.++ P.show s+++-- ** E'Type2++-- | Enum of 'Text'+data E'Type2+  = E'Type2'Cargo -- ^ @"cargo"@+  | E'Type2'Chef -- ^ @"chef"@+  | E'Type2'Composer -- ^ @"composer"@+  | E'Type2'Conan -- ^ @"conan"@+  | E'Type2'Conda -- ^ @"conda"@+  | E'Type2'Container -- ^ @"container"@+  | E'Type2'Generic -- ^ @"generic"@+  | E'Type2'Helm -- ^ @"helm"@+  | E'Type2'Maven -- ^ @"maven"@+  | E'Type2'Npm -- ^ @"npm"@+  | E'Type2'Nuget -- ^ @"nuget"@+  | E'Type2'Pub -- ^ @"pub"@+  | E'Type2'Pypi -- ^ @"pypi"@+  | E'Type2'Rubygems -- ^ @"rubygems"@+  | E'Type2'Vagrant -- ^ @"vagrant"@+  deriving (P.Show, P.Eq, P.Typeable, P.Ord, P.Bounded, P.Enum)++instance A.ToJSON E'Type2 where toJSON = A.toJSON . fromE'Type2+instance A.FromJSON E'Type2 where parseJSON o = P.either P.fail (pure . P.id) . toE'Type2 =<< A.parseJSON o+instance WH.ToHttpApiData E'Type2 where toQueryParam = WH.toQueryParam . fromE'Type2+instance WH.FromHttpApiData E'Type2 where parseQueryParam o = WH.parseQueryParam o >>= P.left T.pack . toE'Type2+instance MimeRender MimeMultipartFormData E'Type2 where mimeRender _ = mimeRenderDefaultMultipartFormData++-- | unwrap 'E'Type2' enum+fromE'Type2 :: E'Type2 -> Text+fromE'Type2 = \case+  E'Type2'Cargo -> "cargo"+  E'Type2'Chef -> "chef"+  E'Type2'Composer -> "composer"+  E'Type2'Conan -> "conan"+  E'Type2'Conda -> "conda"+  E'Type2'Container -> "container"+  E'Type2'Generic -> "generic"+  E'Type2'Helm -> "helm"+  E'Type2'Maven -> "maven"+  E'Type2'Npm -> "npm"+  E'Type2'Nuget -> "nuget"+  E'Type2'Pub -> "pub"+  E'Type2'Pypi -> "pypi"+  E'Type2'Rubygems -> "rubygems"+  E'Type2'Vagrant -> "vagrant"++-- | parse 'E'Type2' enum+toE'Type2 :: Text -> P.Either String E'Type2+toE'Type2 = \case+  "cargo" -> P.Right E'Type2'Cargo+  "chef" -> P.Right E'Type2'Chef+  "composer" -> P.Right E'Type2'Composer+  "conan" -> P.Right E'Type2'Conan+  "conda" -> P.Right E'Type2'Conda+  "container" -> P.Right E'Type2'Container+  "generic" -> P.Right E'Type2'Generic+  "helm" -> P.Right E'Type2'Helm+  "maven" -> P.Right E'Type2'Maven+  "npm" -> P.Right E'Type2'Npm+  "nuget" -> P.Right E'Type2'Nuget+  "pub" -> P.Right E'Type2'Pub+  "pypi" -> P.Right E'Type2'Pypi+  "rubygems" -> P.Right E'Type2'Rubygems+  "vagrant" -> P.Right E'Type2'Vagrant+  s -> P.Left $ "toE'Type2: enum parse failure: " P.++ P.show s+++-- ** E'Type3++-- | Enum of 'Text'+data E'Type3+  = E'Type3'Issues -- ^ @"issues"@+  | E'Type3'Pulls -- ^ @"pulls"@+  deriving (P.Show, P.Eq, P.Typeable, P.Ord, P.Bounded, P.Enum)++instance A.ToJSON E'Type3 where toJSON = A.toJSON . fromE'Type3+instance A.FromJSON E'Type3 where parseJSON o = P.either P.fail (pure . P.id) . toE'Type3 =<< A.parseJSON o+instance WH.ToHttpApiData E'Type3 where toQueryParam = WH.toQueryParam . fromE'Type3+instance WH.FromHttpApiData E'Type3 where parseQueryParam o = WH.parseQueryParam o >>= P.left T.pack . toE'Type3+instance MimeRender MimeMultipartFormData E'Type3 where mimeRender _ = mimeRenderDefaultMultipartFormData++-- | unwrap 'E'Type3' enum+fromE'Type3 :: E'Type3 -> Text+fromE'Type3 = \case+  E'Type3'Issues -> "issues"+  E'Type3'Pulls -> "pulls"++-- | parse 'E'Type3' enum+toE'Type3 :: Text -> P.Either String E'Type3+toE'Type3 = \case+  "issues" -> P.Right E'Type3'Issues+  "pulls" -> P.Right E'Type3'Pulls+  s -> P.Left $ "toE'Type3: enum parse failure: " P.++ P.show s+++-- ** E'Visibility++-- | Enum of 'Text' .+-- possible values are `public` (default), `limited` or `private`+data E'Visibility+  = E'Visibility'Public -- ^ @"public"@+  | E'Visibility'Limited -- ^ @"limited"@+  | E'Visibility'Private -- ^ @"private"@+  deriving (P.Show, P.Eq, P.Typeable, P.Ord, P.Bounded, P.Enum)++instance A.ToJSON E'Visibility where toJSON = A.toJSON . fromE'Visibility+instance A.FromJSON E'Visibility where parseJSON o = P.either P.fail (pure . P.id) . toE'Visibility =<< A.parseJSON o+instance WH.ToHttpApiData E'Visibility where toQueryParam = WH.toQueryParam . fromE'Visibility+instance WH.FromHttpApiData E'Visibility where parseQueryParam o = WH.parseQueryParam o >>= P.left T.pack . toE'Visibility+instance MimeRender MimeMultipartFormData E'Visibility where mimeRender _ = mimeRenderDefaultMultipartFormData++-- | unwrap 'E'Visibility' enum+fromE'Visibility :: E'Visibility -> Text+fromE'Visibility = \case+  E'Visibility'Public -> "public"+  E'Visibility'Limited -> "limited"+  E'Visibility'Private -> "private"++-- | parse 'E'Visibility' enum+toE'Visibility :: Text -> P.Either String E'Visibility+toE'Visibility = \case+  "public" -> P.Right E'Visibility'Public+  "limited" -> P.Right E'Visibility'Limited+  "private" -> P.Right E'Visibility'Private+  s -> P.Left $ "toE'Visibility: enum parse failure: " P.++ P.show s+++-- ** E'Whitespace++-- | Enum of 'Text'+data E'Whitespace+  = E'Whitespace'Ignore_all -- ^ @"ignore-all"@+  | E'Whitespace'Ignore_change -- ^ @"ignore-change"@+  | E'Whitespace'Ignore_eol -- ^ @"ignore-eol"@+  | E'Whitespace'Show_all -- ^ @"show-all"@+  deriving (P.Show, P.Eq, P.Typeable, P.Ord, P.Bounded, P.Enum)++instance A.ToJSON E'Whitespace where toJSON = A.toJSON . fromE'Whitespace+instance A.FromJSON E'Whitespace where parseJSON o = P.either P.fail (pure . P.id) . toE'Whitespace =<< A.parseJSON o+instance WH.ToHttpApiData E'Whitespace where toQueryParam = WH.toQueryParam . fromE'Whitespace+instance WH.FromHttpApiData E'Whitespace where parseQueryParam o = WH.parseQueryParam o >>= P.left T.pack . toE'Whitespace+instance MimeRender MimeMultipartFormData E'Whitespace where mimeRender _ = mimeRenderDefaultMultipartFormData++-- | unwrap 'E'Whitespace' enum+fromE'Whitespace :: E'Whitespace -> Text+fromE'Whitespace = \case+  E'Whitespace'Ignore_all -> "ignore-all"+  E'Whitespace'Ignore_change -> "ignore-change"+  E'Whitespace'Ignore_eol -> "ignore-eol"+  E'Whitespace'Show_all -> "show-all"++-- | parse 'E'Whitespace' enum+toE'Whitespace :: Text -> P.Either String E'Whitespace+toE'Whitespace = \case+  "ignore-all" -> P.Right E'Whitespace'Ignore_all+  "ignore-change" -> P.Right E'Whitespace'Ignore_change+  "ignore-eol" -> P.Right E'Whitespace'Ignore_eol+  "show-all" -> P.Right E'Whitespace'Show_all+  s -> P.Left $ "toE'Whitespace: enum parse failure: " P.++ P.show s+++-- * Auth Methods++-- ** AuthApiKeyAccessToken+data AuthApiKeyAccessToken =+  AuthApiKeyAccessToken Text -- ^ secret+  deriving (P.Eq, P.Show, P.Typeable)++instance AuthMethod AuthApiKeyAccessToken where+  applyAuthMethod _ a@(AuthApiKeyAccessToken secret) req =+    P.pure $+    if (P.typeOf a `P.elem` rAuthTypes req)+      then req `setQuery` toQuery ("access_token", Just secret)+           & L.over rAuthTypesL (P.filter (/= P.typeOf a))+      else req++-- ** AuthApiKeyAuthorizationHeaderToken+data AuthApiKeyAuthorizationHeaderToken =+  AuthApiKeyAuthorizationHeaderToken Text -- ^ secret+  deriving (P.Eq, P.Show, P.Typeable)++instance AuthMethod AuthApiKeyAuthorizationHeaderToken where+  applyAuthMethod _ a@(AuthApiKeyAuthorizationHeaderToken secret) req =+    P.pure $+    if (P.typeOf a `P.elem` rAuthTypes req)+      then req `setHeader` toHeader ("Authorization", secret)+           & L.over rAuthTypesL (P.filter (/= P.typeOf a))+      else req++-- ** AuthBasicBasicAuth+data AuthBasicBasicAuth =+  AuthBasicBasicAuth B.ByteString B.ByteString -- ^ username password+  deriving (P.Eq, P.Show, P.Typeable)++instance AuthMethod AuthBasicBasicAuth where+  applyAuthMethod _ a@(AuthBasicBasicAuth user pw) req =+    P.pure $+    if (P.typeOf a `P.elem` rAuthTypes req)+      then req `setHeader` toHeader ("Authorization", T.decodeUtf8 cred)+           & L.over rAuthTypesL (P.filter (/= P.typeOf a))+      else req+    where cred = BC.append "Basic " (B64.encode $ BC.concat [ user, ":", pw ])++-- ** AuthApiKeySudoHeader+data AuthApiKeySudoHeader =+  AuthApiKeySudoHeader Text -- ^ secret+  deriving (P.Eq, P.Show, P.Typeable)++instance AuthMethod AuthApiKeySudoHeader where+  applyAuthMethod _ a@(AuthApiKeySudoHeader secret) req =+    P.pure $+    if (P.typeOf a `P.elem` rAuthTypes req)+      then req `setHeader` toHeader ("Sudo", secret)+           & L.over rAuthTypesL (P.filter (/= P.typeOf a))+      else req++-- ** AuthApiKeySudoParam+data AuthApiKeySudoParam =+  AuthApiKeySudoParam Text -- ^ secret+  deriving (P.Eq, P.Show, P.Typeable)++instance AuthMethod AuthApiKeySudoParam where+  applyAuthMethod _ a@(AuthApiKeySudoParam secret) req =+    P.pure $+    if (P.typeOf a `P.elem` rAuthTypes req)+      then req `setQuery` toQuery ("sudo", Just secret)+           & L.over rAuthTypesL (P.filter (/= P.typeOf a))+      else req++-- ** AuthApiKeyTOTPHeader+data AuthApiKeyTOTPHeader =+  AuthApiKeyTOTPHeader Text -- ^ secret+  deriving (P.Eq, P.Show, P.Typeable)++instance AuthMethod AuthApiKeyTOTPHeader where+  applyAuthMethod _ a@(AuthApiKeyTOTPHeader secret) req =+    P.pure $+    if (P.typeOf a `P.elem` rAuthTypes req)+      then req `setHeader` toHeader ("X-GITEA-OTP", secret)+           & L.over rAuthTypesL (P.filter (/= P.typeOf a))+      else req++-- ** AuthApiKeyToken+data AuthApiKeyToken =+  AuthApiKeyToken Text -- ^ secret+  deriving (P.Eq, P.Show, P.Typeable)++instance AuthMethod AuthApiKeyToken where+  applyAuthMethod _ a@(AuthApiKeyToken secret) req =+    P.pure $+    if (P.typeOf a `P.elem` rAuthTypes req)+      then req `setQuery` toQuery ("token", Just secret)+           & L.over rAuthTypesL (P.filter (/= P.typeOf a))+      else req++
+ lib/Gitea/ModelLens.hs view
@@ -0,0 +1,5849 @@+{-+   Gitea API.++   This documentation describes the Gitea API.++   OpenAPI Version: 3.0.1+   Gitea API. API version: 1.19.4+   Generated by OpenAPI Generator (https://openapi-generator.tech)+-}++{-|+Module : Gitea.Lens+-}++{-# LANGUAGE KindSignatures #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE RankNTypes #-}+{-# LANGUAGE RecordWildCards #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing -fno-warn-unused-matches -fno-warn-unused-binds -fno-warn-unused-imports #-}++module Gitea.ModelLens where++import qualified Data.Aeson as A+import qualified Data.ByteString.Lazy as BL+import qualified Data.Data as P (Data, Typeable)+import qualified Data.Map as Map+import qualified Data.Set as Set+import qualified Data.Time as TI++import Data.Text (Text)++import Prelude (($), (.),(<$>),(<*>),(=<<),Maybe(..),Bool(..),Char,Double,FilePath,Float,Int,Integer,String,fmap,undefined,mempty,maybe,pure,Monad,Applicative,Functor)+import qualified Prelude as P++import Gitea.Model+import Gitea.Core+++-- * APIError++-- | 'aPIErrorMessage' Lens+aPIErrorMessageL :: Lens_' APIError (Maybe Text)+aPIErrorMessageL f APIError{..} = (\aPIErrorMessage -> APIError { aPIErrorMessage, ..} ) <$> f aPIErrorMessage+{-# INLINE aPIErrorMessageL #-}++-- | 'aPIErrorUrl' Lens+aPIErrorUrlL :: Lens_' APIError (Maybe Text)+aPIErrorUrlL f APIError{..} = (\aPIErrorUrl -> APIError { aPIErrorUrl, ..} ) <$> f aPIErrorUrl+{-# INLINE aPIErrorUrlL #-}++++-- * AccessToken++-- | 'accessTokenId' Lens+accessTokenIdL :: Lens_' AccessToken (Maybe Integer)+accessTokenIdL f AccessToken{..} = (\accessTokenId -> AccessToken { accessTokenId, ..} ) <$> f accessTokenId+{-# INLINE accessTokenIdL #-}++-- | 'accessTokenName' Lens+accessTokenNameL :: Lens_' AccessToken (Maybe Text)+accessTokenNameL f AccessToken{..} = (\accessTokenName -> AccessToken { accessTokenName, ..} ) <$> f accessTokenName+{-# INLINE accessTokenNameL #-}++-- | 'accessTokenScopes' Lens+accessTokenScopesL :: Lens_' AccessToken (Maybe [Text])+accessTokenScopesL f AccessToken{..} = (\accessTokenScopes -> AccessToken { accessTokenScopes, ..} ) <$> f accessTokenScopes+{-# INLINE accessTokenScopesL #-}++-- | 'accessTokenSha1' Lens+accessTokenSha1L :: Lens_' AccessToken (Maybe Text)+accessTokenSha1L f AccessToken{..} = (\accessTokenSha1 -> AccessToken { accessTokenSha1, ..} ) <$> f accessTokenSha1+{-# INLINE accessTokenSha1L #-}++-- | 'accessTokenTokenLastEight' Lens+accessTokenTokenLastEightL :: Lens_' AccessToken (Maybe Text)+accessTokenTokenLastEightL f AccessToken{..} = (\accessTokenTokenLastEight -> AccessToken { accessTokenTokenLastEight, ..} ) <$> f accessTokenTokenLastEight+{-# INLINE accessTokenTokenLastEightL #-}++++-- * ActivityPub++-- | 'activityPubContext' Lens+activityPubContextL :: Lens_' ActivityPub (Maybe Text)+activityPubContextL f ActivityPub{..} = (\activityPubContext -> ActivityPub { activityPubContext, ..} ) <$> f activityPubContext+{-# INLINE activityPubContextL #-}++++-- * AddCollaboratorOption++-- | 'addCollaboratorOptionPermission' Lens+addCollaboratorOptionPermissionL :: Lens_' AddCollaboratorOption (Maybe Text)+addCollaboratorOptionPermissionL f AddCollaboratorOption{..} = (\addCollaboratorOptionPermission -> AddCollaboratorOption { addCollaboratorOptionPermission, ..} ) <$> f addCollaboratorOptionPermission+{-# INLINE addCollaboratorOptionPermissionL #-}++++-- * AddTimeOption++-- | 'addTimeOptionCreated' Lens+addTimeOptionCreatedL :: Lens_' AddTimeOption (Maybe DateTime)+addTimeOptionCreatedL f AddTimeOption{..} = (\addTimeOptionCreated -> AddTimeOption { addTimeOptionCreated, ..} ) <$> f addTimeOptionCreated+{-# INLINE addTimeOptionCreatedL #-}++-- | 'addTimeOptionTime' Lens+addTimeOptionTimeL :: Lens_' AddTimeOption (Integer)+addTimeOptionTimeL f AddTimeOption{..} = (\addTimeOptionTime -> AddTimeOption { addTimeOptionTime, ..} ) <$> f addTimeOptionTime+{-# INLINE addTimeOptionTimeL #-}++-- | 'addTimeOptionUserName' Lens+addTimeOptionUserNameL :: Lens_' AddTimeOption (Maybe Text)+addTimeOptionUserNameL f AddTimeOption{..} = (\addTimeOptionUserName -> AddTimeOption { addTimeOptionUserName, ..} ) <$> f addTimeOptionUserName+{-# INLINE addTimeOptionUserNameL #-}++++-- * AnnotatedTag++-- | 'annotatedTagMessage' Lens+annotatedTagMessageL :: Lens_' AnnotatedTag (Maybe Text)+annotatedTagMessageL f AnnotatedTag{..} = (\annotatedTagMessage -> AnnotatedTag { annotatedTagMessage, ..} ) <$> f annotatedTagMessage+{-# INLINE annotatedTagMessageL #-}++-- | 'annotatedTagObject' Lens+annotatedTagObjectL :: Lens_' AnnotatedTag (Maybe AnnotatedTagObject)+annotatedTagObjectL f AnnotatedTag{..} = (\annotatedTagObject -> AnnotatedTag { annotatedTagObject, ..} ) <$> f annotatedTagObject+{-# INLINE annotatedTagObjectL #-}++-- | 'annotatedTagSha' Lens+annotatedTagShaL :: Lens_' AnnotatedTag (Maybe Text)+annotatedTagShaL f AnnotatedTag{..} = (\annotatedTagSha -> AnnotatedTag { annotatedTagSha, ..} ) <$> f annotatedTagSha+{-# INLINE annotatedTagShaL #-}++-- | 'annotatedTagTag' Lens+annotatedTagTagL :: Lens_' AnnotatedTag (Maybe Text)+annotatedTagTagL f AnnotatedTag{..} = (\annotatedTagTag -> AnnotatedTag { annotatedTagTag, ..} ) <$> f annotatedTagTag+{-# INLINE annotatedTagTagL #-}++-- | 'annotatedTagTagger' Lens+annotatedTagTaggerL :: Lens_' AnnotatedTag (Maybe CommitUser)+annotatedTagTaggerL f AnnotatedTag{..} = (\annotatedTagTagger -> AnnotatedTag { annotatedTagTagger, ..} ) <$> f annotatedTagTagger+{-# INLINE annotatedTagTaggerL #-}++-- | 'annotatedTagUrl' Lens+annotatedTagUrlL :: Lens_' AnnotatedTag (Maybe Text)+annotatedTagUrlL f AnnotatedTag{..} = (\annotatedTagUrl -> AnnotatedTag { annotatedTagUrl, ..} ) <$> f annotatedTagUrl+{-# INLINE annotatedTagUrlL #-}++-- | 'annotatedTagVerification' Lens+annotatedTagVerificationL :: Lens_' AnnotatedTag (Maybe PayloadCommitVerification)+annotatedTagVerificationL f AnnotatedTag{..} = (\annotatedTagVerification -> AnnotatedTag { annotatedTagVerification, ..} ) <$> f annotatedTagVerification+{-# INLINE annotatedTagVerificationL #-}++++-- * AnnotatedTagObject++-- | 'annotatedTagObjectSha' Lens+annotatedTagObjectShaL :: Lens_' AnnotatedTagObject (Maybe Text)+annotatedTagObjectShaL f AnnotatedTagObject{..} = (\annotatedTagObjectSha -> AnnotatedTagObject { annotatedTagObjectSha, ..} ) <$> f annotatedTagObjectSha+{-# INLINE annotatedTagObjectShaL #-}++-- | 'annotatedTagObjectType' Lens+annotatedTagObjectTypeL :: Lens_' AnnotatedTagObject (Maybe Text)+annotatedTagObjectTypeL f AnnotatedTagObject{..} = (\annotatedTagObjectType -> AnnotatedTagObject { annotatedTagObjectType, ..} ) <$> f annotatedTagObjectType+{-# INLINE annotatedTagObjectTypeL #-}++-- | 'annotatedTagObjectUrl' Lens+annotatedTagObjectUrlL :: Lens_' AnnotatedTagObject (Maybe Text)+annotatedTagObjectUrlL f AnnotatedTagObject{..} = (\annotatedTagObjectUrl -> AnnotatedTagObject { annotatedTagObjectUrl, ..} ) <$> f annotatedTagObjectUrl+{-# INLINE annotatedTagObjectUrlL #-}++++-- * Attachment++-- | 'attachmentBrowserDownloadUrl' Lens+attachmentBrowserDownloadUrlL :: Lens_' Attachment (Maybe Text)+attachmentBrowserDownloadUrlL f Attachment{..} = (\attachmentBrowserDownloadUrl -> Attachment { attachmentBrowserDownloadUrl, ..} ) <$> f attachmentBrowserDownloadUrl+{-# INLINE attachmentBrowserDownloadUrlL #-}++-- | 'attachmentCreatedAt' Lens+attachmentCreatedAtL :: Lens_' Attachment (Maybe DateTime)+attachmentCreatedAtL f Attachment{..} = (\attachmentCreatedAt -> Attachment { attachmentCreatedAt, ..} ) <$> f attachmentCreatedAt+{-# INLINE attachmentCreatedAtL #-}++-- | 'attachmentDownloadCount' Lens+attachmentDownloadCountL :: Lens_' Attachment (Maybe Integer)+attachmentDownloadCountL f Attachment{..} = (\attachmentDownloadCount -> Attachment { attachmentDownloadCount, ..} ) <$> f attachmentDownloadCount+{-# INLINE attachmentDownloadCountL #-}++-- | 'attachmentId' Lens+attachmentIdL :: Lens_' Attachment (Maybe Integer)+attachmentIdL f Attachment{..} = (\attachmentId -> Attachment { attachmentId, ..} ) <$> f attachmentId+{-# INLINE attachmentIdL #-}++-- | 'attachmentName' Lens+attachmentNameL :: Lens_' Attachment (Maybe Text)+attachmentNameL f Attachment{..} = (\attachmentName -> Attachment { attachmentName, ..} ) <$> f attachmentName+{-# INLINE attachmentNameL #-}++-- | 'attachmentSize' Lens+attachmentSizeL :: Lens_' Attachment (Maybe Integer)+attachmentSizeL f Attachment{..} = (\attachmentSize -> Attachment { attachmentSize, ..} ) <$> f attachmentSize+{-# INLINE attachmentSizeL #-}++-- | 'attachmentUuid' Lens+attachmentUuidL :: Lens_' Attachment (Maybe Text)+attachmentUuidL f Attachment{..} = (\attachmentUuid -> Attachment { attachmentUuid, ..} ) <$> f attachmentUuid+{-# INLINE attachmentUuidL #-}++++-- * Branch++-- | 'branchCommit' Lens+branchCommitL :: Lens_' Branch (Maybe PayloadCommit)+branchCommitL f Branch{..} = (\branchCommit -> Branch { branchCommit, ..} ) <$> f branchCommit+{-# INLINE branchCommitL #-}++-- | 'branchEffectiveBranchProtectionName' Lens+branchEffectiveBranchProtectionNameL :: Lens_' Branch (Maybe Text)+branchEffectiveBranchProtectionNameL f Branch{..} = (\branchEffectiveBranchProtectionName -> Branch { branchEffectiveBranchProtectionName, ..} ) <$> f branchEffectiveBranchProtectionName+{-# INLINE branchEffectiveBranchProtectionNameL #-}++-- | 'branchEnableStatusCheck' Lens+branchEnableStatusCheckL :: Lens_' Branch (Maybe Bool)+branchEnableStatusCheckL f Branch{..} = (\branchEnableStatusCheck -> Branch { branchEnableStatusCheck, ..} ) <$> f branchEnableStatusCheck+{-# INLINE branchEnableStatusCheckL #-}++-- | 'branchName' Lens+branchNameL :: Lens_' Branch (Maybe Text)+branchNameL f Branch{..} = (\branchName -> Branch { branchName, ..} ) <$> f branchName+{-# INLINE branchNameL #-}++-- | 'branchProtected' Lens+branchProtectedL :: Lens_' Branch (Maybe Bool)+branchProtectedL f Branch{..} = (\branchProtected -> Branch { branchProtected, ..} ) <$> f branchProtected+{-# INLINE branchProtectedL #-}++-- | 'branchRequiredApprovals' Lens+branchRequiredApprovalsL :: Lens_' Branch (Maybe Integer)+branchRequiredApprovalsL f Branch{..} = (\branchRequiredApprovals -> Branch { branchRequiredApprovals, ..} ) <$> f branchRequiredApprovals+{-# INLINE branchRequiredApprovalsL #-}++-- | 'branchStatusCheckContexts' Lens+branchStatusCheckContextsL :: Lens_' Branch (Maybe [Text])+branchStatusCheckContextsL f Branch{..} = (\branchStatusCheckContexts -> Branch { branchStatusCheckContexts, ..} ) <$> f branchStatusCheckContexts+{-# INLINE branchStatusCheckContextsL #-}++-- | 'branchUserCanMerge' Lens+branchUserCanMergeL :: Lens_' Branch (Maybe Bool)+branchUserCanMergeL f Branch{..} = (\branchUserCanMerge -> Branch { branchUserCanMerge, ..} ) <$> f branchUserCanMerge+{-# INLINE branchUserCanMergeL #-}++-- | 'branchUserCanPush' Lens+branchUserCanPushL :: Lens_' Branch (Maybe Bool)+branchUserCanPushL f Branch{..} = (\branchUserCanPush -> Branch { branchUserCanPush, ..} ) <$> f branchUserCanPush+{-# INLINE branchUserCanPushL #-}++++-- * BranchProtection++-- | 'branchProtectionApprovalsWhitelistTeams' Lens+branchProtectionApprovalsWhitelistTeamsL :: Lens_' BranchProtection (Maybe [Text])+branchProtectionApprovalsWhitelistTeamsL f BranchProtection{..} = (\branchProtectionApprovalsWhitelistTeams -> BranchProtection { branchProtectionApprovalsWhitelistTeams, ..} ) <$> f branchProtectionApprovalsWhitelistTeams+{-# INLINE branchProtectionApprovalsWhitelistTeamsL #-}++-- | 'branchProtectionApprovalsWhitelistUsername' Lens+branchProtectionApprovalsWhitelistUsernameL :: Lens_' BranchProtection (Maybe [Text])+branchProtectionApprovalsWhitelistUsernameL f BranchProtection{..} = (\branchProtectionApprovalsWhitelistUsername -> BranchProtection { branchProtectionApprovalsWhitelistUsername, ..} ) <$> f branchProtectionApprovalsWhitelistUsername+{-# INLINE branchProtectionApprovalsWhitelistUsernameL #-}++-- | 'branchProtectionBlockOnOfficialReviewRequests' Lens+branchProtectionBlockOnOfficialReviewRequestsL :: Lens_' BranchProtection (Maybe Bool)+branchProtectionBlockOnOfficialReviewRequestsL f BranchProtection{..} = (\branchProtectionBlockOnOfficialReviewRequests -> BranchProtection { branchProtectionBlockOnOfficialReviewRequests, ..} ) <$> f branchProtectionBlockOnOfficialReviewRequests+{-# INLINE branchProtectionBlockOnOfficialReviewRequestsL #-}++-- | 'branchProtectionBlockOnOutdatedBranch' Lens+branchProtectionBlockOnOutdatedBranchL :: Lens_' BranchProtection (Maybe Bool)+branchProtectionBlockOnOutdatedBranchL f BranchProtection{..} = (\branchProtectionBlockOnOutdatedBranch -> BranchProtection { branchProtectionBlockOnOutdatedBranch, ..} ) <$> f branchProtectionBlockOnOutdatedBranch+{-# INLINE branchProtectionBlockOnOutdatedBranchL #-}++-- | 'branchProtectionBlockOnRejectedReviews' Lens+branchProtectionBlockOnRejectedReviewsL :: Lens_' BranchProtection (Maybe Bool)+branchProtectionBlockOnRejectedReviewsL f BranchProtection{..} = (\branchProtectionBlockOnRejectedReviews -> BranchProtection { branchProtectionBlockOnRejectedReviews, ..} ) <$> f branchProtectionBlockOnRejectedReviews+{-# INLINE branchProtectionBlockOnRejectedReviewsL #-}++-- | 'branchProtectionBranchName' Lens+branchProtectionBranchNameL :: Lens_' BranchProtection (Maybe Text)+branchProtectionBranchNameL f BranchProtection{..} = (\branchProtectionBranchName -> BranchProtection { branchProtectionBranchName, ..} ) <$> f branchProtectionBranchName+{-# INLINE branchProtectionBranchNameL #-}++-- | 'branchProtectionCreatedAt' Lens+branchProtectionCreatedAtL :: Lens_' BranchProtection (Maybe DateTime)+branchProtectionCreatedAtL f BranchProtection{..} = (\branchProtectionCreatedAt -> BranchProtection { branchProtectionCreatedAt, ..} ) <$> f branchProtectionCreatedAt+{-# INLINE branchProtectionCreatedAtL #-}++-- | 'branchProtectionDismissStaleApprovals' Lens+branchProtectionDismissStaleApprovalsL :: Lens_' BranchProtection (Maybe Bool)+branchProtectionDismissStaleApprovalsL f BranchProtection{..} = (\branchProtectionDismissStaleApprovals -> BranchProtection { branchProtectionDismissStaleApprovals, ..} ) <$> f branchProtectionDismissStaleApprovals+{-# INLINE branchProtectionDismissStaleApprovalsL #-}++-- | 'branchProtectionEnableApprovalsWhitelist' Lens+branchProtectionEnableApprovalsWhitelistL :: Lens_' BranchProtection (Maybe Bool)+branchProtectionEnableApprovalsWhitelistL f BranchProtection{..} = (\branchProtectionEnableApprovalsWhitelist -> BranchProtection { branchProtectionEnableApprovalsWhitelist, ..} ) <$> f branchProtectionEnableApprovalsWhitelist+{-# INLINE branchProtectionEnableApprovalsWhitelistL #-}++-- | 'branchProtectionEnableMergeWhitelist' Lens+branchProtectionEnableMergeWhitelistL :: Lens_' BranchProtection (Maybe Bool)+branchProtectionEnableMergeWhitelistL f BranchProtection{..} = (\branchProtectionEnableMergeWhitelist -> BranchProtection { branchProtectionEnableMergeWhitelist, ..} ) <$> f branchProtectionEnableMergeWhitelist+{-# INLINE branchProtectionEnableMergeWhitelistL #-}++-- | 'branchProtectionEnablePush' Lens+branchProtectionEnablePushL :: Lens_' BranchProtection (Maybe Bool)+branchProtectionEnablePushL f BranchProtection{..} = (\branchProtectionEnablePush -> BranchProtection { branchProtectionEnablePush, ..} ) <$> f branchProtectionEnablePush+{-# INLINE branchProtectionEnablePushL #-}++-- | 'branchProtectionEnablePushWhitelist' Lens+branchProtectionEnablePushWhitelistL :: Lens_' BranchProtection (Maybe Bool)+branchProtectionEnablePushWhitelistL f BranchProtection{..} = (\branchProtectionEnablePushWhitelist -> BranchProtection { branchProtectionEnablePushWhitelist, ..} ) <$> f branchProtectionEnablePushWhitelist+{-# INLINE branchProtectionEnablePushWhitelistL #-}++-- | 'branchProtectionEnableStatusCheck' Lens+branchProtectionEnableStatusCheckL :: Lens_' BranchProtection (Maybe Bool)+branchProtectionEnableStatusCheckL f BranchProtection{..} = (\branchProtectionEnableStatusCheck -> BranchProtection { branchProtectionEnableStatusCheck, ..} ) <$> f branchProtectionEnableStatusCheck+{-# INLINE branchProtectionEnableStatusCheckL #-}++-- | 'branchProtectionMergeWhitelistTeams' Lens+branchProtectionMergeWhitelistTeamsL :: Lens_' BranchProtection (Maybe [Text])+branchProtectionMergeWhitelistTeamsL f BranchProtection{..} = (\branchProtectionMergeWhitelistTeams -> BranchProtection { branchProtectionMergeWhitelistTeams, ..} ) <$> f branchProtectionMergeWhitelistTeams+{-# INLINE branchProtectionMergeWhitelistTeamsL #-}++-- | 'branchProtectionMergeWhitelistUsernames' Lens+branchProtectionMergeWhitelistUsernamesL :: Lens_' BranchProtection (Maybe [Text])+branchProtectionMergeWhitelistUsernamesL f BranchProtection{..} = (\branchProtectionMergeWhitelistUsernames -> BranchProtection { branchProtectionMergeWhitelistUsernames, ..} ) <$> f branchProtectionMergeWhitelistUsernames+{-# INLINE branchProtectionMergeWhitelistUsernamesL #-}++-- | 'branchProtectionProtectedFilePatterns' Lens+branchProtectionProtectedFilePatternsL :: Lens_' BranchProtection (Maybe Text)+branchProtectionProtectedFilePatternsL f BranchProtection{..} = (\branchProtectionProtectedFilePatterns -> BranchProtection { branchProtectionProtectedFilePatterns, ..} ) <$> f branchProtectionProtectedFilePatterns+{-# INLINE branchProtectionProtectedFilePatternsL #-}++-- | 'branchProtectionPushWhitelistDeployKeys' Lens+branchProtectionPushWhitelistDeployKeysL :: Lens_' BranchProtection (Maybe Bool)+branchProtectionPushWhitelistDeployKeysL f BranchProtection{..} = (\branchProtectionPushWhitelistDeployKeys -> BranchProtection { branchProtectionPushWhitelistDeployKeys, ..} ) <$> f branchProtectionPushWhitelistDeployKeys+{-# INLINE branchProtectionPushWhitelistDeployKeysL #-}++-- | 'branchProtectionPushWhitelistTeams' Lens+branchProtectionPushWhitelistTeamsL :: Lens_' BranchProtection (Maybe [Text])+branchProtectionPushWhitelistTeamsL f BranchProtection{..} = (\branchProtectionPushWhitelistTeams -> BranchProtection { branchProtectionPushWhitelistTeams, ..} ) <$> f branchProtectionPushWhitelistTeams+{-# INLINE branchProtectionPushWhitelistTeamsL #-}++-- | 'branchProtectionPushWhitelistUsernames' Lens+branchProtectionPushWhitelistUsernamesL :: Lens_' BranchProtection (Maybe [Text])+branchProtectionPushWhitelistUsernamesL f BranchProtection{..} = (\branchProtectionPushWhitelistUsernames -> BranchProtection { branchProtectionPushWhitelistUsernames, ..} ) <$> f branchProtectionPushWhitelistUsernames+{-# INLINE branchProtectionPushWhitelistUsernamesL #-}++-- | 'branchProtectionRequireSignedCommits' Lens+branchProtectionRequireSignedCommitsL :: Lens_' BranchProtection (Maybe Bool)+branchProtectionRequireSignedCommitsL f BranchProtection{..} = (\branchProtectionRequireSignedCommits -> BranchProtection { branchProtectionRequireSignedCommits, ..} ) <$> f branchProtectionRequireSignedCommits+{-# INLINE branchProtectionRequireSignedCommitsL #-}++-- | 'branchProtectionRequiredApprovals' Lens+branchProtectionRequiredApprovalsL :: Lens_' BranchProtection (Maybe Integer)+branchProtectionRequiredApprovalsL f BranchProtection{..} = (\branchProtectionRequiredApprovals -> BranchProtection { branchProtectionRequiredApprovals, ..} ) <$> f branchProtectionRequiredApprovals+{-# INLINE branchProtectionRequiredApprovalsL #-}++-- | 'branchProtectionRuleName' Lens+branchProtectionRuleNameL :: Lens_' BranchProtection (Maybe Text)+branchProtectionRuleNameL f BranchProtection{..} = (\branchProtectionRuleName -> BranchProtection { branchProtectionRuleName, ..} ) <$> f branchProtectionRuleName+{-# INLINE branchProtectionRuleNameL #-}++-- | 'branchProtectionStatusCheckContexts' Lens+branchProtectionStatusCheckContextsL :: Lens_' BranchProtection (Maybe [Text])+branchProtectionStatusCheckContextsL f BranchProtection{..} = (\branchProtectionStatusCheckContexts -> BranchProtection { branchProtectionStatusCheckContexts, ..} ) <$> f branchProtectionStatusCheckContexts+{-# INLINE branchProtectionStatusCheckContextsL #-}++-- | 'branchProtectionUnprotectedFilePatterns' Lens+branchProtectionUnprotectedFilePatternsL :: Lens_' BranchProtection (Maybe Text)+branchProtectionUnprotectedFilePatternsL f BranchProtection{..} = (\branchProtectionUnprotectedFilePatterns -> BranchProtection { branchProtectionUnprotectedFilePatterns, ..} ) <$> f branchProtectionUnprotectedFilePatterns+{-# INLINE branchProtectionUnprotectedFilePatternsL #-}++-- | 'branchProtectionUpdatedAt' Lens+branchProtectionUpdatedAtL :: Lens_' BranchProtection (Maybe DateTime)+branchProtectionUpdatedAtL f BranchProtection{..} = (\branchProtectionUpdatedAt -> BranchProtection { branchProtectionUpdatedAt, ..} ) <$> f branchProtectionUpdatedAt+{-# INLINE branchProtectionUpdatedAtL #-}++++-- * ChangedFile++-- | 'changedFileAdditions' Lens+changedFileAdditionsL :: Lens_' ChangedFile (Maybe Integer)+changedFileAdditionsL f ChangedFile{..} = (\changedFileAdditions -> ChangedFile { changedFileAdditions, ..} ) <$> f changedFileAdditions+{-# INLINE changedFileAdditionsL #-}++-- | 'changedFileChanges' Lens+changedFileChangesL :: Lens_' ChangedFile (Maybe Integer)+changedFileChangesL f ChangedFile{..} = (\changedFileChanges -> ChangedFile { changedFileChanges, ..} ) <$> f changedFileChanges+{-# INLINE changedFileChangesL #-}++-- | 'changedFileContentsUrl' Lens+changedFileContentsUrlL :: Lens_' ChangedFile (Maybe Text)+changedFileContentsUrlL f ChangedFile{..} = (\changedFileContentsUrl -> ChangedFile { changedFileContentsUrl, ..} ) <$> f changedFileContentsUrl+{-# INLINE changedFileContentsUrlL #-}++-- | 'changedFileDeletions' Lens+changedFileDeletionsL :: Lens_' ChangedFile (Maybe Integer)+changedFileDeletionsL f ChangedFile{..} = (\changedFileDeletions -> ChangedFile { changedFileDeletions, ..} ) <$> f changedFileDeletions+{-# INLINE changedFileDeletionsL #-}++-- | 'changedFileFilename' Lens+changedFileFilenameL :: Lens_' ChangedFile (Maybe Text)+changedFileFilenameL f ChangedFile{..} = (\changedFileFilename -> ChangedFile { changedFileFilename, ..} ) <$> f changedFileFilename+{-# INLINE changedFileFilenameL #-}++-- | 'changedFileHtmlUrl' Lens+changedFileHtmlUrlL :: Lens_' ChangedFile (Maybe Text)+changedFileHtmlUrlL f ChangedFile{..} = (\changedFileHtmlUrl -> ChangedFile { changedFileHtmlUrl, ..} ) <$> f changedFileHtmlUrl+{-# INLINE changedFileHtmlUrlL #-}++-- | 'changedFilePreviousFilename' Lens+changedFilePreviousFilenameL :: Lens_' ChangedFile (Maybe Text)+changedFilePreviousFilenameL f ChangedFile{..} = (\changedFilePreviousFilename -> ChangedFile { changedFilePreviousFilename, ..} ) <$> f changedFilePreviousFilename+{-# INLINE changedFilePreviousFilenameL #-}++-- | 'changedFileRawUrl' Lens+changedFileRawUrlL :: Lens_' ChangedFile (Maybe Text)+changedFileRawUrlL f ChangedFile{..} = (\changedFileRawUrl -> ChangedFile { changedFileRawUrl, ..} ) <$> f changedFileRawUrl+{-# INLINE changedFileRawUrlL #-}++-- | 'changedFileStatus' Lens+changedFileStatusL :: Lens_' ChangedFile (Maybe Text)+changedFileStatusL f ChangedFile{..} = (\changedFileStatus -> ChangedFile { changedFileStatus, ..} ) <$> f changedFileStatus+{-# INLINE changedFileStatusL #-}++++-- * CombinedStatus++-- | 'combinedStatusCommitUrl' Lens+combinedStatusCommitUrlL :: Lens_' CombinedStatus (Maybe Text)+combinedStatusCommitUrlL f CombinedStatus{..} = (\combinedStatusCommitUrl -> CombinedStatus { combinedStatusCommitUrl, ..} ) <$> f combinedStatusCommitUrl+{-# INLINE combinedStatusCommitUrlL #-}++-- | 'combinedStatusRepository' Lens+combinedStatusRepositoryL :: Lens_' CombinedStatus (Maybe Repository)+combinedStatusRepositoryL f CombinedStatus{..} = (\combinedStatusRepository -> CombinedStatus { combinedStatusRepository, ..} ) <$> f combinedStatusRepository+{-# INLINE combinedStatusRepositoryL #-}++-- | 'combinedStatusSha' Lens+combinedStatusShaL :: Lens_' CombinedStatus (Maybe Text)+combinedStatusShaL f CombinedStatus{..} = (\combinedStatusSha -> CombinedStatus { combinedStatusSha, ..} ) <$> f combinedStatusSha+{-# INLINE combinedStatusShaL #-}++-- | 'combinedStatusState' Lens+combinedStatusStateL :: Lens_' CombinedStatus (Maybe Text)+combinedStatusStateL f CombinedStatus{..} = (\combinedStatusState -> CombinedStatus { combinedStatusState, ..} ) <$> f combinedStatusState+{-# INLINE combinedStatusStateL #-}++-- | 'combinedStatusStatuses' Lens+combinedStatusStatusesL :: Lens_' CombinedStatus (Maybe [CommitStatus])+combinedStatusStatusesL f CombinedStatus{..} = (\combinedStatusStatuses -> CombinedStatus { combinedStatusStatuses, ..} ) <$> f combinedStatusStatuses+{-# INLINE combinedStatusStatusesL #-}++-- | 'combinedStatusTotalCount' Lens+combinedStatusTotalCountL :: Lens_' CombinedStatus (Maybe Integer)+combinedStatusTotalCountL f CombinedStatus{..} = (\combinedStatusTotalCount -> CombinedStatus { combinedStatusTotalCount, ..} ) <$> f combinedStatusTotalCount+{-# INLINE combinedStatusTotalCountL #-}++-- | 'combinedStatusUrl' Lens+combinedStatusUrlL :: Lens_' CombinedStatus (Maybe Text)+combinedStatusUrlL f CombinedStatus{..} = (\combinedStatusUrl -> CombinedStatus { combinedStatusUrl, ..} ) <$> f combinedStatusUrl+{-# INLINE combinedStatusUrlL #-}++++-- * Comment++-- | 'commentAssets' Lens+commentAssetsL :: Lens_' Comment (Maybe [Attachment])+commentAssetsL f Comment{..} = (\commentAssets -> Comment { commentAssets, ..} ) <$> f commentAssets+{-# INLINE commentAssetsL #-}++-- | 'commentBody' Lens+commentBodyL :: Lens_' Comment (Maybe Text)+commentBodyL f Comment{..} = (\commentBody -> Comment { commentBody, ..} ) <$> f commentBody+{-# INLINE commentBodyL #-}++-- | 'commentCreatedAt' Lens+commentCreatedAtL :: Lens_' Comment (Maybe DateTime)+commentCreatedAtL f Comment{..} = (\commentCreatedAt -> Comment { commentCreatedAt, ..} ) <$> f commentCreatedAt+{-# INLINE commentCreatedAtL #-}++-- | 'commentHtmlUrl' Lens+commentHtmlUrlL :: Lens_' Comment (Maybe Text)+commentHtmlUrlL f Comment{..} = (\commentHtmlUrl -> Comment { commentHtmlUrl, ..} ) <$> f commentHtmlUrl+{-# INLINE commentHtmlUrlL #-}++-- | 'commentId' Lens+commentIdL :: Lens_' Comment (Maybe Integer)+commentIdL f Comment{..} = (\commentId -> Comment { commentId, ..} ) <$> f commentId+{-# INLINE commentIdL #-}++-- | 'commentIssueUrl' Lens+commentIssueUrlL :: Lens_' Comment (Maybe Text)+commentIssueUrlL f Comment{..} = (\commentIssueUrl -> Comment { commentIssueUrl, ..} ) <$> f commentIssueUrl+{-# INLINE commentIssueUrlL #-}++-- | 'commentOriginalAuthor' Lens+commentOriginalAuthorL :: Lens_' Comment (Maybe Text)+commentOriginalAuthorL f Comment{..} = (\commentOriginalAuthor -> Comment { commentOriginalAuthor, ..} ) <$> f commentOriginalAuthor+{-# INLINE commentOriginalAuthorL #-}++-- | 'commentOriginalAuthorId' Lens+commentOriginalAuthorIdL :: Lens_' Comment (Maybe Integer)+commentOriginalAuthorIdL f Comment{..} = (\commentOriginalAuthorId -> Comment { commentOriginalAuthorId, ..} ) <$> f commentOriginalAuthorId+{-# INLINE commentOriginalAuthorIdL #-}++-- | 'commentPullRequestUrl' Lens+commentPullRequestUrlL :: Lens_' Comment (Maybe Text)+commentPullRequestUrlL f Comment{..} = (\commentPullRequestUrl -> Comment { commentPullRequestUrl, ..} ) <$> f commentPullRequestUrl+{-# INLINE commentPullRequestUrlL #-}++-- | 'commentUpdatedAt' Lens+commentUpdatedAtL :: Lens_' Comment (Maybe DateTime)+commentUpdatedAtL f Comment{..} = (\commentUpdatedAt -> Comment { commentUpdatedAt, ..} ) <$> f commentUpdatedAt+{-# INLINE commentUpdatedAtL #-}++-- | 'commentUser' Lens+commentUserL :: Lens_' Comment (Maybe User)+commentUserL f Comment{..} = (\commentUser -> Comment { commentUser, ..} ) <$> f commentUser+{-# INLINE commentUserL #-}++++-- * Commit++-- | 'commitAuthor' Lens+commitAuthorL :: Lens_' Commit (Maybe User)+commitAuthorL f Commit{..} = (\commitAuthor -> Commit { commitAuthor, ..} ) <$> f commitAuthor+{-# INLINE commitAuthorL #-}++-- | 'commitCommit' Lens+commitCommitL :: Lens_' Commit (Maybe RepoCommit)+commitCommitL f Commit{..} = (\commitCommit -> Commit { commitCommit, ..} ) <$> f commitCommit+{-# INLINE commitCommitL #-}++-- | 'commitCommitter' Lens+commitCommitterL :: Lens_' Commit (Maybe User)+commitCommitterL f Commit{..} = (\commitCommitter -> Commit { commitCommitter, ..} ) <$> f commitCommitter+{-# INLINE commitCommitterL #-}++-- | 'commitCreated' Lens+commitCreatedL :: Lens_' Commit (Maybe DateTime)+commitCreatedL f Commit{..} = (\commitCreated -> Commit { commitCreated, ..} ) <$> f commitCreated+{-# INLINE commitCreatedL #-}++-- | 'commitFiles' Lens+commitFilesL :: Lens_' Commit (Maybe [CommitAffectedFiles])+commitFilesL f Commit{..} = (\commitFiles -> Commit { commitFiles, ..} ) <$> f commitFiles+{-# INLINE commitFilesL #-}++-- | 'commitHtmlUrl' Lens+commitHtmlUrlL :: Lens_' Commit (Maybe Text)+commitHtmlUrlL f Commit{..} = (\commitHtmlUrl -> Commit { commitHtmlUrl, ..} ) <$> f commitHtmlUrl+{-# INLINE commitHtmlUrlL #-}++-- | 'commitParents' Lens+commitParentsL :: Lens_' Commit (Maybe [CommitMeta])+commitParentsL f Commit{..} = (\commitParents -> Commit { commitParents, ..} ) <$> f commitParents+{-# INLINE commitParentsL #-}++-- | 'commitSha' Lens+commitShaL :: Lens_' Commit (Maybe Text)+commitShaL f Commit{..} = (\commitSha -> Commit { commitSha, ..} ) <$> f commitSha+{-# INLINE commitShaL #-}++-- | 'commitStats' Lens+commitStatsL :: Lens_' Commit (Maybe CommitStats)+commitStatsL f Commit{..} = (\commitStats -> Commit { commitStats, ..} ) <$> f commitStats+{-# INLINE commitStatsL #-}++-- | 'commitUrl' Lens+commitUrlL :: Lens_' Commit (Maybe Text)+commitUrlL f Commit{..} = (\commitUrl -> Commit { commitUrl, ..} ) <$> f commitUrl+{-# INLINE commitUrlL #-}++++-- * CommitAffectedFiles++-- | 'commitAffectedFilesFilename' Lens+commitAffectedFilesFilenameL :: Lens_' CommitAffectedFiles (Maybe Text)+commitAffectedFilesFilenameL f CommitAffectedFiles{..} = (\commitAffectedFilesFilename -> CommitAffectedFiles { commitAffectedFilesFilename, ..} ) <$> f commitAffectedFilesFilename+{-# INLINE commitAffectedFilesFilenameL #-}++++-- * CommitDateOptions++-- | 'commitDateOptionsAuthor' Lens+commitDateOptionsAuthorL :: Lens_' CommitDateOptions (Maybe DateTime)+commitDateOptionsAuthorL f CommitDateOptions{..} = (\commitDateOptionsAuthor -> CommitDateOptions { commitDateOptionsAuthor, ..} ) <$> f commitDateOptionsAuthor+{-# INLINE commitDateOptionsAuthorL #-}++-- | 'commitDateOptionsCommitter' Lens+commitDateOptionsCommitterL :: Lens_' CommitDateOptions (Maybe DateTime)+commitDateOptionsCommitterL f CommitDateOptions{..} = (\commitDateOptionsCommitter -> CommitDateOptions { commitDateOptionsCommitter, ..} ) <$> f commitDateOptionsCommitter+{-# INLINE commitDateOptionsCommitterL #-}++++-- * CommitMeta++-- | 'commitMetaCreated' Lens+commitMetaCreatedL :: Lens_' CommitMeta (Maybe DateTime)+commitMetaCreatedL f CommitMeta{..} = (\commitMetaCreated -> CommitMeta { commitMetaCreated, ..} ) <$> f commitMetaCreated+{-# INLINE commitMetaCreatedL #-}++-- | 'commitMetaSha' Lens+commitMetaShaL :: Lens_' CommitMeta (Maybe Text)+commitMetaShaL f CommitMeta{..} = (\commitMetaSha -> CommitMeta { commitMetaSha, ..} ) <$> f commitMetaSha+{-# INLINE commitMetaShaL #-}++-- | 'commitMetaUrl' Lens+commitMetaUrlL :: Lens_' CommitMeta (Maybe Text)+commitMetaUrlL f CommitMeta{..} = (\commitMetaUrl -> CommitMeta { commitMetaUrl, ..} ) <$> f commitMetaUrl+{-# INLINE commitMetaUrlL #-}++++-- * CommitStats++-- | 'commitStatsAdditions' Lens+commitStatsAdditionsL :: Lens_' CommitStats (Maybe Integer)+commitStatsAdditionsL f CommitStats{..} = (\commitStatsAdditions -> CommitStats { commitStatsAdditions, ..} ) <$> f commitStatsAdditions+{-# INLINE commitStatsAdditionsL #-}++-- | 'commitStatsDeletions' Lens+commitStatsDeletionsL :: Lens_' CommitStats (Maybe Integer)+commitStatsDeletionsL f CommitStats{..} = (\commitStatsDeletions -> CommitStats { commitStatsDeletions, ..} ) <$> f commitStatsDeletions+{-# INLINE commitStatsDeletionsL #-}++-- | 'commitStatsTotal' Lens+commitStatsTotalL :: Lens_' CommitStats (Maybe Integer)+commitStatsTotalL f CommitStats{..} = (\commitStatsTotal -> CommitStats { commitStatsTotal, ..} ) <$> f commitStatsTotal+{-# INLINE commitStatsTotalL #-}++++-- * CommitStatus++-- | 'commitStatusContext' Lens+commitStatusContextL :: Lens_' CommitStatus (Maybe Text)+commitStatusContextL f CommitStatus{..} = (\commitStatusContext -> CommitStatus { commitStatusContext, ..} ) <$> f commitStatusContext+{-# INLINE commitStatusContextL #-}++-- | 'commitStatusCreatedAt' Lens+commitStatusCreatedAtL :: Lens_' CommitStatus (Maybe DateTime)+commitStatusCreatedAtL f CommitStatus{..} = (\commitStatusCreatedAt -> CommitStatus { commitStatusCreatedAt, ..} ) <$> f commitStatusCreatedAt+{-# INLINE commitStatusCreatedAtL #-}++-- | 'commitStatusCreator' Lens+commitStatusCreatorL :: Lens_' CommitStatus (Maybe User)+commitStatusCreatorL f CommitStatus{..} = (\commitStatusCreator -> CommitStatus { commitStatusCreator, ..} ) <$> f commitStatusCreator+{-# INLINE commitStatusCreatorL #-}++-- | 'commitStatusDescription' Lens+commitStatusDescriptionL :: Lens_' CommitStatus (Maybe Text)+commitStatusDescriptionL f CommitStatus{..} = (\commitStatusDescription -> CommitStatus { commitStatusDescription, ..} ) <$> f commitStatusDescription+{-# INLINE commitStatusDescriptionL #-}++-- | 'commitStatusId' Lens+commitStatusIdL :: Lens_' CommitStatus (Maybe Integer)+commitStatusIdL f CommitStatus{..} = (\commitStatusId -> CommitStatus { commitStatusId, ..} ) <$> f commitStatusId+{-# INLINE commitStatusIdL #-}++-- | 'commitStatusStatus' Lens+commitStatusStatusL :: Lens_' CommitStatus (Maybe Text)+commitStatusStatusL f CommitStatus{..} = (\commitStatusStatus -> CommitStatus { commitStatusStatus, ..} ) <$> f commitStatusStatus+{-# INLINE commitStatusStatusL #-}++-- | 'commitStatusTargetUrl' Lens+commitStatusTargetUrlL :: Lens_' CommitStatus (Maybe Text)+commitStatusTargetUrlL f CommitStatus{..} = (\commitStatusTargetUrl -> CommitStatus { commitStatusTargetUrl, ..} ) <$> f commitStatusTargetUrl+{-# INLINE commitStatusTargetUrlL #-}++-- | 'commitStatusUpdatedAt' Lens+commitStatusUpdatedAtL :: Lens_' CommitStatus (Maybe DateTime)+commitStatusUpdatedAtL f CommitStatus{..} = (\commitStatusUpdatedAt -> CommitStatus { commitStatusUpdatedAt, ..} ) <$> f commitStatusUpdatedAt+{-# INLINE commitStatusUpdatedAtL #-}++-- | 'commitStatusUrl' Lens+commitStatusUrlL :: Lens_' CommitStatus (Maybe Text)+commitStatusUrlL f CommitStatus{..} = (\commitStatusUrl -> CommitStatus { commitStatusUrl, ..} ) <$> f commitStatusUrl+{-# INLINE commitStatusUrlL #-}++++-- * CommitUser++-- | 'commitUserDate' Lens+commitUserDateL :: Lens_' CommitUser (Maybe Text)+commitUserDateL f CommitUser{..} = (\commitUserDate -> CommitUser { commitUserDate, ..} ) <$> f commitUserDate+{-# INLINE commitUserDateL #-}++-- | 'commitUserEmail' Lens+commitUserEmailL :: Lens_' CommitUser (Maybe Text)+commitUserEmailL f CommitUser{..} = (\commitUserEmail -> CommitUser { commitUserEmail, ..} ) <$> f commitUserEmail+{-# INLINE commitUserEmailL #-}++-- | 'commitUserName' Lens+commitUserNameL :: Lens_' CommitUser (Maybe Text)+commitUserNameL f CommitUser{..} = (\commitUserName -> CommitUser { commitUserName, ..} ) <$> f commitUserName+{-# INLINE commitUserNameL #-}++++-- * ContentsResponse++-- | 'contentsResponseLinks' Lens+contentsResponseLinksL :: Lens_' ContentsResponse (Maybe FileLinksResponse)+contentsResponseLinksL f ContentsResponse{..} = (\contentsResponseLinks -> ContentsResponse { contentsResponseLinks, ..} ) <$> f contentsResponseLinks+{-# INLINE contentsResponseLinksL #-}++-- | 'contentsResponseContent' Lens+contentsResponseContentL :: Lens_' ContentsResponse (Maybe Text)+contentsResponseContentL f ContentsResponse{..} = (\contentsResponseContent -> ContentsResponse { contentsResponseContent, ..} ) <$> f contentsResponseContent+{-# INLINE contentsResponseContentL #-}++-- | 'contentsResponseDownloadUrl' Lens+contentsResponseDownloadUrlL :: Lens_' ContentsResponse (Maybe Text)+contentsResponseDownloadUrlL f ContentsResponse{..} = (\contentsResponseDownloadUrl -> ContentsResponse { contentsResponseDownloadUrl, ..} ) <$> f contentsResponseDownloadUrl+{-# INLINE contentsResponseDownloadUrlL #-}++-- | 'contentsResponseEncoding' Lens+contentsResponseEncodingL :: Lens_' ContentsResponse (Maybe Text)+contentsResponseEncodingL f ContentsResponse{..} = (\contentsResponseEncoding -> ContentsResponse { contentsResponseEncoding, ..} ) <$> f contentsResponseEncoding+{-# INLINE contentsResponseEncodingL #-}++-- | 'contentsResponseGitUrl' Lens+contentsResponseGitUrlL :: Lens_' ContentsResponse (Maybe Text)+contentsResponseGitUrlL f ContentsResponse{..} = (\contentsResponseGitUrl -> ContentsResponse { contentsResponseGitUrl, ..} ) <$> f contentsResponseGitUrl+{-# INLINE contentsResponseGitUrlL #-}++-- | 'contentsResponseHtmlUrl' Lens+contentsResponseHtmlUrlL :: Lens_' ContentsResponse (Maybe Text)+contentsResponseHtmlUrlL f ContentsResponse{..} = (\contentsResponseHtmlUrl -> ContentsResponse { contentsResponseHtmlUrl, ..} ) <$> f contentsResponseHtmlUrl+{-# INLINE contentsResponseHtmlUrlL #-}++-- | 'contentsResponseLastCommitSha' Lens+contentsResponseLastCommitShaL :: Lens_' ContentsResponse (Maybe Text)+contentsResponseLastCommitShaL f ContentsResponse{..} = (\contentsResponseLastCommitSha -> ContentsResponse { contentsResponseLastCommitSha, ..} ) <$> f contentsResponseLastCommitSha+{-# INLINE contentsResponseLastCommitShaL #-}++-- | 'contentsResponseName' Lens+contentsResponseNameL :: Lens_' ContentsResponse (Maybe Text)+contentsResponseNameL f ContentsResponse{..} = (\contentsResponseName -> ContentsResponse { contentsResponseName, ..} ) <$> f contentsResponseName+{-# INLINE contentsResponseNameL #-}++-- | 'contentsResponsePath' Lens+contentsResponsePathL :: Lens_' ContentsResponse (Maybe Text)+contentsResponsePathL f ContentsResponse{..} = (\contentsResponsePath -> ContentsResponse { contentsResponsePath, ..} ) <$> f contentsResponsePath+{-# INLINE contentsResponsePathL #-}++-- | 'contentsResponseSha' Lens+contentsResponseShaL :: Lens_' ContentsResponse (Maybe Text)+contentsResponseShaL f ContentsResponse{..} = (\contentsResponseSha -> ContentsResponse { contentsResponseSha, ..} ) <$> f contentsResponseSha+{-# INLINE contentsResponseShaL #-}++-- | 'contentsResponseSize' Lens+contentsResponseSizeL :: Lens_' ContentsResponse (Maybe Integer)+contentsResponseSizeL f ContentsResponse{..} = (\contentsResponseSize -> ContentsResponse { contentsResponseSize, ..} ) <$> f contentsResponseSize+{-# INLINE contentsResponseSizeL #-}++-- | 'contentsResponseSubmoduleGitUrl' Lens+contentsResponseSubmoduleGitUrlL :: Lens_' ContentsResponse (Maybe Text)+contentsResponseSubmoduleGitUrlL f ContentsResponse{..} = (\contentsResponseSubmoduleGitUrl -> ContentsResponse { contentsResponseSubmoduleGitUrl, ..} ) <$> f contentsResponseSubmoduleGitUrl+{-# INLINE contentsResponseSubmoduleGitUrlL #-}++-- | 'contentsResponseTarget' Lens+contentsResponseTargetL :: Lens_' ContentsResponse (Maybe Text)+contentsResponseTargetL f ContentsResponse{..} = (\contentsResponseTarget -> ContentsResponse { contentsResponseTarget, ..} ) <$> f contentsResponseTarget+{-# INLINE contentsResponseTargetL #-}++-- | 'contentsResponseType' Lens+contentsResponseTypeL :: Lens_' ContentsResponse (Maybe Text)+contentsResponseTypeL f ContentsResponse{..} = (\contentsResponseType -> ContentsResponse { contentsResponseType, ..} ) <$> f contentsResponseType+{-# INLINE contentsResponseTypeL #-}++-- | 'contentsResponseUrl' Lens+contentsResponseUrlL :: Lens_' ContentsResponse (Maybe Text)+contentsResponseUrlL f ContentsResponse{..} = (\contentsResponseUrl -> ContentsResponse { contentsResponseUrl, ..} ) <$> f contentsResponseUrl+{-# INLINE contentsResponseUrlL #-}++++-- * CreateAccessTokenOption++-- | 'createAccessTokenOptionName' Lens+createAccessTokenOptionNameL :: Lens_' CreateAccessTokenOption (Text)+createAccessTokenOptionNameL f CreateAccessTokenOption{..} = (\createAccessTokenOptionName -> CreateAccessTokenOption { createAccessTokenOptionName, ..} ) <$> f createAccessTokenOptionName+{-# INLINE createAccessTokenOptionNameL #-}++-- | 'createAccessTokenOptionScopes' Lens+createAccessTokenOptionScopesL :: Lens_' CreateAccessTokenOption (Maybe [Text])+createAccessTokenOptionScopesL f CreateAccessTokenOption{..} = (\createAccessTokenOptionScopes -> CreateAccessTokenOption { createAccessTokenOptionScopes, ..} ) <$> f createAccessTokenOptionScopes+{-# INLINE createAccessTokenOptionScopesL #-}++++-- * CreateBranchProtectionOption++-- | 'createBranchProtectionOptionApprovalsWhitelistTeams' Lens+createBranchProtectionOptionApprovalsWhitelistTeamsL :: Lens_' CreateBranchProtectionOption (Maybe [Text])+createBranchProtectionOptionApprovalsWhitelistTeamsL f CreateBranchProtectionOption{..} = (\createBranchProtectionOptionApprovalsWhitelistTeams -> CreateBranchProtectionOption { createBranchProtectionOptionApprovalsWhitelistTeams, ..} ) <$> f createBranchProtectionOptionApprovalsWhitelistTeams+{-# INLINE createBranchProtectionOptionApprovalsWhitelistTeamsL #-}++-- | 'createBranchProtectionOptionApprovalsWhitelistUsername' Lens+createBranchProtectionOptionApprovalsWhitelistUsernameL :: Lens_' CreateBranchProtectionOption (Maybe [Text])+createBranchProtectionOptionApprovalsWhitelistUsernameL f CreateBranchProtectionOption{..} = (\createBranchProtectionOptionApprovalsWhitelistUsername -> CreateBranchProtectionOption { createBranchProtectionOptionApprovalsWhitelistUsername, ..} ) <$> f createBranchProtectionOptionApprovalsWhitelistUsername+{-# INLINE createBranchProtectionOptionApprovalsWhitelistUsernameL #-}++-- | 'createBranchProtectionOptionBlockOnOfficialReviewRequests' Lens+createBranchProtectionOptionBlockOnOfficialReviewRequestsL :: Lens_' CreateBranchProtectionOption (Maybe Bool)+createBranchProtectionOptionBlockOnOfficialReviewRequestsL f CreateBranchProtectionOption{..} = (\createBranchProtectionOptionBlockOnOfficialReviewRequests -> CreateBranchProtectionOption { createBranchProtectionOptionBlockOnOfficialReviewRequests, ..} ) <$> f createBranchProtectionOptionBlockOnOfficialReviewRequests+{-# INLINE createBranchProtectionOptionBlockOnOfficialReviewRequestsL #-}++-- | 'createBranchProtectionOptionBlockOnOutdatedBranch' Lens+createBranchProtectionOptionBlockOnOutdatedBranchL :: Lens_' CreateBranchProtectionOption (Maybe Bool)+createBranchProtectionOptionBlockOnOutdatedBranchL f CreateBranchProtectionOption{..} = (\createBranchProtectionOptionBlockOnOutdatedBranch -> CreateBranchProtectionOption { createBranchProtectionOptionBlockOnOutdatedBranch, ..} ) <$> f createBranchProtectionOptionBlockOnOutdatedBranch+{-# INLINE createBranchProtectionOptionBlockOnOutdatedBranchL #-}++-- | 'createBranchProtectionOptionBlockOnRejectedReviews' Lens+createBranchProtectionOptionBlockOnRejectedReviewsL :: Lens_' CreateBranchProtectionOption (Maybe Bool)+createBranchProtectionOptionBlockOnRejectedReviewsL f CreateBranchProtectionOption{..} = (\createBranchProtectionOptionBlockOnRejectedReviews -> CreateBranchProtectionOption { createBranchProtectionOptionBlockOnRejectedReviews, ..} ) <$> f createBranchProtectionOptionBlockOnRejectedReviews+{-# INLINE createBranchProtectionOptionBlockOnRejectedReviewsL #-}++-- | 'createBranchProtectionOptionBranchName' Lens+createBranchProtectionOptionBranchNameL :: Lens_' CreateBranchProtectionOption (Maybe Text)+createBranchProtectionOptionBranchNameL f CreateBranchProtectionOption{..} = (\createBranchProtectionOptionBranchName -> CreateBranchProtectionOption { createBranchProtectionOptionBranchName, ..} ) <$> f createBranchProtectionOptionBranchName+{-# INLINE createBranchProtectionOptionBranchNameL #-}++-- | 'createBranchProtectionOptionDismissStaleApprovals' Lens+createBranchProtectionOptionDismissStaleApprovalsL :: Lens_' CreateBranchProtectionOption (Maybe Bool)+createBranchProtectionOptionDismissStaleApprovalsL f CreateBranchProtectionOption{..} = (\createBranchProtectionOptionDismissStaleApprovals -> CreateBranchProtectionOption { createBranchProtectionOptionDismissStaleApprovals, ..} ) <$> f createBranchProtectionOptionDismissStaleApprovals+{-# INLINE createBranchProtectionOptionDismissStaleApprovalsL #-}++-- | 'createBranchProtectionOptionEnableApprovalsWhitelist' Lens+createBranchProtectionOptionEnableApprovalsWhitelistL :: Lens_' CreateBranchProtectionOption (Maybe Bool)+createBranchProtectionOptionEnableApprovalsWhitelistL f CreateBranchProtectionOption{..} = (\createBranchProtectionOptionEnableApprovalsWhitelist -> CreateBranchProtectionOption { createBranchProtectionOptionEnableApprovalsWhitelist, ..} ) <$> f createBranchProtectionOptionEnableApprovalsWhitelist+{-# INLINE createBranchProtectionOptionEnableApprovalsWhitelistL #-}++-- | 'createBranchProtectionOptionEnableMergeWhitelist' Lens+createBranchProtectionOptionEnableMergeWhitelistL :: Lens_' CreateBranchProtectionOption (Maybe Bool)+createBranchProtectionOptionEnableMergeWhitelistL f CreateBranchProtectionOption{..} = (\createBranchProtectionOptionEnableMergeWhitelist -> CreateBranchProtectionOption { createBranchProtectionOptionEnableMergeWhitelist, ..} ) <$> f createBranchProtectionOptionEnableMergeWhitelist+{-# INLINE createBranchProtectionOptionEnableMergeWhitelistL #-}++-- | 'createBranchProtectionOptionEnablePush' Lens+createBranchProtectionOptionEnablePushL :: Lens_' CreateBranchProtectionOption (Maybe Bool)+createBranchProtectionOptionEnablePushL f CreateBranchProtectionOption{..} = (\createBranchProtectionOptionEnablePush -> CreateBranchProtectionOption { createBranchProtectionOptionEnablePush, ..} ) <$> f createBranchProtectionOptionEnablePush+{-# INLINE createBranchProtectionOptionEnablePushL #-}++-- | 'createBranchProtectionOptionEnablePushWhitelist' Lens+createBranchProtectionOptionEnablePushWhitelistL :: Lens_' CreateBranchProtectionOption (Maybe Bool)+createBranchProtectionOptionEnablePushWhitelistL f CreateBranchProtectionOption{..} = (\createBranchProtectionOptionEnablePushWhitelist -> CreateBranchProtectionOption { createBranchProtectionOptionEnablePushWhitelist, ..} ) <$> f createBranchProtectionOptionEnablePushWhitelist+{-# INLINE createBranchProtectionOptionEnablePushWhitelistL #-}++-- | 'createBranchProtectionOptionEnableStatusCheck' Lens+createBranchProtectionOptionEnableStatusCheckL :: Lens_' CreateBranchProtectionOption (Maybe Bool)+createBranchProtectionOptionEnableStatusCheckL f CreateBranchProtectionOption{..} = (\createBranchProtectionOptionEnableStatusCheck -> CreateBranchProtectionOption { createBranchProtectionOptionEnableStatusCheck, ..} ) <$> f createBranchProtectionOptionEnableStatusCheck+{-# INLINE createBranchProtectionOptionEnableStatusCheckL #-}++-- | 'createBranchProtectionOptionMergeWhitelistTeams' Lens+createBranchProtectionOptionMergeWhitelistTeamsL :: Lens_' CreateBranchProtectionOption (Maybe [Text])+createBranchProtectionOptionMergeWhitelistTeamsL f CreateBranchProtectionOption{..} = (\createBranchProtectionOptionMergeWhitelistTeams -> CreateBranchProtectionOption { createBranchProtectionOptionMergeWhitelistTeams, ..} ) <$> f createBranchProtectionOptionMergeWhitelistTeams+{-# INLINE createBranchProtectionOptionMergeWhitelistTeamsL #-}++-- | 'createBranchProtectionOptionMergeWhitelistUsernames' Lens+createBranchProtectionOptionMergeWhitelistUsernamesL :: Lens_' CreateBranchProtectionOption (Maybe [Text])+createBranchProtectionOptionMergeWhitelistUsernamesL f CreateBranchProtectionOption{..} = (\createBranchProtectionOptionMergeWhitelistUsernames -> CreateBranchProtectionOption { createBranchProtectionOptionMergeWhitelistUsernames, ..} ) <$> f createBranchProtectionOptionMergeWhitelistUsernames+{-# INLINE createBranchProtectionOptionMergeWhitelistUsernamesL #-}++-- | 'createBranchProtectionOptionProtectedFilePatterns' Lens+createBranchProtectionOptionProtectedFilePatternsL :: Lens_' CreateBranchProtectionOption (Maybe Text)+createBranchProtectionOptionProtectedFilePatternsL f CreateBranchProtectionOption{..} = (\createBranchProtectionOptionProtectedFilePatterns -> CreateBranchProtectionOption { createBranchProtectionOptionProtectedFilePatterns, ..} ) <$> f createBranchProtectionOptionProtectedFilePatterns+{-# INLINE createBranchProtectionOptionProtectedFilePatternsL #-}++-- | 'createBranchProtectionOptionPushWhitelistDeployKeys' Lens+createBranchProtectionOptionPushWhitelistDeployKeysL :: Lens_' CreateBranchProtectionOption (Maybe Bool)+createBranchProtectionOptionPushWhitelistDeployKeysL f CreateBranchProtectionOption{..} = (\createBranchProtectionOptionPushWhitelistDeployKeys -> CreateBranchProtectionOption { createBranchProtectionOptionPushWhitelistDeployKeys, ..} ) <$> f createBranchProtectionOptionPushWhitelistDeployKeys+{-# INLINE createBranchProtectionOptionPushWhitelistDeployKeysL #-}++-- | 'createBranchProtectionOptionPushWhitelistTeams' Lens+createBranchProtectionOptionPushWhitelistTeamsL :: Lens_' CreateBranchProtectionOption (Maybe [Text])+createBranchProtectionOptionPushWhitelistTeamsL f CreateBranchProtectionOption{..} = (\createBranchProtectionOptionPushWhitelistTeams -> CreateBranchProtectionOption { createBranchProtectionOptionPushWhitelistTeams, ..} ) <$> f createBranchProtectionOptionPushWhitelistTeams+{-# INLINE createBranchProtectionOptionPushWhitelistTeamsL #-}++-- | 'createBranchProtectionOptionPushWhitelistUsernames' Lens+createBranchProtectionOptionPushWhitelistUsernamesL :: Lens_' CreateBranchProtectionOption (Maybe [Text])+createBranchProtectionOptionPushWhitelistUsernamesL f CreateBranchProtectionOption{..} = (\createBranchProtectionOptionPushWhitelistUsernames -> CreateBranchProtectionOption { createBranchProtectionOptionPushWhitelistUsernames, ..} ) <$> f createBranchProtectionOptionPushWhitelistUsernames+{-# INLINE createBranchProtectionOptionPushWhitelistUsernamesL #-}++-- | 'createBranchProtectionOptionRequireSignedCommits' Lens+createBranchProtectionOptionRequireSignedCommitsL :: Lens_' CreateBranchProtectionOption (Maybe Bool)+createBranchProtectionOptionRequireSignedCommitsL f CreateBranchProtectionOption{..} = (\createBranchProtectionOptionRequireSignedCommits -> CreateBranchProtectionOption { createBranchProtectionOptionRequireSignedCommits, ..} ) <$> f createBranchProtectionOptionRequireSignedCommits+{-# INLINE createBranchProtectionOptionRequireSignedCommitsL #-}++-- | 'createBranchProtectionOptionRequiredApprovals' Lens+createBranchProtectionOptionRequiredApprovalsL :: Lens_' CreateBranchProtectionOption (Maybe Integer)+createBranchProtectionOptionRequiredApprovalsL f CreateBranchProtectionOption{..} = (\createBranchProtectionOptionRequiredApprovals -> CreateBranchProtectionOption { createBranchProtectionOptionRequiredApprovals, ..} ) <$> f createBranchProtectionOptionRequiredApprovals+{-# INLINE createBranchProtectionOptionRequiredApprovalsL #-}++-- | 'createBranchProtectionOptionRuleName' Lens+createBranchProtectionOptionRuleNameL :: Lens_' CreateBranchProtectionOption (Maybe Text)+createBranchProtectionOptionRuleNameL f CreateBranchProtectionOption{..} = (\createBranchProtectionOptionRuleName -> CreateBranchProtectionOption { createBranchProtectionOptionRuleName, ..} ) <$> f createBranchProtectionOptionRuleName+{-# INLINE createBranchProtectionOptionRuleNameL #-}++-- | 'createBranchProtectionOptionStatusCheckContexts' Lens+createBranchProtectionOptionStatusCheckContextsL :: Lens_' CreateBranchProtectionOption (Maybe [Text])+createBranchProtectionOptionStatusCheckContextsL f CreateBranchProtectionOption{..} = (\createBranchProtectionOptionStatusCheckContexts -> CreateBranchProtectionOption { createBranchProtectionOptionStatusCheckContexts, ..} ) <$> f createBranchProtectionOptionStatusCheckContexts+{-# INLINE createBranchProtectionOptionStatusCheckContextsL #-}++-- | 'createBranchProtectionOptionUnprotectedFilePatterns' Lens+createBranchProtectionOptionUnprotectedFilePatternsL :: Lens_' CreateBranchProtectionOption (Maybe Text)+createBranchProtectionOptionUnprotectedFilePatternsL f CreateBranchProtectionOption{..} = (\createBranchProtectionOptionUnprotectedFilePatterns -> CreateBranchProtectionOption { createBranchProtectionOptionUnprotectedFilePatterns, ..} ) <$> f createBranchProtectionOptionUnprotectedFilePatterns+{-# INLINE createBranchProtectionOptionUnprotectedFilePatternsL #-}++++-- * CreateBranchRepoOption++-- | 'createBranchRepoOptionNewBranchName' Lens+createBranchRepoOptionNewBranchNameL :: Lens_' CreateBranchRepoOption (Text)+createBranchRepoOptionNewBranchNameL f CreateBranchRepoOption{..} = (\createBranchRepoOptionNewBranchName -> CreateBranchRepoOption { createBranchRepoOptionNewBranchName, ..} ) <$> f createBranchRepoOptionNewBranchName+{-# INLINE createBranchRepoOptionNewBranchNameL #-}++-- | 'createBranchRepoOptionOldBranchName' Lens+createBranchRepoOptionOldBranchNameL :: Lens_' CreateBranchRepoOption (Maybe Text)+createBranchRepoOptionOldBranchNameL f CreateBranchRepoOption{..} = (\createBranchRepoOptionOldBranchName -> CreateBranchRepoOption { createBranchRepoOptionOldBranchName, ..} ) <$> f createBranchRepoOptionOldBranchName+{-# INLINE createBranchRepoOptionOldBranchNameL #-}++++-- * CreateEmailOption++-- | 'createEmailOptionEmails' Lens+createEmailOptionEmailsL :: Lens_' CreateEmailOption (Maybe [Text])+createEmailOptionEmailsL f CreateEmailOption{..} = (\createEmailOptionEmails -> CreateEmailOption { createEmailOptionEmails, ..} ) <$> f createEmailOptionEmails+{-# INLINE createEmailOptionEmailsL #-}++++-- * CreateFileOptions++-- | 'createFileOptionsAuthor' Lens+createFileOptionsAuthorL :: Lens_' CreateFileOptions (Maybe Identity)+createFileOptionsAuthorL f CreateFileOptions{..} = (\createFileOptionsAuthor -> CreateFileOptions { createFileOptionsAuthor, ..} ) <$> f createFileOptionsAuthor+{-# INLINE createFileOptionsAuthorL #-}++-- | 'createFileOptionsBranch' Lens+createFileOptionsBranchL :: Lens_' CreateFileOptions (Maybe Text)+createFileOptionsBranchL f CreateFileOptions{..} = (\createFileOptionsBranch -> CreateFileOptions { createFileOptionsBranch, ..} ) <$> f createFileOptionsBranch+{-# INLINE createFileOptionsBranchL #-}++-- | 'createFileOptionsCommitter' Lens+createFileOptionsCommitterL :: Lens_' CreateFileOptions (Maybe Identity)+createFileOptionsCommitterL f CreateFileOptions{..} = (\createFileOptionsCommitter -> CreateFileOptions { createFileOptionsCommitter, ..} ) <$> f createFileOptionsCommitter+{-# INLINE createFileOptionsCommitterL #-}++-- | 'createFileOptionsContent' Lens+createFileOptionsContentL :: Lens_' CreateFileOptions (Text)+createFileOptionsContentL f CreateFileOptions{..} = (\createFileOptionsContent -> CreateFileOptions { createFileOptionsContent, ..} ) <$> f createFileOptionsContent+{-# INLINE createFileOptionsContentL #-}++-- | 'createFileOptionsDates' Lens+createFileOptionsDatesL :: Lens_' CreateFileOptions (Maybe CommitDateOptions)+createFileOptionsDatesL f CreateFileOptions{..} = (\createFileOptionsDates -> CreateFileOptions { createFileOptionsDates, ..} ) <$> f createFileOptionsDates+{-# INLINE createFileOptionsDatesL #-}++-- | 'createFileOptionsMessage' Lens+createFileOptionsMessageL :: Lens_' CreateFileOptions (Maybe Text)+createFileOptionsMessageL f CreateFileOptions{..} = (\createFileOptionsMessage -> CreateFileOptions { createFileOptionsMessage, ..} ) <$> f createFileOptionsMessage+{-# INLINE createFileOptionsMessageL #-}++-- | 'createFileOptionsNewBranch' Lens+createFileOptionsNewBranchL :: Lens_' CreateFileOptions (Maybe Text)+createFileOptionsNewBranchL f CreateFileOptions{..} = (\createFileOptionsNewBranch -> CreateFileOptions { createFileOptionsNewBranch, ..} ) <$> f createFileOptionsNewBranch+{-# INLINE createFileOptionsNewBranchL #-}++-- | 'createFileOptionsSignoff' Lens+createFileOptionsSignoffL :: Lens_' CreateFileOptions (Maybe Bool)+createFileOptionsSignoffL f CreateFileOptions{..} = (\createFileOptionsSignoff -> CreateFileOptions { createFileOptionsSignoff, ..} ) <$> f createFileOptionsSignoff+{-# INLINE createFileOptionsSignoffL #-}++++-- * CreateForkOption++-- | 'createForkOptionName' Lens+createForkOptionNameL :: Lens_' CreateForkOption (Maybe Text)+createForkOptionNameL f CreateForkOption{..} = (\createForkOptionName -> CreateForkOption { createForkOptionName, ..} ) <$> f createForkOptionName+{-# INLINE createForkOptionNameL #-}++-- | 'createForkOptionOrganization' Lens+createForkOptionOrganizationL :: Lens_' CreateForkOption (Maybe Text)+createForkOptionOrganizationL f CreateForkOption{..} = (\createForkOptionOrganization -> CreateForkOption { createForkOptionOrganization, ..} ) <$> f createForkOptionOrganization+{-# INLINE createForkOptionOrganizationL #-}++++-- * CreateGPGKeyOption++-- | 'createGPGKeyOptionArmoredPublicKey' Lens+createGPGKeyOptionArmoredPublicKeyL :: Lens_' CreateGPGKeyOption (Text)+createGPGKeyOptionArmoredPublicKeyL f CreateGPGKeyOption{..} = (\createGPGKeyOptionArmoredPublicKey -> CreateGPGKeyOption { createGPGKeyOptionArmoredPublicKey, ..} ) <$> f createGPGKeyOptionArmoredPublicKey+{-# INLINE createGPGKeyOptionArmoredPublicKeyL #-}++-- | 'createGPGKeyOptionArmoredSignature' Lens+createGPGKeyOptionArmoredSignatureL :: Lens_' CreateGPGKeyOption (Maybe Text)+createGPGKeyOptionArmoredSignatureL f CreateGPGKeyOption{..} = (\createGPGKeyOptionArmoredSignature -> CreateGPGKeyOption { createGPGKeyOptionArmoredSignature, ..} ) <$> f createGPGKeyOptionArmoredSignature+{-# INLINE createGPGKeyOptionArmoredSignatureL #-}++++-- * CreateHookOption++-- | 'createHookOptionActive' Lens+createHookOptionActiveL :: Lens_' CreateHookOption (Maybe Bool)+createHookOptionActiveL f CreateHookOption{..} = (\createHookOptionActive -> CreateHookOption { createHookOptionActive, ..} ) <$> f createHookOptionActive+{-# INLINE createHookOptionActiveL #-}++-- | 'createHookOptionAuthorizationHeader' Lens+createHookOptionAuthorizationHeaderL :: Lens_' CreateHookOption (Maybe Text)+createHookOptionAuthorizationHeaderL f CreateHookOption{..} = (\createHookOptionAuthorizationHeader -> CreateHookOption { createHookOptionAuthorizationHeader, ..} ) <$> f createHookOptionAuthorizationHeader+{-# INLINE createHookOptionAuthorizationHeaderL #-}++-- | 'createHookOptionBranchFilter' Lens+createHookOptionBranchFilterL :: Lens_' CreateHookOption (Maybe Text)+createHookOptionBranchFilterL f CreateHookOption{..} = (\createHookOptionBranchFilter -> CreateHookOption { createHookOptionBranchFilter, ..} ) <$> f createHookOptionBranchFilter+{-# INLINE createHookOptionBranchFilterL #-}++-- | 'createHookOptionConfig' Lens+createHookOptionConfigL :: Lens_' CreateHookOption ((Map.Map String Text))+createHookOptionConfigL f CreateHookOption{..} = (\createHookOptionConfig -> CreateHookOption { createHookOptionConfig, ..} ) <$> f createHookOptionConfig+{-# INLINE createHookOptionConfigL #-}++-- | 'createHookOptionEvents' Lens+createHookOptionEventsL :: Lens_' CreateHookOption (Maybe [Text])+createHookOptionEventsL f CreateHookOption{..} = (\createHookOptionEvents -> CreateHookOption { createHookOptionEvents, ..} ) <$> f createHookOptionEvents+{-# INLINE createHookOptionEventsL #-}++-- | 'createHookOptionType' Lens+createHookOptionTypeL :: Lens_' CreateHookOption (E'Type)+createHookOptionTypeL f CreateHookOption{..} = (\createHookOptionType -> CreateHookOption { createHookOptionType, ..} ) <$> f createHookOptionType+{-# INLINE createHookOptionTypeL #-}++++-- * CreateIssueCommentOption++-- | 'createIssueCommentOptionBody' Lens+createIssueCommentOptionBodyL :: Lens_' CreateIssueCommentOption (Text)+createIssueCommentOptionBodyL f CreateIssueCommentOption{..} = (\createIssueCommentOptionBody -> CreateIssueCommentOption { createIssueCommentOptionBody, ..} ) <$> f createIssueCommentOptionBody+{-# INLINE createIssueCommentOptionBodyL #-}++++-- * CreateIssueOption++-- | 'createIssueOptionAssignee' Lens+createIssueOptionAssigneeL :: Lens_' CreateIssueOption (Maybe Text)+createIssueOptionAssigneeL f CreateIssueOption{..} = (\createIssueOptionAssignee -> CreateIssueOption { createIssueOptionAssignee, ..} ) <$> f createIssueOptionAssignee+{-# INLINE createIssueOptionAssigneeL #-}++-- | 'createIssueOptionAssignees' Lens+createIssueOptionAssigneesL :: Lens_' CreateIssueOption (Maybe [Text])+createIssueOptionAssigneesL f CreateIssueOption{..} = (\createIssueOptionAssignees -> CreateIssueOption { createIssueOptionAssignees, ..} ) <$> f createIssueOptionAssignees+{-# INLINE createIssueOptionAssigneesL #-}++-- | 'createIssueOptionBody' Lens+createIssueOptionBodyL :: Lens_' CreateIssueOption (Maybe Text)+createIssueOptionBodyL f CreateIssueOption{..} = (\createIssueOptionBody -> CreateIssueOption { createIssueOptionBody, ..} ) <$> f createIssueOptionBody+{-# INLINE createIssueOptionBodyL #-}++-- | 'createIssueOptionClosed' Lens+createIssueOptionClosedL :: Lens_' CreateIssueOption (Maybe Bool)+createIssueOptionClosedL f CreateIssueOption{..} = (\createIssueOptionClosed -> CreateIssueOption { createIssueOptionClosed, ..} ) <$> f createIssueOptionClosed+{-# INLINE createIssueOptionClosedL #-}++-- | 'createIssueOptionDueDate' Lens+createIssueOptionDueDateL :: Lens_' CreateIssueOption (Maybe DateTime)+createIssueOptionDueDateL f CreateIssueOption{..} = (\createIssueOptionDueDate -> CreateIssueOption { createIssueOptionDueDate, ..} ) <$> f createIssueOptionDueDate+{-# INLINE createIssueOptionDueDateL #-}++-- | 'createIssueOptionLabels' Lens+createIssueOptionLabelsL :: Lens_' CreateIssueOption (Maybe [Integer])+createIssueOptionLabelsL f CreateIssueOption{..} = (\createIssueOptionLabels -> CreateIssueOption { createIssueOptionLabels, ..} ) <$> f createIssueOptionLabels+{-# INLINE createIssueOptionLabelsL #-}++-- | 'createIssueOptionMilestone' Lens+createIssueOptionMilestoneL :: Lens_' CreateIssueOption (Maybe Integer)+createIssueOptionMilestoneL f CreateIssueOption{..} = (\createIssueOptionMilestone -> CreateIssueOption { createIssueOptionMilestone, ..} ) <$> f createIssueOptionMilestone+{-# INLINE createIssueOptionMilestoneL #-}++-- | 'createIssueOptionRef' Lens+createIssueOptionRefL :: Lens_' CreateIssueOption (Maybe Text)+createIssueOptionRefL f CreateIssueOption{..} = (\createIssueOptionRef -> CreateIssueOption { createIssueOptionRef, ..} ) <$> f createIssueOptionRef+{-# INLINE createIssueOptionRefL #-}++-- | 'createIssueOptionTitle' Lens+createIssueOptionTitleL :: Lens_' CreateIssueOption (Text)+createIssueOptionTitleL f CreateIssueOption{..} = (\createIssueOptionTitle -> CreateIssueOption { createIssueOptionTitle, ..} ) <$> f createIssueOptionTitle+{-# INLINE createIssueOptionTitleL #-}++++-- * CreateKeyOption++-- | 'createKeyOptionKey' Lens+createKeyOptionKeyL :: Lens_' CreateKeyOption (Text)+createKeyOptionKeyL f CreateKeyOption{..} = (\createKeyOptionKey -> CreateKeyOption { createKeyOptionKey, ..} ) <$> f createKeyOptionKey+{-# INLINE createKeyOptionKeyL #-}++-- | 'createKeyOptionReadOnly' Lens+createKeyOptionReadOnlyL :: Lens_' CreateKeyOption (Maybe Bool)+createKeyOptionReadOnlyL f CreateKeyOption{..} = (\createKeyOptionReadOnly -> CreateKeyOption { createKeyOptionReadOnly, ..} ) <$> f createKeyOptionReadOnly+{-# INLINE createKeyOptionReadOnlyL #-}++-- | 'createKeyOptionTitle' Lens+createKeyOptionTitleL :: Lens_' CreateKeyOption (Text)+createKeyOptionTitleL f CreateKeyOption{..} = (\createKeyOptionTitle -> CreateKeyOption { createKeyOptionTitle, ..} ) <$> f createKeyOptionTitle+{-# INLINE createKeyOptionTitleL #-}++++-- * CreateLabelOption++-- | 'createLabelOptionColor' Lens+createLabelOptionColorL :: Lens_' CreateLabelOption (Text)+createLabelOptionColorL f CreateLabelOption{..} = (\createLabelOptionColor -> CreateLabelOption { createLabelOptionColor, ..} ) <$> f createLabelOptionColor+{-# INLINE createLabelOptionColorL #-}++-- | 'createLabelOptionDescription' Lens+createLabelOptionDescriptionL :: Lens_' CreateLabelOption (Maybe Text)+createLabelOptionDescriptionL f CreateLabelOption{..} = (\createLabelOptionDescription -> CreateLabelOption { createLabelOptionDescription, ..} ) <$> f createLabelOptionDescription+{-# INLINE createLabelOptionDescriptionL #-}++-- | 'createLabelOptionExclusive' Lens+createLabelOptionExclusiveL :: Lens_' CreateLabelOption (Maybe Bool)+createLabelOptionExclusiveL f CreateLabelOption{..} = (\createLabelOptionExclusive -> CreateLabelOption { createLabelOptionExclusive, ..} ) <$> f createLabelOptionExclusive+{-# INLINE createLabelOptionExclusiveL #-}++-- | 'createLabelOptionName' Lens+createLabelOptionNameL :: Lens_' CreateLabelOption (Text)+createLabelOptionNameL f CreateLabelOption{..} = (\createLabelOptionName -> CreateLabelOption { createLabelOptionName, ..} ) <$> f createLabelOptionName+{-# INLINE createLabelOptionNameL #-}++++-- * CreateMilestoneOption++-- | 'createMilestoneOptionDescription' Lens+createMilestoneOptionDescriptionL :: Lens_' CreateMilestoneOption (Maybe Text)+createMilestoneOptionDescriptionL f CreateMilestoneOption{..} = (\createMilestoneOptionDescription -> CreateMilestoneOption { createMilestoneOptionDescription, ..} ) <$> f createMilestoneOptionDescription+{-# INLINE createMilestoneOptionDescriptionL #-}++-- | 'createMilestoneOptionDueOn' Lens+createMilestoneOptionDueOnL :: Lens_' CreateMilestoneOption (Maybe DateTime)+createMilestoneOptionDueOnL f CreateMilestoneOption{..} = (\createMilestoneOptionDueOn -> CreateMilestoneOption { createMilestoneOptionDueOn, ..} ) <$> f createMilestoneOptionDueOn+{-# INLINE createMilestoneOptionDueOnL #-}++-- | 'createMilestoneOptionState' Lens+createMilestoneOptionStateL :: Lens_' CreateMilestoneOption (Maybe E'State)+createMilestoneOptionStateL f CreateMilestoneOption{..} = (\createMilestoneOptionState -> CreateMilestoneOption { createMilestoneOptionState, ..} ) <$> f createMilestoneOptionState+{-# INLINE createMilestoneOptionStateL #-}++-- | 'createMilestoneOptionTitle' Lens+createMilestoneOptionTitleL :: Lens_' CreateMilestoneOption (Maybe Text)+createMilestoneOptionTitleL f CreateMilestoneOption{..} = (\createMilestoneOptionTitle -> CreateMilestoneOption { createMilestoneOptionTitle, ..} ) <$> f createMilestoneOptionTitle+{-# INLINE createMilestoneOptionTitleL #-}++++-- * CreateOAuth2ApplicationOptions++-- | 'createOAuth2ApplicationOptionsConfidentialClient' Lens+createOAuth2ApplicationOptionsConfidentialClientL :: Lens_' CreateOAuth2ApplicationOptions (Maybe Bool)+createOAuth2ApplicationOptionsConfidentialClientL f CreateOAuth2ApplicationOptions{..} = (\createOAuth2ApplicationOptionsConfidentialClient -> CreateOAuth2ApplicationOptions { createOAuth2ApplicationOptionsConfidentialClient, ..} ) <$> f createOAuth2ApplicationOptionsConfidentialClient+{-# INLINE createOAuth2ApplicationOptionsConfidentialClientL #-}++-- | 'createOAuth2ApplicationOptionsName' Lens+createOAuth2ApplicationOptionsNameL :: Lens_' CreateOAuth2ApplicationOptions (Maybe Text)+createOAuth2ApplicationOptionsNameL f CreateOAuth2ApplicationOptions{..} = (\createOAuth2ApplicationOptionsName -> CreateOAuth2ApplicationOptions { createOAuth2ApplicationOptionsName, ..} ) <$> f createOAuth2ApplicationOptionsName+{-# INLINE createOAuth2ApplicationOptionsNameL #-}++-- | 'createOAuth2ApplicationOptionsRedirectUris' Lens+createOAuth2ApplicationOptionsRedirectUrisL :: Lens_' CreateOAuth2ApplicationOptions (Maybe [Text])+createOAuth2ApplicationOptionsRedirectUrisL f CreateOAuth2ApplicationOptions{..} = (\createOAuth2ApplicationOptionsRedirectUris -> CreateOAuth2ApplicationOptions { createOAuth2ApplicationOptionsRedirectUris, ..} ) <$> f createOAuth2ApplicationOptionsRedirectUris+{-# INLINE createOAuth2ApplicationOptionsRedirectUrisL #-}++++-- * CreateOrgOption++-- | 'createOrgOptionDescription' Lens+createOrgOptionDescriptionL :: Lens_' CreateOrgOption (Maybe Text)+createOrgOptionDescriptionL f CreateOrgOption{..} = (\createOrgOptionDescription -> CreateOrgOption { createOrgOptionDescription, ..} ) <$> f createOrgOptionDescription+{-# INLINE createOrgOptionDescriptionL #-}++-- | 'createOrgOptionFullName' Lens+createOrgOptionFullNameL :: Lens_' CreateOrgOption (Maybe Text)+createOrgOptionFullNameL f CreateOrgOption{..} = (\createOrgOptionFullName -> CreateOrgOption { createOrgOptionFullName, ..} ) <$> f createOrgOptionFullName+{-# INLINE createOrgOptionFullNameL #-}++-- | 'createOrgOptionLocation' Lens+createOrgOptionLocationL :: Lens_' CreateOrgOption (Maybe Text)+createOrgOptionLocationL f CreateOrgOption{..} = (\createOrgOptionLocation -> CreateOrgOption { createOrgOptionLocation, ..} ) <$> f createOrgOptionLocation+{-# INLINE createOrgOptionLocationL #-}++-- | 'createOrgOptionRepoAdminChangeTeamAccess' Lens+createOrgOptionRepoAdminChangeTeamAccessL :: Lens_' CreateOrgOption (Maybe Bool)+createOrgOptionRepoAdminChangeTeamAccessL f CreateOrgOption{..} = (\createOrgOptionRepoAdminChangeTeamAccess -> CreateOrgOption { createOrgOptionRepoAdminChangeTeamAccess, ..} ) <$> f createOrgOptionRepoAdminChangeTeamAccess+{-# INLINE createOrgOptionRepoAdminChangeTeamAccessL #-}++-- | 'createOrgOptionUsername' Lens+createOrgOptionUsernameL :: Lens_' CreateOrgOption (Text)+createOrgOptionUsernameL f CreateOrgOption{..} = (\createOrgOptionUsername -> CreateOrgOption { createOrgOptionUsername, ..} ) <$> f createOrgOptionUsername+{-# INLINE createOrgOptionUsernameL #-}++-- | 'createOrgOptionVisibility' Lens+createOrgOptionVisibilityL :: Lens_' CreateOrgOption (Maybe E'Visibility)+createOrgOptionVisibilityL f CreateOrgOption{..} = (\createOrgOptionVisibility -> CreateOrgOption { createOrgOptionVisibility, ..} ) <$> f createOrgOptionVisibility+{-# INLINE createOrgOptionVisibilityL #-}++-- | 'createOrgOptionWebsite' Lens+createOrgOptionWebsiteL :: Lens_' CreateOrgOption (Maybe Text)+createOrgOptionWebsiteL f CreateOrgOption{..} = (\createOrgOptionWebsite -> CreateOrgOption { createOrgOptionWebsite, ..} ) <$> f createOrgOptionWebsite+{-# INLINE createOrgOptionWebsiteL #-}++++-- * CreatePullRequestOption++-- | 'createPullRequestOptionAssignee' Lens+createPullRequestOptionAssigneeL :: Lens_' CreatePullRequestOption (Maybe Text)+createPullRequestOptionAssigneeL f CreatePullRequestOption{..} = (\createPullRequestOptionAssignee -> CreatePullRequestOption { createPullRequestOptionAssignee, ..} ) <$> f createPullRequestOptionAssignee+{-# INLINE createPullRequestOptionAssigneeL #-}++-- | 'createPullRequestOptionAssignees' Lens+createPullRequestOptionAssigneesL :: Lens_' CreatePullRequestOption (Maybe [Text])+createPullRequestOptionAssigneesL f CreatePullRequestOption{..} = (\createPullRequestOptionAssignees -> CreatePullRequestOption { createPullRequestOptionAssignees, ..} ) <$> f createPullRequestOptionAssignees+{-# INLINE createPullRequestOptionAssigneesL #-}++-- | 'createPullRequestOptionBase' Lens+createPullRequestOptionBaseL :: Lens_' CreatePullRequestOption (Maybe Text)+createPullRequestOptionBaseL f CreatePullRequestOption{..} = (\createPullRequestOptionBase -> CreatePullRequestOption { createPullRequestOptionBase, ..} ) <$> f createPullRequestOptionBase+{-# INLINE createPullRequestOptionBaseL #-}++-- | 'createPullRequestOptionBody' Lens+createPullRequestOptionBodyL :: Lens_' CreatePullRequestOption (Maybe Text)+createPullRequestOptionBodyL f CreatePullRequestOption{..} = (\createPullRequestOptionBody -> CreatePullRequestOption { createPullRequestOptionBody, ..} ) <$> f createPullRequestOptionBody+{-# INLINE createPullRequestOptionBodyL #-}++-- | 'createPullRequestOptionDueDate' Lens+createPullRequestOptionDueDateL :: Lens_' CreatePullRequestOption (Maybe DateTime)+createPullRequestOptionDueDateL f CreatePullRequestOption{..} = (\createPullRequestOptionDueDate -> CreatePullRequestOption { createPullRequestOptionDueDate, ..} ) <$> f createPullRequestOptionDueDate+{-# INLINE createPullRequestOptionDueDateL #-}++-- | 'createPullRequestOptionHead' Lens+createPullRequestOptionHeadL :: Lens_' CreatePullRequestOption (Maybe Text)+createPullRequestOptionHeadL f CreatePullRequestOption{..} = (\createPullRequestOptionHead -> CreatePullRequestOption { createPullRequestOptionHead, ..} ) <$> f createPullRequestOptionHead+{-# INLINE createPullRequestOptionHeadL #-}++-- | 'createPullRequestOptionLabels' Lens+createPullRequestOptionLabelsL :: Lens_' CreatePullRequestOption (Maybe [Integer])+createPullRequestOptionLabelsL f CreatePullRequestOption{..} = (\createPullRequestOptionLabels -> CreatePullRequestOption { createPullRequestOptionLabels, ..} ) <$> f createPullRequestOptionLabels+{-# INLINE createPullRequestOptionLabelsL #-}++-- | 'createPullRequestOptionMilestone' Lens+createPullRequestOptionMilestoneL :: Lens_' CreatePullRequestOption (Maybe Integer)+createPullRequestOptionMilestoneL f CreatePullRequestOption{..} = (\createPullRequestOptionMilestone -> CreatePullRequestOption { createPullRequestOptionMilestone, ..} ) <$> f createPullRequestOptionMilestone+{-# INLINE createPullRequestOptionMilestoneL #-}++-- | 'createPullRequestOptionTitle' Lens+createPullRequestOptionTitleL :: Lens_' CreatePullRequestOption (Maybe Text)+createPullRequestOptionTitleL f CreatePullRequestOption{..} = (\createPullRequestOptionTitle -> CreatePullRequestOption { createPullRequestOptionTitle, ..} ) <$> f createPullRequestOptionTitle+{-# INLINE createPullRequestOptionTitleL #-}++++-- * CreatePullReviewComment++-- | 'createPullReviewCommentBody' Lens+createPullReviewCommentBodyL :: Lens_' CreatePullReviewComment (Maybe Text)+createPullReviewCommentBodyL f CreatePullReviewComment{..} = (\createPullReviewCommentBody -> CreatePullReviewComment { createPullReviewCommentBody, ..} ) <$> f createPullReviewCommentBody+{-# INLINE createPullReviewCommentBodyL #-}++-- | 'createPullReviewCommentNewPosition' Lens+createPullReviewCommentNewPositionL :: Lens_' CreatePullReviewComment (Maybe Integer)+createPullReviewCommentNewPositionL f CreatePullReviewComment{..} = (\createPullReviewCommentNewPosition -> CreatePullReviewComment { createPullReviewCommentNewPosition, ..} ) <$> f createPullReviewCommentNewPosition+{-# INLINE createPullReviewCommentNewPositionL #-}++-- | 'createPullReviewCommentOldPosition' Lens+createPullReviewCommentOldPositionL :: Lens_' CreatePullReviewComment (Maybe Integer)+createPullReviewCommentOldPositionL f CreatePullReviewComment{..} = (\createPullReviewCommentOldPosition -> CreatePullReviewComment { createPullReviewCommentOldPosition, ..} ) <$> f createPullReviewCommentOldPosition+{-# INLINE createPullReviewCommentOldPositionL #-}++-- | 'createPullReviewCommentPath' Lens+createPullReviewCommentPathL :: Lens_' CreatePullReviewComment (Maybe Text)+createPullReviewCommentPathL f CreatePullReviewComment{..} = (\createPullReviewCommentPath -> CreatePullReviewComment { createPullReviewCommentPath, ..} ) <$> f createPullReviewCommentPath+{-# INLINE createPullReviewCommentPathL #-}++++-- * CreatePullReviewOptions++-- | 'createPullReviewOptionsBody' Lens+createPullReviewOptionsBodyL :: Lens_' CreatePullReviewOptions (Maybe Text)+createPullReviewOptionsBodyL f CreatePullReviewOptions{..} = (\createPullReviewOptionsBody -> CreatePullReviewOptions { createPullReviewOptionsBody, ..} ) <$> f createPullReviewOptionsBody+{-# INLINE createPullReviewOptionsBodyL #-}++-- | 'createPullReviewOptionsComments' Lens+createPullReviewOptionsCommentsL :: Lens_' CreatePullReviewOptions (Maybe [CreatePullReviewComment])+createPullReviewOptionsCommentsL f CreatePullReviewOptions{..} = (\createPullReviewOptionsComments -> CreatePullReviewOptions { createPullReviewOptionsComments, ..} ) <$> f createPullReviewOptionsComments+{-# INLINE createPullReviewOptionsCommentsL #-}++-- | 'createPullReviewOptionsCommitId' Lens+createPullReviewOptionsCommitIdL :: Lens_' CreatePullReviewOptions (Maybe Text)+createPullReviewOptionsCommitIdL f CreatePullReviewOptions{..} = (\createPullReviewOptionsCommitId -> CreatePullReviewOptions { createPullReviewOptionsCommitId, ..} ) <$> f createPullReviewOptionsCommitId+{-# INLINE createPullReviewOptionsCommitIdL #-}++-- | 'createPullReviewOptionsEvent' Lens+createPullReviewOptionsEventL :: Lens_' CreatePullReviewOptions (Maybe Text)+createPullReviewOptionsEventL f CreatePullReviewOptions{..} = (\createPullReviewOptionsEvent -> CreatePullReviewOptions { createPullReviewOptionsEvent, ..} ) <$> f createPullReviewOptionsEvent+{-# INLINE createPullReviewOptionsEventL #-}++++-- * CreatePushMirrorOption++-- | 'createPushMirrorOptionInterval' Lens+createPushMirrorOptionIntervalL :: Lens_' CreatePushMirrorOption (Maybe Text)+createPushMirrorOptionIntervalL f CreatePushMirrorOption{..} = (\createPushMirrorOptionInterval -> CreatePushMirrorOption { createPushMirrorOptionInterval, ..} ) <$> f createPushMirrorOptionInterval+{-# INLINE createPushMirrorOptionIntervalL #-}++-- | 'createPushMirrorOptionRemoteAddress' Lens+createPushMirrorOptionRemoteAddressL :: Lens_' CreatePushMirrorOption (Maybe Text)+createPushMirrorOptionRemoteAddressL f CreatePushMirrorOption{..} = (\createPushMirrorOptionRemoteAddress -> CreatePushMirrorOption { createPushMirrorOptionRemoteAddress, ..} ) <$> f createPushMirrorOptionRemoteAddress+{-# INLINE createPushMirrorOptionRemoteAddressL #-}++-- | 'createPushMirrorOptionRemotePassword' Lens+createPushMirrorOptionRemotePasswordL :: Lens_' CreatePushMirrorOption (Maybe Text)+createPushMirrorOptionRemotePasswordL f CreatePushMirrorOption{..} = (\createPushMirrorOptionRemotePassword -> CreatePushMirrorOption { createPushMirrorOptionRemotePassword, ..} ) <$> f createPushMirrorOptionRemotePassword+{-# INLINE createPushMirrorOptionRemotePasswordL #-}++-- | 'createPushMirrorOptionRemoteUsername' Lens+createPushMirrorOptionRemoteUsernameL :: Lens_' CreatePushMirrorOption (Maybe Text)+createPushMirrorOptionRemoteUsernameL f CreatePushMirrorOption{..} = (\createPushMirrorOptionRemoteUsername -> CreatePushMirrorOption { createPushMirrorOptionRemoteUsername, ..} ) <$> f createPushMirrorOptionRemoteUsername+{-# INLINE createPushMirrorOptionRemoteUsernameL #-}++-- | 'createPushMirrorOptionSyncOnCommit' Lens+createPushMirrorOptionSyncOnCommitL :: Lens_' CreatePushMirrorOption (Maybe Bool)+createPushMirrorOptionSyncOnCommitL f CreatePushMirrorOption{..} = (\createPushMirrorOptionSyncOnCommit -> CreatePushMirrorOption { createPushMirrorOptionSyncOnCommit, ..} ) <$> f createPushMirrorOptionSyncOnCommit+{-# INLINE createPushMirrorOptionSyncOnCommitL #-}++++-- * CreateReleaseOption++-- | 'createReleaseOptionBody' Lens+createReleaseOptionBodyL :: Lens_' CreateReleaseOption (Maybe Text)+createReleaseOptionBodyL f CreateReleaseOption{..} = (\createReleaseOptionBody -> CreateReleaseOption { createReleaseOptionBody, ..} ) <$> f createReleaseOptionBody+{-# INLINE createReleaseOptionBodyL #-}++-- | 'createReleaseOptionDraft' Lens+createReleaseOptionDraftL :: Lens_' CreateReleaseOption (Maybe Bool)+createReleaseOptionDraftL f CreateReleaseOption{..} = (\createReleaseOptionDraft -> CreateReleaseOption { createReleaseOptionDraft, ..} ) <$> f createReleaseOptionDraft+{-# INLINE createReleaseOptionDraftL #-}++-- | 'createReleaseOptionName' Lens+createReleaseOptionNameL :: Lens_' CreateReleaseOption (Maybe Text)+createReleaseOptionNameL f CreateReleaseOption{..} = (\createReleaseOptionName -> CreateReleaseOption { createReleaseOptionName, ..} ) <$> f createReleaseOptionName+{-# INLINE createReleaseOptionNameL #-}++-- | 'createReleaseOptionPrerelease' Lens+createReleaseOptionPrereleaseL :: Lens_' CreateReleaseOption (Maybe Bool)+createReleaseOptionPrereleaseL f CreateReleaseOption{..} = (\createReleaseOptionPrerelease -> CreateReleaseOption { createReleaseOptionPrerelease, ..} ) <$> f createReleaseOptionPrerelease+{-# INLINE createReleaseOptionPrereleaseL #-}++-- | 'createReleaseOptionTagName' Lens+createReleaseOptionTagNameL :: Lens_' CreateReleaseOption (Text)+createReleaseOptionTagNameL f CreateReleaseOption{..} = (\createReleaseOptionTagName -> CreateReleaseOption { createReleaseOptionTagName, ..} ) <$> f createReleaseOptionTagName+{-# INLINE createReleaseOptionTagNameL #-}++-- | 'createReleaseOptionTargetCommitish' Lens+createReleaseOptionTargetCommitishL :: Lens_' CreateReleaseOption (Maybe Text)+createReleaseOptionTargetCommitishL f CreateReleaseOption{..} = (\createReleaseOptionTargetCommitish -> CreateReleaseOption { createReleaseOptionTargetCommitish, ..} ) <$> f createReleaseOptionTargetCommitish+{-# INLINE createReleaseOptionTargetCommitishL #-}++++-- * CreateRepoOption++-- | 'createRepoOptionAutoInit' Lens+createRepoOptionAutoInitL :: Lens_' CreateRepoOption (Maybe Bool)+createRepoOptionAutoInitL f CreateRepoOption{..} = (\createRepoOptionAutoInit -> CreateRepoOption { createRepoOptionAutoInit, ..} ) <$> f createRepoOptionAutoInit+{-# INLINE createRepoOptionAutoInitL #-}++-- | 'createRepoOptionDefaultBranch' Lens+createRepoOptionDefaultBranchL :: Lens_' CreateRepoOption (Maybe Text)+createRepoOptionDefaultBranchL f CreateRepoOption{..} = (\createRepoOptionDefaultBranch -> CreateRepoOption { createRepoOptionDefaultBranch, ..} ) <$> f createRepoOptionDefaultBranch+{-# INLINE createRepoOptionDefaultBranchL #-}++-- | 'createRepoOptionDescription' Lens+createRepoOptionDescriptionL :: Lens_' CreateRepoOption (Maybe Text)+createRepoOptionDescriptionL f CreateRepoOption{..} = (\createRepoOptionDescription -> CreateRepoOption { createRepoOptionDescription, ..} ) <$> f createRepoOptionDescription+{-# INLINE createRepoOptionDescriptionL #-}++-- | 'createRepoOptionGitignores' Lens+createRepoOptionGitignoresL :: Lens_' CreateRepoOption (Maybe Text)+createRepoOptionGitignoresL f CreateRepoOption{..} = (\createRepoOptionGitignores -> CreateRepoOption { createRepoOptionGitignores, ..} ) <$> f createRepoOptionGitignores+{-# INLINE createRepoOptionGitignoresL #-}++-- | 'createRepoOptionIssueLabels' Lens+createRepoOptionIssueLabelsL :: Lens_' CreateRepoOption (Maybe Text)+createRepoOptionIssueLabelsL f CreateRepoOption{..} = (\createRepoOptionIssueLabels -> CreateRepoOption { createRepoOptionIssueLabels, ..} ) <$> f createRepoOptionIssueLabels+{-# INLINE createRepoOptionIssueLabelsL #-}++-- | 'createRepoOptionLicense' Lens+createRepoOptionLicenseL :: Lens_' CreateRepoOption (Maybe Text)+createRepoOptionLicenseL f CreateRepoOption{..} = (\createRepoOptionLicense -> CreateRepoOption { createRepoOptionLicense, ..} ) <$> f createRepoOptionLicense+{-# INLINE createRepoOptionLicenseL #-}++-- | 'createRepoOptionName' Lens+createRepoOptionNameL :: Lens_' CreateRepoOption (Text)+createRepoOptionNameL f CreateRepoOption{..} = (\createRepoOptionName -> CreateRepoOption { createRepoOptionName, ..} ) <$> f createRepoOptionName+{-# INLINE createRepoOptionNameL #-}++-- | 'createRepoOptionPrivate' Lens+createRepoOptionPrivateL :: Lens_' CreateRepoOption (Maybe Bool)+createRepoOptionPrivateL f CreateRepoOption{..} = (\createRepoOptionPrivate -> CreateRepoOption { createRepoOptionPrivate, ..} ) <$> f createRepoOptionPrivate+{-# INLINE createRepoOptionPrivateL #-}++-- | 'createRepoOptionReadme' Lens+createRepoOptionReadmeL :: Lens_' CreateRepoOption (Maybe Text)+createRepoOptionReadmeL f CreateRepoOption{..} = (\createRepoOptionReadme -> CreateRepoOption { createRepoOptionReadme, ..} ) <$> f createRepoOptionReadme+{-# INLINE createRepoOptionReadmeL #-}++-- | 'createRepoOptionTemplate' Lens+createRepoOptionTemplateL :: Lens_' CreateRepoOption (Maybe Bool)+createRepoOptionTemplateL f CreateRepoOption{..} = (\createRepoOptionTemplate -> CreateRepoOption { createRepoOptionTemplate, ..} ) <$> f createRepoOptionTemplate+{-# INLINE createRepoOptionTemplateL #-}++-- | 'createRepoOptionTrustModel' Lens+createRepoOptionTrustModelL :: Lens_' CreateRepoOption (Maybe E'TrustModel)+createRepoOptionTrustModelL f CreateRepoOption{..} = (\createRepoOptionTrustModel -> CreateRepoOption { createRepoOptionTrustModel, ..} ) <$> f createRepoOptionTrustModel+{-# INLINE createRepoOptionTrustModelL #-}++++-- * CreateStatusOption++-- | 'createStatusOptionContext' Lens+createStatusOptionContextL :: Lens_' CreateStatusOption (Maybe Text)+createStatusOptionContextL f CreateStatusOption{..} = (\createStatusOptionContext -> CreateStatusOption { createStatusOptionContext, ..} ) <$> f createStatusOptionContext+{-# INLINE createStatusOptionContextL #-}++-- | 'createStatusOptionDescription' Lens+createStatusOptionDescriptionL :: Lens_' CreateStatusOption (Maybe Text)+createStatusOptionDescriptionL f CreateStatusOption{..} = (\createStatusOptionDescription -> CreateStatusOption { createStatusOptionDescription, ..} ) <$> f createStatusOptionDescription+{-# INLINE createStatusOptionDescriptionL #-}++-- | 'createStatusOptionState' Lens+createStatusOptionStateL :: Lens_' CreateStatusOption (Maybe Text)+createStatusOptionStateL f CreateStatusOption{..} = (\createStatusOptionState -> CreateStatusOption { createStatusOptionState, ..} ) <$> f createStatusOptionState+{-# INLINE createStatusOptionStateL #-}++-- | 'createStatusOptionTargetUrl' Lens+createStatusOptionTargetUrlL :: Lens_' CreateStatusOption (Maybe Text)+createStatusOptionTargetUrlL f CreateStatusOption{..} = (\createStatusOptionTargetUrl -> CreateStatusOption { createStatusOptionTargetUrl, ..} ) <$> f createStatusOptionTargetUrl+{-# INLINE createStatusOptionTargetUrlL #-}++++-- * CreateTagOption++-- | 'createTagOptionMessage' Lens+createTagOptionMessageL :: Lens_' CreateTagOption (Maybe Text)+createTagOptionMessageL f CreateTagOption{..} = (\createTagOptionMessage -> CreateTagOption { createTagOptionMessage, ..} ) <$> f createTagOptionMessage+{-# INLINE createTagOptionMessageL #-}++-- | 'createTagOptionTagName' Lens+createTagOptionTagNameL :: Lens_' CreateTagOption (Text)+createTagOptionTagNameL f CreateTagOption{..} = (\createTagOptionTagName -> CreateTagOption { createTagOptionTagName, ..} ) <$> f createTagOptionTagName+{-# INLINE createTagOptionTagNameL #-}++-- | 'createTagOptionTarget' Lens+createTagOptionTargetL :: Lens_' CreateTagOption (Maybe Text)+createTagOptionTargetL f CreateTagOption{..} = (\createTagOptionTarget -> CreateTagOption { createTagOptionTarget, ..} ) <$> f createTagOptionTarget+{-# INLINE createTagOptionTargetL #-}++++-- * CreateTeamOption++-- | 'createTeamOptionCanCreateOrgRepo' Lens+createTeamOptionCanCreateOrgRepoL :: Lens_' CreateTeamOption (Maybe Bool)+createTeamOptionCanCreateOrgRepoL f CreateTeamOption{..} = (\createTeamOptionCanCreateOrgRepo -> CreateTeamOption { createTeamOptionCanCreateOrgRepo, ..} ) <$> f createTeamOptionCanCreateOrgRepo+{-# INLINE createTeamOptionCanCreateOrgRepoL #-}++-- | 'createTeamOptionDescription' Lens+createTeamOptionDescriptionL :: Lens_' CreateTeamOption (Maybe Text)+createTeamOptionDescriptionL f CreateTeamOption{..} = (\createTeamOptionDescription -> CreateTeamOption { createTeamOptionDescription, ..} ) <$> f createTeamOptionDescription+{-# INLINE createTeamOptionDescriptionL #-}++-- | 'createTeamOptionIncludesAllRepositories' Lens+createTeamOptionIncludesAllRepositoriesL :: Lens_' CreateTeamOption (Maybe Bool)+createTeamOptionIncludesAllRepositoriesL f CreateTeamOption{..} = (\createTeamOptionIncludesAllRepositories -> CreateTeamOption { createTeamOptionIncludesAllRepositories, ..} ) <$> f createTeamOptionIncludesAllRepositories+{-# INLINE createTeamOptionIncludesAllRepositoriesL #-}++-- | 'createTeamOptionName' Lens+createTeamOptionNameL :: Lens_' CreateTeamOption (Text)+createTeamOptionNameL f CreateTeamOption{..} = (\createTeamOptionName -> CreateTeamOption { createTeamOptionName, ..} ) <$> f createTeamOptionName+{-# INLINE createTeamOptionNameL #-}++-- | 'createTeamOptionPermission' Lens+createTeamOptionPermissionL :: Lens_' CreateTeamOption (Maybe E'Permission)+createTeamOptionPermissionL f CreateTeamOption{..} = (\createTeamOptionPermission -> CreateTeamOption { createTeamOptionPermission, ..} ) <$> f createTeamOptionPermission+{-# INLINE createTeamOptionPermissionL #-}++-- | 'createTeamOptionUnits' Lens+createTeamOptionUnitsL :: Lens_' CreateTeamOption (Maybe [Text])+createTeamOptionUnitsL f CreateTeamOption{..} = (\createTeamOptionUnits -> CreateTeamOption { createTeamOptionUnits, ..} ) <$> f createTeamOptionUnits+{-# INLINE createTeamOptionUnitsL #-}++-- | 'createTeamOptionUnitsMap' Lens+createTeamOptionUnitsMapL :: Lens_' CreateTeamOption (Maybe (Map.Map String Text))+createTeamOptionUnitsMapL f CreateTeamOption{..} = (\createTeamOptionUnitsMap -> CreateTeamOption { createTeamOptionUnitsMap, ..} ) <$> f createTeamOptionUnitsMap+{-# INLINE createTeamOptionUnitsMapL #-}++++-- * CreateUserOption++-- | 'createUserOptionCreatedAt' Lens+createUserOptionCreatedAtL :: Lens_' CreateUserOption (Maybe DateTime)+createUserOptionCreatedAtL f CreateUserOption{..} = (\createUserOptionCreatedAt -> CreateUserOption { createUserOptionCreatedAt, ..} ) <$> f createUserOptionCreatedAt+{-# INLINE createUserOptionCreatedAtL #-}++-- | 'createUserOptionEmail' Lens+createUserOptionEmailL :: Lens_' CreateUserOption (Text)+createUserOptionEmailL f CreateUserOption{..} = (\createUserOptionEmail -> CreateUserOption { createUserOptionEmail, ..} ) <$> f createUserOptionEmail+{-# INLINE createUserOptionEmailL #-}++-- | 'createUserOptionFullName' Lens+createUserOptionFullNameL :: Lens_' CreateUserOption (Maybe Text)+createUserOptionFullNameL f CreateUserOption{..} = (\createUserOptionFullName -> CreateUserOption { createUserOptionFullName, ..} ) <$> f createUserOptionFullName+{-# INLINE createUserOptionFullNameL #-}++-- | 'createUserOptionLoginName' Lens+createUserOptionLoginNameL :: Lens_' CreateUserOption (Maybe Text)+createUserOptionLoginNameL f CreateUserOption{..} = (\createUserOptionLoginName -> CreateUserOption { createUserOptionLoginName, ..} ) <$> f createUserOptionLoginName+{-# INLINE createUserOptionLoginNameL #-}++-- | 'createUserOptionMustChangePassword' Lens+createUserOptionMustChangePasswordL :: Lens_' CreateUserOption (Maybe Bool)+createUserOptionMustChangePasswordL f CreateUserOption{..} = (\createUserOptionMustChangePassword -> CreateUserOption { createUserOptionMustChangePassword, ..} ) <$> f createUserOptionMustChangePassword+{-# INLINE createUserOptionMustChangePasswordL #-}++-- | 'createUserOptionPassword' Lens+createUserOptionPasswordL :: Lens_' CreateUserOption (Text)+createUserOptionPasswordL f CreateUserOption{..} = (\createUserOptionPassword -> CreateUserOption { createUserOptionPassword, ..} ) <$> f createUserOptionPassword+{-# INLINE createUserOptionPasswordL #-}++-- | 'createUserOptionRestricted' Lens+createUserOptionRestrictedL :: Lens_' CreateUserOption (Maybe Bool)+createUserOptionRestrictedL f CreateUserOption{..} = (\createUserOptionRestricted -> CreateUserOption { createUserOptionRestricted, ..} ) <$> f createUserOptionRestricted+{-# INLINE createUserOptionRestrictedL #-}++-- | 'createUserOptionSendNotify' Lens+createUserOptionSendNotifyL :: Lens_' CreateUserOption (Maybe Bool)+createUserOptionSendNotifyL f CreateUserOption{..} = (\createUserOptionSendNotify -> CreateUserOption { createUserOptionSendNotify, ..} ) <$> f createUserOptionSendNotify+{-# INLINE createUserOptionSendNotifyL #-}++-- | 'createUserOptionSourceId' Lens+createUserOptionSourceIdL :: Lens_' CreateUserOption (Maybe Integer)+createUserOptionSourceIdL f CreateUserOption{..} = (\createUserOptionSourceId -> CreateUserOption { createUserOptionSourceId, ..} ) <$> f createUserOptionSourceId+{-# INLINE createUserOptionSourceIdL #-}++-- | 'createUserOptionUsername' Lens+createUserOptionUsernameL :: Lens_' CreateUserOption (Text)+createUserOptionUsernameL f CreateUserOption{..} = (\createUserOptionUsername -> CreateUserOption { createUserOptionUsername, ..} ) <$> f createUserOptionUsername+{-# INLINE createUserOptionUsernameL #-}++-- | 'createUserOptionVisibility' Lens+createUserOptionVisibilityL :: Lens_' CreateUserOption (Maybe Text)+createUserOptionVisibilityL f CreateUserOption{..} = (\createUserOptionVisibility -> CreateUserOption { createUserOptionVisibility, ..} ) <$> f createUserOptionVisibility+{-# INLINE createUserOptionVisibilityL #-}++++-- * CreateWikiPageOptions++-- | 'createWikiPageOptionsContentBase64' Lens+createWikiPageOptionsContentBase64L :: Lens_' CreateWikiPageOptions (Maybe Text)+createWikiPageOptionsContentBase64L f CreateWikiPageOptions{..} = (\createWikiPageOptionsContentBase64 -> CreateWikiPageOptions { createWikiPageOptionsContentBase64, ..} ) <$> f createWikiPageOptionsContentBase64+{-# INLINE createWikiPageOptionsContentBase64L #-}++-- | 'createWikiPageOptionsMessage' Lens+createWikiPageOptionsMessageL :: Lens_' CreateWikiPageOptions (Maybe Text)+createWikiPageOptionsMessageL f CreateWikiPageOptions{..} = (\createWikiPageOptionsMessage -> CreateWikiPageOptions { createWikiPageOptionsMessage, ..} ) <$> f createWikiPageOptionsMessage+{-# INLINE createWikiPageOptionsMessageL #-}++-- | 'createWikiPageOptionsTitle' Lens+createWikiPageOptionsTitleL :: Lens_' CreateWikiPageOptions (Maybe Text)+createWikiPageOptionsTitleL f CreateWikiPageOptions{..} = (\createWikiPageOptionsTitle -> CreateWikiPageOptions { createWikiPageOptionsTitle, ..} ) <$> f createWikiPageOptionsTitle+{-# INLINE createWikiPageOptionsTitleL #-}++++-- * Cron++-- | 'cronExecTimes' Lens+cronExecTimesL :: Lens_' Cron (Maybe Integer)+cronExecTimesL f Cron{..} = (\cronExecTimes -> Cron { cronExecTimes, ..} ) <$> f cronExecTimes+{-# INLINE cronExecTimesL #-}++-- | 'cronName' Lens+cronNameL :: Lens_' Cron (Maybe Text)+cronNameL f Cron{..} = (\cronName -> Cron { cronName, ..} ) <$> f cronName+{-# INLINE cronNameL #-}++-- | 'cronNext' Lens+cronNextL :: Lens_' Cron (Maybe DateTime)+cronNextL f Cron{..} = (\cronNext -> Cron { cronNext, ..} ) <$> f cronNext+{-# INLINE cronNextL #-}++-- | 'cronPrev' Lens+cronPrevL :: Lens_' Cron (Maybe DateTime)+cronPrevL f Cron{..} = (\cronPrev -> Cron { cronPrev, ..} ) <$> f cronPrev+{-# INLINE cronPrevL #-}++-- | 'cronSchedule' Lens+cronScheduleL :: Lens_' Cron (Maybe Text)+cronScheduleL f Cron{..} = (\cronSchedule -> Cron { cronSchedule, ..} ) <$> f cronSchedule+{-# INLINE cronScheduleL #-}++++-- * DeleteEmailOption++-- | 'deleteEmailOptionEmails' Lens+deleteEmailOptionEmailsL :: Lens_' DeleteEmailOption (Maybe [Text])+deleteEmailOptionEmailsL f DeleteEmailOption{..} = (\deleteEmailOptionEmails -> DeleteEmailOption { deleteEmailOptionEmails, ..} ) <$> f deleteEmailOptionEmails+{-# INLINE deleteEmailOptionEmailsL #-}++++-- * DeleteFileOptions++-- | 'deleteFileOptionsAuthor' Lens+deleteFileOptionsAuthorL :: Lens_' DeleteFileOptions (Maybe Identity)+deleteFileOptionsAuthorL f DeleteFileOptions{..} = (\deleteFileOptionsAuthor -> DeleteFileOptions { deleteFileOptionsAuthor, ..} ) <$> f deleteFileOptionsAuthor+{-# INLINE deleteFileOptionsAuthorL #-}++-- | 'deleteFileOptionsBranch' Lens+deleteFileOptionsBranchL :: Lens_' DeleteFileOptions (Maybe Text)+deleteFileOptionsBranchL f DeleteFileOptions{..} = (\deleteFileOptionsBranch -> DeleteFileOptions { deleteFileOptionsBranch, ..} ) <$> f deleteFileOptionsBranch+{-# INLINE deleteFileOptionsBranchL #-}++-- | 'deleteFileOptionsCommitter' Lens+deleteFileOptionsCommitterL :: Lens_' DeleteFileOptions (Maybe Identity)+deleteFileOptionsCommitterL f DeleteFileOptions{..} = (\deleteFileOptionsCommitter -> DeleteFileOptions { deleteFileOptionsCommitter, ..} ) <$> f deleteFileOptionsCommitter+{-# INLINE deleteFileOptionsCommitterL #-}++-- | 'deleteFileOptionsDates' Lens+deleteFileOptionsDatesL :: Lens_' DeleteFileOptions (Maybe CommitDateOptions)+deleteFileOptionsDatesL f DeleteFileOptions{..} = (\deleteFileOptionsDates -> DeleteFileOptions { deleteFileOptionsDates, ..} ) <$> f deleteFileOptionsDates+{-# INLINE deleteFileOptionsDatesL #-}++-- | 'deleteFileOptionsMessage' Lens+deleteFileOptionsMessageL :: Lens_' DeleteFileOptions (Maybe Text)+deleteFileOptionsMessageL f DeleteFileOptions{..} = (\deleteFileOptionsMessage -> DeleteFileOptions { deleteFileOptionsMessage, ..} ) <$> f deleteFileOptionsMessage+{-# INLINE deleteFileOptionsMessageL #-}++-- | 'deleteFileOptionsNewBranch' Lens+deleteFileOptionsNewBranchL :: Lens_' DeleteFileOptions (Maybe Text)+deleteFileOptionsNewBranchL f DeleteFileOptions{..} = (\deleteFileOptionsNewBranch -> DeleteFileOptions { deleteFileOptionsNewBranch, ..} ) <$> f deleteFileOptionsNewBranch+{-# INLINE deleteFileOptionsNewBranchL #-}++-- | 'deleteFileOptionsSha' Lens+deleteFileOptionsShaL :: Lens_' DeleteFileOptions (Text)+deleteFileOptionsShaL f DeleteFileOptions{..} = (\deleteFileOptionsSha -> DeleteFileOptions { deleteFileOptionsSha, ..} ) <$> f deleteFileOptionsSha+{-# INLINE deleteFileOptionsShaL #-}++-- | 'deleteFileOptionsSignoff' Lens+deleteFileOptionsSignoffL :: Lens_' DeleteFileOptions (Maybe Bool)+deleteFileOptionsSignoffL f DeleteFileOptions{..} = (\deleteFileOptionsSignoff -> DeleteFileOptions { deleteFileOptionsSignoff, ..} ) <$> f deleteFileOptionsSignoff+{-# INLINE deleteFileOptionsSignoffL #-}++++-- * DeployKey++-- | 'deployKeyCreatedAt' Lens+deployKeyCreatedAtL :: Lens_' DeployKey (Maybe DateTime)+deployKeyCreatedAtL f DeployKey{..} = (\deployKeyCreatedAt -> DeployKey { deployKeyCreatedAt, ..} ) <$> f deployKeyCreatedAt+{-# INLINE deployKeyCreatedAtL #-}++-- | 'deployKeyFingerprint' Lens+deployKeyFingerprintL :: Lens_' DeployKey (Maybe Text)+deployKeyFingerprintL f DeployKey{..} = (\deployKeyFingerprint -> DeployKey { deployKeyFingerprint, ..} ) <$> f deployKeyFingerprint+{-# INLINE deployKeyFingerprintL #-}++-- | 'deployKeyId' Lens+deployKeyIdL :: Lens_' DeployKey (Maybe Integer)+deployKeyIdL f DeployKey{..} = (\deployKeyId -> DeployKey { deployKeyId, ..} ) <$> f deployKeyId+{-# INLINE deployKeyIdL #-}++-- | 'deployKeyKey' Lens+deployKeyKeyL :: Lens_' DeployKey (Maybe Text)+deployKeyKeyL f DeployKey{..} = (\deployKeyKey -> DeployKey { deployKeyKey, ..} ) <$> f deployKeyKey+{-# INLINE deployKeyKeyL #-}++-- | 'deployKeyKeyId' Lens+deployKeyKeyIdL :: Lens_' DeployKey (Maybe Integer)+deployKeyKeyIdL f DeployKey{..} = (\deployKeyKeyId -> DeployKey { deployKeyKeyId, ..} ) <$> f deployKeyKeyId+{-# INLINE deployKeyKeyIdL #-}++-- | 'deployKeyReadOnly' Lens+deployKeyReadOnlyL :: Lens_' DeployKey (Maybe Bool)+deployKeyReadOnlyL f DeployKey{..} = (\deployKeyReadOnly -> DeployKey { deployKeyReadOnly, ..} ) <$> f deployKeyReadOnly+{-# INLINE deployKeyReadOnlyL #-}++-- | 'deployKeyRepository' Lens+deployKeyRepositoryL :: Lens_' DeployKey (Maybe Repository)+deployKeyRepositoryL f DeployKey{..} = (\deployKeyRepository -> DeployKey { deployKeyRepository, ..} ) <$> f deployKeyRepository+{-# INLINE deployKeyRepositoryL #-}++-- | 'deployKeyTitle' Lens+deployKeyTitleL :: Lens_' DeployKey (Maybe Text)+deployKeyTitleL f DeployKey{..} = (\deployKeyTitle -> DeployKey { deployKeyTitle, ..} ) <$> f deployKeyTitle+{-# INLINE deployKeyTitleL #-}++-- | 'deployKeyUrl' Lens+deployKeyUrlL :: Lens_' DeployKey (Maybe Text)+deployKeyUrlL f DeployKey{..} = (\deployKeyUrl -> DeployKey { deployKeyUrl, ..} ) <$> f deployKeyUrl+{-# INLINE deployKeyUrlL #-}++++-- * DismissPullReviewOptions++-- | 'dismissPullReviewOptionsMessage' Lens+dismissPullReviewOptionsMessageL :: Lens_' DismissPullReviewOptions (Maybe Text)+dismissPullReviewOptionsMessageL f DismissPullReviewOptions{..} = (\dismissPullReviewOptionsMessage -> DismissPullReviewOptions { dismissPullReviewOptionsMessage, ..} ) <$> f dismissPullReviewOptionsMessage+{-# INLINE dismissPullReviewOptionsMessageL #-}++-- | 'dismissPullReviewOptionsPriors' Lens+dismissPullReviewOptionsPriorsL :: Lens_' DismissPullReviewOptions (Maybe Bool)+dismissPullReviewOptionsPriorsL f DismissPullReviewOptions{..} = (\dismissPullReviewOptionsPriors -> DismissPullReviewOptions { dismissPullReviewOptionsPriors, ..} ) <$> f dismissPullReviewOptionsPriors+{-# INLINE dismissPullReviewOptionsPriorsL #-}++++-- * EditAttachmentOptions++-- | 'editAttachmentOptionsName' Lens+editAttachmentOptionsNameL :: Lens_' EditAttachmentOptions (Maybe Text)+editAttachmentOptionsNameL f EditAttachmentOptions{..} = (\editAttachmentOptionsName -> EditAttachmentOptions { editAttachmentOptionsName, ..} ) <$> f editAttachmentOptionsName+{-# INLINE editAttachmentOptionsNameL #-}++++-- * EditBranchProtectionOption++-- | 'editBranchProtectionOptionApprovalsWhitelistTeams' Lens+editBranchProtectionOptionApprovalsWhitelistTeamsL :: Lens_' EditBranchProtectionOption (Maybe [Text])+editBranchProtectionOptionApprovalsWhitelistTeamsL f EditBranchProtectionOption{..} = (\editBranchProtectionOptionApprovalsWhitelistTeams -> EditBranchProtectionOption { editBranchProtectionOptionApprovalsWhitelistTeams, ..} ) <$> f editBranchProtectionOptionApprovalsWhitelistTeams+{-# INLINE editBranchProtectionOptionApprovalsWhitelistTeamsL #-}++-- | 'editBranchProtectionOptionApprovalsWhitelistUsername' Lens+editBranchProtectionOptionApprovalsWhitelistUsernameL :: Lens_' EditBranchProtectionOption (Maybe [Text])+editBranchProtectionOptionApprovalsWhitelistUsernameL f EditBranchProtectionOption{..} = (\editBranchProtectionOptionApprovalsWhitelistUsername -> EditBranchProtectionOption { editBranchProtectionOptionApprovalsWhitelistUsername, ..} ) <$> f editBranchProtectionOptionApprovalsWhitelistUsername+{-# INLINE editBranchProtectionOptionApprovalsWhitelistUsernameL #-}++-- | 'editBranchProtectionOptionBlockOnOfficialReviewRequests' Lens+editBranchProtectionOptionBlockOnOfficialReviewRequestsL :: Lens_' EditBranchProtectionOption (Maybe Bool)+editBranchProtectionOptionBlockOnOfficialReviewRequestsL f EditBranchProtectionOption{..} = (\editBranchProtectionOptionBlockOnOfficialReviewRequests -> EditBranchProtectionOption { editBranchProtectionOptionBlockOnOfficialReviewRequests, ..} ) <$> f editBranchProtectionOptionBlockOnOfficialReviewRequests+{-# INLINE editBranchProtectionOptionBlockOnOfficialReviewRequestsL #-}++-- | 'editBranchProtectionOptionBlockOnOutdatedBranch' Lens+editBranchProtectionOptionBlockOnOutdatedBranchL :: Lens_' EditBranchProtectionOption (Maybe Bool)+editBranchProtectionOptionBlockOnOutdatedBranchL f EditBranchProtectionOption{..} = (\editBranchProtectionOptionBlockOnOutdatedBranch -> EditBranchProtectionOption { editBranchProtectionOptionBlockOnOutdatedBranch, ..} ) <$> f editBranchProtectionOptionBlockOnOutdatedBranch+{-# INLINE editBranchProtectionOptionBlockOnOutdatedBranchL #-}++-- | 'editBranchProtectionOptionBlockOnRejectedReviews' Lens+editBranchProtectionOptionBlockOnRejectedReviewsL :: Lens_' EditBranchProtectionOption (Maybe Bool)+editBranchProtectionOptionBlockOnRejectedReviewsL f EditBranchProtectionOption{..} = (\editBranchProtectionOptionBlockOnRejectedReviews -> EditBranchProtectionOption { editBranchProtectionOptionBlockOnRejectedReviews, ..} ) <$> f editBranchProtectionOptionBlockOnRejectedReviews+{-# INLINE editBranchProtectionOptionBlockOnRejectedReviewsL #-}++-- | 'editBranchProtectionOptionDismissStaleApprovals' Lens+editBranchProtectionOptionDismissStaleApprovalsL :: Lens_' EditBranchProtectionOption (Maybe Bool)+editBranchProtectionOptionDismissStaleApprovalsL f EditBranchProtectionOption{..} = (\editBranchProtectionOptionDismissStaleApprovals -> EditBranchProtectionOption { editBranchProtectionOptionDismissStaleApprovals, ..} ) <$> f editBranchProtectionOptionDismissStaleApprovals+{-# INLINE editBranchProtectionOptionDismissStaleApprovalsL #-}++-- | 'editBranchProtectionOptionEnableApprovalsWhitelist' Lens+editBranchProtectionOptionEnableApprovalsWhitelistL :: Lens_' EditBranchProtectionOption (Maybe Bool)+editBranchProtectionOptionEnableApprovalsWhitelistL f EditBranchProtectionOption{..} = (\editBranchProtectionOptionEnableApprovalsWhitelist -> EditBranchProtectionOption { editBranchProtectionOptionEnableApprovalsWhitelist, ..} ) <$> f editBranchProtectionOptionEnableApprovalsWhitelist+{-# INLINE editBranchProtectionOptionEnableApprovalsWhitelistL #-}++-- | 'editBranchProtectionOptionEnableMergeWhitelist' Lens+editBranchProtectionOptionEnableMergeWhitelistL :: Lens_' EditBranchProtectionOption (Maybe Bool)+editBranchProtectionOptionEnableMergeWhitelistL f EditBranchProtectionOption{..} = (\editBranchProtectionOptionEnableMergeWhitelist -> EditBranchProtectionOption { editBranchProtectionOptionEnableMergeWhitelist, ..} ) <$> f editBranchProtectionOptionEnableMergeWhitelist+{-# INLINE editBranchProtectionOptionEnableMergeWhitelistL #-}++-- | 'editBranchProtectionOptionEnablePush' Lens+editBranchProtectionOptionEnablePushL :: Lens_' EditBranchProtectionOption (Maybe Bool)+editBranchProtectionOptionEnablePushL f EditBranchProtectionOption{..} = (\editBranchProtectionOptionEnablePush -> EditBranchProtectionOption { editBranchProtectionOptionEnablePush, ..} ) <$> f editBranchProtectionOptionEnablePush+{-# INLINE editBranchProtectionOptionEnablePushL #-}++-- | 'editBranchProtectionOptionEnablePushWhitelist' Lens+editBranchProtectionOptionEnablePushWhitelistL :: Lens_' EditBranchProtectionOption (Maybe Bool)+editBranchProtectionOptionEnablePushWhitelistL f EditBranchProtectionOption{..} = (\editBranchProtectionOptionEnablePushWhitelist -> EditBranchProtectionOption { editBranchProtectionOptionEnablePushWhitelist, ..} ) <$> f editBranchProtectionOptionEnablePushWhitelist+{-# INLINE editBranchProtectionOptionEnablePushWhitelistL #-}++-- | 'editBranchProtectionOptionEnableStatusCheck' Lens+editBranchProtectionOptionEnableStatusCheckL :: Lens_' EditBranchProtectionOption (Maybe Bool)+editBranchProtectionOptionEnableStatusCheckL f EditBranchProtectionOption{..} = (\editBranchProtectionOptionEnableStatusCheck -> EditBranchProtectionOption { editBranchProtectionOptionEnableStatusCheck, ..} ) <$> f editBranchProtectionOptionEnableStatusCheck+{-# INLINE editBranchProtectionOptionEnableStatusCheckL #-}++-- | 'editBranchProtectionOptionMergeWhitelistTeams' Lens+editBranchProtectionOptionMergeWhitelistTeamsL :: Lens_' EditBranchProtectionOption (Maybe [Text])+editBranchProtectionOptionMergeWhitelistTeamsL f EditBranchProtectionOption{..} = (\editBranchProtectionOptionMergeWhitelistTeams -> EditBranchProtectionOption { editBranchProtectionOptionMergeWhitelistTeams, ..} ) <$> f editBranchProtectionOptionMergeWhitelistTeams+{-# INLINE editBranchProtectionOptionMergeWhitelistTeamsL #-}++-- | 'editBranchProtectionOptionMergeWhitelistUsernames' Lens+editBranchProtectionOptionMergeWhitelistUsernamesL :: Lens_' EditBranchProtectionOption (Maybe [Text])+editBranchProtectionOptionMergeWhitelistUsernamesL f EditBranchProtectionOption{..} = (\editBranchProtectionOptionMergeWhitelistUsernames -> EditBranchProtectionOption { editBranchProtectionOptionMergeWhitelistUsernames, ..} ) <$> f editBranchProtectionOptionMergeWhitelistUsernames+{-# INLINE editBranchProtectionOptionMergeWhitelistUsernamesL #-}++-- | 'editBranchProtectionOptionProtectedFilePatterns' Lens+editBranchProtectionOptionProtectedFilePatternsL :: Lens_' EditBranchProtectionOption (Maybe Text)+editBranchProtectionOptionProtectedFilePatternsL f EditBranchProtectionOption{..} = (\editBranchProtectionOptionProtectedFilePatterns -> EditBranchProtectionOption { editBranchProtectionOptionProtectedFilePatterns, ..} ) <$> f editBranchProtectionOptionProtectedFilePatterns+{-# INLINE editBranchProtectionOptionProtectedFilePatternsL #-}++-- | 'editBranchProtectionOptionPushWhitelistDeployKeys' Lens+editBranchProtectionOptionPushWhitelistDeployKeysL :: Lens_' EditBranchProtectionOption (Maybe Bool)+editBranchProtectionOptionPushWhitelistDeployKeysL f EditBranchProtectionOption{..} = (\editBranchProtectionOptionPushWhitelistDeployKeys -> EditBranchProtectionOption { editBranchProtectionOptionPushWhitelistDeployKeys, ..} ) <$> f editBranchProtectionOptionPushWhitelistDeployKeys+{-# INLINE editBranchProtectionOptionPushWhitelistDeployKeysL #-}++-- | 'editBranchProtectionOptionPushWhitelistTeams' Lens+editBranchProtectionOptionPushWhitelistTeamsL :: Lens_' EditBranchProtectionOption (Maybe [Text])+editBranchProtectionOptionPushWhitelistTeamsL f EditBranchProtectionOption{..} = (\editBranchProtectionOptionPushWhitelistTeams -> EditBranchProtectionOption { editBranchProtectionOptionPushWhitelistTeams, ..} ) <$> f editBranchProtectionOptionPushWhitelistTeams+{-# INLINE editBranchProtectionOptionPushWhitelistTeamsL #-}++-- | 'editBranchProtectionOptionPushWhitelistUsernames' Lens+editBranchProtectionOptionPushWhitelistUsernamesL :: Lens_' EditBranchProtectionOption (Maybe [Text])+editBranchProtectionOptionPushWhitelistUsernamesL f EditBranchProtectionOption{..} = (\editBranchProtectionOptionPushWhitelistUsernames -> EditBranchProtectionOption { editBranchProtectionOptionPushWhitelistUsernames, ..} ) <$> f editBranchProtectionOptionPushWhitelistUsernames+{-# INLINE editBranchProtectionOptionPushWhitelistUsernamesL #-}++-- | 'editBranchProtectionOptionRequireSignedCommits' Lens+editBranchProtectionOptionRequireSignedCommitsL :: Lens_' EditBranchProtectionOption (Maybe Bool)+editBranchProtectionOptionRequireSignedCommitsL f EditBranchProtectionOption{..} = (\editBranchProtectionOptionRequireSignedCommits -> EditBranchProtectionOption { editBranchProtectionOptionRequireSignedCommits, ..} ) <$> f editBranchProtectionOptionRequireSignedCommits+{-# INLINE editBranchProtectionOptionRequireSignedCommitsL #-}++-- | 'editBranchProtectionOptionRequiredApprovals' Lens+editBranchProtectionOptionRequiredApprovalsL :: Lens_' EditBranchProtectionOption (Maybe Integer)+editBranchProtectionOptionRequiredApprovalsL f EditBranchProtectionOption{..} = (\editBranchProtectionOptionRequiredApprovals -> EditBranchProtectionOption { editBranchProtectionOptionRequiredApprovals, ..} ) <$> f editBranchProtectionOptionRequiredApprovals+{-# INLINE editBranchProtectionOptionRequiredApprovalsL #-}++-- | 'editBranchProtectionOptionStatusCheckContexts' Lens+editBranchProtectionOptionStatusCheckContextsL :: Lens_' EditBranchProtectionOption (Maybe [Text])+editBranchProtectionOptionStatusCheckContextsL f EditBranchProtectionOption{..} = (\editBranchProtectionOptionStatusCheckContexts -> EditBranchProtectionOption { editBranchProtectionOptionStatusCheckContexts, ..} ) <$> f editBranchProtectionOptionStatusCheckContexts+{-# INLINE editBranchProtectionOptionStatusCheckContextsL #-}++-- | 'editBranchProtectionOptionUnprotectedFilePatterns' Lens+editBranchProtectionOptionUnprotectedFilePatternsL :: Lens_' EditBranchProtectionOption (Maybe Text)+editBranchProtectionOptionUnprotectedFilePatternsL f EditBranchProtectionOption{..} = (\editBranchProtectionOptionUnprotectedFilePatterns -> EditBranchProtectionOption { editBranchProtectionOptionUnprotectedFilePatterns, ..} ) <$> f editBranchProtectionOptionUnprotectedFilePatterns+{-# INLINE editBranchProtectionOptionUnprotectedFilePatternsL #-}++++-- * EditDeadlineOption++-- | 'editDeadlineOptionDueDate' Lens+editDeadlineOptionDueDateL :: Lens_' EditDeadlineOption (DateTime)+editDeadlineOptionDueDateL f EditDeadlineOption{..} = (\editDeadlineOptionDueDate -> EditDeadlineOption { editDeadlineOptionDueDate, ..} ) <$> f editDeadlineOptionDueDate+{-# INLINE editDeadlineOptionDueDateL #-}++++-- * EditGitHookOption++-- | 'editGitHookOptionContent' Lens+editGitHookOptionContentL :: Lens_' EditGitHookOption (Maybe Text)+editGitHookOptionContentL f EditGitHookOption{..} = (\editGitHookOptionContent -> EditGitHookOption { editGitHookOptionContent, ..} ) <$> f editGitHookOptionContent+{-# INLINE editGitHookOptionContentL #-}++++-- * EditHookOption++-- | 'editHookOptionActive' Lens+editHookOptionActiveL :: Lens_' EditHookOption (Maybe Bool)+editHookOptionActiveL f EditHookOption{..} = (\editHookOptionActive -> EditHookOption { editHookOptionActive, ..} ) <$> f editHookOptionActive+{-# INLINE editHookOptionActiveL #-}++-- | 'editHookOptionAuthorizationHeader' Lens+editHookOptionAuthorizationHeaderL :: Lens_' EditHookOption (Maybe Text)+editHookOptionAuthorizationHeaderL f EditHookOption{..} = (\editHookOptionAuthorizationHeader -> EditHookOption { editHookOptionAuthorizationHeader, ..} ) <$> f editHookOptionAuthorizationHeader+{-# INLINE editHookOptionAuthorizationHeaderL #-}++-- | 'editHookOptionBranchFilter' Lens+editHookOptionBranchFilterL :: Lens_' EditHookOption (Maybe Text)+editHookOptionBranchFilterL f EditHookOption{..} = (\editHookOptionBranchFilter -> EditHookOption { editHookOptionBranchFilter, ..} ) <$> f editHookOptionBranchFilter+{-# INLINE editHookOptionBranchFilterL #-}++-- | 'editHookOptionConfig' Lens+editHookOptionConfigL :: Lens_' EditHookOption (Maybe (Map.Map String Text))+editHookOptionConfigL f EditHookOption{..} = (\editHookOptionConfig -> EditHookOption { editHookOptionConfig, ..} ) <$> f editHookOptionConfig+{-# INLINE editHookOptionConfigL #-}++-- | 'editHookOptionEvents' Lens+editHookOptionEventsL :: Lens_' EditHookOption (Maybe [Text])+editHookOptionEventsL f EditHookOption{..} = (\editHookOptionEvents -> EditHookOption { editHookOptionEvents, ..} ) <$> f editHookOptionEvents+{-# INLINE editHookOptionEventsL #-}++++-- * EditIssueCommentOption++-- | 'editIssueCommentOptionBody' Lens+editIssueCommentOptionBodyL :: Lens_' EditIssueCommentOption (Text)+editIssueCommentOptionBodyL f EditIssueCommentOption{..} = (\editIssueCommentOptionBody -> EditIssueCommentOption { editIssueCommentOptionBody, ..} ) <$> f editIssueCommentOptionBody+{-# INLINE editIssueCommentOptionBodyL #-}++++-- * EditIssueOption++-- | 'editIssueOptionAssignee' Lens+editIssueOptionAssigneeL :: Lens_' EditIssueOption (Maybe Text)+editIssueOptionAssigneeL f EditIssueOption{..} = (\editIssueOptionAssignee -> EditIssueOption { editIssueOptionAssignee, ..} ) <$> f editIssueOptionAssignee+{-# INLINE editIssueOptionAssigneeL #-}++-- | 'editIssueOptionAssignees' Lens+editIssueOptionAssigneesL :: Lens_' EditIssueOption (Maybe [Text])+editIssueOptionAssigneesL f EditIssueOption{..} = (\editIssueOptionAssignees -> EditIssueOption { editIssueOptionAssignees, ..} ) <$> f editIssueOptionAssignees+{-# INLINE editIssueOptionAssigneesL #-}++-- | 'editIssueOptionBody' Lens+editIssueOptionBodyL :: Lens_' EditIssueOption (Maybe Text)+editIssueOptionBodyL f EditIssueOption{..} = (\editIssueOptionBody -> EditIssueOption { editIssueOptionBody, ..} ) <$> f editIssueOptionBody+{-# INLINE editIssueOptionBodyL #-}++-- | 'editIssueOptionDueDate' Lens+editIssueOptionDueDateL :: Lens_' EditIssueOption (Maybe DateTime)+editIssueOptionDueDateL f EditIssueOption{..} = (\editIssueOptionDueDate -> EditIssueOption { editIssueOptionDueDate, ..} ) <$> f editIssueOptionDueDate+{-# INLINE editIssueOptionDueDateL #-}++-- | 'editIssueOptionMilestone' Lens+editIssueOptionMilestoneL :: Lens_' EditIssueOption (Maybe Integer)+editIssueOptionMilestoneL f EditIssueOption{..} = (\editIssueOptionMilestone -> EditIssueOption { editIssueOptionMilestone, ..} ) <$> f editIssueOptionMilestone+{-# INLINE editIssueOptionMilestoneL #-}++-- | 'editIssueOptionRef' Lens+editIssueOptionRefL :: Lens_' EditIssueOption (Maybe Text)+editIssueOptionRefL f EditIssueOption{..} = (\editIssueOptionRef -> EditIssueOption { editIssueOptionRef, ..} ) <$> f editIssueOptionRef+{-# INLINE editIssueOptionRefL #-}++-- | 'editIssueOptionState' Lens+editIssueOptionStateL :: Lens_' EditIssueOption (Maybe Text)+editIssueOptionStateL f EditIssueOption{..} = (\editIssueOptionState -> EditIssueOption { editIssueOptionState, ..} ) <$> f editIssueOptionState+{-# INLINE editIssueOptionStateL #-}++-- | 'editIssueOptionTitle' Lens+editIssueOptionTitleL :: Lens_' EditIssueOption (Maybe Text)+editIssueOptionTitleL f EditIssueOption{..} = (\editIssueOptionTitle -> EditIssueOption { editIssueOptionTitle, ..} ) <$> f editIssueOptionTitle+{-# INLINE editIssueOptionTitleL #-}++-- | 'editIssueOptionUnsetDueDate' Lens+editIssueOptionUnsetDueDateL :: Lens_' EditIssueOption (Maybe Bool)+editIssueOptionUnsetDueDateL f EditIssueOption{..} = (\editIssueOptionUnsetDueDate -> EditIssueOption { editIssueOptionUnsetDueDate, ..} ) <$> f editIssueOptionUnsetDueDate+{-# INLINE editIssueOptionUnsetDueDateL #-}++++-- * EditLabelOption++-- | 'editLabelOptionColor' Lens+editLabelOptionColorL :: Lens_' EditLabelOption (Maybe Text)+editLabelOptionColorL f EditLabelOption{..} = (\editLabelOptionColor -> EditLabelOption { editLabelOptionColor, ..} ) <$> f editLabelOptionColor+{-# INLINE editLabelOptionColorL #-}++-- | 'editLabelOptionDescription' Lens+editLabelOptionDescriptionL :: Lens_' EditLabelOption (Maybe Text)+editLabelOptionDescriptionL f EditLabelOption{..} = (\editLabelOptionDescription -> EditLabelOption { editLabelOptionDescription, ..} ) <$> f editLabelOptionDescription+{-# INLINE editLabelOptionDescriptionL #-}++-- | 'editLabelOptionExclusive' Lens+editLabelOptionExclusiveL :: Lens_' EditLabelOption (Maybe Bool)+editLabelOptionExclusiveL f EditLabelOption{..} = (\editLabelOptionExclusive -> EditLabelOption { editLabelOptionExclusive, ..} ) <$> f editLabelOptionExclusive+{-# INLINE editLabelOptionExclusiveL #-}++-- | 'editLabelOptionName' Lens+editLabelOptionNameL :: Lens_' EditLabelOption (Maybe Text)+editLabelOptionNameL f EditLabelOption{..} = (\editLabelOptionName -> EditLabelOption { editLabelOptionName, ..} ) <$> f editLabelOptionName+{-# INLINE editLabelOptionNameL #-}++++-- * EditMilestoneOption++-- | 'editMilestoneOptionDescription' Lens+editMilestoneOptionDescriptionL :: Lens_' EditMilestoneOption (Maybe Text)+editMilestoneOptionDescriptionL f EditMilestoneOption{..} = (\editMilestoneOptionDescription -> EditMilestoneOption { editMilestoneOptionDescription, ..} ) <$> f editMilestoneOptionDescription+{-# INLINE editMilestoneOptionDescriptionL #-}++-- | 'editMilestoneOptionDueOn' Lens+editMilestoneOptionDueOnL :: Lens_' EditMilestoneOption (Maybe DateTime)+editMilestoneOptionDueOnL f EditMilestoneOption{..} = (\editMilestoneOptionDueOn -> EditMilestoneOption { editMilestoneOptionDueOn, ..} ) <$> f editMilestoneOptionDueOn+{-# INLINE editMilestoneOptionDueOnL #-}++-- | 'editMilestoneOptionState' Lens+editMilestoneOptionStateL :: Lens_' EditMilestoneOption (Maybe Text)+editMilestoneOptionStateL f EditMilestoneOption{..} = (\editMilestoneOptionState -> EditMilestoneOption { editMilestoneOptionState, ..} ) <$> f editMilestoneOptionState+{-# INLINE editMilestoneOptionStateL #-}++-- | 'editMilestoneOptionTitle' Lens+editMilestoneOptionTitleL :: Lens_' EditMilestoneOption (Maybe Text)+editMilestoneOptionTitleL f EditMilestoneOption{..} = (\editMilestoneOptionTitle -> EditMilestoneOption { editMilestoneOptionTitle, ..} ) <$> f editMilestoneOptionTitle+{-# INLINE editMilestoneOptionTitleL #-}++++-- * EditOrgOption++-- | 'editOrgOptionDescription' Lens+editOrgOptionDescriptionL :: Lens_' EditOrgOption (Maybe Text)+editOrgOptionDescriptionL f EditOrgOption{..} = (\editOrgOptionDescription -> EditOrgOption { editOrgOptionDescription, ..} ) <$> f editOrgOptionDescription+{-# INLINE editOrgOptionDescriptionL #-}++-- | 'editOrgOptionFullName' Lens+editOrgOptionFullNameL :: Lens_' EditOrgOption (Maybe Text)+editOrgOptionFullNameL f EditOrgOption{..} = (\editOrgOptionFullName -> EditOrgOption { editOrgOptionFullName, ..} ) <$> f editOrgOptionFullName+{-# INLINE editOrgOptionFullNameL #-}++-- | 'editOrgOptionLocation' Lens+editOrgOptionLocationL :: Lens_' EditOrgOption (Maybe Text)+editOrgOptionLocationL f EditOrgOption{..} = (\editOrgOptionLocation -> EditOrgOption { editOrgOptionLocation, ..} ) <$> f editOrgOptionLocation+{-# INLINE editOrgOptionLocationL #-}++-- | 'editOrgOptionRepoAdminChangeTeamAccess' Lens+editOrgOptionRepoAdminChangeTeamAccessL :: Lens_' EditOrgOption (Maybe Bool)+editOrgOptionRepoAdminChangeTeamAccessL f EditOrgOption{..} = (\editOrgOptionRepoAdminChangeTeamAccess -> EditOrgOption { editOrgOptionRepoAdminChangeTeamAccess, ..} ) <$> f editOrgOptionRepoAdminChangeTeamAccess+{-# INLINE editOrgOptionRepoAdminChangeTeamAccessL #-}++-- | 'editOrgOptionVisibility' Lens+editOrgOptionVisibilityL :: Lens_' EditOrgOption (Maybe E'Visibility)+editOrgOptionVisibilityL f EditOrgOption{..} = (\editOrgOptionVisibility -> EditOrgOption { editOrgOptionVisibility, ..} ) <$> f editOrgOptionVisibility+{-# INLINE editOrgOptionVisibilityL #-}++-- | 'editOrgOptionWebsite' Lens+editOrgOptionWebsiteL :: Lens_' EditOrgOption (Maybe Text)+editOrgOptionWebsiteL f EditOrgOption{..} = (\editOrgOptionWebsite -> EditOrgOption { editOrgOptionWebsite, ..} ) <$> f editOrgOptionWebsite+{-# INLINE editOrgOptionWebsiteL #-}++++-- * EditPullRequestOption++-- | 'editPullRequestOptionAllowMaintainerEdit' Lens+editPullRequestOptionAllowMaintainerEditL :: Lens_' EditPullRequestOption (Maybe Bool)+editPullRequestOptionAllowMaintainerEditL f EditPullRequestOption{..} = (\editPullRequestOptionAllowMaintainerEdit -> EditPullRequestOption { editPullRequestOptionAllowMaintainerEdit, ..} ) <$> f editPullRequestOptionAllowMaintainerEdit+{-# INLINE editPullRequestOptionAllowMaintainerEditL #-}++-- | 'editPullRequestOptionAssignee' Lens+editPullRequestOptionAssigneeL :: Lens_' EditPullRequestOption (Maybe Text)+editPullRequestOptionAssigneeL f EditPullRequestOption{..} = (\editPullRequestOptionAssignee -> EditPullRequestOption { editPullRequestOptionAssignee, ..} ) <$> f editPullRequestOptionAssignee+{-# INLINE editPullRequestOptionAssigneeL #-}++-- | 'editPullRequestOptionAssignees' Lens+editPullRequestOptionAssigneesL :: Lens_' EditPullRequestOption (Maybe [Text])+editPullRequestOptionAssigneesL f EditPullRequestOption{..} = (\editPullRequestOptionAssignees -> EditPullRequestOption { editPullRequestOptionAssignees, ..} ) <$> f editPullRequestOptionAssignees+{-# INLINE editPullRequestOptionAssigneesL #-}++-- | 'editPullRequestOptionBase' Lens+editPullRequestOptionBaseL :: Lens_' EditPullRequestOption (Maybe Text)+editPullRequestOptionBaseL f EditPullRequestOption{..} = (\editPullRequestOptionBase -> EditPullRequestOption { editPullRequestOptionBase, ..} ) <$> f editPullRequestOptionBase+{-# INLINE editPullRequestOptionBaseL #-}++-- | 'editPullRequestOptionBody' Lens+editPullRequestOptionBodyL :: Lens_' EditPullRequestOption (Maybe Text)+editPullRequestOptionBodyL f EditPullRequestOption{..} = (\editPullRequestOptionBody -> EditPullRequestOption { editPullRequestOptionBody, ..} ) <$> f editPullRequestOptionBody+{-# INLINE editPullRequestOptionBodyL #-}++-- | 'editPullRequestOptionDueDate' Lens+editPullRequestOptionDueDateL :: Lens_' EditPullRequestOption (Maybe DateTime)+editPullRequestOptionDueDateL f EditPullRequestOption{..} = (\editPullRequestOptionDueDate -> EditPullRequestOption { editPullRequestOptionDueDate, ..} ) <$> f editPullRequestOptionDueDate+{-# INLINE editPullRequestOptionDueDateL #-}++-- | 'editPullRequestOptionLabels' Lens+editPullRequestOptionLabelsL :: Lens_' EditPullRequestOption (Maybe [Integer])+editPullRequestOptionLabelsL f EditPullRequestOption{..} = (\editPullRequestOptionLabels -> EditPullRequestOption { editPullRequestOptionLabels, ..} ) <$> f editPullRequestOptionLabels+{-# INLINE editPullRequestOptionLabelsL #-}++-- | 'editPullRequestOptionMilestone' Lens+editPullRequestOptionMilestoneL :: Lens_' EditPullRequestOption (Maybe Integer)+editPullRequestOptionMilestoneL f EditPullRequestOption{..} = (\editPullRequestOptionMilestone -> EditPullRequestOption { editPullRequestOptionMilestone, ..} ) <$> f editPullRequestOptionMilestone+{-# INLINE editPullRequestOptionMilestoneL #-}++-- | 'editPullRequestOptionState' Lens+editPullRequestOptionStateL :: Lens_' EditPullRequestOption (Maybe Text)+editPullRequestOptionStateL f EditPullRequestOption{..} = (\editPullRequestOptionState -> EditPullRequestOption { editPullRequestOptionState, ..} ) <$> f editPullRequestOptionState+{-# INLINE editPullRequestOptionStateL #-}++-- | 'editPullRequestOptionTitle' Lens+editPullRequestOptionTitleL :: Lens_' EditPullRequestOption (Maybe Text)+editPullRequestOptionTitleL f EditPullRequestOption{..} = (\editPullRequestOptionTitle -> EditPullRequestOption { editPullRequestOptionTitle, ..} ) <$> f editPullRequestOptionTitle+{-# INLINE editPullRequestOptionTitleL #-}++-- | 'editPullRequestOptionUnsetDueDate' Lens+editPullRequestOptionUnsetDueDateL :: Lens_' EditPullRequestOption (Maybe Bool)+editPullRequestOptionUnsetDueDateL f EditPullRequestOption{..} = (\editPullRequestOptionUnsetDueDate -> EditPullRequestOption { editPullRequestOptionUnsetDueDate, ..} ) <$> f editPullRequestOptionUnsetDueDate+{-# INLINE editPullRequestOptionUnsetDueDateL #-}++++-- * EditReactionOption++-- | 'editReactionOptionContent' Lens+editReactionOptionContentL :: Lens_' EditReactionOption (Maybe Text)+editReactionOptionContentL f EditReactionOption{..} = (\editReactionOptionContent -> EditReactionOption { editReactionOptionContent, ..} ) <$> f editReactionOptionContent+{-# INLINE editReactionOptionContentL #-}++++-- * EditReleaseOption++-- | 'editReleaseOptionBody' Lens+editReleaseOptionBodyL :: Lens_' EditReleaseOption (Maybe Text)+editReleaseOptionBodyL f EditReleaseOption{..} = (\editReleaseOptionBody -> EditReleaseOption { editReleaseOptionBody, ..} ) <$> f editReleaseOptionBody+{-# INLINE editReleaseOptionBodyL #-}++-- | 'editReleaseOptionDraft' Lens+editReleaseOptionDraftL :: Lens_' EditReleaseOption (Maybe Bool)+editReleaseOptionDraftL f EditReleaseOption{..} = (\editReleaseOptionDraft -> EditReleaseOption { editReleaseOptionDraft, ..} ) <$> f editReleaseOptionDraft+{-# INLINE editReleaseOptionDraftL #-}++-- | 'editReleaseOptionName' Lens+editReleaseOptionNameL :: Lens_' EditReleaseOption (Maybe Text)+editReleaseOptionNameL f EditReleaseOption{..} = (\editReleaseOptionName -> EditReleaseOption { editReleaseOptionName, ..} ) <$> f editReleaseOptionName+{-# INLINE editReleaseOptionNameL #-}++-- | 'editReleaseOptionPrerelease' Lens+editReleaseOptionPrereleaseL :: Lens_' EditReleaseOption (Maybe Bool)+editReleaseOptionPrereleaseL f EditReleaseOption{..} = (\editReleaseOptionPrerelease -> EditReleaseOption { editReleaseOptionPrerelease, ..} ) <$> f editReleaseOptionPrerelease+{-# INLINE editReleaseOptionPrereleaseL #-}++-- | 'editReleaseOptionTagName' Lens+editReleaseOptionTagNameL :: Lens_' EditReleaseOption (Maybe Text)+editReleaseOptionTagNameL f EditReleaseOption{..} = (\editReleaseOptionTagName -> EditReleaseOption { editReleaseOptionTagName, ..} ) <$> f editReleaseOptionTagName+{-# INLINE editReleaseOptionTagNameL #-}++-- | 'editReleaseOptionTargetCommitish' Lens+editReleaseOptionTargetCommitishL :: Lens_' EditReleaseOption (Maybe Text)+editReleaseOptionTargetCommitishL f EditReleaseOption{..} = (\editReleaseOptionTargetCommitish -> EditReleaseOption { editReleaseOptionTargetCommitish, ..} ) <$> f editReleaseOptionTargetCommitish+{-# INLINE editReleaseOptionTargetCommitishL #-}++++-- * EditRepoOption++-- | 'editRepoOptionAllowManualMerge' Lens+editRepoOptionAllowManualMergeL :: Lens_' EditRepoOption (Maybe Bool)+editRepoOptionAllowManualMergeL f EditRepoOption{..} = (\editRepoOptionAllowManualMerge -> EditRepoOption { editRepoOptionAllowManualMerge, ..} ) <$> f editRepoOptionAllowManualMerge+{-# INLINE editRepoOptionAllowManualMergeL #-}++-- | 'editRepoOptionAllowMergeCommits' Lens+editRepoOptionAllowMergeCommitsL :: Lens_' EditRepoOption (Maybe Bool)+editRepoOptionAllowMergeCommitsL f EditRepoOption{..} = (\editRepoOptionAllowMergeCommits -> EditRepoOption { editRepoOptionAllowMergeCommits, ..} ) <$> f editRepoOptionAllowMergeCommits+{-# INLINE editRepoOptionAllowMergeCommitsL #-}++-- | 'editRepoOptionAllowRebase' Lens+editRepoOptionAllowRebaseL :: Lens_' EditRepoOption (Maybe Bool)+editRepoOptionAllowRebaseL f EditRepoOption{..} = (\editRepoOptionAllowRebase -> EditRepoOption { editRepoOptionAllowRebase, ..} ) <$> f editRepoOptionAllowRebase+{-# INLINE editRepoOptionAllowRebaseL #-}++-- | 'editRepoOptionAllowRebaseExplicit' Lens+editRepoOptionAllowRebaseExplicitL :: Lens_' EditRepoOption (Maybe Bool)+editRepoOptionAllowRebaseExplicitL f EditRepoOption{..} = (\editRepoOptionAllowRebaseExplicit -> EditRepoOption { editRepoOptionAllowRebaseExplicit, ..} ) <$> f editRepoOptionAllowRebaseExplicit+{-# INLINE editRepoOptionAllowRebaseExplicitL #-}++-- | 'editRepoOptionAllowRebaseUpdate' Lens+editRepoOptionAllowRebaseUpdateL :: Lens_' EditRepoOption (Maybe Bool)+editRepoOptionAllowRebaseUpdateL f EditRepoOption{..} = (\editRepoOptionAllowRebaseUpdate -> EditRepoOption { editRepoOptionAllowRebaseUpdate, ..} ) <$> f editRepoOptionAllowRebaseUpdate+{-# INLINE editRepoOptionAllowRebaseUpdateL #-}++-- | 'editRepoOptionAllowSquashMerge' Lens+editRepoOptionAllowSquashMergeL :: Lens_' EditRepoOption (Maybe Bool)+editRepoOptionAllowSquashMergeL f EditRepoOption{..} = (\editRepoOptionAllowSquashMerge -> EditRepoOption { editRepoOptionAllowSquashMerge, ..} ) <$> f editRepoOptionAllowSquashMerge+{-# INLINE editRepoOptionAllowSquashMergeL #-}++-- | 'editRepoOptionArchived' Lens+editRepoOptionArchivedL :: Lens_' EditRepoOption (Maybe Bool)+editRepoOptionArchivedL f EditRepoOption{..} = (\editRepoOptionArchived -> EditRepoOption { editRepoOptionArchived, ..} ) <$> f editRepoOptionArchived+{-# INLINE editRepoOptionArchivedL #-}++-- | 'editRepoOptionAutodetectManualMerge' Lens+editRepoOptionAutodetectManualMergeL :: Lens_' EditRepoOption (Maybe Bool)+editRepoOptionAutodetectManualMergeL f EditRepoOption{..} = (\editRepoOptionAutodetectManualMerge -> EditRepoOption { editRepoOptionAutodetectManualMerge, ..} ) <$> f editRepoOptionAutodetectManualMerge+{-# INLINE editRepoOptionAutodetectManualMergeL #-}++-- | 'editRepoOptionDefaultAllowMaintainerEdit' Lens+editRepoOptionDefaultAllowMaintainerEditL :: Lens_' EditRepoOption (Maybe Bool)+editRepoOptionDefaultAllowMaintainerEditL f EditRepoOption{..} = (\editRepoOptionDefaultAllowMaintainerEdit -> EditRepoOption { editRepoOptionDefaultAllowMaintainerEdit, ..} ) <$> f editRepoOptionDefaultAllowMaintainerEdit+{-# INLINE editRepoOptionDefaultAllowMaintainerEditL #-}++-- | 'editRepoOptionDefaultBranch' Lens+editRepoOptionDefaultBranchL :: Lens_' EditRepoOption (Maybe Text)+editRepoOptionDefaultBranchL f EditRepoOption{..} = (\editRepoOptionDefaultBranch -> EditRepoOption { editRepoOptionDefaultBranch, ..} ) <$> f editRepoOptionDefaultBranch+{-# INLINE editRepoOptionDefaultBranchL #-}++-- | 'editRepoOptionDefaultDeleteBranchAfterMerge' Lens+editRepoOptionDefaultDeleteBranchAfterMergeL :: Lens_' EditRepoOption (Maybe Bool)+editRepoOptionDefaultDeleteBranchAfterMergeL f EditRepoOption{..} = (\editRepoOptionDefaultDeleteBranchAfterMerge -> EditRepoOption { editRepoOptionDefaultDeleteBranchAfterMerge, ..} ) <$> f editRepoOptionDefaultDeleteBranchAfterMerge+{-# INLINE editRepoOptionDefaultDeleteBranchAfterMergeL #-}++-- | 'editRepoOptionDefaultMergeStyle' Lens+editRepoOptionDefaultMergeStyleL :: Lens_' EditRepoOption (Maybe Text)+editRepoOptionDefaultMergeStyleL f EditRepoOption{..} = (\editRepoOptionDefaultMergeStyle -> EditRepoOption { editRepoOptionDefaultMergeStyle, ..} ) <$> f editRepoOptionDefaultMergeStyle+{-# INLINE editRepoOptionDefaultMergeStyleL #-}++-- | 'editRepoOptionDescription' Lens+editRepoOptionDescriptionL :: Lens_' EditRepoOption (Maybe Text)+editRepoOptionDescriptionL f EditRepoOption{..} = (\editRepoOptionDescription -> EditRepoOption { editRepoOptionDescription, ..} ) <$> f editRepoOptionDescription+{-# INLINE editRepoOptionDescriptionL #-}++-- | 'editRepoOptionEnablePrune' Lens+editRepoOptionEnablePruneL :: Lens_' EditRepoOption (Maybe Bool)+editRepoOptionEnablePruneL f EditRepoOption{..} = (\editRepoOptionEnablePrune -> EditRepoOption { editRepoOptionEnablePrune, ..} ) <$> f editRepoOptionEnablePrune+{-# INLINE editRepoOptionEnablePruneL #-}++-- | 'editRepoOptionExternalTracker' Lens+editRepoOptionExternalTrackerL :: Lens_' EditRepoOption (Maybe ExternalTracker)+editRepoOptionExternalTrackerL f EditRepoOption{..} = (\editRepoOptionExternalTracker -> EditRepoOption { editRepoOptionExternalTracker, ..} ) <$> f editRepoOptionExternalTracker+{-# INLINE editRepoOptionExternalTrackerL #-}++-- | 'editRepoOptionExternalWiki' Lens+editRepoOptionExternalWikiL :: Lens_' EditRepoOption (Maybe ExternalWiki)+editRepoOptionExternalWikiL f EditRepoOption{..} = (\editRepoOptionExternalWiki -> EditRepoOption { editRepoOptionExternalWiki, ..} ) <$> f editRepoOptionExternalWiki+{-# INLINE editRepoOptionExternalWikiL #-}++-- | 'editRepoOptionHasIssues' Lens+editRepoOptionHasIssuesL :: Lens_' EditRepoOption (Maybe Bool)+editRepoOptionHasIssuesL f EditRepoOption{..} = (\editRepoOptionHasIssues -> EditRepoOption { editRepoOptionHasIssues, ..} ) <$> f editRepoOptionHasIssues+{-# INLINE editRepoOptionHasIssuesL #-}++-- | 'editRepoOptionHasProjects' Lens+editRepoOptionHasProjectsL :: Lens_' EditRepoOption (Maybe Bool)+editRepoOptionHasProjectsL f EditRepoOption{..} = (\editRepoOptionHasProjects -> EditRepoOption { editRepoOptionHasProjects, ..} ) <$> f editRepoOptionHasProjects+{-# INLINE editRepoOptionHasProjectsL #-}++-- | 'editRepoOptionHasPullRequests' Lens+editRepoOptionHasPullRequestsL :: Lens_' EditRepoOption (Maybe Bool)+editRepoOptionHasPullRequestsL f EditRepoOption{..} = (\editRepoOptionHasPullRequests -> EditRepoOption { editRepoOptionHasPullRequests, ..} ) <$> f editRepoOptionHasPullRequests+{-# INLINE editRepoOptionHasPullRequestsL #-}++-- | 'editRepoOptionHasWiki' Lens+editRepoOptionHasWikiL :: Lens_' EditRepoOption (Maybe Bool)+editRepoOptionHasWikiL f EditRepoOption{..} = (\editRepoOptionHasWiki -> EditRepoOption { editRepoOptionHasWiki, ..} ) <$> f editRepoOptionHasWiki+{-# INLINE editRepoOptionHasWikiL #-}++-- | 'editRepoOptionIgnoreWhitespaceConflicts' Lens+editRepoOptionIgnoreWhitespaceConflictsL :: Lens_' EditRepoOption (Maybe Bool)+editRepoOptionIgnoreWhitespaceConflictsL f EditRepoOption{..} = (\editRepoOptionIgnoreWhitespaceConflicts -> EditRepoOption { editRepoOptionIgnoreWhitespaceConflicts, ..} ) <$> f editRepoOptionIgnoreWhitespaceConflicts+{-# INLINE editRepoOptionIgnoreWhitespaceConflictsL #-}++-- | 'editRepoOptionInternalTracker' Lens+editRepoOptionInternalTrackerL :: Lens_' EditRepoOption (Maybe InternalTracker)+editRepoOptionInternalTrackerL f EditRepoOption{..} = (\editRepoOptionInternalTracker -> EditRepoOption { editRepoOptionInternalTracker, ..} ) <$> f editRepoOptionInternalTracker+{-# INLINE editRepoOptionInternalTrackerL #-}++-- | 'editRepoOptionMirrorInterval' Lens+editRepoOptionMirrorIntervalL :: Lens_' EditRepoOption (Maybe Text)+editRepoOptionMirrorIntervalL f EditRepoOption{..} = (\editRepoOptionMirrorInterval -> EditRepoOption { editRepoOptionMirrorInterval, ..} ) <$> f editRepoOptionMirrorInterval+{-# INLINE editRepoOptionMirrorIntervalL #-}++-- | 'editRepoOptionName' Lens+editRepoOptionNameL :: Lens_' EditRepoOption (Maybe Text)+editRepoOptionNameL f EditRepoOption{..} = (\editRepoOptionName -> EditRepoOption { editRepoOptionName, ..} ) <$> f editRepoOptionName+{-# INLINE editRepoOptionNameL #-}++-- | 'editRepoOptionPrivate' Lens+editRepoOptionPrivateL :: Lens_' EditRepoOption (Maybe Bool)+editRepoOptionPrivateL f EditRepoOption{..} = (\editRepoOptionPrivate -> EditRepoOption { editRepoOptionPrivate, ..} ) <$> f editRepoOptionPrivate+{-# INLINE editRepoOptionPrivateL #-}++-- | 'editRepoOptionTemplate' Lens+editRepoOptionTemplateL :: Lens_' EditRepoOption (Maybe Bool)+editRepoOptionTemplateL f EditRepoOption{..} = (\editRepoOptionTemplate -> EditRepoOption { editRepoOptionTemplate, ..} ) <$> f editRepoOptionTemplate+{-# INLINE editRepoOptionTemplateL #-}++-- | 'editRepoOptionWebsite' Lens+editRepoOptionWebsiteL :: Lens_' EditRepoOption (Maybe Text)+editRepoOptionWebsiteL f EditRepoOption{..} = (\editRepoOptionWebsite -> EditRepoOption { editRepoOptionWebsite, ..} ) <$> f editRepoOptionWebsite+{-# INLINE editRepoOptionWebsiteL #-}++++-- * EditTeamOption++-- | 'editTeamOptionCanCreateOrgRepo' Lens+editTeamOptionCanCreateOrgRepoL :: Lens_' EditTeamOption (Maybe Bool)+editTeamOptionCanCreateOrgRepoL f EditTeamOption{..} = (\editTeamOptionCanCreateOrgRepo -> EditTeamOption { editTeamOptionCanCreateOrgRepo, ..} ) <$> f editTeamOptionCanCreateOrgRepo+{-# INLINE editTeamOptionCanCreateOrgRepoL #-}++-- | 'editTeamOptionDescription' Lens+editTeamOptionDescriptionL :: Lens_' EditTeamOption (Maybe Text)+editTeamOptionDescriptionL f EditTeamOption{..} = (\editTeamOptionDescription -> EditTeamOption { editTeamOptionDescription, ..} ) <$> f editTeamOptionDescription+{-# INLINE editTeamOptionDescriptionL #-}++-- | 'editTeamOptionIncludesAllRepositories' Lens+editTeamOptionIncludesAllRepositoriesL :: Lens_' EditTeamOption (Maybe Bool)+editTeamOptionIncludesAllRepositoriesL f EditTeamOption{..} = (\editTeamOptionIncludesAllRepositories -> EditTeamOption { editTeamOptionIncludesAllRepositories, ..} ) <$> f editTeamOptionIncludesAllRepositories+{-# INLINE editTeamOptionIncludesAllRepositoriesL #-}++-- | 'editTeamOptionName' Lens+editTeamOptionNameL :: Lens_' EditTeamOption (Text)+editTeamOptionNameL f EditTeamOption{..} = (\editTeamOptionName -> EditTeamOption { editTeamOptionName, ..} ) <$> f editTeamOptionName+{-# INLINE editTeamOptionNameL #-}++-- | 'editTeamOptionPermission' Lens+editTeamOptionPermissionL :: Lens_' EditTeamOption (Maybe E'Permission)+editTeamOptionPermissionL f EditTeamOption{..} = (\editTeamOptionPermission -> EditTeamOption { editTeamOptionPermission, ..} ) <$> f editTeamOptionPermission+{-# INLINE editTeamOptionPermissionL #-}++-- | 'editTeamOptionUnits' Lens+editTeamOptionUnitsL :: Lens_' EditTeamOption (Maybe [Text])+editTeamOptionUnitsL f EditTeamOption{..} = (\editTeamOptionUnits -> EditTeamOption { editTeamOptionUnits, ..} ) <$> f editTeamOptionUnits+{-# INLINE editTeamOptionUnitsL #-}++-- | 'editTeamOptionUnitsMap' Lens+editTeamOptionUnitsMapL :: Lens_' EditTeamOption (Maybe (Map.Map String Text))+editTeamOptionUnitsMapL f EditTeamOption{..} = (\editTeamOptionUnitsMap -> EditTeamOption { editTeamOptionUnitsMap, ..} ) <$> f editTeamOptionUnitsMap+{-# INLINE editTeamOptionUnitsMapL #-}++++-- * EditUserOption++-- | 'editUserOptionActive' Lens+editUserOptionActiveL :: Lens_' EditUserOption (Maybe Bool)+editUserOptionActiveL f EditUserOption{..} = (\editUserOptionActive -> EditUserOption { editUserOptionActive, ..} ) <$> f editUserOptionActive+{-# INLINE editUserOptionActiveL #-}++-- | 'editUserOptionAdmin' Lens+editUserOptionAdminL :: Lens_' EditUserOption (Maybe Bool)+editUserOptionAdminL f EditUserOption{..} = (\editUserOptionAdmin -> EditUserOption { editUserOptionAdmin, ..} ) <$> f editUserOptionAdmin+{-# INLINE editUserOptionAdminL #-}++-- | 'editUserOptionAllowCreateOrganization' Lens+editUserOptionAllowCreateOrganizationL :: Lens_' EditUserOption (Maybe Bool)+editUserOptionAllowCreateOrganizationL f EditUserOption{..} = (\editUserOptionAllowCreateOrganization -> EditUserOption { editUserOptionAllowCreateOrganization, ..} ) <$> f editUserOptionAllowCreateOrganization+{-# INLINE editUserOptionAllowCreateOrganizationL #-}++-- | 'editUserOptionAllowGitHook' Lens+editUserOptionAllowGitHookL :: Lens_' EditUserOption (Maybe Bool)+editUserOptionAllowGitHookL f EditUserOption{..} = (\editUserOptionAllowGitHook -> EditUserOption { editUserOptionAllowGitHook, ..} ) <$> f editUserOptionAllowGitHook+{-# INLINE editUserOptionAllowGitHookL #-}++-- | 'editUserOptionAllowImportLocal' Lens+editUserOptionAllowImportLocalL :: Lens_' EditUserOption (Maybe Bool)+editUserOptionAllowImportLocalL f EditUserOption{..} = (\editUserOptionAllowImportLocal -> EditUserOption { editUserOptionAllowImportLocal, ..} ) <$> f editUserOptionAllowImportLocal+{-# INLINE editUserOptionAllowImportLocalL #-}++-- | 'editUserOptionDescription' Lens+editUserOptionDescriptionL :: Lens_' EditUserOption (Maybe Text)+editUserOptionDescriptionL f EditUserOption{..} = (\editUserOptionDescription -> EditUserOption { editUserOptionDescription, ..} ) <$> f editUserOptionDescription+{-# INLINE editUserOptionDescriptionL #-}++-- | 'editUserOptionEmail' Lens+editUserOptionEmailL :: Lens_' EditUserOption (Maybe Text)+editUserOptionEmailL f EditUserOption{..} = (\editUserOptionEmail -> EditUserOption { editUserOptionEmail, ..} ) <$> f editUserOptionEmail+{-# INLINE editUserOptionEmailL #-}++-- | 'editUserOptionFullName' Lens+editUserOptionFullNameL :: Lens_' EditUserOption (Maybe Text)+editUserOptionFullNameL f EditUserOption{..} = (\editUserOptionFullName -> EditUserOption { editUserOptionFullName, ..} ) <$> f editUserOptionFullName+{-# INLINE editUserOptionFullNameL #-}++-- | 'editUserOptionLocation' Lens+editUserOptionLocationL :: Lens_' EditUserOption (Maybe Text)+editUserOptionLocationL f EditUserOption{..} = (\editUserOptionLocation -> EditUserOption { editUserOptionLocation, ..} ) <$> f editUserOptionLocation+{-# INLINE editUserOptionLocationL #-}++-- | 'editUserOptionLoginName' Lens+editUserOptionLoginNameL :: Lens_' EditUserOption (Text)+editUserOptionLoginNameL f EditUserOption{..} = (\editUserOptionLoginName -> EditUserOption { editUserOptionLoginName, ..} ) <$> f editUserOptionLoginName+{-# INLINE editUserOptionLoginNameL #-}++-- | 'editUserOptionMaxRepoCreation' Lens+editUserOptionMaxRepoCreationL :: Lens_' EditUserOption (Maybe Integer)+editUserOptionMaxRepoCreationL f EditUserOption{..} = (\editUserOptionMaxRepoCreation -> EditUserOption { editUserOptionMaxRepoCreation, ..} ) <$> f editUserOptionMaxRepoCreation+{-# INLINE editUserOptionMaxRepoCreationL #-}++-- | 'editUserOptionMustChangePassword' Lens+editUserOptionMustChangePasswordL :: Lens_' EditUserOption (Maybe Bool)+editUserOptionMustChangePasswordL f EditUserOption{..} = (\editUserOptionMustChangePassword -> EditUserOption { editUserOptionMustChangePassword, ..} ) <$> f editUserOptionMustChangePassword+{-# INLINE editUserOptionMustChangePasswordL #-}++-- | 'editUserOptionPassword' Lens+editUserOptionPasswordL :: Lens_' EditUserOption (Maybe Text)+editUserOptionPasswordL f EditUserOption{..} = (\editUserOptionPassword -> EditUserOption { editUserOptionPassword, ..} ) <$> f editUserOptionPassword+{-# INLINE editUserOptionPasswordL #-}++-- | 'editUserOptionProhibitLogin' Lens+editUserOptionProhibitLoginL :: Lens_' EditUserOption (Maybe Bool)+editUserOptionProhibitLoginL f EditUserOption{..} = (\editUserOptionProhibitLogin -> EditUserOption { editUserOptionProhibitLogin, ..} ) <$> f editUserOptionProhibitLogin+{-# INLINE editUserOptionProhibitLoginL #-}++-- | 'editUserOptionRestricted' Lens+editUserOptionRestrictedL :: Lens_' EditUserOption (Maybe Bool)+editUserOptionRestrictedL f EditUserOption{..} = (\editUserOptionRestricted -> EditUserOption { editUserOptionRestricted, ..} ) <$> f editUserOptionRestricted+{-# INLINE editUserOptionRestrictedL #-}++-- | 'editUserOptionSourceId' Lens+editUserOptionSourceIdL :: Lens_' EditUserOption (Integer)+editUserOptionSourceIdL f EditUserOption{..} = (\editUserOptionSourceId -> EditUserOption { editUserOptionSourceId, ..} ) <$> f editUserOptionSourceId+{-# INLINE editUserOptionSourceIdL #-}++-- | 'editUserOptionVisibility' Lens+editUserOptionVisibilityL :: Lens_' EditUserOption (Maybe Text)+editUserOptionVisibilityL f EditUserOption{..} = (\editUserOptionVisibility -> EditUserOption { editUserOptionVisibility, ..} ) <$> f editUserOptionVisibility+{-# INLINE editUserOptionVisibilityL #-}++-- | 'editUserOptionWebsite' Lens+editUserOptionWebsiteL :: Lens_' EditUserOption (Maybe Text)+editUserOptionWebsiteL f EditUserOption{..} = (\editUserOptionWebsite -> EditUserOption { editUserOptionWebsite, ..} ) <$> f editUserOptionWebsite+{-# INLINE editUserOptionWebsiteL #-}++++-- * Email++-- | 'emailEmail' Lens+emailEmailL :: Lens_' Email (Maybe Text)+emailEmailL f Email{..} = (\emailEmail -> Email { emailEmail, ..} ) <$> f emailEmail+{-# INLINE emailEmailL #-}++-- | 'emailPrimary' Lens+emailPrimaryL :: Lens_' Email (Maybe Bool)+emailPrimaryL f Email{..} = (\emailPrimary -> Email { emailPrimary, ..} ) <$> f emailPrimary+{-# INLINE emailPrimaryL #-}++-- | 'emailVerified' Lens+emailVerifiedL :: Lens_' Email (Maybe Bool)+emailVerifiedL f Email{..} = (\emailVerified -> Email { emailVerified, ..} ) <$> f emailVerified+{-# INLINE emailVerifiedL #-}++++-- * ExternalTracker++-- | 'externalTrackerExternalTrackerFormat' Lens+externalTrackerExternalTrackerFormatL :: Lens_' ExternalTracker (Maybe Text)+externalTrackerExternalTrackerFormatL f ExternalTracker{..} = (\externalTrackerExternalTrackerFormat -> ExternalTracker { externalTrackerExternalTrackerFormat, ..} ) <$> f externalTrackerExternalTrackerFormat+{-# INLINE externalTrackerExternalTrackerFormatL #-}++-- | 'externalTrackerExternalTrackerRegexpPattern' Lens+externalTrackerExternalTrackerRegexpPatternL :: Lens_' ExternalTracker (Maybe Text)+externalTrackerExternalTrackerRegexpPatternL f ExternalTracker{..} = (\externalTrackerExternalTrackerRegexpPattern -> ExternalTracker { externalTrackerExternalTrackerRegexpPattern, ..} ) <$> f externalTrackerExternalTrackerRegexpPattern+{-# INLINE externalTrackerExternalTrackerRegexpPatternL #-}++-- | 'externalTrackerExternalTrackerStyle' Lens+externalTrackerExternalTrackerStyleL :: Lens_' ExternalTracker (Maybe Text)+externalTrackerExternalTrackerStyleL f ExternalTracker{..} = (\externalTrackerExternalTrackerStyle -> ExternalTracker { externalTrackerExternalTrackerStyle, ..} ) <$> f externalTrackerExternalTrackerStyle+{-# INLINE externalTrackerExternalTrackerStyleL #-}++-- | 'externalTrackerExternalTrackerUrl' Lens+externalTrackerExternalTrackerUrlL :: Lens_' ExternalTracker (Maybe Text)+externalTrackerExternalTrackerUrlL f ExternalTracker{..} = (\externalTrackerExternalTrackerUrl -> ExternalTracker { externalTrackerExternalTrackerUrl, ..} ) <$> f externalTrackerExternalTrackerUrl+{-# INLINE externalTrackerExternalTrackerUrlL #-}++++-- * ExternalWiki++-- | 'externalWikiExternalWikiUrl' Lens+externalWikiExternalWikiUrlL :: Lens_' ExternalWiki (Maybe Text)+externalWikiExternalWikiUrlL f ExternalWiki{..} = (\externalWikiExternalWikiUrl -> ExternalWiki { externalWikiExternalWikiUrl, ..} ) <$> f externalWikiExternalWikiUrl+{-# INLINE externalWikiExternalWikiUrlL #-}++++-- * FileCommitResponse++-- | 'fileCommitResponseAuthor' Lens+fileCommitResponseAuthorL :: Lens_' FileCommitResponse (Maybe CommitUser)+fileCommitResponseAuthorL f FileCommitResponse{..} = (\fileCommitResponseAuthor -> FileCommitResponse { fileCommitResponseAuthor, ..} ) <$> f fileCommitResponseAuthor+{-# INLINE fileCommitResponseAuthorL #-}++-- | 'fileCommitResponseCommitter' Lens+fileCommitResponseCommitterL :: Lens_' FileCommitResponse (Maybe CommitUser)+fileCommitResponseCommitterL f FileCommitResponse{..} = (\fileCommitResponseCommitter -> FileCommitResponse { fileCommitResponseCommitter, ..} ) <$> f fileCommitResponseCommitter+{-# INLINE fileCommitResponseCommitterL #-}++-- | 'fileCommitResponseCreated' Lens+fileCommitResponseCreatedL :: Lens_' FileCommitResponse (Maybe DateTime)+fileCommitResponseCreatedL f FileCommitResponse{..} = (\fileCommitResponseCreated -> FileCommitResponse { fileCommitResponseCreated, ..} ) <$> f fileCommitResponseCreated+{-# INLINE fileCommitResponseCreatedL #-}++-- | 'fileCommitResponseHtmlUrl' Lens+fileCommitResponseHtmlUrlL :: Lens_' FileCommitResponse (Maybe Text)+fileCommitResponseHtmlUrlL f FileCommitResponse{..} = (\fileCommitResponseHtmlUrl -> FileCommitResponse { fileCommitResponseHtmlUrl, ..} ) <$> f fileCommitResponseHtmlUrl+{-# INLINE fileCommitResponseHtmlUrlL #-}++-- | 'fileCommitResponseMessage' Lens+fileCommitResponseMessageL :: Lens_' FileCommitResponse (Maybe Text)+fileCommitResponseMessageL f FileCommitResponse{..} = (\fileCommitResponseMessage -> FileCommitResponse { fileCommitResponseMessage, ..} ) <$> f fileCommitResponseMessage+{-# INLINE fileCommitResponseMessageL #-}++-- | 'fileCommitResponseParents' Lens+fileCommitResponseParentsL :: Lens_' FileCommitResponse (Maybe [CommitMeta])+fileCommitResponseParentsL f FileCommitResponse{..} = (\fileCommitResponseParents -> FileCommitResponse { fileCommitResponseParents, ..} ) <$> f fileCommitResponseParents+{-# INLINE fileCommitResponseParentsL #-}++-- | 'fileCommitResponseSha' Lens+fileCommitResponseShaL :: Lens_' FileCommitResponse (Maybe Text)+fileCommitResponseShaL f FileCommitResponse{..} = (\fileCommitResponseSha -> FileCommitResponse { fileCommitResponseSha, ..} ) <$> f fileCommitResponseSha+{-# INLINE fileCommitResponseShaL #-}++-- | 'fileCommitResponseTree' Lens+fileCommitResponseTreeL :: Lens_' FileCommitResponse (Maybe CommitMeta)+fileCommitResponseTreeL f FileCommitResponse{..} = (\fileCommitResponseTree -> FileCommitResponse { fileCommitResponseTree, ..} ) <$> f fileCommitResponseTree+{-# INLINE fileCommitResponseTreeL #-}++-- | 'fileCommitResponseUrl' Lens+fileCommitResponseUrlL :: Lens_' FileCommitResponse (Maybe Text)+fileCommitResponseUrlL f FileCommitResponse{..} = (\fileCommitResponseUrl -> FileCommitResponse { fileCommitResponseUrl, ..} ) <$> f fileCommitResponseUrl+{-# INLINE fileCommitResponseUrlL #-}++++-- * FileDeleteResponse++-- | 'fileDeleteResponseCommit' Lens+fileDeleteResponseCommitL :: Lens_' FileDeleteResponse (Maybe FileCommitResponse)+fileDeleteResponseCommitL f FileDeleteResponse{..} = (\fileDeleteResponseCommit -> FileDeleteResponse { fileDeleteResponseCommit, ..} ) <$> f fileDeleteResponseCommit+{-# INLINE fileDeleteResponseCommitL #-}++-- | 'fileDeleteResponseContent' Lens+fileDeleteResponseContentL :: Lens_' FileDeleteResponse (Maybe A.Value)+fileDeleteResponseContentL f FileDeleteResponse{..} = (\fileDeleteResponseContent -> FileDeleteResponse { fileDeleteResponseContent, ..} ) <$> f fileDeleteResponseContent+{-# INLINE fileDeleteResponseContentL #-}++-- | 'fileDeleteResponseVerification' Lens+fileDeleteResponseVerificationL :: Lens_' FileDeleteResponse (Maybe PayloadCommitVerification)+fileDeleteResponseVerificationL f FileDeleteResponse{..} = (\fileDeleteResponseVerification -> FileDeleteResponse { fileDeleteResponseVerification, ..} ) <$> f fileDeleteResponseVerification+{-# INLINE fileDeleteResponseVerificationL #-}++++-- * FileLinksResponse++-- | 'fileLinksResponseGit' Lens+fileLinksResponseGitL :: Lens_' FileLinksResponse (Maybe Text)+fileLinksResponseGitL f FileLinksResponse{..} = (\fileLinksResponseGit -> FileLinksResponse { fileLinksResponseGit, ..} ) <$> f fileLinksResponseGit+{-# INLINE fileLinksResponseGitL #-}++-- | 'fileLinksResponseHtml' Lens+fileLinksResponseHtmlL :: Lens_' FileLinksResponse (Maybe Text)+fileLinksResponseHtmlL f FileLinksResponse{..} = (\fileLinksResponseHtml -> FileLinksResponse { fileLinksResponseHtml, ..} ) <$> f fileLinksResponseHtml+{-# INLINE fileLinksResponseHtmlL #-}++-- | 'fileLinksResponseSelf' Lens+fileLinksResponseSelfL :: Lens_' FileLinksResponse (Maybe Text)+fileLinksResponseSelfL f FileLinksResponse{..} = (\fileLinksResponseSelf -> FileLinksResponse { fileLinksResponseSelf, ..} ) <$> f fileLinksResponseSelf+{-# INLINE fileLinksResponseSelfL #-}++++-- * FileResponse++-- | 'fileResponseCommit' Lens+fileResponseCommitL :: Lens_' FileResponse (Maybe FileCommitResponse)+fileResponseCommitL f FileResponse{..} = (\fileResponseCommit -> FileResponse { fileResponseCommit, ..} ) <$> f fileResponseCommit+{-# INLINE fileResponseCommitL #-}++-- | 'fileResponseContent' Lens+fileResponseContentL :: Lens_' FileResponse (Maybe ContentsResponse)+fileResponseContentL f FileResponse{..} = (\fileResponseContent -> FileResponse { fileResponseContent, ..} ) <$> f fileResponseContent+{-# INLINE fileResponseContentL #-}++-- | 'fileResponseVerification' Lens+fileResponseVerificationL :: Lens_' FileResponse (Maybe PayloadCommitVerification)+fileResponseVerificationL f FileResponse{..} = (\fileResponseVerification -> FileResponse { fileResponseVerification, ..} ) <$> f fileResponseVerification+{-# INLINE fileResponseVerificationL #-}++++-- * GPGKey++-- | 'gPGKeyCanCertify' Lens+gPGKeyCanCertifyL :: Lens_' GPGKey (Maybe Bool)+gPGKeyCanCertifyL f GPGKey{..} = (\gPGKeyCanCertify -> GPGKey { gPGKeyCanCertify, ..} ) <$> f gPGKeyCanCertify+{-# INLINE gPGKeyCanCertifyL #-}++-- | 'gPGKeyCanEncryptComms' Lens+gPGKeyCanEncryptCommsL :: Lens_' GPGKey (Maybe Bool)+gPGKeyCanEncryptCommsL f GPGKey{..} = (\gPGKeyCanEncryptComms -> GPGKey { gPGKeyCanEncryptComms, ..} ) <$> f gPGKeyCanEncryptComms+{-# INLINE gPGKeyCanEncryptCommsL #-}++-- | 'gPGKeyCanEncryptStorage' Lens+gPGKeyCanEncryptStorageL :: Lens_' GPGKey (Maybe Bool)+gPGKeyCanEncryptStorageL f GPGKey{..} = (\gPGKeyCanEncryptStorage -> GPGKey { gPGKeyCanEncryptStorage, ..} ) <$> f gPGKeyCanEncryptStorage+{-# INLINE gPGKeyCanEncryptStorageL #-}++-- | 'gPGKeyCanSign' Lens+gPGKeyCanSignL :: Lens_' GPGKey (Maybe Bool)+gPGKeyCanSignL f GPGKey{..} = (\gPGKeyCanSign -> GPGKey { gPGKeyCanSign, ..} ) <$> f gPGKeyCanSign+{-# INLINE gPGKeyCanSignL #-}++-- | 'gPGKeyCreatedAt' Lens+gPGKeyCreatedAtL :: Lens_' GPGKey (Maybe DateTime)+gPGKeyCreatedAtL f GPGKey{..} = (\gPGKeyCreatedAt -> GPGKey { gPGKeyCreatedAt, ..} ) <$> f gPGKeyCreatedAt+{-# INLINE gPGKeyCreatedAtL #-}++-- | 'gPGKeyEmails' Lens+gPGKeyEmailsL :: Lens_' GPGKey (Maybe [GPGKeyEmail])+gPGKeyEmailsL f GPGKey{..} = (\gPGKeyEmails -> GPGKey { gPGKeyEmails, ..} ) <$> f gPGKeyEmails+{-# INLINE gPGKeyEmailsL #-}++-- | 'gPGKeyExpiresAt' Lens+gPGKeyExpiresAtL :: Lens_' GPGKey (Maybe DateTime)+gPGKeyExpiresAtL f GPGKey{..} = (\gPGKeyExpiresAt -> GPGKey { gPGKeyExpiresAt, ..} ) <$> f gPGKeyExpiresAt+{-# INLINE gPGKeyExpiresAtL #-}++-- | 'gPGKeyId' Lens+gPGKeyIdL :: Lens_' GPGKey (Maybe Integer)+gPGKeyIdL f GPGKey{..} = (\gPGKeyId -> GPGKey { gPGKeyId, ..} ) <$> f gPGKeyId+{-# INLINE gPGKeyIdL #-}++-- | 'gPGKeyKeyId' Lens+gPGKeyKeyIdL :: Lens_' GPGKey (Maybe Text)+gPGKeyKeyIdL f GPGKey{..} = (\gPGKeyKeyId -> GPGKey { gPGKeyKeyId, ..} ) <$> f gPGKeyKeyId+{-# INLINE gPGKeyKeyIdL #-}++-- | 'gPGKeyPrimaryKeyId' Lens+gPGKeyPrimaryKeyIdL :: Lens_' GPGKey (Maybe Text)+gPGKeyPrimaryKeyIdL f GPGKey{..} = (\gPGKeyPrimaryKeyId -> GPGKey { gPGKeyPrimaryKeyId, ..} ) <$> f gPGKeyPrimaryKeyId+{-# INLINE gPGKeyPrimaryKeyIdL #-}++-- | 'gPGKeyPublicKey' Lens+gPGKeyPublicKeyL :: Lens_' GPGKey (Maybe Text)+gPGKeyPublicKeyL f GPGKey{..} = (\gPGKeyPublicKey -> GPGKey { gPGKeyPublicKey, ..} ) <$> f gPGKeyPublicKey+{-# INLINE gPGKeyPublicKeyL #-}++-- | 'gPGKeySubkeys' Lens+gPGKeySubkeysL :: Lens_' GPGKey (Maybe [GPGKey])+gPGKeySubkeysL f GPGKey{..} = (\gPGKeySubkeys -> GPGKey { gPGKeySubkeys, ..} ) <$> f gPGKeySubkeys+{-# INLINE gPGKeySubkeysL #-}++-- | 'gPGKeyVerified' Lens+gPGKeyVerifiedL :: Lens_' GPGKey (Maybe Bool)+gPGKeyVerifiedL f GPGKey{..} = (\gPGKeyVerified -> GPGKey { gPGKeyVerified, ..} ) <$> f gPGKeyVerified+{-# INLINE gPGKeyVerifiedL #-}++++-- * GPGKeyEmail++-- | 'gPGKeyEmailEmail' Lens+gPGKeyEmailEmailL :: Lens_' GPGKeyEmail (Maybe Text)+gPGKeyEmailEmailL f GPGKeyEmail{..} = (\gPGKeyEmailEmail -> GPGKeyEmail { gPGKeyEmailEmail, ..} ) <$> f gPGKeyEmailEmail+{-# INLINE gPGKeyEmailEmailL #-}++-- | 'gPGKeyEmailVerified' Lens+gPGKeyEmailVerifiedL :: Lens_' GPGKeyEmail (Maybe Bool)+gPGKeyEmailVerifiedL f GPGKeyEmail{..} = (\gPGKeyEmailVerified -> GPGKeyEmail { gPGKeyEmailVerified, ..} ) <$> f gPGKeyEmailVerified+{-# INLINE gPGKeyEmailVerifiedL #-}++++-- * GeneralAPISettings++-- | 'generalAPISettingsDefaultGitTreesPerPage' Lens+generalAPISettingsDefaultGitTreesPerPageL :: Lens_' GeneralAPISettings (Maybe Integer)+generalAPISettingsDefaultGitTreesPerPageL f GeneralAPISettings{..} = (\generalAPISettingsDefaultGitTreesPerPage -> GeneralAPISettings { generalAPISettingsDefaultGitTreesPerPage, ..} ) <$> f generalAPISettingsDefaultGitTreesPerPage+{-# INLINE generalAPISettingsDefaultGitTreesPerPageL #-}++-- | 'generalAPISettingsDefaultMaxBlobSize' Lens+generalAPISettingsDefaultMaxBlobSizeL :: Lens_' GeneralAPISettings (Maybe Integer)+generalAPISettingsDefaultMaxBlobSizeL f GeneralAPISettings{..} = (\generalAPISettingsDefaultMaxBlobSize -> GeneralAPISettings { generalAPISettingsDefaultMaxBlobSize, ..} ) <$> f generalAPISettingsDefaultMaxBlobSize+{-# INLINE generalAPISettingsDefaultMaxBlobSizeL #-}++-- | 'generalAPISettingsDefaultPagingNum' Lens+generalAPISettingsDefaultPagingNumL :: Lens_' GeneralAPISettings (Maybe Integer)+generalAPISettingsDefaultPagingNumL f GeneralAPISettings{..} = (\generalAPISettingsDefaultPagingNum -> GeneralAPISettings { generalAPISettingsDefaultPagingNum, ..} ) <$> f generalAPISettingsDefaultPagingNum+{-# INLINE generalAPISettingsDefaultPagingNumL #-}++-- | 'generalAPISettingsMaxResponseItems' Lens+generalAPISettingsMaxResponseItemsL :: Lens_' GeneralAPISettings (Maybe Integer)+generalAPISettingsMaxResponseItemsL f GeneralAPISettings{..} = (\generalAPISettingsMaxResponseItems -> GeneralAPISettings { generalAPISettingsMaxResponseItems, ..} ) <$> f generalAPISettingsMaxResponseItems+{-# INLINE generalAPISettingsMaxResponseItemsL #-}++++-- * GeneralAttachmentSettings++-- | 'generalAttachmentSettingsAllowedTypes' Lens+generalAttachmentSettingsAllowedTypesL :: Lens_' GeneralAttachmentSettings (Maybe Text)+generalAttachmentSettingsAllowedTypesL f GeneralAttachmentSettings{..} = (\generalAttachmentSettingsAllowedTypes -> GeneralAttachmentSettings { generalAttachmentSettingsAllowedTypes, ..} ) <$> f generalAttachmentSettingsAllowedTypes+{-# INLINE generalAttachmentSettingsAllowedTypesL #-}++-- | 'generalAttachmentSettingsEnabled' Lens+generalAttachmentSettingsEnabledL :: Lens_' GeneralAttachmentSettings (Maybe Bool)+generalAttachmentSettingsEnabledL f GeneralAttachmentSettings{..} = (\generalAttachmentSettingsEnabled -> GeneralAttachmentSettings { generalAttachmentSettingsEnabled, ..} ) <$> f generalAttachmentSettingsEnabled+{-# INLINE generalAttachmentSettingsEnabledL #-}++-- | 'generalAttachmentSettingsMaxFiles' Lens+generalAttachmentSettingsMaxFilesL :: Lens_' GeneralAttachmentSettings (Maybe Integer)+generalAttachmentSettingsMaxFilesL f GeneralAttachmentSettings{..} = (\generalAttachmentSettingsMaxFiles -> GeneralAttachmentSettings { generalAttachmentSettingsMaxFiles, ..} ) <$> f generalAttachmentSettingsMaxFiles+{-# INLINE generalAttachmentSettingsMaxFilesL #-}++-- | 'generalAttachmentSettingsMaxSize' Lens+generalAttachmentSettingsMaxSizeL :: Lens_' GeneralAttachmentSettings (Maybe Integer)+generalAttachmentSettingsMaxSizeL f GeneralAttachmentSettings{..} = (\generalAttachmentSettingsMaxSize -> GeneralAttachmentSettings { generalAttachmentSettingsMaxSize, ..} ) <$> f generalAttachmentSettingsMaxSize+{-# INLINE generalAttachmentSettingsMaxSizeL #-}++++-- * GeneralRepoSettings++-- | 'generalRepoSettingsHttpGitDisabled' Lens+generalRepoSettingsHttpGitDisabledL :: Lens_' GeneralRepoSettings (Maybe Bool)+generalRepoSettingsHttpGitDisabledL f GeneralRepoSettings{..} = (\generalRepoSettingsHttpGitDisabled -> GeneralRepoSettings { generalRepoSettingsHttpGitDisabled, ..} ) <$> f generalRepoSettingsHttpGitDisabled+{-# INLINE generalRepoSettingsHttpGitDisabledL #-}++-- | 'generalRepoSettingsLfsDisabled' Lens+generalRepoSettingsLfsDisabledL :: Lens_' GeneralRepoSettings (Maybe Bool)+generalRepoSettingsLfsDisabledL f GeneralRepoSettings{..} = (\generalRepoSettingsLfsDisabled -> GeneralRepoSettings { generalRepoSettingsLfsDisabled, ..} ) <$> f generalRepoSettingsLfsDisabled+{-# INLINE generalRepoSettingsLfsDisabledL #-}++-- | 'generalRepoSettingsMigrationsDisabled' Lens+generalRepoSettingsMigrationsDisabledL :: Lens_' GeneralRepoSettings (Maybe Bool)+generalRepoSettingsMigrationsDisabledL f GeneralRepoSettings{..} = (\generalRepoSettingsMigrationsDisabled -> GeneralRepoSettings { generalRepoSettingsMigrationsDisabled, ..} ) <$> f generalRepoSettingsMigrationsDisabled+{-# INLINE generalRepoSettingsMigrationsDisabledL #-}++-- | 'generalRepoSettingsMirrorsDisabled' Lens+generalRepoSettingsMirrorsDisabledL :: Lens_' GeneralRepoSettings (Maybe Bool)+generalRepoSettingsMirrorsDisabledL f GeneralRepoSettings{..} = (\generalRepoSettingsMirrorsDisabled -> GeneralRepoSettings { generalRepoSettingsMirrorsDisabled, ..} ) <$> f generalRepoSettingsMirrorsDisabled+{-# INLINE generalRepoSettingsMirrorsDisabledL #-}++-- | 'generalRepoSettingsStarsDisabled' Lens+generalRepoSettingsStarsDisabledL :: Lens_' GeneralRepoSettings (Maybe Bool)+generalRepoSettingsStarsDisabledL f GeneralRepoSettings{..} = (\generalRepoSettingsStarsDisabled -> GeneralRepoSettings { generalRepoSettingsStarsDisabled, ..} ) <$> f generalRepoSettingsStarsDisabled+{-# INLINE generalRepoSettingsStarsDisabledL #-}++-- | 'generalRepoSettingsTimeTrackingDisabled' Lens+generalRepoSettingsTimeTrackingDisabledL :: Lens_' GeneralRepoSettings (Maybe Bool)+generalRepoSettingsTimeTrackingDisabledL f GeneralRepoSettings{..} = (\generalRepoSettingsTimeTrackingDisabled -> GeneralRepoSettings { generalRepoSettingsTimeTrackingDisabled, ..} ) <$> f generalRepoSettingsTimeTrackingDisabled+{-# INLINE generalRepoSettingsTimeTrackingDisabledL #-}++++-- * GeneralUISettings++-- | 'generalUISettingsAllowedReactions' Lens+generalUISettingsAllowedReactionsL :: Lens_' GeneralUISettings (Maybe [Text])+generalUISettingsAllowedReactionsL f GeneralUISettings{..} = (\generalUISettingsAllowedReactions -> GeneralUISettings { generalUISettingsAllowedReactions, ..} ) <$> f generalUISettingsAllowedReactions+{-# INLINE generalUISettingsAllowedReactionsL #-}++-- | 'generalUISettingsCustomEmojis' Lens+generalUISettingsCustomEmojisL :: Lens_' GeneralUISettings (Maybe [Text])+generalUISettingsCustomEmojisL f GeneralUISettings{..} = (\generalUISettingsCustomEmojis -> GeneralUISettings { generalUISettingsCustomEmojis, ..} ) <$> f generalUISettingsCustomEmojis+{-# INLINE generalUISettingsCustomEmojisL #-}++-- | 'generalUISettingsDefaultTheme' Lens+generalUISettingsDefaultThemeL :: Lens_' GeneralUISettings (Maybe Text)+generalUISettingsDefaultThemeL f GeneralUISettings{..} = (\generalUISettingsDefaultTheme -> GeneralUISettings { generalUISettingsDefaultTheme, ..} ) <$> f generalUISettingsDefaultTheme+{-# INLINE generalUISettingsDefaultThemeL #-}++++-- * GenerateRepoOption++-- | 'generateRepoOptionAvatar' Lens+generateRepoOptionAvatarL :: Lens_' GenerateRepoOption (Maybe Bool)+generateRepoOptionAvatarL f GenerateRepoOption{..} = (\generateRepoOptionAvatar -> GenerateRepoOption { generateRepoOptionAvatar, ..} ) <$> f generateRepoOptionAvatar+{-# INLINE generateRepoOptionAvatarL #-}++-- | 'generateRepoOptionDefaultBranch' Lens+generateRepoOptionDefaultBranchL :: Lens_' GenerateRepoOption (Maybe Text)+generateRepoOptionDefaultBranchL f GenerateRepoOption{..} = (\generateRepoOptionDefaultBranch -> GenerateRepoOption { generateRepoOptionDefaultBranch, ..} ) <$> f generateRepoOptionDefaultBranch+{-# INLINE generateRepoOptionDefaultBranchL #-}++-- | 'generateRepoOptionDescription' Lens+generateRepoOptionDescriptionL :: Lens_' GenerateRepoOption (Maybe Text)+generateRepoOptionDescriptionL f GenerateRepoOption{..} = (\generateRepoOptionDescription -> GenerateRepoOption { generateRepoOptionDescription, ..} ) <$> f generateRepoOptionDescription+{-# INLINE generateRepoOptionDescriptionL #-}++-- | 'generateRepoOptionGitContent' Lens+generateRepoOptionGitContentL :: Lens_' GenerateRepoOption (Maybe Bool)+generateRepoOptionGitContentL f GenerateRepoOption{..} = (\generateRepoOptionGitContent -> GenerateRepoOption { generateRepoOptionGitContent, ..} ) <$> f generateRepoOptionGitContent+{-# INLINE generateRepoOptionGitContentL #-}++-- | 'generateRepoOptionGitHooks' Lens+generateRepoOptionGitHooksL :: Lens_' GenerateRepoOption (Maybe Bool)+generateRepoOptionGitHooksL f GenerateRepoOption{..} = (\generateRepoOptionGitHooks -> GenerateRepoOption { generateRepoOptionGitHooks, ..} ) <$> f generateRepoOptionGitHooks+{-# INLINE generateRepoOptionGitHooksL #-}++-- | 'generateRepoOptionLabels' Lens+generateRepoOptionLabelsL :: Lens_' GenerateRepoOption (Maybe Bool)+generateRepoOptionLabelsL f GenerateRepoOption{..} = (\generateRepoOptionLabels -> GenerateRepoOption { generateRepoOptionLabels, ..} ) <$> f generateRepoOptionLabels+{-# INLINE generateRepoOptionLabelsL #-}++-- | 'generateRepoOptionName' Lens+generateRepoOptionNameL :: Lens_' GenerateRepoOption (Text)+generateRepoOptionNameL f GenerateRepoOption{..} = (\generateRepoOptionName -> GenerateRepoOption { generateRepoOptionName, ..} ) <$> f generateRepoOptionName+{-# INLINE generateRepoOptionNameL #-}++-- | 'generateRepoOptionOwner' Lens+generateRepoOptionOwnerL :: Lens_' GenerateRepoOption (Text)+generateRepoOptionOwnerL f GenerateRepoOption{..} = (\generateRepoOptionOwner -> GenerateRepoOption { generateRepoOptionOwner, ..} ) <$> f generateRepoOptionOwner+{-# INLINE generateRepoOptionOwnerL #-}++-- | 'generateRepoOptionPrivate' Lens+generateRepoOptionPrivateL :: Lens_' GenerateRepoOption (Maybe Bool)+generateRepoOptionPrivateL f GenerateRepoOption{..} = (\generateRepoOptionPrivate -> GenerateRepoOption { generateRepoOptionPrivate, ..} ) <$> f generateRepoOptionPrivate+{-# INLINE generateRepoOptionPrivateL #-}++-- | 'generateRepoOptionTopics' Lens+generateRepoOptionTopicsL :: Lens_' GenerateRepoOption (Maybe Bool)+generateRepoOptionTopicsL f GenerateRepoOption{..} = (\generateRepoOptionTopics -> GenerateRepoOption { generateRepoOptionTopics, ..} ) <$> f generateRepoOptionTopics+{-# INLINE generateRepoOptionTopicsL #-}++-- | 'generateRepoOptionWebhooks' Lens+generateRepoOptionWebhooksL :: Lens_' GenerateRepoOption (Maybe Bool)+generateRepoOptionWebhooksL f GenerateRepoOption{..} = (\generateRepoOptionWebhooks -> GenerateRepoOption { generateRepoOptionWebhooks, ..} ) <$> f generateRepoOptionWebhooks+{-# INLINE generateRepoOptionWebhooksL #-}++++-- * GitBlobResponse++-- | 'gitBlobResponseContent' Lens+gitBlobResponseContentL :: Lens_' GitBlobResponse (Maybe Text)+gitBlobResponseContentL f GitBlobResponse{..} = (\gitBlobResponseContent -> GitBlobResponse { gitBlobResponseContent, ..} ) <$> f gitBlobResponseContent+{-# INLINE gitBlobResponseContentL #-}++-- | 'gitBlobResponseEncoding' Lens+gitBlobResponseEncodingL :: Lens_' GitBlobResponse (Maybe Text)+gitBlobResponseEncodingL f GitBlobResponse{..} = (\gitBlobResponseEncoding -> GitBlobResponse { gitBlobResponseEncoding, ..} ) <$> f gitBlobResponseEncoding+{-# INLINE gitBlobResponseEncodingL #-}++-- | 'gitBlobResponseSha' Lens+gitBlobResponseShaL :: Lens_' GitBlobResponse (Maybe Text)+gitBlobResponseShaL f GitBlobResponse{..} = (\gitBlobResponseSha -> GitBlobResponse { gitBlobResponseSha, ..} ) <$> f gitBlobResponseSha+{-# INLINE gitBlobResponseShaL #-}++-- | 'gitBlobResponseSize' Lens+gitBlobResponseSizeL :: Lens_' GitBlobResponse (Maybe Integer)+gitBlobResponseSizeL f GitBlobResponse{..} = (\gitBlobResponseSize -> GitBlobResponse { gitBlobResponseSize, ..} ) <$> f gitBlobResponseSize+{-# INLINE gitBlobResponseSizeL #-}++-- | 'gitBlobResponseUrl' Lens+gitBlobResponseUrlL :: Lens_' GitBlobResponse (Maybe Text)+gitBlobResponseUrlL f GitBlobResponse{..} = (\gitBlobResponseUrl -> GitBlobResponse { gitBlobResponseUrl, ..} ) <$> f gitBlobResponseUrl+{-# INLINE gitBlobResponseUrlL #-}++++-- * GitEntry++-- | 'gitEntryMode' Lens+gitEntryModeL :: Lens_' GitEntry (Maybe Text)+gitEntryModeL f GitEntry{..} = (\gitEntryMode -> GitEntry { gitEntryMode, ..} ) <$> f gitEntryMode+{-# INLINE gitEntryModeL #-}++-- | 'gitEntryPath' Lens+gitEntryPathL :: Lens_' GitEntry (Maybe Text)+gitEntryPathL f GitEntry{..} = (\gitEntryPath -> GitEntry { gitEntryPath, ..} ) <$> f gitEntryPath+{-# INLINE gitEntryPathL #-}++-- | 'gitEntrySha' Lens+gitEntryShaL :: Lens_' GitEntry (Maybe Text)+gitEntryShaL f GitEntry{..} = (\gitEntrySha -> GitEntry { gitEntrySha, ..} ) <$> f gitEntrySha+{-# INLINE gitEntryShaL #-}++-- | 'gitEntrySize' Lens+gitEntrySizeL :: Lens_' GitEntry (Maybe Integer)+gitEntrySizeL f GitEntry{..} = (\gitEntrySize -> GitEntry { gitEntrySize, ..} ) <$> f gitEntrySize+{-# INLINE gitEntrySizeL #-}++-- | 'gitEntryType' Lens+gitEntryTypeL :: Lens_' GitEntry (Maybe Text)+gitEntryTypeL f GitEntry{..} = (\gitEntryType -> GitEntry { gitEntryType, ..} ) <$> f gitEntryType+{-# INLINE gitEntryTypeL #-}++-- | 'gitEntryUrl' Lens+gitEntryUrlL :: Lens_' GitEntry (Maybe Text)+gitEntryUrlL f GitEntry{..} = (\gitEntryUrl -> GitEntry { gitEntryUrl, ..} ) <$> f gitEntryUrl+{-# INLINE gitEntryUrlL #-}++++-- * GitHook++-- | 'gitHookContent' Lens+gitHookContentL :: Lens_' GitHook (Maybe Text)+gitHookContentL f GitHook{..} = (\gitHookContent -> GitHook { gitHookContent, ..} ) <$> f gitHookContent+{-# INLINE gitHookContentL #-}++-- | 'gitHookIsActive' Lens+gitHookIsActiveL :: Lens_' GitHook (Maybe Bool)+gitHookIsActiveL f GitHook{..} = (\gitHookIsActive -> GitHook { gitHookIsActive, ..} ) <$> f gitHookIsActive+{-# INLINE gitHookIsActiveL #-}++-- | 'gitHookName' Lens+gitHookNameL :: Lens_' GitHook (Maybe Text)+gitHookNameL f GitHook{..} = (\gitHookName -> GitHook { gitHookName, ..} ) <$> f gitHookName+{-# INLINE gitHookNameL #-}++++-- * GitObject++-- | 'gitObjectSha' Lens+gitObjectShaL :: Lens_' GitObject (Maybe Text)+gitObjectShaL f GitObject{..} = (\gitObjectSha -> GitObject { gitObjectSha, ..} ) <$> f gitObjectSha+{-# INLINE gitObjectShaL #-}++-- | 'gitObjectType' Lens+gitObjectTypeL :: Lens_' GitObject (Maybe Text)+gitObjectTypeL f GitObject{..} = (\gitObjectType -> GitObject { gitObjectType, ..} ) <$> f gitObjectType+{-# INLINE gitObjectTypeL #-}++-- | 'gitObjectUrl' Lens+gitObjectUrlL :: Lens_' GitObject (Maybe Text)+gitObjectUrlL f GitObject{..} = (\gitObjectUrl -> GitObject { gitObjectUrl, ..} ) <$> f gitObjectUrl+{-# INLINE gitObjectUrlL #-}++++-- * GitTreeResponse++-- | 'gitTreeResponsePage' Lens+gitTreeResponsePageL :: Lens_' GitTreeResponse (Maybe Integer)+gitTreeResponsePageL f GitTreeResponse{..} = (\gitTreeResponsePage -> GitTreeResponse { gitTreeResponsePage, ..} ) <$> f gitTreeResponsePage+{-# INLINE gitTreeResponsePageL #-}++-- | 'gitTreeResponseSha' Lens+gitTreeResponseShaL :: Lens_' GitTreeResponse (Maybe Text)+gitTreeResponseShaL f GitTreeResponse{..} = (\gitTreeResponseSha -> GitTreeResponse { gitTreeResponseSha, ..} ) <$> f gitTreeResponseSha+{-# INLINE gitTreeResponseShaL #-}++-- | 'gitTreeResponseTotalCount' Lens+gitTreeResponseTotalCountL :: Lens_' GitTreeResponse (Maybe Integer)+gitTreeResponseTotalCountL f GitTreeResponse{..} = (\gitTreeResponseTotalCount -> GitTreeResponse { gitTreeResponseTotalCount, ..} ) <$> f gitTreeResponseTotalCount+{-# INLINE gitTreeResponseTotalCountL #-}++-- | 'gitTreeResponseTree' Lens+gitTreeResponseTreeL :: Lens_' GitTreeResponse (Maybe [GitEntry])+gitTreeResponseTreeL f GitTreeResponse{..} = (\gitTreeResponseTree -> GitTreeResponse { gitTreeResponseTree, ..} ) <$> f gitTreeResponseTree+{-# INLINE gitTreeResponseTreeL #-}++-- | 'gitTreeResponseTruncated' Lens+gitTreeResponseTruncatedL :: Lens_' GitTreeResponse (Maybe Bool)+gitTreeResponseTruncatedL f GitTreeResponse{..} = (\gitTreeResponseTruncated -> GitTreeResponse { gitTreeResponseTruncated, ..} ) <$> f gitTreeResponseTruncated+{-# INLINE gitTreeResponseTruncatedL #-}++-- | 'gitTreeResponseUrl' Lens+gitTreeResponseUrlL :: Lens_' GitTreeResponse (Maybe Text)+gitTreeResponseUrlL f GitTreeResponse{..} = (\gitTreeResponseUrl -> GitTreeResponse { gitTreeResponseUrl, ..} ) <$> f gitTreeResponseUrl+{-# INLINE gitTreeResponseUrlL #-}++++-- * Hook++-- | 'hookActive' Lens+hookActiveL :: Lens_' Hook (Maybe Bool)+hookActiveL f Hook{..} = (\hookActive -> Hook { hookActive, ..} ) <$> f hookActive+{-# INLINE hookActiveL #-}++-- | 'hookAuthorizationHeader' Lens+hookAuthorizationHeaderL :: Lens_' Hook (Maybe Text)+hookAuthorizationHeaderL f Hook{..} = (\hookAuthorizationHeader -> Hook { hookAuthorizationHeader, ..} ) <$> f hookAuthorizationHeader+{-# INLINE hookAuthorizationHeaderL #-}++-- | 'hookConfig' Lens+hookConfigL :: Lens_' Hook (Maybe (Map.Map String Text))+hookConfigL f Hook{..} = (\hookConfig -> Hook { hookConfig, ..} ) <$> f hookConfig+{-# INLINE hookConfigL #-}++-- | 'hookCreatedAt' Lens+hookCreatedAtL :: Lens_' Hook (Maybe DateTime)+hookCreatedAtL f Hook{..} = (\hookCreatedAt -> Hook { hookCreatedAt, ..} ) <$> f hookCreatedAt+{-# INLINE hookCreatedAtL #-}++-- | 'hookEvents' Lens+hookEventsL :: Lens_' Hook (Maybe [Text])+hookEventsL f Hook{..} = (\hookEvents -> Hook { hookEvents, ..} ) <$> f hookEvents+{-# INLINE hookEventsL #-}++-- | 'hookId' Lens+hookIdL :: Lens_' Hook (Maybe Integer)+hookIdL f Hook{..} = (\hookId -> Hook { hookId, ..} ) <$> f hookId+{-# INLINE hookIdL #-}++-- | 'hookType' Lens+hookTypeL :: Lens_' Hook (Maybe Text)+hookTypeL f Hook{..} = (\hookType -> Hook { hookType, ..} ) <$> f hookType+{-# INLINE hookTypeL #-}++-- | 'hookUpdatedAt' Lens+hookUpdatedAtL :: Lens_' Hook (Maybe DateTime)+hookUpdatedAtL f Hook{..} = (\hookUpdatedAt -> Hook { hookUpdatedAt, ..} ) <$> f hookUpdatedAt+{-# INLINE hookUpdatedAtL #-}++++-- * Identity++-- | 'identityEmail' Lens+identityEmailL :: Lens_' Identity (Maybe Text)+identityEmailL f Identity{..} = (\identityEmail -> Identity { identityEmail, ..} ) <$> f identityEmail+{-# INLINE identityEmailL #-}++-- | 'identityName' Lens+identityNameL :: Lens_' Identity (Maybe Text)+identityNameL f Identity{..} = (\identityName -> Identity { identityName, ..} ) <$> f identityName+{-# INLINE identityNameL #-}++++-- * InternalTracker++-- | 'internalTrackerAllowOnlyContributorsToTrackTime' Lens+internalTrackerAllowOnlyContributorsToTrackTimeL :: Lens_' InternalTracker (Maybe Bool)+internalTrackerAllowOnlyContributorsToTrackTimeL f InternalTracker{..} = (\internalTrackerAllowOnlyContributorsToTrackTime -> InternalTracker { internalTrackerAllowOnlyContributorsToTrackTime, ..} ) <$> f internalTrackerAllowOnlyContributorsToTrackTime+{-# INLINE internalTrackerAllowOnlyContributorsToTrackTimeL #-}++-- | 'internalTrackerEnableIssueDependencies' Lens+internalTrackerEnableIssueDependenciesL :: Lens_' InternalTracker (Maybe Bool)+internalTrackerEnableIssueDependenciesL f InternalTracker{..} = (\internalTrackerEnableIssueDependencies -> InternalTracker { internalTrackerEnableIssueDependencies, ..} ) <$> f internalTrackerEnableIssueDependencies+{-# INLINE internalTrackerEnableIssueDependenciesL #-}++-- | 'internalTrackerEnableTimeTracker' Lens+internalTrackerEnableTimeTrackerL :: Lens_' InternalTracker (Maybe Bool)+internalTrackerEnableTimeTrackerL f InternalTracker{..} = (\internalTrackerEnableTimeTracker -> InternalTracker { internalTrackerEnableTimeTracker, ..} ) <$> f internalTrackerEnableTimeTracker+{-# INLINE internalTrackerEnableTimeTrackerL #-}++++-- * Issue++-- | 'issueAssets' Lens+issueAssetsL :: Lens_' Issue (Maybe [Attachment])+issueAssetsL f Issue{..} = (\issueAssets -> Issue { issueAssets, ..} ) <$> f issueAssets+{-# INLINE issueAssetsL #-}++-- | 'issueAssignee' Lens+issueAssigneeL :: Lens_' Issue (Maybe User)+issueAssigneeL f Issue{..} = (\issueAssignee -> Issue { issueAssignee, ..} ) <$> f issueAssignee+{-# INLINE issueAssigneeL #-}++-- | 'issueAssignees' Lens+issueAssigneesL :: Lens_' Issue (Maybe [User])+issueAssigneesL f Issue{..} = (\issueAssignees -> Issue { issueAssignees, ..} ) <$> f issueAssignees+{-# INLINE issueAssigneesL #-}++-- | 'issueBody' Lens+issueBodyL :: Lens_' Issue (Maybe Text)+issueBodyL f Issue{..} = (\issueBody -> Issue { issueBody, ..} ) <$> f issueBody+{-# INLINE issueBodyL #-}++-- | 'issueClosedAt' Lens+issueClosedAtL :: Lens_' Issue (Maybe DateTime)+issueClosedAtL f Issue{..} = (\issueClosedAt -> Issue { issueClosedAt, ..} ) <$> f issueClosedAt+{-# INLINE issueClosedAtL #-}++-- | 'issueComments' Lens+issueCommentsL :: Lens_' Issue (Maybe Integer)+issueCommentsL f Issue{..} = (\issueComments -> Issue { issueComments, ..} ) <$> f issueComments+{-# INLINE issueCommentsL #-}++-- | 'issueCreatedAt' Lens+issueCreatedAtL :: Lens_' Issue (Maybe DateTime)+issueCreatedAtL f Issue{..} = (\issueCreatedAt -> Issue { issueCreatedAt, ..} ) <$> f issueCreatedAt+{-# INLINE issueCreatedAtL #-}++-- | 'issueDueDate' Lens+issueDueDateL :: Lens_' Issue (Maybe DateTime)+issueDueDateL f Issue{..} = (\issueDueDate -> Issue { issueDueDate, ..} ) <$> f issueDueDate+{-# INLINE issueDueDateL #-}++-- | 'issueHtmlUrl' Lens+issueHtmlUrlL :: Lens_' Issue (Maybe Text)+issueHtmlUrlL f Issue{..} = (\issueHtmlUrl -> Issue { issueHtmlUrl, ..} ) <$> f issueHtmlUrl+{-# INLINE issueHtmlUrlL #-}++-- | 'issueId' Lens+issueIdL :: Lens_' Issue (Maybe Integer)+issueIdL f Issue{..} = (\issueId -> Issue { issueId, ..} ) <$> f issueId+{-# INLINE issueIdL #-}++-- | 'issueIsLocked' Lens+issueIsLockedL :: Lens_' Issue (Maybe Bool)+issueIsLockedL f Issue{..} = (\issueIsLocked -> Issue { issueIsLocked, ..} ) <$> f issueIsLocked+{-# INLINE issueIsLockedL #-}++-- | 'issueLabels' Lens+issueLabelsL :: Lens_' Issue (Maybe [Label])+issueLabelsL f Issue{..} = (\issueLabels -> Issue { issueLabels, ..} ) <$> f issueLabels+{-# INLINE issueLabelsL #-}++-- | 'issueMilestone' Lens+issueMilestoneL :: Lens_' Issue (Maybe Milestone)+issueMilestoneL f Issue{..} = (\issueMilestone -> Issue { issueMilestone, ..} ) <$> f issueMilestone+{-# INLINE issueMilestoneL #-}++-- | 'issueNumber' Lens+issueNumberL :: Lens_' Issue (Maybe Integer)+issueNumberL f Issue{..} = (\issueNumber -> Issue { issueNumber, ..} ) <$> f issueNumber+{-# INLINE issueNumberL #-}++-- | 'issueOriginalAuthor' Lens+issueOriginalAuthorL :: Lens_' Issue (Maybe Text)+issueOriginalAuthorL f Issue{..} = (\issueOriginalAuthor -> Issue { issueOriginalAuthor, ..} ) <$> f issueOriginalAuthor+{-# INLINE issueOriginalAuthorL #-}++-- | 'issueOriginalAuthorId' Lens+issueOriginalAuthorIdL :: Lens_' Issue (Maybe Integer)+issueOriginalAuthorIdL f Issue{..} = (\issueOriginalAuthorId -> Issue { issueOriginalAuthorId, ..} ) <$> f issueOriginalAuthorId+{-# INLINE issueOriginalAuthorIdL #-}++-- | 'issuePullRequest' Lens+issuePullRequestL :: Lens_' Issue (Maybe PullRequestMeta)+issuePullRequestL f Issue{..} = (\issuePullRequest -> Issue { issuePullRequest, ..} ) <$> f issuePullRequest+{-# INLINE issuePullRequestL #-}++-- | 'issueRef' Lens+issueRefL :: Lens_' Issue (Maybe Text)+issueRefL f Issue{..} = (\issueRef -> Issue { issueRef, ..} ) <$> f issueRef+{-# INLINE issueRefL #-}++-- | 'issueRepository' Lens+issueRepositoryL :: Lens_' Issue (Maybe RepositoryMeta)+issueRepositoryL f Issue{..} = (\issueRepository -> Issue { issueRepository, ..} ) <$> f issueRepository+{-# INLINE issueRepositoryL #-}++-- | 'issueState' Lens+issueStateL :: Lens_' Issue (Maybe Text)+issueStateL f Issue{..} = (\issueState -> Issue { issueState, ..} ) <$> f issueState+{-# INLINE issueStateL #-}++-- | 'issueTitle' Lens+issueTitleL :: Lens_' Issue (Maybe Text)+issueTitleL f Issue{..} = (\issueTitle -> Issue { issueTitle, ..} ) <$> f issueTitle+{-# INLINE issueTitleL #-}++-- | 'issueUpdatedAt' Lens+issueUpdatedAtL :: Lens_' Issue (Maybe DateTime)+issueUpdatedAtL f Issue{..} = (\issueUpdatedAt -> Issue { issueUpdatedAt, ..} ) <$> f issueUpdatedAt+{-# INLINE issueUpdatedAtL #-}++-- | 'issueUrl' Lens+issueUrlL :: Lens_' Issue (Maybe Text)+issueUrlL f Issue{..} = (\issueUrl -> Issue { issueUrl, ..} ) <$> f issueUrl+{-# INLINE issueUrlL #-}++-- | 'issueUser' Lens+issueUserL :: Lens_' Issue (Maybe User)+issueUserL f Issue{..} = (\issueUser -> Issue { issueUser, ..} ) <$> f issueUser+{-# INLINE issueUserL #-}++++-- * IssueDeadline++-- | 'issueDeadlineDueDate' Lens+issueDeadlineDueDateL :: Lens_' IssueDeadline (Maybe DateTime)+issueDeadlineDueDateL f IssueDeadline{..} = (\issueDeadlineDueDate -> IssueDeadline { issueDeadlineDueDate, ..} ) <$> f issueDeadlineDueDate+{-# INLINE issueDeadlineDueDateL #-}++++-- * IssueFormField++-- | 'issueFormFieldAttributes' Lens+issueFormFieldAttributesL :: Lens_' IssueFormField (Maybe (Map.Map String A.Value))+issueFormFieldAttributesL f IssueFormField{..} = (\issueFormFieldAttributes -> IssueFormField { issueFormFieldAttributes, ..} ) <$> f issueFormFieldAttributes+{-# INLINE issueFormFieldAttributesL #-}++-- | 'issueFormFieldId' Lens+issueFormFieldIdL :: Lens_' IssueFormField (Maybe Text)+issueFormFieldIdL f IssueFormField{..} = (\issueFormFieldId -> IssueFormField { issueFormFieldId, ..} ) <$> f issueFormFieldId+{-# INLINE issueFormFieldIdL #-}++-- | 'issueFormFieldType' Lens+issueFormFieldTypeL :: Lens_' IssueFormField (Maybe Text)+issueFormFieldTypeL f IssueFormField{..} = (\issueFormFieldType -> IssueFormField { issueFormFieldType, ..} ) <$> f issueFormFieldType+{-# INLINE issueFormFieldTypeL #-}++-- | 'issueFormFieldValidations' Lens+issueFormFieldValidationsL :: Lens_' IssueFormField (Maybe (Map.Map String A.Value))+issueFormFieldValidationsL f IssueFormField{..} = (\issueFormFieldValidations -> IssueFormField { issueFormFieldValidations, ..} ) <$> f issueFormFieldValidations+{-# INLINE issueFormFieldValidationsL #-}++++-- * IssueLabelsOption++-- | 'issueLabelsOptionLabels' Lens+issueLabelsOptionLabelsL :: Lens_' IssueLabelsOption (Maybe [Integer])+issueLabelsOptionLabelsL f IssueLabelsOption{..} = (\issueLabelsOptionLabels -> IssueLabelsOption { issueLabelsOptionLabels, ..} ) <$> f issueLabelsOptionLabels+{-# INLINE issueLabelsOptionLabelsL #-}++++-- * IssueTemplate++-- | 'issueTemplateAbout' Lens+issueTemplateAboutL :: Lens_' IssueTemplate (Maybe Text)+issueTemplateAboutL f IssueTemplate{..} = (\issueTemplateAbout -> IssueTemplate { issueTemplateAbout, ..} ) <$> f issueTemplateAbout+{-# INLINE issueTemplateAboutL #-}++-- | 'issueTemplateBody' Lens+issueTemplateBodyL :: Lens_' IssueTemplate (Maybe [IssueFormField])+issueTemplateBodyL f IssueTemplate{..} = (\issueTemplateBody -> IssueTemplate { issueTemplateBody, ..} ) <$> f issueTemplateBody+{-# INLINE issueTemplateBodyL #-}++-- | 'issueTemplateContent' Lens+issueTemplateContentL :: Lens_' IssueTemplate (Maybe Text)+issueTemplateContentL f IssueTemplate{..} = (\issueTemplateContent -> IssueTemplate { issueTemplateContent, ..} ) <$> f issueTemplateContent+{-# INLINE issueTemplateContentL #-}++-- | 'issueTemplateFileName' Lens+issueTemplateFileNameL :: Lens_' IssueTemplate (Maybe Text)+issueTemplateFileNameL f IssueTemplate{..} = (\issueTemplateFileName -> IssueTemplate { issueTemplateFileName, ..} ) <$> f issueTemplateFileName+{-# INLINE issueTemplateFileNameL #-}++-- | 'issueTemplateLabels' Lens+issueTemplateLabelsL :: Lens_' IssueTemplate (Maybe [Text])+issueTemplateLabelsL f IssueTemplate{..} = (\issueTemplateLabels -> IssueTemplate { issueTemplateLabels, ..} ) <$> f issueTemplateLabels+{-# INLINE issueTemplateLabelsL #-}++-- | 'issueTemplateName' Lens+issueTemplateNameL :: Lens_' IssueTemplate (Maybe Text)+issueTemplateNameL f IssueTemplate{..} = (\issueTemplateName -> IssueTemplate { issueTemplateName, ..} ) <$> f issueTemplateName+{-# INLINE issueTemplateNameL #-}++-- | 'issueTemplateRef' Lens+issueTemplateRefL :: Lens_' IssueTemplate (Maybe Text)+issueTemplateRefL f IssueTemplate{..} = (\issueTemplateRef -> IssueTemplate { issueTemplateRef, ..} ) <$> f issueTemplateRef+{-# INLINE issueTemplateRefL #-}++-- | 'issueTemplateTitle' Lens+issueTemplateTitleL :: Lens_' IssueTemplate (Maybe Text)+issueTemplateTitleL f IssueTemplate{..} = (\issueTemplateTitle -> IssueTemplate { issueTemplateTitle, ..} ) <$> f issueTemplateTitle+{-# INLINE issueTemplateTitleL #-}++++-- * Label++-- | 'labelColor' Lens+labelColorL :: Lens_' Label (Maybe Text)+labelColorL f Label{..} = (\labelColor -> Label { labelColor, ..} ) <$> f labelColor+{-# INLINE labelColorL #-}++-- | 'labelDescription' Lens+labelDescriptionL :: Lens_' Label (Maybe Text)+labelDescriptionL f Label{..} = (\labelDescription -> Label { labelDescription, ..} ) <$> f labelDescription+{-# INLINE labelDescriptionL #-}++-- | 'labelExclusive' Lens+labelExclusiveL :: Lens_' Label (Maybe Bool)+labelExclusiveL f Label{..} = (\labelExclusive -> Label { labelExclusive, ..} ) <$> f labelExclusive+{-# INLINE labelExclusiveL #-}++-- | 'labelId' Lens+labelIdL :: Lens_' Label (Maybe Integer)+labelIdL f Label{..} = (\labelId -> Label { labelId, ..} ) <$> f labelId+{-# INLINE labelIdL #-}++-- | 'labelName' Lens+labelNameL :: Lens_' Label (Maybe Text)+labelNameL f Label{..} = (\labelName -> Label { labelName, ..} ) <$> f labelName+{-# INLINE labelNameL #-}++-- | 'labelUrl' Lens+labelUrlL :: Lens_' Label (Maybe Text)+labelUrlL f Label{..} = (\labelUrl -> Label { labelUrl, ..} ) <$> f labelUrl+{-# INLINE labelUrlL #-}++++-- * MarkdownOption++-- | 'markdownOptionContext' Lens+markdownOptionContextL :: Lens_' MarkdownOption (Maybe Text)+markdownOptionContextL f MarkdownOption{..} = (\markdownOptionContext -> MarkdownOption { markdownOptionContext, ..} ) <$> f markdownOptionContext+{-# INLINE markdownOptionContextL #-}++-- | 'markdownOptionMode' Lens+markdownOptionModeL :: Lens_' MarkdownOption (Maybe Text)+markdownOptionModeL f MarkdownOption{..} = (\markdownOptionMode -> MarkdownOption { markdownOptionMode, ..} ) <$> f markdownOptionMode+{-# INLINE markdownOptionModeL #-}++-- | 'markdownOptionText' Lens+markdownOptionTextL :: Lens_' MarkdownOption (Maybe Text)+markdownOptionTextL f MarkdownOption{..} = (\markdownOptionText -> MarkdownOption { markdownOptionText, ..} ) <$> f markdownOptionText+{-# INLINE markdownOptionTextL #-}++-- | 'markdownOptionWiki' Lens+markdownOptionWikiL :: Lens_' MarkdownOption (Maybe Bool)+markdownOptionWikiL f MarkdownOption{..} = (\markdownOptionWiki -> MarkdownOption { markdownOptionWiki, ..} ) <$> f markdownOptionWiki+{-# INLINE markdownOptionWikiL #-}++++-- * MergePullRequestOption++-- | 'mergePullRequestOptionDo' Lens+mergePullRequestOptionDoL :: Lens_' MergePullRequestOption (E'Do)+mergePullRequestOptionDoL f MergePullRequestOption{..} = (\mergePullRequestOptionDo -> MergePullRequestOption { mergePullRequestOptionDo, ..} ) <$> f mergePullRequestOptionDo+{-# INLINE mergePullRequestOptionDoL #-}++-- | 'mergePullRequestOptionMergeCommitId' Lens+mergePullRequestOptionMergeCommitIdL :: Lens_' MergePullRequestOption (Maybe Text)+mergePullRequestOptionMergeCommitIdL f MergePullRequestOption{..} = (\mergePullRequestOptionMergeCommitId -> MergePullRequestOption { mergePullRequestOptionMergeCommitId, ..} ) <$> f mergePullRequestOptionMergeCommitId+{-# INLINE mergePullRequestOptionMergeCommitIdL #-}++-- | 'mergePullRequestOptionMergeMessageField' Lens+mergePullRequestOptionMergeMessageFieldL :: Lens_' MergePullRequestOption (Maybe Text)+mergePullRequestOptionMergeMessageFieldL f MergePullRequestOption{..} = (\mergePullRequestOptionMergeMessageField -> MergePullRequestOption { mergePullRequestOptionMergeMessageField, ..} ) <$> f mergePullRequestOptionMergeMessageField+{-# INLINE mergePullRequestOptionMergeMessageFieldL #-}++-- | 'mergePullRequestOptionMergeTitleField' Lens+mergePullRequestOptionMergeTitleFieldL :: Lens_' MergePullRequestOption (Maybe Text)+mergePullRequestOptionMergeTitleFieldL f MergePullRequestOption{..} = (\mergePullRequestOptionMergeTitleField -> MergePullRequestOption { mergePullRequestOptionMergeTitleField, ..} ) <$> f mergePullRequestOptionMergeTitleField+{-# INLINE mergePullRequestOptionMergeTitleFieldL #-}++-- | 'mergePullRequestOptionDeleteBranchAfterMerge' Lens+mergePullRequestOptionDeleteBranchAfterMergeL :: Lens_' MergePullRequestOption (Maybe Bool)+mergePullRequestOptionDeleteBranchAfterMergeL f MergePullRequestOption{..} = (\mergePullRequestOptionDeleteBranchAfterMerge -> MergePullRequestOption { mergePullRequestOptionDeleteBranchAfterMerge, ..} ) <$> f mergePullRequestOptionDeleteBranchAfterMerge+{-# INLINE mergePullRequestOptionDeleteBranchAfterMergeL #-}++-- | 'mergePullRequestOptionForceMerge' Lens+mergePullRequestOptionForceMergeL :: Lens_' MergePullRequestOption (Maybe Bool)+mergePullRequestOptionForceMergeL f MergePullRequestOption{..} = (\mergePullRequestOptionForceMerge -> MergePullRequestOption { mergePullRequestOptionForceMerge, ..} ) <$> f mergePullRequestOptionForceMerge+{-# INLINE mergePullRequestOptionForceMergeL #-}++-- | 'mergePullRequestOptionHeadCommitId' Lens+mergePullRequestOptionHeadCommitIdL :: Lens_' MergePullRequestOption (Maybe Text)+mergePullRequestOptionHeadCommitIdL f MergePullRequestOption{..} = (\mergePullRequestOptionHeadCommitId -> MergePullRequestOption { mergePullRequestOptionHeadCommitId, ..} ) <$> f mergePullRequestOptionHeadCommitId+{-# INLINE mergePullRequestOptionHeadCommitIdL #-}++-- | 'mergePullRequestOptionMergeWhenChecksSucceed' Lens+mergePullRequestOptionMergeWhenChecksSucceedL :: Lens_' MergePullRequestOption (Maybe Bool)+mergePullRequestOptionMergeWhenChecksSucceedL f MergePullRequestOption{..} = (\mergePullRequestOptionMergeWhenChecksSucceed -> MergePullRequestOption { mergePullRequestOptionMergeWhenChecksSucceed, ..} ) <$> f mergePullRequestOptionMergeWhenChecksSucceed+{-# INLINE mergePullRequestOptionMergeWhenChecksSucceedL #-}++++-- * MigrateRepoOptions++-- | 'migrateRepoOptionsAuthPassword' Lens+migrateRepoOptionsAuthPasswordL :: Lens_' MigrateRepoOptions (Maybe Text)+migrateRepoOptionsAuthPasswordL f MigrateRepoOptions{..} = (\migrateRepoOptionsAuthPassword -> MigrateRepoOptions { migrateRepoOptionsAuthPassword, ..} ) <$> f migrateRepoOptionsAuthPassword+{-# INLINE migrateRepoOptionsAuthPasswordL #-}++-- | 'migrateRepoOptionsAuthToken' Lens+migrateRepoOptionsAuthTokenL :: Lens_' MigrateRepoOptions (Maybe Text)+migrateRepoOptionsAuthTokenL f MigrateRepoOptions{..} = (\migrateRepoOptionsAuthToken -> MigrateRepoOptions { migrateRepoOptionsAuthToken, ..} ) <$> f migrateRepoOptionsAuthToken+{-# INLINE migrateRepoOptionsAuthTokenL #-}++-- | 'migrateRepoOptionsAuthUsername' Lens+migrateRepoOptionsAuthUsernameL :: Lens_' MigrateRepoOptions (Maybe Text)+migrateRepoOptionsAuthUsernameL f MigrateRepoOptions{..} = (\migrateRepoOptionsAuthUsername -> MigrateRepoOptions { migrateRepoOptionsAuthUsername, ..} ) <$> f migrateRepoOptionsAuthUsername+{-# INLINE migrateRepoOptionsAuthUsernameL #-}++-- | 'migrateRepoOptionsCloneAddr' Lens+migrateRepoOptionsCloneAddrL :: Lens_' MigrateRepoOptions (Text)+migrateRepoOptionsCloneAddrL f MigrateRepoOptions{..} = (\migrateRepoOptionsCloneAddr -> MigrateRepoOptions { migrateRepoOptionsCloneAddr, ..} ) <$> f migrateRepoOptionsCloneAddr+{-# INLINE migrateRepoOptionsCloneAddrL #-}++-- | 'migrateRepoOptionsDescription' Lens+migrateRepoOptionsDescriptionL :: Lens_' MigrateRepoOptions (Maybe Text)+migrateRepoOptionsDescriptionL f MigrateRepoOptions{..} = (\migrateRepoOptionsDescription -> MigrateRepoOptions { migrateRepoOptionsDescription, ..} ) <$> f migrateRepoOptionsDescription+{-# INLINE migrateRepoOptionsDescriptionL #-}++-- | 'migrateRepoOptionsIssues' Lens+migrateRepoOptionsIssuesL :: Lens_' MigrateRepoOptions (Maybe Bool)+migrateRepoOptionsIssuesL f MigrateRepoOptions{..} = (\migrateRepoOptionsIssues -> MigrateRepoOptions { migrateRepoOptionsIssues, ..} ) <$> f migrateRepoOptionsIssues+{-# INLINE migrateRepoOptionsIssuesL #-}++-- | 'migrateRepoOptionsLabels' Lens+migrateRepoOptionsLabelsL :: Lens_' MigrateRepoOptions (Maybe Bool)+migrateRepoOptionsLabelsL f MigrateRepoOptions{..} = (\migrateRepoOptionsLabels -> MigrateRepoOptions { migrateRepoOptionsLabels, ..} ) <$> f migrateRepoOptionsLabels+{-# INLINE migrateRepoOptionsLabelsL #-}++-- | 'migrateRepoOptionsLfs' Lens+migrateRepoOptionsLfsL :: Lens_' MigrateRepoOptions (Maybe Bool)+migrateRepoOptionsLfsL f MigrateRepoOptions{..} = (\migrateRepoOptionsLfs -> MigrateRepoOptions { migrateRepoOptionsLfs, ..} ) <$> f migrateRepoOptionsLfs+{-# INLINE migrateRepoOptionsLfsL #-}++-- | 'migrateRepoOptionsLfsEndpoint' Lens+migrateRepoOptionsLfsEndpointL :: Lens_' MigrateRepoOptions (Maybe Text)+migrateRepoOptionsLfsEndpointL f MigrateRepoOptions{..} = (\migrateRepoOptionsLfsEndpoint -> MigrateRepoOptions { migrateRepoOptionsLfsEndpoint, ..} ) <$> f migrateRepoOptionsLfsEndpoint+{-# INLINE migrateRepoOptionsLfsEndpointL #-}++-- | 'migrateRepoOptionsMilestones' Lens+migrateRepoOptionsMilestonesL :: Lens_' MigrateRepoOptions (Maybe Bool)+migrateRepoOptionsMilestonesL f MigrateRepoOptions{..} = (\migrateRepoOptionsMilestones -> MigrateRepoOptions { migrateRepoOptionsMilestones, ..} ) <$> f migrateRepoOptionsMilestones+{-# INLINE migrateRepoOptionsMilestonesL #-}++-- | 'migrateRepoOptionsMirror' Lens+migrateRepoOptionsMirrorL :: Lens_' MigrateRepoOptions (Maybe Bool)+migrateRepoOptionsMirrorL f MigrateRepoOptions{..} = (\migrateRepoOptionsMirror -> MigrateRepoOptions { migrateRepoOptionsMirror, ..} ) <$> f migrateRepoOptionsMirror+{-# INLINE migrateRepoOptionsMirrorL #-}++-- | 'migrateRepoOptionsMirrorInterval' Lens+migrateRepoOptionsMirrorIntervalL :: Lens_' MigrateRepoOptions (Maybe Text)+migrateRepoOptionsMirrorIntervalL f MigrateRepoOptions{..} = (\migrateRepoOptionsMirrorInterval -> MigrateRepoOptions { migrateRepoOptionsMirrorInterval, ..} ) <$> f migrateRepoOptionsMirrorInterval+{-# INLINE migrateRepoOptionsMirrorIntervalL #-}++-- | 'migrateRepoOptionsPrivate' Lens+migrateRepoOptionsPrivateL :: Lens_' MigrateRepoOptions (Maybe Bool)+migrateRepoOptionsPrivateL f MigrateRepoOptions{..} = (\migrateRepoOptionsPrivate -> MigrateRepoOptions { migrateRepoOptionsPrivate, ..} ) <$> f migrateRepoOptionsPrivate+{-# INLINE migrateRepoOptionsPrivateL #-}++-- | 'migrateRepoOptionsPullRequests' Lens+migrateRepoOptionsPullRequestsL :: Lens_' MigrateRepoOptions (Maybe Bool)+migrateRepoOptionsPullRequestsL f MigrateRepoOptions{..} = (\migrateRepoOptionsPullRequests -> MigrateRepoOptions { migrateRepoOptionsPullRequests, ..} ) <$> f migrateRepoOptionsPullRequests+{-# INLINE migrateRepoOptionsPullRequestsL #-}++-- | 'migrateRepoOptionsReleases' Lens+migrateRepoOptionsReleasesL :: Lens_' MigrateRepoOptions (Maybe Bool)+migrateRepoOptionsReleasesL f MigrateRepoOptions{..} = (\migrateRepoOptionsReleases -> MigrateRepoOptions { migrateRepoOptionsReleases, ..} ) <$> f migrateRepoOptionsReleases+{-# INLINE migrateRepoOptionsReleasesL #-}++-- | 'migrateRepoOptionsRepoName' Lens+migrateRepoOptionsRepoNameL :: Lens_' MigrateRepoOptions (Text)+migrateRepoOptionsRepoNameL f MigrateRepoOptions{..} = (\migrateRepoOptionsRepoName -> MigrateRepoOptions { migrateRepoOptionsRepoName, ..} ) <$> f migrateRepoOptionsRepoName+{-# INLINE migrateRepoOptionsRepoNameL #-}++-- | 'migrateRepoOptionsRepoOwner' Lens+migrateRepoOptionsRepoOwnerL :: Lens_' MigrateRepoOptions (Maybe Text)+migrateRepoOptionsRepoOwnerL f MigrateRepoOptions{..} = (\migrateRepoOptionsRepoOwner -> MigrateRepoOptions { migrateRepoOptionsRepoOwner, ..} ) <$> f migrateRepoOptionsRepoOwner+{-# INLINE migrateRepoOptionsRepoOwnerL #-}++-- | 'migrateRepoOptionsService' Lens+migrateRepoOptionsServiceL :: Lens_' MigrateRepoOptions (Maybe E'Service)+migrateRepoOptionsServiceL f MigrateRepoOptions{..} = (\migrateRepoOptionsService -> MigrateRepoOptions { migrateRepoOptionsService, ..} ) <$> f migrateRepoOptionsService+{-# INLINE migrateRepoOptionsServiceL #-}++-- | 'migrateRepoOptionsUid' Lens+migrateRepoOptionsUidL :: Lens_' MigrateRepoOptions (Maybe Integer)+migrateRepoOptionsUidL f MigrateRepoOptions{..} = (\migrateRepoOptionsUid -> MigrateRepoOptions { migrateRepoOptionsUid, ..} ) <$> f migrateRepoOptionsUid+{-# INLINE migrateRepoOptionsUidL #-}++-- | 'migrateRepoOptionsWiki' Lens+migrateRepoOptionsWikiL :: Lens_' MigrateRepoOptions (Maybe Bool)+migrateRepoOptionsWikiL f MigrateRepoOptions{..} = (\migrateRepoOptionsWiki -> MigrateRepoOptions { migrateRepoOptionsWiki, ..} ) <$> f migrateRepoOptionsWiki+{-# INLINE migrateRepoOptionsWikiL #-}++++-- * Milestone++-- | 'milestoneClosedAt' Lens+milestoneClosedAtL :: Lens_' Milestone (Maybe DateTime)+milestoneClosedAtL f Milestone{..} = (\milestoneClosedAt -> Milestone { milestoneClosedAt, ..} ) <$> f milestoneClosedAt+{-# INLINE milestoneClosedAtL #-}++-- | 'milestoneClosedIssues' Lens+milestoneClosedIssuesL :: Lens_' Milestone (Maybe Integer)+milestoneClosedIssuesL f Milestone{..} = (\milestoneClosedIssues -> Milestone { milestoneClosedIssues, ..} ) <$> f milestoneClosedIssues+{-# INLINE milestoneClosedIssuesL #-}++-- | 'milestoneCreatedAt' Lens+milestoneCreatedAtL :: Lens_' Milestone (Maybe DateTime)+milestoneCreatedAtL f Milestone{..} = (\milestoneCreatedAt -> Milestone { milestoneCreatedAt, ..} ) <$> f milestoneCreatedAt+{-# INLINE milestoneCreatedAtL #-}++-- | 'milestoneDescription' Lens+milestoneDescriptionL :: Lens_' Milestone (Maybe Text)+milestoneDescriptionL f Milestone{..} = (\milestoneDescription -> Milestone { milestoneDescription, ..} ) <$> f milestoneDescription+{-# INLINE milestoneDescriptionL #-}++-- | 'milestoneDueOn' Lens+milestoneDueOnL :: Lens_' Milestone (Maybe DateTime)+milestoneDueOnL f Milestone{..} = (\milestoneDueOn -> Milestone { milestoneDueOn, ..} ) <$> f milestoneDueOn+{-# INLINE milestoneDueOnL #-}++-- | 'milestoneId' Lens+milestoneIdL :: Lens_' Milestone (Maybe Integer)+milestoneIdL f Milestone{..} = (\milestoneId -> Milestone { milestoneId, ..} ) <$> f milestoneId+{-# INLINE milestoneIdL #-}++-- | 'milestoneOpenIssues' Lens+milestoneOpenIssuesL :: Lens_' Milestone (Maybe Integer)+milestoneOpenIssuesL f Milestone{..} = (\milestoneOpenIssues -> Milestone { milestoneOpenIssues, ..} ) <$> f milestoneOpenIssues+{-# INLINE milestoneOpenIssuesL #-}++-- | 'milestoneState' Lens+milestoneStateL :: Lens_' Milestone (Maybe Text)+milestoneStateL f Milestone{..} = (\milestoneState -> Milestone { milestoneState, ..} ) <$> f milestoneState+{-# INLINE milestoneStateL #-}++-- | 'milestoneTitle' Lens+milestoneTitleL :: Lens_' Milestone (Maybe Text)+milestoneTitleL f Milestone{..} = (\milestoneTitle -> Milestone { milestoneTitle, ..} ) <$> f milestoneTitle+{-# INLINE milestoneTitleL #-}++-- | 'milestoneUpdatedAt' Lens+milestoneUpdatedAtL :: Lens_' Milestone (Maybe DateTime)+milestoneUpdatedAtL f Milestone{..} = (\milestoneUpdatedAt -> Milestone { milestoneUpdatedAt, ..} ) <$> f milestoneUpdatedAt+{-# INLINE milestoneUpdatedAtL #-}++++-- * NodeInfo++-- | 'nodeInfoMetadata' Lens+nodeInfoMetadataL :: Lens_' NodeInfo (Maybe A.Value)+nodeInfoMetadataL f NodeInfo{..} = (\nodeInfoMetadata -> NodeInfo { nodeInfoMetadata, ..} ) <$> f nodeInfoMetadata+{-# INLINE nodeInfoMetadataL #-}++-- | 'nodeInfoOpenRegistrations' Lens+nodeInfoOpenRegistrationsL :: Lens_' NodeInfo (Maybe Bool)+nodeInfoOpenRegistrationsL f NodeInfo{..} = (\nodeInfoOpenRegistrations -> NodeInfo { nodeInfoOpenRegistrations, ..} ) <$> f nodeInfoOpenRegistrations+{-# INLINE nodeInfoOpenRegistrationsL #-}++-- | 'nodeInfoProtocols' Lens+nodeInfoProtocolsL :: Lens_' NodeInfo (Maybe [Text])+nodeInfoProtocolsL f NodeInfo{..} = (\nodeInfoProtocols -> NodeInfo { nodeInfoProtocols, ..} ) <$> f nodeInfoProtocols+{-# INLINE nodeInfoProtocolsL #-}++-- | 'nodeInfoServices' Lens+nodeInfoServicesL :: Lens_' NodeInfo (Maybe NodeInfoServices)+nodeInfoServicesL f NodeInfo{..} = (\nodeInfoServices -> NodeInfo { nodeInfoServices, ..} ) <$> f nodeInfoServices+{-# INLINE nodeInfoServicesL #-}++-- | 'nodeInfoSoftware' Lens+nodeInfoSoftwareL :: Lens_' NodeInfo (Maybe NodeInfoSoftware)+nodeInfoSoftwareL f NodeInfo{..} = (\nodeInfoSoftware -> NodeInfo { nodeInfoSoftware, ..} ) <$> f nodeInfoSoftware+{-# INLINE nodeInfoSoftwareL #-}++-- | 'nodeInfoUsage' Lens+nodeInfoUsageL :: Lens_' NodeInfo (Maybe NodeInfoUsage)+nodeInfoUsageL f NodeInfo{..} = (\nodeInfoUsage -> NodeInfo { nodeInfoUsage, ..} ) <$> f nodeInfoUsage+{-# INLINE nodeInfoUsageL #-}++-- | 'nodeInfoVersion' Lens+nodeInfoVersionL :: Lens_' NodeInfo (Maybe Text)+nodeInfoVersionL f NodeInfo{..} = (\nodeInfoVersion -> NodeInfo { nodeInfoVersion, ..} ) <$> f nodeInfoVersion+{-# INLINE nodeInfoVersionL #-}++++-- * NodeInfoServices++-- | 'nodeInfoServicesInbound' Lens+nodeInfoServicesInboundL :: Lens_' NodeInfoServices (Maybe [Text])+nodeInfoServicesInboundL f NodeInfoServices{..} = (\nodeInfoServicesInbound -> NodeInfoServices { nodeInfoServicesInbound, ..} ) <$> f nodeInfoServicesInbound+{-# INLINE nodeInfoServicesInboundL #-}++-- | 'nodeInfoServicesOutbound' Lens+nodeInfoServicesOutboundL :: Lens_' NodeInfoServices (Maybe [Text])+nodeInfoServicesOutboundL f NodeInfoServices{..} = (\nodeInfoServicesOutbound -> NodeInfoServices { nodeInfoServicesOutbound, ..} ) <$> f nodeInfoServicesOutbound+{-# INLINE nodeInfoServicesOutboundL #-}++++-- * NodeInfoSoftware++-- | 'nodeInfoSoftwareHomepage' Lens+nodeInfoSoftwareHomepageL :: Lens_' NodeInfoSoftware (Maybe Text)+nodeInfoSoftwareHomepageL f NodeInfoSoftware{..} = (\nodeInfoSoftwareHomepage -> NodeInfoSoftware { nodeInfoSoftwareHomepage, ..} ) <$> f nodeInfoSoftwareHomepage+{-# INLINE nodeInfoSoftwareHomepageL #-}++-- | 'nodeInfoSoftwareName' Lens+nodeInfoSoftwareNameL :: Lens_' NodeInfoSoftware (Maybe Text)+nodeInfoSoftwareNameL f NodeInfoSoftware{..} = (\nodeInfoSoftwareName -> NodeInfoSoftware { nodeInfoSoftwareName, ..} ) <$> f nodeInfoSoftwareName+{-# INLINE nodeInfoSoftwareNameL #-}++-- | 'nodeInfoSoftwareRepository' Lens+nodeInfoSoftwareRepositoryL :: Lens_' NodeInfoSoftware (Maybe Text)+nodeInfoSoftwareRepositoryL f NodeInfoSoftware{..} = (\nodeInfoSoftwareRepository -> NodeInfoSoftware { nodeInfoSoftwareRepository, ..} ) <$> f nodeInfoSoftwareRepository+{-# INLINE nodeInfoSoftwareRepositoryL #-}++-- | 'nodeInfoSoftwareVersion' Lens+nodeInfoSoftwareVersionL :: Lens_' NodeInfoSoftware (Maybe Text)+nodeInfoSoftwareVersionL f NodeInfoSoftware{..} = (\nodeInfoSoftwareVersion -> NodeInfoSoftware { nodeInfoSoftwareVersion, ..} ) <$> f nodeInfoSoftwareVersion+{-# INLINE nodeInfoSoftwareVersionL #-}++++-- * NodeInfoUsage++-- | 'nodeInfoUsageLocalComments' Lens+nodeInfoUsageLocalCommentsL :: Lens_' NodeInfoUsage (Maybe Integer)+nodeInfoUsageLocalCommentsL f NodeInfoUsage{..} = (\nodeInfoUsageLocalComments -> NodeInfoUsage { nodeInfoUsageLocalComments, ..} ) <$> f nodeInfoUsageLocalComments+{-# INLINE nodeInfoUsageLocalCommentsL #-}++-- | 'nodeInfoUsageLocalPosts' Lens+nodeInfoUsageLocalPostsL :: Lens_' NodeInfoUsage (Maybe Integer)+nodeInfoUsageLocalPostsL f NodeInfoUsage{..} = (\nodeInfoUsageLocalPosts -> NodeInfoUsage { nodeInfoUsageLocalPosts, ..} ) <$> f nodeInfoUsageLocalPosts+{-# INLINE nodeInfoUsageLocalPostsL #-}++-- | 'nodeInfoUsageUsers' Lens+nodeInfoUsageUsersL :: Lens_' NodeInfoUsage (Maybe NodeInfoUsageUsers)+nodeInfoUsageUsersL f NodeInfoUsage{..} = (\nodeInfoUsageUsers -> NodeInfoUsage { nodeInfoUsageUsers, ..} ) <$> f nodeInfoUsageUsers+{-# INLINE nodeInfoUsageUsersL #-}++++-- * NodeInfoUsageUsers++-- | 'nodeInfoUsageUsersActiveHalfyear' Lens+nodeInfoUsageUsersActiveHalfyearL :: Lens_' NodeInfoUsageUsers (Maybe Integer)+nodeInfoUsageUsersActiveHalfyearL f NodeInfoUsageUsers{..} = (\nodeInfoUsageUsersActiveHalfyear -> NodeInfoUsageUsers { nodeInfoUsageUsersActiveHalfyear, ..} ) <$> f nodeInfoUsageUsersActiveHalfyear+{-# INLINE nodeInfoUsageUsersActiveHalfyearL #-}++-- | 'nodeInfoUsageUsersActiveMonth' Lens+nodeInfoUsageUsersActiveMonthL :: Lens_' NodeInfoUsageUsers (Maybe Integer)+nodeInfoUsageUsersActiveMonthL f NodeInfoUsageUsers{..} = (\nodeInfoUsageUsersActiveMonth -> NodeInfoUsageUsers { nodeInfoUsageUsersActiveMonth, ..} ) <$> f nodeInfoUsageUsersActiveMonth+{-# INLINE nodeInfoUsageUsersActiveMonthL #-}++-- | 'nodeInfoUsageUsersTotal' Lens+nodeInfoUsageUsersTotalL :: Lens_' NodeInfoUsageUsers (Maybe Integer)+nodeInfoUsageUsersTotalL f NodeInfoUsageUsers{..} = (\nodeInfoUsageUsersTotal -> NodeInfoUsageUsers { nodeInfoUsageUsersTotal, ..} ) <$> f nodeInfoUsageUsersTotal+{-# INLINE nodeInfoUsageUsersTotalL #-}++++-- * Note++-- | 'noteCommit' Lens+noteCommitL :: Lens_' Note (Maybe Commit)+noteCommitL f Note{..} = (\noteCommit -> Note { noteCommit, ..} ) <$> f noteCommit+{-# INLINE noteCommitL #-}++-- | 'noteMessage' Lens+noteMessageL :: Lens_' Note (Maybe Text)+noteMessageL f Note{..} = (\noteMessage -> Note { noteMessage, ..} ) <$> f noteMessage+{-# INLINE noteMessageL #-}++++-- * NotificationCount++-- | 'notificationCountNew' Lens+notificationCountNewL :: Lens_' NotificationCount (Maybe Integer)+notificationCountNewL f NotificationCount{..} = (\notificationCountNew -> NotificationCount { notificationCountNew, ..} ) <$> f notificationCountNew+{-# INLINE notificationCountNewL #-}++++-- * NotificationSubject++-- | 'notificationSubjectHtmlUrl' Lens+notificationSubjectHtmlUrlL :: Lens_' NotificationSubject (Maybe Text)+notificationSubjectHtmlUrlL f NotificationSubject{..} = (\notificationSubjectHtmlUrl -> NotificationSubject { notificationSubjectHtmlUrl, ..} ) <$> f notificationSubjectHtmlUrl+{-# INLINE notificationSubjectHtmlUrlL #-}++-- | 'notificationSubjectLatestCommentHtmlUrl' Lens+notificationSubjectLatestCommentHtmlUrlL :: Lens_' NotificationSubject (Maybe Text)+notificationSubjectLatestCommentHtmlUrlL f NotificationSubject{..} = (\notificationSubjectLatestCommentHtmlUrl -> NotificationSubject { notificationSubjectLatestCommentHtmlUrl, ..} ) <$> f notificationSubjectLatestCommentHtmlUrl+{-# INLINE notificationSubjectLatestCommentHtmlUrlL #-}++-- | 'notificationSubjectLatestCommentUrl' Lens+notificationSubjectLatestCommentUrlL :: Lens_' NotificationSubject (Maybe Text)+notificationSubjectLatestCommentUrlL f NotificationSubject{..} = (\notificationSubjectLatestCommentUrl -> NotificationSubject { notificationSubjectLatestCommentUrl, ..} ) <$> f notificationSubjectLatestCommentUrl+{-# INLINE notificationSubjectLatestCommentUrlL #-}++-- | 'notificationSubjectState' Lens+notificationSubjectStateL :: Lens_' NotificationSubject (Maybe Text)+notificationSubjectStateL f NotificationSubject{..} = (\notificationSubjectState -> NotificationSubject { notificationSubjectState, ..} ) <$> f notificationSubjectState+{-# INLINE notificationSubjectStateL #-}++-- | 'notificationSubjectTitle' Lens+notificationSubjectTitleL :: Lens_' NotificationSubject (Maybe Text)+notificationSubjectTitleL f NotificationSubject{..} = (\notificationSubjectTitle -> NotificationSubject { notificationSubjectTitle, ..} ) <$> f notificationSubjectTitle+{-# INLINE notificationSubjectTitleL #-}++-- | 'notificationSubjectType' Lens+notificationSubjectTypeL :: Lens_' NotificationSubject (Maybe Text)+notificationSubjectTypeL f NotificationSubject{..} = (\notificationSubjectType -> NotificationSubject { notificationSubjectType, ..} ) <$> f notificationSubjectType+{-# INLINE notificationSubjectTypeL #-}++-- | 'notificationSubjectUrl' Lens+notificationSubjectUrlL :: Lens_' NotificationSubject (Maybe Text)+notificationSubjectUrlL f NotificationSubject{..} = (\notificationSubjectUrl -> NotificationSubject { notificationSubjectUrl, ..} ) <$> f notificationSubjectUrl+{-# INLINE notificationSubjectUrlL #-}++++-- * NotificationThread++-- | 'notificationThreadId' Lens+notificationThreadIdL :: Lens_' NotificationThread (Maybe Integer)+notificationThreadIdL f NotificationThread{..} = (\notificationThreadId -> NotificationThread { notificationThreadId, ..} ) <$> f notificationThreadId+{-# INLINE notificationThreadIdL #-}++-- | 'notificationThreadPinned' Lens+notificationThreadPinnedL :: Lens_' NotificationThread (Maybe Bool)+notificationThreadPinnedL f NotificationThread{..} = (\notificationThreadPinned -> NotificationThread { notificationThreadPinned, ..} ) <$> f notificationThreadPinned+{-# INLINE notificationThreadPinnedL #-}++-- | 'notificationThreadRepository' Lens+notificationThreadRepositoryL :: Lens_' NotificationThread (Maybe Repository)+notificationThreadRepositoryL f NotificationThread{..} = (\notificationThreadRepository -> NotificationThread { notificationThreadRepository, ..} ) <$> f notificationThreadRepository+{-# INLINE notificationThreadRepositoryL #-}++-- | 'notificationThreadSubject' Lens+notificationThreadSubjectL :: Lens_' NotificationThread (Maybe NotificationSubject)+notificationThreadSubjectL f NotificationThread{..} = (\notificationThreadSubject -> NotificationThread { notificationThreadSubject, ..} ) <$> f notificationThreadSubject+{-# INLINE notificationThreadSubjectL #-}++-- | 'notificationThreadUnread' Lens+notificationThreadUnreadL :: Lens_' NotificationThread (Maybe Bool)+notificationThreadUnreadL f NotificationThread{..} = (\notificationThreadUnread -> NotificationThread { notificationThreadUnread, ..} ) <$> f notificationThreadUnread+{-# INLINE notificationThreadUnreadL #-}++-- | 'notificationThreadUpdatedAt' Lens+notificationThreadUpdatedAtL :: Lens_' NotificationThread (Maybe DateTime)+notificationThreadUpdatedAtL f NotificationThread{..} = (\notificationThreadUpdatedAt -> NotificationThread { notificationThreadUpdatedAt, ..} ) <$> f notificationThreadUpdatedAt+{-# INLINE notificationThreadUpdatedAtL #-}++-- | 'notificationThreadUrl' Lens+notificationThreadUrlL :: Lens_' NotificationThread (Maybe Text)+notificationThreadUrlL f NotificationThread{..} = (\notificationThreadUrl -> NotificationThread { notificationThreadUrl, ..} ) <$> f notificationThreadUrl+{-# INLINE notificationThreadUrlL #-}++++-- * OAuth2Application++-- | 'oAuth2ApplicationClientId' Lens+oAuth2ApplicationClientIdL :: Lens_' OAuth2Application (Maybe Text)+oAuth2ApplicationClientIdL f OAuth2Application{..} = (\oAuth2ApplicationClientId -> OAuth2Application { oAuth2ApplicationClientId, ..} ) <$> f oAuth2ApplicationClientId+{-# INLINE oAuth2ApplicationClientIdL #-}++-- | 'oAuth2ApplicationClientSecret' Lens+oAuth2ApplicationClientSecretL :: Lens_' OAuth2Application (Maybe Text)+oAuth2ApplicationClientSecretL f OAuth2Application{..} = (\oAuth2ApplicationClientSecret -> OAuth2Application { oAuth2ApplicationClientSecret, ..} ) <$> f oAuth2ApplicationClientSecret+{-# INLINE oAuth2ApplicationClientSecretL #-}++-- | 'oAuth2ApplicationConfidentialClient' Lens+oAuth2ApplicationConfidentialClientL :: Lens_' OAuth2Application (Maybe Bool)+oAuth2ApplicationConfidentialClientL f OAuth2Application{..} = (\oAuth2ApplicationConfidentialClient -> OAuth2Application { oAuth2ApplicationConfidentialClient, ..} ) <$> f oAuth2ApplicationConfidentialClient+{-# INLINE oAuth2ApplicationConfidentialClientL #-}++-- | 'oAuth2ApplicationCreated' Lens+oAuth2ApplicationCreatedL :: Lens_' OAuth2Application (Maybe DateTime)+oAuth2ApplicationCreatedL f OAuth2Application{..} = (\oAuth2ApplicationCreated -> OAuth2Application { oAuth2ApplicationCreated, ..} ) <$> f oAuth2ApplicationCreated+{-# INLINE oAuth2ApplicationCreatedL #-}++-- | 'oAuth2ApplicationId' Lens+oAuth2ApplicationIdL :: Lens_' OAuth2Application (Maybe Integer)+oAuth2ApplicationIdL f OAuth2Application{..} = (\oAuth2ApplicationId -> OAuth2Application { oAuth2ApplicationId, ..} ) <$> f oAuth2ApplicationId+{-# INLINE oAuth2ApplicationIdL #-}++-- | 'oAuth2ApplicationName' Lens+oAuth2ApplicationNameL :: Lens_' OAuth2Application (Maybe Text)+oAuth2ApplicationNameL f OAuth2Application{..} = (\oAuth2ApplicationName -> OAuth2Application { oAuth2ApplicationName, ..} ) <$> f oAuth2ApplicationName+{-# INLINE oAuth2ApplicationNameL #-}++-- | 'oAuth2ApplicationRedirectUris' Lens+oAuth2ApplicationRedirectUrisL :: Lens_' OAuth2Application (Maybe [Text])+oAuth2ApplicationRedirectUrisL f OAuth2Application{..} = (\oAuth2ApplicationRedirectUris -> OAuth2Application { oAuth2ApplicationRedirectUris, ..} ) <$> f oAuth2ApplicationRedirectUris+{-# INLINE oAuth2ApplicationRedirectUrisL #-}++++-- * Organization++-- | 'organizationAvatarUrl' Lens+organizationAvatarUrlL :: Lens_' Organization (Maybe Text)+organizationAvatarUrlL f Organization{..} = (\organizationAvatarUrl -> Organization { organizationAvatarUrl, ..} ) <$> f organizationAvatarUrl+{-# INLINE organizationAvatarUrlL #-}++-- | 'organizationDescription' Lens+organizationDescriptionL :: Lens_' Organization (Maybe Text)+organizationDescriptionL f Organization{..} = (\organizationDescription -> Organization { organizationDescription, ..} ) <$> f organizationDescription+{-# INLINE organizationDescriptionL #-}++-- | 'organizationFullName' Lens+organizationFullNameL :: Lens_' Organization (Maybe Text)+organizationFullNameL f Organization{..} = (\organizationFullName -> Organization { organizationFullName, ..} ) <$> f organizationFullName+{-# INLINE organizationFullNameL #-}++-- | 'organizationId' Lens+organizationIdL :: Lens_' Organization (Maybe Integer)+organizationIdL f Organization{..} = (\organizationId -> Organization { organizationId, ..} ) <$> f organizationId+{-# INLINE organizationIdL #-}++-- | 'organizationLocation' Lens+organizationLocationL :: Lens_' Organization (Maybe Text)+organizationLocationL f Organization{..} = (\organizationLocation -> Organization { organizationLocation, ..} ) <$> f organizationLocation+{-# INLINE organizationLocationL #-}++-- | 'organizationName' Lens+organizationNameL :: Lens_' Organization (Maybe Text)+organizationNameL f Organization{..} = (\organizationName -> Organization { organizationName, ..} ) <$> f organizationName+{-# INLINE organizationNameL #-}++-- | 'organizationRepoAdminChangeTeamAccess' Lens+organizationRepoAdminChangeTeamAccessL :: Lens_' Organization (Maybe Bool)+organizationRepoAdminChangeTeamAccessL f Organization{..} = (\organizationRepoAdminChangeTeamAccess -> Organization { organizationRepoAdminChangeTeamAccess, ..} ) <$> f organizationRepoAdminChangeTeamAccess+{-# INLINE organizationRepoAdminChangeTeamAccessL #-}++-- | 'organizationUsername' Lens+organizationUsernameL :: Lens_' Organization (Maybe Text)+organizationUsernameL f Organization{..} = (\organizationUsername -> Organization { organizationUsername, ..} ) <$> f organizationUsername+{-# INLINE organizationUsernameL #-}++-- | 'organizationVisibility' Lens+organizationVisibilityL :: Lens_' Organization (Maybe Text)+organizationVisibilityL f Organization{..} = (\organizationVisibility -> Organization { organizationVisibility, ..} ) <$> f organizationVisibility+{-# INLINE organizationVisibilityL #-}++-- | 'organizationWebsite' Lens+organizationWebsiteL :: Lens_' Organization (Maybe Text)+organizationWebsiteL f Organization{..} = (\organizationWebsite -> Organization { organizationWebsite, ..} ) <$> f organizationWebsite+{-# INLINE organizationWebsiteL #-}++++-- * OrganizationPermissions++-- | 'organizationPermissionsCanCreateRepository' Lens+organizationPermissionsCanCreateRepositoryL :: Lens_' OrganizationPermissions (Maybe Bool)+organizationPermissionsCanCreateRepositoryL f OrganizationPermissions{..} = (\organizationPermissionsCanCreateRepository -> OrganizationPermissions { organizationPermissionsCanCreateRepository, ..} ) <$> f organizationPermissionsCanCreateRepository+{-# INLINE organizationPermissionsCanCreateRepositoryL #-}++-- | 'organizationPermissionsCanRead' Lens+organizationPermissionsCanReadL :: Lens_' OrganizationPermissions (Maybe Bool)+organizationPermissionsCanReadL f OrganizationPermissions{..} = (\organizationPermissionsCanRead -> OrganizationPermissions { organizationPermissionsCanRead, ..} ) <$> f organizationPermissionsCanRead+{-# INLINE organizationPermissionsCanReadL #-}++-- | 'organizationPermissionsCanWrite' Lens+organizationPermissionsCanWriteL :: Lens_' OrganizationPermissions (Maybe Bool)+organizationPermissionsCanWriteL f OrganizationPermissions{..} = (\organizationPermissionsCanWrite -> OrganizationPermissions { organizationPermissionsCanWrite, ..} ) <$> f organizationPermissionsCanWrite+{-# INLINE organizationPermissionsCanWriteL #-}++-- | 'organizationPermissionsIsAdmin' Lens+organizationPermissionsIsAdminL :: Lens_' OrganizationPermissions (Maybe Bool)+organizationPermissionsIsAdminL f OrganizationPermissions{..} = (\organizationPermissionsIsAdmin -> OrganizationPermissions { organizationPermissionsIsAdmin, ..} ) <$> f organizationPermissionsIsAdmin+{-# INLINE organizationPermissionsIsAdminL #-}++-- | 'organizationPermissionsIsOwner' Lens+organizationPermissionsIsOwnerL :: Lens_' OrganizationPermissions (Maybe Bool)+organizationPermissionsIsOwnerL f OrganizationPermissions{..} = (\organizationPermissionsIsOwner -> OrganizationPermissions { organizationPermissionsIsOwner, ..} ) <$> f organizationPermissionsIsOwner+{-# INLINE organizationPermissionsIsOwnerL #-}++++-- * PRBranchInfo++-- | 'pRBranchInfoLabel' Lens+pRBranchInfoLabelL :: Lens_' PRBranchInfo (Maybe Text)+pRBranchInfoLabelL f PRBranchInfo{..} = (\pRBranchInfoLabel -> PRBranchInfo { pRBranchInfoLabel, ..} ) <$> f pRBranchInfoLabel+{-# INLINE pRBranchInfoLabelL #-}++-- | 'pRBranchInfoRef' Lens+pRBranchInfoRefL :: Lens_' PRBranchInfo (Maybe Text)+pRBranchInfoRefL f PRBranchInfo{..} = (\pRBranchInfoRef -> PRBranchInfo { pRBranchInfoRef, ..} ) <$> f pRBranchInfoRef+{-# INLINE pRBranchInfoRefL #-}++-- | 'pRBranchInfoRepo' Lens+pRBranchInfoRepoL :: Lens_' PRBranchInfo (Maybe Repository)+pRBranchInfoRepoL f PRBranchInfo{..} = (\pRBranchInfoRepo -> PRBranchInfo { pRBranchInfoRepo, ..} ) <$> f pRBranchInfoRepo+{-# INLINE pRBranchInfoRepoL #-}++-- | 'pRBranchInfoRepoId' Lens+pRBranchInfoRepoIdL :: Lens_' PRBranchInfo (Maybe Integer)+pRBranchInfoRepoIdL f PRBranchInfo{..} = (\pRBranchInfoRepoId -> PRBranchInfo { pRBranchInfoRepoId, ..} ) <$> f pRBranchInfoRepoId+{-# INLINE pRBranchInfoRepoIdL #-}++-- | 'pRBranchInfoSha' Lens+pRBranchInfoShaL :: Lens_' PRBranchInfo (Maybe Text)+pRBranchInfoShaL f PRBranchInfo{..} = (\pRBranchInfoSha -> PRBranchInfo { pRBranchInfoSha, ..} ) <$> f pRBranchInfoSha+{-# INLINE pRBranchInfoShaL #-}++++-- * Package++-- | 'packageCreatedAt' Lens+packageCreatedAtL :: Lens_' Package (Maybe DateTime)+packageCreatedAtL f Package{..} = (\packageCreatedAt -> Package { packageCreatedAt, ..} ) <$> f packageCreatedAt+{-# INLINE packageCreatedAtL #-}++-- | 'packageCreator' Lens+packageCreatorL :: Lens_' Package (Maybe User)+packageCreatorL f Package{..} = (\packageCreator -> Package { packageCreator, ..} ) <$> f packageCreator+{-# INLINE packageCreatorL #-}++-- | 'packageId' Lens+packageIdL :: Lens_' Package (Maybe Integer)+packageIdL f Package{..} = (\packageId -> Package { packageId, ..} ) <$> f packageId+{-# INLINE packageIdL #-}++-- | 'packageName' Lens+packageNameL :: Lens_' Package (Maybe Text)+packageNameL f Package{..} = (\packageName -> Package { packageName, ..} ) <$> f packageName+{-# INLINE packageNameL #-}++-- | 'packageOwner' Lens+packageOwnerL :: Lens_' Package (Maybe User)+packageOwnerL f Package{..} = (\packageOwner -> Package { packageOwner, ..} ) <$> f packageOwner+{-# INLINE packageOwnerL #-}++-- | 'packageRepository' Lens+packageRepositoryL :: Lens_' Package (Maybe Repository)+packageRepositoryL f Package{..} = (\packageRepository -> Package { packageRepository, ..} ) <$> f packageRepository+{-# INLINE packageRepositoryL #-}++-- | 'packageType' Lens+packageTypeL :: Lens_' Package (Maybe Text)+packageTypeL f Package{..} = (\packageType -> Package { packageType, ..} ) <$> f packageType+{-# INLINE packageTypeL #-}++-- | 'packageVersion' Lens+packageVersionL :: Lens_' Package (Maybe Text)+packageVersionL f Package{..} = (\packageVersion -> Package { packageVersion, ..} ) <$> f packageVersion+{-# INLINE packageVersionL #-}++++-- * PackageFile++-- | 'packageFileSize' Lens+packageFileSizeL :: Lens_' PackageFile (Maybe Integer)+packageFileSizeL f PackageFile{..} = (\packageFileSize -> PackageFile { packageFileSize, ..} ) <$> f packageFileSize+{-# INLINE packageFileSizeL #-}++-- | 'packageFileId' Lens+packageFileIdL :: Lens_' PackageFile (Maybe Integer)+packageFileIdL f PackageFile{..} = (\packageFileId -> PackageFile { packageFileId, ..} ) <$> f packageFileId+{-# INLINE packageFileIdL #-}++-- | 'packageFileMd5' Lens+packageFileMd5L :: Lens_' PackageFile (Maybe Text)+packageFileMd5L f PackageFile{..} = (\packageFileMd5 -> PackageFile { packageFileMd5, ..} ) <$> f packageFileMd5+{-# INLINE packageFileMd5L #-}++-- | 'packageFileName' Lens+packageFileNameL :: Lens_' PackageFile (Maybe Text)+packageFileNameL f PackageFile{..} = (\packageFileName -> PackageFile { packageFileName, ..} ) <$> f packageFileName+{-# INLINE packageFileNameL #-}++-- | 'packageFileSha1' Lens+packageFileSha1L :: Lens_' PackageFile (Maybe Text)+packageFileSha1L f PackageFile{..} = (\packageFileSha1 -> PackageFile { packageFileSha1, ..} ) <$> f packageFileSha1+{-# INLINE packageFileSha1L #-}++-- | 'packageFileSha256' Lens+packageFileSha256L :: Lens_' PackageFile (Maybe Text)+packageFileSha256L f PackageFile{..} = (\packageFileSha256 -> PackageFile { packageFileSha256, ..} ) <$> f packageFileSha256+{-# INLINE packageFileSha256L #-}++-- | 'packageFileSha512' Lens+packageFileSha512L :: Lens_' PackageFile (Maybe Text)+packageFileSha512L f PackageFile{..} = (\packageFileSha512 -> PackageFile { packageFileSha512, ..} ) <$> f packageFileSha512+{-# INLINE packageFileSha512L #-}++++-- * PayloadCommit++-- | 'payloadCommitAdded' Lens+payloadCommitAddedL :: Lens_' PayloadCommit (Maybe [Text])+payloadCommitAddedL f PayloadCommit{..} = (\payloadCommitAdded -> PayloadCommit { payloadCommitAdded, ..} ) <$> f payloadCommitAdded+{-# INLINE payloadCommitAddedL #-}++-- | 'payloadCommitAuthor' Lens+payloadCommitAuthorL :: Lens_' PayloadCommit (Maybe PayloadUser)+payloadCommitAuthorL f PayloadCommit{..} = (\payloadCommitAuthor -> PayloadCommit { payloadCommitAuthor, ..} ) <$> f payloadCommitAuthor+{-# INLINE payloadCommitAuthorL #-}++-- | 'payloadCommitCommitter' Lens+payloadCommitCommitterL :: Lens_' PayloadCommit (Maybe PayloadUser)+payloadCommitCommitterL f PayloadCommit{..} = (\payloadCommitCommitter -> PayloadCommit { payloadCommitCommitter, ..} ) <$> f payloadCommitCommitter+{-# INLINE payloadCommitCommitterL #-}++-- | 'payloadCommitId' Lens+payloadCommitIdL :: Lens_' PayloadCommit (Maybe Text)+payloadCommitIdL f PayloadCommit{..} = (\payloadCommitId -> PayloadCommit { payloadCommitId, ..} ) <$> f payloadCommitId+{-# INLINE payloadCommitIdL #-}++-- | 'payloadCommitMessage' Lens+payloadCommitMessageL :: Lens_' PayloadCommit (Maybe Text)+payloadCommitMessageL f PayloadCommit{..} = (\payloadCommitMessage -> PayloadCommit { payloadCommitMessage, ..} ) <$> f payloadCommitMessage+{-# INLINE payloadCommitMessageL #-}++-- | 'payloadCommitModified' Lens+payloadCommitModifiedL :: Lens_' PayloadCommit (Maybe [Text])+payloadCommitModifiedL f PayloadCommit{..} = (\payloadCommitModified -> PayloadCommit { payloadCommitModified, ..} ) <$> f payloadCommitModified+{-# INLINE payloadCommitModifiedL #-}++-- | 'payloadCommitRemoved' Lens+payloadCommitRemovedL :: Lens_' PayloadCommit (Maybe [Text])+payloadCommitRemovedL f PayloadCommit{..} = (\payloadCommitRemoved -> PayloadCommit { payloadCommitRemoved, ..} ) <$> f payloadCommitRemoved+{-# INLINE payloadCommitRemovedL #-}++-- | 'payloadCommitTimestamp' Lens+payloadCommitTimestampL :: Lens_' PayloadCommit (Maybe DateTime)+payloadCommitTimestampL f PayloadCommit{..} = (\payloadCommitTimestamp -> PayloadCommit { payloadCommitTimestamp, ..} ) <$> f payloadCommitTimestamp+{-# INLINE payloadCommitTimestampL #-}++-- | 'payloadCommitUrl' Lens+payloadCommitUrlL :: Lens_' PayloadCommit (Maybe Text)+payloadCommitUrlL f PayloadCommit{..} = (\payloadCommitUrl -> PayloadCommit { payloadCommitUrl, ..} ) <$> f payloadCommitUrl+{-# INLINE payloadCommitUrlL #-}++-- | 'payloadCommitVerification' Lens+payloadCommitVerificationL :: Lens_' PayloadCommit (Maybe PayloadCommitVerification)+payloadCommitVerificationL f PayloadCommit{..} = (\payloadCommitVerification -> PayloadCommit { payloadCommitVerification, ..} ) <$> f payloadCommitVerification+{-# INLINE payloadCommitVerificationL #-}++++-- * PayloadCommitVerification++-- | 'payloadCommitVerificationPayload' Lens+payloadCommitVerificationPayloadL :: Lens_' PayloadCommitVerification (Maybe Text)+payloadCommitVerificationPayloadL f PayloadCommitVerification{..} = (\payloadCommitVerificationPayload -> PayloadCommitVerification { payloadCommitVerificationPayload, ..} ) <$> f payloadCommitVerificationPayload+{-# INLINE payloadCommitVerificationPayloadL #-}++-- | 'payloadCommitVerificationReason' Lens+payloadCommitVerificationReasonL :: Lens_' PayloadCommitVerification (Maybe Text)+payloadCommitVerificationReasonL f PayloadCommitVerification{..} = (\payloadCommitVerificationReason -> PayloadCommitVerification { payloadCommitVerificationReason, ..} ) <$> f payloadCommitVerificationReason+{-# INLINE payloadCommitVerificationReasonL #-}++-- | 'payloadCommitVerificationSignature' Lens+payloadCommitVerificationSignatureL :: Lens_' PayloadCommitVerification (Maybe Text)+payloadCommitVerificationSignatureL f PayloadCommitVerification{..} = (\payloadCommitVerificationSignature -> PayloadCommitVerification { payloadCommitVerificationSignature, ..} ) <$> f payloadCommitVerificationSignature+{-# INLINE payloadCommitVerificationSignatureL #-}++-- | 'payloadCommitVerificationSigner' Lens+payloadCommitVerificationSignerL :: Lens_' PayloadCommitVerification (Maybe PayloadUser)+payloadCommitVerificationSignerL f PayloadCommitVerification{..} = (\payloadCommitVerificationSigner -> PayloadCommitVerification { payloadCommitVerificationSigner, ..} ) <$> f payloadCommitVerificationSigner+{-# INLINE payloadCommitVerificationSignerL #-}++-- | 'payloadCommitVerificationVerified' Lens+payloadCommitVerificationVerifiedL :: Lens_' PayloadCommitVerification (Maybe Bool)+payloadCommitVerificationVerifiedL f PayloadCommitVerification{..} = (\payloadCommitVerificationVerified -> PayloadCommitVerification { payloadCommitVerificationVerified, ..} ) <$> f payloadCommitVerificationVerified+{-# INLINE payloadCommitVerificationVerifiedL #-}++++-- * PayloadUser++-- | 'payloadUserEmail' Lens+payloadUserEmailL :: Lens_' PayloadUser (Maybe Text)+payloadUserEmailL f PayloadUser{..} = (\payloadUserEmail -> PayloadUser { payloadUserEmail, ..} ) <$> f payloadUserEmail+{-# INLINE payloadUserEmailL #-}++-- | 'payloadUserName' Lens+payloadUserNameL :: Lens_' PayloadUser (Maybe Text)+payloadUserNameL f PayloadUser{..} = (\payloadUserName -> PayloadUser { payloadUserName, ..} ) <$> f payloadUserName+{-# INLINE payloadUserNameL #-}++-- | 'payloadUserUsername' Lens+payloadUserUsernameL :: Lens_' PayloadUser (Maybe Text)+payloadUserUsernameL f PayloadUser{..} = (\payloadUserUsername -> PayloadUser { payloadUserUsername, ..} ) <$> f payloadUserUsername+{-# INLINE payloadUserUsernameL #-}++++-- * Permission++-- | 'permissionAdmin' Lens+permissionAdminL :: Lens_' Permission (Maybe Bool)+permissionAdminL f Permission{..} = (\permissionAdmin -> Permission { permissionAdmin, ..} ) <$> f permissionAdmin+{-# INLINE permissionAdminL #-}++-- | 'permissionPull' Lens+permissionPullL :: Lens_' Permission (Maybe Bool)+permissionPullL f Permission{..} = (\permissionPull -> Permission { permissionPull, ..} ) <$> f permissionPull+{-# INLINE permissionPullL #-}++-- | 'permissionPush' Lens+permissionPushL :: Lens_' Permission (Maybe Bool)+permissionPushL f Permission{..} = (\permissionPush -> Permission { permissionPush, ..} ) <$> f permissionPush+{-# INLINE permissionPushL #-}++++-- * PublicKey++-- | 'publicKeyCreatedAt' Lens+publicKeyCreatedAtL :: Lens_' PublicKey (Maybe DateTime)+publicKeyCreatedAtL f PublicKey{..} = (\publicKeyCreatedAt -> PublicKey { publicKeyCreatedAt, ..} ) <$> f publicKeyCreatedAt+{-# INLINE publicKeyCreatedAtL #-}++-- | 'publicKeyFingerprint' Lens+publicKeyFingerprintL :: Lens_' PublicKey (Maybe Text)+publicKeyFingerprintL f PublicKey{..} = (\publicKeyFingerprint -> PublicKey { publicKeyFingerprint, ..} ) <$> f publicKeyFingerprint+{-# INLINE publicKeyFingerprintL #-}++-- | 'publicKeyId' Lens+publicKeyIdL :: Lens_' PublicKey (Maybe Integer)+publicKeyIdL f PublicKey{..} = (\publicKeyId -> PublicKey { publicKeyId, ..} ) <$> f publicKeyId+{-# INLINE publicKeyIdL #-}++-- | 'publicKeyKey' Lens+publicKeyKeyL :: Lens_' PublicKey (Maybe Text)+publicKeyKeyL f PublicKey{..} = (\publicKeyKey -> PublicKey { publicKeyKey, ..} ) <$> f publicKeyKey+{-# INLINE publicKeyKeyL #-}++-- | 'publicKeyKeyType' Lens+publicKeyKeyTypeL :: Lens_' PublicKey (Maybe Text)+publicKeyKeyTypeL f PublicKey{..} = (\publicKeyKeyType -> PublicKey { publicKeyKeyType, ..} ) <$> f publicKeyKeyType+{-# INLINE publicKeyKeyTypeL #-}++-- | 'publicKeyReadOnly' Lens+publicKeyReadOnlyL :: Lens_' PublicKey (Maybe Bool)+publicKeyReadOnlyL f PublicKey{..} = (\publicKeyReadOnly -> PublicKey { publicKeyReadOnly, ..} ) <$> f publicKeyReadOnly+{-# INLINE publicKeyReadOnlyL #-}++-- | 'publicKeyTitle' Lens+publicKeyTitleL :: Lens_' PublicKey (Maybe Text)+publicKeyTitleL f PublicKey{..} = (\publicKeyTitle -> PublicKey { publicKeyTitle, ..} ) <$> f publicKeyTitle+{-# INLINE publicKeyTitleL #-}++-- | 'publicKeyUrl' Lens+publicKeyUrlL :: Lens_' PublicKey (Maybe Text)+publicKeyUrlL f PublicKey{..} = (\publicKeyUrl -> PublicKey { publicKeyUrl, ..} ) <$> f publicKeyUrl+{-# INLINE publicKeyUrlL #-}++-- | 'publicKeyUser' Lens+publicKeyUserL :: Lens_' PublicKey (Maybe User)+publicKeyUserL f PublicKey{..} = (\publicKeyUser -> PublicKey { publicKeyUser, ..} ) <$> f publicKeyUser+{-# INLINE publicKeyUserL #-}++++-- * PullRequest++-- | 'pullRequestAllowMaintainerEdit' Lens+pullRequestAllowMaintainerEditL :: Lens_' PullRequest (Maybe Bool)+pullRequestAllowMaintainerEditL f PullRequest{..} = (\pullRequestAllowMaintainerEdit -> PullRequest { pullRequestAllowMaintainerEdit, ..} ) <$> f pullRequestAllowMaintainerEdit+{-# INLINE pullRequestAllowMaintainerEditL #-}++-- | 'pullRequestAssignee' Lens+pullRequestAssigneeL :: Lens_' PullRequest (Maybe User)+pullRequestAssigneeL f PullRequest{..} = (\pullRequestAssignee -> PullRequest { pullRequestAssignee, ..} ) <$> f pullRequestAssignee+{-# INLINE pullRequestAssigneeL #-}++-- | 'pullRequestAssignees' Lens+pullRequestAssigneesL :: Lens_' PullRequest (Maybe [User])+pullRequestAssigneesL f PullRequest{..} = (\pullRequestAssignees -> PullRequest { pullRequestAssignees, ..} ) <$> f pullRequestAssignees+{-# INLINE pullRequestAssigneesL #-}++-- | 'pullRequestBase' Lens+pullRequestBaseL :: Lens_' PullRequest (Maybe PRBranchInfo)+pullRequestBaseL f PullRequest{..} = (\pullRequestBase -> PullRequest { pullRequestBase, ..} ) <$> f pullRequestBase+{-# INLINE pullRequestBaseL #-}++-- | 'pullRequestBody' Lens+pullRequestBodyL :: Lens_' PullRequest (Maybe Text)+pullRequestBodyL f PullRequest{..} = (\pullRequestBody -> PullRequest { pullRequestBody, ..} ) <$> f pullRequestBody+{-# INLINE pullRequestBodyL #-}++-- | 'pullRequestClosedAt' Lens+pullRequestClosedAtL :: Lens_' PullRequest (Maybe DateTime)+pullRequestClosedAtL f PullRequest{..} = (\pullRequestClosedAt -> PullRequest { pullRequestClosedAt, ..} ) <$> f pullRequestClosedAt+{-# INLINE pullRequestClosedAtL #-}++-- | 'pullRequestComments' Lens+pullRequestCommentsL :: Lens_' PullRequest (Maybe Integer)+pullRequestCommentsL f PullRequest{..} = (\pullRequestComments -> PullRequest { pullRequestComments, ..} ) <$> f pullRequestComments+{-# INLINE pullRequestCommentsL #-}++-- | 'pullRequestCreatedAt' Lens+pullRequestCreatedAtL :: Lens_' PullRequest (Maybe DateTime)+pullRequestCreatedAtL f PullRequest{..} = (\pullRequestCreatedAt -> PullRequest { pullRequestCreatedAt, ..} ) <$> f pullRequestCreatedAt+{-# INLINE pullRequestCreatedAtL #-}++-- | 'pullRequestDiffUrl' Lens+pullRequestDiffUrlL :: Lens_' PullRequest (Maybe Text)+pullRequestDiffUrlL f PullRequest{..} = (\pullRequestDiffUrl -> PullRequest { pullRequestDiffUrl, ..} ) <$> f pullRequestDiffUrl+{-# INLINE pullRequestDiffUrlL #-}++-- | 'pullRequestDueDate' Lens+pullRequestDueDateL :: Lens_' PullRequest (Maybe DateTime)+pullRequestDueDateL f PullRequest{..} = (\pullRequestDueDate -> PullRequest { pullRequestDueDate, ..} ) <$> f pullRequestDueDate+{-# INLINE pullRequestDueDateL #-}++-- | 'pullRequestHead' Lens+pullRequestHeadL :: Lens_' PullRequest (Maybe PRBranchInfo)+pullRequestHeadL f PullRequest{..} = (\pullRequestHead -> PullRequest { pullRequestHead, ..} ) <$> f pullRequestHead+{-# INLINE pullRequestHeadL #-}++-- | 'pullRequestHtmlUrl' Lens+pullRequestHtmlUrlL :: Lens_' PullRequest (Maybe Text)+pullRequestHtmlUrlL f PullRequest{..} = (\pullRequestHtmlUrl -> PullRequest { pullRequestHtmlUrl, ..} ) <$> f pullRequestHtmlUrl+{-# INLINE pullRequestHtmlUrlL #-}++-- | 'pullRequestId' Lens+pullRequestIdL :: Lens_' PullRequest (Maybe Integer)+pullRequestIdL f PullRequest{..} = (\pullRequestId -> PullRequest { pullRequestId, ..} ) <$> f pullRequestId+{-# INLINE pullRequestIdL #-}++-- | 'pullRequestIsLocked' Lens+pullRequestIsLockedL :: Lens_' PullRequest (Maybe Bool)+pullRequestIsLockedL f PullRequest{..} = (\pullRequestIsLocked -> PullRequest { pullRequestIsLocked, ..} ) <$> f pullRequestIsLocked+{-# INLINE pullRequestIsLockedL #-}++-- | 'pullRequestLabels' Lens+pullRequestLabelsL :: Lens_' PullRequest (Maybe [Label])+pullRequestLabelsL f PullRequest{..} = (\pullRequestLabels -> PullRequest { pullRequestLabels, ..} ) <$> f pullRequestLabels+{-# INLINE pullRequestLabelsL #-}++-- | 'pullRequestMergeBase' Lens+pullRequestMergeBaseL :: Lens_' PullRequest (Maybe Text)+pullRequestMergeBaseL f PullRequest{..} = (\pullRequestMergeBase -> PullRequest { pullRequestMergeBase, ..} ) <$> f pullRequestMergeBase+{-# INLINE pullRequestMergeBaseL #-}++-- | 'pullRequestMergeCommitSha' Lens+pullRequestMergeCommitShaL :: Lens_' PullRequest (Maybe Text)+pullRequestMergeCommitShaL f PullRequest{..} = (\pullRequestMergeCommitSha -> PullRequest { pullRequestMergeCommitSha, ..} ) <$> f pullRequestMergeCommitSha+{-# INLINE pullRequestMergeCommitShaL #-}++-- | 'pullRequestMergeable' Lens+pullRequestMergeableL :: Lens_' PullRequest (Maybe Bool)+pullRequestMergeableL f PullRequest{..} = (\pullRequestMergeable -> PullRequest { pullRequestMergeable, ..} ) <$> f pullRequestMergeable+{-# INLINE pullRequestMergeableL #-}++-- | 'pullRequestMerged' Lens+pullRequestMergedL :: Lens_' PullRequest (Maybe Bool)+pullRequestMergedL f PullRequest{..} = (\pullRequestMerged -> PullRequest { pullRequestMerged, ..} ) <$> f pullRequestMerged+{-# INLINE pullRequestMergedL #-}++-- | 'pullRequestMergedAt' Lens+pullRequestMergedAtL :: Lens_' PullRequest (Maybe DateTime)+pullRequestMergedAtL f PullRequest{..} = (\pullRequestMergedAt -> PullRequest { pullRequestMergedAt, ..} ) <$> f pullRequestMergedAt+{-# INLINE pullRequestMergedAtL #-}++-- | 'pullRequestMergedBy' Lens+pullRequestMergedByL :: Lens_' PullRequest (Maybe User)+pullRequestMergedByL f PullRequest{..} = (\pullRequestMergedBy -> PullRequest { pullRequestMergedBy, ..} ) <$> f pullRequestMergedBy+{-# INLINE pullRequestMergedByL #-}++-- | 'pullRequestMilestone' Lens+pullRequestMilestoneL :: Lens_' PullRequest (Maybe Milestone)+pullRequestMilestoneL f PullRequest{..} = (\pullRequestMilestone -> PullRequest { pullRequestMilestone, ..} ) <$> f pullRequestMilestone+{-# INLINE pullRequestMilestoneL #-}++-- | 'pullRequestNumber' Lens+pullRequestNumberL :: Lens_' PullRequest (Maybe Integer)+pullRequestNumberL f PullRequest{..} = (\pullRequestNumber -> PullRequest { pullRequestNumber, ..} ) <$> f pullRequestNumber+{-# INLINE pullRequestNumberL #-}++-- | 'pullRequestPatchUrl' Lens+pullRequestPatchUrlL :: Lens_' PullRequest (Maybe Text)+pullRequestPatchUrlL f PullRequest{..} = (\pullRequestPatchUrl -> PullRequest { pullRequestPatchUrl, ..} ) <$> f pullRequestPatchUrl+{-# INLINE pullRequestPatchUrlL #-}++-- | 'pullRequestState' Lens+pullRequestStateL :: Lens_' PullRequest (Maybe Text)+pullRequestStateL f PullRequest{..} = (\pullRequestState -> PullRequest { pullRequestState, ..} ) <$> f pullRequestState+{-# INLINE pullRequestStateL #-}++-- | 'pullRequestTitle' Lens+pullRequestTitleL :: Lens_' PullRequest (Maybe Text)+pullRequestTitleL f PullRequest{..} = (\pullRequestTitle -> PullRequest { pullRequestTitle, ..} ) <$> f pullRequestTitle+{-# INLINE pullRequestTitleL #-}++-- | 'pullRequestUpdatedAt' Lens+pullRequestUpdatedAtL :: Lens_' PullRequest (Maybe DateTime)+pullRequestUpdatedAtL f PullRequest{..} = (\pullRequestUpdatedAt -> PullRequest { pullRequestUpdatedAt, ..} ) <$> f pullRequestUpdatedAt+{-# INLINE pullRequestUpdatedAtL #-}++-- | 'pullRequestUrl' Lens+pullRequestUrlL :: Lens_' PullRequest (Maybe Text)+pullRequestUrlL f PullRequest{..} = (\pullRequestUrl -> PullRequest { pullRequestUrl, ..} ) <$> f pullRequestUrl+{-# INLINE pullRequestUrlL #-}++-- | 'pullRequestUser' Lens+pullRequestUserL :: Lens_' PullRequest (Maybe User)+pullRequestUserL f PullRequest{..} = (\pullRequestUser -> PullRequest { pullRequestUser, ..} ) <$> f pullRequestUser+{-# INLINE pullRequestUserL #-}++++-- * PullRequestMeta++-- | 'pullRequestMetaMerged' Lens+pullRequestMetaMergedL :: Lens_' PullRequestMeta (Maybe Bool)+pullRequestMetaMergedL f PullRequestMeta{..} = (\pullRequestMetaMerged -> PullRequestMeta { pullRequestMetaMerged, ..} ) <$> f pullRequestMetaMerged+{-# INLINE pullRequestMetaMergedL #-}++-- | 'pullRequestMetaMergedAt' Lens+pullRequestMetaMergedAtL :: Lens_' PullRequestMeta (Maybe DateTime)+pullRequestMetaMergedAtL f PullRequestMeta{..} = (\pullRequestMetaMergedAt -> PullRequestMeta { pullRequestMetaMergedAt, ..} ) <$> f pullRequestMetaMergedAt+{-# INLINE pullRequestMetaMergedAtL #-}++++-- * PullReview++-- | 'pullReviewBody' Lens+pullReviewBodyL :: Lens_' PullReview (Maybe Text)+pullReviewBodyL f PullReview{..} = (\pullReviewBody -> PullReview { pullReviewBody, ..} ) <$> f pullReviewBody+{-# INLINE pullReviewBodyL #-}++-- | 'pullReviewCommentsCount' Lens+pullReviewCommentsCountL :: Lens_' PullReview (Maybe Integer)+pullReviewCommentsCountL f PullReview{..} = (\pullReviewCommentsCount -> PullReview { pullReviewCommentsCount, ..} ) <$> f pullReviewCommentsCount+{-# INLINE pullReviewCommentsCountL #-}++-- | 'pullReviewCommitId' Lens+pullReviewCommitIdL :: Lens_' PullReview (Maybe Text)+pullReviewCommitIdL f PullReview{..} = (\pullReviewCommitId -> PullReview { pullReviewCommitId, ..} ) <$> f pullReviewCommitId+{-# INLINE pullReviewCommitIdL #-}++-- | 'pullReviewDismissed' Lens+pullReviewDismissedL :: Lens_' PullReview (Maybe Bool)+pullReviewDismissedL f PullReview{..} = (\pullReviewDismissed -> PullReview { pullReviewDismissed, ..} ) <$> f pullReviewDismissed+{-# INLINE pullReviewDismissedL #-}++-- | 'pullReviewHtmlUrl' Lens+pullReviewHtmlUrlL :: Lens_' PullReview (Maybe Text)+pullReviewHtmlUrlL f PullReview{..} = (\pullReviewHtmlUrl -> PullReview { pullReviewHtmlUrl, ..} ) <$> f pullReviewHtmlUrl+{-# INLINE pullReviewHtmlUrlL #-}++-- | 'pullReviewId' Lens+pullReviewIdL :: Lens_' PullReview (Maybe Integer)+pullReviewIdL f PullReview{..} = (\pullReviewId -> PullReview { pullReviewId, ..} ) <$> f pullReviewId+{-# INLINE pullReviewIdL #-}++-- | 'pullReviewOfficial' Lens+pullReviewOfficialL :: Lens_' PullReview (Maybe Bool)+pullReviewOfficialL f PullReview{..} = (\pullReviewOfficial -> PullReview { pullReviewOfficial, ..} ) <$> f pullReviewOfficial+{-# INLINE pullReviewOfficialL #-}++-- | 'pullReviewPullRequestUrl' Lens+pullReviewPullRequestUrlL :: Lens_' PullReview (Maybe Text)+pullReviewPullRequestUrlL f PullReview{..} = (\pullReviewPullRequestUrl -> PullReview { pullReviewPullRequestUrl, ..} ) <$> f pullReviewPullRequestUrl+{-# INLINE pullReviewPullRequestUrlL #-}++-- | 'pullReviewStale' Lens+pullReviewStaleL :: Lens_' PullReview (Maybe Bool)+pullReviewStaleL f PullReview{..} = (\pullReviewStale -> PullReview { pullReviewStale, ..} ) <$> f pullReviewStale+{-# INLINE pullReviewStaleL #-}++-- | 'pullReviewState' Lens+pullReviewStateL :: Lens_' PullReview (Maybe Text)+pullReviewStateL f PullReview{..} = (\pullReviewState -> PullReview { pullReviewState, ..} ) <$> f pullReviewState+{-# INLINE pullReviewStateL #-}++-- | 'pullReviewSubmittedAt' Lens+pullReviewSubmittedAtL :: Lens_' PullReview (Maybe DateTime)+pullReviewSubmittedAtL f PullReview{..} = (\pullReviewSubmittedAt -> PullReview { pullReviewSubmittedAt, ..} ) <$> f pullReviewSubmittedAt+{-# INLINE pullReviewSubmittedAtL #-}++-- | 'pullReviewTeam' Lens+pullReviewTeamL :: Lens_' PullReview (Maybe Team)+pullReviewTeamL f PullReview{..} = (\pullReviewTeam -> PullReview { pullReviewTeam, ..} ) <$> f pullReviewTeam+{-# INLINE pullReviewTeamL #-}++-- | 'pullReviewUpdatedAt' Lens+pullReviewUpdatedAtL :: Lens_' PullReview (Maybe DateTime)+pullReviewUpdatedAtL f PullReview{..} = (\pullReviewUpdatedAt -> PullReview { pullReviewUpdatedAt, ..} ) <$> f pullReviewUpdatedAt+{-# INLINE pullReviewUpdatedAtL #-}++-- | 'pullReviewUser' Lens+pullReviewUserL :: Lens_' PullReview (Maybe User)+pullReviewUserL f PullReview{..} = (\pullReviewUser -> PullReview { pullReviewUser, ..} ) <$> f pullReviewUser+{-# INLINE pullReviewUserL #-}++++-- * PullReviewComment++-- | 'pullReviewCommentBody' Lens+pullReviewCommentBodyL :: Lens_' PullReviewComment (Maybe Text)+pullReviewCommentBodyL f PullReviewComment{..} = (\pullReviewCommentBody -> PullReviewComment { pullReviewCommentBody, ..} ) <$> f pullReviewCommentBody+{-# INLINE pullReviewCommentBodyL #-}++-- | 'pullReviewCommentCommitId' Lens+pullReviewCommentCommitIdL :: Lens_' PullReviewComment (Maybe Text)+pullReviewCommentCommitIdL f PullReviewComment{..} = (\pullReviewCommentCommitId -> PullReviewComment { pullReviewCommentCommitId, ..} ) <$> f pullReviewCommentCommitId+{-# INLINE pullReviewCommentCommitIdL #-}++-- | 'pullReviewCommentCreatedAt' Lens+pullReviewCommentCreatedAtL :: Lens_' PullReviewComment (Maybe DateTime)+pullReviewCommentCreatedAtL f PullReviewComment{..} = (\pullReviewCommentCreatedAt -> PullReviewComment { pullReviewCommentCreatedAt, ..} ) <$> f pullReviewCommentCreatedAt+{-# INLINE pullReviewCommentCreatedAtL #-}++-- | 'pullReviewCommentDiffHunk' Lens+pullReviewCommentDiffHunkL :: Lens_' PullReviewComment (Maybe Text)+pullReviewCommentDiffHunkL f PullReviewComment{..} = (\pullReviewCommentDiffHunk -> PullReviewComment { pullReviewCommentDiffHunk, ..} ) <$> f pullReviewCommentDiffHunk+{-# INLINE pullReviewCommentDiffHunkL #-}++-- | 'pullReviewCommentHtmlUrl' Lens+pullReviewCommentHtmlUrlL :: Lens_' PullReviewComment (Maybe Text)+pullReviewCommentHtmlUrlL f PullReviewComment{..} = (\pullReviewCommentHtmlUrl -> PullReviewComment { pullReviewCommentHtmlUrl, ..} ) <$> f pullReviewCommentHtmlUrl+{-# INLINE pullReviewCommentHtmlUrlL #-}++-- | 'pullReviewCommentId' Lens+pullReviewCommentIdL :: Lens_' PullReviewComment (Maybe Integer)+pullReviewCommentIdL f PullReviewComment{..} = (\pullReviewCommentId -> PullReviewComment { pullReviewCommentId, ..} ) <$> f pullReviewCommentId+{-# INLINE pullReviewCommentIdL #-}++-- | 'pullReviewCommentOriginalCommitId' Lens+pullReviewCommentOriginalCommitIdL :: Lens_' PullReviewComment (Maybe Text)+pullReviewCommentOriginalCommitIdL f PullReviewComment{..} = (\pullReviewCommentOriginalCommitId -> PullReviewComment { pullReviewCommentOriginalCommitId, ..} ) <$> f pullReviewCommentOriginalCommitId+{-# INLINE pullReviewCommentOriginalCommitIdL #-}++-- | 'pullReviewCommentOriginalPosition' Lens+pullReviewCommentOriginalPositionL :: Lens_' PullReviewComment (Maybe Int)+pullReviewCommentOriginalPositionL f PullReviewComment{..} = (\pullReviewCommentOriginalPosition -> PullReviewComment { pullReviewCommentOriginalPosition, ..} ) <$> f pullReviewCommentOriginalPosition+{-# INLINE pullReviewCommentOriginalPositionL #-}++-- | 'pullReviewCommentPath' Lens+pullReviewCommentPathL :: Lens_' PullReviewComment (Maybe Text)+pullReviewCommentPathL f PullReviewComment{..} = (\pullReviewCommentPath -> PullReviewComment { pullReviewCommentPath, ..} ) <$> f pullReviewCommentPath+{-# INLINE pullReviewCommentPathL #-}++-- | 'pullReviewCommentPosition' Lens+pullReviewCommentPositionL :: Lens_' PullReviewComment (Maybe Int)+pullReviewCommentPositionL f PullReviewComment{..} = (\pullReviewCommentPosition -> PullReviewComment { pullReviewCommentPosition, ..} ) <$> f pullReviewCommentPosition+{-# INLINE pullReviewCommentPositionL #-}++-- | 'pullReviewCommentPullRequestReviewId' Lens+pullReviewCommentPullRequestReviewIdL :: Lens_' PullReviewComment (Maybe Integer)+pullReviewCommentPullRequestReviewIdL f PullReviewComment{..} = (\pullReviewCommentPullRequestReviewId -> PullReviewComment { pullReviewCommentPullRequestReviewId, ..} ) <$> f pullReviewCommentPullRequestReviewId+{-# INLINE pullReviewCommentPullRequestReviewIdL #-}++-- | 'pullReviewCommentPullRequestUrl' Lens+pullReviewCommentPullRequestUrlL :: Lens_' PullReviewComment (Maybe Text)+pullReviewCommentPullRequestUrlL f PullReviewComment{..} = (\pullReviewCommentPullRequestUrl -> PullReviewComment { pullReviewCommentPullRequestUrl, ..} ) <$> f pullReviewCommentPullRequestUrl+{-# INLINE pullReviewCommentPullRequestUrlL #-}++-- | 'pullReviewCommentResolver' Lens+pullReviewCommentResolverL :: Lens_' PullReviewComment (Maybe User)+pullReviewCommentResolverL f PullReviewComment{..} = (\pullReviewCommentResolver -> PullReviewComment { pullReviewCommentResolver, ..} ) <$> f pullReviewCommentResolver+{-# INLINE pullReviewCommentResolverL #-}++-- | 'pullReviewCommentUpdatedAt' Lens+pullReviewCommentUpdatedAtL :: Lens_' PullReviewComment (Maybe DateTime)+pullReviewCommentUpdatedAtL f PullReviewComment{..} = (\pullReviewCommentUpdatedAt -> PullReviewComment { pullReviewCommentUpdatedAt, ..} ) <$> f pullReviewCommentUpdatedAt+{-# INLINE pullReviewCommentUpdatedAtL #-}++-- | 'pullReviewCommentUser' Lens+pullReviewCommentUserL :: Lens_' PullReviewComment (Maybe User)+pullReviewCommentUserL f PullReviewComment{..} = (\pullReviewCommentUser -> PullReviewComment { pullReviewCommentUser, ..} ) <$> f pullReviewCommentUser+{-# INLINE pullReviewCommentUserL #-}++++-- * PullReviewRequestOptions++-- | 'pullReviewRequestOptionsReviewers' Lens+pullReviewRequestOptionsReviewersL :: Lens_' PullReviewRequestOptions (Maybe [Text])+pullReviewRequestOptionsReviewersL f PullReviewRequestOptions{..} = (\pullReviewRequestOptionsReviewers -> PullReviewRequestOptions { pullReviewRequestOptionsReviewers, ..} ) <$> f pullReviewRequestOptionsReviewers+{-# INLINE pullReviewRequestOptionsReviewersL #-}++-- | 'pullReviewRequestOptionsTeamReviewers' Lens+pullReviewRequestOptionsTeamReviewersL :: Lens_' PullReviewRequestOptions (Maybe [Text])+pullReviewRequestOptionsTeamReviewersL f PullReviewRequestOptions{..} = (\pullReviewRequestOptionsTeamReviewers -> PullReviewRequestOptions { pullReviewRequestOptionsTeamReviewers, ..} ) <$> f pullReviewRequestOptionsTeamReviewers+{-# INLINE pullReviewRequestOptionsTeamReviewersL #-}++++-- * PushMirror++-- | 'pushMirrorCreated' Lens+pushMirrorCreatedL :: Lens_' PushMirror (Maybe Text)+pushMirrorCreatedL f PushMirror{..} = (\pushMirrorCreated -> PushMirror { pushMirrorCreated, ..} ) <$> f pushMirrorCreated+{-# INLINE pushMirrorCreatedL #-}++-- | 'pushMirrorInterval' Lens+pushMirrorIntervalL :: Lens_' PushMirror (Maybe Text)+pushMirrorIntervalL f PushMirror{..} = (\pushMirrorInterval -> PushMirror { pushMirrorInterval, ..} ) <$> f pushMirrorInterval+{-# INLINE pushMirrorIntervalL #-}++-- | 'pushMirrorLastError' Lens+pushMirrorLastErrorL :: Lens_' PushMirror (Maybe Text)+pushMirrorLastErrorL f PushMirror{..} = (\pushMirrorLastError -> PushMirror { pushMirrorLastError, ..} ) <$> f pushMirrorLastError+{-# INLINE pushMirrorLastErrorL #-}++-- | 'pushMirrorLastUpdate' Lens+pushMirrorLastUpdateL :: Lens_' PushMirror (Maybe Text)+pushMirrorLastUpdateL f PushMirror{..} = (\pushMirrorLastUpdate -> PushMirror { pushMirrorLastUpdate, ..} ) <$> f pushMirrorLastUpdate+{-# INLINE pushMirrorLastUpdateL #-}++-- | 'pushMirrorRemoteAddress' Lens+pushMirrorRemoteAddressL :: Lens_' PushMirror (Maybe Text)+pushMirrorRemoteAddressL f PushMirror{..} = (\pushMirrorRemoteAddress -> PushMirror { pushMirrorRemoteAddress, ..} ) <$> f pushMirrorRemoteAddress+{-# INLINE pushMirrorRemoteAddressL #-}++-- | 'pushMirrorRemoteName' Lens+pushMirrorRemoteNameL :: Lens_' PushMirror (Maybe Text)+pushMirrorRemoteNameL f PushMirror{..} = (\pushMirrorRemoteName -> PushMirror { pushMirrorRemoteName, ..} ) <$> f pushMirrorRemoteName+{-# INLINE pushMirrorRemoteNameL #-}++-- | 'pushMirrorRepoName' Lens+pushMirrorRepoNameL :: Lens_' PushMirror (Maybe Text)+pushMirrorRepoNameL f PushMirror{..} = (\pushMirrorRepoName -> PushMirror { pushMirrorRepoName, ..} ) <$> f pushMirrorRepoName+{-# INLINE pushMirrorRepoNameL #-}++-- | 'pushMirrorSyncOnCommit' Lens+pushMirrorSyncOnCommitL :: Lens_' PushMirror (Maybe Bool)+pushMirrorSyncOnCommitL f PushMirror{..} = (\pushMirrorSyncOnCommit -> PushMirror { pushMirrorSyncOnCommit, ..} ) <$> f pushMirrorSyncOnCommit+{-# INLINE pushMirrorSyncOnCommitL #-}++++-- * Reaction++-- | 'reactionContent' Lens+reactionContentL :: Lens_' Reaction (Maybe Text)+reactionContentL f Reaction{..} = (\reactionContent -> Reaction { reactionContent, ..} ) <$> f reactionContent+{-# INLINE reactionContentL #-}++-- | 'reactionCreatedAt' Lens+reactionCreatedAtL :: Lens_' Reaction (Maybe DateTime)+reactionCreatedAtL f Reaction{..} = (\reactionCreatedAt -> Reaction { reactionCreatedAt, ..} ) <$> f reactionCreatedAt+{-# INLINE reactionCreatedAtL #-}++-- | 'reactionUser' Lens+reactionUserL :: Lens_' Reaction (Maybe User)+reactionUserL f Reaction{..} = (\reactionUser -> Reaction { reactionUser, ..} ) <$> f reactionUser+{-# INLINE reactionUserL #-}++++-- * Reference++-- | 'referenceObject' Lens+referenceObjectL :: Lens_' Reference (Maybe GitObject)+referenceObjectL f Reference{..} = (\referenceObject -> Reference { referenceObject, ..} ) <$> f referenceObject+{-# INLINE referenceObjectL #-}++-- | 'referenceRef' Lens+referenceRefL :: Lens_' Reference (Maybe Text)+referenceRefL f Reference{..} = (\referenceRef -> Reference { referenceRef, ..} ) <$> f referenceRef+{-# INLINE referenceRefL #-}++-- | 'referenceUrl' Lens+referenceUrlL :: Lens_' Reference (Maybe Text)+referenceUrlL f Reference{..} = (\referenceUrl -> Reference { referenceUrl, ..} ) <$> f referenceUrl+{-# INLINE referenceUrlL #-}++++-- * Release++-- | 'releaseAssets' Lens+releaseAssetsL :: Lens_' Release (Maybe [Attachment])+releaseAssetsL f Release{..} = (\releaseAssets -> Release { releaseAssets, ..} ) <$> f releaseAssets+{-# INLINE releaseAssetsL #-}++-- | 'releaseAuthor' Lens+releaseAuthorL :: Lens_' Release (Maybe User)+releaseAuthorL f Release{..} = (\releaseAuthor -> Release { releaseAuthor, ..} ) <$> f releaseAuthor+{-# INLINE releaseAuthorL #-}++-- | 'releaseBody' Lens+releaseBodyL :: Lens_' Release (Maybe Text)+releaseBodyL f Release{..} = (\releaseBody -> Release { releaseBody, ..} ) <$> f releaseBody+{-# INLINE releaseBodyL #-}++-- | 'releaseCreatedAt' Lens+releaseCreatedAtL :: Lens_' Release (Maybe DateTime)+releaseCreatedAtL f Release{..} = (\releaseCreatedAt -> Release { releaseCreatedAt, ..} ) <$> f releaseCreatedAt+{-# INLINE releaseCreatedAtL #-}++-- | 'releaseDraft' Lens+releaseDraftL :: Lens_' Release (Maybe Bool)+releaseDraftL f Release{..} = (\releaseDraft -> Release { releaseDraft, ..} ) <$> f releaseDraft+{-# INLINE releaseDraftL #-}++-- | 'releaseHtmlUrl' Lens+releaseHtmlUrlL :: Lens_' Release (Maybe Text)+releaseHtmlUrlL f Release{..} = (\releaseHtmlUrl -> Release { releaseHtmlUrl, ..} ) <$> f releaseHtmlUrl+{-# INLINE releaseHtmlUrlL #-}++-- | 'releaseId' Lens+releaseIdL :: Lens_' Release (Maybe Integer)+releaseIdL f Release{..} = (\releaseId -> Release { releaseId, ..} ) <$> f releaseId+{-# INLINE releaseIdL #-}++-- | 'releaseName' Lens+releaseNameL :: Lens_' Release (Maybe Text)+releaseNameL f Release{..} = (\releaseName -> Release { releaseName, ..} ) <$> f releaseName+{-# INLINE releaseNameL #-}++-- | 'releasePrerelease' Lens+releasePrereleaseL :: Lens_' Release (Maybe Bool)+releasePrereleaseL f Release{..} = (\releasePrerelease -> Release { releasePrerelease, ..} ) <$> f releasePrerelease+{-# INLINE releasePrereleaseL #-}++-- | 'releasePublishedAt' Lens+releasePublishedAtL :: Lens_' Release (Maybe DateTime)+releasePublishedAtL f Release{..} = (\releasePublishedAt -> Release { releasePublishedAt, ..} ) <$> f releasePublishedAt+{-# INLINE releasePublishedAtL #-}++-- | 'releaseTagName' Lens+releaseTagNameL :: Lens_' Release (Maybe Text)+releaseTagNameL f Release{..} = (\releaseTagName -> Release { releaseTagName, ..} ) <$> f releaseTagName+{-# INLINE releaseTagNameL #-}++-- | 'releaseTarballUrl' Lens+releaseTarballUrlL :: Lens_' Release (Maybe Text)+releaseTarballUrlL f Release{..} = (\releaseTarballUrl -> Release { releaseTarballUrl, ..} ) <$> f releaseTarballUrl+{-# INLINE releaseTarballUrlL #-}++-- | 'releaseTargetCommitish' Lens+releaseTargetCommitishL :: Lens_' Release (Maybe Text)+releaseTargetCommitishL f Release{..} = (\releaseTargetCommitish -> Release { releaseTargetCommitish, ..} ) <$> f releaseTargetCommitish+{-# INLINE releaseTargetCommitishL #-}++-- | 'releaseUrl' Lens+releaseUrlL :: Lens_' Release (Maybe Text)+releaseUrlL f Release{..} = (\releaseUrl -> Release { releaseUrl, ..} ) <$> f releaseUrl+{-# INLINE releaseUrlL #-}++-- | 'releaseZipballUrl' Lens+releaseZipballUrlL :: Lens_' Release (Maybe Text)+releaseZipballUrlL f Release{..} = (\releaseZipballUrl -> Release { releaseZipballUrl, ..} ) <$> f releaseZipballUrl+{-# INLINE releaseZipballUrlL #-}++++-- * RepoCollaboratorPermission++-- | 'repoCollaboratorPermissionPermission' Lens+repoCollaboratorPermissionPermissionL :: Lens_' RepoCollaboratorPermission (Maybe Text)+repoCollaboratorPermissionPermissionL f RepoCollaboratorPermission{..} = (\repoCollaboratorPermissionPermission -> RepoCollaboratorPermission { repoCollaboratorPermissionPermission, ..} ) <$> f repoCollaboratorPermissionPermission+{-# INLINE repoCollaboratorPermissionPermissionL #-}++-- | 'repoCollaboratorPermissionRoleName' Lens+repoCollaboratorPermissionRoleNameL :: Lens_' RepoCollaboratorPermission (Maybe Text)+repoCollaboratorPermissionRoleNameL f RepoCollaboratorPermission{..} = (\repoCollaboratorPermissionRoleName -> RepoCollaboratorPermission { repoCollaboratorPermissionRoleName, ..} ) <$> f repoCollaboratorPermissionRoleName+{-# INLINE repoCollaboratorPermissionRoleNameL #-}++-- | 'repoCollaboratorPermissionUser' Lens+repoCollaboratorPermissionUserL :: Lens_' RepoCollaboratorPermission (Maybe User)+repoCollaboratorPermissionUserL f RepoCollaboratorPermission{..} = (\repoCollaboratorPermissionUser -> RepoCollaboratorPermission { repoCollaboratorPermissionUser, ..} ) <$> f repoCollaboratorPermissionUser+{-# INLINE repoCollaboratorPermissionUserL #-}++++-- * RepoCommit++-- | 'repoCommitAuthor' Lens+repoCommitAuthorL :: Lens_' RepoCommit (Maybe CommitUser)+repoCommitAuthorL f RepoCommit{..} = (\repoCommitAuthor -> RepoCommit { repoCommitAuthor, ..} ) <$> f repoCommitAuthor+{-# INLINE repoCommitAuthorL #-}++-- | 'repoCommitCommitter' Lens+repoCommitCommitterL :: Lens_' RepoCommit (Maybe CommitUser)+repoCommitCommitterL f RepoCommit{..} = (\repoCommitCommitter -> RepoCommit { repoCommitCommitter, ..} ) <$> f repoCommitCommitter+{-# INLINE repoCommitCommitterL #-}++-- | 'repoCommitMessage' Lens+repoCommitMessageL :: Lens_' RepoCommit (Maybe Text)+repoCommitMessageL f RepoCommit{..} = (\repoCommitMessage -> RepoCommit { repoCommitMessage, ..} ) <$> f repoCommitMessage+{-# INLINE repoCommitMessageL #-}++-- | 'repoCommitTree' Lens+repoCommitTreeL :: Lens_' RepoCommit (Maybe CommitMeta)+repoCommitTreeL f RepoCommit{..} = (\repoCommitTree -> RepoCommit { repoCommitTree, ..} ) <$> f repoCommitTree+{-# INLINE repoCommitTreeL #-}++-- | 'repoCommitUrl' Lens+repoCommitUrlL :: Lens_' RepoCommit (Maybe Text)+repoCommitUrlL f RepoCommit{..} = (\repoCommitUrl -> RepoCommit { repoCommitUrl, ..} ) <$> f repoCommitUrl+{-# INLINE repoCommitUrlL #-}++-- | 'repoCommitVerification' Lens+repoCommitVerificationL :: Lens_' RepoCommit (Maybe PayloadCommitVerification)+repoCommitVerificationL f RepoCommit{..} = (\repoCommitVerification -> RepoCommit { repoCommitVerification, ..} ) <$> f repoCommitVerification+{-# INLINE repoCommitVerificationL #-}++++-- * RepoTopicOptions++-- | 'repoTopicOptionsTopics' Lens+repoTopicOptionsTopicsL :: Lens_' RepoTopicOptions (Maybe [Text])+repoTopicOptionsTopicsL f RepoTopicOptions{..} = (\repoTopicOptionsTopics -> RepoTopicOptions { repoTopicOptionsTopics, ..} ) <$> f repoTopicOptionsTopics+{-# INLINE repoTopicOptionsTopicsL #-}++++-- * RepoTransfer++-- | 'repoTransferDoer' Lens+repoTransferDoerL :: Lens_' RepoTransfer (Maybe User)+repoTransferDoerL f RepoTransfer{..} = (\repoTransferDoer -> RepoTransfer { repoTransferDoer, ..} ) <$> f repoTransferDoer+{-# INLINE repoTransferDoerL #-}++-- | 'repoTransferRecipient' Lens+repoTransferRecipientL :: Lens_' RepoTransfer (Maybe User)+repoTransferRecipientL f RepoTransfer{..} = (\repoTransferRecipient -> RepoTransfer { repoTransferRecipient, ..} ) <$> f repoTransferRecipient+{-# INLINE repoTransferRecipientL #-}++-- | 'repoTransferTeams' Lens+repoTransferTeamsL :: Lens_' RepoTransfer (Maybe [Team])+repoTransferTeamsL f RepoTransfer{..} = (\repoTransferTeams -> RepoTransfer { repoTransferTeams, ..} ) <$> f repoTransferTeams+{-# INLINE repoTransferTeamsL #-}++++-- * Repository++-- | 'repositoryAllowMergeCommits' Lens+repositoryAllowMergeCommitsL :: Lens_' Repository (Maybe Bool)+repositoryAllowMergeCommitsL f Repository{..} = (\repositoryAllowMergeCommits -> Repository { repositoryAllowMergeCommits, ..} ) <$> f repositoryAllowMergeCommits+{-# INLINE repositoryAllowMergeCommitsL #-}++-- | 'repositoryAllowRebase' Lens+repositoryAllowRebaseL :: Lens_' Repository (Maybe Bool)+repositoryAllowRebaseL f Repository{..} = (\repositoryAllowRebase -> Repository { repositoryAllowRebase, ..} ) <$> f repositoryAllowRebase+{-# INLINE repositoryAllowRebaseL #-}++-- | 'repositoryAllowRebaseExplicit' Lens+repositoryAllowRebaseExplicitL :: Lens_' Repository (Maybe Bool)+repositoryAllowRebaseExplicitL f Repository{..} = (\repositoryAllowRebaseExplicit -> Repository { repositoryAllowRebaseExplicit, ..} ) <$> f repositoryAllowRebaseExplicit+{-# INLINE repositoryAllowRebaseExplicitL #-}++-- | 'repositoryAllowRebaseUpdate' Lens+repositoryAllowRebaseUpdateL :: Lens_' Repository (Maybe Bool)+repositoryAllowRebaseUpdateL f Repository{..} = (\repositoryAllowRebaseUpdate -> Repository { repositoryAllowRebaseUpdate, ..} ) <$> f repositoryAllowRebaseUpdate+{-# INLINE repositoryAllowRebaseUpdateL #-}++-- | 'repositoryAllowSquashMerge' Lens+repositoryAllowSquashMergeL :: Lens_' Repository (Maybe Bool)+repositoryAllowSquashMergeL f Repository{..} = (\repositoryAllowSquashMerge -> Repository { repositoryAllowSquashMerge, ..} ) <$> f repositoryAllowSquashMerge+{-# INLINE repositoryAllowSquashMergeL #-}++-- | 'repositoryArchived' Lens+repositoryArchivedL :: Lens_' Repository (Maybe Bool)+repositoryArchivedL f Repository{..} = (\repositoryArchived -> Repository { repositoryArchived, ..} ) <$> f repositoryArchived+{-# INLINE repositoryArchivedL #-}++-- | 'repositoryAvatarUrl' Lens+repositoryAvatarUrlL :: Lens_' Repository (Maybe Text)+repositoryAvatarUrlL f Repository{..} = (\repositoryAvatarUrl -> Repository { repositoryAvatarUrl, ..} ) <$> f repositoryAvatarUrl+{-# INLINE repositoryAvatarUrlL #-}++-- | 'repositoryCloneUrl' Lens+repositoryCloneUrlL :: Lens_' Repository (Maybe Text)+repositoryCloneUrlL f Repository{..} = (\repositoryCloneUrl -> Repository { repositoryCloneUrl, ..} ) <$> f repositoryCloneUrl+{-# INLINE repositoryCloneUrlL #-}++-- | 'repositoryCreatedAt' Lens+repositoryCreatedAtL :: Lens_' Repository (Maybe DateTime)+repositoryCreatedAtL f Repository{..} = (\repositoryCreatedAt -> Repository { repositoryCreatedAt, ..} ) <$> f repositoryCreatedAt+{-# INLINE repositoryCreatedAtL #-}++-- | 'repositoryDefaultAllowMaintainerEdit' Lens+repositoryDefaultAllowMaintainerEditL :: Lens_' Repository (Maybe Bool)+repositoryDefaultAllowMaintainerEditL f Repository{..} = (\repositoryDefaultAllowMaintainerEdit -> Repository { repositoryDefaultAllowMaintainerEdit, ..} ) <$> f repositoryDefaultAllowMaintainerEdit+{-# INLINE repositoryDefaultAllowMaintainerEditL #-}++-- | 'repositoryDefaultBranch' Lens+repositoryDefaultBranchL :: Lens_' Repository (Maybe Text)+repositoryDefaultBranchL f Repository{..} = (\repositoryDefaultBranch -> Repository { repositoryDefaultBranch, ..} ) <$> f repositoryDefaultBranch+{-# INLINE repositoryDefaultBranchL #-}++-- | 'repositoryDefaultDeleteBranchAfterMerge' Lens+repositoryDefaultDeleteBranchAfterMergeL :: Lens_' Repository (Maybe Bool)+repositoryDefaultDeleteBranchAfterMergeL f Repository{..} = (\repositoryDefaultDeleteBranchAfterMerge -> Repository { repositoryDefaultDeleteBranchAfterMerge, ..} ) <$> f repositoryDefaultDeleteBranchAfterMerge+{-# INLINE repositoryDefaultDeleteBranchAfterMergeL #-}++-- | 'repositoryDefaultMergeStyle' Lens+repositoryDefaultMergeStyleL :: Lens_' Repository (Maybe Text)+repositoryDefaultMergeStyleL f Repository{..} = (\repositoryDefaultMergeStyle -> Repository { repositoryDefaultMergeStyle, ..} ) <$> f repositoryDefaultMergeStyle+{-# INLINE repositoryDefaultMergeStyleL #-}++-- | 'repositoryDescription' Lens+repositoryDescriptionL :: Lens_' Repository (Maybe Text)+repositoryDescriptionL f Repository{..} = (\repositoryDescription -> Repository { repositoryDescription, ..} ) <$> f repositoryDescription+{-# INLINE repositoryDescriptionL #-}++-- | 'repositoryEmpty' Lens+repositoryEmptyL :: Lens_' Repository (Maybe Bool)+repositoryEmptyL f Repository{..} = (\repositoryEmpty -> Repository { repositoryEmpty, ..} ) <$> f repositoryEmpty+{-# INLINE repositoryEmptyL #-}++-- | 'repositoryExternalTracker' Lens+repositoryExternalTrackerL :: Lens_' Repository (Maybe ExternalTracker)+repositoryExternalTrackerL f Repository{..} = (\repositoryExternalTracker -> Repository { repositoryExternalTracker, ..} ) <$> f repositoryExternalTracker+{-# INLINE repositoryExternalTrackerL #-}++-- | 'repositoryExternalWiki' Lens+repositoryExternalWikiL :: Lens_' Repository (Maybe ExternalWiki)+repositoryExternalWikiL f Repository{..} = (\repositoryExternalWiki -> Repository { repositoryExternalWiki, ..} ) <$> f repositoryExternalWiki+{-# INLINE repositoryExternalWikiL #-}++-- | 'repositoryFork' Lens+repositoryForkL :: Lens_' Repository (Maybe Bool)+repositoryForkL f Repository{..} = (\repositoryFork -> Repository { repositoryFork, ..} ) <$> f repositoryFork+{-# INLINE repositoryForkL #-}++-- | 'repositoryForksCount' Lens+repositoryForksCountL :: Lens_' Repository (Maybe Integer)+repositoryForksCountL f Repository{..} = (\repositoryForksCount -> Repository { repositoryForksCount, ..} ) <$> f repositoryForksCount+{-# INLINE repositoryForksCountL #-}++-- | 'repositoryFullName' Lens+repositoryFullNameL :: Lens_' Repository (Maybe Text)+repositoryFullNameL f Repository{..} = (\repositoryFullName -> Repository { repositoryFullName, ..} ) <$> f repositoryFullName+{-# INLINE repositoryFullNameL #-}++-- | 'repositoryHasIssues' Lens+repositoryHasIssuesL :: Lens_' Repository (Maybe Bool)+repositoryHasIssuesL f Repository{..} = (\repositoryHasIssues -> Repository { repositoryHasIssues, ..} ) <$> f repositoryHasIssues+{-# INLINE repositoryHasIssuesL #-}++-- | 'repositoryHasProjects' Lens+repositoryHasProjectsL :: Lens_' Repository (Maybe Bool)+repositoryHasProjectsL f Repository{..} = (\repositoryHasProjects -> Repository { repositoryHasProjects, ..} ) <$> f repositoryHasProjects+{-# INLINE repositoryHasProjectsL #-}++-- | 'repositoryHasPullRequests' Lens+repositoryHasPullRequestsL :: Lens_' Repository (Maybe Bool)+repositoryHasPullRequestsL f Repository{..} = (\repositoryHasPullRequests -> Repository { repositoryHasPullRequests, ..} ) <$> f repositoryHasPullRequests+{-# INLINE repositoryHasPullRequestsL #-}++-- | 'repositoryHasWiki' Lens+repositoryHasWikiL :: Lens_' Repository (Maybe Bool)+repositoryHasWikiL f Repository{..} = (\repositoryHasWiki -> Repository { repositoryHasWiki, ..} ) <$> f repositoryHasWiki+{-# INLINE repositoryHasWikiL #-}++-- | 'repositoryHtmlUrl' Lens+repositoryHtmlUrlL :: Lens_' Repository (Maybe Text)+repositoryHtmlUrlL f Repository{..} = (\repositoryHtmlUrl -> Repository { repositoryHtmlUrl, ..} ) <$> f repositoryHtmlUrl+{-# INLINE repositoryHtmlUrlL #-}++-- | 'repositoryId' Lens+repositoryIdL :: Lens_' Repository (Maybe Integer)+repositoryIdL f Repository{..} = (\repositoryId -> Repository { repositoryId, ..} ) <$> f repositoryId+{-# INLINE repositoryIdL #-}++-- | 'repositoryIgnoreWhitespaceConflicts' Lens+repositoryIgnoreWhitespaceConflictsL :: Lens_' Repository (Maybe Bool)+repositoryIgnoreWhitespaceConflictsL f Repository{..} = (\repositoryIgnoreWhitespaceConflicts -> Repository { repositoryIgnoreWhitespaceConflicts, ..} ) <$> f repositoryIgnoreWhitespaceConflicts+{-# INLINE repositoryIgnoreWhitespaceConflictsL #-}++-- | 'repositoryInternal' Lens+repositoryInternalL :: Lens_' Repository (Maybe Bool)+repositoryInternalL f Repository{..} = (\repositoryInternal -> Repository { repositoryInternal, ..} ) <$> f repositoryInternal+{-# INLINE repositoryInternalL #-}++-- | 'repositoryInternalTracker' Lens+repositoryInternalTrackerL :: Lens_' Repository (Maybe InternalTracker)+repositoryInternalTrackerL f Repository{..} = (\repositoryInternalTracker -> Repository { repositoryInternalTracker, ..} ) <$> f repositoryInternalTracker+{-# INLINE repositoryInternalTrackerL #-}++-- | 'repositoryLanguage' Lens+repositoryLanguageL :: Lens_' Repository (Maybe Text)+repositoryLanguageL f Repository{..} = (\repositoryLanguage -> Repository { repositoryLanguage, ..} ) <$> f repositoryLanguage+{-# INLINE repositoryLanguageL #-}++-- | 'repositoryLanguagesUrl' Lens+repositoryLanguagesUrlL :: Lens_' Repository (Maybe Text)+repositoryLanguagesUrlL f Repository{..} = (\repositoryLanguagesUrl -> Repository { repositoryLanguagesUrl, ..} ) <$> f repositoryLanguagesUrl+{-# INLINE repositoryLanguagesUrlL #-}++-- | 'repositoryLink' Lens+repositoryLinkL :: Lens_' Repository (Maybe Text)+repositoryLinkL f Repository{..} = (\repositoryLink -> Repository { repositoryLink, ..} ) <$> f repositoryLink+{-# INLINE repositoryLinkL #-}++-- | 'repositoryMirror' Lens+repositoryMirrorL :: Lens_' Repository (Maybe Bool)+repositoryMirrorL f Repository{..} = (\repositoryMirror -> Repository { repositoryMirror, ..} ) <$> f repositoryMirror+{-# INLINE repositoryMirrorL #-}++-- | 'repositoryMirrorInterval' Lens+repositoryMirrorIntervalL :: Lens_' Repository (Maybe Text)+repositoryMirrorIntervalL f Repository{..} = (\repositoryMirrorInterval -> Repository { repositoryMirrorInterval, ..} ) <$> f repositoryMirrorInterval+{-# INLINE repositoryMirrorIntervalL #-}++-- | 'repositoryMirrorUpdated' Lens+repositoryMirrorUpdatedL :: Lens_' Repository (Maybe DateTime)+repositoryMirrorUpdatedL f Repository{..} = (\repositoryMirrorUpdated -> Repository { repositoryMirrorUpdated, ..} ) <$> f repositoryMirrorUpdated+{-# INLINE repositoryMirrorUpdatedL #-}++-- | 'repositoryName' Lens+repositoryNameL :: Lens_' Repository (Maybe Text)+repositoryNameL f Repository{..} = (\repositoryName -> Repository { repositoryName, ..} ) <$> f repositoryName+{-# INLINE repositoryNameL #-}++-- | 'repositoryOpenIssuesCount' Lens+repositoryOpenIssuesCountL :: Lens_' Repository (Maybe Integer)+repositoryOpenIssuesCountL f Repository{..} = (\repositoryOpenIssuesCount -> Repository { repositoryOpenIssuesCount, ..} ) <$> f repositoryOpenIssuesCount+{-# INLINE repositoryOpenIssuesCountL #-}++-- | 'repositoryOpenPrCounter' Lens+repositoryOpenPrCounterL :: Lens_' Repository (Maybe Integer)+repositoryOpenPrCounterL f Repository{..} = (\repositoryOpenPrCounter -> Repository { repositoryOpenPrCounter, ..} ) <$> f repositoryOpenPrCounter+{-# INLINE repositoryOpenPrCounterL #-}++-- | 'repositoryOriginalUrl' Lens+repositoryOriginalUrlL :: Lens_' Repository (Maybe Text)+repositoryOriginalUrlL f Repository{..} = (\repositoryOriginalUrl -> Repository { repositoryOriginalUrl, ..} ) <$> f repositoryOriginalUrl+{-# INLINE repositoryOriginalUrlL #-}++-- | 'repositoryOwner' Lens+repositoryOwnerL :: Lens_' Repository (Maybe User)+repositoryOwnerL f Repository{..} = (\repositoryOwner -> Repository { repositoryOwner, ..} ) <$> f repositoryOwner+{-# INLINE repositoryOwnerL #-}++-- | 'repositoryParent' Lens+repositoryParentL :: Lens_' Repository (Maybe Repository)+repositoryParentL f Repository{..} = (\repositoryParent -> Repository { repositoryParent, ..} ) <$> f repositoryParent+{-# INLINE repositoryParentL #-}++-- | 'repositoryPermissions' Lens+repositoryPermissionsL :: Lens_' Repository (Maybe Permission)+repositoryPermissionsL f Repository{..} = (\repositoryPermissions -> Repository { repositoryPermissions, ..} ) <$> f repositoryPermissions+{-# INLINE repositoryPermissionsL #-}++-- | 'repositoryPrivate' Lens+repositoryPrivateL :: Lens_' Repository (Maybe Bool)+repositoryPrivateL f Repository{..} = (\repositoryPrivate -> Repository { repositoryPrivate, ..} ) <$> f repositoryPrivate+{-# INLINE repositoryPrivateL #-}++-- | 'repositoryReleaseCounter' Lens+repositoryReleaseCounterL :: Lens_' Repository (Maybe Integer)+repositoryReleaseCounterL f Repository{..} = (\repositoryReleaseCounter -> Repository { repositoryReleaseCounter, ..} ) <$> f repositoryReleaseCounter+{-# INLINE repositoryReleaseCounterL #-}++-- | 'repositoryRepoTransfer' Lens+repositoryRepoTransferL :: Lens_' Repository (Maybe RepoTransfer)+repositoryRepoTransferL f Repository{..} = (\repositoryRepoTransfer -> Repository { repositoryRepoTransfer, ..} ) <$> f repositoryRepoTransfer+{-# INLINE repositoryRepoTransferL #-}++-- | 'repositorySize' Lens+repositorySizeL :: Lens_' Repository (Maybe Integer)+repositorySizeL f Repository{..} = (\repositorySize -> Repository { repositorySize, ..} ) <$> f repositorySize+{-# INLINE repositorySizeL #-}++-- | 'repositorySshUrl' Lens+repositorySshUrlL :: Lens_' Repository (Maybe Text)+repositorySshUrlL f Repository{..} = (\repositorySshUrl -> Repository { repositorySshUrl, ..} ) <$> f repositorySshUrl+{-# INLINE repositorySshUrlL #-}++-- | 'repositoryStarsCount' Lens+repositoryStarsCountL :: Lens_' Repository (Maybe Integer)+repositoryStarsCountL f Repository{..} = (\repositoryStarsCount -> Repository { repositoryStarsCount, ..} ) <$> f repositoryStarsCount+{-# INLINE repositoryStarsCountL #-}++-- | 'repositoryTemplate' Lens+repositoryTemplateL :: Lens_' Repository (Maybe Bool)+repositoryTemplateL f Repository{..} = (\repositoryTemplate -> Repository { repositoryTemplate, ..} ) <$> f repositoryTemplate+{-# INLINE repositoryTemplateL #-}++-- | 'repositoryUpdatedAt' Lens+repositoryUpdatedAtL :: Lens_' Repository (Maybe DateTime)+repositoryUpdatedAtL f Repository{..} = (\repositoryUpdatedAt -> Repository { repositoryUpdatedAt, ..} ) <$> f repositoryUpdatedAt+{-# INLINE repositoryUpdatedAtL #-}++-- | 'repositoryWatchersCount' Lens+repositoryWatchersCountL :: Lens_' Repository (Maybe Integer)+repositoryWatchersCountL f Repository{..} = (\repositoryWatchersCount -> Repository { repositoryWatchersCount, ..} ) <$> f repositoryWatchersCount+{-# INLINE repositoryWatchersCountL #-}++-- | 'repositoryWebsite' Lens+repositoryWebsiteL :: Lens_' Repository (Maybe Text)+repositoryWebsiteL f Repository{..} = (\repositoryWebsite -> Repository { repositoryWebsite, ..} ) <$> f repositoryWebsite+{-# INLINE repositoryWebsiteL #-}++++-- * RepositoryMeta++-- | 'repositoryMetaFullName' Lens+repositoryMetaFullNameL :: Lens_' RepositoryMeta (Maybe Text)+repositoryMetaFullNameL f RepositoryMeta{..} = (\repositoryMetaFullName -> RepositoryMeta { repositoryMetaFullName, ..} ) <$> f repositoryMetaFullName+{-# INLINE repositoryMetaFullNameL #-}++-- | 'repositoryMetaId' Lens+repositoryMetaIdL :: Lens_' RepositoryMeta (Maybe Integer)+repositoryMetaIdL f RepositoryMeta{..} = (\repositoryMetaId -> RepositoryMeta { repositoryMetaId, ..} ) <$> f repositoryMetaId+{-# INLINE repositoryMetaIdL #-}++-- | 'repositoryMetaName' Lens+repositoryMetaNameL :: Lens_' RepositoryMeta (Maybe Text)+repositoryMetaNameL f RepositoryMeta{..} = (\repositoryMetaName -> RepositoryMeta { repositoryMetaName, ..} ) <$> f repositoryMetaName+{-# INLINE repositoryMetaNameL #-}++-- | 'repositoryMetaOwner' Lens+repositoryMetaOwnerL :: Lens_' RepositoryMeta (Maybe Text)+repositoryMetaOwnerL f RepositoryMeta{..} = (\repositoryMetaOwner -> RepositoryMeta { repositoryMetaOwner, ..} ) <$> f repositoryMetaOwner+{-# INLINE repositoryMetaOwnerL #-}++++-- * SearchResults++-- | 'searchResultsData' Lens+searchResultsDataL :: Lens_' SearchResults (Maybe [Repository])+searchResultsDataL f SearchResults{..} = (\searchResultsData -> SearchResults { searchResultsData, ..} ) <$> f searchResultsData+{-# INLINE searchResultsDataL #-}++-- | 'searchResultsOk' Lens+searchResultsOkL :: Lens_' SearchResults (Maybe Bool)+searchResultsOkL f SearchResults{..} = (\searchResultsOk -> SearchResults { searchResultsOk, ..} ) <$> f searchResultsOk+{-# INLINE searchResultsOkL #-}++++-- * ServerVersion++-- | 'serverVersionVersion' Lens+serverVersionVersionL :: Lens_' ServerVersion (Maybe Text)+serverVersionVersionL f ServerVersion{..} = (\serverVersionVersion -> ServerVersion { serverVersionVersion, ..} ) <$> f serverVersionVersion+{-# INLINE serverVersionVersionL #-}++++-- * StopWatch++-- | 'stopWatchCreated' Lens+stopWatchCreatedL :: Lens_' StopWatch (Maybe DateTime)+stopWatchCreatedL f StopWatch{..} = (\stopWatchCreated -> StopWatch { stopWatchCreated, ..} ) <$> f stopWatchCreated+{-# INLINE stopWatchCreatedL #-}++-- | 'stopWatchDuration' Lens+stopWatchDurationL :: Lens_' StopWatch (Maybe Text)+stopWatchDurationL f StopWatch{..} = (\stopWatchDuration -> StopWatch { stopWatchDuration, ..} ) <$> f stopWatchDuration+{-# INLINE stopWatchDurationL #-}++-- | 'stopWatchIssueIndex' Lens+stopWatchIssueIndexL :: Lens_' StopWatch (Maybe Integer)+stopWatchIssueIndexL f StopWatch{..} = (\stopWatchIssueIndex -> StopWatch { stopWatchIssueIndex, ..} ) <$> f stopWatchIssueIndex+{-# INLINE stopWatchIssueIndexL #-}++-- | 'stopWatchIssueTitle' Lens+stopWatchIssueTitleL :: Lens_' StopWatch (Maybe Text)+stopWatchIssueTitleL f StopWatch{..} = (\stopWatchIssueTitle -> StopWatch { stopWatchIssueTitle, ..} ) <$> f stopWatchIssueTitle+{-# INLINE stopWatchIssueTitleL #-}++-- | 'stopWatchRepoName' Lens+stopWatchRepoNameL :: Lens_' StopWatch (Maybe Text)+stopWatchRepoNameL f StopWatch{..} = (\stopWatchRepoName -> StopWatch { stopWatchRepoName, ..} ) <$> f stopWatchRepoName+{-# INLINE stopWatchRepoNameL #-}++-- | 'stopWatchRepoOwnerName' Lens+stopWatchRepoOwnerNameL :: Lens_' StopWatch (Maybe Text)+stopWatchRepoOwnerNameL f StopWatch{..} = (\stopWatchRepoOwnerName -> StopWatch { stopWatchRepoOwnerName, ..} ) <$> f stopWatchRepoOwnerName+{-# INLINE stopWatchRepoOwnerNameL #-}++-- | 'stopWatchSeconds' Lens+stopWatchSecondsL :: Lens_' StopWatch (Maybe Integer)+stopWatchSecondsL f StopWatch{..} = (\stopWatchSeconds -> StopWatch { stopWatchSeconds, ..} ) <$> f stopWatchSeconds+{-# INLINE stopWatchSecondsL #-}++++-- * SubmitPullReviewOptions++-- | 'submitPullReviewOptionsBody' Lens+submitPullReviewOptionsBodyL :: Lens_' SubmitPullReviewOptions (Maybe Text)+submitPullReviewOptionsBodyL f SubmitPullReviewOptions{..} = (\submitPullReviewOptionsBody -> SubmitPullReviewOptions { submitPullReviewOptionsBody, ..} ) <$> f submitPullReviewOptionsBody+{-# INLINE submitPullReviewOptionsBodyL #-}++-- | 'submitPullReviewOptionsEvent' Lens+submitPullReviewOptionsEventL :: Lens_' SubmitPullReviewOptions (Maybe Text)+submitPullReviewOptionsEventL f SubmitPullReviewOptions{..} = (\submitPullReviewOptionsEvent -> SubmitPullReviewOptions { submitPullReviewOptionsEvent, ..} ) <$> f submitPullReviewOptionsEvent+{-# INLINE submitPullReviewOptionsEventL #-}++++-- * Tag++-- | 'tagCommit' Lens+tagCommitL :: Lens_' Tag (Maybe CommitMeta)+tagCommitL f Tag{..} = (\tagCommit -> Tag { tagCommit, ..} ) <$> f tagCommit+{-# INLINE tagCommitL #-}++-- | 'tagId' Lens+tagIdL :: Lens_' Tag (Maybe Text)+tagIdL f Tag{..} = (\tagId -> Tag { tagId, ..} ) <$> f tagId+{-# INLINE tagIdL #-}++-- | 'tagMessage' Lens+tagMessageL :: Lens_' Tag (Maybe Text)+tagMessageL f Tag{..} = (\tagMessage -> Tag { tagMessage, ..} ) <$> f tagMessage+{-# INLINE tagMessageL #-}++-- | 'tagName' Lens+tagNameL :: Lens_' Tag (Maybe Text)+tagNameL f Tag{..} = (\tagName -> Tag { tagName, ..} ) <$> f tagName+{-# INLINE tagNameL #-}++-- | 'tagTarballUrl' Lens+tagTarballUrlL :: Lens_' Tag (Maybe Text)+tagTarballUrlL f Tag{..} = (\tagTarballUrl -> Tag { tagTarballUrl, ..} ) <$> f tagTarballUrl+{-# INLINE tagTarballUrlL #-}++-- | 'tagZipballUrl' Lens+tagZipballUrlL :: Lens_' Tag (Maybe Text)+tagZipballUrlL f Tag{..} = (\tagZipballUrl -> Tag { tagZipballUrl, ..} ) <$> f tagZipballUrl+{-# INLINE tagZipballUrlL #-}++++-- * Team++-- | 'teamCanCreateOrgRepo' Lens+teamCanCreateOrgRepoL :: Lens_' Team (Maybe Bool)+teamCanCreateOrgRepoL f Team{..} = (\teamCanCreateOrgRepo -> Team { teamCanCreateOrgRepo, ..} ) <$> f teamCanCreateOrgRepo+{-# INLINE teamCanCreateOrgRepoL #-}++-- | 'teamDescription' Lens+teamDescriptionL :: Lens_' Team (Maybe Text)+teamDescriptionL f Team{..} = (\teamDescription -> Team { teamDescription, ..} ) <$> f teamDescription+{-# INLINE teamDescriptionL #-}++-- | 'teamId' Lens+teamIdL :: Lens_' Team (Maybe Integer)+teamIdL f Team{..} = (\teamId -> Team { teamId, ..} ) <$> f teamId+{-# INLINE teamIdL #-}++-- | 'teamIncludesAllRepositories' Lens+teamIncludesAllRepositoriesL :: Lens_' Team (Maybe Bool)+teamIncludesAllRepositoriesL f Team{..} = (\teamIncludesAllRepositories -> Team { teamIncludesAllRepositories, ..} ) <$> f teamIncludesAllRepositories+{-# INLINE teamIncludesAllRepositoriesL #-}++-- | 'teamName' Lens+teamNameL :: Lens_' Team (Maybe Text)+teamNameL f Team{..} = (\teamName -> Team { teamName, ..} ) <$> f teamName+{-# INLINE teamNameL #-}++-- | 'teamOrganization' Lens+teamOrganizationL :: Lens_' Team (Maybe Organization)+teamOrganizationL f Team{..} = (\teamOrganization -> Team { teamOrganization, ..} ) <$> f teamOrganization+{-# INLINE teamOrganizationL #-}++-- | 'teamPermission' Lens+teamPermissionL :: Lens_' Team (Maybe E'Permission2)+teamPermissionL f Team{..} = (\teamPermission -> Team { teamPermission, ..} ) <$> f teamPermission+{-# INLINE teamPermissionL #-}++-- | 'teamUnits' Lens+teamUnitsL :: Lens_' Team (Maybe [Text])+teamUnitsL f Team{..} = (\teamUnits -> Team { teamUnits, ..} ) <$> f teamUnits+{-# INLINE teamUnitsL #-}++-- | 'teamUnitsMap' Lens+teamUnitsMapL :: Lens_' Team (Maybe (Map.Map String Text))+teamUnitsMapL f Team{..} = (\teamUnitsMap -> Team { teamUnitsMap, ..} ) <$> f teamUnitsMap+{-# INLINE teamUnitsMapL #-}++++-- * TeamSearch200Response++-- | 'teamSearch200ResponseData' Lens+teamSearch200ResponseDataL :: Lens_' TeamSearch200Response (Maybe [Team])+teamSearch200ResponseDataL f TeamSearch200Response{..} = (\teamSearch200ResponseData -> TeamSearch200Response { teamSearch200ResponseData, ..} ) <$> f teamSearch200ResponseData+{-# INLINE teamSearch200ResponseDataL #-}++-- | 'teamSearch200ResponseOk' Lens+teamSearch200ResponseOkL :: Lens_' TeamSearch200Response (Maybe Bool)+teamSearch200ResponseOkL f TeamSearch200Response{..} = (\teamSearch200ResponseOk -> TeamSearch200Response { teamSearch200ResponseOk, ..} ) <$> f teamSearch200ResponseOk+{-# INLINE teamSearch200ResponseOkL #-}++++-- * TimelineComment++-- | 'timelineCommentAssignee' Lens+timelineCommentAssigneeL :: Lens_' TimelineComment (Maybe User)+timelineCommentAssigneeL f TimelineComment{..} = (\timelineCommentAssignee -> TimelineComment { timelineCommentAssignee, ..} ) <$> f timelineCommentAssignee+{-# INLINE timelineCommentAssigneeL #-}++-- | 'timelineCommentAssigneeTeam' Lens+timelineCommentAssigneeTeamL :: Lens_' TimelineComment (Maybe Team)+timelineCommentAssigneeTeamL f TimelineComment{..} = (\timelineCommentAssigneeTeam -> TimelineComment { timelineCommentAssigneeTeam, ..} ) <$> f timelineCommentAssigneeTeam+{-# INLINE timelineCommentAssigneeTeamL #-}++-- | 'timelineCommentBody' Lens+timelineCommentBodyL :: Lens_' TimelineComment (Maybe Text)+timelineCommentBodyL f TimelineComment{..} = (\timelineCommentBody -> TimelineComment { timelineCommentBody, ..} ) <$> f timelineCommentBody+{-# INLINE timelineCommentBodyL #-}++-- | 'timelineCommentCreatedAt' Lens+timelineCommentCreatedAtL :: Lens_' TimelineComment (Maybe DateTime)+timelineCommentCreatedAtL f TimelineComment{..} = (\timelineCommentCreatedAt -> TimelineComment { timelineCommentCreatedAt, ..} ) <$> f timelineCommentCreatedAt+{-# INLINE timelineCommentCreatedAtL #-}++-- | 'timelineCommentDependentIssue' Lens+timelineCommentDependentIssueL :: Lens_' TimelineComment (Maybe Issue)+timelineCommentDependentIssueL f TimelineComment{..} = (\timelineCommentDependentIssue -> TimelineComment { timelineCommentDependentIssue, ..} ) <$> f timelineCommentDependentIssue+{-# INLINE timelineCommentDependentIssueL #-}++-- | 'timelineCommentHtmlUrl' Lens+timelineCommentHtmlUrlL :: Lens_' TimelineComment (Maybe Text)+timelineCommentHtmlUrlL f TimelineComment{..} = (\timelineCommentHtmlUrl -> TimelineComment { timelineCommentHtmlUrl, ..} ) <$> f timelineCommentHtmlUrl+{-# INLINE timelineCommentHtmlUrlL #-}++-- | 'timelineCommentId' Lens+timelineCommentIdL :: Lens_' TimelineComment (Maybe Integer)+timelineCommentIdL f TimelineComment{..} = (\timelineCommentId -> TimelineComment { timelineCommentId, ..} ) <$> f timelineCommentId+{-# INLINE timelineCommentIdL #-}++-- | 'timelineCommentIssueUrl' Lens+timelineCommentIssueUrlL :: Lens_' TimelineComment (Maybe Text)+timelineCommentIssueUrlL f TimelineComment{..} = (\timelineCommentIssueUrl -> TimelineComment { timelineCommentIssueUrl, ..} ) <$> f timelineCommentIssueUrl+{-# INLINE timelineCommentIssueUrlL #-}++-- | 'timelineCommentLabel' Lens+timelineCommentLabelL :: Lens_' TimelineComment (Maybe Label)+timelineCommentLabelL f TimelineComment{..} = (\timelineCommentLabel -> TimelineComment { timelineCommentLabel, ..} ) <$> f timelineCommentLabel+{-# INLINE timelineCommentLabelL #-}++-- | 'timelineCommentMilestone' Lens+timelineCommentMilestoneL :: Lens_' TimelineComment (Maybe Milestone)+timelineCommentMilestoneL f TimelineComment{..} = (\timelineCommentMilestone -> TimelineComment { timelineCommentMilestone, ..} ) <$> f timelineCommentMilestone+{-# INLINE timelineCommentMilestoneL #-}++-- | 'timelineCommentNewRef' Lens+timelineCommentNewRefL :: Lens_' TimelineComment (Maybe Text)+timelineCommentNewRefL f TimelineComment{..} = (\timelineCommentNewRef -> TimelineComment { timelineCommentNewRef, ..} ) <$> f timelineCommentNewRef+{-# INLINE timelineCommentNewRefL #-}++-- | 'timelineCommentNewTitle' Lens+timelineCommentNewTitleL :: Lens_' TimelineComment (Maybe Text)+timelineCommentNewTitleL f TimelineComment{..} = (\timelineCommentNewTitle -> TimelineComment { timelineCommentNewTitle, ..} ) <$> f timelineCommentNewTitle+{-# INLINE timelineCommentNewTitleL #-}++-- | 'timelineCommentOldMilestone' Lens+timelineCommentOldMilestoneL :: Lens_' TimelineComment (Maybe Milestone)+timelineCommentOldMilestoneL f TimelineComment{..} = (\timelineCommentOldMilestone -> TimelineComment { timelineCommentOldMilestone, ..} ) <$> f timelineCommentOldMilestone+{-# INLINE timelineCommentOldMilestoneL #-}++-- | 'timelineCommentOldProjectId' Lens+timelineCommentOldProjectIdL :: Lens_' TimelineComment (Maybe Integer)+timelineCommentOldProjectIdL f TimelineComment{..} = (\timelineCommentOldProjectId -> TimelineComment { timelineCommentOldProjectId, ..} ) <$> f timelineCommentOldProjectId+{-# INLINE timelineCommentOldProjectIdL #-}++-- | 'timelineCommentOldRef' Lens+timelineCommentOldRefL :: Lens_' TimelineComment (Maybe Text)+timelineCommentOldRefL f TimelineComment{..} = (\timelineCommentOldRef -> TimelineComment { timelineCommentOldRef, ..} ) <$> f timelineCommentOldRef+{-# INLINE timelineCommentOldRefL #-}++-- | 'timelineCommentOldTitle' Lens+timelineCommentOldTitleL :: Lens_' TimelineComment (Maybe Text)+timelineCommentOldTitleL f TimelineComment{..} = (\timelineCommentOldTitle -> TimelineComment { timelineCommentOldTitle, ..} ) <$> f timelineCommentOldTitle+{-# INLINE timelineCommentOldTitleL #-}++-- | 'timelineCommentProjectId' Lens+timelineCommentProjectIdL :: Lens_' TimelineComment (Maybe Integer)+timelineCommentProjectIdL f TimelineComment{..} = (\timelineCommentProjectId -> TimelineComment { timelineCommentProjectId, ..} ) <$> f timelineCommentProjectId+{-# INLINE timelineCommentProjectIdL #-}++-- | 'timelineCommentPullRequestUrl' Lens+timelineCommentPullRequestUrlL :: Lens_' TimelineComment (Maybe Text)+timelineCommentPullRequestUrlL f TimelineComment{..} = (\timelineCommentPullRequestUrl -> TimelineComment { timelineCommentPullRequestUrl, ..} ) <$> f timelineCommentPullRequestUrl+{-# INLINE timelineCommentPullRequestUrlL #-}++-- | 'timelineCommentRefAction' Lens+timelineCommentRefActionL :: Lens_' TimelineComment (Maybe Text)+timelineCommentRefActionL f TimelineComment{..} = (\timelineCommentRefAction -> TimelineComment { timelineCommentRefAction, ..} ) <$> f timelineCommentRefAction+{-# INLINE timelineCommentRefActionL #-}++-- | 'timelineCommentRefComment' Lens+timelineCommentRefCommentL :: Lens_' TimelineComment (Maybe Comment)+timelineCommentRefCommentL f TimelineComment{..} = (\timelineCommentRefComment -> TimelineComment { timelineCommentRefComment, ..} ) <$> f timelineCommentRefComment+{-# INLINE timelineCommentRefCommentL #-}++-- | 'timelineCommentRefCommitSha' Lens+timelineCommentRefCommitShaL :: Lens_' TimelineComment (Maybe Text)+timelineCommentRefCommitShaL f TimelineComment{..} = (\timelineCommentRefCommitSha -> TimelineComment { timelineCommentRefCommitSha, ..} ) <$> f timelineCommentRefCommitSha+{-# INLINE timelineCommentRefCommitShaL #-}++-- | 'timelineCommentRefIssue' Lens+timelineCommentRefIssueL :: Lens_' TimelineComment (Maybe Issue)+timelineCommentRefIssueL f TimelineComment{..} = (\timelineCommentRefIssue -> TimelineComment { timelineCommentRefIssue, ..} ) <$> f timelineCommentRefIssue+{-# INLINE timelineCommentRefIssueL #-}++-- | 'timelineCommentRemovedAssignee' Lens+timelineCommentRemovedAssigneeL :: Lens_' TimelineComment (Maybe Bool)+timelineCommentRemovedAssigneeL f TimelineComment{..} = (\timelineCommentRemovedAssignee -> TimelineComment { timelineCommentRemovedAssignee, ..} ) <$> f timelineCommentRemovedAssignee+{-# INLINE timelineCommentRemovedAssigneeL #-}++-- | 'timelineCommentResolveDoer' Lens+timelineCommentResolveDoerL :: Lens_' TimelineComment (Maybe User)+timelineCommentResolveDoerL f TimelineComment{..} = (\timelineCommentResolveDoer -> TimelineComment { timelineCommentResolveDoer, ..} ) <$> f timelineCommentResolveDoer+{-# INLINE timelineCommentResolveDoerL #-}++-- | 'timelineCommentReviewId' Lens+timelineCommentReviewIdL :: Lens_' TimelineComment (Maybe Integer)+timelineCommentReviewIdL f TimelineComment{..} = (\timelineCommentReviewId -> TimelineComment { timelineCommentReviewId, ..} ) <$> f timelineCommentReviewId+{-# INLINE timelineCommentReviewIdL #-}++-- | 'timelineCommentTrackedTime' Lens+timelineCommentTrackedTimeL :: Lens_' TimelineComment (Maybe TrackedTime)+timelineCommentTrackedTimeL f TimelineComment{..} = (\timelineCommentTrackedTime -> TimelineComment { timelineCommentTrackedTime, ..} ) <$> f timelineCommentTrackedTime+{-# INLINE timelineCommentTrackedTimeL #-}++-- | 'timelineCommentType' Lens+timelineCommentTypeL :: Lens_' TimelineComment (Maybe Text)+timelineCommentTypeL f TimelineComment{..} = (\timelineCommentType -> TimelineComment { timelineCommentType, ..} ) <$> f timelineCommentType+{-# INLINE timelineCommentTypeL #-}++-- | 'timelineCommentUpdatedAt' Lens+timelineCommentUpdatedAtL :: Lens_' TimelineComment (Maybe DateTime)+timelineCommentUpdatedAtL f TimelineComment{..} = (\timelineCommentUpdatedAt -> TimelineComment { timelineCommentUpdatedAt, ..} ) <$> f timelineCommentUpdatedAt+{-# INLINE timelineCommentUpdatedAtL #-}++-- | 'timelineCommentUser' Lens+timelineCommentUserL :: Lens_' TimelineComment (Maybe User)+timelineCommentUserL f TimelineComment{..} = (\timelineCommentUser -> TimelineComment { timelineCommentUser, ..} ) <$> f timelineCommentUser+{-# INLINE timelineCommentUserL #-}++++-- * TopicName++-- | 'topicNameTopics' Lens+topicNameTopicsL :: Lens_' TopicName (Maybe [Text])+topicNameTopicsL f TopicName{..} = (\topicNameTopics -> TopicName { topicNameTopics, ..} ) <$> f topicNameTopics+{-# INLINE topicNameTopicsL #-}++++-- * TopicResponse++-- | 'topicResponseCreated' Lens+topicResponseCreatedL :: Lens_' TopicResponse (Maybe DateTime)+topicResponseCreatedL f TopicResponse{..} = (\topicResponseCreated -> TopicResponse { topicResponseCreated, ..} ) <$> f topicResponseCreated+{-# INLINE topicResponseCreatedL #-}++-- | 'topicResponseId' Lens+topicResponseIdL :: Lens_' TopicResponse (Maybe Integer)+topicResponseIdL f TopicResponse{..} = (\topicResponseId -> TopicResponse { topicResponseId, ..} ) <$> f topicResponseId+{-# INLINE topicResponseIdL #-}++-- | 'topicResponseRepoCount' Lens+topicResponseRepoCountL :: Lens_' TopicResponse (Maybe Integer)+topicResponseRepoCountL f TopicResponse{..} = (\topicResponseRepoCount -> TopicResponse { topicResponseRepoCount, ..} ) <$> f topicResponseRepoCount+{-# INLINE topicResponseRepoCountL #-}++-- | 'topicResponseTopicName' Lens+topicResponseTopicNameL :: Lens_' TopicResponse (Maybe Text)+topicResponseTopicNameL f TopicResponse{..} = (\topicResponseTopicName -> TopicResponse { topicResponseTopicName, ..} ) <$> f topicResponseTopicName+{-# INLINE topicResponseTopicNameL #-}++-- | 'topicResponseUpdated' Lens+topicResponseUpdatedL :: Lens_' TopicResponse (Maybe DateTime)+topicResponseUpdatedL f TopicResponse{..} = (\topicResponseUpdated -> TopicResponse { topicResponseUpdated, ..} ) <$> f topicResponseUpdated+{-# INLINE topicResponseUpdatedL #-}++++-- * TrackedTime++-- | 'trackedTimeCreated' Lens+trackedTimeCreatedL :: Lens_' TrackedTime (Maybe DateTime)+trackedTimeCreatedL f TrackedTime{..} = (\trackedTimeCreated -> TrackedTime { trackedTimeCreated, ..} ) <$> f trackedTimeCreated+{-# INLINE trackedTimeCreatedL #-}++-- | 'trackedTimeId' Lens+trackedTimeIdL :: Lens_' TrackedTime (Maybe Integer)+trackedTimeIdL f TrackedTime{..} = (\trackedTimeId -> TrackedTime { trackedTimeId, ..} ) <$> f trackedTimeId+{-# INLINE trackedTimeIdL #-}++-- | 'trackedTimeIssue' Lens+trackedTimeIssueL :: Lens_' TrackedTime (Maybe Issue)+trackedTimeIssueL f TrackedTime{..} = (\trackedTimeIssue -> TrackedTime { trackedTimeIssue, ..} ) <$> f trackedTimeIssue+{-# INLINE trackedTimeIssueL #-}++-- | 'trackedTimeIssueId' Lens+trackedTimeIssueIdL :: Lens_' TrackedTime (Maybe Integer)+trackedTimeIssueIdL f TrackedTime{..} = (\trackedTimeIssueId -> TrackedTime { trackedTimeIssueId, ..} ) <$> f trackedTimeIssueId+{-# INLINE trackedTimeIssueIdL #-}++-- | 'trackedTimeTime' Lens+trackedTimeTimeL :: Lens_' TrackedTime (Maybe Integer)+trackedTimeTimeL f TrackedTime{..} = (\trackedTimeTime -> TrackedTime { trackedTimeTime, ..} ) <$> f trackedTimeTime+{-# INLINE trackedTimeTimeL #-}++-- | 'trackedTimeUserId' Lens+trackedTimeUserIdL :: Lens_' TrackedTime (Maybe Integer)+trackedTimeUserIdL f TrackedTime{..} = (\trackedTimeUserId -> TrackedTime { trackedTimeUserId, ..} ) <$> f trackedTimeUserId+{-# INLINE trackedTimeUserIdL #-}++-- | 'trackedTimeUserName' Lens+trackedTimeUserNameL :: Lens_' TrackedTime (Maybe Text)+trackedTimeUserNameL f TrackedTime{..} = (\trackedTimeUserName -> TrackedTime { trackedTimeUserName, ..} ) <$> f trackedTimeUserName+{-# INLINE trackedTimeUserNameL #-}++++-- * TransferRepoOption++-- | 'transferRepoOptionNewOwner' Lens+transferRepoOptionNewOwnerL :: Lens_' TransferRepoOption (Text)+transferRepoOptionNewOwnerL f TransferRepoOption{..} = (\transferRepoOptionNewOwner -> TransferRepoOption { transferRepoOptionNewOwner, ..} ) <$> f transferRepoOptionNewOwner+{-# INLINE transferRepoOptionNewOwnerL #-}++-- | 'transferRepoOptionTeamIds' Lens+transferRepoOptionTeamIdsL :: Lens_' TransferRepoOption (Maybe [Integer])+transferRepoOptionTeamIdsL f TransferRepoOption{..} = (\transferRepoOptionTeamIds -> TransferRepoOption { transferRepoOptionTeamIds, ..} ) <$> f transferRepoOptionTeamIds+{-# INLINE transferRepoOptionTeamIdsL #-}++++-- * UpdateFileOptions++-- | 'updateFileOptionsAuthor' Lens+updateFileOptionsAuthorL :: Lens_' UpdateFileOptions (Maybe Identity)+updateFileOptionsAuthorL f UpdateFileOptions{..} = (\updateFileOptionsAuthor -> UpdateFileOptions { updateFileOptionsAuthor, ..} ) <$> f updateFileOptionsAuthor+{-# INLINE updateFileOptionsAuthorL #-}++-- | 'updateFileOptionsBranch' Lens+updateFileOptionsBranchL :: Lens_' UpdateFileOptions (Maybe Text)+updateFileOptionsBranchL f UpdateFileOptions{..} = (\updateFileOptionsBranch -> UpdateFileOptions { updateFileOptionsBranch, ..} ) <$> f updateFileOptionsBranch+{-# INLINE updateFileOptionsBranchL #-}++-- | 'updateFileOptionsCommitter' Lens+updateFileOptionsCommitterL :: Lens_' UpdateFileOptions (Maybe Identity)+updateFileOptionsCommitterL f UpdateFileOptions{..} = (\updateFileOptionsCommitter -> UpdateFileOptions { updateFileOptionsCommitter, ..} ) <$> f updateFileOptionsCommitter+{-# INLINE updateFileOptionsCommitterL #-}++-- | 'updateFileOptionsContent' Lens+updateFileOptionsContentL :: Lens_' UpdateFileOptions (Text)+updateFileOptionsContentL f UpdateFileOptions{..} = (\updateFileOptionsContent -> UpdateFileOptions { updateFileOptionsContent, ..} ) <$> f updateFileOptionsContent+{-# INLINE updateFileOptionsContentL #-}++-- | 'updateFileOptionsDates' Lens+updateFileOptionsDatesL :: Lens_' UpdateFileOptions (Maybe CommitDateOptions)+updateFileOptionsDatesL f UpdateFileOptions{..} = (\updateFileOptionsDates -> UpdateFileOptions { updateFileOptionsDates, ..} ) <$> f updateFileOptionsDates+{-# INLINE updateFileOptionsDatesL #-}++-- | 'updateFileOptionsFromPath' Lens+updateFileOptionsFromPathL :: Lens_' UpdateFileOptions (Maybe Text)+updateFileOptionsFromPathL f UpdateFileOptions{..} = (\updateFileOptionsFromPath -> UpdateFileOptions { updateFileOptionsFromPath, ..} ) <$> f updateFileOptionsFromPath+{-# INLINE updateFileOptionsFromPathL #-}++-- | 'updateFileOptionsMessage' Lens+updateFileOptionsMessageL :: Lens_' UpdateFileOptions (Maybe Text)+updateFileOptionsMessageL f UpdateFileOptions{..} = (\updateFileOptionsMessage -> UpdateFileOptions { updateFileOptionsMessage, ..} ) <$> f updateFileOptionsMessage+{-# INLINE updateFileOptionsMessageL #-}++-- | 'updateFileOptionsNewBranch' Lens+updateFileOptionsNewBranchL :: Lens_' UpdateFileOptions (Maybe Text)+updateFileOptionsNewBranchL f UpdateFileOptions{..} = (\updateFileOptionsNewBranch -> UpdateFileOptions { updateFileOptionsNewBranch, ..} ) <$> f updateFileOptionsNewBranch+{-# INLINE updateFileOptionsNewBranchL #-}++-- | 'updateFileOptionsSha' Lens+updateFileOptionsShaL :: Lens_' UpdateFileOptions (Text)+updateFileOptionsShaL f UpdateFileOptions{..} = (\updateFileOptionsSha -> UpdateFileOptions { updateFileOptionsSha, ..} ) <$> f updateFileOptionsSha+{-# INLINE updateFileOptionsShaL #-}++-- | 'updateFileOptionsSignoff' Lens+updateFileOptionsSignoffL :: Lens_' UpdateFileOptions (Maybe Bool)+updateFileOptionsSignoffL f UpdateFileOptions{..} = (\updateFileOptionsSignoff -> UpdateFileOptions { updateFileOptionsSignoff, ..} ) <$> f updateFileOptionsSignoff+{-# INLINE updateFileOptionsSignoffL #-}++++-- * User++-- | 'userActive' Lens+userActiveL :: Lens_' User (Maybe Bool)+userActiveL f User{..} = (\userActive -> User { userActive, ..} ) <$> f userActive+{-# INLINE userActiveL #-}++-- | 'userAvatarUrl' Lens+userAvatarUrlL :: Lens_' User (Maybe Text)+userAvatarUrlL f User{..} = (\userAvatarUrl -> User { userAvatarUrl, ..} ) <$> f userAvatarUrl+{-# INLINE userAvatarUrlL #-}++-- | 'userCreated' Lens+userCreatedL :: Lens_' User (Maybe DateTime)+userCreatedL f User{..} = (\userCreated -> User { userCreated, ..} ) <$> f userCreated+{-# INLINE userCreatedL #-}++-- | 'userDescription' Lens+userDescriptionL :: Lens_' User (Maybe Text)+userDescriptionL f User{..} = (\userDescription -> User { userDescription, ..} ) <$> f userDescription+{-# INLINE userDescriptionL #-}++-- | 'userEmail' Lens+userEmailL :: Lens_' User (Maybe Text)+userEmailL f User{..} = (\userEmail -> User { userEmail, ..} ) <$> f userEmail+{-# INLINE userEmailL #-}++-- | 'userFollowersCount' Lens+userFollowersCountL :: Lens_' User (Maybe Integer)+userFollowersCountL f User{..} = (\userFollowersCount -> User { userFollowersCount, ..} ) <$> f userFollowersCount+{-# INLINE userFollowersCountL #-}++-- | 'userFollowingCount' Lens+userFollowingCountL :: Lens_' User (Maybe Integer)+userFollowingCountL f User{..} = (\userFollowingCount -> User { userFollowingCount, ..} ) <$> f userFollowingCount+{-# INLINE userFollowingCountL #-}++-- | 'userFullName' Lens+userFullNameL :: Lens_' User (Maybe Text)+userFullNameL f User{..} = (\userFullName -> User { userFullName, ..} ) <$> f userFullName+{-# INLINE userFullNameL #-}++-- | 'userId' Lens+userIdL :: Lens_' User (Maybe Integer)+userIdL f User{..} = (\userId -> User { userId, ..} ) <$> f userId+{-# INLINE userIdL #-}++-- | 'userIsAdmin' Lens+userIsAdminL :: Lens_' User (Maybe Bool)+userIsAdminL f User{..} = (\userIsAdmin -> User { userIsAdmin, ..} ) <$> f userIsAdmin+{-# INLINE userIsAdminL #-}++-- | 'userLanguage' Lens+userLanguageL :: Lens_' User (Maybe Text)+userLanguageL f User{..} = (\userLanguage -> User { userLanguage, ..} ) <$> f userLanguage+{-# INLINE userLanguageL #-}++-- | 'userLastLogin' Lens+userLastLoginL :: Lens_' User (Maybe DateTime)+userLastLoginL f User{..} = (\userLastLogin -> User { userLastLogin, ..} ) <$> f userLastLogin+{-# INLINE userLastLoginL #-}++-- | 'userLocation' Lens+userLocationL :: Lens_' User (Maybe Text)+userLocationL f User{..} = (\userLocation -> User { userLocation, ..} ) <$> f userLocation+{-# INLINE userLocationL #-}++-- | 'userLogin' Lens+userLoginL :: Lens_' User (Maybe Text)+userLoginL f User{..} = (\userLogin -> User { userLogin, ..} ) <$> f userLogin+{-# INLINE userLoginL #-}++-- | 'userLoginName' Lens+userLoginNameL :: Lens_' User (Maybe Text)+userLoginNameL f User{..} = (\userLoginName -> User { userLoginName, ..} ) <$> f userLoginName+{-# INLINE userLoginNameL #-}++-- | 'userProhibitLogin' Lens+userProhibitLoginL :: Lens_' User (Maybe Bool)+userProhibitLoginL f User{..} = (\userProhibitLogin -> User { userProhibitLogin, ..} ) <$> f userProhibitLogin+{-# INLINE userProhibitLoginL #-}++-- | 'userRestricted' Lens+userRestrictedL :: Lens_' User (Maybe Bool)+userRestrictedL f User{..} = (\userRestricted -> User { userRestricted, ..} ) <$> f userRestricted+{-# INLINE userRestrictedL #-}++-- | 'userStarredReposCount' Lens+userStarredReposCountL :: Lens_' User (Maybe Integer)+userStarredReposCountL f User{..} = (\userStarredReposCount -> User { userStarredReposCount, ..} ) <$> f userStarredReposCount+{-# INLINE userStarredReposCountL #-}++-- | 'userVisibility' Lens+userVisibilityL :: Lens_' User (Maybe Text)+userVisibilityL f User{..} = (\userVisibility -> User { userVisibility, ..} ) <$> f userVisibility+{-# INLINE userVisibilityL #-}++-- | 'userWebsite' Lens+userWebsiteL :: Lens_' User (Maybe Text)+userWebsiteL f User{..} = (\userWebsite -> User { userWebsite, ..} ) <$> f userWebsite+{-# INLINE userWebsiteL #-}++++-- * UserHeatmapData++-- | 'userHeatmapDataContributions' Lens+userHeatmapDataContributionsL :: Lens_' UserHeatmapData (Maybe Integer)+userHeatmapDataContributionsL f UserHeatmapData{..} = (\userHeatmapDataContributions -> UserHeatmapData { userHeatmapDataContributions, ..} ) <$> f userHeatmapDataContributions+{-# INLINE userHeatmapDataContributionsL #-}++-- | 'userHeatmapDataTimestamp' Lens+userHeatmapDataTimestampL :: Lens_' UserHeatmapData (Maybe Integer)+userHeatmapDataTimestampL f UserHeatmapData{..} = (\userHeatmapDataTimestamp -> UserHeatmapData { userHeatmapDataTimestamp, ..} ) <$> f userHeatmapDataTimestamp+{-# INLINE userHeatmapDataTimestampL #-}++++-- * UserSearch200Response++-- | 'userSearch200ResponseData' Lens+userSearch200ResponseDataL :: Lens_' UserSearch200Response (Maybe [User])+userSearch200ResponseDataL f UserSearch200Response{..} = (\userSearch200ResponseData -> UserSearch200Response { userSearch200ResponseData, ..} ) <$> f userSearch200ResponseData+{-# INLINE userSearch200ResponseDataL #-}++-- | 'userSearch200ResponseOk' Lens+userSearch200ResponseOkL :: Lens_' UserSearch200Response (Maybe Bool)+userSearch200ResponseOkL f UserSearch200Response{..} = (\userSearch200ResponseOk -> UserSearch200Response { userSearch200ResponseOk, ..} ) <$> f userSearch200ResponseOk+{-# INLINE userSearch200ResponseOkL #-}++++-- * UserSettings++-- | 'userSettingsDescription' Lens+userSettingsDescriptionL :: Lens_' UserSettings (Maybe Text)+userSettingsDescriptionL f UserSettings{..} = (\userSettingsDescription -> UserSettings { userSettingsDescription, ..} ) <$> f userSettingsDescription+{-# INLINE userSettingsDescriptionL #-}++-- | 'userSettingsDiffViewStyle' Lens+userSettingsDiffViewStyleL :: Lens_' UserSettings (Maybe Text)+userSettingsDiffViewStyleL f UserSettings{..} = (\userSettingsDiffViewStyle -> UserSettings { userSettingsDiffViewStyle, ..} ) <$> f userSettingsDiffViewStyle+{-# INLINE userSettingsDiffViewStyleL #-}++-- | 'userSettingsFullName' Lens+userSettingsFullNameL :: Lens_' UserSettings (Maybe Text)+userSettingsFullNameL f UserSettings{..} = (\userSettingsFullName -> UserSettings { userSettingsFullName, ..} ) <$> f userSettingsFullName+{-# INLINE userSettingsFullNameL #-}++-- | 'userSettingsHideActivity' Lens+userSettingsHideActivityL :: Lens_' UserSettings (Maybe Bool)+userSettingsHideActivityL f UserSettings{..} = (\userSettingsHideActivity -> UserSettings { userSettingsHideActivity, ..} ) <$> f userSettingsHideActivity+{-# INLINE userSettingsHideActivityL #-}++-- | 'userSettingsHideEmail' Lens+userSettingsHideEmailL :: Lens_' UserSettings (Maybe Bool)+userSettingsHideEmailL f UserSettings{..} = (\userSettingsHideEmail -> UserSettings { userSettingsHideEmail, ..} ) <$> f userSettingsHideEmail+{-# INLINE userSettingsHideEmailL #-}++-- | 'userSettingsLanguage' Lens+userSettingsLanguageL :: Lens_' UserSettings (Maybe Text)+userSettingsLanguageL f UserSettings{..} = (\userSettingsLanguage -> UserSettings { userSettingsLanguage, ..} ) <$> f userSettingsLanguage+{-# INLINE userSettingsLanguageL #-}++-- | 'userSettingsLocation' Lens+userSettingsLocationL :: Lens_' UserSettings (Maybe Text)+userSettingsLocationL f UserSettings{..} = (\userSettingsLocation -> UserSettings { userSettingsLocation, ..} ) <$> f userSettingsLocation+{-# INLINE userSettingsLocationL #-}++-- | 'userSettingsTheme' Lens+userSettingsThemeL :: Lens_' UserSettings (Maybe Text)+userSettingsThemeL f UserSettings{..} = (\userSettingsTheme -> UserSettings { userSettingsTheme, ..} ) <$> f userSettingsTheme+{-# INLINE userSettingsThemeL #-}++-- | 'userSettingsWebsite' Lens+userSettingsWebsiteL :: Lens_' UserSettings (Maybe Text)+userSettingsWebsiteL f UserSettings{..} = (\userSettingsWebsite -> UserSettings { userSettingsWebsite, ..} ) <$> f userSettingsWebsite+{-# INLINE userSettingsWebsiteL #-}++++-- * UserSettingsOptions++-- | 'userSettingsOptionsDescription' Lens+userSettingsOptionsDescriptionL :: Lens_' UserSettingsOptions (Maybe Text)+userSettingsOptionsDescriptionL f UserSettingsOptions{..} = (\userSettingsOptionsDescription -> UserSettingsOptions { userSettingsOptionsDescription, ..} ) <$> f userSettingsOptionsDescription+{-# INLINE userSettingsOptionsDescriptionL #-}++-- | 'userSettingsOptionsDiffViewStyle' Lens+userSettingsOptionsDiffViewStyleL :: Lens_' UserSettingsOptions (Maybe Text)+userSettingsOptionsDiffViewStyleL f UserSettingsOptions{..} = (\userSettingsOptionsDiffViewStyle -> UserSettingsOptions { userSettingsOptionsDiffViewStyle, ..} ) <$> f userSettingsOptionsDiffViewStyle+{-# INLINE userSettingsOptionsDiffViewStyleL #-}++-- | 'userSettingsOptionsFullName' Lens+userSettingsOptionsFullNameL :: Lens_' UserSettingsOptions (Maybe Text)+userSettingsOptionsFullNameL f UserSettingsOptions{..} = (\userSettingsOptionsFullName -> UserSettingsOptions { userSettingsOptionsFullName, ..} ) <$> f userSettingsOptionsFullName+{-# INLINE userSettingsOptionsFullNameL #-}++-- | 'userSettingsOptionsHideActivity' Lens+userSettingsOptionsHideActivityL :: Lens_' UserSettingsOptions (Maybe Bool)+userSettingsOptionsHideActivityL f UserSettingsOptions{..} = (\userSettingsOptionsHideActivity -> UserSettingsOptions { userSettingsOptionsHideActivity, ..} ) <$> f userSettingsOptionsHideActivity+{-# INLINE userSettingsOptionsHideActivityL #-}++-- | 'userSettingsOptionsHideEmail' Lens+userSettingsOptionsHideEmailL :: Lens_' UserSettingsOptions (Maybe Bool)+userSettingsOptionsHideEmailL f UserSettingsOptions{..} = (\userSettingsOptionsHideEmail -> UserSettingsOptions { userSettingsOptionsHideEmail, ..} ) <$> f userSettingsOptionsHideEmail+{-# INLINE userSettingsOptionsHideEmailL #-}++-- | 'userSettingsOptionsLanguage' Lens+userSettingsOptionsLanguageL :: Lens_' UserSettingsOptions (Maybe Text)+userSettingsOptionsLanguageL f UserSettingsOptions{..} = (\userSettingsOptionsLanguage -> UserSettingsOptions { userSettingsOptionsLanguage, ..} ) <$> f userSettingsOptionsLanguage+{-# INLINE userSettingsOptionsLanguageL #-}++-- | 'userSettingsOptionsLocation' Lens+userSettingsOptionsLocationL :: Lens_' UserSettingsOptions (Maybe Text)+userSettingsOptionsLocationL f UserSettingsOptions{..} = (\userSettingsOptionsLocation -> UserSettingsOptions { userSettingsOptionsLocation, ..} ) <$> f userSettingsOptionsLocation+{-# INLINE userSettingsOptionsLocationL #-}++-- | 'userSettingsOptionsTheme' Lens+userSettingsOptionsThemeL :: Lens_' UserSettingsOptions (Maybe Text)+userSettingsOptionsThemeL f UserSettingsOptions{..} = (\userSettingsOptionsTheme -> UserSettingsOptions { userSettingsOptionsTheme, ..} ) <$> f userSettingsOptionsTheme+{-# INLINE userSettingsOptionsThemeL #-}++-- | 'userSettingsOptionsWebsite' Lens+userSettingsOptionsWebsiteL :: Lens_' UserSettingsOptions (Maybe Text)+userSettingsOptionsWebsiteL f UserSettingsOptions{..} = (\userSettingsOptionsWebsite -> UserSettingsOptions { userSettingsOptionsWebsite, ..} ) <$> f userSettingsOptionsWebsite+{-# INLINE userSettingsOptionsWebsiteL #-}++++-- * WatchInfo++-- | 'watchInfoCreatedAt' Lens+watchInfoCreatedAtL :: Lens_' WatchInfo (Maybe DateTime)+watchInfoCreatedAtL f WatchInfo{..} = (\watchInfoCreatedAt -> WatchInfo { watchInfoCreatedAt, ..} ) <$> f watchInfoCreatedAt+{-# INLINE watchInfoCreatedAtL #-}++-- | 'watchInfoIgnored' Lens+watchInfoIgnoredL :: Lens_' WatchInfo (Maybe Bool)+watchInfoIgnoredL f WatchInfo{..} = (\watchInfoIgnored -> WatchInfo { watchInfoIgnored, ..} ) <$> f watchInfoIgnored+{-# INLINE watchInfoIgnoredL #-}++-- | 'watchInfoReason' Lens+watchInfoReasonL :: Lens_' WatchInfo (Maybe A.Value)+watchInfoReasonL f WatchInfo{..} = (\watchInfoReason -> WatchInfo { watchInfoReason, ..} ) <$> f watchInfoReason+{-# INLINE watchInfoReasonL #-}++-- | 'watchInfoRepositoryUrl' Lens+watchInfoRepositoryUrlL :: Lens_' WatchInfo (Maybe Text)+watchInfoRepositoryUrlL f WatchInfo{..} = (\watchInfoRepositoryUrl -> WatchInfo { watchInfoRepositoryUrl, ..} ) <$> f watchInfoRepositoryUrl+{-# INLINE watchInfoRepositoryUrlL #-}++-- | 'watchInfoSubscribed' Lens+watchInfoSubscribedL :: Lens_' WatchInfo (Maybe Bool)+watchInfoSubscribedL f WatchInfo{..} = (\watchInfoSubscribed -> WatchInfo { watchInfoSubscribed, ..} ) <$> f watchInfoSubscribed+{-# INLINE watchInfoSubscribedL #-}++-- | 'watchInfoUrl' Lens+watchInfoUrlL :: Lens_' WatchInfo (Maybe Text)+watchInfoUrlL f WatchInfo{..} = (\watchInfoUrl -> WatchInfo { watchInfoUrl, ..} ) <$> f watchInfoUrl+{-# INLINE watchInfoUrlL #-}++++-- * WikiCommit++-- | 'wikiCommitAuthor' Lens+wikiCommitAuthorL :: Lens_' WikiCommit (Maybe CommitUser)+wikiCommitAuthorL f WikiCommit{..} = (\wikiCommitAuthor -> WikiCommit { wikiCommitAuthor, ..} ) <$> f wikiCommitAuthor+{-# INLINE wikiCommitAuthorL #-}++-- | 'wikiCommitCommiter' Lens+wikiCommitCommiterL :: Lens_' WikiCommit (Maybe CommitUser)+wikiCommitCommiterL f WikiCommit{..} = (\wikiCommitCommiter -> WikiCommit { wikiCommitCommiter, ..} ) <$> f wikiCommitCommiter+{-# INLINE wikiCommitCommiterL #-}++-- | 'wikiCommitMessage' Lens+wikiCommitMessageL :: Lens_' WikiCommit (Maybe Text)+wikiCommitMessageL f WikiCommit{..} = (\wikiCommitMessage -> WikiCommit { wikiCommitMessage, ..} ) <$> f wikiCommitMessage+{-# INLINE wikiCommitMessageL #-}++-- | 'wikiCommitSha' Lens+wikiCommitShaL :: Lens_' WikiCommit (Maybe Text)+wikiCommitShaL f WikiCommit{..} = (\wikiCommitSha -> WikiCommit { wikiCommitSha, ..} ) <$> f wikiCommitSha+{-# INLINE wikiCommitShaL #-}++++-- * WikiCommitList++-- | 'wikiCommitListCommits' Lens+wikiCommitListCommitsL :: Lens_' WikiCommitList (Maybe [WikiCommit])+wikiCommitListCommitsL f WikiCommitList{..} = (\wikiCommitListCommits -> WikiCommitList { wikiCommitListCommits, ..} ) <$> f wikiCommitListCommits+{-# INLINE wikiCommitListCommitsL #-}++-- | 'wikiCommitListCount' Lens+wikiCommitListCountL :: Lens_' WikiCommitList (Maybe Integer)+wikiCommitListCountL f WikiCommitList{..} = (\wikiCommitListCount -> WikiCommitList { wikiCommitListCount, ..} ) <$> f wikiCommitListCount+{-# INLINE wikiCommitListCountL #-}++++-- * WikiPage++-- | 'wikiPageCommitCount' Lens+wikiPageCommitCountL :: Lens_' WikiPage (Maybe Integer)+wikiPageCommitCountL f WikiPage{..} = (\wikiPageCommitCount -> WikiPage { wikiPageCommitCount, ..} ) <$> f wikiPageCommitCount+{-# INLINE wikiPageCommitCountL #-}++-- | 'wikiPageContentBase64' Lens+wikiPageContentBase64L :: Lens_' WikiPage (Maybe Text)+wikiPageContentBase64L f WikiPage{..} = (\wikiPageContentBase64 -> WikiPage { wikiPageContentBase64, ..} ) <$> f wikiPageContentBase64+{-# INLINE wikiPageContentBase64L #-}++-- | 'wikiPageFooter' Lens+wikiPageFooterL :: Lens_' WikiPage (Maybe Text)+wikiPageFooterL f WikiPage{..} = (\wikiPageFooter -> WikiPage { wikiPageFooter, ..} ) <$> f wikiPageFooter+{-# INLINE wikiPageFooterL #-}++-- | 'wikiPageHtmlUrl' Lens+wikiPageHtmlUrlL :: Lens_' WikiPage (Maybe Text)+wikiPageHtmlUrlL f WikiPage{..} = (\wikiPageHtmlUrl -> WikiPage { wikiPageHtmlUrl, ..} ) <$> f wikiPageHtmlUrl+{-# INLINE wikiPageHtmlUrlL #-}++-- | 'wikiPageLastCommit' Lens+wikiPageLastCommitL :: Lens_' WikiPage (Maybe WikiCommit)+wikiPageLastCommitL f WikiPage{..} = (\wikiPageLastCommit -> WikiPage { wikiPageLastCommit, ..} ) <$> f wikiPageLastCommit+{-# INLINE wikiPageLastCommitL #-}++-- | 'wikiPageSidebar' Lens+wikiPageSidebarL :: Lens_' WikiPage (Maybe Text)+wikiPageSidebarL f WikiPage{..} = (\wikiPageSidebar -> WikiPage { wikiPageSidebar, ..} ) <$> f wikiPageSidebar+{-# INLINE wikiPageSidebarL #-}++-- | 'wikiPageSubUrl' Lens+wikiPageSubUrlL :: Lens_' WikiPage (Maybe Text)+wikiPageSubUrlL f WikiPage{..} = (\wikiPageSubUrl -> WikiPage { wikiPageSubUrl, ..} ) <$> f wikiPageSubUrl+{-# INLINE wikiPageSubUrlL #-}++-- | 'wikiPageTitle' Lens+wikiPageTitleL :: Lens_' WikiPage (Maybe Text)+wikiPageTitleL f WikiPage{..} = (\wikiPageTitle -> WikiPage { wikiPageTitle, ..} ) <$> f wikiPageTitle+{-# INLINE wikiPageTitleL #-}++++-- * WikiPageMetaData++-- | 'wikiPageMetaDataHtmlUrl' Lens+wikiPageMetaDataHtmlUrlL :: Lens_' WikiPageMetaData (Maybe Text)+wikiPageMetaDataHtmlUrlL f WikiPageMetaData{..} = (\wikiPageMetaDataHtmlUrl -> WikiPageMetaData { wikiPageMetaDataHtmlUrl, ..} ) <$> f wikiPageMetaDataHtmlUrl+{-# INLINE wikiPageMetaDataHtmlUrlL #-}++-- | 'wikiPageMetaDataLastCommit' Lens+wikiPageMetaDataLastCommitL :: Lens_' WikiPageMetaData (Maybe WikiCommit)+wikiPageMetaDataLastCommitL f WikiPageMetaData{..} = (\wikiPageMetaDataLastCommit -> WikiPageMetaData { wikiPageMetaDataLastCommit, ..} ) <$> f wikiPageMetaDataLastCommit+{-# INLINE wikiPageMetaDataLastCommitL #-}++-- | 'wikiPageMetaDataSubUrl' Lens+wikiPageMetaDataSubUrlL :: Lens_' WikiPageMetaData (Maybe Text)+wikiPageMetaDataSubUrlL f WikiPageMetaData{..} = (\wikiPageMetaDataSubUrl -> WikiPageMetaData { wikiPageMetaDataSubUrl, ..} ) <$> f wikiPageMetaDataSubUrl+{-# INLINE wikiPageMetaDataSubUrlL #-}++-- | 'wikiPageMetaDataTitle' Lens+wikiPageMetaDataTitleL :: Lens_' WikiPageMetaData (Maybe Text)+wikiPageMetaDataTitleL f WikiPageMetaData{..} = (\wikiPageMetaDataTitle -> WikiPageMetaData { wikiPageMetaDataTitle, ..} ) <$> f wikiPageMetaDataTitle+{-# INLINE wikiPageMetaDataTitleL #-}++
+ openapi.yaml view
@@ -0,0 +1,24233 @@+openapi: 3.0.1+info:+  description: This documentation describes the Gitea API.+  license:+    name: MIT+    url: http://opensource.org/licenses/MIT+  title: Gitea API.+  version: 1.19.4+servers:+- url: http://https://gitea.com/api/v1+- url: https://https://gitea.com/api/v1+security:+- BasicAuth: []+- Token: []+- AccessToken: []+- AuthorizationHeaderToken: []+- SudoParam: []+- SudoHeader: []+- TOTPHeader: []+paths:+  /activitypub/user-id/{user-id}:+    get:+      operationId: activitypubPerson+      parameters:+      - description: user ID of the user+        in: path+        name: user-id+        required: true+        schema:+          type: integer+      responses:+        "200":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/ActivityPub'+          description: ActivityPub+      summary: Returns the Person actor for a user+      tags:+      - activitypub+  /activitypub/user-id/{user-id}/inbox:+    post:+      operationId: activitypubPersonInbox+      parameters:+      - description: user ID of the user+        in: path+        name: user-id+        required: true+        schema:+          type: integer+      responses:+        "204":+          content: {}+          description: APIEmpty is an empty response+      summary: Send to the inbox+      tags:+      - activitypub+  /admin/cron:+    get:+      operationId: adminCronList+      parameters:+      - description: page number of results to return (1-based)+        in: query+        name: page+        schema:+          type: integer+      - description: page size of results+        in: query+        name: limit+        schema:+          type: integer+      responses:+        "200":+          content:+            application/json:+              schema:+                items:+                  $ref: '#/components/schemas/Cron'+                type: array+          description: CronList+        "403":+          content: {}+          description: APIForbiddenError is a forbidden error response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: List cron tasks+      tags:+      - admin+  /admin/cron/{task}:+    post:+      operationId: adminCronRun+      parameters:+      - description: task to run+        in: path+        name: task+        required: true+        schema:+          type: string+      responses:+        "204":+          content: {}+          description: APIEmpty is an empty response+        "404":+          content: {}+          description: APINotFound is a not found empty response+      summary: Run cron task+      tags:+      - admin+  /admin/hooks:+    get:+      operationId: adminListHooks+      parameters:+      - description: page number of results to return (1-based)+        in: query+        name: page+        schema:+          type: integer+      - description: page size of results+        in: query+        name: limit+        schema:+          type: integer+      responses:+        "200":+          content:+            application/json:+              schema:+                items:+                  $ref: '#/components/schemas/Hook'+                type: array+          description: HookList+      summary: List system's webhooks+      tags:+      - admin+    post:+      operationId: adminCreateHook+      requestBody:+        content:+          application/json:+            schema:+              $ref: '#/components/schemas/CreateHookOption'+        required: true+      responses:+        "201":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/Hook'+          description: Hook+      summary: Create a hook+      tags:+      - admin+      x-codegen-request-body-name: body+  /admin/hooks/{id}:+    delete:+      operationId: adminDeleteHook+      parameters:+      - description: id of the hook to delete+        in: path+        name: id+        required: true+        schema:+          format: int64+          type: integer+      responses:+        "204":+          content: {}+          description: APIEmpty is an empty response+      summary: Delete a hook+      tags:+      - admin+    get:+      operationId: adminGetHook+      parameters:+      - description: id of the hook to get+        in: path+        name: id+        required: true+        schema:+          format: int64+          type: integer+      responses:+        "200":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/Hook'+          description: Hook+      summary: Get a hook+      tags:+      - admin+    patch:+      operationId: adminEditHook+      parameters:+      - description: id of the hook to update+        in: path+        name: id+        required: true+        schema:+          format: int64+          type: integer+      requestBody:+        content:+          application/json:+            schema:+              $ref: '#/components/schemas/EditHookOption'+        required: false+      responses:+        "200":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/Hook'+          description: Hook+      summary: Update a hook+      tags:+      - admin+      x-codegen-request-body-name: body+  /admin/orgs:+    get:+      operationId: adminGetAllOrgs+      parameters:+      - description: page number of results to return (1-based)+        in: query+        name: page+        schema:+          type: integer+      - description: page size of results+        in: query+        name: limit+        schema:+          type: integer+      responses:+        "200":+          content:+            application/json:+              schema:+                items:+                  $ref: '#/components/schemas/Organization'+                type: array+          description: OrganizationList+        "403":+          content: {}+          description: APIForbiddenError is a forbidden error response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: List all organizations+      tags:+      - admin+  /admin/unadopted:+    get:+      operationId: adminUnadoptedList+      parameters:+      - description: page number of results to return (1-based)+        in: query+        name: page+        schema:+          type: integer+      - description: page size of results+        in: query+        name: limit+        schema:+          type: integer+      - description: pattern of repositories to search for+        in: query+        name: pattern+        schema:+          type: string+      responses:+        "200":+          content:+            application/json:+              schema:+                items:+                  type: string+                type: array+          description: StringSlice+        "403":+          content: {}+          description: APIForbiddenError is a forbidden error response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: List unadopted repositories+      tags:+      - admin+  /admin/unadopted/{owner}/{repo}:+    delete:+      operationId: adminDeleteUnadoptedRepository+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      responses:+        "204":+          content: {}+          description: APIEmpty is an empty response+        "403":+          content: {}+          description: APIForbiddenError is a forbidden error response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: Delete unadopted files+      tags:+      - admin+    post:+      operationId: adminAdoptRepository+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      responses:+        "204":+          content: {}+          description: APIEmpty is an empty response+        "403":+          content: {}+          description: APIForbiddenError is a forbidden error response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+        "404":+          content: {}+          description: APINotFound is a not found empty response+      summary: Adopt unadopted files as a repository+      tags:+      - admin+  /admin/users:+    get:+      operationId: adminGetAllUsers+      parameters:+      - description: page number of results to return (1-based)+        in: query+        name: page+        schema:+          type: integer+      - description: page size of results+        in: query+        name: limit+        schema:+          type: integer+      responses:+        "200":+          content:+            application/json:+              schema:+                items:+                  $ref: '#/components/schemas/User'+                type: array+          description: UserList+        "403":+          content: {}+          description: APIForbiddenError is a forbidden error response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: List all users+      tags:+      - admin+    post:+      operationId: adminCreateUser+      requestBody:+        content:+          application/json:+            schema:+              $ref: '#/components/schemas/CreateUserOption'+        required: false+      responses:+        "201":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/User'+          description: User+        "400":+          content: {}+          description: APIError is error format response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+        "403":+          content: {}+          description: APIForbiddenError is a forbidden error response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+        "422":+          content: {}+          description: APIValidationError is error format response related to input+            validation+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: Create a user+      tags:+      - admin+      x-codegen-request-body-name: body+  /admin/users/{username}:+    delete:+      operationId: adminDeleteUser+      parameters:+      - description: username of user to delete+        in: path+        name: username+        required: true+        schema:+          type: string+      - description: purge the user from the system completely+        in: query+        name: purge+        schema:+          type: boolean+      responses:+        "204":+          content: {}+          description: APIEmpty is an empty response+        "403":+          content: {}+          description: APIForbiddenError is a forbidden error response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+        "422":+          content: {}+          description: APIValidationError is error format response related to input+            validation+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: Delete a user+      tags:+      - admin+    patch:+      operationId: adminEditUser+      parameters:+      - description: username of user to edit+        in: path+        name: username+        required: true+        schema:+          type: string+      requestBody:+        content:+          application/json:+            schema:+              $ref: '#/components/schemas/EditUserOption'+        required: false+      responses:+        "200":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/User'+          description: User+        "403":+          content: {}+          description: APIForbiddenError is a forbidden error response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+        "422":+          content: {}+          description: APIValidationError is error format response related to input+            validation+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: Edit an existing user+      tags:+      - admin+      x-codegen-request-body-name: body+  /admin/users/{username}/keys:+    post:+      operationId: adminCreatePublicKey+      parameters:+      - description: username of the user+        in: path+        name: username+        required: true+        schema:+          type: string+      requestBody:+        content:+          application/json:+            schema:+              $ref: '#/components/schemas/CreateKeyOption'+        required: false+      responses:+        "201":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/PublicKey'+          description: PublicKey+        "403":+          content: {}+          description: APIForbiddenError is a forbidden error response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+        "422":+          content: {}+          description: APIValidationError is error format response related to input+            validation+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: Add a public key on behalf of a user+      tags:+      - admin+      x-codegen-request-body-name: key+  /admin/users/{username}/keys/{id}:+    delete:+      operationId: adminDeleteUserPublicKey+      parameters:+      - description: username of user+        in: path+        name: username+        required: true+        schema:+          type: string+      - description: id of the key to delete+        in: path+        name: id+        required: true+        schema:+          format: int64+          type: integer+      responses:+        "204":+          content: {}+          description: APIEmpty is an empty response+        "403":+          content: {}+          description: APIForbiddenError is a forbidden error response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+        "404":+          content: {}+          description: APINotFound is a not found empty response+      summary: Delete a user's public key+      tags:+      - admin+  /admin/users/{username}/orgs:+    post:+      operationId: adminCreateOrg+      parameters:+      - description: username of the user that will own the created organization+        in: path+        name: username+        required: true+        schema:+          type: string+      requestBody:+        content:+          application/json:+            schema:+              $ref: '#/components/schemas/CreateOrgOption'+        required: true+      responses:+        "201":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/Organization'+          description: Organization+        "403":+          content: {}+          description: APIForbiddenError is a forbidden error response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+        "422":+          content: {}+          description: APIValidationError is error format response related to input+            validation+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: Create an organization+      tags:+      - admin+      x-codegen-request-body-name: organization+  /admin/users/{username}/repos:+    post:+      operationId: adminCreateRepo+      parameters:+      - description: username of the user. This user will own the created repository+        in: path+        name: username+        required: true+        schema:+          type: string+      requestBody:+        content:+          application/json:+            schema:+              $ref: '#/components/schemas/CreateRepoOption'+        required: true+      responses:+        "201":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/Repository'+          description: Repository+        "400":+          content: {}+          description: APIError is error format response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+        "403":+          content: {}+          description: APIForbiddenError is a forbidden error response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+        "404":+          content: {}+          description: APINotFound is a not found empty response+        "409":+          content: {}+          description: APIError is error format response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+        "422":+          content: {}+          description: APIValidationError is error format response related to input+            validation+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: Create a repository on behalf of a user+      tags:+      - admin+      x-codegen-request-body-name: repository+  /markdown:+    post:+      operationId: renderMarkdown+      requestBody:+        content:+          application/json:+            schema:+              $ref: '#/components/schemas/MarkdownOption'+        required: false+      responses:+        "200":+          content:+            text/html:+              schema:+                type: string+          description: MarkdownRender is a rendered markdown document+        "422":+          content: {}+          description: APIValidationError is error format response related to input+            validation+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: Render a markdown document as HTML+      tags:+      - miscellaneous+      x-codegen-request-body-name: body+  /markdown/raw:+    post:+      operationId: renderMarkdownRaw+      requestBody:+        content:+          text/plain:+            schema:+              type: string+        description: Request body to render+        required: true+      responses:+        "200":+          content:+            text/html:+              schema:+                type: string+          description: MarkdownRender is a rendered markdown document+        "422":+          content: {}+          description: APIValidationError is error format response related to input+            validation+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: Render raw markdown as HTML+      tags:+      - miscellaneous+      x-codegen-request-body-name: body+  /nodeinfo:+    get:+      operationId: getNodeInfo+      responses:+        "200":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/NodeInfo'+          description: NodeInfo+      summary: Returns the nodeinfo of the Gitea application+      tags:+      - miscellaneous+  /notifications:+    get:+      operationId: notifyGetList+      parameters:+      - description: "If true, show notifications marked as read. Default value is\+          \ false"+        in: query+        name: all+        schema:+          type: boolean+      - description: "Show notifications with the provided status types. Options are:\+          \ unread, read and/or pinned. Defaults to unread & pinned."+        explode: true+        in: query+        name: status-types+        schema:+          items:+            type: string+          type: array+        style: form+      - description: filter notifications by subject type+        explode: true+        in: query+        name: subject-type+        schema:+          items:+            enum:+            - issue+            - pull+            - commit+            - repository+            type: string+          type: array+        style: form+      - description: Only show notifications updated after the given time. This is+          a timestamp in RFC 3339 format+        in: query+        name: since+        schema:+          format: date-time+          type: string+      - description: Only show notifications updated before the given time. This is+          a timestamp in RFC 3339 format+        in: query+        name: before+        schema:+          format: date-time+          type: string+      - description: page number of results to return (1-based)+        in: query+        name: page+        schema:+          type: integer+      - description: page size of results+        in: query+        name: limit+        schema:+          type: integer+      responses:+        "200":+          content:+            application/json:+              schema:+                items:+                  $ref: '#/components/schemas/NotificationThread'+                type: array+          description: NotificationThreadList+      summary: List users's notification threads+      tags:+      - notification+    put:+      operationId: notifyReadList+      parameters:+      - description: Describes the last point that notifications were checked. Anything+          updated since this time will not be updated.+        in: query+        name: last_read_at+        schema:+          format: date-time+          type: string+      - description: "If true, mark all notifications on this repo. Default value\+          \ is false"+        in: query+        name: all+        schema:+          type: string+      - description: "Mark notifications with the provided status types. Options are:\+          \ unread, read and/or pinned. Defaults to unread."+        explode: true+        in: query+        name: status-types+        schema:+          items:+            type: string+          type: array+        style: form+      - description: "Status to mark notifications as, Defaults to read."+        in: query+        name: to-status+        schema:+          type: string+      responses:+        "205":+          content:+            application/json:+              schema:+                items:+                  $ref: '#/components/schemas/NotificationThread'+                type: array+          description: NotificationThreadList+      summary: "Mark notification threads as read, pinned or unread"+      tags:+      - notification+  /notifications/new:+    get:+      operationId: notifyNewAvailable+      responses:+        "200":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/NotificationCount'+            text/html:+              schema:+                $ref: '#/components/schemas/NotificationCount'+          description: Number of unread notifications+      summary: Check if unread notifications exist+      tags:+      - notification+  /notifications/threads/{id}:+    get:+      operationId: notifyGetThread+      parameters:+      - description: id of notification thread+        in: path+        name: id+        required: true+        schema:+          type: string+      responses:+        "200":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/NotificationThread'+          description: NotificationThread+        "403":+          content: {}+          description: APIForbiddenError is a forbidden error response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+        "404":+          content: {}+          description: APINotFound is a not found empty response+      summary: Get notification thread by ID+      tags:+      - notification+    patch:+      operationId: notifyReadThread+      parameters:+      - description: id of notification thread+        in: path+        name: id+        required: true+        schema:+          type: string+      - description: Status to mark notifications as+        in: query+        name: to-status+        schema:+          default: read+          type: string+      responses:+        "205":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/NotificationThread'+          description: NotificationThread+        "403":+          content: {}+          description: APIForbiddenError is a forbidden error response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+        "404":+          content: {}+          description: APINotFound is a not found empty response+      summary: Mark notification thread as read by ID+      tags:+      - notification+  /org/{org}/repos:+    post:+      deprecated: true+      operationId: createOrgRepoDeprecated+      parameters:+      - description: name of organization+        in: path+        name: org+        required: true+        schema:+          type: string+      requestBody:+        content:+          application/json:+            schema:+              $ref: '#/components/schemas/CreateRepoOption'+        required: false+      responses:+        "201":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/Repository'+          description: Repository+        "403":+          content: {}+          description: APIForbiddenError is a forbidden error response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+        "422":+          content: {}+          description: APIValidationError is error format response related to input+            validation+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: Create a repository in an organization+      tags:+      - organization+      x-codegen-request-body-name: body+  /orgs:+    get:+      operationId: orgGetAll+      parameters:+      - description: page number of results to return (1-based)+        in: query+        name: page+        schema:+          type: integer+      - description: page size of results+        in: query+        name: limit+        schema:+          type: integer+      responses:+        "200":+          content:+            application/json:+              schema:+                items:+                  $ref: '#/components/schemas/Organization'+                type: array+          description: OrganizationList+      summary: Get list of organizations+      tags:+      - organization+    post:+      operationId: orgCreate+      requestBody:+        content:+          application/json:+            schema:+              $ref: '#/components/schemas/CreateOrgOption'+        required: true+      responses:+        "201":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/Organization'+          description: Organization+        "403":+          content: {}+          description: APIForbiddenError is a forbidden error response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+        "422":+          content: {}+          description: APIValidationError is error format response related to input+            validation+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: Create an organization+      tags:+      - organization+      x-codegen-request-body-name: organization+  /orgs/{org}:+    delete:+      operationId: orgDelete+      parameters:+      - description: organization that is to be deleted+        in: path+        name: org+        required: true+        schema:+          type: string+      responses:+        "204":+          content: {}+          description: APIEmpty is an empty response+      summary: Delete an organization+      tags:+      - organization+    get:+      operationId: orgGet+      parameters:+      - description: name of the organization to get+        in: path+        name: org+        required: true+        schema:+          type: string+      responses:+        "200":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/Organization'+          description: Organization+      summary: Get an organization+      tags:+      - organization+    patch:+      operationId: orgEdit+      parameters:+      - description: name of the organization to edit+        in: path+        name: org+        required: true+        schema:+          type: string+      requestBody:+        content:+          application/json:+            schema:+              $ref: '#/components/schemas/EditOrgOption'+        required: true+      responses:+        "200":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/Organization'+          description: Organization+      summary: Edit an organization+      tags:+      - organization+      x-codegen-request-body-name: body+  /orgs/{org}/hooks:+    get:+      operationId: orgListHooks+      parameters:+      - description: name of the organization+        in: path+        name: org+        required: true+        schema:+          type: string+      - description: page number of results to return (1-based)+        in: query+        name: page+        schema:+          type: integer+      - description: page size of results+        in: query+        name: limit+        schema:+          type: integer+      responses:+        "200":+          content:+            application/json:+              schema:+                items:+                  $ref: '#/components/schemas/Hook'+                type: array+          description: HookList+      summary: List an organization's webhooks+      tags:+      - organization+    post:+      operationId: orgCreateHook+      parameters:+      - description: name of the organization+        in: path+        name: org+        required: true+        schema:+          type: string+      requestBody:+        content:+          application/json:+            schema:+              $ref: '#/components/schemas/CreateHookOption'+        required: true+      responses:+        "201":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/Hook'+          description: Hook+      summary: Create a hook+      tags:+      - organization+      x-codegen-request-body-name: body+  /orgs/{org}/hooks/{id}:+    delete:+      operationId: orgDeleteHook+      parameters:+      - description: name of the organization+        in: path+        name: org+        required: true+        schema:+          type: string+      - description: id of the hook to delete+        in: path+        name: id+        required: true+        schema:+          format: int64+          type: integer+      responses:+        "204":+          content: {}+          description: APIEmpty is an empty response+      summary: Delete a hook+      tags:+      - organization+    get:+      operationId: orgGetHook+      parameters:+      - description: name of the organization+        in: path+        name: org+        required: true+        schema:+          type: string+      - description: id of the hook to get+        in: path+        name: id+        required: true+        schema:+          format: int64+          type: integer+      responses:+        "200":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/Hook'+          description: Hook+      summary: Get a hook+      tags:+      - organization+    patch:+      operationId: orgEditHook+      parameters:+      - description: name of the organization+        in: path+        name: org+        required: true+        schema:+          type: string+      - description: id of the hook to update+        in: path+        name: id+        required: true+        schema:+          format: int64+          type: integer+      requestBody:+        content:+          application/json:+            schema:+              $ref: '#/components/schemas/EditHookOption'+        required: false+      responses:+        "200":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/Hook'+          description: Hook+      summary: Update a hook+      tags:+      - organization+      x-codegen-request-body-name: body+  /orgs/{org}/labels:+    get:+      operationId: orgListLabels+      parameters:+      - description: name of the organization+        in: path+        name: org+        required: true+        schema:+          type: string+      - description: page number of results to return (1-based)+        in: query+        name: page+        schema:+          type: integer+      - description: page size of results+        in: query+        name: limit+        schema:+          type: integer+      responses:+        "200":+          content:+            application/json:+              schema:+                items:+                  $ref: '#/components/schemas/Label'+                type: array+          description: LabelList+      summary: List an organization's labels+      tags:+      - organization+    post:+      operationId: orgCreateLabel+      parameters:+      - description: name of the organization+        in: path+        name: org+        required: true+        schema:+          type: string+      requestBody:+        content:+          application/json:+            schema:+              $ref: '#/components/schemas/CreateLabelOption'+        required: false+      responses:+        "201":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/Label'+          description: Label+        "422":+          content: {}+          description: APIValidationError is error format response related to input+            validation+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: Create a label for an organization+      tags:+      - organization+      x-codegen-request-body-name: body+  /orgs/{org}/labels/{id}:+    delete:+      operationId: orgDeleteLabel+      parameters:+      - description: name of the organization+        in: path+        name: org+        required: true+        schema:+          type: string+      - description: id of the label to delete+        in: path+        name: id+        required: true+        schema:+          format: int64+          type: integer+      responses:+        "204":+          content: {}+          description: APIEmpty is an empty response+      summary: Delete a label+      tags:+      - organization+    get:+      operationId: orgGetLabel+      parameters:+      - description: name of the organization+        in: path+        name: org+        required: true+        schema:+          type: string+      - description: id of the label to get+        in: path+        name: id+        required: true+        schema:+          format: int64+          type: integer+      responses:+        "200":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/Label'+          description: Label+      summary: Get a single label+      tags:+      - organization+    patch:+      operationId: orgEditLabel+      parameters:+      - description: name of the organization+        in: path+        name: org+        required: true+        schema:+          type: string+      - description: id of the label to edit+        in: path+        name: id+        required: true+        schema:+          format: int64+          type: integer+      requestBody:+        content:+          application/json:+            schema:+              $ref: '#/components/schemas/EditLabelOption'+        required: false+      responses:+        "200":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/Label'+          description: Label+        "422":+          content: {}+          description: APIValidationError is error format response related to input+            validation+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: Update a label+      tags:+      - organization+      x-codegen-request-body-name: body+  /orgs/{org}/members:+    get:+      operationId: orgListMembers+      parameters:+      - description: name of the organization+        in: path+        name: org+        required: true+        schema:+          type: string+      - description: page number of results to return (1-based)+        in: query+        name: page+        schema:+          type: integer+      - description: page size of results+        in: query+        name: limit+        schema:+          type: integer+      responses:+        "200":+          content:+            application/json:+              schema:+                items:+                  $ref: '#/components/schemas/User'+                type: array+          description: UserList+      summary: List an organization's members+      tags:+      - organization+  /orgs/{org}/members/{username}:+    delete:+      operationId: orgDeleteMember+      parameters:+      - description: name of the organization+        in: path+        name: org+        required: true+        schema:+          type: string+      - description: username of the user+        in: path+        name: username+        required: true+        schema:+          type: string+      responses:+        "204":+          content: {}+          description: member removed+      summary: Remove a member from an organization+      tags:+      - organization+    get:+      operationId: orgIsMember+      parameters:+      - description: name of the organization+        in: path+        name: org+        required: true+        schema:+          type: string+      - description: username of the user+        in: path+        name: username+        required: true+        schema:+          type: string+      responses:+        "204":+          content: {}+          description: user is a member+        "303":+          content: {}+          description: "redirection to /orgs/{org}/public_members/{username}"+        "404":+          content: {}+          description: user is not a member+      summary: Check if a user is a member of an organization+      tags:+      - organization+  /orgs/{org}/public_members:+    get:+      operationId: orgListPublicMembers+      parameters:+      - description: name of the organization+        in: path+        name: org+        required: true+        schema:+          type: string+      - description: page number of results to return (1-based)+        in: query+        name: page+        schema:+          type: integer+      - description: page size of results+        in: query+        name: limit+        schema:+          type: integer+      responses:+        "200":+          content:+            application/json:+              schema:+                items:+                  $ref: '#/components/schemas/User'+                type: array+          description: UserList+      summary: List an organization's public members+      tags:+      - organization+  /orgs/{org}/public_members/{username}:+    delete:+      operationId: orgConcealMember+      parameters:+      - description: name of the organization+        in: path+        name: org+        required: true+        schema:+          type: string+      - description: username of the user+        in: path+        name: username+        required: true+        schema:+          type: string+      responses:+        "204":+          content: {}+          description: APIEmpty is an empty response+        "403":+          content: {}+          description: APIForbiddenError is a forbidden error response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: Conceal a user's membership+      tags:+      - organization+    get:+      operationId: orgIsPublicMember+      parameters:+      - description: name of the organization+        in: path+        name: org+        required: true+        schema:+          type: string+      - description: username of the user+        in: path+        name: username+        required: true+        schema:+          type: string+      responses:+        "204":+          content: {}+          description: user is a public member+        "404":+          content: {}+          description: user is not a public member+      summary: Check if a user is a public member of an organization+      tags:+      - organization+    put:+      operationId: orgPublicizeMember+      parameters:+      - description: name of the organization+        in: path+        name: org+        required: true+        schema:+          type: string+      - description: username of the user+        in: path+        name: username+        required: true+        schema:+          type: string+      responses:+        "204":+          content: {}+          description: membership publicized+        "403":+          content: {}+          description: APIForbiddenError is a forbidden error response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: Publicize a user's membership+      tags:+      - organization+  /orgs/{org}/repos:+    get:+      operationId: orgListRepos+      parameters:+      - description: name of the organization+        in: path+        name: org+        required: true+        schema:+          type: string+      - description: page number of results to return (1-based)+        in: query+        name: page+        schema:+          type: integer+      - description: page size of results+        in: query+        name: limit+        schema:+          type: integer+      responses:+        "200":+          content:+            application/json:+              schema:+                items:+                  $ref: '#/components/schemas/Repository'+                type: array+          description: RepositoryList+      summary: List an organization's repos+      tags:+      - organization+    post:+      operationId: createOrgRepo+      parameters:+      - description: name of organization+        in: path+        name: org+        required: true+        schema:+          type: string+      requestBody:+        content:+          application/json:+            schema:+              $ref: '#/components/schemas/CreateRepoOption'+        required: false+      responses:+        "201":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/Repository'+          description: Repository+        "400":+          content: {}+          description: APIError is error format response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+        "403":+          content: {}+          description: APIForbiddenError is a forbidden error response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+        "404":+          content: {}+          description: APINotFound is a not found empty response+      summary: Create a repository in an organization+      tags:+      - organization+      x-codegen-request-body-name: body+  /orgs/{org}/teams:+    get:+      operationId: orgListTeams+      parameters:+      - description: name of the organization+        in: path+        name: org+        required: true+        schema:+          type: string+      - description: page number of results to return (1-based)+        in: query+        name: page+        schema:+          type: integer+      - description: page size of results+        in: query+        name: limit+        schema:+          type: integer+      responses:+        "200":+          content:+            application/json:+              schema:+                items:+                  $ref: '#/components/schemas/Team'+                type: array+          description: TeamList+      summary: List an organization's teams+      tags:+      - organization+    post:+      operationId: orgCreateTeam+      parameters:+      - description: name of the organization+        in: path+        name: org+        required: true+        schema:+          type: string+      requestBody:+        content:+          application/json:+            schema:+              $ref: '#/components/schemas/CreateTeamOption'+        required: false+      responses:+        "201":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/Team'+          description: Team+        "422":+          content: {}+          description: APIValidationError is error format response related to input+            validation+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: Create a team+      tags:+      - organization+      x-codegen-request-body-name: body+  /orgs/{org}/teams/search:+    get:+      operationId: teamSearch+      parameters:+      - description: name of the organization+        in: path+        name: org+        required: true+        schema:+          type: string+      - description: keywords to search+        in: query+        name: q+        schema:+          type: string+      - description: include search within team description (defaults to true)+        in: query+        name: include_desc+        schema:+          type: boolean+      - description: page number of results to return (1-based)+        in: query+        name: page+        schema:+          type: integer+      - description: page size of results+        in: query+        name: limit+        schema:+          type: integer+      responses:+        "200":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/teamSearch_200_response'+          description: SearchResults of a successful search+      summary: Search for teams within an organization+      tags:+      - organization+  /packages/{owner}:+    get:+      operationId: listPackages+      parameters:+      - description: owner of the packages+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: page number of results to return (1-based)+        in: query+        name: page+        schema:+          type: integer+      - description: page size of results+        in: query+        name: limit+        schema:+          type: integer+      - description: package type filter+        in: query+        name: type+        schema:+          enum:+          - cargo+          - chef+          - composer+          - conan+          - conda+          - container+          - generic+          - helm+          - maven+          - npm+          - nuget+          - pub+          - pypi+          - rubygems+          - vagrant+          type: string+      - description: name filter+        in: query+        name: q+        schema:+          type: string+      responses:+        "200":+          content:+            application/json:+              schema:+                items:+                  $ref: '#/components/schemas/Package'+                type: array+          description: PackageList+      summary: Gets all packages of an owner+      tags:+      - package+  /packages/{owner}/{type}/{name}/{version}:+    delete:+      operationId: deletePackage+      parameters:+      - description: owner of the package+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: type of the package+        in: path+        name: type+        required: true+        schema:+          type: string+      - description: name of the package+        in: path+        name: name+        required: true+        schema:+          type: string+      - description: version of the package+        in: path+        name: version+        required: true+        schema:+          type: string+      responses:+        "204":+          content: {}+          description: APIEmpty is an empty response+        "404":+          content: {}+          description: APINotFound is a not found empty response+      summary: Delete a package+      tags:+      - package+    get:+      operationId: getPackage+      parameters:+      - description: owner of the package+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: type of the package+        in: path+        name: type+        required: true+        schema:+          type: string+      - description: name of the package+        in: path+        name: name+        required: true+        schema:+          type: string+      - description: version of the package+        in: path+        name: version+        required: true+        schema:+          type: string+      responses:+        "200":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/Package'+          description: Package+        "404":+          content: {}+          description: APINotFound is a not found empty response+      summary: Gets a package+      tags:+      - package+  /packages/{owner}/{type}/{name}/{version}/files:+    get:+      operationId: listPackageFiles+      parameters:+      - description: owner of the package+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: type of the package+        in: path+        name: type+        required: true+        schema:+          type: string+      - description: name of the package+        in: path+        name: name+        required: true+        schema:+          type: string+      - description: version of the package+        in: path+        name: version+        required: true+        schema:+          type: string+      responses:+        "200":+          content:+            application/json:+              schema:+                items:+                  $ref: '#/components/schemas/PackageFile'+                type: array+          description: PackageFileList+        "404":+          content: {}+          description: APINotFound is a not found empty response+      summary: Gets all files of a package+      tags:+      - package+  /repos/issues/search:+    get:+      operationId: issueSearchIssues+      parameters:+      - description: whether issue is open or closed+        in: query+        name: state+        schema:+          type: string+      - description: comma separated list of labels. Fetch only issues that have any+          of this labels. Non existent labels are discarded+        in: query+        name: labels+        schema:+          type: string+      - description: comma separated list of milestone names. Fetch only issues that+          have any of this milestones. Non existent are discarded+        in: query+        name: milestones+        schema:+          type: string+      - description: search string+        in: query+        name: q+        schema:+          type: string+      - description: repository to prioritize in the results+        in: query+        name: priority_repo_id+        schema:+          format: int64+          type: integer+      - description: filter by type (issues / pulls) if set+        in: query+        name: type+        schema:+          type: string+      - description: Only show notifications updated after the given time. This is+          a timestamp in RFC 3339 format+        in: query+        name: since+        schema:+          format: date-time+          type: string+      - description: Only show notifications updated before the given time. This is+          a timestamp in RFC 3339 format+        in: query+        name: before+        schema:+          format: date-time+          type: string+      - description: "filter (issues / pulls) assigned to you, default is false"+        in: query+        name: assigned+        schema:+          type: boolean+      - description: "filter (issues / pulls) created by you, default is false"+        in: query+        name: created+        schema:+          type: boolean+      - description: "filter (issues / pulls) mentioning you, default is false"+        in: query+        name: mentioned+        schema:+          type: boolean+      - description: "filter pulls requesting your review, default is false"+        in: query+        name: review_requested+        schema:+          type: boolean+      - description: filter by owner+        in: query+        name: owner+        schema:+          type: string+      - description: filter by team (requires organization owner parameter to be provided)+        in: query+        name: team+        schema:+          type: string+      - description: page number of results to return (1-based)+        in: query+        name: page+        schema:+          type: integer+      - description: page size of results+        in: query+        name: limit+        schema:+          type: integer+      responses:+        "200":+          content:+            application/json:+              schema:+                items:+                  $ref: '#/components/schemas/Issue'+                type: array+          description: IssueList+      summary: Search for issues across the repositories that the user has access+        to+      tags:+      - issue+  /repos/migrate:+    post:+      operationId: repoMigrate+      requestBody:+        content:+          application/json:+            schema:+              $ref: '#/components/schemas/MigrateRepoOptions'+        required: false+      responses:+        "201":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/Repository'+          description: Repository+        "403":+          content: {}+          description: APIForbiddenError is a forbidden error response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+        "409":+          content: {}+          description: The repository with the same name already exists.+        "422":+          content: {}+          description: APIValidationError is error format response related to input+            validation+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: Migrate a remote git repository+      tags:+      - repository+      x-codegen-request-body-name: body+  /repos/search:+    get:+      operationId: repoSearch+      parameters:+      - description: keyword+        in: query+        name: q+        schema:+          type: string+      - description: Limit search to repositories with keyword as topic+        in: query+        name: topic+        schema:+          type: boolean+      - description: include search of keyword within repository description+        in: query+        name: includeDesc+        schema:+          type: boolean+      - description: search only for repos that the user with the given id owns or+          contributes to+        in: query+        name: uid+        schema:+          format: int64+          type: integer+      - description: repo owner to prioritize in the results+        in: query+        name: priority_owner_id+        schema:+          format: int64+          type: integer+      - description: search only for repos that belong to the given team id+        in: query+        name: team_id+        schema:+          format: int64+          type: integer+      - description: search only for repos that the user with the given id has starred+        in: query+        name: starredBy+        schema:+          format: int64+          type: integer+      - description: include private repositories this user has access to (defaults+          to true)+        in: query+        name: private+        schema:+          type: boolean+      - description: "show only pubic, private or all repositories (defaults to all)"+        in: query+        name: is_private+        schema:+          type: boolean+      - description: include template repositories this user has access to (defaults+          to true)+        in: query+        name: template+        schema:+          type: boolean+      - description: "show only archived, non-archived or all repositories (defaults\+          \ to all)"+        in: query+        name: archived+        schema:+          type: boolean+      - description: "type of repository to search for. Supported values are \"fork\"\+          , \"source\", \"mirror\" and \"collaborative\""+        in: query+        name: mode+        schema:+          type: string+      - description: "if `uid` is given, search only for repos that the user owns"+        in: query+        name: exclusive+        schema:+          type: boolean+      - description: "sort repos by attribute. Supported values are \"alpha\", \"\+          created\", \"updated\", \"size\", and \"id\". Default is \"alpha\""+        in: query+        name: sort+        schema:+          type: string+      - description: "sort order, either \"asc\" (ascending) or \"desc\" (descending).\+          \ Default is \"asc\", ignored if \"sort\" is not specified."+        in: query+        name: order+        schema:+          type: string+      - description: page number of results to return (1-based)+        in: query+        name: page+        schema:+          type: integer+      - description: page size of results+        in: query+        name: limit+        schema:+          type: integer+      responses:+        "200":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/SearchResults'+          description: SearchResults+        "422":+          content: {}+          description: APIValidationError is error format response related to input+            validation+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: Search for repositories+      tags:+      - repository+  /repos/{owner}/{repo}:+    delete:+      operationId: repoDelete+      parameters:+      - description: owner of the repo to delete+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo to delete+        in: path+        name: repo+        required: true+        schema:+          type: string+      responses:+        "204":+          content: {}+          description: APIEmpty is an empty response+        "403":+          content: {}+          description: APIForbiddenError is a forbidden error response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: Delete a repository+      tags:+      - repository+    get:+      operationId: repoGet+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      responses:+        "200":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/Repository'+          description: Repository+      summary: Get a repository+      tags:+      - repository+    patch:+      operationId: repoEdit+      parameters:+      - description: owner of the repo to edit+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo to edit+        in: path+        name: repo+        required: true+        schema:+          type: string+      requestBody:+        content:+          application/json:+            schema:+              $ref: '#/components/schemas/EditRepoOption'+          text/plain:+            schema:+              $ref: '#/components/schemas/EditRepoOption'+        description: Properties of a repo that you can edit+        required: false+      responses:+        "200":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/Repository'+          description: Repository+        "403":+          content: {}+          description: APIForbiddenError is a forbidden error response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+        "422":+          content: {}+          description: APIValidationError is error format response related to input+            validation+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: Edit a repository's properties. Only fields that are set will be changed.+      tags:+      - repository+      x-codegen-request-body-name: body+  /repos/{owner}/{repo}/archive/{archive}:+    get:+      operationId: repoGetArchive+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: the git reference for download with attached archive format (e.g.+          master.zip)+        in: path+        name: archive+        required: true+        schema:+          type: string+      responses:+        "200":+          content: {}+          description: success+        "404":+          content: {}+          description: APINotFound is a not found empty response+      summary: Get an archive of a repository+      tags:+      - repository+  /repos/{owner}/{repo}/assignees:+    get:+      operationId: repoGetAssignees+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      responses:+        "200":+          content:+            application/json:+              schema:+                items:+                  $ref: '#/components/schemas/User'+                type: array+          description: UserList+      summary: Return all users that have write access and can be assigned to issues+      tags:+      - repository+  /repos/{owner}/{repo}/branch_protections:+    get:+      operationId: repoListBranchProtection+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      responses:+        "200":+          content:+            application/json:+              schema:+                items:+                  $ref: '#/components/schemas/BranchProtection'+                type: array+          description: BranchProtectionList+      summary: List branch protections for a repository+      tags:+      - repository+    post:+      operationId: repoCreateBranchProtection+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      requestBody:+        content:+          application/json:+            schema:+              $ref: '#/components/schemas/CreateBranchProtectionOption'+        required: false+      responses:+        "201":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/BranchProtection'+          description: BranchProtection+        "403":+          content: {}+          description: APIForbiddenError is a forbidden error response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+        "404":+          content: {}+          description: APINotFound is a not found empty response+        "422":+          content: {}+          description: APIValidationError is error format response related to input+            validation+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: Create a branch protections for a repository+      tags:+      - repository+      x-codegen-request-body-name: body+  /repos/{owner}/{repo}/branch_protections/{name}:+    delete:+      operationId: repoDeleteBranchProtection+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: name of protected branch+        in: path+        name: name+        required: true+        schema:+          type: string+      responses:+        "204":+          content: {}+          description: APIEmpty is an empty response+        "404":+          content: {}+          description: APINotFound is a not found empty response+      summary: Delete a specific branch protection for the repository+      tags:+      - repository+    get:+      operationId: repoGetBranchProtection+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: name of protected branch+        in: path+        name: name+        required: true+        schema:+          type: string+      responses:+        "200":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/BranchProtection'+          description: BranchProtection+        "404":+          content: {}+          description: APINotFound is a not found empty response+      summary: Get a specific branch protection for the repository+      tags:+      - repository+    patch:+      operationId: repoEditBranchProtection+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: name of protected branch+        in: path+        name: name+        required: true+        schema:+          type: string+      requestBody:+        content:+          application/json:+            schema:+              $ref: '#/components/schemas/EditBranchProtectionOption'+        required: false+      responses:+        "200":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/BranchProtection'+          description: BranchProtection+        "404":+          content: {}+          description: APINotFound is a not found empty response+        "422":+          content: {}+          description: APIValidationError is error format response related to input+            validation+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: Edit a branch protections for a repository. Only fields that are set+        will be changed+      tags:+      - repository+      x-codegen-request-body-name: body+  /repos/{owner}/{repo}/branches:+    get:+      operationId: repoListBranches+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: page number of results to return (1-based)+        in: query+        name: page+        schema:+          type: integer+      - description: page size of results+        in: query+        name: limit+        schema:+          type: integer+      responses:+        "200":+          content:+            application/json:+              schema:+                items:+                  $ref: '#/components/schemas/Branch'+                type: array+          description: BranchList+      summary: List a repository's branches+      tags:+      - repository+    post:+      operationId: repoCreateBranch+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      requestBody:+        content:+          application/json:+            schema:+              $ref: '#/components/schemas/CreateBranchRepoOption'+        required: false+      responses:+        "201":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/Branch'+          description: Branch+        "404":+          content: {}+          description: The old branch does not exist.+        "409":+          content: {}+          description: The branch with the same name already exists.+      summary: Create a branch+      tags:+      - repository+      x-codegen-request-body-name: body+  /repos/{owner}/{repo}/branches/{branch}:+    delete:+      operationId: repoDeleteBranch+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: branch to delete+        in: path+        name: branch+        required: true+        schema:+          type: string+      responses:+        "204":+          content: {}+          description: APIEmpty is an empty response+        "403":+          content: {}+          description: APIError is error format response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+        "404":+          content: {}+          description: APINotFound is a not found empty response+      summary: Delete a specific branch from a repository+      tags:+      - repository+    get:+      operationId: repoGetBranch+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: branch to get+        in: path+        name: branch+        required: true+        schema:+          type: string+      responses:+        "200":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/Branch'+          description: Branch+        "404":+          content: {}+          description: APINotFound is a not found empty response+      summary: "Retrieve a specific branch from a repository, including its effective\+        \ branch protection"+      tags:+      - repository+  /repos/{owner}/{repo}/collaborators:+    get:+      operationId: repoListCollaborators+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: page number of results to return (1-based)+        in: query+        name: page+        schema:+          type: integer+      - description: page size of results+        in: query+        name: limit+        schema:+          type: integer+      responses:+        "200":+          content:+            application/json:+              schema:+                items:+                  $ref: '#/components/schemas/User'+                type: array+          description: UserList+      summary: List a repository's collaborators+      tags:+      - repository+  /repos/{owner}/{repo}/collaborators/{collaborator}:+    delete:+      operationId: repoDeleteCollaborator+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: username of the collaborator to delete+        in: path+        name: collaborator+        required: true+        schema:+          type: string+      responses:+        "204":+          content: {}+          description: APIEmpty is an empty response+        "422":+          content: {}+          description: APIValidationError is error format response related to input+            validation+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: Delete a collaborator from a repository+      tags:+      - repository+    get:+      operationId: repoCheckCollaborator+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: username of the collaborator+        in: path+        name: collaborator+        required: true+        schema:+          type: string+      responses:+        "204":+          content: {}+          description: APIEmpty is an empty response+        "404":+          content: {}+          description: APINotFound is a not found empty response+        "422":+          content: {}+          description: APIValidationError is error format response related to input+            validation+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: Check if a user is a collaborator of a repository+      tags:+      - repository+    put:+      operationId: repoAddCollaborator+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: username of the collaborator to add+        in: path+        name: collaborator+        required: true+        schema:+          type: string+      requestBody:+        content:+          application/json:+            schema:+              $ref: '#/components/schemas/AddCollaboratorOption'+          text/plain:+            schema:+              $ref: '#/components/schemas/AddCollaboratorOption'+        required: false+      responses:+        "204":+          content: {}+          description: APIEmpty is an empty response+        "422":+          content: {}+          description: APIValidationError is error format response related to input+            validation+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: Add a collaborator to a repository+      tags:+      - repository+      x-codegen-request-body-name: body+  /repos/{owner}/{repo}/collaborators/{collaborator}/permission:+    get:+      operationId: repoGetRepoPermissions+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: username of the collaborator+        in: path+        name: collaborator+        required: true+        schema:+          type: string+      responses:+        "200":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/RepoCollaboratorPermission'+          description: RepoCollaboratorPermission+        "403":+          content: {}+          description: APIForbiddenError is a forbidden error response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+        "404":+          content: {}+          description: APINotFound is a not found empty response+      summary: Get repository permissions for a user+      tags:+      - repository+  /repos/{owner}/{repo}/commits:+    get:+      operationId: repoGetAllCommits+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: SHA or branch to start listing commits from (usually 'master')+        in: query+        name: sha+        schema:+          type: string+      - description: filepath of a file/dir+        in: query+        name: path+        schema:+          type: string+      - description: "include diff stats for every commit (disable for speedup, default\+          \ 'true')"+        in: query+        name: stat+        schema:+          type: boolean+      - description: page number of results to return (1-based)+        in: query+        name: page+        schema:+          type: integer+      - description: page size of results (ignored if used with 'path')+        in: query+        name: limit+        schema:+          type: integer+      responses:+        "200":+          content:+            application/json:+              schema:+                items:+                  $ref: '#/components/schemas/Commit'+                type: array+          description: CommitList+          headers:+            X-HasMore:+              description: True if there is another page+              schema:+                type: boolean+            X-PageCount:+              description: Total number of pages+              schema:+                format: int64+                type: integer+            X-PerPage:+              description: Commits per page+              schema:+                format: int64+                type: integer+            X-Total:+              description: Total commit count+              schema:+                format: int64+                type: integer+            X-Page:+              description: The current page+              schema:+                format: int64+                type: integer+        "404":+          content: {}+          description: APINotFound is a not found empty response+        "409":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/APIError'+          description: EmptyRepository+      summary: Get a list of all commits from a repository+      tags:+      - repository+  /repos/{owner}/{repo}/commits/{ref}/status:+    get:+      operationId: repoGetCombinedStatusByRef+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: name of branch/tag/commit+        in: path+        name: ref+        required: true+        schema:+          type: string+      - description: page number of results to return (1-based)+        in: query+        name: page+        schema:+          type: integer+      - description: page size of results+        in: query+        name: limit+        schema:+          type: integer+      responses:+        "200":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/CombinedStatus'+          description: CombinedStatus+        "400":+          content: {}+          description: APIError is error format response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: "Get a commit's combined status, by branch/tag/commit reference"+      tags:+      - repository+  /repos/{owner}/{repo}/commits/{ref}/statuses:+    get:+      operationId: repoListStatusesByRef+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: name of branch/tag/commit+        in: path+        name: ref+        required: true+        schema:+          type: string+      - description: type of sort+        in: query+        name: sort+        schema:+          enum:+          - oldest+          - recentupdate+          - leastupdate+          - leastindex+          - highestindex+          type: string+      - description: type of state+        in: query+        name: state+        schema:+          enum:+          - pending+          - success+          - error+          - failure+          - warning+          type: string+      - description: page number of results to return (1-based)+        in: query+        name: page+        schema:+          type: integer+      - description: page size of results+        in: query+        name: limit+        schema:+          type: integer+      responses:+        "200":+          content:+            application/json:+              schema:+                items:+                  $ref: '#/components/schemas/CommitStatus'+                type: array+          description: CommitStatusList+        "400":+          content: {}+          description: APIError is error format response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: "Get a commit's statuses, by branch/tag/commit reference"+      tags:+      - repository+  /repos/{owner}/{repo}/contents:+    get:+      operationId: repoGetContentsList+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: The name of the commit/branch/tag. Default the repository’s default+          branch (usually master)+        in: query+        name: ref+        schema:+          type: string+      responses:+        "200":+          content:+            application/json:+              schema:+                items:+                  $ref: '#/components/schemas/ContentsResponse'+                type: array+          description: ContentsListResponse+        "404":+          content: {}+          description: APINotFound is a not found empty response+      summary: Gets the metadata of all the entries of the root dir+      tags:+      - repository+  /repos/{owner}/{repo}/contents/{filepath}:+    delete:+      operationId: repoDeleteFile+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: path of the file to delete+        in: path+        name: filepath+        required: true+        schema:+          type: string+      requestBody:+        content:+          application/json:+            schema:+              $ref: '#/components/schemas/DeleteFileOptions'+        required: true+      responses:+        "200":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/FileDeleteResponse'+          description: FileDeleteResponse+        "400":+          content: {}+          description: APIError is error format response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+        "403":+          content: {}+          description: APIError is error format response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+        "404":+          content: {}+          description: APIError is error format response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: Delete a file in a repository+      tags:+      - repository+      x-codegen-request-body-name: body+    get:+      operationId: repoGetContents+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: "path of the dir, file, symlink or submodule in the repo"+        in: path+        name: filepath+        required: true+        schema:+          type: string+      - description: The name of the commit/branch/tag. Default the repository’s default+          branch (usually master)+        in: query+        name: ref+        schema:+          type: string+      responses:+        "200":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/ContentsResponse'+          description: ContentsResponse+        "404":+          content: {}+          description: APINotFound is a not found empty response+      summary: "Gets the metadata and contents (if a file) of an entry in a repository,\+        \ or a list of entries if a dir"+      tags:+      - repository+    post:+      operationId: repoCreateFile+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: path of the file to create+        in: path+        name: filepath+        required: true+        schema:+          type: string+      requestBody:+        content:+          application/json:+            schema:+              $ref: '#/components/schemas/CreateFileOptions'+        required: true+      responses:+        "201":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/FileResponse'+          description: FileResponse+        "403":+          content: {}+          description: APIError is error format response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+        "404":+          content: {}+          description: APINotFound is a not found empty response+        "422":+          content: {}+          description: APIError is error format response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: Create a file in a repository+      tags:+      - repository+      x-codegen-request-body-name: body+    put:+      operationId: repoUpdateFile+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: path of the file to update+        in: path+        name: filepath+        required: true+        schema:+          type: string+      requestBody:+        content:+          application/json:+            schema:+              $ref: '#/components/schemas/UpdateFileOptions'+        required: true+      responses:+        "200":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/FileResponse'+          description: FileResponse+        "403":+          content: {}+          description: APIError is error format response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+        "404":+          content: {}+          description: APINotFound is a not found empty response+        "422":+          content: {}+          description: APIError is error format response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: Update a file in a repository+      tags:+      - repository+      x-codegen-request-body-name: body+  /repos/{owner}/{repo}/diffpatch:+    post:+      operationId: repoApplyDiffPatch+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      requestBody:+        content:+          application/json:+            schema:+              $ref: '#/components/schemas/UpdateFileOptions'+        required: true+      responses:+        "200":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/FileResponse'+          description: FileResponse+      summary: Apply diff patch to repository+      tags:+      - repository+      x-codegen-request-body-name: body+  /repos/{owner}/{repo}/editorconfig/{filepath}:+    get:+      operationId: repoGetEditorConfig+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: filepath of file to get+        in: path+        name: filepath+        required: true+        schema:+          type: string+      - description: The name of the commit/branch/tag. Default the repository’s default+          branch (usually master)+        in: query+        name: ref+        schema:+          type: string+      responses:+        "200":+          content: {}+          description: success+        "404":+          content: {}+          description: APINotFound is a not found empty response+      summary: Get the EditorConfig definitions of a file in a repository+      tags:+      - repository+  /repos/{owner}/{repo}/forks:+    get:+      operationId: listForks+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: page number of results to return (1-based)+        in: query+        name: page+        schema:+          type: integer+      - description: page size of results+        in: query+        name: limit+        schema:+          type: integer+      responses:+        "200":+          content:+            application/json:+              schema:+                items:+                  $ref: '#/components/schemas/Repository'+                type: array+          description: RepositoryList+      summary: List a repository's forks+      tags:+      - repository+    post:+      operationId: createFork+      parameters:+      - description: owner of the repo to fork+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo to fork+        in: path+        name: repo+        required: true+        schema:+          type: string+      requestBody:+        content:+          application/json:+            schema:+              $ref: '#/components/schemas/CreateForkOption'+          text/plain:+            schema:+              $ref: '#/components/schemas/CreateForkOption'+        required: false+      responses:+        "202":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/Repository'+          description: Repository+        "403":+          content: {}+          description: APIForbiddenError is a forbidden error response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+        "409":+          content: {}+          description: The repository with the same name already exists.+        "422":+          content: {}+          description: APIValidationError is error format response related to input+            validation+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: Fork a repository+      tags:+      - repository+      x-codegen-request-body-name: body+  /repos/{owner}/{repo}/git/blobs/{sha}:+    get:+      operationId: GetBlob+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: sha of the commit+        in: path+        name: sha+        required: true+        schema:+          type: string+      responses:+        "200":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/GitBlobResponse'+          description: GitBlobResponse+        "400":+          content: {}+          description: APIError is error format response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: Gets the blob of a repository.+      tags:+      - repository+  /repos/{owner}/{repo}/git/commits/{sha}:+    get:+      operationId: repoGetSingleCommit+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: a git ref or commit sha+        in: path+        name: sha+        required: true+        schema:+          type: string+      responses:+        "200":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/Commit'+          description: Commit+        "404":+          content: {}+          description: APINotFound is a not found empty response+        "422":+          content: {}+          description: APIValidationError is error format response related to input+            validation+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: Get a single commit from a repository+      tags:+      - repository+  /repos/{owner}/{repo}/git/commits/{sha}.{diffType}:+    get:+      operationId: repoDownloadCommitDiffOrPatch+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: SHA of the commit to get+        in: path+        name: sha+        required: true+        schema:+          type: string+      - description: whether the output is diff or patch+        in: path+        name: diffType+        required: true+        schema:+          enum:+          - diff+          - patch+          type: string+      responses:+        "200":+          content:+            text/plain:+              schema:+                type: string+          description: APIString is a string response+        "404":+          content: {}+          description: APINotFound is a not found empty response+      summary: Get a commit's diff or patch+      tags:+      - repository+  /repos/{owner}/{repo}/git/notes/{sha}:+    get:+      operationId: repoGetNote+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: a git ref or commit sha+        in: path+        name: sha+        required: true+        schema:+          type: string+      responses:+        "200":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/Note'+          description: Note+        "404":+          content: {}+          description: APINotFound is a not found empty response+        "422":+          content: {}+          description: APIValidationError is error format response related to input+            validation+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: Get a note corresponding to a single commit from a repository+      tags:+      - repository+  /repos/{owner}/{repo}/git/refs:+    get:+      operationId: repoListAllGitRefs+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      responses:+        "200":+          content:+            application/json:+              schema:+                items:+                  $ref: '#/components/schemas/Reference'+                type: array+          description: ReferenceList+        "404":+          content: {}+          description: APINotFound is a not found empty response+      summary: Get specified ref or filtered repository's refs+      tags:+      - repository+  /repos/{owner}/{repo}/git/refs/{ref}:+    get:+      operationId: repoListGitRefs+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: part or full name of the ref+        in: path+        name: ref+        required: true+        schema:+          type: string+      responses:+        "200":+          content:+            application/json:+              schema:+                items:+                  $ref: '#/components/schemas/Reference'+                type: array+          description: ReferenceList+        "404":+          content: {}+          description: APINotFound is a not found empty response+      summary: Get specified ref or filtered repository's refs+      tags:+      - repository+  /repos/{owner}/{repo}/git/tags/{sha}:+    get:+      operationId: GetAnnotatedTag+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: "sha of the tag. The Git tags API only supports annotated tag\+          \ objects, not lightweight tags."+        in: path+        name: sha+        required: true+        schema:+          type: string+      responses:+        "200":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/AnnotatedTag'+          description: AnnotatedTag+        "400":+          content: {}+          description: APIError is error format response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: Gets the tag object of an annotated tag (not lightweight tags)+      tags:+      - repository+  /repos/{owner}/{repo}/git/trees/{sha}:+    get:+      operationId: GetTree+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: sha of the commit+        in: path+        name: sha+        required: true+        schema:+          type: string+      - description: show all directories and files+        in: query+        name: recursive+        schema:+          type: boolean+      - description: "page number; the 'truncated' field in the response will be true\+          \ if there are still more items after this page, false if the last page"+        in: query+        name: page+        schema:+          type: integer+      - description: number of items per page+        in: query+        name: per_page+        schema:+          type: integer+      responses:+        "200":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/GitTreeResponse'+          description: GitTreeResponse+        "400":+          content: {}+          description: APIError is error format response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: Gets the tree of a repository.+      tags:+      - repository+  /repos/{owner}/{repo}/hooks:+    get:+      operationId: repoListHooks+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: page number of results to return (1-based)+        in: query+        name: page+        schema:+          type: integer+      - description: page size of results+        in: query+        name: limit+        schema:+          type: integer+      responses:+        "200":+          content:+            application/json:+              schema:+                items:+                  $ref: '#/components/schemas/Hook'+                type: array+          description: HookList+      summary: List the hooks in a repository+      tags:+      - repository+    post:+      operationId: repoCreateHook+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      requestBody:+        content:+          application/json:+            schema:+              $ref: '#/components/schemas/CreateHookOption'+        required: false+      responses:+        "201":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/Hook'+          description: Hook+      summary: Create a hook+      tags:+      - repository+      x-codegen-request-body-name: body+  /repos/{owner}/{repo}/hooks/git:+    get:+      operationId: repoListGitHooks+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      responses:+        "200":+          content:+            application/json:+              schema:+                items:+                  $ref: '#/components/schemas/GitHook'+                type: array+          description: GitHookList+      summary: List the Git hooks in a repository+      tags:+      - repository+  /repos/{owner}/{repo}/hooks/git/{id}:+    delete:+      operationId: repoDeleteGitHook+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: id of the hook to get+        in: path+        name: id+        required: true+        schema:+          type: string+      responses:+        "204":+          content: {}+          description: APIEmpty is an empty response+        "404":+          content: {}+          description: APINotFound is a not found empty response+      summary: Delete a Git hook in a repository+      tags:+      - repository+    get:+      operationId: repoGetGitHook+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: id of the hook to get+        in: path+        name: id+        required: true+        schema:+          type: string+      responses:+        "200":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/GitHook'+          description: GitHook+        "404":+          content: {}+          description: APINotFound is a not found empty response+      summary: Get a Git hook+      tags:+      - repository+    patch:+      operationId: repoEditGitHook+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: id of the hook to get+        in: path+        name: id+        required: true+        schema:+          type: string+      requestBody:+        content:+          application/json:+            schema:+              $ref: '#/components/schemas/EditGitHookOption'+          text/plain:+            schema:+              $ref: '#/components/schemas/EditGitHookOption'+        required: false+      responses:+        "200":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/GitHook'+          description: GitHook+        "404":+          content: {}+          description: APINotFound is a not found empty response+      summary: Edit a Git hook in a repository+      tags:+      - repository+      x-codegen-request-body-name: body+  /repos/{owner}/{repo}/hooks/{id}:+    delete:+      operationId: repoDeleteHook+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: id of the hook to delete+        in: path+        name: id+        required: true+        schema:+          format: int64+          type: integer+      responses:+        "204":+          content: {}+          description: APIEmpty is an empty response+        "404":+          content: {}+          description: APINotFound is a not found empty response+      summary: Delete a hook in a repository+      tags:+      - repository+    get:+      operationId: repoGetHook+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: id of the hook to get+        in: path+        name: id+        required: true+        schema:+          format: int64+          type: integer+      responses:+        "200":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/Hook'+          description: Hook+        "404":+          content: {}+          description: APINotFound is a not found empty response+      summary: Get a hook+      tags:+      - repository+    patch:+      operationId: repoEditHook+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: index of the hook+        in: path+        name: id+        required: true+        schema:+          format: int64+          type: integer+      requestBody:+        content:+          application/json:+            schema:+              $ref: '#/components/schemas/EditHookOption'+          text/plain:+            schema:+              $ref: '#/components/schemas/EditHookOption'+        required: false+      responses:+        "200":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/Hook'+          description: Hook+      summary: Edit a hook in a repository+      tags:+      - repository+      x-codegen-request-body-name: body+  /repos/{owner}/{repo}/hooks/{id}/tests:+    post:+      operationId: repoTestHook+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: id of the hook to test+        in: path+        name: id+        required: true+        schema:+          format: int64+          type: integer+      - description: "The name of the commit/branch/tag, indicates which commit will\+          \ be loaded to the webhook payload."+        in: query+        name: ref+        schema:+          type: string+      responses:+        "204":+          content: {}+          description: APIEmpty is an empty response+      summary: Test a push webhook+      tags:+      - repository+  /repos/{owner}/{repo}/issue_templates:+    get:+      operationId: repoGetIssueTemplates+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      responses:+        "200":+          content:+            application/json:+              schema:+                items:+                  $ref: '#/components/schemas/IssueTemplate'+                type: array+          description: IssueTemplates+      summary: Get available issue templates for a repository+      tags:+      - repository+  /repos/{owner}/{repo}/issues:+    get:+      operationId: issueListIssues+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: whether issue is open or closed+        in: query+        name: state+        schema:+          enum:+          - closed+          - open+          - all+          type: string+      - description: comma separated list of labels. Fetch only issues that have any+          of this labels. Non existent labels are discarded+        in: query+        name: labels+        schema:+          type: string+      - description: search string+        in: query+        name: q+        schema:+          type: string+      - description: filter by type (issues / pulls) if set+        in: query+        name: type+        schema:+          enum:+          - issues+          - pulls+          type: string+      - description: comma separated list of milestone names or ids. It uses names+          and fall back to ids. Fetch only issues that have any of this milestones.+          Non existent milestones are discarded+        in: query+        name: milestones+        schema:+          type: string+      - description: Only show items updated after the given time. This is a timestamp+          in RFC 3339 format+        in: query+        name: since+        schema:+          format: date-time+          type: string+      - description: Only show items updated before the given time. This is a timestamp+          in RFC 3339 format+        in: query+        name: before+        schema:+          format: date-time+          type: string+      - description: Only show items which were created by the the given user+        in: query+        name: created_by+        schema:+          type: string+      - description: Only show items for which the given user is assigned+        in: query+        name: assigned_by+        schema:+          type: string+      - description: Only show items in which the given user was mentioned+        in: query+        name: mentioned_by+        schema:+          type: string+      - description: page number of results to return (1-based)+        in: query+        name: page+        schema:+          type: integer+      - description: page size of results+        in: query+        name: limit+        schema:+          type: integer+      responses:+        "200":+          content:+            application/json:+              schema:+                items:+                  $ref: '#/components/schemas/Issue'+                type: array+          description: IssueList+      summary: List a repository's issues+      tags:+      - issue+    post:+      operationId: issueCreateIssue+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      requestBody:+        content:+          application/json:+            schema:+              $ref: '#/components/schemas/CreateIssueOption'+        required: false+      responses:+        "201":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/Issue'+          description: Issue+        "403":+          content: {}+          description: APIForbiddenError is a forbidden error response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+        "412":+          content: {}+          description: APIError is error format response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+        "422":+          content: {}+          description: APIValidationError is error format response related to input+            validation+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: "Create an issue. If using deadline only the date will be taken into\+        \ account, and time of day ignored."+      tags:+      - issue+      x-codegen-request-body-name: body+  /repos/{owner}/{repo}/issues/comments:+    get:+      operationId: issueGetRepoComments+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: "if provided, only comments updated since the provided time are\+          \ returned."+        in: query+        name: since+        schema:+          format: date-time+          type: string+      - description: "if provided, only comments updated before the provided time\+          \ are returned."+        in: query+        name: before+        schema:+          format: date-time+          type: string+      - description: page number of results to return (1-based)+        in: query+        name: page+        schema:+          type: integer+      - description: page size of results+        in: query+        name: limit+        schema:+          type: integer+      responses:+        "200":+          content:+            application/json:+              schema:+                items:+                  $ref: '#/components/schemas/Comment'+                type: array+          description: CommentList+      summary: List all comments in a repository+      tags:+      - issue+  /repos/{owner}/{repo}/issues/comments/{id}:+    delete:+      operationId: issueDeleteComment+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: id of comment to delete+        in: path+        name: id+        required: true+        schema:+          format: int64+          type: integer+      responses:+        "204":+          content: {}+          description: APIEmpty is an empty response+        "403":+          content: {}+          description: APIForbiddenError is a forbidden error response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+        "404":+          content: {}+          description: APINotFound is a not found empty response+      summary: Delete a comment+      tags:+      - issue+    get:+      operationId: issueGetComment+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: id of the comment+        in: path+        name: id+        required: true+        schema:+          format: int64+          type: integer+      responses:+        "200":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/Comment'+          description: Comment+        "204":+          content: {}+          description: APIEmpty is an empty response+        "403":+          content: {}+          description: APIForbiddenError is a forbidden error response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+        "404":+          content: {}+          description: APINotFound is a not found empty response+      summary: Get a comment+      tags:+      - issue+    patch:+      operationId: issueEditComment+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: id of the comment to edit+        in: path+        name: id+        required: true+        schema:+          format: int64+          type: integer+      requestBody:+        content:+          application/json:+            schema:+              $ref: '#/components/schemas/EditIssueCommentOption'+        required: false+      responses:+        "200":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/Comment'+          description: Comment+        "204":+          content: {}+          description: APIEmpty is an empty response+        "403":+          content: {}+          description: APIForbiddenError is a forbidden error response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+        "404":+          content: {}+          description: APINotFound is a not found empty response+      summary: Edit a comment+      tags:+      - issue+      x-codegen-request-body-name: body+  /repos/{owner}/{repo}/issues/comments/{id}/assets:+    get:+      operationId: issueListIssueCommentAttachments+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: id of the comment+        in: path+        name: id+        required: true+        schema:+          format: int64+          type: integer+      responses:+        "200":+          content:+            application/json:+              schema:+                items:+                  $ref: '#/components/schemas/Attachment'+                type: array+          description: AttachmentList+        "404":+          content: {}+          description: APIError is error format response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: List comment's attachments+      tags:+      - issue+    post:+      operationId: issueCreateIssueCommentAttachment+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: id of the comment+        in: path+        name: id+        required: true+        schema:+          format: int64+          type: integer+      - description: name of the attachment+        in: query+        name: name+        schema:+          type: string+      requestBody:+        content:+          multipart/form-data:+            schema:+              $ref: '#/components/schemas/issueCreateIssueCommentAttachment_request'+        required: true+      responses:+        "201":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/Attachment'+          description: Attachment+        "400":+          content: {}+          description: APIError is error format response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+        "404":+          content: {}+          description: APIError is error format response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: Create a comment attachment+      tags:+      - issue+  /repos/{owner}/{repo}/issues/comments/{id}/assets/{attachment_id}:+    delete:+      operationId: issueDeleteIssueCommentAttachment+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: id of the comment+        in: path+        name: id+        required: true+        schema:+          format: int64+          type: integer+      - description: id of the attachment to delete+        in: path+        name: attachment_id+        required: true+        schema:+          format: int64+          type: integer+      responses:+        "204":+          content: {}+          description: APIEmpty is an empty response+        "404":+          content: {}+          description: APIError is error format response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: Delete a comment attachment+      tags:+      - issue+    get:+      operationId: issueGetIssueCommentAttachment+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: id of the comment+        in: path+        name: id+        required: true+        schema:+          format: int64+          type: integer+      - description: id of the attachment to get+        in: path+        name: attachment_id+        required: true+        schema:+          format: int64+          type: integer+      responses:+        "200":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/Attachment'+          description: Attachment+        "404":+          content: {}+          description: APIError is error format response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: Get a comment attachment+      tags:+      - issue+    patch:+      operationId: issueEditIssueCommentAttachment+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: id of the comment+        in: path+        name: id+        required: true+        schema:+          format: int64+          type: integer+      - description: id of the attachment to edit+        in: path+        name: attachment_id+        required: true+        schema:+          format: int64+          type: integer+      requestBody:+        content:+          application/json:+            schema:+              $ref: '#/components/schemas/EditAttachmentOptions'+        required: false+      responses:+        "201":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/Attachment'+          description: Attachment+        "404":+          content: {}+          description: APIError is error format response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: Edit a comment attachment+      tags:+      - issue+      x-codegen-request-body-name: body+  /repos/{owner}/{repo}/issues/comments/{id}/reactions:+    delete:+      operationId: issueDeleteCommentReaction+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: id of the comment to edit+        in: path+        name: id+        required: true+        schema:+          format: int64+          type: integer+      requestBody:+        content:+          application/json:+            schema:+              $ref: '#/components/schemas/EditReactionOption'+        required: false+      responses:+        "200":+          content: {}+          description: APIEmpty is an empty response+        "403":+          content: {}+          description: APIForbiddenError is a forbidden error response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: Remove a reaction from a comment of an issue+      tags:+      - issue+      x-codegen-request-body-name: content+    get:+      operationId: issueGetCommentReactions+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: id of the comment to edit+        in: path+        name: id+        required: true+        schema:+          format: int64+          type: integer+      responses:+        "200":+          content:+            application/json:+              schema:+                items:+                  $ref: '#/components/schemas/Reaction'+                type: array+          description: ReactionList+        "403":+          content: {}+          description: APIForbiddenError is a forbidden error response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: Get a list of reactions from a comment of an issue+      tags:+      - issue+    post:+      operationId: issuePostCommentReaction+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: id of the comment to edit+        in: path+        name: id+        required: true+        schema:+          format: int64+          type: integer+      requestBody:+        content:+          application/json:+            schema:+              $ref: '#/components/schemas/EditReactionOption'+        required: false+      responses:+        "200":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/Reaction'+          description: Reaction+        "201":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/Reaction'+          description: Reaction+        "403":+          content: {}+          description: APIForbiddenError is a forbidden error response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: Add a reaction to a comment of an issue+      tags:+      - issue+      x-codegen-request-body-name: content+  /repos/{owner}/{repo}/issues/{index}:+    delete:+      operationId: issueDelete+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: index of issue to delete+        in: path+        name: index+        required: true+        schema:+          format: int64+          type: integer+      responses:+        "204":+          content: {}+          description: APIEmpty is an empty response+        "403":+          content: {}+          description: APIForbiddenError is a forbidden error response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+        "404":+          content: {}+          description: APINotFound is a not found empty response+      summary: Delete an issue+      tags:+      - issue+    get:+      operationId: issueGetIssue+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: index of the issue to get+        in: path+        name: index+        required: true+        schema:+          format: int64+          type: integer+      responses:+        "200":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/Issue'+          description: Issue+        "404":+          content: {}+          description: APINotFound is a not found empty response+      summary: Get an issue+      tags:+      - issue+    patch:+      operationId: issueEditIssue+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: index of the issue to edit+        in: path+        name: index+        required: true+        schema:+          format: int64+          type: integer+      requestBody:+        content:+          application/json:+            schema:+              $ref: '#/components/schemas/EditIssueOption'+        required: false+      responses:+        "201":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/Issue'+          description: Issue+        "403":+          content: {}+          description: APIForbiddenError is a forbidden error response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+        "404":+          content: {}+          description: APINotFound is a not found empty response+        "412":+          content: {}+          description: APIError is error format response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: "Edit an issue. If using deadline only the date will be taken into\+        \ account, and time of day ignored."+      tags:+      - issue+      x-codegen-request-body-name: body+  /repos/{owner}/{repo}/issues/{index}/assets:+    get:+      operationId: issueListIssueAttachments+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: index of the issue+        in: path+        name: index+        required: true+        schema:+          format: int64+          type: integer+      responses:+        "200":+          content:+            application/json:+              schema:+                items:+                  $ref: '#/components/schemas/Attachment'+                type: array+          description: AttachmentList+        "404":+          content: {}+          description: APIError is error format response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: List issue's attachments+      tags:+      - issue+    post:+      operationId: issueCreateIssueAttachment+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: index of the issue+        in: path+        name: index+        required: true+        schema:+          format: int64+          type: integer+      - description: name of the attachment+        in: query+        name: name+        schema:+          type: string+      requestBody:+        content:+          multipart/form-data:+            schema:+              $ref: '#/components/schemas/issueCreateIssueCommentAttachment_request'+        required: true+      responses:+        "201":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/Attachment'+          description: Attachment+        "400":+          content: {}+          description: APIError is error format response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+        "404":+          content: {}+          description: APIError is error format response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: Create an issue attachment+      tags:+      - issue+  /repos/{owner}/{repo}/issues/{index}/assets/{attachment_id}:+    delete:+      operationId: issueDeleteIssueAttachment+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: index of the issue+        in: path+        name: index+        required: true+        schema:+          format: int64+          type: integer+      - description: id of the attachment to delete+        in: path+        name: attachment_id+        required: true+        schema:+          format: int64+          type: integer+      responses:+        "204":+          content: {}+          description: APIEmpty is an empty response+        "404":+          content: {}+          description: APIError is error format response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: Delete an issue attachment+      tags:+      - issue+    get:+      operationId: issueGetIssueAttachment+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: index of the issue+        in: path+        name: index+        required: true+        schema:+          format: int64+          type: integer+      - description: id of the attachment to get+        in: path+        name: attachment_id+        required: true+        schema:+          format: int64+          type: integer+      responses:+        "200":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/Attachment'+          description: Attachment+        "404":+          content: {}+          description: APIError is error format response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: Get an issue attachment+      tags:+      - issue+    patch:+      operationId: issueEditIssueAttachment+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: index of the issue+        in: path+        name: index+        required: true+        schema:+          format: int64+          type: integer+      - description: id of the attachment to edit+        in: path+        name: attachment_id+        required: true+        schema:+          format: int64+          type: integer+      requestBody:+        content:+          application/json:+            schema:+              $ref: '#/components/schemas/EditAttachmentOptions'+        required: false+      responses:+        "201":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/Attachment'+          description: Attachment+        "404":+          content: {}+          description: APIError is error format response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: Edit an issue attachment+      tags:+      - issue+      x-codegen-request-body-name: body+  /repos/{owner}/{repo}/issues/{index}/comments:+    get:+      operationId: issueGetComments+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: index of the issue+        in: path+        name: index+        required: true+        schema:+          format: int64+          type: integer+      - description: "if provided, only comments updated since the specified time\+          \ are returned."+        in: query+        name: since+        schema:+          format: date-time+          type: string+      - description: "if provided, only comments updated before the provided time\+          \ are returned."+        in: query+        name: before+        schema:+          format: date-time+          type: string+      responses:+        "200":+          content:+            application/json:+              schema:+                items:+                  $ref: '#/components/schemas/Comment'+                type: array+          description: CommentList+      summary: List all comments on an issue+      tags:+      - issue+    post:+      operationId: issueCreateComment+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: index of the issue+        in: path+        name: index+        required: true+        schema:+          format: int64+          type: integer+      requestBody:+        content:+          application/json:+            schema:+              $ref: '#/components/schemas/CreateIssueCommentOption'+        required: false+      responses:+        "201":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/Comment'+          description: Comment+        "403":+          content: {}+          description: APIForbiddenError is a forbidden error response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: Add a comment to an issue+      tags:+      - issue+      x-codegen-request-body-name: body+  /repos/{owner}/{repo}/issues/{index}/comments/{id}:+    delete:+      deprecated: true+      operationId: issueDeleteCommentDeprecated+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: this parameter is ignored+        in: path+        name: index+        required: true+        schema:+          type: integer+      - description: id of comment to delete+        in: path+        name: id+        required: true+        schema:+          format: int64+          type: integer+      responses:+        "204":+          content: {}+          description: APIEmpty is an empty response+        "403":+          content: {}+          description: APIForbiddenError is a forbidden error response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+        "404":+          content: {}+          description: APINotFound is a not found empty response+      summary: Delete a comment+      tags:+      - issue+    patch:+      deprecated: true+      operationId: issueEditCommentDeprecated+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: this parameter is ignored+        in: path+        name: index+        required: true+        schema:+          type: integer+      - description: id of the comment to edit+        in: path+        name: id+        required: true+        schema:+          format: int64+          type: integer+      requestBody:+        content:+          application/json:+            schema:+              $ref: '#/components/schemas/EditIssueCommentOption'+        required: false+      responses:+        "200":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/Comment'+          description: Comment+        "204":+          content: {}+          description: APIEmpty is an empty response+        "403":+          content: {}+          description: APIForbiddenError is a forbidden error response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+        "404":+          content: {}+          description: APINotFound is a not found empty response+      summary: Edit a comment+      tags:+      - issue+      x-codegen-request-body-name: body+  /repos/{owner}/{repo}/issues/{index}/deadline:+    post:+      operationId: issueEditIssueDeadline+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: index of the issue to create or update a deadline on+        in: path+        name: index+        required: true+        schema:+          format: int64+          type: integer+      requestBody:+        content:+          application/json:+            schema:+              $ref: '#/components/schemas/EditDeadlineOption'+        required: false+      responses:+        "201":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/IssueDeadline'+          description: IssueDeadline+        "403":+          content: {}+          description: APIForbiddenError is a forbidden error response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+        "404":+          content: {}+          description: APINotFound is a not found empty response+      summary: "Set an issue deadline. If set to null, the deadline is deleted. If\+        \ using deadline only the date will be taken into account, and time of day\+        \ ignored."+      tags:+      - issue+      x-codegen-request-body-name: body+  /repos/{owner}/{repo}/issues/{index}/labels:+    delete:+      operationId: issueClearLabels+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: index of the issue+        in: path+        name: index+        required: true+        schema:+          format: int64+          type: integer+      responses:+        "204":+          content: {}+          description: APIEmpty is an empty response+        "403":+          content: {}+          description: APIForbiddenError is a forbidden error response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: Remove all labels from an issue+      tags:+      - issue+    get:+      operationId: issueGetLabels+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: index of the issue+        in: path+        name: index+        required: true+        schema:+          format: int64+          type: integer+      responses:+        "200":+          content:+            application/json:+              schema:+                items:+                  $ref: '#/components/schemas/Label'+                type: array+          description: LabelList+        "404":+          content: {}+          description: APINotFound is a not found empty response+      summary: Get an issue's labels+      tags:+      - issue+    post:+      operationId: issueAddLabel+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: index of the issue+        in: path+        name: index+        required: true+        schema:+          format: int64+          type: integer+      requestBody:+        content:+          application/json:+            schema:+              $ref: '#/components/schemas/IssueLabelsOption'+        required: false+      responses:+        "200":+          content:+            application/json:+              schema:+                items:+                  $ref: '#/components/schemas/Label'+                type: array+          description: LabelList+        "403":+          content: {}+          description: APIForbiddenError is a forbidden error response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: Add a label to an issue+      tags:+      - issue+      x-codegen-request-body-name: body+    put:+      operationId: issueReplaceLabels+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: index of the issue+        in: path+        name: index+        required: true+        schema:+          format: int64+          type: integer+      requestBody:+        content:+          application/json:+            schema:+              $ref: '#/components/schemas/IssueLabelsOption'+        required: false+      responses:+        "200":+          content:+            application/json:+              schema:+                items:+                  $ref: '#/components/schemas/Label'+                type: array+          description: LabelList+        "403":+          content: {}+          description: APIForbiddenError is a forbidden error response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: Replace an issue's labels+      tags:+      - issue+      x-codegen-request-body-name: body+  /repos/{owner}/{repo}/issues/{index}/labels/{id}:+    delete:+      operationId: issueRemoveLabel+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: index of the issue+        in: path+        name: index+        required: true+        schema:+          format: int64+          type: integer+      - description: id of the label to remove+        in: path+        name: id+        required: true+        schema:+          format: int64+          type: integer+      responses:+        "204":+          content: {}+          description: APIEmpty is an empty response+        "403":+          content: {}+          description: APIForbiddenError is a forbidden error response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+        "422":+          content: {}+          description: APIValidationError is error format response related to input+            validation+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: Remove a label from an issue+      tags:+      - issue+  /repos/{owner}/{repo}/issues/{index}/reactions:+    delete:+      operationId: issueDeleteIssueReaction+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: index of the issue+        in: path+        name: index+        required: true+        schema:+          format: int64+          type: integer+      requestBody:+        content:+          application/json:+            schema:+              $ref: '#/components/schemas/EditReactionOption'+        required: false+      responses:+        "200":+          content: {}+          description: APIEmpty is an empty response+        "403":+          content: {}+          description: APIForbiddenError is a forbidden error response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: Remove a reaction from an issue+      tags:+      - issue+      x-codegen-request-body-name: content+    get:+      operationId: issueGetIssueReactions+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: index of the issue+        in: path+        name: index+        required: true+        schema:+          format: int64+          type: integer+      - description: page number of results to return (1-based)+        in: query+        name: page+        schema:+          type: integer+      - description: page size of results+        in: query+        name: limit+        schema:+          type: integer+      responses:+        "200":+          content:+            application/json:+              schema:+                items:+                  $ref: '#/components/schemas/Reaction'+                type: array+          description: ReactionList+        "403":+          content: {}+          description: APIForbiddenError is a forbidden error response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: Get a list reactions of an issue+      tags:+      - issue+    post:+      operationId: issuePostIssueReaction+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: index of the issue+        in: path+        name: index+        required: true+        schema:+          format: int64+          type: integer+      requestBody:+        content:+          application/json:+            schema:+              $ref: '#/components/schemas/EditReactionOption'+        required: false+      responses:+        "200":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/Reaction'+          description: Reaction+        "201":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/Reaction'+          description: Reaction+        "403":+          content: {}+          description: APIForbiddenError is a forbidden error response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: Add a reaction to an issue+      tags:+      - issue+      x-codegen-request-body-name: content+  /repos/{owner}/{repo}/issues/{index}/stopwatch/delete:+    delete:+      operationId: issueDeleteStopWatch+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: index of the issue to stop the stopwatch on+        in: path+        name: index+        required: true+        schema:+          format: int64+          type: integer+      responses:+        "204":+          content: {}+          description: APIEmpty is an empty response+        "403":+          content: {}+          description: "Not repo writer, user does not have rights to toggle stopwatch"+        "404":+          content: {}+          description: APINotFound is a not found empty response+        "409":+          content: {}+          description: Cannot cancel a non existent stopwatch+      summary: Delete an issue's existing stopwatch.+      tags:+      - issue+  /repos/{owner}/{repo}/issues/{index}/stopwatch/start:+    post:+      operationId: issueStartStopWatch+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: index of the issue to create the stopwatch on+        in: path+        name: index+        required: true+        schema:+          format: int64+          type: integer+      responses:+        "201":+          content: {}+          description: APIEmpty is an empty response+        "403":+          content: {}+          description: "Not repo writer, user does not have rights to toggle stopwatch"+        "404":+          content: {}+          description: APINotFound is a not found empty response+        "409":+          content: {}+          description: Cannot start a stopwatch again if it already exists+      summary: Start stopwatch on an issue.+      tags:+      - issue+  /repos/{owner}/{repo}/issues/{index}/stopwatch/stop:+    post:+      operationId: issueStopStopWatch+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: index of the issue to stop the stopwatch on+        in: path+        name: index+        required: true+        schema:+          format: int64+          type: integer+      responses:+        "201":+          content: {}+          description: APIEmpty is an empty response+        "403":+          content: {}+          description: "Not repo writer, user does not have rights to toggle stopwatch"+        "404":+          content: {}+          description: APINotFound is a not found empty response+        "409":+          content: {}+          description: Cannot stop a non existent stopwatch+      summary: Stop an issue's existing stopwatch.+      tags:+      - issue+  /repos/{owner}/{repo}/issues/{index}/subscriptions:+    get:+      operationId: issueSubscriptions+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: index of the issue+        in: path+        name: index+        required: true+        schema:+          format: int64+          type: integer+      - description: page number of results to return (1-based)+        in: query+        name: page+        schema:+          type: integer+      - description: page size of results+        in: query+        name: limit+        schema:+          type: integer+      responses:+        "200":+          content:+            application/json:+              schema:+                items:+                  $ref: '#/components/schemas/User'+                type: array+          description: UserList+        "404":+          content: {}+          description: APINotFound is a not found empty response+      summary: Get users who subscribed on an issue.+      tags:+      - issue+  /repos/{owner}/{repo}/issues/{index}/subscriptions/check:+    get:+      operationId: issueCheckSubscription+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: index of the issue+        in: path+        name: index+        required: true+        schema:+          format: int64+          type: integer+      responses:+        "200":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/WatchInfo'+          description: WatchInfo+        "404":+          content: {}+          description: APINotFound is a not found empty response+      summary: Check if user is subscribed to an issue+      tags:+      - issue+  /repos/{owner}/{repo}/issues/{index}/subscriptions/{user}:+    delete:+      operationId: issueDeleteSubscription+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: index of the issue+        in: path+        name: index+        required: true+        schema:+          format: int64+          type: integer+      - description: user witch unsubscribe+        in: path+        name: user+        required: true+        schema:+          type: string+      responses:+        "200":+          content: {}+          description: Already unsubscribed+        "201":+          content: {}+          description: Successfully Unsubscribed+        "304":+          content: {}+          description: User can only subscribe itself if he is no admin+        "404":+          content: {}+          description: APINotFound is a not found empty response+      summary: Unsubscribe user from issue+      tags:+      - issue+    put:+      operationId: issueAddSubscription+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: index of the issue+        in: path+        name: index+        required: true+        schema:+          format: int64+          type: integer+      - description: user to subscribe+        in: path+        name: user+        required: true+        schema:+          type: string+      responses:+        "200":+          content: {}+          description: Already subscribed+        "201":+          content: {}+          description: Successfully Subscribed+        "304":+          content: {}+          description: User can only subscribe itself if he is no admin+        "404":+          content: {}+          description: APINotFound is a not found empty response+      summary: Subscribe user to issue+      tags:+      - issue+  /repos/{owner}/{repo}/issues/{index}/timeline:+    get:+      operationId: issueGetCommentsAndTimeline+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: index of the issue+        in: path+        name: index+        required: true+        schema:+          format: int64+          type: integer+      - description: "if provided, only comments updated since the specified time\+          \ are returned."+        in: query+        name: since+        schema:+          format: date-time+          type: string+      - description: page number of results to return (1-based)+        in: query+        name: page+        schema:+          type: integer+      - description: page size of results+        in: query+        name: limit+        schema:+          type: integer+      - description: "if provided, only comments updated before the provided time\+          \ are returned."+        in: query+        name: before+        schema:+          format: date-time+          type: string+      responses:+        "200":+          content:+            application/json:+              schema:+                items:+                  $ref: '#/components/schemas/TimelineComment'+                type: array+          description: TimelineList+      summary: List all comments and events on an issue+      tags:+      - issue+  /repos/{owner}/{repo}/issues/{index}/times:+    delete:+      operationId: issueResetTime+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: index of the issue to add tracked time to+        in: path+        name: index+        required: true+        schema:+          format: int64+          type: integer+      responses:+        "204":+          content: {}+          description: APIEmpty is an empty response+        "400":+          content: {}+          description: APIError is error format response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+        "403":+          content: {}+          description: APIForbiddenError is a forbidden error response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: Reset a tracked time of an issue+      tags:+      - issue+    get:+      operationId: issueTrackedTimes+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: index of the issue+        in: path+        name: index+        required: true+        schema:+          format: int64+          type: integer+      - description: optional filter by user (available for issue managers)+        in: query+        name: user+        schema:+          type: string+      - description: Only show times updated after the given time. This is a timestamp+          in RFC 3339 format+        in: query+        name: since+        schema:+          format: date-time+          type: string+      - description: Only show times updated before the given time. This is a timestamp+          in RFC 3339 format+        in: query+        name: before+        schema:+          format: date-time+          type: string+      - description: page number of results to return (1-based)+        in: query+        name: page+        schema:+          type: integer+      - description: page size of results+        in: query+        name: limit+        schema:+          type: integer+      responses:+        "200":+          content:+            application/json:+              schema:+                items:+                  $ref: '#/components/schemas/TrackedTime'+                type: array+          description: TrackedTimeList+        "404":+          content: {}+          description: APINotFound is a not found empty response+      summary: List an issue's tracked times+      tags:+      - issue+    post:+      operationId: issueAddTime+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: index of the issue+        in: path+        name: index+        required: true+        schema:+          format: int64+          type: integer+      requestBody:+        content:+          application/json:+            schema:+              $ref: '#/components/schemas/AddTimeOption'+        required: false+      responses:+        "200":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/TrackedTime'+          description: TrackedTime+        "400":+          content: {}+          description: APIError is error format response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+        "403":+          content: {}+          description: APIForbiddenError is a forbidden error response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: Add tracked time to a issue+      tags:+      - issue+      x-codegen-request-body-name: body+  /repos/{owner}/{repo}/issues/{index}/times/{id}:+    delete:+      operationId: issueDeleteTime+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: index of the issue+        in: path+        name: index+        required: true+        schema:+          format: int64+          type: integer+      - description: id of time to delete+        in: path+        name: id+        required: true+        schema:+          format: int64+          type: integer+      responses:+        "204":+          content: {}+          description: APIEmpty is an empty response+        "400":+          content: {}+          description: APIError is error format response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+        "403":+          content: {}+          description: APIForbiddenError is a forbidden error response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: Delete specific tracked time+      tags:+      - issue+  /repos/{owner}/{repo}/keys:+    get:+      operationId: repoListKeys+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: the key_id to search for+        in: query+        name: key_id+        schema:+          type: integer+      - description: fingerprint of the key+        in: query+        name: fingerprint+        schema:+          type: string+      - description: page number of results to return (1-based)+        in: query+        name: page+        schema:+          type: integer+      - description: page size of results+        in: query+        name: limit+        schema:+          type: integer+      responses:+        "200":+          content:+            application/json:+              schema:+                items:+                  $ref: '#/components/schemas/DeployKey'+                type: array+          description: DeployKeyList+      summary: List a repository's keys+      tags:+      - repository+    post:+      operationId: repoCreateKey+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      requestBody:+        content:+          application/json:+            schema:+              $ref: '#/components/schemas/CreateKeyOption'+        required: false+      responses:+        "201":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/DeployKey'+          description: DeployKey+        "422":+          content: {}+          description: APIValidationError is error format response related to input+            validation+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: Add a key to a repository+      tags:+      - repository+      x-codegen-request-body-name: body+  /repos/{owner}/{repo}/keys/{id}:+    delete:+      operationId: repoDeleteKey+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: id of the key to delete+        in: path+        name: id+        required: true+        schema:+          format: int64+          type: integer+      responses:+        "204":+          content: {}+          description: APIEmpty is an empty response+        "403":+          content: {}+          description: APIForbiddenError is a forbidden error response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: Delete a key from a repository+      tags:+      - repository+    get:+      operationId: repoGetKey+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: id of the key to get+        in: path+        name: id+        required: true+        schema:+          format: int64+          type: integer+      responses:+        "200":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/DeployKey'+          description: DeployKey+      summary: Get a repository's key by id+      tags:+      - repository+  /repos/{owner}/{repo}/labels:+    get:+      operationId: issueListLabels+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: page number of results to return (1-based)+        in: query+        name: page+        schema:+          type: integer+      - description: page size of results+        in: query+        name: limit+        schema:+          type: integer+      responses:+        "200":+          content:+            application/json:+              schema:+                items:+                  $ref: '#/components/schemas/Label'+                type: array+          description: LabelList+      summary: Get all of a repository's labels+      tags:+      - issue+    post:+      operationId: issueCreateLabel+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      requestBody:+        content:+          application/json:+            schema:+              $ref: '#/components/schemas/CreateLabelOption'+        required: false+      responses:+        "201":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/Label'+          description: Label+        "422":+          content: {}+          description: APIValidationError is error format response related to input+            validation+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: Create a label+      tags:+      - issue+      x-codegen-request-body-name: body+  /repos/{owner}/{repo}/labels/{id}:+    delete:+      operationId: issueDeleteLabel+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: id of the label to delete+        in: path+        name: id+        required: true+        schema:+          format: int64+          type: integer+      responses:+        "204":+          content: {}+          description: APIEmpty is an empty response+      summary: Delete a label+      tags:+      - issue+    get:+      operationId: issueGetLabel+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: id of the label to get+        in: path+        name: id+        required: true+        schema:+          format: int64+          type: integer+      responses:+        "200":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/Label'+          description: Label+      summary: Get a single label+      tags:+      - issue+    patch:+      operationId: issueEditLabel+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: id of the label to edit+        in: path+        name: id+        required: true+        schema:+          format: int64+          type: integer+      requestBody:+        content:+          application/json:+            schema:+              $ref: '#/components/schemas/EditLabelOption'+        required: false+      responses:+        "200":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/Label'+          description: Label+        "422":+          content: {}+          description: APIValidationError is error format response related to input+            validation+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: Update a label+      tags:+      - issue+      x-codegen-request-body-name: body+  /repos/{owner}/{repo}/languages:+    get:+      operationId: repoGetLanguages+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      responses:+        "200":+          content:+            application/json:+              schema:+                additionalProperties:+                  format: int64+                  type: integer+                type: object+          description: LanguageStatistics+        "404":+          content: {}+          description: APINotFound is a not found empty response+      summary: Get languages and number of bytes of code written+      tags:+      - repository+  /repos/{owner}/{repo}/media/{filepath}:+    get:+      operationId: repoGetRawFileOrLFS+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: filepath of the file to get+        in: path+        name: filepath+        required: true+        schema:+          type: string+      - description: The name of the commit/branch/tag. Default the repository’s default+          branch (usually master)+        in: query+        name: ref+        schema:+          type: string+      responses:+        "200":+          content: {}+          description: Returns raw file content.+        "404":+          content: {}+          description: APINotFound is a not found empty response+      summary: Get a file or it's LFS object from a repository+      tags:+      - repository+  /repos/{owner}/{repo}/milestones:+    get:+      operationId: issueGetMilestonesList+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: "Milestone state, Recognized values are open, closed and all.\+          \ Defaults to \"open\""+        in: query+        name: state+        schema:+          type: string+      - description: filter by milestone name+        in: query+        name: name+        schema:+          type: string+      - description: page number of results to return (1-based)+        in: query+        name: page+        schema:+          type: integer+      - description: page size of results+        in: query+        name: limit+        schema:+          type: integer+      responses:+        "200":+          content:+            application/json:+              schema:+                items:+                  $ref: '#/components/schemas/Milestone'+                type: array+          description: MilestoneList+      summary: Get all of a repository's opened milestones+      tags:+      - issue+    post:+      operationId: issueCreateMilestone+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      requestBody:+        content:+          application/json:+            schema:+              $ref: '#/components/schemas/CreateMilestoneOption'+        required: false+      responses:+        "201":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/Milestone'+          description: Milestone+      summary: Create a milestone+      tags:+      - issue+      x-codegen-request-body-name: body+  /repos/{owner}/{repo}/milestones/{id}:+    delete:+      operationId: issueDeleteMilestone+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: "the milestone to delete, identified by ID and if not available\+          \ by name"+        in: path+        name: id+        required: true+        schema:+          type: string+      responses:+        "204":+          content: {}+          description: APIEmpty is an empty response+      summary: Delete a milestone+      tags:+      - issue+    get:+      operationId: issueGetMilestone+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: "the milestone to get, identified by ID and if not available\+          \ by name"+        in: path+        name: id+        required: true+        schema:+          type: string+      responses:+        "200":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/Milestone'+          description: Milestone+      summary: Get a milestone+      tags:+      - issue+    patch:+      operationId: issueEditMilestone+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: "the milestone to edit, identified by ID and if not available\+          \ by name"+        in: path+        name: id+        required: true+        schema:+          type: string+      requestBody:+        content:+          application/json:+            schema:+              $ref: '#/components/schemas/EditMilestoneOption'+        required: false+      responses:+        "200":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/Milestone'+          description: Milestone+      summary: Update a milestone+      tags:+      - issue+      x-codegen-request-body-name: body+  /repos/{owner}/{repo}/mirror-sync:+    post:+      operationId: repoMirrorSync+      parameters:+      - description: owner of the repo to sync+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo to sync+        in: path+        name: repo+        required: true+        schema:+          type: string+      responses:+        "200":+          content: {}+          description: APIEmpty is an empty response+        "403":+          content: {}+          description: APIForbiddenError is a forbidden error response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: Sync a mirrored repository+      tags:+      - repository+  /repos/{owner}/{repo}/notifications:+    get:+      operationId: notifyGetRepoList+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: "If true, show notifications marked as read. Default value is\+          \ false"+        in: query+        name: all+        schema:+          type: boolean+      - description: "Show notifications with the provided status types. Options are:\+          \ unread, read and/or pinned. Defaults to unread & pinned"+        explode: true+        in: query+        name: status-types+        schema:+          items:+            type: string+          type: array+        style: form+      - description: filter notifications by subject type+        explode: true+        in: query+        name: subject-type+        schema:+          items:+            enum:+            - issue+            - pull+            - commit+            - repository+            type: string+          type: array+        style: form+      - description: Only show notifications updated after the given time. This is+          a timestamp in RFC 3339 format+        in: query+        name: since+        schema:+          format: date-time+          type: string+      - description: Only show notifications updated before the given time. This is+          a timestamp in RFC 3339 format+        in: query+        name: before+        schema:+          format: date-time+          type: string+      - description: page number of results to return (1-based)+        in: query+        name: page+        schema:+          type: integer+      - description: page size of results+        in: query+        name: limit+        schema:+          type: integer+      responses:+        "200":+          content:+            application/json:+              schema:+                items:+                  $ref: '#/components/schemas/NotificationThread'+                type: array+          description: NotificationThreadList+      summary: List users's notification threads on a specific repo+      tags:+      - notification+    put:+      operationId: notifyReadRepoList+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: "If true, mark all notifications on this repo. Default value\+          \ is false"+        in: query+        name: all+        schema:+          type: string+      - description: "Mark notifications with the provided status types. Options are:\+          \ unread, read and/or pinned. Defaults to unread."+        explode: true+        in: query+        name: status-types+        schema:+          items:+            type: string+          type: array+        style: form+      - description: Status to mark notifications as. Defaults to read.+        in: query+        name: to-status+        schema:+          type: string+      - description: Describes the last point that notifications were checked. Anything+          updated since this time will not be updated.+        in: query+        name: last_read_at+        schema:+          format: date-time+          type: string+      responses:+        "205":+          content:+            application/json:+              schema:+                items:+                  $ref: '#/components/schemas/NotificationThread'+                type: array+          description: NotificationThreadList+      summary: "Mark notification threads as read, pinned or unread on a specific\+        \ repo"+      tags:+      - notification+  /repos/{owner}/{repo}/pulls:+    get:+      operationId: repoListPullRequests+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: "State of pull request: open or closed (optional)"+        in: query+        name: state+        schema:+          enum:+          - closed+          - open+          - all+          type: string+      - description: Type of sort+        in: query+        name: sort+        schema:+          enum:+          - oldest+          - recentupdate+          - leastupdate+          - mostcomment+          - leastcomment+          - priority+          type: string+      - description: ID of the milestone+        in: query+        name: milestone+        schema:+          format: int64+          type: integer+      - description: Label IDs+        explode: true+        in: query+        name: labels+        schema:+          items:+            format: int64+            type: integer+          type: array+        style: form+      - description: page number of results to return (1-based)+        in: query+        name: page+        schema:+          type: integer+      - description: page size of results+        in: query+        name: limit+        schema:+          type: integer+      responses:+        "200":+          content:+            application/json:+              schema:+                items:+                  $ref: '#/components/schemas/PullRequest'+                type: array+          description: PullRequestList+      summary: List a repo's pull requests+      tags:+      - repository+    post:+      operationId: repoCreatePullRequest+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      requestBody:+        content:+          application/json:+            schema:+              $ref: '#/components/schemas/CreatePullRequestOption'+        required: false+      responses:+        "201":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/PullRequest'+          description: PullRequest+        "409":+          content: {}+          description: APIError is error format response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+        "422":+          content: {}+          description: APIValidationError is error format response related to input+            validation+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: Create a pull request+      tags:+      - repository+      x-codegen-request-body-name: body+  /repos/{owner}/{repo}/pulls/{index}:+    get:+      operationId: repoGetPullRequest+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: index of the pull request to get+        in: path+        name: index+        required: true+        schema:+          format: int64+          type: integer+      responses:+        "200":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/PullRequest'+          description: PullRequest+        "404":+          content: {}+          description: APINotFound is a not found empty response+      summary: Get a pull request+      tags:+      - repository+    patch:+      operationId: repoEditPullRequest+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: index of the pull request to edit+        in: path+        name: index+        required: true+        schema:+          format: int64+          type: integer+      requestBody:+        content:+          application/json:+            schema:+              $ref: '#/components/schemas/EditPullRequestOption'+        required: false+      responses:+        "201":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/PullRequest'+          description: PullRequest+        "403":+          content: {}+          description: APIForbiddenError is a forbidden error response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+        "409":+          content: {}+          description: APIError is error format response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+        "412":+          content: {}+          description: APIError is error format response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+        "422":+          content: {}+          description: APIValidationError is error format response related to input+            validation+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: "Update a pull request. If using deadline only the date will be taken\+        \ into account, and time of day ignored."+      tags:+      - repository+      x-codegen-request-body-name: body+  /repos/{owner}/{repo}/pulls/{index}.{diffType}:+    get:+      operationId: repoDownloadPullDiffOrPatch+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: index of the pull request to get+        in: path+        name: index+        required: true+        schema:+          format: int64+          type: integer+      - description: whether the output is diff or patch+        in: path+        name: diffType+        required: true+        schema:+          enum:+          - diff+          - patch+          type: string+      - description: "whether to include binary file changes. if true, the diff is\+          \ applicable with `git apply`"+        in: query+        name: binary+        schema:+          type: boolean+      responses:+        "200":+          content:+            text/plain:+              schema:+                type: string+          description: APIString is a string response+        "404":+          content: {}+          description: APINotFound is a not found empty response+      summary: Get a pull request diff or patch+      tags:+      - repository+  /repos/{owner}/{repo}/pulls/{index}/commits:+    get:+      operationId: repoGetPullRequestCommits+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: index of the pull request to get+        in: path+        name: index+        required: true+        schema:+          format: int64+          type: integer+      - description: page number of results to return (1-based)+        in: query+        name: page+        schema:+          type: integer+      - description: page size of results+        in: query+        name: limit+        schema:+          type: integer+      responses:+        "200":+          content:+            application/json:+              schema:+                items:+                  $ref: '#/components/schemas/Commit'+                type: array+          description: CommitList+          headers:+            X-HasMore:+              description: True if there is another page+              schema:+                type: boolean+            X-PageCount:+              description: Total number of pages+              schema:+                format: int64+                type: integer+            X-PerPage:+              description: Commits per page+              schema:+                format: int64+                type: integer+            X-Total:+              description: Total commit count+              schema:+                format: int64+                type: integer+            X-Page:+              description: The current page+              schema:+                format: int64+                type: integer+        "404":+          content: {}+          description: APINotFound is a not found empty response+      summary: Get commits for a pull request+      tags:+      - repository+  /repos/{owner}/{repo}/pulls/{index}/files:+    get:+      operationId: repoGetPullRequestFiles+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: index of the pull request to get+        in: path+        name: index+        required: true+        schema:+          format: int64+          type: integer+      - description: skip to given file+        in: query+        name: skip-to+        schema:+          type: string+      - description: whitespace behavior+        in: query+        name: whitespace+        schema:+          enum:+          - ignore-all+          - ignore-change+          - ignore-eol+          - show-all+          type: string+      - description: page number of results to return (1-based)+        in: query+        name: page+        schema:+          type: integer+      - description: page size of results+        in: query+        name: limit+        schema:+          type: integer+      responses:+        "200":+          content:+            application/json:+              schema:+                items:+                  $ref: '#/components/schemas/ChangedFile'+                type: array+          description: ChangedFileList+          headers:+            X-HasMore:+              description: True if there is another page+              schema:+                type: boolean+            X-PageCount:+              description: Total number of pages+              schema:+                format: int64+                type: integer+            X-PerPage:+              description: Commits per page+              schema:+                format: int64+                type: integer+            X-Total:+              description: Total commit count+              schema:+                format: int64+                type: integer+            X-Page:+              description: The current page+              schema:+                format: int64+                type: integer+        "404":+          content: {}+          description: APINotFound is a not found empty response+      summary: Get changed files for a pull request+      tags:+      - repository+  /repos/{owner}/{repo}/pulls/{index}/merge:+    delete:+      operationId: repoCancelScheduledAutoMerge+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: index of the pull request to merge+        in: path+        name: index+        required: true+        schema:+          format: int64+          type: integer+      responses:+        "204":+          content: {}+          description: APIEmpty is an empty response+        "403":+          content: {}+          description: APIForbiddenError is a forbidden error response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+        "404":+          content: {}+          description: APINotFound is a not found empty response+      summary: Cancel the scheduled auto merge for the given pull request+      tags:+      - repository+    get:+      operationId: repoPullRequestIsMerged+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: index of the pull request+        in: path+        name: index+        required: true+        schema:+          format: int64+          type: integer+      responses:+        "204":+          content: {}+          description: pull request has been merged+        "404":+          content: {}+          description: pull request has not been merged+      summary: Check if a pull request has been merged+      tags:+      - repository+    post:+      operationId: repoMergePullRequest+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: index of the pull request to merge+        in: path+        name: index+        required: true+        schema:+          format: int64+          type: integer+      requestBody:+        content:+          application/json:+            schema:+              $ref: '#/components/schemas/MergePullRequestOption'+          text/plain:+            schema:+              $ref: '#/components/schemas/MergePullRequestOption'+        required: false+      responses:+        "200":+          content: {}+          description: APIEmpty is an empty response+        "405":+          content: {}+          description: APIEmpty is an empty response+        "409":+          content: {}+          description: APIError is error format response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: Merge a pull request+      tags:+      - repository+      x-codegen-request-body-name: body+  /repos/{owner}/{repo}/pulls/{index}/requested_reviewers:+    delete:+      operationId: repoDeletePullReviewRequests+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: index of the pull request+        in: path+        name: index+        required: true+        schema:+          format: int64+          type: integer+      requestBody:+        content:+          application/json:+            schema:+              $ref: '#/components/schemas/PullReviewRequestOptions'+          text/plain:+            schema:+              $ref: '#/components/schemas/PullReviewRequestOptions'+        required: true+      responses:+        "204":+          content: {}+          description: APIEmpty is an empty response+        "404":+          content: {}+          description: APINotFound is a not found empty response+        "422":+          content: {}+          description: APIValidationError is error format response related to input+            validation+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: cancel review requests for a pull request+      tags:+      - repository+      x-codegen-request-body-name: body+    post:+      operationId: repoCreatePullReviewRequests+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: index of the pull request+        in: path+        name: index+        required: true+        schema:+          format: int64+          type: integer+      requestBody:+        content:+          application/json:+            schema:+              $ref: '#/components/schemas/PullReviewRequestOptions'+          text/plain:+            schema:+              $ref: '#/components/schemas/PullReviewRequestOptions'+        required: true+      responses:+        "201":+          content:+            application/json:+              schema:+                items:+                  $ref: '#/components/schemas/PullReview'+                type: array+          description: PullReviewList+        "404":+          content: {}+          description: APINotFound is a not found empty response+        "422":+          content: {}+          description: APIValidationError is error format response related to input+            validation+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: create review requests for a pull request+      tags:+      - repository+      x-codegen-request-body-name: body+  /repos/{owner}/{repo}/pulls/{index}/reviews:+    get:+      operationId: repoListPullReviews+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: index of the pull request+        in: path+        name: index+        required: true+        schema:+          format: int64+          type: integer+      - description: page number of results to return (1-based)+        in: query+        name: page+        schema:+          type: integer+      - description: page size of results+        in: query+        name: limit+        schema:+          type: integer+      responses:+        "200":+          content:+            application/json:+              schema:+                items:+                  $ref: '#/components/schemas/PullReview'+                type: array+          description: PullReviewList+        "404":+          content: {}+          description: APINotFound is a not found empty response+      summary: List all reviews for a pull request+      tags:+      - repository+    post:+      operationId: repoCreatePullReview+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: index of the pull request+        in: path+        name: index+        required: true+        schema:+          format: int64+          type: integer+      requestBody:+        content:+          application/json:+            schema:+              $ref: '#/components/schemas/CreatePullReviewOptions'+          text/plain:+            schema:+              $ref: '#/components/schemas/CreatePullReviewOptions'+        required: true+      responses:+        "200":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/PullReview'+          description: PullReview+        "404":+          content: {}+          description: APINotFound is a not found empty response+        "422":+          content: {}+          description: APIValidationError is error format response related to input+            validation+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: Create a review to an pull request+      tags:+      - repository+      x-codegen-request-body-name: body+  /repos/{owner}/{repo}/pulls/{index}/reviews/{id}:+    delete:+      operationId: repoDeletePullReview+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: index of the pull request+        in: path+        name: index+        required: true+        schema:+          format: int64+          type: integer+      - description: id of the review+        in: path+        name: id+        required: true+        schema:+          format: int64+          type: integer+      responses:+        "204":+          content: {}+          description: APIEmpty is an empty response+        "403":+          content: {}+          description: APIForbiddenError is a forbidden error response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+        "404":+          content: {}+          description: APINotFound is a not found empty response+      summary: Delete a specific review from a pull request+      tags:+      - repository+    get:+      operationId: repoGetPullReview+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: index of the pull request+        in: path+        name: index+        required: true+        schema:+          format: int64+          type: integer+      - description: id of the review+        in: path+        name: id+        required: true+        schema:+          format: int64+          type: integer+      responses:+        "200":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/PullReview'+          description: PullReview+        "404":+          content: {}+          description: APINotFound is a not found empty response+      summary: Get a specific review for a pull request+      tags:+      - repository+    post:+      operationId: repoSubmitPullReview+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: index of the pull request+        in: path+        name: index+        required: true+        schema:+          format: int64+          type: integer+      - description: id of the review+        in: path+        name: id+        required: true+        schema:+          format: int64+          type: integer+      requestBody:+        content:+          application/json:+            schema:+              $ref: '#/components/schemas/SubmitPullReviewOptions'+          text/plain:+            schema:+              $ref: '#/components/schemas/SubmitPullReviewOptions'+        required: true+      responses:+        "200":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/PullReview'+          description: PullReview+        "404":+          content: {}+          description: APINotFound is a not found empty response+        "422":+          content: {}+          description: APIValidationError is error format response related to input+            validation+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: Submit a pending review to an pull request+      tags:+      - repository+      x-codegen-request-body-name: body+  /repos/{owner}/{repo}/pulls/{index}/reviews/{id}/comments:+    get:+      operationId: repoGetPullReviewComments+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: index of the pull request+        in: path+        name: index+        required: true+        schema:+          format: int64+          type: integer+      - description: id of the review+        in: path+        name: id+        required: true+        schema:+          format: int64+          type: integer+      responses:+        "200":+          content:+            application/json:+              schema:+                items:+                  $ref: '#/components/schemas/PullReviewComment'+                type: array+          description: PullCommentList+        "404":+          content: {}+          description: APINotFound is a not found empty response+      summary: Get a specific review for a pull request+      tags:+      - repository+  /repos/{owner}/{repo}/pulls/{index}/reviews/{id}/dismissals:+    post:+      operationId: repoDismissPullReview+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: index of the pull request+        in: path+        name: index+        required: true+        schema:+          format: int64+          type: integer+      - description: id of the review+        in: path+        name: id+        required: true+        schema:+          format: int64+          type: integer+      requestBody:+        content:+          application/json:+            schema:+              $ref: '#/components/schemas/DismissPullReviewOptions'+          text/plain:+            schema:+              $ref: '#/components/schemas/DismissPullReviewOptions'+        required: true+      responses:+        "200":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/PullReview'+          description: PullReview+        "403":+          content: {}+          description: APIForbiddenError is a forbidden error response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+        "422":+          content: {}+          description: APIValidationError is error format response related to input+            validation+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: Dismiss a review for a pull request+      tags:+      - repository+      x-codegen-request-body-name: body+  /repos/{owner}/{repo}/pulls/{index}/reviews/{id}/undismissals:+    post:+      operationId: repoUnDismissPullReview+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: index of the pull request+        in: path+        name: index+        required: true+        schema:+          format: int64+          type: integer+      - description: id of the review+        in: path+        name: id+        required: true+        schema:+          format: int64+          type: integer+      responses:+        "200":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/PullReview'+          description: PullReview+        "403":+          content: {}+          description: APIForbiddenError is a forbidden error response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+        "422":+          content: {}+          description: APIValidationError is error format response related to input+            validation+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: Cancel to dismiss a review for a pull request+      tags:+      - repository+  /repos/{owner}/{repo}/pulls/{index}/update:+    post:+      operationId: repoUpdatePullRequest+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: index of the pull request to get+        in: path+        name: index+        required: true+        schema:+          format: int64+          type: integer+      - description: how to update pull request+        in: query+        name: style+        schema:+          enum:+          - merge+          - rebase+          type: string+      responses:+        "200":+          content: {}+          description: APIEmpty is an empty response+        "403":+          content: {}+          description: APIForbiddenError is a forbidden error response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+        "404":+          content: {}+          description: APINotFound is a not found empty response+        "409":+          content: {}+          description: APIError is error format response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+        "422":+          content: {}+          description: APIValidationError is error format response related to input+            validation+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: Merge PR's baseBranch into headBranch+      tags:+      - repository+  /repos/{owner}/{repo}/push_mirrors:+    get:+      operationId: repoListPushMirrors+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: page number of results to return (1-based)+        in: query+        name: page+        schema:+          type: integer+      - description: page size of results+        in: query+        name: limit+        schema:+          type: integer+      responses:+        "200":+          content:+            application/json:+              schema:+                items:+                  $ref: '#/components/schemas/PushMirror'+                type: array+          description: PushMirrorList+        "400":+          content: {}+          description: APIError is error format response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+        "403":+          content: {}+          description: APIForbiddenError is a forbidden error response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: Get all push mirrors of the repository+      tags:+      - repository+    post:+      operationId: repoAddPushMirror+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      requestBody:+        content:+          application/json:+            schema:+              $ref: '#/components/schemas/CreatePushMirrorOption'+        required: false+      responses:+        "201":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/PushMirror'+          description: PushMirror+        "400":+          content: {}+          description: APIError is error format response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+        "403":+          content: {}+          description: APIForbiddenError is a forbidden error response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: add a push mirror to the repository+      tags:+      - repository+      x-codegen-request-body-name: body+  /repos/{owner}/{repo}/push_mirrors-sync:+    post:+      operationId: repoPushMirrorSync+      parameters:+      - description: owner of the repo to sync+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo to sync+        in: path+        name: repo+        required: true+        schema:+          type: string+      responses:+        "200":+          content: {}+          description: APIEmpty is an empty response+        "400":+          content: {}+          description: APIError is error format response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+        "403":+          content: {}+          description: APIForbiddenError is a forbidden error response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: Sync all push mirrored repository+      tags:+      - repository+  /repos/{owner}/{repo}/push_mirrors/{name}:+    delete:+      operationId: repoDeletePushMirror+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: remote name of the pushMirror+        in: path+        name: name+        required: true+        schema:+          type: string+      responses:+        "204":+          content: {}+          description: APIEmpty is an empty response+        "400":+          content: {}+          description: APIError is error format response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+        "404":+          content: {}+          description: APINotFound is a not found empty response+      summary: deletes a push mirror from a repository by remoteName+      tags:+      - repository+    get:+      operationId: repoGetPushMirrorByRemoteName+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: remote name of push mirror+        in: path+        name: name+        required: true+        schema:+          type: string+      responses:+        "200":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/PushMirror'+          description: PushMirror+        "400":+          content: {}+          description: APIError is error format response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+        "403":+          content: {}+          description: APIForbiddenError is a forbidden error response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: Get push mirror of the repository by remoteName+      tags:+      - repository+  /repos/{owner}/{repo}/raw/{filepath}:+    get:+      operationId: repoGetRawFile+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: filepath of the file to get+        in: path+        name: filepath+        required: true+        schema:+          type: string+      - description: The name of the commit/branch/tag. Default the repository’s default+          branch (usually master)+        in: query+        name: ref+        schema:+          type: string+      responses:+        "200":+          content: {}+          description: Returns raw file content.+        "404":+          content: {}+          description: APINotFound is a not found empty response+      summary: Get a file from a repository+      tags:+      - repository+  /repos/{owner}/{repo}/releases:+    get:+      operationId: repoListReleases+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: "filter (exclude / include) drafts, if you dont have repo write\+          \ access none will show"+        in: query+        name: draft+        schema:+          type: boolean+      - description: filter (exclude / include) pre-releases+        in: query+        name: pre-release+        schema:+          type: boolean+      - description: "page size of results, deprecated - use limit"+        in: query+        name: per_page+        schema:+          type: integer+      - description: page number of results to return (1-based)+        in: query+        name: page+        schema:+          type: integer+      - description: page size of results+        in: query+        name: limit+        schema:+          type: integer+      responses:+        "200":+          content:+            application/json:+              schema:+                items:+                  $ref: '#/components/schemas/Release'+                type: array+          description: ReleaseList+      summary: List a repo's releases+      tags:+      - repository+    post:+      operationId: repoCreateRelease+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      requestBody:+        content:+          application/json:+            schema:+              $ref: '#/components/schemas/CreateReleaseOption'+        required: false+      responses:+        "201":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/Release'+          description: Release+        "404":+          content: {}+          description: APINotFound is a not found empty response+        "409":+          content: {}+          description: APIError is error format response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: Create a release+      tags:+      - repository+      x-codegen-request-body-name: body+  /repos/{owner}/{repo}/releases/latest:+    get:+      operationId: repoGetLatestRelease+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      responses:+        "200":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/Release'+          description: Release+        "404":+          content: {}+          description: APINotFound is a not found empty response+      summary: "Gets the most recent non-prerelease, non-draft release of a repository,\+        \ sorted by created_at"+      tags:+      - repository+  /repos/{owner}/{repo}/releases/tags/{tag}:+    delete:+      operationId: repoDeleteReleaseByTag+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: tag name of the release to delete+        in: path+        name: tag+        required: true+        schema:+          type: string+      responses:+        "204":+          content: {}+          description: APIEmpty is an empty response+        "404":+          content: {}+          description: APINotFound is a not found empty response+        "405":+          content: {}+          description: APIEmpty is an empty response+      summary: Delete a release by tag name+      tags:+      - repository+    get:+      operationId: repoGetReleaseByTag+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: tag name of the release to get+        in: path+        name: tag+        required: true+        schema:+          type: string+      responses:+        "200":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/Release'+          description: Release+        "404":+          content: {}+          description: APINotFound is a not found empty response+      summary: Get a release by tag name+      tags:+      - repository+  /repos/{owner}/{repo}/releases/{id}:+    delete:+      operationId: repoDeleteRelease+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: id of the release to delete+        in: path+        name: id+        required: true+        schema:+          format: int64+          type: integer+      responses:+        "204":+          content: {}+          description: APIEmpty is an empty response+        "404":+          content: {}+          description: APINotFound is a not found empty response+        "405":+          content: {}+          description: APIEmpty is an empty response+      summary: Delete a release+      tags:+      - repository+    get:+      operationId: repoGetRelease+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: id of the release to get+        in: path+        name: id+        required: true+        schema:+          format: int64+          type: integer+      responses:+        "200":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/Release'+          description: Release+        "404":+          content: {}+          description: APINotFound is a not found empty response+      summary: Get a release+      tags:+      - repository+    patch:+      operationId: repoEditRelease+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: id of the release to edit+        in: path+        name: id+        required: true+        schema:+          format: int64+          type: integer+      requestBody:+        content:+          application/json:+            schema:+              $ref: '#/components/schemas/EditReleaseOption'+        required: false+      responses:+        "200":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/Release'+          description: Release+        "404":+          content: {}+          description: APINotFound is a not found empty response+      summary: Update a release+      tags:+      - repository+      x-codegen-request-body-name: body+  /repos/{owner}/{repo}/releases/{id}/assets:+    get:+      operationId: repoListReleaseAttachments+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: id of the release+        in: path+        name: id+        required: true+        schema:+          format: int64+          type: integer+      responses:+        "200":+          content:+            application/json:+              schema:+                items:+                  $ref: '#/components/schemas/Attachment'+                type: array+          description: AttachmentList+      summary: List release's attachments+      tags:+      - repository+    post:+      operationId: repoCreateReleaseAttachment+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: id of the release+        in: path+        name: id+        required: true+        schema:+          format: int64+          type: integer+      - description: name of the attachment+        in: query+        name: name+        schema:+          type: string+      requestBody:+        content:+          multipart/form-data:+            schema:+              $ref: '#/components/schemas/issueCreateIssueCommentAttachment_request'+        required: true+      responses:+        "201":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/Attachment'+          description: Attachment+        "400":+          content: {}+          description: APIError is error format response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: Create a release attachment+      tags:+      - repository+  /repos/{owner}/{repo}/releases/{id}/assets/{attachment_id}:+    delete:+      operationId: repoDeleteReleaseAttachment+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: id of the release+        in: path+        name: id+        required: true+        schema:+          format: int64+          type: integer+      - description: id of the attachment to delete+        in: path+        name: attachment_id+        required: true+        schema:+          format: int64+          type: integer+      responses:+        "204":+          content: {}+          description: APIEmpty is an empty response+      summary: Delete a release attachment+      tags:+      - repository+    get:+      operationId: repoGetReleaseAttachment+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: id of the release+        in: path+        name: id+        required: true+        schema:+          format: int64+          type: integer+      - description: id of the attachment to get+        in: path+        name: attachment_id+        required: true+        schema:+          format: int64+          type: integer+      responses:+        "200":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/Attachment'+          description: Attachment+      summary: Get a release attachment+      tags:+      - repository+    patch:+      operationId: repoEditReleaseAttachment+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: id of the release+        in: path+        name: id+        required: true+        schema:+          format: int64+          type: integer+      - description: id of the attachment to edit+        in: path+        name: attachment_id+        required: true+        schema:+          format: int64+          type: integer+      requestBody:+        content:+          application/json:+            schema:+              $ref: '#/components/schemas/EditAttachmentOptions'+        required: false+      responses:+        "201":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/Attachment'+          description: Attachment+      summary: Edit a release attachment+      tags:+      - repository+      x-codegen-request-body-name: body+  /repos/{owner}/{repo}/reviewers:+    get:+      operationId: repoGetReviewers+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      responses:+        "200":+          content:+            application/json:+              schema:+                items:+                  $ref: '#/components/schemas/User'+                type: array+          description: UserList+      summary: Return all users that can be requested to review in this repo+      tags:+      - repository+  /repos/{owner}/{repo}/signing-key.gpg:+    get:+      operationId: repoSigningKey+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      responses:+        "200":+          content:+            text/plain:+              schema:+                type: string+          description: GPG armored public key+      summary: Get signing-key.gpg for given repository+      tags:+      - repository+  /repos/{owner}/{repo}/stargazers:+    get:+      operationId: repoListStargazers+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: page number of results to return (1-based)+        in: query+        name: page+        schema:+          type: integer+      - description: page size of results+        in: query+        name: limit+        schema:+          type: integer+      responses:+        "200":+          content:+            application/json:+              schema:+                items:+                  $ref: '#/components/schemas/User'+                type: array+          description: UserList+      summary: List a repo's stargazers+      tags:+      - repository+  /repos/{owner}/{repo}/statuses/{sha}:+    get:+      operationId: repoListStatuses+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: sha of the commit+        in: path+        name: sha+        required: true+        schema:+          type: string+      - description: type of sort+        in: query+        name: sort+        schema:+          enum:+          - oldest+          - recentupdate+          - leastupdate+          - leastindex+          - highestindex+          type: string+      - description: type of state+        in: query+        name: state+        schema:+          enum:+          - pending+          - success+          - error+          - failure+          - warning+          type: string+      - description: page number of results to return (1-based)+        in: query+        name: page+        schema:+          type: integer+      - description: page size of results+        in: query+        name: limit+        schema:+          type: integer+      responses:+        "200":+          content:+            application/json:+              schema:+                items:+                  $ref: '#/components/schemas/CommitStatus'+                type: array+          description: CommitStatusList+        "400":+          content: {}+          description: APIError is error format response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: Get a commit's statuses+      tags:+      - repository+    post:+      operationId: repoCreateStatus+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: sha of the commit+        in: path+        name: sha+        required: true+        schema:+          type: string+      requestBody:+        content:+          application/json:+            schema:+              $ref: '#/components/schemas/CreateStatusOption'+          text/plain:+            schema:+              $ref: '#/components/schemas/CreateStatusOption'+        required: false+      responses:+        "201":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/CommitStatus'+          description: CommitStatus+        "400":+          content: {}+          description: APIError is error format response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: Create a commit status+      tags:+      - repository+      x-codegen-request-body-name: body+  /repos/{owner}/{repo}/subscribers:+    get:+      operationId: repoListSubscribers+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: page number of results to return (1-based)+        in: query+        name: page+        schema:+          type: integer+      - description: page size of results+        in: query+        name: limit+        schema:+          type: integer+      responses:+        "200":+          content:+            application/json:+              schema:+                items:+                  $ref: '#/components/schemas/User'+                type: array+          description: UserList+      summary: List a repo's watchers+      tags:+      - repository+  /repos/{owner}/{repo}/subscription:+    delete:+      operationId: userCurrentDeleteSubscription+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      responses:+        "204":+          content: {}+          description: APIEmpty is an empty response+      summary: Unwatch a repo+      tags:+      - repository+    get:+      operationId: userCurrentCheckSubscription+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      responses:+        "200":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/WatchInfo'+            text/html:+              schema:+                $ref: '#/components/schemas/WatchInfo'+          description: WatchInfo+        "404":+          content: {}+          description: User is not watching this repo or repo do not exist+      summary: Check if the current user is watching a repo+      tags:+      - repository+    put:+      operationId: userCurrentPutSubscription+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      responses:+        "200":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/WatchInfo'+            text/html:+              schema:+                $ref: '#/components/schemas/WatchInfo'+          description: WatchInfo+      summary: Watch a repo+      tags:+      - repository+  /repos/{owner}/{repo}/tags:+    get:+      operationId: repoListTags+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: page number of results to return (1-based)+        in: query+        name: page+        schema:+          type: integer+      - description: "page size of results, default maximum page size is 50"+        in: query+        name: limit+        schema:+          type: integer+      responses:+        "200":+          content:+            application/json:+              schema:+                items:+                  $ref: '#/components/schemas/Tag'+                type: array+          description: TagList+      summary: List a repository's tags+      tags:+      - repository+    post:+      operationId: repoCreateTag+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      requestBody:+        content:+          application/json:+            schema:+              $ref: '#/components/schemas/CreateTagOption'+          text/plain:+            schema:+              $ref: '#/components/schemas/CreateTagOption'+        required: false+      responses:+        "200":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/Tag'+          description: Tag+        "404":+          content: {}+          description: APINotFound is a not found empty response+        "405":+          content: {}+          description: APIEmpty is an empty response+        "409":+          content: {}+          description: APIConflict is a conflict empty response+      summary: Create a new git tag in a repository+      tags:+      - repository+      x-codegen-request-body-name: body+  /repos/{owner}/{repo}/tags/{tag}:+    delete:+      operationId: repoDeleteTag+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: name of tag to delete+        in: path+        name: tag+        required: true+        schema:+          type: string+      responses:+        "204":+          content: {}+          description: APIEmpty is an empty response+        "404":+          content: {}+          description: APINotFound is a not found empty response+        "405":+          content: {}+          description: APIEmpty is an empty response+        "409":+          content: {}+          description: APIConflict is a conflict empty response+      summary: Delete a repository's tag by name+      tags:+      - repository+    get:+      operationId: repoGetTag+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: name of tag+        in: path+        name: tag+        required: true+        schema:+          type: string+      responses:+        "200":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/Tag'+          description: Tag+        "404":+          content: {}+          description: APINotFound is a not found empty response+      summary: Get the tag of a repository by tag name+      tags:+      - repository+  /repos/{owner}/{repo}/teams:+    get:+      operationId: repoListTeams+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      responses:+        "200":+          content:+            application/json:+              schema:+                items:+                  $ref: '#/components/schemas/Team'+                type: array+          description: TeamList+      summary: List a repository's teams+      tags:+      - repository+  /repos/{owner}/{repo}/teams/{team}:+    delete:+      operationId: repoDeleteTeam+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: team name+        in: path+        name: team+        required: true+        schema:+          type: string+      responses:+        "204":+          content: {}+          description: APIEmpty is an empty response+        "405":+          content: {}+          description: APIError is error format response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+        "422":+          content: {}+          description: APIValidationError is error format response related to input+            validation+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: Delete a team from a repository+      tags:+      - repository+    get:+      operationId: repoCheckTeam+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: team name+        in: path+        name: team+        required: true+        schema:+          type: string+      responses:+        "200":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/Team'+          description: Team+        "404":+          content: {}+          description: APINotFound is a not found empty response+        "405":+          content: {}+          description: APIError is error format response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: Check if a team is assigned to a repository+      tags:+      - repository+    put:+      operationId: repoAddTeam+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: team name+        in: path+        name: team+        required: true+        schema:+          type: string+      responses:+        "204":+          content: {}+          description: APIEmpty is an empty response+        "405":+          content: {}+          description: APIError is error format response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+        "422":+          content: {}+          description: APIValidationError is error format response related to input+            validation+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: Add a team to a repository+      tags:+      - repository+  /repos/{owner}/{repo}/times:+    get:+      operationId: repoTrackedTimes+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: optional filter by user (available for issue managers)+        in: query+        name: user+        schema:+          type: string+      - description: Only show times updated after the given time. This is a timestamp+          in RFC 3339 format+        in: query+        name: since+        schema:+          format: date-time+          type: string+      - description: Only show times updated before the given time. This is a timestamp+          in RFC 3339 format+        in: query+        name: before+        schema:+          format: date-time+          type: string+      - description: page number of results to return (1-based)+        in: query+        name: page+        schema:+          type: integer+      - description: page size of results+        in: query+        name: limit+        schema:+          type: integer+      responses:+        "200":+          content:+            application/json:+              schema:+                items:+                  $ref: '#/components/schemas/TrackedTime'+                type: array+          description: TrackedTimeList+        "400":+          content: {}+          description: APIError is error format response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+        "403":+          content: {}+          description: APIForbiddenError is a forbidden error response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: List a repo's tracked times+      tags:+      - repository+  /repos/{owner}/{repo}/times/{user}:+    get:+      deprecated: true+      operationId: userTrackedTimes+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: username of user+        in: path+        name: user+        required: true+        schema:+          type: string+      responses:+        "200":+          content:+            application/json:+              schema:+                items:+                  $ref: '#/components/schemas/TrackedTime'+                type: array+          description: TrackedTimeList+        "400":+          content: {}+          description: APIError is error format response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+        "403":+          content: {}+          description: APIForbiddenError is a forbidden error response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: List a user's tracked times in a repo+      tags:+      - repository+  /repos/{owner}/{repo}/topics:+    get:+      operationId: repoListTopics+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: page number of results to return (1-based)+        in: query+        name: page+        schema:+          type: integer+      - description: page size of results+        in: query+        name: limit+        schema:+          type: integer+      responses:+        "200":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/TopicName'+          description: TopicNames+      summary: Get list of topics that a repository has+      tags:+      - repository+    put:+      operationId: repoUpdateTopics+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      requestBody:+        content:+          application/json:+            schema:+              $ref: '#/components/schemas/RepoTopicOptions'+          text/plain:+            schema:+              $ref: '#/components/schemas/RepoTopicOptions'+        required: false+      responses:+        "204":+          content: {}+          description: APIEmpty is an empty response+        "422":+          content: {}+          description: APIInvalidTopicsError is error format response to invalid topics+          headers:+            invalidTopics:+              schema:+                items:+                  type: string+                type: array+            message:+              schema:+                type: string+      summary: Replace list of topics for a repository+      tags:+      - repository+      x-codegen-request-body-name: body+  /repos/{owner}/{repo}/topics/{topic}:+    delete:+      operationId: repoDeleteTopic+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: name of the topic to delete+        in: path+        name: topic+        required: true+        schema:+          type: string+      responses:+        "204":+          content: {}+          description: APIEmpty is an empty response+        "422":+          content: {}+          description: APIInvalidTopicsError is error format response to invalid topics+          headers:+            invalidTopics:+              schema:+                items:+                  type: string+                type: array+            message:+              schema:+                type: string+      summary: Delete a topic from a repository+      tags:+      - repository+    put:+      operationId: repoAddTopic+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: name of the topic to add+        in: path+        name: topic+        required: true+        schema:+          type: string+      responses:+        "204":+          content: {}+          description: APIEmpty is an empty response+        "422":+          content: {}+          description: APIInvalidTopicsError is error format response to invalid topics+          headers:+            invalidTopics:+              schema:+                items:+                  type: string+                type: array+            message:+              schema:+                type: string+      summary: Add a topic to a repository+      tags:+      - repository+  /repos/{owner}/{repo}/transfer:+    post:+      operationId: repoTransfer+      parameters:+      - description: owner of the repo to transfer+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo to transfer+        in: path+        name: repo+        required: true+        schema:+          type: string+      requestBody:+        content:+          application/json:+            schema:+              $ref: '#/components/schemas/TransferRepoOption'+          text/plain:+            schema:+              $ref: '#/components/schemas/TransferRepoOption'+        description: Transfer Options+        required: true+      responses:+        "202":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/Repository'+          description: Repository+        "403":+          content: {}+          description: APIForbiddenError is a forbidden error response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+        "404":+          content: {}+          description: APINotFound is a not found empty response+        "422":+          content: {}+          description: APIValidationError is error format response related to input+            validation+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: Transfer a repo ownership+      tags:+      - repository+      x-codegen-request-body-name: body+  /repos/{owner}/{repo}/transfer/accept:+    post:+      operationId: acceptRepoTransfer+      parameters:+      - description: owner of the repo to transfer+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo to transfer+        in: path+        name: repo+        required: true+        schema:+          type: string+      responses:+        "202":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/Repository'+          description: Repository+        "403":+          content: {}+          description: APIForbiddenError is a forbidden error response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+        "404":+          content: {}+          description: APINotFound is a not found empty response+      summary: Accept a repo transfer+      tags:+      - repository+  /repos/{owner}/{repo}/transfer/reject:+    post:+      operationId: rejectRepoTransfer+      parameters:+      - description: owner of the repo to transfer+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo to transfer+        in: path+        name: repo+        required: true+        schema:+          type: string+      responses:+        "200":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/Repository'+          description: Repository+        "403":+          content: {}+          description: APIForbiddenError is a forbidden error response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+        "404":+          content: {}+          description: APINotFound is a not found empty response+      summary: Reject a repo transfer+      tags:+      - repository+  /repos/{owner}/{repo}/wiki/new:+    post:+      operationId: repoCreateWikiPage+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      requestBody:+        content:+          application/json:+            schema:+              $ref: '#/components/schemas/CreateWikiPageOptions'+        required: false+      responses:+        "201":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/WikiPage'+            text/html:+              schema:+                $ref: '#/components/schemas/WikiPage'+          description: WikiPage+        "400":+          content: {}+          description: APIError is error format response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+        "403":+          content: {}+          description: APIForbiddenError is a forbidden error response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: Create a wiki page+      tags:+      - repository+      x-codegen-request-body-name: body+  /repos/{owner}/{repo}/wiki/page/{pageName}:+    delete:+      operationId: repoDeleteWikiPage+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: name of the page+        in: path+        name: pageName+        required: true+        schema:+          type: string+      responses:+        "204":+          content: {}+          description: APIEmpty is an empty response+        "403":+          content: {}+          description: APIForbiddenError is a forbidden error response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+        "404":+          content: {}+          description: APINotFound is a not found empty response+      summary: Delete a wiki page+      tags:+      - repository+    get:+      operationId: repoGetWikiPage+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: name of the page+        in: path+        name: pageName+        required: true+        schema:+          type: string+      responses:+        "200":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/WikiPage'+          description: WikiPage+        "404":+          content: {}+          description: APINotFound is a not found empty response+      summary: Get a wiki page+      tags:+      - repository+    patch:+      operationId: repoEditWikiPage+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: name of the page+        in: path+        name: pageName+        required: true+        schema:+          type: string+      requestBody:+        content:+          application/json:+            schema:+              $ref: '#/components/schemas/CreateWikiPageOptions'+        required: false+      responses:+        "200":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/WikiPage'+            text/html:+              schema:+                $ref: '#/components/schemas/WikiPage'+          description: WikiPage+        "400":+          content: {}+          description: APIError is error format response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+        "403":+          content: {}+          description: APIForbiddenError is a forbidden error response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: Edit a wiki page+      tags:+      - repository+      x-codegen-request-body-name: body+  /repos/{owner}/{repo}/wiki/pages:+    get:+      operationId: repoGetWikiPages+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: page number of results to return (1-based)+        in: query+        name: page+        schema:+          type: integer+      - description: page size of results+        in: query+        name: limit+        schema:+          type: integer+      responses:+        "200":+          content:+            application/json:+              schema:+                items:+                  $ref: '#/components/schemas/WikiPageMetaData'+                type: array+          description: WikiPageList+        "404":+          content: {}+          description: APINotFound is a not found empty response+      summary: Get all wiki pages+      tags:+      - repository+  /repos/{owner}/{repo}/wiki/revisions/{pageName}:+    get:+      operationId: repoGetWikiPageRevisions+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      - description: name of the page+        in: path+        name: pageName+        required: true+        schema:+          type: string+      - description: page number of results to return (1-based)+        in: query+        name: page+        schema:+          type: integer+      responses:+        "200":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/WikiCommitList'+          description: WikiCommitList+        "404":+          content: {}+          description: APINotFound is a not found empty response+      summary: Get revisions of a wiki page+      tags:+      - repository+  /repos/{template_owner}/{template_repo}/generate:+    post:+      operationId: generateRepo+      parameters:+      - description: name of the template repository owner+        in: path+        name: template_owner+        required: true+        schema:+          type: string+      - description: name of the template repository+        in: path+        name: template_repo+        required: true+        schema:+          type: string+      requestBody:+        content:+          application/json:+            schema:+              $ref: '#/components/schemas/GenerateRepoOption'+        required: false+      responses:+        "201":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/Repository'+          description: Repository+        "403":+          content: {}+          description: APIForbiddenError is a forbidden error response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+        "404":+          content: {}+          description: APINotFound is a not found empty response+        "409":+          content: {}+          description: The repository with the same name already exists.+        "422":+          content: {}+          description: APIValidationError is error format response related to input+            validation+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: Create a repository using a template+      tags:+      - repository+      x-codegen-request-body-name: body+  /repositories/{id}:+    get:+      operationId: repoGetByID+      parameters:+      - description: id of the repo to get+        in: path+        name: id+        required: true+        schema:+          format: int64+          type: integer+      responses:+        "200":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/Repository'+          description: Repository+      summary: Get a repository by id+      tags:+      - repository+  /settings/api:+    get:+      operationId: getGeneralAPISettings+      responses:+        "200":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/GeneralAPISettings'+          description: GeneralAPISettings+      summary: Get instance's global settings for api+      tags:+      - settings+  /settings/attachment:+    get:+      operationId: getGeneralAttachmentSettings+      responses:+        "200":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/GeneralAttachmentSettings'+          description: GeneralAttachmentSettings+      summary: Get instance's global settings for Attachment+      tags:+      - settings+  /settings/repository:+    get:+      operationId: getGeneralRepositorySettings+      responses:+        "200":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/GeneralRepoSettings'+          description: GeneralRepoSettings+      summary: Get instance's global settings for repositories+      tags:+      - settings+  /settings/ui:+    get:+      operationId: getGeneralUISettings+      responses:+        "200":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/GeneralUISettings'+          description: GeneralUISettings+      summary: Get instance's global settings for ui+      tags:+      - settings+  /signing-key.gpg:+    get:+      operationId: getSigningKey+      responses:+        "200":+          content:+            text/plain:+              schema:+                type: string+          description: GPG armored public key+      summary: Get default signing-key.gpg+      tags:+      - miscellaneous+  /teams/{id}:+    delete:+      operationId: orgDeleteTeam+      parameters:+      - description: id of the team to delete+        in: path+        name: id+        required: true+        schema:+          format: int64+          type: integer+      responses:+        "204":+          content: {}+          description: team deleted+      summary: Delete a team+      tags:+      - organization+    get:+      operationId: orgGetTeam+      parameters:+      - description: id of the team to get+        in: path+        name: id+        required: true+        schema:+          format: int64+          type: integer+      responses:+        "200":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/Team'+          description: Team+      summary: Get a team+      tags:+      - organization+    patch:+      operationId: orgEditTeam+      parameters:+      - description: id of the team to edit+        in: path+        name: id+        required: true+        schema:+          type: integer+      requestBody:+        content:+          application/json:+            schema:+              $ref: '#/components/schemas/EditTeamOption'+        required: false+      responses:+        "200":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/Team'+          description: Team+      summary: Edit a team+      tags:+      - organization+      x-codegen-request-body-name: body+  /teams/{id}/members:+    get:+      operationId: orgListTeamMembers+      parameters:+      - description: id of the team+        in: path+        name: id+        required: true+        schema:+          format: int64+          type: integer+      - description: page number of results to return (1-based)+        in: query+        name: page+        schema:+          type: integer+      - description: page size of results+        in: query+        name: limit+        schema:+          type: integer+      responses:+        "200":+          content:+            application/json:+              schema:+                items:+                  $ref: '#/components/schemas/User'+                type: array+          description: UserList+      summary: List a team's members+      tags:+      - organization+  /teams/{id}/members/{username}:+    delete:+      operationId: orgRemoveTeamMember+      parameters:+      - description: id of the team+        in: path+        name: id+        required: true+        schema:+          format: int64+          type: integer+      - description: username of the user to remove+        in: path+        name: username+        required: true+        schema:+          type: string+      responses:+        "204":+          content: {}+          description: APIEmpty is an empty response+        "404":+          content: {}+          description: APINotFound is a not found empty response+      summary: Remove a team member+      tags:+      - organization+    get:+      operationId: orgListTeamMember+      parameters:+      - description: id of the team+        in: path+        name: id+        required: true+        schema:+          format: int64+          type: integer+      - description: username of the member to list+        in: path+        name: username+        required: true+        schema:+          type: string+      responses:+        "200":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/User'+          description: User+        "404":+          content: {}+          description: APINotFound is a not found empty response+      summary: List a particular member of team+      tags:+      - organization+    put:+      operationId: orgAddTeamMember+      parameters:+      - description: id of the team+        in: path+        name: id+        required: true+        schema:+          format: int64+          type: integer+      - description: username of the user to add+        in: path+        name: username+        required: true+        schema:+          type: string+      responses:+        "204":+          content: {}+          description: APIEmpty is an empty response+        "404":+          content: {}+          description: APINotFound is a not found empty response+      summary: Add a team member+      tags:+      - organization+  /teams/{id}/repos:+    get:+      operationId: orgListTeamRepos+      parameters:+      - description: id of the team+        in: path+        name: id+        required: true+        schema:+          format: int64+          type: integer+      - description: page number of results to return (1-based)+        in: query+        name: page+        schema:+          type: integer+      - description: page size of results+        in: query+        name: limit+        schema:+          type: integer+      responses:+        "200":+          content:+            application/json:+              schema:+                items:+                  $ref: '#/components/schemas/Repository'+                type: array+          description: RepositoryList+      summary: List a team's repos+      tags:+      - organization+  /teams/{id}/repos/{org}/{repo}:+    delete:+      description: "This does not delete the repository, it only removes the repository\+        \ from the team."+      operationId: orgRemoveTeamRepository+      parameters:+      - description: id of the team+        in: path+        name: id+        required: true+        schema:+          format: int64+          type: integer+      - description: organization that owns the repo to remove+        in: path+        name: org+        required: true+        schema:+          type: string+      - description: name of the repo to remove+        in: path+        name: repo+        required: true+        schema:+          type: string+      responses:+        "204":+          content: {}+          description: APIEmpty is an empty response+        "403":+          content: {}+          description: APIForbiddenError is a forbidden error response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: Remove a repository from a team+      tags:+      - organization+    get:+      operationId: orgListTeamRepo+      parameters:+      - description: id of the team+        in: path+        name: id+        required: true+        schema:+          format: int64+          type: integer+      - description: organization that owns the repo to list+        in: path+        name: org+        required: true+        schema:+          type: string+      - description: name of the repo to list+        in: path+        name: repo+        required: true+        schema:+          type: string+      responses:+        "200":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/Repository'+          description: Repository+        "404":+          content: {}+          description: APINotFound is a not found empty response+      summary: List a particular repo of team+      tags:+      - organization+    put:+      operationId: orgAddTeamRepository+      parameters:+      - description: id of the team+        in: path+        name: id+        required: true+        schema:+          format: int64+          type: integer+      - description: organization that owns the repo to add+        in: path+        name: org+        required: true+        schema:+          type: string+      - description: name of the repo to add+        in: path+        name: repo+        required: true+        schema:+          type: string+      responses:+        "204":+          content: {}+          description: APIEmpty is an empty response+        "403":+          content: {}+          description: APIForbiddenError is a forbidden error response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: Add a repository to a team+      tags:+      - organization+  /topics/search:+    get:+      operationId: topicSearch+      parameters:+      - description: keywords to search+        in: query+        name: q+        required: true+        schema:+          type: string+      - description: page number of results to return (1-based)+        in: query+        name: page+        schema:+          type: integer+      - description: page size of results+        in: query+        name: limit+        schema:+          type: integer+      responses:+        "200":+          content:+            application/json:+              schema:+                items:+                  $ref: '#/components/schemas/TopicResponse'+                type: array+          description: TopicListResponse+        "403":+          content: {}+          description: APIForbiddenError is a forbidden error response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: search topics via keyword+      tags:+      - repository+  /user:+    get:+      operationId: userGetCurrent+      responses:+        "200":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/User'+          description: User+      summary: Get the authenticated user+      tags:+      - user+  /user/applications/oauth2:+    get:+      operationId: userGetOauth2Application+      parameters:+      - description: page number of results to return (1-based)+        in: query+        name: page+        schema:+          type: integer+      - description: page size of results+        in: query+        name: limit+        schema:+          type: integer+      responses:+        "200":+          content:+            application/json:+              schema:+                items:+                  $ref: '#/components/schemas/OAuth2Application'+                type: array+          description: OAuth2ApplicationList represents a list of OAuth2 applications.+      summary: List the authenticated user's oauth2 applications+      tags:+      - user+    post:+      operationId: userCreateOAuth2Application+      requestBody:+        content:+          application/json:+            schema:+              $ref: '#/components/schemas/CreateOAuth2ApplicationOptions'+          text/plain:+            schema:+              $ref: '#/components/schemas/CreateOAuth2ApplicationOptions'+        required: true+      responses:+        "201":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/OAuth2Application'+          description: OAuth2Application+        "400":+          content: {}+          description: APIError is error format response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: creates a new OAuth2 application+      tags:+      - user+      x-codegen-request-body-name: body+  /user/applications/oauth2/{id}:+    delete:+      operationId: userDeleteOAuth2Application+      parameters:+      - description: token to be deleted+        in: path+        name: id+        required: true+        schema:+          format: int64+          type: integer+      responses:+        "204":+          content: {}+          description: APIEmpty is an empty response+        "404":+          content: {}+          description: APINotFound is a not found empty response+      summary: delete an OAuth2 Application+      tags:+      - user+    get:+      operationId: userGetOAuth2Application+      parameters:+      - description: Application ID to be found+        in: path+        name: id+        required: true+        schema:+          format: int64+          type: integer+      responses:+        "200":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/OAuth2Application'+          description: OAuth2Application+        "404":+          content: {}+          description: APINotFound is a not found empty response+      summary: get an OAuth2 Application+      tags:+      - user+    patch:+      operationId: userUpdateOAuth2Application+      parameters:+      - description: application to be updated+        in: path+        name: id+        required: true+        schema:+          format: int64+          type: integer+      requestBody:+        content:+          application/json:+            schema:+              $ref: '#/components/schemas/CreateOAuth2ApplicationOptions'+          text/plain:+            schema:+              $ref: '#/components/schemas/CreateOAuth2ApplicationOptions'+        required: true+      responses:+        "200":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/OAuth2Application'+          description: OAuth2Application+        "404":+          content: {}+          description: APINotFound is a not found empty response+      summary: "update an OAuth2 Application, this includes regenerating the client\+        \ secret"+      tags:+      - user+      x-codegen-request-body-name: body+  /user/emails:+    delete:+      operationId: userDeleteEmail+      requestBody:+        content:+          application/json:+            schema:+              $ref: '#/components/schemas/DeleteEmailOption'+          text/plain:+            schema:+              $ref: '#/components/schemas/DeleteEmailOption'+        required: false+      responses:+        "204":+          content: {}+          description: APIEmpty is an empty response+        "404":+          content: {}+          description: APINotFound is a not found empty response+      summary: Delete email addresses+      tags:+      - user+      x-codegen-request-body-name: body+    get:+      operationId: userListEmails+      responses:+        "200":+          content:+            application/json:+              schema:+                items:+                  $ref: '#/components/schemas/Email'+                type: array+          description: EmailList+      summary: List the authenticated user's email addresses+      tags:+      - user+    post:+      operationId: userAddEmail+      requestBody:+        content:+          application/json:+            schema:+              $ref: '#/components/schemas/CreateEmailOption'+          text/plain:+            schema:+              $ref: '#/components/schemas/CreateEmailOption'+        required: false+      responses:+        "201":+          content:+            application/json:+              schema:+                items:+                  $ref: '#/components/schemas/Email'+                type: array+          description: EmailList+        "422":+          content: {}+          description: APIValidationError is error format response related to input+            validation+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: Add email addresses+      tags:+      - user+      x-codegen-request-body-name: body+  /user/followers:+    get:+      operationId: userCurrentListFollowers+      parameters:+      - description: page number of results to return (1-based)+        in: query+        name: page+        schema:+          type: integer+      - description: page size of results+        in: query+        name: limit+        schema:+          type: integer+      responses:+        "200":+          content:+            application/json:+              schema:+                items:+                  $ref: '#/components/schemas/User'+                type: array+          description: UserList+      summary: List the authenticated user's followers+      tags:+      - user+  /user/following:+    get:+      operationId: userCurrentListFollowing+      parameters:+      - description: page number of results to return (1-based)+        in: query+        name: page+        schema:+          type: integer+      - description: page size of results+        in: query+        name: limit+        schema:+          type: integer+      responses:+        "200":+          content:+            application/json:+              schema:+                items:+                  $ref: '#/components/schemas/User'+                type: array+          description: UserList+      summary: List the users that the authenticated user is following+      tags:+      - user+  /user/following/{username}:+    delete:+      operationId: userCurrentDeleteFollow+      parameters:+      - description: username of user to unfollow+        in: path+        name: username+        required: true+        schema:+          type: string+      responses:+        "204":+          content: {}+          description: APIEmpty is an empty response+      summary: Unfollow a user+      tags:+      - user+    get:+      operationId: userCurrentCheckFollowing+      parameters:+      - description: username of followed user+        in: path+        name: username+        required: true+        schema:+          type: string+      responses:+        "204":+          content: {}+          description: APIEmpty is an empty response+        "404":+          content: {}+          description: APINotFound is a not found empty response+      summary: Check whether a user is followed by the authenticated user+      tags:+      - user+    put:+      operationId: userCurrentPutFollow+      parameters:+      - description: username of user to follow+        in: path+        name: username+        required: true+        schema:+          type: string+      responses:+        "204":+          content: {}+          description: APIEmpty is an empty response+      summary: Follow a user+      tags:+      - user+  /user/gpg_key_token:+    get:+      operationId: getVerificationToken+      responses:+        "200":+          content:+            text/plain:+              schema:+                type: string+          description: APIString is a string response+        "404":+          content: {}+          description: APINotFound is a not found empty response+      summary: Get a Token to verify+      tags:+      - user+  /user/gpg_key_verify:+    post:+      operationId: userVerifyGPGKey+      responses:+        "201":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/GPGKey'+          description: GPGKey+        "404":+          content: {}+          description: APINotFound is a not found empty response+        "422":+          content: {}+          description: APIValidationError is error format response related to input+            validation+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: Verify a GPG key+      tags:+      - user+  /user/gpg_keys:+    get:+      operationId: userCurrentListGPGKeys+      parameters:+      - description: page number of results to return (1-based)+        in: query+        name: page+        schema:+          type: integer+      - description: page size of results+        in: query+        name: limit+        schema:+          type: integer+      responses:+        "200":+          content:+            application/json:+              schema:+                items:+                  $ref: '#/components/schemas/GPGKey'+                type: array+          description: GPGKeyList+      summary: List the authenticated user's GPG keys+      tags:+      - user+    post:+      operationId: userCurrentPostGPGKey+      requestBody:+        content:+          application/json:+            schema:+              $ref: '#/components/schemas/CreateGPGKeyOption'+        required: false+      responses:+        "201":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/GPGKey'+          description: GPGKey+        "404":+          content: {}+          description: APINotFound is a not found empty response+        "422":+          content: {}+          description: APIValidationError is error format response related to input+            validation+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: Create a GPG key+      tags:+      - user+      x-codegen-request-body-name: Form+  /user/gpg_keys/{id}:+    delete:+      operationId: userCurrentDeleteGPGKey+      parameters:+      - description: id of key to delete+        in: path+        name: id+        required: true+        schema:+          format: int64+          type: integer+      responses:+        "204":+          content: {}+          description: APIEmpty is an empty response+        "403":+          content: {}+          description: APIForbiddenError is a forbidden error response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+        "404":+          content: {}+          description: APINotFound is a not found empty response+      summary: Remove a GPG key+      tags:+      - user+    get:+      operationId: userCurrentGetGPGKey+      parameters:+      - description: id of key to get+        in: path+        name: id+        required: true+        schema:+          format: int64+          type: integer+      responses:+        "200":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/GPGKey'+          description: GPGKey+        "404":+          content: {}+          description: APINotFound is a not found empty response+      summary: Get a GPG key+      tags:+      - user+  /user/keys:+    get:+      operationId: userCurrentListKeys+      parameters:+      - description: fingerprint of the key+        in: query+        name: fingerprint+        schema:+          type: string+      - description: page number of results to return (1-based)+        in: query+        name: page+        schema:+          type: integer+      - description: page size of results+        in: query+        name: limit+        schema:+          type: integer+      responses:+        "200":+          content:+            application/json:+              schema:+                items:+                  $ref: '#/components/schemas/PublicKey'+                type: array+          description: PublicKeyList+      summary: List the authenticated user's public keys+      tags:+      - user+    post:+      operationId: userCurrentPostKey+      requestBody:+        content:+          application/json:+            schema:+              $ref: '#/components/schemas/CreateKeyOption'+        required: false+      responses:+        "201":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/PublicKey'+          description: PublicKey+        "422":+          content: {}+          description: APIValidationError is error format response related to input+            validation+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: Create a public key+      tags:+      - user+      x-codegen-request-body-name: body+  /user/keys/{id}:+    delete:+      operationId: userCurrentDeleteKey+      parameters:+      - description: id of key to delete+        in: path+        name: id+        required: true+        schema:+          format: int64+          type: integer+      responses:+        "204":+          content: {}+          description: APIEmpty is an empty response+        "403":+          content: {}+          description: APIForbiddenError is a forbidden error response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+        "404":+          content: {}+          description: APINotFound is a not found empty response+      summary: Delete a public key+      tags:+      - user+    get:+      operationId: userCurrentGetKey+      parameters:+      - description: id of key to get+        in: path+        name: id+        required: true+        schema:+          format: int64+          type: integer+      responses:+        "200":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/PublicKey'+          description: PublicKey+        "404":+          content: {}+          description: APINotFound is a not found empty response+      summary: Get a public key+      tags:+      - user+  /user/orgs:+    get:+      operationId: orgListCurrentUserOrgs+      parameters:+      - description: page number of results to return (1-based)+        in: query+        name: page+        schema:+          type: integer+      - description: page size of results+        in: query+        name: limit+        schema:+          type: integer+      responses:+        "200":+          content:+            application/json:+              schema:+                items:+                  $ref: '#/components/schemas/Organization'+                type: array+          description: OrganizationList+      summary: List the current user's organizations+      tags:+      - organization+  /user/repos:+    get:+      operationId: userCurrentListRepos+      parameters:+      - description: page number of results to return (1-based)+        in: query+        name: page+        schema:+          type: integer+      - description: page size of results+        in: query+        name: limit+        schema:+          type: integer+      responses:+        "200":+          content:+            application/json:+              schema:+                items:+                  $ref: '#/components/schemas/Repository'+                type: array+          description: RepositoryList+      summary: List the repos that the authenticated user owns+      tags:+      - user+    post:+      operationId: createCurrentUserRepo+      requestBody:+        content:+          application/json:+            schema:+              $ref: '#/components/schemas/CreateRepoOption'+        required: false+      responses:+        "201":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/Repository'+          description: Repository+        "400":+          content: {}+          description: APIError is error format response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+        "409":+          content: {}+          description: The repository with the same name already exists.+        "422":+          content: {}+          description: APIValidationError is error format response related to input+            validation+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: Create a repository+      tags:+      - repository+      - user+      x-codegen-request-body-name: body+  /user/settings:+    get:+      operationId: getUserSettings+      responses:+        "200":+          content:+            application/json:+              schema:+                items:+                  $ref: '#/components/schemas/UserSettings'+                type: array+          description: UserSettings+      summary: Get user settings+      tags:+      - user+    patch:+      operationId: updateUserSettings+      requestBody:+        content:+          application/json:+            schema:+              $ref: '#/components/schemas/UserSettingsOptions'+          text/plain:+            schema:+              $ref: '#/components/schemas/UserSettingsOptions'+        required: false+      responses:+        "200":+          content:+            application/json:+              schema:+                items:+                  $ref: '#/components/schemas/UserSettings'+                type: array+          description: UserSettings+      summary: Update user settings+      tags:+      - user+      x-codegen-request-body-name: body+  /user/starred:+    get:+      operationId: userCurrentListStarred+      parameters:+      - description: page number of results to return (1-based)+        in: query+        name: page+        schema:+          type: integer+      - description: page size of results+        in: query+        name: limit+        schema:+          type: integer+      responses:+        "200":+          content:+            application/json:+              schema:+                items:+                  $ref: '#/components/schemas/Repository'+                type: array+          description: RepositoryList+      summary: The repos that the authenticated user has starred+      tags:+      - user+  /user/starred/{owner}/{repo}:+    delete:+      operationId: userCurrentDeleteStar+      parameters:+      - description: owner of the repo to unstar+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo to unstar+        in: path+        name: repo+        required: true+        schema:+          type: string+      responses:+        "204":+          content: {}+          description: APIEmpty is an empty response+      summary: Unstar the given repo+      tags:+      - user+    get:+      operationId: userCurrentCheckStarring+      parameters:+      - description: owner of the repo+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo+        in: path+        name: repo+        required: true+        schema:+          type: string+      responses:+        "204":+          content: {}+          description: APIEmpty is an empty response+        "404":+          content: {}+          description: APINotFound is a not found empty response+      summary: Whether the authenticated is starring the repo+      tags:+      - user+    put:+      operationId: userCurrentPutStar+      parameters:+      - description: owner of the repo to star+        in: path+        name: owner+        required: true+        schema:+          type: string+      - description: name of the repo to star+        in: path+        name: repo+        required: true+        schema:+          type: string+      responses:+        "204":+          content: {}+          description: APIEmpty is an empty response+      summary: Star the given repo+      tags:+      - user+  /user/stopwatches:+    get:+      operationId: userGetStopWatches+      parameters:+      - description: page number of results to return (1-based)+        in: query+        name: page+        schema:+          type: integer+      - description: page size of results+        in: query+        name: limit+        schema:+          type: integer+      responses:+        "200":+          content:+            application/json:+              schema:+                items:+                  $ref: '#/components/schemas/StopWatch'+                type: array+          description: StopWatchList+      summary: Get list of all existing stopwatches+      tags:+      - user+  /user/subscriptions:+    get:+      operationId: userCurrentListSubscriptions+      parameters:+      - description: page number of results to return (1-based)+        in: query+        name: page+        schema:+          type: integer+      - description: page size of results+        in: query+        name: limit+        schema:+          type: integer+      responses:+        "200":+          content:+            application/json:+              schema:+                items:+                  $ref: '#/components/schemas/Repository'+                type: array+          description: RepositoryList+      summary: List repositories watched by the authenticated user+      tags:+      - user+  /user/teams:+    get:+      operationId: userListTeams+      parameters:+      - description: page number of results to return (1-based)+        in: query+        name: page+        schema:+          type: integer+      - description: page size of results+        in: query+        name: limit+        schema:+          type: integer+      responses:+        "200":+          content:+            application/json:+              schema:+                items:+                  $ref: '#/components/schemas/Team'+                type: array+          description: TeamList+      summary: List all the teams a user belongs to+      tags:+      - user+  /user/times:+    get:+      operationId: userCurrentTrackedTimes+      parameters:+      - description: page number of results to return (1-based)+        in: query+        name: page+        schema:+          type: integer+      - description: page size of results+        in: query+        name: limit+        schema:+          type: integer+      - description: Only show times updated after the given time. This is a timestamp+          in RFC 3339 format+        in: query+        name: since+        schema:+          format: date-time+          type: string+      - description: Only show times updated before the given time. This is a timestamp+          in RFC 3339 format+        in: query+        name: before+        schema:+          format: date-time+          type: string+      responses:+        "200":+          content:+            application/json:+              schema:+                items:+                  $ref: '#/components/schemas/TrackedTime'+                type: array+          description: TrackedTimeList+      summary: List the current user's tracked times+      tags:+      - user+  /users/search:+    get:+      operationId: userSearch+      parameters:+      - description: keyword+        in: query+        name: q+        schema:+          type: string+      - description: ID of the user to search for+        in: query+        name: uid+        schema:+          format: int64+          type: integer+      - description: page number of results to return (1-based)+        in: query+        name: page+        schema:+          type: integer+      - description: page size of results+        in: query+        name: limit+        schema:+          type: integer+      responses:+        "200":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/userSearch_200_response'+          description: SearchResults of a successful search+      summary: Search for users+      tags:+      - user+  /users/{username}:+    get:+      operationId: userGet+      parameters:+      - description: username of user to get+        in: path+        name: username+        required: true+        schema:+          type: string+      responses:+        "200":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/User'+          description: User+        "404":+          content: {}+          description: APINotFound is a not found empty response+      summary: Get a user+      tags:+      - user+  /users/{username}/followers:+    get:+      operationId: userListFollowers+      parameters:+      - description: username of user+        in: path+        name: username+        required: true+        schema:+          type: string+      - description: page number of results to return (1-based)+        in: query+        name: page+        schema:+          type: integer+      - description: page size of results+        in: query+        name: limit+        schema:+          type: integer+      responses:+        "200":+          content:+            application/json:+              schema:+                items:+                  $ref: '#/components/schemas/User'+                type: array+          description: UserList+      summary: List the given user's followers+      tags:+      - user+  /users/{username}/following:+    get:+      operationId: userListFollowing+      parameters:+      - description: username of user+        in: path+        name: username+        required: true+        schema:+          type: string+      - description: page number of results to return (1-based)+        in: query+        name: page+        schema:+          type: integer+      - description: page size of results+        in: query+        name: limit+        schema:+          type: integer+      responses:+        "200":+          content:+            application/json:+              schema:+                items:+                  $ref: '#/components/schemas/User'+                type: array+          description: UserList+      summary: List the users that the given user is following+      tags:+      - user+  /users/{username}/following/{target}:+    get:+      operationId: userCheckFollowing+      parameters:+      - description: username of following user+        in: path+        name: username+        required: true+        schema:+          type: string+      - description: username of followed user+        in: path+        name: target+        required: true+        schema:+          type: string+      responses:+        "204":+          content: {}+          description: APIEmpty is an empty response+        "404":+          content: {}+          description: APINotFound is a not found empty response+      summary: Check if one user is following another user+      tags:+      - user+  /users/{username}/gpg_keys:+    get:+      operationId: userListGPGKeys+      parameters:+      - description: username of user+        in: path+        name: username+        required: true+        schema:+          type: string+      - description: page number of results to return (1-based)+        in: query+        name: page+        schema:+          type: integer+      - description: page size of results+        in: query+        name: limit+        schema:+          type: integer+      responses:+        "200":+          content:+            application/json:+              schema:+                items:+                  $ref: '#/components/schemas/GPGKey'+                type: array+          description: GPGKeyList+      summary: List the given user's GPG keys+      tags:+      - user+  /users/{username}/heatmap:+    get:+      operationId: userGetHeatmapData+      parameters:+      - description: username of user to get+        in: path+        name: username+        required: true+        schema:+          type: string+      responses:+        "200":+          content:+            application/json:+              schema:+                items:+                  $ref: '#/components/schemas/UserHeatmapData'+                type: array+          description: UserHeatmapData+        "404":+          content: {}+          description: APINotFound is a not found empty response+      summary: Get a user's heatmap+      tags:+      - user+  /users/{username}/keys:+    get:+      operationId: userListKeys+      parameters:+      - description: username of user+        in: path+        name: username+        required: true+        schema:+          type: string+      - description: fingerprint of the key+        in: query+        name: fingerprint+        schema:+          type: string+      - description: page number of results to return (1-based)+        in: query+        name: page+        schema:+          type: integer+      - description: page size of results+        in: query+        name: limit+        schema:+          type: integer+      responses:+        "200":+          content:+            application/json:+              schema:+                items:+                  $ref: '#/components/schemas/PublicKey'+                type: array+          description: PublicKeyList+      summary: List the given user's public keys+      tags:+      - user+  /users/{username}/orgs:+    get:+      operationId: orgListUserOrgs+      parameters:+      - description: username of user+        in: path+        name: username+        required: true+        schema:+          type: string+      - description: page number of results to return (1-based)+        in: query+        name: page+        schema:+          type: integer+      - description: page size of results+        in: query+        name: limit+        schema:+          type: integer+      responses:+        "200":+          content:+            application/json:+              schema:+                items:+                  $ref: '#/components/schemas/Organization'+                type: array+          description: OrganizationList+      summary: List a user's organizations+      tags:+      - organization+  /users/{username}/orgs/{org}/permissions:+    get:+      operationId: orgGetUserPermissions+      parameters:+      - description: username of user+        in: path+        name: username+        required: true+        schema:+          type: string+      - description: name of the organization+        in: path+        name: org+        required: true+        schema:+          type: string+      responses:+        "200":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/OrganizationPermissions'+          description: OrganizationPermissions+        "403":+          content: {}+          description: APIForbiddenError is a forbidden error response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+        "404":+          content: {}+          description: APINotFound is a not found empty response+      summary: Get user permissions in organization+      tags:+      - organization+  /users/{username}/repos:+    get:+      operationId: userListRepos+      parameters:+      - description: username of user+        in: path+        name: username+        required: true+        schema:+          type: string+      - description: page number of results to return (1-based)+        in: query+        name: page+        schema:+          type: integer+      - description: page size of results+        in: query+        name: limit+        schema:+          type: integer+      responses:+        "200":+          content:+            application/json:+              schema:+                items:+                  $ref: '#/components/schemas/Repository'+                type: array+          description: RepositoryList+      summary: List the repos owned by the given user+      tags:+      - user+  /users/{username}/starred:+    get:+      operationId: userListStarred+      parameters:+      - description: username of user+        in: path+        name: username+        required: true+        schema:+          type: string+      - description: page number of results to return (1-based)+        in: query+        name: page+        schema:+          type: integer+      - description: page size of results+        in: query+        name: limit+        schema:+          type: integer+      responses:+        "200":+          content:+            application/json:+              schema:+                items:+                  $ref: '#/components/schemas/Repository'+                type: array+          description: RepositoryList+      summary: The repos that the given user has starred+      tags:+      - user+  /users/{username}/subscriptions:+    get:+      operationId: userListSubscriptions+      parameters:+      - description: username of the user+        in: path+        name: username+        required: true+        schema:+          type: string+      - description: page number of results to return (1-based)+        in: query+        name: page+        schema:+          type: integer+      - description: page size of results+        in: query+        name: limit+        schema:+          type: integer+      responses:+        "200":+          content:+            application/json:+              schema:+                items:+                  $ref: '#/components/schemas/Repository'+                type: array+          description: RepositoryList+      summary: List the repositories watched by a user+      tags:+      - user+  /users/{username}/tokens:+    get:+      operationId: userGetTokens+      parameters:+      - description: username of user+        in: path+        name: username+        required: true+        schema:+          type: string+      - description: page number of results to return (1-based)+        in: query+        name: page+        schema:+          type: integer+      - description: page size of results+        in: query+        name: limit+        schema:+          type: integer+      responses:+        "200":+          content:+            application/json:+              schema:+                items:+                  $ref: '#/components/schemas/AccessToken'+                type: array+          description: AccessTokenList represents a list of API access token.+      summary: List the authenticated user's access tokens+      tags:+      - user+    post:+      operationId: userCreateToken+      parameters:+      - description: username of user+        in: path+        name: username+        required: true+        schema:+          type: string+      requestBody:+        content:+          application/json:+            schema:+              $ref: '#/components/schemas/CreateAccessTokenOption'+        required: false+      responses:+        "201":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/AccessToken'+          description: AccessToken represents an API access token.+        "400":+          content: {}+          description: APIError is error format response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: Create an access token+      tags:+      - user+      x-codegen-request-body-name: body+  /users/{username}/tokens/{token}:+    delete:+      operationId: userDeleteAccessToken+      parameters:+      - description: username of user+        in: path+        name: username+        required: true+        schema:+          type: string+      - description: "token to be deleted, identified by ID and if not available by\+          \ name"+        in: path+        name: token+        required: true+        schema:+          type: string+      responses:+        "204":+          content: {}+          description: APIEmpty is an empty response+        "404":+          content: {}+          description: APINotFound is a not found empty response+        "422":+          content: {}+          description: APIError is error format response+          headers:+            message:+              schema:+                type: string+            url:+              schema:+                type: string+      summary: delete an access token+      tags:+      - user+  /version:+    get:+      operationId: getVersion+      responses:+        "200":+          content:+            application/json:+              schema:+                $ref: '#/components/schemas/ServerVersion'+          description: ServerVersion+      summary: Returns the version of the Gitea application+      tags:+      - miscellaneous+components:+  responses:+    AccessToken:+      content:+        application/json:+          schema:+            $ref: '#/components/schemas/AccessToken'+        text/html:+          schema:+            $ref: '#/components/schemas/AccessToken'+      description: AccessToken represents an API access token.+    AccessTokenList:+      content:+        application/json:+          schema:+            items:+              $ref: '#/components/schemas/AccessToken'+            type: array+        text/html:+          schema:+            items:+              $ref: '#/components/schemas/AccessToken'+            type: array+      description: AccessTokenList represents a list of API access token.+    ActivityPub:+      content:+        application/json:+          schema:+            $ref: '#/components/schemas/ActivityPub'+        text/html:+          schema:+            $ref: '#/components/schemas/ActivityPub'+      description: ActivityPub+    AnnotatedTag:+      content:+        application/json:+          schema:+            $ref: '#/components/schemas/AnnotatedTag'+        text/html:+          schema:+            $ref: '#/components/schemas/AnnotatedTag'+      description: AnnotatedTag+    Attachment:+      content:+        application/json:+          schema:+            $ref: '#/components/schemas/Attachment'+        text/html:+          schema:+            $ref: '#/components/schemas/Attachment'+      description: Attachment+    AttachmentList:+      content:+        application/json:+          schema:+            items:+              $ref: '#/components/schemas/Attachment'+            type: array+        text/html:+          schema:+            items:+              $ref: '#/components/schemas/Attachment'+            type: array+      description: AttachmentList+    Branch:+      content:+        application/json:+          schema:+            $ref: '#/components/schemas/Branch'+        text/html:+          schema:+            $ref: '#/components/schemas/Branch'+      description: Branch+    BranchList:+      content:+        application/json:+          schema:+            items:+              $ref: '#/components/schemas/Branch'+            type: array+        text/html:+          schema:+            items:+              $ref: '#/components/schemas/Branch'+            type: array+      description: BranchList+    BranchProtection:+      content:+        application/json:+          schema:+            $ref: '#/components/schemas/BranchProtection'+        text/html:+          schema:+            $ref: '#/components/schemas/BranchProtection'+      description: BranchProtection+    BranchProtectionList:+      content:+        application/json:+          schema:+            items:+              $ref: '#/components/schemas/BranchProtection'+            type: array+        text/html:+          schema:+            items:+              $ref: '#/components/schemas/BranchProtection'+            type: array+      description: BranchProtectionList+    ChangedFileList:+      content:+        application/json:+          schema:+            items:+              $ref: '#/components/schemas/ChangedFile'+            type: array+        text/html:+          schema:+            items:+              $ref: '#/components/schemas/ChangedFile'+            type: array+      description: ChangedFileList+      headers:+        X-HasMore:+          description: True if there is another page+          schema:+            type: boolean+        X-PageCount:+          description: Total number of pages+          schema:+            format: int64+            type: integer+        X-PerPage:+          description: Commits per page+          schema:+            format: int64+            type: integer+        X-Total:+          description: Total commit count+          schema:+            format: int64+            type: integer+        X-Page:+          description: The current page+          schema:+            format: int64+            type: integer+    CombinedStatus:+      content:+        application/json:+          schema:+            $ref: '#/components/schemas/CombinedStatus'+        text/html:+          schema:+            $ref: '#/components/schemas/CombinedStatus'+      description: CombinedStatus+    Comment:+      content:+        application/json:+          schema:+            $ref: '#/components/schemas/Comment'+        text/html:+          schema:+            $ref: '#/components/schemas/Comment'+      description: Comment+    CommentList:+      content:+        application/json:+          schema:+            items:+              $ref: '#/components/schemas/Comment'+            type: array+        text/html:+          schema:+            items:+              $ref: '#/components/schemas/Comment'+            type: array+      description: CommentList+    Commit:+      content:+        application/json:+          schema:+            $ref: '#/components/schemas/Commit'+        text/html:+          schema:+            $ref: '#/components/schemas/Commit'+      description: Commit+    CommitList:+      content:+        application/json:+          schema:+            items:+              $ref: '#/components/schemas/Commit'+            type: array+        text/html:+          schema:+            items:+              $ref: '#/components/schemas/Commit'+            type: array+      description: CommitList+      headers:+        X-HasMore:+          description: True if there is another page+          schema:+            type: boolean+        X-PageCount:+          description: Total number of pages+          schema:+            format: int64+            type: integer+        X-PerPage:+          description: Commits per page+          schema:+            format: int64+            type: integer+        X-Total:+          description: Total commit count+          schema:+            format: int64+            type: integer+        X-Page:+          description: The current page+          schema:+            format: int64+            type: integer+    CommitStatus:+      content:+        application/json:+          schema:+            $ref: '#/components/schemas/CommitStatus'+        text/html:+          schema:+            $ref: '#/components/schemas/CommitStatus'+      description: CommitStatus+    CommitStatusList:+      content:+        application/json:+          schema:+            items:+              $ref: '#/components/schemas/CommitStatus'+            type: array+        text/html:+          schema:+            items:+              $ref: '#/components/schemas/CommitStatus'+            type: array+      description: CommitStatusList+    ContentsListResponse:+      content:+        application/json:+          schema:+            items:+              $ref: '#/components/schemas/ContentsResponse'+            type: array+        text/html:+          schema:+            items:+              $ref: '#/components/schemas/ContentsResponse'+            type: array+      description: ContentsListResponse+    ContentsResponse:+      content:+        application/json:+          schema:+            $ref: '#/components/schemas/ContentsResponse'+        text/html:+          schema:+            $ref: '#/components/schemas/ContentsResponse'+      description: ContentsResponse+    CronList:+      content:+        application/json:+          schema:+            items:+              $ref: '#/components/schemas/Cron'+            type: array+        text/html:+          schema:+            items:+              $ref: '#/components/schemas/Cron'+            type: array+      description: CronList+    DeployKey:+      content:+        application/json:+          schema:+            $ref: '#/components/schemas/DeployKey'+        text/html:+          schema:+            $ref: '#/components/schemas/DeployKey'+      description: DeployKey+    DeployKeyList:+      content:+        application/json:+          schema:+            items:+              $ref: '#/components/schemas/DeployKey'+            type: array+        text/html:+          schema:+            items:+              $ref: '#/components/schemas/DeployKey'+            type: array+      description: DeployKeyList+    EmailList:+      content:+        application/json:+          schema:+            items:+              $ref: '#/components/schemas/Email'+            type: array+        text/html:+          schema:+            items:+              $ref: '#/components/schemas/Email'+            type: array+      description: EmailList+    EmptyRepository:+      content:+        application/json:+          schema:+            $ref: '#/components/schemas/APIError'+        text/html:+          schema:+            $ref: '#/components/schemas/APIError'+      description: EmptyRepository+    FileDeleteResponse:+      content:+        application/json:+          schema:+            $ref: '#/components/schemas/FileDeleteResponse'+        text/html:+          schema:+            $ref: '#/components/schemas/FileDeleteResponse'+      description: FileDeleteResponse+    FileResponse:+      content:+        application/json:+          schema:+            $ref: '#/components/schemas/FileResponse'+        text/html:+          schema:+            $ref: '#/components/schemas/FileResponse'+      description: FileResponse+    GPGKey:+      content:+        application/json:+          schema:+            $ref: '#/components/schemas/GPGKey'+        text/html:+          schema:+            $ref: '#/components/schemas/GPGKey'+      description: GPGKey+    GPGKeyList:+      content:+        application/json:+          schema:+            items:+              $ref: '#/components/schemas/GPGKey'+            type: array+        text/html:+          schema:+            items:+              $ref: '#/components/schemas/GPGKey'+            type: array+      description: GPGKeyList+    GeneralAPISettings:+      content:+        application/json:+          schema:+            $ref: '#/components/schemas/GeneralAPISettings'+        text/html:+          schema:+            $ref: '#/components/schemas/GeneralAPISettings'+      description: GeneralAPISettings+    GeneralAttachmentSettings:+      content:+        application/json:+          schema:+            $ref: '#/components/schemas/GeneralAttachmentSettings'+        text/html:+          schema:+            $ref: '#/components/schemas/GeneralAttachmentSettings'+      description: GeneralAttachmentSettings+    GeneralRepoSettings:+      content:+        application/json:+          schema:+            $ref: '#/components/schemas/GeneralRepoSettings'+        text/html:+          schema:+            $ref: '#/components/schemas/GeneralRepoSettings'+      description: GeneralRepoSettings+    GeneralUISettings:+      content:+        application/json:+          schema:+            $ref: '#/components/schemas/GeneralUISettings'+        text/html:+          schema:+            $ref: '#/components/schemas/GeneralUISettings'+      description: GeneralUISettings+    GitBlobResponse:+      content:+        application/json:+          schema:+            $ref: '#/components/schemas/GitBlobResponse'+        text/html:+          schema:+            $ref: '#/components/schemas/GitBlobResponse'+      description: GitBlobResponse+    GitHook:+      content:+        application/json:+          schema:+            $ref: '#/components/schemas/GitHook'+        text/html:+          schema:+            $ref: '#/components/schemas/GitHook'+      description: GitHook+    GitHookList:+      content:+        application/json:+          schema:+            items:+              $ref: '#/components/schemas/GitHook'+            type: array+        text/html:+          schema:+            items:+              $ref: '#/components/schemas/GitHook'+            type: array+      description: GitHookList+    GitTreeResponse:+      content:+        application/json:+          schema:+            $ref: '#/components/schemas/GitTreeResponse'+        text/html:+          schema:+            $ref: '#/components/schemas/GitTreeResponse'+      description: GitTreeResponse+    Hook:+      content:+        application/json:+          schema:+            $ref: '#/components/schemas/Hook'+        text/html:+          schema:+            $ref: '#/components/schemas/Hook'+      description: Hook+    HookList:+      content:+        application/json:+          schema:+            items:+              $ref: '#/components/schemas/Hook'+            type: array+        text/html:+          schema:+            items:+              $ref: '#/components/schemas/Hook'+            type: array+      description: HookList+    Issue:+      content:+        application/json:+          schema:+            $ref: '#/components/schemas/Issue'+        text/html:+          schema:+            $ref: '#/components/schemas/Issue'+      description: Issue+    IssueDeadline:+      content:+        application/json:+          schema:+            $ref: '#/components/schemas/IssueDeadline'+        text/html:+          schema:+            $ref: '#/components/schemas/IssueDeadline'+      description: IssueDeadline+    IssueList:+      content:+        application/json:+          schema:+            items:+              $ref: '#/components/schemas/Issue'+            type: array+        text/html:+          schema:+            items:+              $ref: '#/components/schemas/Issue'+            type: array+      description: IssueList+    IssueTemplates:+      content:+        application/json:+          schema:+            items:+              $ref: '#/components/schemas/IssueTemplate'+            type: array+        text/html:+          schema:+            items:+              $ref: '#/components/schemas/IssueTemplate'+            type: array+      description: IssueTemplates+    Label:+      content:+        application/json:+          schema:+            $ref: '#/components/schemas/Label'+        text/html:+          schema:+            $ref: '#/components/schemas/Label'+      description: Label+    LabelList:+      content:+        application/json:+          schema:+            items:+              $ref: '#/components/schemas/Label'+            type: array+        text/html:+          schema:+            items:+              $ref: '#/components/schemas/Label'+            type: array+      description: LabelList+    LanguageStatistics:+      content:+        application/json:+          schema:+            additionalProperties:+              format: int64+              type: integer+            type: object+        text/html:+          schema:+            additionalProperties:+              format: int64+              type: integer+            type: object+      description: LanguageStatistics+    MarkdownRender:+      content:+        application/json:+          schema:+            type: string+        text/html:+          schema:+            type: string+      description: MarkdownRender is a rendered markdown document+    Milestone:+      content:+        application/json:+          schema:+            $ref: '#/components/schemas/Milestone'+        text/html:+          schema:+            $ref: '#/components/schemas/Milestone'+      description: Milestone+    MilestoneList:+      content:+        application/json:+          schema:+            items:+              $ref: '#/components/schemas/Milestone'+            type: array+        text/html:+          schema:+            items:+              $ref: '#/components/schemas/Milestone'+            type: array+      description: MilestoneList+    NodeInfo:+      content:+        application/json:+          schema:+            $ref: '#/components/schemas/NodeInfo'+        text/html:+          schema:+            $ref: '#/components/schemas/NodeInfo'+      description: NodeInfo+    Note:+      content:+        application/json:+          schema:+            $ref: '#/components/schemas/Note'+        text/html:+          schema:+            $ref: '#/components/schemas/Note'+      description: Note+    NotificationCount:+      content:+        application/json:+          schema:+            $ref: '#/components/schemas/NotificationCount'+        text/html:+          schema:+            $ref: '#/components/schemas/NotificationCount'+      description: Number of unread notifications+    NotificationThread:+      content:+        application/json:+          schema:+            $ref: '#/components/schemas/NotificationThread'+        text/html:+          schema:+            $ref: '#/components/schemas/NotificationThread'+      description: NotificationThread+    NotificationThreadList:+      content:+        application/json:+          schema:+            items:+              $ref: '#/components/schemas/NotificationThread'+            type: array+        text/html:+          schema:+            items:+              $ref: '#/components/schemas/NotificationThread'+            type: array+      description: NotificationThreadList+    OAuth2Application:+      content:+        application/json:+          schema:+            $ref: '#/components/schemas/OAuth2Application'+        text/html:+          schema:+            $ref: '#/components/schemas/OAuth2Application'+      description: OAuth2Application+    OAuth2ApplicationList:+      content:+        application/json:+          schema:+            items:+              $ref: '#/components/schemas/OAuth2Application'+            type: array+        text/html:+          schema:+            items:+              $ref: '#/components/schemas/OAuth2Application'+            type: array+      description: OAuth2ApplicationList represents a list of OAuth2 applications.+    Organization:+      content:+        application/json:+          schema:+            $ref: '#/components/schemas/Organization'+        text/html:+          schema:+            $ref: '#/components/schemas/Organization'+      description: Organization+    OrganizationList:+      content:+        application/json:+          schema:+            items:+              $ref: '#/components/schemas/Organization'+            type: array+        text/html:+          schema:+            items:+              $ref: '#/components/schemas/Organization'+            type: array+      description: OrganizationList+    OrganizationPermissions:+      content:+        application/json:+          schema:+            $ref: '#/components/schemas/OrganizationPermissions'+        text/html:+          schema:+            $ref: '#/components/schemas/OrganizationPermissions'+      description: OrganizationPermissions+    Package:+      content:+        application/json:+          schema:+            $ref: '#/components/schemas/Package'+        text/html:+          schema:+            $ref: '#/components/schemas/Package'+      description: Package+    PackageFileList:+      content:+        application/json:+          schema:+            items:+              $ref: '#/components/schemas/PackageFile'+            type: array+        text/html:+          schema:+            items:+              $ref: '#/components/schemas/PackageFile'+            type: array+      description: PackageFileList+    PackageList:+      content:+        application/json:+          schema:+            items:+              $ref: '#/components/schemas/Package'+            type: array+        text/html:+          schema:+            items:+              $ref: '#/components/schemas/Package'+            type: array+      description: PackageList+    PublicKey:+      content:+        application/json:+          schema:+            $ref: '#/components/schemas/PublicKey'+        text/html:+          schema:+            $ref: '#/components/schemas/PublicKey'+      description: PublicKey+    PublicKeyList:+      content:+        application/json:+          schema:+            items:+              $ref: '#/components/schemas/PublicKey'+            type: array+        text/html:+          schema:+            items:+              $ref: '#/components/schemas/PublicKey'+            type: array+      description: PublicKeyList+    PullRequest:+      content:+        application/json:+          schema:+            $ref: '#/components/schemas/PullRequest'+        text/html:+          schema:+            $ref: '#/components/schemas/PullRequest'+      description: PullRequest+    PullRequestList:+      content:+        application/json:+          schema:+            items:+              $ref: '#/components/schemas/PullRequest'+            type: array+        text/html:+          schema:+            items:+              $ref: '#/components/schemas/PullRequest'+            type: array+      description: PullRequestList+    PullReview:+      content:+        application/json:+          schema:+            $ref: '#/components/schemas/PullReview'+        text/html:+          schema:+            $ref: '#/components/schemas/PullReview'+      description: PullReview+    PullReviewComment:+      content:+        application/json:+          schema:+            $ref: '#/components/schemas/PullReviewComment'+        text/html:+          schema:+            $ref: '#/components/schemas/PullReviewComment'+      description: PullComment+    PullReviewCommentList:+      content:+        application/json:+          schema:+            items:+              $ref: '#/components/schemas/PullReviewComment'+            type: array+        text/html:+          schema:+            items:+              $ref: '#/components/schemas/PullReviewComment'+            type: array+      description: PullCommentList+    PullReviewList:+      content:+        application/json:+          schema:+            items:+              $ref: '#/components/schemas/PullReview'+            type: array+        text/html:+          schema:+            items:+              $ref: '#/components/schemas/PullReview'+            type: array+      description: PullReviewList+    PushMirror:+      content:+        application/json:+          schema:+            $ref: '#/components/schemas/PushMirror'+        text/html:+          schema:+            $ref: '#/components/schemas/PushMirror'+      description: PushMirror+    PushMirrorList:+      content:+        application/json:+          schema:+            items:+              $ref: '#/components/schemas/PushMirror'+            type: array+        text/html:+          schema:+            items:+              $ref: '#/components/schemas/PushMirror'+            type: array+      description: PushMirrorList+    Reaction:+      content:+        application/json:+          schema:+            $ref: '#/components/schemas/Reaction'+        text/html:+          schema:+            $ref: '#/components/schemas/Reaction'+      description: Reaction+    ReactionList:+      content:+        application/json:+          schema:+            items:+              $ref: '#/components/schemas/Reaction'+            type: array+        text/html:+          schema:+            items:+              $ref: '#/components/schemas/Reaction'+            type: array+      description: ReactionList+    Reference:+      content:+        application/json:+          schema:+            $ref: '#/components/schemas/Reference'+        text/html:+          schema:+            $ref: '#/components/schemas/Reference'+      description: Reference+    ReferenceList:+      content:+        application/json:+          schema:+            items:+              $ref: '#/components/schemas/Reference'+            type: array+        text/html:+          schema:+            items:+              $ref: '#/components/schemas/Reference'+            type: array+      description: ReferenceList+    Release:+      content:+        application/json:+          schema:+            $ref: '#/components/schemas/Release'+        text/html:+          schema:+            $ref: '#/components/schemas/Release'+      description: Release+    ReleaseList:+      content:+        application/json:+          schema:+            items:+              $ref: '#/components/schemas/Release'+            type: array+        text/html:+          schema:+            items:+              $ref: '#/components/schemas/Release'+            type: array+      description: ReleaseList+    RepoCollaboratorPermission:+      content:+        application/json:+          schema:+            $ref: '#/components/schemas/RepoCollaboratorPermission'+        text/html:+          schema:+            $ref: '#/components/schemas/RepoCollaboratorPermission'+      description: RepoCollaboratorPermission+    Repository:+      content:+        application/json:+          schema:+            $ref: '#/components/schemas/Repository'+        text/html:+          schema:+            $ref: '#/components/schemas/Repository'+      description: Repository+    RepositoryList:+      content:+        application/json:+          schema:+            items:+              $ref: '#/components/schemas/Repository'+            type: array+        text/html:+          schema:+            items:+              $ref: '#/components/schemas/Repository'+            type: array+      description: RepositoryList+    SearchResults:+      content:+        application/json:+          schema:+            $ref: '#/components/schemas/SearchResults'+        text/html:+          schema:+            $ref: '#/components/schemas/SearchResults'+      description: SearchResults+    ServerVersion:+      content:+        application/json:+          schema:+            $ref: '#/components/schemas/ServerVersion'+        text/html:+          schema:+            $ref: '#/components/schemas/ServerVersion'+      description: ServerVersion+    StopWatch:+      content:+        application/json:+          schema:+            $ref: '#/components/schemas/StopWatch'+        text/html:+          schema:+            $ref: '#/components/schemas/StopWatch'+      description: StopWatch+    StopWatchList:+      content:+        application/json:+          schema:+            items:+              $ref: '#/components/schemas/StopWatch'+            type: array+        text/html:+          schema:+            items:+              $ref: '#/components/schemas/StopWatch'+            type: array+      description: StopWatchList+    StringSlice:+      content:+        application/json:+          schema:+            items:+              type: string+            type: array+        text/html:+          schema:+            items:+              type: string+            type: array+      description: StringSlice+    Tag:+      content:+        application/json:+          schema:+            $ref: '#/components/schemas/Tag'+        text/html:+          schema:+            $ref: '#/components/schemas/Tag'+      description: Tag+    TagList:+      content:+        application/json:+          schema:+            items:+              $ref: '#/components/schemas/Tag'+            type: array+        text/html:+          schema:+            items:+              $ref: '#/components/schemas/Tag'+            type: array+      description: TagList+    Team:+      content:+        application/json:+          schema:+            $ref: '#/components/schemas/Team'+        text/html:+          schema:+            $ref: '#/components/schemas/Team'+      description: Team+    TeamList:+      content:+        application/json:+          schema:+            items:+              $ref: '#/components/schemas/Team'+            type: array+        text/html:+          schema:+            items:+              $ref: '#/components/schemas/Team'+            type: array+      description: TeamList+    TimelineList:+      content:+        application/json:+          schema:+            items:+              $ref: '#/components/schemas/TimelineComment'+            type: array+        text/html:+          schema:+            items:+              $ref: '#/components/schemas/TimelineComment'+            type: array+      description: TimelineList+    TopicListResponse:+      content:+        application/json:+          schema:+            items:+              $ref: '#/components/schemas/TopicResponse'+            type: array+        text/html:+          schema:+            items:+              $ref: '#/components/schemas/TopicResponse'+            type: array+      description: TopicListResponse+    TopicNames:+      content:+        application/json:+          schema:+            $ref: '#/components/schemas/TopicName'+        text/html:+          schema:+            $ref: '#/components/schemas/TopicName'+      description: TopicNames+    TrackedTime:+      content:+        application/json:+          schema:+            $ref: '#/components/schemas/TrackedTime'+        text/html:+          schema:+            $ref: '#/components/schemas/TrackedTime'+      description: TrackedTime+    TrackedTimeList:+      content:+        application/json:+          schema:+            items:+              $ref: '#/components/schemas/TrackedTime'+            type: array+        text/html:+          schema:+            items:+              $ref: '#/components/schemas/TrackedTime'+            type: array+      description: TrackedTimeList+    User:+      content:+        application/json:+          schema:+            $ref: '#/components/schemas/User'+        text/html:+          schema:+            $ref: '#/components/schemas/User'+      description: User+    UserHeatmapData:+      content:+        application/json:+          schema:+            items:+              $ref: '#/components/schemas/UserHeatmapData'+            type: array+        text/html:+          schema:+            items:+              $ref: '#/components/schemas/UserHeatmapData'+            type: array+      description: UserHeatmapData+    UserList:+      content:+        application/json:+          schema:+            items:+              $ref: '#/components/schemas/User'+            type: array+        text/html:+          schema:+            items:+              $ref: '#/components/schemas/User'+            type: array+      description: UserList+    UserSettings:+      content:+        application/json:+          schema:+            items:+              $ref: '#/components/schemas/UserSettings'+            type: array+        text/html:+          schema:+            items:+              $ref: '#/components/schemas/UserSettings'+            type: array+      description: UserSettings+    WatchInfo:+      content:+        application/json:+          schema:+            $ref: '#/components/schemas/WatchInfo'+        text/html:+          schema:+            $ref: '#/components/schemas/WatchInfo'+      description: WatchInfo+    WikiCommitList:+      content:+        application/json:+          schema:+            $ref: '#/components/schemas/WikiCommitList'+        text/html:+          schema:+            $ref: '#/components/schemas/WikiCommitList'+      description: WikiCommitList+    WikiPage:+      content:+        application/json:+          schema:+            $ref: '#/components/schemas/WikiPage'+        text/html:+          schema:+            $ref: '#/components/schemas/WikiPage'+      description: WikiPage+    WikiPageList:+      content:+        application/json:+          schema:+            items:+              $ref: '#/components/schemas/WikiPageMetaData'+            type: array+        text/html:+          schema:+            items:+              $ref: '#/components/schemas/WikiPageMetaData'+            type: array+      description: WikiPageList+    conflict:+      content: {}+      description: APIConflict is a conflict empty response+    empty:+      content: {}+      description: APIEmpty is an empty response+    error:+      content: {}+      description: APIError is error format response+      headers:+        message:+          schema:+            type: string+        url:+          schema:+            type: string+    forbidden:+      content: {}+      description: APIForbiddenError is a forbidden error response+      headers:+        message:+          schema:+            type: string+        url:+          schema:+            type: string+    invalidTopicsError:+      content: {}+      description: APIInvalidTopicsError is error format response to invalid topics+      headers:+        invalidTopics:+          schema:+            items:+              type: string+            type: array+        message:+          schema:+            type: string+    notFound:+      content: {}+      description: APINotFound is a not found empty response+    parameterBodies:+      content:+        application/json:+          schema:+            $ref: '#/components/schemas/CreatePushMirrorOption'+        text/html:+          schema:+            $ref: '#/components/schemas/CreatePushMirrorOption'+      description: parameterBodies+    redirect:+      content: {}+      description: APIRedirect is a redirect response+    string:+      content:+        application/json:+          schema:+            type: string+        text/html:+          schema:+            type: string+      description: APIString is a string response+    validationError:+      content: {}+      description: APIValidationError is error format response related to input validation+      headers:+        message:+          schema:+            type: string+        url:+          schema:+            type: string+  schemas:+    APIError:+      description: APIError is an api error with a message+      example:+        message: message+        url: url+      properties:+        message:+          type: string+          x-go-name: Message+        url:+          type: string+          x-go-name: URL+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    AccessToken:+      example:+        sha1: sha1+        name: name+        token_last_eight: token_last_eight+        id: 0+        scopes:+        - scopes+        - scopes+      properties:+        id:+          format: int64+          type: integer+          x-go-name: ID+        name:+          type: string+          x-go-name: Name+        scopes:+          items:+            type: string+          type: array+          x-go-name: Scopes+        sha1:+          type: string+          x-go-name: Token+        token_last_eight:+          type: string+          x-go-name: TokenLastEight+      title: AccessToken represents an API access token.+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    ActivityPub:+      description: ActivityPub type+      example:+        '@context': '@context'+      properties:+        '@context':+          type: string+          x-go-name: Context+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    AddCollaboratorOption:+      description: AddCollaboratorOption options when adding a user as a collaborator+        of a repository+      example:+        permission: permission+      properties:+        permission:+          type: string+          x-go-name: Permission+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    AddTimeOption:+      description: AddTimeOption options for adding time to an issue+      example:+        created: 2000-01-23T04:56:07.000+00:00+        user_name: user_name+        time: 0+      properties:+        created:+          format: date-time+          type: string+          x-go-name: Created+        time:+          description: time in seconds+          format: int64+          type: integer+          x-go-name: Time+        user_name:+          description: User who spent the time (optional)+          type: string+          x-go-name: User+      required:+      - time+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    AnnotatedTag:+      description: AnnotatedTag represents an annotated tag+      example:+        tagger:+          date: date+          name: name+          email: email+        tag: tag+        message: message+        sha: sha+        url: url+        verification:+          reason: reason+          payload: payload+          signature: signature+          verified: true+          signer:+            name: name+            email: email+            username: username+        object:+          type: type+          sha: sha+          url: url+      properties:+        message:+          type: string+          x-go-name: Message+        object:+          $ref: '#/components/schemas/AnnotatedTagObject'+        sha:+          type: string+          x-go-name: SHA+        tag:+          type: string+          x-go-name: Tag+        tagger:+          $ref: '#/components/schemas/CommitUser'+        url:+          type: string+          x-go-name: URL+        verification:+          $ref: '#/components/schemas/PayloadCommitVerification'+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    AnnotatedTagObject:+      description: AnnotatedTagObject contains meta information of the tag object+      example:+        type: type+        sha: sha+        url: url+      properties:+        sha:+          type: string+          x-go-name: SHA+        type:+          type: string+          x-go-name: Type+        url:+          type: string+          x-go-name: URL+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    Attachment:+      description: Attachment a generic attachment+      example:+        size: 1+        name: name+        created_at: 2000-01-23T04:56:07.000+00:00+        browser_download_url: browser_download_url+        id: 6+        uuid: uuid+        download_count: 0+      properties:+        browser_download_url:+          type: string+          x-go-name: DownloadURL+        created_at:+          format: date-time+          type: string+          x-go-name: Created+        download_count:+          format: int64+          type: integer+          x-go-name: DownloadCount+        id:+          format: int64+          type: integer+          x-go-name: ID+        name:+          type: string+          x-go-name: Name+        size:+          format: int64+          type: integer+          x-go-name: Size+        uuid:+          type: string+          x-go-name: UUID+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    Branch:+      description: Branch represents a repository branch+      example:+        enable_status_check: true+        status_check_contexts:+        - status_check_contexts+        - status_check_contexts+        protected: true+        user_can_push: true+        commit:+          committer:+            name: name+            email: email+            username: username+          removed:+          - removed+          - removed+          added:+          - added+          - added+          author:+            name: name+            email: email+            username: username+          modified:+          - modified+          - modified+          id: id+          message: message+          url: url+          verification:+            reason: reason+            payload: payload+            signature: signature+            verified: true+            signer:+              name: name+              email: email+              username: username+          timestamp: 2000-01-23T04:56:07.000+00:00+        name: name+        required_approvals: 0+        effective_branch_protection_name: effective_branch_protection_name+        user_can_merge: true+      properties:+        commit:+          $ref: '#/components/schemas/PayloadCommit'+        effective_branch_protection_name:+          type: string+          x-go-name: EffectiveBranchProtectionName+        enable_status_check:+          type: boolean+          x-go-name: EnableStatusCheck+        name:+          type: string+          x-go-name: Name+        protected:+          type: boolean+          x-go-name: Protected+        required_approvals:+          format: int64+          type: integer+          x-go-name: RequiredApprovals+        status_check_contexts:+          items:+            type: string+          type: array+          x-go-name: StatusCheckContexts+        user_can_merge:+          type: boolean+          x-go-name: UserCanMerge+        user_can_push:+          type: boolean+          x-go-name: UserCanPush+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    BranchProtection:+      description: BranchProtection represents a branch protection for a repository+      example:+        merge_whitelist_teams:+        - merge_whitelist_teams+        - merge_whitelist_teams+        enable_push: true+        push_whitelist_teams:+        - push_whitelist_teams+        - push_whitelist_teams+        block_on_outdated_branch: true+        push_whitelist_deploy_keys: true+        created_at: 2000-01-23T04:56:07.000+00:00+        enable_status_check: true+        merge_whitelist_usernames:+        - merge_whitelist_usernames+        - merge_whitelist_usernames+        updated_at: 2000-01-23T04:56:07.000+00:00+        branch_name: branch_name+        required_approvals: 0+        block_on_rejected_reviews: true+        require_signed_commits: true+        enable_merge_whitelist: true+        enable_push_whitelist: true+        rule_name: rule_name+        approvals_whitelist_username:+        - approvals_whitelist_username+        - approvals_whitelist_username+        dismiss_stale_approvals: true+        status_check_contexts:+        - status_check_contexts+        - status_check_contexts+        push_whitelist_usernames:+        - push_whitelist_usernames+        - push_whitelist_usernames+        protected_file_patterns: protected_file_patterns+        enable_approvals_whitelist: true+        approvals_whitelist_teams:+        - approvals_whitelist_teams+        - approvals_whitelist_teams+        unprotected_file_patterns: unprotected_file_patterns+        block_on_official_review_requests: true+      properties:+        approvals_whitelist_teams:+          items:+            type: string+          type: array+          x-go-name: ApprovalsWhitelistTeams+        approvals_whitelist_username:+          items:+            type: string+          type: array+          x-go-name: ApprovalsWhitelistUsernames+        block_on_official_review_requests:+          type: boolean+          x-go-name: BlockOnOfficialReviewRequests+        block_on_outdated_branch:+          type: boolean+          x-go-name: BlockOnOutdatedBranch+        block_on_rejected_reviews:+          type: boolean+          x-go-name: BlockOnRejectedReviews+        branch_name:+          description: "Deprecated: true"+          type: string+          x-go-name: BranchName+        created_at:+          format: date-time+          type: string+          x-go-name: Created+        dismiss_stale_approvals:+          type: boolean+          x-go-name: DismissStaleApprovals+        enable_approvals_whitelist:+          type: boolean+          x-go-name: EnableApprovalsWhitelist+        enable_merge_whitelist:+          type: boolean+          x-go-name: EnableMergeWhitelist+        enable_push:+          type: boolean+          x-go-name: EnablePush+        enable_push_whitelist:+          type: boolean+          x-go-name: EnablePushWhitelist+        enable_status_check:+          type: boolean+          x-go-name: EnableStatusCheck+        merge_whitelist_teams:+          items:+            type: string+          type: array+          x-go-name: MergeWhitelistTeams+        merge_whitelist_usernames:+          items:+            type: string+          type: array+          x-go-name: MergeWhitelistUsernames+        protected_file_patterns:+          type: string+          x-go-name: ProtectedFilePatterns+        push_whitelist_deploy_keys:+          type: boolean+          x-go-name: PushWhitelistDeployKeys+        push_whitelist_teams:+          items:+            type: string+          type: array+          x-go-name: PushWhitelistTeams+        push_whitelist_usernames:+          items:+            type: string+          type: array+          x-go-name: PushWhitelistUsernames+        require_signed_commits:+          type: boolean+          x-go-name: RequireSignedCommits+        required_approvals:+          format: int64+          type: integer+          x-go-name: RequiredApprovals+        rule_name:+          type: string+          x-go-name: RuleName+        status_check_contexts:+          items:+            type: string+          type: array+          x-go-name: StatusCheckContexts+        unprotected_file_patterns:+          type: string+          x-go-name: UnprotectedFilePatterns+        updated_at:+          format: date-time+          type: string+          x-go-name: Updated+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    ChangedFile:+      description: ChangedFile store information about files affected by the pull+        request+      example:+        filename: filename+        additions: 0+        deletions: 1+        html_url: html_url+        changes: 6+        previous_filename: previous_filename+        raw_url: raw_url+        contents_url: contents_url+        status: status+      properties:+        additions:+          format: int64+          type: integer+          x-go-name: Additions+        changes:+          format: int64+          type: integer+          x-go-name: Changes+        contents_url:+          type: string+          x-go-name: ContentsURL+        deletions:+          format: int64+          type: integer+          x-go-name: Deletions+        filename:+          type: string+          x-go-name: Filename+        html_url:+          type: string+          x-go-name: HTMLURL+        previous_filename:+          type: string+          x-go-name: PreviousFilename+        raw_url:+          type: string+          x-go-name: RawURL+        status:+          type: string+          x-go-name: Status+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    CombinedStatus:+      description: CombinedStatus holds the combined state of several statuses for+        a single commit+      example:+        commit_url: commit_url+        total_count: 6+        statuses:+        - creator:+            website: website+            visibility: visibility+            created: 2000-01-23T04:56:07.000+00:00+            last_login: 2000-01-23T04:56:07.000+00:00+            active: true+            description: description+            language: language+            starred_repos_count: 5+            login: login+            is_admin: true+            full_name: full_name+            login_name: empty+            avatar_url: avatar_url+            following_count: 6+            restricted: true+            followers_count: 0+            location: location+            id: 1+            prohibit_login: true+            email: email+          updated_at: 2000-01-23T04:56:07.000+00:00+          target_url: target_url+          context: context+          created_at: 2000-01-23T04:56:07.000+00:00+          description: description+          id: 0+          url: url+          status: status+        - creator:+            website: website+            visibility: visibility+            created: 2000-01-23T04:56:07.000+00:00+            last_login: 2000-01-23T04:56:07.000+00:00+            active: true+            description: description+            language: language+            starred_repos_count: 5+            login: login+            is_admin: true+            full_name: full_name+            login_name: empty+            avatar_url: avatar_url+            following_count: 6+            restricted: true+            followers_count: 0+            location: location+            id: 1+            prohibit_login: true+            email: email+          updated_at: 2000-01-23T04:56:07.000+00:00+          target_url: target_url+          context: context+          created_at: 2000-01-23T04:56:07.000+00:00+          description: description+          id: 0+          url: url+          status: status+        state: state+        repository:+          parent: null+          open_pr_counter: 5+          language: language+          repo_transfer:+            teams:+            - can_create_org_repo: true+              units_map:+                repo.code: read+                repo.ext_issues: none+                repo.ext_wiki: none+                repo.issues: write+                repo.projects: none+                repo.pulls: owner+                repo.releases: none+                repo.wiki: admin+              organization:+                website: website+                full_name: full_name+                repo_admin_change_team_access: true+                avatar_url: avatar_url+                visibility: visibility+                name: name+                description: description+                location: location+                id: 0+                username: username+              name: name+              description: description+              permission: none+              id: 2+              includes_all_repositories: true+              units:+              - repo.code+              - repo.issues+              - repo.ext_issues+              - repo.wiki+              - repo.pulls+              - repo.releases+              - repo.projects+              - repo.ext_wiki+            - can_create_org_repo: true+              units_map:+                repo.code: read+                repo.ext_issues: none+                repo.ext_wiki: none+                repo.issues: write+                repo.projects: none+                repo.pulls: owner+                repo.releases: none+                repo.wiki: admin+              organization:+                website: website+                full_name: full_name+                repo_admin_change_team_access: true+                avatar_url: avatar_url+                visibility: visibility+                name: name+                description: description+                location: location+                id: 0+                username: username+              name: name+              description: description+              permission: none+              id: 2+              includes_all_repositories: true+              units:+              - repo.code+              - repo.issues+              - repo.ext_issues+              - repo.wiki+              - repo.pulls+              - repo.releases+              - repo.projects+              - repo.ext_wiki+            doer:+              website: website+              visibility: visibility+              created: 2000-01-23T04:56:07.000+00:00+              last_login: 2000-01-23T04:56:07.000+00:00+              active: true+              description: description+              language: language+              starred_repos_count: 5+              login: login+              is_admin: true+              full_name: full_name+              login_name: empty+              avatar_url: avatar_url+              following_count: 6+              restricted: true+              followers_count: 0+              location: location+              id: 1+              prohibit_login: true+              email: email+            recipient:+              website: website+              visibility: visibility+              created: 2000-01-23T04:56:07.000+00:00+              last_login: 2000-01-23T04:56:07.000+00:00+              active: true+              description: description+              language: language+              starred_repos_count: 5+              login: login+              is_admin: true+              full_name: full_name+              login_name: empty+              avatar_url: avatar_url+              following_count: 6+              restricted: true+              followers_count: 0+              location: location+              id: 1+              prohibit_login: true+              email: email+          has_pull_requests: true+          empty: true+          permissions:+            pull: true+            admin: true+            push: true+          id: 6+          release_counter: 5+          default_delete_branch_after_merge: true+          ssh_url: ssh_url+          full_name: full_name+          size: 7+          languages_url: languages_url+          clone_url: clone_url+          html_url: html_url+          name: name+          default_branch: default_branch+          mirror_updated: 2000-01-23T04:56:07.000+00:00+          ignore_whitespace_conflicts: true+          template: true+          internal: true+          mirror: true+          private: true+          open_issues_count: 1+          link: link+          created_at: 2000-01-23T04:56:07.000+00:00+          default_allow_maintainer_edit: true+          description: description+          allow_rebase_update: true+          has_projects: true+          archived: true+          has_wiki: true+          updated_at: 2000-01-23T04:56:07.000+00:00+          allow_merge_commits: true+          stars_count: 9+          allow_rebase_explicit: true+          external_tracker:+            external_tracker_regexp_pattern: external_tracker_regexp_pattern+            external_tracker_style: external_tracker_style+            external_tracker_url: external_tracker_url+            external_tracker_format: external_tracker_format+          mirror_interval: mirror_interval+          owner:+            website: website+            visibility: visibility+            created: 2000-01-23T04:56:07.000+00:00+            last_login: 2000-01-23T04:56:07.000+00:00+            active: true+            description: description+            language: language+            starred_repos_count: 5+            login: login+            is_admin: true+            full_name: full_name+            login_name: empty+            avatar_url: avatar_url+            following_count: 6+            restricted: true+            followers_count: 0+            location: location+            id: 1+            prohibit_login: true+            email: email+          allow_squash_merge: true+          external_wiki:+            external_wiki_url: external_wiki_url+          website: website+          internal_tracker:+            enable_issue_dependencies: true+            allow_only_contributors_to_track_time: true+            enable_time_tracker: true+          has_issues: true+          allow_rebase: true+          default_merge_style: default_merge_style+          fork: true+          avatar_url: avatar_url+          original_url: original_url+          watchers_count: 3+          forks_count: 0+        sha: sha+        url: url+      properties:+        commit_url:+          type: string+          x-go-name: CommitURL+        repository:+          $ref: '#/components/schemas/Repository'+        sha:+          type: string+          x-go-name: SHA+        state:+          description: |-+            CommitStatusState holds the state of a CommitStatus+            It can be "pending", "success", "error", "failure", and "warning"+          type: string+          x-go-package: code.gitea.io/gitea/modules/structs+        statuses:+          items:+            $ref: '#/components/schemas/CommitStatus'+          type: array+          x-go-name: Statuses+        total_count:+          format: int64+          type: integer+          x-go-name: TotalCount+        url:+          type: string+          x-go-name: URL+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    Comment:+      description: Comment represents a comment on a commit or issue+      example:+        issue_url: issue_url+        assets:+        - size: 1+          name: name+          created_at: 2000-01-23T04:56:07.000+00:00+          browser_download_url: browser_download_url+          id: 6+          uuid: uuid+          download_count: 0+        - size: 1+          name: name+          created_at: 2000-01-23T04:56:07.000+00:00+          browser_download_url: browser_download_url+          id: 6+          uuid: uuid+          download_count: 0+        updated_at: 2000-01-23T04:56:07.000+00:00+        html_url: html_url+        original_author_id: 6+        created_at: 2000-01-23T04:56:07.000+00:00+        id: 0+        pull_request_url: pull_request_url+        body: body+        original_author: original_author+        user:+          website: website+          visibility: visibility+          created: 2000-01-23T04:56:07.000+00:00+          last_login: 2000-01-23T04:56:07.000+00:00+          active: true+          description: description+          language: language+          starred_repos_count: 5+          login: login+          is_admin: true+          full_name: full_name+          login_name: empty+          avatar_url: avatar_url+          following_count: 6+          restricted: true+          followers_count: 0+          location: location+          id: 1+          prohibit_login: true+          email: email+      properties:+        assets:+          items:+            $ref: '#/components/schemas/Attachment'+          type: array+          x-go-name: Attachments+        body:+          type: string+          x-go-name: Body+        created_at:+          format: date-time+          type: string+          x-go-name: Created+        html_url:+          type: string+          x-go-name: HTMLURL+        id:+          format: int64+          type: integer+          x-go-name: ID+        issue_url:+          type: string+          x-go-name: IssueURL+        original_author:+          type: string+          x-go-name: OriginalAuthor+        original_author_id:+          format: int64+          type: integer+          x-go-name: OriginalAuthorID+        pull_request_url:+          type: string+          x-go-name: PRURL+        updated_at:+          format: date-time+          type: string+          x-go-name: Updated+        user:+          $ref: '#/components/schemas/User'+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    Commit:+      example:+        committer:+          website: website+          visibility: visibility+          created: 2000-01-23T04:56:07.000+00:00+          last_login: 2000-01-23T04:56:07.000+00:00+          active: true+          description: description+          language: language+          starred_repos_count: 5+          login: login+          is_admin: true+          full_name: full_name+          login_name: empty+          avatar_url: avatar_url+          following_count: 6+          restricted: true+          followers_count: 0+          location: location+          id: 1+          prohibit_login: true+          email: email+        stats:+          total: 1+          additions: 0+          deletions: 6+        author:+          website: website+          visibility: visibility+          created: 2000-01-23T04:56:07.000+00:00+          last_login: 2000-01-23T04:56:07.000+00:00+          active: true+          description: description+          language: language+          starred_repos_count: 5+          login: login+          is_admin: true+          full_name: full_name+          login_name: empty+          avatar_url: avatar_url+          following_count: 6+          restricted: true+          followers_count: 0+          location: location+          id: 1+          prohibit_login: true+          email: email+        created: 2000-01-23T04:56:07.000+00:00+        html_url: html_url+        commit:+          committer:+            date: date+            name: name+            email: email+          author:+            date: date+            name: name+            email: email+          tree:+            created: 2000-01-23T04:56:07.000+00:00+            sha: sha+            url: url+          message: message+          url: url+          verification:+            reason: reason+            payload: payload+            signature: signature+            verified: true+            signer:+              name: name+              email: email+              username: username+        files:+        - filename: filename+        - filename: filename+        sha: sha+        url: url+        parents:+        - created: 2000-01-23T04:56:07.000+00:00+          sha: sha+          url: url+        - created: 2000-01-23T04:56:07.000+00:00+          sha: sha+          url: url+      properties:+        author:+          $ref: '#/components/schemas/User'+        commit:+          $ref: '#/components/schemas/RepoCommit'+        committer:+          $ref: '#/components/schemas/User'+        created:+          format: date-time+          type: string+          x-go-name: Created+        files:+          items:+            $ref: '#/components/schemas/CommitAffectedFiles'+          type: array+          x-go-name: Files+        html_url:+          type: string+          x-go-name: HTMLURL+        parents:+          items:+            $ref: '#/components/schemas/CommitMeta'+          type: array+          x-go-name: Parents+        sha:+          type: string+          x-go-name: SHA+        stats:+          $ref: '#/components/schemas/CommitStats'+        url:+          type: string+          x-go-name: URL+      title: Commit contains information generated from a Git commit.+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    CommitAffectedFiles:+      description: CommitAffectedFiles store information about files affected by the+        commit+      example:+        filename: filename+      properties:+        filename:+          type: string+          x-go-name: Filename+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    CommitDateOptions:+      description: CommitDateOptions store dates for GIT_AUTHOR_DATE and GIT_COMMITTER_DATE+      example:+        committer: 2000-01-23T04:56:07.000+00:00+        author: 2000-01-23T04:56:07.000+00:00+      properties:+        author:+          format: date-time+          type: string+          x-go-name: Author+        committer:+          format: date-time+          type: string+          x-go-name: Committer+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    CommitMeta:+      example:+        created: 2000-01-23T04:56:07.000+00:00+        sha: sha+        url: url+      properties:+        created:+          format: date-time+          type: string+          x-go-name: Created+        sha:+          type: string+          x-go-name: SHA+        url:+          type: string+          x-go-name: URL+      title: CommitMeta contains meta information of a commit in terms of API.+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    CommitStats:+      description: CommitStats is statistics for a RepoCommit+      example:+        total: 1+        additions: 0+        deletions: 6+      properties:+        additions:+          format: int64+          type: integer+          x-go-name: Additions+        deletions:+          format: int64+          type: integer+          x-go-name: Deletions+        total:+          format: int64+          type: integer+          x-go-name: Total+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    CommitStatus:+      description: CommitStatus holds a single status of a single Commit+      example:+        creator:+          website: website+          visibility: visibility+          created: 2000-01-23T04:56:07.000+00:00+          last_login: 2000-01-23T04:56:07.000+00:00+          active: true+          description: description+          language: language+          starred_repos_count: 5+          login: login+          is_admin: true+          full_name: full_name+          login_name: empty+          avatar_url: avatar_url+          following_count: 6+          restricted: true+          followers_count: 0+          location: location+          id: 1+          prohibit_login: true+          email: email+        updated_at: 2000-01-23T04:56:07.000+00:00+        target_url: target_url+        context: context+        created_at: 2000-01-23T04:56:07.000+00:00+        description: description+        id: 0+        url: url+        status: status+      properties:+        context:+          type: string+          x-go-name: Context+        created_at:+          format: date-time+          type: string+          x-go-name: Created+        creator:+          $ref: '#/components/schemas/User'+        description:+          type: string+          x-go-name: Description+        id:+          format: int64+          type: integer+          x-go-name: ID+        status:+          description: |-+            CommitStatusState holds the state of a CommitStatus+            It can be "pending", "success", "error", "failure", and "warning"+          type: string+          x-go-package: code.gitea.io/gitea/modules/structs+        target_url:+          type: string+          x-go-name: TargetURL+        updated_at:+          format: date-time+          type: string+          x-go-name: Updated+        url:+          type: string+          x-go-name: URL+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    CommitStatusState:+      description: |-+        CommitStatusState holds the state of a CommitStatus+        It can be "pending", "success", "error", "failure", and "warning"+      type: string+      x-go-package: code.gitea.io/gitea/modules/structs+    CommitUser:+      example:+        date: date+        name: name+        email: email+      properties:+        date:+          type: string+          x-go-name: Date+        email:+          format: email+          type: string+          x-go-name: Email+        name:+          type: string+          x-go-name: Name+      title: CommitUser contains information of a user in the context of a commit.+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    ContentsResponse:+      description: "ContentsResponse contains information about a repo's entry's (dir,\+        \ file, symlink, submodule) metadata and content"+      example:+        _links:+          git: git+          self: self+          html: html+        submodule_git_url: submodule_git_url+        last_commit_sha: last_commit_sha+        encoding: encoding+        type: type+        sha: sha+        content: content+        url: url+        target: target+        path: path+        size: 0+        html_url: html_url+        download_url: download_url+        name: name+        git_url: git_url+      properties:+        _links:+          $ref: '#/components/schemas/FileLinksResponse'+        content:+          description: "`content` is populated when `type` is `file`, otherwise null"+          type: string+          x-go-name: Content+        download_url:+          type: string+          x-go-name: DownloadURL+        encoding:+          description: "`encoding` is populated when `type` is `file`, otherwise null"+          type: string+          x-go-name: Encoding+        git_url:+          type: string+          x-go-name: GitURL+        html_url:+          type: string+          x-go-name: HTMLURL+        last_commit_sha:+          type: string+          x-go-name: LastCommitSHA+        name:+          type: string+          x-go-name: Name+        path:+          type: string+          x-go-name: Path+        sha:+          type: string+          x-go-name: SHA+        size:+          format: int64+          type: integer+          x-go-name: Size+        submodule_git_url:+          description: "`submodule_git_url` is populated when `type` is `submodule`,\+            \ otherwise null"+          type: string+          x-go-name: SubmoduleGitURL+        target:+          description: "`target` is populated when `type` is `symlink`, otherwise\+            \ null"+          type: string+          x-go-name: Target+        type:+          description: "`type` will be `file`, `dir`, `symlink`, or `submodule`"+          type: string+          x-go-name: Type+        url:+          type: string+          x-go-name: URL+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    CreateAccessTokenOption:+      description: CreateAccessTokenOption options when create access token+      example:+        name: name+        scopes:+        - scopes+        - scopes+      properties:+        name:+          type: string+          x-go-name: Name+        scopes:+          items:+            type: string+          type: array+          x-go-name: Scopes+      required:+      - name+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    CreateBranchProtectionOption:+      description: CreateBranchProtectionOption options for creating a branch protection+      example:+        block_on_rejected_reviews: true+        merge_whitelist_teams:+        - merge_whitelist_teams+        - merge_whitelist_teams+        enable_push: true+        require_signed_commits: true+        enable_merge_whitelist: true+        enable_push_whitelist: true+        push_whitelist_teams:+        - push_whitelist_teams+        - push_whitelist_teams+        block_on_outdated_branch: true+        push_whitelist_deploy_keys: true+        rule_name: rule_name+        approvals_whitelist_username:+        - approvals_whitelist_username+        - approvals_whitelist_username+        dismiss_stale_approvals: true+        enable_status_check: true+        status_check_contexts:+        - status_check_contexts+        - status_check_contexts+        push_whitelist_usernames:+        - push_whitelist_usernames+        - push_whitelist_usernames+        merge_whitelist_usernames:+        - merge_whitelist_usernames+        - merge_whitelist_usernames+        protected_file_patterns: protected_file_patterns+        branch_name: branch_name+        enable_approvals_whitelist: true+        approvals_whitelist_teams:+        - approvals_whitelist_teams+        - approvals_whitelist_teams+        required_approvals: 0+        unprotected_file_patterns: unprotected_file_patterns+        block_on_official_review_requests: true+      properties:+        approvals_whitelist_teams:+          items:+            type: string+          type: array+          x-go-name: ApprovalsWhitelistTeams+        approvals_whitelist_username:+          items:+            type: string+          type: array+          x-go-name: ApprovalsWhitelistUsernames+        block_on_official_review_requests:+          type: boolean+          x-go-name: BlockOnOfficialReviewRequests+        block_on_outdated_branch:+          type: boolean+          x-go-name: BlockOnOutdatedBranch+        block_on_rejected_reviews:+          type: boolean+          x-go-name: BlockOnRejectedReviews+        branch_name:+          description: "Deprecated: true"+          type: string+          x-go-name: BranchName+        dismiss_stale_approvals:+          type: boolean+          x-go-name: DismissStaleApprovals+        enable_approvals_whitelist:+          type: boolean+          x-go-name: EnableApprovalsWhitelist+        enable_merge_whitelist:+          type: boolean+          x-go-name: EnableMergeWhitelist+        enable_push:+          type: boolean+          x-go-name: EnablePush+        enable_push_whitelist:+          type: boolean+          x-go-name: EnablePushWhitelist+        enable_status_check:+          type: boolean+          x-go-name: EnableStatusCheck+        merge_whitelist_teams:+          items:+            type: string+          type: array+          x-go-name: MergeWhitelistTeams+        merge_whitelist_usernames:+          items:+            type: string+          type: array+          x-go-name: MergeWhitelistUsernames+        protected_file_patterns:+          type: string+          x-go-name: ProtectedFilePatterns+        push_whitelist_deploy_keys:+          type: boolean+          x-go-name: PushWhitelistDeployKeys+        push_whitelist_teams:+          items:+            type: string+          type: array+          x-go-name: PushWhitelistTeams+        push_whitelist_usernames:+          items:+            type: string+          type: array+          x-go-name: PushWhitelistUsernames+        require_signed_commits:+          type: boolean+          x-go-name: RequireSignedCommits+        required_approvals:+          format: int64+          type: integer+          x-go-name: RequiredApprovals+        rule_name:+          type: string+          x-go-name: RuleName+        status_check_contexts:+          items:+            type: string+          type: array+          x-go-name: StatusCheckContexts+        unprotected_file_patterns:+          type: string+          x-go-name: UnprotectedFilePatterns+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    CreateBranchRepoOption:+      description: CreateBranchRepoOption options when creating a branch in a repository+      example:+        new_branch_name: new_branch_name+        old_branch_name: old_branch_name+      properties:+        new_branch_name:+          description: Name of the branch to create+          type: string+          x-go-name: BranchName+        old_branch_name:+          description: Name of the old branch to create from+          type: string+          x-go-name: OldBranchName+      required:+      - new_branch_name+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    CreateEmailOption:+      description: CreateEmailOption options when creating email addresses+      example:+        emails:+        - emails+        - emails+      properties:+        emails:+          description: email addresses to add+          items:+            type: string+          type: array+          x-go-name: Emails+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    CreateFileOptions:+      description: |-+        CreateFileOptions options for creating files+        Note: `author` and `committer` are optional (if only one is given, it will be used for the other, otherwise the authenticated user will be used)+      example:+        committer:+          name: name+          email: email+        author:+          name: name+          email: email+        new_branch: new_branch+        dates:+          committer: 2000-01-23T04:56:07.000+00:00+          author: 2000-01-23T04:56:07.000+00:00+        signoff: true+        message: message+        branch: branch+        content: content+      properties:+        author:+          $ref: '#/components/schemas/Identity'+        branch:+          description: "branch (optional) to base this file from. if not given, the\+            \ default branch is used"+          type: string+          x-go-name: BranchName+        committer:+          $ref: '#/components/schemas/Identity'+        content:+          description: content must be base64 encoded+          type: string+          x-go-name: Content+        dates:+          $ref: '#/components/schemas/CommitDateOptions'+        message:+          description: "message (optional) for the commit of this file. if not supplied,\+            \ a default message will be used"+          type: string+          x-go-name: Message+        new_branch:+          description: new_branch (optional) will make a new branch from `branch`+            before creating the file+          type: string+          x-go-name: NewBranchName+        signoff:+          description: Add a Signed-off-by trailer by the committer at the end of+            the commit log message.+          type: boolean+          x-go-name: Signoff+      required:+      - content+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    CreateForkOption:+      description: CreateForkOption options for creating a fork+      example:+        organization: organization+        name: name+      properties:+        name:+          description: name of the forked repository+          type: string+          x-go-name: Name+        organization:+          description: "organization name, if forking into an organization"+          type: string+          x-go-name: Organization+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    CreateGPGKeyOption:+      description: CreateGPGKeyOption options create user GPG key+      example:+        armored_public_key: armored_public_key+        armored_signature: armored_signature+      properties:+        armored_public_key:+          description: An armored GPG key to add+          type: string+          x-go-name: ArmoredKey+        armored_signature:+          type: string+          x-go-name: Signature+      required:+      - armored_public_key+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    CreateHookOption:+      description: CreateHookOption options when create a hook+      example:+        branch_filter: branch_filter+        active: false+        type: dingtalk+        config:+          key: config+        authorization_header: authorization_header+        events:+        - events+        - events+      properties:+        active:+          default: false+          type: boolean+          x-go-name: Active+        authorization_header:+          type: string+          x-go-name: AuthorizationHeader+        branch_filter:+          type: string+          x-go-name: BranchFilter+        config:+          additionalProperties:+            type: string+          description: |-+            CreateHookOptionConfig has all config options in it+            required are "content_type" and "url" Required+          type: object+          x-go-package: code.gitea.io/gitea/modules/structs+        events:+          items:+            type: string+          type: array+          x-go-name: Events+        type:+          enum:+          - dingtalk+          - discord+          - gitea+          - gogs+          - msteams+          - slack+          - telegram+          - feishu+          - wechatwork+          - packagist+          type: string+          x-go-name: Type+      required:+      - config+      - type+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    CreateHookOptionConfig:+      additionalProperties:+        type: string+      description: |-+        CreateHookOptionConfig has all config options in it+        required are "content_type" and "url" Required+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    CreateIssueCommentOption:+      description: CreateIssueCommentOption options for creating a comment on an issue+      example:+        body: body+      properties:+        body:+          type: string+          x-go-name: Body+      required:+      - body+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    CreateIssueOption:+      description: CreateIssueOption options to create one issue+      example:+        ref: ref+        milestone: 6+        due_date: 2000-01-23T04:56:07.000+00:00+        assignees:+        - assignees+        - assignees+        closed: true+        assignee: assignee+        body: body+        title: title+        labels:+        - 0+        - 0+      properties:+        assignee:+          description: deprecated+          type: string+          x-go-name: Assignee+        assignees:+          items:+            type: string+          type: array+          x-go-name: Assignees+        body:+          type: string+          x-go-name: Body+        closed:+          type: boolean+          x-go-name: Closed+        due_date:+          format: date-time+          type: string+          x-go-name: Deadline+        labels:+          description: list of label ids+          items:+            format: int64+            type: integer+          type: array+          x-go-name: Labels+        milestone:+          description: milestone id+          format: int64+          type: integer+          x-go-name: Milestone+        ref:+          type: string+          x-go-name: Ref+        title:+          type: string+          x-go-name: Title+      required:+      - title+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    CreateKeyOption:+      description: CreateKeyOption options when creating a key+      example:+        read_only: true+        title: title+        key: key+      properties:+        key:+          description: An armored SSH key to add+          type: string+          x-go-name: Key+        read_only:+          description: Describe if the key has only read access or read/write+          type: boolean+          x-go-name: ReadOnly+        title:+          description: Title of the key to add+          type: string+          x-go-name: Title+      required:+      - key+      - title+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    CreateLabelOption:+      description: CreateLabelOption options for creating a label+      example:+        color: '#00aabb'+        name: name+        description: description+        exclusive: false+      properties:+        color:+          example: '#00aabb'+          type: string+          x-go-name: Color+        description:+          type: string+          x-go-name: Description+        exclusive:+          example: false+          type: boolean+          x-go-name: Exclusive+        name:+          type: string+          x-go-name: Name+      required:+      - color+      - name+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    CreateMilestoneOption:+      description: CreateMilestoneOption options for creating a milestone+      example:+        description: description+        state: open+        title: title+        due_on: 2000-01-23T04:56:07.000+00:00+      properties:+        description:+          type: string+          x-go-name: Description+        due_on:+          format: date-time+          type: string+          x-go-name: Deadline+        state:+          enum:+          - open+          - closed+          type: string+          x-go-name: State+        title:+          type: string+          x-go-name: Title+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    CreateOAuth2ApplicationOptions:+      description: CreateOAuth2ApplicationOptions holds options to create an oauth2+        application+      example:+        name: name+        confidential_client: true+        redirect_uris:+        - redirect_uris+        - redirect_uris+      properties:+        confidential_client:+          type: boolean+          x-go-name: ConfidentialClient+        name:+          type: string+          x-go-name: Name+        redirect_uris:+          items:+            type: string+          type: array+          x-go-name: RedirectURIs+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    CreateOrgOption:+      description: CreateOrgOption options for creating an organization+      example:+        website: website+        full_name: full_name+        repo_admin_change_team_access: true+        visibility: public+        description: description+        location: location+        username: username+      properties:+        description:+          type: string+          x-go-name: Description+        full_name:+          type: string+          x-go-name: FullName+        location:+          type: string+          x-go-name: Location+        repo_admin_change_team_access:+          type: boolean+          x-go-name: RepoAdminChangeTeamAccess+        username:+          type: string+          x-go-name: UserName+        visibility:+          description: "possible values are `public` (default), `limited` or `private`"+          enum:+          - public+          - limited+          - private+          type: string+          x-go-name: Visibility+        website:+          type: string+          x-go-name: Website+      required:+      - username+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    CreatePullRequestOption:+      description: CreatePullRequestOption options when creating a pull request+      example:+        head: head+        milestone: 6+        due_date: 2000-01-23T04:56:07.000+00:00+        assignees:+        - assignees+        - assignees+        assignee: assignee+        body: body+        title: title+        base: base+        labels:+        - 0+        - 0+      properties:+        assignee:+          type: string+          x-go-name: Assignee+        assignees:+          items:+            type: string+          type: array+          x-go-name: Assignees+        base:+          type: string+          x-go-name: Base+        body:+          type: string+          x-go-name: Body+        due_date:+          format: date-time+          type: string+          x-go-name: Deadline+        head:+          type: string+          x-go-name: Head+        labels:+          items:+            format: int64+            type: integer+          type: array+          x-go-name: Labels+        milestone:+          format: int64+          type: integer+          x-go-name: Milestone+        title:+          type: string+          x-go-name: Title+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    CreatePullReviewComment:+      description: CreatePullReviewComment represent a review comment for creation+        api+      example:+        path: path+        new_position: 0+        old_position: 6+        body: body+      properties:+        body:+          type: string+          x-go-name: Body+        new_position:+          description: if comment to new file line or 0+          format: int64+          type: integer+          x-go-name: NewLineNum+        old_position:+          description: if comment to old file line or 0+          format: int64+          type: integer+          x-go-name: OldLineNum+        path:+          description: the tree path+          type: string+          x-go-name: Path+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    CreatePullReviewOptions:+      description: CreatePullReviewOptions are options to create a pull review+      example:+        comments:+        - path: path+          new_position: 0+          old_position: 6+          body: body+        - path: path+          new_position: 0+          old_position: 6+          body: body+        body: body+        event: event+        commit_id: commit_id+      properties:+        body:+          type: string+          x-go-name: Body+        comments:+          items:+            $ref: '#/components/schemas/CreatePullReviewComment'+          type: array+          x-go-name: Comments+        commit_id:+          type: string+          x-go-name: CommitID+        event:+          description: ReviewStateType review state type+          type: string+          x-go-package: code.gitea.io/gitea/modules/structs+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    CreatePushMirrorOption:+      example:+        remote_username: remote_username+        sync_on_commit: true+        interval: interval+        remote_address: remote_address+        remote_password: remote_password+      properties:+        interval:+          type: string+          x-go-name: Interval+        remote_address:+          type: string+          x-go-name: RemoteAddress+        remote_password:+          type: string+          x-go-name: RemotePassword+        remote_username:+          type: string+          x-go-name: RemoteUsername+        sync_on_commit:+          type: boolean+          x-go-name: SyncOnCommit+      title: CreatePushMirrorOption represents need information to create a push mirror+        of a repository.+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    CreateReleaseOption:+      description: CreateReleaseOption options when creating a release+      example:+        prerelease: true+        tag_name: tag_name+        draft: true+        target_commitish: target_commitish+        name: name+        body: body+      properties:+        body:+          type: string+          x-go-name: Note+        draft:+          type: boolean+          x-go-name: IsDraft+        name:+          type: string+          x-go-name: Title+        prerelease:+          type: boolean+          x-go-name: IsPrerelease+        tag_name:+          type: string+          x-go-name: TagName+        target_commitish:+          type: string+          x-go-name: Target+      required:+      - tag_name+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    CreateRepoOption:+      description: CreateRepoOption options when creating repository+      example:+        auto_init: true+        template: true+        issue_labels: issue_labels+        license: license+        private: true+        trust_model: default+        gitignores: gitignores+        name: name+        description: description+        default_branch: default_branch+        readme: readme+      properties:+        auto_init:+          description: Whether the repository should be auto-initialized?+          type: boolean+          x-go-name: AutoInit+        default_branch:+          description: DefaultBranch of the repository (used when initializes and+            in template)+          type: string+          x-go-name: DefaultBranch+        description:+          description: Description of the repository to create+          type: string+          x-go-name: Description+        gitignores:+          description: Gitignores to use+          type: string+          x-go-name: Gitignores+        issue_labels:+          description: Label-Set to use+          type: string+          x-go-name: IssueLabels+        license:+          description: License to use+          type: string+          x-go-name: License+        name:+          description: Name of the repository to create+          type: string+          x-go-name: Name+        private:+          description: Whether the repository is private+          type: boolean+          x-go-name: Private+        readme:+          description: Readme of the repository to create+          type: string+          x-go-name: Readme+        template:+          description: Whether the repository is template+          type: boolean+          x-go-name: Template+        trust_model:+          description: TrustModel of the repository+          enum:+          - default+          - collaborator+          - committer+          - collaboratorcommitter+          type: string+          x-go-name: TrustModel+      required:+      - name+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    CreateStatusOption:+      description: CreateStatusOption holds the information needed to create a new+        CommitStatus for a Commit+      example:+        target_url: target_url+        context: context+        description: description+        state: state+      properties:+        context:+          type: string+          x-go-name: Context+        description:+          type: string+          x-go-name: Description+        state:+          description: |-+            CommitStatusState holds the state of a CommitStatus+            It can be "pending", "success", "error", "failure", and "warning"+          type: string+          x-go-package: code.gitea.io/gitea/modules/structs+        target_url:+          type: string+          x-go-name: TargetURL+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    CreateTagOption:+      description: CreateTagOption options when creating a tag+      example:+        tag_name: tag_name+        message: message+        target: target+      properties:+        message:+          type: string+          x-go-name: Message+        tag_name:+          type: string+          x-go-name: TagName+        target:+          type: string+          x-go-name: Target+      required:+      - tag_name+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    CreateTeamOption:+      description: CreateTeamOption options for creating a team+      example:+        can_create_org_repo: true+        units_map:+          repo.code: read+          repo.ext_issues: none+          repo.ext_wiki: none+          repo.issues: write+          repo.projects: none+          repo.pulls: owner+          repo.releases: none+          repo.wiki: admin+        name: name+        description: description+        permission: read+        includes_all_repositories: true+        units:+        - repo.code+        - repo.issues+        - repo.ext_issues+        - repo.wiki+        - repo.pulls+        - repo.releases+        - repo.projects+        - repo.ext_wiki+      properties:+        can_create_org_repo:+          type: boolean+          x-go-name: CanCreateOrgRepo+        description:+          type: string+          x-go-name: Description+        includes_all_repositories:+          type: boolean+          x-go-name: IncludesAllRepositories+        name:+          type: string+          x-go-name: Name+        permission:+          enum:+          - read+          - write+          - admin+          type: string+          x-go-name: Permission+        units:+          example:+          - repo.code+          - repo.issues+          - repo.ext_issues+          - repo.wiki+          - repo.pulls+          - repo.releases+          - repo.projects+          - repo.ext_wiki+          items:+            type: string+          type: array+          x-go-name: Units+        units_map:+          additionalProperties:+            type: string+          example:+            repo.code: read+            repo.ext_issues: none+            repo.ext_wiki: none+            repo.issues: write+            repo.projects: none+            repo.pulls: owner+            repo.releases: none+            repo.wiki: admin+          type: object+          x-go-name: UnitsMap+      required:+      - name+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    CreateUserOption:+      description: CreateUserOption create user options+      example:+        must_change_password: true+        password: password+        full_name: full_name+        login_name: login_name+        visibility: visibility+        restricted: true+        created_at: 2000-01-23T04:56:07.000+00:00+        send_notify: true+        source_id: 0+        email: email+        username: username+      properties:+        created_at:+          description: |-+            For explicitly setting the user creation timestamp. Useful when users are+            migrated from other systems. When omitted, the user's creation timestamp+            will be set to "now".+          format: date-time+          type: string+          x-go-name: Created+        email:+          format: email+          type: string+          x-go-name: Email+        full_name:+          type: string+          x-go-name: FullName+        login_name:+          type: string+          x-go-name: LoginName+        must_change_password:+          type: boolean+          x-go-name: MustChangePassword+        password:+          type: string+          x-go-name: Password+        restricted:+          type: boolean+          x-go-name: Restricted+        send_notify:+          type: boolean+          x-go-name: SendNotify+        source_id:+          format: int64+          type: integer+          x-go-name: SourceID+        username:+          type: string+          x-go-name: Username+        visibility:+          type: string+          x-go-name: Visibility+      required:+      - email+      - password+      - username+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    CreateWikiPageOptions:+      description: CreateWikiPageOptions form for creating wiki+      example:+        content_base64: content_base64+        message: message+        title: title+      properties:+        content_base64:+          description: content must be base64 encoded+          type: string+          x-go-name: ContentBase64+        message:+          description: optional commit message summarizing the change+          type: string+          x-go-name: Message+        title:+          description: page title. leave empty to keep unchanged+          type: string+          x-go-name: Title+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    Cron:+      description: Cron represents a Cron task+      example:+        next: 2000-01-23T04:56:07.000+00:00+        schedule: schedule+        exec_times: 0+        prev: 2000-01-23T04:56:07.000+00:00+        name: name+      properties:+        exec_times:+          format: int64+          type: integer+          x-go-name: ExecTimes+        name:+          type: string+          x-go-name: Name+        next:+          format: date-time+          type: string+          x-go-name: Next+        prev:+          format: date-time+          type: string+          x-go-name: Prev+        schedule:+          type: string+          x-go-name: Schedule+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    DeleteEmailOption:+      description: DeleteEmailOption options when deleting email addresses+      example:+        emails:+        - emails+        - emails+      properties:+        emails:+          description: email addresses to delete+          items:+            type: string+          type: array+          x-go-name: Emails+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    DeleteFileOptions:+      description: |-+        DeleteFileOptions options for deleting files (used for other File structs below)+        Note: `author` and `committer` are optional (if only one is given, it will be used for the other, otherwise the authenticated user will be used)+      example:+        committer:+          name: name+          email: email+        author:+          name: name+          email: email+        new_branch: new_branch+        dates:+          committer: 2000-01-23T04:56:07.000+00:00+          author: 2000-01-23T04:56:07.000+00:00+        signoff: true+        message: message+        branch: branch+        sha: sha+      properties:+        author:+          $ref: '#/components/schemas/Identity'+        branch:+          description: "branch (optional) to base this file from. if not given, the\+            \ default branch is used"+          type: string+          x-go-name: BranchName+        committer:+          $ref: '#/components/schemas/Identity'+        dates:+          $ref: '#/components/schemas/CommitDateOptions'+        message:+          description: "message (optional) for the commit of this file. if not supplied,\+            \ a default message will be used"+          type: string+          x-go-name: Message+        new_branch:+          description: new_branch (optional) will make a new branch from `branch`+            before creating the file+          type: string+          x-go-name: NewBranchName+        sha:+          description: sha is the SHA for the file that already exists+          type: string+          x-go-name: SHA+        signoff:+          description: Add a Signed-off-by trailer by the committer at the end of+            the commit log message.+          type: boolean+          x-go-name: Signoff+      required:+      - sha+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    DeployKey:+      description: DeployKey a deploy key+      example:+        key_id: 6+        read_only: true+        fingerprint: fingerprint+        created_at: 2000-01-23T04:56:07.000+00:00+        id: 0+        repository:+          parent: null+          open_pr_counter: 5+          language: language+          repo_transfer:+            teams:+            - can_create_org_repo: true+              units_map:+                repo.code: read+                repo.ext_issues: none+                repo.ext_wiki: none+                repo.issues: write+                repo.projects: none+                repo.pulls: owner+                repo.releases: none+                repo.wiki: admin+              organization:+                website: website+                full_name: full_name+                repo_admin_change_team_access: true+                avatar_url: avatar_url+                visibility: visibility+                name: name+                description: description+                location: location+                id: 0+                username: username+              name: name+              description: description+              permission: none+              id: 2+              includes_all_repositories: true+              units:+              - repo.code+              - repo.issues+              - repo.ext_issues+              - repo.wiki+              - repo.pulls+              - repo.releases+              - repo.projects+              - repo.ext_wiki+            - can_create_org_repo: true+              units_map:+                repo.code: read+                repo.ext_issues: none+                repo.ext_wiki: none+                repo.issues: write+                repo.projects: none+                repo.pulls: owner+                repo.releases: none+                repo.wiki: admin+              organization:+                website: website+                full_name: full_name+                repo_admin_change_team_access: true+                avatar_url: avatar_url+                visibility: visibility+                name: name+                description: description+                location: location+                id: 0+                username: username+              name: name+              description: description+              permission: none+              id: 2+              includes_all_repositories: true+              units:+              - repo.code+              - repo.issues+              - repo.ext_issues+              - repo.wiki+              - repo.pulls+              - repo.releases+              - repo.projects+              - repo.ext_wiki+            doer:+              website: website+              visibility: visibility+              created: 2000-01-23T04:56:07.000+00:00+              last_login: 2000-01-23T04:56:07.000+00:00+              active: true+              description: description+              language: language+              starred_repos_count: 5+              login: login+              is_admin: true+              full_name: full_name+              login_name: empty+              avatar_url: avatar_url+              following_count: 6+              restricted: true+              followers_count: 0+              location: location+              id: 1+              prohibit_login: true+              email: email+            recipient:+              website: website+              visibility: visibility+              created: 2000-01-23T04:56:07.000+00:00+              last_login: 2000-01-23T04:56:07.000+00:00+              active: true+              description: description+              language: language+              starred_repos_count: 5+              login: login+              is_admin: true+              full_name: full_name+              login_name: empty+              avatar_url: avatar_url+              following_count: 6+              restricted: true+              followers_count: 0+              location: location+              id: 1+              prohibit_login: true+              email: email+          has_pull_requests: true+          empty: true+          permissions:+            pull: true+            admin: true+            push: true+          id: 6+          release_counter: 5+          default_delete_branch_after_merge: true+          ssh_url: ssh_url+          full_name: full_name+          size: 7+          languages_url: languages_url+          clone_url: clone_url+          html_url: html_url+          name: name+          default_branch: default_branch+          mirror_updated: 2000-01-23T04:56:07.000+00:00+          ignore_whitespace_conflicts: true+          template: true+          internal: true+          mirror: true+          private: true+          open_issues_count: 1+          link: link+          created_at: 2000-01-23T04:56:07.000+00:00+          default_allow_maintainer_edit: true+          description: description+          allow_rebase_update: true+          has_projects: true+          archived: true+          has_wiki: true+          updated_at: 2000-01-23T04:56:07.000+00:00+          allow_merge_commits: true+          stars_count: 9+          allow_rebase_explicit: true+          external_tracker:+            external_tracker_regexp_pattern: external_tracker_regexp_pattern+            external_tracker_style: external_tracker_style+            external_tracker_url: external_tracker_url+            external_tracker_format: external_tracker_format+          mirror_interval: mirror_interval+          owner:+            website: website+            visibility: visibility+            created: 2000-01-23T04:56:07.000+00:00+            last_login: 2000-01-23T04:56:07.000+00:00+            active: true+            description: description+            language: language+            starred_repos_count: 5+            login: login+            is_admin: true+            full_name: full_name+            login_name: empty+            avatar_url: avatar_url+            following_count: 6+            restricted: true+            followers_count: 0+            location: location+            id: 1+            prohibit_login: true+            email: email+          allow_squash_merge: true+          external_wiki:+            external_wiki_url: external_wiki_url+          website: website+          internal_tracker:+            enable_issue_dependencies: true+            allow_only_contributors_to_track_time: true+            enable_time_tracker: true+          has_issues: true+          allow_rebase: true+          default_merge_style: default_merge_style+          fork: true+          avatar_url: avatar_url+          original_url: original_url+          watchers_count: 3+          forks_count: 0+        title: title+        key: key+        url: url+      properties:+        created_at:+          format: date-time+          type: string+          x-go-name: Created+        fingerprint:+          type: string+          x-go-name: Fingerprint+        id:+          format: int64+          type: integer+          x-go-name: ID+        key:+          type: string+          x-go-name: Key+        key_id:+          format: int64+          type: integer+          x-go-name: KeyID+        read_only:+          type: boolean+          x-go-name: ReadOnly+        repository:+          $ref: '#/components/schemas/Repository'+        title:+          type: string+          x-go-name: Title+        url:+          type: string+          x-go-name: URL+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    DismissPullReviewOptions:+      description: DismissPullReviewOptions are options to dismiss a pull review+      example:+        message: message+        priors: true+      properties:+        message:+          type: string+          x-go-name: Message+        priors:+          type: boolean+          x-go-name: Priors+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    EditAttachmentOptions:+      description: EditAttachmentOptions options for editing attachments+      example:+        name: name+      properties:+        name:+          type: string+          x-go-name: Name+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    EditBranchProtectionOption:+      description: EditBranchProtectionOption options for editing a branch protection+      example:+        block_on_rejected_reviews: true+        merge_whitelist_teams:+        - merge_whitelist_teams+        - merge_whitelist_teams+        enable_push: true+        require_signed_commits: true+        enable_merge_whitelist: true+        enable_push_whitelist: true+        push_whitelist_teams:+        - push_whitelist_teams+        - push_whitelist_teams+        block_on_outdated_branch: true+        push_whitelist_deploy_keys: true+        approvals_whitelist_username:+        - approvals_whitelist_username+        - approvals_whitelist_username+        dismiss_stale_approvals: true+        enable_status_check: true+        status_check_contexts:+        - status_check_contexts+        - status_check_contexts+        push_whitelist_usernames:+        - push_whitelist_usernames+        - push_whitelist_usernames+        merge_whitelist_usernames:+        - merge_whitelist_usernames+        - merge_whitelist_usernames+        protected_file_patterns: protected_file_patterns+        enable_approvals_whitelist: true+        approvals_whitelist_teams:+        - approvals_whitelist_teams+        - approvals_whitelist_teams+        required_approvals: 0+        unprotected_file_patterns: unprotected_file_patterns+        block_on_official_review_requests: true+      properties:+        approvals_whitelist_teams:+          items:+            type: string+          type: array+          x-go-name: ApprovalsWhitelistTeams+        approvals_whitelist_username:+          items:+            type: string+          type: array+          x-go-name: ApprovalsWhitelistUsernames+        block_on_official_review_requests:+          type: boolean+          x-go-name: BlockOnOfficialReviewRequests+        block_on_outdated_branch:+          type: boolean+          x-go-name: BlockOnOutdatedBranch+        block_on_rejected_reviews:+          type: boolean+          x-go-name: BlockOnRejectedReviews+        dismiss_stale_approvals:+          type: boolean+          x-go-name: DismissStaleApprovals+        enable_approvals_whitelist:+          type: boolean+          x-go-name: EnableApprovalsWhitelist+        enable_merge_whitelist:+          type: boolean+          x-go-name: EnableMergeWhitelist+        enable_push:+          type: boolean+          x-go-name: EnablePush+        enable_push_whitelist:+          type: boolean+          x-go-name: EnablePushWhitelist+        enable_status_check:+          type: boolean+          x-go-name: EnableStatusCheck+        merge_whitelist_teams:+          items:+            type: string+          type: array+          x-go-name: MergeWhitelistTeams+        merge_whitelist_usernames:+          items:+            type: string+          type: array+          x-go-name: MergeWhitelistUsernames+        protected_file_patterns:+          type: string+          x-go-name: ProtectedFilePatterns+        push_whitelist_deploy_keys:+          type: boolean+          x-go-name: PushWhitelistDeployKeys+        push_whitelist_teams:+          items:+            type: string+          type: array+          x-go-name: PushWhitelistTeams+        push_whitelist_usernames:+          items:+            type: string+          type: array+          x-go-name: PushWhitelistUsernames+        require_signed_commits:+          type: boolean+          x-go-name: RequireSignedCommits+        required_approvals:+          format: int64+          type: integer+          x-go-name: RequiredApprovals+        status_check_contexts:+          items:+            type: string+          type: array+          x-go-name: StatusCheckContexts+        unprotected_file_patterns:+          type: string+          x-go-name: UnprotectedFilePatterns+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    EditDeadlineOption:+      description: EditDeadlineOption options for creating a deadline+      example:+        due_date: 2000-01-23T04:56:07.000+00:00+      properties:+        due_date:+          format: date-time+          type: string+          x-go-name: Deadline+      required:+      - due_date+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    EditGitHookOption:+      description: EditGitHookOption options when modifying one Git hook+      example:+        content: content+      properties:+        content:+          type: string+          x-go-name: Content+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    EditHookOption:+      description: EditHookOption options when modify one hook+      example:+        branch_filter: branch_filter+        active: true+        config:+          key: config+        authorization_header: authorization_header+        events:+        - events+        - events+      properties:+        active:+          type: boolean+          x-go-name: Active+        authorization_header:+          type: string+          x-go-name: AuthorizationHeader+        branch_filter:+          type: string+          x-go-name: BranchFilter+        config:+          additionalProperties:+            type: string+          type: object+          x-go-name: Config+        events:+          items:+            type: string+          type: array+          x-go-name: Events+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    EditIssueCommentOption:+      description: EditIssueCommentOption options for editing a comment+      example:+        body: body+      properties:+        body:+          type: string+          x-go-name: Body+      required:+      - body+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    EditIssueOption:+      description: EditIssueOption options for editing an issue+      example:+        unset_due_date: true+        ref: ref+        milestone: 0+        due_date: 2000-01-23T04:56:07.000+00:00+        assignees:+        - assignees+        - assignees+        assignee: assignee+        state: state+        body: body+        title: title+      properties:+        assignee:+          description: deprecated+          type: string+          x-go-name: Assignee+        assignees:+          items:+            type: string+          type: array+          x-go-name: Assignees+        body:+          type: string+          x-go-name: Body+        due_date:+          format: date-time+          type: string+          x-go-name: Deadline+        milestone:+          format: int64+          type: integer+          x-go-name: Milestone+        ref:+          type: string+          x-go-name: Ref+        state:+          type: string+          x-go-name: State+        title:+          type: string+          x-go-name: Title+        unset_due_date:+          type: boolean+          x-go-name: RemoveDeadline+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    EditLabelOption:+      description: EditLabelOption options for editing a label+      example:+        color: '#00aabb'+        name: name+        description: description+        exclusive: false+      properties:+        color:+          example: '#00aabb'+          type: string+          x-go-name: Color+        description:+          type: string+          x-go-name: Description+        exclusive:+          example: false+          type: boolean+          x-go-name: Exclusive+        name:+          type: string+          x-go-name: Name+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    EditMilestoneOption:+      description: EditMilestoneOption options for editing a milestone+      example:+        description: description+        state: state+        title: title+        due_on: 2000-01-23T04:56:07.000+00:00+      properties:+        description:+          type: string+          x-go-name: Description+        due_on:+          format: date-time+          type: string+          x-go-name: Deadline+        state:+          type: string+          x-go-name: State+        title:+          type: string+          x-go-name: Title+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    EditOrgOption:+      description: EditOrgOption options for editing an organization+      example:+        website: website+        full_name: full_name+        repo_admin_change_team_access: true+        visibility: public+        description: description+        location: location+      properties:+        description:+          type: string+          x-go-name: Description+        full_name:+          type: string+          x-go-name: FullName+        location:+          type: string+          x-go-name: Location+        repo_admin_change_team_access:+          type: boolean+          x-go-name: RepoAdminChangeTeamAccess+        visibility:+          description: "possible values are `public`, `limited` or `private`"+          enum:+          - public+          - limited+          - private+          type: string+          x-go-name: Visibility+        website:+          type: string+          x-go-name: Website+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    EditPullRequestOption:+      description: EditPullRequestOption options when modify pull request+      example:+        unset_due_date: true+        milestone: 6+        allow_maintainer_edit: true+        due_date: 2000-01-23T04:56:07.000+00:00+        assignees:+        - assignees+        - assignees+        assignee: assignee+        state: state+        body: body+        title: title+        base: base+        labels:+        - 0+        - 0+      properties:+        allow_maintainer_edit:+          type: boolean+          x-go-name: AllowMaintainerEdit+        assignee:+          type: string+          x-go-name: Assignee+        assignees:+          items:+            type: string+          type: array+          x-go-name: Assignees+        base:+          type: string+          x-go-name: Base+        body:+          type: string+          x-go-name: Body+        due_date:+          format: date-time+          type: string+          x-go-name: Deadline+        labels:+          items:+            format: int64+            type: integer+          type: array+          x-go-name: Labels+        milestone:+          format: int64+          type: integer+          x-go-name: Milestone+        state:+          type: string+          x-go-name: State+        title:+          type: string+          x-go-name: Title+        unset_due_date:+          type: boolean+          x-go-name: RemoveDeadline+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    EditReactionOption:+      description: EditReactionOption contain the reaction type+      example:+        content: content+      properties:+        content:+          type: string+          x-go-name: Reaction+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    EditReleaseOption:+      description: EditReleaseOption options when editing a release+      example:+        prerelease: true+        tag_name: tag_name+        draft: true+        target_commitish: target_commitish+        name: name+        body: body+      properties:+        body:+          type: string+          x-go-name: Note+        draft:+          type: boolean+          x-go-name: IsDraft+        name:+          type: string+          x-go-name: Title+        prerelease:+          type: boolean+          x-go-name: IsPrerelease+        tag_name:+          type: string+          x-go-name: TagName+        target_commitish:+          type: string+          x-go-name: Target+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    EditRepoOption:+      description: EditRepoOption options when editing a repository's properties+      example:+        ignore_whitespace_conflicts: true+        template: true+        allow_manual_merge: true+        private: true+        default_allow_maintainer_edit: true+        description: description+        allow_rebase_update: true+        has_pull_requests: true+        has_projects: true+        archived: true+        autodetect_manual_merge: true+        has_wiki: true+        allow_merge_commits: true+        allow_rebase_explicit: true+        external_tracker:+          external_tracker_regexp_pattern: external_tracker_regexp_pattern+          external_tracker_style: external_tracker_style+          external_tracker_url: external_tracker_url+          external_tracker_format: external_tracker_format+        mirror_interval: mirror_interval+        enable_prune: true+        allow_squash_merge: true+        external_wiki:+          external_wiki_url: external_wiki_url+        website: website+        internal_tracker:+          enable_issue_dependencies: true+          allow_only_contributors_to_track_time: true+          enable_time_tracker: true+        default_delete_branch_after_merge: true+        has_issues: true+        allow_rebase: true+        default_merge_style: default_merge_style+        name: name+        default_branch: default_branch+      properties:+        allow_manual_merge:+          description: "either `true` to allow mark pr as merged manually, or `false`\+            \ to prevent it."+          type: boolean+          x-go-name: AllowManualMerge+        allow_merge_commits:+          description: "either `true` to allow merging pull requests with a merge\+            \ commit, or `false` to prevent merging pull requests with merge commits."+          type: boolean+          x-go-name: AllowMerge+        allow_rebase:+          description: "either `true` to allow rebase-merging pull requests, or `false`\+            \ to prevent rebase-merging."+          type: boolean+          x-go-name: AllowRebase+        allow_rebase_explicit:+          description: "either `true` to allow rebase with explicit merge commits\+            \ (--no-ff), or `false` to prevent rebase with explicit merge commits."+          type: boolean+          x-go-name: AllowRebaseMerge+        allow_rebase_update:+          description: "either `true` to allow updating pull request branch by rebase,\+            \ or `false` to prevent it."+          type: boolean+          x-go-name: AllowRebaseUpdate+        allow_squash_merge:+          description: "either `true` to allow squash-merging pull requests, or `false`\+            \ to prevent squash-merging."+          type: boolean+          x-go-name: AllowSquash+        archived:+          description: set to `true` to archive this repository.+          type: boolean+          x-go-name: Archived+        autodetect_manual_merge:+          description: "either `true` to enable AutodetectManualMerge, or `false`\+            \ to prevent it. Note: In some special cases, misjudgments can occur."+          type: boolean+          x-go-name: AutodetectManualMerge+        default_allow_maintainer_edit:+          description: set to `true` to allow edits from maintainers by default+          type: boolean+          x-go-name: DefaultAllowMaintainerEdit+        default_branch:+          description: sets the default branch for this repository.+          type: string+          x-go-name: DefaultBranch+        default_delete_branch_after_merge:+          description: set to `true` to delete pr branch after merge by default+          type: boolean+          x-go-name: DefaultDeleteBranchAfterMerge+        default_merge_style:+          description: "set to a merge style to be used by this repository: \"merge\"\+            , \"rebase\", \"rebase-merge\", or \"squash\"."+          type: string+          x-go-name: DefaultMergeStyle+        description:+          description: a short description of the repository.+          type: string+          x-go-name: Description+        enable_prune:+          description: enable prune - remove obsolete remote-tracking references+          type: boolean+          x-go-name: EnablePrune+        external_tracker:+          $ref: '#/components/schemas/ExternalTracker'+        external_wiki:+          $ref: '#/components/schemas/ExternalWiki'+        has_issues:+          description: either `true` to enable issues for this repository or `false`+            to disable them.+          type: boolean+          x-go-name: HasIssues+        has_projects:+          description: "either `true` to enable project unit, or `false` to disable\+            \ them."+          type: boolean+          x-go-name: HasProjects+        has_pull_requests:+          description: "either `true` to allow pull requests, or `false` to prevent\+            \ pull request."+          type: boolean+          x-go-name: HasPullRequests+        has_wiki:+          description: either `true` to enable the wiki for this repository or `false`+            to disable it.+          type: boolean+          x-go-name: HasWiki+        ignore_whitespace_conflicts:+          description: "either `true` to ignore whitespace for conflicts, or `false`\+            \ to not ignore whitespace."+          type: boolean+          x-go-name: IgnoreWhitespaceConflicts+        internal_tracker:+          $ref: '#/components/schemas/InternalTracker'+        mirror_interval:+          description: set to a string like `8h30m0s` to set the mirror interval time+          type: string+          x-go-name: MirrorInterval+        name:+          description: name of the repository+          type: string+          x-go-name: Name+        private:+          description: |-+            either `true` to make the repository private or `false` to make it public.+            Note: you will get a 422 error if the organization restricts changing repository visibility to organization+            owners and a non-owner tries to change the value of private.+          type: boolean+          x-go-name: Private+        template:+          description: either `true` to make this repository a template or `false`+            to make it a normal repository+          type: boolean+          x-go-name: Template+        website:+          description: a URL with more information about the repository.+          type: string+          x-go-name: Website+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    EditTeamOption:+      description: EditTeamOption options for editing a team+      example:+        can_create_org_repo: true+        units_map:+          repo.code: read+          repo.ext_issues: none+          repo.ext_wiki: none+          repo.issues: write+          repo.projects: none+          repo.pulls: owner+          repo.releases: none+          repo.wiki: admin+        name: name+        description: description+        permission: read+        includes_all_repositories: true+        units:+        - repo.code+        - repo.issues+        - repo.ext_issues+        - repo.wiki+        - repo.pulls+        - repo.releases+        - repo.projects+        - repo.ext_wiki+      properties:+        can_create_org_repo:+          type: boolean+          x-go-name: CanCreateOrgRepo+        description:+          type: string+          x-go-name: Description+        includes_all_repositories:+          type: boolean+          x-go-name: IncludesAllRepositories+        name:+          type: string+          x-go-name: Name+        permission:+          enum:+          - read+          - write+          - admin+          type: string+          x-go-name: Permission+        units:+          example:+          - repo.code+          - repo.issues+          - repo.ext_issues+          - repo.wiki+          - repo.pulls+          - repo.releases+          - repo.projects+          - repo.ext_wiki+          items:+            type: string+          type: array+          x-go-name: Units+        units_map:+          additionalProperties:+            type: string+          example:+            repo.code: read+            repo.ext_issues: none+            repo.ext_wiki: none+            repo.issues: write+            repo.projects: none+            repo.pulls: owner+            repo.releases: none+            repo.wiki: admin+          type: object+          x-go-name: UnitsMap+      required:+      - name+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    EditUserOption:+      description: EditUserOption edit user options+      example:+        website: website+        visibility: visibility+        active: true+        admin: true+        description: description+        max_repo_creation: 0+        must_change_password: true+        password: password+        full_name: full_name+        login_name: login_name+        restricted: true+        location: location+        allow_create_organization: true+        prohibit_login: true+        source_id: 6+        allow_import_local: true+        email: email+        allow_git_hook: true+      properties:+        active:+          type: boolean+          x-go-name: Active+        admin:+          type: boolean+          x-go-name: Admin+        allow_create_organization:+          type: boolean+          x-go-name: AllowCreateOrganization+        allow_git_hook:+          type: boolean+          x-go-name: AllowGitHook+        allow_import_local:+          type: boolean+          x-go-name: AllowImportLocal+        description:+          type: string+          x-go-name: Description+        email:+          format: email+          type: string+          x-go-name: Email+        full_name:+          type: string+          x-go-name: FullName+        location:+          type: string+          x-go-name: Location+        login_name:+          type: string+          x-go-name: LoginName+        max_repo_creation:+          format: int64+          type: integer+          x-go-name: MaxRepoCreation+        must_change_password:+          type: boolean+          x-go-name: MustChangePassword+        password:+          type: string+          x-go-name: Password+        prohibit_login:+          type: boolean+          x-go-name: ProhibitLogin+        restricted:+          type: boolean+          x-go-name: Restricted+        source_id:+          format: int64+          type: integer+          x-go-name: SourceID+        visibility:+          type: string+          x-go-name: Visibility+        website:+          type: string+          x-go-name: Website+      required:+      - login_name+      - source_id+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    Email:+      description: Email an email address belonging to a user+      example:+        verified: true+        email: email+        primary: true+      properties:+        email:+          format: email+          type: string+          x-go-name: Email+        primary:+          type: boolean+          x-go-name: Primary+        verified:+          type: boolean+          x-go-name: Verified+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    ExternalTracker:+      description: ExternalTracker represents settings for external tracker+      example:+        external_tracker_regexp_pattern: external_tracker_regexp_pattern+        external_tracker_style: external_tracker_style+        external_tracker_url: external_tracker_url+        external_tracker_format: external_tracker_format+      properties:+        external_tracker_format:+          description: "External Issue Tracker URL Format. Use the placeholders {user},\+            \ {repo} and {index} for the username, repository name and issue index."+          type: string+          x-go-name: ExternalTrackerFormat+        external_tracker_regexp_pattern:+          description: External Issue Tracker issue regular expression+          type: string+          x-go-name: ExternalTrackerRegexpPattern+        external_tracker_style:+          description: "External Issue Tracker Number Format, either `numeric`, `alphanumeric`,\+            \ or `regexp`"+          type: string+          x-go-name: ExternalTrackerStyle+        external_tracker_url:+          description: URL of external issue tracker.+          type: string+          x-go-name: ExternalTrackerURL+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    ExternalWiki:+      description: ExternalWiki represents setting for external wiki+      example:+        external_wiki_url: external_wiki_url+      properties:+        external_wiki_url:+          description: URL of external wiki.+          type: string+          x-go-name: ExternalWikiURL+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    FileCommitResponse:+      example:+        committer:+          date: date+          name: name+          email: email+        author:+          date: date+          name: name+          email: email+        created: 2000-01-23T04:56:07.000+00:00+        html_url: html_url+        tree:+          created: 2000-01-23T04:56:07.000+00:00+          sha: sha+          url: url+        message: message+        sha: sha+        url: url+        parents:+        - created: 2000-01-23T04:56:07.000+00:00+          sha: sha+          url: url+        - created: 2000-01-23T04:56:07.000+00:00+          sha: sha+          url: url+      properties:+        author:+          $ref: '#/components/schemas/CommitUser'+        committer:+          $ref: '#/components/schemas/CommitUser'+        created:+          format: date-time+          type: string+          x-go-name: Created+        html_url:+          type: string+          x-go-name: HTMLURL+        message:+          type: string+          x-go-name: Message+        parents:+          items:+            $ref: '#/components/schemas/CommitMeta'+          type: array+          x-go-name: Parents+        sha:+          type: string+          x-go-name: SHA+        tree:+          $ref: '#/components/schemas/CommitMeta'+        url:+          type: string+          x-go-name: URL+      title: FileCommitResponse contains information generated from a Git commit for+        a repo's file.+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    FileDeleteResponse:+      description: FileDeleteResponse contains information about a repo's file that+        was deleted+      example:+        commit:+          committer:+            date: date+            name: name+            email: email+          author:+            date: date+            name: name+            email: email+          created: 2000-01-23T04:56:07.000+00:00+          html_url: html_url+          tree:+            created: 2000-01-23T04:56:07.000+00:00+            sha: sha+            url: url+          message: message+          sha: sha+          url: url+          parents:+          - created: 2000-01-23T04:56:07.000+00:00+            sha: sha+            url: url+          - created: 2000-01-23T04:56:07.000+00:00+            sha: sha+            url: url+        content: "{}"+        verification:+          reason: reason+          payload: payload+          signature: signature+          verified: true+          signer:+            name: name+            email: email+            username: username+      properties:+        commit:+          $ref: '#/components/schemas/FileCommitResponse'+        content:+          type: object+          x-go-name: Content+        verification:+          $ref: '#/components/schemas/PayloadCommitVerification'+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    FileLinksResponse:+      description: FileLinksResponse contains the links for a repo's file+      example:+        git: git+        self: self+        html: html+      properties:+        git:+          type: string+          x-go-name: GitURL+        html:+          type: string+          x-go-name: HTMLURL+        self:+          type: string+          x-go-name: Self+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    FileResponse:+      description: FileResponse contains information about a repo's file+      example:+        commit:+          committer:+            date: date+            name: name+            email: email+          author:+            date: date+            name: name+            email: email+          created: 2000-01-23T04:56:07.000+00:00+          html_url: html_url+          tree:+            created: 2000-01-23T04:56:07.000+00:00+            sha: sha+            url: url+          message: message+          sha: sha+          url: url+          parents:+          - created: 2000-01-23T04:56:07.000+00:00+            sha: sha+            url: url+          - created: 2000-01-23T04:56:07.000+00:00+            sha: sha+            url: url+        content:+          _links:+            git: git+            self: self+            html: html+          submodule_git_url: submodule_git_url+          last_commit_sha: last_commit_sha+          encoding: encoding+          type: type+          sha: sha+          content: content+          url: url+          target: target+          path: path+          size: 0+          html_url: html_url+          download_url: download_url+          name: name+          git_url: git_url+        verification:+          reason: reason+          payload: payload+          signature: signature+          verified: true+          signer:+            name: name+            email: email+            username: username+      properties:+        commit:+          $ref: '#/components/schemas/FileCommitResponse'+        content:+          $ref: '#/components/schemas/ContentsResponse'+        verification:+          $ref: '#/components/schemas/PayloadCommitVerification'+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    GPGKey:+      description: GPGKey a user GPG key to sign commit and tag in repository+      example:+        public_key: public_key+        key_id: key_id+        verified: true+        created_at: 2000-01-23T04:56:07.000+00:00+        emails:+        - verified: true+          email: email+        - verified: true+          email: email+        can_certify: true+        expires_at: 2000-01-23T04:56:07.000+00:00+        can_encrypt_comms: true+        can_encrypt_storage: true+        can_sign: true+        id: 0+        subkeys:+        - null+        - null+        primary_key_id: primary_key_id+      properties:+        can_certify:+          type: boolean+          x-go-name: CanCertify+        can_encrypt_comms:+          type: boolean+          x-go-name: CanEncryptComms+        can_encrypt_storage:+          type: boolean+          x-go-name: CanEncryptStorage+        can_sign:+          type: boolean+          x-go-name: CanSign+        created_at:+          format: date-time+          type: string+          x-go-name: Created+        emails:+          items:+            $ref: '#/components/schemas/GPGKeyEmail'+          type: array+          x-go-name: Emails+        expires_at:+          format: date-time+          type: string+          x-go-name: Expires+        id:+          format: int64+          type: integer+          x-go-name: ID+        key_id:+          type: string+          x-go-name: KeyID+        primary_key_id:+          type: string+          x-go-name: PrimaryKeyID+        public_key:+          type: string+          x-go-name: PublicKey+        subkeys:+          items:+            $ref: '#/components/schemas/GPGKey'+          type: array+          x-go-name: SubsKey+        verified:+          type: boolean+          x-go-name: Verified+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    GPGKeyEmail:+      description: GPGKeyEmail an email attached to a GPGKey+      example:+        verified: true+        email: email+      properties:+        email:+          type: string+          x-go-name: Email+        verified:+          type: boolean+          x-go-name: Verified+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    GeneralAPISettings:+      description: GeneralAPISettings contains global api settings exposed by it+      example:+        max_response_items: 5+        default_git_trees_per_page: 0+        default_paging_num: 1+        default_max_blob_size: 6+      properties:+        default_git_trees_per_page:+          format: int64+          type: integer+          x-go-name: DefaultGitTreesPerPage+        default_max_blob_size:+          format: int64+          type: integer+          x-go-name: DefaultMaxBlobSize+        default_paging_num:+          format: int64+          type: integer+          x-go-name: DefaultPagingNum+        max_response_items:+          format: int64+          type: integer+          x-go-name: MaxResponseItems+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    GeneralAttachmentSettings:+      description: GeneralAttachmentSettings contains global Attachment settings exposed+        by API+      example:+        max_files: 0+        allowed_types: allowed_types+        enabled: true+        max_size: 6+      properties:+        allowed_types:+          type: string+          x-go-name: AllowedTypes+        enabled:+          type: boolean+          x-go-name: Enabled+        max_files:+          format: int64+          type: integer+          x-go-name: MaxFiles+        max_size:+          format: int64+          type: integer+          x-go-name: MaxSize+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    GeneralRepoSettings:+      description: GeneralRepoSettings contains global repository settings exposed+        by API+      example:+        migrations_disabled: true+        http_git_disabled: true+        lfs_disabled: true+        mirrors_disabled: true+        time_tracking_disabled: true+        stars_disabled: true+      properties:+        http_git_disabled:+          type: boolean+          x-go-name: HTTPGitDisabled+        lfs_disabled:+          type: boolean+          x-go-name: LFSDisabled+        migrations_disabled:+          type: boolean+          x-go-name: MigrationsDisabled+        mirrors_disabled:+          type: boolean+          x-go-name: MirrorsDisabled+        stars_disabled:+          type: boolean+          x-go-name: StarsDisabled+        time_tracking_disabled:+          type: boolean+          x-go-name: TimeTrackingDisabled+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    GeneralUISettings:+      description: GeneralUISettings contains global ui settings exposed by API+      example:+        custom_emojis:+        - custom_emojis+        - custom_emojis+        allowed_reactions:+        - allowed_reactions+        - allowed_reactions+        default_theme: default_theme+      properties:+        allowed_reactions:+          items:+            type: string+          type: array+          x-go-name: AllowedReactions+        custom_emojis:+          items:+            type: string+          type: array+          x-go-name: CustomEmojis+        default_theme:+          type: string+          x-go-name: DefaultTheme+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    GenerateRepoOption:+      description: GenerateRepoOption options when creating repository using a template+      example:+        git_content: true+        owner: owner+        private: true+        git_hooks: true+        webhooks: true+        topics: true+        name: name+        description: description+        default_branch: default_branch+        avatar: true+        labels: true+      properties:+        avatar:+          description: include avatar of the template repo+          type: boolean+          x-go-name: Avatar+        default_branch:+          description: Default branch of the new repository+          type: string+          x-go-name: DefaultBranch+        description:+          description: Description of the repository to create+          type: string+          x-go-name: Description+        git_content:+          description: include git content of default branch in template repo+          type: boolean+          x-go-name: GitContent+        git_hooks:+          description: include git hooks in template repo+          type: boolean+          x-go-name: GitHooks+        labels:+          description: include labels in template repo+          type: boolean+          x-go-name: Labels+        name:+          description: Name of the repository to create+          type: string+          x-go-name: Name+        owner:+          description: The organization or person who will own the new repository+          type: string+          x-go-name: Owner+        private:+          description: Whether the repository is private+          type: boolean+          x-go-name: Private+        topics:+          description: include topics in template repo+          type: boolean+          x-go-name: Topics+        webhooks:+          description: include webhooks in template repo+          type: boolean+          x-go-name: Webhooks+      required:+      - name+      - owner+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    GitBlobResponse:+      description: GitBlobResponse represents a git blob+      example:+        size: 0+        encoding: encoding+        sha: sha+        content: content+        url: url+      properties:+        content:+          type: string+          x-go-name: Content+        encoding:+          type: string+          x-go-name: Encoding+        sha:+          type: string+          x-go-name: SHA+        size:+          format: int64+          type: integer+          x-go-name: Size+        url:+          type: string+          x-go-name: URL+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    GitEntry:+      description: GitEntry represents a git tree+      example:+        mode: mode+        path: path+        size: 1+        type: type+        sha: sha+        url: url+      properties:+        mode:+          type: string+          x-go-name: Mode+        path:+          type: string+          x-go-name: Path+        sha:+          type: string+          x-go-name: SHA+        size:+          format: int64+          type: integer+          x-go-name: Size+        type:+          type: string+          x-go-name: Type+        url:+          type: string+          x-go-name: URL+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    GitHook:+      description: GitHook represents a Git repository hook+      example:+        is_active: true+        name: name+        content: content+      properties:+        content:+          type: string+          x-go-name: Content+        is_active:+          type: boolean+          x-go-name: IsActive+        name:+          type: string+          x-go-name: Name+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    GitObject:+      example:+        type: type+        sha: sha+        url: url+      properties:+        sha:+          type: string+          x-go-name: SHA+        type:+          type: string+          x-go-name: Type+        url:+          type: string+          x-go-name: URL+      title: GitObject represents a Git object.+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    GitTreeResponse:+      description: GitTreeResponse returns a git tree+      example:+        total_count: 6+        tree:+        - mode: mode+          path: path+          size: 1+          type: type+          sha: sha+          url: url+        - mode: mode+          path: path+          size: 1+          type: type+          sha: sha+          url: url+        truncated: true+        page: 0+        sha: sha+        url: url+      properties:+        page:+          format: int64+          type: integer+          x-go-name: Page+        sha:+          type: string+          x-go-name: SHA+        total_count:+          format: int64+          type: integer+          x-go-name: TotalCount+        tree:+          items:+            $ref: '#/components/schemas/GitEntry'+          type: array+          x-go-name: Entries+        truncated:+          type: boolean+          x-go-name: Truncated+        url:+          type: string+          x-go-name: URL+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    Hook:+      description: Hook a hook is a web hook when one repository changed+      example:+        updated_at: 2000-01-23T04:56:07.000+00:00+        active: true+        created_at: 2000-01-23T04:56:07.000+00:00+        id: 0+        type: type+        config:+          key: config+        authorization_header: authorization_header+        events:+        - events+        - events+      properties:+        active:+          type: boolean+          x-go-name: Active+        authorization_header:+          type: string+          x-go-name: AuthorizationHeader+        config:+          additionalProperties:+            type: string+          type: object+          x-go-name: Config+        created_at:+          format: date-time+          type: string+          x-go-name: Created+        events:+          items:+            type: string+          type: array+          x-go-name: Events+        id:+          format: int64+          type: integer+          x-go-name: ID+        type:+          type: string+          x-go-name: Type+        updated_at:+          format: date-time+          type: string+          x-go-name: Updated+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    Identity:+      description: Identity for a person's identity like an author or committer+      example:+        name: name+        email: email+      properties:+        email:+          format: email+          type: string+          x-go-name: Email+        name:+          type: string+          x-go-name: Name+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    InternalTracker:+      description: InternalTracker represents settings for internal tracker+      example:+        enable_issue_dependencies: true+        allow_only_contributors_to_track_time: true+        enable_time_tracker: true+      properties:+        allow_only_contributors_to_track_time:+          description: Let only contributors track time (Built-in issue tracker)+          type: boolean+          x-go-name: AllowOnlyContributorsToTrackTime+        enable_issue_dependencies:+          description: Enable dependencies for issues and pull requests (Built-in+            issue tracker)+          type: boolean+          x-go-name: EnableIssueDependencies+        enable_time_tracker:+          description: Enable time tracking (Built-in issue tracker)+          type: boolean+          x-go-name: EnableTimeTracker+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    Issue:+      description: Issue represents an issue in a repository+      example:+        is_locked: true+        pull_request:+          merged_at: 2000-01-23T04:56:07.000+00:00+          merged: true+        closed_at: 2000-01-23T04:56:07.000+00:00+        comments: 5+        original_author_id: 2+        due_date: 2000-01-23T04:56:07.000+00:00+        assignees:+        - website: website+          visibility: visibility+          created: 2000-01-23T04:56:07.000+00:00+          last_login: 2000-01-23T04:56:07.000+00:00+          active: true+          description: description+          language: language+          starred_repos_count: 5+          login: login+          is_admin: true+          full_name: full_name+          login_name: empty+          avatar_url: avatar_url+          following_count: 6+          restricted: true+          followers_count: 0+          location: location+          id: 1+          prohibit_login: true+          email: email+        - website: website+          visibility: visibility+          created: 2000-01-23T04:56:07.000+00:00+          last_login: 2000-01-23T04:56:07.000+00:00+          active: true+          description: description+          language: language+          starred_repos_count: 5+          login: login+          is_admin: true+          full_name: full_name+          login_name: empty+          avatar_url: avatar_url+          following_count: 6+          restricted: true+          followers_count: 0+          location: location+          id: 1+          prohibit_login: true+          email: email+        created_at: 2000-01-23T04:56:07.000+00:00+        body: body+        repository:+          owner: owner+          full_name: full_name+          name: name+          id: 4+        title: title+        url: url+        labels:+        - color: 00aabb+          name: name+          description: description+          exclusive: false+          id: 0+          url: url+        - color: 00aabb+          name: name+          description: description+          exclusive: false+          id: 0+          url: url+        number: 3+        ref: ref+        assets:+        - size: 1+          name: name+          created_at: 2000-01-23T04:56:07.000+00:00+          browser_download_url: browser_download_url+          id: 6+          uuid: uuid+          download_count: 0+        - size: 1+          name: name+          created_at: 2000-01-23T04:56:07.000+00:00+          browser_download_url: browser_download_url+          id: 6+          uuid: uuid+          download_count: 0+        milestone:+          closed_at: 2000-01-23T04:56:07.000+00:00+          updated_at: 2000-01-23T04:56:07.000+00:00+          created_at: 2000-01-23T04:56:07.000+00:00+          description: description+          id: 7+          state: state+          closed_issues: 2+          open_issues: 9+          title: title+          due_on: 2000-01-23T04:56:07.000+00:00+        updated_at: 2000-01-23T04:56:07.000+00:00+        html_url: html_url+        assignee:+          website: website+          visibility: visibility+          created: 2000-01-23T04:56:07.000+00:00+          last_login: 2000-01-23T04:56:07.000+00:00+          active: true+          description: description+          language: language+          starred_repos_count: 5+          login: login+          is_admin: true+          full_name: full_name+          login_name: empty+          avatar_url: avatar_url+          following_count: 6+          restricted: true+          followers_count: 0+          location: location+          id: 1+          prohibit_login: true+          email: email+        id: 5+        state: state+        original_author: original_author+        user:+          website: website+          visibility: visibility+          created: 2000-01-23T04:56:07.000+00:00+          last_login: 2000-01-23T04:56:07.000+00:00+          active: true+          description: description+          language: language+          starred_repos_count: 5+          login: login+          is_admin: true+          full_name: full_name+          login_name: empty+          avatar_url: avatar_url+          following_count: 6+          restricted: true+          followers_count: 0+          location: location+          id: 1+          prohibit_login: true+          email: email+      properties:+        assets:+          items:+            $ref: '#/components/schemas/Attachment'+          type: array+          x-go-name: Attachments+        assignee:+          $ref: '#/components/schemas/User'+        assignees:+          items:+            $ref: '#/components/schemas/User'+          type: array+          x-go-name: Assignees+        body:+          type: string+          x-go-name: Body+        closed_at:+          format: date-time+          type: string+          x-go-name: Closed+        comments:+          format: int64+          type: integer+          x-go-name: Comments+        created_at:+          format: date-time+          type: string+          x-go-name: Created+        due_date:+          format: date-time+          type: string+          x-go-name: Deadline+        html_url:+          type: string+          x-go-name: HTMLURL+        id:+          format: int64+          type: integer+          x-go-name: ID+        is_locked:+          type: boolean+          x-go-name: IsLocked+        labels:+          items:+            $ref: '#/components/schemas/Label'+          type: array+          x-go-name: Labels+        milestone:+          $ref: '#/components/schemas/Milestone'+        number:+          format: int64+          type: integer+          x-go-name: Index+        original_author:+          type: string+          x-go-name: OriginalAuthor+        original_author_id:+          format: int64+          type: integer+          x-go-name: OriginalAuthorID+        pull_request:+          $ref: '#/components/schemas/PullRequestMeta'+        ref:+          type: string+          x-go-name: Ref+        repository:+          $ref: '#/components/schemas/RepositoryMeta'+        state:+          description: StateType issue state type+          type: string+          x-go-package: code.gitea.io/gitea/modules/structs+        title:+          type: string+          x-go-name: Title+        updated_at:+          format: date-time+          type: string+          x-go-name: Updated+        url:+          type: string+          x-go-name: URL+        user:+          $ref: '#/components/schemas/User'+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    IssueDeadline:+      description: IssueDeadline represents an issue deadline+      example:+        due_date: 2000-01-23T04:56:07.000+00:00+      properties:+        due_date:+          format: date-time+          type: string+          x-go-name: Deadline+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    IssueFormField:+      description: IssueFormField represents a form field+      example:+        attributes:+          key: "{}"+        id: id+        validations:+          key: "{}"+        type: type+      properties:+        attributes:+          additionalProperties:+            type: object+          type: object+          x-go-name: Attributes+        id:+          type: string+          x-go-name: ID+        type:+          title: "IssueFormFieldType defines issue form field type, can be \"markdown\"\+            , \"textarea\", \"input\", \"dropdown\" or \"checkboxes\""+          type: string+          x-go-package: code.gitea.io/gitea/modules/structs+        validations:+          additionalProperties:+            type: object+          type: object+          x-go-name: Validations+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    IssueFormFieldType:+      title: "IssueFormFieldType defines issue form field type, can be \"markdown\"\+        , \"textarea\", \"input\", \"dropdown\" or \"checkboxes\""+      type: string+      x-go-package: code.gitea.io/gitea/modules/structs+    IssueLabelsOption:+      description: IssueLabelsOption a collection of labels+      example:+        labels:+        - 0+        - 0+      properties:+        labels:+          description: list of label IDs+          items:+            format: int64+            type: integer+          type: array+          x-go-name: Labels+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    IssueTemplate:+      description: IssueTemplate represents an issue template for a repository+      example:+        ref: ref+        file_name: file_name+        about: about+        name: name+        body:+        - attributes:+            key: "{}"+          id: id+          validations:+            key: "{}"+          type: type+        - attributes:+            key: "{}"+          id: id+          validations:+            key: "{}"+          type: type+        title: title+        content: content+        labels:+        - labels+        - labels+      properties:+        about:+          type: string+          x-go-name: About+        body:+          items:+            $ref: '#/components/schemas/IssueFormField'+          type: array+          x-go-name: Fields+        content:+          type: string+          x-go-name: Content+        file_name:+          type: string+          x-go-name: FileName+        labels:+          items:+            type: string+          type: array+          x-go-package: code.gitea.io/gitea/modules/structs+        name:+          type: string+          x-go-name: Name+        ref:+          type: string+          x-go-name: Ref+        title:+          type: string+          x-go-name: Title+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    IssueTemplateLabels:+      items:+        type: string+      type: array+      x-go-package: code.gitea.io/gitea/modules/structs+    Label:+      description: Label a label to an issue or a pr+      example:+        color: 00aabb+        name: name+        description: description+        exclusive: false+        id: 0+        url: url+      properties:+        color:+          example: 00aabb+          type: string+          x-go-name: Color+        description:+          type: string+          x-go-name: Description+        exclusive:+          example: false+          type: boolean+          x-go-name: Exclusive+        id:+          format: int64+          type: integer+          x-go-name: ID+        name:+          type: string+          x-go-name: Name+        url:+          type: string+          x-go-name: URL+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    MarkdownOption:+      description: MarkdownOption markdown options+      example:+        Context: Context+        Mode: Mode+        Wiki: true+        Text: Text+      properties:+        Context:+          description: |-+            Context to render++            in: body+          type: string+        Mode:+          description: |-+            Mode to render++            in: body+          type: string+        Text:+          description: |-+            Text markdown to render++            in: body+          type: string+        Wiki:+          description: |-+            Is it a wiki page ?++            in: body+          type: boolean+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    MergePullRequestOption:+      description: MergePullRequestForm form for merging Pull Request+      example:+        force_merge: true+        head_commit_id: head_commit_id+        delete_branch_after_merge: true+        merge_when_checks_succeed: true+        Do: merge+        MergeCommitID: MergeCommitID+        MergeMessageField: MergeMessageField+        MergeTitleField: MergeTitleField+      properties:+        Do:+          enum:+          - merge+          - rebase+          - rebase-merge+          - squash+          - manually-merged+          type: string+        MergeCommitID:+          type: string+        MergeMessageField:+          type: string+        MergeTitleField:+          type: string+        delete_branch_after_merge:+          type: boolean+          x-go-name: DeleteBranchAfterMerge+        force_merge:+          type: boolean+          x-go-name: ForceMerge+        head_commit_id:+          type: string+          x-go-name: HeadCommitID+        merge_when_checks_succeed:+          type: boolean+          x-go-name: MergeWhenChecksSucceed+      required:+      - Do+      type: object+      x-go-name: MergePullRequestForm+      x-go-package: code.gitea.io/gitea/services/forms+    MigrateRepoOptions:+      description: |-+        MigrateRepoOptions options for migrating repository's+        this is used to interact with api v1+      example:+        lfs_endpoint: lfs_endpoint+        mirror: true+        private: true+        clone_addr: clone_addr+        wiki: true+        auth_password: auth_password+        description: description+        issues: true+        labels: true+        releases: true+        pull_requests: true+        uid: 0+        auth_username: auth_username+        service: git+        lfs: true+        repo_name: repo_name+        auth_token: auth_token+        milestones: true+        repo_owner: repo_owner+        mirror_interval: mirror_interval+      properties:+        auth_password:+          type: string+          x-go-name: AuthPassword+        auth_token:+          type: string+          x-go-name: AuthToken+        auth_username:+          type: string+          x-go-name: AuthUsername+        clone_addr:+          type: string+          x-go-name: CloneAddr+        description:+          type: string+          x-go-name: Description+        issues:+          type: boolean+          x-go-name: Issues+        labels:+          type: boolean+          x-go-name: Labels+        lfs:+          type: boolean+          x-go-name: LFS+        lfs_endpoint:+          type: string+          x-go-name: LFSEndpoint+        milestones:+          type: boolean+          x-go-name: Milestones+        mirror:+          type: boolean+          x-go-name: Mirror+        mirror_interval:+          type: string+          x-go-name: MirrorInterval+        private:+          type: boolean+          x-go-name: Private+        pull_requests:+          type: boolean+          x-go-name: PullRequests+        releases:+          type: boolean+          x-go-name: Releases+        repo_name:+          type: string+          x-go-name: RepoName+        repo_owner:+          description: Name of User or Organisation who will own Repo after migration+          type: string+          x-go-name: RepoOwner+        service:+          enum:+          - git+          - github+          - gitea+          - gitlab+          - gogs+          - onedev+          - gitbucket+          - codebase+          type: string+          x-go-name: Service+        uid:+          description: deprecated (only for backwards compatibility)+          format: int64+          type: integer+          x-go-name: RepoOwnerID+        wiki:+          type: boolean+          x-go-name: Wiki+      required:+      - clone_addr+      - repo_name+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    Milestone:+      description: Milestone milestone is a collection of issues on one repository+      example:+        closed_at: 2000-01-23T04:56:07.000+00:00+        updated_at: 2000-01-23T04:56:07.000+00:00+        created_at: 2000-01-23T04:56:07.000+00:00+        description: description+        id: 7+        state: state+        closed_issues: 2+        open_issues: 9+        title: title+        due_on: 2000-01-23T04:56:07.000+00:00+      properties:+        closed_at:+          format: date-time+          type: string+          x-go-name: Closed+        closed_issues:+          format: int64+          type: integer+          x-go-name: ClosedIssues+        created_at:+          format: date-time+          type: string+          x-go-name: Created+        description:+          type: string+          x-go-name: Description+        due_on:+          format: date-time+          type: string+          x-go-name: Deadline+        id:+          format: int64+          type: integer+          x-go-name: ID+        open_issues:+          format: int64+          type: integer+          x-go-name: OpenIssues+        state:+          description: StateType issue state type+          type: string+          x-go-package: code.gitea.io/gitea/modules/structs+        title:+          type: string+          x-go-name: Title+        updated_at:+          format: date-time+          type: string+          x-go-name: Updated+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    NodeInfo:+      description: NodeInfo contains standardized way of exposing metadata about a+        server running one of the distributed social networks+      example:+        metadata: "{}"+        software:+          name: name+          repository: repository+          version: version+          homepage: homepage+        usage:+          localPosts: 6+          localComments: 0+          users:+            total: 5+            activeHalfyear: 1+            activeMonth: 5+        services:+          inbound:+          - inbound+          - inbound+          outbound:+          - outbound+          - outbound+        protocols:+        - protocols+        - protocols+        version: version+        openRegistrations: true+      properties:+        metadata:+          properties: {}+          type: object+          x-go-name: Metadata+        openRegistrations:+          type: boolean+          x-go-name: OpenRegistrations+        protocols:+          items:+            type: string+          type: array+          x-go-name: Protocols+        services:+          $ref: '#/components/schemas/NodeInfoServices'+        software:+          $ref: '#/components/schemas/NodeInfoSoftware'+        usage:+          $ref: '#/components/schemas/NodeInfoUsage'+        version:+          type: string+          x-go-name: Version+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    NodeInfoServices:+      description: NodeInfoServices contains the third party sites this server can+        connect to via their application API+      example:+        inbound:+        - inbound+        - inbound+        outbound:+        - outbound+        - outbound+      properties:+        inbound:+          items:+            type: string+          type: array+          x-go-name: Inbound+        outbound:+          items:+            type: string+          type: array+          x-go-name: Outbound+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    NodeInfoSoftware:+      description: NodeInfoSoftware contains Metadata about server software in use+      example:+        name: name+        repository: repository+        version: version+        homepage: homepage+      properties:+        homepage:+          type: string+          x-go-name: Homepage+        name:+          type: string+          x-go-name: Name+        repository:+          type: string+          x-go-name: Repository+        version:+          type: string+          x-go-name: Version+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    NodeInfoUsage:+      description: NodeInfoUsage contains usage statistics for this server+      example:+        localPosts: 6+        localComments: 0+        users:+          total: 5+          activeHalfyear: 1+          activeMonth: 5+      properties:+        localComments:+          format: int64+          type: integer+          x-go-name: LocalComments+        localPosts:+          format: int64+          type: integer+          x-go-name: LocalPosts+        users:+          $ref: '#/components/schemas/NodeInfoUsageUsers'+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    NodeInfoUsageUsers:+      description: NodeInfoUsageUsers contains statistics about the users of this+        server+      example:+        total: 5+        activeHalfyear: 1+        activeMonth: 5+      properties:+        activeHalfyear:+          format: int64+          type: integer+          x-go-name: ActiveHalfyear+        activeMonth:+          format: int64+          type: integer+          x-go-name: ActiveMonth+        total:+          format: int64+          type: integer+          x-go-name: Total+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    Note:+      description: Note contains information related to a git note+      example:+        commit:+          committer:+            website: website+            visibility: visibility+            created: 2000-01-23T04:56:07.000+00:00+            last_login: 2000-01-23T04:56:07.000+00:00+            active: true+            description: description+            language: language+            starred_repos_count: 5+            login: login+            is_admin: true+            full_name: full_name+            login_name: empty+            avatar_url: avatar_url+            following_count: 6+            restricted: true+            followers_count: 0+            location: location+            id: 1+            prohibit_login: true+            email: email+          stats:+            total: 1+            additions: 0+            deletions: 6+          author:+            website: website+            visibility: visibility+            created: 2000-01-23T04:56:07.000+00:00+            last_login: 2000-01-23T04:56:07.000+00:00+            active: true+            description: description+            language: language+            starred_repos_count: 5+            login: login+            is_admin: true+            full_name: full_name+            login_name: empty+            avatar_url: avatar_url+            following_count: 6+            restricted: true+            followers_count: 0+            location: location+            id: 1+            prohibit_login: true+            email: email+          created: 2000-01-23T04:56:07.000+00:00+          html_url: html_url+          commit:+            committer:+              date: date+              name: name+              email: email+            author:+              date: date+              name: name+              email: email+            tree:+              created: 2000-01-23T04:56:07.000+00:00+              sha: sha+              url: url+            message: message+            url: url+            verification:+              reason: reason+              payload: payload+              signature: signature+              verified: true+              signer:+                name: name+                email: email+                username: username+          files:+          - filename: filename+          - filename: filename+          sha: sha+          url: url+          parents:+          - created: 2000-01-23T04:56:07.000+00:00+            sha: sha+            url: url+          - created: 2000-01-23T04:56:07.000+00:00+            sha: sha+            url: url+        message: message+      properties:+        commit:+          $ref: '#/components/schemas/Commit'+        message:+          type: string+          x-go-name: Message+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    NotificationCount:+      description: NotificationCount number of unread notifications+      example:+        new: 0+      properties:+        new:+          format: int64+          type: integer+          x-go-name: New+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    NotificationSubject:+      description: NotificationSubject contains the notification subject (Issue/Pull/Commit)+      example:+        latest_comment_url: latest_comment_url+        latest_comment_html_url: latest_comment_html_url+        html_url: html_url+        state: state+        title: title+        type: type+        url: url+      properties:+        html_url:+          type: string+          x-go-name: HTMLURL+        latest_comment_html_url:+          type: string+          x-go-name: LatestCommentHTMLURL+        latest_comment_url:+          type: string+          x-go-name: LatestCommentURL+        state:+          description: StateType issue state type+          type: string+          x-go-package: code.gitea.io/gitea/modules/structs+        title:+          type: string+          x-go-name: Title+        type:+          description: NotifySubjectType represent type of notification subject+          type: string+          x-go-package: code.gitea.io/gitea/modules/structs+        url:+          type: string+          x-go-name: URL+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    NotificationThread:+      description: NotificationThread expose Notification on API+      example:+        pinned: true+        updated_at: 2000-01-23T04:56:07.000+00:00+        unread: true+        subject:+          latest_comment_url: latest_comment_url+          latest_comment_html_url: latest_comment_html_url+          html_url: html_url+          state: state+          title: title+          type: type+          url: url+        id: 0+        repository:+          parent: null+          open_pr_counter: 5+          language: language+          repo_transfer:+            teams:+            - can_create_org_repo: true+              units_map:+                repo.code: read+                repo.ext_issues: none+                repo.ext_wiki: none+                repo.issues: write+                repo.projects: none+                repo.pulls: owner+                repo.releases: none+                repo.wiki: admin+              organization:+                website: website+                full_name: full_name+                repo_admin_change_team_access: true+                avatar_url: avatar_url+                visibility: visibility+                name: name+                description: description+                location: location+                id: 0+                username: username+              name: name+              description: description+              permission: none+              id: 2+              includes_all_repositories: true+              units:+              - repo.code+              - repo.issues+              - repo.ext_issues+              - repo.wiki+              - repo.pulls+              - repo.releases+              - repo.projects+              - repo.ext_wiki+            - can_create_org_repo: true+              units_map:+                repo.code: read+                repo.ext_issues: none+                repo.ext_wiki: none+                repo.issues: write+                repo.projects: none+                repo.pulls: owner+                repo.releases: none+                repo.wiki: admin+              organization:+                website: website+                full_name: full_name+                repo_admin_change_team_access: true+                avatar_url: avatar_url+                visibility: visibility+                name: name+                description: description+                location: location+                id: 0+                username: username+              name: name+              description: description+              permission: none+              id: 2+              includes_all_repositories: true+              units:+              - repo.code+              - repo.issues+              - repo.ext_issues+              - repo.wiki+              - repo.pulls+              - repo.releases+              - repo.projects+              - repo.ext_wiki+            doer:+              website: website+              visibility: visibility+              created: 2000-01-23T04:56:07.000+00:00+              last_login: 2000-01-23T04:56:07.000+00:00+              active: true+              description: description+              language: language+              starred_repos_count: 5+              login: login+              is_admin: true+              full_name: full_name+              login_name: empty+              avatar_url: avatar_url+              following_count: 6+              restricted: true+              followers_count: 0+              location: location+              id: 1+              prohibit_login: true+              email: email+            recipient:+              website: website+              visibility: visibility+              created: 2000-01-23T04:56:07.000+00:00+              last_login: 2000-01-23T04:56:07.000+00:00+              active: true+              description: description+              language: language+              starred_repos_count: 5+              login: login+              is_admin: true+              full_name: full_name+              login_name: empty+              avatar_url: avatar_url+              following_count: 6+              restricted: true+              followers_count: 0+              location: location+              id: 1+              prohibit_login: true+              email: email+          has_pull_requests: true+          empty: true+          permissions:+            pull: true+            admin: true+            push: true+          id: 6+          release_counter: 5+          default_delete_branch_after_merge: true+          ssh_url: ssh_url+          full_name: full_name+          size: 7+          languages_url: languages_url+          clone_url: clone_url+          html_url: html_url+          name: name+          default_branch: default_branch+          mirror_updated: 2000-01-23T04:56:07.000+00:00+          ignore_whitespace_conflicts: true+          template: true+          internal: true+          mirror: true+          private: true+          open_issues_count: 1+          link: link+          created_at: 2000-01-23T04:56:07.000+00:00+          default_allow_maintainer_edit: true+          description: description+          allow_rebase_update: true+          has_projects: true+          archived: true+          has_wiki: true+          updated_at: 2000-01-23T04:56:07.000+00:00+          allow_merge_commits: true+          stars_count: 9+          allow_rebase_explicit: true+          external_tracker:+            external_tracker_regexp_pattern: external_tracker_regexp_pattern+            external_tracker_style: external_tracker_style+            external_tracker_url: external_tracker_url+            external_tracker_format: external_tracker_format+          mirror_interval: mirror_interval+          owner:+            website: website+            visibility: visibility+            created: 2000-01-23T04:56:07.000+00:00+            last_login: 2000-01-23T04:56:07.000+00:00+            active: true+            description: description+            language: language+            starred_repos_count: 5+            login: login+            is_admin: true+            full_name: full_name+            login_name: empty+            avatar_url: avatar_url+            following_count: 6+            restricted: true+            followers_count: 0+            location: location+            id: 1+            prohibit_login: true+            email: email+          allow_squash_merge: true+          external_wiki:+            external_wiki_url: external_wiki_url+          website: website+          internal_tracker:+            enable_issue_dependencies: true+            allow_only_contributors_to_track_time: true+            enable_time_tracker: true+          has_issues: true+          allow_rebase: true+          default_merge_style: default_merge_style+          fork: true+          avatar_url: avatar_url+          original_url: original_url+          watchers_count: 3+          forks_count: 0+        url: url+      properties:+        id:+          format: int64+          type: integer+          x-go-name: ID+        pinned:+          type: boolean+          x-go-name: Pinned+        repository:+          $ref: '#/components/schemas/Repository'+        subject:+          $ref: '#/components/schemas/NotificationSubject'+        unread:+          type: boolean+          x-go-name: Unread+        updated_at:+          format: date-time+          type: string+          x-go-name: UpdatedAt+        url:+          type: string+          x-go-name: URL+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    NotifySubjectType:+      description: NotifySubjectType represent type of notification subject+      type: string+      x-go-package: code.gitea.io/gitea/modules/structs+    OAuth2Application:+      example:+        created: 2000-01-23T04:56:07.000+00:00+        name: name+        confidential_client: true+        client_secret: client_secret+        id: 0+        redirect_uris:+        - redirect_uris+        - redirect_uris+        client_id: client_id+      properties:+        client_id:+          type: string+          x-go-name: ClientID+        client_secret:+          type: string+          x-go-name: ClientSecret+        confidential_client:+          type: boolean+          x-go-name: ConfidentialClient+        created:+          format: date-time+          type: string+          x-go-name: Created+        id:+          format: int64+          type: integer+          x-go-name: ID+        name:+          type: string+          x-go-name: Name+        redirect_uris:+          items:+            type: string+          type: array+          x-go-name: RedirectURIs+      title: OAuth2Application represents an OAuth2 application.+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    Organization:+      description: Organization represents an organization+      example:+        website: website+        full_name: full_name+        repo_admin_change_team_access: true+        avatar_url: avatar_url+        visibility: visibility+        name: name+        description: description+        location: location+        id: 0+        username: username+      properties:+        avatar_url:+          type: string+          x-go-name: AvatarURL+        description:+          type: string+          x-go-name: Description+        full_name:+          type: string+          x-go-name: FullName+        id:+          format: int64+          type: integer+          x-go-name: ID+        location:+          type: string+          x-go-name: Location+        name:+          type: string+          x-go-name: Name+        repo_admin_change_team_access:+          type: boolean+          x-go-name: RepoAdminChangeTeamAccess+        username:+          description: deprecated+          type: string+          x-go-name: UserName+        visibility:+          type: string+          x-go-name: Visibility+        website:+          type: string+          x-go-name: Website+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    OrganizationPermissions:+      description: OrganizationPermissions list different users permissions on an+        organization+      example:+        can_read: true+        is_admin: true+        can_create_repository: true+        can_write: true+        is_owner: true+      properties:+        can_create_repository:+          type: boolean+          x-go-name: CanCreateRepository+        can_read:+          type: boolean+          x-go-name: CanRead+        can_write:+          type: boolean+          x-go-name: CanWrite+        is_admin:+          type: boolean+          x-go-name: IsAdmin+        is_owner:+          type: boolean+          x-go-name: IsOwner+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    PRBranchInfo:+      description: PRBranchInfo information about a branch+      example:+        ref: ref+        repo_id: 0+        repo:+          parent: null+          open_pr_counter: 5+          language: language+          repo_transfer:+            teams:+            - can_create_org_repo: true+              units_map:+                repo.code: read+                repo.ext_issues: none+                repo.ext_wiki: none+                repo.issues: write+                repo.projects: none+                repo.pulls: owner+                repo.releases: none+                repo.wiki: admin+              organization:+                website: website+                full_name: full_name+                repo_admin_change_team_access: true+                avatar_url: avatar_url+                visibility: visibility+                name: name+                description: description+                location: location+                id: 0+                username: username+              name: name+              description: description+              permission: none+              id: 2+              includes_all_repositories: true+              units:+              - repo.code+              - repo.issues+              - repo.ext_issues+              - repo.wiki+              - repo.pulls+              - repo.releases+              - repo.projects+              - repo.ext_wiki+            - can_create_org_repo: true+              units_map:+                repo.code: read+                repo.ext_issues: none+                repo.ext_wiki: none+                repo.issues: write+                repo.projects: none+                repo.pulls: owner+                repo.releases: none+                repo.wiki: admin+              organization:+                website: website+                full_name: full_name+                repo_admin_change_team_access: true+                avatar_url: avatar_url+                visibility: visibility+                name: name+                description: description+                location: location+                id: 0+                username: username+              name: name+              description: description+              permission: none+              id: 2+              includes_all_repositories: true+              units:+              - repo.code+              - repo.issues+              - repo.ext_issues+              - repo.wiki+              - repo.pulls+              - repo.releases+              - repo.projects+              - repo.ext_wiki+            doer:+              website: website+              visibility: visibility+              created: 2000-01-23T04:56:07.000+00:00+              last_login: 2000-01-23T04:56:07.000+00:00+              active: true+              description: description+              language: language+              starred_repos_count: 5+              login: login+              is_admin: true+              full_name: full_name+              login_name: empty+              avatar_url: avatar_url+              following_count: 6+              restricted: true+              followers_count: 0+              location: location+              id: 1+              prohibit_login: true+              email: email+            recipient:+              website: website+              visibility: visibility+              created: 2000-01-23T04:56:07.000+00:00+              last_login: 2000-01-23T04:56:07.000+00:00+              active: true+              description: description+              language: language+              starred_repos_count: 5+              login: login+              is_admin: true+              full_name: full_name+              login_name: empty+              avatar_url: avatar_url+              following_count: 6+              restricted: true+              followers_count: 0+              location: location+              id: 1+              prohibit_login: true+              email: email+          has_pull_requests: true+          empty: true+          permissions:+            pull: true+            admin: true+            push: true+          id: 6+          release_counter: 5+          default_delete_branch_after_merge: true+          ssh_url: ssh_url+          full_name: full_name+          size: 7+          languages_url: languages_url+          clone_url: clone_url+          html_url: html_url+          name: name+          default_branch: default_branch+          mirror_updated: 2000-01-23T04:56:07.000+00:00+          ignore_whitespace_conflicts: true+          template: true+          internal: true+          mirror: true+          private: true+          open_issues_count: 1+          link: link+          created_at: 2000-01-23T04:56:07.000+00:00+          default_allow_maintainer_edit: true+          description: description+          allow_rebase_update: true+          has_projects: true+          archived: true+          has_wiki: true+          updated_at: 2000-01-23T04:56:07.000+00:00+          allow_merge_commits: true+          stars_count: 9+          allow_rebase_explicit: true+          external_tracker:+            external_tracker_regexp_pattern: external_tracker_regexp_pattern+            external_tracker_style: external_tracker_style+            external_tracker_url: external_tracker_url+            external_tracker_format: external_tracker_format+          mirror_interval: mirror_interval+          owner:+            website: website+            visibility: visibility+            created: 2000-01-23T04:56:07.000+00:00+            last_login: 2000-01-23T04:56:07.000+00:00+            active: true+            description: description+            language: language+            starred_repos_count: 5+            login: login+            is_admin: true+            full_name: full_name+            login_name: empty+            avatar_url: avatar_url+            following_count: 6+            restricted: true+            followers_count: 0+            location: location+            id: 1+            prohibit_login: true+            email: email+          allow_squash_merge: true+          external_wiki:+            external_wiki_url: external_wiki_url+          website: website+          internal_tracker:+            enable_issue_dependencies: true+            allow_only_contributors_to_track_time: true+            enable_time_tracker: true+          has_issues: true+          allow_rebase: true+          default_merge_style: default_merge_style+          fork: true+          avatar_url: avatar_url+          original_url: original_url+          watchers_count: 3+          forks_count: 0+        label: label+        sha: sha+      properties:+        label:+          type: string+          x-go-name: Name+        ref:+          type: string+          x-go-name: Ref+        repo:+          $ref: '#/components/schemas/Repository'+        repo_id:+          format: int64+          type: integer+          x-go-name: RepoID+        sha:+          type: string+          x-go-name: Sha+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    Package:+      description: Package represents a package+      example:+        owner:+          website: website+          visibility: visibility+          created: 2000-01-23T04:56:07.000+00:00+          last_login: 2000-01-23T04:56:07.000+00:00+          active: true+          description: description+          language: language+          starred_repos_count: 5+          login: login+          is_admin: true+          full_name: full_name+          login_name: empty+          avatar_url: avatar_url+          following_count: 6+          restricted: true+          followers_count: 0+          location: location+          id: 1+          prohibit_login: true+          email: email+        creator:+          website: website+          visibility: visibility+          created: 2000-01-23T04:56:07.000+00:00+          last_login: 2000-01-23T04:56:07.000+00:00+          active: true+          description: description+          language: language+          starred_repos_count: 5+          login: login+          is_admin: true+          full_name: full_name+          login_name: empty+          avatar_url: avatar_url+          following_count: 6+          restricted: true+          followers_count: 0+          location: location+          id: 1+          prohibit_login: true+          email: email+        name: name+        created_at: 2000-01-23T04:56:07.000+00:00+        id: 0+        repository:+          parent: null+          open_pr_counter: 5+          language: language+          repo_transfer:+            teams:+            - can_create_org_repo: true+              units_map:+                repo.code: read+                repo.ext_issues: none+                repo.ext_wiki: none+                repo.issues: write+                repo.projects: none+                repo.pulls: owner+                repo.releases: none+                repo.wiki: admin+              organization:+                website: website+                full_name: full_name+                repo_admin_change_team_access: true+                avatar_url: avatar_url+                visibility: visibility+                name: name+                description: description+                location: location+                id: 0+                username: username+              name: name+              description: description+              permission: none+              id: 2+              includes_all_repositories: true+              units:+              - repo.code+              - repo.issues+              - repo.ext_issues+              - repo.wiki+              - repo.pulls+              - repo.releases+              - repo.projects+              - repo.ext_wiki+            - can_create_org_repo: true+              units_map:+                repo.code: read+                repo.ext_issues: none+                repo.ext_wiki: none+                repo.issues: write+                repo.projects: none+                repo.pulls: owner+                repo.releases: none+                repo.wiki: admin+              organization:+                website: website+                full_name: full_name+                repo_admin_change_team_access: true+                avatar_url: avatar_url+                visibility: visibility+                name: name+                description: description+                location: location+                id: 0+                username: username+              name: name+              description: description+              permission: none+              id: 2+              includes_all_repositories: true+              units:+              - repo.code+              - repo.issues+              - repo.ext_issues+              - repo.wiki+              - repo.pulls+              - repo.releases+              - repo.projects+              - repo.ext_wiki+            doer:+              website: website+              visibility: visibility+              created: 2000-01-23T04:56:07.000+00:00+              last_login: 2000-01-23T04:56:07.000+00:00+              active: true+              description: description+              language: language+              starred_repos_count: 5+              login: login+              is_admin: true+              full_name: full_name+              login_name: empty+              avatar_url: avatar_url+              following_count: 6+              restricted: true+              followers_count: 0+              location: location+              id: 1+              prohibit_login: true+              email: email+            recipient:+              website: website+              visibility: visibility+              created: 2000-01-23T04:56:07.000+00:00+              last_login: 2000-01-23T04:56:07.000+00:00+              active: true+              description: description+              language: language+              starred_repos_count: 5+              login: login+              is_admin: true+              full_name: full_name+              login_name: empty+              avatar_url: avatar_url+              following_count: 6+              restricted: true+              followers_count: 0+              location: location+              id: 1+              prohibit_login: true+              email: email+          has_pull_requests: true+          empty: true+          permissions:+            pull: true+            admin: true+            push: true+          id: 6+          release_counter: 5+          default_delete_branch_after_merge: true+          ssh_url: ssh_url+          full_name: full_name+          size: 7+          languages_url: languages_url+          clone_url: clone_url+          html_url: html_url+          name: name+          default_branch: default_branch+          mirror_updated: 2000-01-23T04:56:07.000+00:00+          ignore_whitespace_conflicts: true+          template: true+          internal: true+          mirror: true+          private: true+          open_issues_count: 1+          link: link+          created_at: 2000-01-23T04:56:07.000+00:00+          default_allow_maintainer_edit: true+          description: description+          allow_rebase_update: true+          has_projects: true+          archived: true+          has_wiki: true+          updated_at: 2000-01-23T04:56:07.000+00:00+          allow_merge_commits: true+          stars_count: 9+          allow_rebase_explicit: true+          external_tracker:+            external_tracker_regexp_pattern: external_tracker_regexp_pattern+            external_tracker_style: external_tracker_style+            external_tracker_url: external_tracker_url+            external_tracker_format: external_tracker_format+          mirror_interval: mirror_interval+          owner:+            website: website+            visibility: visibility+            created: 2000-01-23T04:56:07.000+00:00+            last_login: 2000-01-23T04:56:07.000+00:00+            active: true+            description: description+            language: language+            starred_repos_count: 5+            login: login+            is_admin: true+            full_name: full_name+            login_name: empty+            avatar_url: avatar_url+            following_count: 6+            restricted: true+            followers_count: 0+            location: location+            id: 1+            prohibit_login: true+            email: email+          allow_squash_merge: true+          external_wiki:+            external_wiki_url: external_wiki_url+          website: website+          internal_tracker:+            enable_issue_dependencies: true+            allow_only_contributors_to_track_time: true+            enable_time_tracker: true+          has_issues: true+          allow_rebase: true+          default_merge_style: default_merge_style+          fork: true+          avatar_url: avatar_url+          original_url: original_url+          watchers_count: 3+          forks_count: 0+        type: type+        version: version+      properties:+        created_at:+          format: date-time+          type: string+          x-go-name: CreatedAt+        creator:+          $ref: '#/components/schemas/User'+        id:+          format: int64+          type: integer+          x-go-name: ID+        name:+          type: string+          x-go-name: Name+        owner:+          $ref: '#/components/schemas/User'+        repository:+          $ref: '#/components/schemas/Repository'+        type:+          type: string+          x-go-name: Type+        version:+          type: string+          x-go-name: Version+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    PackageFile:+      description: PackageFile represents a package file+      example:+        sha1: sha1+        sha256: sha256+        Size: 0+        name: name+        sha512: sha512+        id: 6+        md5: md5+      properties:+        Size:+          format: int64+          type: integer+        id:+          format: int64+          type: integer+          x-go-name: ID+        md5:+          type: string+          x-go-name: HashMD5+        name:+          type: string+          x-go-name: Name+        sha1:+          type: string+          x-go-name: HashSHA1+        sha256:+          type: string+          x-go-name: HashSHA256+        sha512:+          type: string+          x-go-name: HashSHA512+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    PayloadCommit:+      description: PayloadCommit represents a commit+      example:+        committer:+          name: name+          email: email+          username: username+        removed:+        - removed+        - removed+        added:+        - added+        - added+        author:+          name: name+          email: email+          username: username+        modified:+        - modified+        - modified+        id: id+        message: message+        url: url+        verification:+          reason: reason+          payload: payload+          signature: signature+          verified: true+          signer:+            name: name+            email: email+            username: username+        timestamp: 2000-01-23T04:56:07.000+00:00+      properties:+        added:+          items:+            type: string+          type: array+          x-go-name: Added+        author:+          $ref: '#/components/schemas/PayloadUser'+        committer:+          $ref: '#/components/schemas/PayloadUser'+        id:+          description: sha1 hash of the commit+          type: string+          x-go-name: ID+        message:+          type: string+          x-go-name: Message+        modified:+          items:+            type: string+          type: array+          x-go-name: Modified+        removed:+          items:+            type: string+          type: array+          x-go-name: Removed+        timestamp:+          format: date-time+          type: string+          x-go-name: Timestamp+        url:+          type: string+          x-go-name: URL+        verification:+          $ref: '#/components/schemas/PayloadCommitVerification'+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    PayloadCommitVerification:+      description: PayloadCommitVerification represents the GPG verification of a+        commit+      example:+        reason: reason+        payload: payload+        signature: signature+        verified: true+        signer:+          name: name+          email: email+          username: username+      properties:+        payload:+          type: string+          x-go-name: Payload+        reason:+          type: string+          x-go-name: Reason+        signature:+          type: string+          x-go-name: Signature+        signer:+          $ref: '#/components/schemas/PayloadUser'+        verified:+          type: boolean+          x-go-name: Verified+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    PayloadUser:+      description: PayloadUser represents the author or committer of a commit+      example:+        name: name+        email: email+        username: username+      properties:+        email:+          format: email+          type: string+          x-go-name: Email+        name:+          description: Full name of the commit author+          type: string+          x-go-name: Name+        username:+          type: string+          x-go-name: UserName+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    Permission:+      description: Permission represents a set of permissions+      example:+        pull: true+        admin: true+        push: true+      properties:+        admin:+          type: boolean+          x-go-name: Admin+        pull:+          type: boolean+          x-go-name: Pull+        push:+          type: boolean+          x-go-name: Push+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    PublicKey:+      description: PublicKey publickey is a user key to push code to repository+      example:+        key_type: key_type+        read_only: true+        fingerprint: fingerprint+        created_at: 2000-01-23T04:56:07.000+00:00+        id: 0+        title: title+        user:+          website: website+          visibility: visibility+          created: 2000-01-23T04:56:07.000+00:00+          last_login: 2000-01-23T04:56:07.000+00:00+          active: true+          description: description+          language: language+          starred_repos_count: 5+          login: login+          is_admin: true+          full_name: full_name+          login_name: empty+          avatar_url: avatar_url+          following_count: 6+          restricted: true+          followers_count: 0+          location: location+          id: 1+          prohibit_login: true+          email: email+        key: key+        url: url+      properties:+        created_at:+          format: date-time+          type: string+          x-go-name: Created+        fingerprint:+          type: string+          x-go-name: Fingerprint+        id:+          format: int64+          type: integer+          x-go-name: ID+        key:+          type: string+          x-go-name: Key+        key_type:+          type: string+          x-go-name: KeyType+        read_only:+          type: boolean+          x-go-name: ReadOnly+        title:+          type: string+          x-go-name: Title+        url:+          type: string+          x-go-name: URL+        user:+          $ref: '#/components/schemas/User'+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    PullRequest:+      description: PullRequest represents a pull request+      example:+        is_locked: true+        assignees:+        - website: website+          visibility: visibility+          created: 2000-01-23T04:56:07.000+00:00+          last_login: 2000-01-23T04:56:07.000+00:00+          active: true+          description: description+          language: language+          starred_repos_count: 5+          login: login+          is_admin: true+          full_name: full_name+          login_name: empty+          avatar_url: avatar_url+          following_count: 6+          restricted: true+          followers_count: 0+          location: location+          id: 1+          prohibit_login: true+          email: email+        - website: website+          visibility: visibility+          created: 2000-01-23T04:56:07.000+00:00+          last_login: 2000-01-23T04:56:07.000+00:00+          active: true+          description: description+          language: language+          starred_repos_count: 5+          login: login+          is_admin: true+          full_name: full_name+          login_name: empty+          avatar_url: avatar_url+          following_count: 6+          restricted: true+          followers_count: 0+          location: location+          id: 1+          prohibit_login: true+          email: email+        created_at: 2000-01-23T04:56:07.000+00:00+        diff_url: diff_url+        merged_by:+          website: website+          visibility: visibility+          created: 2000-01-23T04:56:07.000+00:00+          last_login: 2000-01-23T04:56:07.000+00:00+          active: true+          description: description+          language: language+          starred_repos_count: 5+          login: login+          is_admin: true+          full_name: full_name+          login_name: empty+          avatar_url: avatar_url+          following_count: 6+          restricted: true+          followers_count: 0+          location: location+          id: 1+          prohibit_login: true+          email: email+        body: body+        title: title+        head:+          ref: ref+          repo_id: 0+          repo:+            parent: null+            open_pr_counter: 5+            language: language+            repo_transfer:+              teams:+              - can_create_org_repo: true+                units_map:+                  repo.code: read+                  repo.ext_issues: none+                  repo.ext_wiki: none+                  repo.issues: write+                  repo.projects: none+                  repo.pulls: owner+                  repo.releases: none+                  repo.wiki: admin+                organization:+                  website: website+                  full_name: full_name+                  repo_admin_change_team_access: true+                  avatar_url: avatar_url+                  visibility: visibility+                  name: name+                  description: description+                  location: location+                  id: 0+                  username: username+                name: name+                description: description+                permission: none+                id: 2+                includes_all_repositories: true+                units:+                - repo.code+                - repo.issues+                - repo.ext_issues+                - repo.wiki+                - repo.pulls+                - repo.releases+                - repo.projects+                - repo.ext_wiki+              - can_create_org_repo: true+                units_map:+                  repo.code: read+                  repo.ext_issues: none+                  repo.ext_wiki: none+                  repo.issues: write+                  repo.projects: none+                  repo.pulls: owner+                  repo.releases: none+                  repo.wiki: admin+                organization:+                  website: website+                  full_name: full_name+                  repo_admin_change_team_access: true+                  avatar_url: avatar_url+                  visibility: visibility+                  name: name+                  description: description+                  location: location+                  id: 0+                  username: username+                name: name+                description: description+                permission: none+                id: 2+                includes_all_repositories: true+                units:+                - repo.code+                - repo.issues+                - repo.ext_issues+                - repo.wiki+                - repo.pulls+                - repo.releases+                - repo.projects+                - repo.ext_wiki+              doer:+                website: website+                visibility: visibility+                created: 2000-01-23T04:56:07.000+00:00+                last_login: 2000-01-23T04:56:07.000+00:00+                active: true+                description: description+                language: language+                starred_repos_count: 5+                login: login+                is_admin: true+                full_name: full_name+                login_name: empty+                avatar_url: avatar_url+                following_count: 6+                restricted: true+                followers_count: 0+                location: location+                id: 1+                prohibit_login: true+                email: email+              recipient:+                website: website+                visibility: visibility+                created: 2000-01-23T04:56:07.000+00:00+                last_login: 2000-01-23T04:56:07.000+00:00+                active: true+                description: description+                language: language+                starred_repos_count: 5+                login: login+                is_admin: true+                full_name: full_name+                login_name: empty+                avatar_url: avatar_url+                following_count: 6+                restricted: true+                followers_count: 0+                location: location+                id: 1+                prohibit_login: true+                email: email+            has_pull_requests: true+            empty: true+            permissions:+              pull: true+              admin: true+              push: true+            id: 6+            release_counter: 5+            default_delete_branch_after_merge: true+            ssh_url: ssh_url+            full_name: full_name+            size: 7+            languages_url: languages_url+            clone_url: clone_url+            html_url: html_url+            name: name+            default_branch: default_branch+            mirror_updated: 2000-01-23T04:56:07.000+00:00+            ignore_whitespace_conflicts: true+            template: true+            internal: true+            mirror: true+            private: true+            open_issues_count: 1+            link: link+            created_at: 2000-01-23T04:56:07.000+00:00+            default_allow_maintainer_edit: true+            description: description+            allow_rebase_update: true+            has_projects: true+            archived: true+            has_wiki: true+            updated_at: 2000-01-23T04:56:07.000+00:00+            allow_merge_commits: true+            stars_count: 9+            allow_rebase_explicit: true+            external_tracker:+              external_tracker_regexp_pattern: external_tracker_regexp_pattern+              external_tracker_style: external_tracker_style+              external_tracker_url: external_tracker_url+              external_tracker_format: external_tracker_format+            mirror_interval: mirror_interval+            owner:+              website: website+              visibility: visibility+              created: 2000-01-23T04:56:07.000+00:00+              last_login: 2000-01-23T04:56:07.000+00:00+              active: true+              description: description+              language: language+              starred_repos_count: 5+              login: login+              is_admin: true+              full_name: full_name+              login_name: empty+              avatar_url: avatar_url+              following_count: 6+              restricted: true+              followers_count: 0+              location: location+              id: 1+              prohibit_login: true+              email: email+            allow_squash_merge: true+            external_wiki:+              external_wiki_url: external_wiki_url+            website: website+            internal_tracker:+              enable_issue_dependencies: true+              allow_only_contributors_to_track_time: true+              enable_time_tracker: true+            has_issues: true+            allow_rebase: true+            default_merge_style: default_merge_style+            fork: true+            avatar_url: avatar_url+            original_url: original_url+            watchers_count: 3+            forks_count: 0+          label: label+          sha: sha+        number: 5+        mergeable: true+        patch_url: patch_url+        updated_at: 2000-01-23T04:56:07.000+00:00+        merge_base: merge_base+        merge_commit_sha: merge_commit_sha+        id: 1+        state: state+        closed_at: 2000-01-23T04:56:07.000+00:00+        comments: 6+        merged_at: 2000-01-23T04:56:07.000+00:00+        due_date: 2000-01-23T04:56:07.000+00:00+        merged: true+        url: url+        labels:+        - color: 00aabb+          name: name+          description: description+          exclusive: false+          id: 0+          url: url+        - color: 00aabb+          name: name+          description: description+          exclusive: false+          id: 0+          url: url+        milestone:+          closed_at: 2000-01-23T04:56:07.000+00:00+          updated_at: 2000-01-23T04:56:07.000+00:00+          created_at: 2000-01-23T04:56:07.000+00:00+          description: description+          id: 7+          state: state+          closed_issues: 2+          open_issues: 9+          title: title+          due_on: 2000-01-23T04:56:07.000+00:00+        allow_maintainer_edit: true+        html_url: html_url+        assignee:+          website: website+          visibility: visibility+          created: 2000-01-23T04:56:07.000+00:00+          last_login: 2000-01-23T04:56:07.000+00:00+          active: true+          description: description+          language: language+          starred_repos_count: 5+          login: login+          is_admin: true+          full_name: full_name+          login_name: empty+          avatar_url: avatar_url+          following_count: 6+          restricted: true+          followers_count: 0+          location: location+          id: 1+          prohibit_login: true+          email: email+        user:+          website: website+          visibility: visibility+          created: 2000-01-23T04:56:07.000+00:00+          last_login: 2000-01-23T04:56:07.000+00:00+          active: true+          description: description+          language: language+          starred_repos_count: 5+          login: login+          is_admin: true+          full_name: full_name+          login_name: empty+          avatar_url: avatar_url+          following_count: 6+          restricted: true+          followers_count: 0+          location: location+          id: 1+          prohibit_login: true+          email: email+        base:+          ref: ref+          repo_id: 0+          repo:+            parent: null+            open_pr_counter: 5+            language: language+            repo_transfer:+              teams:+              - can_create_org_repo: true+                units_map:+                  repo.code: read+                  repo.ext_issues: none+                  repo.ext_wiki: none+                  repo.issues: write+                  repo.projects: none+                  repo.pulls: owner+                  repo.releases: none+                  repo.wiki: admin+                organization:+                  website: website+                  full_name: full_name+                  repo_admin_change_team_access: true+                  avatar_url: avatar_url+                  visibility: visibility+                  name: name+                  description: description+                  location: location+                  id: 0+                  username: username+                name: name+                description: description+                permission: none+                id: 2+                includes_all_repositories: true+                units:+                - repo.code+                - repo.issues+                - repo.ext_issues+                - repo.wiki+                - repo.pulls+                - repo.releases+                - repo.projects+                - repo.ext_wiki+              - can_create_org_repo: true+                units_map:+                  repo.code: read+                  repo.ext_issues: none+                  repo.ext_wiki: none+                  repo.issues: write+                  repo.projects: none+                  repo.pulls: owner+                  repo.releases: none+                  repo.wiki: admin+                organization:+                  website: website+                  full_name: full_name+                  repo_admin_change_team_access: true+                  avatar_url: avatar_url+                  visibility: visibility+                  name: name+                  description: description+                  location: location+                  id: 0+                  username: username+                name: name+                description: description+                permission: none+                id: 2+                includes_all_repositories: true+                units:+                - repo.code+                - repo.issues+                - repo.ext_issues+                - repo.wiki+                - repo.pulls+                - repo.releases+                - repo.projects+                - repo.ext_wiki+              doer:+                website: website+                visibility: visibility+                created: 2000-01-23T04:56:07.000+00:00+                last_login: 2000-01-23T04:56:07.000+00:00+                active: true+                description: description+                language: language+                starred_repos_count: 5+                login: login+                is_admin: true+                full_name: full_name+                login_name: empty+                avatar_url: avatar_url+                following_count: 6+                restricted: true+                followers_count: 0+                location: location+                id: 1+                prohibit_login: true+                email: email+              recipient:+                website: website+                visibility: visibility+                created: 2000-01-23T04:56:07.000+00:00+                last_login: 2000-01-23T04:56:07.000+00:00+                active: true+                description: description+                language: language+                starred_repos_count: 5+                login: login+                is_admin: true+                full_name: full_name+                login_name: empty+                avatar_url: avatar_url+                following_count: 6+                restricted: true+                followers_count: 0+                location: location+                id: 1+                prohibit_login: true+                email: email+            has_pull_requests: true+            empty: true+            permissions:+              pull: true+              admin: true+              push: true+            id: 6+            release_counter: 5+            default_delete_branch_after_merge: true+            ssh_url: ssh_url+            full_name: full_name+            size: 7+            languages_url: languages_url+            clone_url: clone_url+            html_url: html_url+            name: name+            default_branch: default_branch+            mirror_updated: 2000-01-23T04:56:07.000+00:00+            ignore_whitespace_conflicts: true+            template: true+            internal: true+            mirror: true+            private: true+            open_issues_count: 1+            link: link+            created_at: 2000-01-23T04:56:07.000+00:00+            default_allow_maintainer_edit: true+            description: description+            allow_rebase_update: true+            has_projects: true+            archived: true+            has_wiki: true+            updated_at: 2000-01-23T04:56:07.000+00:00+            allow_merge_commits: true+            stars_count: 9+            allow_rebase_explicit: true+            external_tracker:+              external_tracker_regexp_pattern: external_tracker_regexp_pattern+              external_tracker_style: external_tracker_style+              external_tracker_url: external_tracker_url+              external_tracker_format: external_tracker_format+            mirror_interval: mirror_interval+            owner:+              website: website+              visibility: visibility+              created: 2000-01-23T04:56:07.000+00:00+              last_login: 2000-01-23T04:56:07.000+00:00+              active: true+              description: description+              language: language+              starred_repos_count: 5+              login: login+              is_admin: true+              full_name: full_name+              login_name: empty+              avatar_url: avatar_url+              following_count: 6+              restricted: true+              followers_count: 0+              location: location+              id: 1+              prohibit_login: true+              email: email+            allow_squash_merge: true+            external_wiki:+              external_wiki_url: external_wiki_url+            website: website+            internal_tracker:+              enable_issue_dependencies: true+              allow_only_contributors_to_track_time: true+              enable_time_tracker: true+            has_issues: true+            allow_rebase: true+            default_merge_style: default_merge_style+            fork: true+            avatar_url: avatar_url+            original_url: original_url+            watchers_count: 3+            forks_count: 0+          label: label+          sha: sha+      properties:+        allow_maintainer_edit:+          type: boolean+          x-go-name: AllowMaintainerEdit+        assignee:+          $ref: '#/components/schemas/User'+        assignees:+          items:+            $ref: '#/components/schemas/User'+          type: array+          x-go-name: Assignees+        base:+          $ref: '#/components/schemas/PRBranchInfo'+        body:+          type: string+          x-go-name: Body+        closed_at:+          format: date-time+          type: string+          x-go-name: Closed+        comments:+          format: int64+          type: integer+          x-go-name: Comments+        created_at:+          format: date-time+          type: string+          x-go-name: Created+        diff_url:+          type: string+          x-go-name: DiffURL+        due_date:+          format: date-time+          type: string+          x-go-name: Deadline+        head:+          $ref: '#/components/schemas/PRBranchInfo'+        html_url:+          type: string+          x-go-name: HTMLURL+        id:+          format: int64+          type: integer+          x-go-name: ID+        is_locked:+          type: boolean+          x-go-name: IsLocked+        labels:+          items:+            $ref: '#/components/schemas/Label'+          type: array+          x-go-name: Labels+        merge_base:+          type: string+          x-go-name: MergeBase+        merge_commit_sha:+          type: string+          x-go-name: MergedCommitID+        mergeable:+          type: boolean+          x-go-name: Mergeable+        merged:+          type: boolean+          x-go-name: HasMerged+        merged_at:+          format: date-time+          type: string+          x-go-name: Merged+        merged_by:+          $ref: '#/components/schemas/User'+        milestone:+          $ref: '#/components/schemas/Milestone'+        number:+          format: int64+          type: integer+          x-go-name: Index+        patch_url:+          type: string+          x-go-name: PatchURL+        state:+          description: StateType issue state type+          type: string+          x-go-package: code.gitea.io/gitea/modules/structs+        title:+          type: string+          x-go-name: Title+        updated_at:+          format: date-time+          type: string+          x-go-name: Updated+        url:+          type: string+          x-go-name: URL+        user:+          $ref: '#/components/schemas/User'+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    PullRequestMeta:+      description: PullRequestMeta PR info if an issue is a PR+      example:+        merged_at: 2000-01-23T04:56:07.000+00:00+        merged: true+      properties:+        merged:+          type: boolean+          x-go-name: HasMerged+        merged_at:+          format: date-time+          type: string+          x-go-name: Merged+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    PullReview:+      description: PullReview represents a pull request review+      example:+        submitted_at: 2000-01-23T04:56:07.000+00:00+        dismissed: true+        official: true+        pull_request_url: pull_request_url+        team:+          can_create_org_repo: true+          units_map:+            repo.code: read+            repo.ext_issues: none+            repo.ext_wiki: none+            repo.issues: write+            repo.projects: none+            repo.pulls: owner+            repo.releases: none+            repo.wiki: admin+          organization:+            website: website+            full_name: full_name+            repo_admin_change_team_access: true+            avatar_url: avatar_url+            visibility: visibility+            name: name+            description: description+            location: location+            id: 0+            username: username+          name: name+          description: description+          permission: none+          id: 2+          includes_all_repositories: true+          units:+          - repo.code+          - repo.issues+          - repo.ext_issues+          - repo.wiki+          - repo.pulls+          - repo.releases+          - repo.projects+          - repo.ext_wiki+        body: body+        stale: true+        updated_at: 2000-01-23T04:56:07.000+00:00+        comments_count: 0+        html_url: html_url+        id: 6+        state: state+        commit_id: commit_id+        user:+          website: website+          visibility: visibility+          created: 2000-01-23T04:56:07.000+00:00+          last_login: 2000-01-23T04:56:07.000+00:00+          active: true+          description: description+          language: language+          starred_repos_count: 5+          login: login+          is_admin: true+          full_name: full_name+          login_name: empty+          avatar_url: avatar_url+          following_count: 6+          restricted: true+          followers_count: 0+          location: location+          id: 1+          prohibit_login: true+          email: email+      properties:+        body:+          type: string+          x-go-name: Body+        comments_count:+          format: int64+          type: integer+          x-go-name: CodeCommentsCount+        commit_id:+          type: string+          x-go-name: CommitID+        dismissed:+          type: boolean+          x-go-name: Dismissed+        html_url:+          type: string+          x-go-name: HTMLURL+        id:+          format: int64+          type: integer+          x-go-name: ID+        official:+          type: boolean+          x-go-name: Official+        pull_request_url:+          type: string+          x-go-name: HTMLPullURL+        stale:+          type: boolean+          x-go-name: Stale+        state:+          description: ReviewStateType review state type+          type: string+          x-go-package: code.gitea.io/gitea/modules/structs+        submitted_at:+          format: date-time+          type: string+          x-go-name: Submitted+        team:+          $ref: '#/components/schemas/Team'+        updated_at:+          format: date-time+          type: string+          x-go-name: Updated+        user:+          $ref: '#/components/schemas/User'+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    PullReviewComment:+      description: PullReviewComment represents a comment on a pull request review+      example:+        resolver:+          website: website+          visibility: visibility+          created: 2000-01-23T04:56:07.000+00:00+          last_login: 2000-01-23T04:56:07.000+00:00+          active: true+          description: description+          language: language+          starred_repos_count: 5+          login: login+          is_admin: true+          full_name: full_name+          login_name: empty+          avatar_url: avatar_url+          following_count: 6+          restricted: true+          followers_count: 0+          location: location+          id: 1+          prohibit_login: true+          email: email+        original_commit_id: original_commit_id+        diff_hunk: diff_hunk+        created_at: 2000-01-23T04:56:07.000+00:00+        pull_request_url: pull_request_url+        body: body+        path: path+        original_position: 6+        updated_at: 2000-01-23T04:56:07.000+00:00+        html_url: html_url+        pull_request_review_id: 5+        id: 0+        position: 1+        commit_id: commit_id+        user:+          website: website+          visibility: visibility+          created: 2000-01-23T04:56:07.000+00:00+          last_login: 2000-01-23T04:56:07.000+00:00+          active: true+          description: description+          language: language+          starred_repos_count: 5+          login: login+          is_admin: true+          full_name: full_name+          login_name: empty+          avatar_url: avatar_url+          following_count: 6+          restricted: true+          followers_count: 0+          location: location+          id: 1+          prohibit_login: true+          email: email+      properties:+        body:+          type: string+          x-go-name: Body+        commit_id:+          type: string+          x-go-name: CommitID+        created_at:+          format: date-time+          type: string+          x-go-name: Created+        diff_hunk:+          type: string+          x-go-name: DiffHunk+        html_url:+          type: string+          x-go-name: HTMLURL+        id:+          format: int64+          type: integer+          x-go-name: ID+        original_commit_id:+          type: string+          x-go-name: OrigCommitID+        original_position:+          format: uint64+          type: integer+          x-go-name: OldLineNum+        path:+          type: string+          x-go-name: Path+        position:+          format: uint64+          type: integer+          x-go-name: LineNum+        pull_request_review_id:+          format: int64+          type: integer+          x-go-name: ReviewID+        pull_request_url:+          type: string+          x-go-name: HTMLPullURL+        resolver:+          $ref: '#/components/schemas/User'+        updated_at:+          format: date-time+          type: string+          x-go-name: Updated+        user:+          $ref: '#/components/schemas/User'+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    PullReviewRequestOptions:+      description: PullReviewRequestOptions are options to add or remove pull review+        requests+      example:+        team_reviewers:+        - team_reviewers+        - team_reviewers+        reviewers:+        - reviewers+        - reviewers+      properties:+        reviewers:+          items:+            type: string+          type: array+          x-go-name: Reviewers+        team_reviewers:+          items:+            type: string+          type: array+          x-go-name: TeamReviewers+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    PushMirror:+      description: PushMirror represents information of a push mirror+      example:+        sync_on_commit: true+        remote_name: remote_name+        created: created+        last_update: last_update+        interval: interval+        repo_name: repo_name+        last_error: last_error+        remote_address: remote_address+      properties:+        created:+          type: string+          x-go-name: CreatedUnix+        interval:+          type: string+          x-go-name: Interval+        last_error:+          type: string+          x-go-name: LastError+        last_update:+          type: string+          x-go-name: LastUpdateUnix+        remote_address:+          type: string+          x-go-name: RemoteAddress+        remote_name:+          type: string+          x-go-name: RemoteName+        repo_name:+          type: string+          x-go-name: RepoName+        sync_on_commit:+          type: boolean+          x-go-name: SyncOnCommit+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    Reaction:+      description: Reaction contain one reaction+      example:+        created_at: 2000-01-23T04:56:07.000+00:00+        user:+          website: website+          visibility: visibility+          created: 2000-01-23T04:56:07.000+00:00+          last_login: 2000-01-23T04:56:07.000+00:00+          active: true+          description: description+          language: language+          starred_repos_count: 5+          login: login+          is_admin: true+          full_name: full_name+          login_name: empty+          avatar_url: avatar_url+          following_count: 6+          restricted: true+          followers_count: 0+          location: location+          id: 1+          prohibit_login: true+          email: email+        content: content+      properties:+        content:+          type: string+          x-go-name: Reaction+        created_at:+          format: date-time+          type: string+          x-go-name: Created+        user:+          $ref: '#/components/schemas/User'+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    Reference:+      example:+        ref: ref+        url: url+        object:+          type: type+          sha: sha+          url: url+      properties:+        object:+          $ref: '#/components/schemas/GitObject'+        ref:+          type: string+          x-go-name: Ref+        url:+          type: string+          x-go-name: URL+      title: Reference represents a Git reference.+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    Release:+      description: Release represents a repository release+      example:+        author:+          website: website+          visibility: visibility+          created: 2000-01-23T04:56:07.000+00:00+          last_login: 2000-01-23T04:56:07.000+00:00+          active: true+          description: description+          language: language+          starred_repos_count: 5+          login: login+          is_admin: true+          full_name: full_name+          login_name: empty+          avatar_url: avatar_url+          following_count: 6+          restricted: true+          followers_count: 0+          location: location+          id: 1+          prohibit_login: true+          email: email+        tag_name: tag_name+        created_at: 2000-01-23T04:56:07.000+00:00+        body: body+        url: url+        assets:+        - size: 1+          name: name+          created_at: 2000-01-23T04:56:07.000+00:00+          browser_download_url: browser_download_url+          id: 6+          uuid: uuid+          download_count: 0+        - size: 1+          name: name+          created_at: 2000-01-23T04:56:07.000+00:00+          browser_download_url: browser_download_url+          id: 6+          uuid: uuid+          download_count: 0+        prerelease: true+        draft: true+        html_url: html_url+        target_commitish: target_commitish+        zipball_url: zipball_url+        name: name+        id: 0+        published_at: 2000-01-23T04:56:07.000+00:00+        tarball_url: tarball_url+      properties:+        assets:+          items:+            $ref: '#/components/schemas/Attachment'+          type: array+          x-go-name: Attachments+        author:+          $ref: '#/components/schemas/User'+        body:+          type: string+          x-go-name: Note+        created_at:+          format: date-time+          type: string+          x-go-name: CreatedAt+        draft:+          type: boolean+          x-go-name: IsDraft+        html_url:+          type: string+          x-go-name: HTMLURL+        id:+          format: int64+          type: integer+          x-go-name: ID+        name:+          type: string+          x-go-name: Title+        prerelease:+          type: boolean+          x-go-name: IsPrerelease+        published_at:+          format: date-time+          type: string+          x-go-name: PublishedAt+        tag_name:+          type: string+          x-go-name: TagName+        tarball_url:+          type: string+          x-go-name: TarURL+        target_commitish:+          type: string+          x-go-name: Target+        url:+          type: string+          x-go-name: URL+        zipball_url:+          type: string+          x-go-name: ZipURL+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    RepoCollaboratorPermission:+      description: RepoCollaboratorPermission to get repository permission for a collaborator+      example:+        role_name: role_name+        permission: permission+        user:+          website: website+          visibility: visibility+          created: 2000-01-23T04:56:07.000+00:00+          last_login: 2000-01-23T04:56:07.000+00:00+          active: true+          description: description+          language: language+          starred_repos_count: 5+          login: login+          is_admin: true+          full_name: full_name+          login_name: empty+          avatar_url: avatar_url+          following_count: 6+          restricted: true+          followers_count: 0+          location: location+          id: 1+          prohibit_login: true+          email: email+      properties:+        permission:+          type: string+          x-go-name: Permission+        role_name:+          type: string+          x-go-name: RoleName+        user:+          $ref: '#/components/schemas/User'+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    RepoCommit:+      example:+        committer:+          date: date+          name: name+          email: email+        author:+          date: date+          name: name+          email: email+        tree:+          created: 2000-01-23T04:56:07.000+00:00+          sha: sha+          url: url+        message: message+        url: url+        verification:+          reason: reason+          payload: payload+          signature: signature+          verified: true+          signer:+            name: name+            email: email+            username: username+      properties:+        author:+          $ref: '#/components/schemas/CommitUser'+        committer:+          $ref: '#/components/schemas/CommitUser'+        message:+          type: string+          x-go-name: Message+        tree:+          $ref: '#/components/schemas/CommitMeta'+        url:+          type: string+          x-go-name: URL+        verification:+          $ref: '#/components/schemas/PayloadCommitVerification'+      title: RepoCommit contains information of a commit in the context of a repository.+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    RepoTopicOptions:+      description: RepoTopicOptions a collection of repo topic names+      example:+        topics:+        - topics+        - topics+      properties:+        topics:+          description: list of topic names+          items:+            type: string+          type: array+          x-go-name: Topics+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    RepoTransfer:+      description: RepoTransfer represents a pending repo transfer+      example:+        teams:+        - can_create_org_repo: true+          units_map:+            repo.code: read+            repo.ext_issues: none+            repo.ext_wiki: none+            repo.issues: write+            repo.projects: none+            repo.pulls: owner+            repo.releases: none+            repo.wiki: admin+          organization:+            website: website+            full_name: full_name+            repo_admin_change_team_access: true+            avatar_url: avatar_url+            visibility: visibility+            name: name+            description: description+            location: location+            id: 0+            username: username+          name: name+          description: description+          permission: none+          id: 2+          includes_all_repositories: true+          units:+          - repo.code+          - repo.issues+          - repo.ext_issues+          - repo.wiki+          - repo.pulls+          - repo.releases+          - repo.projects+          - repo.ext_wiki+        - can_create_org_repo: true+          units_map:+            repo.code: read+            repo.ext_issues: none+            repo.ext_wiki: none+            repo.issues: write+            repo.projects: none+            repo.pulls: owner+            repo.releases: none+            repo.wiki: admin+          organization:+            website: website+            full_name: full_name+            repo_admin_change_team_access: true+            avatar_url: avatar_url+            visibility: visibility+            name: name+            description: description+            location: location+            id: 0+            username: username+          name: name+          description: description+          permission: none+          id: 2+          includes_all_repositories: true+          units:+          - repo.code+          - repo.issues+          - repo.ext_issues+          - repo.wiki+          - repo.pulls+          - repo.releases+          - repo.projects+          - repo.ext_wiki+        doer:+          website: website+          visibility: visibility+          created: 2000-01-23T04:56:07.000+00:00+          last_login: 2000-01-23T04:56:07.000+00:00+          active: true+          description: description+          language: language+          starred_repos_count: 5+          login: login+          is_admin: true+          full_name: full_name+          login_name: empty+          avatar_url: avatar_url+          following_count: 6+          restricted: true+          followers_count: 0+          location: location+          id: 1+          prohibit_login: true+          email: email+        recipient:+          website: website+          visibility: visibility+          created: 2000-01-23T04:56:07.000+00:00+          last_login: 2000-01-23T04:56:07.000+00:00+          active: true+          description: description+          language: language+          starred_repos_count: 5+          login: login+          is_admin: true+          full_name: full_name+          login_name: empty+          avatar_url: avatar_url+          following_count: 6+          restricted: true+          followers_count: 0+          location: location+          id: 1+          prohibit_login: true+          email: email+      properties:+        doer:+          $ref: '#/components/schemas/User'+        recipient:+          $ref: '#/components/schemas/User'+        teams:+          items:+            $ref: '#/components/schemas/Team'+          type: array+          x-go-name: Teams+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    Repository:+      description: Repository represents a repository+      example:+        parent: null+        open_pr_counter: 5+        language: language+        repo_transfer:+          teams:+          - can_create_org_repo: true+            units_map:+              repo.code: read+              repo.ext_issues: none+              repo.ext_wiki: none+              repo.issues: write+              repo.projects: none+              repo.pulls: owner+              repo.releases: none+              repo.wiki: admin+            organization:+              website: website+              full_name: full_name+              repo_admin_change_team_access: true+              avatar_url: avatar_url+              visibility: visibility+              name: name+              description: description+              location: location+              id: 0+              username: username+            name: name+            description: description+            permission: none+            id: 2+            includes_all_repositories: true+            units:+            - repo.code+            - repo.issues+            - repo.ext_issues+            - repo.wiki+            - repo.pulls+            - repo.releases+            - repo.projects+            - repo.ext_wiki+          - can_create_org_repo: true+            units_map:+              repo.code: read+              repo.ext_issues: none+              repo.ext_wiki: none+              repo.issues: write+              repo.projects: none+              repo.pulls: owner+              repo.releases: none+              repo.wiki: admin+            organization:+              website: website+              full_name: full_name+              repo_admin_change_team_access: true+              avatar_url: avatar_url+              visibility: visibility+              name: name+              description: description+              location: location+              id: 0+              username: username+            name: name+            description: description+            permission: none+            id: 2+            includes_all_repositories: true+            units:+            - repo.code+            - repo.issues+            - repo.ext_issues+            - repo.wiki+            - repo.pulls+            - repo.releases+            - repo.projects+            - repo.ext_wiki+          doer:+            website: website+            visibility: visibility+            created: 2000-01-23T04:56:07.000+00:00+            last_login: 2000-01-23T04:56:07.000+00:00+            active: true+            description: description+            language: language+            starred_repos_count: 5+            login: login+            is_admin: true+            full_name: full_name+            login_name: empty+            avatar_url: avatar_url+            following_count: 6+            restricted: true+            followers_count: 0+            location: location+            id: 1+            prohibit_login: true+            email: email+          recipient:+            website: website+            visibility: visibility+            created: 2000-01-23T04:56:07.000+00:00+            last_login: 2000-01-23T04:56:07.000+00:00+            active: true+            description: description+            language: language+            starred_repos_count: 5+            login: login+            is_admin: true+            full_name: full_name+            login_name: empty+            avatar_url: avatar_url+            following_count: 6+            restricted: true+            followers_count: 0+            location: location+            id: 1+            prohibit_login: true+            email: email+        has_pull_requests: true+        empty: true+        permissions:+          pull: true+          admin: true+          push: true+        id: 6+        release_counter: 5+        default_delete_branch_after_merge: true+        ssh_url: ssh_url+        full_name: full_name+        size: 7+        languages_url: languages_url+        clone_url: clone_url+        html_url: html_url+        name: name+        default_branch: default_branch+        mirror_updated: 2000-01-23T04:56:07.000+00:00+        ignore_whitespace_conflicts: true+        template: true+        internal: true+        mirror: true+        private: true+        open_issues_count: 1+        link: link+        created_at: 2000-01-23T04:56:07.000+00:00+        default_allow_maintainer_edit: true+        description: description+        allow_rebase_update: true+        has_projects: true+        archived: true+        has_wiki: true+        updated_at: 2000-01-23T04:56:07.000+00:00+        allow_merge_commits: true+        stars_count: 9+        allow_rebase_explicit: true+        external_tracker:+          external_tracker_regexp_pattern: external_tracker_regexp_pattern+          external_tracker_style: external_tracker_style+          external_tracker_url: external_tracker_url+          external_tracker_format: external_tracker_format+        mirror_interval: mirror_interval+        owner:+          website: website+          visibility: visibility+          created: 2000-01-23T04:56:07.000+00:00+          last_login: 2000-01-23T04:56:07.000+00:00+          active: true+          description: description+          language: language+          starred_repos_count: 5+          login: login+          is_admin: true+          full_name: full_name+          login_name: empty+          avatar_url: avatar_url+          following_count: 6+          restricted: true+          followers_count: 0+          location: location+          id: 1+          prohibit_login: true+          email: email+        allow_squash_merge: true+        external_wiki:+          external_wiki_url: external_wiki_url+        website: website+        internal_tracker:+          enable_issue_dependencies: true+          allow_only_contributors_to_track_time: true+          enable_time_tracker: true+        has_issues: true+        allow_rebase: true+        default_merge_style: default_merge_style+        fork: true+        avatar_url: avatar_url+        original_url: original_url+        watchers_count: 3+        forks_count: 0+      properties:+        allow_merge_commits:+          type: boolean+          x-go-name: AllowMerge+        allow_rebase:+          type: boolean+          x-go-name: AllowRebase+        allow_rebase_explicit:+          type: boolean+          x-go-name: AllowRebaseMerge+        allow_rebase_update:+          type: boolean+          x-go-name: AllowRebaseUpdate+        allow_squash_merge:+          type: boolean+          x-go-name: AllowSquash+        archived:+          type: boolean+          x-go-name: Archived+        avatar_url:+          type: string+          x-go-name: AvatarURL+        clone_url:+          type: string+          x-go-name: CloneURL+        created_at:+          format: date-time+          type: string+          x-go-name: Created+        default_allow_maintainer_edit:+          type: boolean+          x-go-name: DefaultAllowMaintainerEdit+        default_branch:+          type: string+          x-go-name: DefaultBranch+        default_delete_branch_after_merge:+          type: boolean+          x-go-name: DefaultDeleteBranchAfterMerge+        default_merge_style:+          type: string+          x-go-name: DefaultMergeStyle+        description:+          type: string+          x-go-name: Description+        empty:+          type: boolean+          x-go-name: Empty+        external_tracker:+          $ref: '#/components/schemas/ExternalTracker'+        external_wiki:+          $ref: '#/components/schemas/ExternalWiki'+        fork:+          type: boolean+          x-go-name: Fork+        forks_count:+          format: int64+          type: integer+          x-go-name: Forks+        full_name:+          type: string+          x-go-name: FullName+        has_issues:+          type: boolean+          x-go-name: HasIssues+        has_projects:+          type: boolean+          x-go-name: HasProjects+        has_pull_requests:+          type: boolean+          x-go-name: HasPullRequests+        has_wiki:+          type: boolean+          x-go-name: HasWiki+        html_url:+          type: string+          x-go-name: HTMLURL+        id:+          format: int64+          type: integer+          x-go-name: ID+        ignore_whitespace_conflicts:+          type: boolean+          x-go-name: IgnoreWhitespaceConflicts+        internal:+          type: boolean+          x-go-name: Internal+        internal_tracker:+          $ref: '#/components/schemas/InternalTracker'+        language:+          type: string+          x-go-name: Language+        languages_url:+          type: string+          x-go-name: LanguagesURL+        link:+          type: string+          x-go-name: Link+        mirror:+          type: boolean+          x-go-name: Mirror+        mirror_interval:+          type: string+          x-go-name: MirrorInterval+        mirror_updated:+          format: date-time+          type: string+          x-go-name: MirrorUpdated+        name:+          type: string+          x-go-name: Name+        open_issues_count:+          format: int64+          type: integer+          x-go-name: OpenIssues+        open_pr_counter:+          format: int64+          type: integer+          x-go-name: OpenPulls+        original_url:+          type: string+          x-go-name: OriginalURL+        owner:+          $ref: '#/components/schemas/User'+        parent:+          $ref: '#/components/schemas/Repository'+        permissions:+          $ref: '#/components/schemas/Permission'+        private:+          type: boolean+          x-go-name: Private+        release_counter:+          format: int64+          type: integer+          x-go-name: Releases+        repo_transfer:+          $ref: '#/components/schemas/RepoTransfer'+        size:+          format: int64+          type: integer+          x-go-name: Size+        ssh_url:+          type: string+          x-go-name: SSHURL+        stars_count:+          format: int64+          type: integer+          x-go-name: Stars+        template:+          type: boolean+          x-go-name: Template+        updated_at:+          format: date-time+          type: string+          x-go-name: Updated+        watchers_count:+          format: int64+          type: integer+          x-go-name: Watchers+        website:+          type: string+          x-go-name: Website+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    RepositoryMeta:+      description: RepositoryMeta basic repository information+      example:+        owner: owner+        full_name: full_name+        name: name+        id: 4+      properties:+        full_name:+          type: string+          x-go-name: FullName+        id:+          format: int64+          type: integer+          x-go-name: ID+        name:+          type: string+          x-go-name: Name+        owner:+          type: string+          x-go-name: Owner+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    ReviewStateType:+      description: ReviewStateType review state type+      type: string+      x-go-package: code.gitea.io/gitea/modules/structs+    SearchResults:+      description: SearchResults results of a successful search+      example:+        data:+        - parent: null+          open_pr_counter: 5+          language: language+          repo_transfer:+            teams:+            - can_create_org_repo: true+              units_map:+                repo.code: read+                repo.ext_issues: none+                repo.ext_wiki: none+                repo.issues: write+                repo.projects: none+                repo.pulls: owner+                repo.releases: none+                repo.wiki: admin+              organization:+                website: website+                full_name: full_name+                repo_admin_change_team_access: true+                avatar_url: avatar_url+                visibility: visibility+                name: name+                description: description+                location: location+                id: 0+                username: username+              name: name+              description: description+              permission: none+              id: 2+              includes_all_repositories: true+              units:+              - repo.code+              - repo.issues+              - repo.ext_issues+              - repo.wiki+              - repo.pulls+              - repo.releases+              - repo.projects+              - repo.ext_wiki+            - can_create_org_repo: true+              units_map:+                repo.code: read+                repo.ext_issues: none+                repo.ext_wiki: none+                repo.issues: write+                repo.projects: none+                repo.pulls: owner+                repo.releases: none+                repo.wiki: admin+              organization:+                website: website+                full_name: full_name+                repo_admin_change_team_access: true+                avatar_url: avatar_url+                visibility: visibility+                name: name+                description: description+                location: location+                id: 0+                username: username+              name: name+              description: description+              permission: none+              id: 2+              includes_all_repositories: true+              units:+              - repo.code+              - repo.issues+              - repo.ext_issues+              - repo.wiki+              - repo.pulls+              - repo.releases+              - repo.projects+              - repo.ext_wiki+            doer:+              website: website+              visibility: visibility+              created: 2000-01-23T04:56:07.000+00:00+              last_login: 2000-01-23T04:56:07.000+00:00+              active: true+              description: description+              language: language+              starred_repos_count: 5+              login: login+              is_admin: true+              full_name: full_name+              login_name: empty+              avatar_url: avatar_url+              following_count: 6+              restricted: true+              followers_count: 0+              location: location+              id: 1+              prohibit_login: true+              email: email+            recipient:+              website: website+              visibility: visibility+              created: 2000-01-23T04:56:07.000+00:00+              last_login: 2000-01-23T04:56:07.000+00:00+              active: true+              description: description+              language: language+              starred_repos_count: 5+              login: login+              is_admin: true+              full_name: full_name+              login_name: empty+              avatar_url: avatar_url+              following_count: 6+              restricted: true+              followers_count: 0+              location: location+              id: 1+              prohibit_login: true+              email: email+          has_pull_requests: true+          empty: true+          permissions:+            pull: true+            admin: true+            push: true+          id: 6+          release_counter: 5+          default_delete_branch_after_merge: true+          ssh_url: ssh_url+          full_name: full_name+          size: 7+          languages_url: languages_url+          clone_url: clone_url+          html_url: html_url+          name: name+          default_branch: default_branch+          mirror_updated: 2000-01-23T04:56:07.000+00:00+          ignore_whitespace_conflicts: true+          template: true+          internal: true+          mirror: true+          private: true+          open_issues_count: 1+          link: link+          created_at: 2000-01-23T04:56:07.000+00:00+          default_allow_maintainer_edit: true+          description: description+          allow_rebase_update: true+          has_projects: true+          archived: true+          has_wiki: true+          updated_at: 2000-01-23T04:56:07.000+00:00+          allow_merge_commits: true+          stars_count: 9+          allow_rebase_explicit: true+          external_tracker:+            external_tracker_regexp_pattern: external_tracker_regexp_pattern+            external_tracker_style: external_tracker_style+            external_tracker_url: external_tracker_url+            external_tracker_format: external_tracker_format+          mirror_interval: mirror_interval+          owner:+            website: website+            visibility: visibility+            created: 2000-01-23T04:56:07.000+00:00+            last_login: 2000-01-23T04:56:07.000+00:00+            active: true+            description: description+            language: language+            starred_repos_count: 5+            login: login+            is_admin: true+            full_name: full_name+            login_name: empty+            avatar_url: avatar_url+            following_count: 6+            restricted: true+            followers_count: 0+            location: location+            id: 1+            prohibit_login: true+            email: email+          allow_squash_merge: true+          external_wiki:+            external_wiki_url: external_wiki_url+          website: website+          internal_tracker:+            enable_issue_dependencies: true+            allow_only_contributors_to_track_time: true+            enable_time_tracker: true+          has_issues: true+          allow_rebase: true+          default_merge_style: default_merge_style+          fork: true+          avatar_url: avatar_url+          original_url: original_url+          watchers_count: 3+          forks_count: 0+        - parent: null+          open_pr_counter: 5+          language: language+          repo_transfer:+            teams:+            - can_create_org_repo: true+              units_map:+                repo.code: read+                repo.ext_issues: none+                repo.ext_wiki: none+                repo.issues: write+                repo.projects: none+                repo.pulls: owner+                repo.releases: none+                repo.wiki: admin+              organization:+                website: website+                full_name: full_name+                repo_admin_change_team_access: true+                avatar_url: avatar_url+                visibility: visibility+                name: name+                description: description+                location: location+                id: 0+                username: username+              name: name+              description: description+              permission: none+              id: 2+              includes_all_repositories: true+              units:+              - repo.code+              - repo.issues+              - repo.ext_issues+              - repo.wiki+              - repo.pulls+              - repo.releases+              - repo.projects+              - repo.ext_wiki+            - can_create_org_repo: true+              units_map:+                repo.code: read+                repo.ext_issues: none+                repo.ext_wiki: none+                repo.issues: write+                repo.projects: none+                repo.pulls: owner+                repo.releases: none+                repo.wiki: admin+              organization:+                website: website+                full_name: full_name+                repo_admin_change_team_access: true+                avatar_url: avatar_url+                visibility: visibility+                name: name+                description: description+                location: location+                id: 0+                username: username+              name: name+              description: description+              permission: none+              id: 2+              includes_all_repositories: true+              units:+              - repo.code+              - repo.issues+              - repo.ext_issues+              - repo.wiki+              - repo.pulls+              - repo.releases+              - repo.projects+              - repo.ext_wiki+            doer:+              website: website+              visibility: visibility+              created: 2000-01-23T04:56:07.000+00:00+              last_login: 2000-01-23T04:56:07.000+00:00+              active: true+              description: description+              language: language+              starred_repos_count: 5+              login: login+              is_admin: true+              full_name: full_name+              login_name: empty+              avatar_url: avatar_url+              following_count: 6+              restricted: true+              followers_count: 0+              location: location+              id: 1+              prohibit_login: true+              email: email+            recipient:+              website: website+              visibility: visibility+              created: 2000-01-23T04:56:07.000+00:00+              last_login: 2000-01-23T04:56:07.000+00:00+              active: true+              description: description+              language: language+              starred_repos_count: 5+              login: login+              is_admin: true+              full_name: full_name+              login_name: empty+              avatar_url: avatar_url+              following_count: 6+              restricted: true+              followers_count: 0+              location: location+              id: 1+              prohibit_login: true+              email: email+          has_pull_requests: true+          empty: true+          permissions:+            pull: true+            admin: true+            push: true+          id: 6+          release_counter: 5+          default_delete_branch_after_merge: true+          ssh_url: ssh_url+          full_name: full_name+          size: 7+          languages_url: languages_url+          clone_url: clone_url+          html_url: html_url+          name: name+          default_branch: default_branch+          mirror_updated: 2000-01-23T04:56:07.000+00:00+          ignore_whitespace_conflicts: true+          template: true+          internal: true+          mirror: true+          private: true+          open_issues_count: 1+          link: link+          created_at: 2000-01-23T04:56:07.000+00:00+          default_allow_maintainer_edit: true+          description: description+          allow_rebase_update: true+          has_projects: true+          archived: true+          has_wiki: true+          updated_at: 2000-01-23T04:56:07.000+00:00+          allow_merge_commits: true+          stars_count: 9+          allow_rebase_explicit: true+          external_tracker:+            external_tracker_regexp_pattern: external_tracker_regexp_pattern+            external_tracker_style: external_tracker_style+            external_tracker_url: external_tracker_url+            external_tracker_format: external_tracker_format+          mirror_interval: mirror_interval+          owner:+            website: website+            visibility: visibility+            created: 2000-01-23T04:56:07.000+00:00+            last_login: 2000-01-23T04:56:07.000+00:00+            active: true+            description: description+            language: language+            starred_repos_count: 5+            login: login+            is_admin: true+            full_name: full_name+            login_name: empty+            avatar_url: avatar_url+            following_count: 6+            restricted: true+            followers_count: 0+            location: location+            id: 1+            prohibit_login: true+            email: email+          allow_squash_merge: true+          external_wiki:+            external_wiki_url: external_wiki_url+          website: website+          internal_tracker:+            enable_issue_dependencies: true+            allow_only_contributors_to_track_time: true+            enable_time_tracker: true+          has_issues: true+          allow_rebase: true+          default_merge_style: default_merge_style+          fork: true+          avatar_url: avatar_url+          original_url: original_url+          watchers_count: 3+          forks_count: 0+        ok: true+      properties:+        data:+          items:+            $ref: '#/components/schemas/Repository'+          type: array+          x-go-name: Data+        ok:+          type: boolean+          x-go-name: OK+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    ServerVersion:+      description: ServerVersion wraps the version of the server+      example:+        version: version+      properties:+        version:+          type: string+          x-go-name: Version+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    StateType:+      description: StateType issue state type+      type: string+      x-go-package: code.gitea.io/gitea/modules/structs+    StopWatch:+      description: StopWatch represent a running stopwatch+      example:+        duration: duration+        seconds: 6+        issue_index: 0+        created: 2000-01-23T04:56:07.000+00:00+        repo_owner_name: repo_owner_name+        issue_title: issue_title+        repo_name: repo_name+      properties:+        created:+          format: date-time+          type: string+          x-go-name: Created+        duration:+          type: string+          x-go-name: Duration+        issue_index:+          format: int64+          type: integer+          x-go-name: IssueIndex+        issue_title:+          type: string+          x-go-name: IssueTitle+        repo_name:+          type: string+          x-go-name: RepoName+        repo_owner_name:+          type: string+          x-go-name: RepoOwnerName+        seconds:+          format: int64+          type: integer+          x-go-name: Seconds+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    SubmitPullReviewOptions:+      description: SubmitPullReviewOptions are options to submit a pending pull review+      example:+        body: body+        event: event+      properties:+        body:+          type: string+          x-go-name: Body+        event:+          description: ReviewStateType review state type+          type: string+          x-go-package: code.gitea.io/gitea/modules/structs+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    Tag:+      description: Tag represents a repository tag+      example:+        zipball_url: zipball_url+        commit:+          created: 2000-01-23T04:56:07.000+00:00+          sha: sha+          url: url+        name: name+        id: id+        message: message+        tarball_url: tarball_url+      properties:+        commit:+          $ref: '#/components/schemas/CommitMeta'+        id:+          type: string+          x-go-name: ID+        message:+          type: string+          x-go-name: Message+        name:+          type: string+          x-go-name: Name+        tarball_url:+          type: string+          x-go-name: TarballURL+        zipball_url:+          type: string+          x-go-name: ZipballURL+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    Team:+      description: Team represents a team in an organization+      example:+        can_create_org_repo: true+        units_map:+          repo.code: read+          repo.ext_issues: none+          repo.ext_wiki: none+          repo.issues: write+          repo.projects: none+          repo.pulls: owner+          repo.releases: none+          repo.wiki: admin+        organization:+          website: website+          full_name: full_name+          repo_admin_change_team_access: true+          avatar_url: avatar_url+          visibility: visibility+          name: name+          description: description+          location: location+          id: 0+          username: username+        name: name+        description: description+        permission: none+        id: 2+        includes_all_repositories: true+        units:+        - repo.code+        - repo.issues+        - repo.ext_issues+        - repo.wiki+        - repo.pulls+        - repo.releases+        - repo.projects+        - repo.ext_wiki+      properties:+        can_create_org_repo:+          type: boolean+          x-go-name: CanCreateOrgRepo+        description:+          type: string+          x-go-name: Description+        id:+          format: int64+          type: integer+          x-go-name: ID+        includes_all_repositories:+          type: boolean+          x-go-name: IncludesAllRepositories+        name:+          type: string+          x-go-name: Name+        organization:+          $ref: '#/components/schemas/Organization'+        permission:+          enum:+          - none+          - read+          - write+          - admin+          - owner+          type: string+          x-go-name: Permission+        units:+          example:+          - repo.code+          - repo.issues+          - repo.ext_issues+          - repo.wiki+          - repo.pulls+          - repo.releases+          - repo.projects+          - repo.ext_wiki+          items:+            type: string+          type: array+          x-go-name: Units+        units_map:+          additionalProperties:+            type: string+          example:+            repo.code: read+            repo.ext_issues: none+            repo.ext_wiki: none+            repo.issues: write+            repo.projects: none+            repo.pulls: owner+            repo.releases: none+            repo.wiki: admin+          type: object+          x-go-name: UnitsMap+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    TimeStamp:+      description: TimeStamp defines a timestamp+      format: int64+      type: integer+      x-go-package: code.gitea.io/gitea/modules/timeutil+    TimelineComment:+      description: TimelineComment represents a timeline comment (comment of any type)+        on a commit or issue+      example:+        issue_url: issue_url+        review_id: 5+        ref_commit_sha: ref_commit_sha+        old_milestone:+          closed_at: 2000-01-23T04:56:07.000+00:00+          updated_at: 2000-01-23T04:56:07.000+00:00+          created_at: 2000-01-23T04:56:07.000+00:00+          description: description+          id: 7+          state: state+          closed_issues: 2+          open_issues: 9+          title: title+          due_on: 2000-01-23T04:56:07.000+00:00+        ref_issue:+          is_locked: true+          pull_request:+            merged_at: 2000-01-23T04:56:07.000+00:00+            merged: true+          closed_at: 2000-01-23T04:56:07.000+00:00+          comments: 5+          original_author_id: 2+          due_date: 2000-01-23T04:56:07.000+00:00+          assignees:+          - website: website+            visibility: visibility+            created: 2000-01-23T04:56:07.000+00:00+            last_login: 2000-01-23T04:56:07.000+00:00+            active: true+            description: description+            language: language+            starred_repos_count: 5+            login: login+            is_admin: true+            full_name: full_name+            login_name: empty+            avatar_url: avatar_url+            following_count: 6+            restricted: true+            followers_count: 0+            location: location+            id: 1+            prohibit_login: true+            email: email+          - website: website+            visibility: visibility+            created: 2000-01-23T04:56:07.000+00:00+            last_login: 2000-01-23T04:56:07.000+00:00+            active: true+            description: description+            language: language+            starred_repos_count: 5+            login: login+            is_admin: true+            full_name: full_name+            login_name: empty+            avatar_url: avatar_url+            following_count: 6+            restricted: true+            followers_count: 0+            location: location+            id: 1+            prohibit_login: true+            email: email+          created_at: 2000-01-23T04:56:07.000+00:00+          body: body+          repository:+            owner: owner+            full_name: full_name+            name: name+            id: 4+          title: title+          url: url+          labels:+          - color: 00aabb+            name: name+            description: description+            exclusive: false+            id: 0+            url: url+          - color: 00aabb+            name: name+            description: description+            exclusive: false+            id: 0+            url: url+          number: 3+          ref: ref+          assets:+          - size: 1+            name: name+            created_at: 2000-01-23T04:56:07.000+00:00+            browser_download_url: browser_download_url+            id: 6+            uuid: uuid+            download_count: 0+          - size: 1+            name: name+            created_at: 2000-01-23T04:56:07.000+00:00+            browser_download_url: browser_download_url+            id: 6+            uuid: uuid+            download_count: 0+          milestone:+            closed_at: 2000-01-23T04:56:07.000+00:00+            updated_at: 2000-01-23T04:56:07.000+00:00+            created_at: 2000-01-23T04:56:07.000+00:00+            description: description+            id: 7+            state: state+            closed_issues: 2+            open_issues: 9+            title: title+            due_on: 2000-01-23T04:56:07.000+00:00+          updated_at: 2000-01-23T04:56:07.000+00:00+          html_url: html_url+          assignee:+            website: website+            visibility: visibility+            created: 2000-01-23T04:56:07.000+00:00+            last_login: 2000-01-23T04:56:07.000+00:00+            active: true+            description: description+            language: language+            starred_repos_count: 5+            login: login+            is_admin: true+            full_name: full_name+            login_name: empty+            avatar_url: avatar_url+            following_count: 6+            restricted: true+            followers_count: 0+            location: location+            id: 1+            prohibit_login: true+            email: email+          id: 5+          state: state+          original_author: original_author+          user:+            website: website+            visibility: visibility+            created: 2000-01-23T04:56:07.000+00:00+            last_login: 2000-01-23T04:56:07.000+00:00+            active: true+            description: description+            language: language+            starred_repos_count: 5+            login: login+            is_admin: true+            full_name: full_name+            login_name: empty+            avatar_url: avatar_url+            following_count: 6+            restricted: true+            followers_count: 0+            location: location+            id: 1+            prohibit_login: true+            email: email+        created_at: 2000-01-23T04:56:07.000+00:00+        old_title: old_title+        resolve_doer:+          website: website+          visibility: visibility+          created: 2000-01-23T04:56:07.000+00:00+          last_login: 2000-01-23T04:56:07.000+00:00+          active: true+          description: description+          language: language+          starred_repos_count: 5+          login: login+          is_admin: true+          full_name: full_name+          login_name: empty+          avatar_url: avatar_url+          following_count: 6+          restricted: true+          followers_count: 0+          location: location+          id: 1+          prohibit_login: true+          email: email+        body: body+        type: type+        new_title: new_title+        old_project_id: 6+        updated_at: 2000-01-23T04:56:07.000+00:00+        project_id: 1+        dependent_issue:+          is_locked: true+          pull_request:+            merged_at: 2000-01-23T04:56:07.000+00:00+            merged: true+          closed_at: 2000-01-23T04:56:07.000+00:00+          comments: 5+          original_author_id: 2+          due_date: 2000-01-23T04:56:07.000+00:00+          assignees:+          - website: website+            visibility: visibility+            created: 2000-01-23T04:56:07.000+00:00+            last_login: 2000-01-23T04:56:07.000+00:00+            active: true+            description: description+            language: language+            starred_repos_count: 5+            login: login+            is_admin: true+            full_name: full_name+            login_name: empty+            avatar_url: avatar_url+            following_count: 6+            restricted: true+            followers_count: 0+            location: location+            id: 1+            prohibit_login: true+            email: email+          - website: website+            visibility: visibility+            created: 2000-01-23T04:56:07.000+00:00+            last_login: 2000-01-23T04:56:07.000+00:00+            active: true+            description: description+            language: language+            starred_repos_count: 5+            login: login+            is_admin: true+            full_name: full_name+            login_name: empty+            avatar_url: avatar_url+            following_count: 6+            restricted: true+            followers_count: 0+            location: location+            id: 1+            prohibit_login: true+            email: email+          created_at: 2000-01-23T04:56:07.000+00:00+          body: body+          repository:+            owner: owner+            full_name: full_name+            name: name+            id: 4+          title: title+          url: url+          labels:+          - color: 00aabb+            name: name+            description: description+            exclusive: false+            id: 0+            url: url+          - color: 00aabb+            name: name+            description: description+            exclusive: false+            id: 0+            url: url+          number: 3+          ref: ref+          assets:+          - size: 1+            name: name+            created_at: 2000-01-23T04:56:07.000+00:00+            browser_download_url: browser_download_url+            id: 6+            uuid: uuid+            download_count: 0+          - size: 1+            name: name+            created_at: 2000-01-23T04:56:07.000+00:00+            browser_download_url: browser_download_url+            id: 6+            uuid: uuid+            download_count: 0+          milestone:+            closed_at: 2000-01-23T04:56:07.000+00:00+            updated_at: 2000-01-23T04:56:07.000+00:00+            created_at: 2000-01-23T04:56:07.000+00:00+            description: description+            id: 7+            state: state+            closed_issues: 2+            open_issues: 9+            title: title+            due_on: 2000-01-23T04:56:07.000+00:00+          updated_at: 2000-01-23T04:56:07.000+00:00+          html_url: html_url+          assignee:+            website: website+            visibility: visibility+            created: 2000-01-23T04:56:07.000+00:00+            last_login: 2000-01-23T04:56:07.000+00:00+            active: true+            description: description+            language: language+            starred_repos_count: 5+            login: login+            is_admin: true+            full_name: full_name+            login_name: empty+            avatar_url: avatar_url+            following_count: 6+            restricted: true+            followers_count: 0+            location: location+            id: 1+            prohibit_login: true+            email: email+          id: 5+          state: state+          original_author: original_author+          user:+            website: website+            visibility: visibility+            created: 2000-01-23T04:56:07.000+00:00+            last_login: 2000-01-23T04:56:07.000+00:00+            active: true+            description: description+            language: language+            starred_repos_count: 5+            login: login+            is_admin: true+            full_name: full_name+            login_name: empty+            avatar_url: avatar_url+            following_count: 6+            restricted: true+            followers_count: 0+            location: location+            id: 1+            prohibit_login: true+            email: email+        id: 0+        removed_assignee: true+        tracked_time:+          issue:+            is_locked: true+            pull_request:+              merged_at: 2000-01-23T04:56:07.000+00:00+              merged: true+            closed_at: 2000-01-23T04:56:07.000+00:00+            comments: 5+            original_author_id: 2+            due_date: 2000-01-23T04:56:07.000+00:00+            assignees:+            - website: website+              visibility: visibility+              created: 2000-01-23T04:56:07.000+00:00+              last_login: 2000-01-23T04:56:07.000+00:00+              active: true+              description: description+              language: language+              starred_repos_count: 5+              login: login+              is_admin: true+              full_name: full_name+              login_name: empty+              avatar_url: avatar_url+              following_count: 6+              restricted: true+              followers_count: 0+              location: location+              id: 1+              prohibit_login: true+              email: email+            - website: website+              visibility: visibility+              created: 2000-01-23T04:56:07.000+00:00+              last_login: 2000-01-23T04:56:07.000+00:00+              active: true+              description: description+              language: language+              starred_repos_count: 5+              login: login+              is_admin: true+              full_name: full_name+              login_name: empty+              avatar_url: avatar_url+              following_count: 6+              restricted: true+              followers_count: 0+              location: location+              id: 1+              prohibit_login: true+              email: email+            created_at: 2000-01-23T04:56:07.000+00:00+            body: body+            repository:+              owner: owner+              full_name: full_name+              name: name+              id: 4+            title: title+            url: url+            labels:+            - color: 00aabb+              name: name+              description: description+              exclusive: false+              id: 0+              url: url+            - color: 00aabb+              name: name+              description: description+              exclusive: false+              id: 0+              url: url+            number: 3+            ref: ref+            assets:+            - size: 1+              name: name+              created_at: 2000-01-23T04:56:07.000+00:00+              browser_download_url: browser_download_url+              id: 6+              uuid: uuid+              download_count: 0+            - size: 1+              name: name+              created_at: 2000-01-23T04:56:07.000+00:00+              browser_download_url: browser_download_url+              id: 6+              uuid: uuid+              download_count: 0+            milestone:+              closed_at: 2000-01-23T04:56:07.000+00:00+              updated_at: 2000-01-23T04:56:07.000+00:00+              created_at: 2000-01-23T04:56:07.000+00:00+              description: description+              id: 7+              state: state+              closed_issues: 2+              open_issues: 9+              title: title+              due_on: 2000-01-23T04:56:07.000+00:00+            updated_at: 2000-01-23T04:56:07.000+00:00+            html_url: html_url+            assignee:+              website: website+              visibility: visibility+              created: 2000-01-23T04:56:07.000+00:00+              last_login: 2000-01-23T04:56:07.000+00:00+              active: true+              description: description+              language: language+              starred_repos_count: 5+              login: login+              is_admin: true+              full_name: full_name+              login_name: empty+              avatar_url: avatar_url+              following_count: 6+              restricted: true+              followers_count: 0+              location: location+              id: 1+              prohibit_login: true+              email: email+            id: 5+            state: state+            original_author: original_author+            user:+              website: website+              visibility: visibility+              created: 2000-01-23T04:56:07.000+00:00+              last_login: 2000-01-23T04:56:07.000+00:00+              active: true+              description: description+              language: language+              starred_repos_count: 5+              login: login+              is_admin: true+              full_name: full_name+              login_name: empty+              avatar_url: avatar_url+              following_count: 6+              restricted: true+              followers_count: 0+              location: location+              id: 1+              prohibit_login: true+              email: email+          issue_id: 2+          user_id: 9+          created: 2000-01-23T04:56:07.000+00:00+          user_name: user_name+          id: 5+          time: 7+        ref_action: ref_action+        label:+          color: 00aabb+          name: name+          description: description+          exclusive: false+          id: 0+          url: url+        pull_request_url: pull_request_url+        milestone:+          closed_at: 2000-01-23T04:56:07.000+00:00+          updated_at: 2000-01-23T04:56:07.000+00:00+          created_at: 2000-01-23T04:56:07.000+00:00+          description: description+          id: 7+          state: state+          closed_issues: 2+          open_issues: 9+          title: title+          due_on: 2000-01-23T04:56:07.000+00:00+        new_ref: new_ref+        assignee_team:+          can_create_org_repo: true+          units_map:+            repo.code: read+            repo.ext_issues: none+            repo.ext_wiki: none+            repo.issues: write+            repo.projects: none+            repo.pulls: owner+            repo.releases: none+            repo.wiki: admin+          organization:+            website: website+            full_name: full_name+            repo_admin_change_team_access: true+            avatar_url: avatar_url+            visibility: visibility+            name: name+            description: description+            location: location+            id: 0+            username: username+          name: name+          description: description+          permission: none+          id: 2+          includes_all_repositories: true+          units:+          - repo.code+          - repo.issues+          - repo.ext_issues+          - repo.wiki+          - repo.pulls+          - repo.releases+          - repo.projects+          - repo.ext_wiki+        old_ref: old_ref+        html_url: html_url+        ref_comment:+          issue_url: issue_url+          assets:+          - size: 1+            name: name+            created_at: 2000-01-23T04:56:07.000+00:00+            browser_download_url: browser_download_url+            id: 6+            uuid: uuid+            download_count: 0+          - size: 1+            name: name+            created_at: 2000-01-23T04:56:07.000+00:00+            browser_download_url: browser_download_url+            id: 6+            uuid: uuid+            download_count: 0+          updated_at: 2000-01-23T04:56:07.000+00:00+          html_url: html_url+          original_author_id: 6+          created_at: 2000-01-23T04:56:07.000+00:00+          id: 0+          pull_request_url: pull_request_url+          body: body+          original_author: original_author+          user:+            website: website+            visibility: visibility+            created: 2000-01-23T04:56:07.000+00:00+            last_login: 2000-01-23T04:56:07.000+00:00+            active: true+            description: description+            language: language+            starred_repos_count: 5+            login: login+            is_admin: true+            full_name: full_name+            login_name: empty+            avatar_url: avatar_url+            following_count: 6+            restricted: true+            followers_count: 0+            location: location+            id: 1+            prohibit_login: true+            email: email+        assignee:+          website: website+          visibility: visibility+          created: 2000-01-23T04:56:07.000+00:00+          last_login: 2000-01-23T04:56:07.000+00:00+          active: true+          description: description+          language: language+          starred_repos_count: 5+          login: login+          is_admin: true+          full_name: full_name+          login_name: empty+          avatar_url: avatar_url+          following_count: 6+          restricted: true+          followers_count: 0+          location: location+          id: 1+          prohibit_login: true+          email: email+        user:+          website: website+          visibility: visibility+          created: 2000-01-23T04:56:07.000+00:00+          last_login: 2000-01-23T04:56:07.000+00:00+          active: true+          description: description+          language: language+          starred_repos_count: 5+          login: login+          is_admin: true+          full_name: full_name+          login_name: empty+          avatar_url: avatar_url+          following_count: 6+          restricted: true+          followers_count: 0+          location: location+          id: 1+          prohibit_login: true+          email: email+      properties:+        assignee:+          $ref: '#/components/schemas/User'+        assignee_team:+          $ref: '#/components/schemas/Team'+        body:+          type: string+          x-go-name: Body+        created_at:+          format: date-time+          type: string+          x-go-name: Created+        dependent_issue:+          $ref: '#/components/schemas/Issue'+        html_url:+          type: string+          x-go-name: HTMLURL+        id:+          format: int64+          type: integer+          x-go-name: ID+        issue_url:+          type: string+          x-go-name: IssueURL+        label:+          $ref: '#/components/schemas/Label'+        milestone:+          $ref: '#/components/schemas/Milestone'+        new_ref:+          type: string+          x-go-name: NewRef+        new_title:+          type: string+          x-go-name: NewTitle+        old_milestone:+          $ref: '#/components/schemas/Milestone'+        old_project_id:+          format: int64+          type: integer+          x-go-name: OldProjectID+        old_ref:+          type: string+          x-go-name: OldRef+        old_title:+          type: string+          x-go-name: OldTitle+        project_id:+          format: int64+          type: integer+          x-go-name: ProjectID+        pull_request_url:+          type: string+          x-go-name: PRURL+        ref_action:+          type: string+          x-go-name: RefAction+        ref_comment:+          $ref: '#/components/schemas/Comment'+        ref_commit_sha:+          description: commit SHA where issue/PR was referenced+          type: string+          x-go-name: RefCommitSHA+        ref_issue:+          $ref: '#/components/schemas/Issue'+        removed_assignee:+          description: whether the assignees were removed or added+          type: boolean+          x-go-name: RemovedAssignee+        resolve_doer:+          $ref: '#/components/schemas/User'+        review_id:+          format: int64+          type: integer+          x-go-name: ReviewID+        tracked_time:+          $ref: '#/components/schemas/TrackedTime'+        type:+          type: string+          x-go-name: Type+        updated_at:+          format: date-time+          type: string+          x-go-name: Updated+        user:+          $ref: '#/components/schemas/User'+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    TopicName:+      description: TopicName a list of repo topic names+      example:+        topics:+        - topics+        - topics+      properties:+        topics:+          items:+            type: string+          type: array+          x-go-name: TopicNames+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    TopicResponse:+      description: TopicResponse for returning topics+      example:+        created: 2000-01-23T04:56:07.000+00:00+        topic_name: topic_name+        id: 0+        repo_count: 6+        updated: 2000-01-23T04:56:07.000+00:00+      properties:+        created:+          format: date-time+          type: string+          x-go-name: Created+        id:+          format: int64+          type: integer+          x-go-name: ID+        repo_count:+          format: int64+          type: integer+          x-go-name: RepoCount+        topic_name:+          type: string+          x-go-name: Name+        updated:+          format: date-time+          type: string+          x-go-name: Updated+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    TrackedTime:+      description: TrackedTime worked time for an issue / pr+      example:+        issue:+          is_locked: true+          pull_request:+            merged_at: 2000-01-23T04:56:07.000+00:00+            merged: true+          closed_at: 2000-01-23T04:56:07.000+00:00+          comments: 5+          original_author_id: 2+          due_date: 2000-01-23T04:56:07.000+00:00+          assignees:+          - website: website+            visibility: visibility+            created: 2000-01-23T04:56:07.000+00:00+            last_login: 2000-01-23T04:56:07.000+00:00+            active: true+            description: description+            language: language+            starred_repos_count: 5+            login: login+            is_admin: true+            full_name: full_name+            login_name: empty+            avatar_url: avatar_url+            following_count: 6+            restricted: true+            followers_count: 0+            location: location+            id: 1+            prohibit_login: true+            email: email+          - website: website+            visibility: visibility+            created: 2000-01-23T04:56:07.000+00:00+            last_login: 2000-01-23T04:56:07.000+00:00+            active: true+            description: description+            language: language+            starred_repos_count: 5+            login: login+            is_admin: true+            full_name: full_name+            login_name: empty+            avatar_url: avatar_url+            following_count: 6+            restricted: true+            followers_count: 0+            location: location+            id: 1+            prohibit_login: true+            email: email+          created_at: 2000-01-23T04:56:07.000+00:00+          body: body+          repository:+            owner: owner+            full_name: full_name+            name: name+            id: 4+          title: title+          url: url+          labels:+          - color: 00aabb+            name: name+            description: description+            exclusive: false+            id: 0+            url: url+          - color: 00aabb+            name: name+            description: description+            exclusive: false+            id: 0+            url: url+          number: 3+          ref: ref+          assets:+          - size: 1+            name: name+            created_at: 2000-01-23T04:56:07.000+00:00+            browser_download_url: browser_download_url+            id: 6+            uuid: uuid+            download_count: 0+          - size: 1+            name: name+            created_at: 2000-01-23T04:56:07.000+00:00+            browser_download_url: browser_download_url+            id: 6+            uuid: uuid+            download_count: 0+          milestone:+            closed_at: 2000-01-23T04:56:07.000+00:00+            updated_at: 2000-01-23T04:56:07.000+00:00+            created_at: 2000-01-23T04:56:07.000+00:00+            description: description+            id: 7+            state: state+            closed_issues: 2+            open_issues: 9+            title: title+            due_on: 2000-01-23T04:56:07.000+00:00+          updated_at: 2000-01-23T04:56:07.000+00:00+          html_url: html_url+          assignee:+            website: website+            visibility: visibility+            created: 2000-01-23T04:56:07.000+00:00+            last_login: 2000-01-23T04:56:07.000+00:00+            active: true+            description: description+            language: language+            starred_repos_count: 5+            login: login+            is_admin: true+            full_name: full_name+            login_name: empty+            avatar_url: avatar_url+            following_count: 6+            restricted: true+            followers_count: 0+            location: location+            id: 1+            prohibit_login: true+            email: email+          id: 5+          state: state+          original_author: original_author+          user:+            website: website+            visibility: visibility+            created: 2000-01-23T04:56:07.000+00:00+            last_login: 2000-01-23T04:56:07.000+00:00+            active: true+            description: description+            language: language+            starred_repos_count: 5+            login: login+            is_admin: true+            full_name: full_name+            login_name: empty+            avatar_url: avatar_url+            following_count: 6+            restricted: true+            followers_count: 0+            location: location+            id: 1+            prohibit_login: true+            email: email+        issue_id: 2+        user_id: 9+        created: 2000-01-23T04:56:07.000+00:00+        user_name: user_name+        id: 5+        time: 7+      properties:+        created:+          format: date-time+          type: string+          x-go-name: Created+        id:+          format: int64+          type: integer+          x-go-name: ID+        issue:+          $ref: '#/components/schemas/Issue'+        issue_id:+          description: deprecated (only for backwards compatibility)+          format: int64+          type: integer+          x-go-name: IssueID+        time:+          description: Time in seconds+          format: int64+          type: integer+          x-go-name: Time+        user_id:+          description: deprecated (only for backwards compatibility)+          format: int64+          type: integer+          x-go-name: UserID+        user_name:+          type: string+          x-go-name: UserName+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    TransferRepoOption:+      description: TransferRepoOption options when transfer a repository's ownership+      example:+        new_owner: new_owner+        team_ids:+        - 0+        - 0+      properties:+        new_owner:+          type: string+          x-go-name: NewOwner+        team_ids:+          description: ID of the team or teams to add to the repository. Teams can+            only be added to organization-owned repositories.+          items:+            format: int64+            type: integer+          type: array+          x-go-name: TeamIDs+      required:+      - new_owner+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    UpdateFileOptions:+      description: |-+        UpdateFileOptions options for updating files+        Note: `author` and `committer` are optional (if only one is given, it will be used for the other, otherwise the authenticated user will be used)+      example:+        committer:+          name: name+          email: email+        author:+          name: name+          email: email+        from_path: from_path+        new_branch: new_branch+        dates:+          committer: 2000-01-23T04:56:07.000+00:00+          author: 2000-01-23T04:56:07.000+00:00+        signoff: true+        message: message+        branch: branch+        sha: sha+        content: content+      properties:+        author:+          $ref: '#/components/schemas/Identity'+        branch:+          description: "branch (optional) to base this file from. if not given, the\+            \ default branch is used"+          type: string+          x-go-name: BranchName+        committer:+          $ref: '#/components/schemas/Identity'+        content:+          description: content must be base64 encoded+          type: string+          x-go-name: Content+        dates:+          $ref: '#/components/schemas/CommitDateOptions'+        from_path:+          description: from_path (optional) is the path of the original file which+            will be moved/renamed to the path in the URL+          type: string+          x-go-name: FromPath+        message:+          description: "message (optional) for the commit of this file. if not supplied,\+            \ a default message will be used"+          type: string+          x-go-name: Message+        new_branch:+          description: new_branch (optional) will make a new branch from `branch`+            before creating the file+          type: string+          x-go-name: NewBranchName+        sha:+          description: sha is the SHA for the file that already exists+          type: string+          x-go-name: SHA+        signoff:+          description: Add a Signed-off-by trailer by the committer at the end of+            the commit log message.+          type: boolean+          x-go-name: Signoff+      required:+      - content+      - sha+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    User:+      description: User represents a user+      example:+        website: website+        visibility: visibility+        created: 2000-01-23T04:56:07.000+00:00+        last_login: 2000-01-23T04:56:07.000+00:00+        active: true+        description: description+        language: language+        starred_repos_count: 5+        login: login+        is_admin: true+        full_name: full_name+        login_name: empty+        avatar_url: avatar_url+        following_count: 6+        restricted: true+        followers_count: 0+        location: location+        id: 1+        prohibit_login: true+        email: email+      properties:+        active:+          description: Is user active+          type: boolean+          x-go-name: IsActive+        avatar_url:+          description: URL to the user's avatar+          type: string+          x-go-name: AvatarURL+        created:+          format: date-time+          type: string+          x-go-name: Created+        description:+          description: the user's description+          type: string+          x-go-name: Description+        email:+          format: email+          type: string+          x-go-name: Email+        followers_count:+          description: user counts+          format: int64+          type: integer+          x-go-name: Followers+        following_count:+          format: int64+          type: integer+          x-go-name: Following+        full_name:+          description: the user's full name+          type: string+          x-go-name: FullName+        id:+          description: the user's id+          format: int64+          type: integer+          x-go-name: ID+        is_admin:+          description: Is the user an administrator+          type: boolean+          x-go-name: IsAdmin+        language:+          description: User locale+          type: string+          x-go-name: Language+        last_login:+          format: date-time+          type: string+          x-go-name: LastLogin+        location:+          description: the user's location+          type: string+          x-go-name: Location+        login:+          description: the user's username+          type: string+          x-go-name: UserName+        login_name:+          default: empty+          description: the user's authentication sign-in name.+          type: string+          x-go-name: LoginName+        prohibit_login:+          description: Is user login prohibited+          type: boolean+          x-go-name: ProhibitLogin+        restricted:+          description: Is user restricted+          type: boolean+          x-go-name: Restricted+        starred_repos_count:+          format: int64+          type: integer+          x-go-name: StarredRepos+        visibility:+          description: "User visibility level option: public, limited, private"+          type: string+          x-go-name: Visibility+        website:+          description: the user's website+          type: string+          x-go-name: Website+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    UserHeatmapData:+      description: UserHeatmapData represents the data needed to create a heatmap+      example:+        contributions: 0+        timestamp: 6+      properties:+        contributions:+          format: int64+          type: integer+          x-go-name: Contributions+        timestamp:+          description: TimeStamp defines a timestamp+          format: int64+          type: integer+          x-go-package: code.gitea.io/gitea/modules/timeutil+      type: object+      x-go-package: code.gitea.io/gitea/models/activities+    UserSettings:+      description: UserSettings represents user settings+      example:+        website: website+        full_name: full_name+        hide_activity: true+        diff_view_style: diff_view_style+        description: description+        language: language+        location: location+        theme: theme+        hide_email: true+      properties:+        description:+          type: string+          x-go-name: Description+        diff_view_style:+          type: string+          x-go-name: DiffViewStyle+        full_name:+          type: string+          x-go-name: FullName+        hide_activity:+          type: boolean+          x-go-name: HideActivity+        hide_email:+          description: Privacy+          type: boolean+          x-go-name: HideEmail+        language:+          type: string+          x-go-name: Language+        location:+          type: string+          x-go-name: Location+        theme:+          type: string+          x-go-name: Theme+        website:+          type: string+          x-go-name: Website+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    UserSettingsOptions:+      description: UserSettingsOptions represents options to change user settings+      example:+        website: website+        full_name: full_name+        hide_activity: true+        diff_view_style: diff_view_style+        description: description+        language: language+        location: location+        theme: theme+        hide_email: true+      properties:+        description:+          type: string+          x-go-name: Description+        diff_view_style:+          type: string+          x-go-name: DiffViewStyle+        full_name:+          type: string+          x-go-name: FullName+        hide_activity:+          type: boolean+          x-go-name: HideActivity+        hide_email:+          description: Privacy+          type: boolean+          x-go-name: HideEmail+        language:+          type: string+          x-go-name: Language+        location:+          type: string+          x-go-name: Location+        theme:+          type: string+          x-go-name: Theme+        website:+          type: string+          x-go-name: Website+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    WatchInfo:+      description: WatchInfo represents an API watch status of one repository+      example:+        ignored: true+        reason: "{}"+        subscribed: true+        created_at: 2000-01-23T04:56:07.000+00:00+        repository_url: repository_url+        url: url+      properties:+        created_at:+          format: date-time+          type: string+          x-go-name: CreatedAt+        ignored:+          type: boolean+          x-go-name: Ignored+        reason:+          type: object+          x-go-name: Reason+        repository_url:+          type: string+          x-go-name: RepositoryURL+        subscribed:+          type: boolean+          x-go-name: Subscribed+        url:+          type: string+          x-go-name: URL+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    WikiCommit:+      description: WikiCommit page commit/revision+      example:+        author:+          date: date+          name: name+          email: email+        message: message+        commiter:+          date: date+          name: name+          email: email+        sha: sha+      properties:+        author:+          $ref: '#/components/schemas/CommitUser'+        commiter:+          $ref: '#/components/schemas/CommitUser'+        message:+          type: string+          x-go-name: Message+        sha:+          type: string+          x-go-name: ID+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    WikiCommitList:+      description: WikiCommitList commit/revision list+      example:+        count: 0+        commits:+        - author:+            date: date+            name: name+            email: email+          message: message+          commiter:+            date: date+            name: name+            email: email+          sha: sha+        - author:+            date: date+            name: name+            email: email+          message: message+          commiter:+            date: date+            name: name+            email: email+          sha: sha+      properties:+        commits:+          items:+            $ref: '#/components/schemas/WikiCommit'+          type: array+          x-go-name: WikiCommits+        count:+          format: int64+          type: integer+          x-go-name: Count+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    WikiPage:+      description: WikiPage a wiki page+      example:+        commit_count: 0+        last_commit:+          author:+            date: date+            name: name+            email: email+          message: message+          commiter:+            date: date+            name: name+            email: email+          sha: sha+        footer: footer+        sub_url: sub_url+        sidebar: sidebar+        html_url: html_url+        content_base64: content_base64+        title: title+      properties:+        commit_count:+          format: int64+          type: integer+          x-go-name: CommitCount+        content_base64:+          description: "Page content, base64 encoded"+          type: string+          x-go-name: ContentBase64+        footer:+          type: string+          x-go-name: Footer+        html_url:+          type: string+          x-go-name: HTMLURL+        last_commit:+          $ref: '#/components/schemas/WikiCommit'+        sidebar:+          type: string+          x-go-name: Sidebar+        sub_url:+          type: string+          x-go-name: SubURL+        title:+          type: string+          x-go-name: Title+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    WikiPageMetaData:+      description: WikiPageMetaData wiki page meta information+      example:+        last_commit:+          author:+            date: date+            name: name+            email: email+          message: message+          commiter:+            date: date+            name: name+            email: email+          sha: sha+        sub_url: sub_url+        html_url: html_url+        title: title+      properties:+        html_url:+          type: string+          x-go-name: HTMLURL+        last_commit:+          $ref: '#/components/schemas/WikiCommit'+        sub_url:+          type: string+          x-go-name: SubURL+        title:+          type: string+          x-go-name: Title+      type: object+      x-go-package: code.gitea.io/gitea/modules/structs+    teamSearch_200_response:+      example:+        data:+        - can_create_org_repo: true+          units_map:+            repo.code: read+            repo.ext_issues: none+            repo.ext_wiki: none+            repo.issues: write+            repo.projects: none+            repo.pulls: owner+            repo.releases: none+            repo.wiki: admin+          organization:+            website: website+            full_name: full_name+            repo_admin_change_team_access: true+            avatar_url: avatar_url+            visibility: visibility+            name: name+            description: description+            location: location+            id: 0+            username: username+          name: name+          description: description+          permission: none+          id: 2+          includes_all_repositories: true+          units:+          - repo.code+          - repo.issues+          - repo.ext_issues+          - repo.wiki+          - repo.pulls+          - repo.releases+          - repo.projects+          - repo.ext_wiki+        - can_create_org_repo: true+          units_map:+            repo.code: read+            repo.ext_issues: none+            repo.ext_wiki: none+            repo.issues: write+            repo.projects: none+            repo.pulls: owner+            repo.releases: none+            repo.wiki: admin+          organization:+            website: website+            full_name: full_name+            repo_admin_change_team_access: true+            avatar_url: avatar_url+            visibility: visibility+            name: name+            description: description+            location: location+            id: 0+            username: username+          name: name+          description: description+          permission: none+          id: 2+          includes_all_repositories: true+          units:+          - repo.code+          - repo.issues+          - repo.ext_issues+          - repo.wiki+          - repo.pulls+          - repo.releases+          - repo.projects+          - repo.ext_wiki+        ok: true+      properties:+        data:+          items:+            $ref: '#/components/schemas/Team'+          type: array+        ok:+          type: boolean+      type: object+    issueCreateIssueCommentAttachment_request:+      properties:+        attachment:+          description: attachment to upload+          format: binary+          type: string+      required:+      - attachment+      type: object+    userSearch_200_response:+      example:+        data:+        - website: website+          visibility: visibility+          created: 2000-01-23T04:56:07.000+00:00+          last_login: 2000-01-23T04:56:07.000+00:00+          active: true+          description: description+          language: language+          starred_repos_count: 5+          login: login+          is_admin: true+          full_name: full_name+          login_name: empty+          avatar_url: avatar_url+          following_count: 6+          restricted: true+          followers_count: 0+          location: location+          id: 1+          prohibit_login: true+          email: email+        - website: website+          visibility: visibility+          created: 2000-01-23T04:56:07.000+00:00+          last_login: 2000-01-23T04:56:07.000+00:00+          active: true+          description: description+          language: language+          starred_repos_count: 5+          login: login+          is_admin: true+          full_name: full_name+          login_name: empty+          avatar_url: avatar_url+          following_count: 6+          restricted: true+          followers_count: 0+          location: location+          id: 1+          prohibit_login: true+          email: email+        ok: true+      properties:+        data:+          items:+            $ref: '#/components/schemas/User'+          type: array+        ok:+          type: boolean+      type: object+  securitySchemes:+    AccessToken:+      in: query+      name: access_token+      type: apiKey+    AuthorizationHeaderToken:+      description: API tokens must be prepended with "token" followed by a space.+      in: header+      name: Authorization+      type: apiKey+    BasicAuth:+      scheme: basic+      type: http+    SudoHeader:+      description: Sudo API request as the user provided as the key. Admin privileges+        are required.+      in: header+      name: Sudo+      type: apiKey+    SudoParam:+      description: Sudo API request as the user provided as the key. Admin privileges+        are required.+      in: query+      name: sudo+      type: apiKey+    TOTPHeader:+      description: Must be used in combination with BasicAuth if two-factor authentication+        is enabled.+      in: header+      name: X-GITEA-OTP+      type: apiKey+    Token:+      in: query+      name: token+      type: apiKey+x-original-swagger-version: "2.0"
+ tests/ApproxEq.hs view
@@ -0,0 +1,81 @@+{-# LANGUAGE DefaultSignatures #-}+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE TypeOperators #-}+{-# OPTIONS_GHC -fno-warn-orphans #-}++module ApproxEq where++import Data.Text (Text)+import Data.Time.Clock+import Test.QuickCheck+import GHC.Generics as G++(==~)+  :: (ApproxEq a, Show a)+  => a -> a -> Property+a ==~ b = counterexample (show a ++ " !=~ " ++ show b) (a =~ b)++class GApproxEq f  where+  gApproxEq :: f a -> f a -> Bool++instance GApproxEq U1 where+  gApproxEq U1 U1 = True++instance (GApproxEq a, GApproxEq b) =>+         GApproxEq (a :+: b) where+  gApproxEq (L1 a) (L1 b) = gApproxEq a b+  gApproxEq (R1 a) (R1 b) = gApproxEq a b+  gApproxEq _ _ = False++instance (GApproxEq a, GApproxEq b) =>+         GApproxEq (a :*: b) where+  gApproxEq (a1 :*: b1) (a2 :*: b2) = gApproxEq a1 a2 && gApproxEq b1 b2++instance (ApproxEq a) =>+         GApproxEq (K1 i a) where+  gApproxEq (K1 a) (K1 b) = a =~ b++instance (GApproxEq f) =>+         GApproxEq (M1 i t f) where+  gApproxEq (M1 a) (M1 b) = gApproxEq a b++class ApproxEq a  where+  (=~) :: a -> a -> Bool+  default (=~) :: (Generic a, GApproxEq (Rep a)) => a -> a -> Bool+  a =~ b = gApproxEq (G.from a) (G.from b)++instance ApproxEq Text where+  (=~) = (==)++instance ApproxEq Char where+  (=~) = (==)++instance ApproxEq Bool where+  (=~) = (==)++instance ApproxEq Int where+  (=~) = (==)++instance ApproxEq Double where+  (=~) = (==)++instance ApproxEq a =>+         ApproxEq (Maybe a)++instance ApproxEq UTCTime where+  (=~) = (==)++instance ApproxEq a =>+         ApproxEq [a] where+  as =~ bs = and (zipWith (=~) as bs)++instance (ApproxEq l, ApproxEq r) =>+         ApproxEq (Either l r) where+  Left a =~ Left b = a =~ b+  Right a =~ Right b = a =~ b+  _ =~ _ = False++instance (ApproxEq l, ApproxEq r) =>+         ApproxEq (l, r) where+  (=~) (l1, r1) (l2, r2) = l1 =~ l2 && r1 =~ r2
+ tests/Instances.hs view
@@ -0,0 +1,2314 @@+{-# LANGUAGE CPP #-}+{-# OPTIONS_GHC -fno-warn-unused-imports -fno-warn-unused-matches #-}++module Instances where++import Gitea.Model+import Gitea.Core++import qualified Data.Aeson as A+import qualified Data.ByteString.Lazy as BL+import qualified Data.HashMap.Strict as HM+import qualified Data.Set as Set+import qualified Data.Text as T+import qualified Data.Time as TI+import qualified Data.Vector as V+import Data.String (fromString)++import Control.Monad+import Data.Char (isSpace)+import Data.List (sort)+import Test.QuickCheck++import ApproxEq++instance Arbitrary T.Text where+  arbitrary = T.pack <$> arbitrary++instance Arbitrary TI.Day where+  arbitrary = TI.ModifiedJulianDay . (2000 +) <$> arbitrary+  shrink = (TI.ModifiedJulianDay <$>) . shrink . TI.toModifiedJulianDay++instance Arbitrary TI.UTCTime where+  arbitrary =+    TI.UTCTime <$> arbitrary <*> (TI.secondsToDiffTime <$> choose (0, 86401))++instance Arbitrary BL.ByteString where+    arbitrary = BL.pack <$> arbitrary+    shrink xs = BL.pack <$> shrink (BL.unpack xs)++instance Arbitrary ByteArray where+    arbitrary = ByteArray <$> arbitrary+    shrink (ByteArray xs) = ByteArray <$> shrink xs++instance Arbitrary Binary where+    arbitrary = Binary <$> arbitrary+    shrink (Binary xs) = Binary <$> shrink xs++instance Arbitrary DateTime where+    arbitrary = DateTime <$> arbitrary+    shrink (DateTime xs) = DateTime <$> shrink xs++instance Arbitrary Date where+    arbitrary = Date <$> arbitrary+    shrink (Date xs) = Date <$> shrink xs++#if MIN_VERSION_aeson(2,0,0)+#else+-- | A naive Arbitrary instance for A.Value:+instance Arbitrary A.Value where+  arbitrary = arbitraryValue+#endif++arbitraryValue :: Gen A.Value+arbitraryValue =+  frequency [(3, simpleTypes), (1, arrayTypes), (1, objectTypes)]+    where+      simpleTypes :: Gen A.Value+      simpleTypes =+        frequency+          [ (1, return A.Null)+          , (2, liftM A.Bool (arbitrary :: Gen Bool))+          , (2, liftM (A.Number . fromIntegral) (arbitrary :: Gen Int))+          , (2, liftM (A.String . T.pack) (arbitrary :: Gen String))+          ]+      mapF (k, v) = (fromString k, v)+      simpleAndArrays = frequency [(1, sized sizedArray), (4, simpleTypes)]+      arrayTypes = sized sizedArray+      objectTypes = sized sizedObject+      sizedArray n = liftM (A.Array . V.fromList) $ replicateM n simpleTypes+      sizedObject n =+        liftM (A.object . map mapF) $+        replicateM n $ (,) <$> (arbitrary :: Gen String) <*> simpleAndArrays++-- | Checks if a given list has no duplicates in _O(n log n)_.+hasNoDups+  :: (Ord a)+  => [a] -> Bool+hasNoDups = go Set.empty+  where+    go _ [] = True+    go s (x:xs)+      | s' <- Set.insert x s+      , Set.size s' > Set.size s = go s' xs+      | otherwise = False++instance ApproxEq TI.Day where+  (=~) = (==)++arbitraryReduced :: Arbitrary a => Int -> Gen a+arbitraryReduced n = resize (n `div` 2) arbitrary++arbitraryReducedMaybe :: Arbitrary a => Int -> Gen (Maybe a)+arbitraryReducedMaybe 0 = elements [Nothing]+arbitraryReducedMaybe n = arbitraryReduced n++arbitraryReducedMaybeValue :: Int -> Gen (Maybe A.Value)+arbitraryReducedMaybeValue 0 = elements [Nothing]+arbitraryReducedMaybeValue n = do+  generated <- arbitraryReduced n+  if generated == Just A.Null+    then return Nothing+    else return generated++-- * Models++instance Arbitrary APIError where+  arbitrary = sized genAPIError++genAPIError :: Int -> Gen APIError+genAPIError n =+  APIError+    <$> arbitraryReducedMaybe n -- aPIErrorMessage :: Maybe Text+    <*> arbitraryReducedMaybe n -- aPIErrorUrl :: Maybe Text+  +instance Arbitrary AccessToken where+  arbitrary = sized genAccessToken++genAccessToken :: Int -> Gen AccessToken+genAccessToken n =+  AccessToken+    <$> arbitraryReducedMaybe n -- accessTokenId :: Maybe Integer+    <*> arbitraryReducedMaybe n -- accessTokenName :: Maybe Text+    <*> arbitraryReducedMaybe n -- accessTokenScopes :: Maybe [Text]+    <*> arbitraryReducedMaybe n -- accessTokenSha1 :: Maybe Text+    <*> arbitraryReducedMaybe n -- accessTokenTokenLastEight :: Maybe Text+  +instance Arbitrary ActivityPub where+  arbitrary = sized genActivityPub++genActivityPub :: Int -> Gen ActivityPub+genActivityPub n =+  ActivityPub+    <$> arbitraryReducedMaybe n -- activityPubContext :: Maybe Text+  +instance Arbitrary AddCollaboratorOption where+  arbitrary = sized genAddCollaboratorOption++genAddCollaboratorOption :: Int -> Gen AddCollaboratorOption+genAddCollaboratorOption n =+  AddCollaboratorOption+    <$> arbitraryReducedMaybe n -- addCollaboratorOptionPermission :: Maybe Text+  +instance Arbitrary AddTimeOption where+  arbitrary = sized genAddTimeOption++genAddTimeOption :: Int -> Gen AddTimeOption+genAddTimeOption n =+  AddTimeOption+    <$> arbitraryReducedMaybe n -- addTimeOptionCreated :: Maybe DateTime+    <*> arbitrary -- addTimeOptionTime :: Integer+    <*> arbitraryReducedMaybe n -- addTimeOptionUserName :: Maybe Text+  +instance Arbitrary AnnotatedTag where+  arbitrary = sized genAnnotatedTag++genAnnotatedTag :: Int -> Gen AnnotatedTag+genAnnotatedTag n =+  AnnotatedTag+    <$> arbitraryReducedMaybe n -- annotatedTagMessage :: Maybe Text+    <*> arbitraryReducedMaybe n -- annotatedTagObject :: Maybe AnnotatedTagObject+    <*> arbitraryReducedMaybe n -- annotatedTagSha :: Maybe Text+    <*> arbitraryReducedMaybe n -- annotatedTagTag :: Maybe Text+    <*> arbitraryReducedMaybe n -- annotatedTagTagger :: Maybe CommitUser+    <*> arbitraryReducedMaybe n -- annotatedTagUrl :: Maybe Text+    <*> arbitraryReducedMaybe n -- annotatedTagVerification :: Maybe PayloadCommitVerification+  +instance Arbitrary AnnotatedTagObject where+  arbitrary = sized genAnnotatedTagObject++genAnnotatedTagObject :: Int -> Gen AnnotatedTagObject+genAnnotatedTagObject n =+  AnnotatedTagObject+    <$> arbitraryReducedMaybe n -- annotatedTagObjectSha :: Maybe Text+    <*> arbitraryReducedMaybe n -- annotatedTagObjectType :: Maybe Text+    <*> arbitraryReducedMaybe n -- annotatedTagObjectUrl :: Maybe Text+  +instance Arbitrary Attachment where+  arbitrary = sized genAttachment++genAttachment :: Int -> Gen Attachment+genAttachment n =+  Attachment+    <$> arbitraryReducedMaybe n -- attachmentBrowserDownloadUrl :: Maybe Text+    <*> arbitraryReducedMaybe n -- attachmentCreatedAt :: Maybe DateTime+    <*> arbitraryReducedMaybe n -- attachmentDownloadCount :: Maybe Integer+    <*> arbitraryReducedMaybe n -- attachmentId :: Maybe Integer+    <*> arbitraryReducedMaybe n -- attachmentName :: Maybe Text+    <*> arbitraryReducedMaybe n -- attachmentSize :: Maybe Integer+    <*> arbitraryReducedMaybe n -- attachmentUuid :: Maybe Text+  +instance Arbitrary Branch where+  arbitrary = sized genBranch++genBranch :: Int -> Gen Branch+genBranch n =+  Branch+    <$> arbitraryReducedMaybe n -- branchCommit :: Maybe PayloadCommit+    <*> arbitraryReducedMaybe n -- branchEffectiveBranchProtectionName :: Maybe Text+    <*> arbitraryReducedMaybe n -- branchEnableStatusCheck :: Maybe Bool+    <*> arbitraryReducedMaybe n -- branchName :: Maybe Text+    <*> arbitraryReducedMaybe n -- branchProtected :: Maybe Bool+    <*> arbitraryReducedMaybe n -- branchRequiredApprovals :: Maybe Integer+    <*> arbitraryReducedMaybe n -- branchStatusCheckContexts :: Maybe [Text]+    <*> arbitraryReducedMaybe n -- branchUserCanMerge :: Maybe Bool+    <*> arbitraryReducedMaybe n -- branchUserCanPush :: Maybe Bool+  +instance Arbitrary BranchProtection where+  arbitrary = sized genBranchProtection++genBranchProtection :: Int -> Gen BranchProtection+genBranchProtection n =+  BranchProtection+    <$> arbitraryReducedMaybe n -- branchProtectionApprovalsWhitelistTeams :: Maybe [Text]+    <*> arbitraryReducedMaybe n -- branchProtectionApprovalsWhitelistUsername :: Maybe [Text]+    <*> arbitraryReducedMaybe n -- branchProtectionBlockOnOfficialReviewRequests :: Maybe Bool+    <*> arbitraryReducedMaybe n -- branchProtectionBlockOnOutdatedBranch :: Maybe Bool+    <*> arbitraryReducedMaybe n -- branchProtectionBlockOnRejectedReviews :: Maybe Bool+    <*> arbitraryReducedMaybe n -- branchProtectionBranchName :: Maybe Text+    <*> arbitraryReducedMaybe n -- branchProtectionCreatedAt :: Maybe DateTime+    <*> arbitraryReducedMaybe n -- branchProtectionDismissStaleApprovals :: Maybe Bool+    <*> arbitraryReducedMaybe n -- branchProtectionEnableApprovalsWhitelist :: Maybe Bool+    <*> arbitraryReducedMaybe n -- branchProtectionEnableMergeWhitelist :: Maybe Bool+    <*> arbitraryReducedMaybe n -- branchProtectionEnablePush :: Maybe Bool+    <*> arbitraryReducedMaybe n -- branchProtectionEnablePushWhitelist :: Maybe Bool+    <*> arbitraryReducedMaybe n -- branchProtectionEnableStatusCheck :: Maybe Bool+    <*> arbitraryReducedMaybe n -- branchProtectionMergeWhitelistTeams :: Maybe [Text]+    <*> arbitraryReducedMaybe n -- branchProtectionMergeWhitelistUsernames :: Maybe [Text]+    <*> arbitraryReducedMaybe n -- branchProtectionProtectedFilePatterns :: Maybe Text+    <*> arbitraryReducedMaybe n -- branchProtectionPushWhitelistDeployKeys :: Maybe Bool+    <*> arbitraryReducedMaybe n -- branchProtectionPushWhitelistTeams :: Maybe [Text]+    <*> arbitraryReducedMaybe n -- branchProtectionPushWhitelistUsernames :: Maybe [Text]+    <*> arbitraryReducedMaybe n -- branchProtectionRequireSignedCommits :: Maybe Bool+    <*> arbitraryReducedMaybe n -- branchProtectionRequiredApprovals :: Maybe Integer+    <*> arbitraryReducedMaybe n -- branchProtectionRuleName :: Maybe Text+    <*> arbitraryReducedMaybe n -- branchProtectionStatusCheckContexts :: Maybe [Text]+    <*> arbitraryReducedMaybe n -- branchProtectionUnprotectedFilePatterns :: Maybe Text+    <*> arbitraryReducedMaybe n -- branchProtectionUpdatedAt :: Maybe DateTime+  +instance Arbitrary ChangedFile where+  arbitrary = sized genChangedFile++genChangedFile :: Int -> Gen ChangedFile+genChangedFile n =+  ChangedFile+    <$> arbitraryReducedMaybe n -- changedFileAdditions :: Maybe Integer+    <*> arbitraryReducedMaybe n -- changedFileChanges :: Maybe Integer+    <*> arbitraryReducedMaybe n -- changedFileContentsUrl :: Maybe Text+    <*> arbitraryReducedMaybe n -- changedFileDeletions :: Maybe Integer+    <*> arbitraryReducedMaybe n -- changedFileFilename :: Maybe Text+    <*> arbitraryReducedMaybe n -- changedFileHtmlUrl :: Maybe Text+    <*> arbitraryReducedMaybe n -- changedFilePreviousFilename :: Maybe Text+    <*> arbitraryReducedMaybe n -- changedFileRawUrl :: Maybe Text+    <*> arbitraryReducedMaybe n -- changedFileStatus :: Maybe Text+  +instance Arbitrary CombinedStatus where+  arbitrary = sized genCombinedStatus++genCombinedStatus :: Int -> Gen CombinedStatus+genCombinedStatus n =+  CombinedStatus+    <$> arbitraryReducedMaybe n -- combinedStatusCommitUrl :: Maybe Text+    <*> arbitraryReducedMaybe n -- combinedStatusRepository :: Maybe Repository+    <*> arbitraryReducedMaybe n -- combinedStatusSha :: Maybe Text+    <*> arbitraryReducedMaybe n -- combinedStatusState :: Maybe Text+    <*> arbitraryReducedMaybe n -- combinedStatusStatuses :: Maybe [CommitStatus]+    <*> arbitraryReducedMaybe n -- combinedStatusTotalCount :: Maybe Integer+    <*> arbitraryReducedMaybe n -- combinedStatusUrl :: Maybe Text+  +instance Arbitrary Comment where+  arbitrary = sized genComment++genComment :: Int -> Gen Comment+genComment n =+  Comment+    <$> arbitraryReducedMaybe n -- commentAssets :: Maybe [Attachment]+    <*> arbitraryReducedMaybe n -- commentBody :: Maybe Text+    <*> arbitraryReducedMaybe n -- commentCreatedAt :: Maybe DateTime+    <*> arbitraryReducedMaybe n -- commentHtmlUrl :: Maybe Text+    <*> arbitraryReducedMaybe n -- commentId :: Maybe Integer+    <*> arbitraryReducedMaybe n -- commentIssueUrl :: Maybe Text+    <*> arbitraryReducedMaybe n -- commentOriginalAuthor :: Maybe Text+    <*> arbitraryReducedMaybe n -- commentOriginalAuthorId :: Maybe Integer+    <*> arbitraryReducedMaybe n -- commentPullRequestUrl :: Maybe Text+    <*> arbitraryReducedMaybe n -- commentUpdatedAt :: Maybe DateTime+    <*> arbitraryReducedMaybe n -- commentUser :: Maybe User+  +instance Arbitrary Commit where+  arbitrary = sized genCommit++genCommit :: Int -> Gen Commit+genCommit n =+  Commit+    <$> arbitraryReducedMaybe n -- commitAuthor :: Maybe User+    <*> arbitraryReducedMaybe n -- commitCommit :: Maybe RepoCommit+    <*> arbitraryReducedMaybe n -- commitCommitter :: Maybe User+    <*> arbitraryReducedMaybe n -- commitCreated :: Maybe DateTime+    <*> arbitraryReducedMaybe n -- commitFiles :: Maybe [CommitAffectedFiles]+    <*> arbitraryReducedMaybe n -- commitHtmlUrl :: Maybe Text+    <*> arbitraryReducedMaybe n -- commitParents :: Maybe [CommitMeta]+    <*> arbitraryReducedMaybe n -- commitSha :: Maybe Text+    <*> arbitraryReducedMaybe n -- commitStats :: Maybe CommitStats+    <*> arbitraryReducedMaybe n -- commitUrl :: Maybe Text+  +instance Arbitrary CommitAffectedFiles where+  arbitrary = sized genCommitAffectedFiles++genCommitAffectedFiles :: Int -> Gen CommitAffectedFiles+genCommitAffectedFiles n =+  CommitAffectedFiles+    <$> arbitraryReducedMaybe n -- commitAffectedFilesFilename :: Maybe Text+  +instance Arbitrary CommitDateOptions where+  arbitrary = sized genCommitDateOptions++genCommitDateOptions :: Int -> Gen CommitDateOptions+genCommitDateOptions n =+  CommitDateOptions+    <$> arbitraryReducedMaybe n -- commitDateOptionsAuthor :: Maybe DateTime+    <*> arbitraryReducedMaybe n -- commitDateOptionsCommitter :: Maybe DateTime+  +instance Arbitrary CommitMeta where+  arbitrary = sized genCommitMeta++genCommitMeta :: Int -> Gen CommitMeta+genCommitMeta n =+  CommitMeta+    <$> arbitraryReducedMaybe n -- commitMetaCreated :: Maybe DateTime+    <*> arbitraryReducedMaybe n -- commitMetaSha :: Maybe Text+    <*> arbitraryReducedMaybe n -- commitMetaUrl :: Maybe Text+  +instance Arbitrary CommitStats where+  arbitrary = sized genCommitStats++genCommitStats :: Int -> Gen CommitStats+genCommitStats n =+  CommitStats+    <$> arbitraryReducedMaybe n -- commitStatsAdditions :: Maybe Integer+    <*> arbitraryReducedMaybe n -- commitStatsDeletions :: Maybe Integer+    <*> arbitraryReducedMaybe n -- commitStatsTotal :: Maybe Integer+  +instance Arbitrary CommitStatus where+  arbitrary = sized genCommitStatus++genCommitStatus :: Int -> Gen CommitStatus+genCommitStatus n =+  CommitStatus+    <$> arbitraryReducedMaybe n -- commitStatusContext :: Maybe Text+    <*> arbitraryReducedMaybe n -- commitStatusCreatedAt :: Maybe DateTime+    <*> arbitraryReducedMaybe n -- commitStatusCreator :: Maybe User+    <*> arbitraryReducedMaybe n -- commitStatusDescription :: Maybe Text+    <*> arbitraryReducedMaybe n -- commitStatusId :: Maybe Integer+    <*> arbitraryReducedMaybe n -- commitStatusStatus :: Maybe Text+    <*> arbitraryReducedMaybe n -- commitStatusTargetUrl :: Maybe Text+    <*> arbitraryReducedMaybe n -- commitStatusUpdatedAt :: Maybe DateTime+    <*> arbitraryReducedMaybe n -- commitStatusUrl :: Maybe Text+  +instance Arbitrary CommitUser where+  arbitrary = sized genCommitUser++genCommitUser :: Int -> Gen CommitUser+genCommitUser n =+  CommitUser+    <$> arbitraryReducedMaybe n -- commitUserDate :: Maybe Text+    <*> arbitraryReducedMaybe n -- commitUserEmail :: Maybe Text+    <*> arbitraryReducedMaybe n -- commitUserName :: Maybe Text+  +instance Arbitrary ContentsResponse where+  arbitrary = sized genContentsResponse++genContentsResponse :: Int -> Gen ContentsResponse+genContentsResponse n =+  ContentsResponse+    <$> arbitraryReducedMaybe n -- contentsResponseLinks :: Maybe FileLinksResponse+    <*> arbitraryReducedMaybe n -- contentsResponseContent :: Maybe Text+    <*> arbitraryReducedMaybe n -- contentsResponseDownloadUrl :: Maybe Text+    <*> arbitraryReducedMaybe n -- contentsResponseEncoding :: Maybe Text+    <*> arbitraryReducedMaybe n -- contentsResponseGitUrl :: Maybe Text+    <*> arbitraryReducedMaybe n -- contentsResponseHtmlUrl :: Maybe Text+    <*> arbitraryReducedMaybe n -- contentsResponseLastCommitSha :: Maybe Text+    <*> arbitraryReducedMaybe n -- contentsResponseName :: Maybe Text+    <*> arbitraryReducedMaybe n -- contentsResponsePath :: Maybe Text+    <*> arbitraryReducedMaybe n -- contentsResponseSha :: Maybe Text+    <*> arbitraryReducedMaybe n -- contentsResponseSize :: Maybe Integer+    <*> arbitraryReducedMaybe n -- contentsResponseSubmoduleGitUrl :: Maybe Text+    <*> arbitraryReducedMaybe n -- contentsResponseTarget :: Maybe Text+    <*> arbitraryReducedMaybe n -- contentsResponseType :: Maybe Text+    <*> arbitraryReducedMaybe n -- contentsResponseUrl :: Maybe Text+  +instance Arbitrary CreateAccessTokenOption where+  arbitrary = sized genCreateAccessTokenOption++genCreateAccessTokenOption :: Int -> Gen CreateAccessTokenOption+genCreateAccessTokenOption n =+  CreateAccessTokenOption+    <$> arbitrary -- createAccessTokenOptionName :: Text+    <*> arbitraryReducedMaybe n -- createAccessTokenOptionScopes :: Maybe [Text]+  +instance Arbitrary CreateBranchProtectionOption where+  arbitrary = sized genCreateBranchProtectionOption++genCreateBranchProtectionOption :: Int -> Gen CreateBranchProtectionOption+genCreateBranchProtectionOption n =+  CreateBranchProtectionOption+    <$> arbitraryReducedMaybe n -- createBranchProtectionOptionApprovalsWhitelistTeams :: Maybe [Text]+    <*> arbitraryReducedMaybe n -- createBranchProtectionOptionApprovalsWhitelistUsername :: Maybe [Text]+    <*> arbitraryReducedMaybe n -- createBranchProtectionOptionBlockOnOfficialReviewRequests :: Maybe Bool+    <*> arbitraryReducedMaybe n -- createBranchProtectionOptionBlockOnOutdatedBranch :: Maybe Bool+    <*> arbitraryReducedMaybe n -- createBranchProtectionOptionBlockOnRejectedReviews :: Maybe Bool+    <*> arbitraryReducedMaybe n -- createBranchProtectionOptionBranchName :: Maybe Text+    <*> arbitraryReducedMaybe n -- createBranchProtectionOptionDismissStaleApprovals :: Maybe Bool+    <*> arbitraryReducedMaybe n -- createBranchProtectionOptionEnableApprovalsWhitelist :: Maybe Bool+    <*> arbitraryReducedMaybe n -- createBranchProtectionOptionEnableMergeWhitelist :: Maybe Bool+    <*> arbitraryReducedMaybe n -- createBranchProtectionOptionEnablePush :: Maybe Bool+    <*> arbitraryReducedMaybe n -- createBranchProtectionOptionEnablePushWhitelist :: Maybe Bool+    <*> arbitraryReducedMaybe n -- createBranchProtectionOptionEnableStatusCheck :: Maybe Bool+    <*> arbitraryReducedMaybe n -- createBranchProtectionOptionMergeWhitelistTeams :: Maybe [Text]+    <*> arbitraryReducedMaybe n -- createBranchProtectionOptionMergeWhitelistUsernames :: Maybe [Text]+    <*> arbitraryReducedMaybe n -- createBranchProtectionOptionProtectedFilePatterns :: Maybe Text+    <*> arbitraryReducedMaybe n -- createBranchProtectionOptionPushWhitelistDeployKeys :: Maybe Bool+    <*> arbitraryReducedMaybe n -- createBranchProtectionOptionPushWhitelistTeams :: Maybe [Text]+    <*> arbitraryReducedMaybe n -- createBranchProtectionOptionPushWhitelistUsernames :: Maybe [Text]+    <*> arbitraryReducedMaybe n -- createBranchProtectionOptionRequireSignedCommits :: Maybe Bool+    <*> arbitraryReducedMaybe n -- createBranchProtectionOptionRequiredApprovals :: Maybe Integer+    <*> arbitraryReducedMaybe n -- createBranchProtectionOptionRuleName :: Maybe Text+    <*> arbitraryReducedMaybe n -- createBranchProtectionOptionStatusCheckContexts :: Maybe [Text]+    <*> arbitraryReducedMaybe n -- createBranchProtectionOptionUnprotectedFilePatterns :: Maybe Text+  +instance Arbitrary CreateBranchRepoOption where+  arbitrary = sized genCreateBranchRepoOption++genCreateBranchRepoOption :: Int -> Gen CreateBranchRepoOption+genCreateBranchRepoOption n =+  CreateBranchRepoOption+    <$> arbitrary -- createBranchRepoOptionNewBranchName :: Text+    <*> arbitraryReducedMaybe n -- createBranchRepoOptionOldBranchName :: Maybe Text+  +instance Arbitrary CreateEmailOption where+  arbitrary = sized genCreateEmailOption++genCreateEmailOption :: Int -> Gen CreateEmailOption+genCreateEmailOption n =+  CreateEmailOption+    <$> arbitraryReducedMaybe n -- createEmailOptionEmails :: Maybe [Text]+  +instance Arbitrary CreateFileOptions where+  arbitrary = sized genCreateFileOptions++genCreateFileOptions :: Int -> Gen CreateFileOptions+genCreateFileOptions n =+  CreateFileOptions+    <$> arbitraryReducedMaybe n -- createFileOptionsAuthor :: Maybe Identity+    <*> arbitraryReducedMaybe n -- createFileOptionsBranch :: Maybe Text+    <*> arbitraryReducedMaybe n -- createFileOptionsCommitter :: Maybe Identity+    <*> arbitrary -- createFileOptionsContent :: Text+    <*> arbitraryReducedMaybe n -- createFileOptionsDates :: Maybe CommitDateOptions+    <*> arbitraryReducedMaybe n -- createFileOptionsMessage :: Maybe Text+    <*> arbitraryReducedMaybe n -- createFileOptionsNewBranch :: Maybe Text+    <*> arbitraryReducedMaybe n -- createFileOptionsSignoff :: Maybe Bool+  +instance Arbitrary CreateForkOption where+  arbitrary = sized genCreateForkOption++genCreateForkOption :: Int -> Gen CreateForkOption+genCreateForkOption n =+  CreateForkOption+    <$> arbitraryReducedMaybe n -- createForkOptionName :: Maybe Text+    <*> arbitraryReducedMaybe n -- createForkOptionOrganization :: Maybe Text+  +instance Arbitrary CreateGPGKeyOption where+  arbitrary = sized genCreateGPGKeyOption++genCreateGPGKeyOption :: Int -> Gen CreateGPGKeyOption+genCreateGPGKeyOption n =+  CreateGPGKeyOption+    <$> arbitrary -- createGPGKeyOptionArmoredPublicKey :: Text+    <*> arbitraryReducedMaybe n -- createGPGKeyOptionArmoredSignature :: Maybe Text+  +instance Arbitrary CreateHookOption where+  arbitrary = sized genCreateHookOption++genCreateHookOption :: Int -> Gen CreateHookOption+genCreateHookOption n =+  CreateHookOption+    <$> arbitraryReducedMaybe n -- createHookOptionActive :: Maybe Bool+    <*> arbitraryReducedMaybe n -- createHookOptionAuthorizationHeader :: Maybe Text+    <*> arbitraryReducedMaybe n -- createHookOptionBranchFilter :: Maybe Text+    <*> arbitrary -- createHookOptionConfig :: (Map.Map String Text)+    <*> arbitraryReducedMaybe n -- createHookOptionEvents :: Maybe [Text]+    <*> arbitrary -- createHookOptionType :: E'Type+  +instance Arbitrary CreateIssueCommentOption where+  arbitrary = sized genCreateIssueCommentOption++genCreateIssueCommentOption :: Int -> Gen CreateIssueCommentOption+genCreateIssueCommentOption n =+  CreateIssueCommentOption+    <$> arbitrary -- createIssueCommentOptionBody :: Text+  +instance Arbitrary CreateIssueOption where+  arbitrary = sized genCreateIssueOption++genCreateIssueOption :: Int -> Gen CreateIssueOption+genCreateIssueOption n =+  CreateIssueOption+    <$> arbitraryReducedMaybe n -- createIssueOptionAssignee :: Maybe Text+    <*> arbitraryReducedMaybe n -- createIssueOptionAssignees :: Maybe [Text]+    <*> arbitraryReducedMaybe n -- createIssueOptionBody :: Maybe Text+    <*> arbitraryReducedMaybe n -- createIssueOptionClosed :: Maybe Bool+    <*> arbitraryReducedMaybe n -- createIssueOptionDueDate :: Maybe DateTime+    <*> arbitraryReducedMaybe n -- createIssueOptionLabels :: Maybe [Integer]+    <*> arbitraryReducedMaybe n -- createIssueOptionMilestone :: Maybe Integer+    <*> arbitraryReducedMaybe n -- createIssueOptionRef :: Maybe Text+    <*> arbitrary -- createIssueOptionTitle :: Text+  +instance Arbitrary CreateKeyOption where+  arbitrary = sized genCreateKeyOption++genCreateKeyOption :: Int -> Gen CreateKeyOption+genCreateKeyOption n =+  CreateKeyOption+    <$> arbitrary -- createKeyOptionKey :: Text+    <*> arbitraryReducedMaybe n -- createKeyOptionReadOnly :: Maybe Bool+    <*> arbitrary -- createKeyOptionTitle :: Text+  +instance Arbitrary CreateLabelOption where+  arbitrary = sized genCreateLabelOption++genCreateLabelOption :: Int -> Gen CreateLabelOption+genCreateLabelOption n =+  CreateLabelOption+    <$> arbitrary -- createLabelOptionColor :: Text+    <*> arbitraryReducedMaybe n -- createLabelOptionDescription :: Maybe Text+    <*> arbitraryReducedMaybe n -- createLabelOptionExclusive :: Maybe Bool+    <*> arbitrary -- createLabelOptionName :: Text+  +instance Arbitrary CreateMilestoneOption where+  arbitrary = sized genCreateMilestoneOption++genCreateMilestoneOption :: Int -> Gen CreateMilestoneOption+genCreateMilestoneOption n =+  CreateMilestoneOption+    <$> arbitraryReducedMaybe n -- createMilestoneOptionDescription :: Maybe Text+    <*> arbitraryReducedMaybe n -- createMilestoneOptionDueOn :: Maybe DateTime+    <*> arbitraryReducedMaybe n -- createMilestoneOptionState :: Maybe E'State+    <*> arbitraryReducedMaybe n -- createMilestoneOptionTitle :: Maybe Text+  +instance Arbitrary CreateOAuth2ApplicationOptions where+  arbitrary = sized genCreateOAuth2ApplicationOptions++genCreateOAuth2ApplicationOptions :: Int -> Gen CreateOAuth2ApplicationOptions+genCreateOAuth2ApplicationOptions n =+  CreateOAuth2ApplicationOptions+    <$> arbitraryReducedMaybe n -- createOAuth2ApplicationOptionsConfidentialClient :: Maybe Bool+    <*> arbitraryReducedMaybe n -- createOAuth2ApplicationOptionsName :: Maybe Text+    <*> arbitraryReducedMaybe n -- createOAuth2ApplicationOptionsRedirectUris :: Maybe [Text]+  +instance Arbitrary CreateOrgOption where+  arbitrary = sized genCreateOrgOption++genCreateOrgOption :: Int -> Gen CreateOrgOption+genCreateOrgOption n =+  CreateOrgOption+    <$> arbitraryReducedMaybe n -- createOrgOptionDescription :: Maybe Text+    <*> arbitraryReducedMaybe n -- createOrgOptionFullName :: Maybe Text+    <*> arbitraryReducedMaybe n -- createOrgOptionLocation :: Maybe Text+    <*> arbitraryReducedMaybe n -- createOrgOptionRepoAdminChangeTeamAccess :: Maybe Bool+    <*> arbitrary -- createOrgOptionUsername :: Text+    <*> arbitraryReducedMaybe n -- createOrgOptionVisibility :: Maybe E'Visibility+    <*> arbitraryReducedMaybe n -- createOrgOptionWebsite :: Maybe Text+  +instance Arbitrary CreatePullRequestOption where+  arbitrary = sized genCreatePullRequestOption++genCreatePullRequestOption :: Int -> Gen CreatePullRequestOption+genCreatePullRequestOption n =+  CreatePullRequestOption+    <$> arbitraryReducedMaybe n -- createPullRequestOptionAssignee :: Maybe Text+    <*> arbitraryReducedMaybe n -- createPullRequestOptionAssignees :: Maybe [Text]+    <*> arbitraryReducedMaybe n -- createPullRequestOptionBase :: Maybe Text+    <*> arbitraryReducedMaybe n -- createPullRequestOptionBody :: Maybe Text+    <*> arbitraryReducedMaybe n -- createPullRequestOptionDueDate :: Maybe DateTime+    <*> arbitraryReducedMaybe n -- createPullRequestOptionHead :: Maybe Text+    <*> arbitraryReducedMaybe n -- createPullRequestOptionLabels :: Maybe [Integer]+    <*> arbitraryReducedMaybe n -- createPullRequestOptionMilestone :: Maybe Integer+    <*> arbitraryReducedMaybe n -- createPullRequestOptionTitle :: Maybe Text+  +instance Arbitrary CreatePullReviewComment where+  arbitrary = sized genCreatePullReviewComment++genCreatePullReviewComment :: Int -> Gen CreatePullReviewComment+genCreatePullReviewComment n =+  CreatePullReviewComment+    <$> arbitraryReducedMaybe n -- createPullReviewCommentBody :: Maybe Text+    <*> arbitraryReducedMaybe n -- createPullReviewCommentNewPosition :: Maybe Integer+    <*> arbitraryReducedMaybe n -- createPullReviewCommentOldPosition :: Maybe Integer+    <*> arbitraryReducedMaybe n -- createPullReviewCommentPath :: Maybe Text+  +instance Arbitrary CreatePullReviewOptions where+  arbitrary = sized genCreatePullReviewOptions++genCreatePullReviewOptions :: Int -> Gen CreatePullReviewOptions+genCreatePullReviewOptions n =+  CreatePullReviewOptions+    <$> arbitraryReducedMaybe n -- createPullReviewOptionsBody :: Maybe Text+    <*> arbitraryReducedMaybe n -- createPullReviewOptionsComments :: Maybe [CreatePullReviewComment]+    <*> arbitraryReducedMaybe n -- createPullReviewOptionsCommitId :: Maybe Text+    <*> arbitraryReducedMaybe n -- createPullReviewOptionsEvent :: Maybe Text+  +instance Arbitrary CreatePushMirrorOption where+  arbitrary = sized genCreatePushMirrorOption++genCreatePushMirrorOption :: Int -> Gen CreatePushMirrorOption+genCreatePushMirrorOption n =+  CreatePushMirrorOption+    <$> arbitraryReducedMaybe n -- createPushMirrorOptionInterval :: Maybe Text+    <*> arbitraryReducedMaybe n -- createPushMirrorOptionRemoteAddress :: Maybe Text+    <*> arbitraryReducedMaybe n -- createPushMirrorOptionRemotePassword :: Maybe Text+    <*> arbitraryReducedMaybe n -- createPushMirrorOptionRemoteUsername :: Maybe Text+    <*> arbitraryReducedMaybe n -- createPushMirrorOptionSyncOnCommit :: Maybe Bool+  +instance Arbitrary CreateReleaseOption where+  arbitrary = sized genCreateReleaseOption++genCreateReleaseOption :: Int -> Gen CreateReleaseOption+genCreateReleaseOption n =+  CreateReleaseOption+    <$> arbitraryReducedMaybe n -- createReleaseOptionBody :: Maybe Text+    <*> arbitraryReducedMaybe n -- createReleaseOptionDraft :: Maybe Bool+    <*> arbitraryReducedMaybe n -- createReleaseOptionName :: Maybe Text+    <*> arbitraryReducedMaybe n -- createReleaseOptionPrerelease :: Maybe Bool+    <*> arbitrary -- createReleaseOptionTagName :: Text+    <*> arbitraryReducedMaybe n -- createReleaseOptionTargetCommitish :: Maybe Text+  +instance Arbitrary CreateRepoOption where+  arbitrary = sized genCreateRepoOption++genCreateRepoOption :: Int -> Gen CreateRepoOption+genCreateRepoOption n =+  CreateRepoOption+    <$> arbitraryReducedMaybe n -- createRepoOptionAutoInit :: Maybe Bool+    <*> arbitraryReducedMaybe n -- createRepoOptionDefaultBranch :: Maybe Text+    <*> arbitraryReducedMaybe n -- createRepoOptionDescription :: Maybe Text+    <*> arbitraryReducedMaybe n -- createRepoOptionGitignores :: Maybe Text+    <*> arbitraryReducedMaybe n -- createRepoOptionIssueLabels :: Maybe Text+    <*> arbitraryReducedMaybe n -- createRepoOptionLicense :: Maybe Text+    <*> arbitrary -- createRepoOptionName :: Text+    <*> arbitraryReducedMaybe n -- createRepoOptionPrivate :: Maybe Bool+    <*> arbitraryReducedMaybe n -- createRepoOptionReadme :: Maybe Text+    <*> arbitraryReducedMaybe n -- createRepoOptionTemplate :: Maybe Bool+    <*> arbitraryReducedMaybe n -- createRepoOptionTrustModel :: Maybe E'TrustModel+  +instance Arbitrary CreateStatusOption where+  arbitrary = sized genCreateStatusOption++genCreateStatusOption :: Int -> Gen CreateStatusOption+genCreateStatusOption n =+  CreateStatusOption+    <$> arbitraryReducedMaybe n -- createStatusOptionContext :: Maybe Text+    <*> arbitraryReducedMaybe n -- createStatusOptionDescription :: Maybe Text+    <*> arbitraryReducedMaybe n -- createStatusOptionState :: Maybe Text+    <*> arbitraryReducedMaybe n -- createStatusOptionTargetUrl :: Maybe Text+  +instance Arbitrary CreateTagOption where+  arbitrary = sized genCreateTagOption++genCreateTagOption :: Int -> Gen CreateTagOption+genCreateTagOption n =+  CreateTagOption+    <$> arbitraryReducedMaybe n -- createTagOptionMessage :: Maybe Text+    <*> arbitrary -- createTagOptionTagName :: Text+    <*> arbitraryReducedMaybe n -- createTagOptionTarget :: Maybe Text+  +instance Arbitrary CreateTeamOption where+  arbitrary = sized genCreateTeamOption++genCreateTeamOption :: Int -> Gen CreateTeamOption+genCreateTeamOption n =+  CreateTeamOption+    <$> arbitraryReducedMaybe n -- createTeamOptionCanCreateOrgRepo :: Maybe Bool+    <*> arbitraryReducedMaybe n -- createTeamOptionDescription :: Maybe Text+    <*> arbitraryReducedMaybe n -- createTeamOptionIncludesAllRepositories :: Maybe Bool+    <*> arbitrary -- createTeamOptionName :: Text+    <*> arbitraryReducedMaybe n -- createTeamOptionPermission :: Maybe E'Permission+    <*> arbitraryReducedMaybe n -- createTeamOptionUnits :: Maybe [Text]+    <*> arbitraryReducedMaybe n -- createTeamOptionUnitsMap :: Maybe (Map.Map String Text)+  +instance Arbitrary CreateUserOption where+  arbitrary = sized genCreateUserOption++genCreateUserOption :: Int -> Gen CreateUserOption+genCreateUserOption n =+  CreateUserOption+    <$> arbitraryReducedMaybe n -- createUserOptionCreatedAt :: Maybe DateTime+    <*> arbitrary -- createUserOptionEmail :: Text+    <*> arbitraryReducedMaybe n -- createUserOptionFullName :: Maybe Text+    <*> arbitraryReducedMaybe n -- createUserOptionLoginName :: Maybe Text+    <*> arbitraryReducedMaybe n -- createUserOptionMustChangePassword :: Maybe Bool+    <*> arbitrary -- createUserOptionPassword :: Text+    <*> arbitraryReducedMaybe n -- createUserOptionRestricted :: Maybe Bool+    <*> arbitraryReducedMaybe n -- createUserOptionSendNotify :: Maybe Bool+    <*> arbitraryReducedMaybe n -- createUserOptionSourceId :: Maybe Integer+    <*> arbitrary -- createUserOptionUsername :: Text+    <*> arbitraryReducedMaybe n -- createUserOptionVisibility :: Maybe Text+  +instance Arbitrary CreateWikiPageOptions where+  arbitrary = sized genCreateWikiPageOptions++genCreateWikiPageOptions :: Int -> Gen CreateWikiPageOptions+genCreateWikiPageOptions n =+  CreateWikiPageOptions+    <$> arbitraryReducedMaybe n -- createWikiPageOptionsContentBase64 :: Maybe Text+    <*> arbitraryReducedMaybe n -- createWikiPageOptionsMessage :: Maybe Text+    <*> arbitraryReducedMaybe n -- createWikiPageOptionsTitle :: Maybe Text+  +instance Arbitrary Cron where+  arbitrary = sized genCron++genCron :: Int -> Gen Cron+genCron n =+  Cron+    <$> arbitraryReducedMaybe n -- cronExecTimes :: Maybe Integer+    <*> arbitraryReducedMaybe n -- cronName :: Maybe Text+    <*> arbitraryReducedMaybe n -- cronNext :: Maybe DateTime+    <*> arbitraryReducedMaybe n -- cronPrev :: Maybe DateTime+    <*> arbitraryReducedMaybe n -- cronSchedule :: Maybe Text+  +instance Arbitrary DeleteEmailOption where+  arbitrary = sized genDeleteEmailOption++genDeleteEmailOption :: Int -> Gen DeleteEmailOption+genDeleteEmailOption n =+  DeleteEmailOption+    <$> arbitraryReducedMaybe n -- deleteEmailOptionEmails :: Maybe [Text]+  +instance Arbitrary DeleteFileOptions where+  arbitrary = sized genDeleteFileOptions++genDeleteFileOptions :: Int -> Gen DeleteFileOptions+genDeleteFileOptions n =+  DeleteFileOptions+    <$> arbitraryReducedMaybe n -- deleteFileOptionsAuthor :: Maybe Identity+    <*> arbitraryReducedMaybe n -- deleteFileOptionsBranch :: Maybe Text+    <*> arbitraryReducedMaybe n -- deleteFileOptionsCommitter :: Maybe Identity+    <*> arbitraryReducedMaybe n -- deleteFileOptionsDates :: Maybe CommitDateOptions+    <*> arbitraryReducedMaybe n -- deleteFileOptionsMessage :: Maybe Text+    <*> arbitraryReducedMaybe n -- deleteFileOptionsNewBranch :: Maybe Text+    <*> arbitrary -- deleteFileOptionsSha :: Text+    <*> arbitraryReducedMaybe n -- deleteFileOptionsSignoff :: Maybe Bool+  +instance Arbitrary DeployKey where+  arbitrary = sized genDeployKey++genDeployKey :: Int -> Gen DeployKey+genDeployKey n =+  DeployKey+    <$> arbitraryReducedMaybe n -- deployKeyCreatedAt :: Maybe DateTime+    <*> arbitraryReducedMaybe n -- deployKeyFingerprint :: Maybe Text+    <*> arbitraryReducedMaybe n -- deployKeyId :: Maybe Integer+    <*> arbitraryReducedMaybe n -- deployKeyKey :: Maybe Text+    <*> arbitraryReducedMaybe n -- deployKeyKeyId :: Maybe Integer+    <*> arbitraryReducedMaybe n -- deployKeyReadOnly :: Maybe Bool+    <*> arbitraryReducedMaybe n -- deployKeyRepository :: Maybe Repository+    <*> arbitraryReducedMaybe n -- deployKeyTitle :: Maybe Text+    <*> arbitraryReducedMaybe n -- deployKeyUrl :: Maybe Text+  +instance Arbitrary DismissPullReviewOptions where+  arbitrary = sized genDismissPullReviewOptions++genDismissPullReviewOptions :: Int -> Gen DismissPullReviewOptions+genDismissPullReviewOptions n =+  DismissPullReviewOptions+    <$> arbitraryReducedMaybe n -- dismissPullReviewOptionsMessage :: Maybe Text+    <*> arbitraryReducedMaybe n -- dismissPullReviewOptionsPriors :: Maybe Bool+  +instance Arbitrary EditAttachmentOptions where+  arbitrary = sized genEditAttachmentOptions++genEditAttachmentOptions :: Int -> Gen EditAttachmentOptions+genEditAttachmentOptions n =+  EditAttachmentOptions+    <$> arbitraryReducedMaybe n -- editAttachmentOptionsName :: Maybe Text+  +instance Arbitrary EditBranchProtectionOption where+  arbitrary = sized genEditBranchProtectionOption++genEditBranchProtectionOption :: Int -> Gen EditBranchProtectionOption+genEditBranchProtectionOption n =+  EditBranchProtectionOption+    <$> arbitraryReducedMaybe n -- editBranchProtectionOptionApprovalsWhitelistTeams :: Maybe [Text]+    <*> arbitraryReducedMaybe n -- editBranchProtectionOptionApprovalsWhitelistUsername :: Maybe [Text]+    <*> arbitraryReducedMaybe n -- editBranchProtectionOptionBlockOnOfficialReviewRequests :: Maybe Bool+    <*> arbitraryReducedMaybe n -- editBranchProtectionOptionBlockOnOutdatedBranch :: Maybe Bool+    <*> arbitraryReducedMaybe n -- editBranchProtectionOptionBlockOnRejectedReviews :: Maybe Bool+    <*> arbitraryReducedMaybe n -- editBranchProtectionOptionDismissStaleApprovals :: Maybe Bool+    <*> arbitraryReducedMaybe n -- editBranchProtectionOptionEnableApprovalsWhitelist :: Maybe Bool+    <*> arbitraryReducedMaybe n -- editBranchProtectionOptionEnableMergeWhitelist :: Maybe Bool+    <*> arbitraryReducedMaybe n -- editBranchProtectionOptionEnablePush :: Maybe Bool+    <*> arbitraryReducedMaybe n -- editBranchProtectionOptionEnablePushWhitelist :: Maybe Bool+    <*> arbitraryReducedMaybe n -- editBranchProtectionOptionEnableStatusCheck :: Maybe Bool+    <*> arbitraryReducedMaybe n -- editBranchProtectionOptionMergeWhitelistTeams :: Maybe [Text]+    <*> arbitraryReducedMaybe n -- editBranchProtectionOptionMergeWhitelistUsernames :: Maybe [Text]+    <*> arbitraryReducedMaybe n -- editBranchProtectionOptionProtectedFilePatterns :: Maybe Text+    <*> arbitraryReducedMaybe n -- editBranchProtectionOptionPushWhitelistDeployKeys :: Maybe Bool+    <*> arbitraryReducedMaybe n -- editBranchProtectionOptionPushWhitelistTeams :: Maybe [Text]+    <*> arbitraryReducedMaybe n -- editBranchProtectionOptionPushWhitelistUsernames :: Maybe [Text]+    <*> arbitraryReducedMaybe n -- editBranchProtectionOptionRequireSignedCommits :: Maybe Bool+    <*> arbitraryReducedMaybe n -- editBranchProtectionOptionRequiredApprovals :: Maybe Integer+    <*> arbitraryReducedMaybe n -- editBranchProtectionOptionStatusCheckContexts :: Maybe [Text]+    <*> arbitraryReducedMaybe n -- editBranchProtectionOptionUnprotectedFilePatterns :: Maybe Text+  +instance Arbitrary EditDeadlineOption where+  arbitrary = sized genEditDeadlineOption++genEditDeadlineOption :: Int -> Gen EditDeadlineOption+genEditDeadlineOption n =+  EditDeadlineOption+    <$> arbitraryReduced n -- editDeadlineOptionDueDate :: DateTime+  +instance Arbitrary EditGitHookOption where+  arbitrary = sized genEditGitHookOption++genEditGitHookOption :: Int -> Gen EditGitHookOption+genEditGitHookOption n =+  EditGitHookOption+    <$> arbitraryReducedMaybe n -- editGitHookOptionContent :: Maybe Text+  +instance Arbitrary EditHookOption where+  arbitrary = sized genEditHookOption++genEditHookOption :: Int -> Gen EditHookOption+genEditHookOption n =+  EditHookOption+    <$> arbitraryReducedMaybe n -- editHookOptionActive :: Maybe Bool+    <*> arbitraryReducedMaybe n -- editHookOptionAuthorizationHeader :: Maybe Text+    <*> arbitraryReducedMaybe n -- editHookOptionBranchFilter :: Maybe Text+    <*> arbitraryReducedMaybe n -- editHookOptionConfig :: Maybe (Map.Map String Text)+    <*> arbitraryReducedMaybe n -- editHookOptionEvents :: Maybe [Text]+  +instance Arbitrary EditIssueCommentOption where+  arbitrary = sized genEditIssueCommentOption++genEditIssueCommentOption :: Int -> Gen EditIssueCommentOption+genEditIssueCommentOption n =+  EditIssueCommentOption+    <$> arbitrary -- editIssueCommentOptionBody :: Text+  +instance Arbitrary EditIssueOption where+  arbitrary = sized genEditIssueOption++genEditIssueOption :: Int -> Gen EditIssueOption+genEditIssueOption n =+  EditIssueOption+    <$> arbitraryReducedMaybe n -- editIssueOptionAssignee :: Maybe Text+    <*> arbitraryReducedMaybe n -- editIssueOptionAssignees :: Maybe [Text]+    <*> arbitraryReducedMaybe n -- editIssueOptionBody :: Maybe Text+    <*> arbitraryReducedMaybe n -- editIssueOptionDueDate :: Maybe DateTime+    <*> arbitraryReducedMaybe n -- editIssueOptionMilestone :: Maybe Integer+    <*> arbitraryReducedMaybe n -- editIssueOptionRef :: Maybe Text+    <*> arbitraryReducedMaybe n -- editIssueOptionState :: Maybe Text+    <*> arbitraryReducedMaybe n -- editIssueOptionTitle :: Maybe Text+    <*> arbitraryReducedMaybe n -- editIssueOptionUnsetDueDate :: Maybe Bool+  +instance Arbitrary EditLabelOption where+  arbitrary = sized genEditLabelOption++genEditLabelOption :: Int -> Gen EditLabelOption+genEditLabelOption n =+  EditLabelOption+    <$> arbitraryReducedMaybe n -- editLabelOptionColor :: Maybe Text+    <*> arbitraryReducedMaybe n -- editLabelOptionDescription :: Maybe Text+    <*> arbitraryReducedMaybe n -- editLabelOptionExclusive :: Maybe Bool+    <*> arbitraryReducedMaybe n -- editLabelOptionName :: Maybe Text+  +instance Arbitrary EditMilestoneOption where+  arbitrary = sized genEditMilestoneOption++genEditMilestoneOption :: Int -> Gen EditMilestoneOption+genEditMilestoneOption n =+  EditMilestoneOption+    <$> arbitraryReducedMaybe n -- editMilestoneOptionDescription :: Maybe Text+    <*> arbitraryReducedMaybe n -- editMilestoneOptionDueOn :: Maybe DateTime+    <*> arbitraryReducedMaybe n -- editMilestoneOptionState :: Maybe Text+    <*> arbitraryReducedMaybe n -- editMilestoneOptionTitle :: Maybe Text+  +instance Arbitrary EditOrgOption where+  arbitrary = sized genEditOrgOption++genEditOrgOption :: Int -> Gen EditOrgOption+genEditOrgOption n =+  EditOrgOption+    <$> arbitraryReducedMaybe n -- editOrgOptionDescription :: Maybe Text+    <*> arbitraryReducedMaybe n -- editOrgOptionFullName :: Maybe Text+    <*> arbitraryReducedMaybe n -- editOrgOptionLocation :: Maybe Text+    <*> arbitraryReducedMaybe n -- editOrgOptionRepoAdminChangeTeamAccess :: Maybe Bool+    <*> arbitraryReducedMaybe n -- editOrgOptionVisibility :: Maybe E'Visibility+    <*> arbitraryReducedMaybe n -- editOrgOptionWebsite :: Maybe Text+  +instance Arbitrary EditPullRequestOption where+  arbitrary = sized genEditPullRequestOption++genEditPullRequestOption :: Int -> Gen EditPullRequestOption+genEditPullRequestOption n =+  EditPullRequestOption+    <$> arbitraryReducedMaybe n -- editPullRequestOptionAllowMaintainerEdit :: Maybe Bool+    <*> arbitraryReducedMaybe n -- editPullRequestOptionAssignee :: Maybe Text+    <*> arbitraryReducedMaybe n -- editPullRequestOptionAssignees :: Maybe [Text]+    <*> arbitraryReducedMaybe n -- editPullRequestOptionBase :: Maybe Text+    <*> arbitraryReducedMaybe n -- editPullRequestOptionBody :: Maybe Text+    <*> arbitraryReducedMaybe n -- editPullRequestOptionDueDate :: Maybe DateTime+    <*> arbitraryReducedMaybe n -- editPullRequestOptionLabels :: Maybe [Integer]+    <*> arbitraryReducedMaybe n -- editPullRequestOptionMilestone :: Maybe Integer+    <*> arbitraryReducedMaybe n -- editPullRequestOptionState :: Maybe Text+    <*> arbitraryReducedMaybe n -- editPullRequestOptionTitle :: Maybe Text+    <*> arbitraryReducedMaybe n -- editPullRequestOptionUnsetDueDate :: Maybe Bool+  +instance Arbitrary EditReactionOption where+  arbitrary = sized genEditReactionOption++genEditReactionOption :: Int -> Gen EditReactionOption+genEditReactionOption n =+  EditReactionOption+    <$> arbitraryReducedMaybe n -- editReactionOptionContent :: Maybe Text+  +instance Arbitrary EditReleaseOption where+  arbitrary = sized genEditReleaseOption++genEditReleaseOption :: Int -> Gen EditReleaseOption+genEditReleaseOption n =+  EditReleaseOption+    <$> arbitraryReducedMaybe n -- editReleaseOptionBody :: Maybe Text+    <*> arbitraryReducedMaybe n -- editReleaseOptionDraft :: Maybe Bool+    <*> arbitraryReducedMaybe n -- editReleaseOptionName :: Maybe Text+    <*> arbitraryReducedMaybe n -- editReleaseOptionPrerelease :: Maybe Bool+    <*> arbitraryReducedMaybe n -- editReleaseOptionTagName :: Maybe Text+    <*> arbitraryReducedMaybe n -- editReleaseOptionTargetCommitish :: Maybe Text+  +instance Arbitrary EditRepoOption where+  arbitrary = sized genEditRepoOption++genEditRepoOption :: Int -> Gen EditRepoOption+genEditRepoOption n =+  EditRepoOption+    <$> arbitraryReducedMaybe n -- editRepoOptionAllowManualMerge :: Maybe Bool+    <*> arbitraryReducedMaybe n -- editRepoOptionAllowMergeCommits :: Maybe Bool+    <*> arbitraryReducedMaybe n -- editRepoOptionAllowRebase :: Maybe Bool+    <*> arbitraryReducedMaybe n -- editRepoOptionAllowRebaseExplicit :: Maybe Bool+    <*> arbitraryReducedMaybe n -- editRepoOptionAllowRebaseUpdate :: Maybe Bool+    <*> arbitraryReducedMaybe n -- editRepoOptionAllowSquashMerge :: Maybe Bool+    <*> arbitraryReducedMaybe n -- editRepoOptionArchived :: Maybe Bool+    <*> arbitraryReducedMaybe n -- editRepoOptionAutodetectManualMerge :: Maybe Bool+    <*> arbitraryReducedMaybe n -- editRepoOptionDefaultAllowMaintainerEdit :: Maybe Bool+    <*> arbitraryReducedMaybe n -- editRepoOptionDefaultBranch :: Maybe Text+    <*> arbitraryReducedMaybe n -- editRepoOptionDefaultDeleteBranchAfterMerge :: Maybe Bool+    <*> arbitraryReducedMaybe n -- editRepoOptionDefaultMergeStyle :: Maybe Text+    <*> arbitraryReducedMaybe n -- editRepoOptionDescription :: Maybe Text+    <*> arbitraryReducedMaybe n -- editRepoOptionEnablePrune :: Maybe Bool+    <*> arbitraryReducedMaybe n -- editRepoOptionExternalTracker :: Maybe ExternalTracker+    <*> arbitraryReducedMaybe n -- editRepoOptionExternalWiki :: Maybe ExternalWiki+    <*> arbitraryReducedMaybe n -- editRepoOptionHasIssues :: Maybe Bool+    <*> arbitraryReducedMaybe n -- editRepoOptionHasProjects :: Maybe Bool+    <*> arbitraryReducedMaybe n -- editRepoOptionHasPullRequests :: Maybe Bool+    <*> arbitraryReducedMaybe n -- editRepoOptionHasWiki :: Maybe Bool+    <*> arbitraryReducedMaybe n -- editRepoOptionIgnoreWhitespaceConflicts :: Maybe Bool+    <*> arbitraryReducedMaybe n -- editRepoOptionInternalTracker :: Maybe InternalTracker+    <*> arbitraryReducedMaybe n -- editRepoOptionMirrorInterval :: Maybe Text+    <*> arbitraryReducedMaybe n -- editRepoOptionName :: Maybe Text+    <*> arbitraryReducedMaybe n -- editRepoOptionPrivate :: Maybe Bool+    <*> arbitraryReducedMaybe n -- editRepoOptionTemplate :: Maybe Bool+    <*> arbitraryReducedMaybe n -- editRepoOptionWebsite :: Maybe Text+  +instance Arbitrary EditTeamOption where+  arbitrary = sized genEditTeamOption++genEditTeamOption :: Int -> Gen EditTeamOption+genEditTeamOption n =+  EditTeamOption+    <$> arbitraryReducedMaybe n -- editTeamOptionCanCreateOrgRepo :: Maybe Bool+    <*> arbitraryReducedMaybe n -- editTeamOptionDescription :: Maybe Text+    <*> arbitraryReducedMaybe n -- editTeamOptionIncludesAllRepositories :: Maybe Bool+    <*> arbitrary -- editTeamOptionName :: Text+    <*> arbitraryReducedMaybe n -- editTeamOptionPermission :: Maybe E'Permission+    <*> arbitraryReducedMaybe n -- editTeamOptionUnits :: Maybe [Text]+    <*> arbitraryReducedMaybe n -- editTeamOptionUnitsMap :: Maybe (Map.Map String Text)+  +instance Arbitrary EditUserOption where+  arbitrary = sized genEditUserOption++genEditUserOption :: Int -> Gen EditUserOption+genEditUserOption n =+  EditUserOption+    <$> arbitraryReducedMaybe n -- editUserOptionActive :: Maybe Bool+    <*> arbitraryReducedMaybe n -- editUserOptionAdmin :: Maybe Bool+    <*> arbitraryReducedMaybe n -- editUserOptionAllowCreateOrganization :: Maybe Bool+    <*> arbitraryReducedMaybe n -- editUserOptionAllowGitHook :: Maybe Bool+    <*> arbitraryReducedMaybe n -- editUserOptionAllowImportLocal :: Maybe Bool+    <*> arbitraryReducedMaybe n -- editUserOptionDescription :: Maybe Text+    <*> arbitraryReducedMaybe n -- editUserOptionEmail :: Maybe Text+    <*> arbitraryReducedMaybe n -- editUserOptionFullName :: Maybe Text+    <*> arbitraryReducedMaybe n -- editUserOptionLocation :: Maybe Text+    <*> arbitrary -- editUserOptionLoginName :: Text+    <*> arbitraryReducedMaybe n -- editUserOptionMaxRepoCreation :: Maybe Integer+    <*> arbitraryReducedMaybe n -- editUserOptionMustChangePassword :: Maybe Bool+    <*> arbitraryReducedMaybe n -- editUserOptionPassword :: Maybe Text+    <*> arbitraryReducedMaybe n -- editUserOptionProhibitLogin :: Maybe Bool+    <*> arbitraryReducedMaybe n -- editUserOptionRestricted :: Maybe Bool+    <*> arbitrary -- editUserOptionSourceId :: Integer+    <*> arbitraryReducedMaybe n -- editUserOptionVisibility :: Maybe Text+    <*> arbitraryReducedMaybe n -- editUserOptionWebsite :: Maybe Text+  +instance Arbitrary Email where+  arbitrary = sized genEmail++genEmail :: Int -> Gen Email+genEmail n =+  Email+    <$> arbitraryReducedMaybe n -- emailEmail :: Maybe Text+    <*> arbitraryReducedMaybe n -- emailPrimary :: Maybe Bool+    <*> arbitraryReducedMaybe n -- emailVerified :: Maybe Bool+  +instance Arbitrary ExternalTracker where+  arbitrary = sized genExternalTracker++genExternalTracker :: Int -> Gen ExternalTracker+genExternalTracker n =+  ExternalTracker+    <$> arbitraryReducedMaybe n -- externalTrackerExternalTrackerFormat :: Maybe Text+    <*> arbitraryReducedMaybe n -- externalTrackerExternalTrackerRegexpPattern :: Maybe Text+    <*> arbitraryReducedMaybe n -- externalTrackerExternalTrackerStyle :: Maybe Text+    <*> arbitraryReducedMaybe n -- externalTrackerExternalTrackerUrl :: Maybe Text+  +instance Arbitrary ExternalWiki where+  arbitrary = sized genExternalWiki++genExternalWiki :: Int -> Gen ExternalWiki+genExternalWiki n =+  ExternalWiki+    <$> arbitraryReducedMaybe n -- externalWikiExternalWikiUrl :: Maybe Text+  +instance Arbitrary FileCommitResponse where+  arbitrary = sized genFileCommitResponse++genFileCommitResponse :: Int -> Gen FileCommitResponse+genFileCommitResponse n =+  FileCommitResponse+    <$> arbitraryReducedMaybe n -- fileCommitResponseAuthor :: Maybe CommitUser+    <*> arbitraryReducedMaybe n -- fileCommitResponseCommitter :: Maybe CommitUser+    <*> arbitraryReducedMaybe n -- fileCommitResponseCreated :: Maybe DateTime+    <*> arbitraryReducedMaybe n -- fileCommitResponseHtmlUrl :: Maybe Text+    <*> arbitraryReducedMaybe n -- fileCommitResponseMessage :: Maybe Text+    <*> arbitraryReducedMaybe n -- fileCommitResponseParents :: Maybe [CommitMeta]+    <*> arbitraryReducedMaybe n -- fileCommitResponseSha :: Maybe Text+    <*> arbitraryReducedMaybe n -- fileCommitResponseTree :: Maybe CommitMeta+    <*> arbitraryReducedMaybe n -- fileCommitResponseUrl :: Maybe Text+  +instance Arbitrary FileDeleteResponse where+  arbitrary = sized genFileDeleteResponse++genFileDeleteResponse :: Int -> Gen FileDeleteResponse+genFileDeleteResponse n =+  FileDeleteResponse+    <$> arbitraryReducedMaybe n -- fileDeleteResponseCommit :: Maybe FileCommitResponse+    <*> arbitraryReducedMaybeValue n -- fileDeleteResponseContent :: Maybe A.Value+    <*> arbitraryReducedMaybe n -- fileDeleteResponseVerification :: Maybe PayloadCommitVerification+  +instance Arbitrary FileLinksResponse where+  arbitrary = sized genFileLinksResponse++genFileLinksResponse :: Int -> Gen FileLinksResponse+genFileLinksResponse n =+  FileLinksResponse+    <$> arbitraryReducedMaybe n -- fileLinksResponseGit :: Maybe Text+    <*> arbitraryReducedMaybe n -- fileLinksResponseHtml :: Maybe Text+    <*> arbitraryReducedMaybe n -- fileLinksResponseSelf :: Maybe Text+  +instance Arbitrary FileResponse where+  arbitrary = sized genFileResponse++genFileResponse :: Int -> Gen FileResponse+genFileResponse n =+  FileResponse+    <$> arbitraryReducedMaybe n -- fileResponseCommit :: Maybe FileCommitResponse+    <*> arbitraryReducedMaybe n -- fileResponseContent :: Maybe ContentsResponse+    <*> arbitraryReducedMaybe n -- fileResponseVerification :: Maybe PayloadCommitVerification+  +instance Arbitrary GPGKey where+  arbitrary = sized genGPGKey++genGPGKey :: Int -> Gen GPGKey+genGPGKey n =+  GPGKey+    <$> arbitraryReducedMaybe n -- gPGKeyCanCertify :: Maybe Bool+    <*> arbitraryReducedMaybe n -- gPGKeyCanEncryptComms :: Maybe Bool+    <*> arbitraryReducedMaybe n -- gPGKeyCanEncryptStorage :: Maybe Bool+    <*> arbitraryReducedMaybe n -- gPGKeyCanSign :: Maybe Bool+    <*> arbitraryReducedMaybe n -- gPGKeyCreatedAt :: Maybe DateTime+    <*> arbitraryReducedMaybe n -- gPGKeyEmails :: Maybe [GPGKeyEmail]+    <*> arbitraryReducedMaybe n -- gPGKeyExpiresAt :: Maybe DateTime+    <*> arbitraryReducedMaybe n -- gPGKeyId :: Maybe Integer+    <*> arbitraryReducedMaybe n -- gPGKeyKeyId :: Maybe Text+    <*> arbitraryReducedMaybe n -- gPGKeyPrimaryKeyId :: Maybe Text+    <*> arbitraryReducedMaybe n -- gPGKeyPublicKey :: Maybe Text+    <*> arbitraryReducedMaybe n -- gPGKeySubkeys :: Maybe [GPGKey]+    <*> arbitraryReducedMaybe n -- gPGKeyVerified :: Maybe Bool+  +instance Arbitrary GPGKeyEmail where+  arbitrary = sized genGPGKeyEmail++genGPGKeyEmail :: Int -> Gen GPGKeyEmail+genGPGKeyEmail n =+  GPGKeyEmail+    <$> arbitraryReducedMaybe n -- gPGKeyEmailEmail :: Maybe Text+    <*> arbitraryReducedMaybe n -- gPGKeyEmailVerified :: Maybe Bool+  +instance Arbitrary GeneralAPISettings where+  arbitrary = sized genGeneralAPISettings++genGeneralAPISettings :: Int -> Gen GeneralAPISettings+genGeneralAPISettings n =+  GeneralAPISettings+    <$> arbitraryReducedMaybe n -- generalAPISettingsDefaultGitTreesPerPage :: Maybe Integer+    <*> arbitraryReducedMaybe n -- generalAPISettingsDefaultMaxBlobSize :: Maybe Integer+    <*> arbitraryReducedMaybe n -- generalAPISettingsDefaultPagingNum :: Maybe Integer+    <*> arbitraryReducedMaybe n -- generalAPISettingsMaxResponseItems :: Maybe Integer+  +instance Arbitrary GeneralAttachmentSettings where+  arbitrary = sized genGeneralAttachmentSettings++genGeneralAttachmentSettings :: Int -> Gen GeneralAttachmentSettings+genGeneralAttachmentSettings n =+  GeneralAttachmentSettings+    <$> arbitraryReducedMaybe n -- generalAttachmentSettingsAllowedTypes :: Maybe Text+    <*> arbitraryReducedMaybe n -- generalAttachmentSettingsEnabled :: Maybe Bool+    <*> arbitraryReducedMaybe n -- generalAttachmentSettingsMaxFiles :: Maybe Integer+    <*> arbitraryReducedMaybe n -- generalAttachmentSettingsMaxSize :: Maybe Integer+  +instance Arbitrary GeneralRepoSettings where+  arbitrary = sized genGeneralRepoSettings++genGeneralRepoSettings :: Int -> Gen GeneralRepoSettings+genGeneralRepoSettings n =+  GeneralRepoSettings+    <$> arbitraryReducedMaybe n -- generalRepoSettingsHttpGitDisabled :: Maybe Bool+    <*> arbitraryReducedMaybe n -- generalRepoSettingsLfsDisabled :: Maybe Bool+    <*> arbitraryReducedMaybe n -- generalRepoSettingsMigrationsDisabled :: Maybe Bool+    <*> arbitraryReducedMaybe n -- generalRepoSettingsMirrorsDisabled :: Maybe Bool+    <*> arbitraryReducedMaybe n -- generalRepoSettingsStarsDisabled :: Maybe Bool+    <*> arbitraryReducedMaybe n -- generalRepoSettingsTimeTrackingDisabled :: Maybe Bool+  +instance Arbitrary GeneralUISettings where+  arbitrary = sized genGeneralUISettings++genGeneralUISettings :: Int -> Gen GeneralUISettings+genGeneralUISettings n =+  GeneralUISettings+    <$> arbitraryReducedMaybe n -- generalUISettingsAllowedReactions :: Maybe [Text]+    <*> arbitraryReducedMaybe n -- generalUISettingsCustomEmojis :: Maybe [Text]+    <*> arbitraryReducedMaybe n -- generalUISettingsDefaultTheme :: Maybe Text+  +instance Arbitrary GenerateRepoOption where+  arbitrary = sized genGenerateRepoOption++genGenerateRepoOption :: Int -> Gen GenerateRepoOption+genGenerateRepoOption n =+  GenerateRepoOption+    <$> arbitraryReducedMaybe n -- generateRepoOptionAvatar :: Maybe Bool+    <*> arbitraryReducedMaybe n -- generateRepoOptionDefaultBranch :: Maybe Text+    <*> arbitraryReducedMaybe n -- generateRepoOptionDescription :: Maybe Text+    <*> arbitraryReducedMaybe n -- generateRepoOptionGitContent :: Maybe Bool+    <*> arbitraryReducedMaybe n -- generateRepoOptionGitHooks :: Maybe Bool+    <*> arbitraryReducedMaybe n -- generateRepoOptionLabels :: Maybe Bool+    <*> arbitrary -- generateRepoOptionName :: Text+    <*> arbitrary -- generateRepoOptionOwner :: Text+    <*> arbitraryReducedMaybe n -- generateRepoOptionPrivate :: Maybe Bool+    <*> arbitraryReducedMaybe n -- generateRepoOptionTopics :: Maybe Bool+    <*> arbitraryReducedMaybe n -- generateRepoOptionWebhooks :: Maybe Bool+  +instance Arbitrary GitBlobResponse where+  arbitrary = sized genGitBlobResponse++genGitBlobResponse :: Int -> Gen GitBlobResponse+genGitBlobResponse n =+  GitBlobResponse+    <$> arbitraryReducedMaybe n -- gitBlobResponseContent :: Maybe Text+    <*> arbitraryReducedMaybe n -- gitBlobResponseEncoding :: Maybe Text+    <*> arbitraryReducedMaybe n -- gitBlobResponseSha :: Maybe Text+    <*> arbitraryReducedMaybe n -- gitBlobResponseSize :: Maybe Integer+    <*> arbitraryReducedMaybe n -- gitBlobResponseUrl :: Maybe Text+  +instance Arbitrary GitEntry where+  arbitrary = sized genGitEntry++genGitEntry :: Int -> Gen GitEntry+genGitEntry n =+  GitEntry+    <$> arbitraryReducedMaybe n -- gitEntryMode :: Maybe Text+    <*> arbitraryReducedMaybe n -- gitEntryPath :: Maybe Text+    <*> arbitraryReducedMaybe n -- gitEntrySha :: Maybe Text+    <*> arbitraryReducedMaybe n -- gitEntrySize :: Maybe Integer+    <*> arbitraryReducedMaybe n -- gitEntryType :: Maybe Text+    <*> arbitraryReducedMaybe n -- gitEntryUrl :: Maybe Text+  +instance Arbitrary GitHook where+  arbitrary = sized genGitHook++genGitHook :: Int -> Gen GitHook+genGitHook n =+  GitHook+    <$> arbitraryReducedMaybe n -- gitHookContent :: Maybe Text+    <*> arbitraryReducedMaybe n -- gitHookIsActive :: Maybe Bool+    <*> arbitraryReducedMaybe n -- gitHookName :: Maybe Text+  +instance Arbitrary GitObject where+  arbitrary = sized genGitObject++genGitObject :: Int -> Gen GitObject+genGitObject n =+  GitObject+    <$> arbitraryReducedMaybe n -- gitObjectSha :: Maybe Text+    <*> arbitraryReducedMaybe n -- gitObjectType :: Maybe Text+    <*> arbitraryReducedMaybe n -- gitObjectUrl :: Maybe Text+  +instance Arbitrary GitTreeResponse where+  arbitrary = sized genGitTreeResponse++genGitTreeResponse :: Int -> Gen GitTreeResponse+genGitTreeResponse n =+  GitTreeResponse+    <$> arbitraryReducedMaybe n -- gitTreeResponsePage :: Maybe Integer+    <*> arbitraryReducedMaybe n -- gitTreeResponseSha :: Maybe Text+    <*> arbitraryReducedMaybe n -- gitTreeResponseTotalCount :: Maybe Integer+    <*> arbitraryReducedMaybe n -- gitTreeResponseTree :: Maybe [GitEntry]+    <*> arbitraryReducedMaybe n -- gitTreeResponseTruncated :: Maybe Bool+    <*> arbitraryReducedMaybe n -- gitTreeResponseUrl :: Maybe Text+  +instance Arbitrary Hook where+  arbitrary = sized genHook++genHook :: Int -> Gen Hook+genHook n =+  Hook+    <$> arbitraryReducedMaybe n -- hookActive :: Maybe Bool+    <*> arbitraryReducedMaybe n -- hookAuthorizationHeader :: Maybe Text+    <*> arbitraryReducedMaybe n -- hookConfig :: Maybe (Map.Map String Text)+    <*> arbitraryReducedMaybe n -- hookCreatedAt :: Maybe DateTime+    <*> arbitraryReducedMaybe n -- hookEvents :: Maybe [Text]+    <*> arbitraryReducedMaybe n -- hookId :: Maybe Integer+    <*> arbitraryReducedMaybe n -- hookType :: Maybe Text+    <*> arbitraryReducedMaybe n -- hookUpdatedAt :: Maybe DateTime+  +instance Arbitrary Identity where+  arbitrary = sized genIdentity++genIdentity :: Int -> Gen Identity+genIdentity n =+  Identity+    <$> arbitraryReducedMaybe n -- identityEmail :: Maybe Text+    <*> arbitraryReducedMaybe n -- identityName :: Maybe Text+  +instance Arbitrary InternalTracker where+  arbitrary = sized genInternalTracker++genInternalTracker :: Int -> Gen InternalTracker+genInternalTracker n =+  InternalTracker+    <$> arbitraryReducedMaybe n -- internalTrackerAllowOnlyContributorsToTrackTime :: Maybe Bool+    <*> arbitraryReducedMaybe n -- internalTrackerEnableIssueDependencies :: Maybe Bool+    <*> arbitraryReducedMaybe n -- internalTrackerEnableTimeTracker :: Maybe Bool+  +instance Arbitrary Issue where+  arbitrary = sized genIssue++genIssue :: Int -> Gen Issue+genIssue n =+  Issue+    <$> arbitraryReducedMaybe n -- issueAssets :: Maybe [Attachment]+    <*> arbitraryReducedMaybe n -- issueAssignee :: Maybe User+    <*> arbitraryReducedMaybe n -- issueAssignees :: Maybe [User]+    <*> arbitraryReducedMaybe n -- issueBody :: Maybe Text+    <*> arbitraryReducedMaybe n -- issueClosedAt :: Maybe DateTime+    <*> arbitraryReducedMaybe n -- issueComments :: Maybe Integer+    <*> arbitraryReducedMaybe n -- issueCreatedAt :: Maybe DateTime+    <*> arbitraryReducedMaybe n -- issueDueDate :: Maybe DateTime+    <*> arbitraryReducedMaybe n -- issueHtmlUrl :: Maybe Text+    <*> arbitraryReducedMaybe n -- issueId :: Maybe Integer+    <*> arbitraryReducedMaybe n -- issueIsLocked :: Maybe Bool+    <*> arbitraryReducedMaybe n -- issueLabels :: Maybe [Label]+    <*> arbitraryReducedMaybe n -- issueMilestone :: Maybe Milestone+    <*> arbitraryReducedMaybe n -- issueNumber :: Maybe Integer+    <*> arbitraryReducedMaybe n -- issueOriginalAuthor :: Maybe Text+    <*> arbitraryReducedMaybe n -- issueOriginalAuthorId :: Maybe Integer+    <*> arbitraryReducedMaybe n -- issuePullRequest :: Maybe PullRequestMeta+    <*> arbitraryReducedMaybe n -- issueRef :: Maybe Text+    <*> arbitraryReducedMaybe n -- issueRepository :: Maybe RepositoryMeta+    <*> arbitraryReducedMaybe n -- issueState :: Maybe Text+    <*> arbitraryReducedMaybe n -- issueTitle :: Maybe Text+    <*> arbitraryReducedMaybe n -- issueUpdatedAt :: Maybe DateTime+    <*> arbitraryReducedMaybe n -- issueUrl :: Maybe Text+    <*> arbitraryReducedMaybe n -- issueUser :: Maybe User+  +instance Arbitrary IssueDeadline where+  arbitrary = sized genIssueDeadline++genIssueDeadline :: Int -> Gen IssueDeadline+genIssueDeadline n =+  IssueDeadline+    <$> arbitraryReducedMaybe n -- issueDeadlineDueDate :: Maybe DateTime+  +instance Arbitrary IssueFormField where+  arbitrary = sized genIssueFormField++genIssueFormField :: Int -> Gen IssueFormField+genIssueFormField n =+  IssueFormField+    <$> arbitraryReducedMaybe n -- issueFormFieldAttributes :: Maybe (Map.Map String A.Value)+    <*> arbitraryReducedMaybe n -- issueFormFieldId :: Maybe Text+    <*> arbitraryReducedMaybe n -- issueFormFieldType :: Maybe Text+    <*> arbitraryReducedMaybe n -- issueFormFieldValidations :: Maybe (Map.Map String A.Value)+  +instance Arbitrary IssueLabelsOption where+  arbitrary = sized genIssueLabelsOption++genIssueLabelsOption :: Int -> Gen IssueLabelsOption+genIssueLabelsOption n =+  IssueLabelsOption+    <$> arbitraryReducedMaybe n -- issueLabelsOptionLabels :: Maybe [Integer]+  +instance Arbitrary IssueTemplate where+  arbitrary = sized genIssueTemplate++genIssueTemplate :: Int -> Gen IssueTemplate+genIssueTemplate n =+  IssueTemplate+    <$> arbitraryReducedMaybe n -- issueTemplateAbout :: Maybe Text+    <*> arbitraryReducedMaybe n -- issueTemplateBody :: Maybe [IssueFormField]+    <*> arbitraryReducedMaybe n -- issueTemplateContent :: Maybe Text+    <*> arbitraryReducedMaybe n -- issueTemplateFileName :: Maybe Text+    <*> arbitraryReducedMaybe n -- issueTemplateLabels :: Maybe [Text]+    <*> arbitraryReducedMaybe n -- issueTemplateName :: Maybe Text+    <*> arbitraryReducedMaybe n -- issueTemplateRef :: Maybe Text+    <*> arbitraryReducedMaybe n -- issueTemplateTitle :: Maybe Text+  +instance Arbitrary Label where+  arbitrary = sized genLabel++genLabel :: Int -> Gen Label+genLabel n =+  Label+    <$> arbitraryReducedMaybe n -- labelColor :: Maybe Text+    <*> arbitraryReducedMaybe n -- labelDescription :: Maybe Text+    <*> arbitraryReducedMaybe n -- labelExclusive :: Maybe Bool+    <*> arbitraryReducedMaybe n -- labelId :: Maybe Integer+    <*> arbitraryReducedMaybe n -- labelName :: Maybe Text+    <*> arbitraryReducedMaybe n -- labelUrl :: Maybe Text+  +instance Arbitrary MarkdownOption where+  arbitrary = sized genMarkdownOption++genMarkdownOption :: Int -> Gen MarkdownOption+genMarkdownOption n =+  MarkdownOption+    <$> arbitraryReducedMaybe n -- markdownOptionContext :: Maybe Text+    <*> arbitraryReducedMaybe n -- markdownOptionMode :: Maybe Text+    <*> arbitraryReducedMaybe n -- markdownOptionText :: Maybe Text+    <*> arbitraryReducedMaybe n -- markdownOptionWiki :: Maybe Bool+  +instance Arbitrary MergePullRequestOption where+  arbitrary = sized genMergePullRequestOption++genMergePullRequestOption :: Int -> Gen MergePullRequestOption+genMergePullRequestOption n =+  MergePullRequestOption+    <$> arbitrary -- mergePullRequestOptionDo :: E'Do+    <*> arbitraryReducedMaybe n -- mergePullRequestOptionMergeCommitId :: Maybe Text+    <*> arbitraryReducedMaybe n -- mergePullRequestOptionMergeMessageField :: Maybe Text+    <*> arbitraryReducedMaybe n -- mergePullRequestOptionMergeTitleField :: Maybe Text+    <*> arbitraryReducedMaybe n -- mergePullRequestOptionDeleteBranchAfterMerge :: Maybe Bool+    <*> arbitraryReducedMaybe n -- mergePullRequestOptionForceMerge :: Maybe Bool+    <*> arbitraryReducedMaybe n -- mergePullRequestOptionHeadCommitId :: Maybe Text+    <*> arbitraryReducedMaybe n -- mergePullRequestOptionMergeWhenChecksSucceed :: Maybe Bool+  +instance Arbitrary MigrateRepoOptions where+  arbitrary = sized genMigrateRepoOptions++genMigrateRepoOptions :: Int -> Gen MigrateRepoOptions+genMigrateRepoOptions n =+  MigrateRepoOptions+    <$> arbitraryReducedMaybe n -- migrateRepoOptionsAuthPassword :: Maybe Text+    <*> arbitraryReducedMaybe n -- migrateRepoOptionsAuthToken :: Maybe Text+    <*> arbitraryReducedMaybe n -- migrateRepoOptionsAuthUsername :: Maybe Text+    <*> arbitrary -- migrateRepoOptionsCloneAddr :: Text+    <*> arbitraryReducedMaybe n -- migrateRepoOptionsDescription :: Maybe Text+    <*> arbitraryReducedMaybe n -- migrateRepoOptionsIssues :: Maybe Bool+    <*> arbitraryReducedMaybe n -- migrateRepoOptionsLabels :: Maybe Bool+    <*> arbitraryReducedMaybe n -- migrateRepoOptionsLfs :: Maybe Bool+    <*> arbitraryReducedMaybe n -- migrateRepoOptionsLfsEndpoint :: Maybe Text+    <*> arbitraryReducedMaybe n -- migrateRepoOptionsMilestones :: Maybe Bool+    <*> arbitraryReducedMaybe n -- migrateRepoOptionsMirror :: Maybe Bool+    <*> arbitraryReducedMaybe n -- migrateRepoOptionsMirrorInterval :: Maybe Text+    <*> arbitraryReducedMaybe n -- migrateRepoOptionsPrivate :: Maybe Bool+    <*> arbitraryReducedMaybe n -- migrateRepoOptionsPullRequests :: Maybe Bool+    <*> arbitraryReducedMaybe n -- migrateRepoOptionsReleases :: Maybe Bool+    <*> arbitrary -- migrateRepoOptionsRepoName :: Text+    <*> arbitraryReducedMaybe n -- migrateRepoOptionsRepoOwner :: Maybe Text+    <*> arbitraryReducedMaybe n -- migrateRepoOptionsService :: Maybe E'Service+    <*> arbitraryReducedMaybe n -- migrateRepoOptionsUid :: Maybe Integer+    <*> arbitraryReducedMaybe n -- migrateRepoOptionsWiki :: Maybe Bool+  +instance Arbitrary Milestone where+  arbitrary = sized genMilestone++genMilestone :: Int -> Gen Milestone+genMilestone n =+  Milestone+    <$> arbitraryReducedMaybe n -- milestoneClosedAt :: Maybe DateTime+    <*> arbitraryReducedMaybe n -- milestoneClosedIssues :: Maybe Integer+    <*> arbitraryReducedMaybe n -- milestoneCreatedAt :: Maybe DateTime+    <*> arbitraryReducedMaybe n -- milestoneDescription :: Maybe Text+    <*> arbitraryReducedMaybe n -- milestoneDueOn :: Maybe DateTime+    <*> arbitraryReducedMaybe n -- milestoneId :: Maybe Integer+    <*> arbitraryReducedMaybe n -- milestoneOpenIssues :: Maybe Integer+    <*> arbitraryReducedMaybe n -- milestoneState :: Maybe Text+    <*> arbitraryReducedMaybe n -- milestoneTitle :: Maybe Text+    <*> arbitraryReducedMaybe n -- milestoneUpdatedAt :: Maybe DateTime+  +instance Arbitrary NodeInfo where+  arbitrary = sized genNodeInfo++genNodeInfo :: Int -> Gen NodeInfo+genNodeInfo n =+  NodeInfo+    <$> arbitraryReducedMaybeValue n -- nodeInfoMetadata :: Maybe A.Value+    <*> arbitraryReducedMaybe n -- nodeInfoOpenRegistrations :: Maybe Bool+    <*> arbitraryReducedMaybe n -- nodeInfoProtocols :: Maybe [Text]+    <*> arbitraryReducedMaybe n -- nodeInfoServices :: Maybe NodeInfoServices+    <*> arbitraryReducedMaybe n -- nodeInfoSoftware :: Maybe NodeInfoSoftware+    <*> arbitraryReducedMaybe n -- nodeInfoUsage :: Maybe NodeInfoUsage+    <*> arbitraryReducedMaybe n -- nodeInfoVersion :: Maybe Text+  +instance Arbitrary NodeInfoServices where+  arbitrary = sized genNodeInfoServices++genNodeInfoServices :: Int -> Gen NodeInfoServices+genNodeInfoServices n =+  NodeInfoServices+    <$> arbitraryReducedMaybe n -- nodeInfoServicesInbound :: Maybe [Text]+    <*> arbitraryReducedMaybe n -- nodeInfoServicesOutbound :: Maybe [Text]+  +instance Arbitrary NodeInfoSoftware where+  arbitrary = sized genNodeInfoSoftware++genNodeInfoSoftware :: Int -> Gen NodeInfoSoftware+genNodeInfoSoftware n =+  NodeInfoSoftware+    <$> arbitraryReducedMaybe n -- nodeInfoSoftwareHomepage :: Maybe Text+    <*> arbitraryReducedMaybe n -- nodeInfoSoftwareName :: Maybe Text+    <*> arbitraryReducedMaybe n -- nodeInfoSoftwareRepository :: Maybe Text+    <*> arbitraryReducedMaybe n -- nodeInfoSoftwareVersion :: Maybe Text+  +instance Arbitrary NodeInfoUsage where+  arbitrary = sized genNodeInfoUsage++genNodeInfoUsage :: Int -> Gen NodeInfoUsage+genNodeInfoUsage n =+  NodeInfoUsage+    <$> arbitraryReducedMaybe n -- nodeInfoUsageLocalComments :: Maybe Integer+    <*> arbitraryReducedMaybe n -- nodeInfoUsageLocalPosts :: Maybe Integer+    <*> arbitraryReducedMaybe n -- nodeInfoUsageUsers :: Maybe NodeInfoUsageUsers+  +instance Arbitrary NodeInfoUsageUsers where+  arbitrary = sized genNodeInfoUsageUsers++genNodeInfoUsageUsers :: Int -> Gen NodeInfoUsageUsers+genNodeInfoUsageUsers n =+  NodeInfoUsageUsers+    <$> arbitraryReducedMaybe n -- nodeInfoUsageUsersActiveHalfyear :: Maybe Integer+    <*> arbitraryReducedMaybe n -- nodeInfoUsageUsersActiveMonth :: Maybe Integer+    <*> arbitraryReducedMaybe n -- nodeInfoUsageUsersTotal :: Maybe Integer+  +instance Arbitrary Note where+  arbitrary = sized genNote++genNote :: Int -> Gen Note+genNote n =+  Note+    <$> arbitraryReducedMaybe n -- noteCommit :: Maybe Commit+    <*> arbitraryReducedMaybe n -- noteMessage :: Maybe Text+  +instance Arbitrary NotificationCount where+  arbitrary = sized genNotificationCount++genNotificationCount :: Int -> Gen NotificationCount+genNotificationCount n =+  NotificationCount+    <$> arbitraryReducedMaybe n -- notificationCountNew :: Maybe Integer+  +instance Arbitrary NotificationSubject where+  arbitrary = sized genNotificationSubject++genNotificationSubject :: Int -> Gen NotificationSubject+genNotificationSubject n =+  NotificationSubject+    <$> arbitraryReducedMaybe n -- notificationSubjectHtmlUrl :: Maybe Text+    <*> arbitraryReducedMaybe n -- notificationSubjectLatestCommentHtmlUrl :: Maybe Text+    <*> arbitraryReducedMaybe n -- notificationSubjectLatestCommentUrl :: Maybe Text+    <*> arbitraryReducedMaybe n -- notificationSubjectState :: Maybe Text+    <*> arbitraryReducedMaybe n -- notificationSubjectTitle :: Maybe Text+    <*> arbitraryReducedMaybe n -- notificationSubjectType :: Maybe Text+    <*> arbitraryReducedMaybe n -- notificationSubjectUrl :: Maybe Text+  +instance Arbitrary NotificationThread where+  arbitrary = sized genNotificationThread++genNotificationThread :: Int -> Gen NotificationThread+genNotificationThread n =+  NotificationThread+    <$> arbitraryReducedMaybe n -- notificationThreadId :: Maybe Integer+    <*> arbitraryReducedMaybe n -- notificationThreadPinned :: Maybe Bool+    <*> arbitraryReducedMaybe n -- notificationThreadRepository :: Maybe Repository+    <*> arbitraryReducedMaybe n -- notificationThreadSubject :: Maybe NotificationSubject+    <*> arbitraryReducedMaybe n -- notificationThreadUnread :: Maybe Bool+    <*> arbitraryReducedMaybe n -- notificationThreadUpdatedAt :: Maybe DateTime+    <*> arbitraryReducedMaybe n -- notificationThreadUrl :: Maybe Text+  +instance Arbitrary OAuth2Application where+  arbitrary = sized genOAuth2Application++genOAuth2Application :: Int -> Gen OAuth2Application+genOAuth2Application n =+  OAuth2Application+    <$> arbitraryReducedMaybe n -- oAuth2ApplicationClientId :: Maybe Text+    <*> arbitraryReducedMaybe n -- oAuth2ApplicationClientSecret :: Maybe Text+    <*> arbitraryReducedMaybe n -- oAuth2ApplicationConfidentialClient :: Maybe Bool+    <*> arbitraryReducedMaybe n -- oAuth2ApplicationCreated :: Maybe DateTime+    <*> arbitraryReducedMaybe n -- oAuth2ApplicationId :: Maybe Integer+    <*> arbitraryReducedMaybe n -- oAuth2ApplicationName :: Maybe Text+    <*> arbitraryReducedMaybe n -- oAuth2ApplicationRedirectUris :: Maybe [Text]+  +instance Arbitrary Organization where+  arbitrary = sized genOrganization++genOrganization :: Int -> Gen Organization+genOrganization n =+  Organization+    <$> arbitraryReducedMaybe n -- organizationAvatarUrl :: Maybe Text+    <*> arbitraryReducedMaybe n -- organizationDescription :: Maybe Text+    <*> arbitraryReducedMaybe n -- organizationFullName :: Maybe Text+    <*> arbitraryReducedMaybe n -- organizationId :: Maybe Integer+    <*> arbitraryReducedMaybe n -- organizationLocation :: Maybe Text+    <*> arbitraryReducedMaybe n -- organizationName :: Maybe Text+    <*> arbitraryReducedMaybe n -- organizationRepoAdminChangeTeamAccess :: Maybe Bool+    <*> arbitraryReducedMaybe n -- organizationUsername :: Maybe Text+    <*> arbitraryReducedMaybe n -- organizationVisibility :: Maybe Text+    <*> arbitraryReducedMaybe n -- organizationWebsite :: Maybe Text+  +instance Arbitrary OrganizationPermissions where+  arbitrary = sized genOrganizationPermissions++genOrganizationPermissions :: Int -> Gen OrganizationPermissions+genOrganizationPermissions n =+  OrganizationPermissions+    <$> arbitraryReducedMaybe n -- organizationPermissionsCanCreateRepository :: Maybe Bool+    <*> arbitraryReducedMaybe n -- organizationPermissionsCanRead :: Maybe Bool+    <*> arbitraryReducedMaybe n -- organizationPermissionsCanWrite :: Maybe Bool+    <*> arbitraryReducedMaybe n -- organizationPermissionsIsAdmin :: Maybe Bool+    <*> arbitraryReducedMaybe n -- organizationPermissionsIsOwner :: Maybe Bool+  +instance Arbitrary PRBranchInfo where+  arbitrary = sized genPRBranchInfo++genPRBranchInfo :: Int -> Gen PRBranchInfo+genPRBranchInfo n =+  PRBranchInfo+    <$> arbitraryReducedMaybe n -- pRBranchInfoLabel :: Maybe Text+    <*> arbitraryReducedMaybe n -- pRBranchInfoRef :: Maybe Text+    <*> arbitraryReducedMaybe n -- pRBranchInfoRepo :: Maybe Repository+    <*> arbitraryReducedMaybe n -- pRBranchInfoRepoId :: Maybe Integer+    <*> arbitraryReducedMaybe n -- pRBranchInfoSha :: Maybe Text+  +instance Arbitrary Package where+  arbitrary = sized genPackage++genPackage :: Int -> Gen Package+genPackage n =+  Package+    <$> arbitraryReducedMaybe n -- packageCreatedAt :: Maybe DateTime+    <*> arbitraryReducedMaybe n -- packageCreator :: Maybe User+    <*> arbitraryReducedMaybe n -- packageId :: Maybe Integer+    <*> arbitraryReducedMaybe n -- packageName :: Maybe Text+    <*> arbitraryReducedMaybe n -- packageOwner :: Maybe User+    <*> arbitraryReducedMaybe n -- packageRepository :: Maybe Repository+    <*> arbitraryReducedMaybe n -- packageType :: Maybe Text+    <*> arbitraryReducedMaybe n -- packageVersion :: Maybe Text+  +instance Arbitrary PackageFile where+  arbitrary = sized genPackageFile++genPackageFile :: Int -> Gen PackageFile+genPackageFile n =+  PackageFile+    <$> arbitraryReducedMaybe n -- packageFileSize :: Maybe Integer+    <*> arbitraryReducedMaybe n -- packageFileId :: Maybe Integer+    <*> arbitraryReducedMaybe n -- packageFileMd5 :: Maybe Text+    <*> arbitraryReducedMaybe n -- packageFileName :: Maybe Text+    <*> arbitraryReducedMaybe n -- packageFileSha1 :: Maybe Text+    <*> arbitraryReducedMaybe n -- packageFileSha256 :: Maybe Text+    <*> arbitraryReducedMaybe n -- packageFileSha512 :: Maybe Text+  +instance Arbitrary PayloadCommit where+  arbitrary = sized genPayloadCommit++genPayloadCommit :: Int -> Gen PayloadCommit+genPayloadCommit n =+  PayloadCommit+    <$> arbitraryReducedMaybe n -- payloadCommitAdded :: Maybe [Text]+    <*> arbitraryReducedMaybe n -- payloadCommitAuthor :: Maybe PayloadUser+    <*> arbitraryReducedMaybe n -- payloadCommitCommitter :: Maybe PayloadUser+    <*> arbitraryReducedMaybe n -- payloadCommitId :: Maybe Text+    <*> arbitraryReducedMaybe n -- payloadCommitMessage :: Maybe Text+    <*> arbitraryReducedMaybe n -- payloadCommitModified :: Maybe [Text]+    <*> arbitraryReducedMaybe n -- payloadCommitRemoved :: Maybe [Text]+    <*> arbitraryReducedMaybe n -- payloadCommitTimestamp :: Maybe DateTime+    <*> arbitraryReducedMaybe n -- payloadCommitUrl :: Maybe Text+    <*> arbitraryReducedMaybe n -- payloadCommitVerification :: Maybe PayloadCommitVerification+  +instance Arbitrary PayloadCommitVerification where+  arbitrary = sized genPayloadCommitVerification++genPayloadCommitVerification :: Int -> Gen PayloadCommitVerification+genPayloadCommitVerification n =+  PayloadCommitVerification+    <$> arbitraryReducedMaybe n -- payloadCommitVerificationPayload :: Maybe Text+    <*> arbitraryReducedMaybe n -- payloadCommitVerificationReason :: Maybe Text+    <*> arbitraryReducedMaybe n -- payloadCommitVerificationSignature :: Maybe Text+    <*> arbitraryReducedMaybe n -- payloadCommitVerificationSigner :: Maybe PayloadUser+    <*> arbitraryReducedMaybe n -- payloadCommitVerificationVerified :: Maybe Bool+  +instance Arbitrary PayloadUser where+  arbitrary = sized genPayloadUser++genPayloadUser :: Int -> Gen PayloadUser+genPayloadUser n =+  PayloadUser+    <$> arbitraryReducedMaybe n -- payloadUserEmail :: Maybe Text+    <*> arbitraryReducedMaybe n -- payloadUserName :: Maybe Text+    <*> arbitraryReducedMaybe n -- payloadUserUsername :: Maybe Text+  +instance Arbitrary Permission where+  arbitrary = sized genPermission++genPermission :: Int -> Gen Permission+genPermission n =+  Permission+    <$> arbitraryReducedMaybe n -- permissionAdmin :: Maybe Bool+    <*> arbitraryReducedMaybe n -- permissionPull :: Maybe Bool+    <*> arbitraryReducedMaybe n -- permissionPush :: Maybe Bool+  +instance Arbitrary PublicKey where+  arbitrary = sized genPublicKey++genPublicKey :: Int -> Gen PublicKey+genPublicKey n =+  PublicKey+    <$> arbitraryReducedMaybe n -- publicKeyCreatedAt :: Maybe DateTime+    <*> arbitraryReducedMaybe n -- publicKeyFingerprint :: Maybe Text+    <*> arbitraryReducedMaybe n -- publicKeyId :: Maybe Integer+    <*> arbitraryReducedMaybe n -- publicKeyKey :: Maybe Text+    <*> arbitraryReducedMaybe n -- publicKeyKeyType :: Maybe Text+    <*> arbitraryReducedMaybe n -- publicKeyReadOnly :: Maybe Bool+    <*> arbitraryReducedMaybe n -- publicKeyTitle :: Maybe Text+    <*> arbitraryReducedMaybe n -- publicKeyUrl :: Maybe Text+    <*> arbitraryReducedMaybe n -- publicKeyUser :: Maybe User+  +instance Arbitrary PullRequest where+  arbitrary = sized genPullRequest++genPullRequest :: Int -> Gen PullRequest+genPullRequest n =+  PullRequest+    <$> arbitraryReducedMaybe n -- pullRequestAllowMaintainerEdit :: Maybe Bool+    <*> arbitraryReducedMaybe n -- pullRequestAssignee :: Maybe User+    <*> arbitraryReducedMaybe n -- pullRequestAssignees :: Maybe [User]+    <*> arbitraryReducedMaybe n -- pullRequestBase :: Maybe PRBranchInfo+    <*> arbitraryReducedMaybe n -- pullRequestBody :: Maybe Text+    <*> arbitraryReducedMaybe n -- pullRequestClosedAt :: Maybe DateTime+    <*> arbitraryReducedMaybe n -- pullRequestComments :: Maybe Integer+    <*> arbitraryReducedMaybe n -- pullRequestCreatedAt :: Maybe DateTime+    <*> arbitraryReducedMaybe n -- pullRequestDiffUrl :: Maybe Text+    <*> arbitraryReducedMaybe n -- pullRequestDueDate :: Maybe DateTime+    <*> arbitraryReducedMaybe n -- pullRequestHead :: Maybe PRBranchInfo+    <*> arbitraryReducedMaybe n -- pullRequestHtmlUrl :: Maybe Text+    <*> arbitraryReducedMaybe n -- pullRequestId :: Maybe Integer+    <*> arbitraryReducedMaybe n -- pullRequestIsLocked :: Maybe Bool+    <*> arbitraryReducedMaybe n -- pullRequestLabels :: Maybe [Label]+    <*> arbitraryReducedMaybe n -- pullRequestMergeBase :: Maybe Text+    <*> arbitraryReducedMaybe n -- pullRequestMergeCommitSha :: Maybe Text+    <*> arbitraryReducedMaybe n -- pullRequestMergeable :: Maybe Bool+    <*> arbitraryReducedMaybe n -- pullRequestMerged :: Maybe Bool+    <*> arbitraryReducedMaybe n -- pullRequestMergedAt :: Maybe DateTime+    <*> arbitraryReducedMaybe n -- pullRequestMergedBy :: Maybe User+    <*> arbitraryReducedMaybe n -- pullRequestMilestone :: Maybe Milestone+    <*> arbitraryReducedMaybe n -- pullRequestNumber :: Maybe Integer+    <*> arbitraryReducedMaybe n -- pullRequestPatchUrl :: Maybe Text+    <*> arbitraryReducedMaybe n -- pullRequestState :: Maybe Text+    <*> arbitraryReducedMaybe n -- pullRequestTitle :: Maybe Text+    <*> arbitraryReducedMaybe n -- pullRequestUpdatedAt :: Maybe DateTime+    <*> arbitraryReducedMaybe n -- pullRequestUrl :: Maybe Text+    <*> arbitraryReducedMaybe n -- pullRequestUser :: Maybe User+  +instance Arbitrary PullRequestMeta where+  arbitrary = sized genPullRequestMeta++genPullRequestMeta :: Int -> Gen PullRequestMeta+genPullRequestMeta n =+  PullRequestMeta+    <$> arbitraryReducedMaybe n -- pullRequestMetaMerged :: Maybe Bool+    <*> arbitraryReducedMaybe n -- pullRequestMetaMergedAt :: Maybe DateTime+  +instance Arbitrary PullReview where+  arbitrary = sized genPullReview++genPullReview :: Int -> Gen PullReview+genPullReview n =+  PullReview+    <$> arbitraryReducedMaybe n -- pullReviewBody :: Maybe Text+    <*> arbitraryReducedMaybe n -- pullReviewCommentsCount :: Maybe Integer+    <*> arbitraryReducedMaybe n -- pullReviewCommitId :: Maybe Text+    <*> arbitraryReducedMaybe n -- pullReviewDismissed :: Maybe Bool+    <*> arbitraryReducedMaybe n -- pullReviewHtmlUrl :: Maybe Text+    <*> arbitraryReducedMaybe n -- pullReviewId :: Maybe Integer+    <*> arbitraryReducedMaybe n -- pullReviewOfficial :: Maybe Bool+    <*> arbitraryReducedMaybe n -- pullReviewPullRequestUrl :: Maybe Text+    <*> arbitraryReducedMaybe n -- pullReviewStale :: Maybe Bool+    <*> arbitraryReducedMaybe n -- pullReviewState :: Maybe Text+    <*> arbitraryReducedMaybe n -- pullReviewSubmittedAt :: Maybe DateTime+    <*> arbitraryReducedMaybe n -- pullReviewTeam :: Maybe Team+    <*> arbitraryReducedMaybe n -- pullReviewUpdatedAt :: Maybe DateTime+    <*> arbitraryReducedMaybe n -- pullReviewUser :: Maybe User+  +instance Arbitrary PullReviewComment where+  arbitrary = sized genPullReviewComment++genPullReviewComment :: Int -> Gen PullReviewComment+genPullReviewComment n =+  PullReviewComment+    <$> arbitraryReducedMaybe n -- pullReviewCommentBody :: Maybe Text+    <*> arbitraryReducedMaybe n -- pullReviewCommentCommitId :: Maybe Text+    <*> arbitraryReducedMaybe n -- pullReviewCommentCreatedAt :: Maybe DateTime+    <*> arbitraryReducedMaybe n -- pullReviewCommentDiffHunk :: Maybe Text+    <*> arbitraryReducedMaybe n -- pullReviewCommentHtmlUrl :: Maybe Text+    <*> arbitraryReducedMaybe n -- pullReviewCommentId :: Maybe Integer+    <*> arbitraryReducedMaybe n -- pullReviewCommentOriginalCommitId :: Maybe Text+    <*> arbitraryReducedMaybe n -- pullReviewCommentOriginalPosition :: Maybe Int+    <*> arbitraryReducedMaybe n -- pullReviewCommentPath :: Maybe Text+    <*> arbitraryReducedMaybe n -- pullReviewCommentPosition :: Maybe Int+    <*> arbitraryReducedMaybe n -- pullReviewCommentPullRequestReviewId :: Maybe Integer+    <*> arbitraryReducedMaybe n -- pullReviewCommentPullRequestUrl :: Maybe Text+    <*> arbitraryReducedMaybe n -- pullReviewCommentResolver :: Maybe User+    <*> arbitraryReducedMaybe n -- pullReviewCommentUpdatedAt :: Maybe DateTime+    <*> arbitraryReducedMaybe n -- pullReviewCommentUser :: Maybe User+  +instance Arbitrary PullReviewRequestOptions where+  arbitrary = sized genPullReviewRequestOptions++genPullReviewRequestOptions :: Int -> Gen PullReviewRequestOptions+genPullReviewRequestOptions n =+  PullReviewRequestOptions+    <$> arbitraryReducedMaybe n -- pullReviewRequestOptionsReviewers :: Maybe [Text]+    <*> arbitraryReducedMaybe n -- pullReviewRequestOptionsTeamReviewers :: Maybe [Text]+  +instance Arbitrary PushMirror where+  arbitrary = sized genPushMirror++genPushMirror :: Int -> Gen PushMirror+genPushMirror n =+  PushMirror+    <$> arbitraryReducedMaybe n -- pushMirrorCreated :: Maybe Text+    <*> arbitraryReducedMaybe n -- pushMirrorInterval :: Maybe Text+    <*> arbitraryReducedMaybe n -- pushMirrorLastError :: Maybe Text+    <*> arbitraryReducedMaybe n -- pushMirrorLastUpdate :: Maybe Text+    <*> arbitraryReducedMaybe n -- pushMirrorRemoteAddress :: Maybe Text+    <*> arbitraryReducedMaybe n -- pushMirrorRemoteName :: Maybe Text+    <*> arbitraryReducedMaybe n -- pushMirrorRepoName :: Maybe Text+    <*> arbitraryReducedMaybe n -- pushMirrorSyncOnCommit :: Maybe Bool+  +instance Arbitrary Reaction where+  arbitrary = sized genReaction++genReaction :: Int -> Gen Reaction+genReaction n =+  Reaction+    <$> arbitraryReducedMaybe n -- reactionContent :: Maybe Text+    <*> arbitraryReducedMaybe n -- reactionCreatedAt :: Maybe DateTime+    <*> arbitraryReducedMaybe n -- reactionUser :: Maybe User+  +instance Arbitrary Reference where+  arbitrary = sized genReference++genReference :: Int -> Gen Reference+genReference n =+  Reference+    <$> arbitraryReducedMaybe n -- referenceObject :: Maybe GitObject+    <*> arbitraryReducedMaybe n -- referenceRef :: Maybe Text+    <*> arbitraryReducedMaybe n -- referenceUrl :: Maybe Text+  +instance Arbitrary Release where+  arbitrary = sized genRelease++genRelease :: Int -> Gen Release+genRelease n =+  Release+    <$> arbitraryReducedMaybe n -- releaseAssets :: Maybe [Attachment]+    <*> arbitraryReducedMaybe n -- releaseAuthor :: Maybe User+    <*> arbitraryReducedMaybe n -- releaseBody :: Maybe Text+    <*> arbitraryReducedMaybe n -- releaseCreatedAt :: Maybe DateTime+    <*> arbitraryReducedMaybe n -- releaseDraft :: Maybe Bool+    <*> arbitraryReducedMaybe n -- releaseHtmlUrl :: Maybe Text+    <*> arbitraryReducedMaybe n -- releaseId :: Maybe Integer+    <*> arbitraryReducedMaybe n -- releaseName :: Maybe Text+    <*> arbitraryReducedMaybe n -- releasePrerelease :: Maybe Bool+    <*> arbitraryReducedMaybe n -- releasePublishedAt :: Maybe DateTime+    <*> arbitraryReducedMaybe n -- releaseTagName :: Maybe Text+    <*> arbitraryReducedMaybe n -- releaseTarballUrl :: Maybe Text+    <*> arbitraryReducedMaybe n -- releaseTargetCommitish :: Maybe Text+    <*> arbitraryReducedMaybe n -- releaseUrl :: Maybe Text+    <*> arbitraryReducedMaybe n -- releaseZipballUrl :: Maybe Text+  +instance Arbitrary RepoCollaboratorPermission where+  arbitrary = sized genRepoCollaboratorPermission++genRepoCollaboratorPermission :: Int -> Gen RepoCollaboratorPermission+genRepoCollaboratorPermission n =+  RepoCollaboratorPermission+    <$> arbitraryReducedMaybe n -- repoCollaboratorPermissionPermission :: Maybe Text+    <*> arbitraryReducedMaybe n -- repoCollaboratorPermissionRoleName :: Maybe Text+    <*> arbitraryReducedMaybe n -- repoCollaboratorPermissionUser :: Maybe User+  +instance Arbitrary RepoCommit where+  arbitrary = sized genRepoCommit++genRepoCommit :: Int -> Gen RepoCommit+genRepoCommit n =+  RepoCommit+    <$> arbitraryReducedMaybe n -- repoCommitAuthor :: Maybe CommitUser+    <*> arbitraryReducedMaybe n -- repoCommitCommitter :: Maybe CommitUser+    <*> arbitraryReducedMaybe n -- repoCommitMessage :: Maybe Text+    <*> arbitraryReducedMaybe n -- repoCommitTree :: Maybe CommitMeta+    <*> arbitraryReducedMaybe n -- repoCommitUrl :: Maybe Text+    <*> arbitraryReducedMaybe n -- repoCommitVerification :: Maybe PayloadCommitVerification+  +instance Arbitrary RepoTopicOptions where+  arbitrary = sized genRepoTopicOptions++genRepoTopicOptions :: Int -> Gen RepoTopicOptions+genRepoTopicOptions n =+  RepoTopicOptions+    <$> arbitraryReducedMaybe n -- repoTopicOptionsTopics :: Maybe [Text]+  +instance Arbitrary RepoTransfer where+  arbitrary = sized genRepoTransfer++genRepoTransfer :: Int -> Gen RepoTransfer+genRepoTransfer n =+  RepoTransfer+    <$> arbitraryReducedMaybe n -- repoTransferDoer :: Maybe User+    <*> arbitraryReducedMaybe n -- repoTransferRecipient :: Maybe User+    <*> arbitraryReducedMaybe n -- repoTransferTeams :: Maybe [Team]+  +instance Arbitrary Repository where+  arbitrary = sized genRepository++genRepository :: Int -> Gen Repository+genRepository n =+  Repository+    <$> arbitraryReducedMaybe n -- repositoryAllowMergeCommits :: Maybe Bool+    <*> arbitraryReducedMaybe n -- repositoryAllowRebase :: Maybe Bool+    <*> arbitraryReducedMaybe n -- repositoryAllowRebaseExplicit :: Maybe Bool+    <*> arbitraryReducedMaybe n -- repositoryAllowRebaseUpdate :: Maybe Bool+    <*> arbitraryReducedMaybe n -- repositoryAllowSquashMerge :: Maybe Bool+    <*> arbitraryReducedMaybe n -- repositoryArchived :: Maybe Bool+    <*> arbitraryReducedMaybe n -- repositoryAvatarUrl :: Maybe Text+    <*> arbitraryReducedMaybe n -- repositoryCloneUrl :: Maybe Text+    <*> arbitraryReducedMaybe n -- repositoryCreatedAt :: Maybe DateTime+    <*> arbitraryReducedMaybe n -- repositoryDefaultAllowMaintainerEdit :: Maybe Bool+    <*> arbitraryReducedMaybe n -- repositoryDefaultBranch :: Maybe Text+    <*> arbitraryReducedMaybe n -- repositoryDefaultDeleteBranchAfterMerge :: Maybe Bool+    <*> arbitraryReducedMaybe n -- repositoryDefaultMergeStyle :: Maybe Text+    <*> arbitraryReducedMaybe n -- repositoryDescription :: Maybe Text+    <*> arbitraryReducedMaybe n -- repositoryEmpty :: Maybe Bool+    <*> arbitraryReducedMaybe n -- repositoryExternalTracker :: Maybe ExternalTracker+    <*> arbitraryReducedMaybe n -- repositoryExternalWiki :: Maybe ExternalWiki+    <*> arbitraryReducedMaybe n -- repositoryFork :: Maybe Bool+    <*> arbitraryReducedMaybe n -- repositoryForksCount :: Maybe Integer+    <*> arbitraryReducedMaybe n -- repositoryFullName :: Maybe Text+    <*> arbitraryReducedMaybe n -- repositoryHasIssues :: Maybe Bool+    <*> arbitraryReducedMaybe n -- repositoryHasProjects :: Maybe Bool+    <*> arbitraryReducedMaybe n -- repositoryHasPullRequests :: Maybe Bool+    <*> arbitraryReducedMaybe n -- repositoryHasWiki :: Maybe Bool+    <*> arbitraryReducedMaybe n -- repositoryHtmlUrl :: Maybe Text+    <*> arbitraryReducedMaybe n -- repositoryId :: Maybe Integer+    <*> arbitraryReducedMaybe n -- repositoryIgnoreWhitespaceConflicts :: Maybe Bool+    <*> arbitraryReducedMaybe n -- repositoryInternal :: Maybe Bool+    <*> arbitraryReducedMaybe n -- repositoryInternalTracker :: Maybe InternalTracker+    <*> arbitraryReducedMaybe n -- repositoryLanguage :: Maybe Text+    <*> arbitraryReducedMaybe n -- repositoryLanguagesUrl :: Maybe Text+    <*> arbitraryReducedMaybe n -- repositoryLink :: Maybe Text+    <*> arbitraryReducedMaybe n -- repositoryMirror :: Maybe Bool+    <*> arbitraryReducedMaybe n -- repositoryMirrorInterval :: Maybe Text+    <*> arbitraryReducedMaybe n -- repositoryMirrorUpdated :: Maybe DateTime+    <*> arbitraryReducedMaybe n -- repositoryName :: Maybe Text+    <*> arbitraryReducedMaybe n -- repositoryOpenIssuesCount :: Maybe Integer+    <*> arbitraryReducedMaybe n -- repositoryOpenPrCounter :: Maybe Integer+    <*> arbitraryReducedMaybe n -- repositoryOriginalUrl :: Maybe Text+    <*> arbitraryReducedMaybe n -- repositoryOwner :: Maybe User+    <*> arbitraryReducedMaybe n -- repositoryParent :: Maybe Repository+    <*> arbitraryReducedMaybe n -- repositoryPermissions :: Maybe Permission+    <*> arbitraryReducedMaybe n -- repositoryPrivate :: Maybe Bool+    <*> arbitraryReducedMaybe n -- repositoryReleaseCounter :: Maybe Integer+    <*> arbitraryReducedMaybe n -- repositoryRepoTransfer :: Maybe RepoTransfer+    <*> arbitraryReducedMaybe n -- repositorySize :: Maybe Integer+    <*> arbitraryReducedMaybe n -- repositorySshUrl :: Maybe Text+    <*> arbitraryReducedMaybe n -- repositoryStarsCount :: Maybe Integer+    <*> arbitraryReducedMaybe n -- repositoryTemplate :: Maybe Bool+    <*> arbitraryReducedMaybe n -- repositoryUpdatedAt :: Maybe DateTime+    <*> arbitraryReducedMaybe n -- repositoryWatchersCount :: Maybe Integer+    <*> arbitraryReducedMaybe n -- repositoryWebsite :: Maybe Text+  +instance Arbitrary RepositoryMeta where+  arbitrary = sized genRepositoryMeta++genRepositoryMeta :: Int -> Gen RepositoryMeta+genRepositoryMeta n =+  RepositoryMeta+    <$> arbitraryReducedMaybe n -- repositoryMetaFullName :: Maybe Text+    <*> arbitraryReducedMaybe n -- repositoryMetaId :: Maybe Integer+    <*> arbitraryReducedMaybe n -- repositoryMetaName :: Maybe Text+    <*> arbitraryReducedMaybe n -- repositoryMetaOwner :: Maybe Text+  +instance Arbitrary SearchResults where+  arbitrary = sized genSearchResults++genSearchResults :: Int -> Gen SearchResults+genSearchResults n =+  SearchResults+    <$> arbitraryReducedMaybe n -- searchResultsData :: Maybe [Repository]+    <*> arbitraryReducedMaybe n -- searchResultsOk :: Maybe Bool+  +instance Arbitrary ServerVersion where+  arbitrary = sized genServerVersion++genServerVersion :: Int -> Gen ServerVersion+genServerVersion n =+  ServerVersion+    <$> arbitraryReducedMaybe n -- serverVersionVersion :: Maybe Text+  +instance Arbitrary StopWatch where+  arbitrary = sized genStopWatch++genStopWatch :: Int -> Gen StopWatch+genStopWatch n =+  StopWatch+    <$> arbitraryReducedMaybe n -- stopWatchCreated :: Maybe DateTime+    <*> arbitraryReducedMaybe n -- stopWatchDuration :: Maybe Text+    <*> arbitraryReducedMaybe n -- stopWatchIssueIndex :: Maybe Integer+    <*> arbitraryReducedMaybe n -- stopWatchIssueTitle :: Maybe Text+    <*> arbitraryReducedMaybe n -- stopWatchRepoName :: Maybe Text+    <*> arbitraryReducedMaybe n -- stopWatchRepoOwnerName :: Maybe Text+    <*> arbitraryReducedMaybe n -- stopWatchSeconds :: Maybe Integer+  +instance Arbitrary SubmitPullReviewOptions where+  arbitrary = sized genSubmitPullReviewOptions++genSubmitPullReviewOptions :: Int -> Gen SubmitPullReviewOptions+genSubmitPullReviewOptions n =+  SubmitPullReviewOptions+    <$> arbitraryReducedMaybe n -- submitPullReviewOptionsBody :: Maybe Text+    <*> arbitraryReducedMaybe n -- submitPullReviewOptionsEvent :: Maybe Text+  +instance Arbitrary Tag where+  arbitrary = sized genTag++genTag :: Int -> Gen Tag+genTag n =+  Tag+    <$> arbitraryReducedMaybe n -- tagCommit :: Maybe CommitMeta+    <*> arbitraryReducedMaybe n -- tagId :: Maybe Text+    <*> arbitraryReducedMaybe n -- tagMessage :: Maybe Text+    <*> arbitraryReducedMaybe n -- tagName :: Maybe Text+    <*> arbitraryReducedMaybe n -- tagTarballUrl :: Maybe Text+    <*> arbitraryReducedMaybe n -- tagZipballUrl :: Maybe Text+  +instance Arbitrary Team where+  arbitrary = sized genTeam++genTeam :: Int -> Gen Team+genTeam n =+  Team+    <$> arbitraryReducedMaybe n -- teamCanCreateOrgRepo :: Maybe Bool+    <*> arbitraryReducedMaybe n -- teamDescription :: Maybe Text+    <*> arbitraryReducedMaybe n -- teamId :: Maybe Integer+    <*> arbitraryReducedMaybe n -- teamIncludesAllRepositories :: Maybe Bool+    <*> arbitraryReducedMaybe n -- teamName :: Maybe Text+    <*> arbitraryReducedMaybe n -- teamOrganization :: Maybe Organization+    <*> arbitraryReducedMaybe n -- teamPermission :: Maybe E'Permission2+    <*> arbitraryReducedMaybe n -- teamUnits :: Maybe [Text]+    <*> arbitraryReducedMaybe n -- teamUnitsMap :: Maybe (Map.Map String Text)+  +instance Arbitrary TeamSearch200Response where+  arbitrary = sized genTeamSearch200Response++genTeamSearch200Response :: Int -> Gen TeamSearch200Response+genTeamSearch200Response n =+  TeamSearch200Response+    <$> arbitraryReducedMaybe n -- teamSearch200ResponseData :: Maybe [Team]+    <*> arbitraryReducedMaybe n -- teamSearch200ResponseOk :: Maybe Bool+  +instance Arbitrary TimelineComment where+  arbitrary = sized genTimelineComment++genTimelineComment :: Int -> Gen TimelineComment+genTimelineComment n =+  TimelineComment+    <$> arbitraryReducedMaybe n -- timelineCommentAssignee :: Maybe User+    <*> arbitraryReducedMaybe n -- timelineCommentAssigneeTeam :: Maybe Team+    <*> arbitraryReducedMaybe n -- timelineCommentBody :: Maybe Text+    <*> arbitraryReducedMaybe n -- timelineCommentCreatedAt :: Maybe DateTime+    <*> arbitraryReducedMaybe n -- timelineCommentDependentIssue :: Maybe Issue+    <*> arbitraryReducedMaybe n -- timelineCommentHtmlUrl :: Maybe Text+    <*> arbitraryReducedMaybe n -- timelineCommentId :: Maybe Integer+    <*> arbitraryReducedMaybe n -- timelineCommentIssueUrl :: Maybe Text+    <*> arbitraryReducedMaybe n -- timelineCommentLabel :: Maybe Label+    <*> arbitraryReducedMaybe n -- timelineCommentMilestone :: Maybe Milestone+    <*> arbitraryReducedMaybe n -- timelineCommentNewRef :: Maybe Text+    <*> arbitraryReducedMaybe n -- timelineCommentNewTitle :: Maybe Text+    <*> arbitraryReducedMaybe n -- timelineCommentOldMilestone :: Maybe Milestone+    <*> arbitraryReducedMaybe n -- timelineCommentOldProjectId :: Maybe Integer+    <*> arbitraryReducedMaybe n -- timelineCommentOldRef :: Maybe Text+    <*> arbitraryReducedMaybe n -- timelineCommentOldTitle :: Maybe Text+    <*> arbitraryReducedMaybe n -- timelineCommentProjectId :: Maybe Integer+    <*> arbitraryReducedMaybe n -- timelineCommentPullRequestUrl :: Maybe Text+    <*> arbitraryReducedMaybe n -- timelineCommentRefAction :: Maybe Text+    <*> arbitraryReducedMaybe n -- timelineCommentRefComment :: Maybe Comment+    <*> arbitraryReducedMaybe n -- timelineCommentRefCommitSha :: Maybe Text+    <*> arbitraryReducedMaybe n -- timelineCommentRefIssue :: Maybe Issue+    <*> arbitraryReducedMaybe n -- timelineCommentRemovedAssignee :: Maybe Bool+    <*> arbitraryReducedMaybe n -- timelineCommentResolveDoer :: Maybe User+    <*> arbitraryReducedMaybe n -- timelineCommentReviewId :: Maybe Integer+    <*> arbitraryReducedMaybe n -- timelineCommentTrackedTime :: Maybe TrackedTime+    <*> arbitraryReducedMaybe n -- timelineCommentType :: Maybe Text+    <*> arbitraryReducedMaybe n -- timelineCommentUpdatedAt :: Maybe DateTime+    <*> arbitraryReducedMaybe n -- timelineCommentUser :: Maybe User+  +instance Arbitrary TopicName where+  arbitrary = sized genTopicName++genTopicName :: Int -> Gen TopicName+genTopicName n =+  TopicName+    <$> arbitraryReducedMaybe n -- topicNameTopics :: Maybe [Text]+  +instance Arbitrary TopicResponse where+  arbitrary = sized genTopicResponse++genTopicResponse :: Int -> Gen TopicResponse+genTopicResponse n =+  TopicResponse+    <$> arbitraryReducedMaybe n -- topicResponseCreated :: Maybe DateTime+    <*> arbitraryReducedMaybe n -- topicResponseId :: Maybe Integer+    <*> arbitraryReducedMaybe n -- topicResponseRepoCount :: Maybe Integer+    <*> arbitraryReducedMaybe n -- topicResponseTopicName :: Maybe Text+    <*> arbitraryReducedMaybe n -- topicResponseUpdated :: Maybe DateTime+  +instance Arbitrary TrackedTime where+  arbitrary = sized genTrackedTime++genTrackedTime :: Int -> Gen TrackedTime+genTrackedTime n =+  TrackedTime+    <$> arbitraryReducedMaybe n -- trackedTimeCreated :: Maybe DateTime+    <*> arbitraryReducedMaybe n -- trackedTimeId :: Maybe Integer+    <*> arbitraryReducedMaybe n -- trackedTimeIssue :: Maybe Issue+    <*> arbitraryReducedMaybe n -- trackedTimeIssueId :: Maybe Integer+    <*> arbitraryReducedMaybe n -- trackedTimeTime :: Maybe Integer+    <*> arbitraryReducedMaybe n -- trackedTimeUserId :: Maybe Integer+    <*> arbitraryReducedMaybe n -- trackedTimeUserName :: Maybe Text+  +instance Arbitrary TransferRepoOption where+  arbitrary = sized genTransferRepoOption++genTransferRepoOption :: Int -> Gen TransferRepoOption+genTransferRepoOption n =+  TransferRepoOption+    <$> arbitrary -- transferRepoOptionNewOwner :: Text+    <*> arbitraryReducedMaybe n -- transferRepoOptionTeamIds :: Maybe [Integer]+  +instance Arbitrary UpdateFileOptions where+  arbitrary = sized genUpdateFileOptions++genUpdateFileOptions :: Int -> Gen UpdateFileOptions+genUpdateFileOptions n =+  UpdateFileOptions+    <$> arbitraryReducedMaybe n -- updateFileOptionsAuthor :: Maybe Identity+    <*> arbitraryReducedMaybe n -- updateFileOptionsBranch :: Maybe Text+    <*> arbitraryReducedMaybe n -- updateFileOptionsCommitter :: Maybe Identity+    <*> arbitrary -- updateFileOptionsContent :: Text+    <*> arbitraryReducedMaybe n -- updateFileOptionsDates :: Maybe CommitDateOptions+    <*> arbitraryReducedMaybe n -- updateFileOptionsFromPath :: Maybe Text+    <*> arbitraryReducedMaybe n -- updateFileOptionsMessage :: Maybe Text+    <*> arbitraryReducedMaybe n -- updateFileOptionsNewBranch :: Maybe Text+    <*> arbitrary -- updateFileOptionsSha :: Text+    <*> arbitraryReducedMaybe n -- updateFileOptionsSignoff :: Maybe Bool+  +instance Arbitrary User where+  arbitrary = sized genUser++genUser :: Int -> Gen User+genUser n =+  User+    <$> arbitraryReducedMaybe n -- userActive :: Maybe Bool+    <*> arbitraryReducedMaybe n -- userAvatarUrl :: Maybe Text+    <*> arbitraryReducedMaybe n -- userCreated :: Maybe DateTime+    <*> arbitraryReducedMaybe n -- userDescription :: Maybe Text+    <*> arbitraryReducedMaybe n -- userEmail :: Maybe Text+    <*> arbitraryReducedMaybe n -- userFollowersCount :: Maybe Integer+    <*> arbitraryReducedMaybe n -- userFollowingCount :: Maybe Integer+    <*> arbitraryReducedMaybe n -- userFullName :: Maybe Text+    <*> arbitraryReducedMaybe n -- userId :: Maybe Integer+    <*> arbitraryReducedMaybe n -- userIsAdmin :: Maybe Bool+    <*> arbitraryReducedMaybe n -- userLanguage :: Maybe Text+    <*> arbitraryReducedMaybe n -- userLastLogin :: Maybe DateTime+    <*> arbitraryReducedMaybe n -- userLocation :: Maybe Text+    <*> arbitraryReducedMaybe n -- userLogin :: Maybe Text+    <*> arbitraryReducedMaybe n -- userLoginName :: Maybe Text+    <*> arbitraryReducedMaybe n -- userProhibitLogin :: Maybe Bool+    <*> arbitraryReducedMaybe n -- userRestricted :: Maybe Bool+    <*> arbitraryReducedMaybe n -- userStarredReposCount :: Maybe Integer+    <*> arbitraryReducedMaybe n -- userVisibility :: Maybe Text+    <*> arbitraryReducedMaybe n -- userWebsite :: Maybe Text+  +instance Arbitrary UserHeatmapData where+  arbitrary = sized genUserHeatmapData++genUserHeatmapData :: Int -> Gen UserHeatmapData+genUserHeatmapData n =+  UserHeatmapData+    <$> arbitraryReducedMaybe n -- userHeatmapDataContributions :: Maybe Integer+    <*> arbitraryReducedMaybe n -- userHeatmapDataTimestamp :: Maybe Integer+  +instance Arbitrary UserSearch200Response where+  arbitrary = sized genUserSearch200Response++genUserSearch200Response :: Int -> Gen UserSearch200Response+genUserSearch200Response n =+  UserSearch200Response+    <$> arbitraryReducedMaybe n -- userSearch200ResponseData :: Maybe [User]+    <*> arbitraryReducedMaybe n -- userSearch200ResponseOk :: Maybe Bool+  +instance Arbitrary UserSettings where+  arbitrary = sized genUserSettings++genUserSettings :: Int -> Gen UserSettings+genUserSettings n =+  UserSettings+    <$> arbitraryReducedMaybe n -- userSettingsDescription :: Maybe Text+    <*> arbitraryReducedMaybe n -- userSettingsDiffViewStyle :: Maybe Text+    <*> arbitraryReducedMaybe n -- userSettingsFullName :: Maybe Text+    <*> arbitraryReducedMaybe n -- userSettingsHideActivity :: Maybe Bool+    <*> arbitraryReducedMaybe n -- userSettingsHideEmail :: Maybe Bool+    <*> arbitraryReducedMaybe n -- userSettingsLanguage :: Maybe Text+    <*> arbitraryReducedMaybe n -- userSettingsLocation :: Maybe Text+    <*> arbitraryReducedMaybe n -- userSettingsTheme :: Maybe Text+    <*> arbitraryReducedMaybe n -- userSettingsWebsite :: Maybe Text+  +instance Arbitrary UserSettingsOptions where+  arbitrary = sized genUserSettingsOptions++genUserSettingsOptions :: Int -> Gen UserSettingsOptions+genUserSettingsOptions n =+  UserSettingsOptions+    <$> arbitraryReducedMaybe n -- userSettingsOptionsDescription :: Maybe Text+    <*> arbitraryReducedMaybe n -- userSettingsOptionsDiffViewStyle :: Maybe Text+    <*> arbitraryReducedMaybe n -- userSettingsOptionsFullName :: Maybe Text+    <*> arbitraryReducedMaybe n -- userSettingsOptionsHideActivity :: Maybe Bool+    <*> arbitraryReducedMaybe n -- userSettingsOptionsHideEmail :: Maybe Bool+    <*> arbitraryReducedMaybe n -- userSettingsOptionsLanguage :: Maybe Text+    <*> arbitraryReducedMaybe n -- userSettingsOptionsLocation :: Maybe Text+    <*> arbitraryReducedMaybe n -- userSettingsOptionsTheme :: Maybe Text+    <*> arbitraryReducedMaybe n -- userSettingsOptionsWebsite :: Maybe Text+  +instance Arbitrary WatchInfo where+  arbitrary = sized genWatchInfo++genWatchInfo :: Int -> Gen WatchInfo+genWatchInfo n =+  WatchInfo+    <$> arbitraryReducedMaybe n -- watchInfoCreatedAt :: Maybe DateTime+    <*> arbitraryReducedMaybe n -- watchInfoIgnored :: Maybe Bool+    <*> arbitraryReducedMaybeValue n -- watchInfoReason :: Maybe A.Value+    <*> arbitraryReducedMaybe n -- watchInfoRepositoryUrl :: Maybe Text+    <*> arbitraryReducedMaybe n -- watchInfoSubscribed :: Maybe Bool+    <*> arbitraryReducedMaybe n -- watchInfoUrl :: Maybe Text+  +instance Arbitrary WikiCommit where+  arbitrary = sized genWikiCommit++genWikiCommit :: Int -> Gen WikiCommit+genWikiCommit n =+  WikiCommit+    <$> arbitraryReducedMaybe n -- wikiCommitAuthor :: Maybe CommitUser+    <*> arbitraryReducedMaybe n -- wikiCommitCommiter :: Maybe CommitUser+    <*> arbitraryReducedMaybe n -- wikiCommitMessage :: Maybe Text+    <*> arbitraryReducedMaybe n -- wikiCommitSha :: Maybe Text+  +instance Arbitrary WikiCommitList where+  arbitrary = sized genWikiCommitList++genWikiCommitList :: Int -> Gen WikiCommitList+genWikiCommitList n =+  WikiCommitList+    <$> arbitraryReducedMaybe n -- wikiCommitListCommits :: Maybe [WikiCommit]+    <*> arbitraryReducedMaybe n -- wikiCommitListCount :: Maybe Integer+  +instance Arbitrary WikiPage where+  arbitrary = sized genWikiPage++genWikiPage :: Int -> Gen WikiPage+genWikiPage n =+  WikiPage+    <$> arbitraryReducedMaybe n -- wikiPageCommitCount :: Maybe Integer+    <*> arbitraryReducedMaybe n -- wikiPageContentBase64 :: Maybe Text+    <*> arbitraryReducedMaybe n -- wikiPageFooter :: Maybe Text+    <*> arbitraryReducedMaybe n -- wikiPageHtmlUrl :: Maybe Text+    <*> arbitraryReducedMaybe n -- wikiPageLastCommit :: Maybe WikiCommit+    <*> arbitraryReducedMaybe n -- wikiPageSidebar :: Maybe Text+    <*> arbitraryReducedMaybe n -- wikiPageSubUrl :: Maybe Text+    <*> arbitraryReducedMaybe n -- wikiPageTitle :: Maybe Text+  +instance Arbitrary WikiPageMetaData where+  arbitrary = sized genWikiPageMetaData++genWikiPageMetaData :: Int -> Gen WikiPageMetaData+genWikiPageMetaData n =+  WikiPageMetaData+    <$> arbitraryReducedMaybe n -- wikiPageMetaDataHtmlUrl :: Maybe Text+    <*> arbitraryReducedMaybe n -- wikiPageMetaDataLastCommit :: Maybe WikiCommit+    <*> arbitraryReducedMaybe n -- wikiPageMetaDataSubUrl :: Maybe Text+    <*> arbitraryReducedMaybe n -- wikiPageMetaDataTitle :: Maybe Text+  ++++instance Arbitrary E'DiffType where+  arbitrary = arbitraryBoundedEnum++instance Arbitrary E'Do where+  arbitrary = arbitraryBoundedEnum++instance Arbitrary E'Permission where+  arbitrary = arbitraryBoundedEnum++instance Arbitrary E'Permission2 where+  arbitrary = arbitraryBoundedEnum++instance Arbitrary E'Service where+  arbitrary = arbitraryBoundedEnum++instance Arbitrary E'Sort where+  arbitrary = arbitraryBoundedEnum++instance Arbitrary E'Sort2 where+  arbitrary = arbitraryBoundedEnum++instance Arbitrary E'State where+  arbitrary = arbitraryBoundedEnum++instance Arbitrary E'State2 where+  arbitrary = arbitraryBoundedEnum++instance Arbitrary E'State3 where+  arbitrary = arbitraryBoundedEnum++instance Arbitrary E'Style where+  arbitrary = arbitraryBoundedEnum++instance Arbitrary E'SubjectType where+  arbitrary = arbitraryBoundedEnum++instance Arbitrary E'TrustModel where+  arbitrary = arbitraryBoundedEnum++instance Arbitrary E'Type where+  arbitrary = arbitraryBoundedEnum++instance Arbitrary E'Type2 where+  arbitrary = arbitraryBoundedEnum++instance Arbitrary E'Type3 where+  arbitrary = arbitraryBoundedEnum++instance Arbitrary E'Visibility where+  arbitrary = arbitraryBoundedEnum++instance Arbitrary E'Whitespace where+  arbitrary = arbitraryBoundedEnum+
+ tests/PropMime.hs view
@@ -0,0 +1,51 @@+{-# LANGUAGE ScopedTypeVariables #-}+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE ConstraintKinds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++module PropMime where++import Data.Aeson+import Data.Aeson.Types (parseEither)+import Data.Monoid ((<>))+import Data.Typeable (Proxy(..), typeOf, Typeable)+import qualified Data.ByteString.Lazy.Char8 as BL8+import Test.Hspec+import Test.QuickCheck+import Test.QuickCheck.Property+import Test.Hspec.QuickCheck (prop)++import Gitea.MimeTypes++import ApproxEq++-- * Type Aliases++type ArbitraryMime mime a = ArbitraryRoundtrip (MimeUnrender mime) (MimeRender mime) a++type ArbitraryRoundtrip from to a = (from a, to a, Arbitrary' a)++type Arbitrary' a = (Arbitrary a, Show a, Typeable a)++-- * Mime++propMime+  :: forall a b mime.+     (ArbitraryMime mime a, Testable b)+  => String -> (a -> a -> b) -> mime -> Proxy a -> Spec+propMime eqDescr eq m _ =+  prop+    (show (typeOf (undefined :: a)) <> " " <> show (typeOf (undefined :: mime)) <> " roundtrip " <> eqDescr) $+  \(x :: a) ->+     let rendered = mimeRender' m x+         actual = mimeUnrender' m rendered+         expected = Right x+         failMsg =+           "ACTUAL: " <> show actual <> "\nRENDERED: " <> BL8.unpack rendered+     in counterexample failMsg $+        either reject property (eq <$> actual <*> expected)+  where+    reject = property . const rejected++propMimeEq :: (ArbitraryMime mime a, Eq a) => mime -> Proxy a -> Spec+propMimeEq = propMime "(EQ)" (==)
+ tests/Test.hs view
@@ -0,0 +1,181 @@+{-# LANGUAGE ScopedTypeVariables #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE PartialTypeSignatures #-}++module Main where++import Data.Typeable (Proxy(..))+import Test.Hspec+import Test.Hspec.QuickCheck++import PropMime+import Instances ()++import Gitea.Model+import Gitea.MimeTypes++main :: IO ()+main =+  hspec $ modifyMaxSize (const 10) $ do+    describe "JSON instances" $ do+      pure ()+      propMimeEq MimeJSON (Proxy :: Proxy APIError)+      propMimeEq MimeJSON (Proxy :: Proxy AccessToken)+      propMimeEq MimeJSON (Proxy :: Proxy ActivityPub)+      propMimeEq MimeJSON (Proxy :: Proxy AddCollaboratorOption)+      propMimeEq MimeJSON (Proxy :: Proxy AddTimeOption)+      propMimeEq MimeJSON (Proxy :: Proxy AnnotatedTag)+      propMimeEq MimeJSON (Proxy :: Proxy AnnotatedTagObject)+      propMimeEq MimeJSON (Proxy :: Proxy Attachment)+      propMimeEq MimeJSON (Proxy :: Proxy Branch)+      propMimeEq MimeJSON (Proxy :: Proxy BranchProtection)+      propMimeEq MimeJSON (Proxy :: Proxy ChangedFile)+      propMimeEq MimeJSON (Proxy :: Proxy CombinedStatus)+      propMimeEq MimeJSON (Proxy :: Proxy Comment)+      propMimeEq MimeJSON (Proxy :: Proxy Commit)+      propMimeEq MimeJSON (Proxy :: Proxy CommitAffectedFiles)+      propMimeEq MimeJSON (Proxy :: Proxy CommitDateOptions)+      propMimeEq MimeJSON (Proxy :: Proxy CommitMeta)+      propMimeEq MimeJSON (Proxy :: Proxy CommitStats)+      propMimeEq MimeJSON (Proxy :: Proxy CommitStatus)+      propMimeEq MimeJSON (Proxy :: Proxy CommitUser)+      propMimeEq MimeJSON (Proxy :: Proxy ContentsResponse)+      propMimeEq MimeJSON (Proxy :: Proxy CreateAccessTokenOption)+      propMimeEq MimeJSON (Proxy :: Proxy CreateBranchProtectionOption)+      propMimeEq MimeJSON (Proxy :: Proxy CreateBranchRepoOption)+      propMimeEq MimeJSON (Proxy :: Proxy CreateEmailOption)+      propMimeEq MimeJSON (Proxy :: Proxy CreateFileOptions)+      propMimeEq MimeJSON (Proxy :: Proxy CreateForkOption)+      propMimeEq MimeJSON (Proxy :: Proxy CreateGPGKeyOption)+      propMimeEq MimeJSON (Proxy :: Proxy CreateHookOption)+      propMimeEq MimeJSON (Proxy :: Proxy CreateIssueCommentOption)+      propMimeEq MimeJSON (Proxy :: Proxy CreateIssueOption)+      propMimeEq MimeJSON (Proxy :: Proxy CreateKeyOption)+      propMimeEq MimeJSON (Proxy :: Proxy CreateLabelOption)+      propMimeEq MimeJSON (Proxy :: Proxy CreateMilestoneOption)+      propMimeEq MimeJSON (Proxy :: Proxy CreateOAuth2ApplicationOptions)+      propMimeEq MimeJSON (Proxy :: Proxy CreateOrgOption)+      propMimeEq MimeJSON (Proxy :: Proxy CreatePullRequestOption)+      propMimeEq MimeJSON (Proxy :: Proxy CreatePullReviewComment)+      propMimeEq MimeJSON (Proxy :: Proxy CreatePullReviewOptions)+      propMimeEq MimeJSON (Proxy :: Proxy CreatePushMirrorOption)+      propMimeEq MimeJSON (Proxy :: Proxy CreateReleaseOption)+      propMimeEq MimeJSON (Proxy :: Proxy CreateRepoOption)+      propMimeEq MimeJSON (Proxy :: Proxy CreateStatusOption)+      propMimeEq MimeJSON (Proxy :: Proxy CreateTagOption)+      propMimeEq MimeJSON (Proxy :: Proxy CreateTeamOption)+      propMimeEq MimeJSON (Proxy :: Proxy CreateUserOption)+      propMimeEq MimeJSON (Proxy :: Proxy CreateWikiPageOptions)+      propMimeEq MimeJSON (Proxy :: Proxy Cron)+      propMimeEq MimeJSON (Proxy :: Proxy DeleteEmailOption)+      propMimeEq MimeJSON (Proxy :: Proxy DeleteFileOptions)+      propMimeEq MimeJSON (Proxy :: Proxy DeployKey)+      propMimeEq MimeJSON (Proxy :: Proxy DismissPullReviewOptions)+      propMimeEq MimeJSON (Proxy :: Proxy EditAttachmentOptions)+      propMimeEq MimeJSON (Proxy :: Proxy EditBranchProtectionOption)+      propMimeEq MimeJSON (Proxy :: Proxy EditDeadlineOption)+      propMimeEq MimeJSON (Proxy :: Proxy EditGitHookOption)+      propMimeEq MimeJSON (Proxy :: Proxy EditHookOption)+      propMimeEq MimeJSON (Proxy :: Proxy EditIssueCommentOption)+      propMimeEq MimeJSON (Proxy :: Proxy EditIssueOption)+      propMimeEq MimeJSON (Proxy :: Proxy EditLabelOption)+      propMimeEq MimeJSON (Proxy :: Proxy EditMilestoneOption)+      propMimeEq MimeJSON (Proxy :: Proxy EditOrgOption)+      propMimeEq MimeJSON (Proxy :: Proxy EditPullRequestOption)+      propMimeEq MimeJSON (Proxy :: Proxy EditReactionOption)+      propMimeEq MimeJSON (Proxy :: Proxy EditReleaseOption)+      propMimeEq MimeJSON (Proxy :: Proxy EditRepoOption)+      propMimeEq MimeJSON (Proxy :: Proxy EditTeamOption)+      propMimeEq MimeJSON (Proxy :: Proxy EditUserOption)+      propMimeEq MimeJSON (Proxy :: Proxy Email)+      propMimeEq MimeJSON (Proxy :: Proxy ExternalTracker)+      propMimeEq MimeJSON (Proxy :: Proxy ExternalWiki)+      propMimeEq MimeJSON (Proxy :: Proxy FileCommitResponse)+      propMimeEq MimeJSON (Proxy :: Proxy FileDeleteResponse)+      propMimeEq MimeJSON (Proxy :: Proxy FileLinksResponse)+      propMimeEq MimeJSON (Proxy :: Proxy FileResponse)+      propMimeEq MimeJSON (Proxy :: Proxy GPGKey)+      propMimeEq MimeJSON (Proxy :: Proxy GPGKeyEmail)+      propMimeEq MimeJSON (Proxy :: Proxy GeneralAPISettings)+      propMimeEq MimeJSON (Proxy :: Proxy GeneralAttachmentSettings)+      propMimeEq MimeJSON (Proxy :: Proxy GeneralRepoSettings)+      propMimeEq MimeJSON (Proxy :: Proxy GeneralUISettings)+      propMimeEq MimeJSON (Proxy :: Proxy GenerateRepoOption)+      propMimeEq MimeJSON (Proxy :: Proxy GitBlobResponse)+      propMimeEq MimeJSON (Proxy :: Proxy GitEntry)+      propMimeEq MimeJSON (Proxy :: Proxy GitHook)+      propMimeEq MimeJSON (Proxy :: Proxy GitObject)+      propMimeEq MimeJSON (Proxy :: Proxy GitTreeResponse)+      propMimeEq MimeJSON (Proxy :: Proxy Hook)+      propMimeEq MimeJSON (Proxy :: Proxy Identity)+      propMimeEq MimeJSON (Proxy :: Proxy InternalTracker)+      propMimeEq MimeJSON (Proxy :: Proxy Issue)+      propMimeEq MimeJSON (Proxy :: Proxy IssueDeadline)+      propMimeEq MimeJSON (Proxy :: Proxy IssueFormField)+      propMimeEq MimeJSON (Proxy :: Proxy IssueLabelsOption)+      propMimeEq MimeJSON (Proxy :: Proxy IssueTemplate)+      propMimeEq MimeJSON (Proxy :: Proxy Label)+      propMimeEq MimeJSON (Proxy :: Proxy MarkdownOption)+      propMimeEq MimeJSON (Proxy :: Proxy MergePullRequestOption)+      propMimeEq MimeJSON (Proxy :: Proxy MigrateRepoOptions)+      propMimeEq MimeJSON (Proxy :: Proxy Milestone)+      propMimeEq MimeJSON (Proxy :: Proxy NodeInfo)+      propMimeEq MimeJSON (Proxy :: Proxy NodeInfoServices)+      propMimeEq MimeJSON (Proxy :: Proxy NodeInfoSoftware)+      propMimeEq MimeJSON (Proxy :: Proxy NodeInfoUsage)+      propMimeEq MimeJSON (Proxy :: Proxy NodeInfoUsageUsers)+      propMimeEq MimeJSON (Proxy :: Proxy Note)+      propMimeEq MimeJSON (Proxy :: Proxy NotificationCount)+      propMimeEq MimeJSON (Proxy :: Proxy NotificationSubject)+      propMimeEq MimeJSON (Proxy :: Proxy NotificationThread)+      propMimeEq MimeJSON (Proxy :: Proxy OAuth2Application)+      propMimeEq MimeJSON (Proxy :: Proxy Organization)+      propMimeEq MimeJSON (Proxy :: Proxy OrganizationPermissions)+      propMimeEq MimeJSON (Proxy :: Proxy PRBranchInfo)+      propMimeEq MimeJSON (Proxy :: Proxy Package)+      propMimeEq MimeJSON (Proxy :: Proxy PackageFile)+      propMimeEq MimeJSON (Proxy :: Proxy PayloadCommit)+      propMimeEq MimeJSON (Proxy :: Proxy PayloadCommitVerification)+      propMimeEq MimeJSON (Proxy :: Proxy PayloadUser)+      propMimeEq MimeJSON (Proxy :: Proxy Permission)+      propMimeEq MimeJSON (Proxy :: Proxy PublicKey)+      propMimeEq MimeJSON (Proxy :: Proxy PullRequest)+      propMimeEq MimeJSON (Proxy :: Proxy PullRequestMeta)+      propMimeEq MimeJSON (Proxy :: Proxy PullReview)+      propMimeEq MimeJSON (Proxy :: Proxy PullReviewComment)+      propMimeEq MimeJSON (Proxy :: Proxy PullReviewRequestOptions)+      propMimeEq MimeJSON (Proxy :: Proxy PushMirror)+      propMimeEq MimeJSON (Proxy :: Proxy Reaction)+      propMimeEq MimeJSON (Proxy :: Proxy Reference)+      propMimeEq MimeJSON (Proxy :: Proxy Release)+      propMimeEq MimeJSON (Proxy :: Proxy RepoCollaboratorPermission)+      propMimeEq MimeJSON (Proxy :: Proxy RepoCommit)+      propMimeEq MimeJSON (Proxy :: Proxy RepoTopicOptions)+      propMimeEq MimeJSON (Proxy :: Proxy RepoTransfer)+      propMimeEq MimeJSON (Proxy :: Proxy Repository)+      propMimeEq MimeJSON (Proxy :: Proxy RepositoryMeta)+      propMimeEq MimeJSON (Proxy :: Proxy SearchResults)+      propMimeEq MimeJSON (Proxy :: Proxy ServerVersion)+      propMimeEq MimeJSON (Proxy :: Proxy StopWatch)+      propMimeEq MimeJSON (Proxy :: Proxy SubmitPullReviewOptions)+      propMimeEq MimeJSON (Proxy :: Proxy Tag)+      propMimeEq MimeJSON (Proxy :: Proxy Team)+      propMimeEq MimeJSON (Proxy :: Proxy TeamSearch200Response)+      propMimeEq MimeJSON (Proxy :: Proxy TimelineComment)+      propMimeEq MimeJSON (Proxy :: Proxy TopicName)+      propMimeEq MimeJSON (Proxy :: Proxy TopicResponse)+      propMimeEq MimeJSON (Proxy :: Proxy TrackedTime)+      propMimeEq MimeJSON (Proxy :: Proxy TransferRepoOption)+      propMimeEq MimeJSON (Proxy :: Proxy UpdateFileOptions)+      propMimeEq MimeJSON (Proxy :: Proxy User)+      propMimeEq MimeJSON (Proxy :: Proxy UserHeatmapData)+      propMimeEq MimeJSON (Proxy :: Proxy UserSearch200Response)+      propMimeEq MimeJSON (Proxy :: Proxy UserSettings)+      propMimeEq MimeJSON (Proxy :: Proxy UserSettingsOptions)+      propMimeEq MimeJSON (Proxy :: Proxy WatchInfo)+      propMimeEq MimeJSON (Proxy :: Proxy WikiCommit)+      propMimeEq MimeJSON (Proxy :: Proxy WikiCommitList)+      propMimeEq MimeJSON (Proxy :: Proxy WikiPage)+      propMimeEq MimeJSON (Proxy :: Proxy WikiPageMetaData)+