{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}

-- |
-- Module      : Amazonka.DataBrew
-- Copyright   : (c) 2013-2021 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Derived from API version @2017-07-25@ of the AWS service descriptions, licensed under Apache 2.0.
--
-- Glue DataBrew is a visual, cloud-scale data-preparation service.
-- DataBrew simplifies data preparation tasks, targeting data issues that
-- are hard to spot and time-consuming to fix. DataBrew empowers users of
-- all technical levels to visualize the data and perform one-click data
-- transformations, with no coding required.
module Amazonka.DataBrew
  ( -- * Service Configuration
    defaultService,

    -- * Errors
    -- $errors

    -- ** ValidationException
    _ValidationException,

    -- ** AccessDeniedException
    _AccessDeniedException,

    -- ** ConflictException
    _ConflictException,

    -- ** ServiceQuotaExceededException
    _ServiceQuotaExceededException,

    -- ** InternalServerException
    _InternalServerException,

    -- ** ResourceNotFoundException
    _ResourceNotFoundException,

    -- * Waiters
    -- $waiters

    -- * Operations
    -- $operations

    -- ** ListProjects (Paginated)
    ListProjects (ListProjects'),
    newListProjects,
    ListProjectsResponse (ListProjectsResponse'),
    newListProjectsResponse,

    -- ** DeleteProject
    DeleteProject (DeleteProject'),
    newDeleteProject,
    DeleteProjectResponse (DeleteProjectResponse'),
    newDeleteProjectResponse,

    -- ** UpdateProject
    UpdateProject (UpdateProject'),
    newUpdateProject,
    UpdateProjectResponse (UpdateProjectResponse'),
    newUpdateProjectResponse,

    -- ** ListSchedules (Paginated)
    ListSchedules (ListSchedules'),
    newListSchedules,
    ListSchedulesResponse (ListSchedulesResponse'),
    newListSchedulesResponse,

    -- ** DescribeDataset
    DescribeDataset (DescribeDataset'),
    newDescribeDataset,
    DescribeDatasetResponse (DescribeDatasetResponse'),
    newDescribeDatasetResponse,

    -- ** ListTagsForResource
    ListTagsForResource (ListTagsForResource'),
    newListTagsForResource,
    ListTagsForResourceResponse (ListTagsForResourceResponse'),
    newListTagsForResourceResponse,

    -- ** DescribeProject
    DescribeProject (DescribeProject'),
    newDescribeProject,
    DescribeProjectResponse (DescribeProjectResponse'),
    newDescribeProjectResponse,

    -- ** CreateRecipeJob
    CreateRecipeJob (CreateRecipeJob'),
    newCreateRecipeJob,
    CreateRecipeJobResponse (CreateRecipeJobResponse'),
    newCreateRecipeJobResponse,

    -- ** ListRecipeVersions (Paginated)
    ListRecipeVersions (ListRecipeVersions'),
    newListRecipeVersions,
    ListRecipeVersionsResponse (ListRecipeVersionsResponse'),
    newListRecipeVersionsResponse,

    -- ** DeleteDataset
    DeleteDataset (DeleteDataset'),
    newDeleteDataset,
    DeleteDatasetResponse (DeleteDatasetResponse'),
    newDeleteDatasetResponse,

    -- ** UpdateDataset
    UpdateDataset (UpdateDataset'),
    newUpdateDataset,
    UpdateDatasetResponse (UpdateDatasetResponse'),
    newUpdateDatasetResponse,

    -- ** StopJobRun
    StopJobRun (StopJobRun'),
    newStopJobRun,
    StopJobRunResponse (StopJobRunResponse'),
    newStopJobRunResponse,

    -- ** UpdateRecipeJob
    UpdateRecipeJob (UpdateRecipeJob'),
    newUpdateRecipeJob,
    UpdateRecipeJobResponse (UpdateRecipeJobResponse'),
    newUpdateRecipeJobResponse,

    -- ** ListJobs (Paginated)
    ListJobs (ListJobs'),
    newListJobs,
    ListJobsResponse (ListJobsResponse'),
    newListJobsResponse,

    -- ** CreateDataset
    CreateDataset (CreateDataset'),
    newCreateDataset,
    CreateDatasetResponse (CreateDatasetResponse'),
    newCreateDatasetResponse,

    -- ** DeleteJob
    DeleteJob (DeleteJob'),
    newDeleteJob,
    DeleteJobResponse (DeleteJobResponse'),
    newDeleteJobResponse,

    -- ** CreateRecipe
    CreateRecipe (CreateRecipe'),
    newCreateRecipe,
    CreateRecipeResponse (CreateRecipeResponse'),
    newCreateRecipeResponse,

    -- ** UpdateSchedule
    UpdateSchedule (UpdateSchedule'),
    newUpdateSchedule,
    UpdateScheduleResponse (UpdateScheduleResponse'),
    newUpdateScheduleResponse,

    -- ** DeleteSchedule
    DeleteSchedule (DeleteSchedule'),
    newDeleteSchedule,
    DeleteScheduleResponse (DeleteScheduleResponse'),
    newDeleteScheduleResponse,

    -- ** BatchDeleteRecipeVersion
    BatchDeleteRecipeVersion (BatchDeleteRecipeVersion'),
    newBatchDeleteRecipeVersion,
    BatchDeleteRecipeVersionResponse (BatchDeleteRecipeVersionResponse'),
    newBatchDeleteRecipeVersionResponse,

    -- ** ListJobRuns (Paginated)
    ListJobRuns (ListJobRuns'),
    newListJobRuns,
    ListJobRunsResponse (ListJobRunsResponse'),
    newListJobRunsResponse,

    -- ** DescribeJob
    DescribeJob (DescribeJob'),
    newDescribeJob,
    DescribeJobResponse (DescribeJobResponse'),
    newDescribeJobResponse,

    -- ** UpdateProfileJob
    UpdateProfileJob (UpdateProfileJob'),
    newUpdateProfileJob,
    UpdateProfileJobResponse (UpdateProfileJobResponse'),
    newUpdateProfileJobResponse,

    -- ** DescribeRecipe
    DescribeRecipe (DescribeRecipe'),
    newDescribeRecipe,
    DescribeRecipeResponse (DescribeRecipeResponse'),
    newDescribeRecipeResponse,

    -- ** CreateProfileJob
    CreateProfileJob (CreateProfileJob'),
    newCreateProfileJob,
    CreateProfileJobResponse (CreateProfileJobResponse'),
    newCreateProfileJobResponse,

    -- ** TagResource
    TagResource (TagResource'),
    newTagResource,
    TagResourceResponse (TagResourceResponse'),
    newTagResourceResponse,

    -- ** DescribeSchedule
    DescribeSchedule (DescribeSchedule'),
    newDescribeSchedule,
    DescribeScheduleResponse (DescribeScheduleResponse'),
    newDescribeScheduleResponse,

    -- ** DescribeJobRun
    DescribeJobRun (DescribeJobRun'),
    newDescribeJobRun,
    DescribeJobRunResponse (DescribeJobRunResponse'),
    newDescribeJobRunResponse,

    -- ** StartProjectSession
    StartProjectSession (StartProjectSession'),
    newStartProjectSession,
    StartProjectSessionResponse (StartProjectSessionResponse'),
    newStartProjectSessionResponse,

    -- ** DeleteRecipeVersion
    DeleteRecipeVersion (DeleteRecipeVersion'),
    newDeleteRecipeVersion,
    DeleteRecipeVersionResponse (DeleteRecipeVersionResponse'),
    newDeleteRecipeVersionResponse,

    -- ** ListDatasets (Paginated)
    ListDatasets (ListDatasets'),
    newListDatasets,
    ListDatasetsResponse (ListDatasetsResponse'),
    newListDatasetsResponse,

    -- ** UntagResource
    UntagResource (UntagResource'),
    newUntagResource,
    UntagResourceResponse (UntagResourceResponse'),
    newUntagResourceResponse,

    -- ** StartJobRun
    StartJobRun (StartJobRun'),
    newStartJobRun,
    StartJobRunResponse (StartJobRunResponse'),
    newStartJobRunResponse,

    -- ** UpdateRecipe
    UpdateRecipe (UpdateRecipe'),
    newUpdateRecipe,
    UpdateRecipeResponse (UpdateRecipeResponse'),
    newUpdateRecipeResponse,

    -- ** CreateSchedule
    CreateSchedule (CreateSchedule'),
    newCreateSchedule,
    CreateScheduleResponse (CreateScheduleResponse'),
    newCreateScheduleResponse,

    -- ** ListRecipes (Paginated)
    ListRecipes (ListRecipes'),
    newListRecipes,
    ListRecipesResponse (ListRecipesResponse'),
    newListRecipesResponse,

    -- ** PublishRecipe
    PublishRecipe (PublishRecipe'),
    newPublishRecipe,
    PublishRecipeResponse (PublishRecipeResponse'),
    newPublishRecipeResponse,

    -- ** CreateProject
    CreateProject (CreateProject'),
    newCreateProject,
    CreateProjectResponse (CreateProjectResponse'),
    newCreateProjectResponse,

    -- ** SendProjectSessionAction
    SendProjectSessionAction (SendProjectSessionAction'),
    newSendProjectSessionAction,
    SendProjectSessionActionResponse (SendProjectSessionActionResponse'),
    newSendProjectSessionActionResponse,

    -- * Types

    -- ** CompressionFormat
    CompressionFormat (..),

    -- ** DatabaseOutputMode
    DatabaseOutputMode (..),

    -- ** EncryptionMode
    EncryptionMode (..),

    -- ** InputFormat
    InputFormat (..),

    -- ** JobRunState
    JobRunState (..),

    -- ** JobType
    JobType (..),

    -- ** LogSubscription
    LogSubscription (..),

    -- ** Order
    Order (..),

    -- ** OrderedBy
    OrderedBy (..),

    -- ** OutputFormat
    OutputFormat (..),

    -- ** ParameterType
    ParameterType (..),

    -- ** SampleMode
    SampleMode (..),

    -- ** SampleType
    SampleType (..),

    -- ** SessionStatus
    SessionStatus (..),

    -- ** Source
    Source (..),

    -- ** ColumnSelector
    ColumnSelector (ColumnSelector'),
    newColumnSelector,

    -- ** ColumnStatisticsConfiguration
    ColumnStatisticsConfiguration (ColumnStatisticsConfiguration'),
    newColumnStatisticsConfiguration,

    -- ** ConditionExpression
    ConditionExpression (ConditionExpression'),
    newConditionExpression,

    -- ** CsvOptions
    CsvOptions (CsvOptions'),
    newCsvOptions,

    -- ** CsvOutputOptions
    CsvOutputOptions (CsvOutputOptions'),
    newCsvOutputOptions,

    -- ** DataCatalogInputDefinition
    DataCatalogInputDefinition (DataCatalogInputDefinition'),
    newDataCatalogInputDefinition,

    -- ** DataCatalogOutput
    DataCatalogOutput (DataCatalogOutput'),
    newDataCatalogOutput,

    -- ** DatabaseInputDefinition
    DatabaseInputDefinition (DatabaseInputDefinition'),
    newDatabaseInputDefinition,

    -- ** DatabaseOutput
    DatabaseOutput (DatabaseOutput'),
    newDatabaseOutput,

    -- ** DatabaseTableOutputOptions
    DatabaseTableOutputOptions (DatabaseTableOutputOptions'),
    newDatabaseTableOutputOptions,

    -- ** Dataset
    Dataset (Dataset'),
    newDataset,

    -- ** DatasetParameter
    DatasetParameter (DatasetParameter'),
    newDatasetParameter,

    -- ** DatetimeOptions
    DatetimeOptions (DatetimeOptions'),
    newDatetimeOptions,

    -- ** ExcelOptions
    ExcelOptions (ExcelOptions'),
    newExcelOptions,

    -- ** FilesLimit
    FilesLimit (FilesLimit'),
    newFilesLimit,

    -- ** FilterExpression
    FilterExpression (FilterExpression'),
    newFilterExpression,

    -- ** FormatOptions
    FormatOptions (FormatOptions'),
    newFormatOptions,

    -- ** Input
    Input (Input'),
    newInput,

    -- ** Job
    Job (Job'),
    newJob,

    -- ** JobRun
    JobRun (JobRun'),
    newJobRun,

    -- ** JobSample
    JobSample (JobSample'),
    newJobSample,

    -- ** JsonOptions
    JsonOptions (JsonOptions'),
    newJsonOptions,

    -- ** Output
    Output (Output'),
    newOutput,

    -- ** OutputFormatOptions
    OutputFormatOptions (OutputFormatOptions'),
    newOutputFormatOptions,

    -- ** PathOptions
    PathOptions (PathOptions'),
    newPathOptions,

    -- ** ProfileConfiguration
    ProfileConfiguration (ProfileConfiguration'),
    newProfileConfiguration,

    -- ** Project
    Project (Project'),
    newProject,

    -- ** Recipe
    Recipe (Recipe'),
    newRecipe,

    -- ** RecipeAction
    RecipeAction (RecipeAction'),
    newRecipeAction,

    -- ** RecipeReference
    RecipeReference (RecipeReference'),
    newRecipeReference,

    -- ** RecipeStep
    RecipeStep (RecipeStep'),
    newRecipeStep,

    -- ** RecipeVersionErrorDetail
    RecipeVersionErrorDetail (RecipeVersionErrorDetail'),
    newRecipeVersionErrorDetail,

    -- ** S3Location
    S3Location (S3Location'),
    newS3Location,

    -- ** S3TableOutputOptions
    S3TableOutputOptions (S3TableOutputOptions'),
    newS3TableOutputOptions,

    -- ** Sample
    Sample (Sample'),
    newSample,

    -- ** Schedule
    Schedule (Schedule'),
    newSchedule,

    -- ** StatisticOverride
    StatisticOverride (StatisticOverride'),
    newStatisticOverride,

    -- ** StatisticsConfiguration
    StatisticsConfiguration (StatisticsConfiguration'),
    newStatisticsConfiguration,

    -- ** ViewFrame
    ViewFrame (ViewFrame'),
    newViewFrame,
  )
where

import Amazonka.DataBrew.BatchDeleteRecipeVersion
import Amazonka.DataBrew.CreateDataset
import Amazonka.DataBrew.CreateProfileJob
import Amazonka.DataBrew.CreateProject
import Amazonka.DataBrew.CreateRecipe
import Amazonka.DataBrew.CreateRecipeJob
import Amazonka.DataBrew.CreateSchedule
import Amazonka.DataBrew.DeleteDataset
import Amazonka.DataBrew.DeleteJob
import Amazonka.DataBrew.DeleteProject
import Amazonka.DataBrew.DeleteRecipeVersion
import Amazonka.DataBrew.DeleteSchedule
import Amazonka.DataBrew.DescribeDataset
import Amazonka.DataBrew.DescribeJob
import Amazonka.DataBrew.DescribeJobRun
import Amazonka.DataBrew.DescribeProject
import Amazonka.DataBrew.DescribeRecipe
import Amazonka.DataBrew.DescribeSchedule
import Amazonka.DataBrew.Lens
import Amazonka.DataBrew.ListDatasets
import Amazonka.DataBrew.ListJobRuns
import Amazonka.DataBrew.ListJobs
import Amazonka.DataBrew.ListProjects
import Amazonka.DataBrew.ListRecipeVersions
import Amazonka.DataBrew.ListRecipes
import Amazonka.DataBrew.ListSchedules
import Amazonka.DataBrew.ListTagsForResource
import Amazonka.DataBrew.PublishRecipe
import Amazonka.DataBrew.SendProjectSessionAction
import Amazonka.DataBrew.StartJobRun
import Amazonka.DataBrew.StartProjectSession
import Amazonka.DataBrew.StopJobRun
import Amazonka.DataBrew.TagResource
import Amazonka.DataBrew.Types
import Amazonka.DataBrew.UntagResource
import Amazonka.DataBrew.UpdateDataset
import Amazonka.DataBrew.UpdateProfileJob
import Amazonka.DataBrew.UpdateProject
import Amazonka.DataBrew.UpdateRecipe
import Amazonka.DataBrew.UpdateRecipeJob
import Amazonka.DataBrew.UpdateSchedule
import Amazonka.DataBrew.Waiters

-- $errors
-- Error matchers are designed for use with the functions provided by
-- <http://hackage.haskell.org/package/lens/docs/Control-Exception-Lens.html Control.Exception.Lens>.
-- This allows catching (and rethrowing) service specific errors returned
-- by 'DataBrew'.

-- $operations
-- Some AWS operations return results that are incomplete and require subsequent
-- requests in order to obtain the entire result set. The process of sending
-- subsequent requests to continue where a previous request left off is called
-- pagination. For example, the 'ListObjects' operation of Amazon S3 returns up to
-- 1000 objects at a time, and you must send subsequent requests with the
-- appropriate Marker in order to retrieve the next page of results.
--
-- Operations that have an 'AWSPager' instance can transparently perform subsequent
-- requests, correctly setting Markers and other request facets to iterate through
-- the entire result set of a truncated API operation. Operations which support
-- this have an additional note in the documentation.
--
-- Many operations have the ability to filter results on the server side. See the
-- individual operation parameters for details.

-- $waiters
-- Waiters poll by repeatedly sending a request until some remote success condition
-- configured by the 'Wait' specification is fulfilled. The 'Wait' specification
-- determines how many attempts should be made, in addition to delay and retry strategies.