amazonka-serverlessrepo-2.0: gen/Amazonka/ServerlessApplicationRepository/Types.hs
{-# LANGUAGE DisambiguateRecordFields #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}
-- Derived from AWS service descriptions, licensed under Apache 2.0.
-- |
-- Module : Amazonka.ServerlessApplicationRepository.Types
-- Copyright : (c) 2013-2023 Brendan Hay
-- License : Mozilla Public License, v. 2.0.
-- Maintainer : Brendan Hay
-- Stability : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.ServerlessApplicationRepository.Types
( -- * Service Configuration
defaultService,
-- * Errors
_BadRequestException,
_ConflictException,
_ForbiddenException,
_InternalServerErrorException,
_NotFoundException,
_TooManyRequestsException,
-- * Capability
Capability (..),
-- * Status
Status (..),
-- * ApplicationDependencySummary
ApplicationDependencySummary (..),
newApplicationDependencySummary,
applicationDependencySummary_applicationId,
applicationDependencySummary_semanticVersion,
-- * ApplicationPolicyStatement
ApplicationPolicyStatement (..),
newApplicationPolicyStatement,
applicationPolicyStatement_principalOrgIDs,
applicationPolicyStatement_statementId,
applicationPolicyStatement_principals,
applicationPolicyStatement_actions,
-- * ApplicationSummary
ApplicationSummary (..),
newApplicationSummary,
applicationSummary_creationTime,
applicationSummary_homePageUrl,
applicationSummary_labels,
applicationSummary_spdxLicenseId,
applicationSummary_description,
applicationSummary_author,
applicationSummary_applicationId,
applicationSummary_name,
-- * ParameterDefinition
ParameterDefinition (..),
newParameterDefinition,
parameterDefinition_allowedPattern,
parameterDefinition_allowedValues,
parameterDefinition_constraintDescription,
parameterDefinition_defaultValue,
parameterDefinition_description,
parameterDefinition_maxLength,
parameterDefinition_maxValue,
parameterDefinition_minLength,
parameterDefinition_minValue,
parameterDefinition_noEcho,
parameterDefinition_type,
parameterDefinition_referencedByResources,
parameterDefinition_name,
-- * ParameterValue
ParameterValue (..),
newParameterValue,
parameterValue_value,
parameterValue_name,
-- * RollbackConfiguration
RollbackConfiguration (..),
newRollbackConfiguration,
rollbackConfiguration_monitoringTimeInMinutes,
rollbackConfiguration_rollbackTriggers,
-- * RollbackTrigger
RollbackTrigger (..),
newRollbackTrigger,
rollbackTrigger_type,
rollbackTrigger_arn,
-- * Tag
Tag (..),
newTag,
tag_value,
tag_key,
-- * Version
Version (..),
newVersion,
version_sourceCodeArchiveUrl,
version_sourceCodeUrl,
version_templateUrl,
version_parameterDefinitions,
version_resourcesSupported,
version_creationTime,
version_requiredCapabilities,
version_applicationId,
version_semanticVersion,
-- * VersionSummary
VersionSummary (..),
newVersionSummary,
versionSummary_sourceCodeUrl,
versionSummary_creationTime,
versionSummary_applicationId,
versionSummary_semanticVersion,
)
where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Prelude as Prelude
import Amazonka.ServerlessApplicationRepository.Types.ApplicationDependencySummary
import Amazonka.ServerlessApplicationRepository.Types.ApplicationPolicyStatement
import Amazonka.ServerlessApplicationRepository.Types.ApplicationSummary
import Amazonka.ServerlessApplicationRepository.Types.Capability
import Amazonka.ServerlessApplicationRepository.Types.ParameterDefinition
import Amazonka.ServerlessApplicationRepository.Types.ParameterValue
import Amazonka.ServerlessApplicationRepository.Types.RollbackConfiguration
import Amazonka.ServerlessApplicationRepository.Types.RollbackTrigger
import Amazonka.ServerlessApplicationRepository.Types.Status
import Amazonka.ServerlessApplicationRepository.Types.Tag
import Amazonka.ServerlessApplicationRepository.Types.Version
import Amazonka.ServerlessApplicationRepository.Types.VersionSummary
import qualified Amazonka.Sign.V4 as Sign
-- | API version @2017-09-08@ of the Amazon ServerlessApplicationRepository SDK configuration.
defaultService :: Core.Service
defaultService =
Core.Service
{ Core.abbrev =
"ServerlessApplicationRepository",
Core.signer = Sign.v4,
Core.endpointPrefix = "serverlessrepo",
Core.signingName = "serverlessrepo",
Core.version = "2017-09-08",
Core.s3AddressingStyle = Core.S3AddressingStyleAuto,
Core.endpoint = Core.defaultEndpoint defaultService,
Core.timeout = Prelude.Just 70,
Core.check = Core.statusSuccess,
Core.error =
Core.parseJSONError
"ServerlessApplicationRepository",
Core.retry = retry
}
where
retry =
Core.Exponential
{ Core.base = 5.0e-2,
Core.growth = 2,
Core.attempts = 5,
Core.check = check
}
check e
| Lens.has (Core.hasStatus 502) e =
Prelude.Just "bad_gateway"
| Lens.has (Core.hasStatus 504) e =
Prelude.Just "gateway_timeout"
| Lens.has (Core.hasStatus 500) e =
Prelude.Just "general_server_error"
| Lens.has (Core.hasStatus 509) e =
Prelude.Just "limit_exceeded"
| Lens.has
( Core.hasCode "RequestThrottledException"
Prelude.. Core.hasStatus 400
)
e =
Prelude.Just "request_throttled_exception"
| Lens.has (Core.hasStatus 503) e =
Prelude.Just "service_unavailable"
| Lens.has
( Core.hasCode "ThrottledException"
Prelude.. Core.hasStatus 400
)
e =
Prelude.Just "throttled_exception"
| Lens.has
( Core.hasCode "Throttling"
Prelude.. Core.hasStatus 400
)
e =
Prelude.Just "throttling"
| Lens.has
( Core.hasCode "ThrottlingException"
Prelude.. Core.hasStatus 400
)
e =
Prelude.Just "throttling_exception"
| Lens.has
( Core.hasCode
"ProvisionedThroughputExceededException"
Prelude.. Core.hasStatus 400
)
e =
Prelude.Just "throughput_exceeded"
| Lens.has (Core.hasStatus 429) e =
Prelude.Just "too_many_requests"
| Prelude.otherwise = Prelude.Nothing
-- | One of the parameters in the request is invalid.
_BadRequestException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
_BadRequestException =
Core._MatchServiceError
defaultService
"BadRequestException"
Prelude.. Core.hasStatus 400
-- | The resource already exists.
_ConflictException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
_ConflictException =
Core._MatchServiceError
defaultService
"ConflictException"
Prelude.. Core.hasStatus 409
-- | The client is not authenticated.
_ForbiddenException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
_ForbiddenException =
Core._MatchServiceError
defaultService
"ForbiddenException"
Prelude.. Core.hasStatus 403
-- | The AWS Serverless Application Repository service encountered an
-- internal error.
_InternalServerErrorException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
_InternalServerErrorException =
Core._MatchServiceError
defaultService
"InternalServerErrorException"
Prelude.. Core.hasStatus 500
-- | The resource (for example, an access policy statement) specified in the
-- request doesn\'t exist.
_NotFoundException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
_NotFoundException =
Core._MatchServiceError
defaultService
"NotFoundException"
Prelude.. Core.hasStatus 404
-- | The client is sending more than the allowed number of requests per unit
-- of time.
_TooManyRequestsException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
_TooManyRequestsException =
Core._MatchServiceError
defaultService
"TooManyRequestsException"
Prelude.. Core.hasStatus 429