{-# LANGUAGE DataKinds #-}
{-# LANGUAGE DerivingStrategies #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE ImportQualifiedPost #-}
{-# LANGUAGE LambdaCase #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE PatternSynonyms #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
{-# OPTIONS_GHC -fno-warn-unused-binds #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}

-- |
-- Module      : Gogol.Vault
-- Copyright   : (c) 2015-2025 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
--               Toni Cebrián <toni@tonicebrian.com>
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Retention and eDiscovery for Google Workspace. To work with Vault resources, the account must have the <https://support.google.com/vault/answer/2799699 required Vault privileges> and access to the matter. To access a matter, the account must have created the matter, have the matter shared with them, or have the __View All Matters__ privilege. For example, to download an export, an account needs the __Manage Exports__ privilege and the matter shared with them.
--
-- /See:/ <https://developers.google.com/vault Google Vault API Reference>
module Gogol.Vault
  ( -- * Configuration
    vaultService,

    -- * OAuth Scopes
    Ediscovery'FullControl,
    Ediscovery'Readonly,

    -- * Resources

    -- ** vault.matters.addPermissions
    VaultMattersAddPermissionsResource,
    VaultMattersAddPermissions (..),
    newVaultMattersAddPermissions,

    -- ** vault.matters.close
    VaultMattersCloseResource,
    VaultMattersClose (..),
    newVaultMattersClose,

    -- ** vault.matters.count
    VaultMattersCountResource,
    VaultMattersCount (..),
    newVaultMattersCount,

    -- ** vault.matters.create
    VaultMattersCreateResource,
    VaultMattersCreate (..),
    newVaultMattersCreate,

    -- ** vault.matters.delete
    VaultMattersDeleteResource,
    VaultMattersDelete (..),
    newVaultMattersDelete,

    -- ** vault.matters.exports.create
    VaultMattersExportsCreateResource,
    VaultMattersExportsCreate (..),
    newVaultMattersExportsCreate,

    -- ** vault.matters.exports.delete
    VaultMattersExportsDeleteResource,
    VaultMattersExportsDelete (..),
    newVaultMattersExportsDelete,

    -- ** vault.matters.exports.get
    VaultMattersExportsGetResource,
    VaultMattersExportsGet (..),
    newVaultMattersExportsGet,

    -- ** vault.matters.exports.list
    VaultMattersExportsListResource,
    VaultMattersExportsList (..),
    newVaultMattersExportsList,

    -- ** vault.matters.get
    VaultMattersGetResource,
    VaultMattersGet (..),
    newVaultMattersGet,

    -- ** vault.matters.holds.accounts.create
    VaultMattersHoldsAccountsCreateResource,
    VaultMattersHoldsAccountsCreate (..),
    newVaultMattersHoldsAccountsCreate,

    -- ** vault.matters.holds.accounts.delete
    VaultMattersHoldsAccountsDeleteResource,
    VaultMattersHoldsAccountsDelete (..),
    newVaultMattersHoldsAccountsDelete,

    -- ** vault.matters.holds.accounts.list
    VaultMattersHoldsAccountsListResource,
    VaultMattersHoldsAccountsList (..),
    newVaultMattersHoldsAccountsList,

    -- ** vault.matters.holds.addHeldAccounts
    VaultMattersHoldsAddHeldAccountsResource,
    VaultMattersHoldsAddHeldAccounts (..),
    newVaultMattersHoldsAddHeldAccounts,

    -- ** vault.matters.holds.create
    VaultMattersHoldsCreateResource,
    VaultMattersHoldsCreate (..),
    newVaultMattersHoldsCreate,

    -- ** vault.matters.holds.delete
    VaultMattersHoldsDeleteResource,
    VaultMattersHoldsDelete (..),
    newVaultMattersHoldsDelete,

    -- ** vault.matters.holds.get
    VaultMattersHoldsGetResource,
    VaultMattersHoldsGet (..),
    newVaultMattersHoldsGet,

    -- ** vault.matters.holds.list
    VaultMattersHoldsListResource,
    VaultMattersHoldsList (..),
    newVaultMattersHoldsList,

    -- ** vault.matters.holds.removeHeldAccounts
    VaultMattersHoldsRemoveHeldAccountsResource,
    VaultMattersHoldsRemoveHeldAccounts (..),
    newVaultMattersHoldsRemoveHeldAccounts,

    -- ** vault.matters.holds.update
    VaultMattersHoldsUpdateResource,
    VaultMattersHoldsUpdate (..),
    newVaultMattersHoldsUpdate,

    -- ** vault.matters.list
    VaultMattersListResource,
    VaultMattersList (..),
    newVaultMattersList,

    -- ** vault.matters.removePermissions
    VaultMattersRemovePermissionsResource,
    VaultMattersRemovePermissions (..),
    newVaultMattersRemovePermissions,

    -- ** vault.matters.reopen
    VaultMattersReopenResource,
    VaultMattersReopen (..),
    newVaultMattersReopen,

    -- ** vault.matters.savedQueries.create
    VaultMattersSavedQueriesCreateResource,
    VaultMattersSavedQueriesCreate (..),
    newVaultMattersSavedQueriesCreate,

    -- ** vault.matters.savedQueries.delete
    VaultMattersSavedQueriesDeleteResource,
    VaultMattersSavedQueriesDelete (..),
    newVaultMattersSavedQueriesDelete,

    -- ** vault.matters.savedQueries.get
    VaultMattersSavedQueriesGetResource,
    VaultMattersSavedQueriesGet (..),
    newVaultMattersSavedQueriesGet,

    -- ** vault.matters.savedQueries.list
    VaultMattersSavedQueriesListResource,
    VaultMattersSavedQueriesList (..),
    newVaultMattersSavedQueriesList,

    -- ** vault.matters.undelete
    VaultMattersUndeleteResource,
    VaultMattersUndelete (..),
    newVaultMattersUndelete,

    -- ** vault.matters.update
    VaultMattersUpdateResource,
    VaultMattersUpdate (..),
    newVaultMattersUpdate,

    -- ** vault.operations.cancel
    VaultOperationsCancelResource,
    VaultOperationsCancel (..),
    newVaultOperationsCancel,

    -- ** vault.operations.delete
    VaultOperationsDeleteResource,
    VaultOperationsDelete (..),
    newVaultOperationsDelete,

    -- ** vault.operations.get
    VaultOperationsGetResource,
    VaultOperationsGet (..),
    newVaultOperationsGet,

    -- ** vault.operations.list
    VaultOperationsListResource,
    VaultOperationsList (..),
    newVaultOperationsList,

    -- * Types

    -- ** Xgafv
    Xgafv (..),

    -- ** AccountCount
    AccountCount (..),
    newAccountCount,

    -- ** AccountCountError
    AccountCountError (..),
    newAccountCountError,

    -- ** AccountCountError_ErrorType
    AccountCountError_ErrorType (..),

    -- ** AccountInfo
    AccountInfo (..),
    newAccountInfo,

    -- ** AddHeldAccountResult
    AddHeldAccountResult (..),
    newAddHeldAccountResult,

    -- ** AddHeldAccountsRequest
    AddHeldAccountsRequest (..),
    newAddHeldAccountsRequest,

    -- ** AddHeldAccountsResponse
    AddHeldAccountsResponse (..),
    newAddHeldAccountsResponse,

    -- ** AddMatterPermissionsRequest
    AddMatterPermissionsRequest (..),
    newAddMatterPermissionsRequest,

    -- ** CalendarExportOptions
    CalendarExportOptions (..),
    newCalendarExportOptions,

    -- ** CalendarExportOptions_ExportFormat
    CalendarExportOptions_ExportFormat (..),

    -- ** CalendarOptions
    CalendarOptions (..),
    newCalendarOptions,

    -- ** CalendarOptions_ResponseStatusesItem
    CalendarOptions_ResponseStatusesItem (..),

    -- ** CancelOperationRequest
    CancelOperationRequest (..),
    newCancelOperationRequest,

    -- ** CloseMatterRequest
    CloseMatterRequest (..),
    newCloseMatterRequest,

    -- ** CloseMatterResponse
    CloseMatterResponse (..),
    newCloseMatterResponse,

    -- ** CloudStorageFile
    CloudStorageFile (..),
    newCloudStorageFile,

    -- ** CloudStorageSink
    CloudStorageSink (..),
    newCloudStorageSink,

    -- ** CorpusQuery
    CorpusQuery (..),
    newCorpusQuery,

    -- ** CountArtifactsMetadata
    CountArtifactsMetadata (..),
    newCountArtifactsMetadata,

    -- ** CountArtifactsRequest
    CountArtifactsRequest (..),
    newCountArtifactsRequest,

    -- ** CountArtifactsRequest_View
    CountArtifactsRequest_View (..),

    -- ** CountArtifactsResponse
    CountArtifactsResponse (..),
    newCountArtifactsResponse,

    -- ** DriveDocumentIds
    DriveDocumentIds (..),
    newDriveDocumentIds,

    -- ** DriveDocumentInfo
    DriveDocumentInfo (..),
    newDriveDocumentInfo,

    -- ** DriveExportOptions
    DriveExportOptions (..),
    newDriveExportOptions,

    -- ** DriveOptions
    DriveOptions (..),
    newDriveOptions,

    -- ** DriveOptions_ClientSideEncryptedOption
    DriveOptions_ClientSideEncryptedOption (..),

    -- ** Empty
    Empty (..),
    newEmpty,

    -- ** Export
    Export (..),
    newExport,

    -- ** Export_Status
    Export_Status (..),

    -- ** ExportOptions
    ExportOptions (..),
    newExportOptions,

    -- ** ExportOptions_Region
    ExportOptions_Region (..),

    -- ** ExportStats
    ExportStats (..),
    newExportStats,

    -- ** GeminiExportOptions
    GeminiExportOptions (..),
    newGeminiExportOptions,

    -- ** GeminiExportOptions_ExportFormat
    GeminiExportOptions_ExportFormat (..),

    -- ** GeminiOptions
    GeminiOptions (..),
    newGeminiOptions,

    -- ** GroupsCountResult
    GroupsCountResult (..),
    newGroupsCountResult,

    -- ** GroupsExportOptions
    GroupsExportOptions (..),
    newGroupsExportOptions,

    -- ** GroupsExportOptions_ExportFormat
    GroupsExportOptions_ExportFormat (..),

    -- ** HangoutsChatExportOptions
    HangoutsChatExportOptions (..),
    newHangoutsChatExportOptions,

    -- ** HangoutsChatExportOptions_ExportFormat
    HangoutsChatExportOptions_ExportFormat (..),

    -- ** HangoutsChatInfo
    HangoutsChatInfo (..),
    newHangoutsChatInfo,

    -- ** HangoutsChatOptions
    HangoutsChatOptions (..),
    newHangoutsChatOptions,

    -- ** HeldAccount
    HeldAccount (..),
    newHeldAccount,

    -- ** HeldCalendarQuery
    HeldCalendarQuery (..),
    newHeldCalendarQuery,

    -- ** HeldDriveQuery
    HeldDriveQuery (..),
    newHeldDriveQuery,

    -- ** HeldGroupsQuery
    HeldGroupsQuery (..),
    newHeldGroupsQuery,

    -- ** HeldHangoutsChatQuery
    HeldHangoutsChatQuery (..),
    newHeldHangoutsChatQuery,

    -- ** HeldMailQuery
    HeldMailQuery (..),
    newHeldMailQuery,

    -- ** HeldOrgUnit
    HeldOrgUnit (..),
    newHeldOrgUnit,

    -- ** HeldVoiceQuery
    HeldVoiceQuery (..),
    newHeldVoiceQuery,

    -- ** HeldVoiceQuery_CoveredDataItem
    HeldVoiceQuery_CoveredDataItem (..),

    -- ** Hold
    Hold (..),
    newHold,

    -- ** Hold_Corpus
    Hold_Corpus (..),

    -- ** ListExportsResponse
    ListExportsResponse (..),
    newListExportsResponse,

    -- ** ListHeldAccountsResponse
    ListHeldAccountsResponse (..),
    newListHeldAccountsResponse,

    -- ** ListHoldsResponse
    ListHoldsResponse (..),
    newListHoldsResponse,

    -- ** ListMattersResponse
    ListMattersResponse (..),
    newListMattersResponse,

    -- ** ListOperationsResponse
    ListOperationsResponse (..),
    newListOperationsResponse,

    -- ** ListSavedQueriesResponse
    ListSavedQueriesResponse (..),
    newListSavedQueriesResponse,

    -- ** MailCountResult
    MailCountResult (..),
    newMailCountResult,

    -- ** MailExportOptions
    MailExportOptions (..),
    newMailExportOptions,

    -- ** MailExportOptions_ExportFormat
    MailExportOptions_ExportFormat (..),

    -- ** MailOptions
    MailOptions (..),
    newMailOptions,

    -- ** MailOptions_ClientSideEncryptedOption
    MailOptions_ClientSideEncryptedOption (..),

    -- ** Matter
    Matter (..),
    newMatter,

    -- ** Matter_MatterRegion
    Matter_MatterRegion (..),

    -- ** Matter_State
    Matter_State (..),

    -- ** MatterPermission
    MatterPermission (..),
    newMatterPermission,

    -- ** MatterPermission_Role
    MatterPermission_Role (..),

    -- ** Operation
    Operation (..),
    newOperation,

    -- ** Operation_Metadata
    Operation_Metadata (..),
    newOperation_Metadata,

    -- ** Operation_Response
    Operation_Response (..),
    newOperation_Response,

    -- ** OrgUnitInfo
    OrgUnitInfo (..),
    newOrgUnitInfo,

    -- ** Query
    Query (..),
    newQuery,

    -- ** Query_Corpus
    Query_Corpus (..),

    -- ** Query_DataScope
    Query_DataScope (..),

    -- ** Query_Method
    Query_Method (..),

    -- ** Query_SearchMethod
    Query_SearchMethod (..),

    -- ** RemoveHeldAccountsRequest
    RemoveHeldAccountsRequest (..),
    newRemoveHeldAccountsRequest,

    -- ** RemoveHeldAccountsResponse
    RemoveHeldAccountsResponse (..),
    newRemoveHeldAccountsResponse,

    -- ** RemoveMatterPermissionsRequest
    RemoveMatterPermissionsRequest (..),
    newRemoveMatterPermissionsRequest,

    -- ** ReopenMatterRequest
    ReopenMatterRequest (..),
    newReopenMatterRequest,

    -- ** ReopenMatterResponse
    ReopenMatterResponse (..),
    newReopenMatterResponse,

    -- ** SavedQuery
    SavedQuery (..),
    newSavedQuery,

    -- ** SharedDriveInfo
    SharedDriveInfo (..),
    newSharedDriveInfo,

    -- ** SitesUrlInfo
    SitesUrlInfo (..),
    newSitesUrlInfo,

    -- ** Status
    Status (..),
    newStatus,

    -- ** Status_DetailsItem
    Status_DetailsItem (..),
    newStatus_DetailsItem,

    -- ** TeamDriveInfo
    TeamDriveInfo (..),
    newTeamDriveInfo,

    -- ** UndeleteMatterRequest
    UndeleteMatterRequest (..),
    newUndeleteMatterRequest,

    -- ** UserInfo
    UserInfo (..),
    newUserInfo,

    -- ** VoiceExportOptions
    VoiceExportOptions (..),
    newVoiceExportOptions,

    -- ** VoiceExportOptions_ExportFormat
    VoiceExportOptions_ExportFormat (..),

    -- ** VoiceOptions
    VoiceOptions (..),
    newVoiceOptions,

    -- ** VoiceOptions_CoveredDataItem
    VoiceOptions_CoveredDataItem (..),

    -- ** MattersGetView
    MattersGetView (..),

    -- ** MattersHoldsGetView
    MattersHoldsGetView (..),

    -- ** MattersHoldsListView
    MattersHoldsListView (..),

    -- ** MattersListState
    MattersListState (..),

    -- ** MattersListView
    MattersListView (..),
  )
where

import Gogol.Vault.Matters.AddPermissions
import Gogol.Vault.Matters.Close
import Gogol.Vault.Matters.Count
import Gogol.Vault.Matters.Create
import Gogol.Vault.Matters.Delete
import Gogol.Vault.Matters.Exports.Create
import Gogol.Vault.Matters.Exports.Delete
import Gogol.Vault.Matters.Exports.Get
import Gogol.Vault.Matters.Exports.List
import Gogol.Vault.Matters.Get
import Gogol.Vault.Matters.Holds.Accounts.Create
import Gogol.Vault.Matters.Holds.Accounts.Delete
import Gogol.Vault.Matters.Holds.Accounts.List
import Gogol.Vault.Matters.Holds.AddHeldAccounts
import Gogol.Vault.Matters.Holds.Create
import Gogol.Vault.Matters.Holds.Delete
import Gogol.Vault.Matters.Holds.Get
import Gogol.Vault.Matters.Holds.List
import Gogol.Vault.Matters.Holds.RemoveHeldAccounts
import Gogol.Vault.Matters.Holds.Update
import Gogol.Vault.Matters.List
import Gogol.Vault.Matters.RemovePermissions
import Gogol.Vault.Matters.Reopen
import Gogol.Vault.Matters.SavedQueries.Create
import Gogol.Vault.Matters.SavedQueries.Delete
import Gogol.Vault.Matters.SavedQueries.Get
import Gogol.Vault.Matters.SavedQueries.List
import Gogol.Vault.Matters.Undelete
import Gogol.Vault.Matters.Update
import Gogol.Vault.Operations.Cancel
import Gogol.Vault.Operations.Delete
import Gogol.Vault.Operations.Get
import Gogol.Vault.Operations.List
import Gogol.Vault.Types