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

-- |
-- Module      : Amazonka.Amplify
-- 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.
--
-- Amplify enables developers to develop and deploy cloud-powered mobile
-- and web apps. The Amplify Console provides a continuous delivery and
-- hosting service for web applications. For more information, see the
-- <https://docs.aws.amazon.com/amplify/latest/userguide/welcome.html Amplify Console User Guide>.
-- The Amplify Framework is a comprehensive set of SDKs, libraries, tools,
-- and documentation for client app development. For more information, see
-- the <https://docs.amplify.aws/ Amplify Framework.>
module Amazonka.Amplify
  ( -- * Service Configuration
    defaultService,

    -- * Errors
    -- $errors

    -- ** DependentServiceFailureException
    _DependentServiceFailureException,

    -- ** NotFoundException
    _NotFoundException,

    -- ** InternalFailureException
    _InternalFailureException,

    -- ** UnauthorizedException
    _UnauthorizedException,

    -- ** ResourceNotFoundException
    _ResourceNotFoundException,

    -- ** BadRequestException
    _BadRequestException,

    -- ** LimitExceededException
    _LimitExceededException,

    -- * Waiters
    -- $waiters

    -- * Operations
    -- $operations

    -- ** GetDomainAssociation
    GetDomainAssociation (GetDomainAssociation'),
    newGetDomainAssociation,
    GetDomainAssociationResponse (GetDomainAssociationResponse'),
    newGetDomainAssociationResponse,

    -- ** ListArtifacts
    ListArtifacts (ListArtifacts'),
    newListArtifacts,
    ListArtifactsResponse (ListArtifactsResponse'),
    newListArtifactsResponse,

    -- ** StopJob
    StopJob (StopJob'),
    newStopJob,
    StopJobResponse (StopJobResponse'),
    newStopJobResponse,

    -- ** GetBackendEnvironment
    GetBackendEnvironment (GetBackendEnvironment'),
    newGetBackendEnvironment,
    GetBackendEnvironmentResponse (GetBackendEnvironmentResponse'),
    newGetBackendEnvironmentResponse,

    -- ** CreateWebhook
    CreateWebhook (CreateWebhook'),
    newCreateWebhook,
    CreateWebhookResponse (CreateWebhookResponse'),
    newCreateWebhookResponse,

    -- ** GetBranch
    GetBranch (GetBranch'),
    newGetBranch,
    GetBranchResponse (GetBranchResponse'),
    newGetBranchResponse,

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

    -- ** CreateDomainAssociation
    CreateDomainAssociation (CreateDomainAssociation'),
    newCreateDomainAssociation,
    CreateDomainAssociationResponse (CreateDomainAssociationResponse'),
    newCreateDomainAssociationResponse,

    -- ** GetWebhook
    GetWebhook (GetWebhook'),
    newGetWebhook,
    GetWebhookResponse (GetWebhookResponse'),
    newGetWebhookResponse,

    -- ** DeleteBranch
    DeleteBranch (DeleteBranch'),
    newDeleteBranch,
    DeleteBranchResponse (DeleteBranchResponse'),
    newDeleteBranchResponse,

    -- ** UpdateBranch
    UpdateBranch (UpdateBranch'),
    newUpdateBranch,
    UpdateBranchResponse (UpdateBranchResponse'),
    newUpdateBranchResponse,

    -- ** CreateBackendEnvironment
    CreateBackendEnvironment (CreateBackendEnvironment'),
    newCreateBackendEnvironment,
    CreateBackendEnvironmentResponse (CreateBackendEnvironmentResponse'),
    newCreateBackendEnvironmentResponse,

    -- ** CreateDeployment
    CreateDeployment (CreateDeployment'),
    newCreateDeployment,
    CreateDeploymentResponse (CreateDeploymentResponse'),
    newCreateDeploymentResponse,

    -- ** CreateBranch
    CreateBranch (CreateBranch'),
    newCreateBranch,
    CreateBranchResponse (CreateBranchResponse'),
    newCreateBranchResponse,

    -- ** GenerateAccessLogs
    GenerateAccessLogs (GenerateAccessLogs'),
    newGenerateAccessLogs,
    GenerateAccessLogsResponse (GenerateAccessLogsResponse'),
    newGenerateAccessLogsResponse,

    -- ** ListApps (Paginated)
    ListApps (ListApps'),
    newListApps,
    ListAppsResponse (ListAppsResponse'),
    newListAppsResponse,

    -- ** ListBranches (Paginated)
    ListBranches (ListBranches'),
    newListBranches,
    ListBranchesResponse (ListBranchesResponse'),
    newListBranchesResponse,

    -- ** DeleteBackendEnvironment
    DeleteBackendEnvironment (DeleteBackendEnvironment'),
    newDeleteBackendEnvironment,
    DeleteBackendEnvironmentResponse (DeleteBackendEnvironmentResponse'),
    newDeleteBackendEnvironmentResponse,

    -- ** DeleteApp
    DeleteApp (DeleteApp'),
    newDeleteApp,
    DeleteAppResponse (DeleteAppResponse'),
    newDeleteAppResponse,

    -- ** UpdateApp
    UpdateApp (UpdateApp'),
    newUpdateApp,
    UpdateAppResponse (UpdateAppResponse'),
    newUpdateAppResponse,

    -- ** GetArtifactUrl
    GetArtifactUrl (GetArtifactUrl'),
    newGetArtifactUrl,
    GetArtifactUrlResponse (GetArtifactUrlResponse'),
    newGetArtifactUrlResponse,

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

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

    -- ** GetJob
    GetJob (GetJob'),
    newGetJob,
    GetJobResponse (GetJobResponse'),
    newGetJobResponse,

    -- ** StartJob
    StartJob (StartJob'),
    newStartJob,
    StartJobResponse (StartJobResponse'),
    newStartJobResponse,

    -- ** GetApp
    GetApp (GetApp'),
    newGetApp,
    GetAppResponse (GetAppResponse'),
    newGetAppResponse,

    -- ** UpdateWebhook
    UpdateWebhook (UpdateWebhook'),
    newUpdateWebhook,
    UpdateWebhookResponse (UpdateWebhookResponse'),
    newUpdateWebhookResponse,

    -- ** DeleteWebhook
    DeleteWebhook (DeleteWebhook'),
    newDeleteWebhook,
    DeleteWebhookResponse (DeleteWebhookResponse'),
    newDeleteWebhookResponse,

    -- ** ListWebhooks
    ListWebhooks (ListWebhooks'),
    newListWebhooks,
    ListWebhooksResponse (ListWebhooksResponse'),
    newListWebhooksResponse,

    -- ** CreateApp
    CreateApp (CreateApp'),
    newCreateApp,
    CreateAppResponse (CreateAppResponse'),
    newCreateAppResponse,

    -- ** DeleteDomainAssociation
    DeleteDomainAssociation (DeleteDomainAssociation'),
    newDeleteDomainAssociation,
    DeleteDomainAssociationResponse (DeleteDomainAssociationResponse'),
    newDeleteDomainAssociationResponse,

    -- ** UpdateDomainAssociation
    UpdateDomainAssociation (UpdateDomainAssociation'),
    newUpdateDomainAssociation,
    UpdateDomainAssociationResponse (UpdateDomainAssociationResponse'),
    newUpdateDomainAssociationResponse,

    -- ** ListDomainAssociations (Paginated)
    ListDomainAssociations (ListDomainAssociations'),
    newListDomainAssociations,
    ListDomainAssociationsResponse (ListDomainAssociationsResponse'),
    newListDomainAssociationsResponse,

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

    -- ** ListBackendEnvironments
    ListBackendEnvironments (ListBackendEnvironments'),
    newListBackendEnvironments,
    ListBackendEnvironmentsResponse (ListBackendEnvironmentsResponse'),
    newListBackendEnvironmentsResponse,

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

    -- ** StartDeployment
    StartDeployment (StartDeployment'),
    newStartDeployment,
    StartDeploymentResponse (StartDeploymentResponse'),
    newStartDeploymentResponse,

    -- * Types

    -- ** DomainStatus
    DomainStatus (..),

    -- ** JobStatus
    JobStatus (..),

    -- ** JobType
    JobType (..),

    -- ** Platform
    Platform (..),

    -- ** Stage
    Stage (..),

    -- ** App
    App (App'),
    newApp,

    -- ** Artifact
    Artifact (Artifact'),
    newArtifact,

    -- ** AutoBranchCreationConfig
    AutoBranchCreationConfig (AutoBranchCreationConfig'),
    newAutoBranchCreationConfig,

    -- ** BackendEnvironment
    BackendEnvironment (BackendEnvironment'),
    newBackendEnvironment,

    -- ** Branch
    Branch (Branch'),
    newBranch,

    -- ** CustomRule
    CustomRule (CustomRule'),
    newCustomRule,

    -- ** DomainAssociation
    DomainAssociation (DomainAssociation'),
    newDomainAssociation,

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

    -- ** JobSummary
    JobSummary (JobSummary'),
    newJobSummary,

    -- ** ProductionBranch
    ProductionBranch (ProductionBranch'),
    newProductionBranch,

    -- ** Step
    Step (Step'),
    newStep,

    -- ** SubDomain
    SubDomain (SubDomain'),
    newSubDomain,

    -- ** SubDomainSetting
    SubDomainSetting (SubDomainSetting'),
    newSubDomainSetting,

    -- ** Webhook
    Webhook (Webhook'),
    newWebhook,
  )
where

import Amazonka.Amplify.CreateApp
import Amazonka.Amplify.CreateBackendEnvironment
import Amazonka.Amplify.CreateBranch
import Amazonka.Amplify.CreateDeployment
import Amazonka.Amplify.CreateDomainAssociation
import Amazonka.Amplify.CreateWebhook
import Amazonka.Amplify.DeleteApp
import Amazonka.Amplify.DeleteBackendEnvironment
import Amazonka.Amplify.DeleteBranch
import Amazonka.Amplify.DeleteDomainAssociation
import Amazonka.Amplify.DeleteJob
import Amazonka.Amplify.DeleteWebhook
import Amazonka.Amplify.GenerateAccessLogs
import Amazonka.Amplify.GetApp
import Amazonka.Amplify.GetArtifactUrl
import Amazonka.Amplify.GetBackendEnvironment
import Amazonka.Amplify.GetBranch
import Amazonka.Amplify.GetDomainAssociation
import Amazonka.Amplify.GetJob
import Amazonka.Amplify.GetWebhook
import Amazonka.Amplify.Lens
import Amazonka.Amplify.ListApps
import Amazonka.Amplify.ListArtifacts
import Amazonka.Amplify.ListBackendEnvironments
import Amazonka.Amplify.ListBranches
import Amazonka.Amplify.ListDomainAssociations
import Amazonka.Amplify.ListJobs
import Amazonka.Amplify.ListTagsForResource
import Amazonka.Amplify.ListWebhooks
import Amazonka.Amplify.StartDeployment
import Amazonka.Amplify.StartJob
import Amazonka.Amplify.StopJob
import Amazonka.Amplify.TagResource
import Amazonka.Amplify.Types
import Amazonka.Amplify.UntagResource
import Amazonka.Amplify.UpdateApp
import Amazonka.Amplify.UpdateBranch
import Amazonka.Amplify.UpdateDomainAssociation
import Amazonka.Amplify.UpdateWebhook
import Amazonka.Amplify.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 'Amplify'.

-- $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.