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


-- | Google Groups Migration SDK.
--   
--   Groups Migration Api.
--   
--   <i>Warning:</i> This is an experimental prototype/preview release
--   which is still under exploratory development and not intended for
--   public use, caveat emptor!
--   
--   This library is compatible with version <tt>v1</tt> of the API.
@package gogol-groups-migration
@version 0.3.0


module Network.Google.GroupsMigration.Types

-- | Default request referring to version <tt>v1</tt> of the Groups
--   Migration API. This contains the host and root path used as a starting
--   point for constructing service requests.
groupsMigrationService :: ServiceConfig

-- | Manage messages in groups on your domain
appsGroupsMigrationScope :: Proxy '["https://www.googleapis.com/auth/apps.groups.migration"]

-- | JSON response template for groups migration API.
--   
--   <i>See:</i> <a>groups</a> smart constructor.
data Groups

-- | Creates a value of <a>Groups</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gKind</a></li>
--   <li><a>gResponseCode</a></li>
--   </ul>
groups :: Groups

-- | The kind of insert resource this is.
gKind :: Lens' Groups Text

-- | The status of the insert request.
gResponseCode :: Lens' Groups (Maybe Text)


-- | Inserts a new mail into the archive of the Google group.
--   
--   <i>See:</i> <a>Groups Migration API Reference</a> for
--   <tt>groupsmigration.archive.insert</tt>.
module Network.Google.Resource.GroupsMigration.Archive.Insert

-- | A resource alias for <tt>groupsmigration.archive.insert</tt> method
--   which the <a>ArchiveInsert</a> request conforms to.
type ArchiveInsertResource = ("groups" :> ("v1" :> ("groups" :> (Capture "groupId" Text :> ("archive" :> (QueryParam "alt" AltJSON :> Post '[JSON] Groups)))))) :<|> ("upload" :> ("groups" :> ("v1" :> ("groups" :> (Capture "groupId" Text :> ("archive" :> (QueryParam "alt" AltJSON :> (QueryParam "uploadType" AltMedia :> (AltMedia :> Post '[JSON] Groups)))))))))

-- | Creates a value of <a>ArchiveInsert</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>aiGroupId</a></li>
--   </ul>
archiveInsert :: Text -> ArchiveInsert

-- | Inserts a new mail into the archive of the Google group.
--   
--   <i>See:</i> <a>archiveInsert</a> smart constructor.
data ArchiveInsert

-- | The group ID
aiGroupId :: Lens' ArchiveInsert Text
instance GHC.Generics.Generic Network.Google.Resource.GroupsMigration.Archive.Insert.ArchiveInsert
instance Data.Data.Data Network.Google.Resource.GroupsMigration.Archive.Insert.ArchiveInsert
instance GHC.Show.Show Network.Google.Resource.GroupsMigration.Archive.Insert.ArchiveInsert
instance GHC.Classes.Eq Network.Google.Resource.GroupsMigration.Archive.Insert.ArchiveInsert
instance Network.Google.Types.GoogleRequest Network.Google.Resource.GroupsMigration.Archive.Insert.ArchiveInsert
instance Network.Google.Types.GoogleRequest (Network.Google.Types.MediaUpload Network.Google.Resource.GroupsMigration.Archive.Insert.ArchiveInsert)


-- | Groups Migration Api.
--   
--   <i>See:</i> <a>Groups Migration API Reference</a>
module Network.Google.GroupsMigration

-- | Default request referring to version <tt>v1</tt> of the Groups
--   Migration API. This contains the host and root path used as a starting
--   point for constructing service requests.
groupsMigrationService :: ServiceConfig

-- | Manage messages in groups on your domain
appsGroupsMigrationScope :: Proxy '["https://www.googleapis.com/auth/apps.groups.migration"]

-- | Represents the entirety of the methods and resources available for the
--   Groups Migration API service.
type GroupsMigrationAPI = ArchiveInsertResource

-- | JSON response template for groups migration API.
--   
--   <i>See:</i> <a>groups</a> smart constructor.
data Groups

-- | Creates a value of <a>Groups</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gKind</a></li>
--   <li><a>gResponseCode</a></li>
--   </ul>
groups :: Groups

-- | The kind of insert resource this is.
gKind :: Lens' Groups Text

-- | The status of the insert request.
gResponseCode :: Lens' Groups (Maybe Text)
