{-# 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.CostAndUsageReport.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.CostAndUsageReport.Types ( -- * Service Configuration defaultService, -- * Errors _DuplicateReportNameException, _InternalErrorException, _ReportLimitReachedException, _ValidationException, -- * AWSRegion AWSRegion (..), -- * AdditionalArtifact AdditionalArtifact (..), -- * CompressionFormat CompressionFormat (..), -- * ReportFormat ReportFormat (..), -- * ReportVersioning ReportVersioning (..), -- * SchemaElement SchemaElement (..), -- * TimeUnit TimeUnit (..), -- * ReportDefinition ReportDefinition (..), newReportDefinition, reportDefinition_additionalArtifacts, reportDefinition_billingViewArn, reportDefinition_refreshClosedReports, reportDefinition_reportVersioning, reportDefinition_reportName, reportDefinition_timeUnit, reportDefinition_format, reportDefinition_compression, reportDefinition_additionalSchemaElements, reportDefinition_s3Bucket, reportDefinition_s3Prefix, reportDefinition_s3Region, ) where import qualified Amazonka.Core as Core import qualified Amazonka.Core.Lens.Internal as Lens import Amazonka.CostAndUsageReport.Types.AWSRegion import Amazonka.CostAndUsageReport.Types.AdditionalArtifact import Amazonka.CostAndUsageReport.Types.CompressionFormat import Amazonka.CostAndUsageReport.Types.ReportDefinition import Amazonka.CostAndUsageReport.Types.ReportFormat import Amazonka.CostAndUsageReport.Types.ReportVersioning import Amazonka.CostAndUsageReport.Types.SchemaElement import Amazonka.CostAndUsageReport.Types.TimeUnit import qualified Amazonka.Prelude as Prelude import qualified Amazonka.Sign.V4 as Sign -- | API version @2017-01-06@ of the Amazon Cost and Usage Report Service SDK configuration. defaultService :: Core.Service defaultService = Core.Service { Core.abbrev = "CostAndUsageReport", Core.signer = Sign.v4, Core.endpointPrefix = "cur", Core.signingName = "cur", Core.version = "2017-01-06", Core.s3AddressingStyle = Core.S3AddressingStyleAuto, Core.endpoint = Core.defaultEndpoint defaultService, Core.timeout = Prelude.Just 70, Core.check = Core.statusSuccess, Core.error = Core.parseJSONError "CostAndUsageReport", 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 -- | A report with the specified name already exists in the account. Specify -- a different report name. _DuplicateReportNameException :: (Core.AsError a) => Lens.Fold a Core.ServiceError _DuplicateReportNameException = Core._MatchServiceError defaultService "DuplicateReportNameException" -- | An error on the server occurred during the processing of your request. -- Try again later. _InternalErrorException :: (Core.AsError a) => Lens.Fold a Core.ServiceError _InternalErrorException = Core._MatchServiceError defaultService "InternalErrorException" -- | This account already has five reports defined. To define a new report, -- you must delete an existing report. _ReportLimitReachedException :: (Core.AsError a) => Lens.Fold a Core.ServiceError _ReportLimitReachedException = Core._MatchServiceError defaultService "ReportLimitReachedException" -- | The input fails to satisfy the constraints specified by an AWS service. _ValidationException :: (Core.AsError a) => Lens.Fold a Core.ServiceError _ValidationException = Core._MatchServiceError defaultService "ValidationException"