packages feed

amazonka-cost-explorer 1.6.1 → 2.0

raw patch · 241 files changed

+30949/−4192 lines, 241 filesdep +case-insensitivedep ~amazonka-coredep ~amazonka-testdep ~basesetup-changedPVP ok

version bump matches the API change (PVP)

Dependencies added: case-insensitive

Dependency ranges changed: amazonka-core, amazonka-test, base

API changes (from Hackage documentation)

- Network.AWS.CostExplorer: AllUpfront :: PaymentOption
- Network.AWS.CostExplorer: Convertible :: OfferingClass
- Network.AWS.CostExplorer: CostAndUsage :: Context
- Network.AWS.CostExplorer: Daily :: Granularity
- Network.AWS.CostExplorer: Dimension :: GroupDefinitionType
- Network.AWS.CostExplorer: DimensionAZ :: Dimension
- Network.AWS.CostExplorer: DimensionCacheEngine :: Dimension
- Network.AWS.CostExplorer: DimensionDatabaseEngine :: Dimension
- Network.AWS.CostExplorer: DimensionDeploymentOption :: Dimension
- Network.AWS.CostExplorer: DimensionInstanceType :: Dimension
- Network.AWS.CostExplorer: DimensionInstanceTypeFamily :: Dimension
- Network.AWS.CostExplorer: DimensionLegalEntityName :: Dimension
- Network.AWS.CostExplorer: DimensionLinkedAccount :: Dimension
- Network.AWS.CostExplorer: DimensionOperatingSystem :: Dimension
- Network.AWS.CostExplorer: DimensionOperation :: Dimension
- Network.AWS.CostExplorer: DimensionPlatform :: Dimension
- Network.AWS.CostExplorer: DimensionPurchaseType :: Dimension
- Network.AWS.CostExplorer: DimensionRecordType :: Dimension
- Network.AWS.CostExplorer: DimensionRegion :: Dimension
- Network.AWS.CostExplorer: DimensionScope :: Dimension
- Network.AWS.CostExplorer: DimensionService :: Dimension
- Network.AWS.CostExplorer: DimensionSubscriptionId :: Dimension
- Network.AWS.CostExplorer: DimensionTenancy :: Dimension
- Network.AWS.CostExplorer: DimensionUsageType :: Dimension
- Network.AWS.CostExplorer: DimensionUsageTypeGroup :: Dimension
- Network.AWS.CostExplorer: Monthly :: Granularity
- Network.AWS.CostExplorer: NoUpfront :: PaymentOption
- Network.AWS.CostExplorer: OneYear :: TermInYears
- Network.AWS.CostExplorer: PartialUpfront :: PaymentOption
- Network.AWS.CostExplorer: Payer :: AccountScope
- Network.AWS.CostExplorer: Reservations :: Context
- Network.AWS.CostExplorer: SevenDays :: LookbackPeriodInDays
- Network.AWS.CostExplorer: SixtyDays :: LookbackPeriodInDays
- Network.AWS.CostExplorer: Standard :: OfferingClass
- Network.AWS.CostExplorer: Tag :: GroupDefinitionType
- Network.AWS.CostExplorer: ThirtyDays :: LookbackPeriodInDays
- Network.AWS.CostExplorer: ThreeYears :: TermInYears
- Network.AWS.CostExplorer: _BillExpirationException :: AsError a => Getting (First ServiceError) a ServiceError
- Network.AWS.CostExplorer: _DataUnavailableException :: AsError a => Getting (First ServiceError) a ServiceError
- Network.AWS.CostExplorer: _InvalidNextTokenException :: AsError a => Getting (First ServiceError) a ServiceError
- Network.AWS.CostExplorer: _LimitExceededException :: AsError a => Getting (First ServiceError) a ServiceError
- Network.AWS.CostExplorer: _RequestChangedException :: AsError a => Getting (First ServiceError) a ServiceError
- Network.AWS.CostExplorer: cCoverageHours :: Lens' Coverage (Maybe CoverageHours)
- Network.AWS.CostExplorer: cbtGroups :: Lens' CoverageByTime [ReservationCoverageGroup]
- Network.AWS.CostExplorer: cbtTimePeriod :: Lens' CoverageByTime (Maybe DateInterval)
- Network.AWS.CostExplorer: cbtTotal :: Lens' CoverageByTime (Maybe Coverage)
- Network.AWS.CostExplorer: chCoverageHoursPercentage :: Lens' CoverageHours (Maybe Text)
- Network.AWS.CostExplorer: chOnDemandHours :: Lens' CoverageHours (Maybe Text)
- Network.AWS.CostExplorer: chReservedHours :: Lens' CoverageHours (Maybe Text)
- Network.AWS.CostExplorer: chTotalRunningHours :: Lens' CoverageHours (Maybe Text)
- Network.AWS.CostExplorer: costExplorer :: Service
- Network.AWS.CostExplorer: coverage :: Coverage
- Network.AWS.CostExplorer: coverageByTime :: CoverageByTime
- Network.AWS.CostExplorer: coverageHours :: CoverageHours
- Network.AWS.CostExplorer: data AccountScope
- Network.AWS.CostExplorer: data Context
- Network.AWS.CostExplorer: data Coverage
- Network.AWS.CostExplorer: data CoverageByTime
- Network.AWS.CostExplorer: data CoverageHours
- Network.AWS.CostExplorer: data DateInterval
- Network.AWS.CostExplorer: data Dimension
- Network.AWS.CostExplorer: data DimensionValues
- Network.AWS.CostExplorer: data DimensionValuesWithAttributes
- Network.AWS.CostExplorer: data EC2InstanceDetails
- Network.AWS.CostExplorer: data EC2Specification
- Network.AWS.CostExplorer: data Expression
- Network.AWS.CostExplorer: data Granularity
- Network.AWS.CostExplorer: data Group
- Network.AWS.CostExplorer: data GroupDefinition
- Network.AWS.CostExplorer: data GroupDefinitionType
- Network.AWS.CostExplorer: data InstanceDetails
- Network.AWS.CostExplorer: data LookbackPeriodInDays
- Network.AWS.CostExplorer: data MetricValue
- Network.AWS.CostExplorer: data OfferingClass
- Network.AWS.CostExplorer: data PaymentOption
- Network.AWS.CostExplorer: data RDSInstanceDetails
- Network.AWS.CostExplorer: data ReservationAggregates
- Network.AWS.CostExplorer: data ReservationCoverageGroup
- Network.AWS.CostExplorer: data ReservationPurchaseRecommendation
- Network.AWS.CostExplorer: data ReservationPurchaseRecommendationDetail
- Network.AWS.CostExplorer: data ReservationPurchaseRecommendationMetadata
- Network.AWS.CostExplorer: data ReservationPurchaseRecommendationSummary
- Network.AWS.CostExplorer: data ReservationUtilizationGroup
- Network.AWS.CostExplorer: data ResultByTime
- Network.AWS.CostExplorer: data ServiceSpecification
- Network.AWS.CostExplorer: data TagValues
- Network.AWS.CostExplorer: data TermInYears
- Network.AWS.CostExplorer: data UtilizationByTime
- Network.AWS.CostExplorer: dateInterval :: Text -> Text -> DateInterval
- Network.AWS.CostExplorer: diEnd :: Lens' DateInterval Text
- Network.AWS.CostExplorer: diStart :: Lens' DateInterval Text
- Network.AWS.CostExplorer: dimensionValues :: DimensionValues
- Network.AWS.CostExplorer: dimensionValuesWithAttributes :: DimensionValuesWithAttributes
- Network.AWS.CostExplorer: dvKey :: Lens' DimensionValues (Maybe Dimension)
- Network.AWS.CostExplorer: dvValues :: Lens' DimensionValues [Text]
- Network.AWS.CostExplorer: dvwaAttributes :: Lens' DimensionValuesWithAttributes (HashMap Text Text)
- Network.AWS.CostExplorer: dvwaValue :: Lens' DimensionValuesWithAttributes (Maybe Text)
- Network.AWS.CostExplorer: eAnd :: Lens' Expression [Expression]
- Network.AWS.CostExplorer: eDimensions :: Lens' Expression (Maybe DimensionValues)
- Network.AWS.CostExplorer: eNot :: Lens' Expression (Maybe Expression)
- Network.AWS.CostExplorer: eOr :: Lens' Expression [Expression]
- Network.AWS.CostExplorer: eTags :: Lens' Expression (Maybe TagValues)
- Network.AWS.CostExplorer: ec2InstanceDetails :: EC2InstanceDetails
- Network.AWS.CostExplorer: ec2Specification :: EC2Specification
- Network.AWS.CostExplorer: eidAvailabilityZone :: Lens' EC2InstanceDetails (Maybe Text)
- Network.AWS.CostExplorer: eidCurrentGeneration :: Lens' EC2InstanceDetails (Maybe Bool)
- Network.AWS.CostExplorer: eidFamily :: Lens' EC2InstanceDetails (Maybe Text)
- Network.AWS.CostExplorer: eidInstanceType :: Lens' EC2InstanceDetails (Maybe Text)
- Network.AWS.CostExplorer: eidPlatform :: Lens' EC2InstanceDetails (Maybe Text)
- Network.AWS.CostExplorer: eidRegion :: Lens' EC2InstanceDetails (Maybe Text)
- Network.AWS.CostExplorer: eidSizeFlexEligible :: Lens' EC2InstanceDetails (Maybe Bool)
- Network.AWS.CostExplorer: eidTenancy :: Lens' EC2InstanceDetails (Maybe Text)
- Network.AWS.CostExplorer: esOfferingClass :: Lens' EC2Specification (Maybe OfferingClass)
- Network.AWS.CostExplorer: expression :: Expression
- Network.AWS.CostExplorer: gKeys :: Lens' Group [Text]
- Network.AWS.CostExplorer: gMetrics :: Lens' Group (HashMap Text MetricValue)
- Network.AWS.CostExplorer: gdKey :: Lens' GroupDefinition (Maybe Text)
- Network.AWS.CostExplorer: gdType :: Lens' GroupDefinition (Maybe GroupDefinitionType)
- Network.AWS.CostExplorer: group' :: Group
- Network.AWS.CostExplorer: groupDefinition :: GroupDefinition
- Network.AWS.CostExplorer: idEC2InstanceDetails :: Lens' InstanceDetails (Maybe EC2InstanceDetails)
- Network.AWS.CostExplorer: idRDSInstanceDetails :: Lens' InstanceDetails (Maybe RDSInstanceDetails)
- Network.AWS.CostExplorer: instanceDetails :: InstanceDetails
- Network.AWS.CostExplorer: metricValue :: MetricValue
- Network.AWS.CostExplorer: mvAmount :: Lens' MetricValue (Maybe Text)
- Network.AWS.CostExplorer: mvUnit :: Lens' MetricValue (Maybe Text)
- Network.AWS.CostExplorer: raPurchasedHours :: Lens' ReservationAggregates (Maybe Text)
- Network.AWS.CostExplorer: raTotalActualHours :: Lens' ReservationAggregates (Maybe Text)
- Network.AWS.CostExplorer: raUnusedHours :: Lens' ReservationAggregates (Maybe Text)
- Network.AWS.CostExplorer: raUtilizationPercentage :: Lens' ReservationAggregates (Maybe Text)
- Network.AWS.CostExplorer: rbtEstimated :: Lens' ResultByTime (Maybe Bool)
- Network.AWS.CostExplorer: rbtGroups :: Lens' ResultByTime [Group]
- Network.AWS.CostExplorer: rbtTimePeriod :: Lens' ResultByTime (Maybe DateInterval)
- Network.AWS.CostExplorer: rbtTotal :: Lens' ResultByTime (HashMap Text MetricValue)
- Network.AWS.CostExplorer: rcgAttributes :: Lens' ReservationCoverageGroup (HashMap Text Text)
- Network.AWS.CostExplorer: rcgCoverage :: Lens' ReservationCoverageGroup (Maybe Coverage)
- Network.AWS.CostExplorer: rdsInstanceDetails :: RDSInstanceDetails
- Network.AWS.CostExplorer: reservationAggregates :: ReservationAggregates
- Network.AWS.CostExplorer: reservationCoverageGroup :: ReservationCoverageGroup
- Network.AWS.CostExplorer: reservationPurchaseRecommendation :: ReservationPurchaseRecommendation
- Network.AWS.CostExplorer: reservationPurchaseRecommendationDetail :: ReservationPurchaseRecommendationDetail
- Network.AWS.CostExplorer: reservationPurchaseRecommendationMetadata :: ReservationPurchaseRecommendationMetadata
- Network.AWS.CostExplorer: reservationPurchaseRecommendationSummary :: ReservationPurchaseRecommendationSummary
- Network.AWS.CostExplorer: reservationUtilizationGroup :: ReservationUtilizationGroup
- Network.AWS.CostExplorer: resultByTime :: ResultByTime
- Network.AWS.CostExplorer: ridCurrentGeneration :: Lens' RDSInstanceDetails (Maybe Bool)
- Network.AWS.CostExplorer: ridDatabaseEngine :: Lens' RDSInstanceDetails (Maybe Text)
- Network.AWS.CostExplorer: ridDeploymentOption :: Lens' RDSInstanceDetails (Maybe Text)
- Network.AWS.CostExplorer: ridFamily :: Lens' RDSInstanceDetails (Maybe Text)
- Network.AWS.CostExplorer: ridInstanceType :: Lens' RDSInstanceDetails (Maybe Text)
- Network.AWS.CostExplorer: ridLicenseModel :: Lens' RDSInstanceDetails (Maybe Text)
- Network.AWS.CostExplorer: ridRegion :: Lens' RDSInstanceDetails (Maybe Text)
- Network.AWS.CostExplorer: ridSizeFlexEligible :: Lens' RDSInstanceDetails (Maybe Bool)
- Network.AWS.CostExplorer: rprAccountScope :: Lens' ReservationPurchaseRecommendation (Maybe AccountScope)
- Network.AWS.CostExplorer: rprLookbackPeriodInDays :: Lens' ReservationPurchaseRecommendation (Maybe LookbackPeriodInDays)
- Network.AWS.CostExplorer: rprPaymentOption :: Lens' ReservationPurchaseRecommendation (Maybe PaymentOption)
- Network.AWS.CostExplorer: rprRecommendationDetails :: Lens' ReservationPurchaseRecommendation [ReservationPurchaseRecommendationDetail]
- Network.AWS.CostExplorer: rprRecommendationSummary :: Lens' ReservationPurchaseRecommendation (Maybe ReservationPurchaseRecommendationSummary)
- Network.AWS.CostExplorer: rprServiceSpecification :: Lens' ReservationPurchaseRecommendation (Maybe ServiceSpecification)
- Network.AWS.CostExplorer: rprTermInYears :: Lens' ReservationPurchaseRecommendation (Maybe TermInYears)
- Network.AWS.CostExplorer: rprdAverageNormalizedUnitsUsedPerHour :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)
- Network.AWS.CostExplorer: rprdAverageNumberOfInstancesUsedPerHour :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)
- Network.AWS.CostExplorer: rprdAverageUtilization :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)
- Network.AWS.CostExplorer: rprdCurrencyCode :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)
- Network.AWS.CostExplorer: rprdEstimatedBreakEvenInMonths :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)
- Network.AWS.CostExplorer: rprdEstimatedMonthlyOnDemandCost :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)
- Network.AWS.CostExplorer: rprdEstimatedMonthlySavingsAmount :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)
- Network.AWS.CostExplorer: rprdEstimatedMonthlySavingsPercentage :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)
- Network.AWS.CostExplorer: rprdEstimatedReservationCostForLookbackPeriod :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)
- Network.AWS.CostExplorer: rprdInstanceDetails :: Lens' ReservationPurchaseRecommendationDetail (Maybe InstanceDetails)
- Network.AWS.CostExplorer: rprdMaximumNormalizedUnitsUsedPerHour :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)
- Network.AWS.CostExplorer: rprdMaximumNumberOfInstancesUsedPerHour :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)
- Network.AWS.CostExplorer: rprdMinimumNormalizedUnitsUsedPerHour :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)
- Network.AWS.CostExplorer: rprdMinimumNumberOfInstancesUsedPerHour :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)
- Network.AWS.CostExplorer: rprdRecommendedNormalizedUnitsToPurchase :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)
- Network.AWS.CostExplorer: rprdRecommendedNumberOfInstancesToPurchase :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)
- Network.AWS.CostExplorer: rprdRecurringStandardMonthlyCost :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)
- Network.AWS.CostExplorer: rprdUpfrontCost :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)
- Network.AWS.CostExplorer: rprmGenerationTimestamp :: Lens' ReservationPurchaseRecommendationMetadata (Maybe Text)
- Network.AWS.CostExplorer: rprmRecommendationId :: Lens' ReservationPurchaseRecommendationMetadata (Maybe Text)
- Network.AWS.CostExplorer: rprsCurrencyCode :: Lens' ReservationPurchaseRecommendationSummary (Maybe Text)
- Network.AWS.CostExplorer: rprsTotalEstimatedMonthlySavingsAmount :: Lens' ReservationPurchaseRecommendationSummary (Maybe Text)
- Network.AWS.CostExplorer: rprsTotalEstimatedMonthlySavingsPercentage :: Lens' ReservationPurchaseRecommendationSummary (Maybe Text)
- Network.AWS.CostExplorer: rugAttributes :: Lens' ReservationUtilizationGroup (HashMap Text Text)
- Network.AWS.CostExplorer: rugKey :: Lens' ReservationUtilizationGroup (Maybe Text)
- Network.AWS.CostExplorer: rugUtilization :: Lens' ReservationUtilizationGroup (Maybe ReservationAggregates)
- Network.AWS.CostExplorer: rugValue :: Lens' ReservationUtilizationGroup (Maybe Text)
- Network.AWS.CostExplorer: serviceSpecification :: ServiceSpecification
- Network.AWS.CostExplorer: ssEC2Specification :: Lens' ServiceSpecification (Maybe EC2Specification)
- Network.AWS.CostExplorer: tagValues :: TagValues
- Network.AWS.CostExplorer: tvKey :: Lens' TagValues (Maybe Text)
- Network.AWS.CostExplorer: tvValues :: Lens' TagValues [Text]
- Network.AWS.CostExplorer: ubtGroups :: Lens' UtilizationByTime [ReservationUtilizationGroup]
- Network.AWS.CostExplorer: ubtTimePeriod :: Lens' UtilizationByTime (Maybe DateInterval)
- Network.AWS.CostExplorer: ubtTotal :: Lens' UtilizationByTime (Maybe ReservationAggregates)
- Network.AWS.CostExplorer: utilizationByTime :: UtilizationByTime
- Network.AWS.CostExplorer.GetCostAndUsage: data GetCostAndUsage
- Network.AWS.CostExplorer.GetCostAndUsage: data GetCostAndUsageResponse
- Network.AWS.CostExplorer.GetCostAndUsage: gcauFilter :: Lens' GetCostAndUsage (Maybe Expression)
- Network.AWS.CostExplorer.GetCostAndUsage: gcauGranularity :: Lens' GetCostAndUsage (Maybe Granularity)
- Network.AWS.CostExplorer.GetCostAndUsage: gcauGroupBy :: Lens' GetCostAndUsage [GroupDefinition]
- Network.AWS.CostExplorer.GetCostAndUsage: gcauMetrics :: Lens' GetCostAndUsage [Text]
- Network.AWS.CostExplorer.GetCostAndUsage: gcauNextPageToken :: Lens' GetCostAndUsage (Maybe Text)
- Network.AWS.CostExplorer.GetCostAndUsage: gcauTimePeriod :: Lens' GetCostAndUsage (Maybe DateInterval)
- Network.AWS.CostExplorer.GetCostAndUsage: gcaursGroupDefinitions :: Lens' GetCostAndUsageResponse [GroupDefinition]
- Network.AWS.CostExplorer.GetCostAndUsage: gcaursNextPageToken :: Lens' GetCostAndUsageResponse (Maybe Text)
- Network.AWS.CostExplorer.GetCostAndUsage: gcaursResponseStatus :: Lens' GetCostAndUsageResponse Int
- Network.AWS.CostExplorer.GetCostAndUsage: gcaursResultsByTime :: Lens' GetCostAndUsageResponse [ResultByTime]
- Network.AWS.CostExplorer.GetCostAndUsage: getCostAndUsage :: GetCostAndUsage
- Network.AWS.CostExplorer.GetCostAndUsage: getCostAndUsageResponse :: Int -> GetCostAndUsageResponse
- Network.AWS.CostExplorer.GetCostAndUsage: instance Control.DeepSeq.NFData Network.AWS.CostExplorer.GetCostAndUsage.GetCostAndUsage
- Network.AWS.CostExplorer.GetCostAndUsage: instance Control.DeepSeq.NFData Network.AWS.CostExplorer.GetCostAndUsage.GetCostAndUsageResponse
- Network.AWS.CostExplorer.GetCostAndUsage: instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.CostExplorer.GetCostAndUsage.GetCostAndUsage
- Network.AWS.CostExplorer.GetCostAndUsage: instance Data.Data.Data Network.AWS.CostExplorer.GetCostAndUsage.GetCostAndUsage
- Network.AWS.CostExplorer.GetCostAndUsage: instance Data.Data.Data Network.AWS.CostExplorer.GetCostAndUsage.GetCostAndUsageResponse
- Network.AWS.CostExplorer.GetCostAndUsage: instance Data.Hashable.Class.Hashable Network.AWS.CostExplorer.GetCostAndUsage.GetCostAndUsage
- Network.AWS.CostExplorer.GetCostAndUsage: instance GHC.Classes.Eq Network.AWS.CostExplorer.GetCostAndUsage.GetCostAndUsage
- Network.AWS.CostExplorer.GetCostAndUsage: instance GHC.Classes.Eq Network.AWS.CostExplorer.GetCostAndUsage.GetCostAndUsageResponse
- Network.AWS.CostExplorer.GetCostAndUsage: instance GHC.Generics.Generic Network.AWS.CostExplorer.GetCostAndUsage.GetCostAndUsage
- Network.AWS.CostExplorer.GetCostAndUsage: instance GHC.Generics.Generic Network.AWS.CostExplorer.GetCostAndUsage.GetCostAndUsageResponse
- Network.AWS.CostExplorer.GetCostAndUsage: instance GHC.Read.Read Network.AWS.CostExplorer.GetCostAndUsage.GetCostAndUsage
- Network.AWS.CostExplorer.GetCostAndUsage: instance GHC.Read.Read Network.AWS.CostExplorer.GetCostAndUsage.GetCostAndUsageResponse
- Network.AWS.CostExplorer.GetCostAndUsage: instance GHC.Show.Show Network.AWS.CostExplorer.GetCostAndUsage.GetCostAndUsage
- Network.AWS.CostExplorer.GetCostAndUsage: instance GHC.Show.Show Network.AWS.CostExplorer.GetCostAndUsage.GetCostAndUsageResponse
- Network.AWS.CostExplorer.GetCostAndUsage: instance Network.AWS.Data.Headers.ToHeaders Network.AWS.CostExplorer.GetCostAndUsage.GetCostAndUsage
- Network.AWS.CostExplorer.GetCostAndUsage: instance Network.AWS.Data.Path.ToPath Network.AWS.CostExplorer.GetCostAndUsage.GetCostAndUsage
- Network.AWS.CostExplorer.GetCostAndUsage: instance Network.AWS.Data.Query.ToQuery Network.AWS.CostExplorer.GetCostAndUsage.GetCostAndUsage
- Network.AWS.CostExplorer.GetCostAndUsage: instance Network.AWS.Types.AWSRequest Network.AWS.CostExplorer.GetCostAndUsage.GetCostAndUsage
- Network.AWS.CostExplorer.GetDimensionValues: data GetDimensionValues
- Network.AWS.CostExplorer.GetDimensionValues: data GetDimensionValuesResponse
- Network.AWS.CostExplorer.GetDimensionValues: gdvContext :: Lens' GetDimensionValues (Maybe Context)
- Network.AWS.CostExplorer.GetDimensionValues: gdvDimension :: Lens' GetDimensionValues Dimension
- Network.AWS.CostExplorer.GetDimensionValues: gdvNextPageToken :: Lens' GetDimensionValues (Maybe Text)
- Network.AWS.CostExplorer.GetDimensionValues: gdvSearchString :: Lens' GetDimensionValues (Maybe Text)
- Network.AWS.CostExplorer.GetDimensionValues: gdvTimePeriod :: Lens' GetDimensionValues DateInterval
- Network.AWS.CostExplorer.GetDimensionValues: gdvrsDimensionValues :: Lens' GetDimensionValuesResponse [DimensionValuesWithAttributes]
- Network.AWS.CostExplorer.GetDimensionValues: gdvrsNextPageToken :: Lens' GetDimensionValuesResponse (Maybe Text)
- Network.AWS.CostExplorer.GetDimensionValues: gdvrsResponseStatus :: Lens' GetDimensionValuesResponse Int
- Network.AWS.CostExplorer.GetDimensionValues: gdvrsReturnSize :: Lens' GetDimensionValuesResponse Int
- Network.AWS.CostExplorer.GetDimensionValues: gdvrsTotalSize :: Lens' GetDimensionValuesResponse Int
- Network.AWS.CostExplorer.GetDimensionValues: getDimensionValues :: DateInterval -> Dimension -> GetDimensionValues
- Network.AWS.CostExplorer.GetDimensionValues: getDimensionValuesResponse :: Int -> Int -> Int -> GetDimensionValuesResponse
- Network.AWS.CostExplorer.GetDimensionValues: instance Control.DeepSeq.NFData Network.AWS.CostExplorer.GetDimensionValues.GetDimensionValues
- Network.AWS.CostExplorer.GetDimensionValues: instance Control.DeepSeq.NFData Network.AWS.CostExplorer.GetDimensionValues.GetDimensionValuesResponse
- Network.AWS.CostExplorer.GetDimensionValues: instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.CostExplorer.GetDimensionValues.GetDimensionValues
- Network.AWS.CostExplorer.GetDimensionValues: instance Data.Data.Data Network.AWS.CostExplorer.GetDimensionValues.GetDimensionValues
- Network.AWS.CostExplorer.GetDimensionValues: instance Data.Data.Data Network.AWS.CostExplorer.GetDimensionValues.GetDimensionValuesResponse
- Network.AWS.CostExplorer.GetDimensionValues: instance Data.Hashable.Class.Hashable Network.AWS.CostExplorer.GetDimensionValues.GetDimensionValues
- Network.AWS.CostExplorer.GetDimensionValues: instance GHC.Classes.Eq Network.AWS.CostExplorer.GetDimensionValues.GetDimensionValues
- Network.AWS.CostExplorer.GetDimensionValues: instance GHC.Classes.Eq Network.AWS.CostExplorer.GetDimensionValues.GetDimensionValuesResponse
- Network.AWS.CostExplorer.GetDimensionValues: instance GHC.Generics.Generic Network.AWS.CostExplorer.GetDimensionValues.GetDimensionValues
- Network.AWS.CostExplorer.GetDimensionValues: instance GHC.Generics.Generic Network.AWS.CostExplorer.GetDimensionValues.GetDimensionValuesResponse
- Network.AWS.CostExplorer.GetDimensionValues: instance GHC.Read.Read Network.AWS.CostExplorer.GetDimensionValues.GetDimensionValues
- Network.AWS.CostExplorer.GetDimensionValues: instance GHC.Read.Read Network.AWS.CostExplorer.GetDimensionValues.GetDimensionValuesResponse
- Network.AWS.CostExplorer.GetDimensionValues: instance GHC.Show.Show Network.AWS.CostExplorer.GetDimensionValues.GetDimensionValues
- Network.AWS.CostExplorer.GetDimensionValues: instance GHC.Show.Show Network.AWS.CostExplorer.GetDimensionValues.GetDimensionValuesResponse
- Network.AWS.CostExplorer.GetDimensionValues: instance Network.AWS.Data.Headers.ToHeaders Network.AWS.CostExplorer.GetDimensionValues.GetDimensionValues
- Network.AWS.CostExplorer.GetDimensionValues: instance Network.AWS.Data.Path.ToPath Network.AWS.CostExplorer.GetDimensionValues.GetDimensionValues
- Network.AWS.CostExplorer.GetDimensionValues: instance Network.AWS.Data.Query.ToQuery Network.AWS.CostExplorer.GetDimensionValues.GetDimensionValues
- Network.AWS.CostExplorer.GetDimensionValues: instance Network.AWS.Types.AWSRequest Network.AWS.CostExplorer.GetDimensionValues.GetDimensionValues
- Network.AWS.CostExplorer.GetReservationCoverage: data GetReservationCoverage
- Network.AWS.CostExplorer.GetReservationCoverage: data GetReservationCoverageResponse
- Network.AWS.CostExplorer.GetReservationCoverage: getReservationCoverage :: DateInterval -> GetReservationCoverage
- Network.AWS.CostExplorer.GetReservationCoverage: getReservationCoverageResponse :: Int -> GetReservationCoverageResponse
- Network.AWS.CostExplorer.GetReservationCoverage: grcFilter :: Lens' GetReservationCoverage (Maybe Expression)
- Network.AWS.CostExplorer.GetReservationCoverage: grcGranularity :: Lens' GetReservationCoverage (Maybe Granularity)
- Network.AWS.CostExplorer.GetReservationCoverage: grcGroupBy :: Lens' GetReservationCoverage [GroupDefinition]
- Network.AWS.CostExplorer.GetReservationCoverage: grcNextPageToken :: Lens' GetReservationCoverage (Maybe Text)
- Network.AWS.CostExplorer.GetReservationCoverage: grcTimePeriod :: Lens' GetReservationCoverage DateInterval
- Network.AWS.CostExplorer.GetReservationCoverage: grcrsCoveragesByTime :: Lens' GetReservationCoverageResponse [CoverageByTime]
- Network.AWS.CostExplorer.GetReservationCoverage: grcrsNextPageToken :: Lens' GetReservationCoverageResponse (Maybe Text)
- Network.AWS.CostExplorer.GetReservationCoverage: grcrsResponseStatus :: Lens' GetReservationCoverageResponse Int
- Network.AWS.CostExplorer.GetReservationCoverage: grcrsTotal :: Lens' GetReservationCoverageResponse (Maybe Coverage)
- Network.AWS.CostExplorer.GetReservationCoverage: instance Control.DeepSeq.NFData Network.AWS.CostExplorer.GetReservationCoverage.GetReservationCoverage
- Network.AWS.CostExplorer.GetReservationCoverage: instance Control.DeepSeq.NFData Network.AWS.CostExplorer.GetReservationCoverage.GetReservationCoverageResponse
- Network.AWS.CostExplorer.GetReservationCoverage: instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.CostExplorer.GetReservationCoverage.GetReservationCoverage
- Network.AWS.CostExplorer.GetReservationCoverage: instance Data.Data.Data Network.AWS.CostExplorer.GetReservationCoverage.GetReservationCoverage
- Network.AWS.CostExplorer.GetReservationCoverage: instance Data.Data.Data Network.AWS.CostExplorer.GetReservationCoverage.GetReservationCoverageResponse
- Network.AWS.CostExplorer.GetReservationCoverage: instance Data.Hashable.Class.Hashable Network.AWS.CostExplorer.GetReservationCoverage.GetReservationCoverage
- Network.AWS.CostExplorer.GetReservationCoverage: instance GHC.Classes.Eq Network.AWS.CostExplorer.GetReservationCoverage.GetReservationCoverage
- Network.AWS.CostExplorer.GetReservationCoverage: instance GHC.Classes.Eq Network.AWS.CostExplorer.GetReservationCoverage.GetReservationCoverageResponse
- Network.AWS.CostExplorer.GetReservationCoverage: instance GHC.Generics.Generic Network.AWS.CostExplorer.GetReservationCoverage.GetReservationCoverage
- Network.AWS.CostExplorer.GetReservationCoverage: instance GHC.Generics.Generic Network.AWS.CostExplorer.GetReservationCoverage.GetReservationCoverageResponse
- Network.AWS.CostExplorer.GetReservationCoverage: instance GHC.Read.Read Network.AWS.CostExplorer.GetReservationCoverage.GetReservationCoverage
- Network.AWS.CostExplorer.GetReservationCoverage: instance GHC.Read.Read Network.AWS.CostExplorer.GetReservationCoverage.GetReservationCoverageResponse
- Network.AWS.CostExplorer.GetReservationCoverage: instance GHC.Show.Show Network.AWS.CostExplorer.GetReservationCoverage.GetReservationCoverage
- Network.AWS.CostExplorer.GetReservationCoverage: instance GHC.Show.Show Network.AWS.CostExplorer.GetReservationCoverage.GetReservationCoverageResponse
- Network.AWS.CostExplorer.GetReservationCoverage: instance Network.AWS.Data.Headers.ToHeaders Network.AWS.CostExplorer.GetReservationCoverage.GetReservationCoverage
- Network.AWS.CostExplorer.GetReservationCoverage: instance Network.AWS.Data.Path.ToPath Network.AWS.CostExplorer.GetReservationCoverage.GetReservationCoverage
- Network.AWS.CostExplorer.GetReservationCoverage: instance Network.AWS.Data.Query.ToQuery Network.AWS.CostExplorer.GetReservationCoverage.GetReservationCoverage
- Network.AWS.CostExplorer.GetReservationCoverage: instance Network.AWS.Types.AWSRequest Network.AWS.CostExplorer.GetReservationCoverage.GetReservationCoverage
- Network.AWS.CostExplorer.GetReservationPurchaseRecommendation: data GetReservationPurchaseRecommendation
- Network.AWS.CostExplorer.GetReservationPurchaseRecommendation: data GetReservationPurchaseRecommendationResponse
- Network.AWS.CostExplorer.GetReservationPurchaseRecommendation: getReservationPurchaseRecommendation :: Text -> GetReservationPurchaseRecommendation
- Network.AWS.CostExplorer.GetReservationPurchaseRecommendation: getReservationPurchaseRecommendationResponse :: Int -> GetReservationPurchaseRecommendationResponse
- Network.AWS.CostExplorer.GetReservationPurchaseRecommendation: grprAccountId :: Lens' GetReservationPurchaseRecommendation (Maybe Text)
- Network.AWS.CostExplorer.GetReservationPurchaseRecommendation: grprAccountScope :: Lens' GetReservationPurchaseRecommendation (Maybe AccountScope)
- Network.AWS.CostExplorer.GetReservationPurchaseRecommendation: grprLookbackPeriodInDays :: Lens' GetReservationPurchaseRecommendation (Maybe LookbackPeriodInDays)
- Network.AWS.CostExplorer.GetReservationPurchaseRecommendation: grprNextPageToken :: Lens' GetReservationPurchaseRecommendation (Maybe Text)
- Network.AWS.CostExplorer.GetReservationPurchaseRecommendation: grprPageSize :: Lens' GetReservationPurchaseRecommendation (Maybe Natural)
- Network.AWS.CostExplorer.GetReservationPurchaseRecommendation: grprPaymentOption :: Lens' GetReservationPurchaseRecommendation (Maybe PaymentOption)
- Network.AWS.CostExplorer.GetReservationPurchaseRecommendation: grprService :: Lens' GetReservationPurchaseRecommendation Text
- Network.AWS.CostExplorer.GetReservationPurchaseRecommendation: grprServiceSpecification :: Lens' GetReservationPurchaseRecommendation (Maybe ServiceSpecification)
- Network.AWS.CostExplorer.GetReservationPurchaseRecommendation: grprTermInYears :: Lens' GetReservationPurchaseRecommendation (Maybe TermInYears)
- Network.AWS.CostExplorer.GetReservationPurchaseRecommendation: grprrsMetadata :: Lens' GetReservationPurchaseRecommendationResponse (Maybe ReservationPurchaseRecommendationMetadata)
- Network.AWS.CostExplorer.GetReservationPurchaseRecommendation: grprrsNextPageToken :: Lens' GetReservationPurchaseRecommendationResponse (Maybe Text)
- Network.AWS.CostExplorer.GetReservationPurchaseRecommendation: grprrsRecommendations :: Lens' GetReservationPurchaseRecommendationResponse [ReservationPurchaseRecommendation]
- Network.AWS.CostExplorer.GetReservationPurchaseRecommendation: grprrsResponseStatus :: Lens' GetReservationPurchaseRecommendationResponse Int
- Network.AWS.CostExplorer.GetReservationPurchaseRecommendation: instance Control.DeepSeq.NFData Network.AWS.CostExplorer.GetReservationPurchaseRecommendation.GetReservationPurchaseRecommendation
- Network.AWS.CostExplorer.GetReservationPurchaseRecommendation: instance Control.DeepSeq.NFData Network.AWS.CostExplorer.GetReservationPurchaseRecommendation.GetReservationPurchaseRecommendationResponse
- Network.AWS.CostExplorer.GetReservationPurchaseRecommendation: instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.CostExplorer.GetReservationPurchaseRecommendation.GetReservationPurchaseRecommendation
- Network.AWS.CostExplorer.GetReservationPurchaseRecommendation: instance Data.Data.Data Network.AWS.CostExplorer.GetReservationPurchaseRecommendation.GetReservationPurchaseRecommendation
- Network.AWS.CostExplorer.GetReservationPurchaseRecommendation: instance Data.Data.Data Network.AWS.CostExplorer.GetReservationPurchaseRecommendation.GetReservationPurchaseRecommendationResponse
- Network.AWS.CostExplorer.GetReservationPurchaseRecommendation: instance Data.Hashable.Class.Hashable Network.AWS.CostExplorer.GetReservationPurchaseRecommendation.GetReservationPurchaseRecommendation
- Network.AWS.CostExplorer.GetReservationPurchaseRecommendation: instance GHC.Classes.Eq Network.AWS.CostExplorer.GetReservationPurchaseRecommendation.GetReservationPurchaseRecommendation
- Network.AWS.CostExplorer.GetReservationPurchaseRecommendation: instance GHC.Classes.Eq Network.AWS.CostExplorer.GetReservationPurchaseRecommendation.GetReservationPurchaseRecommendationResponse
- Network.AWS.CostExplorer.GetReservationPurchaseRecommendation: instance GHC.Generics.Generic Network.AWS.CostExplorer.GetReservationPurchaseRecommendation.GetReservationPurchaseRecommendation
- Network.AWS.CostExplorer.GetReservationPurchaseRecommendation: instance GHC.Generics.Generic Network.AWS.CostExplorer.GetReservationPurchaseRecommendation.GetReservationPurchaseRecommendationResponse
- Network.AWS.CostExplorer.GetReservationPurchaseRecommendation: instance GHC.Read.Read Network.AWS.CostExplorer.GetReservationPurchaseRecommendation.GetReservationPurchaseRecommendation
- Network.AWS.CostExplorer.GetReservationPurchaseRecommendation: instance GHC.Read.Read Network.AWS.CostExplorer.GetReservationPurchaseRecommendation.GetReservationPurchaseRecommendationResponse
- Network.AWS.CostExplorer.GetReservationPurchaseRecommendation: instance GHC.Show.Show Network.AWS.CostExplorer.GetReservationPurchaseRecommendation.GetReservationPurchaseRecommendation
- Network.AWS.CostExplorer.GetReservationPurchaseRecommendation: instance GHC.Show.Show Network.AWS.CostExplorer.GetReservationPurchaseRecommendation.GetReservationPurchaseRecommendationResponse
- Network.AWS.CostExplorer.GetReservationPurchaseRecommendation: instance Network.AWS.Data.Headers.ToHeaders Network.AWS.CostExplorer.GetReservationPurchaseRecommendation.GetReservationPurchaseRecommendation
- Network.AWS.CostExplorer.GetReservationPurchaseRecommendation: instance Network.AWS.Data.Path.ToPath Network.AWS.CostExplorer.GetReservationPurchaseRecommendation.GetReservationPurchaseRecommendation
- Network.AWS.CostExplorer.GetReservationPurchaseRecommendation: instance Network.AWS.Data.Query.ToQuery Network.AWS.CostExplorer.GetReservationPurchaseRecommendation.GetReservationPurchaseRecommendation
- Network.AWS.CostExplorer.GetReservationPurchaseRecommendation: instance Network.AWS.Types.AWSRequest Network.AWS.CostExplorer.GetReservationPurchaseRecommendation.GetReservationPurchaseRecommendation
- Network.AWS.CostExplorer.GetReservationUtilization: data GetReservationUtilization
- Network.AWS.CostExplorer.GetReservationUtilization: data GetReservationUtilizationResponse
- Network.AWS.CostExplorer.GetReservationUtilization: getReservationUtilization :: DateInterval -> GetReservationUtilization
- Network.AWS.CostExplorer.GetReservationUtilization: getReservationUtilizationResponse :: Int -> GetReservationUtilizationResponse
- Network.AWS.CostExplorer.GetReservationUtilization: gruFilter :: Lens' GetReservationUtilization (Maybe Expression)
- Network.AWS.CostExplorer.GetReservationUtilization: gruGranularity :: Lens' GetReservationUtilization (Maybe Granularity)
- Network.AWS.CostExplorer.GetReservationUtilization: gruGroupBy :: Lens' GetReservationUtilization [GroupDefinition]
- Network.AWS.CostExplorer.GetReservationUtilization: gruNextPageToken :: Lens' GetReservationUtilization (Maybe Text)
- Network.AWS.CostExplorer.GetReservationUtilization: gruTimePeriod :: Lens' GetReservationUtilization DateInterval
- Network.AWS.CostExplorer.GetReservationUtilization: grursNextPageToken :: Lens' GetReservationUtilizationResponse (Maybe Text)
- Network.AWS.CostExplorer.GetReservationUtilization: grursResponseStatus :: Lens' GetReservationUtilizationResponse Int
- Network.AWS.CostExplorer.GetReservationUtilization: grursTotal :: Lens' GetReservationUtilizationResponse (Maybe ReservationAggregates)
- Network.AWS.CostExplorer.GetReservationUtilization: grursUtilizationsByTime :: Lens' GetReservationUtilizationResponse [UtilizationByTime]
- Network.AWS.CostExplorer.GetReservationUtilization: instance Control.DeepSeq.NFData Network.AWS.CostExplorer.GetReservationUtilization.GetReservationUtilization
- Network.AWS.CostExplorer.GetReservationUtilization: instance Control.DeepSeq.NFData Network.AWS.CostExplorer.GetReservationUtilization.GetReservationUtilizationResponse
- Network.AWS.CostExplorer.GetReservationUtilization: instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.CostExplorer.GetReservationUtilization.GetReservationUtilization
- Network.AWS.CostExplorer.GetReservationUtilization: instance Data.Data.Data Network.AWS.CostExplorer.GetReservationUtilization.GetReservationUtilization
- Network.AWS.CostExplorer.GetReservationUtilization: instance Data.Data.Data Network.AWS.CostExplorer.GetReservationUtilization.GetReservationUtilizationResponse
- Network.AWS.CostExplorer.GetReservationUtilization: instance Data.Hashable.Class.Hashable Network.AWS.CostExplorer.GetReservationUtilization.GetReservationUtilization
- Network.AWS.CostExplorer.GetReservationUtilization: instance GHC.Classes.Eq Network.AWS.CostExplorer.GetReservationUtilization.GetReservationUtilization
- Network.AWS.CostExplorer.GetReservationUtilization: instance GHC.Classes.Eq Network.AWS.CostExplorer.GetReservationUtilization.GetReservationUtilizationResponse
- Network.AWS.CostExplorer.GetReservationUtilization: instance GHC.Generics.Generic Network.AWS.CostExplorer.GetReservationUtilization.GetReservationUtilization
- Network.AWS.CostExplorer.GetReservationUtilization: instance GHC.Generics.Generic Network.AWS.CostExplorer.GetReservationUtilization.GetReservationUtilizationResponse
- Network.AWS.CostExplorer.GetReservationUtilization: instance GHC.Read.Read Network.AWS.CostExplorer.GetReservationUtilization.GetReservationUtilization
- Network.AWS.CostExplorer.GetReservationUtilization: instance GHC.Read.Read Network.AWS.CostExplorer.GetReservationUtilization.GetReservationUtilizationResponse
- Network.AWS.CostExplorer.GetReservationUtilization: instance GHC.Show.Show Network.AWS.CostExplorer.GetReservationUtilization.GetReservationUtilization
- Network.AWS.CostExplorer.GetReservationUtilization: instance GHC.Show.Show Network.AWS.CostExplorer.GetReservationUtilization.GetReservationUtilizationResponse
- Network.AWS.CostExplorer.GetReservationUtilization: instance Network.AWS.Data.Headers.ToHeaders Network.AWS.CostExplorer.GetReservationUtilization.GetReservationUtilization
- Network.AWS.CostExplorer.GetReservationUtilization: instance Network.AWS.Data.Path.ToPath Network.AWS.CostExplorer.GetReservationUtilization.GetReservationUtilization
- Network.AWS.CostExplorer.GetReservationUtilization: instance Network.AWS.Data.Query.ToQuery Network.AWS.CostExplorer.GetReservationUtilization.GetReservationUtilization
- Network.AWS.CostExplorer.GetReservationUtilization: instance Network.AWS.Types.AWSRequest Network.AWS.CostExplorer.GetReservationUtilization.GetReservationUtilization
- Network.AWS.CostExplorer.GetTags: data GetTags
- Network.AWS.CostExplorer.GetTags: data GetTagsResponse
- Network.AWS.CostExplorer.GetTags: getTags :: DateInterval -> GetTags
- Network.AWS.CostExplorer.GetTags: getTagsResponse :: Int -> Int -> Int -> GetTagsResponse
- Network.AWS.CostExplorer.GetTags: gtNextPageToken :: Lens' GetTags (Maybe Text)
- Network.AWS.CostExplorer.GetTags: gtSearchString :: Lens' GetTags (Maybe Text)
- Network.AWS.CostExplorer.GetTags: gtTagKey :: Lens' GetTags (Maybe Text)
- Network.AWS.CostExplorer.GetTags: gtTimePeriod :: Lens' GetTags DateInterval
- Network.AWS.CostExplorer.GetTags: gtrsNextPageToken :: Lens' GetTagsResponse (Maybe Text)
- Network.AWS.CostExplorer.GetTags: gtrsResponseStatus :: Lens' GetTagsResponse Int
- Network.AWS.CostExplorer.GetTags: gtrsReturnSize :: Lens' GetTagsResponse Int
- Network.AWS.CostExplorer.GetTags: gtrsTags :: Lens' GetTagsResponse [Text]
- Network.AWS.CostExplorer.GetTags: gtrsTotalSize :: Lens' GetTagsResponse Int
- Network.AWS.CostExplorer.GetTags: instance Control.DeepSeq.NFData Network.AWS.CostExplorer.GetTags.GetTags
- Network.AWS.CostExplorer.GetTags: instance Control.DeepSeq.NFData Network.AWS.CostExplorer.GetTags.GetTagsResponse
- Network.AWS.CostExplorer.GetTags: instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.CostExplorer.GetTags.GetTags
- Network.AWS.CostExplorer.GetTags: instance Data.Data.Data Network.AWS.CostExplorer.GetTags.GetTags
- Network.AWS.CostExplorer.GetTags: instance Data.Data.Data Network.AWS.CostExplorer.GetTags.GetTagsResponse
- Network.AWS.CostExplorer.GetTags: instance Data.Hashable.Class.Hashable Network.AWS.CostExplorer.GetTags.GetTags
- Network.AWS.CostExplorer.GetTags: instance GHC.Classes.Eq Network.AWS.CostExplorer.GetTags.GetTags
- Network.AWS.CostExplorer.GetTags: instance GHC.Classes.Eq Network.AWS.CostExplorer.GetTags.GetTagsResponse
- Network.AWS.CostExplorer.GetTags: instance GHC.Generics.Generic Network.AWS.CostExplorer.GetTags.GetTags
- Network.AWS.CostExplorer.GetTags: instance GHC.Generics.Generic Network.AWS.CostExplorer.GetTags.GetTagsResponse
- Network.AWS.CostExplorer.GetTags: instance GHC.Read.Read Network.AWS.CostExplorer.GetTags.GetTags
- Network.AWS.CostExplorer.GetTags: instance GHC.Read.Read Network.AWS.CostExplorer.GetTags.GetTagsResponse
- Network.AWS.CostExplorer.GetTags: instance GHC.Show.Show Network.AWS.CostExplorer.GetTags.GetTags
- Network.AWS.CostExplorer.GetTags: instance GHC.Show.Show Network.AWS.CostExplorer.GetTags.GetTagsResponse
- Network.AWS.CostExplorer.GetTags: instance Network.AWS.Data.Headers.ToHeaders Network.AWS.CostExplorer.GetTags.GetTags
- Network.AWS.CostExplorer.GetTags: instance Network.AWS.Data.Path.ToPath Network.AWS.CostExplorer.GetTags.GetTags
- Network.AWS.CostExplorer.GetTags: instance Network.AWS.Data.Query.ToQuery Network.AWS.CostExplorer.GetTags.GetTags
- Network.AWS.CostExplorer.GetTags: instance Network.AWS.Types.AWSRequest Network.AWS.CostExplorer.GetTags.GetTags
- Network.AWS.CostExplorer.Types: AllUpfront :: PaymentOption
- Network.AWS.CostExplorer.Types: Convertible :: OfferingClass
- Network.AWS.CostExplorer.Types: CostAndUsage :: Context
- Network.AWS.CostExplorer.Types: Daily :: Granularity
- Network.AWS.CostExplorer.Types: Dimension :: GroupDefinitionType
- Network.AWS.CostExplorer.Types: DimensionAZ :: Dimension
- Network.AWS.CostExplorer.Types: DimensionCacheEngine :: Dimension
- Network.AWS.CostExplorer.Types: DimensionDatabaseEngine :: Dimension
- Network.AWS.CostExplorer.Types: DimensionDeploymentOption :: Dimension
- Network.AWS.CostExplorer.Types: DimensionInstanceType :: Dimension
- Network.AWS.CostExplorer.Types: DimensionInstanceTypeFamily :: Dimension
- Network.AWS.CostExplorer.Types: DimensionLegalEntityName :: Dimension
- Network.AWS.CostExplorer.Types: DimensionLinkedAccount :: Dimension
- Network.AWS.CostExplorer.Types: DimensionOperatingSystem :: Dimension
- Network.AWS.CostExplorer.Types: DimensionOperation :: Dimension
- Network.AWS.CostExplorer.Types: DimensionPlatform :: Dimension
- Network.AWS.CostExplorer.Types: DimensionPurchaseType :: Dimension
- Network.AWS.CostExplorer.Types: DimensionRecordType :: Dimension
- Network.AWS.CostExplorer.Types: DimensionRegion :: Dimension
- Network.AWS.CostExplorer.Types: DimensionScope :: Dimension
- Network.AWS.CostExplorer.Types: DimensionService :: Dimension
- Network.AWS.CostExplorer.Types: DimensionSubscriptionId :: Dimension
- Network.AWS.CostExplorer.Types: DimensionTenancy :: Dimension
- Network.AWS.CostExplorer.Types: DimensionUsageType :: Dimension
- Network.AWS.CostExplorer.Types: DimensionUsageTypeGroup :: Dimension
- Network.AWS.CostExplorer.Types: Monthly :: Granularity
- Network.AWS.CostExplorer.Types: NoUpfront :: PaymentOption
- Network.AWS.CostExplorer.Types: OneYear :: TermInYears
- Network.AWS.CostExplorer.Types: PartialUpfront :: PaymentOption
- Network.AWS.CostExplorer.Types: Payer :: AccountScope
- Network.AWS.CostExplorer.Types: Reservations :: Context
- Network.AWS.CostExplorer.Types: SevenDays :: LookbackPeriodInDays
- Network.AWS.CostExplorer.Types: SixtyDays :: LookbackPeriodInDays
- Network.AWS.CostExplorer.Types: Standard :: OfferingClass
- Network.AWS.CostExplorer.Types: Tag :: GroupDefinitionType
- Network.AWS.CostExplorer.Types: ThirtyDays :: LookbackPeriodInDays
- Network.AWS.CostExplorer.Types: ThreeYears :: TermInYears
- Network.AWS.CostExplorer.Types: _BillExpirationException :: AsError a => Getting (First ServiceError) a ServiceError
- Network.AWS.CostExplorer.Types: _DataUnavailableException :: AsError a => Getting (First ServiceError) a ServiceError
- Network.AWS.CostExplorer.Types: _InvalidNextTokenException :: AsError a => Getting (First ServiceError) a ServiceError
- Network.AWS.CostExplorer.Types: _LimitExceededException :: AsError a => Getting (First ServiceError) a ServiceError
- Network.AWS.CostExplorer.Types: _RequestChangedException :: AsError a => Getting (First ServiceError) a ServiceError
- Network.AWS.CostExplorer.Types: cCoverageHours :: Lens' Coverage (Maybe CoverageHours)
- Network.AWS.CostExplorer.Types: cbtGroups :: Lens' CoverageByTime [ReservationCoverageGroup]
- Network.AWS.CostExplorer.Types: cbtTimePeriod :: Lens' CoverageByTime (Maybe DateInterval)
- Network.AWS.CostExplorer.Types: cbtTotal :: Lens' CoverageByTime (Maybe Coverage)
- Network.AWS.CostExplorer.Types: chCoverageHoursPercentage :: Lens' CoverageHours (Maybe Text)
- Network.AWS.CostExplorer.Types: chOnDemandHours :: Lens' CoverageHours (Maybe Text)
- Network.AWS.CostExplorer.Types: chReservedHours :: Lens' CoverageHours (Maybe Text)
- Network.AWS.CostExplorer.Types: chTotalRunningHours :: Lens' CoverageHours (Maybe Text)
- Network.AWS.CostExplorer.Types: costExplorer :: Service
- Network.AWS.CostExplorer.Types: coverage :: Coverage
- Network.AWS.CostExplorer.Types: coverageByTime :: CoverageByTime
- Network.AWS.CostExplorer.Types: coverageHours :: CoverageHours
- Network.AWS.CostExplorer.Types: data AccountScope
- Network.AWS.CostExplorer.Types: data Context
- Network.AWS.CostExplorer.Types: data Coverage
- Network.AWS.CostExplorer.Types: data CoverageByTime
- Network.AWS.CostExplorer.Types: data CoverageHours
- Network.AWS.CostExplorer.Types: data DateInterval
- Network.AWS.CostExplorer.Types: data Dimension
- Network.AWS.CostExplorer.Types: data DimensionValues
- Network.AWS.CostExplorer.Types: data DimensionValuesWithAttributes
- Network.AWS.CostExplorer.Types: data EC2InstanceDetails
- Network.AWS.CostExplorer.Types: data EC2Specification
- Network.AWS.CostExplorer.Types: data Expression
- Network.AWS.CostExplorer.Types: data Granularity
- Network.AWS.CostExplorer.Types: data Group
- Network.AWS.CostExplorer.Types: data GroupDefinition
- Network.AWS.CostExplorer.Types: data GroupDefinitionType
- Network.AWS.CostExplorer.Types: data InstanceDetails
- Network.AWS.CostExplorer.Types: data LookbackPeriodInDays
- Network.AWS.CostExplorer.Types: data MetricValue
- Network.AWS.CostExplorer.Types: data OfferingClass
- Network.AWS.CostExplorer.Types: data PaymentOption
- Network.AWS.CostExplorer.Types: data RDSInstanceDetails
- Network.AWS.CostExplorer.Types: data ReservationAggregates
- Network.AWS.CostExplorer.Types: data ReservationCoverageGroup
- Network.AWS.CostExplorer.Types: data ReservationPurchaseRecommendation
- Network.AWS.CostExplorer.Types: data ReservationPurchaseRecommendationDetail
- Network.AWS.CostExplorer.Types: data ReservationPurchaseRecommendationMetadata
- Network.AWS.CostExplorer.Types: data ReservationPurchaseRecommendationSummary
- Network.AWS.CostExplorer.Types: data ReservationUtilizationGroup
- Network.AWS.CostExplorer.Types: data ResultByTime
- Network.AWS.CostExplorer.Types: data ServiceSpecification
- Network.AWS.CostExplorer.Types: data TagValues
- Network.AWS.CostExplorer.Types: data TermInYears
- Network.AWS.CostExplorer.Types: data UtilizationByTime
- Network.AWS.CostExplorer.Types: dateInterval :: Text -> Text -> DateInterval
- Network.AWS.CostExplorer.Types: diEnd :: Lens' DateInterval Text
- Network.AWS.CostExplorer.Types: diStart :: Lens' DateInterval Text
- Network.AWS.CostExplorer.Types: dimensionValues :: DimensionValues
- Network.AWS.CostExplorer.Types: dimensionValuesWithAttributes :: DimensionValuesWithAttributes
- Network.AWS.CostExplorer.Types: dvKey :: Lens' DimensionValues (Maybe Dimension)
- Network.AWS.CostExplorer.Types: dvValues :: Lens' DimensionValues [Text]
- Network.AWS.CostExplorer.Types: dvwaAttributes :: Lens' DimensionValuesWithAttributes (HashMap Text Text)
- Network.AWS.CostExplorer.Types: dvwaValue :: Lens' DimensionValuesWithAttributes (Maybe Text)
- Network.AWS.CostExplorer.Types: eAnd :: Lens' Expression [Expression]
- Network.AWS.CostExplorer.Types: eDimensions :: Lens' Expression (Maybe DimensionValues)
- Network.AWS.CostExplorer.Types: eNot :: Lens' Expression (Maybe Expression)
- Network.AWS.CostExplorer.Types: eOr :: Lens' Expression [Expression]
- Network.AWS.CostExplorer.Types: eTags :: Lens' Expression (Maybe TagValues)
- Network.AWS.CostExplorer.Types: ec2InstanceDetails :: EC2InstanceDetails
- Network.AWS.CostExplorer.Types: ec2Specification :: EC2Specification
- Network.AWS.CostExplorer.Types: eidAvailabilityZone :: Lens' EC2InstanceDetails (Maybe Text)
- Network.AWS.CostExplorer.Types: eidCurrentGeneration :: Lens' EC2InstanceDetails (Maybe Bool)
- Network.AWS.CostExplorer.Types: eidFamily :: Lens' EC2InstanceDetails (Maybe Text)
- Network.AWS.CostExplorer.Types: eidInstanceType :: Lens' EC2InstanceDetails (Maybe Text)
- Network.AWS.CostExplorer.Types: eidPlatform :: Lens' EC2InstanceDetails (Maybe Text)
- Network.AWS.CostExplorer.Types: eidRegion :: Lens' EC2InstanceDetails (Maybe Text)
- Network.AWS.CostExplorer.Types: eidSizeFlexEligible :: Lens' EC2InstanceDetails (Maybe Bool)
- Network.AWS.CostExplorer.Types: eidTenancy :: Lens' EC2InstanceDetails (Maybe Text)
- Network.AWS.CostExplorer.Types: esOfferingClass :: Lens' EC2Specification (Maybe OfferingClass)
- Network.AWS.CostExplorer.Types: expression :: Expression
- Network.AWS.CostExplorer.Types: gKeys :: Lens' Group [Text]
- Network.AWS.CostExplorer.Types: gMetrics :: Lens' Group (HashMap Text MetricValue)
- Network.AWS.CostExplorer.Types: gdKey :: Lens' GroupDefinition (Maybe Text)
- Network.AWS.CostExplorer.Types: gdType :: Lens' GroupDefinition (Maybe GroupDefinitionType)
- Network.AWS.CostExplorer.Types: group' :: Group
- Network.AWS.CostExplorer.Types: groupDefinition :: GroupDefinition
- Network.AWS.CostExplorer.Types: idEC2InstanceDetails :: Lens' InstanceDetails (Maybe EC2InstanceDetails)
- Network.AWS.CostExplorer.Types: idRDSInstanceDetails :: Lens' InstanceDetails (Maybe RDSInstanceDetails)
- Network.AWS.CostExplorer.Types: instanceDetails :: InstanceDetails
- Network.AWS.CostExplorer.Types: metricValue :: MetricValue
- Network.AWS.CostExplorer.Types: mvAmount :: Lens' MetricValue (Maybe Text)
- Network.AWS.CostExplorer.Types: mvUnit :: Lens' MetricValue (Maybe Text)
- Network.AWS.CostExplorer.Types: raPurchasedHours :: Lens' ReservationAggregates (Maybe Text)
- Network.AWS.CostExplorer.Types: raTotalActualHours :: Lens' ReservationAggregates (Maybe Text)
- Network.AWS.CostExplorer.Types: raUnusedHours :: Lens' ReservationAggregates (Maybe Text)
- Network.AWS.CostExplorer.Types: raUtilizationPercentage :: Lens' ReservationAggregates (Maybe Text)
- Network.AWS.CostExplorer.Types: rbtEstimated :: Lens' ResultByTime (Maybe Bool)
- Network.AWS.CostExplorer.Types: rbtGroups :: Lens' ResultByTime [Group]
- Network.AWS.CostExplorer.Types: rbtTimePeriod :: Lens' ResultByTime (Maybe DateInterval)
- Network.AWS.CostExplorer.Types: rbtTotal :: Lens' ResultByTime (HashMap Text MetricValue)
- Network.AWS.CostExplorer.Types: rcgAttributes :: Lens' ReservationCoverageGroup (HashMap Text Text)
- Network.AWS.CostExplorer.Types: rcgCoverage :: Lens' ReservationCoverageGroup (Maybe Coverage)
- Network.AWS.CostExplorer.Types: rdsInstanceDetails :: RDSInstanceDetails
- Network.AWS.CostExplorer.Types: reservationAggregates :: ReservationAggregates
- Network.AWS.CostExplorer.Types: reservationCoverageGroup :: ReservationCoverageGroup
- Network.AWS.CostExplorer.Types: reservationPurchaseRecommendation :: ReservationPurchaseRecommendation
- Network.AWS.CostExplorer.Types: reservationPurchaseRecommendationDetail :: ReservationPurchaseRecommendationDetail
- Network.AWS.CostExplorer.Types: reservationPurchaseRecommendationMetadata :: ReservationPurchaseRecommendationMetadata
- Network.AWS.CostExplorer.Types: reservationPurchaseRecommendationSummary :: ReservationPurchaseRecommendationSummary
- Network.AWS.CostExplorer.Types: reservationUtilizationGroup :: ReservationUtilizationGroup
- Network.AWS.CostExplorer.Types: resultByTime :: ResultByTime
- Network.AWS.CostExplorer.Types: ridCurrentGeneration :: Lens' RDSInstanceDetails (Maybe Bool)
- Network.AWS.CostExplorer.Types: ridDatabaseEngine :: Lens' RDSInstanceDetails (Maybe Text)
- Network.AWS.CostExplorer.Types: ridDeploymentOption :: Lens' RDSInstanceDetails (Maybe Text)
- Network.AWS.CostExplorer.Types: ridFamily :: Lens' RDSInstanceDetails (Maybe Text)
- Network.AWS.CostExplorer.Types: ridInstanceType :: Lens' RDSInstanceDetails (Maybe Text)
- Network.AWS.CostExplorer.Types: ridLicenseModel :: Lens' RDSInstanceDetails (Maybe Text)
- Network.AWS.CostExplorer.Types: ridRegion :: Lens' RDSInstanceDetails (Maybe Text)
- Network.AWS.CostExplorer.Types: ridSizeFlexEligible :: Lens' RDSInstanceDetails (Maybe Bool)
- Network.AWS.CostExplorer.Types: rprAccountScope :: Lens' ReservationPurchaseRecommendation (Maybe AccountScope)
- Network.AWS.CostExplorer.Types: rprLookbackPeriodInDays :: Lens' ReservationPurchaseRecommendation (Maybe LookbackPeriodInDays)
- Network.AWS.CostExplorer.Types: rprPaymentOption :: Lens' ReservationPurchaseRecommendation (Maybe PaymentOption)
- Network.AWS.CostExplorer.Types: rprRecommendationDetails :: Lens' ReservationPurchaseRecommendation [ReservationPurchaseRecommendationDetail]
- Network.AWS.CostExplorer.Types: rprRecommendationSummary :: Lens' ReservationPurchaseRecommendation (Maybe ReservationPurchaseRecommendationSummary)
- Network.AWS.CostExplorer.Types: rprServiceSpecification :: Lens' ReservationPurchaseRecommendation (Maybe ServiceSpecification)
- Network.AWS.CostExplorer.Types: rprTermInYears :: Lens' ReservationPurchaseRecommendation (Maybe TermInYears)
- Network.AWS.CostExplorer.Types: rprdAverageNormalizedUnitsUsedPerHour :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)
- Network.AWS.CostExplorer.Types: rprdAverageNumberOfInstancesUsedPerHour :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)
- Network.AWS.CostExplorer.Types: rprdAverageUtilization :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)
- Network.AWS.CostExplorer.Types: rprdCurrencyCode :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)
- Network.AWS.CostExplorer.Types: rprdEstimatedBreakEvenInMonths :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)
- Network.AWS.CostExplorer.Types: rprdEstimatedMonthlyOnDemandCost :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)
- Network.AWS.CostExplorer.Types: rprdEstimatedMonthlySavingsAmount :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)
- Network.AWS.CostExplorer.Types: rprdEstimatedMonthlySavingsPercentage :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)
- Network.AWS.CostExplorer.Types: rprdEstimatedReservationCostForLookbackPeriod :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)
- Network.AWS.CostExplorer.Types: rprdInstanceDetails :: Lens' ReservationPurchaseRecommendationDetail (Maybe InstanceDetails)
- Network.AWS.CostExplorer.Types: rprdMaximumNormalizedUnitsUsedPerHour :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)
- Network.AWS.CostExplorer.Types: rprdMaximumNumberOfInstancesUsedPerHour :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)
- Network.AWS.CostExplorer.Types: rprdMinimumNormalizedUnitsUsedPerHour :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)
- Network.AWS.CostExplorer.Types: rprdMinimumNumberOfInstancesUsedPerHour :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)
- Network.AWS.CostExplorer.Types: rprdRecommendedNormalizedUnitsToPurchase :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)
- Network.AWS.CostExplorer.Types: rprdRecommendedNumberOfInstancesToPurchase :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)
- Network.AWS.CostExplorer.Types: rprdRecurringStandardMonthlyCost :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)
- Network.AWS.CostExplorer.Types: rprdUpfrontCost :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)
- Network.AWS.CostExplorer.Types: rprmGenerationTimestamp :: Lens' ReservationPurchaseRecommendationMetadata (Maybe Text)
- Network.AWS.CostExplorer.Types: rprmRecommendationId :: Lens' ReservationPurchaseRecommendationMetadata (Maybe Text)
- Network.AWS.CostExplorer.Types: rprsCurrencyCode :: Lens' ReservationPurchaseRecommendationSummary (Maybe Text)
- Network.AWS.CostExplorer.Types: rprsTotalEstimatedMonthlySavingsAmount :: Lens' ReservationPurchaseRecommendationSummary (Maybe Text)
- Network.AWS.CostExplorer.Types: rprsTotalEstimatedMonthlySavingsPercentage :: Lens' ReservationPurchaseRecommendationSummary (Maybe Text)
- Network.AWS.CostExplorer.Types: rugAttributes :: Lens' ReservationUtilizationGroup (HashMap Text Text)
- Network.AWS.CostExplorer.Types: rugKey :: Lens' ReservationUtilizationGroup (Maybe Text)
- Network.AWS.CostExplorer.Types: rugUtilization :: Lens' ReservationUtilizationGroup (Maybe ReservationAggregates)
- Network.AWS.CostExplorer.Types: rugValue :: Lens' ReservationUtilizationGroup (Maybe Text)
- Network.AWS.CostExplorer.Types: serviceSpecification :: ServiceSpecification
- Network.AWS.CostExplorer.Types: ssEC2Specification :: Lens' ServiceSpecification (Maybe EC2Specification)
- Network.AWS.CostExplorer.Types: tagValues :: TagValues
- Network.AWS.CostExplorer.Types: tvKey :: Lens' TagValues (Maybe Text)
- Network.AWS.CostExplorer.Types: tvValues :: Lens' TagValues [Text]
- Network.AWS.CostExplorer.Types: ubtGroups :: Lens' UtilizationByTime [ReservationUtilizationGroup]
- Network.AWS.CostExplorer.Types: ubtTimePeriod :: Lens' UtilizationByTime (Maybe DateInterval)
- Network.AWS.CostExplorer.Types: ubtTotal :: Lens' UtilizationByTime (Maybe ReservationAggregates)
- Network.AWS.CostExplorer.Types: utilizationByTime :: UtilizationByTime
+ Amazonka.CostExplorer: AccountScope' :: Text -> AccountScope
+ Amazonka.CostExplorer: Anomaly' :: Maybe Text -> Maybe Text -> Maybe Text -> Maybe AnomalyFeedbackType -> Maybe [RootCause] -> Text -> AnomalyScore -> Impact -> Text -> Anomaly
+ Amazonka.CostExplorer: AnomalyDateInterval' :: Maybe Text -> Text -> AnomalyDateInterval
+ Amazonka.CostExplorer: AnomalyFeedbackType' :: Text -> AnomalyFeedbackType
+ Amazonka.CostExplorer: AnomalyMonitor' :: Maybe Text -> Maybe Natural -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe MonitorDimension -> Maybe Expression -> Text -> MonitorType -> AnomalyMonitor
+ Amazonka.CostExplorer: AnomalyScore' :: Double -> Double -> AnomalyScore
+ Amazonka.CostExplorer: AnomalySubscription' :: Maybe Text -> Maybe Text -> Maybe Double -> Maybe Expression -> [Text] -> [Subscriber] -> AnomalySubscriptionFrequency -> Text -> AnomalySubscription
+ Amazonka.CostExplorer: AnomalySubscriptionFrequency' :: Text -> AnomalySubscriptionFrequency
+ Amazonka.CostExplorer: Context' :: Text -> Context
+ Amazonka.CostExplorer: CostAllocationTag' :: Text -> CostAllocationTagType -> CostAllocationTagStatus -> CostAllocationTag
+ Amazonka.CostExplorer: CostAllocationTagStatus' :: Text -> CostAllocationTagStatus
+ Amazonka.CostExplorer: CostAllocationTagStatusEntry' :: Text -> CostAllocationTagStatus -> CostAllocationTagStatusEntry
+ Amazonka.CostExplorer: CostAllocationTagType' :: Text -> CostAllocationTagType
+ Amazonka.CostExplorer: CostCategory' :: Maybe Text -> Maybe Text -> Maybe [CostCategoryProcessingStatus] -> Maybe (NonEmpty CostCategorySplitChargeRule) -> Text -> Text -> Text -> CostCategoryRuleVersion -> NonEmpty CostCategoryRule -> CostCategory
+ Amazonka.CostExplorer: CostCategoryInheritedValueDimension' :: Maybe Text -> Maybe CostCategoryInheritedValueDimensionName -> CostCategoryInheritedValueDimension
+ Amazonka.CostExplorer: CostCategoryInheritedValueDimensionName' :: Text -> CostCategoryInheritedValueDimensionName
+ Amazonka.CostExplorer: CostCategoryProcessingStatus' :: Maybe CostCategoryStatusComponent -> Maybe CostCategoryStatus -> CostCategoryProcessingStatus
+ Amazonka.CostExplorer: CostCategoryReference' :: Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Natural -> Maybe [CostCategoryProcessingStatus] -> Maybe [Text] -> CostCategoryReference
+ Amazonka.CostExplorer: CostCategoryRule' :: Maybe CostCategoryInheritedValueDimension -> Maybe Expression -> Maybe CostCategoryRuleType -> Maybe Text -> CostCategoryRule
+ Amazonka.CostExplorer: CostCategoryRuleType' :: Text -> CostCategoryRuleType
+ Amazonka.CostExplorer: CostCategoryRuleVersion' :: Text -> CostCategoryRuleVersion
+ Amazonka.CostExplorer: CostCategorySplitChargeMethod' :: Text -> CostCategorySplitChargeMethod
+ Amazonka.CostExplorer: CostCategorySplitChargeRule' :: Maybe (NonEmpty CostCategorySplitChargeRuleParameter) -> Text -> NonEmpty Text -> CostCategorySplitChargeMethod -> CostCategorySplitChargeRule
+ Amazonka.CostExplorer: CostCategorySplitChargeRuleParameter' :: CostCategorySplitChargeRuleParameterType -> NonEmpty Text -> CostCategorySplitChargeRuleParameter
+ Amazonka.CostExplorer: CostCategorySplitChargeRuleParameterType' :: Text -> CostCategorySplitChargeRuleParameterType
+ Amazonka.CostExplorer: CostCategoryStatus' :: Text -> CostCategoryStatus
+ Amazonka.CostExplorer: CostCategoryStatusComponent' :: Text -> CostCategoryStatusComponent
+ Amazonka.CostExplorer: CostCategoryValues' :: Maybe Text -> Maybe [MatchOption] -> Maybe [Text] -> CostCategoryValues
+ Amazonka.CostExplorer: Coverage' :: Maybe CoverageCost -> Maybe CoverageHours -> Maybe CoverageNormalizedUnits -> Coverage
+ Amazonka.CostExplorer: CoverageByTime' :: Maybe [ReservationCoverageGroup] -> Maybe DateInterval -> Maybe Coverage -> CoverageByTime
+ Amazonka.CostExplorer: CoverageCost' :: Maybe Text -> CoverageCost
+ Amazonka.CostExplorer: CoverageHours' :: Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> CoverageHours
+ Amazonka.CostExplorer: CoverageNormalizedUnits' :: Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> CoverageNormalizedUnits
+ Amazonka.CostExplorer: CreateAnomalyMonitor' :: Maybe [ResourceTag] -> AnomalyMonitor -> CreateAnomalyMonitor
+ Amazonka.CostExplorer: CreateAnomalyMonitorResponse' :: Int -> Text -> CreateAnomalyMonitorResponse
+ Amazonka.CostExplorer: CreateAnomalySubscription' :: Maybe [ResourceTag] -> AnomalySubscription -> CreateAnomalySubscription
+ Amazonka.CostExplorer: CreateAnomalySubscriptionResponse' :: Int -> Text -> CreateAnomalySubscriptionResponse
+ Amazonka.CostExplorer: CreateCostCategoryDefinition' :: Maybe Text -> Maybe Text -> Maybe [ResourceTag] -> Maybe (NonEmpty CostCategorySplitChargeRule) -> Text -> CostCategoryRuleVersion -> NonEmpty CostCategoryRule -> CreateCostCategoryDefinition
+ Amazonka.CostExplorer: CreateCostCategoryDefinitionResponse' :: Maybe Text -> Maybe Text -> Int -> CreateCostCategoryDefinitionResponse
+ Amazonka.CostExplorer: CurrentInstance' :: Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe ResourceDetails -> Maybe Text -> Maybe ResourceUtilization -> Maybe Text -> Maybe [TagValues] -> Maybe Text -> CurrentInstance
+ Amazonka.CostExplorer: DateInterval' :: Text -> Text -> DateInterval
+ Amazonka.CostExplorer: DeleteAnomalyMonitor' :: Text -> DeleteAnomalyMonitor
+ Amazonka.CostExplorer: DeleteAnomalyMonitorResponse' :: Int -> DeleteAnomalyMonitorResponse
+ Amazonka.CostExplorer: DeleteAnomalySubscription' :: Text -> DeleteAnomalySubscription
+ Amazonka.CostExplorer: DeleteAnomalySubscriptionResponse' :: Int -> DeleteAnomalySubscriptionResponse
+ Amazonka.CostExplorer: DeleteCostCategoryDefinition' :: Text -> DeleteCostCategoryDefinition
+ Amazonka.CostExplorer: DeleteCostCategoryDefinitionResponse' :: Maybe Text -> Maybe Text -> Int -> DeleteCostCategoryDefinitionResponse
+ Amazonka.CostExplorer: DescribeCostCategoryDefinition' :: Maybe Text -> Text -> DescribeCostCategoryDefinition
+ Amazonka.CostExplorer: DescribeCostCategoryDefinitionResponse' :: Maybe CostCategory -> Int -> DescribeCostCategoryDefinitionResponse
+ Amazonka.CostExplorer: Dimension' :: Text -> Dimension
+ Amazonka.CostExplorer: DimensionValues' :: Maybe Dimension -> Maybe [MatchOption] -> Maybe [Text] -> DimensionValues
+ Amazonka.CostExplorer: DimensionValuesWithAttributes' :: Maybe (HashMap Text Text) -> Maybe Text -> DimensionValuesWithAttributes
+ Amazonka.CostExplorer: DiskResourceUtilization' :: Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> DiskResourceUtilization
+ Amazonka.CostExplorer: EBSResourceUtilization' :: Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> EBSResourceUtilization
+ Amazonka.CostExplorer: EC2InstanceDetails' :: Maybe Text -> Maybe Bool -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Bool -> Maybe Text -> EC2InstanceDetails
+ Amazonka.CostExplorer: EC2ResourceDetails' :: Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> EC2ResourceDetails
+ Amazonka.CostExplorer: EC2ResourceUtilization' :: Maybe DiskResourceUtilization -> Maybe EBSResourceUtilization -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe NetworkResourceUtilization -> EC2ResourceUtilization
+ Amazonka.CostExplorer: EC2Specification' :: Maybe OfferingClass -> EC2Specification
+ Amazonka.CostExplorer: ESInstanceDetails' :: Maybe Bool -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Bool -> ESInstanceDetails
+ Amazonka.CostExplorer: ElastiCacheInstanceDetails' :: Maybe Bool -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Bool -> ElastiCacheInstanceDetails
+ Amazonka.CostExplorer: Expression' :: Maybe [Expression] -> Maybe CostCategoryValues -> Maybe DimensionValues -> Maybe Expression -> Maybe [Expression] -> Maybe TagValues -> Expression
+ Amazonka.CostExplorer: FindingReasonCode' :: Text -> FindingReasonCode
+ Amazonka.CostExplorer: ForecastResult' :: Maybe Text -> Maybe Text -> Maybe Text -> Maybe DateInterval -> ForecastResult
+ Amazonka.CostExplorer: GenerationStatus' :: Text -> GenerationStatus
+ Amazonka.CostExplorer: GenerationSummary' :: Maybe Text -> Maybe Text -> Maybe Text -> Maybe GenerationStatus -> Maybe Text -> GenerationSummary
+ Amazonka.CostExplorer: GetAnomalies' :: Maybe AnomalyFeedbackType -> Maybe Int -> Maybe Text -> Maybe Text -> Maybe TotalImpactFilter -> AnomalyDateInterval -> GetAnomalies
+ Amazonka.CostExplorer: GetAnomaliesResponse' :: Maybe Text -> Int -> [Anomaly] -> GetAnomaliesResponse
+ Amazonka.CostExplorer: GetAnomalyMonitors' :: Maybe Int -> Maybe [Text] -> Maybe Text -> GetAnomalyMonitors
+ Amazonka.CostExplorer: GetAnomalyMonitorsResponse' :: Maybe Text -> Int -> [AnomalyMonitor] -> GetAnomalyMonitorsResponse
+ Amazonka.CostExplorer: GetAnomalySubscriptions' :: Maybe Int -> Maybe Text -> Maybe Text -> Maybe [Text] -> GetAnomalySubscriptions
+ Amazonka.CostExplorer: GetAnomalySubscriptionsResponse' :: Maybe Text -> Int -> [AnomalySubscription] -> GetAnomalySubscriptionsResponse
+ Amazonka.CostExplorer: GetCostAndUsage' :: Maybe Expression -> Maybe [GroupDefinition] -> Maybe Text -> DateInterval -> Granularity -> [Text] -> GetCostAndUsage
+ Amazonka.CostExplorer: GetCostAndUsageResponse' :: Maybe [DimensionValuesWithAttributes] -> Maybe [GroupDefinition] -> Maybe Text -> Maybe [ResultByTime] -> Int -> GetCostAndUsageResponse
+ Amazonka.CostExplorer: GetCostAndUsageWithResources' :: Maybe [GroupDefinition] -> Maybe [Text] -> Maybe Text -> DateInterval -> Granularity -> Expression -> GetCostAndUsageWithResources
+ Amazonka.CostExplorer: GetCostAndUsageWithResourcesResponse' :: Maybe [DimensionValuesWithAttributes] -> Maybe [GroupDefinition] -> Maybe Text -> Maybe [ResultByTime] -> Int -> GetCostAndUsageWithResourcesResponse
+ Amazonka.CostExplorer: GetCostCategories' :: Maybe Text -> Maybe Expression -> Maybe Natural -> Maybe Text -> Maybe Text -> Maybe [SortDefinition] -> DateInterval -> GetCostCategories
+ Amazonka.CostExplorer: GetCostCategoriesResponse' :: Maybe [Text] -> Maybe [Text] -> Maybe Text -> Int -> Int -> Int -> GetCostCategoriesResponse
+ Amazonka.CostExplorer: GetCostForecast' :: Maybe Expression -> Maybe Natural -> DateInterval -> Metric -> Granularity -> GetCostForecast
+ Amazonka.CostExplorer: GetCostForecastResponse' :: Maybe [ForecastResult] -> Maybe MetricValue -> Int -> GetCostForecastResponse
+ Amazonka.CostExplorer: GetDimensionValues' :: Maybe Context -> Maybe Expression -> Maybe Natural -> Maybe Text -> Maybe Text -> Maybe [SortDefinition] -> DateInterval -> Dimension -> GetDimensionValues
+ Amazonka.CostExplorer: GetDimensionValuesResponse' :: Maybe Text -> Int -> [DimensionValuesWithAttributes] -> Int -> Int -> GetDimensionValuesResponse
+ Amazonka.CostExplorer: GetReservationCoverage' :: Maybe Expression -> Maybe Granularity -> Maybe [GroupDefinition] -> Maybe Natural -> Maybe [Text] -> Maybe Text -> Maybe SortDefinition -> DateInterval -> GetReservationCoverage
+ Amazonka.CostExplorer: GetReservationCoverageResponse' :: Maybe Text -> Maybe Coverage -> Int -> [CoverageByTime] -> GetReservationCoverageResponse
+ Amazonka.CostExplorer: GetReservationPurchaseRecommendation' :: Maybe Text -> Maybe AccountScope -> Maybe Expression -> Maybe LookbackPeriodInDays -> Maybe Text -> Maybe Natural -> Maybe PaymentOption -> Maybe ServiceSpecification -> Maybe TermInYears -> Text -> GetReservationPurchaseRecommendation
+ Amazonka.CostExplorer: GetReservationPurchaseRecommendationResponse' :: Maybe ReservationPurchaseRecommendationMetadata -> Maybe Text -> Maybe [ReservationPurchaseRecommendation] -> Int -> GetReservationPurchaseRecommendationResponse
+ Amazonka.CostExplorer: GetReservationUtilization' :: Maybe Expression -> Maybe Granularity -> Maybe [GroupDefinition] -> Maybe Natural -> Maybe Text -> Maybe SortDefinition -> DateInterval -> GetReservationUtilization
+ Amazonka.CostExplorer: GetReservationUtilizationResponse' :: Maybe Text -> Maybe ReservationAggregates -> Int -> [UtilizationByTime] -> GetReservationUtilizationResponse
+ Amazonka.CostExplorer: GetRightsizingRecommendation' :: Maybe RightsizingRecommendationConfiguration -> Maybe Expression -> Maybe Text -> Maybe Natural -> Text -> GetRightsizingRecommendation
+ Amazonka.CostExplorer: GetRightsizingRecommendationResponse' :: Maybe RightsizingRecommendationConfiguration -> Maybe RightsizingRecommendationMetadata -> Maybe Text -> Maybe [RightsizingRecommendation] -> Maybe RightsizingRecommendationSummary -> Int -> GetRightsizingRecommendationResponse
+ Amazonka.CostExplorer: GetSavingsPlansCoverage' :: Maybe Expression -> Maybe Granularity -> Maybe [GroupDefinition] -> Maybe Natural -> Maybe [Text] -> Maybe Text -> Maybe SortDefinition -> DateInterval -> GetSavingsPlansCoverage
+ Amazonka.CostExplorer: GetSavingsPlansCoverageResponse' :: Maybe Text -> Int -> [SavingsPlansCoverage] -> GetSavingsPlansCoverageResponse
+ Amazonka.CostExplorer: GetSavingsPlansPurchaseRecommendation' :: Maybe AccountScope -> Maybe Expression -> Maybe Text -> Maybe Natural -> SupportedSavingsPlansType -> TermInYears -> PaymentOption -> LookbackPeriodInDays -> GetSavingsPlansPurchaseRecommendation
+ Amazonka.CostExplorer: GetSavingsPlansPurchaseRecommendationResponse' :: Maybe SavingsPlansPurchaseRecommendationMetadata -> Maybe Text -> Maybe SavingsPlansPurchaseRecommendation -> Int -> GetSavingsPlansPurchaseRecommendationResponse
+ Amazonka.CostExplorer: GetSavingsPlansUtilization' :: Maybe Expression -> Maybe Granularity -> Maybe SortDefinition -> DateInterval -> GetSavingsPlansUtilization
+ Amazonka.CostExplorer: GetSavingsPlansUtilizationDetails' :: Maybe [SavingsPlansDataType] -> Maybe Expression -> Maybe Natural -> Maybe Text -> Maybe SortDefinition -> DateInterval -> GetSavingsPlansUtilizationDetails
+ Amazonka.CostExplorer: GetSavingsPlansUtilizationDetailsResponse' :: Maybe Text -> Maybe SavingsPlansUtilizationAggregates -> Int -> [SavingsPlansUtilizationDetail] -> DateInterval -> GetSavingsPlansUtilizationDetailsResponse
+ Amazonka.CostExplorer: GetSavingsPlansUtilizationResponse' :: Maybe [SavingsPlansUtilizationByTime] -> Int -> SavingsPlansUtilizationAggregates -> GetSavingsPlansUtilizationResponse
+ Amazonka.CostExplorer: GetTags' :: Maybe Expression -> Maybe Natural -> Maybe Text -> Maybe Text -> Maybe [SortDefinition] -> Maybe Text -> DateInterval -> GetTags
+ Amazonka.CostExplorer: GetTagsResponse' :: Maybe Text -> Int -> [Text] -> Int -> Int -> GetTagsResponse
+ Amazonka.CostExplorer: GetUsageForecast' :: Maybe Expression -> Maybe Natural -> DateInterval -> Metric -> Granularity -> GetUsageForecast
+ Amazonka.CostExplorer: GetUsageForecastResponse' :: Maybe [ForecastResult] -> Maybe MetricValue -> Int -> GetUsageForecastResponse
+ Amazonka.CostExplorer: Granularity' :: Text -> Granularity
+ Amazonka.CostExplorer: Group' :: Maybe [Text] -> Maybe (HashMap Text MetricValue) -> Group
+ Amazonka.CostExplorer: GroupDefinition' :: Maybe Text -> Maybe GroupDefinitionType -> GroupDefinition
+ Amazonka.CostExplorer: GroupDefinitionType' :: Text -> GroupDefinitionType
+ Amazonka.CostExplorer: Impact' :: Maybe Double -> Maybe Double -> Maybe Double -> Maybe Double -> Double -> Impact
+ Amazonka.CostExplorer: InstanceDetails' :: Maybe EC2InstanceDetails -> Maybe ESInstanceDetails -> Maybe ElastiCacheInstanceDetails -> Maybe RDSInstanceDetails -> Maybe RedshiftInstanceDetails -> InstanceDetails
+ Amazonka.CostExplorer: ListCostAllocationTags' :: Maybe Natural -> Maybe Text -> Maybe CostAllocationTagStatus -> Maybe (NonEmpty Text) -> Maybe CostAllocationTagType -> ListCostAllocationTags
+ Amazonka.CostExplorer: ListCostAllocationTagsResponse' :: Maybe [CostAllocationTag] -> Maybe Text -> Int -> ListCostAllocationTagsResponse
+ Amazonka.CostExplorer: ListCostCategoryDefinitions' :: Maybe Text -> Maybe Natural -> Maybe Text -> ListCostCategoryDefinitions
+ Amazonka.CostExplorer: ListCostCategoryDefinitionsResponse' :: Maybe [CostCategoryReference] -> Maybe Text -> Int -> ListCostCategoryDefinitionsResponse
+ Amazonka.CostExplorer: ListSavingsPlansPurchaseRecommendationGeneration' :: Maybe GenerationStatus -> Maybe Text -> Maybe Natural -> Maybe [Text] -> ListSavingsPlansPurchaseRecommendationGeneration
+ Amazonka.CostExplorer: ListSavingsPlansPurchaseRecommendationGenerationResponse' :: Maybe [GenerationSummary] -> Maybe Text -> Int -> ListSavingsPlansPurchaseRecommendationGenerationResponse
+ Amazonka.CostExplorer: ListTagsForResource' :: Text -> ListTagsForResource
+ Amazonka.CostExplorer: ListTagsForResourceResponse' :: Maybe [ResourceTag] -> Int -> ListTagsForResourceResponse
+ Amazonka.CostExplorer: LookbackPeriodInDays' :: Text -> LookbackPeriodInDays
+ Amazonka.CostExplorer: MatchOption' :: Text -> MatchOption
+ Amazonka.CostExplorer: Metric' :: Text -> Metric
+ Amazonka.CostExplorer: MetricValue' :: Maybe Text -> Maybe Text -> MetricValue
+ Amazonka.CostExplorer: ModifyRecommendationDetail' :: Maybe [TargetInstance] -> ModifyRecommendationDetail
+ Amazonka.CostExplorer: MonitorDimension' :: Text -> MonitorDimension
+ Amazonka.CostExplorer: MonitorType' :: Text -> MonitorType
+ Amazonka.CostExplorer: NetworkResourceUtilization' :: Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> NetworkResourceUtilization
+ Amazonka.CostExplorer: NumericOperator' :: Text -> NumericOperator
+ Amazonka.CostExplorer: OfferingClass' :: Text -> OfferingClass
+ Amazonka.CostExplorer: PaymentOption' :: Text -> PaymentOption
+ Amazonka.CostExplorer: PlatformDifference' :: Text -> PlatformDifference
+ Amazonka.CostExplorer: ProvideAnomalyFeedback' :: Text -> AnomalyFeedbackType -> ProvideAnomalyFeedback
+ Amazonka.CostExplorer: ProvideAnomalyFeedbackResponse' :: Int -> Text -> ProvideAnomalyFeedbackResponse
+ Amazonka.CostExplorer: RDSInstanceDetails' :: Maybe Bool -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Bool -> RDSInstanceDetails
+ Amazonka.CostExplorer: RecommendationTarget' :: Text -> RecommendationTarget
+ Amazonka.CostExplorer: RedshiftInstanceDetails' :: Maybe Bool -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Bool -> RedshiftInstanceDetails
+ Amazonka.CostExplorer: ReservationAggregates' :: Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> ReservationAggregates
+ Amazonka.CostExplorer: ReservationCoverageGroup' :: Maybe (HashMap Text Text) -> Maybe Coverage -> ReservationCoverageGroup
+ Amazonka.CostExplorer: ReservationPurchaseRecommendation' :: Maybe AccountScope -> Maybe LookbackPeriodInDays -> Maybe PaymentOption -> Maybe [ReservationPurchaseRecommendationDetail] -> Maybe ReservationPurchaseRecommendationSummary -> Maybe ServiceSpecification -> Maybe TermInYears -> ReservationPurchaseRecommendation
+ Amazonka.CostExplorer: ReservationPurchaseRecommendationDetail' :: Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe InstanceDetails -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> ReservationPurchaseRecommendationDetail
+ Amazonka.CostExplorer: ReservationPurchaseRecommendationMetadata' :: Maybe Text -> Maybe Text -> ReservationPurchaseRecommendationMetadata
+ Amazonka.CostExplorer: ReservationPurchaseRecommendationSummary' :: Maybe Text -> Maybe Text -> Maybe Text -> ReservationPurchaseRecommendationSummary
+ Amazonka.CostExplorer: ReservationUtilizationGroup' :: Maybe (HashMap Text Text) -> Maybe Text -> Maybe ReservationAggregates -> Maybe Text -> ReservationUtilizationGroup
+ Amazonka.CostExplorer: ResourceDetails' :: Maybe EC2ResourceDetails -> ResourceDetails
+ Amazonka.CostExplorer: ResourceTag' :: Text -> Text -> ResourceTag
+ Amazonka.CostExplorer: ResourceUtilization' :: Maybe EC2ResourceUtilization -> ResourceUtilization
+ Amazonka.CostExplorer: ResultByTime' :: Maybe Bool -> Maybe [Group] -> Maybe DateInterval -> Maybe (HashMap Text MetricValue) -> ResultByTime
+ Amazonka.CostExplorer: RightsizingRecommendation' :: Maybe Text -> Maybe CurrentInstance -> Maybe [FindingReasonCode] -> Maybe ModifyRecommendationDetail -> Maybe RightsizingType -> Maybe TerminateRecommendationDetail -> RightsizingRecommendation
+ Amazonka.CostExplorer: RightsizingRecommendationConfiguration' :: RecommendationTarget -> Bool -> RightsizingRecommendationConfiguration
+ Amazonka.CostExplorer: RightsizingRecommendationMetadata' :: Maybe Text -> Maybe Text -> Maybe LookbackPeriodInDays -> Maybe Text -> RightsizingRecommendationMetadata
+ Amazonka.CostExplorer: RightsizingRecommendationSummary' :: Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> RightsizingRecommendationSummary
+ Amazonka.CostExplorer: RightsizingType' :: Text -> RightsizingType
+ Amazonka.CostExplorer: RootCause' :: Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> RootCause
+ Amazonka.CostExplorer: SavingsPlansAmortizedCommitment' :: Maybe Text -> Maybe Text -> Maybe Text -> SavingsPlansAmortizedCommitment
+ Amazonka.CostExplorer: SavingsPlansCoverage' :: Maybe (HashMap Text Text) -> Maybe SavingsPlansCoverageData -> Maybe DateInterval -> SavingsPlansCoverage
+ Amazonka.CostExplorer: SavingsPlansCoverageData' :: Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> SavingsPlansCoverageData
+ Amazonka.CostExplorer: SavingsPlansDataType' :: Text -> SavingsPlansDataType
+ Amazonka.CostExplorer: SavingsPlansDetails' :: Maybe Text -> Maybe Text -> Maybe Text -> SavingsPlansDetails
+ Amazonka.CostExplorer: SavingsPlansPurchaseRecommendation' :: Maybe AccountScope -> Maybe LookbackPeriodInDays -> Maybe PaymentOption -> Maybe [SavingsPlansPurchaseRecommendationDetail] -> Maybe SavingsPlansPurchaseRecommendationSummary -> Maybe SupportedSavingsPlansType -> Maybe TermInYears -> SavingsPlansPurchaseRecommendation
+ Amazonka.CostExplorer: SavingsPlansPurchaseRecommendationDetail' :: Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe SavingsPlansDetails -> Maybe Text -> SavingsPlansPurchaseRecommendationDetail
+ Amazonka.CostExplorer: SavingsPlansPurchaseRecommendationMetadata' :: Maybe Text -> Maybe Text -> Maybe Text -> SavingsPlansPurchaseRecommendationMetadata
+ Amazonka.CostExplorer: SavingsPlansPurchaseRecommendationSummary' :: Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> SavingsPlansPurchaseRecommendationSummary
+ Amazonka.CostExplorer: SavingsPlansSavings' :: Maybe Text -> Maybe Text -> SavingsPlansSavings
+ Amazonka.CostExplorer: SavingsPlansUtilization' :: Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> SavingsPlansUtilization
+ Amazonka.CostExplorer: SavingsPlansUtilizationAggregates' :: Maybe SavingsPlansAmortizedCommitment -> Maybe SavingsPlansSavings -> SavingsPlansUtilization -> SavingsPlansUtilizationAggregates
+ Amazonka.CostExplorer: SavingsPlansUtilizationByTime' :: Maybe SavingsPlansAmortizedCommitment -> Maybe SavingsPlansSavings -> DateInterval -> SavingsPlansUtilization -> SavingsPlansUtilizationByTime
+ Amazonka.CostExplorer: SavingsPlansUtilizationDetail' :: Maybe SavingsPlansAmortizedCommitment -> Maybe (HashMap Text Text) -> Maybe SavingsPlansSavings -> Maybe Text -> Maybe SavingsPlansUtilization -> SavingsPlansUtilizationDetail
+ Amazonka.CostExplorer: ServiceSpecification' :: Maybe EC2Specification -> ServiceSpecification
+ Amazonka.CostExplorer: SortDefinition' :: Maybe SortOrder -> Text -> SortDefinition
+ Amazonka.CostExplorer: SortOrder' :: Text -> SortOrder
+ Amazonka.CostExplorer: StartSavingsPlansPurchaseRecommendationGeneration' :: StartSavingsPlansPurchaseRecommendationGeneration
+ Amazonka.CostExplorer: StartSavingsPlansPurchaseRecommendationGenerationResponse' :: Maybe Text -> Maybe Text -> Maybe Text -> Int -> StartSavingsPlansPurchaseRecommendationGenerationResponse
+ Amazonka.CostExplorer: Subscriber' :: Maybe Text -> Maybe SubscriberStatus -> Maybe SubscriberType -> Subscriber
+ Amazonka.CostExplorer: SubscriberStatus' :: Text -> SubscriberStatus
+ Amazonka.CostExplorer: SubscriberType' :: Text -> SubscriberType
+ Amazonka.CostExplorer: SupportedSavingsPlansType' :: Text -> SupportedSavingsPlansType
+ Amazonka.CostExplorer: TagResource' :: Text -> [ResourceTag] -> TagResource
+ Amazonka.CostExplorer: TagResourceResponse' :: Int -> TagResourceResponse
+ Amazonka.CostExplorer: TagValues' :: Maybe Text -> Maybe [MatchOption] -> Maybe [Text] -> TagValues
+ Amazonka.CostExplorer: TargetInstance' :: Maybe Text -> Maybe Bool -> Maybe Text -> Maybe Text -> Maybe ResourceUtilization -> Maybe [PlatformDifference] -> Maybe ResourceDetails -> TargetInstance
+ Amazonka.CostExplorer: TermInYears' :: Text -> TermInYears
+ Amazonka.CostExplorer: TerminateRecommendationDetail' :: Maybe Text -> Maybe Text -> TerminateRecommendationDetail
+ Amazonka.CostExplorer: TotalImpactFilter' :: Maybe Double -> NumericOperator -> Double -> TotalImpactFilter
+ Amazonka.CostExplorer: UntagResource' :: Text -> [Text] -> UntagResource
+ Amazonka.CostExplorer: UntagResourceResponse' :: Int -> UntagResourceResponse
+ Amazonka.CostExplorer: UpdateAnomalyMonitor' :: Maybe Text -> Text -> UpdateAnomalyMonitor
+ Amazonka.CostExplorer: UpdateAnomalyMonitorResponse' :: Int -> Text -> UpdateAnomalyMonitorResponse
+ Amazonka.CostExplorer: UpdateAnomalySubscription' :: Maybe AnomalySubscriptionFrequency -> Maybe [Text] -> Maybe [Subscriber] -> Maybe Text -> Maybe Double -> Maybe Expression -> Text -> UpdateAnomalySubscription
+ Amazonka.CostExplorer: UpdateAnomalySubscriptionResponse' :: Int -> Text -> UpdateAnomalySubscriptionResponse
+ Amazonka.CostExplorer: UpdateCostAllocationTagsStatus' :: NonEmpty CostAllocationTagStatusEntry -> UpdateCostAllocationTagsStatus
+ Amazonka.CostExplorer: UpdateCostAllocationTagsStatusError' :: Maybe Text -> Maybe Text -> Maybe Text -> UpdateCostAllocationTagsStatusError
+ Amazonka.CostExplorer: UpdateCostAllocationTagsStatusResponse' :: Maybe [UpdateCostAllocationTagsStatusError] -> Int -> UpdateCostAllocationTagsStatusResponse
+ Amazonka.CostExplorer: UpdateCostCategoryDefinition' :: Maybe Text -> Maybe Text -> Maybe (NonEmpty CostCategorySplitChargeRule) -> Text -> CostCategoryRuleVersion -> NonEmpty CostCategoryRule -> UpdateCostCategoryDefinition
+ Amazonka.CostExplorer: UpdateCostCategoryDefinitionResponse' :: Maybe Text -> Maybe Text -> Int -> UpdateCostCategoryDefinitionResponse
+ Amazonka.CostExplorer: UtilizationByTime' :: Maybe [ReservationUtilizationGroup] -> Maybe DateInterval -> Maybe ReservationAggregates -> UtilizationByTime
+ Amazonka.CostExplorer: [fromAccountScope] :: AccountScope -> Text
+ Amazonka.CostExplorer: [fromAnomalyFeedbackType] :: AnomalyFeedbackType -> Text
+ Amazonka.CostExplorer: [fromAnomalySubscriptionFrequency] :: AnomalySubscriptionFrequency -> Text
+ Amazonka.CostExplorer: [fromContext] :: Context -> Text
+ Amazonka.CostExplorer: [fromCostAllocationTagStatus] :: CostAllocationTagStatus -> Text
+ Amazonka.CostExplorer: [fromCostAllocationTagType] :: CostAllocationTagType -> Text
+ Amazonka.CostExplorer: [fromCostCategoryInheritedValueDimensionName] :: CostCategoryInheritedValueDimensionName -> Text
+ Amazonka.CostExplorer: [fromCostCategoryRuleType] :: CostCategoryRuleType -> Text
+ Amazonka.CostExplorer: [fromCostCategoryRuleVersion] :: CostCategoryRuleVersion -> Text
+ Amazonka.CostExplorer: [fromCostCategorySplitChargeMethod] :: CostCategorySplitChargeMethod -> Text
+ Amazonka.CostExplorer: [fromCostCategorySplitChargeRuleParameterType] :: CostCategorySplitChargeRuleParameterType -> Text
+ Amazonka.CostExplorer: [fromCostCategoryStatusComponent] :: CostCategoryStatusComponent -> Text
+ Amazonka.CostExplorer: [fromCostCategoryStatus] :: CostCategoryStatus -> Text
+ Amazonka.CostExplorer: [fromDimension] :: Dimension -> Text
+ Amazonka.CostExplorer: [fromFindingReasonCode] :: FindingReasonCode -> Text
+ Amazonka.CostExplorer: [fromGenerationStatus] :: GenerationStatus -> Text
+ Amazonka.CostExplorer: [fromGranularity] :: Granularity -> Text
+ Amazonka.CostExplorer: [fromGroupDefinitionType] :: GroupDefinitionType -> Text
+ Amazonka.CostExplorer: [fromLookbackPeriodInDays] :: LookbackPeriodInDays -> Text
+ Amazonka.CostExplorer: [fromMatchOption] :: MatchOption -> Text
+ Amazonka.CostExplorer: [fromMetric] :: Metric -> Text
+ Amazonka.CostExplorer: [fromMonitorDimension] :: MonitorDimension -> Text
+ Amazonka.CostExplorer: [fromMonitorType] :: MonitorType -> Text
+ Amazonka.CostExplorer: [fromNumericOperator] :: NumericOperator -> Text
+ Amazonka.CostExplorer: [fromOfferingClass] :: OfferingClass -> Text
+ Amazonka.CostExplorer: [fromPaymentOption] :: PaymentOption -> Text
+ Amazonka.CostExplorer: [fromPlatformDifference] :: PlatformDifference -> Text
+ Amazonka.CostExplorer: [fromRecommendationTarget] :: RecommendationTarget -> Text
+ Amazonka.CostExplorer: [fromRightsizingType] :: RightsizingType -> Text
+ Amazonka.CostExplorer: [fromSavingsPlansDataType] :: SavingsPlansDataType -> Text
+ Amazonka.CostExplorer: [fromSortOrder] :: SortOrder -> Text
+ Amazonka.CostExplorer: [fromSubscriberStatus] :: SubscriberStatus -> Text
+ Amazonka.CostExplorer: [fromSubscriberType] :: SubscriberType -> Text
+ Amazonka.CostExplorer: [fromSupportedSavingsPlansType] :: SupportedSavingsPlansType -> Text
+ Amazonka.CostExplorer: [fromTermInYears] :: TermInYears -> Text
+ Amazonka.CostExplorer: _BillExpirationException :: AsError a => Fold a ServiceError
+ Amazonka.CostExplorer: _DataUnavailableException :: AsError a => Fold a ServiceError
+ Amazonka.CostExplorer: _GenerationExistsException :: AsError a => Fold a ServiceError
+ Amazonka.CostExplorer: _InvalidNextTokenException :: AsError a => Fold a ServiceError
+ Amazonka.CostExplorer: _LimitExceededException :: AsError a => Fold a ServiceError
+ Amazonka.CostExplorer: _RequestChangedException :: AsError a => Fold a ServiceError
+ Amazonka.CostExplorer: _ResourceNotFoundException :: AsError a => Fold a ServiceError
+ Amazonka.CostExplorer: _ServiceQuotaExceededException :: AsError a => Fold a ServiceError
+ Amazonka.CostExplorer: _TooManyTagsException :: AsError a => Fold a ServiceError
+ Amazonka.CostExplorer: _UnknownMonitorException :: AsError a => Fold a ServiceError
+ Amazonka.CostExplorer: _UnknownSubscriptionException :: AsError a => Fold a ServiceError
+ Amazonka.CostExplorer: _UnresolvableUsageUnitException :: AsError a => Fold a ServiceError
+ Amazonka.CostExplorer: data Anomaly
+ Amazonka.CostExplorer: data AnomalyDateInterval
+ Amazonka.CostExplorer: data AnomalyMonitor
+ Amazonka.CostExplorer: data AnomalyScore
+ Amazonka.CostExplorer: data AnomalySubscription
+ Amazonka.CostExplorer: data CostAllocationTag
+ Amazonka.CostExplorer: data CostAllocationTagStatusEntry
+ Amazonka.CostExplorer: data CostCategory
+ Amazonka.CostExplorer: data CostCategoryInheritedValueDimension
+ Amazonka.CostExplorer: data CostCategoryProcessingStatus
+ Amazonka.CostExplorer: data CostCategoryReference
+ Amazonka.CostExplorer: data CostCategoryRule
+ Amazonka.CostExplorer: data CostCategorySplitChargeRule
+ Amazonka.CostExplorer: data CostCategorySplitChargeRuleParameter
+ Amazonka.CostExplorer: data CostCategoryValues
+ Amazonka.CostExplorer: data Coverage
+ Amazonka.CostExplorer: data CoverageByTime
+ Amazonka.CostExplorer: data CoverageCost
+ Amazonka.CostExplorer: data CoverageHours
+ Amazonka.CostExplorer: data CoverageNormalizedUnits
+ Amazonka.CostExplorer: data CreateAnomalyMonitor
+ Amazonka.CostExplorer: data CreateAnomalyMonitorResponse
+ Amazonka.CostExplorer: data CreateAnomalySubscription
+ Amazonka.CostExplorer: data CreateAnomalySubscriptionResponse
+ Amazonka.CostExplorer: data CreateCostCategoryDefinition
+ Amazonka.CostExplorer: data CreateCostCategoryDefinitionResponse
+ Amazonka.CostExplorer: data CurrentInstance
+ Amazonka.CostExplorer: data DateInterval
+ Amazonka.CostExplorer: data DeleteAnomalyMonitor
+ Amazonka.CostExplorer: data DeleteAnomalyMonitorResponse
+ Amazonka.CostExplorer: data DeleteAnomalySubscription
+ Amazonka.CostExplorer: data DeleteAnomalySubscriptionResponse
+ Amazonka.CostExplorer: data DeleteCostCategoryDefinition
+ Amazonka.CostExplorer: data DeleteCostCategoryDefinitionResponse
+ Amazonka.CostExplorer: data DescribeCostCategoryDefinition
+ Amazonka.CostExplorer: data DescribeCostCategoryDefinitionResponse
+ Amazonka.CostExplorer: data DimensionValues
+ Amazonka.CostExplorer: data DimensionValuesWithAttributes
+ Amazonka.CostExplorer: data DiskResourceUtilization
+ Amazonka.CostExplorer: data EBSResourceUtilization
+ Amazonka.CostExplorer: data EC2InstanceDetails
+ Amazonka.CostExplorer: data EC2ResourceDetails
+ Amazonka.CostExplorer: data EC2ResourceUtilization
+ Amazonka.CostExplorer: data EC2Specification
+ Amazonka.CostExplorer: data ESInstanceDetails
+ Amazonka.CostExplorer: data ElastiCacheInstanceDetails
+ Amazonka.CostExplorer: data Expression
+ Amazonka.CostExplorer: data ForecastResult
+ Amazonka.CostExplorer: data GenerationSummary
+ Amazonka.CostExplorer: data GetAnomalies
+ Amazonka.CostExplorer: data GetAnomaliesResponse
+ Amazonka.CostExplorer: data GetAnomalyMonitors
+ Amazonka.CostExplorer: data GetAnomalyMonitorsResponse
+ Amazonka.CostExplorer: data GetAnomalySubscriptions
+ Amazonka.CostExplorer: data GetAnomalySubscriptionsResponse
+ Amazonka.CostExplorer: data GetCostAndUsage
+ Amazonka.CostExplorer: data GetCostAndUsageResponse
+ Amazonka.CostExplorer: data GetCostAndUsageWithResources
+ Amazonka.CostExplorer: data GetCostAndUsageWithResourcesResponse
+ Amazonka.CostExplorer: data GetCostCategories
+ Amazonka.CostExplorer: data GetCostCategoriesResponse
+ Amazonka.CostExplorer: data GetCostForecast
+ Amazonka.CostExplorer: data GetCostForecastResponse
+ Amazonka.CostExplorer: data GetDimensionValues
+ Amazonka.CostExplorer: data GetDimensionValuesResponse
+ Amazonka.CostExplorer: data GetReservationCoverage
+ Amazonka.CostExplorer: data GetReservationCoverageResponse
+ Amazonka.CostExplorer: data GetReservationPurchaseRecommendation
+ Amazonka.CostExplorer: data GetReservationPurchaseRecommendationResponse
+ Amazonka.CostExplorer: data GetReservationUtilization
+ Amazonka.CostExplorer: data GetReservationUtilizationResponse
+ Amazonka.CostExplorer: data GetRightsizingRecommendation
+ Amazonka.CostExplorer: data GetRightsizingRecommendationResponse
+ Amazonka.CostExplorer: data GetSavingsPlansCoverage
+ Amazonka.CostExplorer: data GetSavingsPlansCoverageResponse
+ Amazonka.CostExplorer: data GetSavingsPlansPurchaseRecommendation
+ Amazonka.CostExplorer: data GetSavingsPlansPurchaseRecommendationResponse
+ Amazonka.CostExplorer: data GetSavingsPlansUtilization
+ Amazonka.CostExplorer: data GetSavingsPlansUtilizationDetails
+ Amazonka.CostExplorer: data GetSavingsPlansUtilizationDetailsResponse
+ Amazonka.CostExplorer: data GetSavingsPlansUtilizationResponse
+ Amazonka.CostExplorer: data GetTags
+ Amazonka.CostExplorer: data GetTagsResponse
+ Amazonka.CostExplorer: data GetUsageForecast
+ Amazonka.CostExplorer: data GetUsageForecastResponse
+ Amazonka.CostExplorer: data Group
+ Amazonka.CostExplorer: data GroupDefinition
+ Amazonka.CostExplorer: data Impact
+ Amazonka.CostExplorer: data InstanceDetails
+ Amazonka.CostExplorer: data ListCostAllocationTags
+ Amazonka.CostExplorer: data ListCostAllocationTagsResponse
+ Amazonka.CostExplorer: data ListCostCategoryDefinitions
+ Amazonka.CostExplorer: data ListCostCategoryDefinitionsResponse
+ Amazonka.CostExplorer: data ListSavingsPlansPurchaseRecommendationGeneration
+ Amazonka.CostExplorer: data ListSavingsPlansPurchaseRecommendationGenerationResponse
+ Amazonka.CostExplorer: data ListTagsForResource
+ Amazonka.CostExplorer: data ListTagsForResourceResponse
+ Amazonka.CostExplorer: data MetricValue
+ Amazonka.CostExplorer: data ModifyRecommendationDetail
+ Amazonka.CostExplorer: data NetworkResourceUtilization
+ Amazonka.CostExplorer: data ProvideAnomalyFeedback
+ Amazonka.CostExplorer: data ProvideAnomalyFeedbackResponse
+ Amazonka.CostExplorer: data RDSInstanceDetails
+ Amazonka.CostExplorer: data RedshiftInstanceDetails
+ Amazonka.CostExplorer: data ReservationAggregates
+ Amazonka.CostExplorer: data ReservationCoverageGroup
+ Amazonka.CostExplorer: data ReservationPurchaseRecommendation
+ Amazonka.CostExplorer: data ReservationPurchaseRecommendationDetail
+ Amazonka.CostExplorer: data ReservationPurchaseRecommendationMetadata
+ Amazonka.CostExplorer: data ReservationPurchaseRecommendationSummary
+ Amazonka.CostExplorer: data ReservationUtilizationGroup
+ Amazonka.CostExplorer: data ResourceDetails
+ Amazonka.CostExplorer: data ResourceTag
+ Amazonka.CostExplorer: data ResourceUtilization
+ Amazonka.CostExplorer: data ResultByTime
+ Amazonka.CostExplorer: data RightsizingRecommendation
+ Amazonka.CostExplorer: data RightsizingRecommendationConfiguration
+ Amazonka.CostExplorer: data RightsizingRecommendationMetadata
+ Amazonka.CostExplorer: data RightsizingRecommendationSummary
+ Amazonka.CostExplorer: data RootCause
+ Amazonka.CostExplorer: data SavingsPlansAmortizedCommitment
+ Amazonka.CostExplorer: data SavingsPlansCoverage
+ Amazonka.CostExplorer: data SavingsPlansCoverageData
+ Amazonka.CostExplorer: data SavingsPlansDetails
+ Amazonka.CostExplorer: data SavingsPlansPurchaseRecommendation
+ Amazonka.CostExplorer: data SavingsPlansPurchaseRecommendationDetail
+ Amazonka.CostExplorer: data SavingsPlansPurchaseRecommendationMetadata
+ Amazonka.CostExplorer: data SavingsPlansPurchaseRecommendationSummary
+ Amazonka.CostExplorer: data SavingsPlansSavings
+ Amazonka.CostExplorer: data SavingsPlansUtilization
+ Amazonka.CostExplorer: data SavingsPlansUtilizationAggregates
+ Amazonka.CostExplorer: data SavingsPlansUtilizationByTime
+ Amazonka.CostExplorer: data SavingsPlansUtilizationDetail
+ Amazonka.CostExplorer: data ServiceSpecification
+ Amazonka.CostExplorer: data SortDefinition
+ Amazonka.CostExplorer: data StartSavingsPlansPurchaseRecommendationGeneration
+ Amazonka.CostExplorer: data StartSavingsPlansPurchaseRecommendationGenerationResponse
+ Amazonka.CostExplorer: data Subscriber
+ Amazonka.CostExplorer: data TagResource
+ Amazonka.CostExplorer: data TagResourceResponse
+ Amazonka.CostExplorer: data TagValues
+ Amazonka.CostExplorer: data TargetInstance
+ Amazonka.CostExplorer: data TerminateRecommendationDetail
+ Amazonka.CostExplorer: data TotalImpactFilter
+ Amazonka.CostExplorer: data UntagResource
+ Amazonka.CostExplorer: data UntagResourceResponse
+ Amazonka.CostExplorer: data UpdateAnomalyMonitor
+ Amazonka.CostExplorer: data UpdateAnomalyMonitorResponse
+ Amazonka.CostExplorer: data UpdateAnomalySubscription
+ Amazonka.CostExplorer: data UpdateAnomalySubscriptionResponse
+ Amazonka.CostExplorer: data UpdateCostAllocationTagsStatus
+ Amazonka.CostExplorer: data UpdateCostAllocationTagsStatusError
+ Amazonka.CostExplorer: data UpdateCostAllocationTagsStatusResponse
+ Amazonka.CostExplorer: data UpdateCostCategoryDefinition
+ Amazonka.CostExplorer: data UpdateCostCategoryDefinitionResponse
+ Amazonka.CostExplorer: data UtilizationByTime
+ Amazonka.CostExplorer: defaultService :: Service
+ Amazonka.CostExplorer: newAnomaly :: Text -> AnomalyScore -> Impact -> Text -> Anomaly
+ Amazonka.CostExplorer: newAnomalyDateInterval :: Text -> AnomalyDateInterval
+ Amazonka.CostExplorer: newAnomalyMonitor :: Text -> MonitorType -> AnomalyMonitor
+ Amazonka.CostExplorer: newAnomalyScore :: Double -> Double -> AnomalyScore
+ Amazonka.CostExplorer: newAnomalySubscription :: AnomalySubscriptionFrequency -> Text -> AnomalySubscription
+ Amazonka.CostExplorer: newCostAllocationTag :: Text -> CostAllocationTagType -> CostAllocationTagStatus -> CostAllocationTag
+ Amazonka.CostExplorer: newCostAllocationTagStatusEntry :: Text -> CostAllocationTagStatus -> CostAllocationTagStatusEntry
+ Amazonka.CostExplorer: newCostCategory :: Text -> Text -> Text -> CostCategoryRuleVersion -> NonEmpty CostCategoryRule -> CostCategory
+ Amazonka.CostExplorer: newCostCategoryInheritedValueDimension :: CostCategoryInheritedValueDimension
+ Amazonka.CostExplorer: newCostCategoryProcessingStatus :: CostCategoryProcessingStatus
+ Amazonka.CostExplorer: newCostCategoryReference :: CostCategoryReference
+ Amazonka.CostExplorer: newCostCategoryRule :: CostCategoryRule
+ Amazonka.CostExplorer: newCostCategorySplitChargeRule :: Text -> NonEmpty Text -> CostCategorySplitChargeMethod -> CostCategorySplitChargeRule
+ Amazonka.CostExplorer: newCostCategorySplitChargeRuleParameter :: CostCategorySplitChargeRuleParameterType -> NonEmpty Text -> CostCategorySplitChargeRuleParameter
+ Amazonka.CostExplorer: newCostCategoryValues :: CostCategoryValues
+ Amazonka.CostExplorer: newCoverage :: Coverage
+ Amazonka.CostExplorer: newCoverageByTime :: CoverageByTime
+ Amazonka.CostExplorer: newCoverageCost :: CoverageCost
+ Amazonka.CostExplorer: newCoverageHours :: CoverageHours
+ Amazonka.CostExplorer: newCoverageNormalizedUnits :: CoverageNormalizedUnits
+ Amazonka.CostExplorer: newCreateAnomalyMonitor :: AnomalyMonitor -> CreateAnomalyMonitor
+ Amazonka.CostExplorer: newCreateAnomalyMonitorResponse :: Int -> Text -> CreateAnomalyMonitorResponse
+ Amazonka.CostExplorer: newCreateAnomalySubscription :: AnomalySubscription -> CreateAnomalySubscription
+ Amazonka.CostExplorer: newCreateAnomalySubscriptionResponse :: Int -> Text -> CreateAnomalySubscriptionResponse
+ Amazonka.CostExplorer: newCreateCostCategoryDefinition :: Text -> CostCategoryRuleVersion -> NonEmpty CostCategoryRule -> CreateCostCategoryDefinition
+ Amazonka.CostExplorer: newCreateCostCategoryDefinitionResponse :: Int -> CreateCostCategoryDefinitionResponse
+ Amazonka.CostExplorer: newCurrentInstance :: CurrentInstance
+ Amazonka.CostExplorer: newDateInterval :: Text -> Text -> DateInterval
+ Amazonka.CostExplorer: newDeleteAnomalyMonitor :: Text -> DeleteAnomalyMonitor
+ Amazonka.CostExplorer: newDeleteAnomalyMonitorResponse :: Int -> DeleteAnomalyMonitorResponse
+ Amazonka.CostExplorer: newDeleteAnomalySubscription :: Text -> DeleteAnomalySubscription
+ Amazonka.CostExplorer: newDeleteAnomalySubscriptionResponse :: Int -> DeleteAnomalySubscriptionResponse
+ Amazonka.CostExplorer: newDeleteCostCategoryDefinition :: Text -> DeleteCostCategoryDefinition
+ Amazonka.CostExplorer: newDeleteCostCategoryDefinitionResponse :: Int -> DeleteCostCategoryDefinitionResponse
+ Amazonka.CostExplorer: newDescribeCostCategoryDefinition :: Text -> DescribeCostCategoryDefinition
+ Amazonka.CostExplorer: newDescribeCostCategoryDefinitionResponse :: Int -> DescribeCostCategoryDefinitionResponse
+ Amazonka.CostExplorer: newDimensionValues :: DimensionValues
+ Amazonka.CostExplorer: newDimensionValuesWithAttributes :: DimensionValuesWithAttributes
+ Amazonka.CostExplorer: newDiskResourceUtilization :: DiskResourceUtilization
+ Amazonka.CostExplorer: newEBSResourceUtilization :: EBSResourceUtilization
+ Amazonka.CostExplorer: newEC2InstanceDetails :: EC2InstanceDetails
+ Amazonka.CostExplorer: newEC2ResourceDetails :: EC2ResourceDetails
+ Amazonka.CostExplorer: newEC2ResourceUtilization :: EC2ResourceUtilization
+ Amazonka.CostExplorer: newEC2Specification :: EC2Specification
+ Amazonka.CostExplorer: newESInstanceDetails :: ESInstanceDetails
+ Amazonka.CostExplorer: newElastiCacheInstanceDetails :: ElastiCacheInstanceDetails
+ Amazonka.CostExplorer: newExpression :: Expression
+ Amazonka.CostExplorer: newForecastResult :: ForecastResult
+ Amazonka.CostExplorer: newGenerationSummary :: GenerationSummary
+ Amazonka.CostExplorer: newGetAnomalies :: AnomalyDateInterval -> GetAnomalies
+ Amazonka.CostExplorer: newGetAnomaliesResponse :: Int -> GetAnomaliesResponse
+ Amazonka.CostExplorer: newGetAnomalyMonitors :: GetAnomalyMonitors
+ Amazonka.CostExplorer: newGetAnomalyMonitorsResponse :: Int -> GetAnomalyMonitorsResponse
+ Amazonka.CostExplorer: newGetAnomalySubscriptions :: GetAnomalySubscriptions
+ Amazonka.CostExplorer: newGetAnomalySubscriptionsResponse :: Int -> GetAnomalySubscriptionsResponse
+ Amazonka.CostExplorer: newGetCostAndUsage :: DateInterval -> Granularity -> GetCostAndUsage
+ Amazonka.CostExplorer: newGetCostAndUsageResponse :: Int -> GetCostAndUsageResponse
+ Amazonka.CostExplorer: newGetCostAndUsageWithResources :: DateInterval -> Granularity -> Expression -> GetCostAndUsageWithResources
+ Amazonka.CostExplorer: newGetCostAndUsageWithResourcesResponse :: Int -> GetCostAndUsageWithResourcesResponse
+ Amazonka.CostExplorer: newGetCostCategories :: DateInterval -> GetCostCategories
+ Amazonka.CostExplorer: newGetCostCategoriesResponse :: Int -> Int -> Int -> GetCostCategoriesResponse
+ Amazonka.CostExplorer: newGetCostForecast :: DateInterval -> Metric -> Granularity -> GetCostForecast
+ Amazonka.CostExplorer: newGetCostForecastResponse :: Int -> GetCostForecastResponse
+ Amazonka.CostExplorer: newGetDimensionValues :: DateInterval -> Dimension -> GetDimensionValues
+ Amazonka.CostExplorer: newGetDimensionValuesResponse :: Int -> Int -> Int -> GetDimensionValuesResponse
+ Amazonka.CostExplorer: newGetReservationCoverage :: DateInterval -> GetReservationCoverage
+ Amazonka.CostExplorer: newGetReservationCoverageResponse :: Int -> GetReservationCoverageResponse
+ Amazonka.CostExplorer: newGetReservationPurchaseRecommendation :: Text -> GetReservationPurchaseRecommendation
+ Amazonka.CostExplorer: newGetReservationPurchaseRecommendationResponse :: Int -> GetReservationPurchaseRecommendationResponse
+ Amazonka.CostExplorer: newGetReservationUtilization :: DateInterval -> GetReservationUtilization
+ Amazonka.CostExplorer: newGetReservationUtilizationResponse :: Int -> GetReservationUtilizationResponse
+ Amazonka.CostExplorer: newGetRightsizingRecommendation :: Text -> GetRightsizingRecommendation
+ Amazonka.CostExplorer: newGetRightsizingRecommendationResponse :: Int -> GetRightsizingRecommendationResponse
+ Amazonka.CostExplorer: newGetSavingsPlansCoverage :: DateInterval -> GetSavingsPlansCoverage
+ Amazonka.CostExplorer: newGetSavingsPlansCoverageResponse :: Int -> GetSavingsPlansCoverageResponse
+ Amazonka.CostExplorer: newGetSavingsPlansPurchaseRecommendation :: SupportedSavingsPlansType -> TermInYears -> PaymentOption -> LookbackPeriodInDays -> GetSavingsPlansPurchaseRecommendation
+ Amazonka.CostExplorer: newGetSavingsPlansPurchaseRecommendationResponse :: Int -> GetSavingsPlansPurchaseRecommendationResponse
+ Amazonka.CostExplorer: newGetSavingsPlansUtilization :: DateInterval -> GetSavingsPlansUtilization
+ Amazonka.CostExplorer: newGetSavingsPlansUtilizationDetails :: DateInterval -> GetSavingsPlansUtilizationDetails
+ Amazonka.CostExplorer: newGetSavingsPlansUtilizationDetailsResponse :: Int -> DateInterval -> GetSavingsPlansUtilizationDetailsResponse
+ Amazonka.CostExplorer: newGetSavingsPlansUtilizationResponse :: Int -> SavingsPlansUtilizationAggregates -> GetSavingsPlansUtilizationResponse
+ Amazonka.CostExplorer: newGetTags :: DateInterval -> GetTags
+ Amazonka.CostExplorer: newGetTagsResponse :: Int -> Int -> Int -> GetTagsResponse
+ Amazonka.CostExplorer: newGetUsageForecast :: DateInterval -> Metric -> Granularity -> GetUsageForecast
+ Amazonka.CostExplorer: newGetUsageForecastResponse :: Int -> GetUsageForecastResponse
+ Amazonka.CostExplorer: newGroup :: Group
+ Amazonka.CostExplorer: newGroupDefinition :: GroupDefinition
+ Amazonka.CostExplorer: newImpact :: Double -> Impact
+ Amazonka.CostExplorer: newInstanceDetails :: InstanceDetails
+ Amazonka.CostExplorer: newListCostAllocationTags :: ListCostAllocationTags
+ Amazonka.CostExplorer: newListCostAllocationTagsResponse :: Int -> ListCostAllocationTagsResponse
+ Amazonka.CostExplorer: newListCostCategoryDefinitions :: ListCostCategoryDefinitions
+ Amazonka.CostExplorer: newListCostCategoryDefinitionsResponse :: Int -> ListCostCategoryDefinitionsResponse
+ Amazonka.CostExplorer: newListSavingsPlansPurchaseRecommendationGeneration :: ListSavingsPlansPurchaseRecommendationGeneration
+ Amazonka.CostExplorer: newListSavingsPlansPurchaseRecommendationGenerationResponse :: Int -> ListSavingsPlansPurchaseRecommendationGenerationResponse
+ Amazonka.CostExplorer: newListTagsForResource :: Text -> ListTagsForResource
+ Amazonka.CostExplorer: newListTagsForResourceResponse :: Int -> ListTagsForResourceResponse
+ Amazonka.CostExplorer: newMetricValue :: MetricValue
+ Amazonka.CostExplorer: newModifyRecommendationDetail :: ModifyRecommendationDetail
+ Amazonka.CostExplorer: newNetworkResourceUtilization :: NetworkResourceUtilization
+ Amazonka.CostExplorer: newProvideAnomalyFeedback :: Text -> AnomalyFeedbackType -> ProvideAnomalyFeedback
+ Amazonka.CostExplorer: newProvideAnomalyFeedbackResponse :: Int -> Text -> ProvideAnomalyFeedbackResponse
+ Amazonka.CostExplorer: newRDSInstanceDetails :: RDSInstanceDetails
+ Amazonka.CostExplorer: newRedshiftInstanceDetails :: RedshiftInstanceDetails
+ Amazonka.CostExplorer: newReservationAggregates :: ReservationAggregates
+ Amazonka.CostExplorer: newReservationCoverageGroup :: ReservationCoverageGroup
+ Amazonka.CostExplorer: newReservationPurchaseRecommendation :: ReservationPurchaseRecommendation
+ Amazonka.CostExplorer: newReservationPurchaseRecommendationDetail :: ReservationPurchaseRecommendationDetail
+ Amazonka.CostExplorer: newReservationPurchaseRecommendationMetadata :: ReservationPurchaseRecommendationMetadata
+ Amazonka.CostExplorer: newReservationPurchaseRecommendationSummary :: ReservationPurchaseRecommendationSummary
+ Amazonka.CostExplorer: newReservationUtilizationGroup :: ReservationUtilizationGroup
+ Amazonka.CostExplorer: newResourceDetails :: ResourceDetails
+ Amazonka.CostExplorer: newResourceTag :: Text -> Text -> ResourceTag
+ Amazonka.CostExplorer: newResourceUtilization :: ResourceUtilization
+ Amazonka.CostExplorer: newResultByTime :: ResultByTime
+ Amazonka.CostExplorer: newRightsizingRecommendation :: RightsizingRecommendation
+ Amazonka.CostExplorer: newRightsizingRecommendationConfiguration :: RecommendationTarget -> Bool -> RightsizingRecommendationConfiguration
+ Amazonka.CostExplorer: newRightsizingRecommendationMetadata :: RightsizingRecommendationMetadata
+ Amazonka.CostExplorer: newRightsizingRecommendationSummary :: RightsizingRecommendationSummary
+ Amazonka.CostExplorer: newRootCause :: RootCause
+ Amazonka.CostExplorer: newSavingsPlansAmortizedCommitment :: SavingsPlansAmortizedCommitment
+ Amazonka.CostExplorer: newSavingsPlansCoverage :: SavingsPlansCoverage
+ Amazonka.CostExplorer: newSavingsPlansCoverageData :: SavingsPlansCoverageData
+ Amazonka.CostExplorer: newSavingsPlansDetails :: SavingsPlansDetails
+ Amazonka.CostExplorer: newSavingsPlansPurchaseRecommendation :: SavingsPlansPurchaseRecommendation
+ Amazonka.CostExplorer: newSavingsPlansPurchaseRecommendationDetail :: SavingsPlansPurchaseRecommendationDetail
+ Amazonka.CostExplorer: newSavingsPlansPurchaseRecommendationMetadata :: SavingsPlansPurchaseRecommendationMetadata
+ Amazonka.CostExplorer: newSavingsPlansPurchaseRecommendationSummary :: SavingsPlansPurchaseRecommendationSummary
+ Amazonka.CostExplorer: newSavingsPlansSavings :: SavingsPlansSavings
+ Amazonka.CostExplorer: newSavingsPlansUtilization :: SavingsPlansUtilization
+ Amazonka.CostExplorer: newSavingsPlansUtilizationAggregates :: SavingsPlansUtilization -> SavingsPlansUtilizationAggregates
+ Amazonka.CostExplorer: newSavingsPlansUtilizationByTime :: DateInterval -> SavingsPlansUtilization -> SavingsPlansUtilizationByTime
+ Amazonka.CostExplorer: newSavingsPlansUtilizationDetail :: SavingsPlansUtilizationDetail
+ Amazonka.CostExplorer: newServiceSpecification :: ServiceSpecification
+ Amazonka.CostExplorer: newSortDefinition :: Text -> SortDefinition
+ Amazonka.CostExplorer: newStartSavingsPlansPurchaseRecommendationGeneration :: StartSavingsPlansPurchaseRecommendationGeneration
+ Amazonka.CostExplorer: newStartSavingsPlansPurchaseRecommendationGenerationResponse :: Int -> StartSavingsPlansPurchaseRecommendationGenerationResponse
+ Amazonka.CostExplorer: newSubscriber :: Subscriber
+ Amazonka.CostExplorer: newTagResource :: Text -> TagResource
+ Amazonka.CostExplorer: newTagResourceResponse :: Int -> TagResourceResponse
+ Amazonka.CostExplorer: newTagValues :: TagValues
+ Amazonka.CostExplorer: newTargetInstance :: TargetInstance
+ Amazonka.CostExplorer: newTerminateRecommendationDetail :: TerminateRecommendationDetail
+ Amazonka.CostExplorer: newTotalImpactFilter :: NumericOperator -> Double -> TotalImpactFilter
+ Amazonka.CostExplorer: newUntagResource :: Text -> UntagResource
+ Amazonka.CostExplorer: newUntagResourceResponse :: Int -> UntagResourceResponse
+ Amazonka.CostExplorer: newUpdateAnomalyMonitor :: Text -> UpdateAnomalyMonitor
+ Amazonka.CostExplorer: newUpdateAnomalyMonitorResponse :: Int -> Text -> UpdateAnomalyMonitorResponse
+ Amazonka.CostExplorer: newUpdateAnomalySubscription :: Text -> UpdateAnomalySubscription
+ Amazonka.CostExplorer: newUpdateAnomalySubscriptionResponse :: Int -> Text -> UpdateAnomalySubscriptionResponse
+ Amazonka.CostExplorer: newUpdateCostAllocationTagsStatus :: NonEmpty CostAllocationTagStatusEntry -> UpdateCostAllocationTagsStatus
+ Amazonka.CostExplorer: newUpdateCostAllocationTagsStatusError :: UpdateCostAllocationTagsStatusError
+ Amazonka.CostExplorer: newUpdateCostAllocationTagsStatusResponse :: Int -> UpdateCostAllocationTagsStatusResponse
+ Amazonka.CostExplorer: newUpdateCostCategoryDefinition :: Text -> CostCategoryRuleVersion -> NonEmpty CostCategoryRule -> UpdateCostCategoryDefinition
+ Amazonka.CostExplorer: newUpdateCostCategoryDefinitionResponse :: Int -> UpdateCostCategoryDefinitionResponse
+ Amazonka.CostExplorer: newUtilizationByTime :: UtilizationByTime
+ Amazonka.CostExplorer: newtype AccountScope
+ Amazonka.CostExplorer: newtype AnomalyFeedbackType
+ Amazonka.CostExplorer: newtype AnomalySubscriptionFrequency
+ Amazonka.CostExplorer: newtype Context
+ Amazonka.CostExplorer: newtype CostAllocationTagStatus
+ Amazonka.CostExplorer: newtype CostAllocationTagType
+ Amazonka.CostExplorer: newtype CostCategoryInheritedValueDimensionName
+ Amazonka.CostExplorer: newtype CostCategoryRuleType
+ Amazonka.CostExplorer: newtype CostCategoryRuleVersion
+ Amazonka.CostExplorer: newtype CostCategorySplitChargeMethod
+ Amazonka.CostExplorer: newtype CostCategorySplitChargeRuleParameterType
+ Amazonka.CostExplorer: newtype CostCategoryStatus
+ Amazonka.CostExplorer: newtype CostCategoryStatusComponent
+ Amazonka.CostExplorer: newtype Dimension
+ Amazonka.CostExplorer: newtype FindingReasonCode
+ Amazonka.CostExplorer: newtype GenerationStatus
+ Amazonka.CostExplorer: newtype Granularity
+ Amazonka.CostExplorer: newtype GroupDefinitionType
+ Amazonka.CostExplorer: newtype LookbackPeriodInDays
+ Amazonka.CostExplorer: newtype MatchOption
+ Amazonka.CostExplorer: newtype Metric
+ Amazonka.CostExplorer: newtype MonitorDimension
+ Amazonka.CostExplorer: newtype MonitorType
+ Amazonka.CostExplorer: newtype NumericOperator
+ Amazonka.CostExplorer: newtype OfferingClass
+ Amazonka.CostExplorer: newtype PaymentOption
+ Amazonka.CostExplorer: newtype PlatformDifference
+ Amazonka.CostExplorer: newtype RecommendationTarget
+ Amazonka.CostExplorer: newtype RightsizingType
+ Amazonka.CostExplorer: newtype SavingsPlansDataType
+ Amazonka.CostExplorer: newtype SortOrder
+ Amazonka.CostExplorer: newtype SubscriberStatus
+ Amazonka.CostExplorer: newtype SubscriberType
+ Amazonka.CostExplorer: newtype SupportedSavingsPlansType
+ Amazonka.CostExplorer: newtype TermInYears
+ Amazonka.CostExplorer: pattern AccountScope_LINKED :: AccountScope
+ Amazonka.CostExplorer: pattern AccountScope_PAYER :: AccountScope
+ Amazonka.CostExplorer: pattern AnomalyFeedbackType_NO :: AnomalyFeedbackType
+ Amazonka.CostExplorer: pattern AnomalyFeedbackType_PLANNED_ACTIVITY :: AnomalyFeedbackType
+ Amazonka.CostExplorer: pattern AnomalyFeedbackType_YES :: AnomalyFeedbackType
+ Amazonka.CostExplorer: pattern AnomalySubscriptionFrequency_DAILY :: AnomalySubscriptionFrequency
+ Amazonka.CostExplorer: pattern AnomalySubscriptionFrequency_IMMEDIATE :: AnomalySubscriptionFrequency
+ Amazonka.CostExplorer: pattern AnomalySubscriptionFrequency_WEEKLY :: AnomalySubscriptionFrequency
+ Amazonka.CostExplorer: pattern Context_COST_AND_USAGE :: Context
+ Amazonka.CostExplorer: pattern Context_RESERVATIONS :: Context
+ Amazonka.CostExplorer: pattern Context_SAVINGS_PLANS :: Context
+ Amazonka.CostExplorer: pattern CostAllocationTagStatus_Active :: CostAllocationTagStatus
+ Amazonka.CostExplorer: pattern CostAllocationTagStatus_Inactive :: CostAllocationTagStatus
+ Amazonka.CostExplorer: pattern CostAllocationTagType_AWSGenerated :: CostAllocationTagType
+ Amazonka.CostExplorer: pattern CostAllocationTagType_UserDefined :: CostAllocationTagType
+ Amazonka.CostExplorer: pattern CostCategoryInheritedValueDimensionName_LINKED_ACCOUNT_NAME :: CostCategoryInheritedValueDimensionName
+ Amazonka.CostExplorer: pattern CostCategoryInheritedValueDimensionName_TAG :: CostCategoryInheritedValueDimensionName
+ Amazonka.CostExplorer: pattern CostCategoryRuleType_INHERITED_VALUE :: CostCategoryRuleType
+ Amazonka.CostExplorer: pattern CostCategoryRuleType_REGULAR :: CostCategoryRuleType
+ Amazonka.CostExplorer: pattern CostCategoryRuleVersion_CostCategoryExpression_v1 :: CostCategoryRuleVersion
+ Amazonka.CostExplorer: pattern CostCategorySplitChargeMethod_EVEN :: CostCategorySplitChargeMethod
+ Amazonka.CostExplorer: pattern CostCategorySplitChargeMethod_FIXED :: CostCategorySplitChargeMethod
+ Amazonka.CostExplorer: pattern CostCategorySplitChargeMethod_PROPORTIONAL :: CostCategorySplitChargeMethod
+ Amazonka.CostExplorer: pattern CostCategorySplitChargeRuleParameterType_ALLOCATION_PERCENTAGES :: CostCategorySplitChargeRuleParameterType
+ Amazonka.CostExplorer: pattern CostCategoryStatusComponent_COST_EXPLORER :: CostCategoryStatusComponent
+ Amazonka.CostExplorer: pattern CostCategoryStatus_APPLIED :: CostCategoryStatus
+ Amazonka.CostExplorer: pattern CostCategoryStatus_PROCESSING :: CostCategoryStatus
+ Amazonka.CostExplorer: pattern Dimension_AGREEMENT_END_DATE_TIME_AFTER :: Dimension
+ Amazonka.CostExplorer: pattern Dimension_AGREEMENT_END_DATE_TIME_BEFORE :: Dimension
+ Amazonka.CostExplorer: pattern Dimension_ANOMALY_TOTAL_IMPACT_ABSOLUTE :: Dimension
+ Amazonka.CostExplorer: pattern Dimension_ANOMALY_TOTAL_IMPACT_PERCENTAGE :: Dimension
+ Amazonka.CostExplorer: pattern Dimension_AZ :: Dimension
+ Amazonka.CostExplorer: pattern Dimension_BILLING_ENTITY :: Dimension
+ Amazonka.CostExplorer: pattern Dimension_CACHE_ENGINE :: Dimension
+ Amazonka.CostExplorer: pattern Dimension_DATABASE_ENGINE :: Dimension
+ Amazonka.CostExplorer: pattern Dimension_DEPLOYMENT_OPTION :: Dimension
+ Amazonka.CostExplorer: pattern Dimension_INSTANCE_TYPE :: Dimension
+ Amazonka.CostExplorer: pattern Dimension_INSTANCE_TYPE_FAMILY :: Dimension
+ Amazonka.CostExplorer: pattern Dimension_INVOICING_ENTITY :: Dimension
+ Amazonka.CostExplorer: pattern Dimension_LEGAL_ENTITY_NAME :: Dimension
+ Amazonka.CostExplorer: pattern Dimension_LINKED_ACCOUNT :: Dimension
+ Amazonka.CostExplorer: pattern Dimension_LINKED_ACCOUNT_NAME :: Dimension
+ Amazonka.CostExplorer: pattern Dimension_OPERATING_SYSTEM :: Dimension
+ Amazonka.CostExplorer: pattern Dimension_OPERATION :: Dimension
+ Amazonka.CostExplorer: pattern Dimension_PAYMENT_OPTION :: Dimension
+ Amazonka.CostExplorer: pattern Dimension_PLATFORM :: Dimension
+ Amazonka.CostExplorer: pattern Dimension_PURCHASE_TYPE :: Dimension
+ Amazonka.CostExplorer: pattern Dimension_RECORD_TYPE :: Dimension
+ Amazonka.CostExplorer: pattern Dimension_REGION :: Dimension
+ Amazonka.CostExplorer: pattern Dimension_RESERVATION_ID :: Dimension
+ Amazonka.CostExplorer: pattern Dimension_RESOURCE_ID :: Dimension
+ Amazonka.CostExplorer: pattern Dimension_RIGHTSIZING_TYPE :: Dimension
+ Amazonka.CostExplorer: pattern Dimension_SAVINGS_PLANS_TYPE :: Dimension
+ Amazonka.CostExplorer: pattern Dimension_SAVINGS_PLAN_ARN :: Dimension
+ Amazonka.CostExplorer: pattern Dimension_SCOPE :: Dimension
+ Amazonka.CostExplorer: pattern Dimension_SERVICE :: Dimension
+ Amazonka.CostExplorer: pattern Dimension_SERVICE_CODE :: Dimension
+ Amazonka.CostExplorer: pattern Dimension_SUBSCRIPTION_ID :: Dimension
+ Amazonka.CostExplorer: pattern Dimension_TENANCY :: Dimension
+ Amazonka.CostExplorer: pattern Dimension_USAGE_TYPE :: Dimension
+ Amazonka.CostExplorer: pattern Dimension_USAGE_TYPE_GROUP :: Dimension
+ Amazonka.CostExplorer: pattern FindingReasonCode_CPU_OVER_PROVISIONED :: FindingReasonCode
+ Amazonka.CostExplorer: pattern FindingReasonCode_CPU_UNDER_PROVISIONED :: FindingReasonCode
+ Amazonka.CostExplorer: pattern FindingReasonCode_DISK_IOPS_OVER_PROVISIONED :: FindingReasonCode
+ Amazonka.CostExplorer: pattern FindingReasonCode_DISK_IOPS_UNDER_PROVISIONED :: FindingReasonCode
+ Amazonka.CostExplorer: pattern FindingReasonCode_DISK_THROUGHPUT_OVER_PROVISIONED :: FindingReasonCode
+ Amazonka.CostExplorer: pattern FindingReasonCode_DISK_THROUGHPUT_UNDER_PROVISIONED :: FindingReasonCode
+ Amazonka.CostExplorer: pattern FindingReasonCode_EBS_IOPS_OVER_PROVISIONED :: FindingReasonCode
+ Amazonka.CostExplorer: pattern FindingReasonCode_EBS_IOPS_UNDER_PROVISIONED :: FindingReasonCode
+ Amazonka.CostExplorer: pattern FindingReasonCode_EBS_THROUGHPUT_OVER_PROVISIONED :: FindingReasonCode
+ Amazonka.CostExplorer: pattern FindingReasonCode_EBS_THROUGHPUT_UNDER_PROVISIONED :: FindingReasonCode
+ Amazonka.CostExplorer: pattern FindingReasonCode_MEMORY_OVER_PROVISIONED :: FindingReasonCode
+ Amazonka.CostExplorer: pattern FindingReasonCode_MEMORY_UNDER_PROVISIONED :: FindingReasonCode
+ Amazonka.CostExplorer: pattern FindingReasonCode_NETWORK_BANDWIDTH_OVER_PROVISIONED :: FindingReasonCode
+ Amazonka.CostExplorer: pattern FindingReasonCode_NETWORK_BANDWIDTH_UNDER_PROVISIONED :: FindingReasonCode
+ Amazonka.CostExplorer: pattern FindingReasonCode_NETWORK_PPS_OVER_PROVISIONED :: FindingReasonCode
+ Amazonka.CostExplorer: pattern FindingReasonCode_NETWORK_PPS_UNDER_PROVISIONED :: FindingReasonCode
+ Amazonka.CostExplorer: pattern GenerationStatus_FAILED :: GenerationStatus
+ Amazonka.CostExplorer: pattern GenerationStatus_PROCESSING :: GenerationStatus
+ Amazonka.CostExplorer: pattern GenerationStatus_SUCCEEDED :: GenerationStatus
+ Amazonka.CostExplorer: pattern Granularity_DAILY :: Granularity
+ Amazonka.CostExplorer: pattern Granularity_HOURLY :: Granularity
+ Amazonka.CostExplorer: pattern Granularity_MONTHLY :: Granularity
+ Amazonka.CostExplorer: pattern GroupDefinitionType_COST_CATEGORY :: GroupDefinitionType
+ Amazonka.CostExplorer: pattern GroupDefinitionType_DIMENSION :: GroupDefinitionType
+ Amazonka.CostExplorer: pattern GroupDefinitionType_TAG :: GroupDefinitionType
+ Amazonka.CostExplorer: pattern LookbackPeriodInDays_SEVEN_DAYS :: LookbackPeriodInDays
+ Amazonka.CostExplorer: pattern LookbackPeriodInDays_SIXTY_DAYS :: LookbackPeriodInDays
+ Amazonka.CostExplorer: pattern LookbackPeriodInDays_THIRTY_DAYS :: LookbackPeriodInDays
+ Amazonka.CostExplorer: pattern MatchOption_ABSENT :: MatchOption
+ Amazonka.CostExplorer: pattern MatchOption_CASE_INSENSITIVE :: MatchOption
+ Amazonka.CostExplorer: pattern MatchOption_CASE_SENSITIVE :: MatchOption
+ Amazonka.CostExplorer: pattern MatchOption_CONTAINS :: MatchOption
+ Amazonka.CostExplorer: pattern MatchOption_ENDS_WITH :: MatchOption
+ Amazonka.CostExplorer: pattern MatchOption_EQUALS :: MatchOption
+ Amazonka.CostExplorer: pattern MatchOption_GREATER_THAN_OR_EQUAL :: MatchOption
+ Amazonka.CostExplorer: pattern MatchOption_STARTS_WITH :: MatchOption
+ Amazonka.CostExplorer: pattern Metric_AMORTIZED_COST :: Metric
+ Amazonka.CostExplorer: pattern Metric_BLENDED_COST :: Metric
+ Amazonka.CostExplorer: pattern Metric_NET_AMORTIZED_COST :: Metric
+ Amazonka.CostExplorer: pattern Metric_NET_UNBLENDED_COST :: Metric
+ Amazonka.CostExplorer: pattern Metric_NORMALIZED_USAGE_AMOUNT :: Metric
+ Amazonka.CostExplorer: pattern Metric_UNBLENDED_COST :: Metric
+ Amazonka.CostExplorer: pattern Metric_USAGE_QUANTITY :: Metric
+ Amazonka.CostExplorer: pattern MonitorDimension_SERVICE :: MonitorDimension
+ Amazonka.CostExplorer: pattern MonitorType_CUSTOM :: MonitorType
+ Amazonka.CostExplorer: pattern MonitorType_DIMENSIONAL :: MonitorType
+ Amazonka.CostExplorer: pattern NumericOperator_BETWEEN :: NumericOperator
+ Amazonka.CostExplorer: pattern NumericOperator_EQUAL :: NumericOperator
+ Amazonka.CostExplorer: pattern NumericOperator_GREATER_THAN :: NumericOperator
+ Amazonka.CostExplorer: pattern NumericOperator_GREATER_THAN_OR_EQUAL :: NumericOperator
+ Amazonka.CostExplorer: pattern NumericOperator_LESS_THAN :: NumericOperator
+ Amazonka.CostExplorer: pattern NumericOperator_LESS_THAN_OR_EQUAL :: NumericOperator
+ Amazonka.CostExplorer: pattern OfferingClass_CONVERTIBLE :: OfferingClass
+ Amazonka.CostExplorer: pattern OfferingClass_STANDARD :: OfferingClass
+ Amazonka.CostExplorer: pattern PaymentOption_ALL_UPFRONT :: PaymentOption
+ Amazonka.CostExplorer: pattern PaymentOption_HEAVY_UTILIZATION :: PaymentOption
+ Amazonka.CostExplorer: pattern PaymentOption_LIGHT_UTILIZATION :: PaymentOption
+ Amazonka.CostExplorer: pattern PaymentOption_MEDIUM_UTILIZATION :: PaymentOption
+ Amazonka.CostExplorer: pattern PaymentOption_NO_UPFRONT :: PaymentOption
+ Amazonka.CostExplorer: pattern PaymentOption_PARTIAL_UPFRONT :: PaymentOption
+ Amazonka.CostExplorer: pattern PlatformDifference_HYPERVISOR :: PlatformDifference
+ Amazonka.CostExplorer: pattern PlatformDifference_INSTANCE_STORE_AVAILABILITY :: PlatformDifference
+ Amazonka.CostExplorer: pattern PlatformDifference_NETWORK_INTERFACE :: PlatformDifference
+ Amazonka.CostExplorer: pattern PlatformDifference_STORAGE_INTERFACE :: PlatformDifference
+ Amazonka.CostExplorer: pattern PlatformDifference_VIRTUALIZATION_TYPE :: PlatformDifference
+ Amazonka.CostExplorer: pattern RecommendationTarget_CROSS_INSTANCE_FAMILY :: RecommendationTarget
+ Amazonka.CostExplorer: pattern RecommendationTarget_SAME_INSTANCE_FAMILY :: RecommendationTarget
+ Amazonka.CostExplorer: pattern RightsizingType_MODIFY :: RightsizingType
+ Amazonka.CostExplorer: pattern RightsizingType_TERMINATE :: RightsizingType
+ Amazonka.CostExplorer: pattern SavingsPlansDataType_AMORTIZED_COMMITMENT :: SavingsPlansDataType
+ Amazonka.CostExplorer: pattern SavingsPlansDataType_ATTRIBUTES :: SavingsPlansDataType
+ Amazonka.CostExplorer: pattern SavingsPlansDataType_SAVINGS :: SavingsPlansDataType
+ Amazonka.CostExplorer: pattern SavingsPlansDataType_UTILIZATION :: SavingsPlansDataType
+ Amazonka.CostExplorer: pattern SortOrder_ASCENDING :: SortOrder
+ Amazonka.CostExplorer: pattern SortOrder_DESCENDING :: SortOrder
+ Amazonka.CostExplorer: pattern SubscriberStatus_CONFIRMED :: SubscriberStatus
+ Amazonka.CostExplorer: pattern SubscriberStatus_DECLINED :: SubscriberStatus
+ Amazonka.CostExplorer: pattern SubscriberType_EMAIL :: SubscriberType
+ Amazonka.CostExplorer: pattern SubscriberType_SNS :: SubscriberType
+ Amazonka.CostExplorer: pattern SupportedSavingsPlansType_COMPUTE_SP :: SupportedSavingsPlansType
+ Amazonka.CostExplorer: pattern SupportedSavingsPlansType_EC2_INSTANCE_SP :: SupportedSavingsPlansType
+ Amazonka.CostExplorer: pattern SupportedSavingsPlansType_SAGEMAKER_SP :: SupportedSavingsPlansType
+ Amazonka.CostExplorer: pattern TermInYears_ONE_YEAR :: TermInYears
+ Amazonka.CostExplorer: pattern TermInYears_THREE_YEARS :: TermInYears
+ Amazonka.CostExplorer.CreateAnomalyMonitor: CreateAnomalyMonitor' :: Maybe [ResourceTag] -> AnomalyMonitor -> CreateAnomalyMonitor
+ Amazonka.CostExplorer.CreateAnomalyMonitor: CreateAnomalyMonitorResponse' :: Int -> Text -> CreateAnomalyMonitorResponse
+ Amazonka.CostExplorer.CreateAnomalyMonitor: [$sel:anomalyMonitor:CreateAnomalyMonitor'] :: CreateAnomalyMonitor -> AnomalyMonitor
+ Amazonka.CostExplorer.CreateAnomalyMonitor: [$sel:httpStatus:CreateAnomalyMonitorResponse'] :: CreateAnomalyMonitorResponse -> Int
+ Amazonka.CostExplorer.CreateAnomalyMonitor: [$sel:monitorArn:CreateAnomalyMonitorResponse'] :: CreateAnomalyMonitorResponse -> Text
+ Amazonka.CostExplorer.CreateAnomalyMonitor: [$sel:resourceTags:CreateAnomalyMonitor'] :: CreateAnomalyMonitor -> Maybe [ResourceTag]
+ Amazonka.CostExplorer.CreateAnomalyMonitor: createAnomalyMonitorResponse_httpStatus :: Lens' CreateAnomalyMonitorResponse Int
+ Amazonka.CostExplorer.CreateAnomalyMonitor: createAnomalyMonitorResponse_monitorArn :: Lens' CreateAnomalyMonitorResponse Text
+ Amazonka.CostExplorer.CreateAnomalyMonitor: createAnomalyMonitor_anomalyMonitor :: Lens' CreateAnomalyMonitor AnomalyMonitor
+ Amazonka.CostExplorer.CreateAnomalyMonitor: createAnomalyMonitor_resourceTags :: Lens' CreateAnomalyMonitor (Maybe [ResourceTag])
+ Amazonka.CostExplorer.CreateAnomalyMonitor: data CreateAnomalyMonitor
+ Amazonka.CostExplorer.CreateAnomalyMonitor: data CreateAnomalyMonitorResponse
+ Amazonka.CostExplorer.CreateAnomalyMonitor: instance Amazonka.Data.Headers.ToHeaders Amazonka.CostExplorer.CreateAnomalyMonitor.CreateAnomalyMonitor
+ Amazonka.CostExplorer.CreateAnomalyMonitor: instance Amazonka.Data.Path.ToPath Amazonka.CostExplorer.CreateAnomalyMonitor.CreateAnomalyMonitor
+ Amazonka.CostExplorer.CreateAnomalyMonitor: instance Amazonka.Data.Query.ToQuery Amazonka.CostExplorer.CreateAnomalyMonitor.CreateAnomalyMonitor
+ Amazonka.CostExplorer.CreateAnomalyMonitor: instance Amazonka.Types.AWSRequest Amazonka.CostExplorer.CreateAnomalyMonitor.CreateAnomalyMonitor
+ Amazonka.CostExplorer.CreateAnomalyMonitor: instance Control.DeepSeq.NFData Amazonka.CostExplorer.CreateAnomalyMonitor.CreateAnomalyMonitor
+ Amazonka.CostExplorer.CreateAnomalyMonitor: instance Control.DeepSeq.NFData Amazonka.CostExplorer.CreateAnomalyMonitor.CreateAnomalyMonitorResponse
+ Amazonka.CostExplorer.CreateAnomalyMonitor: instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.CostExplorer.CreateAnomalyMonitor.CreateAnomalyMonitor
+ Amazonka.CostExplorer.CreateAnomalyMonitor: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.CreateAnomalyMonitor.CreateAnomalyMonitor
+ Amazonka.CostExplorer.CreateAnomalyMonitor: instance GHC.Classes.Eq Amazonka.CostExplorer.CreateAnomalyMonitor.CreateAnomalyMonitor
+ Amazonka.CostExplorer.CreateAnomalyMonitor: instance GHC.Classes.Eq Amazonka.CostExplorer.CreateAnomalyMonitor.CreateAnomalyMonitorResponse
+ Amazonka.CostExplorer.CreateAnomalyMonitor: instance GHC.Generics.Generic Amazonka.CostExplorer.CreateAnomalyMonitor.CreateAnomalyMonitor
+ Amazonka.CostExplorer.CreateAnomalyMonitor: instance GHC.Generics.Generic Amazonka.CostExplorer.CreateAnomalyMonitor.CreateAnomalyMonitorResponse
+ Amazonka.CostExplorer.CreateAnomalyMonitor: instance GHC.Read.Read Amazonka.CostExplorer.CreateAnomalyMonitor.CreateAnomalyMonitor
+ Amazonka.CostExplorer.CreateAnomalyMonitor: instance GHC.Read.Read Amazonka.CostExplorer.CreateAnomalyMonitor.CreateAnomalyMonitorResponse
+ Amazonka.CostExplorer.CreateAnomalyMonitor: instance GHC.Show.Show Amazonka.CostExplorer.CreateAnomalyMonitor.CreateAnomalyMonitor
+ Amazonka.CostExplorer.CreateAnomalyMonitor: instance GHC.Show.Show Amazonka.CostExplorer.CreateAnomalyMonitor.CreateAnomalyMonitorResponse
+ Amazonka.CostExplorer.CreateAnomalyMonitor: newCreateAnomalyMonitor :: AnomalyMonitor -> CreateAnomalyMonitor
+ Amazonka.CostExplorer.CreateAnomalyMonitor: newCreateAnomalyMonitorResponse :: Int -> Text -> CreateAnomalyMonitorResponse
+ Amazonka.CostExplorer.CreateAnomalySubscription: CreateAnomalySubscription' :: Maybe [ResourceTag] -> AnomalySubscription -> CreateAnomalySubscription
+ Amazonka.CostExplorer.CreateAnomalySubscription: CreateAnomalySubscriptionResponse' :: Int -> Text -> CreateAnomalySubscriptionResponse
+ Amazonka.CostExplorer.CreateAnomalySubscription: [$sel:anomalySubscription:CreateAnomalySubscription'] :: CreateAnomalySubscription -> AnomalySubscription
+ Amazonka.CostExplorer.CreateAnomalySubscription: [$sel:httpStatus:CreateAnomalySubscriptionResponse'] :: CreateAnomalySubscriptionResponse -> Int
+ Amazonka.CostExplorer.CreateAnomalySubscription: [$sel:resourceTags:CreateAnomalySubscription'] :: CreateAnomalySubscription -> Maybe [ResourceTag]
+ Amazonka.CostExplorer.CreateAnomalySubscription: [$sel:subscriptionArn:CreateAnomalySubscriptionResponse'] :: CreateAnomalySubscriptionResponse -> Text
+ Amazonka.CostExplorer.CreateAnomalySubscription: createAnomalySubscriptionResponse_httpStatus :: Lens' CreateAnomalySubscriptionResponse Int
+ Amazonka.CostExplorer.CreateAnomalySubscription: createAnomalySubscriptionResponse_subscriptionArn :: Lens' CreateAnomalySubscriptionResponse Text
+ Amazonka.CostExplorer.CreateAnomalySubscription: createAnomalySubscription_anomalySubscription :: Lens' CreateAnomalySubscription AnomalySubscription
+ Amazonka.CostExplorer.CreateAnomalySubscription: createAnomalySubscription_resourceTags :: Lens' CreateAnomalySubscription (Maybe [ResourceTag])
+ Amazonka.CostExplorer.CreateAnomalySubscription: data CreateAnomalySubscription
+ Amazonka.CostExplorer.CreateAnomalySubscription: data CreateAnomalySubscriptionResponse
+ Amazonka.CostExplorer.CreateAnomalySubscription: instance Amazonka.Data.Headers.ToHeaders Amazonka.CostExplorer.CreateAnomalySubscription.CreateAnomalySubscription
+ Amazonka.CostExplorer.CreateAnomalySubscription: instance Amazonka.Data.Path.ToPath Amazonka.CostExplorer.CreateAnomalySubscription.CreateAnomalySubscription
+ Amazonka.CostExplorer.CreateAnomalySubscription: instance Amazonka.Data.Query.ToQuery Amazonka.CostExplorer.CreateAnomalySubscription.CreateAnomalySubscription
+ Amazonka.CostExplorer.CreateAnomalySubscription: instance Amazonka.Types.AWSRequest Amazonka.CostExplorer.CreateAnomalySubscription.CreateAnomalySubscription
+ Amazonka.CostExplorer.CreateAnomalySubscription: instance Control.DeepSeq.NFData Amazonka.CostExplorer.CreateAnomalySubscription.CreateAnomalySubscription
+ Amazonka.CostExplorer.CreateAnomalySubscription: instance Control.DeepSeq.NFData Amazonka.CostExplorer.CreateAnomalySubscription.CreateAnomalySubscriptionResponse
+ Amazonka.CostExplorer.CreateAnomalySubscription: instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.CostExplorer.CreateAnomalySubscription.CreateAnomalySubscription
+ Amazonka.CostExplorer.CreateAnomalySubscription: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.CreateAnomalySubscription.CreateAnomalySubscription
+ Amazonka.CostExplorer.CreateAnomalySubscription: instance GHC.Classes.Eq Amazonka.CostExplorer.CreateAnomalySubscription.CreateAnomalySubscription
+ Amazonka.CostExplorer.CreateAnomalySubscription: instance GHC.Classes.Eq Amazonka.CostExplorer.CreateAnomalySubscription.CreateAnomalySubscriptionResponse
+ Amazonka.CostExplorer.CreateAnomalySubscription: instance GHC.Generics.Generic Amazonka.CostExplorer.CreateAnomalySubscription.CreateAnomalySubscription
+ Amazonka.CostExplorer.CreateAnomalySubscription: instance GHC.Generics.Generic Amazonka.CostExplorer.CreateAnomalySubscription.CreateAnomalySubscriptionResponse
+ Amazonka.CostExplorer.CreateAnomalySubscription: instance GHC.Read.Read Amazonka.CostExplorer.CreateAnomalySubscription.CreateAnomalySubscription
+ Amazonka.CostExplorer.CreateAnomalySubscription: instance GHC.Read.Read Amazonka.CostExplorer.CreateAnomalySubscription.CreateAnomalySubscriptionResponse
+ Amazonka.CostExplorer.CreateAnomalySubscription: instance GHC.Show.Show Amazonka.CostExplorer.CreateAnomalySubscription.CreateAnomalySubscription
+ Amazonka.CostExplorer.CreateAnomalySubscription: instance GHC.Show.Show Amazonka.CostExplorer.CreateAnomalySubscription.CreateAnomalySubscriptionResponse
+ Amazonka.CostExplorer.CreateAnomalySubscription: newCreateAnomalySubscription :: AnomalySubscription -> CreateAnomalySubscription
+ Amazonka.CostExplorer.CreateAnomalySubscription: newCreateAnomalySubscriptionResponse :: Int -> Text -> CreateAnomalySubscriptionResponse
+ Amazonka.CostExplorer.CreateCostCategoryDefinition: CreateCostCategoryDefinition' :: Maybe Text -> Maybe Text -> Maybe [ResourceTag] -> Maybe (NonEmpty CostCategorySplitChargeRule) -> Text -> CostCategoryRuleVersion -> NonEmpty CostCategoryRule -> CreateCostCategoryDefinition
+ Amazonka.CostExplorer.CreateCostCategoryDefinition: CreateCostCategoryDefinitionResponse' :: Maybe Text -> Maybe Text -> Int -> CreateCostCategoryDefinitionResponse
+ Amazonka.CostExplorer.CreateCostCategoryDefinition: [$sel:costCategoryArn:CreateCostCategoryDefinitionResponse'] :: CreateCostCategoryDefinitionResponse -> Maybe Text
+ Amazonka.CostExplorer.CreateCostCategoryDefinition: [$sel:defaultValue:CreateCostCategoryDefinition'] :: CreateCostCategoryDefinition -> Maybe Text
+ Amazonka.CostExplorer.CreateCostCategoryDefinition: [$sel:effectiveStart:CreateCostCategoryDefinition'] :: CreateCostCategoryDefinition -> Maybe Text
+ Amazonka.CostExplorer.CreateCostCategoryDefinition: [$sel:effectiveStart:CreateCostCategoryDefinitionResponse'] :: CreateCostCategoryDefinitionResponse -> Maybe Text
+ Amazonka.CostExplorer.CreateCostCategoryDefinition: [$sel:httpStatus:CreateCostCategoryDefinitionResponse'] :: CreateCostCategoryDefinitionResponse -> Int
+ Amazonka.CostExplorer.CreateCostCategoryDefinition: [$sel:name:CreateCostCategoryDefinition'] :: CreateCostCategoryDefinition -> Text
+ Amazonka.CostExplorer.CreateCostCategoryDefinition: [$sel:resourceTags:CreateCostCategoryDefinition'] :: CreateCostCategoryDefinition -> Maybe [ResourceTag]
+ Amazonka.CostExplorer.CreateCostCategoryDefinition: [$sel:ruleVersion:CreateCostCategoryDefinition'] :: CreateCostCategoryDefinition -> CostCategoryRuleVersion
+ Amazonka.CostExplorer.CreateCostCategoryDefinition: [$sel:rules:CreateCostCategoryDefinition'] :: CreateCostCategoryDefinition -> NonEmpty CostCategoryRule
+ Amazonka.CostExplorer.CreateCostCategoryDefinition: [$sel:splitChargeRules:CreateCostCategoryDefinition'] :: CreateCostCategoryDefinition -> Maybe (NonEmpty CostCategorySplitChargeRule)
+ Amazonka.CostExplorer.CreateCostCategoryDefinition: createCostCategoryDefinitionResponse_costCategoryArn :: Lens' CreateCostCategoryDefinitionResponse (Maybe Text)
+ Amazonka.CostExplorer.CreateCostCategoryDefinition: createCostCategoryDefinitionResponse_effectiveStart :: Lens' CreateCostCategoryDefinitionResponse (Maybe Text)
+ Amazonka.CostExplorer.CreateCostCategoryDefinition: createCostCategoryDefinitionResponse_httpStatus :: Lens' CreateCostCategoryDefinitionResponse Int
+ Amazonka.CostExplorer.CreateCostCategoryDefinition: createCostCategoryDefinition_defaultValue :: Lens' CreateCostCategoryDefinition (Maybe Text)
+ Amazonka.CostExplorer.CreateCostCategoryDefinition: createCostCategoryDefinition_effectiveStart :: Lens' CreateCostCategoryDefinition (Maybe Text)
+ Amazonka.CostExplorer.CreateCostCategoryDefinition: createCostCategoryDefinition_name :: Lens' CreateCostCategoryDefinition Text
+ Amazonka.CostExplorer.CreateCostCategoryDefinition: createCostCategoryDefinition_resourceTags :: Lens' CreateCostCategoryDefinition (Maybe [ResourceTag])
+ Amazonka.CostExplorer.CreateCostCategoryDefinition: createCostCategoryDefinition_ruleVersion :: Lens' CreateCostCategoryDefinition CostCategoryRuleVersion
+ Amazonka.CostExplorer.CreateCostCategoryDefinition: createCostCategoryDefinition_rules :: Lens' CreateCostCategoryDefinition (NonEmpty CostCategoryRule)
+ Amazonka.CostExplorer.CreateCostCategoryDefinition: createCostCategoryDefinition_splitChargeRules :: Lens' CreateCostCategoryDefinition (Maybe (NonEmpty CostCategorySplitChargeRule))
+ Amazonka.CostExplorer.CreateCostCategoryDefinition: data CreateCostCategoryDefinition
+ Amazonka.CostExplorer.CreateCostCategoryDefinition: data CreateCostCategoryDefinitionResponse
+ Amazonka.CostExplorer.CreateCostCategoryDefinition: instance Amazonka.Data.Headers.ToHeaders Amazonka.CostExplorer.CreateCostCategoryDefinition.CreateCostCategoryDefinition
+ Amazonka.CostExplorer.CreateCostCategoryDefinition: instance Amazonka.Data.Path.ToPath Amazonka.CostExplorer.CreateCostCategoryDefinition.CreateCostCategoryDefinition
+ Amazonka.CostExplorer.CreateCostCategoryDefinition: instance Amazonka.Data.Query.ToQuery Amazonka.CostExplorer.CreateCostCategoryDefinition.CreateCostCategoryDefinition
+ Amazonka.CostExplorer.CreateCostCategoryDefinition: instance Amazonka.Types.AWSRequest Amazonka.CostExplorer.CreateCostCategoryDefinition.CreateCostCategoryDefinition
+ Amazonka.CostExplorer.CreateCostCategoryDefinition: instance Control.DeepSeq.NFData Amazonka.CostExplorer.CreateCostCategoryDefinition.CreateCostCategoryDefinition
+ Amazonka.CostExplorer.CreateCostCategoryDefinition: instance Control.DeepSeq.NFData Amazonka.CostExplorer.CreateCostCategoryDefinition.CreateCostCategoryDefinitionResponse
+ Amazonka.CostExplorer.CreateCostCategoryDefinition: instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.CostExplorer.CreateCostCategoryDefinition.CreateCostCategoryDefinition
+ Amazonka.CostExplorer.CreateCostCategoryDefinition: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.CreateCostCategoryDefinition.CreateCostCategoryDefinition
+ Amazonka.CostExplorer.CreateCostCategoryDefinition: instance GHC.Classes.Eq Amazonka.CostExplorer.CreateCostCategoryDefinition.CreateCostCategoryDefinition
+ Amazonka.CostExplorer.CreateCostCategoryDefinition: instance GHC.Classes.Eq Amazonka.CostExplorer.CreateCostCategoryDefinition.CreateCostCategoryDefinitionResponse
+ Amazonka.CostExplorer.CreateCostCategoryDefinition: instance GHC.Generics.Generic Amazonka.CostExplorer.CreateCostCategoryDefinition.CreateCostCategoryDefinition
+ Amazonka.CostExplorer.CreateCostCategoryDefinition: instance GHC.Generics.Generic Amazonka.CostExplorer.CreateCostCategoryDefinition.CreateCostCategoryDefinitionResponse
+ Amazonka.CostExplorer.CreateCostCategoryDefinition: instance GHC.Read.Read Amazonka.CostExplorer.CreateCostCategoryDefinition.CreateCostCategoryDefinition
+ Amazonka.CostExplorer.CreateCostCategoryDefinition: instance GHC.Read.Read Amazonka.CostExplorer.CreateCostCategoryDefinition.CreateCostCategoryDefinitionResponse
+ Amazonka.CostExplorer.CreateCostCategoryDefinition: instance GHC.Show.Show Amazonka.CostExplorer.CreateCostCategoryDefinition.CreateCostCategoryDefinition
+ Amazonka.CostExplorer.CreateCostCategoryDefinition: instance GHC.Show.Show Amazonka.CostExplorer.CreateCostCategoryDefinition.CreateCostCategoryDefinitionResponse
+ Amazonka.CostExplorer.CreateCostCategoryDefinition: newCreateCostCategoryDefinition :: Text -> CostCategoryRuleVersion -> NonEmpty CostCategoryRule -> CreateCostCategoryDefinition
+ Amazonka.CostExplorer.CreateCostCategoryDefinition: newCreateCostCategoryDefinitionResponse :: Int -> CreateCostCategoryDefinitionResponse
+ Amazonka.CostExplorer.DeleteAnomalyMonitor: DeleteAnomalyMonitor' :: Text -> DeleteAnomalyMonitor
+ Amazonka.CostExplorer.DeleteAnomalyMonitor: DeleteAnomalyMonitorResponse' :: Int -> DeleteAnomalyMonitorResponse
+ Amazonka.CostExplorer.DeleteAnomalyMonitor: [$sel:httpStatus:DeleteAnomalyMonitorResponse'] :: DeleteAnomalyMonitorResponse -> Int
+ Amazonka.CostExplorer.DeleteAnomalyMonitor: [$sel:monitorArn:DeleteAnomalyMonitor'] :: DeleteAnomalyMonitor -> Text
+ Amazonka.CostExplorer.DeleteAnomalyMonitor: data DeleteAnomalyMonitor
+ Amazonka.CostExplorer.DeleteAnomalyMonitor: data DeleteAnomalyMonitorResponse
+ Amazonka.CostExplorer.DeleteAnomalyMonitor: deleteAnomalyMonitorResponse_httpStatus :: Lens' DeleteAnomalyMonitorResponse Int
+ Amazonka.CostExplorer.DeleteAnomalyMonitor: deleteAnomalyMonitor_monitorArn :: Lens' DeleteAnomalyMonitor Text
+ Amazonka.CostExplorer.DeleteAnomalyMonitor: instance Amazonka.Data.Headers.ToHeaders Amazonka.CostExplorer.DeleteAnomalyMonitor.DeleteAnomalyMonitor
+ Amazonka.CostExplorer.DeleteAnomalyMonitor: instance Amazonka.Data.Path.ToPath Amazonka.CostExplorer.DeleteAnomalyMonitor.DeleteAnomalyMonitor
+ Amazonka.CostExplorer.DeleteAnomalyMonitor: instance Amazonka.Data.Query.ToQuery Amazonka.CostExplorer.DeleteAnomalyMonitor.DeleteAnomalyMonitor
+ Amazonka.CostExplorer.DeleteAnomalyMonitor: instance Amazonka.Types.AWSRequest Amazonka.CostExplorer.DeleteAnomalyMonitor.DeleteAnomalyMonitor
+ Amazonka.CostExplorer.DeleteAnomalyMonitor: instance Control.DeepSeq.NFData Amazonka.CostExplorer.DeleteAnomalyMonitor.DeleteAnomalyMonitor
+ Amazonka.CostExplorer.DeleteAnomalyMonitor: instance Control.DeepSeq.NFData Amazonka.CostExplorer.DeleteAnomalyMonitor.DeleteAnomalyMonitorResponse
+ Amazonka.CostExplorer.DeleteAnomalyMonitor: instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.CostExplorer.DeleteAnomalyMonitor.DeleteAnomalyMonitor
+ Amazonka.CostExplorer.DeleteAnomalyMonitor: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.DeleteAnomalyMonitor.DeleteAnomalyMonitor
+ Amazonka.CostExplorer.DeleteAnomalyMonitor: instance GHC.Classes.Eq Amazonka.CostExplorer.DeleteAnomalyMonitor.DeleteAnomalyMonitor
+ Amazonka.CostExplorer.DeleteAnomalyMonitor: instance GHC.Classes.Eq Amazonka.CostExplorer.DeleteAnomalyMonitor.DeleteAnomalyMonitorResponse
+ Amazonka.CostExplorer.DeleteAnomalyMonitor: instance GHC.Generics.Generic Amazonka.CostExplorer.DeleteAnomalyMonitor.DeleteAnomalyMonitor
+ Amazonka.CostExplorer.DeleteAnomalyMonitor: instance GHC.Generics.Generic Amazonka.CostExplorer.DeleteAnomalyMonitor.DeleteAnomalyMonitorResponse
+ Amazonka.CostExplorer.DeleteAnomalyMonitor: instance GHC.Read.Read Amazonka.CostExplorer.DeleteAnomalyMonitor.DeleteAnomalyMonitor
+ Amazonka.CostExplorer.DeleteAnomalyMonitor: instance GHC.Read.Read Amazonka.CostExplorer.DeleteAnomalyMonitor.DeleteAnomalyMonitorResponse
+ Amazonka.CostExplorer.DeleteAnomalyMonitor: instance GHC.Show.Show Amazonka.CostExplorer.DeleteAnomalyMonitor.DeleteAnomalyMonitor
+ Amazonka.CostExplorer.DeleteAnomalyMonitor: instance GHC.Show.Show Amazonka.CostExplorer.DeleteAnomalyMonitor.DeleteAnomalyMonitorResponse
+ Amazonka.CostExplorer.DeleteAnomalyMonitor: newDeleteAnomalyMonitor :: Text -> DeleteAnomalyMonitor
+ Amazonka.CostExplorer.DeleteAnomalyMonitor: newDeleteAnomalyMonitorResponse :: Int -> DeleteAnomalyMonitorResponse
+ Amazonka.CostExplorer.DeleteAnomalySubscription: DeleteAnomalySubscription' :: Text -> DeleteAnomalySubscription
+ Amazonka.CostExplorer.DeleteAnomalySubscription: DeleteAnomalySubscriptionResponse' :: Int -> DeleteAnomalySubscriptionResponse
+ Amazonka.CostExplorer.DeleteAnomalySubscription: [$sel:httpStatus:DeleteAnomalySubscriptionResponse'] :: DeleteAnomalySubscriptionResponse -> Int
+ Amazonka.CostExplorer.DeleteAnomalySubscription: [$sel:subscriptionArn:DeleteAnomalySubscription'] :: DeleteAnomalySubscription -> Text
+ Amazonka.CostExplorer.DeleteAnomalySubscription: data DeleteAnomalySubscription
+ Amazonka.CostExplorer.DeleteAnomalySubscription: data DeleteAnomalySubscriptionResponse
+ Amazonka.CostExplorer.DeleteAnomalySubscription: deleteAnomalySubscriptionResponse_httpStatus :: Lens' DeleteAnomalySubscriptionResponse Int
+ Amazonka.CostExplorer.DeleteAnomalySubscription: deleteAnomalySubscription_subscriptionArn :: Lens' DeleteAnomalySubscription Text
+ Amazonka.CostExplorer.DeleteAnomalySubscription: instance Amazonka.Data.Headers.ToHeaders Amazonka.CostExplorer.DeleteAnomalySubscription.DeleteAnomalySubscription
+ Amazonka.CostExplorer.DeleteAnomalySubscription: instance Amazonka.Data.Path.ToPath Amazonka.CostExplorer.DeleteAnomalySubscription.DeleteAnomalySubscription
+ Amazonka.CostExplorer.DeleteAnomalySubscription: instance Amazonka.Data.Query.ToQuery Amazonka.CostExplorer.DeleteAnomalySubscription.DeleteAnomalySubscription
+ Amazonka.CostExplorer.DeleteAnomalySubscription: instance Amazonka.Types.AWSRequest Amazonka.CostExplorer.DeleteAnomalySubscription.DeleteAnomalySubscription
+ Amazonka.CostExplorer.DeleteAnomalySubscription: instance Control.DeepSeq.NFData Amazonka.CostExplorer.DeleteAnomalySubscription.DeleteAnomalySubscription
+ Amazonka.CostExplorer.DeleteAnomalySubscription: instance Control.DeepSeq.NFData Amazonka.CostExplorer.DeleteAnomalySubscription.DeleteAnomalySubscriptionResponse
+ Amazonka.CostExplorer.DeleteAnomalySubscription: instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.CostExplorer.DeleteAnomalySubscription.DeleteAnomalySubscription
+ Amazonka.CostExplorer.DeleteAnomalySubscription: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.DeleteAnomalySubscription.DeleteAnomalySubscription
+ Amazonka.CostExplorer.DeleteAnomalySubscription: instance GHC.Classes.Eq Amazonka.CostExplorer.DeleteAnomalySubscription.DeleteAnomalySubscription
+ Amazonka.CostExplorer.DeleteAnomalySubscription: instance GHC.Classes.Eq Amazonka.CostExplorer.DeleteAnomalySubscription.DeleteAnomalySubscriptionResponse
+ Amazonka.CostExplorer.DeleteAnomalySubscription: instance GHC.Generics.Generic Amazonka.CostExplorer.DeleteAnomalySubscription.DeleteAnomalySubscription
+ Amazonka.CostExplorer.DeleteAnomalySubscription: instance GHC.Generics.Generic Amazonka.CostExplorer.DeleteAnomalySubscription.DeleteAnomalySubscriptionResponse
+ Amazonka.CostExplorer.DeleteAnomalySubscription: instance GHC.Read.Read Amazonka.CostExplorer.DeleteAnomalySubscription.DeleteAnomalySubscription
+ Amazonka.CostExplorer.DeleteAnomalySubscription: instance GHC.Read.Read Amazonka.CostExplorer.DeleteAnomalySubscription.DeleteAnomalySubscriptionResponse
+ Amazonka.CostExplorer.DeleteAnomalySubscription: instance GHC.Show.Show Amazonka.CostExplorer.DeleteAnomalySubscription.DeleteAnomalySubscription
+ Amazonka.CostExplorer.DeleteAnomalySubscription: instance GHC.Show.Show Amazonka.CostExplorer.DeleteAnomalySubscription.DeleteAnomalySubscriptionResponse
+ Amazonka.CostExplorer.DeleteAnomalySubscription: newDeleteAnomalySubscription :: Text -> DeleteAnomalySubscription
+ Amazonka.CostExplorer.DeleteAnomalySubscription: newDeleteAnomalySubscriptionResponse :: Int -> DeleteAnomalySubscriptionResponse
+ Amazonka.CostExplorer.DeleteCostCategoryDefinition: DeleteCostCategoryDefinition' :: Text -> DeleteCostCategoryDefinition
+ Amazonka.CostExplorer.DeleteCostCategoryDefinition: DeleteCostCategoryDefinitionResponse' :: Maybe Text -> Maybe Text -> Int -> DeleteCostCategoryDefinitionResponse
+ Amazonka.CostExplorer.DeleteCostCategoryDefinition: [$sel:costCategoryArn:DeleteCostCategoryDefinition'] :: DeleteCostCategoryDefinition -> Text
+ Amazonka.CostExplorer.DeleteCostCategoryDefinition: [$sel:costCategoryArn:DeleteCostCategoryDefinitionResponse'] :: DeleteCostCategoryDefinitionResponse -> Maybe Text
+ Amazonka.CostExplorer.DeleteCostCategoryDefinition: [$sel:effectiveEnd:DeleteCostCategoryDefinitionResponse'] :: DeleteCostCategoryDefinitionResponse -> Maybe Text
+ Amazonka.CostExplorer.DeleteCostCategoryDefinition: [$sel:httpStatus:DeleteCostCategoryDefinitionResponse'] :: DeleteCostCategoryDefinitionResponse -> Int
+ Amazonka.CostExplorer.DeleteCostCategoryDefinition: data DeleteCostCategoryDefinition
+ Amazonka.CostExplorer.DeleteCostCategoryDefinition: data DeleteCostCategoryDefinitionResponse
+ Amazonka.CostExplorer.DeleteCostCategoryDefinition: deleteCostCategoryDefinitionResponse_costCategoryArn :: Lens' DeleteCostCategoryDefinitionResponse (Maybe Text)
+ Amazonka.CostExplorer.DeleteCostCategoryDefinition: deleteCostCategoryDefinitionResponse_effectiveEnd :: Lens' DeleteCostCategoryDefinitionResponse (Maybe Text)
+ Amazonka.CostExplorer.DeleteCostCategoryDefinition: deleteCostCategoryDefinitionResponse_httpStatus :: Lens' DeleteCostCategoryDefinitionResponse Int
+ Amazonka.CostExplorer.DeleteCostCategoryDefinition: deleteCostCategoryDefinition_costCategoryArn :: Lens' DeleteCostCategoryDefinition Text
+ Amazonka.CostExplorer.DeleteCostCategoryDefinition: instance Amazonka.Data.Headers.ToHeaders Amazonka.CostExplorer.DeleteCostCategoryDefinition.DeleteCostCategoryDefinition
+ Amazonka.CostExplorer.DeleteCostCategoryDefinition: instance Amazonka.Data.Path.ToPath Amazonka.CostExplorer.DeleteCostCategoryDefinition.DeleteCostCategoryDefinition
+ Amazonka.CostExplorer.DeleteCostCategoryDefinition: instance Amazonka.Data.Query.ToQuery Amazonka.CostExplorer.DeleteCostCategoryDefinition.DeleteCostCategoryDefinition
+ Amazonka.CostExplorer.DeleteCostCategoryDefinition: instance Amazonka.Types.AWSRequest Amazonka.CostExplorer.DeleteCostCategoryDefinition.DeleteCostCategoryDefinition
+ Amazonka.CostExplorer.DeleteCostCategoryDefinition: instance Control.DeepSeq.NFData Amazonka.CostExplorer.DeleteCostCategoryDefinition.DeleteCostCategoryDefinition
+ Amazonka.CostExplorer.DeleteCostCategoryDefinition: instance Control.DeepSeq.NFData Amazonka.CostExplorer.DeleteCostCategoryDefinition.DeleteCostCategoryDefinitionResponse
+ Amazonka.CostExplorer.DeleteCostCategoryDefinition: instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.CostExplorer.DeleteCostCategoryDefinition.DeleteCostCategoryDefinition
+ Amazonka.CostExplorer.DeleteCostCategoryDefinition: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.DeleteCostCategoryDefinition.DeleteCostCategoryDefinition
+ Amazonka.CostExplorer.DeleteCostCategoryDefinition: instance GHC.Classes.Eq Amazonka.CostExplorer.DeleteCostCategoryDefinition.DeleteCostCategoryDefinition
+ Amazonka.CostExplorer.DeleteCostCategoryDefinition: instance GHC.Classes.Eq Amazonka.CostExplorer.DeleteCostCategoryDefinition.DeleteCostCategoryDefinitionResponse
+ Amazonka.CostExplorer.DeleteCostCategoryDefinition: instance GHC.Generics.Generic Amazonka.CostExplorer.DeleteCostCategoryDefinition.DeleteCostCategoryDefinition
+ Amazonka.CostExplorer.DeleteCostCategoryDefinition: instance GHC.Generics.Generic Amazonka.CostExplorer.DeleteCostCategoryDefinition.DeleteCostCategoryDefinitionResponse
+ Amazonka.CostExplorer.DeleteCostCategoryDefinition: instance GHC.Read.Read Amazonka.CostExplorer.DeleteCostCategoryDefinition.DeleteCostCategoryDefinition
+ Amazonka.CostExplorer.DeleteCostCategoryDefinition: instance GHC.Read.Read Amazonka.CostExplorer.DeleteCostCategoryDefinition.DeleteCostCategoryDefinitionResponse
+ Amazonka.CostExplorer.DeleteCostCategoryDefinition: instance GHC.Show.Show Amazonka.CostExplorer.DeleteCostCategoryDefinition.DeleteCostCategoryDefinition
+ Amazonka.CostExplorer.DeleteCostCategoryDefinition: instance GHC.Show.Show Amazonka.CostExplorer.DeleteCostCategoryDefinition.DeleteCostCategoryDefinitionResponse
+ Amazonka.CostExplorer.DeleteCostCategoryDefinition: newDeleteCostCategoryDefinition :: Text -> DeleteCostCategoryDefinition
+ Amazonka.CostExplorer.DeleteCostCategoryDefinition: newDeleteCostCategoryDefinitionResponse :: Int -> DeleteCostCategoryDefinitionResponse
+ Amazonka.CostExplorer.DescribeCostCategoryDefinition: DescribeCostCategoryDefinition' :: Maybe Text -> Text -> DescribeCostCategoryDefinition
+ Amazonka.CostExplorer.DescribeCostCategoryDefinition: DescribeCostCategoryDefinitionResponse' :: Maybe CostCategory -> Int -> DescribeCostCategoryDefinitionResponse
+ Amazonka.CostExplorer.DescribeCostCategoryDefinition: [$sel:costCategory:DescribeCostCategoryDefinitionResponse'] :: DescribeCostCategoryDefinitionResponse -> Maybe CostCategory
+ Amazonka.CostExplorer.DescribeCostCategoryDefinition: [$sel:costCategoryArn:DescribeCostCategoryDefinition'] :: DescribeCostCategoryDefinition -> Text
+ Amazonka.CostExplorer.DescribeCostCategoryDefinition: [$sel:effectiveOn:DescribeCostCategoryDefinition'] :: DescribeCostCategoryDefinition -> Maybe Text
+ Amazonka.CostExplorer.DescribeCostCategoryDefinition: [$sel:httpStatus:DescribeCostCategoryDefinitionResponse'] :: DescribeCostCategoryDefinitionResponse -> Int
+ Amazonka.CostExplorer.DescribeCostCategoryDefinition: data DescribeCostCategoryDefinition
+ Amazonka.CostExplorer.DescribeCostCategoryDefinition: data DescribeCostCategoryDefinitionResponse
+ Amazonka.CostExplorer.DescribeCostCategoryDefinition: describeCostCategoryDefinitionResponse_costCategory :: Lens' DescribeCostCategoryDefinitionResponse (Maybe CostCategory)
+ Amazonka.CostExplorer.DescribeCostCategoryDefinition: describeCostCategoryDefinitionResponse_httpStatus :: Lens' DescribeCostCategoryDefinitionResponse Int
+ Amazonka.CostExplorer.DescribeCostCategoryDefinition: describeCostCategoryDefinition_costCategoryArn :: Lens' DescribeCostCategoryDefinition Text
+ Amazonka.CostExplorer.DescribeCostCategoryDefinition: describeCostCategoryDefinition_effectiveOn :: Lens' DescribeCostCategoryDefinition (Maybe Text)
+ Amazonka.CostExplorer.DescribeCostCategoryDefinition: instance Amazonka.Data.Headers.ToHeaders Amazonka.CostExplorer.DescribeCostCategoryDefinition.DescribeCostCategoryDefinition
+ Amazonka.CostExplorer.DescribeCostCategoryDefinition: instance Amazonka.Data.Path.ToPath Amazonka.CostExplorer.DescribeCostCategoryDefinition.DescribeCostCategoryDefinition
+ Amazonka.CostExplorer.DescribeCostCategoryDefinition: instance Amazonka.Data.Query.ToQuery Amazonka.CostExplorer.DescribeCostCategoryDefinition.DescribeCostCategoryDefinition
+ Amazonka.CostExplorer.DescribeCostCategoryDefinition: instance Amazonka.Types.AWSRequest Amazonka.CostExplorer.DescribeCostCategoryDefinition.DescribeCostCategoryDefinition
+ Amazonka.CostExplorer.DescribeCostCategoryDefinition: instance Control.DeepSeq.NFData Amazonka.CostExplorer.DescribeCostCategoryDefinition.DescribeCostCategoryDefinition
+ Amazonka.CostExplorer.DescribeCostCategoryDefinition: instance Control.DeepSeq.NFData Amazonka.CostExplorer.DescribeCostCategoryDefinition.DescribeCostCategoryDefinitionResponse
+ Amazonka.CostExplorer.DescribeCostCategoryDefinition: instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.CostExplorer.DescribeCostCategoryDefinition.DescribeCostCategoryDefinition
+ Amazonka.CostExplorer.DescribeCostCategoryDefinition: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.DescribeCostCategoryDefinition.DescribeCostCategoryDefinition
+ Amazonka.CostExplorer.DescribeCostCategoryDefinition: instance GHC.Classes.Eq Amazonka.CostExplorer.DescribeCostCategoryDefinition.DescribeCostCategoryDefinition
+ Amazonka.CostExplorer.DescribeCostCategoryDefinition: instance GHC.Classes.Eq Amazonka.CostExplorer.DescribeCostCategoryDefinition.DescribeCostCategoryDefinitionResponse
+ Amazonka.CostExplorer.DescribeCostCategoryDefinition: instance GHC.Generics.Generic Amazonka.CostExplorer.DescribeCostCategoryDefinition.DescribeCostCategoryDefinition
+ Amazonka.CostExplorer.DescribeCostCategoryDefinition: instance GHC.Generics.Generic Amazonka.CostExplorer.DescribeCostCategoryDefinition.DescribeCostCategoryDefinitionResponse
+ Amazonka.CostExplorer.DescribeCostCategoryDefinition: instance GHC.Read.Read Amazonka.CostExplorer.DescribeCostCategoryDefinition.DescribeCostCategoryDefinition
+ Amazonka.CostExplorer.DescribeCostCategoryDefinition: instance GHC.Read.Read Amazonka.CostExplorer.DescribeCostCategoryDefinition.DescribeCostCategoryDefinitionResponse
+ Amazonka.CostExplorer.DescribeCostCategoryDefinition: instance GHC.Show.Show Amazonka.CostExplorer.DescribeCostCategoryDefinition.DescribeCostCategoryDefinition
+ Amazonka.CostExplorer.DescribeCostCategoryDefinition: instance GHC.Show.Show Amazonka.CostExplorer.DescribeCostCategoryDefinition.DescribeCostCategoryDefinitionResponse
+ Amazonka.CostExplorer.DescribeCostCategoryDefinition: newDescribeCostCategoryDefinition :: Text -> DescribeCostCategoryDefinition
+ Amazonka.CostExplorer.DescribeCostCategoryDefinition: newDescribeCostCategoryDefinitionResponse :: Int -> DescribeCostCategoryDefinitionResponse
+ Amazonka.CostExplorer.GetAnomalies: GetAnomalies' :: Maybe AnomalyFeedbackType -> Maybe Int -> Maybe Text -> Maybe Text -> Maybe TotalImpactFilter -> AnomalyDateInterval -> GetAnomalies
+ Amazonka.CostExplorer.GetAnomalies: GetAnomaliesResponse' :: Maybe Text -> Int -> [Anomaly] -> GetAnomaliesResponse
+ Amazonka.CostExplorer.GetAnomalies: [$sel:anomalies:GetAnomaliesResponse'] :: GetAnomaliesResponse -> [Anomaly]
+ Amazonka.CostExplorer.GetAnomalies: [$sel:dateInterval:GetAnomalies'] :: GetAnomalies -> AnomalyDateInterval
+ Amazonka.CostExplorer.GetAnomalies: [$sel:feedback:GetAnomalies'] :: GetAnomalies -> Maybe AnomalyFeedbackType
+ Amazonka.CostExplorer.GetAnomalies: [$sel:httpStatus:GetAnomaliesResponse'] :: GetAnomaliesResponse -> Int
+ Amazonka.CostExplorer.GetAnomalies: [$sel:maxResults:GetAnomalies'] :: GetAnomalies -> Maybe Int
+ Amazonka.CostExplorer.GetAnomalies: [$sel:monitorArn:GetAnomalies'] :: GetAnomalies -> Maybe Text
+ Amazonka.CostExplorer.GetAnomalies: [$sel:nextPageToken:GetAnomalies'] :: GetAnomalies -> Maybe Text
+ Amazonka.CostExplorer.GetAnomalies: [$sel:nextPageToken:GetAnomaliesResponse'] :: GetAnomaliesResponse -> Maybe Text
+ Amazonka.CostExplorer.GetAnomalies: [$sel:totalImpact:GetAnomalies'] :: GetAnomalies -> Maybe TotalImpactFilter
+ Amazonka.CostExplorer.GetAnomalies: data GetAnomalies
+ Amazonka.CostExplorer.GetAnomalies: data GetAnomaliesResponse
+ Amazonka.CostExplorer.GetAnomalies: getAnomaliesResponse_anomalies :: Lens' GetAnomaliesResponse [Anomaly]
+ Amazonka.CostExplorer.GetAnomalies: getAnomaliesResponse_httpStatus :: Lens' GetAnomaliesResponse Int
+ Amazonka.CostExplorer.GetAnomalies: getAnomaliesResponse_nextPageToken :: Lens' GetAnomaliesResponse (Maybe Text)
+ Amazonka.CostExplorer.GetAnomalies: getAnomalies_dateInterval :: Lens' GetAnomalies AnomalyDateInterval
+ Amazonka.CostExplorer.GetAnomalies: getAnomalies_feedback :: Lens' GetAnomalies (Maybe AnomalyFeedbackType)
+ Amazonka.CostExplorer.GetAnomalies: getAnomalies_maxResults :: Lens' GetAnomalies (Maybe Int)
+ Amazonka.CostExplorer.GetAnomalies: getAnomalies_monitorArn :: Lens' GetAnomalies (Maybe Text)
+ Amazonka.CostExplorer.GetAnomalies: getAnomalies_nextPageToken :: Lens' GetAnomalies (Maybe Text)
+ Amazonka.CostExplorer.GetAnomalies: getAnomalies_totalImpact :: Lens' GetAnomalies (Maybe TotalImpactFilter)
+ Amazonka.CostExplorer.GetAnomalies: instance Amazonka.Data.Headers.ToHeaders Amazonka.CostExplorer.GetAnomalies.GetAnomalies
+ Amazonka.CostExplorer.GetAnomalies: instance Amazonka.Data.Path.ToPath Amazonka.CostExplorer.GetAnomalies.GetAnomalies
+ Amazonka.CostExplorer.GetAnomalies: instance Amazonka.Data.Query.ToQuery Amazonka.CostExplorer.GetAnomalies.GetAnomalies
+ Amazonka.CostExplorer.GetAnomalies: instance Amazonka.Types.AWSRequest Amazonka.CostExplorer.GetAnomalies.GetAnomalies
+ Amazonka.CostExplorer.GetAnomalies: instance Control.DeepSeq.NFData Amazonka.CostExplorer.GetAnomalies.GetAnomalies
+ Amazonka.CostExplorer.GetAnomalies: instance Control.DeepSeq.NFData Amazonka.CostExplorer.GetAnomalies.GetAnomaliesResponse
+ Amazonka.CostExplorer.GetAnomalies: instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.CostExplorer.GetAnomalies.GetAnomalies
+ Amazonka.CostExplorer.GetAnomalies: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.GetAnomalies.GetAnomalies
+ Amazonka.CostExplorer.GetAnomalies: instance GHC.Classes.Eq Amazonka.CostExplorer.GetAnomalies.GetAnomalies
+ Amazonka.CostExplorer.GetAnomalies: instance GHC.Classes.Eq Amazonka.CostExplorer.GetAnomalies.GetAnomaliesResponse
+ Amazonka.CostExplorer.GetAnomalies: instance GHC.Generics.Generic Amazonka.CostExplorer.GetAnomalies.GetAnomalies
+ Amazonka.CostExplorer.GetAnomalies: instance GHC.Generics.Generic Amazonka.CostExplorer.GetAnomalies.GetAnomaliesResponse
+ Amazonka.CostExplorer.GetAnomalies: instance GHC.Read.Read Amazonka.CostExplorer.GetAnomalies.GetAnomalies
+ Amazonka.CostExplorer.GetAnomalies: instance GHC.Read.Read Amazonka.CostExplorer.GetAnomalies.GetAnomaliesResponse
+ Amazonka.CostExplorer.GetAnomalies: instance GHC.Show.Show Amazonka.CostExplorer.GetAnomalies.GetAnomalies
+ Amazonka.CostExplorer.GetAnomalies: instance GHC.Show.Show Amazonka.CostExplorer.GetAnomalies.GetAnomaliesResponse
+ Amazonka.CostExplorer.GetAnomalies: newGetAnomalies :: AnomalyDateInterval -> GetAnomalies
+ Amazonka.CostExplorer.GetAnomalies: newGetAnomaliesResponse :: Int -> GetAnomaliesResponse
+ Amazonka.CostExplorer.GetAnomalyMonitors: GetAnomalyMonitors' :: Maybe Int -> Maybe [Text] -> Maybe Text -> GetAnomalyMonitors
+ Amazonka.CostExplorer.GetAnomalyMonitors: GetAnomalyMonitorsResponse' :: Maybe Text -> Int -> [AnomalyMonitor] -> GetAnomalyMonitorsResponse
+ Amazonka.CostExplorer.GetAnomalyMonitors: [$sel:anomalyMonitors:GetAnomalyMonitorsResponse'] :: GetAnomalyMonitorsResponse -> [AnomalyMonitor]
+ Amazonka.CostExplorer.GetAnomalyMonitors: [$sel:httpStatus:GetAnomalyMonitorsResponse'] :: GetAnomalyMonitorsResponse -> Int
+ Amazonka.CostExplorer.GetAnomalyMonitors: [$sel:maxResults:GetAnomalyMonitors'] :: GetAnomalyMonitors -> Maybe Int
+ Amazonka.CostExplorer.GetAnomalyMonitors: [$sel:monitorArnList:GetAnomalyMonitors'] :: GetAnomalyMonitors -> Maybe [Text]
+ Amazonka.CostExplorer.GetAnomalyMonitors: [$sel:nextPageToken:GetAnomalyMonitors'] :: GetAnomalyMonitors -> Maybe Text
+ Amazonka.CostExplorer.GetAnomalyMonitors: [$sel:nextPageToken:GetAnomalyMonitorsResponse'] :: GetAnomalyMonitorsResponse -> Maybe Text
+ Amazonka.CostExplorer.GetAnomalyMonitors: data GetAnomalyMonitors
+ Amazonka.CostExplorer.GetAnomalyMonitors: data GetAnomalyMonitorsResponse
+ Amazonka.CostExplorer.GetAnomalyMonitors: getAnomalyMonitorsResponse_anomalyMonitors :: Lens' GetAnomalyMonitorsResponse [AnomalyMonitor]
+ Amazonka.CostExplorer.GetAnomalyMonitors: getAnomalyMonitorsResponse_httpStatus :: Lens' GetAnomalyMonitorsResponse Int
+ Amazonka.CostExplorer.GetAnomalyMonitors: getAnomalyMonitorsResponse_nextPageToken :: Lens' GetAnomalyMonitorsResponse (Maybe Text)
+ Amazonka.CostExplorer.GetAnomalyMonitors: getAnomalyMonitors_maxResults :: Lens' GetAnomalyMonitors (Maybe Int)
+ Amazonka.CostExplorer.GetAnomalyMonitors: getAnomalyMonitors_monitorArnList :: Lens' GetAnomalyMonitors (Maybe [Text])
+ Amazonka.CostExplorer.GetAnomalyMonitors: getAnomalyMonitors_nextPageToken :: Lens' GetAnomalyMonitors (Maybe Text)
+ Amazonka.CostExplorer.GetAnomalyMonitors: instance Amazonka.Data.Headers.ToHeaders Amazonka.CostExplorer.GetAnomalyMonitors.GetAnomalyMonitors
+ Amazonka.CostExplorer.GetAnomalyMonitors: instance Amazonka.Data.Path.ToPath Amazonka.CostExplorer.GetAnomalyMonitors.GetAnomalyMonitors
+ Amazonka.CostExplorer.GetAnomalyMonitors: instance Amazonka.Data.Query.ToQuery Amazonka.CostExplorer.GetAnomalyMonitors.GetAnomalyMonitors
+ Amazonka.CostExplorer.GetAnomalyMonitors: instance Amazonka.Types.AWSRequest Amazonka.CostExplorer.GetAnomalyMonitors.GetAnomalyMonitors
+ Amazonka.CostExplorer.GetAnomalyMonitors: instance Control.DeepSeq.NFData Amazonka.CostExplorer.GetAnomalyMonitors.GetAnomalyMonitors
+ Amazonka.CostExplorer.GetAnomalyMonitors: instance Control.DeepSeq.NFData Amazonka.CostExplorer.GetAnomalyMonitors.GetAnomalyMonitorsResponse
+ Amazonka.CostExplorer.GetAnomalyMonitors: instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.CostExplorer.GetAnomalyMonitors.GetAnomalyMonitors
+ Amazonka.CostExplorer.GetAnomalyMonitors: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.GetAnomalyMonitors.GetAnomalyMonitors
+ Amazonka.CostExplorer.GetAnomalyMonitors: instance GHC.Classes.Eq Amazonka.CostExplorer.GetAnomalyMonitors.GetAnomalyMonitors
+ Amazonka.CostExplorer.GetAnomalyMonitors: instance GHC.Classes.Eq Amazonka.CostExplorer.GetAnomalyMonitors.GetAnomalyMonitorsResponse
+ Amazonka.CostExplorer.GetAnomalyMonitors: instance GHC.Generics.Generic Amazonka.CostExplorer.GetAnomalyMonitors.GetAnomalyMonitors
+ Amazonka.CostExplorer.GetAnomalyMonitors: instance GHC.Generics.Generic Amazonka.CostExplorer.GetAnomalyMonitors.GetAnomalyMonitorsResponse
+ Amazonka.CostExplorer.GetAnomalyMonitors: instance GHC.Read.Read Amazonka.CostExplorer.GetAnomalyMonitors.GetAnomalyMonitors
+ Amazonka.CostExplorer.GetAnomalyMonitors: instance GHC.Read.Read Amazonka.CostExplorer.GetAnomalyMonitors.GetAnomalyMonitorsResponse
+ Amazonka.CostExplorer.GetAnomalyMonitors: instance GHC.Show.Show Amazonka.CostExplorer.GetAnomalyMonitors.GetAnomalyMonitors
+ Amazonka.CostExplorer.GetAnomalyMonitors: instance GHC.Show.Show Amazonka.CostExplorer.GetAnomalyMonitors.GetAnomalyMonitorsResponse
+ Amazonka.CostExplorer.GetAnomalyMonitors: newGetAnomalyMonitors :: GetAnomalyMonitors
+ Amazonka.CostExplorer.GetAnomalyMonitors: newGetAnomalyMonitorsResponse :: Int -> GetAnomalyMonitorsResponse
+ Amazonka.CostExplorer.GetAnomalySubscriptions: GetAnomalySubscriptions' :: Maybe Int -> Maybe Text -> Maybe Text -> Maybe [Text] -> GetAnomalySubscriptions
+ Amazonka.CostExplorer.GetAnomalySubscriptions: GetAnomalySubscriptionsResponse' :: Maybe Text -> Int -> [AnomalySubscription] -> GetAnomalySubscriptionsResponse
+ Amazonka.CostExplorer.GetAnomalySubscriptions: [$sel:anomalySubscriptions:GetAnomalySubscriptionsResponse'] :: GetAnomalySubscriptionsResponse -> [AnomalySubscription]
+ Amazonka.CostExplorer.GetAnomalySubscriptions: [$sel:httpStatus:GetAnomalySubscriptionsResponse'] :: GetAnomalySubscriptionsResponse -> Int
+ Amazonka.CostExplorer.GetAnomalySubscriptions: [$sel:maxResults:GetAnomalySubscriptions'] :: GetAnomalySubscriptions -> Maybe Int
+ Amazonka.CostExplorer.GetAnomalySubscriptions: [$sel:monitorArn:GetAnomalySubscriptions'] :: GetAnomalySubscriptions -> Maybe Text
+ Amazonka.CostExplorer.GetAnomalySubscriptions: [$sel:nextPageToken:GetAnomalySubscriptions'] :: GetAnomalySubscriptions -> Maybe Text
+ Amazonka.CostExplorer.GetAnomalySubscriptions: [$sel:nextPageToken:GetAnomalySubscriptionsResponse'] :: GetAnomalySubscriptionsResponse -> Maybe Text
+ Amazonka.CostExplorer.GetAnomalySubscriptions: [$sel:subscriptionArnList:GetAnomalySubscriptions'] :: GetAnomalySubscriptions -> Maybe [Text]
+ Amazonka.CostExplorer.GetAnomalySubscriptions: data GetAnomalySubscriptions
+ Amazonka.CostExplorer.GetAnomalySubscriptions: data GetAnomalySubscriptionsResponse
+ Amazonka.CostExplorer.GetAnomalySubscriptions: getAnomalySubscriptionsResponse_anomalySubscriptions :: Lens' GetAnomalySubscriptionsResponse [AnomalySubscription]
+ Amazonka.CostExplorer.GetAnomalySubscriptions: getAnomalySubscriptionsResponse_httpStatus :: Lens' GetAnomalySubscriptionsResponse Int
+ Amazonka.CostExplorer.GetAnomalySubscriptions: getAnomalySubscriptionsResponse_nextPageToken :: Lens' GetAnomalySubscriptionsResponse (Maybe Text)
+ Amazonka.CostExplorer.GetAnomalySubscriptions: getAnomalySubscriptions_maxResults :: Lens' GetAnomalySubscriptions (Maybe Int)
+ Amazonka.CostExplorer.GetAnomalySubscriptions: getAnomalySubscriptions_monitorArn :: Lens' GetAnomalySubscriptions (Maybe Text)
+ Amazonka.CostExplorer.GetAnomalySubscriptions: getAnomalySubscriptions_nextPageToken :: Lens' GetAnomalySubscriptions (Maybe Text)
+ Amazonka.CostExplorer.GetAnomalySubscriptions: getAnomalySubscriptions_subscriptionArnList :: Lens' GetAnomalySubscriptions (Maybe [Text])
+ Amazonka.CostExplorer.GetAnomalySubscriptions: instance Amazonka.Data.Headers.ToHeaders Amazonka.CostExplorer.GetAnomalySubscriptions.GetAnomalySubscriptions
+ Amazonka.CostExplorer.GetAnomalySubscriptions: instance Amazonka.Data.Path.ToPath Amazonka.CostExplorer.GetAnomalySubscriptions.GetAnomalySubscriptions
+ Amazonka.CostExplorer.GetAnomalySubscriptions: instance Amazonka.Data.Query.ToQuery Amazonka.CostExplorer.GetAnomalySubscriptions.GetAnomalySubscriptions
+ Amazonka.CostExplorer.GetAnomalySubscriptions: instance Amazonka.Types.AWSRequest Amazonka.CostExplorer.GetAnomalySubscriptions.GetAnomalySubscriptions
+ Amazonka.CostExplorer.GetAnomalySubscriptions: instance Control.DeepSeq.NFData Amazonka.CostExplorer.GetAnomalySubscriptions.GetAnomalySubscriptions
+ Amazonka.CostExplorer.GetAnomalySubscriptions: instance Control.DeepSeq.NFData Amazonka.CostExplorer.GetAnomalySubscriptions.GetAnomalySubscriptionsResponse
+ Amazonka.CostExplorer.GetAnomalySubscriptions: instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.CostExplorer.GetAnomalySubscriptions.GetAnomalySubscriptions
+ Amazonka.CostExplorer.GetAnomalySubscriptions: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.GetAnomalySubscriptions.GetAnomalySubscriptions
+ Amazonka.CostExplorer.GetAnomalySubscriptions: instance GHC.Classes.Eq Amazonka.CostExplorer.GetAnomalySubscriptions.GetAnomalySubscriptions
+ Amazonka.CostExplorer.GetAnomalySubscriptions: instance GHC.Classes.Eq Amazonka.CostExplorer.GetAnomalySubscriptions.GetAnomalySubscriptionsResponse
+ Amazonka.CostExplorer.GetAnomalySubscriptions: instance GHC.Generics.Generic Amazonka.CostExplorer.GetAnomalySubscriptions.GetAnomalySubscriptions
+ Amazonka.CostExplorer.GetAnomalySubscriptions: instance GHC.Generics.Generic Amazonka.CostExplorer.GetAnomalySubscriptions.GetAnomalySubscriptionsResponse
+ Amazonka.CostExplorer.GetAnomalySubscriptions: instance GHC.Read.Read Amazonka.CostExplorer.GetAnomalySubscriptions.GetAnomalySubscriptions
+ Amazonka.CostExplorer.GetAnomalySubscriptions: instance GHC.Read.Read Amazonka.CostExplorer.GetAnomalySubscriptions.GetAnomalySubscriptionsResponse
+ Amazonka.CostExplorer.GetAnomalySubscriptions: instance GHC.Show.Show Amazonka.CostExplorer.GetAnomalySubscriptions.GetAnomalySubscriptions
+ Amazonka.CostExplorer.GetAnomalySubscriptions: instance GHC.Show.Show Amazonka.CostExplorer.GetAnomalySubscriptions.GetAnomalySubscriptionsResponse
+ Amazonka.CostExplorer.GetAnomalySubscriptions: newGetAnomalySubscriptions :: GetAnomalySubscriptions
+ Amazonka.CostExplorer.GetAnomalySubscriptions: newGetAnomalySubscriptionsResponse :: Int -> GetAnomalySubscriptionsResponse
+ Amazonka.CostExplorer.GetCostAndUsage: GetCostAndUsage' :: Maybe Expression -> Maybe [GroupDefinition] -> Maybe Text -> DateInterval -> Granularity -> [Text] -> GetCostAndUsage
+ Amazonka.CostExplorer.GetCostAndUsage: GetCostAndUsageResponse' :: Maybe [DimensionValuesWithAttributes] -> Maybe [GroupDefinition] -> Maybe Text -> Maybe [ResultByTime] -> Int -> GetCostAndUsageResponse
+ Amazonka.CostExplorer.GetCostAndUsage: [$sel:dimensionValueAttributes:GetCostAndUsageResponse'] :: GetCostAndUsageResponse -> Maybe [DimensionValuesWithAttributes]
+ Amazonka.CostExplorer.GetCostAndUsage: [$sel:filter':GetCostAndUsage'] :: GetCostAndUsage -> Maybe Expression
+ Amazonka.CostExplorer.GetCostAndUsage: [$sel:granularity:GetCostAndUsage'] :: GetCostAndUsage -> Granularity
+ Amazonka.CostExplorer.GetCostAndUsage: [$sel:groupBy:GetCostAndUsage'] :: GetCostAndUsage -> Maybe [GroupDefinition]
+ Amazonka.CostExplorer.GetCostAndUsage: [$sel:groupDefinitions:GetCostAndUsageResponse'] :: GetCostAndUsageResponse -> Maybe [GroupDefinition]
+ Amazonka.CostExplorer.GetCostAndUsage: [$sel:httpStatus:GetCostAndUsageResponse'] :: GetCostAndUsageResponse -> Int
+ Amazonka.CostExplorer.GetCostAndUsage: [$sel:metrics:GetCostAndUsage'] :: GetCostAndUsage -> [Text]
+ Amazonka.CostExplorer.GetCostAndUsage: [$sel:nextPageToken:GetCostAndUsage'] :: GetCostAndUsage -> Maybe Text
+ Amazonka.CostExplorer.GetCostAndUsage: [$sel:nextPageToken:GetCostAndUsageResponse'] :: GetCostAndUsageResponse -> Maybe Text
+ Amazonka.CostExplorer.GetCostAndUsage: [$sel:resultsByTime:GetCostAndUsageResponse'] :: GetCostAndUsageResponse -> Maybe [ResultByTime]
+ Amazonka.CostExplorer.GetCostAndUsage: [$sel:timePeriod:GetCostAndUsage'] :: GetCostAndUsage -> DateInterval
+ Amazonka.CostExplorer.GetCostAndUsage: data GetCostAndUsage
+ Amazonka.CostExplorer.GetCostAndUsage: data GetCostAndUsageResponse
+ Amazonka.CostExplorer.GetCostAndUsage: getCostAndUsageResponse_dimensionValueAttributes :: Lens' GetCostAndUsageResponse (Maybe [DimensionValuesWithAttributes])
+ Amazonka.CostExplorer.GetCostAndUsage: getCostAndUsageResponse_groupDefinitions :: Lens' GetCostAndUsageResponse (Maybe [GroupDefinition])
+ Amazonka.CostExplorer.GetCostAndUsage: getCostAndUsageResponse_httpStatus :: Lens' GetCostAndUsageResponse Int
+ Amazonka.CostExplorer.GetCostAndUsage: getCostAndUsageResponse_nextPageToken :: Lens' GetCostAndUsageResponse (Maybe Text)
+ Amazonka.CostExplorer.GetCostAndUsage: getCostAndUsageResponse_resultsByTime :: Lens' GetCostAndUsageResponse (Maybe [ResultByTime])
+ Amazonka.CostExplorer.GetCostAndUsage: getCostAndUsage_filter :: Lens' GetCostAndUsage (Maybe Expression)
+ Amazonka.CostExplorer.GetCostAndUsage: getCostAndUsage_granularity :: Lens' GetCostAndUsage Granularity
+ Amazonka.CostExplorer.GetCostAndUsage: getCostAndUsage_groupBy :: Lens' GetCostAndUsage (Maybe [GroupDefinition])
+ Amazonka.CostExplorer.GetCostAndUsage: getCostAndUsage_metrics :: Lens' GetCostAndUsage [Text]
+ Amazonka.CostExplorer.GetCostAndUsage: getCostAndUsage_nextPageToken :: Lens' GetCostAndUsage (Maybe Text)
+ Amazonka.CostExplorer.GetCostAndUsage: getCostAndUsage_timePeriod :: Lens' GetCostAndUsage DateInterval
+ Amazonka.CostExplorer.GetCostAndUsage: instance Amazonka.Data.Headers.ToHeaders Amazonka.CostExplorer.GetCostAndUsage.GetCostAndUsage
+ Amazonka.CostExplorer.GetCostAndUsage: instance Amazonka.Data.Path.ToPath Amazonka.CostExplorer.GetCostAndUsage.GetCostAndUsage
+ Amazonka.CostExplorer.GetCostAndUsage: instance Amazonka.Data.Query.ToQuery Amazonka.CostExplorer.GetCostAndUsage.GetCostAndUsage
+ Amazonka.CostExplorer.GetCostAndUsage: instance Amazonka.Types.AWSRequest Amazonka.CostExplorer.GetCostAndUsage.GetCostAndUsage
+ Amazonka.CostExplorer.GetCostAndUsage: instance Control.DeepSeq.NFData Amazonka.CostExplorer.GetCostAndUsage.GetCostAndUsage
+ Amazonka.CostExplorer.GetCostAndUsage: instance Control.DeepSeq.NFData Amazonka.CostExplorer.GetCostAndUsage.GetCostAndUsageResponse
+ Amazonka.CostExplorer.GetCostAndUsage: instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.CostExplorer.GetCostAndUsage.GetCostAndUsage
+ Amazonka.CostExplorer.GetCostAndUsage: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.GetCostAndUsage.GetCostAndUsage
+ Amazonka.CostExplorer.GetCostAndUsage: instance GHC.Classes.Eq Amazonka.CostExplorer.GetCostAndUsage.GetCostAndUsage
+ Amazonka.CostExplorer.GetCostAndUsage: instance GHC.Classes.Eq Amazonka.CostExplorer.GetCostAndUsage.GetCostAndUsageResponse
+ Amazonka.CostExplorer.GetCostAndUsage: instance GHC.Generics.Generic Amazonka.CostExplorer.GetCostAndUsage.GetCostAndUsage
+ Amazonka.CostExplorer.GetCostAndUsage: instance GHC.Generics.Generic Amazonka.CostExplorer.GetCostAndUsage.GetCostAndUsageResponse
+ Amazonka.CostExplorer.GetCostAndUsage: instance GHC.Read.Read Amazonka.CostExplorer.GetCostAndUsage.GetCostAndUsage
+ Amazonka.CostExplorer.GetCostAndUsage: instance GHC.Read.Read Amazonka.CostExplorer.GetCostAndUsage.GetCostAndUsageResponse
+ Amazonka.CostExplorer.GetCostAndUsage: instance GHC.Show.Show Amazonka.CostExplorer.GetCostAndUsage.GetCostAndUsage
+ Amazonka.CostExplorer.GetCostAndUsage: instance GHC.Show.Show Amazonka.CostExplorer.GetCostAndUsage.GetCostAndUsageResponse
+ Amazonka.CostExplorer.GetCostAndUsage: newGetCostAndUsage :: DateInterval -> Granularity -> GetCostAndUsage
+ Amazonka.CostExplorer.GetCostAndUsage: newGetCostAndUsageResponse :: Int -> GetCostAndUsageResponse
+ Amazonka.CostExplorer.GetCostAndUsageWithResources: GetCostAndUsageWithResources' :: Maybe [GroupDefinition] -> Maybe [Text] -> Maybe Text -> DateInterval -> Granularity -> Expression -> GetCostAndUsageWithResources
+ Amazonka.CostExplorer.GetCostAndUsageWithResources: GetCostAndUsageWithResourcesResponse' :: Maybe [DimensionValuesWithAttributes] -> Maybe [GroupDefinition] -> Maybe Text -> Maybe [ResultByTime] -> Int -> GetCostAndUsageWithResourcesResponse
+ Amazonka.CostExplorer.GetCostAndUsageWithResources: [$sel:dimensionValueAttributes:GetCostAndUsageWithResourcesResponse'] :: GetCostAndUsageWithResourcesResponse -> Maybe [DimensionValuesWithAttributes]
+ Amazonka.CostExplorer.GetCostAndUsageWithResources: [$sel:filter':GetCostAndUsageWithResources'] :: GetCostAndUsageWithResources -> Expression
+ Amazonka.CostExplorer.GetCostAndUsageWithResources: [$sel:granularity:GetCostAndUsageWithResources'] :: GetCostAndUsageWithResources -> Granularity
+ Amazonka.CostExplorer.GetCostAndUsageWithResources: [$sel:groupBy:GetCostAndUsageWithResources'] :: GetCostAndUsageWithResources -> Maybe [GroupDefinition]
+ Amazonka.CostExplorer.GetCostAndUsageWithResources: [$sel:groupDefinitions:GetCostAndUsageWithResourcesResponse'] :: GetCostAndUsageWithResourcesResponse -> Maybe [GroupDefinition]
+ Amazonka.CostExplorer.GetCostAndUsageWithResources: [$sel:httpStatus:GetCostAndUsageWithResourcesResponse'] :: GetCostAndUsageWithResourcesResponse -> Int
+ Amazonka.CostExplorer.GetCostAndUsageWithResources: [$sel:metrics:GetCostAndUsageWithResources'] :: GetCostAndUsageWithResources -> Maybe [Text]
+ Amazonka.CostExplorer.GetCostAndUsageWithResources: [$sel:nextPageToken:GetCostAndUsageWithResources'] :: GetCostAndUsageWithResources -> Maybe Text
+ Amazonka.CostExplorer.GetCostAndUsageWithResources: [$sel:nextPageToken:GetCostAndUsageWithResourcesResponse'] :: GetCostAndUsageWithResourcesResponse -> Maybe Text
+ Amazonka.CostExplorer.GetCostAndUsageWithResources: [$sel:resultsByTime:GetCostAndUsageWithResourcesResponse'] :: GetCostAndUsageWithResourcesResponse -> Maybe [ResultByTime]
+ Amazonka.CostExplorer.GetCostAndUsageWithResources: [$sel:timePeriod:GetCostAndUsageWithResources'] :: GetCostAndUsageWithResources -> DateInterval
+ Amazonka.CostExplorer.GetCostAndUsageWithResources: data GetCostAndUsageWithResources
+ Amazonka.CostExplorer.GetCostAndUsageWithResources: data GetCostAndUsageWithResourcesResponse
+ Amazonka.CostExplorer.GetCostAndUsageWithResources: getCostAndUsageWithResourcesResponse_dimensionValueAttributes :: Lens' GetCostAndUsageWithResourcesResponse (Maybe [DimensionValuesWithAttributes])
+ Amazonka.CostExplorer.GetCostAndUsageWithResources: getCostAndUsageWithResourcesResponse_groupDefinitions :: Lens' GetCostAndUsageWithResourcesResponse (Maybe [GroupDefinition])
+ Amazonka.CostExplorer.GetCostAndUsageWithResources: getCostAndUsageWithResourcesResponse_httpStatus :: Lens' GetCostAndUsageWithResourcesResponse Int
+ Amazonka.CostExplorer.GetCostAndUsageWithResources: getCostAndUsageWithResourcesResponse_nextPageToken :: Lens' GetCostAndUsageWithResourcesResponse (Maybe Text)
+ Amazonka.CostExplorer.GetCostAndUsageWithResources: getCostAndUsageWithResourcesResponse_resultsByTime :: Lens' GetCostAndUsageWithResourcesResponse (Maybe [ResultByTime])
+ Amazonka.CostExplorer.GetCostAndUsageWithResources: getCostAndUsageWithResources_filter :: Lens' GetCostAndUsageWithResources Expression
+ Amazonka.CostExplorer.GetCostAndUsageWithResources: getCostAndUsageWithResources_granularity :: Lens' GetCostAndUsageWithResources Granularity
+ Amazonka.CostExplorer.GetCostAndUsageWithResources: getCostAndUsageWithResources_groupBy :: Lens' GetCostAndUsageWithResources (Maybe [GroupDefinition])
+ Amazonka.CostExplorer.GetCostAndUsageWithResources: getCostAndUsageWithResources_metrics :: Lens' GetCostAndUsageWithResources (Maybe [Text])
+ Amazonka.CostExplorer.GetCostAndUsageWithResources: getCostAndUsageWithResources_nextPageToken :: Lens' GetCostAndUsageWithResources (Maybe Text)
+ Amazonka.CostExplorer.GetCostAndUsageWithResources: getCostAndUsageWithResources_timePeriod :: Lens' GetCostAndUsageWithResources DateInterval
+ Amazonka.CostExplorer.GetCostAndUsageWithResources: instance Amazonka.Data.Headers.ToHeaders Amazonka.CostExplorer.GetCostAndUsageWithResources.GetCostAndUsageWithResources
+ Amazonka.CostExplorer.GetCostAndUsageWithResources: instance Amazonka.Data.Path.ToPath Amazonka.CostExplorer.GetCostAndUsageWithResources.GetCostAndUsageWithResources
+ Amazonka.CostExplorer.GetCostAndUsageWithResources: instance Amazonka.Data.Query.ToQuery Amazonka.CostExplorer.GetCostAndUsageWithResources.GetCostAndUsageWithResources
+ Amazonka.CostExplorer.GetCostAndUsageWithResources: instance Amazonka.Types.AWSRequest Amazonka.CostExplorer.GetCostAndUsageWithResources.GetCostAndUsageWithResources
+ Amazonka.CostExplorer.GetCostAndUsageWithResources: instance Control.DeepSeq.NFData Amazonka.CostExplorer.GetCostAndUsageWithResources.GetCostAndUsageWithResources
+ Amazonka.CostExplorer.GetCostAndUsageWithResources: instance Control.DeepSeq.NFData Amazonka.CostExplorer.GetCostAndUsageWithResources.GetCostAndUsageWithResourcesResponse
+ Amazonka.CostExplorer.GetCostAndUsageWithResources: instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.CostExplorer.GetCostAndUsageWithResources.GetCostAndUsageWithResources
+ Amazonka.CostExplorer.GetCostAndUsageWithResources: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.GetCostAndUsageWithResources.GetCostAndUsageWithResources
+ Amazonka.CostExplorer.GetCostAndUsageWithResources: instance GHC.Classes.Eq Amazonka.CostExplorer.GetCostAndUsageWithResources.GetCostAndUsageWithResources
+ Amazonka.CostExplorer.GetCostAndUsageWithResources: instance GHC.Classes.Eq Amazonka.CostExplorer.GetCostAndUsageWithResources.GetCostAndUsageWithResourcesResponse
+ Amazonka.CostExplorer.GetCostAndUsageWithResources: instance GHC.Generics.Generic Amazonka.CostExplorer.GetCostAndUsageWithResources.GetCostAndUsageWithResources
+ Amazonka.CostExplorer.GetCostAndUsageWithResources: instance GHC.Generics.Generic Amazonka.CostExplorer.GetCostAndUsageWithResources.GetCostAndUsageWithResourcesResponse
+ Amazonka.CostExplorer.GetCostAndUsageWithResources: instance GHC.Read.Read Amazonka.CostExplorer.GetCostAndUsageWithResources.GetCostAndUsageWithResources
+ Amazonka.CostExplorer.GetCostAndUsageWithResources: instance GHC.Read.Read Amazonka.CostExplorer.GetCostAndUsageWithResources.GetCostAndUsageWithResourcesResponse
+ Amazonka.CostExplorer.GetCostAndUsageWithResources: instance GHC.Show.Show Amazonka.CostExplorer.GetCostAndUsageWithResources.GetCostAndUsageWithResources
+ Amazonka.CostExplorer.GetCostAndUsageWithResources: instance GHC.Show.Show Amazonka.CostExplorer.GetCostAndUsageWithResources.GetCostAndUsageWithResourcesResponse
+ Amazonka.CostExplorer.GetCostAndUsageWithResources: newGetCostAndUsageWithResources :: DateInterval -> Granularity -> Expression -> GetCostAndUsageWithResources
+ Amazonka.CostExplorer.GetCostAndUsageWithResources: newGetCostAndUsageWithResourcesResponse :: Int -> GetCostAndUsageWithResourcesResponse
+ Amazonka.CostExplorer.GetCostCategories: GetCostCategories' :: Maybe Text -> Maybe Expression -> Maybe Natural -> Maybe Text -> Maybe Text -> Maybe [SortDefinition] -> DateInterval -> GetCostCategories
+ Amazonka.CostExplorer.GetCostCategories: GetCostCategoriesResponse' :: Maybe [Text] -> Maybe [Text] -> Maybe Text -> Int -> Int -> Int -> GetCostCategoriesResponse
+ Amazonka.CostExplorer.GetCostCategories: [$sel:costCategoryName:GetCostCategories'] :: GetCostCategories -> Maybe Text
+ Amazonka.CostExplorer.GetCostCategories: [$sel:costCategoryNames:GetCostCategoriesResponse'] :: GetCostCategoriesResponse -> Maybe [Text]
+ Amazonka.CostExplorer.GetCostCategories: [$sel:costCategoryValues:GetCostCategoriesResponse'] :: GetCostCategoriesResponse -> Maybe [Text]
+ Amazonka.CostExplorer.GetCostCategories: [$sel:filter':GetCostCategories'] :: GetCostCategories -> Maybe Expression
+ Amazonka.CostExplorer.GetCostCategories: [$sel:httpStatus:GetCostCategoriesResponse'] :: GetCostCategoriesResponse -> Int
+ Amazonka.CostExplorer.GetCostCategories: [$sel:maxResults:GetCostCategories'] :: GetCostCategories -> Maybe Natural
+ Amazonka.CostExplorer.GetCostCategories: [$sel:nextPageToken:GetCostCategories'] :: GetCostCategories -> Maybe Text
+ Amazonka.CostExplorer.GetCostCategories: [$sel:nextPageToken:GetCostCategoriesResponse'] :: GetCostCategoriesResponse -> Maybe Text
+ Amazonka.CostExplorer.GetCostCategories: [$sel:returnSize:GetCostCategoriesResponse'] :: GetCostCategoriesResponse -> Int
+ Amazonka.CostExplorer.GetCostCategories: [$sel:searchString:GetCostCategories'] :: GetCostCategories -> Maybe Text
+ Amazonka.CostExplorer.GetCostCategories: [$sel:sortBy:GetCostCategories'] :: GetCostCategories -> Maybe [SortDefinition]
+ Amazonka.CostExplorer.GetCostCategories: [$sel:timePeriod:GetCostCategories'] :: GetCostCategories -> DateInterval
+ Amazonka.CostExplorer.GetCostCategories: [$sel:totalSize:GetCostCategoriesResponse'] :: GetCostCategoriesResponse -> Int
+ Amazonka.CostExplorer.GetCostCategories: data GetCostCategories
+ Amazonka.CostExplorer.GetCostCategories: data GetCostCategoriesResponse
+ Amazonka.CostExplorer.GetCostCategories: getCostCategoriesResponse_costCategoryNames :: Lens' GetCostCategoriesResponse (Maybe [Text])
+ Amazonka.CostExplorer.GetCostCategories: getCostCategoriesResponse_costCategoryValues :: Lens' GetCostCategoriesResponse (Maybe [Text])
+ Amazonka.CostExplorer.GetCostCategories: getCostCategoriesResponse_httpStatus :: Lens' GetCostCategoriesResponse Int
+ Amazonka.CostExplorer.GetCostCategories: getCostCategoriesResponse_nextPageToken :: Lens' GetCostCategoriesResponse (Maybe Text)
+ Amazonka.CostExplorer.GetCostCategories: getCostCategoriesResponse_returnSize :: Lens' GetCostCategoriesResponse Int
+ Amazonka.CostExplorer.GetCostCategories: getCostCategoriesResponse_totalSize :: Lens' GetCostCategoriesResponse Int
+ Amazonka.CostExplorer.GetCostCategories: getCostCategories_costCategoryName :: Lens' GetCostCategories (Maybe Text)
+ Amazonka.CostExplorer.GetCostCategories: getCostCategories_filter :: Lens' GetCostCategories (Maybe Expression)
+ Amazonka.CostExplorer.GetCostCategories: getCostCategories_maxResults :: Lens' GetCostCategories (Maybe Natural)
+ Amazonka.CostExplorer.GetCostCategories: getCostCategories_nextPageToken :: Lens' GetCostCategories (Maybe Text)
+ Amazonka.CostExplorer.GetCostCategories: getCostCategories_searchString :: Lens' GetCostCategories (Maybe Text)
+ Amazonka.CostExplorer.GetCostCategories: getCostCategories_sortBy :: Lens' GetCostCategories (Maybe [SortDefinition])
+ Amazonka.CostExplorer.GetCostCategories: getCostCategories_timePeriod :: Lens' GetCostCategories DateInterval
+ Amazonka.CostExplorer.GetCostCategories: instance Amazonka.Data.Headers.ToHeaders Amazonka.CostExplorer.GetCostCategories.GetCostCategories
+ Amazonka.CostExplorer.GetCostCategories: instance Amazonka.Data.Path.ToPath Amazonka.CostExplorer.GetCostCategories.GetCostCategories
+ Amazonka.CostExplorer.GetCostCategories: instance Amazonka.Data.Query.ToQuery Amazonka.CostExplorer.GetCostCategories.GetCostCategories
+ Amazonka.CostExplorer.GetCostCategories: instance Amazonka.Types.AWSRequest Amazonka.CostExplorer.GetCostCategories.GetCostCategories
+ Amazonka.CostExplorer.GetCostCategories: instance Control.DeepSeq.NFData Amazonka.CostExplorer.GetCostCategories.GetCostCategories
+ Amazonka.CostExplorer.GetCostCategories: instance Control.DeepSeq.NFData Amazonka.CostExplorer.GetCostCategories.GetCostCategoriesResponse
+ Amazonka.CostExplorer.GetCostCategories: instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.CostExplorer.GetCostCategories.GetCostCategories
+ Amazonka.CostExplorer.GetCostCategories: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.GetCostCategories.GetCostCategories
+ Amazonka.CostExplorer.GetCostCategories: instance GHC.Classes.Eq Amazonka.CostExplorer.GetCostCategories.GetCostCategories
+ Amazonka.CostExplorer.GetCostCategories: instance GHC.Classes.Eq Amazonka.CostExplorer.GetCostCategories.GetCostCategoriesResponse
+ Amazonka.CostExplorer.GetCostCategories: instance GHC.Generics.Generic Amazonka.CostExplorer.GetCostCategories.GetCostCategories
+ Amazonka.CostExplorer.GetCostCategories: instance GHC.Generics.Generic Amazonka.CostExplorer.GetCostCategories.GetCostCategoriesResponse
+ Amazonka.CostExplorer.GetCostCategories: instance GHC.Read.Read Amazonka.CostExplorer.GetCostCategories.GetCostCategories
+ Amazonka.CostExplorer.GetCostCategories: instance GHC.Read.Read Amazonka.CostExplorer.GetCostCategories.GetCostCategoriesResponse
+ Amazonka.CostExplorer.GetCostCategories: instance GHC.Show.Show Amazonka.CostExplorer.GetCostCategories.GetCostCategories
+ Amazonka.CostExplorer.GetCostCategories: instance GHC.Show.Show Amazonka.CostExplorer.GetCostCategories.GetCostCategoriesResponse
+ Amazonka.CostExplorer.GetCostCategories: newGetCostCategories :: DateInterval -> GetCostCategories
+ Amazonka.CostExplorer.GetCostCategories: newGetCostCategoriesResponse :: Int -> Int -> Int -> GetCostCategoriesResponse
+ Amazonka.CostExplorer.GetCostForecast: GetCostForecast' :: Maybe Expression -> Maybe Natural -> DateInterval -> Metric -> Granularity -> GetCostForecast
+ Amazonka.CostExplorer.GetCostForecast: GetCostForecastResponse' :: Maybe [ForecastResult] -> Maybe MetricValue -> Int -> GetCostForecastResponse
+ Amazonka.CostExplorer.GetCostForecast: [$sel:filter':GetCostForecast'] :: GetCostForecast -> Maybe Expression
+ Amazonka.CostExplorer.GetCostForecast: [$sel:forecastResultsByTime:GetCostForecastResponse'] :: GetCostForecastResponse -> Maybe [ForecastResult]
+ Amazonka.CostExplorer.GetCostForecast: [$sel:granularity:GetCostForecast'] :: GetCostForecast -> Granularity
+ Amazonka.CostExplorer.GetCostForecast: [$sel:httpStatus:GetCostForecastResponse'] :: GetCostForecastResponse -> Int
+ Amazonka.CostExplorer.GetCostForecast: [$sel:metric:GetCostForecast'] :: GetCostForecast -> Metric
+ Amazonka.CostExplorer.GetCostForecast: [$sel:predictionIntervalLevel:GetCostForecast'] :: GetCostForecast -> Maybe Natural
+ Amazonka.CostExplorer.GetCostForecast: [$sel:timePeriod:GetCostForecast'] :: GetCostForecast -> DateInterval
+ Amazonka.CostExplorer.GetCostForecast: [$sel:total:GetCostForecastResponse'] :: GetCostForecastResponse -> Maybe MetricValue
+ Amazonka.CostExplorer.GetCostForecast: data GetCostForecast
+ Amazonka.CostExplorer.GetCostForecast: data GetCostForecastResponse
+ Amazonka.CostExplorer.GetCostForecast: getCostForecastResponse_forecastResultsByTime :: Lens' GetCostForecastResponse (Maybe [ForecastResult])
+ Amazonka.CostExplorer.GetCostForecast: getCostForecastResponse_httpStatus :: Lens' GetCostForecastResponse Int
+ Amazonka.CostExplorer.GetCostForecast: getCostForecastResponse_total :: Lens' GetCostForecastResponse (Maybe MetricValue)
+ Amazonka.CostExplorer.GetCostForecast: getCostForecast_filter :: Lens' GetCostForecast (Maybe Expression)
+ Amazonka.CostExplorer.GetCostForecast: getCostForecast_granularity :: Lens' GetCostForecast Granularity
+ Amazonka.CostExplorer.GetCostForecast: getCostForecast_metric :: Lens' GetCostForecast Metric
+ Amazonka.CostExplorer.GetCostForecast: getCostForecast_predictionIntervalLevel :: Lens' GetCostForecast (Maybe Natural)
+ Amazonka.CostExplorer.GetCostForecast: getCostForecast_timePeriod :: Lens' GetCostForecast DateInterval
+ Amazonka.CostExplorer.GetCostForecast: instance Amazonka.Data.Headers.ToHeaders Amazonka.CostExplorer.GetCostForecast.GetCostForecast
+ Amazonka.CostExplorer.GetCostForecast: instance Amazonka.Data.Path.ToPath Amazonka.CostExplorer.GetCostForecast.GetCostForecast
+ Amazonka.CostExplorer.GetCostForecast: instance Amazonka.Data.Query.ToQuery Amazonka.CostExplorer.GetCostForecast.GetCostForecast
+ Amazonka.CostExplorer.GetCostForecast: instance Amazonka.Types.AWSRequest Amazonka.CostExplorer.GetCostForecast.GetCostForecast
+ Amazonka.CostExplorer.GetCostForecast: instance Control.DeepSeq.NFData Amazonka.CostExplorer.GetCostForecast.GetCostForecast
+ Amazonka.CostExplorer.GetCostForecast: instance Control.DeepSeq.NFData Amazonka.CostExplorer.GetCostForecast.GetCostForecastResponse
+ Amazonka.CostExplorer.GetCostForecast: instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.CostExplorer.GetCostForecast.GetCostForecast
+ Amazonka.CostExplorer.GetCostForecast: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.GetCostForecast.GetCostForecast
+ Amazonka.CostExplorer.GetCostForecast: instance GHC.Classes.Eq Amazonka.CostExplorer.GetCostForecast.GetCostForecast
+ Amazonka.CostExplorer.GetCostForecast: instance GHC.Classes.Eq Amazonka.CostExplorer.GetCostForecast.GetCostForecastResponse
+ Amazonka.CostExplorer.GetCostForecast: instance GHC.Generics.Generic Amazonka.CostExplorer.GetCostForecast.GetCostForecast
+ Amazonka.CostExplorer.GetCostForecast: instance GHC.Generics.Generic Amazonka.CostExplorer.GetCostForecast.GetCostForecastResponse
+ Amazonka.CostExplorer.GetCostForecast: instance GHC.Read.Read Amazonka.CostExplorer.GetCostForecast.GetCostForecast
+ Amazonka.CostExplorer.GetCostForecast: instance GHC.Read.Read Amazonka.CostExplorer.GetCostForecast.GetCostForecastResponse
+ Amazonka.CostExplorer.GetCostForecast: instance GHC.Show.Show Amazonka.CostExplorer.GetCostForecast.GetCostForecast
+ Amazonka.CostExplorer.GetCostForecast: instance GHC.Show.Show Amazonka.CostExplorer.GetCostForecast.GetCostForecastResponse
+ Amazonka.CostExplorer.GetCostForecast: newGetCostForecast :: DateInterval -> Metric -> Granularity -> GetCostForecast
+ Amazonka.CostExplorer.GetCostForecast: newGetCostForecastResponse :: Int -> GetCostForecastResponse
+ Amazonka.CostExplorer.GetDimensionValues: GetDimensionValues' :: Maybe Context -> Maybe Expression -> Maybe Natural -> Maybe Text -> Maybe Text -> Maybe [SortDefinition] -> DateInterval -> Dimension -> GetDimensionValues
+ Amazonka.CostExplorer.GetDimensionValues: GetDimensionValuesResponse' :: Maybe Text -> Int -> [DimensionValuesWithAttributes] -> Int -> Int -> GetDimensionValuesResponse
+ Amazonka.CostExplorer.GetDimensionValues: [$sel:context:GetDimensionValues'] :: GetDimensionValues -> Maybe Context
+ Amazonka.CostExplorer.GetDimensionValues: [$sel:dimension:GetDimensionValues'] :: GetDimensionValues -> Dimension
+ Amazonka.CostExplorer.GetDimensionValues: [$sel:dimensionValues:GetDimensionValuesResponse'] :: GetDimensionValuesResponse -> [DimensionValuesWithAttributes]
+ Amazonka.CostExplorer.GetDimensionValues: [$sel:filter':GetDimensionValues'] :: GetDimensionValues -> Maybe Expression
+ Amazonka.CostExplorer.GetDimensionValues: [$sel:httpStatus:GetDimensionValuesResponse'] :: GetDimensionValuesResponse -> Int
+ Amazonka.CostExplorer.GetDimensionValues: [$sel:maxResults:GetDimensionValues'] :: GetDimensionValues -> Maybe Natural
+ Amazonka.CostExplorer.GetDimensionValues: [$sel:nextPageToken:GetDimensionValues'] :: GetDimensionValues -> Maybe Text
+ Amazonka.CostExplorer.GetDimensionValues: [$sel:nextPageToken:GetDimensionValuesResponse'] :: GetDimensionValuesResponse -> Maybe Text
+ Amazonka.CostExplorer.GetDimensionValues: [$sel:returnSize:GetDimensionValuesResponse'] :: GetDimensionValuesResponse -> Int
+ Amazonka.CostExplorer.GetDimensionValues: [$sel:searchString:GetDimensionValues'] :: GetDimensionValues -> Maybe Text
+ Amazonka.CostExplorer.GetDimensionValues: [$sel:sortBy:GetDimensionValues'] :: GetDimensionValues -> Maybe [SortDefinition]
+ Amazonka.CostExplorer.GetDimensionValues: [$sel:timePeriod:GetDimensionValues'] :: GetDimensionValues -> DateInterval
+ Amazonka.CostExplorer.GetDimensionValues: [$sel:totalSize:GetDimensionValuesResponse'] :: GetDimensionValuesResponse -> Int
+ Amazonka.CostExplorer.GetDimensionValues: data GetDimensionValues
+ Amazonka.CostExplorer.GetDimensionValues: data GetDimensionValuesResponse
+ Amazonka.CostExplorer.GetDimensionValues: getDimensionValuesResponse_dimensionValues :: Lens' GetDimensionValuesResponse [DimensionValuesWithAttributes]
+ Amazonka.CostExplorer.GetDimensionValues: getDimensionValuesResponse_httpStatus :: Lens' GetDimensionValuesResponse Int
+ Amazonka.CostExplorer.GetDimensionValues: getDimensionValuesResponse_nextPageToken :: Lens' GetDimensionValuesResponse (Maybe Text)
+ Amazonka.CostExplorer.GetDimensionValues: getDimensionValuesResponse_returnSize :: Lens' GetDimensionValuesResponse Int
+ Amazonka.CostExplorer.GetDimensionValues: getDimensionValuesResponse_totalSize :: Lens' GetDimensionValuesResponse Int
+ Amazonka.CostExplorer.GetDimensionValues: getDimensionValues_context :: Lens' GetDimensionValues (Maybe Context)
+ Amazonka.CostExplorer.GetDimensionValues: getDimensionValues_dimension :: Lens' GetDimensionValues Dimension
+ Amazonka.CostExplorer.GetDimensionValues: getDimensionValues_filter :: Lens' GetDimensionValues (Maybe Expression)
+ Amazonka.CostExplorer.GetDimensionValues: getDimensionValues_maxResults :: Lens' GetDimensionValues (Maybe Natural)
+ Amazonka.CostExplorer.GetDimensionValues: getDimensionValues_nextPageToken :: Lens' GetDimensionValues (Maybe Text)
+ Amazonka.CostExplorer.GetDimensionValues: getDimensionValues_searchString :: Lens' GetDimensionValues (Maybe Text)
+ Amazonka.CostExplorer.GetDimensionValues: getDimensionValues_sortBy :: Lens' GetDimensionValues (Maybe [SortDefinition])
+ Amazonka.CostExplorer.GetDimensionValues: getDimensionValues_timePeriod :: Lens' GetDimensionValues DateInterval
+ Amazonka.CostExplorer.GetDimensionValues: instance Amazonka.Data.Headers.ToHeaders Amazonka.CostExplorer.GetDimensionValues.GetDimensionValues
+ Amazonka.CostExplorer.GetDimensionValues: instance Amazonka.Data.Path.ToPath Amazonka.CostExplorer.GetDimensionValues.GetDimensionValues
+ Amazonka.CostExplorer.GetDimensionValues: instance Amazonka.Data.Query.ToQuery Amazonka.CostExplorer.GetDimensionValues.GetDimensionValues
+ Amazonka.CostExplorer.GetDimensionValues: instance Amazonka.Types.AWSRequest Amazonka.CostExplorer.GetDimensionValues.GetDimensionValues
+ Amazonka.CostExplorer.GetDimensionValues: instance Control.DeepSeq.NFData Amazonka.CostExplorer.GetDimensionValues.GetDimensionValues
+ Amazonka.CostExplorer.GetDimensionValues: instance Control.DeepSeq.NFData Amazonka.CostExplorer.GetDimensionValues.GetDimensionValuesResponse
+ Amazonka.CostExplorer.GetDimensionValues: instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.CostExplorer.GetDimensionValues.GetDimensionValues
+ Amazonka.CostExplorer.GetDimensionValues: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.GetDimensionValues.GetDimensionValues
+ Amazonka.CostExplorer.GetDimensionValues: instance GHC.Classes.Eq Amazonka.CostExplorer.GetDimensionValues.GetDimensionValues
+ Amazonka.CostExplorer.GetDimensionValues: instance GHC.Classes.Eq Amazonka.CostExplorer.GetDimensionValues.GetDimensionValuesResponse
+ Amazonka.CostExplorer.GetDimensionValues: instance GHC.Generics.Generic Amazonka.CostExplorer.GetDimensionValues.GetDimensionValues
+ Amazonka.CostExplorer.GetDimensionValues: instance GHC.Generics.Generic Amazonka.CostExplorer.GetDimensionValues.GetDimensionValuesResponse
+ Amazonka.CostExplorer.GetDimensionValues: instance GHC.Read.Read Amazonka.CostExplorer.GetDimensionValues.GetDimensionValues
+ Amazonka.CostExplorer.GetDimensionValues: instance GHC.Read.Read Amazonka.CostExplorer.GetDimensionValues.GetDimensionValuesResponse
+ Amazonka.CostExplorer.GetDimensionValues: instance GHC.Show.Show Amazonka.CostExplorer.GetDimensionValues.GetDimensionValues
+ Amazonka.CostExplorer.GetDimensionValues: instance GHC.Show.Show Amazonka.CostExplorer.GetDimensionValues.GetDimensionValuesResponse
+ Amazonka.CostExplorer.GetDimensionValues: newGetDimensionValues :: DateInterval -> Dimension -> GetDimensionValues
+ Amazonka.CostExplorer.GetDimensionValues: newGetDimensionValuesResponse :: Int -> Int -> Int -> GetDimensionValuesResponse
+ Amazonka.CostExplorer.GetReservationCoverage: GetReservationCoverage' :: Maybe Expression -> Maybe Granularity -> Maybe [GroupDefinition] -> Maybe Natural -> Maybe [Text] -> Maybe Text -> Maybe SortDefinition -> DateInterval -> GetReservationCoverage
+ Amazonka.CostExplorer.GetReservationCoverage: GetReservationCoverageResponse' :: Maybe Text -> Maybe Coverage -> Int -> [CoverageByTime] -> GetReservationCoverageResponse
+ Amazonka.CostExplorer.GetReservationCoverage: [$sel:coveragesByTime:GetReservationCoverageResponse'] :: GetReservationCoverageResponse -> [CoverageByTime]
+ Amazonka.CostExplorer.GetReservationCoverage: [$sel:filter':GetReservationCoverage'] :: GetReservationCoverage -> Maybe Expression
+ Amazonka.CostExplorer.GetReservationCoverage: [$sel:granularity:GetReservationCoverage'] :: GetReservationCoverage -> Maybe Granularity
+ Amazonka.CostExplorer.GetReservationCoverage: [$sel:groupBy:GetReservationCoverage'] :: GetReservationCoverage -> Maybe [GroupDefinition]
+ Amazonka.CostExplorer.GetReservationCoverage: [$sel:httpStatus:GetReservationCoverageResponse'] :: GetReservationCoverageResponse -> Int
+ Amazonka.CostExplorer.GetReservationCoverage: [$sel:maxResults:GetReservationCoverage'] :: GetReservationCoverage -> Maybe Natural
+ Amazonka.CostExplorer.GetReservationCoverage: [$sel:metrics:GetReservationCoverage'] :: GetReservationCoverage -> Maybe [Text]
+ Amazonka.CostExplorer.GetReservationCoverage: [$sel:nextPageToken:GetReservationCoverage'] :: GetReservationCoverage -> Maybe Text
+ Amazonka.CostExplorer.GetReservationCoverage: [$sel:nextPageToken:GetReservationCoverageResponse'] :: GetReservationCoverageResponse -> Maybe Text
+ Amazonka.CostExplorer.GetReservationCoverage: [$sel:sortBy:GetReservationCoverage'] :: GetReservationCoverage -> Maybe SortDefinition
+ Amazonka.CostExplorer.GetReservationCoverage: [$sel:timePeriod:GetReservationCoverage'] :: GetReservationCoverage -> DateInterval
+ Amazonka.CostExplorer.GetReservationCoverage: [$sel:total:GetReservationCoverageResponse'] :: GetReservationCoverageResponse -> Maybe Coverage
+ Amazonka.CostExplorer.GetReservationCoverage: data GetReservationCoverage
+ Amazonka.CostExplorer.GetReservationCoverage: data GetReservationCoverageResponse
+ Amazonka.CostExplorer.GetReservationCoverage: getReservationCoverageResponse_coveragesByTime :: Lens' GetReservationCoverageResponse [CoverageByTime]
+ Amazonka.CostExplorer.GetReservationCoverage: getReservationCoverageResponse_httpStatus :: Lens' GetReservationCoverageResponse Int
+ Amazonka.CostExplorer.GetReservationCoverage: getReservationCoverageResponse_nextPageToken :: Lens' GetReservationCoverageResponse (Maybe Text)
+ Amazonka.CostExplorer.GetReservationCoverage: getReservationCoverageResponse_total :: Lens' GetReservationCoverageResponse (Maybe Coverage)
+ Amazonka.CostExplorer.GetReservationCoverage: getReservationCoverage_filter :: Lens' GetReservationCoverage (Maybe Expression)
+ Amazonka.CostExplorer.GetReservationCoverage: getReservationCoverage_granularity :: Lens' GetReservationCoverage (Maybe Granularity)
+ Amazonka.CostExplorer.GetReservationCoverage: getReservationCoverage_groupBy :: Lens' GetReservationCoverage (Maybe [GroupDefinition])
+ Amazonka.CostExplorer.GetReservationCoverage: getReservationCoverage_maxResults :: Lens' GetReservationCoverage (Maybe Natural)
+ Amazonka.CostExplorer.GetReservationCoverage: getReservationCoverage_metrics :: Lens' GetReservationCoverage (Maybe [Text])
+ Amazonka.CostExplorer.GetReservationCoverage: getReservationCoverage_nextPageToken :: Lens' GetReservationCoverage (Maybe Text)
+ Amazonka.CostExplorer.GetReservationCoverage: getReservationCoverage_sortBy :: Lens' GetReservationCoverage (Maybe SortDefinition)
+ Amazonka.CostExplorer.GetReservationCoverage: getReservationCoverage_timePeriod :: Lens' GetReservationCoverage DateInterval
+ Amazonka.CostExplorer.GetReservationCoverage: instance Amazonka.Data.Headers.ToHeaders Amazonka.CostExplorer.GetReservationCoverage.GetReservationCoverage
+ Amazonka.CostExplorer.GetReservationCoverage: instance Amazonka.Data.Path.ToPath Amazonka.CostExplorer.GetReservationCoverage.GetReservationCoverage
+ Amazonka.CostExplorer.GetReservationCoverage: instance Amazonka.Data.Query.ToQuery Amazonka.CostExplorer.GetReservationCoverage.GetReservationCoverage
+ Amazonka.CostExplorer.GetReservationCoverage: instance Amazonka.Types.AWSRequest Amazonka.CostExplorer.GetReservationCoverage.GetReservationCoverage
+ Amazonka.CostExplorer.GetReservationCoverage: instance Control.DeepSeq.NFData Amazonka.CostExplorer.GetReservationCoverage.GetReservationCoverage
+ Amazonka.CostExplorer.GetReservationCoverage: instance Control.DeepSeq.NFData Amazonka.CostExplorer.GetReservationCoverage.GetReservationCoverageResponse
+ Amazonka.CostExplorer.GetReservationCoverage: instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.CostExplorer.GetReservationCoverage.GetReservationCoverage
+ Amazonka.CostExplorer.GetReservationCoverage: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.GetReservationCoverage.GetReservationCoverage
+ Amazonka.CostExplorer.GetReservationCoverage: instance GHC.Classes.Eq Amazonka.CostExplorer.GetReservationCoverage.GetReservationCoverage
+ Amazonka.CostExplorer.GetReservationCoverage: instance GHC.Classes.Eq Amazonka.CostExplorer.GetReservationCoverage.GetReservationCoverageResponse
+ Amazonka.CostExplorer.GetReservationCoverage: instance GHC.Generics.Generic Amazonka.CostExplorer.GetReservationCoverage.GetReservationCoverage
+ Amazonka.CostExplorer.GetReservationCoverage: instance GHC.Generics.Generic Amazonka.CostExplorer.GetReservationCoverage.GetReservationCoverageResponse
+ Amazonka.CostExplorer.GetReservationCoverage: instance GHC.Read.Read Amazonka.CostExplorer.GetReservationCoverage.GetReservationCoverage
+ Amazonka.CostExplorer.GetReservationCoverage: instance GHC.Read.Read Amazonka.CostExplorer.GetReservationCoverage.GetReservationCoverageResponse
+ Amazonka.CostExplorer.GetReservationCoverage: instance GHC.Show.Show Amazonka.CostExplorer.GetReservationCoverage.GetReservationCoverage
+ Amazonka.CostExplorer.GetReservationCoverage: instance GHC.Show.Show Amazonka.CostExplorer.GetReservationCoverage.GetReservationCoverageResponse
+ Amazonka.CostExplorer.GetReservationCoverage: newGetReservationCoverage :: DateInterval -> GetReservationCoverage
+ Amazonka.CostExplorer.GetReservationCoverage: newGetReservationCoverageResponse :: Int -> GetReservationCoverageResponse
+ Amazonka.CostExplorer.GetReservationPurchaseRecommendation: GetReservationPurchaseRecommendation' :: Maybe Text -> Maybe AccountScope -> Maybe Expression -> Maybe LookbackPeriodInDays -> Maybe Text -> Maybe Natural -> Maybe PaymentOption -> Maybe ServiceSpecification -> Maybe TermInYears -> Text -> GetReservationPurchaseRecommendation
+ Amazonka.CostExplorer.GetReservationPurchaseRecommendation: GetReservationPurchaseRecommendationResponse' :: Maybe ReservationPurchaseRecommendationMetadata -> Maybe Text -> Maybe [ReservationPurchaseRecommendation] -> Int -> GetReservationPurchaseRecommendationResponse
+ Amazonka.CostExplorer.GetReservationPurchaseRecommendation: [$sel:accountId:GetReservationPurchaseRecommendation'] :: GetReservationPurchaseRecommendation -> Maybe Text
+ Amazonka.CostExplorer.GetReservationPurchaseRecommendation: [$sel:accountScope:GetReservationPurchaseRecommendation'] :: GetReservationPurchaseRecommendation -> Maybe AccountScope
+ Amazonka.CostExplorer.GetReservationPurchaseRecommendation: [$sel:filter':GetReservationPurchaseRecommendation'] :: GetReservationPurchaseRecommendation -> Maybe Expression
+ Amazonka.CostExplorer.GetReservationPurchaseRecommendation: [$sel:httpStatus:GetReservationPurchaseRecommendationResponse'] :: GetReservationPurchaseRecommendationResponse -> Int
+ Amazonka.CostExplorer.GetReservationPurchaseRecommendation: [$sel:lookbackPeriodInDays:GetReservationPurchaseRecommendation'] :: GetReservationPurchaseRecommendation -> Maybe LookbackPeriodInDays
+ Amazonka.CostExplorer.GetReservationPurchaseRecommendation: [$sel:metadata:GetReservationPurchaseRecommendationResponse'] :: GetReservationPurchaseRecommendationResponse -> Maybe ReservationPurchaseRecommendationMetadata
+ Amazonka.CostExplorer.GetReservationPurchaseRecommendation: [$sel:nextPageToken:GetReservationPurchaseRecommendation'] :: GetReservationPurchaseRecommendation -> Maybe Text
+ Amazonka.CostExplorer.GetReservationPurchaseRecommendation: [$sel:nextPageToken:GetReservationPurchaseRecommendationResponse'] :: GetReservationPurchaseRecommendationResponse -> Maybe Text
+ Amazonka.CostExplorer.GetReservationPurchaseRecommendation: [$sel:pageSize:GetReservationPurchaseRecommendation'] :: GetReservationPurchaseRecommendation -> Maybe Natural
+ Amazonka.CostExplorer.GetReservationPurchaseRecommendation: [$sel:paymentOption:GetReservationPurchaseRecommendation'] :: GetReservationPurchaseRecommendation -> Maybe PaymentOption
+ Amazonka.CostExplorer.GetReservationPurchaseRecommendation: [$sel:recommendations:GetReservationPurchaseRecommendationResponse'] :: GetReservationPurchaseRecommendationResponse -> Maybe [ReservationPurchaseRecommendation]
+ Amazonka.CostExplorer.GetReservationPurchaseRecommendation: [$sel:service:GetReservationPurchaseRecommendation'] :: GetReservationPurchaseRecommendation -> Text
+ Amazonka.CostExplorer.GetReservationPurchaseRecommendation: [$sel:serviceSpecification:GetReservationPurchaseRecommendation'] :: GetReservationPurchaseRecommendation -> Maybe ServiceSpecification
+ Amazonka.CostExplorer.GetReservationPurchaseRecommendation: [$sel:termInYears:GetReservationPurchaseRecommendation'] :: GetReservationPurchaseRecommendation -> Maybe TermInYears
+ Amazonka.CostExplorer.GetReservationPurchaseRecommendation: data GetReservationPurchaseRecommendation
+ Amazonka.CostExplorer.GetReservationPurchaseRecommendation: data GetReservationPurchaseRecommendationResponse
+ Amazonka.CostExplorer.GetReservationPurchaseRecommendation: getReservationPurchaseRecommendationResponse_httpStatus :: Lens' GetReservationPurchaseRecommendationResponse Int
+ Amazonka.CostExplorer.GetReservationPurchaseRecommendation: getReservationPurchaseRecommendationResponse_metadata :: Lens' GetReservationPurchaseRecommendationResponse (Maybe ReservationPurchaseRecommendationMetadata)
+ Amazonka.CostExplorer.GetReservationPurchaseRecommendation: getReservationPurchaseRecommendationResponse_nextPageToken :: Lens' GetReservationPurchaseRecommendationResponse (Maybe Text)
+ Amazonka.CostExplorer.GetReservationPurchaseRecommendation: getReservationPurchaseRecommendationResponse_recommendations :: Lens' GetReservationPurchaseRecommendationResponse (Maybe [ReservationPurchaseRecommendation])
+ Amazonka.CostExplorer.GetReservationPurchaseRecommendation: getReservationPurchaseRecommendation_accountId :: Lens' GetReservationPurchaseRecommendation (Maybe Text)
+ Amazonka.CostExplorer.GetReservationPurchaseRecommendation: getReservationPurchaseRecommendation_accountScope :: Lens' GetReservationPurchaseRecommendation (Maybe AccountScope)
+ Amazonka.CostExplorer.GetReservationPurchaseRecommendation: getReservationPurchaseRecommendation_filter :: Lens' GetReservationPurchaseRecommendation (Maybe Expression)
+ Amazonka.CostExplorer.GetReservationPurchaseRecommendation: getReservationPurchaseRecommendation_lookbackPeriodInDays :: Lens' GetReservationPurchaseRecommendation (Maybe LookbackPeriodInDays)
+ Amazonka.CostExplorer.GetReservationPurchaseRecommendation: getReservationPurchaseRecommendation_nextPageToken :: Lens' GetReservationPurchaseRecommendation (Maybe Text)
+ Amazonka.CostExplorer.GetReservationPurchaseRecommendation: getReservationPurchaseRecommendation_pageSize :: Lens' GetReservationPurchaseRecommendation (Maybe Natural)
+ Amazonka.CostExplorer.GetReservationPurchaseRecommendation: getReservationPurchaseRecommendation_paymentOption :: Lens' GetReservationPurchaseRecommendation (Maybe PaymentOption)
+ Amazonka.CostExplorer.GetReservationPurchaseRecommendation: getReservationPurchaseRecommendation_service :: Lens' GetReservationPurchaseRecommendation Text
+ Amazonka.CostExplorer.GetReservationPurchaseRecommendation: getReservationPurchaseRecommendation_serviceSpecification :: Lens' GetReservationPurchaseRecommendation (Maybe ServiceSpecification)
+ Amazonka.CostExplorer.GetReservationPurchaseRecommendation: getReservationPurchaseRecommendation_termInYears :: Lens' GetReservationPurchaseRecommendation (Maybe TermInYears)
+ Amazonka.CostExplorer.GetReservationPurchaseRecommendation: instance Amazonka.Data.Headers.ToHeaders Amazonka.CostExplorer.GetReservationPurchaseRecommendation.GetReservationPurchaseRecommendation
+ Amazonka.CostExplorer.GetReservationPurchaseRecommendation: instance Amazonka.Data.Path.ToPath Amazonka.CostExplorer.GetReservationPurchaseRecommendation.GetReservationPurchaseRecommendation
+ Amazonka.CostExplorer.GetReservationPurchaseRecommendation: instance Amazonka.Data.Query.ToQuery Amazonka.CostExplorer.GetReservationPurchaseRecommendation.GetReservationPurchaseRecommendation
+ Amazonka.CostExplorer.GetReservationPurchaseRecommendation: instance Amazonka.Types.AWSRequest Amazonka.CostExplorer.GetReservationPurchaseRecommendation.GetReservationPurchaseRecommendation
+ Amazonka.CostExplorer.GetReservationPurchaseRecommendation: instance Control.DeepSeq.NFData Amazonka.CostExplorer.GetReservationPurchaseRecommendation.GetReservationPurchaseRecommendation
+ Amazonka.CostExplorer.GetReservationPurchaseRecommendation: instance Control.DeepSeq.NFData Amazonka.CostExplorer.GetReservationPurchaseRecommendation.GetReservationPurchaseRecommendationResponse
+ Amazonka.CostExplorer.GetReservationPurchaseRecommendation: instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.CostExplorer.GetReservationPurchaseRecommendation.GetReservationPurchaseRecommendation
+ Amazonka.CostExplorer.GetReservationPurchaseRecommendation: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.GetReservationPurchaseRecommendation.GetReservationPurchaseRecommendation
+ Amazonka.CostExplorer.GetReservationPurchaseRecommendation: instance GHC.Classes.Eq Amazonka.CostExplorer.GetReservationPurchaseRecommendation.GetReservationPurchaseRecommendation
+ Amazonka.CostExplorer.GetReservationPurchaseRecommendation: instance GHC.Classes.Eq Amazonka.CostExplorer.GetReservationPurchaseRecommendation.GetReservationPurchaseRecommendationResponse
+ Amazonka.CostExplorer.GetReservationPurchaseRecommendation: instance GHC.Generics.Generic Amazonka.CostExplorer.GetReservationPurchaseRecommendation.GetReservationPurchaseRecommendation
+ Amazonka.CostExplorer.GetReservationPurchaseRecommendation: instance GHC.Generics.Generic Amazonka.CostExplorer.GetReservationPurchaseRecommendation.GetReservationPurchaseRecommendationResponse
+ Amazonka.CostExplorer.GetReservationPurchaseRecommendation: instance GHC.Read.Read Amazonka.CostExplorer.GetReservationPurchaseRecommendation.GetReservationPurchaseRecommendation
+ Amazonka.CostExplorer.GetReservationPurchaseRecommendation: instance GHC.Read.Read Amazonka.CostExplorer.GetReservationPurchaseRecommendation.GetReservationPurchaseRecommendationResponse
+ Amazonka.CostExplorer.GetReservationPurchaseRecommendation: instance GHC.Show.Show Amazonka.CostExplorer.GetReservationPurchaseRecommendation.GetReservationPurchaseRecommendation
+ Amazonka.CostExplorer.GetReservationPurchaseRecommendation: instance GHC.Show.Show Amazonka.CostExplorer.GetReservationPurchaseRecommendation.GetReservationPurchaseRecommendationResponse
+ Amazonka.CostExplorer.GetReservationPurchaseRecommendation: newGetReservationPurchaseRecommendation :: Text -> GetReservationPurchaseRecommendation
+ Amazonka.CostExplorer.GetReservationPurchaseRecommendation: newGetReservationPurchaseRecommendationResponse :: Int -> GetReservationPurchaseRecommendationResponse
+ Amazonka.CostExplorer.GetReservationUtilization: GetReservationUtilization' :: Maybe Expression -> Maybe Granularity -> Maybe [GroupDefinition] -> Maybe Natural -> Maybe Text -> Maybe SortDefinition -> DateInterval -> GetReservationUtilization
+ Amazonka.CostExplorer.GetReservationUtilization: GetReservationUtilizationResponse' :: Maybe Text -> Maybe ReservationAggregates -> Int -> [UtilizationByTime] -> GetReservationUtilizationResponse
+ Amazonka.CostExplorer.GetReservationUtilization: [$sel:filter':GetReservationUtilization'] :: GetReservationUtilization -> Maybe Expression
+ Amazonka.CostExplorer.GetReservationUtilization: [$sel:granularity:GetReservationUtilization'] :: GetReservationUtilization -> Maybe Granularity
+ Amazonka.CostExplorer.GetReservationUtilization: [$sel:groupBy:GetReservationUtilization'] :: GetReservationUtilization -> Maybe [GroupDefinition]
+ Amazonka.CostExplorer.GetReservationUtilization: [$sel:httpStatus:GetReservationUtilizationResponse'] :: GetReservationUtilizationResponse -> Int
+ Amazonka.CostExplorer.GetReservationUtilization: [$sel:maxResults:GetReservationUtilization'] :: GetReservationUtilization -> Maybe Natural
+ Amazonka.CostExplorer.GetReservationUtilization: [$sel:nextPageToken:GetReservationUtilization'] :: GetReservationUtilization -> Maybe Text
+ Amazonka.CostExplorer.GetReservationUtilization: [$sel:nextPageToken:GetReservationUtilizationResponse'] :: GetReservationUtilizationResponse -> Maybe Text
+ Amazonka.CostExplorer.GetReservationUtilization: [$sel:sortBy:GetReservationUtilization'] :: GetReservationUtilization -> Maybe SortDefinition
+ Amazonka.CostExplorer.GetReservationUtilization: [$sel:timePeriod:GetReservationUtilization'] :: GetReservationUtilization -> DateInterval
+ Amazonka.CostExplorer.GetReservationUtilization: [$sel:total:GetReservationUtilizationResponse'] :: GetReservationUtilizationResponse -> Maybe ReservationAggregates
+ Amazonka.CostExplorer.GetReservationUtilization: [$sel:utilizationsByTime:GetReservationUtilizationResponse'] :: GetReservationUtilizationResponse -> [UtilizationByTime]
+ Amazonka.CostExplorer.GetReservationUtilization: data GetReservationUtilization
+ Amazonka.CostExplorer.GetReservationUtilization: data GetReservationUtilizationResponse
+ Amazonka.CostExplorer.GetReservationUtilization: getReservationUtilizationResponse_httpStatus :: Lens' GetReservationUtilizationResponse Int
+ Amazonka.CostExplorer.GetReservationUtilization: getReservationUtilizationResponse_nextPageToken :: Lens' GetReservationUtilizationResponse (Maybe Text)
+ Amazonka.CostExplorer.GetReservationUtilization: getReservationUtilizationResponse_total :: Lens' GetReservationUtilizationResponse (Maybe ReservationAggregates)
+ Amazonka.CostExplorer.GetReservationUtilization: getReservationUtilizationResponse_utilizationsByTime :: Lens' GetReservationUtilizationResponse [UtilizationByTime]
+ Amazonka.CostExplorer.GetReservationUtilization: getReservationUtilization_filter :: Lens' GetReservationUtilization (Maybe Expression)
+ Amazonka.CostExplorer.GetReservationUtilization: getReservationUtilization_granularity :: Lens' GetReservationUtilization (Maybe Granularity)
+ Amazonka.CostExplorer.GetReservationUtilization: getReservationUtilization_groupBy :: Lens' GetReservationUtilization (Maybe [GroupDefinition])
+ Amazonka.CostExplorer.GetReservationUtilization: getReservationUtilization_maxResults :: Lens' GetReservationUtilization (Maybe Natural)
+ Amazonka.CostExplorer.GetReservationUtilization: getReservationUtilization_nextPageToken :: Lens' GetReservationUtilization (Maybe Text)
+ Amazonka.CostExplorer.GetReservationUtilization: getReservationUtilization_sortBy :: Lens' GetReservationUtilization (Maybe SortDefinition)
+ Amazonka.CostExplorer.GetReservationUtilization: getReservationUtilization_timePeriod :: Lens' GetReservationUtilization DateInterval
+ Amazonka.CostExplorer.GetReservationUtilization: instance Amazonka.Data.Headers.ToHeaders Amazonka.CostExplorer.GetReservationUtilization.GetReservationUtilization
+ Amazonka.CostExplorer.GetReservationUtilization: instance Amazonka.Data.Path.ToPath Amazonka.CostExplorer.GetReservationUtilization.GetReservationUtilization
+ Amazonka.CostExplorer.GetReservationUtilization: instance Amazonka.Data.Query.ToQuery Amazonka.CostExplorer.GetReservationUtilization.GetReservationUtilization
+ Amazonka.CostExplorer.GetReservationUtilization: instance Amazonka.Types.AWSRequest Amazonka.CostExplorer.GetReservationUtilization.GetReservationUtilization
+ Amazonka.CostExplorer.GetReservationUtilization: instance Control.DeepSeq.NFData Amazonka.CostExplorer.GetReservationUtilization.GetReservationUtilization
+ Amazonka.CostExplorer.GetReservationUtilization: instance Control.DeepSeq.NFData Amazonka.CostExplorer.GetReservationUtilization.GetReservationUtilizationResponse
+ Amazonka.CostExplorer.GetReservationUtilization: instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.CostExplorer.GetReservationUtilization.GetReservationUtilization
+ Amazonka.CostExplorer.GetReservationUtilization: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.GetReservationUtilization.GetReservationUtilization
+ Amazonka.CostExplorer.GetReservationUtilization: instance GHC.Classes.Eq Amazonka.CostExplorer.GetReservationUtilization.GetReservationUtilization
+ Amazonka.CostExplorer.GetReservationUtilization: instance GHC.Classes.Eq Amazonka.CostExplorer.GetReservationUtilization.GetReservationUtilizationResponse
+ Amazonka.CostExplorer.GetReservationUtilization: instance GHC.Generics.Generic Amazonka.CostExplorer.GetReservationUtilization.GetReservationUtilization
+ Amazonka.CostExplorer.GetReservationUtilization: instance GHC.Generics.Generic Amazonka.CostExplorer.GetReservationUtilization.GetReservationUtilizationResponse
+ Amazonka.CostExplorer.GetReservationUtilization: instance GHC.Read.Read Amazonka.CostExplorer.GetReservationUtilization.GetReservationUtilization
+ Amazonka.CostExplorer.GetReservationUtilization: instance GHC.Read.Read Amazonka.CostExplorer.GetReservationUtilization.GetReservationUtilizationResponse
+ Amazonka.CostExplorer.GetReservationUtilization: instance GHC.Show.Show Amazonka.CostExplorer.GetReservationUtilization.GetReservationUtilization
+ Amazonka.CostExplorer.GetReservationUtilization: instance GHC.Show.Show Amazonka.CostExplorer.GetReservationUtilization.GetReservationUtilizationResponse
+ Amazonka.CostExplorer.GetReservationUtilization: newGetReservationUtilization :: DateInterval -> GetReservationUtilization
+ Amazonka.CostExplorer.GetReservationUtilization: newGetReservationUtilizationResponse :: Int -> GetReservationUtilizationResponse
+ Amazonka.CostExplorer.GetRightsizingRecommendation: GetRightsizingRecommendation' :: Maybe RightsizingRecommendationConfiguration -> Maybe Expression -> Maybe Text -> Maybe Natural -> Text -> GetRightsizingRecommendation
+ Amazonka.CostExplorer.GetRightsizingRecommendation: GetRightsizingRecommendationResponse' :: Maybe RightsizingRecommendationConfiguration -> Maybe RightsizingRecommendationMetadata -> Maybe Text -> Maybe [RightsizingRecommendation] -> Maybe RightsizingRecommendationSummary -> Int -> GetRightsizingRecommendationResponse
+ Amazonka.CostExplorer.GetRightsizingRecommendation: [$sel:configuration:GetRightsizingRecommendation'] :: GetRightsizingRecommendation -> Maybe RightsizingRecommendationConfiguration
+ Amazonka.CostExplorer.GetRightsizingRecommendation: [$sel:configuration:GetRightsizingRecommendationResponse'] :: GetRightsizingRecommendationResponse -> Maybe RightsizingRecommendationConfiguration
+ Amazonka.CostExplorer.GetRightsizingRecommendation: [$sel:filter':GetRightsizingRecommendation'] :: GetRightsizingRecommendation -> Maybe Expression
+ Amazonka.CostExplorer.GetRightsizingRecommendation: [$sel:httpStatus:GetRightsizingRecommendationResponse'] :: GetRightsizingRecommendationResponse -> Int
+ Amazonka.CostExplorer.GetRightsizingRecommendation: [$sel:metadata:GetRightsizingRecommendationResponse'] :: GetRightsizingRecommendationResponse -> Maybe RightsizingRecommendationMetadata
+ Amazonka.CostExplorer.GetRightsizingRecommendation: [$sel:nextPageToken:GetRightsizingRecommendation'] :: GetRightsizingRecommendation -> Maybe Text
+ Amazonka.CostExplorer.GetRightsizingRecommendation: [$sel:nextPageToken:GetRightsizingRecommendationResponse'] :: GetRightsizingRecommendationResponse -> Maybe Text
+ Amazonka.CostExplorer.GetRightsizingRecommendation: [$sel:pageSize:GetRightsizingRecommendation'] :: GetRightsizingRecommendation -> Maybe Natural
+ Amazonka.CostExplorer.GetRightsizingRecommendation: [$sel:rightsizingRecommendations:GetRightsizingRecommendationResponse'] :: GetRightsizingRecommendationResponse -> Maybe [RightsizingRecommendation]
+ Amazonka.CostExplorer.GetRightsizingRecommendation: [$sel:service:GetRightsizingRecommendation'] :: GetRightsizingRecommendation -> Text
+ Amazonka.CostExplorer.GetRightsizingRecommendation: [$sel:summary:GetRightsizingRecommendationResponse'] :: GetRightsizingRecommendationResponse -> Maybe RightsizingRecommendationSummary
+ Amazonka.CostExplorer.GetRightsizingRecommendation: data GetRightsizingRecommendation
+ Amazonka.CostExplorer.GetRightsizingRecommendation: data GetRightsizingRecommendationResponse
+ Amazonka.CostExplorer.GetRightsizingRecommendation: getRightsizingRecommendationResponse_configuration :: Lens' GetRightsizingRecommendationResponse (Maybe RightsizingRecommendationConfiguration)
+ Amazonka.CostExplorer.GetRightsizingRecommendation: getRightsizingRecommendationResponse_httpStatus :: Lens' GetRightsizingRecommendationResponse Int
+ Amazonka.CostExplorer.GetRightsizingRecommendation: getRightsizingRecommendationResponse_metadata :: Lens' GetRightsizingRecommendationResponse (Maybe RightsizingRecommendationMetadata)
+ Amazonka.CostExplorer.GetRightsizingRecommendation: getRightsizingRecommendationResponse_nextPageToken :: Lens' GetRightsizingRecommendationResponse (Maybe Text)
+ Amazonka.CostExplorer.GetRightsizingRecommendation: getRightsizingRecommendationResponse_rightsizingRecommendations :: Lens' GetRightsizingRecommendationResponse (Maybe [RightsizingRecommendation])
+ Amazonka.CostExplorer.GetRightsizingRecommendation: getRightsizingRecommendationResponse_summary :: Lens' GetRightsizingRecommendationResponse (Maybe RightsizingRecommendationSummary)
+ Amazonka.CostExplorer.GetRightsizingRecommendation: getRightsizingRecommendation_configuration :: Lens' GetRightsizingRecommendation (Maybe RightsizingRecommendationConfiguration)
+ Amazonka.CostExplorer.GetRightsizingRecommendation: getRightsizingRecommendation_filter :: Lens' GetRightsizingRecommendation (Maybe Expression)
+ Amazonka.CostExplorer.GetRightsizingRecommendation: getRightsizingRecommendation_nextPageToken :: Lens' GetRightsizingRecommendation (Maybe Text)
+ Amazonka.CostExplorer.GetRightsizingRecommendation: getRightsizingRecommendation_pageSize :: Lens' GetRightsizingRecommendation (Maybe Natural)
+ Amazonka.CostExplorer.GetRightsizingRecommendation: getRightsizingRecommendation_service :: Lens' GetRightsizingRecommendation Text
+ Amazonka.CostExplorer.GetRightsizingRecommendation: instance Amazonka.Data.Headers.ToHeaders Amazonka.CostExplorer.GetRightsizingRecommendation.GetRightsizingRecommendation
+ Amazonka.CostExplorer.GetRightsizingRecommendation: instance Amazonka.Data.Path.ToPath Amazonka.CostExplorer.GetRightsizingRecommendation.GetRightsizingRecommendation
+ Amazonka.CostExplorer.GetRightsizingRecommendation: instance Amazonka.Data.Query.ToQuery Amazonka.CostExplorer.GetRightsizingRecommendation.GetRightsizingRecommendation
+ Amazonka.CostExplorer.GetRightsizingRecommendation: instance Amazonka.Types.AWSRequest Amazonka.CostExplorer.GetRightsizingRecommendation.GetRightsizingRecommendation
+ Amazonka.CostExplorer.GetRightsizingRecommendation: instance Control.DeepSeq.NFData Amazonka.CostExplorer.GetRightsizingRecommendation.GetRightsizingRecommendation
+ Amazonka.CostExplorer.GetRightsizingRecommendation: instance Control.DeepSeq.NFData Amazonka.CostExplorer.GetRightsizingRecommendation.GetRightsizingRecommendationResponse
+ Amazonka.CostExplorer.GetRightsizingRecommendation: instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.CostExplorer.GetRightsizingRecommendation.GetRightsizingRecommendation
+ Amazonka.CostExplorer.GetRightsizingRecommendation: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.GetRightsizingRecommendation.GetRightsizingRecommendation
+ Amazonka.CostExplorer.GetRightsizingRecommendation: instance GHC.Classes.Eq Amazonka.CostExplorer.GetRightsizingRecommendation.GetRightsizingRecommendation
+ Amazonka.CostExplorer.GetRightsizingRecommendation: instance GHC.Classes.Eq Amazonka.CostExplorer.GetRightsizingRecommendation.GetRightsizingRecommendationResponse
+ Amazonka.CostExplorer.GetRightsizingRecommendation: instance GHC.Generics.Generic Amazonka.CostExplorer.GetRightsizingRecommendation.GetRightsizingRecommendation
+ Amazonka.CostExplorer.GetRightsizingRecommendation: instance GHC.Generics.Generic Amazonka.CostExplorer.GetRightsizingRecommendation.GetRightsizingRecommendationResponse
+ Amazonka.CostExplorer.GetRightsizingRecommendation: instance GHC.Read.Read Amazonka.CostExplorer.GetRightsizingRecommendation.GetRightsizingRecommendation
+ Amazonka.CostExplorer.GetRightsizingRecommendation: instance GHC.Read.Read Amazonka.CostExplorer.GetRightsizingRecommendation.GetRightsizingRecommendationResponse
+ Amazonka.CostExplorer.GetRightsizingRecommendation: instance GHC.Show.Show Amazonka.CostExplorer.GetRightsizingRecommendation.GetRightsizingRecommendation
+ Amazonka.CostExplorer.GetRightsizingRecommendation: instance GHC.Show.Show Amazonka.CostExplorer.GetRightsizingRecommendation.GetRightsizingRecommendationResponse
+ Amazonka.CostExplorer.GetRightsizingRecommendation: newGetRightsizingRecommendation :: Text -> GetRightsizingRecommendation
+ Amazonka.CostExplorer.GetRightsizingRecommendation: newGetRightsizingRecommendationResponse :: Int -> GetRightsizingRecommendationResponse
+ Amazonka.CostExplorer.GetSavingsPlansCoverage: GetSavingsPlansCoverage' :: Maybe Expression -> Maybe Granularity -> Maybe [GroupDefinition] -> Maybe Natural -> Maybe [Text] -> Maybe Text -> Maybe SortDefinition -> DateInterval -> GetSavingsPlansCoverage
+ Amazonka.CostExplorer.GetSavingsPlansCoverage: GetSavingsPlansCoverageResponse' :: Maybe Text -> Int -> [SavingsPlansCoverage] -> GetSavingsPlansCoverageResponse
+ Amazonka.CostExplorer.GetSavingsPlansCoverage: [$sel:filter':GetSavingsPlansCoverage'] :: GetSavingsPlansCoverage -> Maybe Expression
+ Amazonka.CostExplorer.GetSavingsPlansCoverage: [$sel:granularity:GetSavingsPlansCoverage'] :: GetSavingsPlansCoverage -> Maybe Granularity
+ Amazonka.CostExplorer.GetSavingsPlansCoverage: [$sel:groupBy:GetSavingsPlansCoverage'] :: GetSavingsPlansCoverage -> Maybe [GroupDefinition]
+ Amazonka.CostExplorer.GetSavingsPlansCoverage: [$sel:httpStatus:GetSavingsPlansCoverageResponse'] :: GetSavingsPlansCoverageResponse -> Int
+ Amazonka.CostExplorer.GetSavingsPlansCoverage: [$sel:maxResults:GetSavingsPlansCoverage'] :: GetSavingsPlansCoverage -> Maybe Natural
+ Amazonka.CostExplorer.GetSavingsPlansCoverage: [$sel:metrics:GetSavingsPlansCoverage'] :: GetSavingsPlansCoverage -> Maybe [Text]
+ Amazonka.CostExplorer.GetSavingsPlansCoverage: [$sel:nextToken:GetSavingsPlansCoverage'] :: GetSavingsPlansCoverage -> Maybe Text
+ Amazonka.CostExplorer.GetSavingsPlansCoverage: [$sel:nextToken:GetSavingsPlansCoverageResponse'] :: GetSavingsPlansCoverageResponse -> Maybe Text
+ Amazonka.CostExplorer.GetSavingsPlansCoverage: [$sel:savingsPlansCoverages:GetSavingsPlansCoverageResponse'] :: GetSavingsPlansCoverageResponse -> [SavingsPlansCoverage]
+ Amazonka.CostExplorer.GetSavingsPlansCoverage: [$sel:sortBy:GetSavingsPlansCoverage'] :: GetSavingsPlansCoverage -> Maybe SortDefinition
+ Amazonka.CostExplorer.GetSavingsPlansCoverage: [$sel:timePeriod:GetSavingsPlansCoverage'] :: GetSavingsPlansCoverage -> DateInterval
+ Amazonka.CostExplorer.GetSavingsPlansCoverage: data GetSavingsPlansCoverage
+ Amazonka.CostExplorer.GetSavingsPlansCoverage: data GetSavingsPlansCoverageResponse
+ Amazonka.CostExplorer.GetSavingsPlansCoverage: getSavingsPlansCoverageResponse_httpStatus :: Lens' GetSavingsPlansCoverageResponse Int
+ Amazonka.CostExplorer.GetSavingsPlansCoverage: getSavingsPlansCoverageResponse_nextToken :: Lens' GetSavingsPlansCoverageResponse (Maybe Text)
+ Amazonka.CostExplorer.GetSavingsPlansCoverage: getSavingsPlansCoverageResponse_savingsPlansCoverages :: Lens' GetSavingsPlansCoverageResponse [SavingsPlansCoverage]
+ Amazonka.CostExplorer.GetSavingsPlansCoverage: getSavingsPlansCoverage_filter :: Lens' GetSavingsPlansCoverage (Maybe Expression)
+ Amazonka.CostExplorer.GetSavingsPlansCoverage: getSavingsPlansCoverage_granularity :: Lens' GetSavingsPlansCoverage (Maybe Granularity)
+ Amazonka.CostExplorer.GetSavingsPlansCoverage: getSavingsPlansCoverage_groupBy :: Lens' GetSavingsPlansCoverage (Maybe [GroupDefinition])
+ Amazonka.CostExplorer.GetSavingsPlansCoverage: getSavingsPlansCoverage_maxResults :: Lens' GetSavingsPlansCoverage (Maybe Natural)
+ Amazonka.CostExplorer.GetSavingsPlansCoverage: getSavingsPlansCoverage_metrics :: Lens' GetSavingsPlansCoverage (Maybe [Text])
+ Amazonka.CostExplorer.GetSavingsPlansCoverage: getSavingsPlansCoverage_nextToken :: Lens' GetSavingsPlansCoverage (Maybe Text)
+ Amazonka.CostExplorer.GetSavingsPlansCoverage: getSavingsPlansCoverage_sortBy :: Lens' GetSavingsPlansCoverage (Maybe SortDefinition)
+ Amazonka.CostExplorer.GetSavingsPlansCoverage: getSavingsPlansCoverage_timePeriod :: Lens' GetSavingsPlansCoverage DateInterval
+ Amazonka.CostExplorer.GetSavingsPlansCoverage: instance Amazonka.Data.Headers.ToHeaders Amazonka.CostExplorer.GetSavingsPlansCoverage.GetSavingsPlansCoverage
+ Amazonka.CostExplorer.GetSavingsPlansCoverage: instance Amazonka.Data.Path.ToPath Amazonka.CostExplorer.GetSavingsPlansCoverage.GetSavingsPlansCoverage
+ Amazonka.CostExplorer.GetSavingsPlansCoverage: instance Amazonka.Data.Query.ToQuery Amazonka.CostExplorer.GetSavingsPlansCoverage.GetSavingsPlansCoverage
+ Amazonka.CostExplorer.GetSavingsPlansCoverage: instance Amazonka.Types.AWSRequest Amazonka.CostExplorer.GetSavingsPlansCoverage.GetSavingsPlansCoverage
+ Amazonka.CostExplorer.GetSavingsPlansCoverage: instance Control.DeepSeq.NFData Amazonka.CostExplorer.GetSavingsPlansCoverage.GetSavingsPlansCoverage
+ Amazonka.CostExplorer.GetSavingsPlansCoverage: instance Control.DeepSeq.NFData Amazonka.CostExplorer.GetSavingsPlansCoverage.GetSavingsPlansCoverageResponse
+ Amazonka.CostExplorer.GetSavingsPlansCoverage: instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.CostExplorer.GetSavingsPlansCoverage.GetSavingsPlansCoverage
+ Amazonka.CostExplorer.GetSavingsPlansCoverage: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.GetSavingsPlansCoverage.GetSavingsPlansCoverage
+ Amazonka.CostExplorer.GetSavingsPlansCoverage: instance GHC.Classes.Eq Amazonka.CostExplorer.GetSavingsPlansCoverage.GetSavingsPlansCoverage
+ Amazonka.CostExplorer.GetSavingsPlansCoverage: instance GHC.Classes.Eq Amazonka.CostExplorer.GetSavingsPlansCoverage.GetSavingsPlansCoverageResponse
+ Amazonka.CostExplorer.GetSavingsPlansCoverage: instance GHC.Generics.Generic Amazonka.CostExplorer.GetSavingsPlansCoverage.GetSavingsPlansCoverage
+ Amazonka.CostExplorer.GetSavingsPlansCoverage: instance GHC.Generics.Generic Amazonka.CostExplorer.GetSavingsPlansCoverage.GetSavingsPlansCoverageResponse
+ Amazonka.CostExplorer.GetSavingsPlansCoverage: instance GHC.Read.Read Amazonka.CostExplorer.GetSavingsPlansCoverage.GetSavingsPlansCoverage
+ Amazonka.CostExplorer.GetSavingsPlansCoverage: instance GHC.Read.Read Amazonka.CostExplorer.GetSavingsPlansCoverage.GetSavingsPlansCoverageResponse
+ Amazonka.CostExplorer.GetSavingsPlansCoverage: instance GHC.Show.Show Amazonka.CostExplorer.GetSavingsPlansCoverage.GetSavingsPlansCoverage
+ Amazonka.CostExplorer.GetSavingsPlansCoverage: instance GHC.Show.Show Amazonka.CostExplorer.GetSavingsPlansCoverage.GetSavingsPlansCoverageResponse
+ Amazonka.CostExplorer.GetSavingsPlansCoverage: newGetSavingsPlansCoverage :: DateInterval -> GetSavingsPlansCoverage
+ Amazonka.CostExplorer.GetSavingsPlansCoverage: newGetSavingsPlansCoverageResponse :: Int -> GetSavingsPlansCoverageResponse
+ Amazonka.CostExplorer.GetSavingsPlansPurchaseRecommendation: GetSavingsPlansPurchaseRecommendation' :: Maybe AccountScope -> Maybe Expression -> Maybe Text -> Maybe Natural -> SupportedSavingsPlansType -> TermInYears -> PaymentOption -> LookbackPeriodInDays -> GetSavingsPlansPurchaseRecommendation
+ Amazonka.CostExplorer.GetSavingsPlansPurchaseRecommendation: GetSavingsPlansPurchaseRecommendationResponse' :: Maybe SavingsPlansPurchaseRecommendationMetadata -> Maybe Text -> Maybe SavingsPlansPurchaseRecommendation -> Int -> GetSavingsPlansPurchaseRecommendationResponse
+ Amazonka.CostExplorer.GetSavingsPlansPurchaseRecommendation: [$sel:accountScope:GetSavingsPlansPurchaseRecommendation'] :: GetSavingsPlansPurchaseRecommendation -> Maybe AccountScope
+ Amazonka.CostExplorer.GetSavingsPlansPurchaseRecommendation: [$sel:filter':GetSavingsPlansPurchaseRecommendation'] :: GetSavingsPlansPurchaseRecommendation -> Maybe Expression
+ Amazonka.CostExplorer.GetSavingsPlansPurchaseRecommendation: [$sel:httpStatus:GetSavingsPlansPurchaseRecommendationResponse'] :: GetSavingsPlansPurchaseRecommendationResponse -> Int
+ Amazonka.CostExplorer.GetSavingsPlansPurchaseRecommendation: [$sel:lookbackPeriodInDays:GetSavingsPlansPurchaseRecommendation'] :: GetSavingsPlansPurchaseRecommendation -> LookbackPeriodInDays
+ Amazonka.CostExplorer.GetSavingsPlansPurchaseRecommendation: [$sel:metadata:GetSavingsPlansPurchaseRecommendationResponse'] :: GetSavingsPlansPurchaseRecommendationResponse -> Maybe SavingsPlansPurchaseRecommendationMetadata
+ Amazonka.CostExplorer.GetSavingsPlansPurchaseRecommendation: [$sel:nextPageToken:GetSavingsPlansPurchaseRecommendation'] :: GetSavingsPlansPurchaseRecommendation -> Maybe Text
+ Amazonka.CostExplorer.GetSavingsPlansPurchaseRecommendation: [$sel:nextPageToken:GetSavingsPlansPurchaseRecommendationResponse'] :: GetSavingsPlansPurchaseRecommendationResponse -> Maybe Text
+ Amazonka.CostExplorer.GetSavingsPlansPurchaseRecommendation: [$sel:pageSize:GetSavingsPlansPurchaseRecommendation'] :: GetSavingsPlansPurchaseRecommendation -> Maybe Natural
+ Amazonka.CostExplorer.GetSavingsPlansPurchaseRecommendation: [$sel:paymentOption:GetSavingsPlansPurchaseRecommendation'] :: GetSavingsPlansPurchaseRecommendation -> PaymentOption
+ Amazonka.CostExplorer.GetSavingsPlansPurchaseRecommendation: [$sel:savingsPlansPurchaseRecommendation:GetSavingsPlansPurchaseRecommendationResponse'] :: GetSavingsPlansPurchaseRecommendationResponse -> Maybe SavingsPlansPurchaseRecommendation
+ Amazonka.CostExplorer.GetSavingsPlansPurchaseRecommendation: [$sel:savingsPlansType:GetSavingsPlansPurchaseRecommendation'] :: GetSavingsPlansPurchaseRecommendation -> SupportedSavingsPlansType
+ Amazonka.CostExplorer.GetSavingsPlansPurchaseRecommendation: [$sel:termInYears:GetSavingsPlansPurchaseRecommendation'] :: GetSavingsPlansPurchaseRecommendation -> TermInYears
+ Amazonka.CostExplorer.GetSavingsPlansPurchaseRecommendation: data GetSavingsPlansPurchaseRecommendation
+ Amazonka.CostExplorer.GetSavingsPlansPurchaseRecommendation: data GetSavingsPlansPurchaseRecommendationResponse
+ Amazonka.CostExplorer.GetSavingsPlansPurchaseRecommendation: getSavingsPlansPurchaseRecommendationResponse_httpStatus :: Lens' GetSavingsPlansPurchaseRecommendationResponse Int
+ Amazonka.CostExplorer.GetSavingsPlansPurchaseRecommendation: getSavingsPlansPurchaseRecommendationResponse_metadata :: Lens' GetSavingsPlansPurchaseRecommendationResponse (Maybe SavingsPlansPurchaseRecommendationMetadata)
+ Amazonka.CostExplorer.GetSavingsPlansPurchaseRecommendation: getSavingsPlansPurchaseRecommendationResponse_nextPageToken :: Lens' GetSavingsPlansPurchaseRecommendationResponse (Maybe Text)
+ Amazonka.CostExplorer.GetSavingsPlansPurchaseRecommendation: getSavingsPlansPurchaseRecommendationResponse_savingsPlansPurchaseRecommendation :: Lens' GetSavingsPlansPurchaseRecommendationResponse (Maybe SavingsPlansPurchaseRecommendation)
+ Amazonka.CostExplorer.GetSavingsPlansPurchaseRecommendation: getSavingsPlansPurchaseRecommendation_accountScope :: Lens' GetSavingsPlansPurchaseRecommendation (Maybe AccountScope)
+ Amazonka.CostExplorer.GetSavingsPlansPurchaseRecommendation: getSavingsPlansPurchaseRecommendation_filter :: Lens' GetSavingsPlansPurchaseRecommendation (Maybe Expression)
+ Amazonka.CostExplorer.GetSavingsPlansPurchaseRecommendation: getSavingsPlansPurchaseRecommendation_lookbackPeriodInDays :: Lens' GetSavingsPlansPurchaseRecommendation LookbackPeriodInDays
+ Amazonka.CostExplorer.GetSavingsPlansPurchaseRecommendation: getSavingsPlansPurchaseRecommendation_nextPageToken :: Lens' GetSavingsPlansPurchaseRecommendation (Maybe Text)
+ Amazonka.CostExplorer.GetSavingsPlansPurchaseRecommendation: getSavingsPlansPurchaseRecommendation_pageSize :: Lens' GetSavingsPlansPurchaseRecommendation (Maybe Natural)
+ Amazonka.CostExplorer.GetSavingsPlansPurchaseRecommendation: getSavingsPlansPurchaseRecommendation_paymentOption :: Lens' GetSavingsPlansPurchaseRecommendation PaymentOption
+ Amazonka.CostExplorer.GetSavingsPlansPurchaseRecommendation: getSavingsPlansPurchaseRecommendation_savingsPlansType :: Lens' GetSavingsPlansPurchaseRecommendation SupportedSavingsPlansType
+ Amazonka.CostExplorer.GetSavingsPlansPurchaseRecommendation: getSavingsPlansPurchaseRecommendation_termInYears :: Lens' GetSavingsPlansPurchaseRecommendation TermInYears
+ Amazonka.CostExplorer.GetSavingsPlansPurchaseRecommendation: instance Amazonka.Data.Headers.ToHeaders Amazonka.CostExplorer.GetSavingsPlansPurchaseRecommendation.GetSavingsPlansPurchaseRecommendation
+ Amazonka.CostExplorer.GetSavingsPlansPurchaseRecommendation: instance Amazonka.Data.Path.ToPath Amazonka.CostExplorer.GetSavingsPlansPurchaseRecommendation.GetSavingsPlansPurchaseRecommendation
+ Amazonka.CostExplorer.GetSavingsPlansPurchaseRecommendation: instance Amazonka.Data.Query.ToQuery Amazonka.CostExplorer.GetSavingsPlansPurchaseRecommendation.GetSavingsPlansPurchaseRecommendation
+ Amazonka.CostExplorer.GetSavingsPlansPurchaseRecommendation: instance Amazonka.Types.AWSRequest Amazonka.CostExplorer.GetSavingsPlansPurchaseRecommendation.GetSavingsPlansPurchaseRecommendation
+ Amazonka.CostExplorer.GetSavingsPlansPurchaseRecommendation: instance Control.DeepSeq.NFData Amazonka.CostExplorer.GetSavingsPlansPurchaseRecommendation.GetSavingsPlansPurchaseRecommendation
+ Amazonka.CostExplorer.GetSavingsPlansPurchaseRecommendation: instance Control.DeepSeq.NFData Amazonka.CostExplorer.GetSavingsPlansPurchaseRecommendation.GetSavingsPlansPurchaseRecommendationResponse
+ Amazonka.CostExplorer.GetSavingsPlansPurchaseRecommendation: instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.CostExplorer.GetSavingsPlansPurchaseRecommendation.GetSavingsPlansPurchaseRecommendation
+ Amazonka.CostExplorer.GetSavingsPlansPurchaseRecommendation: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.GetSavingsPlansPurchaseRecommendation.GetSavingsPlansPurchaseRecommendation
+ Amazonka.CostExplorer.GetSavingsPlansPurchaseRecommendation: instance GHC.Classes.Eq Amazonka.CostExplorer.GetSavingsPlansPurchaseRecommendation.GetSavingsPlansPurchaseRecommendation
+ Amazonka.CostExplorer.GetSavingsPlansPurchaseRecommendation: instance GHC.Classes.Eq Amazonka.CostExplorer.GetSavingsPlansPurchaseRecommendation.GetSavingsPlansPurchaseRecommendationResponse
+ Amazonka.CostExplorer.GetSavingsPlansPurchaseRecommendation: instance GHC.Generics.Generic Amazonka.CostExplorer.GetSavingsPlansPurchaseRecommendation.GetSavingsPlansPurchaseRecommendation
+ Amazonka.CostExplorer.GetSavingsPlansPurchaseRecommendation: instance GHC.Generics.Generic Amazonka.CostExplorer.GetSavingsPlansPurchaseRecommendation.GetSavingsPlansPurchaseRecommendationResponse
+ Amazonka.CostExplorer.GetSavingsPlansPurchaseRecommendation: instance GHC.Read.Read Amazonka.CostExplorer.GetSavingsPlansPurchaseRecommendation.GetSavingsPlansPurchaseRecommendation
+ Amazonka.CostExplorer.GetSavingsPlansPurchaseRecommendation: instance GHC.Read.Read Amazonka.CostExplorer.GetSavingsPlansPurchaseRecommendation.GetSavingsPlansPurchaseRecommendationResponse
+ Amazonka.CostExplorer.GetSavingsPlansPurchaseRecommendation: instance GHC.Show.Show Amazonka.CostExplorer.GetSavingsPlansPurchaseRecommendation.GetSavingsPlansPurchaseRecommendation
+ Amazonka.CostExplorer.GetSavingsPlansPurchaseRecommendation: instance GHC.Show.Show Amazonka.CostExplorer.GetSavingsPlansPurchaseRecommendation.GetSavingsPlansPurchaseRecommendationResponse
+ Amazonka.CostExplorer.GetSavingsPlansPurchaseRecommendation: newGetSavingsPlansPurchaseRecommendation :: SupportedSavingsPlansType -> TermInYears -> PaymentOption -> LookbackPeriodInDays -> GetSavingsPlansPurchaseRecommendation
+ Amazonka.CostExplorer.GetSavingsPlansPurchaseRecommendation: newGetSavingsPlansPurchaseRecommendationResponse :: Int -> GetSavingsPlansPurchaseRecommendationResponse
+ Amazonka.CostExplorer.GetSavingsPlansUtilization: GetSavingsPlansUtilization' :: Maybe Expression -> Maybe Granularity -> Maybe SortDefinition -> DateInterval -> GetSavingsPlansUtilization
+ Amazonka.CostExplorer.GetSavingsPlansUtilization: GetSavingsPlansUtilizationResponse' :: Maybe [SavingsPlansUtilizationByTime] -> Int -> SavingsPlansUtilizationAggregates -> GetSavingsPlansUtilizationResponse
+ Amazonka.CostExplorer.GetSavingsPlansUtilization: [$sel:filter':GetSavingsPlansUtilization'] :: GetSavingsPlansUtilization -> Maybe Expression
+ Amazonka.CostExplorer.GetSavingsPlansUtilization: [$sel:granularity:GetSavingsPlansUtilization'] :: GetSavingsPlansUtilization -> Maybe Granularity
+ Amazonka.CostExplorer.GetSavingsPlansUtilization: [$sel:httpStatus:GetSavingsPlansUtilizationResponse'] :: GetSavingsPlansUtilizationResponse -> Int
+ Amazonka.CostExplorer.GetSavingsPlansUtilization: [$sel:savingsPlansUtilizationsByTime:GetSavingsPlansUtilizationResponse'] :: GetSavingsPlansUtilizationResponse -> Maybe [SavingsPlansUtilizationByTime]
+ Amazonka.CostExplorer.GetSavingsPlansUtilization: [$sel:sortBy:GetSavingsPlansUtilization'] :: GetSavingsPlansUtilization -> Maybe SortDefinition
+ Amazonka.CostExplorer.GetSavingsPlansUtilization: [$sel:timePeriod:GetSavingsPlansUtilization'] :: GetSavingsPlansUtilization -> DateInterval
+ Amazonka.CostExplorer.GetSavingsPlansUtilization: [$sel:total:GetSavingsPlansUtilizationResponse'] :: GetSavingsPlansUtilizationResponse -> SavingsPlansUtilizationAggregates
+ Amazonka.CostExplorer.GetSavingsPlansUtilization: data GetSavingsPlansUtilization
+ Amazonka.CostExplorer.GetSavingsPlansUtilization: data GetSavingsPlansUtilizationResponse
+ Amazonka.CostExplorer.GetSavingsPlansUtilization: getSavingsPlansUtilizationResponse_httpStatus :: Lens' GetSavingsPlansUtilizationResponse Int
+ Amazonka.CostExplorer.GetSavingsPlansUtilization: getSavingsPlansUtilizationResponse_savingsPlansUtilizationsByTime :: Lens' GetSavingsPlansUtilizationResponse (Maybe [SavingsPlansUtilizationByTime])
+ Amazonka.CostExplorer.GetSavingsPlansUtilization: getSavingsPlansUtilizationResponse_total :: Lens' GetSavingsPlansUtilizationResponse SavingsPlansUtilizationAggregates
+ Amazonka.CostExplorer.GetSavingsPlansUtilization: getSavingsPlansUtilization_filter :: Lens' GetSavingsPlansUtilization (Maybe Expression)
+ Amazonka.CostExplorer.GetSavingsPlansUtilization: getSavingsPlansUtilization_granularity :: Lens' GetSavingsPlansUtilization (Maybe Granularity)
+ Amazonka.CostExplorer.GetSavingsPlansUtilization: getSavingsPlansUtilization_sortBy :: Lens' GetSavingsPlansUtilization (Maybe SortDefinition)
+ Amazonka.CostExplorer.GetSavingsPlansUtilization: getSavingsPlansUtilization_timePeriod :: Lens' GetSavingsPlansUtilization DateInterval
+ Amazonka.CostExplorer.GetSavingsPlansUtilization: instance Amazonka.Data.Headers.ToHeaders Amazonka.CostExplorer.GetSavingsPlansUtilization.GetSavingsPlansUtilization
+ Amazonka.CostExplorer.GetSavingsPlansUtilization: instance Amazonka.Data.Path.ToPath Amazonka.CostExplorer.GetSavingsPlansUtilization.GetSavingsPlansUtilization
+ Amazonka.CostExplorer.GetSavingsPlansUtilization: instance Amazonka.Data.Query.ToQuery Amazonka.CostExplorer.GetSavingsPlansUtilization.GetSavingsPlansUtilization
+ Amazonka.CostExplorer.GetSavingsPlansUtilization: instance Amazonka.Types.AWSRequest Amazonka.CostExplorer.GetSavingsPlansUtilization.GetSavingsPlansUtilization
+ Amazonka.CostExplorer.GetSavingsPlansUtilization: instance Control.DeepSeq.NFData Amazonka.CostExplorer.GetSavingsPlansUtilization.GetSavingsPlansUtilization
+ Amazonka.CostExplorer.GetSavingsPlansUtilization: instance Control.DeepSeq.NFData Amazonka.CostExplorer.GetSavingsPlansUtilization.GetSavingsPlansUtilizationResponse
+ Amazonka.CostExplorer.GetSavingsPlansUtilization: instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.CostExplorer.GetSavingsPlansUtilization.GetSavingsPlansUtilization
+ Amazonka.CostExplorer.GetSavingsPlansUtilization: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.GetSavingsPlansUtilization.GetSavingsPlansUtilization
+ Amazonka.CostExplorer.GetSavingsPlansUtilization: instance GHC.Classes.Eq Amazonka.CostExplorer.GetSavingsPlansUtilization.GetSavingsPlansUtilization
+ Amazonka.CostExplorer.GetSavingsPlansUtilization: instance GHC.Classes.Eq Amazonka.CostExplorer.GetSavingsPlansUtilization.GetSavingsPlansUtilizationResponse
+ Amazonka.CostExplorer.GetSavingsPlansUtilization: instance GHC.Generics.Generic Amazonka.CostExplorer.GetSavingsPlansUtilization.GetSavingsPlansUtilization
+ Amazonka.CostExplorer.GetSavingsPlansUtilization: instance GHC.Generics.Generic Amazonka.CostExplorer.GetSavingsPlansUtilization.GetSavingsPlansUtilizationResponse
+ Amazonka.CostExplorer.GetSavingsPlansUtilization: instance GHC.Read.Read Amazonka.CostExplorer.GetSavingsPlansUtilization.GetSavingsPlansUtilization
+ Amazonka.CostExplorer.GetSavingsPlansUtilization: instance GHC.Read.Read Amazonka.CostExplorer.GetSavingsPlansUtilization.GetSavingsPlansUtilizationResponse
+ Amazonka.CostExplorer.GetSavingsPlansUtilization: instance GHC.Show.Show Amazonka.CostExplorer.GetSavingsPlansUtilization.GetSavingsPlansUtilization
+ Amazonka.CostExplorer.GetSavingsPlansUtilization: instance GHC.Show.Show Amazonka.CostExplorer.GetSavingsPlansUtilization.GetSavingsPlansUtilizationResponse
+ Amazonka.CostExplorer.GetSavingsPlansUtilization: newGetSavingsPlansUtilization :: DateInterval -> GetSavingsPlansUtilization
+ Amazonka.CostExplorer.GetSavingsPlansUtilization: newGetSavingsPlansUtilizationResponse :: Int -> SavingsPlansUtilizationAggregates -> GetSavingsPlansUtilizationResponse
+ Amazonka.CostExplorer.GetSavingsPlansUtilizationDetails: GetSavingsPlansUtilizationDetails' :: Maybe [SavingsPlansDataType] -> Maybe Expression -> Maybe Natural -> Maybe Text -> Maybe SortDefinition -> DateInterval -> GetSavingsPlansUtilizationDetails
+ Amazonka.CostExplorer.GetSavingsPlansUtilizationDetails: GetSavingsPlansUtilizationDetailsResponse' :: Maybe Text -> Maybe SavingsPlansUtilizationAggregates -> Int -> [SavingsPlansUtilizationDetail] -> DateInterval -> GetSavingsPlansUtilizationDetailsResponse
+ Amazonka.CostExplorer.GetSavingsPlansUtilizationDetails: [$sel:dataType:GetSavingsPlansUtilizationDetails'] :: GetSavingsPlansUtilizationDetails -> Maybe [SavingsPlansDataType]
+ Amazonka.CostExplorer.GetSavingsPlansUtilizationDetails: [$sel:filter':GetSavingsPlansUtilizationDetails'] :: GetSavingsPlansUtilizationDetails -> Maybe Expression
+ Amazonka.CostExplorer.GetSavingsPlansUtilizationDetails: [$sel:httpStatus:GetSavingsPlansUtilizationDetailsResponse'] :: GetSavingsPlansUtilizationDetailsResponse -> Int
+ Amazonka.CostExplorer.GetSavingsPlansUtilizationDetails: [$sel:maxResults:GetSavingsPlansUtilizationDetails'] :: GetSavingsPlansUtilizationDetails -> Maybe Natural
+ Amazonka.CostExplorer.GetSavingsPlansUtilizationDetails: [$sel:nextToken:GetSavingsPlansUtilizationDetails'] :: GetSavingsPlansUtilizationDetails -> Maybe Text
+ Amazonka.CostExplorer.GetSavingsPlansUtilizationDetails: [$sel:nextToken:GetSavingsPlansUtilizationDetailsResponse'] :: GetSavingsPlansUtilizationDetailsResponse -> Maybe Text
+ Amazonka.CostExplorer.GetSavingsPlansUtilizationDetails: [$sel:savingsPlansUtilizationDetails:GetSavingsPlansUtilizationDetailsResponse'] :: GetSavingsPlansUtilizationDetailsResponse -> [SavingsPlansUtilizationDetail]
+ Amazonka.CostExplorer.GetSavingsPlansUtilizationDetails: [$sel:sortBy:GetSavingsPlansUtilizationDetails'] :: GetSavingsPlansUtilizationDetails -> Maybe SortDefinition
+ Amazonka.CostExplorer.GetSavingsPlansUtilizationDetails: [$sel:timePeriod:GetSavingsPlansUtilizationDetails'] :: GetSavingsPlansUtilizationDetails -> DateInterval
+ Amazonka.CostExplorer.GetSavingsPlansUtilizationDetails: [$sel:timePeriod:GetSavingsPlansUtilizationDetailsResponse'] :: GetSavingsPlansUtilizationDetailsResponse -> DateInterval
+ Amazonka.CostExplorer.GetSavingsPlansUtilizationDetails: [$sel:total:GetSavingsPlansUtilizationDetailsResponse'] :: GetSavingsPlansUtilizationDetailsResponse -> Maybe SavingsPlansUtilizationAggregates
+ Amazonka.CostExplorer.GetSavingsPlansUtilizationDetails: data GetSavingsPlansUtilizationDetails
+ Amazonka.CostExplorer.GetSavingsPlansUtilizationDetails: data GetSavingsPlansUtilizationDetailsResponse
+ Amazonka.CostExplorer.GetSavingsPlansUtilizationDetails: getSavingsPlansUtilizationDetailsResponse_httpStatus :: Lens' GetSavingsPlansUtilizationDetailsResponse Int
+ Amazonka.CostExplorer.GetSavingsPlansUtilizationDetails: getSavingsPlansUtilizationDetailsResponse_nextToken :: Lens' GetSavingsPlansUtilizationDetailsResponse (Maybe Text)
+ Amazonka.CostExplorer.GetSavingsPlansUtilizationDetails: getSavingsPlansUtilizationDetailsResponse_savingsPlansUtilizationDetails :: Lens' GetSavingsPlansUtilizationDetailsResponse [SavingsPlansUtilizationDetail]
+ Amazonka.CostExplorer.GetSavingsPlansUtilizationDetails: getSavingsPlansUtilizationDetailsResponse_timePeriod :: Lens' GetSavingsPlansUtilizationDetailsResponse DateInterval
+ Amazonka.CostExplorer.GetSavingsPlansUtilizationDetails: getSavingsPlansUtilizationDetailsResponse_total :: Lens' GetSavingsPlansUtilizationDetailsResponse (Maybe SavingsPlansUtilizationAggregates)
+ Amazonka.CostExplorer.GetSavingsPlansUtilizationDetails: getSavingsPlansUtilizationDetails_dataType :: Lens' GetSavingsPlansUtilizationDetails (Maybe [SavingsPlansDataType])
+ Amazonka.CostExplorer.GetSavingsPlansUtilizationDetails: getSavingsPlansUtilizationDetails_filter :: Lens' GetSavingsPlansUtilizationDetails (Maybe Expression)
+ Amazonka.CostExplorer.GetSavingsPlansUtilizationDetails: getSavingsPlansUtilizationDetails_maxResults :: Lens' GetSavingsPlansUtilizationDetails (Maybe Natural)
+ Amazonka.CostExplorer.GetSavingsPlansUtilizationDetails: getSavingsPlansUtilizationDetails_nextToken :: Lens' GetSavingsPlansUtilizationDetails (Maybe Text)
+ Amazonka.CostExplorer.GetSavingsPlansUtilizationDetails: getSavingsPlansUtilizationDetails_sortBy :: Lens' GetSavingsPlansUtilizationDetails (Maybe SortDefinition)
+ Amazonka.CostExplorer.GetSavingsPlansUtilizationDetails: getSavingsPlansUtilizationDetails_timePeriod :: Lens' GetSavingsPlansUtilizationDetails DateInterval
+ Amazonka.CostExplorer.GetSavingsPlansUtilizationDetails: instance Amazonka.Data.Headers.ToHeaders Amazonka.CostExplorer.GetSavingsPlansUtilizationDetails.GetSavingsPlansUtilizationDetails
+ Amazonka.CostExplorer.GetSavingsPlansUtilizationDetails: instance Amazonka.Data.Path.ToPath Amazonka.CostExplorer.GetSavingsPlansUtilizationDetails.GetSavingsPlansUtilizationDetails
+ Amazonka.CostExplorer.GetSavingsPlansUtilizationDetails: instance Amazonka.Data.Query.ToQuery Amazonka.CostExplorer.GetSavingsPlansUtilizationDetails.GetSavingsPlansUtilizationDetails
+ Amazonka.CostExplorer.GetSavingsPlansUtilizationDetails: instance Amazonka.Types.AWSRequest Amazonka.CostExplorer.GetSavingsPlansUtilizationDetails.GetSavingsPlansUtilizationDetails
+ Amazonka.CostExplorer.GetSavingsPlansUtilizationDetails: instance Control.DeepSeq.NFData Amazonka.CostExplorer.GetSavingsPlansUtilizationDetails.GetSavingsPlansUtilizationDetails
+ Amazonka.CostExplorer.GetSavingsPlansUtilizationDetails: instance Control.DeepSeq.NFData Amazonka.CostExplorer.GetSavingsPlansUtilizationDetails.GetSavingsPlansUtilizationDetailsResponse
+ Amazonka.CostExplorer.GetSavingsPlansUtilizationDetails: instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.CostExplorer.GetSavingsPlansUtilizationDetails.GetSavingsPlansUtilizationDetails
+ Amazonka.CostExplorer.GetSavingsPlansUtilizationDetails: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.GetSavingsPlansUtilizationDetails.GetSavingsPlansUtilizationDetails
+ Amazonka.CostExplorer.GetSavingsPlansUtilizationDetails: instance GHC.Classes.Eq Amazonka.CostExplorer.GetSavingsPlansUtilizationDetails.GetSavingsPlansUtilizationDetails
+ Amazonka.CostExplorer.GetSavingsPlansUtilizationDetails: instance GHC.Classes.Eq Amazonka.CostExplorer.GetSavingsPlansUtilizationDetails.GetSavingsPlansUtilizationDetailsResponse
+ Amazonka.CostExplorer.GetSavingsPlansUtilizationDetails: instance GHC.Generics.Generic Amazonka.CostExplorer.GetSavingsPlansUtilizationDetails.GetSavingsPlansUtilizationDetails
+ Amazonka.CostExplorer.GetSavingsPlansUtilizationDetails: instance GHC.Generics.Generic Amazonka.CostExplorer.GetSavingsPlansUtilizationDetails.GetSavingsPlansUtilizationDetailsResponse
+ Amazonka.CostExplorer.GetSavingsPlansUtilizationDetails: instance GHC.Read.Read Amazonka.CostExplorer.GetSavingsPlansUtilizationDetails.GetSavingsPlansUtilizationDetails
+ Amazonka.CostExplorer.GetSavingsPlansUtilizationDetails: instance GHC.Read.Read Amazonka.CostExplorer.GetSavingsPlansUtilizationDetails.GetSavingsPlansUtilizationDetailsResponse
+ Amazonka.CostExplorer.GetSavingsPlansUtilizationDetails: instance GHC.Show.Show Amazonka.CostExplorer.GetSavingsPlansUtilizationDetails.GetSavingsPlansUtilizationDetails
+ Amazonka.CostExplorer.GetSavingsPlansUtilizationDetails: instance GHC.Show.Show Amazonka.CostExplorer.GetSavingsPlansUtilizationDetails.GetSavingsPlansUtilizationDetailsResponse
+ Amazonka.CostExplorer.GetSavingsPlansUtilizationDetails: newGetSavingsPlansUtilizationDetails :: DateInterval -> GetSavingsPlansUtilizationDetails
+ Amazonka.CostExplorer.GetSavingsPlansUtilizationDetails: newGetSavingsPlansUtilizationDetailsResponse :: Int -> DateInterval -> GetSavingsPlansUtilizationDetailsResponse
+ Amazonka.CostExplorer.GetTags: GetTags' :: Maybe Expression -> Maybe Natural -> Maybe Text -> Maybe Text -> Maybe [SortDefinition] -> Maybe Text -> DateInterval -> GetTags
+ Amazonka.CostExplorer.GetTags: GetTagsResponse' :: Maybe Text -> Int -> [Text] -> Int -> Int -> GetTagsResponse
+ Amazonka.CostExplorer.GetTags: [$sel:filter':GetTags'] :: GetTags -> Maybe Expression
+ Amazonka.CostExplorer.GetTags: [$sel:httpStatus:GetTagsResponse'] :: GetTagsResponse -> Int
+ Amazonka.CostExplorer.GetTags: [$sel:maxResults:GetTags'] :: GetTags -> Maybe Natural
+ Amazonka.CostExplorer.GetTags: [$sel:nextPageToken:GetTags'] :: GetTags -> Maybe Text
+ Amazonka.CostExplorer.GetTags: [$sel:nextPageToken:GetTagsResponse'] :: GetTagsResponse -> Maybe Text
+ Amazonka.CostExplorer.GetTags: [$sel:returnSize:GetTagsResponse'] :: GetTagsResponse -> Int
+ Amazonka.CostExplorer.GetTags: [$sel:searchString:GetTags'] :: GetTags -> Maybe Text
+ Amazonka.CostExplorer.GetTags: [$sel:sortBy:GetTags'] :: GetTags -> Maybe [SortDefinition]
+ Amazonka.CostExplorer.GetTags: [$sel:tagKey:GetTags'] :: GetTags -> Maybe Text
+ Amazonka.CostExplorer.GetTags: [$sel:tags:GetTagsResponse'] :: GetTagsResponse -> [Text]
+ Amazonka.CostExplorer.GetTags: [$sel:timePeriod:GetTags'] :: GetTags -> DateInterval
+ Amazonka.CostExplorer.GetTags: [$sel:totalSize:GetTagsResponse'] :: GetTagsResponse -> Int
+ Amazonka.CostExplorer.GetTags: data GetTags
+ Amazonka.CostExplorer.GetTags: data GetTagsResponse
+ Amazonka.CostExplorer.GetTags: getTagsResponse_httpStatus :: Lens' GetTagsResponse Int
+ Amazonka.CostExplorer.GetTags: getTagsResponse_nextPageToken :: Lens' GetTagsResponse (Maybe Text)
+ Amazonka.CostExplorer.GetTags: getTagsResponse_returnSize :: Lens' GetTagsResponse Int
+ Amazonka.CostExplorer.GetTags: getTagsResponse_tags :: Lens' GetTagsResponse [Text]
+ Amazonka.CostExplorer.GetTags: getTagsResponse_totalSize :: Lens' GetTagsResponse Int
+ Amazonka.CostExplorer.GetTags: getTags_filter :: Lens' GetTags (Maybe Expression)
+ Amazonka.CostExplorer.GetTags: getTags_maxResults :: Lens' GetTags (Maybe Natural)
+ Amazonka.CostExplorer.GetTags: getTags_nextPageToken :: Lens' GetTags (Maybe Text)
+ Amazonka.CostExplorer.GetTags: getTags_searchString :: Lens' GetTags (Maybe Text)
+ Amazonka.CostExplorer.GetTags: getTags_sortBy :: Lens' GetTags (Maybe [SortDefinition])
+ Amazonka.CostExplorer.GetTags: getTags_tagKey :: Lens' GetTags (Maybe Text)
+ Amazonka.CostExplorer.GetTags: getTags_timePeriod :: Lens' GetTags DateInterval
+ Amazonka.CostExplorer.GetTags: instance Amazonka.Data.Headers.ToHeaders Amazonka.CostExplorer.GetTags.GetTags
+ Amazonka.CostExplorer.GetTags: instance Amazonka.Data.Path.ToPath Amazonka.CostExplorer.GetTags.GetTags
+ Amazonka.CostExplorer.GetTags: instance Amazonka.Data.Query.ToQuery Amazonka.CostExplorer.GetTags.GetTags
+ Amazonka.CostExplorer.GetTags: instance Amazonka.Types.AWSRequest Amazonka.CostExplorer.GetTags.GetTags
+ Amazonka.CostExplorer.GetTags: instance Control.DeepSeq.NFData Amazonka.CostExplorer.GetTags.GetTags
+ Amazonka.CostExplorer.GetTags: instance Control.DeepSeq.NFData Amazonka.CostExplorer.GetTags.GetTagsResponse
+ Amazonka.CostExplorer.GetTags: instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.CostExplorer.GetTags.GetTags
+ Amazonka.CostExplorer.GetTags: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.GetTags.GetTags
+ Amazonka.CostExplorer.GetTags: instance GHC.Classes.Eq Amazonka.CostExplorer.GetTags.GetTags
+ Amazonka.CostExplorer.GetTags: instance GHC.Classes.Eq Amazonka.CostExplorer.GetTags.GetTagsResponse
+ Amazonka.CostExplorer.GetTags: instance GHC.Generics.Generic Amazonka.CostExplorer.GetTags.GetTags
+ Amazonka.CostExplorer.GetTags: instance GHC.Generics.Generic Amazonka.CostExplorer.GetTags.GetTagsResponse
+ Amazonka.CostExplorer.GetTags: instance GHC.Read.Read Amazonka.CostExplorer.GetTags.GetTags
+ Amazonka.CostExplorer.GetTags: instance GHC.Read.Read Amazonka.CostExplorer.GetTags.GetTagsResponse
+ Amazonka.CostExplorer.GetTags: instance GHC.Show.Show Amazonka.CostExplorer.GetTags.GetTags
+ Amazonka.CostExplorer.GetTags: instance GHC.Show.Show Amazonka.CostExplorer.GetTags.GetTagsResponse
+ Amazonka.CostExplorer.GetTags: newGetTags :: DateInterval -> GetTags
+ Amazonka.CostExplorer.GetTags: newGetTagsResponse :: Int -> Int -> Int -> GetTagsResponse
+ Amazonka.CostExplorer.GetUsageForecast: GetUsageForecast' :: Maybe Expression -> Maybe Natural -> DateInterval -> Metric -> Granularity -> GetUsageForecast
+ Amazonka.CostExplorer.GetUsageForecast: GetUsageForecastResponse' :: Maybe [ForecastResult] -> Maybe MetricValue -> Int -> GetUsageForecastResponse
+ Amazonka.CostExplorer.GetUsageForecast: [$sel:filter':GetUsageForecast'] :: GetUsageForecast -> Maybe Expression
+ Amazonka.CostExplorer.GetUsageForecast: [$sel:forecastResultsByTime:GetUsageForecastResponse'] :: GetUsageForecastResponse -> Maybe [ForecastResult]
+ Amazonka.CostExplorer.GetUsageForecast: [$sel:granularity:GetUsageForecast'] :: GetUsageForecast -> Granularity
+ Amazonka.CostExplorer.GetUsageForecast: [$sel:httpStatus:GetUsageForecastResponse'] :: GetUsageForecastResponse -> Int
+ Amazonka.CostExplorer.GetUsageForecast: [$sel:metric:GetUsageForecast'] :: GetUsageForecast -> Metric
+ Amazonka.CostExplorer.GetUsageForecast: [$sel:predictionIntervalLevel:GetUsageForecast'] :: GetUsageForecast -> Maybe Natural
+ Amazonka.CostExplorer.GetUsageForecast: [$sel:timePeriod:GetUsageForecast'] :: GetUsageForecast -> DateInterval
+ Amazonka.CostExplorer.GetUsageForecast: [$sel:total:GetUsageForecastResponse'] :: GetUsageForecastResponse -> Maybe MetricValue
+ Amazonka.CostExplorer.GetUsageForecast: data GetUsageForecast
+ Amazonka.CostExplorer.GetUsageForecast: data GetUsageForecastResponse
+ Amazonka.CostExplorer.GetUsageForecast: getUsageForecastResponse_forecastResultsByTime :: Lens' GetUsageForecastResponse (Maybe [ForecastResult])
+ Amazonka.CostExplorer.GetUsageForecast: getUsageForecastResponse_httpStatus :: Lens' GetUsageForecastResponse Int
+ Amazonka.CostExplorer.GetUsageForecast: getUsageForecastResponse_total :: Lens' GetUsageForecastResponse (Maybe MetricValue)
+ Amazonka.CostExplorer.GetUsageForecast: getUsageForecast_filter :: Lens' GetUsageForecast (Maybe Expression)
+ Amazonka.CostExplorer.GetUsageForecast: getUsageForecast_granularity :: Lens' GetUsageForecast Granularity
+ Amazonka.CostExplorer.GetUsageForecast: getUsageForecast_metric :: Lens' GetUsageForecast Metric
+ Amazonka.CostExplorer.GetUsageForecast: getUsageForecast_predictionIntervalLevel :: Lens' GetUsageForecast (Maybe Natural)
+ Amazonka.CostExplorer.GetUsageForecast: getUsageForecast_timePeriod :: Lens' GetUsageForecast DateInterval
+ Amazonka.CostExplorer.GetUsageForecast: instance Amazonka.Data.Headers.ToHeaders Amazonka.CostExplorer.GetUsageForecast.GetUsageForecast
+ Amazonka.CostExplorer.GetUsageForecast: instance Amazonka.Data.Path.ToPath Amazonka.CostExplorer.GetUsageForecast.GetUsageForecast
+ Amazonka.CostExplorer.GetUsageForecast: instance Amazonka.Data.Query.ToQuery Amazonka.CostExplorer.GetUsageForecast.GetUsageForecast
+ Amazonka.CostExplorer.GetUsageForecast: instance Amazonka.Types.AWSRequest Amazonka.CostExplorer.GetUsageForecast.GetUsageForecast
+ Amazonka.CostExplorer.GetUsageForecast: instance Control.DeepSeq.NFData Amazonka.CostExplorer.GetUsageForecast.GetUsageForecast
+ Amazonka.CostExplorer.GetUsageForecast: instance Control.DeepSeq.NFData Amazonka.CostExplorer.GetUsageForecast.GetUsageForecastResponse
+ Amazonka.CostExplorer.GetUsageForecast: instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.CostExplorer.GetUsageForecast.GetUsageForecast
+ Amazonka.CostExplorer.GetUsageForecast: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.GetUsageForecast.GetUsageForecast
+ Amazonka.CostExplorer.GetUsageForecast: instance GHC.Classes.Eq Amazonka.CostExplorer.GetUsageForecast.GetUsageForecast
+ Amazonka.CostExplorer.GetUsageForecast: instance GHC.Classes.Eq Amazonka.CostExplorer.GetUsageForecast.GetUsageForecastResponse
+ Amazonka.CostExplorer.GetUsageForecast: instance GHC.Generics.Generic Amazonka.CostExplorer.GetUsageForecast.GetUsageForecast
+ Amazonka.CostExplorer.GetUsageForecast: instance GHC.Generics.Generic Amazonka.CostExplorer.GetUsageForecast.GetUsageForecastResponse
+ Amazonka.CostExplorer.GetUsageForecast: instance GHC.Read.Read Amazonka.CostExplorer.GetUsageForecast.GetUsageForecast
+ Amazonka.CostExplorer.GetUsageForecast: instance GHC.Read.Read Amazonka.CostExplorer.GetUsageForecast.GetUsageForecastResponse
+ Amazonka.CostExplorer.GetUsageForecast: instance GHC.Show.Show Amazonka.CostExplorer.GetUsageForecast.GetUsageForecast
+ Amazonka.CostExplorer.GetUsageForecast: instance GHC.Show.Show Amazonka.CostExplorer.GetUsageForecast.GetUsageForecastResponse
+ Amazonka.CostExplorer.GetUsageForecast: newGetUsageForecast :: DateInterval -> Metric -> Granularity -> GetUsageForecast
+ Amazonka.CostExplorer.GetUsageForecast: newGetUsageForecastResponse :: Int -> GetUsageForecastResponse
+ Amazonka.CostExplorer.Lens: anomalyDateInterval_endDate :: Lens' AnomalyDateInterval (Maybe Text)
+ Amazonka.CostExplorer.Lens: anomalyDateInterval_startDate :: Lens' AnomalyDateInterval Text
+ Amazonka.CostExplorer.Lens: anomalyMonitor_creationDate :: Lens' AnomalyMonitor (Maybe Text)
+ Amazonka.CostExplorer.Lens: anomalyMonitor_dimensionalValueCount :: Lens' AnomalyMonitor (Maybe Natural)
+ Amazonka.CostExplorer.Lens: anomalyMonitor_lastEvaluatedDate :: Lens' AnomalyMonitor (Maybe Text)
+ Amazonka.CostExplorer.Lens: anomalyMonitor_lastUpdatedDate :: Lens' AnomalyMonitor (Maybe Text)
+ Amazonka.CostExplorer.Lens: anomalyMonitor_monitorArn :: Lens' AnomalyMonitor (Maybe Text)
+ Amazonka.CostExplorer.Lens: anomalyMonitor_monitorDimension :: Lens' AnomalyMonitor (Maybe MonitorDimension)
+ Amazonka.CostExplorer.Lens: anomalyMonitor_monitorName :: Lens' AnomalyMonitor Text
+ Amazonka.CostExplorer.Lens: anomalyMonitor_monitorSpecification :: Lens' AnomalyMonitor (Maybe Expression)
+ Amazonka.CostExplorer.Lens: anomalyMonitor_monitorType :: Lens' AnomalyMonitor MonitorType
+ Amazonka.CostExplorer.Lens: anomalyScore_currentScore :: Lens' AnomalyScore Double
+ Amazonka.CostExplorer.Lens: anomalyScore_maxScore :: Lens' AnomalyScore Double
+ Amazonka.CostExplorer.Lens: anomalySubscription_accountId :: Lens' AnomalySubscription (Maybe Text)
+ Amazonka.CostExplorer.Lens: anomalySubscription_frequency :: Lens' AnomalySubscription AnomalySubscriptionFrequency
+ Amazonka.CostExplorer.Lens: anomalySubscription_monitorArnList :: Lens' AnomalySubscription [Text]
+ Amazonka.CostExplorer.Lens: anomalySubscription_subscribers :: Lens' AnomalySubscription [Subscriber]
+ Amazonka.CostExplorer.Lens: anomalySubscription_subscriptionArn :: Lens' AnomalySubscription (Maybe Text)
+ Amazonka.CostExplorer.Lens: anomalySubscription_subscriptionName :: Lens' AnomalySubscription Text
+ Amazonka.CostExplorer.Lens: anomalySubscription_threshold :: Lens' AnomalySubscription (Maybe Double)
+ Amazonka.CostExplorer.Lens: anomalySubscription_thresholdExpression :: Lens' AnomalySubscription (Maybe Expression)
+ Amazonka.CostExplorer.Lens: anomaly_anomalyEndDate :: Lens' Anomaly (Maybe Text)
+ Amazonka.CostExplorer.Lens: anomaly_anomalyId :: Lens' Anomaly Text
+ Amazonka.CostExplorer.Lens: anomaly_anomalyScore :: Lens' Anomaly AnomalyScore
+ Amazonka.CostExplorer.Lens: anomaly_anomalyStartDate :: Lens' Anomaly (Maybe Text)
+ Amazonka.CostExplorer.Lens: anomaly_dimensionValue :: Lens' Anomaly (Maybe Text)
+ Amazonka.CostExplorer.Lens: anomaly_feedback :: Lens' Anomaly (Maybe AnomalyFeedbackType)
+ Amazonka.CostExplorer.Lens: anomaly_impact :: Lens' Anomaly Impact
+ Amazonka.CostExplorer.Lens: anomaly_monitorArn :: Lens' Anomaly Text
+ Amazonka.CostExplorer.Lens: anomaly_rootCauses :: Lens' Anomaly (Maybe [RootCause])
+ Amazonka.CostExplorer.Lens: costAllocationTagStatusEntry_status :: Lens' CostAllocationTagStatusEntry CostAllocationTagStatus
+ Amazonka.CostExplorer.Lens: costAllocationTagStatusEntry_tagKey :: Lens' CostAllocationTagStatusEntry Text
+ Amazonka.CostExplorer.Lens: costAllocationTag_status :: Lens' CostAllocationTag CostAllocationTagStatus
+ Amazonka.CostExplorer.Lens: costAllocationTag_tagKey :: Lens' CostAllocationTag Text
+ Amazonka.CostExplorer.Lens: costAllocationTag_type :: Lens' CostAllocationTag CostAllocationTagType
+ Amazonka.CostExplorer.Lens: costCategoryInheritedValueDimension_dimensionKey :: Lens' CostCategoryInheritedValueDimension (Maybe Text)
+ Amazonka.CostExplorer.Lens: costCategoryInheritedValueDimension_dimensionName :: Lens' CostCategoryInheritedValueDimension (Maybe CostCategoryInheritedValueDimensionName)
+ Amazonka.CostExplorer.Lens: costCategoryProcessingStatus_component :: Lens' CostCategoryProcessingStatus (Maybe CostCategoryStatusComponent)
+ Amazonka.CostExplorer.Lens: costCategoryProcessingStatus_status :: Lens' CostCategoryProcessingStatus (Maybe CostCategoryStatus)
+ Amazonka.CostExplorer.Lens: costCategoryReference_costCategoryArn :: Lens' CostCategoryReference (Maybe Text)
+ Amazonka.CostExplorer.Lens: costCategoryReference_defaultValue :: Lens' CostCategoryReference (Maybe Text)
+ Amazonka.CostExplorer.Lens: costCategoryReference_effectiveEnd :: Lens' CostCategoryReference (Maybe Text)
+ Amazonka.CostExplorer.Lens: costCategoryReference_effectiveStart :: Lens' CostCategoryReference (Maybe Text)
+ Amazonka.CostExplorer.Lens: costCategoryReference_name :: Lens' CostCategoryReference (Maybe Text)
+ Amazonka.CostExplorer.Lens: costCategoryReference_numberOfRules :: Lens' CostCategoryReference (Maybe Natural)
+ Amazonka.CostExplorer.Lens: costCategoryReference_processingStatus :: Lens' CostCategoryReference (Maybe [CostCategoryProcessingStatus])
+ Amazonka.CostExplorer.Lens: costCategoryReference_values :: Lens' CostCategoryReference (Maybe [Text])
+ Amazonka.CostExplorer.Lens: costCategoryRule_inheritedValue :: Lens' CostCategoryRule (Maybe CostCategoryInheritedValueDimension)
+ Amazonka.CostExplorer.Lens: costCategoryRule_rule :: Lens' CostCategoryRule (Maybe Expression)
+ Amazonka.CostExplorer.Lens: costCategoryRule_type :: Lens' CostCategoryRule (Maybe CostCategoryRuleType)
+ Amazonka.CostExplorer.Lens: costCategoryRule_value :: Lens' CostCategoryRule (Maybe Text)
+ Amazonka.CostExplorer.Lens: costCategorySplitChargeRuleParameter_type :: Lens' CostCategorySplitChargeRuleParameter CostCategorySplitChargeRuleParameterType
+ Amazonka.CostExplorer.Lens: costCategorySplitChargeRuleParameter_values :: Lens' CostCategorySplitChargeRuleParameter (NonEmpty Text)
+ Amazonka.CostExplorer.Lens: costCategorySplitChargeRule_method :: Lens' CostCategorySplitChargeRule CostCategorySplitChargeMethod
+ Amazonka.CostExplorer.Lens: costCategorySplitChargeRule_parameters :: Lens' CostCategorySplitChargeRule (Maybe (NonEmpty CostCategorySplitChargeRuleParameter))
+ Amazonka.CostExplorer.Lens: costCategorySplitChargeRule_source :: Lens' CostCategorySplitChargeRule Text
+ Amazonka.CostExplorer.Lens: costCategorySplitChargeRule_targets :: Lens' CostCategorySplitChargeRule (NonEmpty Text)
+ Amazonka.CostExplorer.Lens: costCategoryValues_key :: Lens' CostCategoryValues (Maybe Text)
+ Amazonka.CostExplorer.Lens: costCategoryValues_matchOptions :: Lens' CostCategoryValues (Maybe [MatchOption])
+ Amazonka.CostExplorer.Lens: costCategoryValues_values :: Lens' CostCategoryValues (Maybe [Text])
+ Amazonka.CostExplorer.Lens: costCategory_costCategoryArn :: Lens' CostCategory Text
+ Amazonka.CostExplorer.Lens: costCategory_defaultValue :: Lens' CostCategory (Maybe Text)
+ Amazonka.CostExplorer.Lens: costCategory_effectiveEnd :: Lens' CostCategory (Maybe Text)
+ Amazonka.CostExplorer.Lens: costCategory_effectiveStart :: Lens' CostCategory Text
+ Amazonka.CostExplorer.Lens: costCategory_name :: Lens' CostCategory Text
+ Amazonka.CostExplorer.Lens: costCategory_processingStatus :: Lens' CostCategory (Maybe [CostCategoryProcessingStatus])
+ Amazonka.CostExplorer.Lens: costCategory_ruleVersion :: Lens' CostCategory CostCategoryRuleVersion
+ Amazonka.CostExplorer.Lens: costCategory_rules :: Lens' CostCategory (NonEmpty CostCategoryRule)
+ Amazonka.CostExplorer.Lens: costCategory_splitChargeRules :: Lens' CostCategory (Maybe (NonEmpty CostCategorySplitChargeRule))
+ Amazonka.CostExplorer.Lens: coverageByTime_groups :: Lens' CoverageByTime (Maybe [ReservationCoverageGroup])
+ Amazonka.CostExplorer.Lens: coverageByTime_timePeriod :: Lens' CoverageByTime (Maybe DateInterval)
+ Amazonka.CostExplorer.Lens: coverageByTime_total :: Lens' CoverageByTime (Maybe Coverage)
+ Amazonka.CostExplorer.Lens: coverageCost_onDemandCost :: Lens' CoverageCost (Maybe Text)
+ Amazonka.CostExplorer.Lens: coverageHours_coverageHoursPercentage :: Lens' CoverageHours (Maybe Text)
+ Amazonka.CostExplorer.Lens: coverageHours_onDemandHours :: Lens' CoverageHours (Maybe Text)
+ Amazonka.CostExplorer.Lens: coverageHours_reservedHours :: Lens' CoverageHours (Maybe Text)
+ Amazonka.CostExplorer.Lens: coverageHours_totalRunningHours :: Lens' CoverageHours (Maybe Text)
+ Amazonka.CostExplorer.Lens: coverageNormalizedUnits_coverageNormalizedUnitsPercentage :: Lens' CoverageNormalizedUnits (Maybe Text)
+ Amazonka.CostExplorer.Lens: coverageNormalizedUnits_onDemandNormalizedUnits :: Lens' CoverageNormalizedUnits (Maybe Text)
+ Amazonka.CostExplorer.Lens: coverageNormalizedUnits_reservedNormalizedUnits :: Lens' CoverageNormalizedUnits (Maybe Text)
+ Amazonka.CostExplorer.Lens: coverageNormalizedUnits_totalRunningNormalizedUnits :: Lens' CoverageNormalizedUnits (Maybe Text)
+ Amazonka.CostExplorer.Lens: coverage_coverageCost :: Lens' Coverage (Maybe CoverageCost)
+ Amazonka.CostExplorer.Lens: coverage_coverageHours :: Lens' Coverage (Maybe CoverageHours)
+ Amazonka.CostExplorer.Lens: coverage_coverageNormalizedUnits :: Lens' Coverage (Maybe CoverageNormalizedUnits)
+ Amazonka.CostExplorer.Lens: createAnomalyMonitorResponse_httpStatus :: Lens' CreateAnomalyMonitorResponse Int
+ Amazonka.CostExplorer.Lens: createAnomalyMonitorResponse_monitorArn :: Lens' CreateAnomalyMonitorResponse Text
+ Amazonka.CostExplorer.Lens: createAnomalyMonitor_anomalyMonitor :: Lens' CreateAnomalyMonitor AnomalyMonitor
+ Amazonka.CostExplorer.Lens: createAnomalyMonitor_resourceTags :: Lens' CreateAnomalyMonitor (Maybe [ResourceTag])
+ Amazonka.CostExplorer.Lens: createAnomalySubscriptionResponse_httpStatus :: Lens' CreateAnomalySubscriptionResponse Int
+ Amazonka.CostExplorer.Lens: createAnomalySubscriptionResponse_subscriptionArn :: Lens' CreateAnomalySubscriptionResponse Text
+ Amazonka.CostExplorer.Lens: createAnomalySubscription_anomalySubscription :: Lens' CreateAnomalySubscription AnomalySubscription
+ Amazonka.CostExplorer.Lens: createAnomalySubscription_resourceTags :: Lens' CreateAnomalySubscription (Maybe [ResourceTag])
+ Amazonka.CostExplorer.Lens: createCostCategoryDefinitionResponse_costCategoryArn :: Lens' CreateCostCategoryDefinitionResponse (Maybe Text)
+ Amazonka.CostExplorer.Lens: createCostCategoryDefinitionResponse_effectiveStart :: Lens' CreateCostCategoryDefinitionResponse (Maybe Text)
+ Amazonka.CostExplorer.Lens: createCostCategoryDefinitionResponse_httpStatus :: Lens' CreateCostCategoryDefinitionResponse Int
+ Amazonka.CostExplorer.Lens: createCostCategoryDefinition_defaultValue :: Lens' CreateCostCategoryDefinition (Maybe Text)
+ Amazonka.CostExplorer.Lens: createCostCategoryDefinition_effectiveStart :: Lens' CreateCostCategoryDefinition (Maybe Text)
+ Amazonka.CostExplorer.Lens: createCostCategoryDefinition_name :: Lens' CreateCostCategoryDefinition Text
+ Amazonka.CostExplorer.Lens: createCostCategoryDefinition_resourceTags :: Lens' CreateCostCategoryDefinition (Maybe [ResourceTag])
+ Amazonka.CostExplorer.Lens: createCostCategoryDefinition_ruleVersion :: Lens' CreateCostCategoryDefinition CostCategoryRuleVersion
+ Amazonka.CostExplorer.Lens: createCostCategoryDefinition_rules :: Lens' CreateCostCategoryDefinition (NonEmpty CostCategoryRule)
+ Amazonka.CostExplorer.Lens: createCostCategoryDefinition_splitChargeRules :: Lens' CreateCostCategoryDefinition (Maybe (NonEmpty CostCategorySplitChargeRule))
+ Amazonka.CostExplorer.Lens: currentInstance_currencyCode :: Lens' CurrentInstance (Maybe Text)
+ Amazonka.CostExplorer.Lens: currentInstance_instanceName :: Lens' CurrentInstance (Maybe Text)
+ Amazonka.CostExplorer.Lens: currentInstance_monthlyCost :: Lens' CurrentInstance (Maybe Text)
+ Amazonka.CostExplorer.Lens: currentInstance_onDemandHoursInLookbackPeriod :: Lens' CurrentInstance (Maybe Text)
+ Amazonka.CostExplorer.Lens: currentInstance_reservationCoveredHoursInLookbackPeriod :: Lens' CurrentInstance (Maybe Text)
+ Amazonka.CostExplorer.Lens: currentInstance_resourceDetails :: Lens' CurrentInstance (Maybe ResourceDetails)
+ Amazonka.CostExplorer.Lens: currentInstance_resourceId :: Lens' CurrentInstance (Maybe Text)
+ Amazonka.CostExplorer.Lens: currentInstance_resourceUtilization :: Lens' CurrentInstance (Maybe ResourceUtilization)
+ Amazonka.CostExplorer.Lens: currentInstance_savingsPlansCoveredHoursInLookbackPeriod :: Lens' CurrentInstance (Maybe Text)
+ Amazonka.CostExplorer.Lens: currentInstance_tags :: Lens' CurrentInstance (Maybe [TagValues])
+ Amazonka.CostExplorer.Lens: currentInstance_totalRunningHoursInLookbackPeriod :: Lens' CurrentInstance (Maybe Text)
+ Amazonka.CostExplorer.Lens: dateInterval_end :: Lens' DateInterval Text
+ Amazonka.CostExplorer.Lens: dateInterval_start :: Lens' DateInterval Text
+ Amazonka.CostExplorer.Lens: deleteAnomalyMonitorResponse_httpStatus :: Lens' DeleteAnomalyMonitorResponse Int
+ Amazonka.CostExplorer.Lens: deleteAnomalyMonitor_monitorArn :: Lens' DeleteAnomalyMonitor Text
+ Amazonka.CostExplorer.Lens: deleteAnomalySubscriptionResponse_httpStatus :: Lens' DeleteAnomalySubscriptionResponse Int
+ Amazonka.CostExplorer.Lens: deleteAnomalySubscription_subscriptionArn :: Lens' DeleteAnomalySubscription Text
+ Amazonka.CostExplorer.Lens: deleteCostCategoryDefinitionResponse_costCategoryArn :: Lens' DeleteCostCategoryDefinitionResponse (Maybe Text)
+ Amazonka.CostExplorer.Lens: deleteCostCategoryDefinitionResponse_effectiveEnd :: Lens' DeleteCostCategoryDefinitionResponse (Maybe Text)
+ Amazonka.CostExplorer.Lens: deleteCostCategoryDefinitionResponse_httpStatus :: Lens' DeleteCostCategoryDefinitionResponse Int
+ Amazonka.CostExplorer.Lens: deleteCostCategoryDefinition_costCategoryArn :: Lens' DeleteCostCategoryDefinition Text
+ Amazonka.CostExplorer.Lens: describeCostCategoryDefinitionResponse_costCategory :: Lens' DescribeCostCategoryDefinitionResponse (Maybe CostCategory)
+ Amazonka.CostExplorer.Lens: describeCostCategoryDefinitionResponse_httpStatus :: Lens' DescribeCostCategoryDefinitionResponse Int
+ Amazonka.CostExplorer.Lens: describeCostCategoryDefinition_costCategoryArn :: Lens' DescribeCostCategoryDefinition Text
+ Amazonka.CostExplorer.Lens: describeCostCategoryDefinition_effectiveOn :: Lens' DescribeCostCategoryDefinition (Maybe Text)
+ Amazonka.CostExplorer.Lens: dimensionValuesWithAttributes_attributes :: Lens' DimensionValuesWithAttributes (Maybe (HashMap Text Text))
+ Amazonka.CostExplorer.Lens: dimensionValuesWithAttributes_value :: Lens' DimensionValuesWithAttributes (Maybe Text)
+ Amazonka.CostExplorer.Lens: dimensionValues_key :: Lens' DimensionValues (Maybe Dimension)
+ Amazonka.CostExplorer.Lens: dimensionValues_matchOptions :: Lens' DimensionValues (Maybe [MatchOption])
+ Amazonka.CostExplorer.Lens: dimensionValues_values :: Lens' DimensionValues (Maybe [Text])
+ Amazonka.CostExplorer.Lens: diskResourceUtilization_diskReadBytesPerSecond :: Lens' DiskResourceUtilization (Maybe Text)
+ Amazonka.CostExplorer.Lens: diskResourceUtilization_diskReadOpsPerSecond :: Lens' DiskResourceUtilization (Maybe Text)
+ Amazonka.CostExplorer.Lens: diskResourceUtilization_diskWriteBytesPerSecond :: Lens' DiskResourceUtilization (Maybe Text)
+ Amazonka.CostExplorer.Lens: diskResourceUtilization_diskWriteOpsPerSecond :: Lens' DiskResourceUtilization (Maybe Text)
+ Amazonka.CostExplorer.Lens: eBSResourceUtilization_ebsReadBytesPerSecond :: Lens' EBSResourceUtilization (Maybe Text)
+ Amazonka.CostExplorer.Lens: eBSResourceUtilization_ebsReadOpsPerSecond :: Lens' EBSResourceUtilization (Maybe Text)
+ Amazonka.CostExplorer.Lens: eBSResourceUtilization_ebsWriteBytesPerSecond :: Lens' EBSResourceUtilization (Maybe Text)
+ Amazonka.CostExplorer.Lens: eBSResourceUtilization_ebsWriteOpsPerSecond :: Lens' EBSResourceUtilization (Maybe Text)
+ Amazonka.CostExplorer.Lens: eC2InstanceDetails_availabilityZone :: Lens' EC2InstanceDetails (Maybe Text)
+ Amazonka.CostExplorer.Lens: eC2InstanceDetails_currentGeneration :: Lens' EC2InstanceDetails (Maybe Bool)
+ Amazonka.CostExplorer.Lens: eC2InstanceDetails_family :: Lens' EC2InstanceDetails (Maybe Text)
+ Amazonka.CostExplorer.Lens: eC2InstanceDetails_instanceType :: Lens' EC2InstanceDetails (Maybe Text)
+ Amazonka.CostExplorer.Lens: eC2InstanceDetails_platform :: Lens' EC2InstanceDetails (Maybe Text)
+ Amazonka.CostExplorer.Lens: eC2InstanceDetails_region :: Lens' EC2InstanceDetails (Maybe Text)
+ Amazonka.CostExplorer.Lens: eC2InstanceDetails_sizeFlexEligible :: Lens' EC2InstanceDetails (Maybe Bool)
+ Amazonka.CostExplorer.Lens: eC2InstanceDetails_tenancy :: Lens' EC2InstanceDetails (Maybe Text)
+ Amazonka.CostExplorer.Lens: eC2ResourceDetails_hourlyOnDemandRate :: Lens' EC2ResourceDetails (Maybe Text)
+ Amazonka.CostExplorer.Lens: eC2ResourceDetails_instanceType :: Lens' EC2ResourceDetails (Maybe Text)
+ Amazonka.CostExplorer.Lens: eC2ResourceDetails_memory :: Lens' EC2ResourceDetails (Maybe Text)
+ Amazonka.CostExplorer.Lens: eC2ResourceDetails_networkPerformance :: Lens' EC2ResourceDetails (Maybe Text)
+ Amazonka.CostExplorer.Lens: eC2ResourceDetails_platform :: Lens' EC2ResourceDetails (Maybe Text)
+ Amazonka.CostExplorer.Lens: eC2ResourceDetails_region :: Lens' EC2ResourceDetails (Maybe Text)
+ Amazonka.CostExplorer.Lens: eC2ResourceDetails_sku :: Lens' EC2ResourceDetails (Maybe Text)
+ Amazonka.CostExplorer.Lens: eC2ResourceDetails_storage :: Lens' EC2ResourceDetails (Maybe Text)
+ Amazonka.CostExplorer.Lens: eC2ResourceDetails_vcpu :: Lens' EC2ResourceDetails (Maybe Text)
+ Amazonka.CostExplorer.Lens: eC2ResourceUtilization_diskResourceUtilization :: Lens' EC2ResourceUtilization (Maybe DiskResourceUtilization)
+ Amazonka.CostExplorer.Lens: eC2ResourceUtilization_eBSResourceUtilization :: Lens' EC2ResourceUtilization (Maybe EBSResourceUtilization)
+ Amazonka.CostExplorer.Lens: eC2ResourceUtilization_maxCpuUtilizationPercentage :: Lens' EC2ResourceUtilization (Maybe Text)
+ Amazonka.CostExplorer.Lens: eC2ResourceUtilization_maxMemoryUtilizationPercentage :: Lens' EC2ResourceUtilization (Maybe Text)
+ Amazonka.CostExplorer.Lens: eC2ResourceUtilization_maxStorageUtilizationPercentage :: Lens' EC2ResourceUtilization (Maybe Text)
+ Amazonka.CostExplorer.Lens: eC2ResourceUtilization_networkResourceUtilization :: Lens' EC2ResourceUtilization (Maybe NetworkResourceUtilization)
+ Amazonka.CostExplorer.Lens: eC2Specification_offeringClass :: Lens' EC2Specification (Maybe OfferingClass)
+ Amazonka.CostExplorer.Lens: eSInstanceDetails_currentGeneration :: Lens' ESInstanceDetails (Maybe Bool)
+ Amazonka.CostExplorer.Lens: eSInstanceDetails_instanceClass :: Lens' ESInstanceDetails (Maybe Text)
+ Amazonka.CostExplorer.Lens: eSInstanceDetails_instanceSize :: Lens' ESInstanceDetails (Maybe Text)
+ Amazonka.CostExplorer.Lens: eSInstanceDetails_region :: Lens' ESInstanceDetails (Maybe Text)
+ Amazonka.CostExplorer.Lens: eSInstanceDetails_sizeFlexEligible :: Lens' ESInstanceDetails (Maybe Bool)
+ Amazonka.CostExplorer.Lens: elastiCacheInstanceDetails_currentGeneration :: Lens' ElastiCacheInstanceDetails (Maybe Bool)
+ Amazonka.CostExplorer.Lens: elastiCacheInstanceDetails_family :: Lens' ElastiCacheInstanceDetails (Maybe Text)
+ Amazonka.CostExplorer.Lens: elastiCacheInstanceDetails_nodeType :: Lens' ElastiCacheInstanceDetails (Maybe Text)
+ Amazonka.CostExplorer.Lens: elastiCacheInstanceDetails_productDescription :: Lens' ElastiCacheInstanceDetails (Maybe Text)
+ Amazonka.CostExplorer.Lens: elastiCacheInstanceDetails_region :: Lens' ElastiCacheInstanceDetails (Maybe Text)
+ Amazonka.CostExplorer.Lens: elastiCacheInstanceDetails_sizeFlexEligible :: Lens' ElastiCacheInstanceDetails (Maybe Bool)
+ Amazonka.CostExplorer.Lens: expression_and :: Lens' Expression (Maybe [Expression])
+ Amazonka.CostExplorer.Lens: expression_costCategories :: Lens' Expression (Maybe CostCategoryValues)
+ Amazonka.CostExplorer.Lens: expression_dimensions :: Lens' Expression (Maybe DimensionValues)
+ Amazonka.CostExplorer.Lens: expression_not :: Lens' Expression (Maybe Expression)
+ Amazonka.CostExplorer.Lens: expression_or :: Lens' Expression (Maybe [Expression])
+ Amazonka.CostExplorer.Lens: expression_tags :: Lens' Expression (Maybe TagValues)
+ Amazonka.CostExplorer.Lens: forecastResult_meanValue :: Lens' ForecastResult (Maybe Text)
+ Amazonka.CostExplorer.Lens: forecastResult_predictionIntervalLowerBound :: Lens' ForecastResult (Maybe Text)
+ Amazonka.CostExplorer.Lens: forecastResult_predictionIntervalUpperBound :: Lens' ForecastResult (Maybe Text)
+ Amazonka.CostExplorer.Lens: forecastResult_timePeriod :: Lens' ForecastResult (Maybe DateInterval)
+ Amazonka.CostExplorer.Lens: generationSummary_estimatedCompletionTime :: Lens' GenerationSummary (Maybe Text)
+ Amazonka.CostExplorer.Lens: generationSummary_generationCompletionTime :: Lens' GenerationSummary (Maybe Text)
+ Amazonka.CostExplorer.Lens: generationSummary_generationStartedTime :: Lens' GenerationSummary (Maybe Text)
+ Amazonka.CostExplorer.Lens: generationSummary_generationStatus :: Lens' GenerationSummary (Maybe GenerationStatus)
+ Amazonka.CostExplorer.Lens: generationSummary_recommendationId :: Lens' GenerationSummary (Maybe Text)
+ Amazonka.CostExplorer.Lens: getAnomaliesResponse_anomalies :: Lens' GetAnomaliesResponse [Anomaly]
+ Amazonka.CostExplorer.Lens: getAnomaliesResponse_httpStatus :: Lens' GetAnomaliesResponse Int
+ Amazonka.CostExplorer.Lens: getAnomaliesResponse_nextPageToken :: Lens' GetAnomaliesResponse (Maybe Text)
+ Amazonka.CostExplorer.Lens: getAnomalies_dateInterval :: Lens' GetAnomalies AnomalyDateInterval
+ Amazonka.CostExplorer.Lens: getAnomalies_feedback :: Lens' GetAnomalies (Maybe AnomalyFeedbackType)
+ Amazonka.CostExplorer.Lens: getAnomalies_maxResults :: Lens' GetAnomalies (Maybe Int)
+ Amazonka.CostExplorer.Lens: getAnomalies_monitorArn :: Lens' GetAnomalies (Maybe Text)
+ Amazonka.CostExplorer.Lens: getAnomalies_nextPageToken :: Lens' GetAnomalies (Maybe Text)
+ Amazonka.CostExplorer.Lens: getAnomalies_totalImpact :: Lens' GetAnomalies (Maybe TotalImpactFilter)
+ Amazonka.CostExplorer.Lens: getAnomalyMonitorsResponse_anomalyMonitors :: Lens' GetAnomalyMonitorsResponse [AnomalyMonitor]
+ Amazonka.CostExplorer.Lens: getAnomalyMonitorsResponse_httpStatus :: Lens' GetAnomalyMonitorsResponse Int
+ Amazonka.CostExplorer.Lens: getAnomalyMonitorsResponse_nextPageToken :: Lens' GetAnomalyMonitorsResponse (Maybe Text)
+ Amazonka.CostExplorer.Lens: getAnomalyMonitors_maxResults :: Lens' GetAnomalyMonitors (Maybe Int)
+ Amazonka.CostExplorer.Lens: getAnomalyMonitors_monitorArnList :: Lens' GetAnomalyMonitors (Maybe [Text])
+ Amazonka.CostExplorer.Lens: getAnomalyMonitors_nextPageToken :: Lens' GetAnomalyMonitors (Maybe Text)
+ Amazonka.CostExplorer.Lens: getAnomalySubscriptionsResponse_anomalySubscriptions :: Lens' GetAnomalySubscriptionsResponse [AnomalySubscription]
+ Amazonka.CostExplorer.Lens: getAnomalySubscriptionsResponse_httpStatus :: Lens' GetAnomalySubscriptionsResponse Int
+ Amazonka.CostExplorer.Lens: getAnomalySubscriptionsResponse_nextPageToken :: Lens' GetAnomalySubscriptionsResponse (Maybe Text)
+ Amazonka.CostExplorer.Lens: getAnomalySubscriptions_maxResults :: Lens' GetAnomalySubscriptions (Maybe Int)
+ Amazonka.CostExplorer.Lens: getAnomalySubscriptions_monitorArn :: Lens' GetAnomalySubscriptions (Maybe Text)
+ Amazonka.CostExplorer.Lens: getAnomalySubscriptions_nextPageToken :: Lens' GetAnomalySubscriptions (Maybe Text)
+ Amazonka.CostExplorer.Lens: getAnomalySubscriptions_subscriptionArnList :: Lens' GetAnomalySubscriptions (Maybe [Text])
+ Amazonka.CostExplorer.Lens: getCostAndUsageResponse_dimensionValueAttributes :: Lens' GetCostAndUsageResponse (Maybe [DimensionValuesWithAttributes])
+ Amazonka.CostExplorer.Lens: getCostAndUsageResponse_groupDefinitions :: Lens' GetCostAndUsageResponse (Maybe [GroupDefinition])
+ Amazonka.CostExplorer.Lens: getCostAndUsageResponse_httpStatus :: Lens' GetCostAndUsageResponse Int
+ Amazonka.CostExplorer.Lens: getCostAndUsageResponse_nextPageToken :: Lens' GetCostAndUsageResponse (Maybe Text)
+ Amazonka.CostExplorer.Lens: getCostAndUsageResponse_resultsByTime :: Lens' GetCostAndUsageResponse (Maybe [ResultByTime])
+ Amazonka.CostExplorer.Lens: getCostAndUsageWithResourcesResponse_dimensionValueAttributes :: Lens' GetCostAndUsageWithResourcesResponse (Maybe [DimensionValuesWithAttributes])
+ Amazonka.CostExplorer.Lens: getCostAndUsageWithResourcesResponse_groupDefinitions :: Lens' GetCostAndUsageWithResourcesResponse (Maybe [GroupDefinition])
+ Amazonka.CostExplorer.Lens: getCostAndUsageWithResourcesResponse_httpStatus :: Lens' GetCostAndUsageWithResourcesResponse Int
+ Amazonka.CostExplorer.Lens: getCostAndUsageWithResourcesResponse_nextPageToken :: Lens' GetCostAndUsageWithResourcesResponse (Maybe Text)
+ Amazonka.CostExplorer.Lens: getCostAndUsageWithResourcesResponse_resultsByTime :: Lens' GetCostAndUsageWithResourcesResponse (Maybe [ResultByTime])
+ Amazonka.CostExplorer.Lens: getCostAndUsageWithResources_filter :: Lens' GetCostAndUsageWithResources Expression
+ Amazonka.CostExplorer.Lens: getCostAndUsageWithResources_granularity :: Lens' GetCostAndUsageWithResources Granularity
+ Amazonka.CostExplorer.Lens: getCostAndUsageWithResources_groupBy :: Lens' GetCostAndUsageWithResources (Maybe [GroupDefinition])
+ Amazonka.CostExplorer.Lens: getCostAndUsageWithResources_metrics :: Lens' GetCostAndUsageWithResources (Maybe [Text])
+ Amazonka.CostExplorer.Lens: getCostAndUsageWithResources_nextPageToken :: Lens' GetCostAndUsageWithResources (Maybe Text)
+ Amazonka.CostExplorer.Lens: getCostAndUsageWithResources_timePeriod :: Lens' GetCostAndUsageWithResources DateInterval
+ Amazonka.CostExplorer.Lens: getCostAndUsage_filter :: Lens' GetCostAndUsage (Maybe Expression)
+ Amazonka.CostExplorer.Lens: getCostAndUsage_granularity :: Lens' GetCostAndUsage Granularity
+ Amazonka.CostExplorer.Lens: getCostAndUsage_groupBy :: Lens' GetCostAndUsage (Maybe [GroupDefinition])
+ Amazonka.CostExplorer.Lens: getCostAndUsage_metrics :: Lens' GetCostAndUsage [Text]
+ Amazonka.CostExplorer.Lens: getCostAndUsage_nextPageToken :: Lens' GetCostAndUsage (Maybe Text)
+ Amazonka.CostExplorer.Lens: getCostAndUsage_timePeriod :: Lens' GetCostAndUsage DateInterval
+ Amazonka.CostExplorer.Lens: getCostCategoriesResponse_costCategoryNames :: Lens' GetCostCategoriesResponse (Maybe [Text])
+ Amazonka.CostExplorer.Lens: getCostCategoriesResponse_costCategoryValues :: Lens' GetCostCategoriesResponse (Maybe [Text])
+ Amazonka.CostExplorer.Lens: getCostCategoriesResponse_httpStatus :: Lens' GetCostCategoriesResponse Int
+ Amazonka.CostExplorer.Lens: getCostCategoriesResponse_nextPageToken :: Lens' GetCostCategoriesResponse (Maybe Text)
+ Amazonka.CostExplorer.Lens: getCostCategoriesResponse_returnSize :: Lens' GetCostCategoriesResponse Int
+ Amazonka.CostExplorer.Lens: getCostCategoriesResponse_totalSize :: Lens' GetCostCategoriesResponse Int
+ Amazonka.CostExplorer.Lens: getCostCategories_costCategoryName :: Lens' GetCostCategories (Maybe Text)
+ Amazonka.CostExplorer.Lens: getCostCategories_filter :: Lens' GetCostCategories (Maybe Expression)
+ Amazonka.CostExplorer.Lens: getCostCategories_maxResults :: Lens' GetCostCategories (Maybe Natural)
+ Amazonka.CostExplorer.Lens: getCostCategories_nextPageToken :: Lens' GetCostCategories (Maybe Text)
+ Amazonka.CostExplorer.Lens: getCostCategories_searchString :: Lens' GetCostCategories (Maybe Text)
+ Amazonka.CostExplorer.Lens: getCostCategories_sortBy :: Lens' GetCostCategories (Maybe [SortDefinition])
+ Amazonka.CostExplorer.Lens: getCostCategories_timePeriod :: Lens' GetCostCategories DateInterval
+ Amazonka.CostExplorer.Lens: getCostForecastResponse_forecastResultsByTime :: Lens' GetCostForecastResponse (Maybe [ForecastResult])
+ Amazonka.CostExplorer.Lens: getCostForecastResponse_httpStatus :: Lens' GetCostForecastResponse Int
+ Amazonka.CostExplorer.Lens: getCostForecastResponse_total :: Lens' GetCostForecastResponse (Maybe MetricValue)
+ Amazonka.CostExplorer.Lens: getCostForecast_filter :: Lens' GetCostForecast (Maybe Expression)
+ Amazonka.CostExplorer.Lens: getCostForecast_granularity :: Lens' GetCostForecast Granularity
+ Amazonka.CostExplorer.Lens: getCostForecast_metric :: Lens' GetCostForecast Metric
+ Amazonka.CostExplorer.Lens: getCostForecast_predictionIntervalLevel :: Lens' GetCostForecast (Maybe Natural)
+ Amazonka.CostExplorer.Lens: getCostForecast_timePeriod :: Lens' GetCostForecast DateInterval
+ Amazonka.CostExplorer.Lens: getDimensionValuesResponse_dimensionValues :: Lens' GetDimensionValuesResponse [DimensionValuesWithAttributes]
+ Amazonka.CostExplorer.Lens: getDimensionValuesResponse_httpStatus :: Lens' GetDimensionValuesResponse Int
+ Amazonka.CostExplorer.Lens: getDimensionValuesResponse_nextPageToken :: Lens' GetDimensionValuesResponse (Maybe Text)
+ Amazonka.CostExplorer.Lens: getDimensionValuesResponse_returnSize :: Lens' GetDimensionValuesResponse Int
+ Amazonka.CostExplorer.Lens: getDimensionValuesResponse_totalSize :: Lens' GetDimensionValuesResponse Int
+ Amazonka.CostExplorer.Lens: getDimensionValues_context :: Lens' GetDimensionValues (Maybe Context)
+ Amazonka.CostExplorer.Lens: getDimensionValues_dimension :: Lens' GetDimensionValues Dimension
+ Amazonka.CostExplorer.Lens: getDimensionValues_filter :: Lens' GetDimensionValues (Maybe Expression)
+ Amazonka.CostExplorer.Lens: getDimensionValues_maxResults :: Lens' GetDimensionValues (Maybe Natural)
+ Amazonka.CostExplorer.Lens: getDimensionValues_nextPageToken :: Lens' GetDimensionValues (Maybe Text)
+ Amazonka.CostExplorer.Lens: getDimensionValues_searchString :: Lens' GetDimensionValues (Maybe Text)
+ Amazonka.CostExplorer.Lens: getDimensionValues_sortBy :: Lens' GetDimensionValues (Maybe [SortDefinition])
+ Amazonka.CostExplorer.Lens: getDimensionValues_timePeriod :: Lens' GetDimensionValues DateInterval
+ Amazonka.CostExplorer.Lens: getReservationCoverageResponse_coveragesByTime :: Lens' GetReservationCoverageResponse [CoverageByTime]
+ Amazonka.CostExplorer.Lens: getReservationCoverageResponse_httpStatus :: Lens' GetReservationCoverageResponse Int
+ Amazonka.CostExplorer.Lens: getReservationCoverageResponse_nextPageToken :: Lens' GetReservationCoverageResponse (Maybe Text)
+ Amazonka.CostExplorer.Lens: getReservationCoverageResponse_total :: Lens' GetReservationCoverageResponse (Maybe Coverage)
+ Amazonka.CostExplorer.Lens: getReservationCoverage_filter :: Lens' GetReservationCoverage (Maybe Expression)
+ Amazonka.CostExplorer.Lens: getReservationCoverage_granularity :: Lens' GetReservationCoverage (Maybe Granularity)
+ Amazonka.CostExplorer.Lens: getReservationCoverage_groupBy :: Lens' GetReservationCoverage (Maybe [GroupDefinition])
+ Amazonka.CostExplorer.Lens: getReservationCoverage_maxResults :: Lens' GetReservationCoverage (Maybe Natural)
+ Amazonka.CostExplorer.Lens: getReservationCoverage_metrics :: Lens' GetReservationCoverage (Maybe [Text])
+ Amazonka.CostExplorer.Lens: getReservationCoverage_nextPageToken :: Lens' GetReservationCoverage (Maybe Text)
+ Amazonka.CostExplorer.Lens: getReservationCoverage_sortBy :: Lens' GetReservationCoverage (Maybe SortDefinition)
+ Amazonka.CostExplorer.Lens: getReservationCoverage_timePeriod :: Lens' GetReservationCoverage DateInterval
+ Amazonka.CostExplorer.Lens: getReservationPurchaseRecommendationResponse_httpStatus :: Lens' GetReservationPurchaseRecommendationResponse Int
+ Amazonka.CostExplorer.Lens: getReservationPurchaseRecommendationResponse_metadata :: Lens' GetReservationPurchaseRecommendationResponse (Maybe ReservationPurchaseRecommendationMetadata)
+ Amazonka.CostExplorer.Lens: getReservationPurchaseRecommendationResponse_nextPageToken :: Lens' GetReservationPurchaseRecommendationResponse (Maybe Text)
+ Amazonka.CostExplorer.Lens: getReservationPurchaseRecommendationResponse_recommendations :: Lens' GetReservationPurchaseRecommendationResponse (Maybe [ReservationPurchaseRecommendation])
+ Amazonka.CostExplorer.Lens: getReservationPurchaseRecommendation_accountId :: Lens' GetReservationPurchaseRecommendation (Maybe Text)
+ Amazonka.CostExplorer.Lens: getReservationPurchaseRecommendation_accountScope :: Lens' GetReservationPurchaseRecommendation (Maybe AccountScope)
+ Amazonka.CostExplorer.Lens: getReservationPurchaseRecommendation_filter :: Lens' GetReservationPurchaseRecommendation (Maybe Expression)
+ Amazonka.CostExplorer.Lens: getReservationPurchaseRecommendation_lookbackPeriodInDays :: Lens' GetReservationPurchaseRecommendation (Maybe LookbackPeriodInDays)
+ Amazonka.CostExplorer.Lens: getReservationPurchaseRecommendation_nextPageToken :: Lens' GetReservationPurchaseRecommendation (Maybe Text)
+ Amazonka.CostExplorer.Lens: getReservationPurchaseRecommendation_pageSize :: Lens' GetReservationPurchaseRecommendation (Maybe Natural)
+ Amazonka.CostExplorer.Lens: getReservationPurchaseRecommendation_paymentOption :: Lens' GetReservationPurchaseRecommendation (Maybe PaymentOption)
+ Amazonka.CostExplorer.Lens: getReservationPurchaseRecommendation_service :: Lens' GetReservationPurchaseRecommendation Text
+ Amazonka.CostExplorer.Lens: getReservationPurchaseRecommendation_serviceSpecification :: Lens' GetReservationPurchaseRecommendation (Maybe ServiceSpecification)
+ Amazonka.CostExplorer.Lens: getReservationPurchaseRecommendation_termInYears :: Lens' GetReservationPurchaseRecommendation (Maybe TermInYears)
+ Amazonka.CostExplorer.Lens: getReservationUtilizationResponse_httpStatus :: Lens' GetReservationUtilizationResponse Int
+ Amazonka.CostExplorer.Lens: getReservationUtilizationResponse_nextPageToken :: Lens' GetReservationUtilizationResponse (Maybe Text)
+ Amazonka.CostExplorer.Lens: getReservationUtilizationResponse_total :: Lens' GetReservationUtilizationResponse (Maybe ReservationAggregates)
+ Amazonka.CostExplorer.Lens: getReservationUtilizationResponse_utilizationsByTime :: Lens' GetReservationUtilizationResponse [UtilizationByTime]
+ Amazonka.CostExplorer.Lens: getReservationUtilization_filter :: Lens' GetReservationUtilization (Maybe Expression)
+ Amazonka.CostExplorer.Lens: getReservationUtilization_granularity :: Lens' GetReservationUtilization (Maybe Granularity)
+ Amazonka.CostExplorer.Lens: getReservationUtilization_groupBy :: Lens' GetReservationUtilization (Maybe [GroupDefinition])
+ Amazonka.CostExplorer.Lens: getReservationUtilization_maxResults :: Lens' GetReservationUtilization (Maybe Natural)
+ Amazonka.CostExplorer.Lens: getReservationUtilization_nextPageToken :: Lens' GetReservationUtilization (Maybe Text)
+ Amazonka.CostExplorer.Lens: getReservationUtilization_sortBy :: Lens' GetReservationUtilization (Maybe SortDefinition)
+ Amazonka.CostExplorer.Lens: getReservationUtilization_timePeriod :: Lens' GetReservationUtilization DateInterval
+ Amazonka.CostExplorer.Lens: getRightsizingRecommendationResponse_configuration :: Lens' GetRightsizingRecommendationResponse (Maybe RightsizingRecommendationConfiguration)
+ Amazonka.CostExplorer.Lens: getRightsizingRecommendationResponse_httpStatus :: Lens' GetRightsizingRecommendationResponse Int
+ Amazonka.CostExplorer.Lens: getRightsizingRecommendationResponse_metadata :: Lens' GetRightsizingRecommendationResponse (Maybe RightsizingRecommendationMetadata)
+ Amazonka.CostExplorer.Lens: getRightsizingRecommendationResponse_nextPageToken :: Lens' GetRightsizingRecommendationResponse (Maybe Text)
+ Amazonka.CostExplorer.Lens: getRightsizingRecommendationResponse_rightsizingRecommendations :: Lens' GetRightsizingRecommendationResponse (Maybe [RightsizingRecommendation])
+ Amazonka.CostExplorer.Lens: getRightsizingRecommendationResponse_summary :: Lens' GetRightsizingRecommendationResponse (Maybe RightsizingRecommendationSummary)
+ Amazonka.CostExplorer.Lens: getRightsizingRecommendation_configuration :: Lens' GetRightsizingRecommendation (Maybe RightsizingRecommendationConfiguration)
+ Amazonka.CostExplorer.Lens: getRightsizingRecommendation_filter :: Lens' GetRightsizingRecommendation (Maybe Expression)
+ Amazonka.CostExplorer.Lens: getRightsizingRecommendation_nextPageToken :: Lens' GetRightsizingRecommendation (Maybe Text)
+ Amazonka.CostExplorer.Lens: getRightsizingRecommendation_pageSize :: Lens' GetRightsizingRecommendation (Maybe Natural)
+ Amazonka.CostExplorer.Lens: getRightsizingRecommendation_service :: Lens' GetRightsizingRecommendation Text
+ Amazonka.CostExplorer.Lens: getSavingsPlansCoverageResponse_httpStatus :: Lens' GetSavingsPlansCoverageResponse Int
+ Amazonka.CostExplorer.Lens: getSavingsPlansCoverageResponse_nextToken :: Lens' GetSavingsPlansCoverageResponse (Maybe Text)
+ Amazonka.CostExplorer.Lens: getSavingsPlansCoverageResponse_savingsPlansCoverages :: Lens' GetSavingsPlansCoverageResponse [SavingsPlansCoverage]
+ Amazonka.CostExplorer.Lens: getSavingsPlansCoverage_filter :: Lens' GetSavingsPlansCoverage (Maybe Expression)
+ Amazonka.CostExplorer.Lens: getSavingsPlansCoverage_granularity :: Lens' GetSavingsPlansCoverage (Maybe Granularity)
+ Amazonka.CostExplorer.Lens: getSavingsPlansCoverage_groupBy :: Lens' GetSavingsPlansCoverage (Maybe [GroupDefinition])
+ Amazonka.CostExplorer.Lens: getSavingsPlansCoverage_maxResults :: Lens' GetSavingsPlansCoverage (Maybe Natural)
+ Amazonka.CostExplorer.Lens: getSavingsPlansCoverage_metrics :: Lens' GetSavingsPlansCoverage (Maybe [Text])
+ Amazonka.CostExplorer.Lens: getSavingsPlansCoverage_nextToken :: Lens' GetSavingsPlansCoverage (Maybe Text)
+ Amazonka.CostExplorer.Lens: getSavingsPlansCoverage_sortBy :: Lens' GetSavingsPlansCoverage (Maybe SortDefinition)
+ Amazonka.CostExplorer.Lens: getSavingsPlansCoverage_timePeriod :: Lens' GetSavingsPlansCoverage DateInterval
+ Amazonka.CostExplorer.Lens: getSavingsPlansPurchaseRecommendationResponse_httpStatus :: Lens' GetSavingsPlansPurchaseRecommendationResponse Int
+ Amazonka.CostExplorer.Lens: getSavingsPlansPurchaseRecommendationResponse_metadata :: Lens' GetSavingsPlansPurchaseRecommendationResponse (Maybe SavingsPlansPurchaseRecommendationMetadata)
+ Amazonka.CostExplorer.Lens: getSavingsPlansPurchaseRecommendationResponse_nextPageToken :: Lens' GetSavingsPlansPurchaseRecommendationResponse (Maybe Text)
+ Amazonka.CostExplorer.Lens: getSavingsPlansPurchaseRecommendationResponse_savingsPlansPurchaseRecommendation :: Lens' GetSavingsPlansPurchaseRecommendationResponse (Maybe SavingsPlansPurchaseRecommendation)
+ Amazonka.CostExplorer.Lens: getSavingsPlansPurchaseRecommendation_accountScope :: Lens' GetSavingsPlansPurchaseRecommendation (Maybe AccountScope)
+ Amazonka.CostExplorer.Lens: getSavingsPlansPurchaseRecommendation_filter :: Lens' GetSavingsPlansPurchaseRecommendation (Maybe Expression)
+ Amazonka.CostExplorer.Lens: getSavingsPlansPurchaseRecommendation_lookbackPeriodInDays :: Lens' GetSavingsPlansPurchaseRecommendation LookbackPeriodInDays
+ Amazonka.CostExplorer.Lens: getSavingsPlansPurchaseRecommendation_nextPageToken :: Lens' GetSavingsPlansPurchaseRecommendation (Maybe Text)
+ Amazonka.CostExplorer.Lens: getSavingsPlansPurchaseRecommendation_pageSize :: Lens' GetSavingsPlansPurchaseRecommendation (Maybe Natural)
+ Amazonka.CostExplorer.Lens: getSavingsPlansPurchaseRecommendation_paymentOption :: Lens' GetSavingsPlansPurchaseRecommendation PaymentOption
+ Amazonka.CostExplorer.Lens: getSavingsPlansPurchaseRecommendation_savingsPlansType :: Lens' GetSavingsPlansPurchaseRecommendation SupportedSavingsPlansType
+ Amazonka.CostExplorer.Lens: getSavingsPlansPurchaseRecommendation_termInYears :: Lens' GetSavingsPlansPurchaseRecommendation TermInYears
+ Amazonka.CostExplorer.Lens: getSavingsPlansUtilizationDetailsResponse_httpStatus :: Lens' GetSavingsPlansUtilizationDetailsResponse Int
+ Amazonka.CostExplorer.Lens: getSavingsPlansUtilizationDetailsResponse_nextToken :: Lens' GetSavingsPlansUtilizationDetailsResponse (Maybe Text)
+ Amazonka.CostExplorer.Lens: getSavingsPlansUtilizationDetailsResponse_savingsPlansUtilizationDetails :: Lens' GetSavingsPlansUtilizationDetailsResponse [SavingsPlansUtilizationDetail]
+ Amazonka.CostExplorer.Lens: getSavingsPlansUtilizationDetailsResponse_timePeriod :: Lens' GetSavingsPlansUtilizationDetailsResponse DateInterval
+ Amazonka.CostExplorer.Lens: getSavingsPlansUtilizationDetailsResponse_total :: Lens' GetSavingsPlansUtilizationDetailsResponse (Maybe SavingsPlansUtilizationAggregates)
+ Amazonka.CostExplorer.Lens: getSavingsPlansUtilizationDetails_dataType :: Lens' GetSavingsPlansUtilizationDetails (Maybe [SavingsPlansDataType])
+ Amazonka.CostExplorer.Lens: getSavingsPlansUtilizationDetails_filter :: Lens' GetSavingsPlansUtilizationDetails (Maybe Expression)
+ Amazonka.CostExplorer.Lens: getSavingsPlansUtilizationDetails_maxResults :: Lens' GetSavingsPlansUtilizationDetails (Maybe Natural)
+ Amazonka.CostExplorer.Lens: getSavingsPlansUtilizationDetails_nextToken :: Lens' GetSavingsPlansUtilizationDetails (Maybe Text)
+ Amazonka.CostExplorer.Lens: getSavingsPlansUtilizationDetails_sortBy :: Lens' GetSavingsPlansUtilizationDetails (Maybe SortDefinition)
+ Amazonka.CostExplorer.Lens: getSavingsPlansUtilizationDetails_timePeriod :: Lens' GetSavingsPlansUtilizationDetails DateInterval
+ Amazonka.CostExplorer.Lens: getSavingsPlansUtilizationResponse_httpStatus :: Lens' GetSavingsPlansUtilizationResponse Int
+ Amazonka.CostExplorer.Lens: getSavingsPlansUtilizationResponse_savingsPlansUtilizationsByTime :: Lens' GetSavingsPlansUtilizationResponse (Maybe [SavingsPlansUtilizationByTime])
+ Amazonka.CostExplorer.Lens: getSavingsPlansUtilizationResponse_total :: Lens' GetSavingsPlansUtilizationResponse SavingsPlansUtilizationAggregates
+ Amazonka.CostExplorer.Lens: getSavingsPlansUtilization_filter :: Lens' GetSavingsPlansUtilization (Maybe Expression)
+ Amazonka.CostExplorer.Lens: getSavingsPlansUtilization_granularity :: Lens' GetSavingsPlansUtilization (Maybe Granularity)
+ Amazonka.CostExplorer.Lens: getSavingsPlansUtilization_sortBy :: Lens' GetSavingsPlansUtilization (Maybe SortDefinition)
+ Amazonka.CostExplorer.Lens: getSavingsPlansUtilization_timePeriod :: Lens' GetSavingsPlansUtilization DateInterval
+ Amazonka.CostExplorer.Lens: getTagsResponse_httpStatus :: Lens' GetTagsResponse Int
+ Amazonka.CostExplorer.Lens: getTagsResponse_nextPageToken :: Lens' GetTagsResponse (Maybe Text)
+ Amazonka.CostExplorer.Lens: getTagsResponse_returnSize :: Lens' GetTagsResponse Int
+ Amazonka.CostExplorer.Lens: getTagsResponse_tags :: Lens' GetTagsResponse [Text]
+ Amazonka.CostExplorer.Lens: getTagsResponse_totalSize :: Lens' GetTagsResponse Int
+ Amazonka.CostExplorer.Lens: getTags_filter :: Lens' GetTags (Maybe Expression)
+ Amazonka.CostExplorer.Lens: getTags_maxResults :: Lens' GetTags (Maybe Natural)
+ Amazonka.CostExplorer.Lens: getTags_nextPageToken :: Lens' GetTags (Maybe Text)
+ Amazonka.CostExplorer.Lens: getTags_searchString :: Lens' GetTags (Maybe Text)
+ Amazonka.CostExplorer.Lens: getTags_sortBy :: Lens' GetTags (Maybe [SortDefinition])
+ Amazonka.CostExplorer.Lens: getTags_tagKey :: Lens' GetTags (Maybe Text)
+ Amazonka.CostExplorer.Lens: getTags_timePeriod :: Lens' GetTags DateInterval
+ Amazonka.CostExplorer.Lens: getUsageForecastResponse_forecastResultsByTime :: Lens' GetUsageForecastResponse (Maybe [ForecastResult])
+ Amazonka.CostExplorer.Lens: getUsageForecastResponse_httpStatus :: Lens' GetUsageForecastResponse Int
+ Amazonka.CostExplorer.Lens: getUsageForecastResponse_total :: Lens' GetUsageForecastResponse (Maybe MetricValue)
+ Amazonka.CostExplorer.Lens: getUsageForecast_filter :: Lens' GetUsageForecast (Maybe Expression)
+ Amazonka.CostExplorer.Lens: getUsageForecast_granularity :: Lens' GetUsageForecast Granularity
+ Amazonka.CostExplorer.Lens: getUsageForecast_metric :: Lens' GetUsageForecast Metric
+ Amazonka.CostExplorer.Lens: getUsageForecast_predictionIntervalLevel :: Lens' GetUsageForecast (Maybe Natural)
+ Amazonka.CostExplorer.Lens: getUsageForecast_timePeriod :: Lens' GetUsageForecast DateInterval
+ Amazonka.CostExplorer.Lens: groupDefinition_key :: Lens' GroupDefinition (Maybe Text)
+ Amazonka.CostExplorer.Lens: groupDefinition_type :: Lens' GroupDefinition (Maybe GroupDefinitionType)
+ Amazonka.CostExplorer.Lens: group_keys :: Lens' Group (Maybe [Text])
+ Amazonka.CostExplorer.Lens: group_metrics :: Lens' Group (Maybe (HashMap Text MetricValue))
+ Amazonka.CostExplorer.Lens: impact_maxImpact :: Lens' Impact Double
+ Amazonka.CostExplorer.Lens: impact_totalActualSpend :: Lens' Impact (Maybe Double)
+ Amazonka.CostExplorer.Lens: impact_totalExpectedSpend :: Lens' Impact (Maybe Double)
+ Amazonka.CostExplorer.Lens: impact_totalImpact :: Lens' Impact (Maybe Double)
+ Amazonka.CostExplorer.Lens: impact_totalImpactPercentage :: Lens' Impact (Maybe Double)
+ Amazonka.CostExplorer.Lens: instanceDetails_eC2InstanceDetails :: Lens' InstanceDetails (Maybe EC2InstanceDetails)
+ Amazonka.CostExplorer.Lens: instanceDetails_eSInstanceDetails :: Lens' InstanceDetails (Maybe ESInstanceDetails)
+ Amazonka.CostExplorer.Lens: instanceDetails_elastiCacheInstanceDetails :: Lens' InstanceDetails (Maybe ElastiCacheInstanceDetails)
+ Amazonka.CostExplorer.Lens: instanceDetails_rDSInstanceDetails :: Lens' InstanceDetails (Maybe RDSInstanceDetails)
+ Amazonka.CostExplorer.Lens: instanceDetails_redshiftInstanceDetails :: Lens' InstanceDetails (Maybe RedshiftInstanceDetails)
+ Amazonka.CostExplorer.Lens: listCostAllocationTagsResponse_costAllocationTags :: Lens' ListCostAllocationTagsResponse (Maybe [CostAllocationTag])
+ Amazonka.CostExplorer.Lens: listCostAllocationTagsResponse_httpStatus :: Lens' ListCostAllocationTagsResponse Int
+ Amazonka.CostExplorer.Lens: listCostAllocationTagsResponse_nextToken :: Lens' ListCostAllocationTagsResponse (Maybe Text)
+ Amazonka.CostExplorer.Lens: listCostAllocationTags_maxResults :: Lens' ListCostAllocationTags (Maybe Natural)
+ Amazonka.CostExplorer.Lens: listCostAllocationTags_nextToken :: Lens' ListCostAllocationTags (Maybe Text)
+ Amazonka.CostExplorer.Lens: listCostAllocationTags_status :: Lens' ListCostAllocationTags (Maybe CostAllocationTagStatus)
+ Amazonka.CostExplorer.Lens: listCostAllocationTags_tagKeys :: Lens' ListCostAllocationTags (Maybe (NonEmpty Text))
+ Amazonka.CostExplorer.Lens: listCostAllocationTags_type :: Lens' ListCostAllocationTags (Maybe CostAllocationTagType)
+ Amazonka.CostExplorer.Lens: listCostCategoryDefinitionsResponse_costCategoryReferences :: Lens' ListCostCategoryDefinitionsResponse (Maybe [CostCategoryReference])
+ Amazonka.CostExplorer.Lens: listCostCategoryDefinitionsResponse_httpStatus :: Lens' ListCostCategoryDefinitionsResponse Int
+ Amazonka.CostExplorer.Lens: listCostCategoryDefinitionsResponse_nextToken :: Lens' ListCostCategoryDefinitionsResponse (Maybe Text)
+ Amazonka.CostExplorer.Lens: listCostCategoryDefinitions_effectiveOn :: Lens' ListCostCategoryDefinitions (Maybe Text)
+ Amazonka.CostExplorer.Lens: listCostCategoryDefinitions_maxResults :: Lens' ListCostCategoryDefinitions (Maybe Natural)
+ Amazonka.CostExplorer.Lens: listCostCategoryDefinitions_nextToken :: Lens' ListCostCategoryDefinitions (Maybe Text)
+ Amazonka.CostExplorer.Lens: listSavingsPlansPurchaseRecommendationGenerationResponse_generationSummaryList :: Lens' ListSavingsPlansPurchaseRecommendationGenerationResponse (Maybe [GenerationSummary])
+ Amazonka.CostExplorer.Lens: listSavingsPlansPurchaseRecommendationGenerationResponse_httpStatus :: Lens' ListSavingsPlansPurchaseRecommendationGenerationResponse Int
+ Amazonka.CostExplorer.Lens: listSavingsPlansPurchaseRecommendationGenerationResponse_nextPageToken :: Lens' ListSavingsPlansPurchaseRecommendationGenerationResponse (Maybe Text)
+ Amazonka.CostExplorer.Lens: listSavingsPlansPurchaseRecommendationGeneration_generationStatus :: Lens' ListSavingsPlansPurchaseRecommendationGeneration (Maybe GenerationStatus)
+ Amazonka.CostExplorer.Lens: listSavingsPlansPurchaseRecommendationGeneration_nextPageToken :: Lens' ListSavingsPlansPurchaseRecommendationGeneration (Maybe Text)
+ Amazonka.CostExplorer.Lens: listSavingsPlansPurchaseRecommendationGeneration_pageSize :: Lens' ListSavingsPlansPurchaseRecommendationGeneration (Maybe Natural)
+ Amazonka.CostExplorer.Lens: listSavingsPlansPurchaseRecommendationGeneration_recommendationIds :: Lens' ListSavingsPlansPurchaseRecommendationGeneration (Maybe [Text])
+ Amazonka.CostExplorer.Lens: listTagsForResourceResponse_httpStatus :: Lens' ListTagsForResourceResponse Int
+ Amazonka.CostExplorer.Lens: listTagsForResourceResponse_resourceTags :: Lens' ListTagsForResourceResponse (Maybe [ResourceTag])
+ Amazonka.CostExplorer.Lens: listTagsForResource_resourceArn :: Lens' ListTagsForResource Text
+ Amazonka.CostExplorer.Lens: metricValue_amount :: Lens' MetricValue (Maybe Text)
+ Amazonka.CostExplorer.Lens: metricValue_unit :: Lens' MetricValue (Maybe Text)
+ Amazonka.CostExplorer.Lens: modifyRecommendationDetail_targetInstances :: Lens' ModifyRecommendationDetail (Maybe [TargetInstance])
+ Amazonka.CostExplorer.Lens: networkResourceUtilization_networkInBytesPerSecond :: Lens' NetworkResourceUtilization (Maybe Text)
+ Amazonka.CostExplorer.Lens: networkResourceUtilization_networkOutBytesPerSecond :: Lens' NetworkResourceUtilization (Maybe Text)
+ Amazonka.CostExplorer.Lens: networkResourceUtilization_networkPacketsInPerSecond :: Lens' NetworkResourceUtilization (Maybe Text)
+ Amazonka.CostExplorer.Lens: networkResourceUtilization_networkPacketsOutPerSecond :: Lens' NetworkResourceUtilization (Maybe Text)
+ Amazonka.CostExplorer.Lens: provideAnomalyFeedbackResponse_anomalyId :: Lens' ProvideAnomalyFeedbackResponse Text
+ Amazonka.CostExplorer.Lens: provideAnomalyFeedbackResponse_httpStatus :: Lens' ProvideAnomalyFeedbackResponse Int
+ Amazonka.CostExplorer.Lens: provideAnomalyFeedback_anomalyId :: Lens' ProvideAnomalyFeedback Text
+ Amazonka.CostExplorer.Lens: provideAnomalyFeedback_feedback :: Lens' ProvideAnomalyFeedback AnomalyFeedbackType
+ Amazonka.CostExplorer.Lens: rDSInstanceDetails_currentGeneration :: Lens' RDSInstanceDetails (Maybe Bool)
+ Amazonka.CostExplorer.Lens: rDSInstanceDetails_databaseEdition :: Lens' RDSInstanceDetails (Maybe Text)
+ Amazonka.CostExplorer.Lens: rDSInstanceDetails_databaseEngine :: Lens' RDSInstanceDetails (Maybe Text)
+ Amazonka.CostExplorer.Lens: rDSInstanceDetails_deploymentOption :: Lens' RDSInstanceDetails (Maybe Text)
+ Amazonka.CostExplorer.Lens: rDSInstanceDetails_family :: Lens' RDSInstanceDetails (Maybe Text)
+ Amazonka.CostExplorer.Lens: rDSInstanceDetails_instanceType :: Lens' RDSInstanceDetails (Maybe Text)
+ Amazonka.CostExplorer.Lens: rDSInstanceDetails_licenseModel :: Lens' RDSInstanceDetails (Maybe Text)
+ Amazonka.CostExplorer.Lens: rDSInstanceDetails_region :: Lens' RDSInstanceDetails (Maybe Text)
+ Amazonka.CostExplorer.Lens: rDSInstanceDetails_sizeFlexEligible :: Lens' RDSInstanceDetails (Maybe Bool)
+ Amazonka.CostExplorer.Lens: redshiftInstanceDetails_currentGeneration :: Lens' RedshiftInstanceDetails (Maybe Bool)
+ Amazonka.CostExplorer.Lens: redshiftInstanceDetails_family :: Lens' RedshiftInstanceDetails (Maybe Text)
+ Amazonka.CostExplorer.Lens: redshiftInstanceDetails_nodeType :: Lens' RedshiftInstanceDetails (Maybe Text)
+ Amazonka.CostExplorer.Lens: redshiftInstanceDetails_region :: Lens' RedshiftInstanceDetails (Maybe Text)
+ Amazonka.CostExplorer.Lens: redshiftInstanceDetails_sizeFlexEligible :: Lens' RedshiftInstanceDetails (Maybe Bool)
+ Amazonka.CostExplorer.Lens: reservationAggregates_amortizedRecurringFee :: Lens' ReservationAggregates (Maybe Text)
+ Amazonka.CostExplorer.Lens: reservationAggregates_amortizedUpfrontFee :: Lens' ReservationAggregates (Maybe Text)
+ Amazonka.CostExplorer.Lens: reservationAggregates_netRISavings :: Lens' ReservationAggregates (Maybe Text)
+ Amazonka.CostExplorer.Lens: reservationAggregates_onDemandCostOfRIHoursUsed :: Lens' ReservationAggregates (Maybe Text)
+ Amazonka.CostExplorer.Lens: reservationAggregates_purchasedHours :: Lens' ReservationAggregates (Maybe Text)
+ Amazonka.CostExplorer.Lens: reservationAggregates_purchasedUnits :: Lens' ReservationAggregates (Maybe Text)
+ Amazonka.CostExplorer.Lens: reservationAggregates_rICostForUnusedHours :: Lens' ReservationAggregates (Maybe Text)
+ Amazonka.CostExplorer.Lens: reservationAggregates_realizedSavings :: Lens' ReservationAggregates (Maybe Text)
+ Amazonka.CostExplorer.Lens: reservationAggregates_totalActualHours :: Lens' ReservationAggregates (Maybe Text)
+ Amazonka.CostExplorer.Lens: reservationAggregates_totalActualUnits :: Lens' ReservationAggregates (Maybe Text)
+ Amazonka.CostExplorer.Lens: reservationAggregates_totalAmortizedFee :: Lens' ReservationAggregates (Maybe Text)
+ Amazonka.CostExplorer.Lens: reservationAggregates_totalPotentialRISavings :: Lens' ReservationAggregates (Maybe Text)
+ Amazonka.CostExplorer.Lens: reservationAggregates_unrealizedSavings :: Lens' ReservationAggregates (Maybe Text)
+ Amazonka.CostExplorer.Lens: reservationAggregates_unusedHours :: Lens' ReservationAggregates (Maybe Text)
+ Amazonka.CostExplorer.Lens: reservationAggregates_unusedUnits :: Lens' ReservationAggregates (Maybe Text)
+ Amazonka.CostExplorer.Lens: reservationAggregates_utilizationPercentage :: Lens' ReservationAggregates (Maybe Text)
+ Amazonka.CostExplorer.Lens: reservationAggregates_utilizationPercentageInUnits :: Lens' ReservationAggregates (Maybe Text)
+ Amazonka.CostExplorer.Lens: reservationCoverageGroup_attributes :: Lens' ReservationCoverageGroup (Maybe (HashMap Text Text))
+ Amazonka.CostExplorer.Lens: reservationCoverageGroup_coverage :: Lens' ReservationCoverageGroup (Maybe Coverage)
+ Amazonka.CostExplorer.Lens: reservationPurchaseRecommendationDetail_accountId :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Lens: reservationPurchaseRecommendationDetail_averageNormalizedUnitsUsedPerHour :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Lens: reservationPurchaseRecommendationDetail_averageNumberOfInstancesUsedPerHour :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Lens: reservationPurchaseRecommendationDetail_averageUtilization :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Lens: reservationPurchaseRecommendationDetail_currencyCode :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Lens: reservationPurchaseRecommendationDetail_estimatedBreakEvenInMonths :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Lens: reservationPurchaseRecommendationDetail_estimatedMonthlyOnDemandCost :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Lens: reservationPurchaseRecommendationDetail_estimatedMonthlySavingsAmount :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Lens: reservationPurchaseRecommendationDetail_estimatedMonthlySavingsPercentage :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Lens: reservationPurchaseRecommendationDetail_estimatedReservationCostForLookbackPeriod :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Lens: reservationPurchaseRecommendationDetail_instanceDetails :: Lens' ReservationPurchaseRecommendationDetail (Maybe InstanceDetails)
+ Amazonka.CostExplorer.Lens: reservationPurchaseRecommendationDetail_maximumNormalizedUnitsUsedPerHour :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Lens: reservationPurchaseRecommendationDetail_maximumNumberOfInstancesUsedPerHour :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Lens: reservationPurchaseRecommendationDetail_minimumNormalizedUnitsUsedPerHour :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Lens: reservationPurchaseRecommendationDetail_minimumNumberOfInstancesUsedPerHour :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Lens: reservationPurchaseRecommendationDetail_recommendedNormalizedUnitsToPurchase :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Lens: reservationPurchaseRecommendationDetail_recommendedNumberOfInstancesToPurchase :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Lens: reservationPurchaseRecommendationDetail_recurringStandardMonthlyCost :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Lens: reservationPurchaseRecommendationDetail_upfrontCost :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Lens: reservationPurchaseRecommendationMetadata_generationTimestamp :: Lens' ReservationPurchaseRecommendationMetadata (Maybe Text)
+ Amazonka.CostExplorer.Lens: reservationPurchaseRecommendationMetadata_recommendationId :: Lens' ReservationPurchaseRecommendationMetadata (Maybe Text)
+ Amazonka.CostExplorer.Lens: reservationPurchaseRecommendationSummary_currencyCode :: Lens' ReservationPurchaseRecommendationSummary (Maybe Text)
+ Amazonka.CostExplorer.Lens: reservationPurchaseRecommendationSummary_totalEstimatedMonthlySavingsAmount :: Lens' ReservationPurchaseRecommendationSummary (Maybe Text)
+ Amazonka.CostExplorer.Lens: reservationPurchaseRecommendationSummary_totalEstimatedMonthlySavingsPercentage :: Lens' ReservationPurchaseRecommendationSummary (Maybe Text)
+ Amazonka.CostExplorer.Lens: reservationPurchaseRecommendation_accountScope :: Lens' ReservationPurchaseRecommendation (Maybe AccountScope)
+ Amazonka.CostExplorer.Lens: reservationPurchaseRecommendation_lookbackPeriodInDays :: Lens' ReservationPurchaseRecommendation (Maybe LookbackPeriodInDays)
+ Amazonka.CostExplorer.Lens: reservationPurchaseRecommendation_paymentOption :: Lens' ReservationPurchaseRecommendation (Maybe PaymentOption)
+ Amazonka.CostExplorer.Lens: reservationPurchaseRecommendation_recommendationDetails :: Lens' ReservationPurchaseRecommendation (Maybe [ReservationPurchaseRecommendationDetail])
+ Amazonka.CostExplorer.Lens: reservationPurchaseRecommendation_recommendationSummary :: Lens' ReservationPurchaseRecommendation (Maybe ReservationPurchaseRecommendationSummary)
+ Amazonka.CostExplorer.Lens: reservationPurchaseRecommendation_serviceSpecification :: Lens' ReservationPurchaseRecommendation (Maybe ServiceSpecification)
+ Amazonka.CostExplorer.Lens: reservationPurchaseRecommendation_termInYears :: Lens' ReservationPurchaseRecommendation (Maybe TermInYears)
+ Amazonka.CostExplorer.Lens: reservationUtilizationGroup_attributes :: Lens' ReservationUtilizationGroup (Maybe (HashMap Text Text))
+ Amazonka.CostExplorer.Lens: reservationUtilizationGroup_key :: Lens' ReservationUtilizationGroup (Maybe Text)
+ Amazonka.CostExplorer.Lens: reservationUtilizationGroup_utilization :: Lens' ReservationUtilizationGroup (Maybe ReservationAggregates)
+ Amazonka.CostExplorer.Lens: reservationUtilizationGroup_value :: Lens' ReservationUtilizationGroup (Maybe Text)
+ Amazonka.CostExplorer.Lens: resourceDetails_eC2ResourceDetails :: Lens' ResourceDetails (Maybe EC2ResourceDetails)
+ Amazonka.CostExplorer.Lens: resourceTag_key :: Lens' ResourceTag Text
+ Amazonka.CostExplorer.Lens: resourceTag_value :: Lens' ResourceTag Text
+ Amazonka.CostExplorer.Lens: resourceUtilization_eC2ResourceUtilization :: Lens' ResourceUtilization (Maybe EC2ResourceUtilization)
+ Amazonka.CostExplorer.Lens: resultByTime_estimated :: Lens' ResultByTime (Maybe Bool)
+ Amazonka.CostExplorer.Lens: resultByTime_groups :: Lens' ResultByTime (Maybe [Group])
+ Amazonka.CostExplorer.Lens: resultByTime_timePeriod :: Lens' ResultByTime (Maybe DateInterval)
+ Amazonka.CostExplorer.Lens: resultByTime_total :: Lens' ResultByTime (Maybe (HashMap Text MetricValue))
+ Amazonka.CostExplorer.Lens: rightsizingRecommendationConfiguration_benefitsConsidered :: Lens' RightsizingRecommendationConfiguration Bool
+ Amazonka.CostExplorer.Lens: rightsizingRecommendationConfiguration_recommendationTarget :: Lens' RightsizingRecommendationConfiguration RecommendationTarget
+ Amazonka.CostExplorer.Lens: rightsizingRecommendationMetadata_additionalMetadata :: Lens' RightsizingRecommendationMetadata (Maybe Text)
+ Amazonka.CostExplorer.Lens: rightsizingRecommendationMetadata_generationTimestamp :: Lens' RightsizingRecommendationMetadata (Maybe Text)
+ Amazonka.CostExplorer.Lens: rightsizingRecommendationMetadata_lookbackPeriodInDays :: Lens' RightsizingRecommendationMetadata (Maybe LookbackPeriodInDays)
+ Amazonka.CostExplorer.Lens: rightsizingRecommendationMetadata_recommendationId :: Lens' RightsizingRecommendationMetadata (Maybe Text)
+ Amazonka.CostExplorer.Lens: rightsizingRecommendationSummary_estimatedTotalMonthlySavingsAmount :: Lens' RightsizingRecommendationSummary (Maybe Text)
+ Amazonka.CostExplorer.Lens: rightsizingRecommendationSummary_savingsCurrencyCode :: Lens' RightsizingRecommendationSummary (Maybe Text)
+ Amazonka.CostExplorer.Lens: rightsizingRecommendationSummary_savingsPercentage :: Lens' RightsizingRecommendationSummary (Maybe Text)
+ Amazonka.CostExplorer.Lens: rightsizingRecommendationSummary_totalRecommendationCount :: Lens' RightsizingRecommendationSummary (Maybe Text)
+ Amazonka.CostExplorer.Lens: rightsizingRecommendation_accountId :: Lens' RightsizingRecommendation (Maybe Text)
+ Amazonka.CostExplorer.Lens: rightsizingRecommendation_currentInstance :: Lens' RightsizingRecommendation (Maybe CurrentInstance)
+ Amazonka.CostExplorer.Lens: rightsizingRecommendation_findingReasonCodes :: Lens' RightsizingRecommendation (Maybe [FindingReasonCode])
+ Amazonka.CostExplorer.Lens: rightsizingRecommendation_modifyRecommendationDetail :: Lens' RightsizingRecommendation (Maybe ModifyRecommendationDetail)
+ Amazonka.CostExplorer.Lens: rightsizingRecommendation_rightsizingType :: Lens' RightsizingRecommendation (Maybe RightsizingType)
+ Amazonka.CostExplorer.Lens: rightsizingRecommendation_terminateRecommendationDetail :: Lens' RightsizingRecommendation (Maybe TerminateRecommendationDetail)
+ Amazonka.CostExplorer.Lens: rootCause_linkedAccount :: Lens' RootCause (Maybe Text)
+ Amazonka.CostExplorer.Lens: rootCause_linkedAccountName :: Lens' RootCause (Maybe Text)
+ Amazonka.CostExplorer.Lens: rootCause_region :: Lens' RootCause (Maybe Text)
+ Amazonka.CostExplorer.Lens: rootCause_service :: Lens' RootCause (Maybe Text)
+ Amazonka.CostExplorer.Lens: rootCause_usageType :: Lens' RootCause (Maybe Text)
+ Amazonka.CostExplorer.Lens: savingsPlansAmortizedCommitment_amortizedRecurringCommitment :: Lens' SavingsPlansAmortizedCommitment (Maybe Text)
+ Amazonka.CostExplorer.Lens: savingsPlansAmortizedCommitment_amortizedUpfrontCommitment :: Lens' SavingsPlansAmortizedCommitment (Maybe Text)
+ Amazonka.CostExplorer.Lens: savingsPlansAmortizedCommitment_totalAmortizedCommitment :: Lens' SavingsPlansAmortizedCommitment (Maybe Text)
+ Amazonka.CostExplorer.Lens: savingsPlansCoverageData_coveragePercentage :: Lens' SavingsPlansCoverageData (Maybe Text)
+ Amazonka.CostExplorer.Lens: savingsPlansCoverageData_onDemandCost :: Lens' SavingsPlansCoverageData (Maybe Text)
+ Amazonka.CostExplorer.Lens: savingsPlansCoverageData_spendCoveredBySavingsPlans :: Lens' SavingsPlansCoverageData (Maybe Text)
+ Amazonka.CostExplorer.Lens: savingsPlansCoverageData_totalCost :: Lens' SavingsPlansCoverageData (Maybe Text)
+ Amazonka.CostExplorer.Lens: savingsPlansCoverage_attributes :: Lens' SavingsPlansCoverage (Maybe (HashMap Text Text))
+ Amazonka.CostExplorer.Lens: savingsPlansCoverage_coverage :: Lens' SavingsPlansCoverage (Maybe SavingsPlansCoverageData)
+ Amazonka.CostExplorer.Lens: savingsPlansCoverage_timePeriod :: Lens' SavingsPlansCoverage (Maybe DateInterval)
+ Amazonka.CostExplorer.Lens: savingsPlansDetails_instanceFamily :: Lens' SavingsPlansDetails (Maybe Text)
+ Amazonka.CostExplorer.Lens: savingsPlansDetails_offeringId :: Lens' SavingsPlansDetails (Maybe Text)
+ Amazonka.CostExplorer.Lens: savingsPlansDetails_region :: Lens' SavingsPlansDetails (Maybe Text)
+ Amazonka.CostExplorer.Lens: savingsPlansPurchaseRecommendationDetail_accountId :: Lens' SavingsPlansPurchaseRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Lens: savingsPlansPurchaseRecommendationDetail_currencyCode :: Lens' SavingsPlansPurchaseRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Lens: savingsPlansPurchaseRecommendationDetail_currentAverageHourlyOnDemandSpend :: Lens' SavingsPlansPurchaseRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Lens: savingsPlansPurchaseRecommendationDetail_currentMaximumHourlyOnDemandSpend :: Lens' SavingsPlansPurchaseRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Lens: savingsPlansPurchaseRecommendationDetail_currentMinimumHourlyOnDemandSpend :: Lens' SavingsPlansPurchaseRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Lens: savingsPlansPurchaseRecommendationDetail_estimatedAverageUtilization :: Lens' SavingsPlansPurchaseRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Lens: savingsPlansPurchaseRecommendationDetail_estimatedMonthlySavingsAmount :: Lens' SavingsPlansPurchaseRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Lens: savingsPlansPurchaseRecommendationDetail_estimatedOnDemandCost :: Lens' SavingsPlansPurchaseRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Lens: savingsPlansPurchaseRecommendationDetail_estimatedOnDemandCostWithCurrentCommitment :: Lens' SavingsPlansPurchaseRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Lens: savingsPlansPurchaseRecommendationDetail_estimatedROI :: Lens' SavingsPlansPurchaseRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Lens: savingsPlansPurchaseRecommendationDetail_estimatedSPCost :: Lens' SavingsPlansPurchaseRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Lens: savingsPlansPurchaseRecommendationDetail_estimatedSavingsAmount :: Lens' SavingsPlansPurchaseRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Lens: savingsPlansPurchaseRecommendationDetail_estimatedSavingsPercentage :: Lens' SavingsPlansPurchaseRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Lens: savingsPlansPurchaseRecommendationDetail_hourlyCommitmentToPurchase :: Lens' SavingsPlansPurchaseRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Lens: savingsPlansPurchaseRecommendationDetail_savingsPlansDetails :: Lens' SavingsPlansPurchaseRecommendationDetail (Maybe SavingsPlansDetails)
+ Amazonka.CostExplorer.Lens: savingsPlansPurchaseRecommendationDetail_upfrontCost :: Lens' SavingsPlansPurchaseRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Lens: savingsPlansPurchaseRecommendationMetadata_additionalMetadata :: Lens' SavingsPlansPurchaseRecommendationMetadata (Maybe Text)
+ Amazonka.CostExplorer.Lens: savingsPlansPurchaseRecommendationMetadata_generationTimestamp :: Lens' SavingsPlansPurchaseRecommendationMetadata (Maybe Text)
+ Amazonka.CostExplorer.Lens: savingsPlansPurchaseRecommendationMetadata_recommendationId :: Lens' SavingsPlansPurchaseRecommendationMetadata (Maybe Text)
+ Amazonka.CostExplorer.Lens: savingsPlansPurchaseRecommendationSummary_currencyCode :: Lens' SavingsPlansPurchaseRecommendationSummary (Maybe Text)
+ Amazonka.CostExplorer.Lens: savingsPlansPurchaseRecommendationSummary_currentOnDemandSpend :: Lens' SavingsPlansPurchaseRecommendationSummary (Maybe Text)
+ Amazonka.CostExplorer.Lens: savingsPlansPurchaseRecommendationSummary_dailyCommitmentToPurchase :: Lens' SavingsPlansPurchaseRecommendationSummary (Maybe Text)
+ Amazonka.CostExplorer.Lens: savingsPlansPurchaseRecommendationSummary_estimatedMonthlySavingsAmount :: Lens' SavingsPlansPurchaseRecommendationSummary (Maybe Text)
+ Amazonka.CostExplorer.Lens: savingsPlansPurchaseRecommendationSummary_estimatedOnDemandCostWithCurrentCommitment :: Lens' SavingsPlansPurchaseRecommendationSummary (Maybe Text)
+ Amazonka.CostExplorer.Lens: savingsPlansPurchaseRecommendationSummary_estimatedROI :: Lens' SavingsPlansPurchaseRecommendationSummary (Maybe Text)
+ Amazonka.CostExplorer.Lens: savingsPlansPurchaseRecommendationSummary_estimatedSavingsAmount :: Lens' SavingsPlansPurchaseRecommendationSummary (Maybe Text)
+ Amazonka.CostExplorer.Lens: savingsPlansPurchaseRecommendationSummary_estimatedSavingsPercentage :: Lens' SavingsPlansPurchaseRecommendationSummary (Maybe Text)
+ Amazonka.CostExplorer.Lens: savingsPlansPurchaseRecommendationSummary_estimatedTotalCost :: Lens' SavingsPlansPurchaseRecommendationSummary (Maybe Text)
+ Amazonka.CostExplorer.Lens: savingsPlansPurchaseRecommendationSummary_hourlyCommitmentToPurchase :: Lens' SavingsPlansPurchaseRecommendationSummary (Maybe Text)
+ Amazonka.CostExplorer.Lens: savingsPlansPurchaseRecommendationSummary_totalRecommendationCount :: Lens' SavingsPlansPurchaseRecommendationSummary (Maybe Text)
+ Amazonka.CostExplorer.Lens: savingsPlansPurchaseRecommendation_accountScope :: Lens' SavingsPlansPurchaseRecommendation (Maybe AccountScope)
+ Amazonka.CostExplorer.Lens: savingsPlansPurchaseRecommendation_lookbackPeriodInDays :: Lens' SavingsPlansPurchaseRecommendation (Maybe LookbackPeriodInDays)
+ Amazonka.CostExplorer.Lens: savingsPlansPurchaseRecommendation_paymentOption :: Lens' SavingsPlansPurchaseRecommendation (Maybe PaymentOption)
+ Amazonka.CostExplorer.Lens: savingsPlansPurchaseRecommendation_savingsPlansPurchaseRecommendationDetails :: Lens' SavingsPlansPurchaseRecommendation (Maybe [SavingsPlansPurchaseRecommendationDetail])
+ Amazonka.CostExplorer.Lens: savingsPlansPurchaseRecommendation_savingsPlansPurchaseRecommendationSummary :: Lens' SavingsPlansPurchaseRecommendation (Maybe SavingsPlansPurchaseRecommendationSummary)
+ Amazonka.CostExplorer.Lens: savingsPlansPurchaseRecommendation_savingsPlansType :: Lens' SavingsPlansPurchaseRecommendation (Maybe SupportedSavingsPlansType)
+ Amazonka.CostExplorer.Lens: savingsPlansPurchaseRecommendation_termInYears :: Lens' SavingsPlansPurchaseRecommendation (Maybe TermInYears)
+ Amazonka.CostExplorer.Lens: savingsPlansSavings_netSavings :: Lens' SavingsPlansSavings (Maybe Text)
+ Amazonka.CostExplorer.Lens: savingsPlansSavings_onDemandCostEquivalent :: Lens' SavingsPlansSavings (Maybe Text)
+ Amazonka.CostExplorer.Lens: savingsPlansUtilizationAggregates_amortizedCommitment :: Lens' SavingsPlansUtilizationAggregates (Maybe SavingsPlansAmortizedCommitment)
+ Amazonka.CostExplorer.Lens: savingsPlansUtilizationAggregates_savings :: Lens' SavingsPlansUtilizationAggregates (Maybe SavingsPlansSavings)
+ Amazonka.CostExplorer.Lens: savingsPlansUtilizationAggregates_utilization :: Lens' SavingsPlansUtilizationAggregates SavingsPlansUtilization
+ Amazonka.CostExplorer.Lens: savingsPlansUtilizationByTime_amortizedCommitment :: Lens' SavingsPlansUtilizationByTime (Maybe SavingsPlansAmortizedCommitment)
+ Amazonka.CostExplorer.Lens: savingsPlansUtilizationByTime_savings :: Lens' SavingsPlansUtilizationByTime (Maybe SavingsPlansSavings)
+ Amazonka.CostExplorer.Lens: savingsPlansUtilizationByTime_timePeriod :: Lens' SavingsPlansUtilizationByTime DateInterval
+ Amazonka.CostExplorer.Lens: savingsPlansUtilizationByTime_utilization :: Lens' SavingsPlansUtilizationByTime SavingsPlansUtilization
+ Amazonka.CostExplorer.Lens: savingsPlansUtilizationDetail_amortizedCommitment :: Lens' SavingsPlansUtilizationDetail (Maybe SavingsPlansAmortizedCommitment)
+ Amazonka.CostExplorer.Lens: savingsPlansUtilizationDetail_attributes :: Lens' SavingsPlansUtilizationDetail (Maybe (HashMap Text Text))
+ Amazonka.CostExplorer.Lens: savingsPlansUtilizationDetail_savings :: Lens' SavingsPlansUtilizationDetail (Maybe SavingsPlansSavings)
+ Amazonka.CostExplorer.Lens: savingsPlansUtilizationDetail_savingsPlanArn :: Lens' SavingsPlansUtilizationDetail (Maybe Text)
+ Amazonka.CostExplorer.Lens: savingsPlansUtilizationDetail_utilization :: Lens' SavingsPlansUtilizationDetail (Maybe SavingsPlansUtilization)
+ Amazonka.CostExplorer.Lens: savingsPlansUtilization_totalCommitment :: Lens' SavingsPlansUtilization (Maybe Text)
+ Amazonka.CostExplorer.Lens: savingsPlansUtilization_unusedCommitment :: Lens' SavingsPlansUtilization (Maybe Text)
+ Amazonka.CostExplorer.Lens: savingsPlansUtilization_usedCommitment :: Lens' SavingsPlansUtilization (Maybe Text)
+ Amazonka.CostExplorer.Lens: savingsPlansUtilization_utilizationPercentage :: Lens' SavingsPlansUtilization (Maybe Text)
+ Amazonka.CostExplorer.Lens: serviceSpecification_eC2Specification :: Lens' ServiceSpecification (Maybe EC2Specification)
+ Amazonka.CostExplorer.Lens: sortDefinition_key :: Lens' SortDefinition Text
+ Amazonka.CostExplorer.Lens: sortDefinition_sortOrder :: Lens' SortDefinition (Maybe SortOrder)
+ Amazonka.CostExplorer.Lens: startSavingsPlansPurchaseRecommendationGenerationResponse_estimatedCompletionTime :: Lens' StartSavingsPlansPurchaseRecommendationGenerationResponse (Maybe Text)
+ Amazonka.CostExplorer.Lens: startSavingsPlansPurchaseRecommendationGenerationResponse_generationStartedTime :: Lens' StartSavingsPlansPurchaseRecommendationGenerationResponse (Maybe Text)
+ Amazonka.CostExplorer.Lens: startSavingsPlansPurchaseRecommendationGenerationResponse_httpStatus :: Lens' StartSavingsPlansPurchaseRecommendationGenerationResponse Int
+ Amazonka.CostExplorer.Lens: startSavingsPlansPurchaseRecommendationGenerationResponse_recommendationId :: Lens' StartSavingsPlansPurchaseRecommendationGenerationResponse (Maybe Text)
+ Amazonka.CostExplorer.Lens: subscriber_address :: Lens' Subscriber (Maybe Text)
+ Amazonka.CostExplorer.Lens: subscriber_status :: Lens' Subscriber (Maybe SubscriberStatus)
+ Amazonka.CostExplorer.Lens: subscriber_type :: Lens' Subscriber (Maybe SubscriberType)
+ Amazonka.CostExplorer.Lens: tagResourceResponse_httpStatus :: Lens' TagResourceResponse Int
+ Amazonka.CostExplorer.Lens: tagResource_resourceArn :: Lens' TagResource Text
+ Amazonka.CostExplorer.Lens: tagResource_resourceTags :: Lens' TagResource [ResourceTag]
+ Amazonka.CostExplorer.Lens: tagValues_key :: Lens' TagValues (Maybe Text)
+ Amazonka.CostExplorer.Lens: tagValues_matchOptions :: Lens' TagValues (Maybe [MatchOption])
+ Amazonka.CostExplorer.Lens: tagValues_values :: Lens' TagValues (Maybe [Text])
+ Amazonka.CostExplorer.Lens: targetInstance_currencyCode :: Lens' TargetInstance (Maybe Text)
+ Amazonka.CostExplorer.Lens: targetInstance_defaultTargetInstance :: Lens' TargetInstance (Maybe Bool)
+ Amazonka.CostExplorer.Lens: targetInstance_estimatedMonthlyCost :: Lens' TargetInstance (Maybe Text)
+ Amazonka.CostExplorer.Lens: targetInstance_estimatedMonthlySavings :: Lens' TargetInstance (Maybe Text)
+ Amazonka.CostExplorer.Lens: targetInstance_expectedResourceUtilization :: Lens' TargetInstance (Maybe ResourceUtilization)
+ Amazonka.CostExplorer.Lens: targetInstance_platformDifferences :: Lens' TargetInstance (Maybe [PlatformDifference])
+ Amazonka.CostExplorer.Lens: targetInstance_resourceDetails :: Lens' TargetInstance (Maybe ResourceDetails)
+ Amazonka.CostExplorer.Lens: terminateRecommendationDetail_currencyCode :: Lens' TerminateRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Lens: terminateRecommendationDetail_estimatedMonthlySavings :: Lens' TerminateRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Lens: totalImpactFilter_endValue :: Lens' TotalImpactFilter (Maybe Double)
+ Amazonka.CostExplorer.Lens: totalImpactFilter_numericOperator :: Lens' TotalImpactFilter NumericOperator
+ Amazonka.CostExplorer.Lens: totalImpactFilter_startValue :: Lens' TotalImpactFilter Double
+ Amazonka.CostExplorer.Lens: untagResourceResponse_httpStatus :: Lens' UntagResourceResponse Int
+ Amazonka.CostExplorer.Lens: untagResource_resourceArn :: Lens' UntagResource Text
+ Amazonka.CostExplorer.Lens: untagResource_resourceTagKeys :: Lens' UntagResource [Text]
+ Amazonka.CostExplorer.Lens: updateAnomalyMonitorResponse_httpStatus :: Lens' UpdateAnomalyMonitorResponse Int
+ Amazonka.CostExplorer.Lens: updateAnomalyMonitorResponse_monitorArn :: Lens' UpdateAnomalyMonitorResponse Text
+ Amazonka.CostExplorer.Lens: updateAnomalyMonitor_monitorArn :: Lens' UpdateAnomalyMonitor Text
+ Amazonka.CostExplorer.Lens: updateAnomalyMonitor_monitorName :: Lens' UpdateAnomalyMonitor (Maybe Text)
+ Amazonka.CostExplorer.Lens: updateAnomalySubscriptionResponse_httpStatus :: Lens' UpdateAnomalySubscriptionResponse Int
+ Amazonka.CostExplorer.Lens: updateAnomalySubscriptionResponse_subscriptionArn :: Lens' UpdateAnomalySubscriptionResponse Text
+ Amazonka.CostExplorer.Lens: updateAnomalySubscription_frequency :: Lens' UpdateAnomalySubscription (Maybe AnomalySubscriptionFrequency)
+ Amazonka.CostExplorer.Lens: updateAnomalySubscription_monitorArnList :: Lens' UpdateAnomalySubscription (Maybe [Text])
+ Amazonka.CostExplorer.Lens: updateAnomalySubscription_subscribers :: Lens' UpdateAnomalySubscription (Maybe [Subscriber])
+ Amazonka.CostExplorer.Lens: updateAnomalySubscription_subscriptionArn :: Lens' UpdateAnomalySubscription Text
+ Amazonka.CostExplorer.Lens: updateAnomalySubscription_subscriptionName :: Lens' UpdateAnomalySubscription (Maybe Text)
+ Amazonka.CostExplorer.Lens: updateAnomalySubscription_threshold :: Lens' UpdateAnomalySubscription (Maybe Double)
+ Amazonka.CostExplorer.Lens: updateAnomalySubscription_thresholdExpression :: Lens' UpdateAnomalySubscription (Maybe Expression)
+ Amazonka.CostExplorer.Lens: updateCostAllocationTagsStatusError_code :: Lens' UpdateCostAllocationTagsStatusError (Maybe Text)
+ Amazonka.CostExplorer.Lens: updateCostAllocationTagsStatusError_message :: Lens' UpdateCostAllocationTagsStatusError (Maybe Text)
+ Amazonka.CostExplorer.Lens: updateCostAllocationTagsStatusError_tagKey :: Lens' UpdateCostAllocationTagsStatusError (Maybe Text)
+ Amazonka.CostExplorer.Lens: updateCostAllocationTagsStatusResponse_errors :: Lens' UpdateCostAllocationTagsStatusResponse (Maybe [UpdateCostAllocationTagsStatusError])
+ Amazonka.CostExplorer.Lens: updateCostAllocationTagsStatusResponse_httpStatus :: Lens' UpdateCostAllocationTagsStatusResponse Int
+ Amazonka.CostExplorer.Lens: updateCostAllocationTagsStatus_costAllocationTagsStatus :: Lens' UpdateCostAllocationTagsStatus (NonEmpty CostAllocationTagStatusEntry)
+ Amazonka.CostExplorer.Lens: updateCostCategoryDefinitionResponse_costCategoryArn :: Lens' UpdateCostCategoryDefinitionResponse (Maybe Text)
+ Amazonka.CostExplorer.Lens: updateCostCategoryDefinitionResponse_effectiveStart :: Lens' UpdateCostCategoryDefinitionResponse (Maybe Text)
+ Amazonka.CostExplorer.Lens: updateCostCategoryDefinitionResponse_httpStatus :: Lens' UpdateCostCategoryDefinitionResponse Int
+ Amazonka.CostExplorer.Lens: updateCostCategoryDefinition_costCategoryArn :: Lens' UpdateCostCategoryDefinition Text
+ Amazonka.CostExplorer.Lens: updateCostCategoryDefinition_defaultValue :: Lens' UpdateCostCategoryDefinition (Maybe Text)
+ Amazonka.CostExplorer.Lens: updateCostCategoryDefinition_effectiveStart :: Lens' UpdateCostCategoryDefinition (Maybe Text)
+ Amazonka.CostExplorer.Lens: updateCostCategoryDefinition_ruleVersion :: Lens' UpdateCostCategoryDefinition CostCategoryRuleVersion
+ Amazonka.CostExplorer.Lens: updateCostCategoryDefinition_rules :: Lens' UpdateCostCategoryDefinition (NonEmpty CostCategoryRule)
+ Amazonka.CostExplorer.Lens: updateCostCategoryDefinition_splitChargeRules :: Lens' UpdateCostCategoryDefinition (Maybe (NonEmpty CostCategorySplitChargeRule))
+ Amazonka.CostExplorer.Lens: utilizationByTime_groups :: Lens' UtilizationByTime (Maybe [ReservationUtilizationGroup])
+ Amazonka.CostExplorer.Lens: utilizationByTime_timePeriod :: Lens' UtilizationByTime (Maybe DateInterval)
+ Amazonka.CostExplorer.Lens: utilizationByTime_total :: Lens' UtilizationByTime (Maybe ReservationAggregates)
+ Amazonka.CostExplorer.ListCostAllocationTags: ListCostAllocationTags' :: Maybe Natural -> Maybe Text -> Maybe CostAllocationTagStatus -> Maybe (NonEmpty Text) -> Maybe CostAllocationTagType -> ListCostAllocationTags
+ Amazonka.CostExplorer.ListCostAllocationTags: ListCostAllocationTagsResponse' :: Maybe [CostAllocationTag] -> Maybe Text -> Int -> ListCostAllocationTagsResponse
+ Amazonka.CostExplorer.ListCostAllocationTags: [$sel:costAllocationTags:ListCostAllocationTagsResponse'] :: ListCostAllocationTagsResponse -> Maybe [CostAllocationTag]
+ Amazonka.CostExplorer.ListCostAllocationTags: [$sel:httpStatus:ListCostAllocationTagsResponse'] :: ListCostAllocationTagsResponse -> Int
+ Amazonka.CostExplorer.ListCostAllocationTags: [$sel:maxResults:ListCostAllocationTags'] :: ListCostAllocationTags -> Maybe Natural
+ Amazonka.CostExplorer.ListCostAllocationTags: [$sel:nextToken:ListCostAllocationTags'] :: ListCostAllocationTags -> Maybe Text
+ Amazonka.CostExplorer.ListCostAllocationTags: [$sel:nextToken:ListCostAllocationTagsResponse'] :: ListCostAllocationTagsResponse -> Maybe Text
+ Amazonka.CostExplorer.ListCostAllocationTags: [$sel:status:ListCostAllocationTags'] :: ListCostAllocationTags -> Maybe CostAllocationTagStatus
+ Amazonka.CostExplorer.ListCostAllocationTags: [$sel:tagKeys:ListCostAllocationTags'] :: ListCostAllocationTags -> Maybe (NonEmpty Text)
+ Amazonka.CostExplorer.ListCostAllocationTags: [$sel:type':ListCostAllocationTags'] :: ListCostAllocationTags -> Maybe CostAllocationTagType
+ Amazonka.CostExplorer.ListCostAllocationTags: data ListCostAllocationTags
+ Amazonka.CostExplorer.ListCostAllocationTags: data ListCostAllocationTagsResponse
+ Amazonka.CostExplorer.ListCostAllocationTags: instance Amazonka.Data.Headers.ToHeaders Amazonka.CostExplorer.ListCostAllocationTags.ListCostAllocationTags
+ Amazonka.CostExplorer.ListCostAllocationTags: instance Amazonka.Data.Path.ToPath Amazonka.CostExplorer.ListCostAllocationTags.ListCostAllocationTags
+ Amazonka.CostExplorer.ListCostAllocationTags: instance Amazonka.Data.Query.ToQuery Amazonka.CostExplorer.ListCostAllocationTags.ListCostAllocationTags
+ Amazonka.CostExplorer.ListCostAllocationTags: instance Amazonka.Types.AWSRequest Amazonka.CostExplorer.ListCostAllocationTags.ListCostAllocationTags
+ Amazonka.CostExplorer.ListCostAllocationTags: instance Control.DeepSeq.NFData Amazonka.CostExplorer.ListCostAllocationTags.ListCostAllocationTags
+ Amazonka.CostExplorer.ListCostAllocationTags: instance Control.DeepSeq.NFData Amazonka.CostExplorer.ListCostAllocationTags.ListCostAllocationTagsResponse
+ Amazonka.CostExplorer.ListCostAllocationTags: instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.CostExplorer.ListCostAllocationTags.ListCostAllocationTags
+ Amazonka.CostExplorer.ListCostAllocationTags: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.ListCostAllocationTags.ListCostAllocationTags
+ Amazonka.CostExplorer.ListCostAllocationTags: instance GHC.Classes.Eq Amazonka.CostExplorer.ListCostAllocationTags.ListCostAllocationTags
+ Amazonka.CostExplorer.ListCostAllocationTags: instance GHC.Classes.Eq Amazonka.CostExplorer.ListCostAllocationTags.ListCostAllocationTagsResponse
+ Amazonka.CostExplorer.ListCostAllocationTags: instance GHC.Generics.Generic Amazonka.CostExplorer.ListCostAllocationTags.ListCostAllocationTags
+ Amazonka.CostExplorer.ListCostAllocationTags: instance GHC.Generics.Generic Amazonka.CostExplorer.ListCostAllocationTags.ListCostAllocationTagsResponse
+ Amazonka.CostExplorer.ListCostAllocationTags: instance GHC.Read.Read Amazonka.CostExplorer.ListCostAllocationTags.ListCostAllocationTags
+ Amazonka.CostExplorer.ListCostAllocationTags: instance GHC.Read.Read Amazonka.CostExplorer.ListCostAllocationTags.ListCostAllocationTagsResponse
+ Amazonka.CostExplorer.ListCostAllocationTags: instance GHC.Show.Show Amazonka.CostExplorer.ListCostAllocationTags.ListCostAllocationTags
+ Amazonka.CostExplorer.ListCostAllocationTags: instance GHC.Show.Show Amazonka.CostExplorer.ListCostAllocationTags.ListCostAllocationTagsResponse
+ Amazonka.CostExplorer.ListCostAllocationTags: listCostAllocationTagsResponse_costAllocationTags :: Lens' ListCostAllocationTagsResponse (Maybe [CostAllocationTag])
+ Amazonka.CostExplorer.ListCostAllocationTags: listCostAllocationTagsResponse_httpStatus :: Lens' ListCostAllocationTagsResponse Int
+ Amazonka.CostExplorer.ListCostAllocationTags: listCostAllocationTagsResponse_nextToken :: Lens' ListCostAllocationTagsResponse (Maybe Text)
+ Amazonka.CostExplorer.ListCostAllocationTags: listCostAllocationTags_maxResults :: Lens' ListCostAllocationTags (Maybe Natural)
+ Amazonka.CostExplorer.ListCostAllocationTags: listCostAllocationTags_nextToken :: Lens' ListCostAllocationTags (Maybe Text)
+ Amazonka.CostExplorer.ListCostAllocationTags: listCostAllocationTags_status :: Lens' ListCostAllocationTags (Maybe CostAllocationTagStatus)
+ Amazonka.CostExplorer.ListCostAllocationTags: listCostAllocationTags_tagKeys :: Lens' ListCostAllocationTags (Maybe (NonEmpty Text))
+ Amazonka.CostExplorer.ListCostAllocationTags: listCostAllocationTags_type :: Lens' ListCostAllocationTags (Maybe CostAllocationTagType)
+ Amazonka.CostExplorer.ListCostAllocationTags: newListCostAllocationTags :: ListCostAllocationTags
+ Amazonka.CostExplorer.ListCostAllocationTags: newListCostAllocationTagsResponse :: Int -> ListCostAllocationTagsResponse
+ Amazonka.CostExplorer.ListCostCategoryDefinitions: ListCostCategoryDefinitions' :: Maybe Text -> Maybe Natural -> Maybe Text -> ListCostCategoryDefinitions
+ Amazonka.CostExplorer.ListCostCategoryDefinitions: ListCostCategoryDefinitionsResponse' :: Maybe [CostCategoryReference] -> Maybe Text -> Int -> ListCostCategoryDefinitionsResponse
+ Amazonka.CostExplorer.ListCostCategoryDefinitions: [$sel:costCategoryReferences:ListCostCategoryDefinitionsResponse'] :: ListCostCategoryDefinitionsResponse -> Maybe [CostCategoryReference]
+ Amazonka.CostExplorer.ListCostCategoryDefinitions: [$sel:effectiveOn:ListCostCategoryDefinitions'] :: ListCostCategoryDefinitions -> Maybe Text
+ Amazonka.CostExplorer.ListCostCategoryDefinitions: [$sel:httpStatus:ListCostCategoryDefinitionsResponse'] :: ListCostCategoryDefinitionsResponse -> Int
+ Amazonka.CostExplorer.ListCostCategoryDefinitions: [$sel:maxResults:ListCostCategoryDefinitions'] :: ListCostCategoryDefinitions -> Maybe Natural
+ Amazonka.CostExplorer.ListCostCategoryDefinitions: [$sel:nextToken:ListCostCategoryDefinitions'] :: ListCostCategoryDefinitions -> Maybe Text
+ Amazonka.CostExplorer.ListCostCategoryDefinitions: [$sel:nextToken:ListCostCategoryDefinitionsResponse'] :: ListCostCategoryDefinitionsResponse -> Maybe Text
+ Amazonka.CostExplorer.ListCostCategoryDefinitions: data ListCostCategoryDefinitions
+ Amazonka.CostExplorer.ListCostCategoryDefinitions: data ListCostCategoryDefinitionsResponse
+ Amazonka.CostExplorer.ListCostCategoryDefinitions: instance Amazonka.Data.Headers.ToHeaders Amazonka.CostExplorer.ListCostCategoryDefinitions.ListCostCategoryDefinitions
+ Amazonka.CostExplorer.ListCostCategoryDefinitions: instance Amazonka.Data.Path.ToPath Amazonka.CostExplorer.ListCostCategoryDefinitions.ListCostCategoryDefinitions
+ Amazonka.CostExplorer.ListCostCategoryDefinitions: instance Amazonka.Data.Query.ToQuery Amazonka.CostExplorer.ListCostCategoryDefinitions.ListCostCategoryDefinitions
+ Amazonka.CostExplorer.ListCostCategoryDefinitions: instance Amazonka.Types.AWSRequest Amazonka.CostExplorer.ListCostCategoryDefinitions.ListCostCategoryDefinitions
+ Amazonka.CostExplorer.ListCostCategoryDefinitions: instance Control.DeepSeq.NFData Amazonka.CostExplorer.ListCostCategoryDefinitions.ListCostCategoryDefinitions
+ Amazonka.CostExplorer.ListCostCategoryDefinitions: instance Control.DeepSeq.NFData Amazonka.CostExplorer.ListCostCategoryDefinitions.ListCostCategoryDefinitionsResponse
+ Amazonka.CostExplorer.ListCostCategoryDefinitions: instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.CostExplorer.ListCostCategoryDefinitions.ListCostCategoryDefinitions
+ Amazonka.CostExplorer.ListCostCategoryDefinitions: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.ListCostCategoryDefinitions.ListCostCategoryDefinitions
+ Amazonka.CostExplorer.ListCostCategoryDefinitions: instance GHC.Classes.Eq Amazonka.CostExplorer.ListCostCategoryDefinitions.ListCostCategoryDefinitions
+ Amazonka.CostExplorer.ListCostCategoryDefinitions: instance GHC.Classes.Eq Amazonka.CostExplorer.ListCostCategoryDefinitions.ListCostCategoryDefinitionsResponse
+ Amazonka.CostExplorer.ListCostCategoryDefinitions: instance GHC.Generics.Generic Amazonka.CostExplorer.ListCostCategoryDefinitions.ListCostCategoryDefinitions
+ Amazonka.CostExplorer.ListCostCategoryDefinitions: instance GHC.Generics.Generic Amazonka.CostExplorer.ListCostCategoryDefinitions.ListCostCategoryDefinitionsResponse
+ Amazonka.CostExplorer.ListCostCategoryDefinitions: instance GHC.Read.Read Amazonka.CostExplorer.ListCostCategoryDefinitions.ListCostCategoryDefinitions
+ Amazonka.CostExplorer.ListCostCategoryDefinitions: instance GHC.Read.Read Amazonka.CostExplorer.ListCostCategoryDefinitions.ListCostCategoryDefinitionsResponse
+ Amazonka.CostExplorer.ListCostCategoryDefinitions: instance GHC.Show.Show Amazonka.CostExplorer.ListCostCategoryDefinitions.ListCostCategoryDefinitions
+ Amazonka.CostExplorer.ListCostCategoryDefinitions: instance GHC.Show.Show Amazonka.CostExplorer.ListCostCategoryDefinitions.ListCostCategoryDefinitionsResponse
+ Amazonka.CostExplorer.ListCostCategoryDefinitions: listCostCategoryDefinitionsResponse_costCategoryReferences :: Lens' ListCostCategoryDefinitionsResponse (Maybe [CostCategoryReference])
+ Amazonka.CostExplorer.ListCostCategoryDefinitions: listCostCategoryDefinitionsResponse_httpStatus :: Lens' ListCostCategoryDefinitionsResponse Int
+ Amazonka.CostExplorer.ListCostCategoryDefinitions: listCostCategoryDefinitionsResponse_nextToken :: Lens' ListCostCategoryDefinitionsResponse (Maybe Text)
+ Amazonka.CostExplorer.ListCostCategoryDefinitions: listCostCategoryDefinitions_effectiveOn :: Lens' ListCostCategoryDefinitions (Maybe Text)
+ Amazonka.CostExplorer.ListCostCategoryDefinitions: listCostCategoryDefinitions_maxResults :: Lens' ListCostCategoryDefinitions (Maybe Natural)
+ Amazonka.CostExplorer.ListCostCategoryDefinitions: listCostCategoryDefinitions_nextToken :: Lens' ListCostCategoryDefinitions (Maybe Text)
+ Amazonka.CostExplorer.ListCostCategoryDefinitions: newListCostCategoryDefinitions :: ListCostCategoryDefinitions
+ Amazonka.CostExplorer.ListCostCategoryDefinitions: newListCostCategoryDefinitionsResponse :: Int -> ListCostCategoryDefinitionsResponse
+ Amazonka.CostExplorer.ListSavingsPlansPurchaseRecommendationGeneration: ListSavingsPlansPurchaseRecommendationGeneration' :: Maybe GenerationStatus -> Maybe Text -> Maybe Natural -> Maybe [Text] -> ListSavingsPlansPurchaseRecommendationGeneration
+ Amazonka.CostExplorer.ListSavingsPlansPurchaseRecommendationGeneration: ListSavingsPlansPurchaseRecommendationGenerationResponse' :: Maybe [GenerationSummary] -> Maybe Text -> Int -> ListSavingsPlansPurchaseRecommendationGenerationResponse
+ Amazonka.CostExplorer.ListSavingsPlansPurchaseRecommendationGeneration: [$sel:generationStatus:ListSavingsPlansPurchaseRecommendationGeneration'] :: ListSavingsPlansPurchaseRecommendationGeneration -> Maybe GenerationStatus
+ Amazonka.CostExplorer.ListSavingsPlansPurchaseRecommendationGeneration: [$sel:generationSummaryList:ListSavingsPlansPurchaseRecommendationGenerationResponse'] :: ListSavingsPlansPurchaseRecommendationGenerationResponse -> Maybe [GenerationSummary]
+ Amazonka.CostExplorer.ListSavingsPlansPurchaseRecommendationGeneration: [$sel:httpStatus:ListSavingsPlansPurchaseRecommendationGenerationResponse'] :: ListSavingsPlansPurchaseRecommendationGenerationResponse -> Int
+ Amazonka.CostExplorer.ListSavingsPlansPurchaseRecommendationGeneration: [$sel:nextPageToken:ListSavingsPlansPurchaseRecommendationGeneration'] :: ListSavingsPlansPurchaseRecommendationGeneration -> Maybe Text
+ Amazonka.CostExplorer.ListSavingsPlansPurchaseRecommendationGeneration: [$sel:nextPageToken:ListSavingsPlansPurchaseRecommendationGenerationResponse'] :: ListSavingsPlansPurchaseRecommendationGenerationResponse -> Maybe Text
+ Amazonka.CostExplorer.ListSavingsPlansPurchaseRecommendationGeneration: [$sel:pageSize:ListSavingsPlansPurchaseRecommendationGeneration'] :: ListSavingsPlansPurchaseRecommendationGeneration -> Maybe Natural
+ Amazonka.CostExplorer.ListSavingsPlansPurchaseRecommendationGeneration: [$sel:recommendationIds:ListSavingsPlansPurchaseRecommendationGeneration'] :: ListSavingsPlansPurchaseRecommendationGeneration -> Maybe [Text]
+ Amazonka.CostExplorer.ListSavingsPlansPurchaseRecommendationGeneration: data ListSavingsPlansPurchaseRecommendationGeneration
+ Amazonka.CostExplorer.ListSavingsPlansPurchaseRecommendationGeneration: data ListSavingsPlansPurchaseRecommendationGenerationResponse
+ Amazonka.CostExplorer.ListSavingsPlansPurchaseRecommendationGeneration: instance Amazonka.Data.Headers.ToHeaders Amazonka.CostExplorer.ListSavingsPlansPurchaseRecommendationGeneration.ListSavingsPlansPurchaseRecommendationGeneration
+ Amazonka.CostExplorer.ListSavingsPlansPurchaseRecommendationGeneration: instance Amazonka.Data.Path.ToPath Amazonka.CostExplorer.ListSavingsPlansPurchaseRecommendationGeneration.ListSavingsPlansPurchaseRecommendationGeneration
+ Amazonka.CostExplorer.ListSavingsPlansPurchaseRecommendationGeneration: instance Amazonka.Data.Query.ToQuery Amazonka.CostExplorer.ListSavingsPlansPurchaseRecommendationGeneration.ListSavingsPlansPurchaseRecommendationGeneration
+ Amazonka.CostExplorer.ListSavingsPlansPurchaseRecommendationGeneration: instance Amazonka.Types.AWSRequest Amazonka.CostExplorer.ListSavingsPlansPurchaseRecommendationGeneration.ListSavingsPlansPurchaseRecommendationGeneration
+ Amazonka.CostExplorer.ListSavingsPlansPurchaseRecommendationGeneration: instance Control.DeepSeq.NFData Amazonka.CostExplorer.ListSavingsPlansPurchaseRecommendationGeneration.ListSavingsPlansPurchaseRecommendationGeneration
+ Amazonka.CostExplorer.ListSavingsPlansPurchaseRecommendationGeneration: instance Control.DeepSeq.NFData Amazonka.CostExplorer.ListSavingsPlansPurchaseRecommendationGeneration.ListSavingsPlansPurchaseRecommendationGenerationResponse
+ Amazonka.CostExplorer.ListSavingsPlansPurchaseRecommendationGeneration: instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.CostExplorer.ListSavingsPlansPurchaseRecommendationGeneration.ListSavingsPlansPurchaseRecommendationGeneration
+ Amazonka.CostExplorer.ListSavingsPlansPurchaseRecommendationGeneration: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.ListSavingsPlansPurchaseRecommendationGeneration.ListSavingsPlansPurchaseRecommendationGeneration
+ Amazonka.CostExplorer.ListSavingsPlansPurchaseRecommendationGeneration: instance GHC.Classes.Eq Amazonka.CostExplorer.ListSavingsPlansPurchaseRecommendationGeneration.ListSavingsPlansPurchaseRecommendationGeneration
+ Amazonka.CostExplorer.ListSavingsPlansPurchaseRecommendationGeneration: instance GHC.Classes.Eq Amazonka.CostExplorer.ListSavingsPlansPurchaseRecommendationGeneration.ListSavingsPlansPurchaseRecommendationGenerationResponse
+ Amazonka.CostExplorer.ListSavingsPlansPurchaseRecommendationGeneration: instance GHC.Generics.Generic Amazonka.CostExplorer.ListSavingsPlansPurchaseRecommendationGeneration.ListSavingsPlansPurchaseRecommendationGeneration
+ Amazonka.CostExplorer.ListSavingsPlansPurchaseRecommendationGeneration: instance GHC.Generics.Generic Amazonka.CostExplorer.ListSavingsPlansPurchaseRecommendationGeneration.ListSavingsPlansPurchaseRecommendationGenerationResponse
+ Amazonka.CostExplorer.ListSavingsPlansPurchaseRecommendationGeneration: instance GHC.Read.Read Amazonka.CostExplorer.ListSavingsPlansPurchaseRecommendationGeneration.ListSavingsPlansPurchaseRecommendationGeneration
+ Amazonka.CostExplorer.ListSavingsPlansPurchaseRecommendationGeneration: instance GHC.Read.Read Amazonka.CostExplorer.ListSavingsPlansPurchaseRecommendationGeneration.ListSavingsPlansPurchaseRecommendationGenerationResponse
+ Amazonka.CostExplorer.ListSavingsPlansPurchaseRecommendationGeneration: instance GHC.Show.Show Amazonka.CostExplorer.ListSavingsPlansPurchaseRecommendationGeneration.ListSavingsPlansPurchaseRecommendationGeneration
+ Amazonka.CostExplorer.ListSavingsPlansPurchaseRecommendationGeneration: instance GHC.Show.Show Amazonka.CostExplorer.ListSavingsPlansPurchaseRecommendationGeneration.ListSavingsPlansPurchaseRecommendationGenerationResponse
+ Amazonka.CostExplorer.ListSavingsPlansPurchaseRecommendationGeneration: listSavingsPlansPurchaseRecommendationGenerationResponse_generationSummaryList :: Lens' ListSavingsPlansPurchaseRecommendationGenerationResponse (Maybe [GenerationSummary])
+ Amazonka.CostExplorer.ListSavingsPlansPurchaseRecommendationGeneration: listSavingsPlansPurchaseRecommendationGenerationResponse_httpStatus :: Lens' ListSavingsPlansPurchaseRecommendationGenerationResponse Int
+ Amazonka.CostExplorer.ListSavingsPlansPurchaseRecommendationGeneration: listSavingsPlansPurchaseRecommendationGenerationResponse_nextPageToken :: Lens' ListSavingsPlansPurchaseRecommendationGenerationResponse (Maybe Text)
+ Amazonka.CostExplorer.ListSavingsPlansPurchaseRecommendationGeneration: listSavingsPlansPurchaseRecommendationGeneration_generationStatus :: Lens' ListSavingsPlansPurchaseRecommendationGeneration (Maybe GenerationStatus)
+ Amazonka.CostExplorer.ListSavingsPlansPurchaseRecommendationGeneration: listSavingsPlansPurchaseRecommendationGeneration_nextPageToken :: Lens' ListSavingsPlansPurchaseRecommendationGeneration (Maybe Text)
+ Amazonka.CostExplorer.ListSavingsPlansPurchaseRecommendationGeneration: listSavingsPlansPurchaseRecommendationGeneration_pageSize :: Lens' ListSavingsPlansPurchaseRecommendationGeneration (Maybe Natural)
+ Amazonka.CostExplorer.ListSavingsPlansPurchaseRecommendationGeneration: listSavingsPlansPurchaseRecommendationGeneration_recommendationIds :: Lens' ListSavingsPlansPurchaseRecommendationGeneration (Maybe [Text])
+ Amazonka.CostExplorer.ListSavingsPlansPurchaseRecommendationGeneration: newListSavingsPlansPurchaseRecommendationGeneration :: ListSavingsPlansPurchaseRecommendationGeneration
+ Amazonka.CostExplorer.ListSavingsPlansPurchaseRecommendationGeneration: newListSavingsPlansPurchaseRecommendationGenerationResponse :: Int -> ListSavingsPlansPurchaseRecommendationGenerationResponse
+ Amazonka.CostExplorer.ListTagsForResource: ListTagsForResource' :: Text -> ListTagsForResource
+ Amazonka.CostExplorer.ListTagsForResource: ListTagsForResourceResponse' :: Maybe [ResourceTag] -> Int -> ListTagsForResourceResponse
+ Amazonka.CostExplorer.ListTagsForResource: [$sel:httpStatus:ListTagsForResourceResponse'] :: ListTagsForResourceResponse -> Int
+ Amazonka.CostExplorer.ListTagsForResource: [$sel:resourceArn:ListTagsForResource'] :: ListTagsForResource -> Text
+ Amazonka.CostExplorer.ListTagsForResource: [$sel:resourceTags:ListTagsForResourceResponse'] :: ListTagsForResourceResponse -> Maybe [ResourceTag]
+ Amazonka.CostExplorer.ListTagsForResource: data ListTagsForResource
+ Amazonka.CostExplorer.ListTagsForResource: data ListTagsForResourceResponse
+ Amazonka.CostExplorer.ListTagsForResource: instance Amazonka.Data.Headers.ToHeaders Amazonka.CostExplorer.ListTagsForResource.ListTagsForResource
+ Amazonka.CostExplorer.ListTagsForResource: instance Amazonka.Data.Path.ToPath Amazonka.CostExplorer.ListTagsForResource.ListTagsForResource
+ Amazonka.CostExplorer.ListTagsForResource: instance Amazonka.Data.Query.ToQuery Amazonka.CostExplorer.ListTagsForResource.ListTagsForResource
+ Amazonka.CostExplorer.ListTagsForResource: instance Amazonka.Types.AWSRequest Amazonka.CostExplorer.ListTagsForResource.ListTagsForResource
+ Amazonka.CostExplorer.ListTagsForResource: instance Control.DeepSeq.NFData Amazonka.CostExplorer.ListTagsForResource.ListTagsForResource
+ Amazonka.CostExplorer.ListTagsForResource: instance Control.DeepSeq.NFData Amazonka.CostExplorer.ListTagsForResource.ListTagsForResourceResponse
+ Amazonka.CostExplorer.ListTagsForResource: instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.CostExplorer.ListTagsForResource.ListTagsForResource
+ Amazonka.CostExplorer.ListTagsForResource: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.ListTagsForResource.ListTagsForResource
+ Amazonka.CostExplorer.ListTagsForResource: instance GHC.Classes.Eq Amazonka.CostExplorer.ListTagsForResource.ListTagsForResource
+ Amazonka.CostExplorer.ListTagsForResource: instance GHC.Classes.Eq Amazonka.CostExplorer.ListTagsForResource.ListTagsForResourceResponse
+ Amazonka.CostExplorer.ListTagsForResource: instance GHC.Generics.Generic Amazonka.CostExplorer.ListTagsForResource.ListTagsForResource
+ Amazonka.CostExplorer.ListTagsForResource: instance GHC.Generics.Generic Amazonka.CostExplorer.ListTagsForResource.ListTagsForResourceResponse
+ Amazonka.CostExplorer.ListTagsForResource: instance GHC.Read.Read Amazonka.CostExplorer.ListTagsForResource.ListTagsForResource
+ Amazonka.CostExplorer.ListTagsForResource: instance GHC.Read.Read Amazonka.CostExplorer.ListTagsForResource.ListTagsForResourceResponse
+ Amazonka.CostExplorer.ListTagsForResource: instance GHC.Show.Show Amazonka.CostExplorer.ListTagsForResource.ListTagsForResource
+ Amazonka.CostExplorer.ListTagsForResource: instance GHC.Show.Show Amazonka.CostExplorer.ListTagsForResource.ListTagsForResourceResponse
+ Amazonka.CostExplorer.ListTagsForResource: listTagsForResourceResponse_httpStatus :: Lens' ListTagsForResourceResponse Int
+ Amazonka.CostExplorer.ListTagsForResource: listTagsForResourceResponse_resourceTags :: Lens' ListTagsForResourceResponse (Maybe [ResourceTag])
+ Amazonka.CostExplorer.ListTagsForResource: listTagsForResource_resourceArn :: Lens' ListTagsForResource Text
+ Amazonka.CostExplorer.ListTagsForResource: newListTagsForResource :: Text -> ListTagsForResource
+ Amazonka.CostExplorer.ListTagsForResource: newListTagsForResourceResponse :: Int -> ListTagsForResourceResponse
+ Amazonka.CostExplorer.ProvideAnomalyFeedback: ProvideAnomalyFeedback' :: Text -> AnomalyFeedbackType -> ProvideAnomalyFeedback
+ Amazonka.CostExplorer.ProvideAnomalyFeedback: ProvideAnomalyFeedbackResponse' :: Int -> Text -> ProvideAnomalyFeedbackResponse
+ Amazonka.CostExplorer.ProvideAnomalyFeedback: [$sel:anomalyId:ProvideAnomalyFeedback'] :: ProvideAnomalyFeedback -> Text
+ Amazonka.CostExplorer.ProvideAnomalyFeedback: [$sel:anomalyId:ProvideAnomalyFeedbackResponse'] :: ProvideAnomalyFeedbackResponse -> Text
+ Amazonka.CostExplorer.ProvideAnomalyFeedback: [$sel:feedback:ProvideAnomalyFeedback'] :: ProvideAnomalyFeedback -> AnomalyFeedbackType
+ Amazonka.CostExplorer.ProvideAnomalyFeedback: [$sel:httpStatus:ProvideAnomalyFeedbackResponse'] :: ProvideAnomalyFeedbackResponse -> Int
+ Amazonka.CostExplorer.ProvideAnomalyFeedback: data ProvideAnomalyFeedback
+ Amazonka.CostExplorer.ProvideAnomalyFeedback: data ProvideAnomalyFeedbackResponse
+ Amazonka.CostExplorer.ProvideAnomalyFeedback: instance Amazonka.Data.Headers.ToHeaders Amazonka.CostExplorer.ProvideAnomalyFeedback.ProvideAnomalyFeedback
+ Amazonka.CostExplorer.ProvideAnomalyFeedback: instance Amazonka.Data.Path.ToPath Amazonka.CostExplorer.ProvideAnomalyFeedback.ProvideAnomalyFeedback
+ Amazonka.CostExplorer.ProvideAnomalyFeedback: instance Amazonka.Data.Query.ToQuery Amazonka.CostExplorer.ProvideAnomalyFeedback.ProvideAnomalyFeedback
+ Amazonka.CostExplorer.ProvideAnomalyFeedback: instance Amazonka.Types.AWSRequest Amazonka.CostExplorer.ProvideAnomalyFeedback.ProvideAnomalyFeedback
+ Amazonka.CostExplorer.ProvideAnomalyFeedback: instance Control.DeepSeq.NFData Amazonka.CostExplorer.ProvideAnomalyFeedback.ProvideAnomalyFeedback
+ Amazonka.CostExplorer.ProvideAnomalyFeedback: instance Control.DeepSeq.NFData Amazonka.CostExplorer.ProvideAnomalyFeedback.ProvideAnomalyFeedbackResponse
+ Amazonka.CostExplorer.ProvideAnomalyFeedback: instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.CostExplorer.ProvideAnomalyFeedback.ProvideAnomalyFeedback
+ Amazonka.CostExplorer.ProvideAnomalyFeedback: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.ProvideAnomalyFeedback.ProvideAnomalyFeedback
+ Amazonka.CostExplorer.ProvideAnomalyFeedback: instance GHC.Classes.Eq Amazonka.CostExplorer.ProvideAnomalyFeedback.ProvideAnomalyFeedback
+ Amazonka.CostExplorer.ProvideAnomalyFeedback: instance GHC.Classes.Eq Amazonka.CostExplorer.ProvideAnomalyFeedback.ProvideAnomalyFeedbackResponse
+ Amazonka.CostExplorer.ProvideAnomalyFeedback: instance GHC.Generics.Generic Amazonka.CostExplorer.ProvideAnomalyFeedback.ProvideAnomalyFeedback
+ Amazonka.CostExplorer.ProvideAnomalyFeedback: instance GHC.Generics.Generic Amazonka.CostExplorer.ProvideAnomalyFeedback.ProvideAnomalyFeedbackResponse
+ Amazonka.CostExplorer.ProvideAnomalyFeedback: instance GHC.Read.Read Amazonka.CostExplorer.ProvideAnomalyFeedback.ProvideAnomalyFeedback
+ Amazonka.CostExplorer.ProvideAnomalyFeedback: instance GHC.Read.Read Amazonka.CostExplorer.ProvideAnomalyFeedback.ProvideAnomalyFeedbackResponse
+ Amazonka.CostExplorer.ProvideAnomalyFeedback: instance GHC.Show.Show Amazonka.CostExplorer.ProvideAnomalyFeedback.ProvideAnomalyFeedback
+ Amazonka.CostExplorer.ProvideAnomalyFeedback: instance GHC.Show.Show Amazonka.CostExplorer.ProvideAnomalyFeedback.ProvideAnomalyFeedbackResponse
+ Amazonka.CostExplorer.ProvideAnomalyFeedback: newProvideAnomalyFeedback :: Text -> AnomalyFeedbackType -> ProvideAnomalyFeedback
+ Amazonka.CostExplorer.ProvideAnomalyFeedback: newProvideAnomalyFeedbackResponse :: Int -> Text -> ProvideAnomalyFeedbackResponse
+ Amazonka.CostExplorer.ProvideAnomalyFeedback: provideAnomalyFeedbackResponse_anomalyId :: Lens' ProvideAnomalyFeedbackResponse Text
+ Amazonka.CostExplorer.ProvideAnomalyFeedback: provideAnomalyFeedbackResponse_httpStatus :: Lens' ProvideAnomalyFeedbackResponse Int
+ Amazonka.CostExplorer.ProvideAnomalyFeedback: provideAnomalyFeedback_anomalyId :: Lens' ProvideAnomalyFeedback Text
+ Amazonka.CostExplorer.ProvideAnomalyFeedback: provideAnomalyFeedback_feedback :: Lens' ProvideAnomalyFeedback AnomalyFeedbackType
+ Amazonka.CostExplorer.StartSavingsPlansPurchaseRecommendationGeneration: StartSavingsPlansPurchaseRecommendationGeneration' :: StartSavingsPlansPurchaseRecommendationGeneration
+ Amazonka.CostExplorer.StartSavingsPlansPurchaseRecommendationGeneration: StartSavingsPlansPurchaseRecommendationGenerationResponse' :: Maybe Text -> Maybe Text -> Maybe Text -> Int -> StartSavingsPlansPurchaseRecommendationGenerationResponse
+ Amazonka.CostExplorer.StartSavingsPlansPurchaseRecommendationGeneration: [$sel:estimatedCompletionTime:StartSavingsPlansPurchaseRecommendationGenerationResponse'] :: StartSavingsPlansPurchaseRecommendationGenerationResponse -> Maybe Text
+ Amazonka.CostExplorer.StartSavingsPlansPurchaseRecommendationGeneration: [$sel:generationStartedTime:StartSavingsPlansPurchaseRecommendationGenerationResponse'] :: StartSavingsPlansPurchaseRecommendationGenerationResponse -> Maybe Text
+ Amazonka.CostExplorer.StartSavingsPlansPurchaseRecommendationGeneration: [$sel:httpStatus:StartSavingsPlansPurchaseRecommendationGenerationResponse'] :: StartSavingsPlansPurchaseRecommendationGenerationResponse -> Int
+ Amazonka.CostExplorer.StartSavingsPlansPurchaseRecommendationGeneration: [$sel:recommendationId:StartSavingsPlansPurchaseRecommendationGenerationResponse'] :: StartSavingsPlansPurchaseRecommendationGenerationResponse -> Maybe Text
+ Amazonka.CostExplorer.StartSavingsPlansPurchaseRecommendationGeneration: data StartSavingsPlansPurchaseRecommendationGeneration
+ Amazonka.CostExplorer.StartSavingsPlansPurchaseRecommendationGeneration: data StartSavingsPlansPurchaseRecommendationGenerationResponse
+ Amazonka.CostExplorer.StartSavingsPlansPurchaseRecommendationGeneration: instance Amazonka.Data.Headers.ToHeaders Amazonka.CostExplorer.StartSavingsPlansPurchaseRecommendationGeneration.StartSavingsPlansPurchaseRecommendationGeneration
+ Amazonka.CostExplorer.StartSavingsPlansPurchaseRecommendationGeneration: instance Amazonka.Data.Path.ToPath Amazonka.CostExplorer.StartSavingsPlansPurchaseRecommendationGeneration.StartSavingsPlansPurchaseRecommendationGeneration
+ Amazonka.CostExplorer.StartSavingsPlansPurchaseRecommendationGeneration: instance Amazonka.Data.Query.ToQuery Amazonka.CostExplorer.StartSavingsPlansPurchaseRecommendationGeneration.StartSavingsPlansPurchaseRecommendationGeneration
+ Amazonka.CostExplorer.StartSavingsPlansPurchaseRecommendationGeneration: instance Amazonka.Types.AWSRequest Amazonka.CostExplorer.StartSavingsPlansPurchaseRecommendationGeneration.StartSavingsPlansPurchaseRecommendationGeneration
+ Amazonka.CostExplorer.StartSavingsPlansPurchaseRecommendationGeneration: instance Control.DeepSeq.NFData Amazonka.CostExplorer.StartSavingsPlansPurchaseRecommendationGeneration.StartSavingsPlansPurchaseRecommendationGeneration
+ Amazonka.CostExplorer.StartSavingsPlansPurchaseRecommendationGeneration: instance Control.DeepSeq.NFData Amazonka.CostExplorer.StartSavingsPlansPurchaseRecommendationGeneration.StartSavingsPlansPurchaseRecommendationGenerationResponse
+ Amazonka.CostExplorer.StartSavingsPlansPurchaseRecommendationGeneration: instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.CostExplorer.StartSavingsPlansPurchaseRecommendationGeneration.StartSavingsPlansPurchaseRecommendationGeneration
+ Amazonka.CostExplorer.StartSavingsPlansPurchaseRecommendationGeneration: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.StartSavingsPlansPurchaseRecommendationGeneration.StartSavingsPlansPurchaseRecommendationGeneration
+ Amazonka.CostExplorer.StartSavingsPlansPurchaseRecommendationGeneration: instance GHC.Classes.Eq Amazonka.CostExplorer.StartSavingsPlansPurchaseRecommendationGeneration.StartSavingsPlansPurchaseRecommendationGeneration
+ Amazonka.CostExplorer.StartSavingsPlansPurchaseRecommendationGeneration: instance GHC.Classes.Eq Amazonka.CostExplorer.StartSavingsPlansPurchaseRecommendationGeneration.StartSavingsPlansPurchaseRecommendationGenerationResponse
+ Amazonka.CostExplorer.StartSavingsPlansPurchaseRecommendationGeneration: instance GHC.Generics.Generic Amazonka.CostExplorer.StartSavingsPlansPurchaseRecommendationGeneration.StartSavingsPlansPurchaseRecommendationGeneration
+ Amazonka.CostExplorer.StartSavingsPlansPurchaseRecommendationGeneration: instance GHC.Generics.Generic Amazonka.CostExplorer.StartSavingsPlansPurchaseRecommendationGeneration.StartSavingsPlansPurchaseRecommendationGenerationResponse
+ Amazonka.CostExplorer.StartSavingsPlansPurchaseRecommendationGeneration: instance GHC.Read.Read Amazonka.CostExplorer.StartSavingsPlansPurchaseRecommendationGeneration.StartSavingsPlansPurchaseRecommendationGeneration
+ Amazonka.CostExplorer.StartSavingsPlansPurchaseRecommendationGeneration: instance GHC.Read.Read Amazonka.CostExplorer.StartSavingsPlansPurchaseRecommendationGeneration.StartSavingsPlansPurchaseRecommendationGenerationResponse
+ Amazonka.CostExplorer.StartSavingsPlansPurchaseRecommendationGeneration: instance GHC.Show.Show Amazonka.CostExplorer.StartSavingsPlansPurchaseRecommendationGeneration.StartSavingsPlansPurchaseRecommendationGeneration
+ Amazonka.CostExplorer.StartSavingsPlansPurchaseRecommendationGeneration: instance GHC.Show.Show Amazonka.CostExplorer.StartSavingsPlansPurchaseRecommendationGeneration.StartSavingsPlansPurchaseRecommendationGenerationResponse
+ Amazonka.CostExplorer.StartSavingsPlansPurchaseRecommendationGeneration: newStartSavingsPlansPurchaseRecommendationGeneration :: StartSavingsPlansPurchaseRecommendationGeneration
+ Amazonka.CostExplorer.StartSavingsPlansPurchaseRecommendationGeneration: newStartSavingsPlansPurchaseRecommendationGenerationResponse :: Int -> StartSavingsPlansPurchaseRecommendationGenerationResponse
+ Amazonka.CostExplorer.StartSavingsPlansPurchaseRecommendationGeneration: startSavingsPlansPurchaseRecommendationGenerationResponse_estimatedCompletionTime :: Lens' StartSavingsPlansPurchaseRecommendationGenerationResponse (Maybe Text)
+ Amazonka.CostExplorer.StartSavingsPlansPurchaseRecommendationGeneration: startSavingsPlansPurchaseRecommendationGenerationResponse_generationStartedTime :: Lens' StartSavingsPlansPurchaseRecommendationGenerationResponse (Maybe Text)
+ Amazonka.CostExplorer.StartSavingsPlansPurchaseRecommendationGeneration: startSavingsPlansPurchaseRecommendationGenerationResponse_httpStatus :: Lens' StartSavingsPlansPurchaseRecommendationGenerationResponse Int
+ Amazonka.CostExplorer.StartSavingsPlansPurchaseRecommendationGeneration: startSavingsPlansPurchaseRecommendationGenerationResponse_recommendationId :: Lens' StartSavingsPlansPurchaseRecommendationGenerationResponse (Maybe Text)
+ Amazonka.CostExplorer.TagResource: TagResource' :: Text -> [ResourceTag] -> TagResource
+ Amazonka.CostExplorer.TagResource: TagResourceResponse' :: Int -> TagResourceResponse
+ Amazonka.CostExplorer.TagResource: [$sel:httpStatus:TagResourceResponse'] :: TagResourceResponse -> Int
+ Amazonka.CostExplorer.TagResource: [$sel:resourceArn:TagResource'] :: TagResource -> Text
+ Amazonka.CostExplorer.TagResource: [$sel:resourceTags:TagResource'] :: TagResource -> [ResourceTag]
+ Amazonka.CostExplorer.TagResource: data TagResource
+ Amazonka.CostExplorer.TagResource: data TagResourceResponse
+ Amazonka.CostExplorer.TagResource: instance Amazonka.Data.Headers.ToHeaders Amazonka.CostExplorer.TagResource.TagResource
+ Amazonka.CostExplorer.TagResource: instance Amazonka.Data.Path.ToPath Amazonka.CostExplorer.TagResource.TagResource
+ Amazonka.CostExplorer.TagResource: instance Amazonka.Data.Query.ToQuery Amazonka.CostExplorer.TagResource.TagResource
+ Amazonka.CostExplorer.TagResource: instance Amazonka.Types.AWSRequest Amazonka.CostExplorer.TagResource.TagResource
+ Amazonka.CostExplorer.TagResource: instance Control.DeepSeq.NFData Amazonka.CostExplorer.TagResource.TagResource
+ Amazonka.CostExplorer.TagResource: instance Control.DeepSeq.NFData Amazonka.CostExplorer.TagResource.TagResourceResponse
+ Amazonka.CostExplorer.TagResource: instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.CostExplorer.TagResource.TagResource
+ Amazonka.CostExplorer.TagResource: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.TagResource.TagResource
+ Amazonka.CostExplorer.TagResource: instance GHC.Classes.Eq Amazonka.CostExplorer.TagResource.TagResource
+ Amazonka.CostExplorer.TagResource: instance GHC.Classes.Eq Amazonka.CostExplorer.TagResource.TagResourceResponse
+ Amazonka.CostExplorer.TagResource: instance GHC.Generics.Generic Amazonka.CostExplorer.TagResource.TagResource
+ Amazonka.CostExplorer.TagResource: instance GHC.Generics.Generic Amazonka.CostExplorer.TagResource.TagResourceResponse
+ Amazonka.CostExplorer.TagResource: instance GHC.Read.Read Amazonka.CostExplorer.TagResource.TagResource
+ Amazonka.CostExplorer.TagResource: instance GHC.Read.Read Amazonka.CostExplorer.TagResource.TagResourceResponse
+ Amazonka.CostExplorer.TagResource: instance GHC.Show.Show Amazonka.CostExplorer.TagResource.TagResource
+ Amazonka.CostExplorer.TagResource: instance GHC.Show.Show Amazonka.CostExplorer.TagResource.TagResourceResponse
+ Amazonka.CostExplorer.TagResource: newTagResource :: Text -> TagResource
+ Amazonka.CostExplorer.TagResource: newTagResourceResponse :: Int -> TagResourceResponse
+ Amazonka.CostExplorer.TagResource: tagResourceResponse_httpStatus :: Lens' TagResourceResponse Int
+ Amazonka.CostExplorer.TagResource: tagResource_resourceArn :: Lens' TagResource Text
+ Amazonka.CostExplorer.TagResource: tagResource_resourceTags :: Lens' TagResource [ResourceTag]
+ Amazonka.CostExplorer.Types: AccountScope' :: Text -> AccountScope
+ Amazonka.CostExplorer.Types: Anomaly' :: Maybe Text -> Maybe Text -> Maybe Text -> Maybe AnomalyFeedbackType -> Maybe [RootCause] -> Text -> AnomalyScore -> Impact -> Text -> Anomaly
+ Amazonka.CostExplorer.Types: AnomalyDateInterval' :: Maybe Text -> Text -> AnomalyDateInterval
+ Amazonka.CostExplorer.Types: AnomalyFeedbackType' :: Text -> AnomalyFeedbackType
+ Amazonka.CostExplorer.Types: AnomalyMonitor' :: Maybe Text -> Maybe Natural -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe MonitorDimension -> Maybe Expression -> Text -> MonitorType -> AnomalyMonitor
+ Amazonka.CostExplorer.Types: AnomalyScore' :: Double -> Double -> AnomalyScore
+ Amazonka.CostExplorer.Types: AnomalySubscription' :: Maybe Text -> Maybe Text -> Maybe Double -> Maybe Expression -> [Text] -> [Subscriber] -> AnomalySubscriptionFrequency -> Text -> AnomalySubscription
+ Amazonka.CostExplorer.Types: AnomalySubscriptionFrequency' :: Text -> AnomalySubscriptionFrequency
+ Amazonka.CostExplorer.Types: Context' :: Text -> Context
+ Amazonka.CostExplorer.Types: CostAllocationTag' :: Text -> CostAllocationTagType -> CostAllocationTagStatus -> CostAllocationTag
+ Amazonka.CostExplorer.Types: CostAllocationTagStatus' :: Text -> CostAllocationTagStatus
+ Amazonka.CostExplorer.Types: CostAllocationTagStatusEntry' :: Text -> CostAllocationTagStatus -> CostAllocationTagStatusEntry
+ Amazonka.CostExplorer.Types: CostAllocationTagType' :: Text -> CostAllocationTagType
+ Amazonka.CostExplorer.Types: CostCategory' :: Maybe Text -> Maybe Text -> Maybe [CostCategoryProcessingStatus] -> Maybe (NonEmpty CostCategorySplitChargeRule) -> Text -> Text -> Text -> CostCategoryRuleVersion -> NonEmpty CostCategoryRule -> CostCategory
+ Amazonka.CostExplorer.Types: CostCategoryInheritedValueDimension' :: Maybe Text -> Maybe CostCategoryInheritedValueDimensionName -> CostCategoryInheritedValueDimension
+ Amazonka.CostExplorer.Types: CostCategoryInheritedValueDimensionName' :: Text -> CostCategoryInheritedValueDimensionName
+ Amazonka.CostExplorer.Types: CostCategoryProcessingStatus' :: Maybe CostCategoryStatusComponent -> Maybe CostCategoryStatus -> CostCategoryProcessingStatus
+ Amazonka.CostExplorer.Types: CostCategoryReference' :: Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Natural -> Maybe [CostCategoryProcessingStatus] -> Maybe [Text] -> CostCategoryReference
+ Amazonka.CostExplorer.Types: CostCategoryRule' :: Maybe CostCategoryInheritedValueDimension -> Maybe Expression -> Maybe CostCategoryRuleType -> Maybe Text -> CostCategoryRule
+ Amazonka.CostExplorer.Types: CostCategoryRuleType' :: Text -> CostCategoryRuleType
+ Amazonka.CostExplorer.Types: CostCategoryRuleVersion' :: Text -> CostCategoryRuleVersion
+ Amazonka.CostExplorer.Types: CostCategorySplitChargeMethod' :: Text -> CostCategorySplitChargeMethod
+ Amazonka.CostExplorer.Types: CostCategorySplitChargeRule' :: Maybe (NonEmpty CostCategorySplitChargeRuleParameter) -> Text -> NonEmpty Text -> CostCategorySplitChargeMethod -> CostCategorySplitChargeRule
+ Amazonka.CostExplorer.Types: CostCategorySplitChargeRuleParameter' :: CostCategorySplitChargeRuleParameterType -> NonEmpty Text -> CostCategorySplitChargeRuleParameter
+ Amazonka.CostExplorer.Types: CostCategorySplitChargeRuleParameterType' :: Text -> CostCategorySplitChargeRuleParameterType
+ Amazonka.CostExplorer.Types: CostCategoryStatus' :: Text -> CostCategoryStatus
+ Amazonka.CostExplorer.Types: CostCategoryStatusComponent' :: Text -> CostCategoryStatusComponent
+ Amazonka.CostExplorer.Types: CostCategoryValues' :: Maybe Text -> Maybe [MatchOption] -> Maybe [Text] -> CostCategoryValues
+ Amazonka.CostExplorer.Types: Coverage' :: Maybe CoverageCost -> Maybe CoverageHours -> Maybe CoverageNormalizedUnits -> Coverage
+ Amazonka.CostExplorer.Types: CoverageByTime' :: Maybe [ReservationCoverageGroup] -> Maybe DateInterval -> Maybe Coverage -> CoverageByTime
+ Amazonka.CostExplorer.Types: CoverageCost' :: Maybe Text -> CoverageCost
+ Amazonka.CostExplorer.Types: CoverageHours' :: Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> CoverageHours
+ Amazonka.CostExplorer.Types: CoverageNormalizedUnits' :: Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> CoverageNormalizedUnits
+ Amazonka.CostExplorer.Types: CurrentInstance' :: Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe ResourceDetails -> Maybe Text -> Maybe ResourceUtilization -> Maybe Text -> Maybe [TagValues] -> Maybe Text -> CurrentInstance
+ Amazonka.CostExplorer.Types: DateInterval' :: Text -> Text -> DateInterval
+ Amazonka.CostExplorer.Types: Dimension' :: Text -> Dimension
+ Amazonka.CostExplorer.Types: DimensionValues' :: Maybe Dimension -> Maybe [MatchOption] -> Maybe [Text] -> DimensionValues
+ Amazonka.CostExplorer.Types: DimensionValuesWithAttributes' :: Maybe (HashMap Text Text) -> Maybe Text -> DimensionValuesWithAttributes
+ Amazonka.CostExplorer.Types: DiskResourceUtilization' :: Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> DiskResourceUtilization
+ Amazonka.CostExplorer.Types: EBSResourceUtilization' :: Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> EBSResourceUtilization
+ Amazonka.CostExplorer.Types: EC2InstanceDetails' :: Maybe Text -> Maybe Bool -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Bool -> Maybe Text -> EC2InstanceDetails
+ Amazonka.CostExplorer.Types: EC2ResourceDetails' :: Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> EC2ResourceDetails
+ Amazonka.CostExplorer.Types: EC2ResourceUtilization' :: Maybe DiskResourceUtilization -> Maybe EBSResourceUtilization -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe NetworkResourceUtilization -> EC2ResourceUtilization
+ Amazonka.CostExplorer.Types: EC2Specification' :: Maybe OfferingClass -> EC2Specification
+ Amazonka.CostExplorer.Types: ESInstanceDetails' :: Maybe Bool -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Bool -> ESInstanceDetails
+ Amazonka.CostExplorer.Types: ElastiCacheInstanceDetails' :: Maybe Bool -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Bool -> ElastiCacheInstanceDetails
+ Amazonka.CostExplorer.Types: Expression' :: Maybe [Expression] -> Maybe CostCategoryValues -> Maybe DimensionValues -> Maybe Expression -> Maybe [Expression] -> Maybe TagValues -> Expression
+ Amazonka.CostExplorer.Types: FindingReasonCode' :: Text -> FindingReasonCode
+ Amazonka.CostExplorer.Types: ForecastResult' :: Maybe Text -> Maybe Text -> Maybe Text -> Maybe DateInterval -> ForecastResult
+ Amazonka.CostExplorer.Types: GenerationStatus' :: Text -> GenerationStatus
+ Amazonka.CostExplorer.Types: GenerationSummary' :: Maybe Text -> Maybe Text -> Maybe Text -> Maybe GenerationStatus -> Maybe Text -> GenerationSummary
+ Amazonka.CostExplorer.Types: Granularity' :: Text -> Granularity
+ Amazonka.CostExplorer.Types: Group' :: Maybe [Text] -> Maybe (HashMap Text MetricValue) -> Group
+ Amazonka.CostExplorer.Types: GroupDefinition' :: Maybe Text -> Maybe GroupDefinitionType -> GroupDefinition
+ Amazonka.CostExplorer.Types: GroupDefinitionType' :: Text -> GroupDefinitionType
+ Amazonka.CostExplorer.Types: Impact' :: Maybe Double -> Maybe Double -> Maybe Double -> Maybe Double -> Double -> Impact
+ Amazonka.CostExplorer.Types: InstanceDetails' :: Maybe EC2InstanceDetails -> Maybe ESInstanceDetails -> Maybe ElastiCacheInstanceDetails -> Maybe RDSInstanceDetails -> Maybe RedshiftInstanceDetails -> InstanceDetails
+ Amazonka.CostExplorer.Types: LookbackPeriodInDays' :: Text -> LookbackPeriodInDays
+ Amazonka.CostExplorer.Types: MatchOption' :: Text -> MatchOption
+ Amazonka.CostExplorer.Types: Metric' :: Text -> Metric
+ Amazonka.CostExplorer.Types: MetricValue' :: Maybe Text -> Maybe Text -> MetricValue
+ Amazonka.CostExplorer.Types: ModifyRecommendationDetail' :: Maybe [TargetInstance] -> ModifyRecommendationDetail
+ Amazonka.CostExplorer.Types: MonitorDimension' :: Text -> MonitorDimension
+ Amazonka.CostExplorer.Types: MonitorType' :: Text -> MonitorType
+ Amazonka.CostExplorer.Types: NetworkResourceUtilization' :: Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> NetworkResourceUtilization
+ Amazonka.CostExplorer.Types: NumericOperator' :: Text -> NumericOperator
+ Amazonka.CostExplorer.Types: OfferingClass' :: Text -> OfferingClass
+ Amazonka.CostExplorer.Types: PaymentOption' :: Text -> PaymentOption
+ Amazonka.CostExplorer.Types: PlatformDifference' :: Text -> PlatformDifference
+ Amazonka.CostExplorer.Types: RDSInstanceDetails' :: Maybe Bool -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Bool -> RDSInstanceDetails
+ Amazonka.CostExplorer.Types: RecommendationTarget' :: Text -> RecommendationTarget
+ Amazonka.CostExplorer.Types: RedshiftInstanceDetails' :: Maybe Bool -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Bool -> RedshiftInstanceDetails
+ Amazonka.CostExplorer.Types: ReservationAggregates' :: Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> ReservationAggregates
+ Amazonka.CostExplorer.Types: ReservationCoverageGroup' :: Maybe (HashMap Text Text) -> Maybe Coverage -> ReservationCoverageGroup
+ Amazonka.CostExplorer.Types: ReservationPurchaseRecommendation' :: Maybe AccountScope -> Maybe LookbackPeriodInDays -> Maybe PaymentOption -> Maybe [ReservationPurchaseRecommendationDetail] -> Maybe ReservationPurchaseRecommendationSummary -> Maybe ServiceSpecification -> Maybe TermInYears -> ReservationPurchaseRecommendation
+ Amazonka.CostExplorer.Types: ReservationPurchaseRecommendationDetail' :: Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe InstanceDetails -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> ReservationPurchaseRecommendationDetail
+ Amazonka.CostExplorer.Types: ReservationPurchaseRecommendationMetadata' :: Maybe Text -> Maybe Text -> ReservationPurchaseRecommendationMetadata
+ Amazonka.CostExplorer.Types: ReservationPurchaseRecommendationSummary' :: Maybe Text -> Maybe Text -> Maybe Text -> ReservationPurchaseRecommendationSummary
+ Amazonka.CostExplorer.Types: ReservationUtilizationGroup' :: Maybe (HashMap Text Text) -> Maybe Text -> Maybe ReservationAggregates -> Maybe Text -> ReservationUtilizationGroup
+ Amazonka.CostExplorer.Types: ResourceDetails' :: Maybe EC2ResourceDetails -> ResourceDetails
+ Amazonka.CostExplorer.Types: ResourceTag' :: Text -> Text -> ResourceTag
+ Amazonka.CostExplorer.Types: ResourceUtilization' :: Maybe EC2ResourceUtilization -> ResourceUtilization
+ Amazonka.CostExplorer.Types: ResultByTime' :: Maybe Bool -> Maybe [Group] -> Maybe DateInterval -> Maybe (HashMap Text MetricValue) -> ResultByTime
+ Amazonka.CostExplorer.Types: RightsizingRecommendation' :: Maybe Text -> Maybe CurrentInstance -> Maybe [FindingReasonCode] -> Maybe ModifyRecommendationDetail -> Maybe RightsizingType -> Maybe TerminateRecommendationDetail -> RightsizingRecommendation
+ Amazonka.CostExplorer.Types: RightsizingRecommendationConfiguration' :: RecommendationTarget -> Bool -> RightsizingRecommendationConfiguration
+ Amazonka.CostExplorer.Types: RightsizingRecommendationMetadata' :: Maybe Text -> Maybe Text -> Maybe LookbackPeriodInDays -> Maybe Text -> RightsizingRecommendationMetadata
+ Amazonka.CostExplorer.Types: RightsizingRecommendationSummary' :: Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> RightsizingRecommendationSummary
+ Amazonka.CostExplorer.Types: RightsizingType' :: Text -> RightsizingType
+ Amazonka.CostExplorer.Types: RootCause' :: Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> RootCause
+ Amazonka.CostExplorer.Types: SavingsPlansAmortizedCommitment' :: Maybe Text -> Maybe Text -> Maybe Text -> SavingsPlansAmortizedCommitment
+ Amazonka.CostExplorer.Types: SavingsPlansCoverage' :: Maybe (HashMap Text Text) -> Maybe SavingsPlansCoverageData -> Maybe DateInterval -> SavingsPlansCoverage
+ Amazonka.CostExplorer.Types: SavingsPlansCoverageData' :: Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> SavingsPlansCoverageData
+ Amazonka.CostExplorer.Types: SavingsPlansDataType' :: Text -> SavingsPlansDataType
+ Amazonka.CostExplorer.Types: SavingsPlansDetails' :: Maybe Text -> Maybe Text -> Maybe Text -> SavingsPlansDetails
+ Amazonka.CostExplorer.Types: SavingsPlansPurchaseRecommendation' :: Maybe AccountScope -> Maybe LookbackPeriodInDays -> Maybe PaymentOption -> Maybe [SavingsPlansPurchaseRecommendationDetail] -> Maybe SavingsPlansPurchaseRecommendationSummary -> Maybe SupportedSavingsPlansType -> Maybe TermInYears -> SavingsPlansPurchaseRecommendation
+ Amazonka.CostExplorer.Types: SavingsPlansPurchaseRecommendationDetail' :: Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe SavingsPlansDetails -> Maybe Text -> SavingsPlansPurchaseRecommendationDetail
+ Amazonka.CostExplorer.Types: SavingsPlansPurchaseRecommendationMetadata' :: Maybe Text -> Maybe Text -> Maybe Text -> SavingsPlansPurchaseRecommendationMetadata
+ Amazonka.CostExplorer.Types: SavingsPlansPurchaseRecommendationSummary' :: Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> SavingsPlansPurchaseRecommendationSummary
+ Amazonka.CostExplorer.Types: SavingsPlansSavings' :: Maybe Text -> Maybe Text -> SavingsPlansSavings
+ Amazonka.CostExplorer.Types: SavingsPlansUtilization' :: Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> SavingsPlansUtilization
+ Amazonka.CostExplorer.Types: SavingsPlansUtilizationAggregates' :: Maybe SavingsPlansAmortizedCommitment -> Maybe SavingsPlansSavings -> SavingsPlansUtilization -> SavingsPlansUtilizationAggregates
+ Amazonka.CostExplorer.Types: SavingsPlansUtilizationByTime' :: Maybe SavingsPlansAmortizedCommitment -> Maybe SavingsPlansSavings -> DateInterval -> SavingsPlansUtilization -> SavingsPlansUtilizationByTime
+ Amazonka.CostExplorer.Types: SavingsPlansUtilizationDetail' :: Maybe SavingsPlansAmortizedCommitment -> Maybe (HashMap Text Text) -> Maybe SavingsPlansSavings -> Maybe Text -> Maybe SavingsPlansUtilization -> SavingsPlansUtilizationDetail
+ Amazonka.CostExplorer.Types: ServiceSpecification' :: Maybe EC2Specification -> ServiceSpecification
+ Amazonka.CostExplorer.Types: SortDefinition' :: Maybe SortOrder -> Text -> SortDefinition
+ Amazonka.CostExplorer.Types: SortOrder' :: Text -> SortOrder
+ Amazonka.CostExplorer.Types: Subscriber' :: Maybe Text -> Maybe SubscriberStatus -> Maybe SubscriberType -> Subscriber
+ Amazonka.CostExplorer.Types: SubscriberStatus' :: Text -> SubscriberStatus
+ Amazonka.CostExplorer.Types: SubscriberType' :: Text -> SubscriberType
+ Amazonka.CostExplorer.Types: SupportedSavingsPlansType' :: Text -> SupportedSavingsPlansType
+ Amazonka.CostExplorer.Types: TagValues' :: Maybe Text -> Maybe [MatchOption] -> Maybe [Text] -> TagValues
+ Amazonka.CostExplorer.Types: TargetInstance' :: Maybe Text -> Maybe Bool -> Maybe Text -> Maybe Text -> Maybe ResourceUtilization -> Maybe [PlatformDifference] -> Maybe ResourceDetails -> TargetInstance
+ Amazonka.CostExplorer.Types: TermInYears' :: Text -> TermInYears
+ Amazonka.CostExplorer.Types: TerminateRecommendationDetail' :: Maybe Text -> Maybe Text -> TerminateRecommendationDetail
+ Amazonka.CostExplorer.Types: TotalImpactFilter' :: Maybe Double -> NumericOperator -> Double -> TotalImpactFilter
+ Amazonka.CostExplorer.Types: UpdateCostAllocationTagsStatusError' :: Maybe Text -> Maybe Text -> Maybe Text -> UpdateCostAllocationTagsStatusError
+ Amazonka.CostExplorer.Types: UtilizationByTime' :: Maybe [ReservationUtilizationGroup] -> Maybe DateInterval -> Maybe ReservationAggregates -> UtilizationByTime
+ Amazonka.CostExplorer.Types: [$sel:accountId:AnomalySubscription'] :: AnomalySubscription -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:accountId:ReservationPurchaseRecommendationDetail'] :: ReservationPurchaseRecommendationDetail -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:accountId:RightsizingRecommendation'] :: RightsizingRecommendation -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:accountId:SavingsPlansPurchaseRecommendationDetail'] :: SavingsPlansPurchaseRecommendationDetail -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:accountScope:ReservationPurchaseRecommendation'] :: ReservationPurchaseRecommendation -> Maybe AccountScope
+ Amazonka.CostExplorer.Types: [$sel:accountScope:SavingsPlansPurchaseRecommendation'] :: SavingsPlansPurchaseRecommendation -> Maybe AccountScope
+ Amazonka.CostExplorer.Types: [$sel:additionalMetadata:RightsizingRecommendationMetadata'] :: RightsizingRecommendationMetadata -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:additionalMetadata:SavingsPlansPurchaseRecommendationMetadata'] :: SavingsPlansPurchaseRecommendationMetadata -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:address:Subscriber'] :: Subscriber -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:amortizedCommitment:SavingsPlansUtilizationAggregates'] :: SavingsPlansUtilizationAggregates -> Maybe SavingsPlansAmortizedCommitment
+ Amazonka.CostExplorer.Types: [$sel:amortizedCommitment:SavingsPlansUtilizationByTime'] :: SavingsPlansUtilizationByTime -> Maybe SavingsPlansAmortizedCommitment
+ Amazonka.CostExplorer.Types: [$sel:amortizedCommitment:SavingsPlansUtilizationDetail'] :: SavingsPlansUtilizationDetail -> Maybe SavingsPlansAmortizedCommitment
+ Amazonka.CostExplorer.Types: [$sel:amortizedRecurringCommitment:SavingsPlansAmortizedCommitment'] :: SavingsPlansAmortizedCommitment -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:amortizedRecurringFee:ReservationAggregates'] :: ReservationAggregates -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:amortizedUpfrontCommitment:SavingsPlansAmortizedCommitment'] :: SavingsPlansAmortizedCommitment -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:amortizedUpfrontFee:ReservationAggregates'] :: ReservationAggregates -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:amount:MetricValue'] :: MetricValue -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:and:Expression'] :: Expression -> Maybe [Expression]
+ Amazonka.CostExplorer.Types: [$sel:anomalyEndDate:Anomaly'] :: Anomaly -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:anomalyId:Anomaly'] :: Anomaly -> Text
+ Amazonka.CostExplorer.Types: [$sel:anomalyScore:Anomaly'] :: Anomaly -> AnomalyScore
+ Amazonka.CostExplorer.Types: [$sel:anomalyStartDate:Anomaly'] :: Anomaly -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:attributes:DimensionValuesWithAttributes'] :: DimensionValuesWithAttributes -> Maybe (HashMap Text Text)
+ Amazonka.CostExplorer.Types: [$sel:attributes:ReservationCoverageGroup'] :: ReservationCoverageGroup -> Maybe (HashMap Text Text)
+ Amazonka.CostExplorer.Types: [$sel:attributes:ReservationUtilizationGroup'] :: ReservationUtilizationGroup -> Maybe (HashMap Text Text)
+ Amazonka.CostExplorer.Types: [$sel:attributes:SavingsPlansCoverage'] :: SavingsPlansCoverage -> Maybe (HashMap Text Text)
+ Amazonka.CostExplorer.Types: [$sel:attributes:SavingsPlansUtilizationDetail'] :: SavingsPlansUtilizationDetail -> Maybe (HashMap Text Text)
+ Amazonka.CostExplorer.Types: [$sel:availabilityZone:EC2InstanceDetails'] :: EC2InstanceDetails -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:averageNormalizedUnitsUsedPerHour:ReservationPurchaseRecommendationDetail'] :: ReservationPurchaseRecommendationDetail -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:averageNumberOfInstancesUsedPerHour:ReservationPurchaseRecommendationDetail'] :: ReservationPurchaseRecommendationDetail -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:averageUtilization:ReservationPurchaseRecommendationDetail'] :: ReservationPurchaseRecommendationDetail -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:benefitsConsidered:RightsizingRecommendationConfiguration'] :: RightsizingRecommendationConfiguration -> Bool
+ Amazonka.CostExplorer.Types: [$sel:code:UpdateCostAllocationTagsStatusError'] :: UpdateCostAllocationTagsStatusError -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:component:CostCategoryProcessingStatus'] :: CostCategoryProcessingStatus -> Maybe CostCategoryStatusComponent
+ Amazonka.CostExplorer.Types: [$sel:costCategories:Expression'] :: Expression -> Maybe CostCategoryValues
+ Amazonka.CostExplorer.Types: [$sel:costCategoryArn:CostCategory'] :: CostCategory -> Text
+ Amazonka.CostExplorer.Types: [$sel:costCategoryArn:CostCategoryReference'] :: CostCategoryReference -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:coverage:ReservationCoverageGroup'] :: ReservationCoverageGroup -> Maybe Coverage
+ Amazonka.CostExplorer.Types: [$sel:coverage:SavingsPlansCoverage'] :: SavingsPlansCoverage -> Maybe SavingsPlansCoverageData
+ Amazonka.CostExplorer.Types: [$sel:coverageCost:Coverage'] :: Coverage -> Maybe CoverageCost
+ Amazonka.CostExplorer.Types: [$sel:coverageHours:Coverage'] :: Coverage -> Maybe CoverageHours
+ Amazonka.CostExplorer.Types: [$sel:coverageHoursPercentage:CoverageHours'] :: CoverageHours -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:coverageNormalizedUnits:Coverage'] :: Coverage -> Maybe CoverageNormalizedUnits
+ Amazonka.CostExplorer.Types: [$sel:coverageNormalizedUnitsPercentage:CoverageNormalizedUnits'] :: CoverageNormalizedUnits -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:coveragePercentage:SavingsPlansCoverageData'] :: SavingsPlansCoverageData -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:creationDate:AnomalyMonitor'] :: AnomalyMonitor -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:currencyCode:CurrentInstance'] :: CurrentInstance -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:currencyCode:ReservationPurchaseRecommendationDetail'] :: ReservationPurchaseRecommendationDetail -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:currencyCode:ReservationPurchaseRecommendationSummary'] :: ReservationPurchaseRecommendationSummary -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:currencyCode:SavingsPlansPurchaseRecommendationDetail'] :: SavingsPlansPurchaseRecommendationDetail -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:currencyCode:SavingsPlansPurchaseRecommendationSummary'] :: SavingsPlansPurchaseRecommendationSummary -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:currencyCode:TargetInstance'] :: TargetInstance -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:currencyCode:TerminateRecommendationDetail'] :: TerminateRecommendationDetail -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:currentAverageHourlyOnDemandSpend:SavingsPlansPurchaseRecommendationDetail'] :: SavingsPlansPurchaseRecommendationDetail -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:currentGeneration:EC2InstanceDetails'] :: EC2InstanceDetails -> Maybe Bool
+ Amazonka.CostExplorer.Types: [$sel:currentGeneration:ESInstanceDetails'] :: ESInstanceDetails -> Maybe Bool
+ Amazonka.CostExplorer.Types: [$sel:currentGeneration:ElastiCacheInstanceDetails'] :: ElastiCacheInstanceDetails -> Maybe Bool
+ Amazonka.CostExplorer.Types: [$sel:currentGeneration:RDSInstanceDetails'] :: RDSInstanceDetails -> Maybe Bool
+ Amazonka.CostExplorer.Types: [$sel:currentGeneration:RedshiftInstanceDetails'] :: RedshiftInstanceDetails -> Maybe Bool
+ Amazonka.CostExplorer.Types: [$sel:currentInstance:RightsizingRecommendation'] :: RightsizingRecommendation -> Maybe CurrentInstance
+ Amazonka.CostExplorer.Types: [$sel:currentMaximumHourlyOnDemandSpend:SavingsPlansPurchaseRecommendationDetail'] :: SavingsPlansPurchaseRecommendationDetail -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:currentMinimumHourlyOnDemandSpend:SavingsPlansPurchaseRecommendationDetail'] :: SavingsPlansPurchaseRecommendationDetail -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:currentOnDemandSpend:SavingsPlansPurchaseRecommendationSummary'] :: SavingsPlansPurchaseRecommendationSummary -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:currentScore:AnomalyScore'] :: AnomalyScore -> Double
+ Amazonka.CostExplorer.Types: [$sel:dailyCommitmentToPurchase:SavingsPlansPurchaseRecommendationSummary'] :: SavingsPlansPurchaseRecommendationSummary -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:databaseEdition:RDSInstanceDetails'] :: RDSInstanceDetails -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:databaseEngine:RDSInstanceDetails'] :: RDSInstanceDetails -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:defaultTargetInstance:TargetInstance'] :: TargetInstance -> Maybe Bool
+ Amazonka.CostExplorer.Types: [$sel:defaultValue:CostCategory'] :: CostCategory -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:defaultValue:CostCategoryReference'] :: CostCategoryReference -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:deploymentOption:RDSInstanceDetails'] :: RDSInstanceDetails -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:dimensionKey:CostCategoryInheritedValueDimension'] :: CostCategoryInheritedValueDimension -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:dimensionName:CostCategoryInheritedValueDimension'] :: CostCategoryInheritedValueDimension -> Maybe CostCategoryInheritedValueDimensionName
+ Amazonka.CostExplorer.Types: [$sel:dimensionValue:Anomaly'] :: Anomaly -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:dimensionalValueCount:AnomalyMonitor'] :: AnomalyMonitor -> Maybe Natural
+ Amazonka.CostExplorer.Types: [$sel:dimensions:Expression'] :: Expression -> Maybe DimensionValues
+ Amazonka.CostExplorer.Types: [$sel:diskReadBytesPerSecond:DiskResourceUtilization'] :: DiskResourceUtilization -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:diskReadOpsPerSecond:DiskResourceUtilization'] :: DiskResourceUtilization -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:diskResourceUtilization:EC2ResourceUtilization'] :: EC2ResourceUtilization -> Maybe DiskResourceUtilization
+ Amazonka.CostExplorer.Types: [$sel:diskWriteBytesPerSecond:DiskResourceUtilization'] :: DiskResourceUtilization -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:diskWriteOpsPerSecond:DiskResourceUtilization'] :: DiskResourceUtilization -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:eBSResourceUtilization:EC2ResourceUtilization'] :: EC2ResourceUtilization -> Maybe EBSResourceUtilization
+ Amazonka.CostExplorer.Types: [$sel:eC2InstanceDetails:InstanceDetails'] :: InstanceDetails -> Maybe EC2InstanceDetails
+ Amazonka.CostExplorer.Types: [$sel:eC2ResourceDetails:ResourceDetails'] :: ResourceDetails -> Maybe EC2ResourceDetails
+ Amazonka.CostExplorer.Types: [$sel:eC2ResourceUtilization:ResourceUtilization'] :: ResourceUtilization -> Maybe EC2ResourceUtilization
+ Amazonka.CostExplorer.Types: [$sel:eC2Specification:ServiceSpecification'] :: ServiceSpecification -> Maybe EC2Specification
+ Amazonka.CostExplorer.Types: [$sel:eSInstanceDetails:InstanceDetails'] :: InstanceDetails -> Maybe ESInstanceDetails
+ Amazonka.CostExplorer.Types: [$sel:ebsReadBytesPerSecond:EBSResourceUtilization'] :: EBSResourceUtilization -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:ebsReadOpsPerSecond:EBSResourceUtilization'] :: EBSResourceUtilization -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:ebsWriteBytesPerSecond:EBSResourceUtilization'] :: EBSResourceUtilization -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:ebsWriteOpsPerSecond:EBSResourceUtilization'] :: EBSResourceUtilization -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:effectiveEnd:CostCategory'] :: CostCategory -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:effectiveEnd:CostCategoryReference'] :: CostCategoryReference -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:effectiveStart:CostCategory'] :: CostCategory -> Text
+ Amazonka.CostExplorer.Types: [$sel:effectiveStart:CostCategoryReference'] :: CostCategoryReference -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:elastiCacheInstanceDetails:InstanceDetails'] :: InstanceDetails -> Maybe ElastiCacheInstanceDetails
+ Amazonka.CostExplorer.Types: [$sel:end:DateInterval'] :: DateInterval -> Text
+ Amazonka.CostExplorer.Types: [$sel:endDate:AnomalyDateInterval'] :: AnomalyDateInterval -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:endValue:TotalImpactFilter'] :: TotalImpactFilter -> Maybe Double
+ Amazonka.CostExplorer.Types: [$sel:estimated:ResultByTime'] :: ResultByTime -> Maybe Bool
+ Amazonka.CostExplorer.Types: [$sel:estimatedAverageUtilization:SavingsPlansPurchaseRecommendationDetail'] :: SavingsPlansPurchaseRecommendationDetail -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:estimatedBreakEvenInMonths:ReservationPurchaseRecommendationDetail'] :: ReservationPurchaseRecommendationDetail -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:estimatedCompletionTime:GenerationSummary'] :: GenerationSummary -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:estimatedMonthlyCost:TargetInstance'] :: TargetInstance -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:estimatedMonthlyOnDemandCost:ReservationPurchaseRecommendationDetail'] :: ReservationPurchaseRecommendationDetail -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:estimatedMonthlySavings:TargetInstance'] :: TargetInstance -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:estimatedMonthlySavings:TerminateRecommendationDetail'] :: TerminateRecommendationDetail -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:estimatedMonthlySavingsAmount:ReservationPurchaseRecommendationDetail'] :: ReservationPurchaseRecommendationDetail -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:estimatedMonthlySavingsAmount:SavingsPlansPurchaseRecommendationDetail'] :: SavingsPlansPurchaseRecommendationDetail -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:estimatedMonthlySavingsAmount:SavingsPlansPurchaseRecommendationSummary'] :: SavingsPlansPurchaseRecommendationSummary -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:estimatedMonthlySavingsPercentage:ReservationPurchaseRecommendationDetail'] :: ReservationPurchaseRecommendationDetail -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:estimatedOnDemandCost:SavingsPlansPurchaseRecommendationDetail'] :: SavingsPlansPurchaseRecommendationDetail -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:estimatedOnDemandCostWithCurrentCommitment:SavingsPlansPurchaseRecommendationDetail'] :: SavingsPlansPurchaseRecommendationDetail -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:estimatedOnDemandCostWithCurrentCommitment:SavingsPlansPurchaseRecommendationSummary'] :: SavingsPlansPurchaseRecommendationSummary -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:estimatedROI:SavingsPlansPurchaseRecommendationDetail'] :: SavingsPlansPurchaseRecommendationDetail -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:estimatedROI:SavingsPlansPurchaseRecommendationSummary'] :: SavingsPlansPurchaseRecommendationSummary -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:estimatedReservationCostForLookbackPeriod:ReservationPurchaseRecommendationDetail'] :: ReservationPurchaseRecommendationDetail -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:estimatedSPCost:SavingsPlansPurchaseRecommendationDetail'] :: SavingsPlansPurchaseRecommendationDetail -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:estimatedSavingsAmount:SavingsPlansPurchaseRecommendationDetail'] :: SavingsPlansPurchaseRecommendationDetail -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:estimatedSavingsAmount:SavingsPlansPurchaseRecommendationSummary'] :: SavingsPlansPurchaseRecommendationSummary -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:estimatedSavingsPercentage:SavingsPlansPurchaseRecommendationDetail'] :: SavingsPlansPurchaseRecommendationDetail -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:estimatedSavingsPercentage:SavingsPlansPurchaseRecommendationSummary'] :: SavingsPlansPurchaseRecommendationSummary -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:estimatedTotalCost:SavingsPlansPurchaseRecommendationSummary'] :: SavingsPlansPurchaseRecommendationSummary -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:estimatedTotalMonthlySavingsAmount:RightsizingRecommendationSummary'] :: RightsizingRecommendationSummary -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:expectedResourceUtilization:TargetInstance'] :: TargetInstance -> Maybe ResourceUtilization
+ Amazonka.CostExplorer.Types: [$sel:family:EC2InstanceDetails'] :: EC2InstanceDetails -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:family:ElastiCacheInstanceDetails'] :: ElastiCacheInstanceDetails -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:family:RDSInstanceDetails'] :: RDSInstanceDetails -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:family:RedshiftInstanceDetails'] :: RedshiftInstanceDetails -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:feedback:Anomaly'] :: Anomaly -> Maybe AnomalyFeedbackType
+ Amazonka.CostExplorer.Types: [$sel:findingReasonCodes:RightsizingRecommendation'] :: RightsizingRecommendation -> Maybe [FindingReasonCode]
+ Amazonka.CostExplorer.Types: [$sel:frequency:AnomalySubscription'] :: AnomalySubscription -> AnomalySubscriptionFrequency
+ Amazonka.CostExplorer.Types: [$sel:generationCompletionTime:GenerationSummary'] :: GenerationSummary -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:generationStartedTime:GenerationSummary'] :: GenerationSummary -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:generationStatus:GenerationSummary'] :: GenerationSummary -> Maybe GenerationStatus
+ Amazonka.CostExplorer.Types: [$sel:generationTimestamp:ReservationPurchaseRecommendationMetadata'] :: ReservationPurchaseRecommendationMetadata -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:generationTimestamp:RightsizingRecommendationMetadata'] :: RightsizingRecommendationMetadata -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:generationTimestamp:SavingsPlansPurchaseRecommendationMetadata'] :: SavingsPlansPurchaseRecommendationMetadata -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:groups:CoverageByTime'] :: CoverageByTime -> Maybe [ReservationCoverageGroup]
+ Amazonka.CostExplorer.Types: [$sel:groups:ResultByTime'] :: ResultByTime -> Maybe [Group]
+ Amazonka.CostExplorer.Types: [$sel:groups:UtilizationByTime'] :: UtilizationByTime -> Maybe [ReservationUtilizationGroup]
+ Amazonka.CostExplorer.Types: [$sel:hourlyCommitmentToPurchase:SavingsPlansPurchaseRecommendationDetail'] :: SavingsPlansPurchaseRecommendationDetail -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:hourlyCommitmentToPurchase:SavingsPlansPurchaseRecommendationSummary'] :: SavingsPlansPurchaseRecommendationSummary -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:hourlyOnDemandRate:EC2ResourceDetails'] :: EC2ResourceDetails -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:impact:Anomaly'] :: Anomaly -> Impact
+ Amazonka.CostExplorer.Types: [$sel:inheritedValue:CostCategoryRule'] :: CostCategoryRule -> Maybe CostCategoryInheritedValueDimension
+ Amazonka.CostExplorer.Types: [$sel:instanceClass:ESInstanceDetails'] :: ESInstanceDetails -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:instanceDetails:ReservationPurchaseRecommendationDetail'] :: ReservationPurchaseRecommendationDetail -> Maybe InstanceDetails
+ Amazonka.CostExplorer.Types: [$sel:instanceFamily:SavingsPlansDetails'] :: SavingsPlansDetails -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:instanceName:CurrentInstance'] :: CurrentInstance -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:instanceSize:ESInstanceDetails'] :: ESInstanceDetails -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:instanceType:EC2InstanceDetails'] :: EC2InstanceDetails -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:instanceType:EC2ResourceDetails'] :: EC2ResourceDetails -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:instanceType:RDSInstanceDetails'] :: RDSInstanceDetails -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:key:CostCategoryValues'] :: CostCategoryValues -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:key:DimensionValues'] :: DimensionValues -> Maybe Dimension
+ Amazonka.CostExplorer.Types: [$sel:key:GroupDefinition'] :: GroupDefinition -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:key:ReservationUtilizationGroup'] :: ReservationUtilizationGroup -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:key:ResourceTag'] :: ResourceTag -> Text
+ Amazonka.CostExplorer.Types: [$sel:key:SortDefinition'] :: SortDefinition -> Text
+ Amazonka.CostExplorer.Types: [$sel:key:TagValues'] :: TagValues -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:keys:Group'] :: Group -> Maybe [Text]
+ Amazonka.CostExplorer.Types: [$sel:lastEvaluatedDate:AnomalyMonitor'] :: AnomalyMonitor -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:lastUpdatedDate:AnomalyMonitor'] :: AnomalyMonitor -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:licenseModel:RDSInstanceDetails'] :: RDSInstanceDetails -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:linkedAccount:RootCause'] :: RootCause -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:linkedAccountName:RootCause'] :: RootCause -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:lookbackPeriodInDays:ReservationPurchaseRecommendation'] :: ReservationPurchaseRecommendation -> Maybe LookbackPeriodInDays
+ Amazonka.CostExplorer.Types: [$sel:lookbackPeriodInDays:RightsizingRecommendationMetadata'] :: RightsizingRecommendationMetadata -> Maybe LookbackPeriodInDays
+ Amazonka.CostExplorer.Types: [$sel:lookbackPeriodInDays:SavingsPlansPurchaseRecommendation'] :: SavingsPlansPurchaseRecommendation -> Maybe LookbackPeriodInDays
+ Amazonka.CostExplorer.Types: [$sel:matchOptions:CostCategoryValues'] :: CostCategoryValues -> Maybe [MatchOption]
+ Amazonka.CostExplorer.Types: [$sel:matchOptions:DimensionValues'] :: DimensionValues -> Maybe [MatchOption]
+ Amazonka.CostExplorer.Types: [$sel:matchOptions:TagValues'] :: TagValues -> Maybe [MatchOption]
+ Amazonka.CostExplorer.Types: [$sel:maxCpuUtilizationPercentage:EC2ResourceUtilization'] :: EC2ResourceUtilization -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:maxImpact:Impact'] :: Impact -> Double
+ Amazonka.CostExplorer.Types: [$sel:maxMemoryUtilizationPercentage:EC2ResourceUtilization'] :: EC2ResourceUtilization -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:maxScore:AnomalyScore'] :: AnomalyScore -> Double
+ Amazonka.CostExplorer.Types: [$sel:maxStorageUtilizationPercentage:EC2ResourceUtilization'] :: EC2ResourceUtilization -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:maximumNormalizedUnitsUsedPerHour:ReservationPurchaseRecommendationDetail'] :: ReservationPurchaseRecommendationDetail -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:maximumNumberOfInstancesUsedPerHour:ReservationPurchaseRecommendationDetail'] :: ReservationPurchaseRecommendationDetail -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:meanValue:ForecastResult'] :: ForecastResult -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:memory:EC2ResourceDetails'] :: EC2ResourceDetails -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:message:UpdateCostAllocationTagsStatusError'] :: UpdateCostAllocationTagsStatusError -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:method:CostCategorySplitChargeRule'] :: CostCategorySplitChargeRule -> CostCategorySplitChargeMethod
+ Amazonka.CostExplorer.Types: [$sel:metrics:Group'] :: Group -> Maybe (HashMap Text MetricValue)
+ Amazonka.CostExplorer.Types: [$sel:minimumNormalizedUnitsUsedPerHour:ReservationPurchaseRecommendationDetail'] :: ReservationPurchaseRecommendationDetail -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:minimumNumberOfInstancesUsedPerHour:ReservationPurchaseRecommendationDetail'] :: ReservationPurchaseRecommendationDetail -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:modifyRecommendationDetail:RightsizingRecommendation'] :: RightsizingRecommendation -> Maybe ModifyRecommendationDetail
+ Amazonka.CostExplorer.Types: [$sel:monitorArn:Anomaly'] :: Anomaly -> Text
+ Amazonka.CostExplorer.Types: [$sel:monitorArn:AnomalyMonitor'] :: AnomalyMonitor -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:monitorArnList:AnomalySubscription'] :: AnomalySubscription -> [Text]
+ Amazonka.CostExplorer.Types: [$sel:monitorDimension:AnomalyMonitor'] :: AnomalyMonitor -> Maybe MonitorDimension
+ Amazonka.CostExplorer.Types: [$sel:monitorName:AnomalyMonitor'] :: AnomalyMonitor -> Text
+ Amazonka.CostExplorer.Types: [$sel:monitorSpecification:AnomalyMonitor'] :: AnomalyMonitor -> Maybe Expression
+ Amazonka.CostExplorer.Types: [$sel:monitorType:AnomalyMonitor'] :: AnomalyMonitor -> MonitorType
+ Amazonka.CostExplorer.Types: [$sel:monthlyCost:CurrentInstance'] :: CurrentInstance -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:name:CostCategory'] :: CostCategory -> Text
+ Amazonka.CostExplorer.Types: [$sel:name:CostCategoryReference'] :: CostCategoryReference -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:netRISavings:ReservationAggregates'] :: ReservationAggregates -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:netSavings:SavingsPlansSavings'] :: SavingsPlansSavings -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:networkInBytesPerSecond:NetworkResourceUtilization'] :: NetworkResourceUtilization -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:networkOutBytesPerSecond:NetworkResourceUtilization'] :: NetworkResourceUtilization -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:networkPacketsInPerSecond:NetworkResourceUtilization'] :: NetworkResourceUtilization -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:networkPacketsOutPerSecond:NetworkResourceUtilization'] :: NetworkResourceUtilization -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:networkPerformance:EC2ResourceDetails'] :: EC2ResourceDetails -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:networkResourceUtilization:EC2ResourceUtilization'] :: EC2ResourceUtilization -> Maybe NetworkResourceUtilization
+ Amazonka.CostExplorer.Types: [$sel:nodeType:ElastiCacheInstanceDetails'] :: ElastiCacheInstanceDetails -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:nodeType:RedshiftInstanceDetails'] :: RedshiftInstanceDetails -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:not:Expression'] :: Expression -> Maybe Expression
+ Amazonka.CostExplorer.Types: [$sel:numberOfRules:CostCategoryReference'] :: CostCategoryReference -> Maybe Natural
+ Amazonka.CostExplorer.Types: [$sel:numericOperator:TotalImpactFilter'] :: TotalImpactFilter -> NumericOperator
+ Amazonka.CostExplorer.Types: [$sel:offeringClass:EC2Specification'] :: EC2Specification -> Maybe OfferingClass
+ Amazonka.CostExplorer.Types: [$sel:offeringId:SavingsPlansDetails'] :: SavingsPlansDetails -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:onDemandCost:CoverageCost'] :: CoverageCost -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:onDemandCost:SavingsPlansCoverageData'] :: SavingsPlansCoverageData -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:onDemandCostEquivalent:SavingsPlansSavings'] :: SavingsPlansSavings -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:onDemandCostOfRIHoursUsed:ReservationAggregates'] :: ReservationAggregates -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:onDemandHours:CoverageHours'] :: CoverageHours -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:onDemandHoursInLookbackPeriod:CurrentInstance'] :: CurrentInstance -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:onDemandNormalizedUnits:CoverageNormalizedUnits'] :: CoverageNormalizedUnits -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:or:Expression'] :: Expression -> Maybe [Expression]
+ Amazonka.CostExplorer.Types: [$sel:parameters:CostCategorySplitChargeRule'] :: CostCategorySplitChargeRule -> Maybe (NonEmpty CostCategorySplitChargeRuleParameter)
+ Amazonka.CostExplorer.Types: [$sel:paymentOption:ReservationPurchaseRecommendation'] :: ReservationPurchaseRecommendation -> Maybe PaymentOption
+ Amazonka.CostExplorer.Types: [$sel:paymentOption:SavingsPlansPurchaseRecommendation'] :: SavingsPlansPurchaseRecommendation -> Maybe PaymentOption
+ Amazonka.CostExplorer.Types: [$sel:platform:EC2InstanceDetails'] :: EC2InstanceDetails -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:platform:EC2ResourceDetails'] :: EC2ResourceDetails -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:platformDifferences:TargetInstance'] :: TargetInstance -> Maybe [PlatformDifference]
+ Amazonka.CostExplorer.Types: [$sel:predictionIntervalLowerBound:ForecastResult'] :: ForecastResult -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:predictionIntervalUpperBound:ForecastResult'] :: ForecastResult -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:processingStatus:CostCategory'] :: CostCategory -> Maybe [CostCategoryProcessingStatus]
+ Amazonka.CostExplorer.Types: [$sel:processingStatus:CostCategoryReference'] :: CostCategoryReference -> Maybe [CostCategoryProcessingStatus]
+ Amazonka.CostExplorer.Types: [$sel:productDescription:ElastiCacheInstanceDetails'] :: ElastiCacheInstanceDetails -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:purchasedHours:ReservationAggregates'] :: ReservationAggregates -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:purchasedUnits:ReservationAggregates'] :: ReservationAggregates -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:rDSInstanceDetails:InstanceDetails'] :: InstanceDetails -> Maybe RDSInstanceDetails
+ Amazonka.CostExplorer.Types: [$sel:rICostForUnusedHours:ReservationAggregates'] :: ReservationAggregates -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:realizedSavings:ReservationAggregates'] :: ReservationAggregates -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:recommendationDetails:ReservationPurchaseRecommendation'] :: ReservationPurchaseRecommendation -> Maybe [ReservationPurchaseRecommendationDetail]
+ Amazonka.CostExplorer.Types: [$sel:recommendationId:GenerationSummary'] :: GenerationSummary -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:recommendationId:ReservationPurchaseRecommendationMetadata'] :: ReservationPurchaseRecommendationMetadata -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:recommendationId:RightsizingRecommendationMetadata'] :: RightsizingRecommendationMetadata -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:recommendationId:SavingsPlansPurchaseRecommendationMetadata'] :: SavingsPlansPurchaseRecommendationMetadata -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:recommendationSummary:ReservationPurchaseRecommendation'] :: ReservationPurchaseRecommendation -> Maybe ReservationPurchaseRecommendationSummary
+ Amazonka.CostExplorer.Types: [$sel:recommendationTarget:RightsizingRecommendationConfiguration'] :: RightsizingRecommendationConfiguration -> RecommendationTarget
+ Amazonka.CostExplorer.Types: [$sel:recommendedNormalizedUnitsToPurchase:ReservationPurchaseRecommendationDetail'] :: ReservationPurchaseRecommendationDetail -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:recommendedNumberOfInstancesToPurchase:ReservationPurchaseRecommendationDetail'] :: ReservationPurchaseRecommendationDetail -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:recurringStandardMonthlyCost:ReservationPurchaseRecommendationDetail'] :: ReservationPurchaseRecommendationDetail -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:redshiftInstanceDetails:InstanceDetails'] :: InstanceDetails -> Maybe RedshiftInstanceDetails
+ Amazonka.CostExplorer.Types: [$sel:region:EC2InstanceDetails'] :: EC2InstanceDetails -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:region:EC2ResourceDetails'] :: EC2ResourceDetails -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:region:ESInstanceDetails'] :: ESInstanceDetails -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:region:ElastiCacheInstanceDetails'] :: ElastiCacheInstanceDetails -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:region:RDSInstanceDetails'] :: RDSInstanceDetails -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:region:RedshiftInstanceDetails'] :: RedshiftInstanceDetails -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:region:RootCause'] :: RootCause -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:region:SavingsPlansDetails'] :: SavingsPlansDetails -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:reservationCoveredHoursInLookbackPeriod:CurrentInstance'] :: CurrentInstance -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:reservedHours:CoverageHours'] :: CoverageHours -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:reservedNormalizedUnits:CoverageNormalizedUnits'] :: CoverageNormalizedUnits -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:resourceDetails:CurrentInstance'] :: CurrentInstance -> Maybe ResourceDetails
+ Amazonka.CostExplorer.Types: [$sel:resourceDetails:TargetInstance'] :: TargetInstance -> Maybe ResourceDetails
+ Amazonka.CostExplorer.Types: [$sel:resourceId:CurrentInstance'] :: CurrentInstance -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:resourceUtilization:CurrentInstance'] :: CurrentInstance -> Maybe ResourceUtilization
+ Amazonka.CostExplorer.Types: [$sel:rightsizingType:RightsizingRecommendation'] :: RightsizingRecommendation -> Maybe RightsizingType
+ Amazonka.CostExplorer.Types: [$sel:rootCauses:Anomaly'] :: Anomaly -> Maybe [RootCause]
+ Amazonka.CostExplorer.Types: [$sel:rule:CostCategoryRule'] :: CostCategoryRule -> Maybe Expression
+ Amazonka.CostExplorer.Types: [$sel:ruleVersion:CostCategory'] :: CostCategory -> CostCategoryRuleVersion
+ Amazonka.CostExplorer.Types: [$sel:rules:CostCategory'] :: CostCategory -> NonEmpty CostCategoryRule
+ Amazonka.CostExplorer.Types: [$sel:savings:SavingsPlansUtilizationAggregates'] :: SavingsPlansUtilizationAggregates -> Maybe SavingsPlansSavings
+ Amazonka.CostExplorer.Types: [$sel:savings:SavingsPlansUtilizationByTime'] :: SavingsPlansUtilizationByTime -> Maybe SavingsPlansSavings
+ Amazonka.CostExplorer.Types: [$sel:savings:SavingsPlansUtilizationDetail'] :: SavingsPlansUtilizationDetail -> Maybe SavingsPlansSavings
+ Amazonka.CostExplorer.Types: [$sel:savingsCurrencyCode:RightsizingRecommendationSummary'] :: RightsizingRecommendationSummary -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:savingsPercentage:RightsizingRecommendationSummary'] :: RightsizingRecommendationSummary -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:savingsPlanArn:SavingsPlansUtilizationDetail'] :: SavingsPlansUtilizationDetail -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:savingsPlansCoveredHoursInLookbackPeriod:CurrentInstance'] :: CurrentInstance -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:savingsPlansDetails:SavingsPlansPurchaseRecommendationDetail'] :: SavingsPlansPurchaseRecommendationDetail -> Maybe SavingsPlansDetails
+ Amazonka.CostExplorer.Types: [$sel:savingsPlansPurchaseRecommendationDetails:SavingsPlansPurchaseRecommendation'] :: SavingsPlansPurchaseRecommendation -> Maybe [SavingsPlansPurchaseRecommendationDetail]
+ Amazonka.CostExplorer.Types: [$sel:savingsPlansPurchaseRecommendationSummary:SavingsPlansPurchaseRecommendation'] :: SavingsPlansPurchaseRecommendation -> Maybe SavingsPlansPurchaseRecommendationSummary
+ Amazonka.CostExplorer.Types: [$sel:savingsPlansType:SavingsPlansPurchaseRecommendation'] :: SavingsPlansPurchaseRecommendation -> Maybe SupportedSavingsPlansType
+ Amazonka.CostExplorer.Types: [$sel:service:RootCause'] :: RootCause -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:serviceSpecification:ReservationPurchaseRecommendation'] :: ReservationPurchaseRecommendation -> Maybe ServiceSpecification
+ Amazonka.CostExplorer.Types: [$sel:sizeFlexEligible:EC2InstanceDetails'] :: EC2InstanceDetails -> Maybe Bool
+ Amazonka.CostExplorer.Types: [$sel:sizeFlexEligible:ESInstanceDetails'] :: ESInstanceDetails -> Maybe Bool
+ Amazonka.CostExplorer.Types: [$sel:sizeFlexEligible:ElastiCacheInstanceDetails'] :: ElastiCacheInstanceDetails -> Maybe Bool
+ Amazonka.CostExplorer.Types: [$sel:sizeFlexEligible:RDSInstanceDetails'] :: RDSInstanceDetails -> Maybe Bool
+ Amazonka.CostExplorer.Types: [$sel:sizeFlexEligible:RedshiftInstanceDetails'] :: RedshiftInstanceDetails -> Maybe Bool
+ Amazonka.CostExplorer.Types: [$sel:sku:EC2ResourceDetails'] :: EC2ResourceDetails -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:sortOrder:SortDefinition'] :: SortDefinition -> Maybe SortOrder
+ Amazonka.CostExplorer.Types: [$sel:source:CostCategorySplitChargeRule'] :: CostCategorySplitChargeRule -> Text
+ Amazonka.CostExplorer.Types: [$sel:spendCoveredBySavingsPlans:SavingsPlansCoverageData'] :: SavingsPlansCoverageData -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:splitChargeRules:CostCategory'] :: CostCategory -> Maybe (NonEmpty CostCategorySplitChargeRule)
+ Amazonka.CostExplorer.Types: [$sel:start:DateInterval'] :: DateInterval -> Text
+ Amazonka.CostExplorer.Types: [$sel:startDate:AnomalyDateInterval'] :: AnomalyDateInterval -> Text
+ Amazonka.CostExplorer.Types: [$sel:startValue:TotalImpactFilter'] :: TotalImpactFilter -> Double
+ Amazonka.CostExplorer.Types: [$sel:status:CostAllocationTag'] :: CostAllocationTag -> CostAllocationTagStatus
+ Amazonka.CostExplorer.Types: [$sel:status:CostAllocationTagStatusEntry'] :: CostAllocationTagStatusEntry -> CostAllocationTagStatus
+ Amazonka.CostExplorer.Types: [$sel:status:CostCategoryProcessingStatus'] :: CostCategoryProcessingStatus -> Maybe CostCategoryStatus
+ Amazonka.CostExplorer.Types: [$sel:status:Subscriber'] :: Subscriber -> Maybe SubscriberStatus
+ Amazonka.CostExplorer.Types: [$sel:storage:EC2ResourceDetails'] :: EC2ResourceDetails -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:subscribers:AnomalySubscription'] :: AnomalySubscription -> [Subscriber]
+ Amazonka.CostExplorer.Types: [$sel:subscriptionArn:AnomalySubscription'] :: AnomalySubscription -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:subscriptionName:AnomalySubscription'] :: AnomalySubscription -> Text
+ Amazonka.CostExplorer.Types: [$sel:tagKey:CostAllocationTag'] :: CostAllocationTag -> Text
+ Amazonka.CostExplorer.Types: [$sel:tagKey:CostAllocationTagStatusEntry'] :: CostAllocationTagStatusEntry -> Text
+ Amazonka.CostExplorer.Types: [$sel:tagKey:UpdateCostAllocationTagsStatusError'] :: UpdateCostAllocationTagsStatusError -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:tags:CurrentInstance'] :: CurrentInstance -> Maybe [TagValues]
+ Amazonka.CostExplorer.Types: [$sel:tags:Expression'] :: Expression -> Maybe TagValues
+ Amazonka.CostExplorer.Types: [$sel:targetInstances:ModifyRecommendationDetail'] :: ModifyRecommendationDetail -> Maybe [TargetInstance]
+ Amazonka.CostExplorer.Types: [$sel:targets:CostCategorySplitChargeRule'] :: CostCategorySplitChargeRule -> NonEmpty Text
+ Amazonka.CostExplorer.Types: [$sel:tenancy:EC2InstanceDetails'] :: EC2InstanceDetails -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:termInYears:ReservationPurchaseRecommendation'] :: ReservationPurchaseRecommendation -> Maybe TermInYears
+ Amazonka.CostExplorer.Types: [$sel:termInYears:SavingsPlansPurchaseRecommendation'] :: SavingsPlansPurchaseRecommendation -> Maybe TermInYears
+ Amazonka.CostExplorer.Types: [$sel:terminateRecommendationDetail:RightsizingRecommendation'] :: RightsizingRecommendation -> Maybe TerminateRecommendationDetail
+ Amazonka.CostExplorer.Types: [$sel:threshold:AnomalySubscription'] :: AnomalySubscription -> Maybe Double
+ Amazonka.CostExplorer.Types: [$sel:thresholdExpression:AnomalySubscription'] :: AnomalySubscription -> Maybe Expression
+ Amazonka.CostExplorer.Types: [$sel:timePeriod:CoverageByTime'] :: CoverageByTime -> Maybe DateInterval
+ Amazonka.CostExplorer.Types: [$sel:timePeriod:ForecastResult'] :: ForecastResult -> Maybe DateInterval
+ Amazonka.CostExplorer.Types: [$sel:timePeriod:ResultByTime'] :: ResultByTime -> Maybe DateInterval
+ Amazonka.CostExplorer.Types: [$sel:timePeriod:SavingsPlansCoverage'] :: SavingsPlansCoverage -> Maybe DateInterval
+ Amazonka.CostExplorer.Types: [$sel:timePeriod:SavingsPlansUtilizationByTime'] :: SavingsPlansUtilizationByTime -> DateInterval
+ Amazonka.CostExplorer.Types: [$sel:timePeriod:UtilizationByTime'] :: UtilizationByTime -> Maybe DateInterval
+ Amazonka.CostExplorer.Types: [$sel:total:CoverageByTime'] :: CoverageByTime -> Maybe Coverage
+ Amazonka.CostExplorer.Types: [$sel:total:ResultByTime'] :: ResultByTime -> Maybe (HashMap Text MetricValue)
+ Amazonka.CostExplorer.Types: [$sel:total:UtilizationByTime'] :: UtilizationByTime -> Maybe ReservationAggregates
+ Amazonka.CostExplorer.Types: [$sel:totalActualHours:ReservationAggregates'] :: ReservationAggregates -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:totalActualSpend:Impact'] :: Impact -> Maybe Double
+ Amazonka.CostExplorer.Types: [$sel:totalActualUnits:ReservationAggregates'] :: ReservationAggregates -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:totalAmortizedCommitment:SavingsPlansAmortizedCommitment'] :: SavingsPlansAmortizedCommitment -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:totalAmortizedFee:ReservationAggregates'] :: ReservationAggregates -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:totalCommitment:SavingsPlansUtilization'] :: SavingsPlansUtilization -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:totalCost:SavingsPlansCoverageData'] :: SavingsPlansCoverageData -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:totalEstimatedMonthlySavingsAmount:ReservationPurchaseRecommendationSummary'] :: ReservationPurchaseRecommendationSummary -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:totalEstimatedMonthlySavingsPercentage:ReservationPurchaseRecommendationSummary'] :: ReservationPurchaseRecommendationSummary -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:totalExpectedSpend:Impact'] :: Impact -> Maybe Double
+ Amazonka.CostExplorer.Types: [$sel:totalImpact:Impact'] :: Impact -> Maybe Double
+ Amazonka.CostExplorer.Types: [$sel:totalImpactPercentage:Impact'] :: Impact -> Maybe Double
+ Amazonka.CostExplorer.Types: [$sel:totalPotentialRISavings:ReservationAggregates'] :: ReservationAggregates -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:totalRecommendationCount:RightsizingRecommendationSummary'] :: RightsizingRecommendationSummary -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:totalRecommendationCount:SavingsPlansPurchaseRecommendationSummary'] :: SavingsPlansPurchaseRecommendationSummary -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:totalRunningHours:CoverageHours'] :: CoverageHours -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:totalRunningHoursInLookbackPeriod:CurrentInstance'] :: CurrentInstance -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:totalRunningNormalizedUnits:CoverageNormalizedUnits'] :: CoverageNormalizedUnits -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:type':CostAllocationTag'] :: CostAllocationTag -> CostAllocationTagType
+ Amazonka.CostExplorer.Types: [$sel:type':CostCategoryRule'] :: CostCategoryRule -> Maybe CostCategoryRuleType
+ Amazonka.CostExplorer.Types: [$sel:type':CostCategorySplitChargeRuleParameter'] :: CostCategorySplitChargeRuleParameter -> CostCategorySplitChargeRuleParameterType
+ Amazonka.CostExplorer.Types: [$sel:type':GroupDefinition'] :: GroupDefinition -> Maybe GroupDefinitionType
+ Amazonka.CostExplorer.Types: [$sel:type':Subscriber'] :: Subscriber -> Maybe SubscriberType
+ Amazonka.CostExplorer.Types: [$sel:unit:MetricValue'] :: MetricValue -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:unrealizedSavings:ReservationAggregates'] :: ReservationAggregates -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:unusedCommitment:SavingsPlansUtilization'] :: SavingsPlansUtilization -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:unusedHours:ReservationAggregates'] :: ReservationAggregates -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:unusedUnits:ReservationAggregates'] :: ReservationAggregates -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:upfrontCost:ReservationPurchaseRecommendationDetail'] :: ReservationPurchaseRecommendationDetail -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:upfrontCost:SavingsPlansPurchaseRecommendationDetail'] :: SavingsPlansPurchaseRecommendationDetail -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:usageType:RootCause'] :: RootCause -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:usedCommitment:SavingsPlansUtilization'] :: SavingsPlansUtilization -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:utilization:ReservationUtilizationGroup'] :: ReservationUtilizationGroup -> Maybe ReservationAggregates
+ Amazonka.CostExplorer.Types: [$sel:utilization:SavingsPlansUtilizationAggregates'] :: SavingsPlansUtilizationAggregates -> SavingsPlansUtilization
+ Amazonka.CostExplorer.Types: [$sel:utilization:SavingsPlansUtilizationByTime'] :: SavingsPlansUtilizationByTime -> SavingsPlansUtilization
+ Amazonka.CostExplorer.Types: [$sel:utilization:SavingsPlansUtilizationDetail'] :: SavingsPlansUtilizationDetail -> Maybe SavingsPlansUtilization
+ Amazonka.CostExplorer.Types: [$sel:utilizationPercentage:ReservationAggregates'] :: ReservationAggregates -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:utilizationPercentage:SavingsPlansUtilization'] :: SavingsPlansUtilization -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:utilizationPercentageInUnits:ReservationAggregates'] :: ReservationAggregates -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:value:CostCategoryRule'] :: CostCategoryRule -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:value:DimensionValuesWithAttributes'] :: DimensionValuesWithAttributes -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:value:ReservationUtilizationGroup'] :: ReservationUtilizationGroup -> Maybe Text
+ Amazonka.CostExplorer.Types: [$sel:value:ResourceTag'] :: ResourceTag -> Text
+ Amazonka.CostExplorer.Types: [$sel:values:CostCategoryReference'] :: CostCategoryReference -> Maybe [Text]
+ Amazonka.CostExplorer.Types: [$sel:values:CostCategorySplitChargeRuleParameter'] :: CostCategorySplitChargeRuleParameter -> NonEmpty Text
+ Amazonka.CostExplorer.Types: [$sel:values:CostCategoryValues'] :: CostCategoryValues -> Maybe [Text]
+ Amazonka.CostExplorer.Types: [$sel:values:DimensionValues'] :: DimensionValues -> Maybe [Text]
+ Amazonka.CostExplorer.Types: [$sel:values:TagValues'] :: TagValues -> Maybe [Text]
+ Amazonka.CostExplorer.Types: [$sel:vcpu:EC2ResourceDetails'] :: EC2ResourceDetails -> Maybe Text
+ Amazonka.CostExplorer.Types: [fromAccountScope] :: AccountScope -> Text
+ Amazonka.CostExplorer.Types: [fromAnomalyFeedbackType] :: AnomalyFeedbackType -> Text
+ Amazonka.CostExplorer.Types: [fromAnomalySubscriptionFrequency] :: AnomalySubscriptionFrequency -> Text
+ Amazonka.CostExplorer.Types: [fromContext] :: Context -> Text
+ Amazonka.CostExplorer.Types: [fromCostAllocationTagStatus] :: CostAllocationTagStatus -> Text
+ Amazonka.CostExplorer.Types: [fromCostAllocationTagType] :: CostAllocationTagType -> Text
+ Amazonka.CostExplorer.Types: [fromCostCategoryInheritedValueDimensionName] :: CostCategoryInheritedValueDimensionName -> Text
+ Amazonka.CostExplorer.Types: [fromCostCategoryRuleType] :: CostCategoryRuleType -> Text
+ Amazonka.CostExplorer.Types: [fromCostCategoryRuleVersion] :: CostCategoryRuleVersion -> Text
+ Amazonka.CostExplorer.Types: [fromCostCategorySplitChargeMethod] :: CostCategorySplitChargeMethod -> Text
+ Amazonka.CostExplorer.Types: [fromCostCategorySplitChargeRuleParameterType] :: CostCategorySplitChargeRuleParameterType -> Text
+ Amazonka.CostExplorer.Types: [fromCostCategoryStatusComponent] :: CostCategoryStatusComponent -> Text
+ Amazonka.CostExplorer.Types: [fromCostCategoryStatus] :: CostCategoryStatus -> Text
+ Amazonka.CostExplorer.Types: [fromDimension] :: Dimension -> Text
+ Amazonka.CostExplorer.Types: [fromFindingReasonCode] :: FindingReasonCode -> Text
+ Amazonka.CostExplorer.Types: [fromGenerationStatus] :: GenerationStatus -> Text
+ Amazonka.CostExplorer.Types: [fromGranularity] :: Granularity -> Text
+ Amazonka.CostExplorer.Types: [fromGroupDefinitionType] :: GroupDefinitionType -> Text
+ Amazonka.CostExplorer.Types: [fromLookbackPeriodInDays] :: LookbackPeriodInDays -> Text
+ Amazonka.CostExplorer.Types: [fromMatchOption] :: MatchOption -> Text
+ Amazonka.CostExplorer.Types: [fromMetric] :: Metric -> Text
+ Amazonka.CostExplorer.Types: [fromMonitorDimension] :: MonitorDimension -> Text
+ Amazonka.CostExplorer.Types: [fromMonitorType] :: MonitorType -> Text
+ Amazonka.CostExplorer.Types: [fromNumericOperator] :: NumericOperator -> Text
+ Amazonka.CostExplorer.Types: [fromOfferingClass] :: OfferingClass -> Text
+ Amazonka.CostExplorer.Types: [fromPaymentOption] :: PaymentOption -> Text
+ Amazonka.CostExplorer.Types: [fromPlatformDifference] :: PlatformDifference -> Text
+ Amazonka.CostExplorer.Types: [fromRecommendationTarget] :: RecommendationTarget -> Text
+ Amazonka.CostExplorer.Types: [fromRightsizingType] :: RightsizingType -> Text
+ Amazonka.CostExplorer.Types: [fromSavingsPlansDataType] :: SavingsPlansDataType -> Text
+ Amazonka.CostExplorer.Types: [fromSortOrder] :: SortOrder -> Text
+ Amazonka.CostExplorer.Types: [fromSubscriberStatus] :: SubscriberStatus -> Text
+ Amazonka.CostExplorer.Types: [fromSubscriberType] :: SubscriberType -> Text
+ Amazonka.CostExplorer.Types: [fromSupportedSavingsPlansType] :: SupportedSavingsPlansType -> Text
+ Amazonka.CostExplorer.Types: [fromTermInYears] :: TermInYears -> Text
+ Amazonka.CostExplorer.Types: _BillExpirationException :: AsError a => Fold a ServiceError
+ Amazonka.CostExplorer.Types: _DataUnavailableException :: AsError a => Fold a ServiceError
+ Amazonka.CostExplorer.Types: _GenerationExistsException :: AsError a => Fold a ServiceError
+ Amazonka.CostExplorer.Types: _InvalidNextTokenException :: AsError a => Fold a ServiceError
+ Amazonka.CostExplorer.Types: _LimitExceededException :: AsError a => Fold a ServiceError
+ Amazonka.CostExplorer.Types: _RequestChangedException :: AsError a => Fold a ServiceError
+ Amazonka.CostExplorer.Types: _ResourceNotFoundException :: AsError a => Fold a ServiceError
+ Amazonka.CostExplorer.Types: _ServiceQuotaExceededException :: AsError a => Fold a ServiceError
+ Amazonka.CostExplorer.Types: _TooManyTagsException :: AsError a => Fold a ServiceError
+ Amazonka.CostExplorer.Types: _UnknownMonitorException :: AsError a => Fold a ServiceError
+ Amazonka.CostExplorer.Types: _UnknownSubscriptionException :: AsError a => Fold a ServiceError
+ Amazonka.CostExplorer.Types: _UnresolvableUsageUnitException :: AsError a => Fold a ServiceError
+ Amazonka.CostExplorer.Types: anomalyDateInterval_endDate :: Lens' AnomalyDateInterval (Maybe Text)
+ Amazonka.CostExplorer.Types: anomalyDateInterval_startDate :: Lens' AnomalyDateInterval Text
+ Amazonka.CostExplorer.Types: anomalyMonitor_creationDate :: Lens' AnomalyMonitor (Maybe Text)
+ Amazonka.CostExplorer.Types: anomalyMonitor_dimensionalValueCount :: Lens' AnomalyMonitor (Maybe Natural)
+ Amazonka.CostExplorer.Types: anomalyMonitor_lastEvaluatedDate :: Lens' AnomalyMonitor (Maybe Text)
+ Amazonka.CostExplorer.Types: anomalyMonitor_lastUpdatedDate :: Lens' AnomalyMonitor (Maybe Text)
+ Amazonka.CostExplorer.Types: anomalyMonitor_monitorArn :: Lens' AnomalyMonitor (Maybe Text)
+ Amazonka.CostExplorer.Types: anomalyMonitor_monitorDimension :: Lens' AnomalyMonitor (Maybe MonitorDimension)
+ Amazonka.CostExplorer.Types: anomalyMonitor_monitorName :: Lens' AnomalyMonitor Text
+ Amazonka.CostExplorer.Types: anomalyMonitor_monitorSpecification :: Lens' AnomalyMonitor (Maybe Expression)
+ Amazonka.CostExplorer.Types: anomalyMonitor_monitorType :: Lens' AnomalyMonitor MonitorType
+ Amazonka.CostExplorer.Types: anomalyScore_currentScore :: Lens' AnomalyScore Double
+ Amazonka.CostExplorer.Types: anomalyScore_maxScore :: Lens' AnomalyScore Double
+ Amazonka.CostExplorer.Types: anomalySubscription_accountId :: Lens' AnomalySubscription (Maybe Text)
+ Amazonka.CostExplorer.Types: anomalySubscription_frequency :: Lens' AnomalySubscription AnomalySubscriptionFrequency
+ Amazonka.CostExplorer.Types: anomalySubscription_monitorArnList :: Lens' AnomalySubscription [Text]
+ Amazonka.CostExplorer.Types: anomalySubscription_subscribers :: Lens' AnomalySubscription [Subscriber]
+ Amazonka.CostExplorer.Types: anomalySubscription_subscriptionArn :: Lens' AnomalySubscription (Maybe Text)
+ Amazonka.CostExplorer.Types: anomalySubscription_subscriptionName :: Lens' AnomalySubscription Text
+ Amazonka.CostExplorer.Types: anomalySubscription_threshold :: Lens' AnomalySubscription (Maybe Double)
+ Amazonka.CostExplorer.Types: anomalySubscription_thresholdExpression :: Lens' AnomalySubscription (Maybe Expression)
+ Amazonka.CostExplorer.Types: anomaly_anomalyEndDate :: Lens' Anomaly (Maybe Text)
+ Amazonka.CostExplorer.Types: anomaly_anomalyId :: Lens' Anomaly Text
+ Amazonka.CostExplorer.Types: anomaly_anomalyScore :: Lens' Anomaly AnomalyScore
+ Amazonka.CostExplorer.Types: anomaly_anomalyStartDate :: Lens' Anomaly (Maybe Text)
+ Amazonka.CostExplorer.Types: anomaly_dimensionValue :: Lens' Anomaly (Maybe Text)
+ Amazonka.CostExplorer.Types: anomaly_feedback :: Lens' Anomaly (Maybe AnomalyFeedbackType)
+ Amazonka.CostExplorer.Types: anomaly_impact :: Lens' Anomaly Impact
+ Amazonka.CostExplorer.Types: anomaly_monitorArn :: Lens' Anomaly Text
+ Amazonka.CostExplorer.Types: anomaly_rootCauses :: Lens' Anomaly (Maybe [RootCause])
+ Amazonka.CostExplorer.Types: costAllocationTagStatusEntry_status :: Lens' CostAllocationTagStatusEntry CostAllocationTagStatus
+ Amazonka.CostExplorer.Types: costAllocationTagStatusEntry_tagKey :: Lens' CostAllocationTagStatusEntry Text
+ Amazonka.CostExplorer.Types: costAllocationTag_status :: Lens' CostAllocationTag CostAllocationTagStatus
+ Amazonka.CostExplorer.Types: costAllocationTag_tagKey :: Lens' CostAllocationTag Text
+ Amazonka.CostExplorer.Types: costAllocationTag_type :: Lens' CostAllocationTag CostAllocationTagType
+ Amazonka.CostExplorer.Types: costCategoryInheritedValueDimension_dimensionKey :: Lens' CostCategoryInheritedValueDimension (Maybe Text)
+ Amazonka.CostExplorer.Types: costCategoryInheritedValueDimension_dimensionName :: Lens' CostCategoryInheritedValueDimension (Maybe CostCategoryInheritedValueDimensionName)
+ Amazonka.CostExplorer.Types: costCategoryProcessingStatus_component :: Lens' CostCategoryProcessingStatus (Maybe CostCategoryStatusComponent)
+ Amazonka.CostExplorer.Types: costCategoryProcessingStatus_status :: Lens' CostCategoryProcessingStatus (Maybe CostCategoryStatus)
+ Amazonka.CostExplorer.Types: costCategoryReference_costCategoryArn :: Lens' CostCategoryReference (Maybe Text)
+ Amazonka.CostExplorer.Types: costCategoryReference_defaultValue :: Lens' CostCategoryReference (Maybe Text)
+ Amazonka.CostExplorer.Types: costCategoryReference_effectiveEnd :: Lens' CostCategoryReference (Maybe Text)
+ Amazonka.CostExplorer.Types: costCategoryReference_effectiveStart :: Lens' CostCategoryReference (Maybe Text)
+ Amazonka.CostExplorer.Types: costCategoryReference_name :: Lens' CostCategoryReference (Maybe Text)
+ Amazonka.CostExplorer.Types: costCategoryReference_numberOfRules :: Lens' CostCategoryReference (Maybe Natural)
+ Amazonka.CostExplorer.Types: costCategoryReference_processingStatus :: Lens' CostCategoryReference (Maybe [CostCategoryProcessingStatus])
+ Amazonka.CostExplorer.Types: costCategoryReference_values :: Lens' CostCategoryReference (Maybe [Text])
+ Amazonka.CostExplorer.Types: costCategoryRule_inheritedValue :: Lens' CostCategoryRule (Maybe CostCategoryInheritedValueDimension)
+ Amazonka.CostExplorer.Types: costCategoryRule_rule :: Lens' CostCategoryRule (Maybe Expression)
+ Amazonka.CostExplorer.Types: costCategoryRule_type :: Lens' CostCategoryRule (Maybe CostCategoryRuleType)
+ Amazonka.CostExplorer.Types: costCategoryRule_value :: Lens' CostCategoryRule (Maybe Text)
+ Amazonka.CostExplorer.Types: costCategorySplitChargeRuleParameter_type :: Lens' CostCategorySplitChargeRuleParameter CostCategorySplitChargeRuleParameterType
+ Amazonka.CostExplorer.Types: costCategorySplitChargeRuleParameter_values :: Lens' CostCategorySplitChargeRuleParameter (NonEmpty Text)
+ Amazonka.CostExplorer.Types: costCategorySplitChargeRule_method :: Lens' CostCategorySplitChargeRule CostCategorySplitChargeMethod
+ Amazonka.CostExplorer.Types: costCategorySplitChargeRule_parameters :: Lens' CostCategorySplitChargeRule (Maybe (NonEmpty CostCategorySplitChargeRuleParameter))
+ Amazonka.CostExplorer.Types: costCategorySplitChargeRule_source :: Lens' CostCategorySplitChargeRule Text
+ Amazonka.CostExplorer.Types: costCategorySplitChargeRule_targets :: Lens' CostCategorySplitChargeRule (NonEmpty Text)
+ Amazonka.CostExplorer.Types: costCategoryValues_key :: Lens' CostCategoryValues (Maybe Text)
+ Amazonka.CostExplorer.Types: costCategoryValues_matchOptions :: Lens' CostCategoryValues (Maybe [MatchOption])
+ Amazonka.CostExplorer.Types: costCategoryValues_values :: Lens' CostCategoryValues (Maybe [Text])
+ Amazonka.CostExplorer.Types: costCategory_costCategoryArn :: Lens' CostCategory Text
+ Amazonka.CostExplorer.Types: costCategory_defaultValue :: Lens' CostCategory (Maybe Text)
+ Amazonka.CostExplorer.Types: costCategory_effectiveEnd :: Lens' CostCategory (Maybe Text)
+ Amazonka.CostExplorer.Types: costCategory_effectiveStart :: Lens' CostCategory Text
+ Amazonka.CostExplorer.Types: costCategory_name :: Lens' CostCategory Text
+ Amazonka.CostExplorer.Types: costCategory_processingStatus :: Lens' CostCategory (Maybe [CostCategoryProcessingStatus])
+ Amazonka.CostExplorer.Types: costCategory_ruleVersion :: Lens' CostCategory CostCategoryRuleVersion
+ Amazonka.CostExplorer.Types: costCategory_rules :: Lens' CostCategory (NonEmpty CostCategoryRule)
+ Amazonka.CostExplorer.Types: costCategory_splitChargeRules :: Lens' CostCategory (Maybe (NonEmpty CostCategorySplitChargeRule))
+ Amazonka.CostExplorer.Types: coverageByTime_groups :: Lens' CoverageByTime (Maybe [ReservationCoverageGroup])
+ Amazonka.CostExplorer.Types: coverageByTime_timePeriod :: Lens' CoverageByTime (Maybe DateInterval)
+ Amazonka.CostExplorer.Types: coverageByTime_total :: Lens' CoverageByTime (Maybe Coverage)
+ Amazonka.CostExplorer.Types: coverageCost_onDemandCost :: Lens' CoverageCost (Maybe Text)
+ Amazonka.CostExplorer.Types: coverageHours_coverageHoursPercentage :: Lens' CoverageHours (Maybe Text)
+ Amazonka.CostExplorer.Types: coverageHours_onDemandHours :: Lens' CoverageHours (Maybe Text)
+ Amazonka.CostExplorer.Types: coverageHours_reservedHours :: Lens' CoverageHours (Maybe Text)
+ Amazonka.CostExplorer.Types: coverageHours_totalRunningHours :: Lens' CoverageHours (Maybe Text)
+ Amazonka.CostExplorer.Types: coverageNormalizedUnits_coverageNormalizedUnitsPercentage :: Lens' CoverageNormalizedUnits (Maybe Text)
+ Amazonka.CostExplorer.Types: coverageNormalizedUnits_onDemandNormalizedUnits :: Lens' CoverageNormalizedUnits (Maybe Text)
+ Amazonka.CostExplorer.Types: coverageNormalizedUnits_reservedNormalizedUnits :: Lens' CoverageNormalizedUnits (Maybe Text)
+ Amazonka.CostExplorer.Types: coverageNormalizedUnits_totalRunningNormalizedUnits :: Lens' CoverageNormalizedUnits (Maybe Text)
+ Amazonka.CostExplorer.Types: coverage_coverageCost :: Lens' Coverage (Maybe CoverageCost)
+ Amazonka.CostExplorer.Types: coverage_coverageHours :: Lens' Coverage (Maybe CoverageHours)
+ Amazonka.CostExplorer.Types: coverage_coverageNormalizedUnits :: Lens' Coverage (Maybe CoverageNormalizedUnits)
+ Amazonka.CostExplorer.Types: currentInstance_currencyCode :: Lens' CurrentInstance (Maybe Text)
+ Amazonka.CostExplorer.Types: currentInstance_instanceName :: Lens' CurrentInstance (Maybe Text)
+ Amazonka.CostExplorer.Types: currentInstance_monthlyCost :: Lens' CurrentInstance (Maybe Text)
+ Amazonka.CostExplorer.Types: currentInstance_onDemandHoursInLookbackPeriod :: Lens' CurrentInstance (Maybe Text)
+ Amazonka.CostExplorer.Types: currentInstance_reservationCoveredHoursInLookbackPeriod :: Lens' CurrentInstance (Maybe Text)
+ Amazonka.CostExplorer.Types: currentInstance_resourceDetails :: Lens' CurrentInstance (Maybe ResourceDetails)
+ Amazonka.CostExplorer.Types: currentInstance_resourceId :: Lens' CurrentInstance (Maybe Text)
+ Amazonka.CostExplorer.Types: currentInstance_resourceUtilization :: Lens' CurrentInstance (Maybe ResourceUtilization)
+ Amazonka.CostExplorer.Types: currentInstance_savingsPlansCoveredHoursInLookbackPeriod :: Lens' CurrentInstance (Maybe Text)
+ Amazonka.CostExplorer.Types: currentInstance_tags :: Lens' CurrentInstance (Maybe [TagValues])
+ Amazonka.CostExplorer.Types: currentInstance_totalRunningHoursInLookbackPeriod :: Lens' CurrentInstance (Maybe Text)
+ Amazonka.CostExplorer.Types: data Anomaly
+ Amazonka.CostExplorer.Types: data AnomalyDateInterval
+ Amazonka.CostExplorer.Types: data AnomalyMonitor
+ Amazonka.CostExplorer.Types: data AnomalyScore
+ Amazonka.CostExplorer.Types: data AnomalySubscription
+ Amazonka.CostExplorer.Types: data CostAllocationTag
+ Amazonka.CostExplorer.Types: data CostAllocationTagStatusEntry
+ Amazonka.CostExplorer.Types: data CostCategory
+ Amazonka.CostExplorer.Types: data CostCategoryInheritedValueDimension
+ Amazonka.CostExplorer.Types: data CostCategoryProcessingStatus
+ Amazonka.CostExplorer.Types: data CostCategoryReference
+ Amazonka.CostExplorer.Types: data CostCategoryRule
+ Amazonka.CostExplorer.Types: data CostCategorySplitChargeRule
+ Amazonka.CostExplorer.Types: data CostCategorySplitChargeRuleParameter
+ Amazonka.CostExplorer.Types: data CostCategoryValues
+ Amazonka.CostExplorer.Types: data Coverage
+ Amazonka.CostExplorer.Types: data CoverageByTime
+ Amazonka.CostExplorer.Types: data CoverageCost
+ Amazonka.CostExplorer.Types: data CoverageHours
+ Amazonka.CostExplorer.Types: data CoverageNormalizedUnits
+ Amazonka.CostExplorer.Types: data CurrentInstance
+ Amazonka.CostExplorer.Types: data DateInterval
+ Amazonka.CostExplorer.Types: data DimensionValues
+ Amazonka.CostExplorer.Types: data DimensionValuesWithAttributes
+ Amazonka.CostExplorer.Types: data DiskResourceUtilization
+ Amazonka.CostExplorer.Types: data EBSResourceUtilization
+ Amazonka.CostExplorer.Types: data EC2InstanceDetails
+ Amazonka.CostExplorer.Types: data EC2ResourceDetails
+ Amazonka.CostExplorer.Types: data EC2ResourceUtilization
+ Amazonka.CostExplorer.Types: data EC2Specification
+ Amazonka.CostExplorer.Types: data ESInstanceDetails
+ Amazonka.CostExplorer.Types: data ElastiCacheInstanceDetails
+ Amazonka.CostExplorer.Types: data Expression
+ Amazonka.CostExplorer.Types: data ForecastResult
+ Amazonka.CostExplorer.Types: data GenerationSummary
+ Amazonka.CostExplorer.Types: data Group
+ Amazonka.CostExplorer.Types: data GroupDefinition
+ Amazonka.CostExplorer.Types: data Impact
+ Amazonka.CostExplorer.Types: data InstanceDetails
+ Amazonka.CostExplorer.Types: data MetricValue
+ Amazonka.CostExplorer.Types: data ModifyRecommendationDetail
+ Amazonka.CostExplorer.Types: data NetworkResourceUtilization
+ Amazonka.CostExplorer.Types: data RDSInstanceDetails
+ Amazonka.CostExplorer.Types: data RedshiftInstanceDetails
+ Amazonka.CostExplorer.Types: data ReservationAggregates
+ Amazonka.CostExplorer.Types: data ReservationCoverageGroup
+ Amazonka.CostExplorer.Types: data ReservationPurchaseRecommendation
+ Amazonka.CostExplorer.Types: data ReservationPurchaseRecommendationDetail
+ Amazonka.CostExplorer.Types: data ReservationPurchaseRecommendationMetadata
+ Amazonka.CostExplorer.Types: data ReservationPurchaseRecommendationSummary
+ Amazonka.CostExplorer.Types: data ReservationUtilizationGroup
+ Amazonka.CostExplorer.Types: data ResourceDetails
+ Amazonka.CostExplorer.Types: data ResourceTag
+ Amazonka.CostExplorer.Types: data ResourceUtilization
+ Amazonka.CostExplorer.Types: data ResultByTime
+ Amazonka.CostExplorer.Types: data RightsizingRecommendation
+ Amazonka.CostExplorer.Types: data RightsizingRecommendationConfiguration
+ Amazonka.CostExplorer.Types: data RightsizingRecommendationMetadata
+ Amazonka.CostExplorer.Types: data RightsizingRecommendationSummary
+ Amazonka.CostExplorer.Types: data RootCause
+ Amazonka.CostExplorer.Types: data SavingsPlansAmortizedCommitment
+ Amazonka.CostExplorer.Types: data SavingsPlansCoverage
+ Amazonka.CostExplorer.Types: data SavingsPlansCoverageData
+ Amazonka.CostExplorer.Types: data SavingsPlansDetails
+ Amazonka.CostExplorer.Types: data SavingsPlansPurchaseRecommendation
+ Amazonka.CostExplorer.Types: data SavingsPlansPurchaseRecommendationDetail
+ Amazonka.CostExplorer.Types: data SavingsPlansPurchaseRecommendationMetadata
+ Amazonka.CostExplorer.Types: data SavingsPlansPurchaseRecommendationSummary
+ Amazonka.CostExplorer.Types: data SavingsPlansSavings
+ Amazonka.CostExplorer.Types: data SavingsPlansUtilization
+ Amazonka.CostExplorer.Types: data SavingsPlansUtilizationAggregates
+ Amazonka.CostExplorer.Types: data SavingsPlansUtilizationByTime
+ Amazonka.CostExplorer.Types: data SavingsPlansUtilizationDetail
+ Amazonka.CostExplorer.Types: data ServiceSpecification
+ Amazonka.CostExplorer.Types: data SortDefinition
+ Amazonka.CostExplorer.Types: data Subscriber
+ Amazonka.CostExplorer.Types: data TagValues
+ Amazonka.CostExplorer.Types: data TargetInstance
+ Amazonka.CostExplorer.Types: data TerminateRecommendationDetail
+ Amazonka.CostExplorer.Types: data TotalImpactFilter
+ Amazonka.CostExplorer.Types: data UpdateCostAllocationTagsStatusError
+ Amazonka.CostExplorer.Types: data UtilizationByTime
+ Amazonka.CostExplorer.Types: dateInterval_end :: Lens' DateInterval Text
+ Amazonka.CostExplorer.Types: dateInterval_start :: Lens' DateInterval Text
+ Amazonka.CostExplorer.Types: defaultService :: Service
+ Amazonka.CostExplorer.Types: dimensionValuesWithAttributes_attributes :: Lens' DimensionValuesWithAttributes (Maybe (HashMap Text Text))
+ Amazonka.CostExplorer.Types: dimensionValuesWithAttributes_value :: Lens' DimensionValuesWithAttributes (Maybe Text)
+ Amazonka.CostExplorer.Types: dimensionValues_key :: Lens' DimensionValues (Maybe Dimension)
+ Amazonka.CostExplorer.Types: dimensionValues_matchOptions :: Lens' DimensionValues (Maybe [MatchOption])
+ Amazonka.CostExplorer.Types: dimensionValues_values :: Lens' DimensionValues (Maybe [Text])
+ Amazonka.CostExplorer.Types: diskResourceUtilization_diskReadBytesPerSecond :: Lens' DiskResourceUtilization (Maybe Text)
+ Amazonka.CostExplorer.Types: diskResourceUtilization_diskReadOpsPerSecond :: Lens' DiskResourceUtilization (Maybe Text)
+ Amazonka.CostExplorer.Types: diskResourceUtilization_diskWriteBytesPerSecond :: Lens' DiskResourceUtilization (Maybe Text)
+ Amazonka.CostExplorer.Types: diskResourceUtilization_diskWriteOpsPerSecond :: Lens' DiskResourceUtilization (Maybe Text)
+ Amazonka.CostExplorer.Types: eBSResourceUtilization_ebsReadBytesPerSecond :: Lens' EBSResourceUtilization (Maybe Text)
+ Amazonka.CostExplorer.Types: eBSResourceUtilization_ebsReadOpsPerSecond :: Lens' EBSResourceUtilization (Maybe Text)
+ Amazonka.CostExplorer.Types: eBSResourceUtilization_ebsWriteBytesPerSecond :: Lens' EBSResourceUtilization (Maybe Text)
+ Amazonka.CostExplorer.Types: eBSResourceUtilization_ebsWriteOpsPerSecond :: Lens' EBSResourceUtilization (Maybe Text)
+ Amazonka.CostExplorer.Types: eC2InstanceDetails_availabilityZone :: Lens' EC2InstanceDetails (Maybe Text)
+ Amazonka.CostExplorer.Types: eC2InstanceDetails_currentGeneration :: Lens' EC2InstanceDetails (Maybe Bool)
+ Amazonka.CostExplorer.Types: eC2InstanceDetails_family :: Lens' EC2InstanceDetails (Maybe Text)
+ Amazonka.CostExplorer.Types: eC2InstanceDetails_instanceType :: Lens' EC2InstanceDetails (Maybe Text)
+ Amazonka.CostExplorer.Types: eC2InstanceDetails_platform :: Lens' EC2InstanceDetails (Maybe Text)
+ Amazonka.CostExplorer.Types: eC2InstanceDetails_region :: Lens' EC2InstanceDetails (Maybe Text)
+ Amazonka.CostExplorer.Types: eC2InstanceDetails_sizeFlexEligible :: Lens' EC2InstanceDetails (Maybe Bool)
+ Amazonka.CostExplorer.Types: eC2InstanceDetails_tenancy :: Lens' EC2InstanceDetails (Maybe Text)
+ Amazonka.CostExplorer.Types: eC2ResourceDetails_hourlyOnDemandRate :: Lens' EC2ResourceDetails (Maybe Text)
+ Amazonka.CostExplorer.Types: eC2ResourceDetails_instanceType :: Lens' EC2ResourceDetails (Maybe Text)
+ Amazonka.CostExplorer.Types: eC2ResourceDetails_memory :: Lens' EC2ResourceDetails (Maybe Text)
+ Amazonka.CostExplorer.Types: eC2ResourceDetails_networkPerformance :: Lens' EC2ResourceDetails (Maybe Text)
+ Amazonka.CostExplorer.Types: eC2ResourceDetails_platform :: Lens' EC2ResourceDetails (Maybe Text)
+ Amazonka.CostExplorer.Types: eC2ResourceDetails_region :: Lens' EC2ResourceDetails (Maybe Text)
+ Amazonka.CostExplorer.Types: eC2ResourceDetails_sku :: Lens' EC2ResourceDetails (Maybe Text)
+ Amazonka.CostExplorer.Types: eC2ResourceDetails_storage :: Lens' EC2ResourceDetails (Maybe Text)
+ Amazonka.CostExplorer.Types: eC2ResourceDetails_vcpu :: Lens' EC2ResourceDetails (Maybe Text)
+ Amazonka.CostExplorer.Types: eC2ResourceUtilization_diskResourceUtilization :: Lens' EC2ResourceUtilization (Maybe DiskResourceUtilization)
+ Amazonka.CostExplorer.Types: eC2ResourceUtilization_eBSResourceUtilization :: Lens' EC2ResourceUtilization (Maybe EBSResourceUtilization)
+ Amazonka.CostExplorer.Types: eC2ResourceUtilization_maxCpuUtilizationPercentage :: Lens' EC2ResourceUtilization (Maybe Text)
+ Amazonka.CostExplorer.Types: eC2ResourceUtilization_maxMemoryUtilizationPercentage :: Lens' EC2ResourceUtilization (Maybe Text)
+ Amazonka.CostExplorer.Types: eC2ResourceUtilization_maxStorageUtilizationPercentage :: Lens' EC2ResourceUtilization (Maybe Text)
+ Amazonka.CostExplorer.Types: eC2ResourceUtilization_networkResourceUtilization :: Lens' EC2ResourceUtilization (Maybe NetworkResourceUtilization)
+ Amazonka.CostExplorer.Types: eC2Specification_offeringClass :: Lens' EC2Specification (Maybe OfferingClass)
+ Amazonka.CostExplorer.Types: eSInstanceDetails_currentGeneration :: Lens' ESInstanceDetails (Maybe Bool)
+ Amazonka.CostExplorer.Types: eSInstanceDetails_instanceClass :: Lens' ESInstanceDetails (Maybe Text)
+ Amazonka.CostExplorer.Types: eSInstanceDetails_instanceSize :: Lens' ESInstanceDetails (Maybe Text)
+ Amazonka.CostExplorer.Types: eSInstanceDetails_region :: Lens' ESInstanceDetails (Maybe Text)
+ Amazonka.CostExplorer.Types: eSInstanceDetails_sizeFlexEligible :: Lens' ESInstanceDetails (Maybe Bool)
+ Amazonka.CostExplorer.Types: elastiCacheInstanceDetails_currentGeneration :: Lens' ElastiCacheInstanceDetails (Maybe Bool)
+ Amazonka.CostExplorer.Types: elastiCacheInstanceDetails_family :: Lens' ElastiCacheInstanceDetails (Maybe Text)
+ Amazonka.CostExplorer.Types: elastiCacheInstanceDetails_nodeType :: Lens' ElastiCacheInstanceDetails (Maybe Text)
+ Amazonka.CostExplorer.Types: elastiCacheInstanceDetails_productDescription :: Lens' ElastiCacheInstanceDetails (Maybe Text)
+ Amazonka.CostExplorer.Types: elastiCacheInstanceDetails_region :: Lens' ElastiCacheInstanceDetails (Maybe Text)
+ Amazonka.CostExplorer.Types: elastiCacheInstanceDetails_sizeFlexEligible :: Lens' ElastiCacheInstanceDetails (Maybe Bool)
+ Amazonka.CostExplorer.Types: expression_and :: Lens' Expression (Maybe [Expression])
+ Amazonka.CostExplorer.Types: expression_costCategories :: Lens' Expression (Maybe CostCategoryValues)
+ Amazonka.CostExplorer.Types: expression_dimensions :: Lens' Expression (Maybe DimensionValues)
+ Amazonka.CostExplorer.Types: expression_not :: Lens' Expression (Maybe Expression)
+ Amazonka.CostExplorer.Types: expression_or :: Lens' Expression (Maybe [Expression])
+ Amazonka.CostExplorer.Types: expression_tags :: Lens' Expression (Maybe TagValues)
+ Amazonka.CostExplorer.Types: forecastResult_meanValue :: Lens' ForecastResult (Maybe Text)
+ Amazonka.CostExplorer.Types: forecastResult_predictionIntervalLowerBound :: Lens' ForecastResult (Maybe Text)
+ Amazonka.CostExplorer.Types: forecastResult_predictionIntervalUpperBound :: Lens' ForecastResult (Maybe Text)
+ Amazonka.CostExplorer.Types: forecastResult_timePeriod :: Lens' ForecastResult (Maybe DateInterval)
+ Amazonka.CostExplorer.Types: generationSummary_estimatedCompletionTime :: Lens' GenerationSummary (Maybe Text)
+ Amazonka.CostExplorer.Types: generationSummary_generationCompletionTime :: Lens' GenerationSummary (Maybe Text)
+ Amazonka.CostExplorer.Types: generationSummary_generationStartedTime :: Lens' GenerationSummary (Maybe Text)
+ Amazonka.CostExplorer.Types: generationSummary_generationStatus :: Lens' GenerationSummary (Maybe GenerationStatus)
+ Amazonka.CostExplorer.Types: generationSummary_recommendationId :: Lens' GenerationSummary (Maybe Text)
+ Amazonka.CostExplorer.Types: groupDefinition_key :: Lens' GroupDefinition (Maybe Text)
+ Amazonka.CostExplorer.Types: groupDefinition_type :: Lens' GroupDefinition (Maybe GroupDefinitionType)
+ Amazonka.CostExplorer.Types: group_keys :: Lens' Group (Maybe [Text])
+ Amazonka.CostExplorer.Types: group_metrics :: Lens' Group (Maybe (HashMap Text MetricValue))
+ Amazonka.CostExplorer.Types: impact_maxImpact :: Lens' Impact Double
+ Amazonka.CostExplorer.Types: impact_totalActualSpend :: Lens' Impact (Maybe Double)
+ Amazonka.CostExplorer.Types: impact_totalExpectedSpend :: Lens' Impact (Maybe Double)
+ Amazonka.CostExplorer.Types: impact_totalImpact :: Lens' Impact (Maybe Double)
+ Amazonka.CostExplorer.Types: impact_totalImpactPercentage :: Lens' Impact (Maybe Double)
+ Amazonka.CostExplorer.Types: instanceDetails_eC2InstanceDetails :: Lens' InstanceDetails (Maybe EC2InstanceDetails)
+ Amazonka.CostExplorer.Types: instanceDetails_eSInstanceDetails :: Lens' InstanceDetails (Maybe ESInstanceDetails)
+ Amazonka.CostExplorer.Types: instanceDetails_elastiCacheInstanceDetails :: Lens' InstanceDetails (Maybe ElastiCacheInstanceDetails)
+ Amazonka.CostExplorer.Types: instanceDetails_rDSInstanceDetails :: Lens' InstanceDetails (Maybe RDSInstanceDetails)
+ Amazonka.CostExplorer.Types: instanceDetails_redshiftInstanceDetails :: Lens' InstanceDetails (Maybe RedshiftInstanceDetails)
+ Amazonka.CostExplorer.Types: metricValue_amount :: Lens' MetricValue (Maybe Text)
+ Amazonka.CostExplorer.Types: metricValue_unit :: Lens' MetricValue (Maybe Text)
+ Amazonka.CostExplorer.Types: modifyRecommendationDetail_targetInstances :: Lens' ModifyRecommendationDetail (Maybe [TargetInstance])
+ Amazonka.CostExplorer.Types: networkResourceUtilization_networkInBytesPerSecond :: Lens' NetworkResourceUtilization (Maybe Text)
+ Amazonka.CostExplorer.Types: networkResourceUtilization_networkOutBytesPerSecond :: Lens' NetworkResourceUtilization (Maybe Text)
+ Amazonka.CostExplorer.Types: networkResourceUtilization_networkPacketsInPerSecond :: Lens' NetworkResourceUtilization (Maybe Text)
+ Amazonka.CostExplorer.Types: networkResourceUtilization_networkPacketsOutPerSecond :: Lens' NetworkResourceUtilization (Maybe Text)
+ Amazonka.CostExplorer.Types: newAnomaly :: Text -> AnomalyScore -> Impact -> Text -> Anomaly
+ Amazonka.CostExplorer.Types: newAnomalyDateInterval :: Text -> AnomalyDateInterval
+ Amazonka.CostExplorer.Types: newAnomalyMonitor :: Text -> MonitorType -> AnomalyMonitor
+ Amazonka.CostExplorer.Types: newAnomalyScore :: Double -> Double -> AnomalyScore
+ Amazonka.CostExplorer.Types: newAnomalySubscription :: AnomalySubscriptionFrequency -> Text -> AnomalySubscription
+ Amazonka.CostExplorer.Types: newCostAllocationTag :: Text -> CostAllocationTagType -> CostAllocationTagStatus -> CostAllocationTag
+ Amazonka.CostExplorer.Types: newCostAllocationTagStatusEntry :: Text -> CostAllocationTagStatus -> CostAllocationTagStatusEntry
+ Amazonka.CostExplorer.Types: newCostCategory :: Text -> Text -> Text -> CostCategoryRuleVersion -> NonEmpty CostCategoryRule -> CostCategory
+ Amazonka.CostExplorer.Types: newCostCategoryInheritedValueDimension :: CostCategoryInheritedValueDimension
+ Amazonka.CostExplorer.Types: newCostCategoryProcessingStatus :: CostCategoryProcessingStatus
+ Amazonka.CostExplorer.Types: newCostCategoryReference :: CostCategoryReference
+ Amazonka.CostExplorer.Types: newCostCategoryRule :: CostCategoryRule
+ Amazonka.CostExplorer.Types: newCostCategorySplitChargeRule :: Text -> NonEmpty Text -> CostCategorySplitChargeMethod -> CostCategorySplitChargeRule
+ Amazonka.CostExplorer.Types: newCostCategorySplitChargeRuleParameter :: CostCategorySplitChargeRuleParameterType -> NonEmpty Text -> CostCategorySplitChargeRuleParameter
+ Amazonka.CostExplorer.Types: newCostCategoryValues :: CostCategoryValues
+ Amazonka.CostExplorer.Types: newCoverage :: Coverage
+ Amazonka.CostExplorer.Types: newCoverageByTime :: CoverageByTime
+ Amazonka.CostExplorer.Types: newCoverageCost :: CoverageCost
+ Amazonka.CostExplorer.Types: newCoverageHours :: CoverageHours
+ Amazonka.CostExplorer.Types: newCoverageNormalizedUnits :: CoverageNormalizedUnits
+ Amazonka.CostExplorer.Types: newCurrentInstance :: CurrentInstance
+ Amazonka.CostExplorer.Types: newDateInterval :: Text -> Text -> DateInterval
+ Amazonka.CostExplorer.Types: newDimensionValues :: DimensionValues
+ Amazonka.CostExplorer.Types: newDimensionValuesWithAttributes :: DimensionValuesWithAttributes
+ Amazonka.CostExplorer.Types: newDiskResourceUtilization :: DiskResourceUtilization
+ Amazonka.CostExplorer.Types: newEBSResourceUtilization :: EBSResourceUtilization
+ Amazonka.CostExplorer.Types: newEC2InstanceDetails :: EC2InstanceDetails
+ Amazonka.CostExplorer.Types: newEC2ResourceDetails :: EC2ResourceDetails
+ Amazonka.CostExplorer.Types: newEC2ResourceUtilization :: EC2ResourceUtilization
+ Amazonka.CostExplorer.Types: newEC2Specification :: EC2Specification
+ Amazonka.CostExplorer.Types: newESInstanceDetails :: ESInstanceDetails
+ Amazonka.CostExplorer.Types: newElastiCacheInstanceDetails :: ElastiCacheInstanceDetails
+ Amazonka.CostExplorer.Types: newExpression :: Expression
+ Amazonka.CostExplorer.Types: newForecastResult :: ForecastResult
+ Amazonka.CostExplorer.Types: newGenerationSummary :: GenerationSummary
+ Amazonka.CostExplorer.Types: newGroup :: Group
+ Amazonka.CostExplorer.Types: newGroupDefinition :: GroupDefinition
+ Amazonka.CostExplorer.Types: newImpact :: Double -> Impact
+ Amazonka.CostExplorer.Types: newInstanceDetails :: InstanceDetails
+ Amazonka.CostExplorer.Types: newMetricValue :: MetricValue
+ Amazonka.CostExplorer.Types: newModifyRecommendationDetail :: ModifyRecommendationDetail
+ Amazonka.CostExplorer.Types: newNetworkResourceUtilization :: NetworkResourceUtilization
+ Amazonka.CostExplorer.Types: newRDSInstanceDetails :: RDSInstanceDetails
+ Amazonka.CostExplorer.Types: newRedshiftInstanceDetails :: RedshiftInstanceDetails
+ Amazonka.CostExplorer.Types: newReservationAggregates :: ReservationAggregates
+ Amazonka.CostExplorer.Types: newReservationCoverageGroup :: ReservationCoverageGroup
+ Amazonka.CostExplorer.Types: newReservationPurchaseRecommendation :: ReservationPurchaseRecommendation
+ Amazonka.CostExplorer.Types: newReservationPurchaseRecommendationDetail :: ReservationPurchaseRecommendationDetail
+ Amazonka.CostExplorer.Types: newReservationPurchaseRecommendationMetadata :: ReservationPurchaseRecommendationMetadata
+ Amazonka.CostExplorer.Types: newReservationPurchaseRecommendationSummary :: ReservationPurchaseRecommendationSummary
+ Amazonka.CostExplorer.Types: newReservationUtilizationGroup :: ReservationUtilizationGroup
+ Amazonka.CostExplorer.Types: newResourceDetails :: ResourceDetails
+ Amazonka.CostExplorer.Types: newResourceTag :: Text -> Text -> ResourceTag
+ Amazonka.CostExplorer.Types: newResourceUtilization :: ResourceUtilization
+ Amazonka.CostExplorer.Types: newResultByTime :: ResultByTime
+ Amazonka.CostExplorer.Types: newRightsizingRecommendation :: RightsizingRecommendation
+ Amazonka.CostExplorer.Types: newRightsizingRecommendationConfiguration :: RecommendationTarget -> Bool -> RightsizingRecommendationConfiguration
+ Amazonka.CostExplorer.Types: newRightsizingRecommendationMetadata :: RightsizingRecommendationMetadata
+ Amazonka.CostExplorer.Types: newRightsizingRecommendationSummary :: RightsizingRecommendationSummary
+ Amazonka.CostExplorer.Types: newRootCause :: RootCause
+ Amazonka.CostExplorer.Types: newSavingsPlansAmortizedCommitment :: SavingsPlansAmortizedCommitment
+ Amazonka.CostExplorer.Types: newSavingsPlansCoverage :: SavingsPlansCoverage
+ Amazonka.CostExplorer.Types: newSavingsPlansCoverageData :: SavingsPlansCoverageData
+ Amazonka.CostExplorer.Types: newSavingsPlansDetails :: SavingsPlansDetails
+ Amazonka.CostExplorer.Types: newSavingsPlansPurchaseRecommendation :: SavingsPlansPurchaseRecommendation
+ Amazonka.CostExplorer.Types: newSavingsPlansPurchaseRecommendationDetail :: SavingsPlansPurchaseRecommendationDetail
+ Amazonka.CostExplorer.Types: newSavingsPlansPurchaseRecommendationMetadata :: SavingsPlansPurchaseRecommendationMetadata
+ Amazonka.CostExplorer.Types: newSavingsPlansPurchaseRecommendationSummary :: SavingsPlansPurchaseRecommendationSummary
+ Amazonka.CostExplorer.Types: newSavingsPlansSavings :: SavingsPlansSavings
+ Amazonka.CostExplorer.Types: newSavingsPlansUtilization :: SavingsPlansUtilization
+ Amazonka.CostExplorer.Types: newSavingsPlansUtilizationAggregates :: SavingsPlansUtilization -> SavingsPlansUtilizationAggregates
+ Amazonka.CostExplorer.Types: newSavingsPlansUtilizationByTime :: DateInterval -> SavingsPlansUtilization -> SavingsPlansUtilizationByTime
+ Amazonka.CostExplorer.Types: newSavingsPlansUtilizationDetail :: SavingsPlansUtilizationDetail
+ Amazonka.CostExplorer.Types: newServiceSpecification :: ServiceSpecification
+ Amazonka.CostExplorer.Types: newSortDefinition :: Text -> SortDefinition
+ Amazonka.CostExplorer.Types: newSubscriber :: Subscriber
+ Amazonka.CostExplorer.Types: newTagValues :: TagValues
+ Amazonka.CostExplorer.Types: newTargetInstance :: TargetInstance
+ Amazonka.CostExplorer.Types: newTerminateRecommendationDetail :: TerminateRecommendationDetail
+ Amazonka.CostExplorer.Types: newTotalImpactFilter :: NumericOperator -> Double -> TotalImpactFilter
+ Amazonka.CostExplorer.Types: newUpdateCostAllocationTagsStatusError :: UpdateCostAllocationTagsStatusError
+ Amazonka.CostExplorer.Types: newUtilizationByTime :: UtilizationByTime
+ Amazonka.CostExplorer.Types: newtype AccountScope
+ Amazonka.CostExplorer.Types: newtype AnomalyFeedbackType
+ Amazonka.CostExplorer.Types: newtype AnomalySubscriptionFrequency
+ Amazonka.CostExplorer.Types: newtype Context
+ Amazonka.CostExplorer.Types: newtype CostAllocationTagStatus
+ Amazonka.CostExplorer.Types: newtype CostAllocationTagType
+ Amazonka.CostExplorer.Types: newtype CostCategoryInheritedValueDimensionName
+ Amazonka.CostExplorer.Types: newtype CostCategoryRuleType
+ Amazonka.CostExplorer.Types: newtype CostCategoryRuleVersion
+ Amazonka.CostExplorer.Types: newtype CostCategorySplitChargeMethod
+ Amazonka.CostExplorer.Types: newtype CostCategorySplitChargeRuleParameterType
+ Amazonka.CostExplorer.Types: newtype CostCategoryStatus
+ Amazonka.CostExplorer.Types: newtype CostCategoryStatusComponent
+ Amazonka.CostExplorer.Types: newtype Dimension
+ Amazonka.CostExplorer.Types: newtype FindingReasonCode
+ Amazonka.CostExplorer.Types: newtype GenerationStatus
+ Amazonka.CostExplorer.Types: newtype Granularity
+ Amazonka.CostExplorer.Types: newtype GroupDefinitionType
+ Amazonka.CostExplorer.Types: newtype LookbackPeriodInDays
+ Amazonka.CostExplorer.Types: newtype MatchOption
+ Amazonka.CostExplorer.Types: newtype Metric
+ Amazonka.CostExplorer.Types: newtype MonitorDimension
+ Amazonka.CostExplorer.Types: newtype MonitorType
+ Amazonka.CostExplorer.Types: newtype NumericOperator
+ Amazonka.CostExplorer.Types: newtype OfferingClass
+ Amazonka.CostExplorer.Types: newtype PaymentOption
+ Amazonka.CostExplorer.Types: newtype PlatformDifference
+ Amazonka.CostExplorer.Types: newtype RecommendationTarget
+ Amazonka.CostExplorer.Types: newtype RightsizingType
+ Amazonka.CostExplorer.Types: newtype SavingsPlansDataType
+ Amazonka.CostExplorer.Types: newtype SortOrder
+ Amazonka.CostExplorer.Types: newtype SubscriberStatus
+ Amazonka.CostExplorer.Types: newtype SubscriberType
+ Amazonka.CostExplorer.Types: newtype SupportedSavingsPlansType
+ Amazonka.CostExplorer.Types: newtype TermInYears
+ Amazonka.CostExplorer.Types: pattern AccountScope_LINKED :: AccountScope
+ Amazonka.CostExplorer.Types: pattern AccountScope_PAYER :: AccountScope
+ Amazonka.CostExplorer.Types: pattern AnomalyFeedbackType_NO :: AnomalyFeedbackType
+ Amazonka.CostExplorer.Types: pattern AnomalyFeedbackType_PLANNED_ACTIVITY :: AnomalyFeedbackType
+ Amazonka.CostExplorer.Types: pattern AnomalyFeedbackType_YES :: AnomalyFeedbackType
+ Amazonka.CostExplorer.Types: pattern AnomalySubscriptionFrequency_DAILY :: AnomalySubscriptionFrequency
+ Amazonka.CostExplorer.Types: pattern AnomalySubscriptionFrequency_IMMEDIATE :: AnomalySubscriptionFrequency
+ Amazonka.CostExplorer.Types: pattern AnomalySubscriptionFrequency_WEEKLY :: AnomalySubscriptionFrequency
+ Amazonka.CostExplorer.Types: pattern Context_COST_AND_USAGE :: Context
+ Amazonka.CostExplorer.Types: pattern Context_RESERVATIONS :: Context
+ Amazonka.CostExplorer.Types: pattern Context_SAVINGS_PLANS :: Context
+ Amazonka.CostExplorer.Types: pattern CostAllocationTagStatus_Active :: CostAllocationTagStatus
+ Amazonka.CostExplorer.Types: pattern CostAllocationTagStatus_Inactive :: CostAllocationTagStatus
+ Amazonka.CostExplorer.Types: pattern CostAllocationTagType_AWSGenerated :: CostAllocationTagType
+ Amazonka.CostExplorer.Types: pattern CostAllocationTagType_UserDefined :: CostAllocationTagType
+ Amazonka.CostExplorer.Types: pattern CostCategoryInheritedValueDimensionName_LINKED_ACCOUNT_NAME :: CostCategoryInheritedValueDimensionName
+ Amazonka.CostExplorer.Types: pattern CostCategoryInheritedValueDimensionName_TAG :: CostCategoryInheritedValueDimensionName
+ Amazonka.CostExplorer.Types: pattern CostCategoryRuleType_INHERITED_VALUE :: CostCategoryRuleType
+ Amazonka.CostExplorer.Types: pattern CostCategoryRuleType_REGULAR :: CostCategoryRuleType
+ Amazonka.CostExplorer.Types: pattern CostCategoryRuleVersion_CostCategoryExpression_v1 :: CostCategoryRuleVersion
+ Amazonka.CostExplorer.Types: pattern CostCategorySplitChargeMethod_EVEN :: CostCategorySplitChargeMethod
+ Amazonka.CostExplorer.Types: pattern CostCategorySplitChargeMethod_FIXED :: CostCategorySplitChargeMethod
+ Amazonka.CostExplorer.Types: pattern CostCategorySplitChargeMethod_PROPORTIONAL :: CostCategorySplitChargeMethod
+ Amazonka.CostExplorer.Types: pattern CostCategorySplitChargeRuleParameterType_ALLOCATION_PERCENTAGES :: CostCategorySplitChargeRuleParameterType
+ Amazonka.CostExplorer.Types: pattern CostCategoryStatusComponent_COST_EXPLORER :: CostCategoryStatusComponent
+ Amazonka.CostExplorer.Types: pattern CostCategoryStatus_APPLIED :: CostCategoryStatus
+ Amazonka.CostExplorer.Types: pattern CostCategoryStatus_PROCESSING :: CostCategoryStatus
+ Amazonka.CostExplorer.Types: pattern Dimension_AGREEMENT_END_DATE_TIME_AFTER :: Dimension
+ Amazonka.CostExplorer.Types: pattern Dimension_AGREEMENT_END_DATE_TIME_BEFORE :: Dimension
+ Amazonka.CostExplorer.Types: pattern Dimension_ANOMALY_TOTAL_IMPACT_ABSOLUTE :: Dimension
+ Amazonka.CostExplorer.Types: pattern Dimension_ANOMALY_TOTAL_IMPACT_PERCENTAGE :: Dimension
+ Amazonka.CostExplorer.Types: pattern Dimension_AZ :: Dimension
+ Amazonka.CostExplorer.Types: pattern Dimension_BILLING_ENTITY :: Dimension
+ Amazonka.CostExplorer.Types: pattern Dimension_CACHE_ENGINE :: Dimension
+ Amazonka.CostExplorer.Types: pattern Dimension_DATABASE_ENGINE :: Dimension
+ Amazonka.CostExplorer.Types: pattern Dimension_DEPLOYMENT_OPTION :: Dimension
+ Amazonka.CostExplorer.Types: pattern Dimension_INSTANCE_TYPE :: Dimension
+ Amazonka.CostExplorer.Types: pattern Dimension_INSTANCE_TYPE_FAMILY :: Dimension
+ Amazonka.CostExplorer.Types: pattern Dimension_INVOICING_ENTITY :: Dimension
+ Amazonka.CostExplorer.Types: pattern Dimension_LEGAL_ENTITY_NAME :: Dimension
+ Amazonka.CostExplorer.Types: pattern Dimension_LINKED_ACCOUNT :: Dimension
+ Amazonka.CostExplorer.Types: pattern Dimension_LINKED_ACCOUNT_NAME :: Dimension
+ Amazonka.CostExplorer.Types: pattern Dimension_OPERATING_SYSTEM :: Dimension
+ Amazonka.CostExplorer.Types: pattern Dimension_OPERATION :: Dimension
+ Amazonka.CostExplorer.Types: pattern Dimension_PAYMENT_OPTION :: Dimension
+ Amazonka.CostExplorer.Types: pattern Dimension_PLATFORM :: Dimension
+ Amazonka.CostExplorer.Types: pattern Dimension_PURCHASE_TYPE :: Dimension
+ Amazonka.CostExplorer.Types: pattern Dimension_RECORD_TYPE :: Dimension
+ Amazonka.CostExplorer.Types: pattern Dimension_REGION :: Dimension
+ Amazonka.CostExplorer.Types: pattern Dimension_RESERVATION_ID :: Dimension
+ Amazonka.CostExplorer.Types: pattern Dimension_RESOURCE_ID :: Dimension
+ Amazonka.CostExplorer.Types: pattern Dimension_RIGHTSIZING_TYPE :: Dimension
+ Amazonka.CostExplorer.Types: pattern Dimension_SAVINGS_PLANS_TYPE :: Dimension
+ Amazonka.CostExplorer.Types: pattern Dimension_SAVINGS_PLAN_ARN :: Dimension
+ Amazonka.CostExplorer.Types: pattern Dimension_SCOPE :: Dimension
+ Amazonka.CostExplorer.Types: pattern Dimension_SERVICE :: Dimension
+ Amazonka.CostExplorer.Types: pattern Dimension_SERVICE_CODE :: Dimension
+ Amazonka.CostExplorer.Types: pattern Dimension_SUBSCRIPTION_ID :: Dimension
+ Amazonka.CostExplorer.Types: pattern Dimension_TENANCY :: Dimension
+ Amazonka.CostExplorer.Types: pattern Dimension_USAGE_TYPE :: Dimension
+ Amazonka.CostExplorer.Types: pattern Dimension_USAGE_TYPE_GROUP :: Dimension
+ Amazonka.CostExplorer.Types: pattern FindingReasonCode_CPU_OVER_PROVISIONED :: FindingReasonCode
+ Amazonka.CostExplorer.Types: pattern FindingReasonCode_CPU_UNDER_PROVISIONED :: FindingReasonCode
+ Amazonka.CostExplorer.Types: pattern FindingReasonCode_DISK_IOPS_OVER_PROVISIONED :: FindingReasonCode
+ Amazonka.CostExplorer.Types: pattern FindingReasonCode_DISK_IOPS_UNDER_PROVISIONED :: FindingReasonCode
+ Amazonka.CostExplorer.Types: pattern FindingReasonCode_DISK_THROUGHPUT_OVER_PROVISIONED :: FindingReasonCode
+ Amazonka.CostExplorer.Types: pattern FindingReasonCode_DISK_THROUGHPUT_UNDER_PROVISIONED :: FindingReasonCode
+ Amazonka.CostExplorer.Types: pattern FindingReasonCode_EBS_IOPS_OVER_PROVISIONED :: FindingReasonCode
+ Amazonka.CostExplorer.Types: pattern FindingReasonCode_EBS_IOPS_UNDER_PROVISIONED :: FindingReasonCode
+ Amazonka.CostExplorer.Types: pattern FindingReasonCode_EBS_THROUGHPUT_OVER_PROVISIONED :: FindingReasonCode
+ Amazonka.CostExplorer.Types: pattern FindingReasonCode_EBS_THROUGHPUT_UNDER_PROVISIONED :: FindingReasonCode
+ Amazonka.CostExplorer.Types: pattern FindingReasonCode_MEMORY_OVER_PROVISIONED :: FindingReasonCode
+ Amazonka.CostExplorer.Types: pattern FindingReasonCode_MEMORY_UNDER_PROVISIONED :: FindingReasonCode
+ Amazonka.CostExplorer.Types: pattern FindingReasonCode_NETWORK_BANDWIDTH_OVER_PROVISIONED :: FindingReasonCode
+ Amazonka.CostExplorer.Types: pattern FindingReasonCode_NETWORK_BANDWIDTH_UNDER_PROVISIONED :: FindingReasonCode
+ Amazonka.CostExplorer.Types: pattern FindingReasonCode_NETWORK_PPS_OVER_PROVISIONED :: FindingReasonCode
+ Amazonka.CostExplorer.Types: pattern FindingReasonCode_NETWORK_PPS_UNDER_PROVISIONED :: FindingReasonCode
+ Amazonka.CostExplorer.Types: pattern GenerationStatus_FAILED :: GenerationStatus
+ Amazonka.CostExplorer.Types: pattern GenerationStatus_PROCESSING :: GenerationStatus
+ Amazonka.CostExplorer.Types: pattern GenerationStatus_SUCCEEDED :: GenerationStatus
+ Amazonka.CostExplorer.Types: pattern Granularity_DAILY :: Granularity
+ Amazonka.CostExplorer.Types: pattern Granularity_HOURLY :: Granularity
+ Amazonka.CostExplorer.Types: pattern Granularity_MONTHLY :: Granularity
+ Amazonka.CostExplorer.Types: pattern GroupDefinitionType_COST_CATEGORY :: GroupDefinitionType
+ Amazonka.CostExplorer.Types: pattern GroupDefinitionType_DIMENSION :: GroupDefinitionType
+ Amazonka.CostExplorer.Types: pattern GroupDefinitionType_TAG :: GroupDefinitionType
+ Amazonka.CostExplorer.Types: pattern LookbackPeriodInDays_SEVEN_DAYS :: LookbackPeriodInDays
+ Amazonka.CostExplorer.Types: pattern LookbackPeriodInDays_SIXTY_DAYS :: LookbackPeriodInDays
+ Amazonka.CostExplorer.Types: pattern LookbackPeriodInDays_THIRTY_DAYS :: LookbackPeriodInDays
+ Amazonka.CostExplorer.Types: pattern MatchOption_ABSENT :: MatchOption
+ Amazonka.CostExplorer.Types: pattern MatchOption_CASE_INSENSITIVE :: MatchOption
+ Amazonka.CostExplorer.Types: pattern MatchOption_CASE_SENSITIVE :: MatchOption
+ Amazonka.CostExplorer.Types: pattern MatchOption_CONTAINS :: MatchOption
+ Amazonka.CostExplorer.Types: pattern MatchOption_ENDS_WITH :: MatchOption
+ Amazonka.CostExplorer.Types: pattern MatchOption_EQUALS :: MatchOption
+ Amazonka.CostExplorer.Types: pattern MatchOption_GREATER_THAN_OR_EQUAL :: MatchOption
+ Amazonka.CostExplorer.Types: pattern MatchOption_STARTS_WITH :: MatchOption
+ Amazonka.CostExplorer.Types: pattern Metric_AMORTIZED_COST :: Metric
+ Amazonka.CostExplorer.Types: pattern Metric_BLENDED_COST :: Metric
+ Amazonka.CostExplorer.Types: pattern Metric_NET_AMORTIZED_COST :: Metric
+ Amazonka.CostExplorer.Types: pattern Metric_NET_UNBLENDED_COST :: Metric
+ Amazonka.CostExplorer.Types: pattern Metric_NORMALIZED_USAGE_AMOUNT :: Metric
+ Amazonka.CostExplorer.Types: pattern Metric_UNBLENDED_COST :: Metric
+ Amazonka.CostExplorer.Types: pattern Metric_USAGE_QUANTITY :: Metric
+ Amazonka.CostExplorer.Types: pattern MonitorDimension_SERVICE :: MonitorDimension
+ Amazonka.CostExplorer.Types: pattern MonitorType_CUSTOM :: MonitorType
+ Amazonka.CostExplorer.Types: pattern MonitorType_DIMENSIONAL :: MonitorType
+ Amazonka.CostExplorer.Types: pattern NumericOperator_BETWEEN :: NumericOperator
+ Amazonka.CostExplorer.Types: pattern NumericOperator_EQUAL :: NumericOperator
+ Amazonka.CostExplorer.Types: pattern NumericOperator_GREATER_THAN :: NumericOperator
+ Amazonka.CostExplorer.Types: pattern NumericOperator_GREATER_THAN_OR_EQUAL :: NumericOperator
+ Amazonka.CostExplorer.Types: pattern NumericOperator_LESS_THAN :: NumericOperator
+ Amazonka.CostExplorer.Types: pattern NumericOperator_LESS_THAN_OR_EQUAL :: NumericOperator
+ Amazonka.CostExplorer.Types: pattern OfferingClass_CONVERTIBLE :: OfferingClass
+ Amazonka.CostExplorer.Types: pattern OfferingClass_STANDARD :: OfferingClass
+ Amazonka.CostExplorer.Types: pattern PaymentOption_ALL_UPFRONT :: PaymentOption
+ Amazonka.CostExplorer.Types: pattern PaymentOption_HEAVY_UTILIZATION :: PaymentOption
+ Amazonka.CostExplorer.Types: pattern PaymentOption_LIGHT_UTILIZATION :: PaymentOption
+ Amazonka.CostExplorer.Types: pattern PaymentOption_MEDIUM_UTILIZATION :: PaymentOption
+ Amazonka.CostExplorer.Types: pattern PaymentOption_NO_UPFRONT :: PaymentOption
+ Amazonka.CostExplorer.Types: pattern PaymentOption_PARTIAL_UPFRONT :: PaymentOption
+ Amazonka.CostExplorer.Types: pattern PlatformDifference_HYPERVISOR :: PlatformDifference
+ Amazonka.CostExplorer.Types: pattern PlatformDifference_INSTANCE_STORE_AVAILABILITY :: PlatformDifference
+ Amazonka.CostExplorer.Types: pattern PlatformDifference_NETWORK_INTERFACE :: PlatformDifference
+ Amazonka.CostExplorer.Types: pattern PlatformDifference_STORAGE_INTERFACE :: PlatformDifference
+ Amazonka.CostExplorer.Types: pattern PlatformDifference_VIRTUALIZATION_TYPE :: PlatformDifference
+ Amazonka.CostExplorer.Types: pattern RecommendationTarget_CROSS_INSTANCE_FAMILY :: RecommendationTarget
+ Amazonka.CostExplorer.Types: pattern RecommendationTarget_SAME_INSTANCE_FAMILY :: RecommendationTarget
+ Amazonka.CostExplorer.Types: pattern RightsizingType_MODIFY :: RightsizingType
+ Amazonka.CostExplorer.Types: pattern RightsizingType_TERMINATE :: RightsizingType
+ Amazonka.CostExplorer.Types: pattern SavingsPlansDataType_AMORTIZED_COMMITMENT :: SavingsPlansDataType
+ Amazonka.CostExplorer.Types: pattern SavingsPlansDataType_ATTRIBUTES :: SavingsPlansDataType
+ Amazonka.CostExplorer.Types: pattern SavingsPlansDataType_SAVINGS :: SavingsPlansDataType
+ Amazonka.CostExplorer.Types: pattern SavingsPlansDataType_UTILIZATION :: SavingsPlansDataType
+ Amazonka.CostExplorer.Types: pattern SortOrder_ASCENDING :: SortOrder
+ Amazonka.CostExplorer.Types: pattern SortOrder_DESCENDING :: SortOrder
+ Amazonka.CostExplorer.Types: pattern SubscriberStatus_CONFIRMED :: SubscriberStatus
+ Amazonka.CostExplorer.Types: pattern SubscriberStatus_DECLINED :: SubscriberStatus
+ Amazonka.CostExplorer.Types: pattern SubscriberType_EMAIL :: SubscriberType
+ Amazonka.CostExplorer.Types: pattern SubscriberType_SNS :: SubscriberType
+ Amazonka.CostExplorer.Types: pattern SupportedSavingsPlansType_COMPUTE_SP :: SupportedSavingsPlansType
+ Amazonka.CostExplorer.Types: pattern SupportedSavingsPlansType_EC2_INSTANCE_SP :: SupportedSavingsPlansType
+ Amazonka.CostExplorer.Types: pattern SupportedSavingsPlansType_SAGEMAKER_SP :: SupportedSavingsPlansType
+ Amazonka.CostExplorer.Types: pattern TermInYears_ONE_YEAR :: TermInYears
+ Amazonka.CostExplorer.Types: pattern TermInYears_THREE_YEARS :: TermInYears
+ Amazonka.CostExplorer.Types: rDSInstanceDetails_currentGeneration :: Lens' RDSInstanceDetails (Maybe Bool)
+ Amazonka.CostExplorer.Types: rDSInstanceDetails_databaseEdition :: Lens' RDSInstanceDetails (Maybe Text)
+ Amazonka.CostExplorer.Types: rDSInstanceDetails_databaseEngine :: Lens' RDSInstanceDetails (Maybe Text)
+ Amazonka.CostExplorer.Types: rDSInstanceDetails_deploymentOption :: Lens' RDSInstanceDetails (Maybe Text)
+ Amazonka.CostExplorer.Types: rDSInstanceDetails_family :: Lens' RDSInstanceDetails (Maybe Text)
+ Amazonka.CostExplorer.Types: rDSInstanceDetails_instanceType :: Lens' RDSInstanceDetails (Maybe Text)
+ Amazonka.CostExplorer.Types: rDSInstanceDetails_licenseModel :: Lens' RDSInstanceDetails (Maybe Text)
+ Amazonka.CostExplorer.Types: rDSInstanceDetails_region :: Lens' RDSInstanceDetails (Maybe Text)
+ Amazonka.CostExplorer.Types: rDSInstanceDetails_sizeFlexEligible :: Lens' RDSInstanceDetails (Maybe Bool)
+ Amazonka.CostExplorer.Types: redshiftInstanceDetails_currentGeneration :: Lens' RedshiftInstanceDetails (Maybe Bool)
+ Amazonka.CostExplorer.Types: redshiftInstanceDetails_family :: Lens' RedshiftInstanceDetails (Maybe Text)
+ Amazonka.CostExplorer.Types: redshiftInstanceDetails_nodeType :: Lens' RedshiftInstanceDetails (Maybe Text)
+ Amazonka.CostExplorer.Types: redshiftInstanceDetails_region :: Lens' RedshiftInstanceDetails (Maybe Text)
+ Amazonka.CostExplorer.Types: redshiftInstanceDetails_sizeFlexEligible :: Lens' RedshiftInstanceDetails (Maybe Bool)
+ Amazonka.CostExplorer.Types: reservationAggregates_amortizedRecurringFee :: Lens' ReservationAggregates (Maybe Text)
+ Amazonka.CostExplorer.Types: reservationAggregates_amortizedUpfrontFee :: Lens' ReservationAggregates (Maybe Text)
+ Amazonka.CostExplorer.Types: reservationAggregates_netRISavings :: Lens' ReservationAggregates (Maybe Text)
+ Amazonka.CostExplorer.Types: reservationAggregates_onDemandCostOfRIHoursUsed :: Lens' ReservationAggregates (Maybe Text)
+ Amazonka.CostExplorer.Types: reservationAggregates_purchasedHours :: Lens' ReservationAggregates (Maybe Text)
+ Amazonka.CostExplorer.Types: reservationAggregates_purchasedUnits :: Lens' ReservationAggregates (Maybe Text)
+ Amazonka.CostExplorer.Types: reservationAggregates_rICostForUnusedHours :: Lens' ReservationAggregates (Maybe Text)
+ Amazonka.CostExplorer.Types: reservationAggregates_realizedSavings :: Lens' ReservationAggregates (Maybe Text)
+ Amazonka.CostExplorer.Types: reservationAggregates_totalActualHours :: Lens' ReservationAggregates (Maybe Text)
+ Amazonka.CostExplorer.Types: reservationAggregates_totalActualUnits :: Lens' ReservationAggregates (Maybe Text)
+ Amazonka.CostExplorer.Types: reservationAggregates_totalAmortizedFee :: Lens' ReservationAggregates (Maybe Text)
+ Amazonka.CostExplorer.Types: reservationAggregates_totalPotentialRISavings :: Lens' ReservationAggregates (Maybe Text)
+ Amazonka.CostExplorer.Types: reservationAggregates_unrealizedSavings :: Lens' ReservationAggregates (Maybe Text)
+ Amazonka.CostExplorer.Types: reservationAggregates_unusedHours :: Lens' ReservationAggregates (Maybe Text)
+ Amazonka.CostExplorer.Types: reservationAggregates_unusedUnits :: Lens' ReservationAggregates (Maybe Text)
+ Amazonka.CostExplorer.Types: reservationAggregates_utilizationPercentage :: Lens' ReservationAggregates (Maybe Text)
+ Amazonka.CostExplorer.Types: reservationAggregates_utilizationPercentageInUnits :: Lens' ReservationAggregates (Maybe Text)
+ Amazonka.CostExplorer.Types: reservationCoverageGroup_attributes :: Lens' ReservationCoverageGroup (Maybe (HashMap Text Text))
+ Amazonka.CostExplorer.Types: reservationCoverageGroup_coverage :: Lens' ReservationCoverageGroup (Maybe Coverage)
+ Amazonka.CostExplorer.Types: reservationPurchaseRecommendationDetail_accountId :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Types: reservationPurchaseRecommendationDetail_averageNormalizedUnitsUsedPerHour :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Types: reservationPurchaseRecommendationDetail_averageNumberOfInstancesUsedPerHour :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Types: reservationPurchaseRecommendationDetail_averageUtilization :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Types: reservationPurchaseRecommendationDetail_currencyCode :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Types: reservationPurchaseRecommendationDetail_estimatedBreakEvenInMonths :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Types: reservationPurchaseRecommendationDetail_estimatedMonthlyOnDemandCost :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Types: reservationPurchaseRecommendationDetail_estimatedMonthlySavingsAmount :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Types: reservationPurchaseRecommendationDetail_estimatedMonthlySavingsPercentage :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Types: reservationPurchaseRecommendationDetail_estimatedReservationCostForLookbackPeriod :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Types: reservationPurchaseRecommendationDetail_instanceDetails :: Lens' ReservationPurchaseRecommendationDetail (Maybe InstanceDetails)
+ Amazonka.CostExplorer.Types: reservationPurchaseRecommendationDetail_maximumNormalizedUnitsUsedPerHour :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Types: reservationPurchaseRecommendationDetail_maximumNumberOfInstancesUsedPerHour :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Types: reservationPurchaseRecommendationDetail_minimumNormalizedUnitsUsedPerHour :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Types: reservationPurchaseRecommendationDetail_minimumNumberOfInstancesUsedPerHour :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Types: reservationPurchaseRecommendationDetail_recommendedNormalizedUnitsToPurchase :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Types: reservationPurchaseRecommendationDetail_recommendedNumberOfInstancesToPurchase :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Types: reservationPurchaseRecommendationDetail_recurringStandardMonthlyCost :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Types: reservationPurchaseRecommendationDetail_upfrontCost :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Types: reservationPurchaseRecommendationMetadata_generationTimestamp :: Lens' ReservationPurchaseRecommendationMetadata (Maybe Text)
+ Amazonka.CostExplorer.Types: reservationPurchaseRecommendationMetadata_recommendationId :: Lens' ReservationPurchaseRecommendationMetadata (Maybe Text)
+ Amazonka.CostExplorer.Types: reservationPurchaseRecommendationSummary_currencyCode :: Lens' ReservationPurchaseRecommendationSummary (Maybe Text)
+ Amazonka.CostExplorer.Types: reservationPurchaseRecommendationSummary_totalEstimatedMonthlySavingsAmount :: Lens' ReservationPurchaseRecommendationSummary (Maybe Text)
+ Amazonka.CostExplorer.Types: reservationPurchaseRecommendationSummary_totalEstimatedMonthlySavingsPercentage :: Lens' ReservationPurchaseRecommendationSummary (Maybe Text)
+ Amazonka.CostExplorer.Types: reservationPurchaseRecommendation_accountScope :: Lens' ReservationPurchaseRecommendation (Maybe AccountScope)
+ Amazonka.CostExplorer.Types: reservationPurchaseRecommendation_lookbackPeriodInDays :: Lens' ReservationPurchaseRecommendation (Maybe LookbackPeriodInDays)
+ Amazonka.CostExplorer.Types: reservationPurchaseRecommendation_paymentOption :: Lens' ReservationPurchaseRecommendation (Maybe PaymentOption)
+ Amazonka.CostExplorer.Types: reservationPurchaseRecommendation_recommendationDetails :: Lens' ReservationPurchaseRecommendation (Maybe [ReservationPurchaseRecommendationDetail])
+ Amazonka.CostExplorer.Types: reservationPurchaseRecommendation_recommendationSummary :: Lens' ReservationPurchaseRecommendation (Maybe ReservationPurchaseRecommendationSummary)
+ Amazonka.CostExplorer.Types: reservationPurchaseRecommendation_serviceSpecification :: Lens' ReservationPurchaseRecommendation (Maybe ServiceSpecification)
+ Amazonka.CostExplorer.Types: reservationPurchaseRecommendation_termInYears :: Lens' ReservationPurchaseRecommendation (Maybe TermInYears)
+ Amazonka.CostExplorer.Types: reservationUtilizationGroup_attributes :: Lens' ReservationUtilizationGroup (Maybe (HashMap Text Text))
+ Amazonka.CostExplorer.Types: reservationUtilizationGroup_key :: Lens' ReservationUtilizationGroup (Maybe Text)
+ Amazonka.CostExplorer.Types: reservationUtilizationGroup_utilization :: Lens' ReservationUtilizationGroup (Maybe ReservationAggregates)
+ Amazonka.CostExplorer.Types: reservationUtilizationGroup_value :: Lens' ReservationUtilizationGroup (Maybe Text)
+ Amazonka.CostExplorer.Types: resourceDetails_eC2ResourceDetails :: Lens' ResourceDetails (Maybe EC2ResourceDetails)
+ Amazonka.CostExplorer.Types: resourceTag_key :: Lens' ResourceTag Text
+ Amazonka.CostExplorer.Types: resourceTag_value :: Lens' ResourceTag Text
+ Amazonka.CostExplorer.Types: resourceUtilization_eC2ResourceUtilization :: Lens' ResourceUtilization (Maybe EC2ResourceUtilization)
+ Amazonka.CostExplorer.Types: resultByTime_estimated :: Lens' ResultByTime (Maybe Bool)
+ Amazonka.CostExplorer.Types: resultByTime_groups :: Lens' ResultByTime (Maybe [Group])
+ Amazonka.CostExplorer.Types: resultByTime_timePeriod :: Lens' ResultByTime (Maybe DateInterval)
+ Amazonka.CostExplorer.Types: resultByTime_total :: Lens' ResultByTime (Maybe (HashMap Text MetricValue))
+ Amazonka.CostExplorer.Types: rightsizingRecommendationConfiguration_benefitsConsidered :: Lens' RightsizingRecommendationConfiguration Bool
+ Amazonka.CostExplorer.Types: rightsizingRecommendationConfiguration_recommendationTarget :: Lens' RightsizingRecommendationConfiguration RecommendationTarget
+ Amazonka.CostExplorer.Types: rightsizingRecommendationMetadata_additionalMetadata :: Lens' RightsizingRecommendationMetadata (Maybe Text)
+ Amazonka.CostExplorer.Types: rightsizingRecommendationMetadata_generationTimestamp :: Lens' RightsizingRecommendationMetadata (Maybe Text)
+ Amazonka.CostExplorer.Types: rightsizingRecommendationMetadata_lookbackPeriodInDays :: Lens' RightsizingRecommendationMetadata (Maybe LookbackPeriodInDays)
+ Amazonka.CostExplorer.Types: rightsizingRecommendationMetadata_recommendationId :: Lens' RightsizingRecommendationMetadata (Maybe Text)
+ Amazonka.CostExplorer.Types: rightsizingRecommendationSummary_estimatedTotalMonthlySavingsAmount :: Lens' RightsizingRecommendationSummary (Maybe Text)
+ Amazonka.CostExplorer.Types: rightsizingRecommendationSummary_savingsCurrencyCode :: Lens' RightsizingRecommendationSummary (Maybe Text)
+ Amazonka.CostExplorer.Types: rightsizingRecommendationSummary_savingsPercentage :: Lens' RightsizingRecommendationSummary (Maybe Text)
+ Amazonka.CostExplorer.Types: rightsizingRecommendationSummary_totalRecommendationCount :: Lens' RightsizingRecommendationSummary (Maybe Text)
+ Amazonka.CostExplorer.Types: rightsizingRecommendation_accountId :: Lens' RightsizingRecommendation (Maybe Text)
+ Amazonka.CostExplorer.Types: rightsizingRecommendation_currentInstance :: Lens' RightsizingRecommendation (Maybe CurrentInstance)
+ Amazonka.CostExplorer.Types: rightsizingRecommendation_findingReasonCodes :: Lens' RightsizingRecommendation (Maybe [FindingReasonCode])
+ Amazonka.CostExplorer.Types: rightsizingRecommendation_modifyRecommendationDetail :: Lens' RightsizingRecommendation (Maybe ModifyRecommendationDetail)
+ Amazonka.CostExplorer.Types: rightsizingRecommendation_rightsizingType :: Lens' RightsizingRecommendation (Maybe RightsizingType)
+ Amazonka.CostExplorer.Types: rightsizingRecommendation_terminateRecommendationDetail :: Lens' RightsizingRecommendation (Maybe TerminateRecommendationDetail)
+ Amazonka.CostExplorer.Types: rootCause_linkedAccount :: Lens' RootCause (Maybe Text)
+ Amazonka.CostExplorer.Types: rootCause_linkedAccountName :: Lens' RootCause (Maybe Text)
+ Amazonka.CostExplorer.Types: rootCause_region :: Lens' RootCause (Maybe Text)
+ Amazonka.CostExplorer.Types: rootCause_service :: Lens' RootCause (Maybe Text)
+ Amazonka.CostExplorer.Types: rootCause_usageType :: Lens' RootCause (Maybe Text)
+ Amazonka.CostExplorer.Types: savingsPlansAmortizedCommitment_amortizedRecurringCommitment :: Lens' SavingsPlansAmortizedCommitment (Maybe Text)
+ Amazonka.CostExplorer.Types: savingsPlansAmortizedCommitment_amortizedUpfrontCommitment :: Lens' SavingsPlansAmortizedCommitment (Maybe Text)
+ Amazonka.CostExplorer.Types: savingsPlansAmortizedCommitment_totalAmortizedCommitment :: Lens' SavingsPlansAmortizedCommitment (Maybe Text)
+ Amazonka.CostExplorer.Types: savingsPlansCoverageData_coveragePercentage :: Lens' SavingsPlansCoverageData (Maybe Text)
+ Amazonka.CostExplorer.Types: savingsPlansCoverageData_onDemandCost :: Lens' SavingsPlansCoverageData (Maybe Text)
+ Amazonka.CostExplorer.Types: savingsPlansCoverageData_spendCoveredBySavingsPlans :: Lens' SavingsPlansCoverageData (Maybe Text)
+ Amazonka.CostExplorer.Types: savingsPlansCoverageData_totalCost :: Lens' SavingsPlansCoverageData (Maybe Text)
+ Amazonka.CostExplorer.Types: savingsPlansCoverage_attributes :: Lens' SavingsPlansCoverage (Maybe (HashMap Text Text))
+ Amazonka.CostExplorer.Types: savingsPlansCoverage_coverage :: Lens' SavingsPlansCoverage (Maybe SavingsPlansCoverageData)
+ Amazonka.CostExplorer.Types: savingsPlansCoverage_timePeriod :: Lens' SavingsPlansCoverage (Maybe DateInterval)
+ Amazonka.CostExplorer.Types: savingsPlansDetails_instanceFamily :: Lens' SavingsPlansDetails (Maybe Text)
+ Amazonka.CostExplorer.Types: savingsPlansDetails_offeringId :: Lens' SavingsPlansDetails (Maybe Text)
+ Amazonka.CostExplorer.Types: savingsPlansDetails_region :: Lens' SavingsPlansDetails (Maybe Text)
+ Amazonka.CostExplorer.Types: savingsPlansPurchaseRecommendationDetail_accountId :: Lens' SavingsPlansPurchaseRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Types: savingsPlansPurchaseRecommendationDetail_currencyCode :: Lens' SavingsPlansPurchaseRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Types: savingsPlansPurchaseRecommendationDetail_currentAverageHourlyOnDemandSpend :: Lens' SavingsPlansPurchaseRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Types: savingsPlansPurchaseRecommendationDetail_currentMaximumHourlyOnDemandSpend :: Lens' SavingsPlansPurchaseRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Types: savingsPlansPurchaseRecommendationDetail_currentMinimumHourlyOnDemandSpend :: Lens' SavingsPlansPurchaseRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Types: savingsPlansPurchaseRecommendationDetail_estimatedAverageUtilization :: Lens' SavingsPlansPurchaseRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Types: savingsPlansPurchaseRecommendationDetail_estimatedMonthlySavingsAmount :: Lens' SavingsPlansPurchaseRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Types: savingsPlansPurchaseRecommendationDetail_estimatedOnDemandCost :: Lens' SavingsPlansPurchaseRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Types: savingsPlansPurchaseRecommendationDetail_estimatedOnDemandCostWithCurrentCommitment :: Lens' SavingsPlansPurchaseRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Types: savingsPlansPurchaseRecommendationDetail_estimatedROI :: Lens' SavingsPlansPurchaseRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Types: savingsPlansPurchaseRecommendationDetail_estimatedSPCost :: Lens' SavingsPlansPurchaseRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Types: savingsPlansPurchaseRecommendationDetail_estimatedSavingsAmount :: Lens' SavingsPlansPurchaseRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Types: savingsPlansPurchaseRecommendationDetail_estimatedSavingsPercentage :: Lens' SavingsPlansPurchaseRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Types: savingsPlansPurchaseRecommendationDetail_hourlyCommitmentToPurchase :: Lens' SavingsPlansPurchaseRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Types: savingsPlansPurchaseRecommendationDetail_savingsPlansDetails :: Lens' SavingsPlansPurchaseRecommendationDetail (Maybe SavingsPlansDetails)
+ Amazonka.CostExplorer.Types: savingsPlansPurchaseRecommendationDetail_upfrontCost :: Lens' SavingsPlansPurchaseRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Types: savingsPlansPurchaseRecommendationMetadata_additionalMetadata :: Lens' SavingsPlansPurchaseRecommendationMetadata (Maybe Text)
+ Amazonka.CostExplorer.Types: savingsPlansPurchaseRecommendationMetadata_generationTimestamp :: Lens' SavingsPlansPurchaseRecommendationMetadata (Maybe Text)
+ Amazonka.CostExplorer.Types: savingsPlansPurchaseRecommendationMetadata_recommendationId :: Lens' SavingsPlansPurchaseRecommendationMetadata (Maybe Text)
+ Amazonka.CostExplorer.Types: savingsPlansPurchaseRecommendationSummary_currencyCode :: Lens' SavingsPlansPurchaseRecommendationSummary (Maybe Text)
+ Amazonka.CostExplorer.Types: savingsPlansPurchaseRecommendationSummary_currentOnDemandSpend :: Lens' SavingsPlansPurchaseRecommendationSummary (Maybe Text)
+ Amazonka.CostExplorer.Types: savingsPlansPurchaseRecommendationSummary_dailyCommitmentToPurchase :: Lens' SavingsPlansPurchaseRecommendationSummary (Maybe Text)
+ Amazonka.CostExplorer.Types: savingsPlansPurchaseRecommendationSummary_estimatedMonthlySavingsAmount :: Lens' SavingsPlansPurchaseRecommendationSummary (Maybe Text)
+ Amazonka.CostExplorer.Types: savingsPlansPurchaseRecommendationSummary_estimatedOnDemandCostWithCurrentCommitment :: Lens' SavingsPlansPurchaseRecommendationSummary (Maybe Text)
+ Amazonka.CostExplorer.Types: savingsPlansPurchaseRecommendationSummary_estimatedROI :: Lens' SavingsPlansPurchaseRecommendationSummary (Maybe Text)
+ Amazonka.CostExplorer.Types: savingsPlansPurchaseRecommendationSummary_estimatedSavingsAmount :: Lens' SavingsPlansPurchaseRecommendationSummary (Maybe Text)
+ Amazonka.CostExplorer.Types: savingsPlansPurchaseRecommendationSummary_estimatedSavingsPercentage :: Lens' SavingsPlansPurchaseRecommendationSummary (Maybe Text)
+ Amazonka.CostExplorer.Types: savingsPlansPurchaseRecommendationSummary_estimatedTotalCost :: Lens' SavingsPlansPurchaseRecommendationSummary (Maybe Text)
+ Amazonka.CostExplorer.Types: savingsPlansPurchaseRecommendationSummary_hourlyCommitmentToPurchase :: Lens' SavingsPlansPurchaseRecommendationSummary (Maybe Text)
+ Amazonka.CostExplorer.Types: savingsPlansPurchaseRecommendationSummary_totalRecommendationCount :: Lens' SavingsPlansPurchaseRecommendationSummary (Maybe Text)
+ Amazonka.CostExplorer.Types: savingsPlansPurchaseRecommendation_accountScope :: Lens' SavingsPlansPurchaseRecommendation (Maybe AccountScope)
+ Amazonka.CostExplorer.Types: savingsPlansPurchaseRecommendation_lookbackPeriodInDays :: Lens' SavingsPlansPurchaseRecommendation (Maybe LookbackPeriodInDays)
+ Amazonka.CostExplorer.Types: savingsPlansPurchaseRecommendation_paymentOption :: Lens' SavingsPlansPurchaseRecommendation (Maybe PaymentOption)
+ Amazonka.CostExplorer.Types: savingsPlansPurchaseRecommendation_savingsPlansPurchaseRecommendationDetails :: Lens' SavingsPlansPurchaseRecommendation (Maybe [SavingsPlansPurchaseRecommendationDetail])
+ Amazonka.CostExplorer.Types: savingsPlansPurchaseRecommendation_savingsPlansPurchaseRecommendationSummary :: Lens' SavingsPlansPurchaseRecommendation (Maybe SavingsPlansPurchaseRecommendationSummary)
+ Amazonka.CostExplorer.Types: savingsPlansPurchaseRecommendation_savingsPlansType :: Lens' SavingsPlansPurchaseRecommendation (Maybe SupportedSavingsPlansType)
+ Amazonka.CostExplorer.Types: savingsPlansPurchaseRecommendation_termInYears :: Lens' SavingsPlansPurchaseRecommendation (Maybe TermInYears)
+ Amazonka.CostExplorer.Types: savingsPlansSavings_netSavings :: Lens' SavingsPlansSavings (Maybe Text)
+ Amazonka.CostExplorer.Types: savingsPlansSavings_onDemandCostEquivalent :: Lens' SavingsPlansSavings (Maybe Text)
+ Amazonka.CostExplorer.Types: savingsPlansUtilizationAggregates_amortizedCommitment :: Lens' SavingsPlansUtilizationAggregates (Maybe SavingsPlansAmortizedCommitment)
+ Amazonka.CostExplorer.Types: savingsPlansUtilizationAggregates_savings :: Lens' SavingsPlansUtilizationAggregates (Maybe SavingsPlansSavings)
+ Amazonka.CostExplorer.Types: savingsPlansUtilizationAggregates_utilization :: Lens' SavingsPlansUtilizationAggregates SavingsPlansUtilization
+ Amazonka.CostExplorer.Types: savingsPlansUtilizationByTime_amortizedCommitment :: Lens' SavingsPlansUtilizationByTime (Maybe SavingsPlansAmortizedCommitment)
+ Amazonka.CostExplorer.Types: savingsPlansUtilizationByTime_savings :: Lens' SavingsPlansUtilizationByTime (Maybe SavingsPlansSavings)
+ Amazonka.CostExplorer.Types: savingsPlansUtilizationByTime_timePeriod :: Lens' SavingsPlansUtilizationByTime DateInterval
+ Amazonka.CostExplorer.Types: savingsPlansUtilizationByTime_utilization :: Lens' SavingsPlansUtilizationByTime SavingsPlansUtilization
+ Amazonka.CostExplorer.Types: savingsPlansUtilizationDetail_amortizedCommitment :: Lens' SavingsPlansUtilizationDetail (Maybe SavingsPlansAmortizedCommitment)
+ Amazonka.CostExplorer.Types: savingsPlansUtilizationDetail_attributes :: Lens' SavingsPlansUtilizationDetail (Maybe (HashMap Text Text))
+ Amazonka.CostExplorer.Types: savingsPlansUtilizationDetail_savings :: Lens' SavingsPlansUtilizationDetail (Maybe SavingsPlansSavings)
+ Amazonka.CostExplorer.Types: savingsPlansUtilizationDetail_savingsPlanArn :: Lens' SavingsPlansUtilizationDetail (Maybe Text)
+ Amazonka.CostExplorer.Types: savingsPlansUtilizationDetail_utilization :: Lens' SavingsPlansUtilizationDetail (Maybe SavingsPlansUtilization)
+ Amazonka.CostExplorer.Types: savingsPlansUtilization_totalCommitment :: Lens' SavingsPlansUtilization (Maybe Text)
+ Amazonka.CostExplorer.Types: savingsPlansUtilization_unusedCommitment :: Lens' SavingsPlansUtilization (Maybe Text)
+ Amazonka.CostExplorer.Types: savingsPlansUtilization_usedCommitment :: Lens' SavingsPlansUtilization (Maybe Text)
+ Amazonka.CostExplorer.Types: savingsPlansUtilization_utilizationPercentage :: Lens' SavingsPlansUtilization (Maybe Text)
+ Amazonka.CostExplorer.Types: serviceSpecification_eC2Specification :: Lens' ServiceSpecification (Maybe EC2Specification)
+ Amazonka.CostExplorer.Types: sortDefinition_key :: Lens' SortDefinition Text
+ Amazonka.CostExplorer.Types: sortDefinition_sortOrder :: Lens' SortDefinition (Maybe SortOrder)
+ Amazonka.CostExplorer.Types: subscriber_address :: Lens' Subscriber (Maybe Text)
+ Amazonka.CostExplorer.Types: subscriber_status :: Lens' Subscriber (Maybe SubscriberStatus)
+ Amazonka.CostExplorer.Types: subscriber_type :: Lens' Subscriber (Maybe SubscriberType)
+ Amazonka.CostExplorer.Types: tagValues_key :: Lens' TagValues (Maybe Text)
+ Amazonka.CostExplorer.Types: tagValues_matchOptions :: Lens' TagValues (Maybe [MatchOption])
+ Amazonka.CostExplorer.Types: tagValues_values :: Lens' TagValues (Maybe [Text])
+ Amazonka.CostExplorer.Types: targetInstance_currencyCode :: Lens' TargetInstance (Maybe Text)
+ Amazonka.CostExplorer.Types: targetInstance_defaultTargetInstance :: Lens' TargetInstance (Maybe Bool)
+ Amazonka.CostExplorer.Types: targetInstance_estimatedMonthlyCost :: Lens' TargetInstance (Maybe Text)
+ Amazonka.CostExplorer.Types: targetInstance_estimatedMonthlySavings :: Lens' TargetInstance (Maybe Text)
+ Amazonka.CostExplorer.Types: targetInstance_expectedResourceUtilization :: Lens' TargetInstance (Maybe ResourceUtilization)
+ Amazonka.CostExplorer.Types: targetInstance_platformDifferences :: Lens' TargetInstance (Maybe [PlatformDifference])
+ Amazonka.CostExplorer.Types: targetInstance_resourceDetails :: Lens' TargetInstance (Maybe ResourceDetails)
+ Amazonka.CostExplorer.Types: terminateRecommendationDetail_currencyCode :: Lens' TerminateRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Types: terminateRecommendationDetail_estimatedMonthlySavings :: Lens' TerminateRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Types: totalImpactFilter_endValue :: Lens' TotalImpactFilter (Maybe Double)
+ Amazonka.CostExplorer.Types: totalImpactFilter_numericOperator :: Lens' TotalImpactFilter NumericOperator
+ Amazonka.CostExplorer.Types: totalImpactFilter_startValue :: Lens' TotalImpactFilter Double
+ Amazonka.CostExplorer.Types: updateCostAllocationTagsStatusError_code :: Lens' UpdateCostAllocationTagsStatusError (Maybe Text)
+ Amazonka.CostExplorer.Types: updateCostAllocationTagsStatusError_message :: Lens' UpdateCostAllocationTagsStatusError (Maybe Text)
+ Amazonka.CostExplorer.Types: updateCostAllocationTagsStatusError_tagKey :: Lens' UpdateCostAllocationTagsStatusError (Maybe Text)
+ Amazonka.CostExplorer.Types: utilizationByTime_groups :: Lens' UtilizationByTime (Maybe [ReservationUtilizationGroup])
+ Amazonka.CostExplorer.Types: utilizationByTime_timePeriod :: Lens' UtilizationByTime (Maybe DateInterval)
+ Amazonka.CostExplorer.Types: utilizationByTime_total :: Lens' UtilizationByTime (Maybe ReservationAggregates)
+ Amazonka.CostExplorer.Types.AccountScope: AccountScope' :: Text -> AccountScope
+ Amazonka.CostExplorer.Types.AccountScope: [fromAccountScope] :: AccountScope -> Text
+ Amazonka.CostExplorer.Types.AccountScope: instance Amazonka.Data.ByteString.ToByteString Amazonka.CostExplorer.Types.AccountScope.AccountScope
+ Amazonka.CostExplorer.Types.AccountScope: instance Amazonka.Data.Headers.ToHeader Amazonka.CostExplorer.Types.AccountScope.AccountScope
+ Amazonka.CostExplorer.Types.AccountScope: instance Amazonka.Data.Log.ToLog Amazonka.CostExplorer.Types.AccountScope.AccountScope
+ Amazonka.CostExplorer.Types.AccountScope: instance Amazonka.Data.Query.ToQuery Amazonka.CostExplorer.Types.AccountScope.AccountScope
+ Amazonka.CostExplorer.Types.AccountScope: instance Amazonka.Data.Text.FromText Amazonka.CostExplorer.Types.AccountScope.AccountScope
+ Amazonka.CostExplorer.Types.AccountScope: instance Amazonka.Data.Text.ToText Amazonka.CostExplorer.Types.AccountScope.AccountScope
+ Amazonka.CostExplorer.Types.AccountScope: instance Amazonka.Data.XML.FromXML Amazonka.CostExplorer.Types.AccountScope.AccountScope
+ Amazonka.CostExplorer.Types.AccountScope: instance Amazonka.Data.XML.ToXML Amazonka.CostExplorer.Types.AccountScope.AccountScope
+ Amazonka.CostExplorer.Types.AccountScope: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.AccountScope.AccountScope
+ Amazonka.CostExplorer.Types.AccountScope: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.AccountScope.AccountScope
+ Amazonka.CostExplorer.Types.AccountScope: instance Data.Aeson.Types.FromJSON.FromJSONKey Amazonka.CostExplorer.Types.AccountScope.AccountScope
+ Amazonka.CostExplorer.Types.AccountScope: instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.CostExplorer.Types.AccountScope.AccountScope
+ Amazonka.CostExplorer.Types.AccountScope: instance Data.Aeson.Types.ToJSON.ToJSONKey Amazonka.CostExplorer.Types.AccountScope.AccountScope
+ Amazonka.CostExplorer.Types.AccountScope: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.AccountScope.AccountScope
+ Amazonka.CostExplorer.Types.AccountScope: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.AccountScope.AccountScope
+ Amazonka.CostExplorer.Types.AccountScope: instance GHC.Classes.Ord Amazonka.CostExplorer.Types.AccountScope.AccountScope
+ Amazonka.CostExplorer.Types.AccountScope: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.AccountScope.AccountScope
+ Amazonka.CostExplorer.Types.AccountScope: instance GHC.Read.Read Amazonka.CostExplorer.Types.AccountScope.AccountScope
+ Amazonka.CostExplorer.Types.AccountScope: instance GHC.Show.Show Amazonka.CostExplorer.Types.AccountScope.AccountScope
+ Amazonka.CostExplorer.Types.AccountScope: newtype AccountScope
+ Amazonka.CostExplorer.Types.AccountScope: pattern AccountScope_LINKED :: AccountScope
+ Amazonka.CostExplorer.Types.AccountScope: pattern AccountScope_PAYER :: AccountScope
+ Amazonka.CostExplorer.Types.Anomaly: Anomaly' :: Maybe Text -> Maybe Text -> Maybe Text -> Maybe AnomalyFeedbackType -> Maybe [RootCause] -> Text -> AnomalyScore -> Impact -> Text -> Anomaly
+ Amazonka.CostExplorer.Types.Anomaly: [$sel:anomalyEndDate:Anomaly'] :: Anomaly -> Maybe Text
+ Amazonka.CostExplorer.Types.Anomaly: [$sel:anomalyId:Anomaly'] :: Anomaly -> Text
+ Amazonka.CostExplorer.Types.Anomaly: [$sel:anomalyScore:Anomaly'] :: Anomaly -> AnomalyScore
+ Amazonka.CostExplorer.Types.Anomaly: [$sel:anomalyStartDate:Anomaly'] :: Anomaly -> Maybe Text
+ Amazonka.CostExplorer.Types.Anomaly: [$sel:dimensionValue:Anomaly'] :: Anomaly -> Maybe Text
+ Amazonka.CostExplorer.Types.Anomaly: [$sel:feedback:Anomaly'] :: Anomaly -> Maybe AnomalyFeedbackType
+ Amazonka.CostExplorer.Types.Anomaly: [$sel:impact:Anomaly'] :: Anomaly -> Impact
+ Amazonka.CostExplorer.Types.Anomaly: [$sel:monitorArn:Anomaly'] :: Anomaly -> Text
+ Amazonka.CostExplorer.Types.Anomaly: [$sel:rootCauses:Anomaly'] :: Anomaly -> Maybe [RootCause]
+ Amazonka.CostExplorer.Types.Anomaly: anomaly_anomalyEndDate :: Lens' Anomaly (Maybe Text)
+ Amazonka.CostExplorer.Types.Anomaly: anomaly_anomalyId :: Lens' Anomaly Text
+ Amazonka.CostExplorer.Types.Anomaly: anomaly_anomalyScore :: Lens' Anomaly AnomalyScore
+ Amazonka.CostExplorer.Types.Anomaly: anomaly_anomalyStartDate :: Lens' Anomaly (Maybe Text)
+ Amazonka.CostExplorer.Types.Anomaly: anomaly_dimensionValue :: Lens' Anomaly (Maybe Text)
+ Amazonka.CostExplorer.Types.Anomaly: anomaly_feedback :: Lens' Anomaly (Maybe AnomalyFeedbackType)
+ Amazonka.CostExplorer.Types.Anomaly: anomaly_impact :: Lens' Anomaly Impact
+ Amazonka.CostExplorer.Types.Anomaly: anomaly_monitorArn :: Lens' Anomaly Text
+ Amazonka.CostExplorer.Types.Anomaly: anomaly_rootCauses :: Lens' Anomaly (Maybe [RootCause])
+ Amazonka.CostExplorer.Types.Anomaly: data Anomaly
+ Amazonka.CostExplorer.Types.Anomaly: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.Anomaly.Anomaly
+ Amazonka.CostExplorer.Types.Anomaly: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.Anomaly.Anomaly
+ Amazonka.CostExplorer.Types.Anomaly: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.Anomaly.Anomaly
+ Amazonka.CostExplorer.Types.Anomaly: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.Anomaly.Anomaly
+ Amazonka.CostExplorer.Types.Anomaly: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.Anomaly.Anomaly
+ Amazonka.CostExplorer.Types.Anomaly: instance GHC.Read.Read Amazonka.CostExplorer.Types.Anomaly.Anomaly
+ Amazonka.CostExplorer.Types.Anomaly: instance GHC.Show.Show Amazonka.CostExplorer.Types.Anomaly.Anomaly
+ Amazonka.CostExplorer.Types.Anomaly: newAnomaly :: Text -> AnomalyScore -> Impact -> Text -> Anomaly
+ Amazonka.CostExplorer.Types.AnomalyDateInterval: AnomalyDateInterval' :: Maybe Text -> Text -> AnomalyDateInterval
+ Amazonka.CostExplorer.Types.AnomalyDateInterval: [$sel:endDate:AnomalyDateInterval'] :: AnomalyDateInterval -> Maybe Text
+ Amazonka.CostExplorer.Types.AnomalyDateInterval: [$sel:startDate:AnomalyDateInterval'] :: AnomalyDateInterval -> Text
+ Amazonka.CostExplorer.Types.AnomalyDateInterval: anomalyDateInterval_endDate :: Lens' AnomalyDateInterval (Maybe Text)
+ Amazonka.CostExplorer.Types.AnomalyDateInterval: anomalyDateInterval_startDate :: Lens' AnomalyDateInterval Text
+ Amazonka.CostExplorer.Types.AnomalyDateInterval: data AnomalyDateInterval
+ Amazonka.CostExplorer.Types.AnomalyDateInterval: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.AnomalyDateInterval.AnomalyDateInterval
+ Amazonka.CostExplorer.Types.AnomalyDateInterval: instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.CostExplorer.Types.AnomalyDateInterval.AnomalyDateInterval
+ Amazonka.CostExplorer.Types.AnomalyDateInterval: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.AnomalyDateInterval.AnomalyDateInterval
+ Amazonka.CostExplorer.Types.AnomalyDateInterval: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.AnomalyDateInterval.AnomalyDateInterval
+ Amazonka.CostExplorer.Types.AnomalyDateInterval: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.AnomalyDateInterval.AnomalyDateInterval
+ Amazonka.CostExplorer.Types.AnomalyDateInterval: instance GHC.Read.Read Amazonka.CostExplorer.Types.AnomalyDateInterval.AnomalyDateInterval
+ Amazonka.CostExplorer.Types.AnomalyDateInterval: instance GHC.Show.Show Amazonka.CostExplorer.Types.AnomalyDateInterval.AnomalyDateInterval
+ Amazonka.CostExplorer.Types.AnomalyDateInterval: newAnomalyDateInterval :: Text -> AnomalyDateInterval
+ Amazonka.CostExplorer.Types.AnomalyFeedbackType: AnomalyFeedbackType' :: Text -> AnomalyFeedbackType
+ Amazonka.CostExplorer.Types.AnomalyFeedbackType: [fromAnomalyFeedbackType] :: AnomalyFeedbackType -> Text
+ Amazonka.CostExplorer.Types.AnomalyFeedbackType: instance Amazonka.Data.ByteString.ToByteString Amazonka.CostExplorer.Types.AnomalyFeedbackType.AnomalyFeedbackType
+ Amazonka.CostExplorer.Types.AnomalyFeedbackType: instance Amazonka.Data.Headers.ToHeader Amazonka.CostExplorer.Types.AnomalyFeedbackType.AnomalyFeedbackType
+ Amazonka.CostExplorer.Types.AnomalyFeedbackType: instance Amazonka.Data.Log.ToLog Amazonka.CostExplorer.Types.AnomalyFeedbackType.AnomalyFeedbackType
+ Amazonka.CostExplorer.Types.AnomalyFeedbackType: instance Amazonka.Data.Query.ToQuery Amazonka.CostExplorer.Types.AnomalyFeedbackType.AnomalyFeedbackType
+ Amazonka.CostExplorer.Types.AnomalyFeedbackType: instance Amazonka.Data.Text.FromText Amazonka.CostExplorer.Types.AnomalyFeedbackType.AnomalyFeedbackType
+ Amazonka.CostExplorer.Types.AnomalyFeedbackType: instance Amazonka.Data.Text.ToText Amazonka.CostExplorer.Types.AnomalyFeedbackType.AnomalyFeedbackType
+ Amazonka.CostExplorer.Types.AnomalyFeedbackType: instance Amazonka.Data.XML.FromXML Amazonka.CostExplorer.Types.AnomalyFeedbackType.AnomalyFeedbackType
+ Amazonka.CostExplorer.Types.AnomalyFeedbackType: instance Amazonka.Data.XML.ToXML Amazonka.CostExplorer.Types.AnomalyFeedbackType.AnomalyFeedbackType
+ Amazonka.CostExplorer.Types.AnomalyFeedbackType: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.AnomalyFeedbackType.AnomalyFeedbackType
+ Amazonka.CostExplorer.Types.AnomalyFeedbackType: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.AnomalyFeedbackType.AnomalyFeedbackType
+ Amazonka.CostExplorer.Types.AnomalyFeedbackType: instance Data.Aeson.Types.FromJSON.FromJSONKey Amazonka.CostExplorer.Types.AnomalyFeedbackType.AnomalyFeedbackType
+ Amazonka.CostExplorer.Types.AnomalyFeedbackType: instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.CostExplorer.Types.AnomalyFeedbackType.AnomalyFeedbackType
+ Amazonka.CostExplorer.Types.AnomalyFeedbackType: instance Data.Aeson.Types.ToJSON.ToJSONKey Amazonka.CostExplorer.Types.AnomalyFeedbackType.AnomalyFeedbackType
+ Amazonka.CostExplorer.Types.AnomalyFeedbackType: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.AnomalyFeedbackType.AnomalyFeedbackType
+ Amazonka.CostExplorer.Types.AnomalyFeedbackType: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.AnomalyFeedbackType.AnomalyFeedbackType
+ Amazonka.CostExplorer.Types.AnomalyFeedbackType: instance GHC.Classes.Ord Amazonka.CostExplorer.Types.AnomalyFeedbackType.AnomalyFeedbackType
+ Amazonka.CostExplorer.Types.AnomalyFeedbackType: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.AnomalyFeedbackType.AnomalyFeedbackType
+ Amazonka.CostExplorer.Types.AnomalyFeedbackType: instance GHC.Read.Read Amazonka.CostExplorer.Types.AnomalyFeedbackType.AnomalyFeedbackType
+ Amazonka.CostExplorer.Types.AnomalyFeedbackType: instance GHC.Show.Show Amazonka.CostExplorer.Types.AnomalyFeedbackType.AnomalyFeedbackType
+ Amazonka.CostExplorer.Types.AnomalyFeedbackType: newtype AnomalyFeedbackType
+ Amazonka.CostExplorer.Types.AnomalyFeedbackType: pattern AnomalyFeedbackType_NO :: AnomalyFeedbackType
+ Amazonka.CostExplorer.Types.AnomalyFeedbackType: pattern AnomalyFeedbackType_PLANNED_ACTIVITY :: AnomalyFeedbackType
+ Amazonka.CostExplorer.Types.AnomalyFeedbackType: pattern AnomalyFeedbackType_YES :: AnomalyFeedbackType
+ Amazonka.CostExplorer.Types.AnomalyMonitor: AnomalyMonitor' :: Maybe Text -> Maybe Natural -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe MonitorDimension -> Maybe Expression -> Text -> MonitorType -> AnomalyMonitor
+ Amazonka.CostExplorer.Types.AnomalyMonitor: [$sel:creationDate:AnomalyMonitor'] :: AnomalyMonitor -> Maybe Text
+ Amazonka.CostExplorer.Types.AnomalyMonitor: [$sel:dimensionalValueCount:AnomalyMonitor'] :: AnomalyMonitor -> Maybe Natural
+ Amazonka.CostExplorer.Types.AnomalyMonitor: [$sel:lastEvaluatedDate:AnomalyMonitor'] :: AnomalyMonitor -> Maybe Text
+ Amazonka.CostExplorer.Types.AnomalyMonitor: [$sel:lastUpdatedDate:AnomalyMonitor'] :: AnomalyMonitor -> Maybe Text
+ Amazonka.CostExplorer.Types.AnomalyMonitor: [$sel:monitorArn:AnomalyMonitor'] :: AnomalyMonitor -> Maybe Text
+ Amazonka.CostExplorer.Types.AnomalyMonitor: [$sel:monitorDimension:AnomalyMonitor'] :: AnomalyMonitor -> Maybe MonitorDimension
+ Amazonka.CostExplorer.Types.AnomalyMonitor: [$sel:monitorName:AnomalyMonitor'] :: AnomalyMonitor -> Text
+ Amazonka.CostExplorer.Types.AnomalyMonitor: [$sel:monitorSpecification:AnomalyMonitor'] :: AnomalyMonitor -> Maybe Expression
+ Amazonka.CostExplorer.Types.AnomalyMonitor: [$sel:monitorType:AnomalyMonitor'] :: AnomalyMonitor -> MonitorType
+ Amazonka.CostExplorer.Types.AnomalyMonitor: anomalyMonitor_creationDate :: Lens' AnomalyMonitor (Maybe Text)
+ Amazonka.CostExplorer.Types.AnomalyMonitor: anomalyMonitor_dimensionalValueCount :: Lens' AnomalyMonitor (Maybe Natural)
+ Amazonka.CostExplorer.Types.AnomalyMonitor: anomalyMonitor_lastEvaluatedDate :: Lens' AnomalyMonitor (Maybe Text)
+ Amazonka.CostExplorer.Types.AnomalyMonitor: anomalyMonitor_lastUpdatedDate :: Lens' AnomalyMonitor (Maybe Text)
+ Amazonka.CostExplorer.Types.AnomalyMonitor: anomalyMonitor_monitorArn :: Lens' AnomalyMonitor (Maybe Text)
+ Amazonka.CostExplorer.Types.AnomalyMonitor: anomalyMonitor_monitorDimension :: Lens' AnomalyMonitor (Maybe MonitorDimension)
+ Amazonka.CostExplorer.Types.AnomalyMonitor: anomalyMonitor_monitorName :: Lens' AnomalyMonitor Text
+ Amazonka.CostExplorer.Types.AnomalyMonitor: anomalyMonitor_monitorSpecification :: Lens' AnomalyMonitor (Maybe Expression)
+ Amazonka.CostExplorer.Types.AnomalyMonitor: anomalyMonitor_monitorType :: Lens' AnomalyMonitor MonitorType
+ Amazonka.CostExplorer.Types.AnomalyMonitor: data AnomalyMonitor
+ Amazonka.CostExplorer.Types.AnomalyMonitor: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.AnomalyMonitor.AnomalyMonitor
+ Amazonka.CostExplorer.Types.AnomalyMonitor: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.AnomalyMonitor.AnomalyMonitor
+ Amazonka.CostExplorer.Types.AnomalyMonitor: instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.CostExplorer.Types.AnomalyMonitor.AnomalyMonitor
+ Amazonka.CostExplorer.Types.AnomalyMonitor: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.AnomalyMonitor.AnomalyMonitor
+ Amazonka.CostExplorer.Types.AnomalyMonitor: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.AnomalyMonitor.AnomalyMonitor
+ Amazonka.CostExplorer.Types.AnomalyMonitor: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.AnomalyMonitor.AnomalyMonitor
+ Amazonka.CostExplorer.Types.AnomalyMonitor: instance GHC.Read.Read Amazonka.CostExplorer.Types.AnomalyMonitor.AnomalyMonitor
+ Amazonka.CostExplorer.Types.AnomalyMonitor: instance GHC.Show.Show Amazonka.CostExplorer.Types.AnomalyMonitor.AnomalyMonitor
+ Amazonka.CostExplorer.Types.AnomalyMonitor: newAnomalyMonitor :: Text -> MonitorType -> AnomalyMonitor
+ Amazonka.CostExplorer.Types.AnomalyScore: AnomalyScore' :: Double -> Double -> AnomalyScore
+ Amazonka.CostExplorer.Types.AnomalyScore: [$sel:currentScore:AnomalyScore'] :: AnomalyScore -> Double
+ Amazonka.CostExplorer.Types.AnomalyScore: [$sel:maxScore:AnomalyScore'] :: AnomalyScore -> Double
+ Amazonka.CostExplorer.Types.AnomalyScore: anomalyScore_currentScore :: Lens' AnomalyScore Double
+ Amazonka.CostExplorer.Types.AnomalyScore: anomalyScore_maxScore :: Lens' AnomalyScore Double
+ Amazonka.CostExplorer.Types.AnomalyScore: data AnomalyScore
+ Amazonka.CostExplorer.Types.AnomalyScore: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.AnomalyScore.AnomalyScore
+ Amazonka.CostExplorer.Types.AnomalyScore: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.AnomalyScore.AnomalyScore
+ Amazonka.CostExplorer.Types.AnomalyScore: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.AnomalyScore.AnomalyScore
+ Amazonka.CostExplorer.Types.AnomalyScore: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.AnomalyScore.AnomalyScore
+ Amazonka.CostExplorer.Types.AnomalyScore: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.AnomalyScore.AnomalyScore
+ Amazonka.CostExplorer.Types.AnomalyScore: instance GHC.Read.Read Amazonka.CostExplorer.Types.AnomalyScore.AnomalyScore
+ Amazonka.CostExplorer.Types.AnomalyScore: instance GHC.Show.Show Amazonka.CostExplorer.Types.AnomalyScore.AnomalyScore
+ Amazonka.CostExplorer.Types.AnomalyScore: newAnomalyScore :: Double -> Double -> AnomalyScore
+ Amazonka.CostExplorer.Types.AnomalySubscription: AnomalySubscription' :: Maybe Text -> Maybe Text -> Maybe Double -> Maybe Expression -> [Text] -> [Subscriber] -> AnomalySubscriptionFrequency -> Text -> AnomalySubscription
+ Amazonka.CostExplorer.Types.AnomalySubscription: [$sel:accountId:AnomalySubscription'] :: AnomalySubscription -> Maybe Text
+ Amazonka.CostExplorer.Types.AnomalySubscription: [$sel:frequency:AnomalySubscription'] :: AnomalySubscription -> AnomalySubscriptionFrequency
+ Amazonka.CostExplorer.Types.AnomalySubscription: [$sel:monitorArnList:AnomalySubscription'] :: AnomalySubscription -> [Text]
+ Amazonka.CostExplorer.Types.AnomalySubscription: [$sel:subscribers:AnomalySubscription'] :: AnomalySubscription -> [Subscriber]
+ Amazonka.CostExplorer.Types.AnomalySubscription: [$sel:subscriptionArn:AnomalySubscription'] :: AnomalySubscription -> Maybe Text
+ Amazonka.CostExplorer.Types.AnomalySubscription: [$sel:subscriptionName:AnomalySubscription'] :: AnomalySubscription -> Text
+ Amazonka.CostExplorer.Types.AnomalySubscription: [$sel:threshold:AnomalySubscription'] :: AnomalySubscription -> Maybe Double
+ Amazonka.CostExplorer.Types.AnomalySubscription: [$sel:thresholdExpression:AnomalySubscription'] :: AnomalySubscription -> Maybe Expression
+ Amazonka.CostExplorer.Types.AnomalySubscription: anomalySubscription_accountId :: Lens' AnomalySubscription (Maybe Text)
+ Amazonka.CostExplorer.Types.AnomalySubscription: anomalySubscription_frequency :: Lens' AnomalySubscription AnomalySubscriptionFrequency
+ Amazonka.CostExplorer.Types.AnomalySubscription: anomalySubscription_monitorArnList :: Lens' AnomalySubscription [Text]
+ Amazonka.CostExplorer.Types.AnomalySubscription: anomalySubscription_subscribers :: Lens' AnomalySubscription [Subscriber]
+ Amazonka.CostExplorer.Types.AnomalySubscription: anomalySubscription_subscriptionArn :: Lens' AnomalySubscription (Maybe Text)
+ Amazonka.CostExplorer.Types.AnomalySubscription: anomalySubscription_subscriptionName :: Lens' AnomalySubscription Text
+ Amazonka.CostExplorer.Types.AnomalySubscription: anomalySubscription_threshold :: Lens' AnomalySubscription (Maybe Double)
+ Amazonka.CostExplorer.Types.AnomalySubscription: anomalySubscription_thresholdExpression :: Lens' AnomalySubscription (Maybe Expression)
+ Amazonka.CostExplorer.Types.AnomalySubscription: data AnomalySubscription
+ Amazonka.CostExplorer.Types.AnomalySubscription: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.AnomalySubscription.AnomalySubscription
+ Amazonka.CostExplorer.Types.AnomalySubscription: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.AnomalySubscription.AnomalySubscription
+ Amazonka.CostExplorer.Types.AnomalySubscription: instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.CostExplorer.Types.AnomalySubscription.AnomalySubscription
+ Amazonka.CostExplorer.Types.AnomalySubscription: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.AnomalySubscription.AnomalySubscription
+ Amazonka.CostExplorer.Types.AnomalySubscription: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.AnomalySubscription.AnomalySubscription
+ Amazonka.CostExplorer.Types.AnomalySubscription: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.AnomalySubscription.AnomalySubscription
+ Amazonka.CostExplorer.Types.AnomalySubscription: instance GHC.Read.Read Amazonka.CostExplorer.Types.AnomalySubscription.AnomalySubscription
+ Amazonka.CostExplorer.Types.AnomalySubscription: instance GHC.Show.Show Amazonka.CostExplorer.Types.AnomalySubscription.AnomalySubscription
+ Amazonka.CostExplorer.Types.AnomalySubscription: newAnomalySubscription :: AnomalySubscriptionFrequency -> Text -> AnomalySubscription
+ Amazonka.CostExplorer.Types.AnomalySubscriptionFrequency: AnomalySubscriptionFrequency' :: Text -> AnomalySubscriptionFrequency
+ Amazonka.CostExplorer.Types.AnomalySubscriptionFrequency: [fromAnomalySubscriptionFrequency] :: AnomalySubscriptionFrequency -> Text
+ Amazonka.CostExplorer.Types.AnomalySubscriptionFrequency: instance Amazonka.Data.ByteString.ToByteString Amazonka.CostExplorer.Types.AnomalySubscriptionFrequency.AnomalySubscriptionFrequency
+ Amazonka.CostExplorer.Types.AnomalySubscriptionFrequency: instance Amazonka.Data.Headers.ToHeader Amazonka.CostExplorer.Types.AnomalySubscriptionFrequency.AnomalySubscriptionFrequency
+ Amazonka.CostExplorer.Types.AnomalySubscriptionFrequency: instance Amazonka.Data.Log.ToLog Amazonka.CostExplorer.Types.AnomalySubscriptionFrequency.AnomalySubscriptionFrequency
+ Amazonka.CostExplorer.Types.AnomalySubscriptionFrequency: instance Amazonka.Data.Query.ToQuery Amazonka.CostExplorer.Types.AnomalySubscriptionFrequency.AnomalySubscriptionFrequency
+ Amazonka.CostExplorer.Types.AnomalySubscriptionFrequency: instance Amazonka.Data.Text.FromText Amazonka.CostExplorer.Types.AnomalySubscriptionFrequency.AnomalySubscriptionFrequency
+ Amazonka.CostExplorer.Types.AnomalySubscriptionFrequency: instance Amazonka.Data.Text.ToText Amazonka.CostExplorer.Types.AnomalySubscriptionFrequency.AnomalySubscriptionFrequency
+ Amazonka.CostExplorer.Types.AnomalySubscriptionFrequency: instance Amazonka.Data.XML.FromXML Amazonka.CostExplorer.Types.AnomalySubscriptionFrequency.AnomalySubscriptionFrequency
+ Amazonka.CostExplorer.Types.AnomalySubscriptionFrequency: instance Amazonka.Data.XML.ToXML Amazonka.CostExplorer.Types.AnomalySubscriptionFrequency.AnomalySubscriptionFrequency
+ Amazonka.CostExplorer.Types.AnomalySubscriptionFrequency: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.AnomalySubscriptionFrequency.AnomalySubscriptionFrequency
+ Amazonka.CostExplorer.Types.AnomalySubscriptionFrequency: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.AnomalySubscriptionFrequency.AnomalySubscriptionFrequency
+ Amazonka.CostExplorer.Types.AnomalySubscriptionFrequency: instance Data.Aeson.Types.FromJSON.FromJSONKey Amazonka.CostExplorer.Types.AnomalySubscriptionFrequency.AnomalySubscriptionFrequency
+ Amazonka.CostExplorer.Types.AnomalySubscriptionFrequency: instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.CostExplorer.Types.AnomalySubscriptionFrequency.AnomalySubscriptionFrequency
+ Amazonka.CostExplorer.Types.AnomalySubscriptionFrequency: instance Data.Aeson.Types.ToJSON.ToJSONKey Amazonka.CostExplorer.Types.AnomalySubscriptionFrequency.AnomalySubscriptionFrequency
+ Amazonka.CostExplorer.Types.AnomalySubscriptionFrequency: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.AnomalySubscriptionFrequency.AnomalySubscriptionFrequency
+ Amazonka.CostExplorer.Types.AnomalySubscriptionFrequency: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.AnomalySubscriptionFrequency.AnomalySubscriptionFrequency
+ Amazonka.CostExplorer.Types.AnomalySubscriptionFrequency: instance GHC.Classes.Ord Amazonka.CostExplorer.Types.AnomalySubscriptionFrequency.AnomalySubscriptionFrequency
+ Amazonka.CostExplorer.Types.AnomalySubscriptionFrequency: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.AnomalySubscriptionFrequency.AnomalySubscriptionFrequency
+ Amazonka.CostExplorer.Types.AnomalySubscriptionFrequency: instance GHC.Read.Read Amazonka.CostExplorer.Types.AnomalySubscriptionFrequency.AnomalySubscriptionFrequency
+ Amazonka.CostExplorer.Types.AnomalySubscriptionFrequency: instance GHC.Show.Show Amazonka.CostExplorer.Types.AnomalySubscriptionFrequency.AnomalySubscriptionFrequency
+ Amazonka.CostExplorer.Types.AnomalySubscriptionFrequency: newtype AnomalySubscriptionFrequency
+ Amazonka.CostExplorer.Types.AnomalySubscriptionFrequency: pattern AnomalySubscriptionFrequency_DAILY :: AnomalySubscriptionFrequency
+ Amazonka.CostExplorer.Types.AnomalySubscriptionFrequency: pattern AnomalySubscriptionFrequency_IMMEDIATE :: AnomalySubscriptionFrequency
+ Amazonka.CostExplorer.Types.AnomalySubscriptionFrequency: pattern AnomalySubscriptionFrequency_WEEKLY :: AnomalySubscriptionFrequency
+ Amazonka.CostExplorer.Types.Context: Context' :: Text -> Context
+ Amazonka.CostExplorer.Types.Context: [fromContext] :: Context -> Text
+ Amazonka.CostExplorer.Types.Context: instance Amazonka.Data.ByteString.ToByteString Amazonka.CostExplorer.Types.Context.Context
+ Amazonka.CostExplorer.Types.Context: instance Amazonka.Data.Headers.ToHeader Amazonka.CostExplorer.Types.Context.Context
+ Amazonka.CostExplorer.Types.Context: instance Amazonka.Data.Log.ToLog Amazonka.CostExplorer.Types.Context.Context
+ Amazonka.CostExplorer.Types.Context: instance Amazonka.Data.Query.ToQuery Amazonka.CostExplorer.Types.Context.Context
+ Amazonka.CostExplorer.Types.Context: instance Amazonka.Data.Text.FromText Amazonka.CostExplorer.Types.Context.Context
+ Amazonka.CostExplorer.Types.Context: instance Amazonka.Data.Text.ToText Amazonka.CostExplorer.Types.Context.Context
+ Amazonka.CostExplorer.Types.Context: instance Amazonka.Data.XML.FromXML Amazonka.CostExplorer.Types.Context.Context
+ Amazonka.CostExplorer.Types.Context: instance Amazonka.Data.XML.ToXML Amazonka.CostExplorer.Types.Context.Context
+ Amazonka.CostExplorer.Types.Context: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.Context.Context
+ Amazonka.CostExplorer.Types.Context: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.Context.Context
+ Amazonka.CostExplorer.Types.Context: instance Data.Aeson.Types.FromJSON.FromJSONKey Amazonka.CostExplorer.Types.Context.Context
+ Amazonka.CostExplorer.Types.Context: instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.CostExplorer.Types.Context.Context
+ Amazonka.CostExplorer.Types.Context: instance Data.Aeson.Types.ToJSON.ToJSONKey Amazonka.CostExplorer.Types.Context.Context
+ Amazonka.CostExplorer.Types.Context: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.Context.Context
+ Amazonka.CostExplorer.Types.Context: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.Context.Context
+ Amazonka.CostExplorer.Types.Context: instance GHC.Classes.Ord Amazonka.CostExplorer.Types.Context.Context
+ Amazonka.CostExplorer.Types.Context: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.Context.Context
+ Amazonka.CostExplorer.Types.Context: instance GHC.Read.Read Amazonka.CostExplorer.Types.Context.Context
+ Amazonka.CostExplorer.Types.Context: instance GHC.Show.Show Amazonka.CostExplorer.Types.Context.Context
+ Amazonka.CostExplorer.Types.Context: newtype Context
+ Amazonka.CostExplorer.Types.Context: pattern Context_COST_AND_USAGE :: Context
+ Amazonka.CostExplorer.Types.Context: pattern Context_RESERVATIONS :: Context
+ Amazonka.CostExplorer.Types.Context: pattern Context_SAVINGS_PLANS :: Context
+ Amazonka.CostExplorer.Types.CostAllocationTag: CostAllocationTag' :: Text -> CostAllocationTagType -> CostAllocationTagStatus -> CostAllocationTag
+ Amazonka.CostExplorer.Types.CostAllocationTag: [$sel:status:CostAllocationTag'] :: CostAllocationTag -> CostAllocationTagStatus
+ Amazonka.CostExplorer.Types.CostAllocationTag: [$sel:tagKey:CostAllocationTag'] :: CostAllocationTag -> Text
+ Amazonka.CostExplorer.Types.CostAllocationTag: [$sel:type':CostAllocationTag'] :: CostAllocationTag -> CostAllocationTagType
+ Amazonka.CostExplorer.Types.CostAllocationTag: costAllocationTag_status :: Lens' CostAllocationTag CostAllocationTagStatus
+ Amazonka.CostExplorer.Types.CostAllocationTag: costAllocationTag_tagKey :: Lens' CostAllocationTag Text
+ Amazonka.CostExplorer.Types.CostAllocationTag: costAllocationTag_type :: Lens' CostAllocationTag CostAllocationTagType
+ Amazonka.CostExplorer.Types.CostAllocationTag: data CostAllocationTag
+ Amazonka.CostExplorer.Types.CostAllocationTag: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.CostAllocationTag.CostAllocationTag
+ Amazonka.CostExplorer.Types.CostAllocationTag: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.CostAllocationTag.CostAllocationTag
+ Amazonka.CostExplorer.Types.CostAllocationTag: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.CostAllocationTag.CostAllocationTag
+ Amazonka.CostExplorer.Types.CostAllocationTag: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.CostAllocationTag.CostAllocationTag
+ Amazonka.CostExplorer.Types.CostAllocationTag: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.CostAllocationTag.CostAllocationTag
+ Amazonka.CostExplorer.Types.CostAllocationTag: instance GHC.Read.Read Amazonka.CostExplorer.Types.CostAllocationTag.CostAllocationTag
+ Amazonka.CostExplorer.Types.CostAllocationTag: instance GHC.Show.Show Amazonka.CostExplorer.Types.CostAllocationTag.CostAllocationTag
+ Amazonka.CostExplorer.Types.CostAllocationTag: newCostAllocationTag :: Text -> CostAllocationTagType -> CostAllocationTagStatus -> CostAllocationTag
+ Amazonka.CostExplorer.Types.CostAllocationTagStatus: CostAllocationTagStatus' :: Text -> CostAllocationTagStatus
+ Amazonka.CostExplorer.Types.CostAllocationTagStatus: [fromCostAllocationTagStatus] :: CostAllocationTagStatus -> Text
+ Amazonka.CostExplorer.Types.CostAllocationTagStatus: instance Amazonka.Data.ByteString.ToByteString Amazonka.CostExplorer.Types.CostAllocationTagStatus.CostAllocationTagStatus
+ Amazonka.CostExplorer.Types.CostAllocationTagStatus: instance Amazonka.Data.Headers.ToHeader Amazonka.CostExplorer.Types.CostAllocationTagStatus.CostAllocationTagStatus
+ Amazonka.CostExplorer.Types.CostAllocationTagStatus: instance Amazonka.Data.Log.ToLog Amazonka.CostExplorer.Types.CostAllocationTagStatus.CostAllocationTagStatus
+ Amazonka.CostExplorer.Types.CostAllocationTagStatus: instance Amazonka.Data.Query.ToQuery Amazonka.CostExplorer.Types.CostAllocationTagStatus.CostAllocationTagStatus
+ Amazonka.CostExplorer.Types.CostAllocationTagStatus: instance Amazonka.Data.Text.FromText Amazonka.CostExplorer.Types.CostAllocationTagStatus.CostAllocationTagStatus
+ Amazonka.CostExplorer.Types.CostAllocationTagStatus: instance Amazonka.Data.Text.ToText Amazonka.CostExplorer.Types.CostAllocationTagStatus.CostAllocationTagStatus
+ Amazonka.CostExplorer.Types.CostAllocationTagStatus: instance Amazonka.Data.XML.FromXML Amazonka.CostExplorer.Types.CostAllocationTagStatus.CostAllocationTagStatus
+ Amazonka.CostExplorer.Types.CostAllocationTagStatus: instance Amazonka.Data.XML.ToXML Amazonka.CostExplorer.Types.CostAllocationTagStatus.CostAllocationTagStatus
+ Amazonka.CostExplorer.Types.CostAllocationTagStatus: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.CostAllocationTagStatus.CostAllocationTagStatus
+ Amazonka.CostExplorer.Types.CostAllocationTagStatus: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.CostAllocationTagStatus.CostAllocationTagStatus
+ Amazonka.CostExplorer.Types.CostAllocationTagStatus: instance Data.Aeson.Types.FromJSON.FromJSONKey Amazonka.CostExplorer.Types.CostAllocationTagStatus.CostAllocationTagStatus
+ Amazonka.CostExplorer.Types.CostAllocationTagStatus: instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.CostExplorer.Types.CostAllocationTagStatus.CostAllocationTagStatus
+ Amazonka.CostExplorer.Types.CostAllocationTagStatus: instance Data.Aeson.Types.ToJSON.ToJSONKey Amazonka.CostExplorer.Types.CostAllocationTagStatus.CostAllocationTagStatus
+ Amazonka.CostExplorer.Types.CostAllocationTagStatus: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.CostAllocationTagStatus.CostAllocationTagStatus
+ Amazonka.CostExplorer.Types.CostAllocationTagStatus: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.CostAllocationTagStatus.CostAllocationTagStatus
+ Amazonka.CostExplorer.Types.CostAllocationTagStatus: instance GHC.Classes.Ord Amazonka.CostExplorer.Types.CostAllocationTagStatus.CostAllocationTagStatus
+ Amazonka.CostExplorer.Types.CostAllocationTagStatus: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.CostAllocationTagStatus.CostAllocationTagStatus
+ Amazonka.CostExplorer.Types.CostAllocationTagStatus: instance GHC.Read.Read Amazonka.CostExplorer.Types.CostAllocationTagStatus.CostAllocationTagStatus
+ Amazonka.CostExplorer.Types.CostAllocationTagStatus: instance GHC.Show.Show Amazonka.CostExplorer.Types.CostAllocationTagStatus.CostAllocationTagStatus
+ Amazonka.CostExplorer.Types.CostAllocationTagStatus: newtype CostAllocationTagStatus
+ Amazonka.CostExplorer.Types.CostAllocationTagStatus: pattern CostAllocationTagStatus_Active :: CostAllocationTagStatus
+ Amazonka.CostExplorer.Types.CostAllocationTagStatus: pattern CostAllocationTagStatus_Inactive :: CostAllocationTagStatus
+ Amazonka.CostExplorer.Types.CostAllocationTagStatusEntry: CostAllocationTagStatusEntry' :: Text -> CostAllocationTagStatus -> CostAllocationTagStatusEntry
+ Amazonka.CostExplorer.Types.CostAllocationTagStatusEntry: [$sel:status:CostAllocationTagStatusEntry'] :: CostAllocationTagStatusEntry -> CostAllocationTagStatus
+ Amazonka.CostExplorer.Types.CostAllocationTagStatusEntry: [$sel:tagKey:CostAllocationTagStatusEntry'] :: CostAllocationTagStatusEntry -> Text
+ Amazonka.CostExplorer.Types.CostAllocationTagStatusEntry: costAllocationTagStatusEntry_status :: Lens' CostAllocationTagStatusEntry CostAllocationTagStatus
+ Amazonka.CostExplorer.Types.CostAllocationTagStatusEntry: costAllocationTagStatusEntry_tagKey :: Lens' CostAllocationTagStatusEntry Text
+ Amazonka.CostExplorer.Types.CostAllocationTagStatusEntry: data CostAllocationTagStatusEntry
+ Amazonka.CostExplorer.Types.CostAllocationTagStatusEntry: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.CostAllocationTagStatusEntry.CostAllocationTagStatusEntry
+ Amazonka.CostExplorer.Types.CostAllocationTagStatusEntry: instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.CostExplorer.Types.CostAllocationTagStatusEntry.CostAllocationTagStatusEntry
+ Amazonka.CostExplorer.Types.CostAllocationTagStatusEntry: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.CostAllocationTagStatusEntry.CostAllocationTagStatusEntry
+ Amazonka.CostExplorer.Types.CostAllocationTagStatusEntry: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.CostAllocationTagStatusEntry.CostAllocationTagStatusEntry
+ Amazonka.CostExplorer.Types.CostAllocationTagStatusEntry: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.CostAllocationTagStatusEntry.CostAllocationTagStatusEntry
+ Amazonka.CostExplorer.Types.CostAllocationTagStatusEntry: instance GHC.Read.Read Amazonka.CostExplorer.Types.CostAllocationTagStatusEntry.CostAllocationTagStatusEntry
+ Amazonka.CostExplorer.Types.CostAllocationTagStatusEntry: instance GHC.Show.Show Amazonka.CostExplorer.Types.CostAllocationTagStatusEntry.CostAllocationTagStatusEntry
+ Amazonka.CostExplorer.Types.CostAllocationTagStatusEntry: newCostAllocationTagStatusEntry :: Text -> CostAllocationTagStatus -> CostAllocationTagStatusEntry
+ Amazonka.CostExplorer.Types.CostAllocationTagType: CostAllocationTagType' :: Text -> CostAllocationTagType
+ Amazonka.CostExplorer.Types.CostAllocationTagType: [fromCostAllocationTagType] :: CostAllocationTagType -> Text
+ Amazonka.CostExplorer.Types.CostAllocationTagType: instance Amazonka.Data.ByteString.ToByteString Amazonka.CostExplorer.Types.CostAllocationTagType.CostAllocationTagType
+ Amazonka.CostExplorer.Types.CostAllocationTagType: instance Amazonka.Data.Headers.ToHeader Amazonka.CostExplorer.Types.CostAllocationTagType.CostAllocationTagType
+ Amazonka.CostExplorer.Types.CostAllocationTagType: instance Amazonka.Data.Log.ToLog Amazonka.CostExplorer.Types.CostAllocationTagType.CostAllocationTagType
+ Amazonka.CostExplorer.Types.CostAllocationTagType: instance Amazonka.Data.Query.ToQuery Amazonka.CostExplorer.Types.CostAllocationTagType.CostAllocationTagType
+ Amazonka.CostExplorer.Types.CostAllocationTagType: instance Amazonka.Data.Text.FromText Amazonka.CostExplorer.Types.CostAllocationTagType.CostAllocationTagType
+ Amazonka.CostExplorer.Types.CostAllocationTagType: instance Amazonka.Data.Text.ToText Amazonka.CostExplorer.Types.CostAllocationTagType.CostAllocationTagType
+ Amazonka.CostExplorer.Types.CostAllocationTagType: instance Amazonka.Data.XML.FromXML Amazonka.CostExplorer.Types.CostAllocationTagType.CostAllocationTagType
+ Amazonka.CostExplorer.Types.CostAllocationTagType: instance Amazonka.Data.XML.ToXML Amazonka.CostExplorer.Types.CostAllocationTagType.CostAllocationTagType
+ Amazonka.CostExplorer.Types.CostAllocationTagType: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.CostAllocationTagType.CostAllocationTagType
+ Amazonka.CostExplorer.Types.CostAllocationTagType: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.CostAllocationTagType.CostAllocationTagType
+ Amazonka.CostExplorer.Types.CostAllocationTagType: instance Data.Aeson.Types.FromJSON.FromJSONKey Amazonka.CostExplorer.Types.CostAllocationTagType.CostAllocationTagType
+ Amazonka.CostExplorer.Types.CostAllocationTagType: instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.CostExplorer.Types.CostAllocationTagType.CostAllocationTagType
+ Amazonka.CostExplorer.Types.CostAllocationTagType: instance Data.Aeson.Types.ToJSON.ToJSONKey Amazonka.CostExplorer.Types.CostAllocationTagType.CostAllocationTagType
+ Amazonka.CostExplorer.Types.CostAllocationTagType: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.CostAllocationTagType.CostAllocationTagType
+ Amazonka.CostExplorer.Types.CostAllocationTagType: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.CostAllocationTagType.CostAllocationTagType
+ Amazonka.CostExplorer.Types.CostAllocationTagType: instance GHC.Classes.Ord Amazonka.CostExplorer.Types.CostAllocationTagType.CostAllocationTagType
+ Amazonka.CostExplorer.Types.CostAllocationTagType: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.CostAllocationTagType.CostAllocationTagType
+ Amazonka.CostExplorer.Types.CostAllocationTagType: instance GHC.Read.Read Amazonka.CostExplorer.Types.CostAllocationTagType.CostAllocationTagType
+ Amazonka.CostExplorer.Types.CostAllocationTagType: instance GHC.Show.Show Amazonka.CostExplorer.Types.CostAllocationTagType.CostAllocationTagType
+ Amazonka.CostExplorer.Types.CostAllocationTagType: newtype CostAllocationTagType
+ Amazonka.CostExplorer.Types.CostAllocationTagType: pattern CostAllocationTagType_AWSGenerated :: CostAllocationTagType
+ Amazonka.CostExplorer.Types.CostAllocationTagType: pattern CostAllocationTagType_UserDefined :: CostAllocationTagType
+ Amazonka.CostExplorer.Types.CostCategory: CostCategory' :: Maybe Text -> Maybe Text -> Maybe [CostCategoryProcessingStatus] -> Maybe (NonEmpty CostCategorySplitChargeRule) -> Text -> Text -> Text -> CostCategoryRuleVersion -> NonEmpty CostCategoryRule -> CostCategory
+ Amazonka.CostExplorer.Types.CostCategory: [$sel:costCategoryArn:CostCategory'] :: CostCategory -> Text
+ Amazonka.CostExplorer.Types.CostCategory: [$sel:defaultValue:CostCategory'] :: CostCategory -> Maybe Text
+ Amazonka.CostExplorer.Types.CostCategory: [$sel:effectiveEnd:CostCategory'] :: CostCategory -> Maybe Text
+ Amazonka.CostExplorer.Types.CostCategory: [$sel:effectiveStart:CostCategory'] :: CostCategory -> Text
+ Amazonka.CostExplorer.Types.CostCategory: [$sel:name:CostCategory'] :: CostCategory -> Text
+ Amazonka.CostExplorer.Types.CostCategory: [$sel:processingStatus:CostCategory'] :: CostCategory -> Maybe [CostCategoryProcessingStatus]
+ Amazonka.CostExplorer.Types.CostCategory: [$sel:ruleVersion:CostCategory'] :: CostCategory -> CostCategoryRuleVersion
+ Amazonka.CostExplorer.Types.CostCategory: [$sel:rules:CostCategory'] :: CostCategory -> NonEmpty CostCategoryRule
+ Amazonka.CostExplorer.Types.CostCategory: [$sel:splitChargeRules:CostCategory'] :: CostCategory -> Maybe (NonEmpty CostCategorySplitChargeRule)
+ Amazonka.CostExplorer.Types.CostCategory: costCategory_costCategoryArn :: Lens' CostCategory Text
+ Amazonka.CostExplorer.Types.CostCategory: costCategory_defaultValue :: Lens' CostCategory (Maybe Text)
+ Amazonka.CostExplorer.Types.CostCategory: costCategory_effectiveEnd :: Lens' CostCategory (Maybe Text)
+ Amazonka.CostExplorer.Types.CostCategory: costCategory_effectiveStart :: Lens' CostCategory Text
+ Amazonka.CostExplorer.Types.CostCategory: costCategory_name :: Lens' CostCategory Text
+ Amazonka.CostExplorer.Types.CostCategory: costCategory_processingStatus :: Lens' CostCategory (Maybe [CostCategoryProcessingStatus])
+ Amazonka.CostExplorer.Types.CostCategory: costCategory_ruleVersion :: Lens' CostCategory CostCategoryRuleVersion
+ Amazonka.CostExplorer.Types.CostCategory: costCategory_rules :: Lens' CostCategory (NonEmpty CostCategoryRule)
+ Amazonka.CostExplorer.Types.CostCategory: costCategory_splitChargeRules :: Lens' CostCategory (Maybe (NonEmpty CostCategorySplitChargeRule))
+ Amazonka.CostExplorer.Types.CostCategory: data CostCategory
+ Amazonka.CostExplorer.Types.CostCategory: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.CostCategory.CostCategory
+ Amazonka.CostExplorer.Types.CostCategory: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.CostCategory.CostCategory
+ Amazonka.CostExplorer.Types.CostCategory: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.CostCategory.CostCategory
+ Amazonka.CostExplorer.Types.CostCategory: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.CostCategory.CostCategory
+ Amazonka.CostExplorer.Types.CostCategory: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.CostCategory.CostCategory
+ Amazonka.CostExplorer.Types.CostCategory: instance GHC.Read.Read Amazonka.CostExplorer.Types.CostCategory.CostCategory
+ Amazonka.CostExplorer.Types.CostCategory: instance GHC.Show.Show Amazonka.CostExplorer.Types.CostCategory.CostCategory
+ Amazonka.CostExplorer.Types.CostCategory: newCostCategory :: Text -> Text -> Text -> CostCategoryRuleVersion -> NonEmpty CostCategoryRule -> CostCategory
+ Amazonka.CostExplorer.Types.CostCategoryInheritedValueDimension: CostCategoryInheritedValueDimension' :: Maybe Text -> Maybe CostCategoryInheritedValueDimensionName -> CostCategoryInheritedValueDimension
+ Amazonka.CostExplorer.Types.CostCategoryInheritedValueDimension: [$sel:dimensionKey:CostCategoryInheritedValueDimension'] :: CostCategoryInheritedValueDimension -> Maybe Text
+ Amazonka.CostExplorer.Types.CostCategoryInheritedValueDimension: [$sel:dimensionName:CostCategoryInheritedValueDimension'] :: CostCategoryInheritedValueDimension -> Maybe CostCategoryInheritedValueDimensionName
+ Amazonka.CostExplorer.Types.CostCategoryInheritedValueDimension: costCategoryInheritedValueDimension_dimensionKey :: Lens' CostCategoryInheritedValueDimension (Maybe Text)
+ Amazonka.CostExplorer.Types.CostCategoryInheritedValueDimension: costCategoryInheritedValueDimension_dimensionName :: Lens' CostCategoryInheritedValueDimension (Maybe CostCategoryInheritedValueDimensionName)
+ Amazonka.CostExplorer.Types.CostCategoryInheritedValueDimension: data CostCategoryInheritedValueDimension
+ Amazonka.CostExplorer.Types.CostCategoryInheritedValueDimension: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.CostCategoryInheritedValueDimension.CostCategoryInheritedValueDimension
+ Amazonka.CostExplorer.Types.CostCategoryInheritedValueDimension: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.CostCategoryInheritedValueDimension.CostCategoryInheritedValueDimension
+ Amazonka.CostExplorer.Types.CostCategoryInheritedValueDimension: instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.CostExplorer.Types.CostCategoryInheritedValueDimension.CostCategoryInheritedValueDimension
+ Amazonka.CostExplorer.Types.CostCategoryInheritedValueDimension: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.CostCategoryInheritedValueDimension.CostCategoryInheritedValueDimension
+ Amazonka.CostExplorer.Types.CostCategoryInheritedValueDimension: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.CostCategoryInheritedValueDimension.CostCategoryInheritedValueDimension
+ Amazonka.CostExplorer.Types.CostCategoryInheritedValueDimension: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.CostCategoryInheritedValueDimension.CostCategoryInheritedValueDimension
+ Amazonka.CostExplorer.Types.CostCategoryInheritedValueDimension: instance GHC.Read.Read Amazonka.CostExplorer.Types.CostCategoryInheritedValueDimension.CostCategoryInheritedValueDimension
+ Amazonka.CostExplorer.Types.CostCategoryInheritedValueDimension: instance GHC.Show.Show Amazonka.CostExplorer.Types.CostCategoryInheritedValueDimension.CostCategoryInheritedValueDimension
+ Amazonka.CostExplorer.Types.CostCategoryInheritedValueDimension: newCostCategoryInheritedValueDimension :: CostCategoryInheritedValueDimension
+ Amazonka.CostExplorer.Types.CostCategoryInheritedValueDimensionName: CostCategoryInheritedValueDimensionName' :: Text -> CostCategoryInheritedValueDimensionName
+ Amazonka.CostExplorer.Types.CostCategoryInheritedValueDimensionName: [fromCostCategoryInheritedValueDimensionName] :: CostCategoryInheritedValueDimensionName -> Text
+ Amazonka.CostExplorer.Types.CostCategoryInheritedValueDimensionName: instance Amazonka.Data.ByteString.ToByteString Amazonka.CostExplorer.Types.CostCategoryInheritedValueDimensionName.CostCategoryInheritedValueDimensionName
+ Amazonka.CostExplorer.Types.CostCategoryInheritedValueDimensionName: instance Amazonka.Data.Headers.ToHeader Amazonka.CostExplorer.Types.CostCategoryInheritedValueDimensionName.CostCategoryInheritedValueDimensionName
+ Amazonka.CostExplorer.Types.CostCategoryInheritedValueDimensionName: instance Amazonka.Data.Log.ToLog Amazonka.CostExplorer.Types.CostCategoryInheritedValueDimensionName.CostCategoryInheritedValueDimensionName
+ Amazonka.CostExplorer.Types.CostCategoryInheritedValueDimensionName: instance Amazonka.Data.Query.ToQuery Amazonka.CostExplorer.Types.CostCategoryInheritedValueDimensionName.CostCategoryInheritedValueDimensionName
+ Amazonka.CostExplorer.Types.CostCategoryInheritedValueDimensionName: instance Amazonka.Data.Text.FromText Amazonka.CostExplorer.Types.CostCategoryInheritedValueDimensionName.CostCategoryInheritedValueDimensionName
+ Amazonka.CostExplorer.Types.CostCategoryInheritedValueDimensionName: instance Amazonka.Data.Text.ToText Amazonka.CostExplorer.Types.CostCategoryInheritedValueDimensionName.CostCategoryInheritedValueDimensionName
+ Amazonka.CostExplorer.Types.CostCategoryInheritedValueDimensionName: instance Amazonka.Data.XML.FromXML Amazonka.CostExplorer.Types.CostCategoryInheritedValueDimensionName.CostCategoryInheritedValueDimensionName
+ Amazonka.CostExplorer.Types.CostCategoryInheritedValueDimensionName: instance Amazonka.Data.XML.ToXML Amazonka.CostExplorer.Types.CostCategoryInheritedValueDimensionName.CostCategoryInheritedValueDimensionName
+ Amazonka.CostExplorer.Types.CostCategoryInheritedValueDimensionName: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.CostCategoryInheritedValueDimensionName.CostCategoryInheritedValueDimensionName
+ Amazonka.CostExplorer.Types.CostCategoryInheritedValueDimensionName: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.CostCategoryInheritedValueDimensionName.CostCategoryInheritedValueDimensionName
+ Amazonka.CostExplorer.Types.CostCategoryInheritedValueDimensionName: instance Data.Aeson.Types.FromJSON.FromJSONKey Amazonka.CostExplorer.Types.CostCategoryInheritedValueDimensionName.CostCategoryInheritedValueDimensionName
+ Amazonka.CostExplorer.Types.CostCategoryInheritedValueDimensionName: instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.CostExplorer.Types.CostCategoryInheritedValueDimensionName.CostCategoryInheritedValueDimensionName
+ Amazonka.CostExplorer.Types.CostCategoryInheritedValueDimensionName: instance Data.Aeson.Types.ToJSON.ToJSONKey Amazonka.CostExplorer.Types.CostCategoryInheritedValueDimensionName.CostCategoryInheritedValueDimensionName
+ Amazonka.CostExplorer.Types.CostCategoryInheritedValueDimensionName: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.CostCategoryInheritedValueDimensionName.CostCategoryInheritedValueDimensionName
+ Amazonka.CostExplorer.Types.CostCategoryInheritedValueDimensionName: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.CostCategoryInheritedValueDimensionName.CostCategoryInheritedValueDimensionName
+ Amazonka.CostExplorer.Types.CostCategoryInheritedValueDimensionName: instance GHC.Classes.Ord Amazonka.CostExplorer.Types.CostCategoryInheritedValueDimensionName.CostCategoryInheritedValueDimensionName
+ Amazonka.CostExplorer.Types.CostCategoryInheritedValueDimensionName: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.CostCategoryInheritedValueDimensionName.CostCategoryInheritedValueDimensionName
+ Amazonka.CostExplorer.Types.CostCategoryInheritedValueDimensionName: instance GHC.Read.Read Amazonka.CostExplorer.Types.CostCategoryInheritedValueDimensionName.CostCategoryInheritedValueDimensionName
+ Amazonka.CostExplorer.Types.CostCategoryInheritedValueDimensionName: instance GHC.Show.Show Amazonka.CostExplorer.Types.CostCategoryInheritedValueDimensionName.CostCategoryInheritedValueDimensionName
+ Amazonka.CostExplorer.Types.CostCategoryInheritedValueDimensionName: newtype CostCategoryInheritedValueDimensionName
+ Amazonka.CostExplorer.Types.CostCategoryInheritedValueDimensionName: pattern CostCategoryInheritedValueDimensionName_LINKED_ACCOUNT_NAME :: CostCategoryInheritedValueDimensionName
+ Amazonka.CostExplorer.Types.CostCategoryInheritedValueDimensionName: pattern CostCategoryInheritedValueDimensionName_TAG :: CostCategoryInheritedValueDimensionName
+ Amazonka.CostExplorer.Types.CostCategoryProcessingStatus: CostCategoryProcessingStatus' :: Maybe CostCategoryStatusComponent -> Maybe CostCategoryStatus -> CostCategoryProcessingStatus
+ Amazonka.CostExplorer.Types.CostCategoryProcessingStatus: [$sel:component:CostCategoryProcessingStatus'] :: CostCategoryProcessingStatus -> Maybe CostCategoryStatusComponent
+ Amazonka.CostExplorer.Types.CostCategoryProcessingStatus: [$sel:status:CostCategoryProcessingStatus'] :: CostCategoryProcessingStatus -> Maybe CostCategoryStatus
+ Amazonka.CostExplorer.Types.CostCategoryProcessingStatus: costCategoryProcessingStatus_component :: Lens' CostCategoryProcessingStatus (Maybe CostCategoryStatusComponent)
+ Amazonka.CostExplorer.Types.CostCategoryProcessingStatus: costCategoryProcessingStatus_status :: Lens' CostCategoryProcessingStatus (Maybe CostCategoryStatus)
+ Amazonka.CostExplorer.Types.CostCategoryProcessingStatus: data CostCategoryProcessingStatus
+ Amazonka.CostExplorer.Types.CostCategoryProcessingStatus: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.CostCategoryProcessingStatus.CostCategoryProcessingStatus
+ Amazonka.CostExplorer.Types.CostCategoryProcessingStatus: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.CostCategoryProcessingStatus.CostCategoryProcessingStatus
+ Amazonka.CostExplorer.Types.CostCategoryProcessingStatus: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.CostCategoryProcessingStatus.CostCategoryProcessingStatus
+ Amazonka.CostExplorer.Types.CostCategoryProcessingStatus: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.CostCategoryProcessingStatus.CostCategoryProcessingStatus
+ Amazonka.CostExplorer.Types.CostCategoryProcessingStatus: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.CostCategoryProcessingStatus.CostCategoryProcessingStatus
+ Amazonka.CostExplorer.Types.CostCategoryProcessingStatus: instance GHC.Read.Read Amazonka.CostExplorer.Types.CostCategoryProcessingStatus.CostCategoryProcessingStatus
+ Amazonka.CostExplorer.Types.CostCategoryProcessingStatus: instance GHC.Show.Show Amazonka.CostExplorer.Types.CostCategoryProcessingStatus.CostCategoryProcessingStatus
+ Amazonka.CostExplorer.Types.CostCategoryProcessingStatus: newCostCategoryProcessingStatus :: CostCategoryProcessingStatus
+ Amazonka.CostExplorer.Types.CostCategoryReference: CostCategoryReference' :: Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Natural -> Maybe [CostCategoryProcessingStatus] -> Maybe [Text] -> CostCategoryReference
+ Amazonka.CostExplorer.Types.CostCategoryReference: [$sel:costCategoryArn:CostCategoryReference'] :: CostCategoryReference -> Maybe Text
+ Amazonka.CostExplorer.Types.CostCategoryReference: [$sel:defaultValue:CostCategoryReference'] :: CostCategoryReference -> Maybe Text
+ Amazonka.CostExplorer.Types.CostCategoryReference: [$sel:effectiveEnd:CostCategoryReference'] :: CostCategoryReference -> Maybe Text
+ Amazonka.CostExplorer.Types.CostCategoryReference: [$sel:effectiveStart:CostCategoryReference'] :: CostCategoryReference -> Maybe Text
+ Amazonka.CostExplorer.Types.CostCategoryReference: [$sel:name:CostCategoryReference'] :: CostCategoryReference -> Maybe Text
+ Amazonka.CostExplorer.Types.CostCategoryReference: [$sel:numberOfRules:CostCategoryReference'] :: CostCategoryReference -> Maybe Natural
+ Amazonka.CostExplorer.Types.CostCategoryReference: [$sel:processingStatus:CostCategoryReference'] :: CostCategoryReference -> Maybe [CostCategoryProcessingStatus]
+ Amazonka.CostExplorer.Types.CostCategoryReference: [$sel:values:CostCategoryReference'] :: CostCategoryReference -> Maybe [Text]
+ Amazonka.CostExplorer.Types.CostCategoryReference: costCategoryReference_costCategoryArn :: Lens' CostCategoryReference (Maybe Text)
+ Amazonka.CostExplorer.Types.CostCategoryReference: costCategoryReference_defaultValue :: Lens' CostCategoryReference (Maybe Text)
+ Amazonka.CostExplorer.Types.CostCategoryReference: costCategoryReference_effectiveEnd :: Lens' CostCategoryReference (Maybe Text)
+ Amazonka.CostExplorer.Types.CostCategoryReference: costCategoryReference_effectiveStart :: Lens' CostCategoryReference (Maybe Text)
+ Amazonka.CostExplorer.Types.CostCategoryReference: costCategoryReference_name :: Lens' CostCategoryReference (Maybe Text)
+ Amazonka.CostExplorer.Types.CostCategoryReference: costCategoryReference_numberOfRules :: Lens' CostCategoryReference (Maybe Natural)
+ Amazonka.CostExplorer.Types.CostCategoryReference: costCategoryReference_processingStatus :: Lens' CostCategoryReference (Maybe [CostCategoryProcessingStatus])
+ Amazonka.CostExplorer.Types.CostCategoryReference: costCategoryReference_values :: Lens' CostCategoryReference (Maybe [Text])
+ Amazonka.CostExplorer.Types.CostCategoryReference: data CostCategoryReference
+ Amazonka.CostExplorer.Types.CostCategoryReference: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.CostCategoryReference.CostCategoryReference
+ Amazonka.CostExplorer.Types.CostCategoryReference: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.CostCategoryReference.CostCategoryReference
+ Amazonka.CostExplorer.Types.CostCategoryReference: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.CostCategoryReference.CostCategoryReference
+ Amazonka.CostExplorer.Types.CostCategoryReference: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.CostCategoryReference.CostCategoryReference
+ Amazonka.CostExplorer.Types.CostCategoryReference: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.CostCategoryReference.CostCategoryReference
+ Amazonka.CostExplorer.Types.CostCategoryReference: instance GHC.Read.Read Amazonka.CostExplorer.Types.CostCategoryReference.CostCategoryReference
+ Amazonka.CostExplorer.Types.CostCategoryReference: instance GHC.Show.Show Amazonka.CostExplorer.Types.CostCategoryReference.CostCategoryReference
+ Amazonka.CostExplorer.Types.CostCategoryReference: newCostCategoryReference :: CostCategoryReference
+ Amazonka.CostExplorer.Types.CostCategoryRule: CostCategoryRule' :: Maybe CostCategoryInheritedValueDimension -> Maybe Expression -> Maybe CostCategoryRuleType -> Maybe Text -> CostCategoryRule
+ Amazonka.CostExplorer.Types.CostCategoryRule: [$sel:inheritedValue:CostCategoryRule'] :: CostCategoryRule -> Maybe CostCategoryInheritedValueDimension
+ Amazonka.CostExplorer.Types.CostCategoryRule: [$sel:rule:CostCategoryRule'] :: CostCategoryRule -> Maybe Expression
+ Amazonka.CostExplorer.Types.CostCategoryRule: [$sel:type':CostCategoryRule'] :: CostCategoryRule -> Maybe CostCategoryRuleType
+ Amazonka.CostExplorer.Types.CostCategoryRule: [$sel:value:CostCategoryRule'] :: CostCategoryRule -> Maybe Text
+ Amazonka.CostExplorer.Types.CostCategoryRule: costCategoryRule_inheritedValue :: Lens' CostCategoryRule (Maybe CostCategoryInheritedValueDimension)
+ Amazonka.CostExplorer.Types.CostCategoryRule: costCategoryRule_rule :: Lens' CostCategoryRule (Maybe Expression)
+ Amazonka.CostExplorer.Types.CostCategoryRule: costCategoryRule_type :: Lens' CostCategoryRule (Maybe CostCategoryRuleType)
+ Amazonka.CostExplorer.Types.CostCategoryRule: costCategoryRule_value :: Lens' CostCategoryRule (Maybe Text)
+ Amazonka.CostExplorer.Types.CostCategoryRule: data CostCategoryRule
+ Amazonka.CostExplorer.Types.CostCategoryRule: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.CostCategoryRule.CostCategoryRule
+ Amazonka.CostExplorer.Types.CostCategoryRule: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.CostCategoryRule.CostCategoryRule
+ Amazonka.CostExplorer.Types.CostCategoryRule: instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.CostExplorer.Types.CostCategoryRule.CostCategoryRule
+ Amazonka.CostExplorer.Types.CostCategoryRule: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.CostCategoryRule.CostCategoryRule
+ Amazonka.CostExplorer.Types.CostCategoryRule: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.CostCategoryRule.CostCategoryRule
+ Amazonka.CostExplorer.Types.CostCategoryRule: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.CostCategoryRule.CostCategoryRule
+ Amazonka.CostExplorer.Types.CostCategoryRule: instance GHC.Read.Read Amazonka.CostExplorer.Types.CostCategoryRule.CostCategoryRule
+ Amazonka.CostExplorer.Types.CostCategoryRule: instance GHC.Show.Show Amazonka.CostExplorer.Types.CostCategoryRule.CostCategoryRule
+ Amazonka.CostExplorer.Types.CostCategoryRule: newCostCategoryRule :: CostCategoryRule
+ Amazonka.CostExplorer.Types.CostCategoryRuleType: CostCategoryRuleType' :: Text -> CostCategoryRuleType
+ Amazonka.CostExplorer.Types.CostCategoryRuleType: [fromCostCategoryRuleType] :: CostCategoryRuleType -> Text
+ Amazonka.CostExplorer.Types.CostCategoryRuleType: instance Amazonka.Data.ByteString.ToByteString Amazonka.CostExplorer.Types.CostCategoryRuleType.CostCategoryRuleType
+ Amazonka.CostExplorer.Types.CostCategoryRuleType: instance Amazonka.Data.Headers.ToHeader Amazonka.CostExplorer.Types.CostCategoryRuleType.CostCategoryRuleType
+ Amazonka.CostExplorer.Types.CostCategoryRuleType: instance Amazonka.Data.Log.ToLog Amazonka.CostExplorer.Types.CostCategoryRuleType.CostCategoryRuleType
+ Amazonka.CostExplorer.Types.CostCategoryRuleType: instance Amazonka.Data.Query.ToQuery Amazonka.CostExplorer.Types.CostCategoryRuleType.CostCategoryRuleType
+ Amazonka.CostExplorer.Types.CostCategoryRuleType: instance Amazonka.Data.Text.FromText Amazonka.CostExplorer.Types.CostCategoryRuleType.CostCategoryRuleType
+ Amazonka.CostExplorer.Types.CostCategoryRuleType: instance Amazonka.Data.Text.ToText Amazonka.CostExplorer.Types.CostCategoryRuleType.CostCategoryRuleType
+ Amazonka.CostExplorer.Types.CostCategoryRuleType: instance Amazonka.Data.XML.FromXML Amazonka.CostExplorer.Types.CostCategoryRuleType.CostCategoryRuleType
+ Amazonka.CostExplorer.Types.CostCategoryRuleType: instance Amazonka.Data.XML.ToXML Amazonka.CostExplorer.Types.CostCategoryRuleType.CostCategoryRuleType
+ Amazonka.CostExplorer.Types.CostCategoryRuleType: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.CostCategoryRuleType.CostCategoryRuleType
+ Amazonka.CostExplorer.Types.CostCategoryRuleType: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.CostCategoryRuleType.CostCategoryRuleType
+ Amazonka.CostExplorer.Types.CostCategoryRuleType: instance Data.Aeson.Types.FromJSON.FromJSONKey Amazonka.CostExplorer.Types.CostCategoryRuleType.CostCategoryRuleType
+ Amazonka.CostExplorer.Types.CostCategoryRuleType: instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.CostExplorer.Types.CostCategoryRuleType.CostCategoryRuleType
+ Amazonka.CostExplorer.Types.CostCategoryRuleType: instance Data.Aeson.Types.ToJSON.ToJSONKey Amazonka.CostExplorer.Types.CostCategoryRuleType.CostCategoryRuleType
+ Amazonka.CostExplorer.Types.CostCategoryRuleType: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.CostCategoryRuleType.CostCategoryRuleType
+ Amazonka.CostExplorer.Types.CostCategoryRuleType: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.CostCategoryRuleType.CostCategoryRuleType
+ Amazonka.CostExplorer.Types.CostCategoryRuleType: instance GHC.Classes.Ord Amazonka.CostExplorer.Types.CostCategoryRuleType.CostCategoryRuleType
+ Amazonka.CostExplorer.Types.CostCategoryRuleType: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.CostCategoryRuleType.CostCategoryRuleType
+ Amazonka.CostExplorer.Types.CostCategoryRuleType: instance GHC.Read.Read Amazonka.CostExplorer.Types.CostCategoryRuleType.CostCategoryRuleType
+ Amazonka.CostExplorer.Types.CostCategoryRuleType: instance GHC.Show.Show Amazonka.CostExplorer.Types.CostCategoryRuleType.CostCategoryRuleType
+ Amazonka.CostExplorer.Types.CostCategoryRuleType: newtype CostCategoryRuleType
+ Amazonka.CostExplorer.Types.CostCategoryRuleType: pattern CostCategoryRuleType_INHERITED_VALUE :: CostCategoryRuleType
+ Amazonka.CostExplorer.Types.CostCategoryRuleType: pattern CostCategoryRuleType_REGULAR :: CostCategoryRuleType
+ Amazonka.CostExplorer.Types.CostCategoryRuleVersion: CostCategoryRuleVersion' :: Text -> CostCategoryRuleVersion
+ Amazonka.CostExplorer.Types.CostCategoryRuleVersion: [fromCostCategoryRuleVersion] :: CostCategoryRuleVersion -> Text
+ Amazonka.CostExplorer.Types.CostCategoryRuleVersion: instance Amazonka.Data.ByteString.ToByteString Amazonka.CostExplorer.Types.CostCategoryRuleVersion.CostCategoryRuleVersion
+ Amazonka.CostExplorer.Types.CostCategoryRuleVersion: instance Amazonka.Data.Headers.ToHeader Amazonka.CostExplorer.Types.CostCategoryRuleVersion.CostCategoryRuleVersion
+ Amazonka.CostExplorer.Types.CostCategoryRuleVersion: instance Amazonka.Data.Log.ToLog Amazonka.CostExplorer.Types.CostCategoryRuleVersion.CostCategoryRuleVersion
+ Amazonka.CostExplorer.Types.CostCategoryRuleVersion: instance Amazonka.Data.Query.ToQuery Amazonka.CostExplorer.Types.CostCategoryRuleVersion.CostCategoryRuleVersion
+ Amazonka.CostExplorer.Types.CostCategoryRuleVersion: instance Amazonka.Data.Text.FromText Amazonka.CostExplorer.Types.CostCategoryRuleVersion.CostCategoryRuleVersion
+ Amazonka.CostExplorer.Types.CostCategoryRuleVersion: instance Amazonka.Data.Text.ToText Amazonka.CostExplorer.Types.CostCategoryRuleVersion.CostCategoryRuleVersion
+ Amazonka.CostExplorer.Types.CostCategoryRuleVersion: instance Amazonka.Data.XML.FromXML Amazonka.CostExplorer.Types.CostCategoryRuleVersion.CostCategoryRuleVersion
+ Amazonka.CostExplorer.Types.CostCategoryRuleVersion: instance Amazonka.Data.XML.ToXML Amazonka.CostExplorer.Types.CostCategoryRuleVersion.CostCategoryRuleVersion
+ Amazonka.CostExplorer.Types.CostCategoryRuleVersion: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.CostCategoryRuleVersion.CostCategoryRuleVersion
+ Amazonka.CostExplorer.Types.CostCategoryRuleVersion: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.CostCategoryRuleVersion.CostCategoryRuleVersion
+ Amazonka.CostExplorer.Types.CostCategoryRuleVersion: instance Data.Aeson.Types.FromJSON.FromJSONKey Amazonka.CostExplorer.Types.CostCategoryRuleVersion.CostCategoryRuleVersion
+ Amazonka.CostExplorer.Types.CostCategoryRuleVersion: instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.CostExplorer.Types.CostCategoryRuleVersion.CostCategoryRuleVersion
+ Amazonka.CostExplorer.Types.CostCategoryRuleVersion: instance Data.Aeson.Types.ToJSON.ToJSONKey Amazonka.CostExplorer.Types.CostCategoryRuleVersion.CostCategoryRuleVersion
+ Amazonka.CostExplorer.Types.CostCategoryRuleVersion: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.CostCategoryRuleVersion.CostCategoryRuleVersion
+ Amazonka.CostExplorer.Types.CostCategoryRuleVersion: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.CostCategoryRuleVersion.CostCategoryRuleVersion
+ Amazonka.CostExplorer.Types.CostCategoryRuleVersion: instance GHC.Classes.Ord Amazonka.CostExplorer.Types.CostCategoryRuleVersion.CostCategoryRuleVersion
+ Amazonka.CostExplorer.Types.CostCategoryRuleVersion: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.CostCategoryRuleVersion.CostCategoryRuleVersion
+ Amazonka.CostExplorer.Types.CostCategoryRuleVersion: instance GHC.Read.Read Amazonka.CostExplorer.Types.CostCategoryRuleVersion.CostCategoryRuleVersion
+ Amazonka.CostExplorer.Types.CostCategoryRuleVersion: instance GHC.Show.Show Amazonka.CostExplorer.Types.CostCategoryRuleVersion.CostCategoryRuleVersion
+ Amazonka.CostExplorer.Types.CostCategoryRuleVersion: newtype CostCategoryRuleVersion
+ Amazonka.CostExplorer.Types.CostCategoryRuleVersion: pattern CostCategoryRuleVersion_CostCategoryExpression_v1 :: CostCategoryRuleVersion
+ Amazonka.CostExplorer.Types.CostCategorySplitChargeMethod: CostCategorySplitChargeMethod' :: Text -> CostCategorySplitChargeMethod
+ Amazonka.CostExplorer.Types.CostCategorySplitChargeMethod: [fromCostCategorySplitChargeMethod] :: CostCategorySplitChargeMethod -> Text
+ Amazonka.CostExplorer.Types.CostCategorySplitChargeMethod: instance Amazonka.Data.ByteString.ToByteString Amazonka.CostExplorer.Types.CostCategorySplitChargeMethod.CostCategorySplitChargeMethod
+ Amazonka.CostExplorer.Types.CostCategorySplitChargeMethod: instance Amazonka.Data.Headers.ToHeader Amazonka.CostExplorer.Types.CostCategorySplitChargeMethod.CostCategorySplitChargeMethod
+ Amazonka.CostExplorer.Types.CostCategorySplitChargeMethod: instance Amazonka.Data.Log.ToLog Amazonka.CostExplorer.Types.CostCategorySplitChargeMethod.CostCategorySplitChargeMethod
+ Amazonka.CostExplorer.Types.CostCategorySplitChargeMethod: instance Amazonka.Data.Query.ToQuery Amazonka.CostExplorer.Types.CostCategorySplitChargeMethod.CostCategorySplitChargeMethod
+ Amazonka.CostExplorer.Types.CostCategorySplitChargeMethod: instance Amazonka.Data.Text.FromText Amazonka.CostExplorer.Types.CostCategorySplitChargeMethod.CostCategorySplitChargeMethod
+ Amazonka.CostExplorer.Types.CostCategorySplitChargeMethod: instance Amazonka.Data.Text.ToText Amazonka.CostExplorer.Types.CostCategorySplitChargeMethod.CostCategorySplitChargeMethod
+ Amazonka.CostExplorer.Types.CostCategorySplitChargeMethod: instance Amazonka.Data.XML.FromXML Amazonka.CostExplorer.Types.CostCategorySplitChargeMethod.CostCategorySplitChargeMethod
+ Amazonka.CostExplorer.Types.CostCategorySplitChargeMethod: instance Amazonka.Data.XML.ToXML Amazonka.CostExplorer.Types.CostCategorySplitChargeMethod.CostCategorySplitChargeMethod
+ Amazonka.CostExplorer.Types.CostCategorySplitChargeMethod: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.CostCategorySplitChargeMethod.CostCategorySplitChargeMethod
+ Amazonka.CostExplorer.Types.CostCategorySplitChargeMethod: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.CostCategorySplitChargeMethod.CostCategorySplitChargeMethod
+ Amazonka.CostExplorer.Types.CostCategorySplitChargeMethod: instance Data.Aeson.Types.FromJSON.FromJSONKey Amazonka.CostExplorer.Types.CostCategorySplitChargeMethod.CostCategorySplitChargeMethod
+ Amazonka.CostExplorer.Types.CostCategorySplitChargeMethod: instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.CostExplorer.Types.CostCategorySplitChargeMethod.CostCategorySplitChargeMethod
+ Amazonka.CostExplorer.Types.CostCategorySplitChargeMethod: instance Data.Aeson.Types.ToJSON.ToJSONKey Amazonka.CostExplorer.Types.CostCategorySplitChargeMethod.CostCategorySplitChargeMethod
+ Amazonka.CostExplorer.Types.CostCategorySplitChargeMethod: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.CostCategorySplitChargeMethod.CostCategorySplitChargeMethod
+ Amazonka.CostExplorer.Types.CostCategorySplitChargeMethod: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.CostCategorySplitChargeMethod.CostCategorySplitChargeMethod
+ Amazonka.CostExplorer.Types.CostCategorySplitChargeMethod: instance GHC.Classes.Ord Amazonka.CostExplorer.Types.CostCategorySplitChargeMethod.CostCategorySplitChargeMethod
+ Amazonka.CostExplorer.Types.CostCategorySplitChargeMethod: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.CostCategorySplitChargeMethod.CostCategorySplitChargeMethod
+ Amazonka.CostExplorer.Types.CostCategorySplitChargeMethod: instance GHC.Read.Read Amazonka.CostExplorer.Types.CostCategorySplitChargeMethod.CostCategorySplitChargeMethod
+ Amazonka.CostExplorer.Types.CostCategorySplitChargeMethod: instance GHC.Show.Show Amazonka.CostExplorer.Types.CostCategorySplitChargeMethod.CostCategorySplitChargeMethod
+ Amazonka.CostExplorer.Types.CostCategorySplitChargeMethod: newtype CostCategorySplitChargeMethod
+ Amazonka.CostExplorer.Types.CostCategorySplitChargeMethod: pattern CostCategorySplitChargeMethod_EVEN :: CostCategorySplitChargeMethod
+ Amazonka.CostExplorer.Types.CostCategorySplitChargeMethod: pattern CostCategorySplitChargeMethod_FIXED :: CostCategorySplitChargeMethod
+ Amazonka.CostExplorer.Types.CostCategorySplitChargeMethod: pattern CostCategorySplitChargeMethod_PROPORTIONAL :: CostCategorySplitChargeMethod
+ Amazonka.CostExplorer.Types.CostCategorySplitChargeRule: CostCategorySplitChargeRule' :: Maybe (NonEmpty CostCategorySplitChargeRuleParameter) -> Text -> NonEmpty Text -> CostCategorySplitChargeMethod -> CostCategorySplitChargeRule
+ Amazonka.CostExplorer.Types.CostCategorySplitChargeRule: [$sel:method:CostCategorySplitChargeRule'] :: CostCategorySplitChargeRule -> CostCategorySplitChargeMethod
+ Amazonka.CostExplorer.Types.CostCategorySplitChargeRule: [$sel:parameters:CostCategorySplitChargeRule'] :: CostCategorySplitChargeRule -> Maybe (NonEmpty CostCategorySplitChargeRuleParameter)
+ Amazonka.CostExplorer.Types.CostCategorySplitChargeRule: [$sel:source:CostCategorySplitChargeRule'] :: CostCategorySplitChargeRule -> Text
+ Amazonka.CostExplorer.Types.CostCategorySplitChargeRule: [$sel:targets:CostCategorySplitChargeRule'] :: CostCategorySplitChargeRule -> NonEmpty Text
+ Amazonka.CostExplorer.Types.CostCategorySplitChargeRule: costCategorySplitChargeRule_method :: Lens' CostCategorySplitChargeRule CostCategorySplitChargeMethod
+ Amazonka.CostExplorer.Types.CostCategorySplitChargeRule: costCategorySplitChargeRule_parameters :: Lens' CostCategorySplitChargeRule (Maybe (NonEmpty CostCategorySplitChargeRuleParameter))
+ Amazonka.CostExplorer.Types.CostCategorySplitChargeRule: costCategorySplitChargeRule_source :: Lens' CostCategorySplitChargeRule Text
+ Amazonka.CostExplorer.Types.CostCategorySplitChargeRule: costCategorySplitChargeRule_targets :: Lens' CostCategorySplitChargeRule (NonEmpty Text)
+ Amazonka.CostExplorer.Types.CostCategorySplitChargeRule: data CostCategorySplitChargeRule
+ Amazonka.CostExplorer.Types.CostCategorySplitChargeRule: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.CostCategorySplitChargeRule.CostCategorySplitChargeRule
+ Amazonka.CostExplorer.Types.CostCategorySplitChargeRule: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.CostCategorySplitChargeRule.CostCategorySplitChargeRule
+ Amazonka.CostExplorer.Types.CostCategorySplitChargeRule: instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.CostExplorer.Types.CostCategorySplitChargeRule.CostCategorySplitChargeRule
+ Amazonka.CostExplorer.Types.CostCategorySplitChargeRule: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.CostCategorySplitChargeRule.CostCategorySplitChargeRule
+ Amazonka.CostExplorer.Types.CostCategorySplitChargeRule: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.CostCategorySplitChargeRule.CostCategorySplitChargeRule
+ Amazonka.CostExplorer.Types.CostCategorySplitChargeRule: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.CostCategorySplitChargeRule.CostCategorySplitChargeRule
+ Amazonka.CostExplorer.Types.CostCategorySplitChargeRule: instance GHC.Read.Read Amazonka.CostExplorer.Types.CostCategorySplitChargeRule.CostCategorySplitChargeRule
+ Amazonka.CostExplorer.Types.CostCategorySplitChargeRule: instance GHC.Show.Show Amazonka.CostExplorer.Types.CostCategorySplitChargeRule.CostCategorySplitChargeRule
+ Amazonka.CostExplorer.Types.CostCategorySplitChargeRule: newCostCategorySplitChargeRule :: Text -> NonEmpty Text -> CostCategorySplitChargeMethod -> CostCategorySplitChargeRule
+ Amazonka.CostExplorer.Types.CostCategorySplitChargeRuleParameter: CostCategorySplitChargeRuleParameter' :: CostCategorySplitChargeRuleParameterType -> NonEmpty Text -> CostCategorySplitChargeRuleParameter
+ Amazonka.CostExplorer.Types.CostCategorySplitChargeRuleParameter: [$sel:type':CostCategorySplitChargeRuleParameter'] :: CostCategorySplitChargeRuleParameter -> CostCategorySplitChargeRuleParameterType
+ Amazonka.CostExplorer.Types.CostCategorySplitChargeRuleParameter: [$sel:values:CostCategorySplitChargeRuleParameter'] :: CostCategorySplitChargeRuleParameter -> NonEmpty Text
+ Amazonka.CostExplorer.Types.CostCategorySplitChargeRuleParameter: costCategorySplitChargeRuleParameter_type :: Lens' CostCategorySplitChargeRuleParameter CostCategorySplitChargeRuleParameterType
+ Amazonka.CostExplorer.Types.CostCategorySplitChargeRuleParameter: costCategorySplitChargeRuleParameter_values :: Lens' CostCategorySplitChargeRuleParameter (NonEmpty Text)
+ Amazonka.CostExplorer.Types.CostCategorySplitChargeRuleParameter: data CostCategorySplitChargeRuleParameter
+ Amazonka.CostExplorer.Types.CostCategorySplitChargeRuleParameter: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.CostCategorySplitChargeRuleParameter.CostCategorySplitChargeRuleParameter
+ Amazonka.CostExplorer.Types.CostCategorySplitChargeRuleParameter: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.CostCategorySplitChargeRuleParameter.CostCategorySplitChargeRuleParameter
+ Amazonka.CostExplorer.Types.CostCategorySplitChargeRuleParameter: instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.CostExplorer.Types.CostCategorySplitChargeRuleParameter.CostCategorySplitChargeRuleParameter
+ Amazonka.CostExplorer.Types.CostCategorySplitChargeRuleParameter: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.CostCategorySplitChargeRuleParameter.CostCategorySplitChargeRuleParameter
+ Amazonka.CostExplorer.Types.CostCategorySplitChargeRuleParameter: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.CostCategorySplitChargeRuleParameter.CostCategorySplitChargeRuleParameter
+ Amazonka.CostExplorer.Types.CostCategorySplitChargeRuleParameter: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.CostCategorySplitChargeRuleParameter.CostCategorySplitChargeRuleParameter
+ Amazonka.CostExplorer.Types.CostCategorySplitChargeRuleParameter: instance GHC.Read.Read Amazonka.CostExplorer.Types.CostCategorySplitChargeRuleParameter.CostCategorySplitChargeRuleParameter
+ Amazonka.CostExplorer.Types.CostCategorySplitChargeRuleParameter: instance GHC.Show.Show Amazonka.CostExplorer.Types.CostCategorySplitChargeRuleParameter.CostCategorySplitChargeRuleParameter
+ Amazonka.CostExplorer.Types.CostCategorySplitChargeRuleParameter: newCostCategorySplitChargeRuleParameter :: CostCategorySplitChargeRuleParameterType -> NonEmpty Text -> CostCategorySplitChargeRuleParameter
+ Amazonka.CostExplorer.Types.CostCategorySplitChargeRuleParameterType: CostCategorySplitChargeRuleParameterType' :: Text -> CostCategorySplitChargeRuleParameterType
+ Amazonka.CostExplorer.Types.CostCategorySplitChargeRuleParameterType: [fromCostCategorySplitChargeRuleParameterType] :: CostCategorySplitChargeRuleParameterType -> Text
+ Amazonka.CostExplorer.Types.CostCategorySplitChargeRuleParameterType: instance Amazonka.Data.ByteString.ToByteString Amazonka.CostExplorer.Types.CostCategorySplitChargeRuleParameterType.CostCategorySplitChargeRuleParameterType
+ Amazonka.CostExplorer.Types.CostCategorySplitChargeRuleParameterType: instance Amazonka.Data.Headers.ToHeader Amazonka.CostExplorer.Types.CostCategorySplitChargeRuleParameterType.CostCategorySplitChargeRuleParameterType
+ Amazonka.CostExplorer.Types.CostCategorySplitChargeRuleParameterType: instance Amazonka.Data.Log.ToLog Amazonka.CostExplorer.Types.CostCategorySplitChargeRuleParameterType.CostCategorySplitChargeRuleParameterType
+ Amazonka.CostExplorer.Types.CostCategorySplitChargeRuleParameterType: instance Amazonka.Data.Query.ToQuery Amazonka.CostExplorer.Types.CostCategorySplitChargeRuleParameterType.CostCategorySplitChargeRuleParameterType
+ Amazonka.CostExplorer.Types.CostCategorySplitChargeRuleParameterType: instance Amazonka.Data.Text.FromText Amazonka.CostExplorer.Types.CostCategorySplitChargeRuleParameterType.CostCategorySplitChargeRuleParameterType
+ Amazonka.CostExplorer.Types.CostCategorySplitChargeRuleParameterType: instance Amazonka.Data.Text.ToText Amazonka.CostExplorer.Types.CostCategorySplitChargeRuleParameterType.CostCategorySplitChargeRuleParameterType
+ Amazonka.CostExplorer.Types.CostCategorySplitChargeRuleParameterType: instance Amazonka.Data.XML.FromXML Amazonka.CostExplorer.Types.CostCategorySplitChargeRuleParameterType.CostCategorySplitChargeRuleParameterType
+ Amazonka.CostExplorer.Types.CostCategorySplitChargeRuleParameterType: instance Amazonka.Data.XML.ToXML Amazonka.CostExplorer.Types.CostCategorySplitChargeRuleParameterType.CostCategorySplitChargeRuleParameterType
+ Amazonka.CostExplorer.Types.CostCategorySplitChargeRuleParameterType: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.CostCategorySplitChargeRuleParameterType.CostCategorySplitChargeRuleParameterType
+ Amazonka.CostExplorer.Types.CostCategorySplitChargeRuleParameterType: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.CostCategorySplitChargeRuleParameterType.CostCategorySplitChargeRuleParameterType
+ Amazonka.CostExplorer.Types.CostCategorySplitChargeRuleParameterType: instance Data.Aeson.Types.FromJSON.FromJSONKey Amazonka.CostExplorer.Types.CostCategorySplitChargeRuleParameterType.CostCategorySplitChargeRuleParameterType
+ Amazonka.CostExplorer.Types.CostCategorySplitChargeRuleParameterType: instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.CostExplorer.Types.CostCategorySplitChargeRuleParameterType.CostCategorySplitChargeRuleParameterType
+ Amazonka.CostExplorer.Types.CostCategorySplitChargeRuleParameterType: instance Data.Aeson.Types.ToJSON.ToJSONKey Amazonka.CostExplorer.Types.CostCategorySplitChargeRuleParameterType.CostCategorySplitChargeRuleParameterType
+ Amazonka.CostExplorer.Types.CostCategorySplitChargeRuleParameterType: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.CostCategorySplitChargeRuleParameterType.CostCategorySplitChargeRuleParameterType
+ Amazonka.CostExplorer.Types.CostCategorySplitChargeRuleParameterType: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.CostCategorySplitChargeRuleParameterType.CostCategorySplitChargeRuleParameterType
+ Amazonka.CostExplorer.Types.CostCategorySplitChargeRuleParameterType: instance GHC.Classes.Ord Amazonka.CostExplorer.Types.CostCategorySplitChargeRuleParameterType.CostCategorySplitChargeRuleParameterType
+ Amazonka.CostExplorer.Types.CostCategorySplitChargeRuleParameterType: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.CostCategorySplitChargeRuleParameterType.CostCategorySplitChargeRuleParameterType
+ Amazonka.CostExplorer.Types.CostCategorySplitChargeRuleParameterType: instance GHC.Read.Read Amazonka.CostExplorer.Types.CostCategorySplitChargeRuleParameterType.CostCategorySplitChargeRuleParameterType
+ Amazonka.CostExplorer.Types.CostCategorySplitChargeRuleParameterType: instance GHC.Show.Show Amazonka.CostExplorer.Types.CostCategorySplitChargeRuleParameterType.CostCategorySplitChargeRuleParameterType
+ Amazonka.CostExplorer.Types.CostCategorySplitChargeRuleParameterType: newtype CostCategorySplitChargeRuleParameterType
+ Amazonka.CostExplorer.Types.CostCategorySplitChargeRuleParameterType: pattern CostCategorySplitChargeRuleParameterType_ALLOCATION_PERCENTAGES :: CostCategorySplitChargeRuleParameterType
+ Amazonka.CostExplorer.Types.CostCategoryStatus: CostCategoryStatus' :: Text -> CostCategoryStatus
+ Amazonka.CostExplorer.Types.CostCategoryStatus: [fromCostCategoryStatus] :: CostCategoryStatus -> Text
+ Amazonka.CostExplorer.Types.CostCategoryStatus: instance Amazonka.Data.ByteString.ToByteString Amazonka.CostExplorer.Types.CostCategoryStatus.CostCategoryStatus
+ Amazonka.CostExplorer.Types.CostCategoryStatus: instance Amazonka.Data.Headers.ToHeader Amazonka.CostExplorer.Types.CostCategoryStatus.CostCategoryStatus
+ Amazonka.CostExplorer.Types.CostCategoryStatus: instance Amazonka.Data.Log.ToLog Amazonka.CostExplorer.Types.CostCategoryStatus.CostCategoryStatus
+ Amazonka.CostExplorer.Types.CostCategoryStatus: instance Amazonka.Data.Query.ToQuery Amazonka.CostExplorer.Types.CostCategoryStatus.CostCategoryStatus
+ Amazonka.CostExplorer.Types.CostCategoryStatus: instance Amazonka.Data.Text.FromText Amazonka.CostExplorer.Types.CostCategoryStatus.CostCategoryStatus
+ Amazonka.CostExplorer.Types.CostCategoryStatus: instance Amazonka.Data.Text.ToText Amazonka.CostExplorer.Types.CostCategoryStatus.CostCategoryStatus
+ Amazonka.CostExplorer.Types.CostCategoryStatus: instance Amazonka.Data.XML.FromXML Amazonka.CostExplorer.Types.CostCategoryStatus.CostCategoryStatus
+ Amazonka.CostExplorer.Types.CostCategoryStatus: instance Amazonka.Data.XML.ToXML Amazonka.CostExplorer.Types.CostCategoryStatus.CostCategoryStatus
+ Amazonka.CostExplorer.Types.CostCategoryStatus: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.CostCategoryStatus.CostCategoryStatus
+ Amazonka.CostExplorer.Types.CostCategoryStatus: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.CostCategoryStatus.CostCategoryStatus
+ Amazonka.CostExplorer.Types.CostCategoryStatus: instance Data.Aeson.Types.FromJSON.FromJSONKey Amazonka.CostExplorer.Types.CostCategoryStatus.CostCategoryStatus
+ Amazonka.CostExplorer.Types.CostCategoryStatus: instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.CostExplorer.Types.CostCategoryStatus.CostCategoryStatus
+ Amazonka.CostExplorer.Types.CostCategoryStatus: instance Data.Aeson.Types.ToJSON.ToJSONKey Amazonka.CostExplorer.Types.CostCategoryStatus.CostCategoryStatus
+ Amazonka.CostExplorer.Types.CostCategoryStatus: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.CostCategoryStatus.CostCategoryStatus
+ Amazonka.CostExplorer.Types.CostCategoryStatus: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.CostCategoryStatus.CostCategoryStatus
+ Amazonka.CostExplorer.Types.CostCategoryStatus: instance GHC.Classes.Ord Amazonka.CostExplorer.Types.CostCategoryStatus.CostCategoryStatus
+ Amazonka.CostExplorer.Types.CostCategoryStatus: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.CostCategoryStatus.CostCategoryStatus
+ Amazonka.CostExplorer.Types.CostCategoryStatus: instance GHC.Read.Read Amazonka.CostExplorer.Types.CostCategoryStatus.CostCategoryStatus
+ Amazonka.CostExplorer.Types.CostCategoryStatus: instance GHC.Show.Show Amazonka.CostExplorer.Types.CostCategoryStatus.CostCategoryStatus
+ Amazonka.CostExplorer.Types.CostCategoryStatus: newtype CostCategoryStatus
+ Amazonka.CostExplorer.Types.CostCategoryStatus: pattern CostCategoryStatus_APPLIED :: CostCategoryStatus
+ Amazonka.CostExplorer.Types.CostCategoryStatus: pattern CostCategoryStatus_PROCESSING :: CostCategoryStatus
+ Amazonka.CostExplorer.Types.CostCategoryStatusComponent: CostCategoryStatusComponent' :: Text -> CostCategoryStatusComponent
+ Amazonka.CostExplorer.Types.CostCategoryStatusComponent: [fromCostCategoryStatusComponent] :: CostCategoryStatusComponent -> Text
+ Amazonka.CostExplorer.Types.CostCategoryStatusComponent: instance Amazonka.Data.ByteString.ToByteString Amazonka.CostExplorer.Types.CostCategoryStatusComponent.CostCategoryStatusComponent
+ Amazonka.CostExplorer.Types.CostCategoryStatusComponent: instance Amazonka.Data.Headers.ToHeader Amazonka.CostExplorer.Types.CostCategoryStatusComponent.CostCategoryStatusComponent
+ Amazonka.CostExplorer.Types.CostCategoryStatusComponent: instance Amazonka.Data.Log.ToLog Amazonka.CostExplorer.Types.CostCategoryStatusComponent.CostCategoryStatusComponent
+ Amazonka.CostExplorer.Types.CostCategoryStatusComponent: instance Amazonka.Data.Query.ToQuery Amazonka.CostExplorer.Types.CostCategoryStatusComponent.CostCategoryStatusComponent
+ Amazonka.CostExplorer.Types.CostCategoryStatusComponent: instance Amazonka.Data.Text.FromText Amazonka.CostExplorer.Types.CostCategoryStatusComponent.CostCategoryStatusComponent
+ Amazonka.CostExplorer.Types.CostCategoryStatusComponent: instance Amazonka.Data.Text.ToText Amazonka.CostExplorer.Types.CostCategoryStatusComponent.CostCategoryStatusComponent
+ Amazonka.CostExplorer.Types.CostCategoryStatusComponent: instance Amazonka.Data.XML.FromXML Amazonka.CostExplorer.Types.CostCategoryStatusComponent.CostCategoryStatusComponent
+ Amazonka.CostExplorer.Types.CostCategoryStatusComponent: instance Amazonka.Data.XML.ToXML Amazonka.CostExplorer.Types.CostCategoryStatusComponent.CostCategoryStatusComponent
+ Amazonka.CostExplorer.Types.CostCategoryStatusComponent: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.CostCategoryStatusComponent.CostCategoryStatusComponent
+ Amazonka.CostExplorer.Types.CostCategoryStatusComponent: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.CostCategoryStatusComponent.CostCategoryStatusComponent
+ Amazonka.CostExplorer.Types.CostCategoryStatusComponent: instance Data.Aeson.Types.FromJSON.FromJSONKey Amazonka.CostExplorer.Types.CostCategoryStatusComponent.CostCategoryStatusComponent
+ Amazonka.CostExplorer.Types.CostCategoryStatusComponent: instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.CostExplorer.Types.CostCategoryStatusComponent.CostCategoryStatusComponent
+ Amazonka.CostExplorer.Types.CostCategoryStatusComponent: instance Data.Aeson.Types.ToJSON.ToJSONKey Amazonka.CostExplorer.Types.CostCategoryStatusComponent.CostCategoryStatusComponent
+ Amazonka.CostExplorer.Types.CostCategoryStatusComponent: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.CostCategoryStatusComponent.CostCategoryStatusComponent
+ Amazonka.CostExplorer.Types.CostCategoryStatusComponent: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.CostCategoryStatusComponent.CostCategoryStatusComponent
+ Amazonka.CostExplorer.Types.CostCategoryStatusComponent: instance GHC.Classes.Ord Amazonka.CostExplorer.Types.CostCategoryStatusComponent.CostCategoryStatusComponent
+ Amazonka.CostExplorer.Types.CostCategoryStatusComponent: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.CostCategoryStatusComponent.CostCategoryStatusComponent
+ Amazonka.CostExplorer.Types.CostCategoryStatusComponent: instance GHC.Read.Read Amazonka.CostExplorer.Types.CostCategoryStatusComponent.CostCategoryStatusComponent
+ Amazonka.CostExplorer.Types.CostCategoryStatusComponent: instance GHC.Show.Show Amazonka.CostExplorer.Types.CostCategoryStatusComponent.CostCategoryStatusComponent
+ Amazonka.CostExplorer.Types.CostCategoryStatusComponent: newtype CostCategoryStatusComponent
+ Amazonka.CostExplorer.Types.CostCategoryStatusComponent: pattern CostCategoryStatusComponent_COST_EXPLORER :: CostCategoryStatusComponent
+ Amazonka.CostExplorer.Types.CostCategoryValues: CostCategoryValues' :: Maybe Text -> Maybe [MatchOption] -> Maybe [Text] -> CostCategoryValues
+ Amazonka.CostExplorer.Types.CostCategoryValues: [$sel:key:CostCategoryValues'] :: CostCategoryValues -> Maybe Text
+ Amazonka.CostExplorer.Types.CostCategoryValues: [$sel:matchOptions:CostCategoryValues'] :: CostCategoryValues -> Maybe [MatchOption]
+ Amazonka.CostExplorer.Types.CostCategoryValues: [$sel:values:CostCategoryValues'] :: CostCategoryValues -> Maybe [Text]
+ Amazonka.CostExplorer.Types.CostCategoryValues: costCategoryValues_key :: Lens' CostCategoryValues (Maybe Text)
+ Amazonka.CostExplorer.Types.CostCategoryValues: costCategoryValues_matchOptions :: Lens' CostCategoryValues (Maybe [MatchOption])
+ Amazonka.CostExplorer.Types.CostCategoryValues: costCategoryValues_values :: Lens' CostCategoryValues (Maybe [Text])
+ Amazonka.CostExplorer.Types.CostCategoryValues: data CostCategoryValues
+ Amazonka.CostExplorer.Types.CostCategoryValues: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.CostCategoryValues.CostCategoryValues
+ Amazonka.CostExplorer.Types.CostCategoryValues: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.CostCategoryValues.CostCategoryValues
+ Amazonka.CostExplorer.Types.CostCategoryValues: instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.CostExplorer.Types.CostCategoryValues.CostCategoryValues
+ Amazonka.CostExplorer.Types.CostCategoryValues: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.CostCategoryValues.CostCategoryValues
+ Amazonka.CostExplorer.Types.CostCategoryValues: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.CostCategoryValues.CostCategoryValues
+ Amazonka.CostExplorer.Types.CostCategoryValues: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.CostCategoryValues.CostCategoryValues
+ Amazonka.CostExplorer.Types.CostCategoryValues: instance GHC.Read.Read Amazonka.CostExplorer.Types.CostCategoryValues.CostCategoryValues
+ Amazonka.CostExplorer.Types.CostCategoryValues: instance GHC.Show.Show Amazonka.CostExplorer.Types.CostCategoryValues.CostCategoryValues
+ Amazonka.CostExplorer.Types.CostCategoryValues: newCostCategoryValues :: CostCategoryValues
+ Amazonka.CostExplorer.Types.Coverage: Coverage' :: Maybe CoverageCost -> Maybe CoverageHours -> Maybe CoverageNormalizedUnits -> Coverage
+ Amazonka.CostExplorer.Types.Coverage: [$sel:coverageCost:Coverage'] :: Coverage -> Maybe CoverageCost
+ Amazonka.CostExplorer.Types.Coverage: [$sel:coverageHours:Coverage'] :: Coverage -> Maybe CoverageHours
+ Amazonka.CostExplorer.Types.Coverage: [$sel:coverageNormalizedUnits:Coverage'] :: Coverage -> Maybe CoverageNormalizedUnits
+ Amazonka.CostExplorer.Types.Coverage: coverage_coverageCost :: Lens' Coverage (Maybe CoverageCost)
+ Amazonka.CostExplorer.Types.Coverage: coverage_coverageHours :: Lens' Coverage (Maybe CoverageHours)
+ Amazonka.CostExplorer.Types.Coverage: coverage_coverageNormalizedUnits :: Lens' Coverage (Maybe CoverageNormalizedUnits)
+ Amazonka.CostExplorer.Types.Coverage: data Coverage
+ Amazonka.CostExplorer.Types.Coverage: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.Coverage.Coverage
+ Amazonka.CostExplorer.Types.Coverage: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.Coverage.Coverage
+ Amazonka.CostExplorer.Types.Coverage: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.Coverage.Coverage
+ Amazonka.CostExplorer.Types.Coverage: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.Coverage.Coverage
+ Amazonka.CostExplorer.Types.Coverage: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.Coverage.Coverage
+ Amazonka.CostExplorer.Types.Coverage: instance GHC.Read.Read Amazonka.CostExplorer.Types.Coverage.Coverage
+ Amazonka.CostExplorer.Types.Coverage: instance GHC.Show.Show Amazonka.CostExplorer.Types.Coverage.Coverage
+ Amazonka.CostExplorer.Types.Coverage: newCoverage :: Coverage
+ Amazonka.CostExplorer.Types.CoverageByTime: CoverageByTime' :: Maybe [ReservationCoverageGroup] -> Maybe DateInterval -> Maybe Coverage -> CoverageByTime
+ Amazonka.CostExplorer.Types.CoverageByTime: [$sel:groups:CoverageByTime'] :: CoverageByTime -> Maybe [ReservationCoverageGroup]
+ Amazonka.CostExplorer.Types.CoverageByTime: [$sel:timePeriod:CoverageByTime'] :: CoverageByTime -> Maybe DateInterval
+ Amazonka.CostExplorer.Types.CoverageByTime: [$sel:total:CoverageByTime'] :: CoverageByTime -> Maybe Coverage
+ Amazonka.CostExplorer.Types.CoverageByTime: coverageByTime_groups :: Lens' CoverageByTime (Maybe [ReservationCoverageGroup])
+ Amazonka.CostExplorer.Types.CoverageByTime: coverageByTime_timePeriod :: Lens' CoverageByTime (Maybe DateInterval)
+ Amazonka.CostExplorer.Types.CoverageByTime: coverageByTime_total :: Lens' CoverageByTime (Maybe Coverage)
+ Amazonka.CostExplorer.Types.CoverageByTime: data CoverageByTime
+ Amazonka.CostExplorer.Types.CoverageByTime: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.CoverageByTime.CoverageByTime
+ Amazonka.CostExplorer.Types.CoverageByTime: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.CoverageByTime.CoverageByTime
+ Amazonka.CostExplorer.Types.CoverageByTime: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.CoverageByTime.CoverageByTime
+ Amazonka.CostExplorer.Types.CoverageByTime: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.CoverageByTime.CoverageByTime
+ Amazonka.CostExplorer.Types.CoverageByTime: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.CoverageByTime.CoverageByTime
+ Amazonka.CostExplorer.Types.CoverageByTime: instance GHC.Read.Read Amazonka.CostExplorer.Types.CoverageByTime.CoverageByTime
+ Amazonka.CostExplorer.Types.CoverageByTime: instance GHC.Show.Show Amazonka.CostExplorer.Types.CoverageByTime.CoverageByTime
+ Amazonka.CostExplorer.Types.CoverageByTime: newCoverageByTime :: CoverageByTime
+ Amazonka.CostExplorer.Types.CoverageCost: CoverageCost' :: Maybe Text -> CoverageCost
+ Amazonka.CostExplorer.Types.CoverageCost: [$sel:onDemandCost:CoverageCost'] :: CoverageCost -> Maybe Text
+ Amazonka.CostExplorer.Types.CoverageCost: coverageCost_onDemandCost :: Lens' CoverageCost (Maybe Text)
+ Amazonka.CostExplorer.Types.CoverageCost: data CoverageCost
+ Amazonka.CostExplorer.Types.CoverageCost: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.CoverageCost.CoverageCost
+ Amazonka.CostExplorer.Types.CoverageCost: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.CoverageCost.CoverageCost
+ Amazonka.CostExplorer.Types.CoverageCost: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.CoverageCost.CoverageCost
+ Amazonka.CostExplorer.Types.CoverageCost: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.CoverageCost.CoverageCost
+ Amazonka.CostExplorer.Types.CoverageCost: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.CoverageCost.CoverageCost
+ Amazonka.CostExplorer.Types.CoverageCost: instance GHC.Read.Read Amazonka.CostExplorer.Types.CoverageCost.CoverageCost
+ Amazonka.CostExplorer.Types.CoverageCost: instance GHC.Show.Show Amazonka.CostExplorer.Types.CoverageCost.CoverageCost
+ Amazonka.CostExplorer.Types.CoverageCost: newCoverageCost :: CoverageCost
+ Amazonka.CostExplorer.Types.CoverageHours: CoverageHours' :: Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> CoverageHours
+ Amazonka.CostExplorer.Types.CoverageHours: [$sel:coverageHoursPercentage:CoverageHours'] :: CoverageHours -> Maybe Text
+ Amazonka.CostExplorer.Types.CoverageHours: [$sel:onDemandHours:CoverageHours'] :: CoverageHours -> Maybe Text
+ Amazonka.CostExplorer.Types.CoverageHours: [$sel:reservedHours:CoverageHours'] :: CoverageHours -> Maybe Text
+ Amazonka.CostExplorer.Types.CoverageHours: [$sel:totalRunningHours:CoverageHours'] :: CoverageHours -> Maybe Text
+ Amazonka.CostExplorer.Types.CoverageHours: coverageHours_coverageHoursPercentage :: Lens' CoverageHours (Maybe Text)
+ Amazonka.CostExplorer.Types.CoverageHours: coverageHours_onDemandHours :: Lens' CoverageHours (Maybe Text)
+ Amazonka.CostExplorer.Types.CoverageHours: coverageHours_reservedHours :: Lens' CoverageHours (Maybe Text)
+ Amazonka.CostExplorer.Types.CoverageHours: coverageHours_totalRunningHours :: Lens' CoverageHours (Maybe Text)
+ Amazonka.CostExplorer.Types.CoverageHours: data CoverageHours
+ Amazonka.CostExplorer.Types.CoverageHours: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.CoverageHours.CoverageHours
+ Amazonka.CostExplorer.Types.CoverageHours: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.CoverageHours.CoverageHours
+ Amazonka.CostExplorer.Types.CoverageHours: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.CoverageHours.CoverageHours
+ Amazonka.CostExplorer.Types.CoverageHours: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.CoverageHours.CoverageHours
+ Amazonka.CostExplorer.Types.CoverageHours: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.CoverageHours.CoverageHours
+ Amazonka.CostExplorer.Types.CoverageHours: instance GHC.Read.Read Amazonka.CostExplorer.Types.CoverageHours.CoverageHours
+ Amazonka.CostExplorer.Types.CoverageHours: instance GHC.Show.Show Amazonka.CostExplorer.Types.CoverageHours.CoverageHours
+ Amazonka.CostExplorer.Types.CoverageHours: newCoverageHours :: CoverageHours
+ Amazonka.CostExplorer.Types.CoverageNormalizedUnits: CoverageNormalizedUnits' :: Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> CoverageNormalizedUnits
+ Amazonka.CostExplorer.Types.CoverageNormalizedUnits: [$sel:coverageNormalizedUnitsPercentage:CoverageNormalizedUnits'] :: CoverageNormalizedUnits -> Maybe Text
+ Amazonka.CostExplorer.Types.CoverageNormalizedUnits: [$sel:onDemandNormalizedUnits:CoverageNormalizedUnits'] :: CoverageNormalizedUnits -> Maybe Text
+ Amazonka.CostExplorer.Types.CoverageNormalizedUnits: [$sel:reservedNormalizedUnits:CoverageNormalizedUnits'] :: CoverageNormalizedUnits -> Maybe Text
+ Amazonka.CostExplorer.Types.CoverageNormalizedUnits: [$sel:totalRunningNormalizedUnits:CoverageNormalizedUnits'] :: CoverageNormalizedUnits -> Maybe Text
+ Amazonka.CostExplorer.Types.CoverageNormalizedUnits: coverageNormalizedUnits_coverageNormalizedUnitsPercentage :: Lens' CoverageNormalizedUnits (Maybe Text)
+ Amazonka.CostExplorer.Types.CoverageNormalizedUnits: coverageNormalizedUnits_onDemandNormalizedUnits :: Lens' CoverageNormalizedUnits (Maybe Text)
+ Amazonka.CostExplorer.Types.CoverageNormalizedUnits: coverageNormalizedUnits_reservedNormalizedUnits :: Lens' CoverageNormalizedUnits (Maybe Text)
+ Amazonka.CostExplorer.Types.CoverageNormalizedUnits: coverageNormalizedUnits_totalRunningNormalizedUnits :: Lens' CoverageNormalizedUnits (Maybe Text)
+ Amazonka.CostExplorer.Types.CoverageNormalizedUnits: data CoverageNormalizedUnits
+ Amazonka.CostExplorer.Types.CoverageNormalizedUnits: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.CoverageNormalizedUnits.CoverageNormalizedUnits
+ Amazonka.CostExplorer.Types.CoverageNormalizedUnits: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.CoverageNormalizedUnits.CoverageNormalizedUnits
+ Amazonka.CostExplorer.Types.CoverageNormalizedUnits: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.CoverageNormalizedUnits.CoverageNormalizedUnits
+ Amazonka.CostExplorer.Types.CoverageNormalizedUnits: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.CoverageNormalizedUnits.CoverageNormalizedUnits
+ Amazonka.CostExplorer.Types.CoverageNormalizedUnits: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.CoverageNormalizedUnits.CoverageNormalizedUnits
+ Amazonka.CostExplorer.Types.CoverageNormalizedUnits: instance GHC.Read.Read Amazonka.CostExplorer.Types.CoverageNormalizedUnits.CoverageNormalizedUnits
+ Amazonka.CostExplorer.Types.CoverageNormalizedUnits: instance GHC.Show.Show Amazonka.CostExplorer.Types.CoverageNormalizedUnits.CoverageNormalizedUnits
+ Amazonka.CostExplorer.Types.CoverageNormalizedUnits: newCoverageNormalizedUnits :: CoverageNormalizedUnits
+ Amazonka.CostExplorer.Types.CurrentInstance: CurrentInstance' :: Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe ResourceDetails -> Maybe Text -> Maybe ResourceUtilization -> Maybe Text -> Maybe [TagValues] -> Maybe Text -> CurrentInstance
+ Amazonka.CostExplorer.Types.CurrentInstance: [$sel:currencyCode:CurrentInstance'] :: CurrentInstance -> Maybe Text
+ Amazonka.CostExplorer.Types.CurrentInstance: [$sel:instanceName:CurrentInstance'] :: CurrentInstance -> Maybe Text
+ Amazonka.CostExplorer.Types.CurrentInstance: [$sel:monthlyCost:CurrentInstance'] :: CurrentInstance -> Maybe Text
+ Amazonka.CostExplorer.Types.CurrentInstance: [$sel:onDemandHoursInLookbackPeriod:CurrentInstance'] :: CurrentInstance -> Maybe Text
+ Amazonka.CostExplorer.Types.CurrentInstance: [$sel:reservationCoveredHoursInLookbackPeriod:CurrentInstance'] :: CurrentInstance -> Maybe Text
+ Amazonka.CostExplorer.Types.CurrentInstance: [$sel:resourceDetails:CurrentInstance'] :: CurrentInstance -> Maybe ResourceDetails
+ Amazonka.CostExplorer.Types.CurrentInstance: [$sel:resourceId:CurrentInstance'] :: CurrentInstance -> Maybe Text
+ Amazonka.CostExplorer.Types.CurrentInstance: [$sel:resourceUtilization:CurrentInstance'] :: CurrentInstance -> Maybe ResourceUtilization
+ Amazonka.CostExplorer.Types.CurrentInstance: [$sel:savingsPlansCoveredHoursInLookbackPeriod:CurrentInstance'] :: CurrentInstance -> Maybe Text
+ Amazonka.CostExplorer.Types.CurrentInstance: [$sel:tags:CurrentInstance'] :: CurrentInstance -> Maybe [TagValues]
+ Amazonka.CostExplorer.Types.CurrentInstance: [$sel:totalRunningHoursInLookbackPeriod:CurrentInstance'] :: CurrentInstance -> Maybe Text
+ Amazonka.CostExplorer.Types.CurrentInstance: currentInstance_currencyCode :: Lens' CurrentInstance (Maybe Text)
+ Amazonka.CostExplorer.Types.CurrentInstance: currentInstance_instanceName :: Lens' CurrentInstance (Maybe Text)
+ Amazonka.CostExplorer.Types.CurrentInstance: currentInstance_monthlyCost :: Lens' CurrentInstance (Maybe Text)
+ Amazonka.CostExplorer.Types.CurrentInstance: currentInstance_onDemandHoursInLookbackPeriod :: Lens' CurrentInstance (Maybe Text)
+ Amazonka.CostExplorer.Types.CurrentInstance: currentInstance_reservationCoveredHoursInLookbackPeriod :: Lens' CurrentInstance (Maybe Text)
+ Amazonka.CostExplorer.Types.CurrentInstance: currentInstance_resourceDetails :: Lens' CurrentInstance (Maybe ResourceDetails)
+ Amazonka.CostExplorer.Types.CurrentInstance: currentInstance_resourceId :: Lens' CurrentInstance (Maybe Text)
+ Amazonka.CostExplorer.Types.CurrentInstance: currentInstance_resourceUtilization :: Lens' CurrentInstance (Maybe ResourceUtilization)
+ Amazonka.CostExplorer.Types.CurrentInstance: currentInstance_savingsPlansCoveredHoursInLookbackPeriod :: Lens' CurrentInstance (Maybe Text)
+ Amazonka.CostExplorer.Types.CurrentInstance: currentInstance_tags :: Lens' CurrentInstance (Maybe [TagValues])
+ Amazonka.CostExplorer.Types.CurrentInstance: currentInstance_totalRunningHoursInLookbackPeriod :: Lens' CurrentInstance (Maybe Text)
+ Amazonka.CostExplorer.Types.CurrentInstance: data CurrentInstance
+ Amazonka.CostExplorer.Types.CurrentInstance: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.CurrentInstance.CurrentInstance
+ Amazonka.CostExplorer.Types.CurrentInstance: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.CurrentInstance.CurrentInstance
+ Amazonka.CostExplorer.Types.CurrentInstance: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.CurrentInstance.CurrentInstance
+ Amazonka.CostExplorer.Types.CurrentInstance: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.CurrentInstance.CurrentInstance
+ Amazonka.CostExplorer.Types.CurrentInstance: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.CurrentInstance.CurrentInstance
+ Amazonka.CostExplorer.Types.CurrentInstance: instance GHC.Read.Read Amazonka.CostExplorer.Types.CurrentInstance.CurrentInstance
+ Amazonka.CostExplorer.Types.CurrentInstance: instance GHC.Show.Show Amazonka.CostExplorer.Types.CurrentInstance.CurrentInstance
+ Amazonka.CostExplorer.Types.CurrentInstance: newCurrentInstance :: CurrentInstance
+ Amazonka.CostExplorer.Types.DateInterval: DateInterval' :: Text -> Text -> DateInterval
+ Amazonka.CostExplorer.Types.DateInterval: [$sel:end:DateInterval'] :: DateInterval -> Text
+ Amazonka.CostExplorer.Types.DateInterval: [$sel:start:DateInterval'] :: DateInterval -> Text
+ Amazonka.CostExplorer.Types.DateInterval: data DateInterval
+ Amazonka.CostExplorer.Types.DateInterval: dateInterval_end :: Lens' DateInterval Text
+ Amazonka.CostExplorer.Types.DateInterval: dateInterval_start :: Lens' DateInterval Text
+ Amazonka.CostExplorer.Types.DateInterval: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.DateInterval.DateInterval
+ Amazonka.CostExplorer.Types.DateInterval: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.DateInterval.DateInterval
+ Amazonka.CostExplorer.Types.DateInterval: instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.CostExplorer.Types.DateInterval.DateInterval
+ Amazonka.CostExplorer.Types.DateInterval: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.DateInterval.DateInterval
+ Amazonka.CostExplorer.Types.DateInterval: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.DateInterval.DateInterval
+ Amazonka.CostExplorer.Types.DateInterval: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.DateInterval.DateInterval
+ Amazonka.CostExplorer.Types.DateInterval: instance GHC.Read.Read Amazonka.CostExplorer.Types.DateInterval.DateInterval
+ Amazonka.CostExplorer.Types.DateInterval: instance GHC.Show.Show Amazonka.CostExplorer.Types.DateInterval.DateInterval
+ Amazonka.CostExplorer.Types.DateInterval: newDateInterval :: Text -> Text -> DateInterval
+ Amazonka.CostExplorer.Types.Dimension: Dimension' :: Text -> Dimension
+ Amazonka.CostExplorer.Types.Dimension: [fromDimension] :: Dimension -> Text
+ Amazonka.CostExplorer.Types.Dimension: instance Amazonka.Data.ByteString.ToByteString Amazonka.CostExplorer.Types.Dimension.Dimension
+ Amazonka.CostExplorer.Types.Dimension: instance Amazonka.Data.Headers.ToHeader Amazonka.CostExplorer.Types.Dimension.Dimension
+ Amazonka.CostExplorer.Types.Dimension: instance Amazonka.Data.Log.ToLog Amazonka.CostExplorer.Types.Dimension.Dimension
+ Amazonka.CostExplorer.Types.Dimension: instance Amazonka.Data.Query.ToQuery Amazonka.CostExplorer.Types.Dimension.Dimension
+ Amazonka.CostExplorer.Types.Dimension: instance Amazonka.Data.Text.FromText Amazonka.CostExplorer.Types.Dimension.Dimension
+ Amazonka.CostExplorer.Types.Dimension: instance Amazonka.Data.Text.ToText Amazonka.CostExplorer.Types.Dimension.Dimension
+ Amazonka.CostExplorer.Types.Dimension: instance Amazonka.Data.XML.FromXML Amazonka.CostExplorer.Types.Dimension.Dimension
+ Amazonka.CostExplorer.Types.Dimension: instance Amazonka.Data.XML.ToXML Amazonka.CostExplorer.Types.Dimension.Dimension
+ Amazonka.CostExplorer.Types.Dimension: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.Dimension.Dimension
+ Amazonka.CostExplorer.Types.Dimension: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.Dimension.Dimension
+ Amazonka.CostExplorer.Types.Dimension: instance Data.Aeson.Types.FromJSON.FromJSONKey Amazonka.CostExplorer.Types.Dimension.Dimension
+ Amazonka.CostExplorer.Types.Dimension: instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.CostExplorer.Types.Dimension.Dimension
+ Amazonka.CostExplorer.Types.Dimension: instance Data.Aeson.Types.ToJSON.ToJSONKey Amazonka.CostExplorer.Types.Dimension.Dimension
+ Amazonka.CostExplorer.Types.Dimension: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.Dimension.Dimension
+ Amazonka.CostExplorer.Types.Dimension: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.Dimension.Dimension
+ Amazonka.CostExplorer.Types.Dimension: instance GHC.Classes.Ord Amazonka.CostExplorer.Types.Dimension.Dimension
+ Amazonka.CostExplorer.Types.Dimension: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.Dimension.Dimension
+ Amazonka.CostExplorer.Types.Dimension: instance GHC.Read.Read Amazonka.CostExplorer.Types.Dimension.Dimension
+ Amazonka.CostExplorer.Types.Dimension: instance GHC.Show.Show Amazonka.CostExplorer.Types.Dimension.Dimension
+ Amazonka.CostExplorer.Types.Dimension: newtype Dimension
+ Amazonka.CostExplorer.Types.Dimension: pattern Dimension_AGREEMENT_END_DATE_TIME_AFTER :: Dimension
+ Amazonka.CostExplorer.Types.Dimension: pattern Dimension_AGREEMENT_END_DATE_TIME_BEFORE :: Dimension
+ Amazonka.CostExplorer.Types.Dimension: pattern Dimension_ANOMALY_TOTAL_IMPACT_ABSOLUTE :: Dimension
+ Amazonka.CostExplorer.Types.Dimension: pattern Dimension_ANOMALY_TOTAL_IMPACT_PERCENTAGE :: Dimension
+ Amazonka.CostExplorer.Types.Dimension: pattern Dimension_AZ :: Dimension
+ Amazonka.CostExplorer.Types.Dimension: pattern Dimension_BILLING_ENTITY :: Dimension
+ Amazonka.CostExplorer.Types.Dimension: pattern Dimension_CACHE_ENGINE :: Dimension
+ Amazonka.CostExplorer.Types.Dimension: pattern Dimension_DATABASE_ENGINE :: Dimension
+ Amazonka.CostExplorer.Types.Dimension: pattern Dimension_DEPLOYMENT_OPTION :: Dimension
+ Amazonka.CostExplorer.Types.Dimension: pattern Dimension_INSTANCE_TYPE :: Dimension
+ Amazonka.CostExplorer.Types.Dimension: pattern Dimension_INSTANCE_TYPE_FAMILY :: Dimension
+ Amazonka.CostExplorer.Types.Dimension: pattern Dimension_INVOICING_ENTITY :: Dimension
+ Amazonka.CostExplorer.Types.Dimension: pattern Dimension_LEGAL_ENTITY_NAME :: Dimension
+ Amazonka.CostExplorer.Types.Dimension: pattern Dimension_LINKED_ACCOUNT :: Dimension
+ Amazonka.CostExplorer.Types.Dimension: pattern Dimension_LINKED_ACCOUNT_NAME :: Dimension
+ Amazonka.CostExplorer.Types.Dimension: pattern Dimension_OPERATING_SYSTEM :: Dimension
+ Amazonka.CostExplorer.Types.Dimension: pattern Dimension_OPERATION :: Dimension
+ Amazonka.CostExplorer.Types.Dimension: pattern Dimension_PAYMENT_OPTION :: Dimension
+ Amazonka.CostExplorer.Types.Dimension: pattern Dimension_PLATFORM :: Dimension
+ Amazonka.CostExplorer.Types.Dimension: pattern Dimension_PURCHASE_TYPE :: Dimension
+ Amazonka.CostExplorer.Types.Dimension: pattern Dimension_RECORD_TYPE :: Dimension
+ Amazonka.CostExplorer.Types.Dimension: pattern Dimension_REGION :: Dimension
+ Amazonka.CostExplorer.Types.Dimension: pattern Dimension_RESERVATION_ID :: Dimension
+ Amazonka.CostExplorer.Types.Dimension: pattern Dimension_RESOURCE_ID :: Dimension
+ Amazonka.CostExplorer.Types.Dimension: pattern Dimension_RIGHTSIZING_TYPE :: Dimension
+ Amazonka.CostExplorer.Types.Dimension: pattern Dimension_SAVINGS_PLANS_TYPE :: Dimension
+ Amazonka.CostExplorer.Types.Dimension: pattern Dimension_SAVINGS_PLAN_ARN :: Dimension
+ Amazonka.CostExplorer.Types.Dimension: pattern Dimension_SCOPE :: Dimension
+ Amazonka.CostExplorer.Types.Dimension: pattern Dimension_SERVICE :: Dimension
+ Amazonka.CostExplorer.Types.Dimension: pattern Dimension_SERVICE_CODE :: Dimension
+ Amazonka.CostExplorer.Types.Dimension: pattern Dimension_SUBSCRIPTION_ID :: Dimension
+ Amazonka.CostExplorer.Types.Dimension: pattern Dimension_TENANCY :: Dimension
+ Amazonka.CostExplorer.Types.Dimension: pattern Dimension_USAGE_TYPE :: Dimension
+ Amazonka.CostExplorer.Types.Dimension: pattern Dimension_USAGE_TYPE_GROUP :: Dimension
+ Amazonka.CostExplorer.Types.DimensionValues: DimensionValues' :: Maybe Dimension -> Maybe [MatchOption] -> Maybe [Text] -> DimensionValues
+ Amazonka.CostExplorer.Types.DimensionValues: [$sel:key:DimensionValues'] :: DimensionValues -> Maybe Dimension
+ Amazonka.CostExplorer.Types.DimensionValues: [$sel:matchOptions:DimensionValues'] :: DimensionValues -> Maybe [MatchOption]
+ Amazonka.CostExplorer.Types.DimensionValues: [$sel:values:DimensionValues'] :: DimensionValues -> Maybe [Text]
+ Amazonka.CostExplorer.Types.DimensionValues: data DimensionValues
+ Amazonka.CostExplorer.Types.DimensionValues: dimensionValues_key :: Lens' DimensionValues (Maybe Dimension)
+ Amazonka.CostExplorer.Types.DimensionValues: dimensionValues_matchOptions :: Lens' DimensionValues (Maybe [MatchOption])
+ Amazonka.CostExplorer.Types.DimensionValues: dimensionValues_values :: Lens' DimensionValues (Maybe [Text])
+ Amazonka.CostExplorer.Types.DimensionValues: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.DimensionValues.DimensionValues
+ Amazonka.CostExplorer.Types.DimensionValues: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.DimensionValues.DimensionValues
+ Amazonka.CostExplorer.Types.DimensionValues: instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.CostExplorer.Types.DimensionValues.DimensionValues
+ Amazonka.CostExplorer.Types.DimensionValues: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.DimensionValues.DimensionValues
+ Amazonka.CostExplorer.Types.DimensionValues: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.DimensionValues.DimensionValues
+ Amazonka.CostExplorer.Types.DimensionValues: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.DimensionValues.DimensionValues
+ Amazonka.CostExplorer.Types.DimensionValues: instance GHC.Read.Read Amazonka.CostExplorer.Types.DimensionValues.DimensionValues
+ Amazonka.CostExplorer.Types.DimensionValues: instance GHC.Show.Show Amazonka.CostExplorer.Types.DimensionValues.DimensionValues
+ Amazonka.CostExplorer.Types.DimensionValues: newDimensionValues :: DimensionValues
+ Amazonka.CostExplorer.Types.DimensionValuesWithAttributes: DimensionValuesWithAttributes' :: Maybe (HashMap Text Text) -> Maybe Text -> DimensionValuesWithAttributes
+ Amazonka.CostExplorer.Types.DimensionValuesWithAttributes: [$sel:attributes:DimensionValuesWithAttributes'] :: DimensionValuesWithAttributes -> Maybe (HashMap Text Text)
+ Amazonka.CostExplorer.Types.DimensionValuesWithAttributes: [$sel:value:DimensionValuesWithAttributes'] :: DimensionValuesWithAttributes -> Maybe Text
+ Amazonka.CostExplorer.Types.DimensionValuesWithAttributes: data DimensionValuesWithAttributes
+ Amazonka.CostExplorer.Types.DimensionValuesWithAttributes: dimensionValuesWithAttributes_attributes :: Lens' DimensionValuesWithAttributes (Maybe (HashMap Text Text))
+ Amazonka.CostExplorer.Types.DimensionValuesWithAttributes: dimensionValuesWithAttributes_value :: Lens' DimensionValuesWithAttributes (Maybe Text)
+ Amazonka.CostExplorer.Types.DimensionValuesWithAttributes: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.DimensionValuesWithAttributes.DimensionValuesWithAttributes
+ Amazonka.CostExplorer.Types.DimensionValuesWithAttributes: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.DimensionValuesWithAttributes.DimensionValuesWithAttributes
+ Amazonka.CostExplorer.Types.DimensionValuesWithAttributes: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.DimensionValuesWithAttributes.DimensionValuesWithAttributes
+ Amazonka.CostExplorer.Types.DimensionValuesWithAttributes: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.DimensionValuesWithAttributes.DimensionValuesWithAttributes
+ Amazonka.CostExplorer.Types.DimensionValuesWithAttributes: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.DimensionValuesWithAttributes.DimensionValuesWithAttributes
+ Amazonka.CostExplorer.Types.DimensionValuesWithAttributes: instance GHC.Read.Read Amazonka.CostExplorer.Types.DimensionValuesWithAttributes.DimensionValuesWithAttributes
+ Amazonka.CostExplorer.Types.DimensionValuesWithAttributes: instance GHC.Show.Show Amazonka.CostExplorer.Types.DimensionValuesWithAttributes.DimensionValuesWithAttributes
+ Amazonka.CostExplorer.Types.DimensionValuesWithAttributes: newDimensionValuesWithAttributes :: DimensionValuesWithAttributes
+ Amazonka.CostExplorer.Types.DiskResourceUtilization: DiskResourceUtilization' :: Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> DiskResourceUtilization
+ Amazonka.CostExplorer.Types.DiskResourceUtilization: [$sel:diskReadBytesPerSecond:DiskResourceUtilization'] :: DiskResourceUtilization -> Maybe Text
+ Amazonka.CostExplorer.Types.DiskResourceUtilization: [$sel:diskReadOpsPerSecond:DiskResourceUtilization'] :: DiskResourceUtilization -> Maybe Text
+ Amazonka.CostExplorer.Types.DiskResourceUtilization: [$sel:diskWriteBytesPerSecond:DiskResourceUtilization'] :: DiskResourceUtilization -> Maybe Text
+ Amazonka.CostExplorer.Types.DiskResourceUtilization: [$sel:diskWriteOpsPerSecond:DiskResourceUtilization'] :: DiskResourceUtilization -> Maybe Text
+ Amazonka.CostExplorer.Types.DiskResourceUtilization: data DiskResourceUtilization
+ Amazonka.CostExplorer.Types.DiskResourceUtilization: diskResourceUtilization_diskReadBytesPerSecond :: Lens' DiskResourceUtilization (Maybe Text)
+ Amazonka.CostExplorer.Types.DiskResourceUtilization: diskResourceUtilization_diskReadOpsPerSecond :: Lens' DiskResourceUtilization (Maybe Text)
+ Amazonka.CostExplorer.Types.DiskResourceUtilization: diskResourceUtilization_diskWriteBytesPerSecond :: Lens' DiskResourceUtilization (Maybe Text)
+ Amazonka.CostExplorer.Types.DiskResourceUtilization: diskResourceUtilization_diskWriteOpsPerSecond :: Lens' DiskResourceUtilization (Maybe Text)
+ Amazonka.CostExplorer.Types.DiskResourceUtilization: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.DiskResourceUtilization.DiskResourceUtilization
+ Amazonka.CostExplorer.Types.DiskResourceUtilization: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.DiskResourceUtilization.DiskResourceUtilization
+ Amazonka.CostExplorer.Types.DiskResourceUtilization: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.DiskResourceUtilization.DiskResourceUtilization
+ Amazonka.CostExplorer.Types.DiskResourceUtilization: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.DiskResourceUtilization.DiskResourceUtilization
+ Amazonka.CostExplorer.Types.DiskResourceUtilization: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.DiskResourceUtilization.DiskResourceUtilization
+ Amazonka.CostExplorer.Types.DiskResourceUtilization: instance GHC.Read.Read Amazonka.CostExplorer.Types.DiskResourceUtilization.DiskResourceUtilization
+ Amazonka.CostExplorer.Types.DiskResourceUtilization: instance GHC.Show.Show Amazonka.CostExplorer.Types.DiskResourceUtilization.DiskResourceUtilization
+ Amazonka.CostExplorer.Types.DiskResourceUtilization: newDiskResourceUtilization :: DiskResourceUtilization
+ Amazonka.CostExplorer.Types.EBSResourceUtilization: EBSResourceUtilization' :: Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> EBSResourceUtilization
+ Amazonka.CostExplorer.Types.EBSResourceUtilization: [$sel:ebsReadBytesPerSecond:EBSResourceUtilization'] :: EBSResourceUtilization -> Maybe Text
+ Amazonka.CostExplorer.Types.EBSResourceUtilization: [$sel:ebsReadOpsPerSecond:EBSResourceUtilization'] :: EBSResourceUtilization -> Maybe Text
+ Amazonka.CostExplorer.Types.EBSResourceUtilization: [$sel:ebsWriteBytesPerSecond:EBSResourceUtilization'] :: EBSResourceUtilization -> Maybe Text
+ Amazonka.CostExplorer.Types.EBSResourceUtilization: [$sel:ebsWriteOpsPerSecond:EBSResourceUtilization'] :: EBSResourceUtilization -> Maybe Text
+ Amazonka.CostExplorer.Types.EBSResourceUtilization: data EBSResourceUtilization
+ Amazonka.CostExplorer.Types.EBSResourceUtilization: eBSResourceUtilization_ebsReadBytesPerSecond :: Lens' EBSResourceUtilization (Maybe Text)
+ Amazonka.CostExplorer.Types.EBSResourceUtilization: eBSResourceUtilization_ebsReadOpsPerSecond :: Lens' EBSResourceUtilization (Maybe Text)
+ Amazonka.CostExplorer.Types.EBSResourceUtilization: eBSResourceUtilization_ebsWriteBytesPerSecond :: Lens' EBSResourceUtilization (Maybe Text)
+ Amazonka.CostExplorer.Types.EBSResourceUtilization: eBSResourceUtilization_ebsWriteOpsPerSecond :: Lens' EBSResourceUtilization (Maybe Text)
+ Amazonka.CostExplorer.Types.EBSResourceUtilization: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.EBSResourceUtilization.EBSResourceUtilization
+ Amazonka.CostExplorer.Types.EBSResourceUtilization: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.EBSResourceUtilization.EBSResourceUtilization
+ Amazonka.CostExplorer.Types.EBSResourceUtilization: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.EBSResourceUtilization.EBSResourceUtilization
+ Amazonka.CostExplorer.Types.EBSResourceUtilization: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.EBSResourceUtilization.EBSResourceUtilization
+ Amazonka.CostExplorer.Types.EBSResourceUtilization: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.EBSResourceUtilization.EBSResourceUtilization
+ Amazonka.CostExplorer.Types.EBSResourceUtilization: instance GHC.Read.Read Amazonka.CostExplorer.Types.EBSResourceUtilization.EBSResourceUtilization
+ Amazonka.CostExplorer.Types.EBSResourceUtilization: instance GHC.Show.Show Amazonka.CostExplorer.Types.EBSResourceUtilization.EBSResourceUtilization
+ Amazonka.CostExplorer.Types.EBSResourceUtilization: newEBSResourceUtilization :: EBSResourceUtilization
+ Amazonka.CostExplorer.Types.EC2InstanceDetails: EC2InstanceDetails' :: Maybe Text -> Maybe Bool -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Bool -> Maybe Text -> EC2InstanceDetails
+ Amazonka.CostExplorer.Types.EC2InstanceDetails: [$sel:availabilityZone:EC2InstanceDetails'] :: EC2InstanceDetails -> Maybe Text
+ Amazonka.CostExplorer.Types.EC2InstanceDetails: [$sel:currentGeneration:EC2InstanceDetails'] :: EC2InstanceDetails -> Maybe Bool
+ Amazonka.CostExplorer.Types.EC2InstanceDetails: [$sel:family:EC2InstanceDetails'] :: EC2InstanceDetails -> Maybe Text
+ Amazonka.CostExplorer.Types.EC2InstanceDetails: [$sel:instanceType:EC2InstanceDetails'] :: EC2InstanceDetails -> Maybe Text
+ Amazonka.CostExplorer.Types.EC2InstanceDetails: [$sel:platform:EC2InstanceDetails'] :: EC2InstanceDetails -> Maybe Text
+ Amazonka.CostExplorer.Types.EC2InstanceDetails: [$sel:region:EC2InstanceDetails'] :: EC2InstanceDetails -> Maybe Text
+ Amazonka.CostExplorer.Types.EC2InstanceDetails: [$sel:sizeFlexEligible:EC2InstanceDetails'] :: EC2InstanceDetails -> Maybe Bool
+ Amazonka.CostExplorer.Types.EC2InstanceDetails: [$sel:tenancy:EC2InstanceDetails'] :: EC2InstanceDetails -> Maybe Text
+ Amazonka.CostExplorer.Types.EC2InstanceDetails: data EC2InstanceDetails
+ Amazonka.CostExplorer.Types.EC2InstanceDetails: eC2InstanceDetails_availabilityZone :: Lens' EC2InstanceDetails (Maybe Text)
+ Amazonka.CostExplorer.Types.EC2InstanceDetails: eC2InstanceDetails_currentGeneration :: Lens' EC2InstanceDetails (Maybe Bool)
+ Amazonka.CostExplorer.Types.EC2InstanceDetails: eC2InstanceDetails_family :: Lens' EC2InstanceDetails (Maybe Text)
+ Amazonka.CostExplorer.Types.EC2InstanceDetails: eC2InstanceDetails_instanceType :: Lens' EC2InstanceDetails (Maybe Text)
+ Amazonka.CostExplorer.Types.EC2InstanceDetails: eC2InstanceDetails_platform :: Lens' EC2InstanceDetails (Maybe Text)
+ Amazonka.CostExplorer.Types.EC2InstanceDetails: eC2InstanceDetails_region :: Lens' EC2InstanceDetails (Maybe Text)
+ Amazonka.CostExplorer.Types.EC2InstanceDetails: eC2InstanceDetails_sizeFlexEligible :: Lens' EC2InstanceDetails (Maybe Bool)
+ Amazonka.CostExplorer.Types.EC2InstanceDetails: eC2InstanceDetails_tenancy :: Lens' EC2InstanceDetails (Maybe Text)
+ Amazonka.CostExplorer.Types.EC2InstanceDetails: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.EC2InstanceDetails.EC2InstanceDetails
+ Amazonka.CostExplorer.Types.EC2InstanceDetails: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.EC2InstanceDetails.EC2InstanceDetails
+ Amazonka.CostExplorer.Types.EC2InstanceDetails: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.EC2InstanceDetails.EC2InstanceDetails
+ Amazonka.CostExplorer.Types.EC2InstanceDetails: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.EC2InstanceDetails.EC2InstanceDetails
+ Amazonka.CostExplorer.Types.EC2InstanceDetails: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.EC2InstanceDetails.EC2InstanceDetails
+ Amazonka.CostExplorer.Types.EC2InstanceDetails: instance GHC.Read.Read Amazonka.CostExplorer.Types.EC2InstanceDetails.EC2InstanceDetails
+ Amazonka.CostExplorer.Types.EC2InstanceDetails: instance GHC.Show.Show Amazonka.CostExplorer.Types.EC2InstanceDetails.EC2InstanceDetails
+ Amazonka.CostExplorer.Types.EC2InstanceDetails: newEC2InstanceDetails :: EC2InstanceDetails
+ Amazonka.CostExplorer.Types.EC2ResourceDetails: EC2ResourceDetails' :: Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> EC2ResourceDetails
+ Amazonka.CostExplorer.Types.EC2ResourceDetails: [$sel:hourlyOnDemandRate:EC2ResourceDetails'] :: EC2ResourceDetails -> Maybe Text
+ Amazonka.CostExplorer.Types.EC2ResourceDetails: [$sel:instanceType:EC2ResourceDetails'] :: EC2ResourceDetails -> Maybe Text
+ Amazonka.CostExplorer.Types.EC2ResourceDetails: [$sel:memory:EC2ResourceDetails'] :: EC2ResourceDetails -> Maybe Text
+ Amazonka.CostExplorer.Types.EC2ResourceDetails: [$sel:networkPerformance:EC2ResourceDetails'] :: EC2ResourceDetails -> Maybe Text
+ Amazonka.CostExplorer.Types.EC2ResourceDetails: [$sel:platform:EC2ResourceDetails'] :: EC2ResourceDetails -> Maybe Text
+ Amazonka.CostExplorer.Types.EC2ResourceDetails: [$sel:region:EC2ResourceDetails'] :: EC2ResourceDetails -> Maybe Text
+ Amazonka.CostExplorer.Types.EC2ResourceDetails: [$sel:sku:EC2ResourceDetails'] :: EC2ResourceDetails -> Maybe Text
+ Amazonka.CostExplorer.Types.EC2ResourceDetails: [$sel:storage:EC2ResourceDetails'] :: EC2ResourceDetails -> Maybe Text
+ Amazonka.CostExplorer.Types.EC2ResourceDetails: [$sel:vcpu:EC2ResourceDetails'] :: EC2ResourceDetails -> Maybe Text
+ Amazonka.CostExplorer.Types.EC2ResourceDetails: data EC2ResourceDetails
+ Amazonka.CostExplorer.Types.EC2ResourceDetails: eC2ResourceDetails_hourlyOnDemandRate :: Lens' EC2ResourceDetails (Maybe Text)
+ Amazonka.CostExplorer.Types.EC2ResourceDetails: eC2ResourceDetails_instanceType :: Lens' EC2ResourceDetails (Maybe Text)
+ Amazonka.CostExplorer.Types.EC2ResourceDetails: eC2ResourceDetails_memory :: Lens' EC2ResourceDetails (Maybe Text)
+ Amazonka.CostExplorer.Types.EC2ResourceDetails: eC2ResourceDetails_networkPerformance :: Lens' EC2ResourceDetails (Maybe Text)
+ Amazonka.CostExplorer.Types.EC2ResourceDetails: eC2ResourceDetails_platform :: Lens' EC2ResourceDetails (Maybe Text)
+ Amazonka.CostExplorer.Types.EC2ResourceDetails: eC2ResourceDetails_region :: Lens' EC2ResourceDetails (Maybe Text)
+ Amazonka.CostExplorer.Types.EC2ResourceDetails: eC2ResourceDetails_sku :: Lens' EC2ResourceDetails (Maybe Text)
+ Amazonka.CostExplorer.Types.EC2ResourceDetails: eC2ResourceDetails_storage :: Lens' EC2ResourceDetails (Maybe Text)
+ Amazonka.CostExplorer.Types.EC2ResourceDetails: eC2ResourceDetails_vcpu :: Lens' EC2ResourceDetails (Maybe Text)
+ Amazonka.CostExplorer.Types.EC2ResourceDetails: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.EC2ResourceDetails.EC2ResourceDetails
+ Amazonka.CostExplorer.Types.EC2ResourceDetails: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.EC2ResourceDetails.EC2ResourceDetails
+ Amazonka.CostExplorer.Types.EC2ResourceDetails: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.EC2ResourceDetails.EC2ResourceDetails
+ Amazonka.CostExplorer.Types.EC2ResourceDetails: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.EC2ResourceDetails.EC2ResourceDetails
+ Amazonka.CostExplorer.Types.EC2ResourceDetails: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.EC2ResourceDetails.EC2ResourceDetails
+ Amazonka.CostExplorer.Types.EC2ResourceDetails: instance GHC.Read.Read Amazonka.CostExplorer.Types.EC2ResourceDetails.EC2ResourceDetails
+ Amazonka.CostExplorer.Types.EC2ResourceDetails: instance GHC.Show.Show Amazonka.CostExplorer.Types.EC2ResourceDetails.EC2ResourceDetails
+ Amazonka.CostExplorer.Types.EC2ResourceDetails: newEC2ResourceDetails :: EC2ResourceDetails
+ Amazonka.CostExplorer.Types.EC2ResourceUtilization: EC2ResourceUtilization' :: Maybe DiskResourceUtilization -> Maybe EBSResourceUtilization -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe NetworkResourceUtilization -> EC2ResourceUtilization
+ Amazonka.CostExplorer.Types.EC2ResourceUtilization: [$sel:diskResourceUtilization:EC2ResourceUtilization'] :: EC2ResourceUtilization -> Maybe DiskResourceUtilization
+ Amazonka.CostExplorer.Types.EC2ResourceUtilization: [$sel:eBSResourceUtilization:EC2ResourceUtilization'] :: EC2ResourceUtilization -> Maybe EBSResourceUtilization
+ Amazonka.CostExplorer.Types.EC2ResourceUtilization: [$sel:maxCpuUtilizationPercentage:EC2ResourceUtilization'] :: EC2ResourceUtilization -> Maybe Text
+ Amazonka.CostExplorer.Types.EC2ResourceUtilization: [$sel:maxMemoryUtilizationPercentage:EC2ResourceUtilization'] :: EC2ResourceUtilization -> Maybe Text
+ Amazonka.CostExplorer.Types.EC2ResourceUtilization: [$sel:maxStorageUtilizationPercentage:EC2ResourceUtilization'] :: EC2ResourceUtilization -> Maybe Text
+ Amazonka.CostExplorer.Types.EC2ResourceUtilization: [$sel:networkResourceUtilization:EC2ResourceUtilization'] :: EC2ResourceUtilization -> Maybe NetworkResourceUtilization
+ Amazonka.CostExplorer.Types.EC2ResourceUtilization: data EC2ResourceUtilization
+ Amazonka.CostExplorer.Types.EC2ResourceUtilization: eC2ResourceUtilization_diskResourceUtilization :: Lens' EC2ResourceUtilization (Maybe DiskResourceUtilization)
+ Amazonka.CostExplorer.Types.EC2ResourceUtilization: eC2ResourceUtilization_eBSResourceUtilization :: Lens' EC2ResourceUtilization (Maybe EBSResourceUtilization)
+ Amazonka.CostExplorer.Types.EC2ResourceUtilization: eC2ResourceUtilization_maxCpuUtilizationPercentage :: Lens' EC2ResourceUtilization (Maybe Text)
+ Amazonka.CostExplorer.Types.EC2ResourceUtilization: eC2ResourceUtilization_maxMemoryUtilizationPercentage :: Lens' EC2ResourceUtilization (Maybe Text)
+ Amazonka.CostExplorer.Types.EC2ResourceUtilization: eC2ResourceUtilization_maxStorageUtilizationPercentage :: Lens' EC2ResourceUtilization (Maybe Text)
+ Amazonka.CostExplorer.Types.EC2ResourceUtilization: eC2ResourceUtilization_networkResourceUtilization :: Lens' EC2ResourceUtilization (Maybe NetworkResourceUtilization)
+ Amazonka.CostExplorer.Types.EC2ResourceUtilization: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.EC2ResourceUtilization.EC2ResourceUtilization
+ Amazonka.CostExplorer.Types.EC2ResourceUtilization: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.EC2ResourceUtilization.EC2ResourceUtilization
+ Amazonka.CostExplorer.Types.EC2ResourceUtilization: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.EC2ResourceUtilization.EC2ResourceUtilization
+ Amazonka.CostExplorer.Types.EC2ResourceUtilization: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.EC2ResourceUtilization.EC2ResourceUtilization
+ Amazonka.CostExplorer.Types.EC2ResourceUtilization: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.EC2ResourceUtilization.EC2ResourceUtilization
+ Amazonka.CostExplorer.Types.EC2ResourceUtilization: instance GHC.Read.Read Amazonka.CostExplorer.Types.EC2ResourceUtilization.EC2ResourceUtilization
+ Amazonka.CostExplorer.Types.EC2ResourceUtilization: instance GHC.Show.Show Amazonka.CostExplorer.Types.EC2ResourceUtilization.EC2ResourceUtilization
+ Amazonka.CostExplorer.Types.EC2ResourceUtilization: newEC2ResourceUtilization :: EC2ResourceUtilization
+ Amazonka.CostExplorer.Types.EC2Specification: EC2Specification' :: Maybe OfferingClass -> EC2Specification
+ Amazonka.CostExplorer.Types.EC2Specification: [$sel:offeringClass:EC2Specification'] :: EC2Specification -> Maybe OfferingClass
+ Amazonka.CostExplorer.Types.EC2Specification: data EC2Specification
+ Amazonka.CostExplorer.Types.EC2Specification: eC2Specification_offeringClass :: Lens' EC2Specification (Maybe OfferingClass)
+ Amazonka.CostExplorer.Types.EC2Specification: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.EC2Specification.EC2Specification
+ Amazonka.CostExplorer.Types.EC2Specification: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.EC2Specification.EC2Specification
+ Amazonka.CostExplorer.Types.EC2Specification: instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.CostExplorer.Types.EC2Specification.EC2Specification
+ Amazonka.CostExplorer.Types.EC2Specification: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.EC2Specification.EC2Specification
+ Amazonka.CostExplorer.Types.EC2Specification: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.EC2Specification.EC2Specification
+ Amazonka.CostExplorer.Types.EC2Specification: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.EC2Specification.EC2Specification
+ Amazonka.CostExplorer.Types.EC2Specification: instance GHC.Read.Read Amazonka.CostExplorer.Types.EC2Specification.EC2Specification
+ Amazonka.CostExplorer.Types.EC2Specification: instance GHC.Show.Show Amazonka.CostExplorer.Types.EC2Specification.EC2Specification
+ Amazonka.CostExplorer.Types.EC2Specification: newEC2Specification :: EC2Specification
+ Amazonka.CostExplorer.Types.ESInstanceDetails: ESInstanceDetails' :: Maybe Bool -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Bool -> ESInstanceDetails
+ Amazonka.CostExplorer.Types.ESInstanceDetails: [$sel:currentGeneration:ESInstanceDetails'] :: ESInstanceDetails -> Maybe Bool
+ Amazonka.CostExplorer.Types.ESInstanceDetails: [$sel:instanceClass:ESInstanceDetails'] :: ESInstanceDetails -> Maybe Text
+ Amazonka.CostExplorer.Types.ESInstanceDetails: [$sel:instanceSize:ESInstanceDetails'] :: ESInstanceDetails -> Maybe Text
+ Amazonka.CostExplorer.Types.ESInstanceDetails: [$sel:region:ESInstanceDetails'] :: ESInstanceDetails -> Maybe Text
+ Amazonka.CostExplorer.Types.ESInstanceDetails: [$sel:sizeFlexEligible:ESInstanceDetails'] :: ESInstanceDetails -> Maybe Bool
+ Amazonka.CostExplorer.Types.ESInstanceDetails: data ESInstanceDetails
+ Amazonka.CostExplorer.Types.ESInstanceDetails: eSInstanceDetails_currentGeneration :: Lens' ESInstanceDetails (Maybe Bool)
+ Amazonka.CostExplorer.Types.ESInstanceDetails: eSInstanceDetails_instanceClass :: Lens' ESInstanceDetails (Maybe Text)
+ Amazonka.CostExplorer.Types.ESInstanceDetails: eSInstanceDetails_instanceSize :: Lens' ESInstanceDetails (Maybe Text)
+ Amazonka.CostExplorer.Types.ESInstanceDetails: eSInstanceDetails_region :: Lens' ESInstanceDetails (Maybe Text)
+ Amazonka.CostExplorer.Types.ESInstanceDetails: eSInstanceDetails_sizeFlexEligible :: Lens' ESInstanceDetails (Maybe Bool)
+ Amazonka.CostExplorer.Types.ESInstanceDetails: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.ESInstanceDetails.ESInstanceDetails
+ Amazonka.CostExplorer.Types.ESInstanceDetails: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.ESInstanceDetails.ESInstanceDetails
+ Amazonka.CostExplorer.Types.ESInstanceDetails: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.ESInstanceDetails.ESInstanceDetails
+ Amazonka.CostExplorer.Types.ESInstanceDetails: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.ESInstanceDetails.ESInstanceDetails
+ Amazonka.CostExplorer.Types.ESInstanceDetails: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.ESInstanceDetails.ESInstanceDetails
+ Amazonka.CostExplorer.Types.ESInstanceDetails: instance GHC.Read.Read Amazonka.CostExplorer.Types.ESInstanceDetails.ESInstanceDetails
+ Amazonka.CostExplorer.Types.ESInstanceDetails: instance GHC.Show.Show Amazonka.CostExplorer.Types.ESInstanceDetails.ESInstanceDetails
+ Amazonka.CostExplorer.Types.ESInstanceDetails: newESInstanceDetails :: ESInstanceDetails
+ Amazonka.CostExplorer.Types.ElastiCacheInstanceDetails: ElastiCacheInstanceDetails' :: Maybe Bool -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Bool -> ElastiCacheInstanceDetails
+ Amazonka.CostExplorer.Types.ElastiCacheInstanceDetails: [$sel:currentGeneration:ElastiCacheInstanceDetails'] :: ElastiCacheInstanceDetails -> Maybe Bool
+ Amazonka.CostExplorer.Types.ElastiCacheInstanceDetails: [$sel:family:ElastiCacheInstanceDetails'] :: ElastiCacheInstanceDetails -> Maybe Text
+ Amazonka.CostExplorer.Types.ElastiCacheInstanceDetails: [$sel:nodeType:ElastiCacheInstanceDetails'] :: ElastiCacheInstanceDetails -> Maybe Text
+ Amazonka.CostExplorer.Types.ElastiCacheInstanceDetails: [$sel:productDescription:ElastiCacheInstanceDetails'] :: ElastiCacheInstanceDetails -> Maybe Text
+ Amazonka.CostExplorer.Types.ElastiCacheInstanceDetails: [$sel:region:ElastiCacheInstanceDetails'] :: ElastiCacheInstanceDetails -> Maybe Text
+ Amazonka.CostExplorer.Types.ElastiCacheInstanceDetails: [$sel:sizeFlexEligible:ElastiCacheInstanceDetails'] :: ElastiCacheInstanceDetails -> Maybe Bool
+ Amazonka.CostExplorer.Types.ElastiCacheInstanceDetails: data ElastiCacheInstanceDetails
+ Amazonka.CostExplorer.Types.ElastiCacheInstanceDetails: elastiCacheInstanceDetails_currentGeneration :: Lens' ElastiCacheInstanceDetails (Maybe Bool)
+ Amazonka.CostExplorer.Types.ElastiCacheInstanceDetails: elastiCacheInstanceDetails_family :: Lens' ElastiCacheInstanceDetails (Maybe Text)
+ Amazonka.CostExplorer.Types.ElastiCacheInstanceDetails: elastiCacheInstanceDetails_nodeType :: Lens' ElastiCacheInstanceDetails (Maybe Text)
+ Amazonka.CostExplorer.Types.ElastiCacheInstanceDetails: elastiCacheInstanceDetails_productDescription :: Lens' ElastiCacheInstanceDetails (Maybe Text)
+ Amazonka.CostExplorer.Types.ElastiCacheInstanceDetails: elastiCacheInstanceDetails_region :: Lens' ElastiCacheInstanceDetails (Maybe Text)
+ Amazonka.CostExplorer.Types.ElastiCacheInstanceDetails: elastiCacheInstanceDetails_sizeFlexEligible :: Lens' ElastiCacheInstanceDetails (Maybe Bool)
+ Amazonka.CostExplorer.Types.ElastiCacheInstanceDetails: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.ElastiCacheInstanceDetails.ElastiCacheInstanceDetails
+ Amazonka.CostExplorer.Types.ElastiCacheInstanceDetails: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.ElastiCacheInstanceDetails.ElastiCacheInstanceDetails
+ Amazonka.CostExplorer.Types.ElastiCacheInstanceDetails: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.ElastiCacheInstanceDetails.ElastiCacheInstanceDetails
+ Amazonka.CostExplorer.Types.ElastiCacheInstanceDetails: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.ElastiCacheInstanceDetails.ElastiCacheInstanceDetails
+ Amazonka.CostExplorer.Types.ElastiCacheInstanceDetails: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.ElastiCacheInstanceDetails.ElastiCacheInstanceDetails
+ Amazonka.CostExplorer.Types.ElastiCacheInstanceDetails: instance GHC.Read.Read Amazonka.CostExplorer.Types.ElastiCacheInstanceDetails.ElastiCacheInstanceDetails
+ Amazonka.CostExplorer.Types.ElastiCacheInstanceDetails: instance GHC.Show.Show Amazonka.CostExplorer.Types.ElastiCacheInstanceDetails.ElastiCacheInstanceDetails
+ Amazonka.CostExplorer.Types.ElastiCacheInstanceDetails: newElastiCacheInstanceDetails :: ElastiCacheInstanceDetails
+ Amazonka.CostExplorer.Types.Expression: Expression' :: Maybe [Expression] -> Maybe CostCategoryValues -> Maybe DimensionValues -> Maybe Expression -> Maybe [Expression] -> Maybe TagValues -> Expression
+ Amazonka.CostExplorer.Types.Expression: [$sel:and:Expression'] :: Expression -> Maybe [Expression]
+ Amazonka.CostExplorer.Types.Expression: [$sel:costCategories:Expression'] :: Expression -> Maybe CostCategoryValues
+ Amazonka.CostExplorer.Types.Expression: [$sel:dimensions:Expression'] :: Expression -> Maybe DimensionValues
+ Amazonka.CostExplorer.Types.Expression: [$sel:not:Expression'] :: Expression -> Maybe Expression
+ Amazonka.CostExplorer.Types.Expression: [$sel:or:Expression'] :: Expression -> Maybe [Expression]
+ Amazonka.CostExplorer.Types.Expression: [$sel:tags:Expression'] :: Expression -> Maybe TagValues
+ Amazonka.CostExplorer.Types.Expression: data Expression
+ Amazonka.CostExplorer.Types.Expression: expression_and :: Lens' Expression (Maybe [Expression])
+ Amazonka.CostExplorer.Types.Expression: expression_costCategories :: Lens' Expression (Maybe CostCategoryValues)
+ Amazonka.CostExplorer.Types.Expression: expression_dimensions :: Lens' Expression (Maybe DimensionValues)
+ Amazonka.CostExplorer.Types.Expression: expression_not :: Lens' Expression (Maybe Expression)
+ Amazonka.CostExplorer.Types.Expression: expression_or :: Lens' Expression (Maybe [Expression])
+ Amazonka.CostExplorer.Types.Expression: expression_tags :: Lens' Expression (Maybe TagValues)
+ Amazonka.CostExplorer.Types.Expression: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.Expression.Expression
+ Amazonka.CostExplorer.Types.Expression: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.Expression.Expression
+ Amazonka.CostExplorer.Types.Expression: instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.CostExplorer.Types.Expression.Expression
+ Amazonka.CostExplorer.Types.Expression: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.Expression.Expression
+ Amazonka.CostExplorer.Types.Expression: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.Expression.Expression
+ Amazonka.CostExplorer.Types.Expression: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.Expression.Expression
+ Amazonka.CostExplorer.Types.Expression: instance GHC.Read.Read Amazonka.CostExplorer.Types.Expression.Expression
+ Amazonka.CostExplorer.Types.Expression: instance GHC.Show.Show Amazonka.CostExplorer.Types.Expression.Expression
+ Amazonka.CostExplorer.Types.Expression: newExpression :: Expression
+ Amazonka.CostExplorer.Types.FindingReasonCode: FindingReasonCode' :: Text -> FindingReasonCode
+ Amazonka.CostExplorer.Types.FindingReasonCode: [fromFindingReasonCode] :: FindingReasonCode -> Text
+ Amazonka.CostExplorer.Types.FindingReasonCode: instance Amazonka.Data.ByteString.ToByteString Amazonka.CostExplorer.Types.FindingReasonCode.FindingReasonCode
+ Amazonka.CostExplorer.Types.FindingReasonCode: instance Amazonka.Data.Headers.ToHeader Amazonka.CostExplorer.Types.FindingReasonCode.FindingReasonCode
+ Amazonka.CostExplorer.Types.FindingReasonCode: instance Amazonka.Data.Log.ToLog Amazonka.CostExplorer.Types.FindingReasonCode.FindingReasonCode
+ Amazonka.CostExplorer.Types.FindingReasonCode: instance Amazonka.Data.Query.ToQuery Amazonka.CostExplorer.Types.FindingReasonCode.FindingReasonCode
+ Amazonka.CostExplorer.Types.FindingReasonCode: instance Amazonka.Data.Text.FromText Amazonka.CostExplorer.Types.FindingReasonCode.FindingReasonCode
+ Amazonka.CostExplorer.Types.FindingReasonCode: instance Amazonka.Data.Text.ToText Amazonka.CostExplorer.Types.FindingReasonCode.FindingReasonCode
+ Amazonka.CostExplorer.Types.FindingReasonCode: instance Amazonka.Data.XML.FromXML Amazonka.CostExplorer.Types.FindingReasonCode.FindingReasonCode
+ Amazonka.CostExplorer.Types.FindingReasonCode: instance Amazonka.Data.XML.ToXML Amazonka.CostExplorer.Types.FindingReasonCode.FindingReasonCode
+ Amazonka.CostExplorer.Types.FindingReasonCode: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.FindingReasonCode.FindingReasonCode
+ Amazonka.CostExplorer.Types.FindingReasonCode: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.FindingReasonCode.FindingReasonCode
+ Amazonka.CostExplorer.Types.FindingReasonCode: instance Data.Aeson.Types.FromJSON.FromJSONKey Amazonka.CostExplorer.Types.FindingReasonCode.FindingReasonCode
+ Amazonka.CostExplorer.Types.FindingReasonCode: instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.CostExplorer.Types.FindingReasonCode.FindingReasonCode
+ Amazonka.CostExplorer.Types.FindingReasonCode: instance Data.Aeson.Types.ToJSON.ToJSONKey Amazonka.CostExplorer.Types.FindingReasonCode.FindingReasonCode
+ Amazonka.CostExplorer.Types.FindingReasonCode: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.FindingReasonCode.FindingReasonCode
+ Amazonka.CostExplorer.Types.FindingReasonCode: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.FindingReasonCode.FindingReasonCode
+ Amazonka.CostExplorer.Types.FindingReasonCode: instance GHC.Classes.Ord Amazonka.CostExplorer.Types.FindingReasonCode.FindingReasonCode
+ Amazonka.CostExplorer.Types.FindingReasonCode: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.FindingReasonCode.FindingReasonCode
+ Amazonka.CostExplorer.Types.FindingReasonCode: instance GHC.Read.Read Amazonka.CostExplorer.Types.FindingReasonCode.FindingReasonCode
+ Amazonka.CostExplorer.Types.FindingReasonCode: instance GHC.Show.Show Amazonka.CostExplorer.Types.FindingReasonCode.FindingReasonCode
+ Amazonka.CostExplorer.Types.FindingReasonCode: newtype FindingReasonCode
+ Amazonka.CostExplorer.Types.FindingReasonCode: pattern FindingReasonCode_CPU_OVER_PROVISIONED :: FindingReasonCode
+ Amazonka.CostExplorer.Types.FindingReasonCode: pattern FindingReasonCode_CPU_UNDER_PROVISIONED :: FindingReasonCode
+ Amazonka.CostExplorer.Types.FindingReasonCode: pattern FindingReasonCode_DISK_IOPS_OVER_PROVISIONED :: FindingReasonCode
+ Amazonka.CostExplorer.Types.FindingReasonCode: pattern FindingReasonCode_DISK_IOPS_UNDER_PROVISIONED :: FindingReasonCode
+ Amazonka.CostExplorer.Types.FindingReasonCode: pattern FindingReasonCode_DISK_THROUGHPUT_OVER_PROVISIONED :: FindingReasonCode
+ Amazonka.CostExplorer.Types.FindingReasonCode: pattern FindingReasonCode_DISK_THROUGHPUT_UNDER_PROVISIONED :: FindingReasonCode
+ Amazonka.CostExplorer.Types.FindingReasonCode: pattern FindingReasonCode_EBS_IOPS_OVER_PROVISIONED :: FindingReasonCode
+ Amazonka.CostExplorer.Types.FindingReasonCode: pattern FindingReasonCode_EBS_IOPS_UNDER_PROVISIONED :: FindingReasonCode
+ Amazonka.CostExplorer.Types.FindingReasonCode: pattern FindingReasonCode_EBS_THROUGHPUT_OVER_PROVISIONED :: FindingReasonCode
+ Amazonka.CostExplorer.Types.FindingReasonCode: pattern FindingReasonCode_EBS_THROUGHPUT_UNDER_PROVISIONED :: FindingReasonCode
+ Amazonka.CostExplorer.Types.FindingReasonCode: pattern FindingReasonCode_MEMORY_OVER_PROVISIONED :: FindingReasonCode
+ Amazonka.CostExplorer.Types.FindingReasonCode: pattern FindingReasonCode_MEMORY_UNDER_PROVISIONED :: FindingReasonCode
+ Amazonka.CostExplorer.Types.FindingReasonCode: pattern FindingReasonCode_NETWORK_BANDWIDTH_OVER_PROVISIONED :: FindingReasonCode
+ Amazonka.CostExplorer.Types.FindingReasonCode: pattern FindingReasonCode_NETWORK_BANDWIDTH_UNDER_PROVISIONED :: FindingReasonCode
+ Amazonka.CostExplorer.Types.FindingReasonCode: pattern FindingReasonCode_NETWORK_PPS_OVER_PROVISIONED :: FindingReasonCode
+ Amazonka.CostExplorer.Types.FindingReasonCode: pattern FindingReasonCode_NETWORK_PPS_UNDER_PROVISIONED :: FindingReasonCode
+ Amazonka.CostExplorer.Types.ForecastResult: ForecastResult' :: Maybe Text -> Maybe Text -> Maybe Text -> Maybe DateInterval -> ForecastResult
+ Amazonka.CostExplorer.Types.ForecastResult: [$sel:meanValue:ForecastResult'] :: ForecastResult -> Maybe Text
+ Amazonka.CostExplorer.Types.ForecastResult: [$sel:predictionIntervalLowerBound:ForecastResult'] :: ForecastResult -> Maybe Text
+ Amazonka.CostExplorer.Types.ForecastResult: [$sel:predictionIntervalUpperBound:ForecastResult'] :: ForecastResult -> Maybe Text
+ Amazonka.CostExplorer.Types.ForecastResult: [$sel:timePeriod:ForecastResult'] :: ForecastResult -> Maybe DateInterval
+ Amazonka.CostExplorer.Types.ForecastResult: data ForecastResult
+ Amazonka.CostExplorer.Types.ForecastResult: forecastResult_meanValue :: Lens' ForecastResult (Maybe Text)
+ Amazonka.CostExplorer.Types.ForecastResult: forecastResult_predictionIntervalLowerBound :: Lens' ForecastResult (Maybe Text)
+ Amazonka.CostExplorer.Types.ForecastResult: forecastResult_predictionIntervalUpperBound :: Lens' ForecastResult (Maybe Text)
+ Amazonka.CostExplorer.Types.ForecastResult: forecastResult_timePeriod :: Lens' ForecastResult (Maybe DateInterval)
+ Amazonka.CostExplorer.Types.ForecastResult: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.ForecastResult.ForecastResult
+ Amazonka.CostExplorer.Types.ForecastResult: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.ForecastResult.ForecastResult
+ Amazonka.CostExplorer.Types.ForecastResult: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.ForecastResult.ForecastResult
+ Amazonka.CostExplorer.Types.ForecastResult: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.ForecastResult.ForecastResult
+ Amazonka.CostExplorer.Types.ForecastResult: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.ForecastResult.ForecastResult
+ Amazonka.CostExplorer.Types.ForecastResult: instance GHC.Read.Read Amazonka.CostExplorer.Types.ForecastResult.ForecastResult
+ Amazonka.CostExplorer.Types.ForecastResult: instance GHC.Show.Show Amazonka.CostExplorer.Types.ForecastResult.ForecastResult
+ Amazonka.CostExplorer.Types.ForecastResult: newForecastResult :: ForecastResult
+ Amazonka.CostExplorer.Types.GenerationStatus: GenerationStatus' :: Text -> GenerationStatus
+ Amazonka.CostExplorer.Types.GenerationStatus: [fromGenerationStatus] :: GenerationStatus -> Text
+ Amazonka.CostExplorer.Types.GenerationStatus: instance Amazonka.Data.ByteString.ToByteString Amazonka.CostExplorer.Types.GenerationStatus.GenerationStatus
+ Amazonka.CostExplorer.Types.GenerationStatus: instance Amazonka.Data.Headers.ToHeader Amazonka.CostExplorer.Types.GenerationStatus.GenerationStatus
+ Amazonka.CostExplorer.Types.GenerationStatus: instance Amazonka.Data.Log.ToLog Amazonka.CostExplorer.Types.GenerationStatus.GenerationStatus
+ Amazonka.CostExplorer.Types.GenerationStatus: instance Amazonka.Data.Query.ToQuery Amazonka.CostExplorer.Types.GenerationStatus.GenerationStatus
+ Amazonka.CostExplorer.Types.GenerationStatus: instance Amazonka.Data.Text.FromText Amazonka.CostExplorer.Types.GenerationStatus.GenerationStatus
+ Amazonka.CostExplorer.Types.GenerationStatus: instance Amazonka.Data.Text.ToText Amazonka.CostExplorer.Types.GenerationStatus.GenerationStatus
+ Amazonka.CostExplorer.Types.GenerationStatus: instance Amazonka.Data.XML.FromXML Amazonka.CostExplorer.Types.GenerationStatus.GenerationStatus
+ Amazonka.CostExplorer.Types.GenerationStatus: instance Amazonka.Data.XML.ToXML Amazonka.CostExplorer.Types.GenerationStatus.GenerationStatus
+ Amazonka.CostExplorer.Types.GenerationStatus: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.GenerationStatus.GenerationStatus
+ Amazonka.CostExplorer.Types.GenerationStatus: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.GenerationStatus.GenerationStatus
+ Amazonka.CostExplorer.Types.GenerationStatus: instance Data.Aeson.Types.FromJSON.FromJSONKey Amazonka.CostExplorer.Types.GenerationStatus.GenerationStatus
+ Amazonka.CostExplorer.Types.GenerationStatus: instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.CostExplorer.Types.GenerationStatus.GenerationStatus
+ Amazonka.CostExplorer.Types.GenerationStatus: instance Data.Aeson.Types.ToJSON.ToJSONKey Amazonka.CostExplorer.Types.GenerationStatus.GenerationStatus
+ Amazonka.CostExplorer.Types.GenerationStatus: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.GenerationStatus.GenerationStatus
+ Amazonka.CostExplorer.Types.GenerationStatus: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.GenerationStatus.GenerationStatus
+ Amazonka.CostExplorer.Types.GenerationStatus: instance GHC.Classes.Ord Amazonka.CostExplorer.Types.GenerationStatus.GenerationStatus
+ Amazonka.CostExplorer.Types.GenerationStatus: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.GenerationStatus.GenerationStatus
+ Amazonka.CostExplorer.Types.GenerationStatus: instance GHC.Read.Read Amazonka.CostExplorer.Types.GenerationStatus.GenerationStatus
+ Amazonka.CostExplorer.Types.GenerationStatus: instance GHC.Show.Show Amazonka.CostExplorer.Types.GenerationStatus.GenerationStatus
+ Amazonka.CostExplorer.Types.GenerationStatus: newtype GenerationStatus
+ Amazonka.CostExplorer.Types.GenerationStatus: pattern GenerationStatus_FAILED :: GenerationStatus
+ Amazonka.CostExplorer.Types.GenerationStatus: pattern GenerationStatus_PROCESSING :: GenerationStatus
+ Amazonka.CostExplorer.Types.GenerationStatus: pattern GenerationStatus_SUCCEEDED :: GenerationStatus
+ Amazonka.CostExplorer.Types.GenerationSummary: GenerationSummary' :: Maybe Text -> Maybe Text -> Maybe Text -> Maybe GenerationStatus -> Maybe Text -> GenerationSummary
+ Amazonka.CostExplorer.Types.GenerationSummary: [$sel:estimatedCompletionTime:GenerationSummary'] :: GenerationSummary -> Maybe Text
+ Amazonka.CostExplorer.Types.GenerationSummary: [$sel:generationCompletionTime:GenerationSummary'] :: GenerationSummary -> Maybe Text
+ Amazonka.CostExplorer.Types.GenerationSummary: [$sel:generationStartedTime:GenerationSummary'] :: GenerationSummary -> Maybe Text
+ Amazonka.CostExplorer.Types.GenerationSummary: [$sel:generationStatus:GenerationSummary'] :: GenerationSummary -> Maybe GenerationStatus
+ Amazonka.CostExplorer.Types.GenerationSummary: [$sel:recommendationId:GenerationSummary'] :: GenerationSummary -> Maybe Text
+ Amazonka.CostExplorer.Types.GenerationSummary: data GenerationSummary
+ Amazonka.CostExplorer.Types.GenerationSummary: generationSummary_estimatedCompletionTime :: Lens' GenerationSummary (Maybe Text)
+ Amazonka.CostExplorer.Types.GenerationSummary: generationSummary_generationCompletionTime :: Lens' GenerationSummary (Maybe Text)
+ Amazonka.CostExplorer.Types.GenerationSummary: generationSummary_generationStartedTime :: Lens' GenerationSummary (Maybe Text)
+ Amazonka.CostExplorer.Types.GenerationSummary: generationSummary_generationStatus :: Lens' GenerationSummary (Maybe GenerationStatus)
+ Amazonka.CostExplorer.Types.GenerationSummary: generationSummary_recommendationId :: Lens' GenerationSummary (Maybe Text)
+ Amazonka.CostExplorer.Types.GenerationSummary: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.GenerationSummary.GenerationSummary
+ Amazonka.CostExplorer.Types.GenerationSummary: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.GenerationSummary.GenerationSummary
+ Amazonka.CostExplorer.Types.GenerationSummary: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.GenerationSummary.GenerationSummary
+ Amazonka.CostExplorer.Types.GenerationSummary: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.GenerationSummary.GenerationSummary
+ Amazonka.CostExplorer.Types.GenerationSummary: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.GenerationSummary.GenerationSummary
+ Amazonka.CostExplorer.Types.GenerationSummary: instance GHC.Read.Read Amazonka.CostExplorer.Types.GenerationSummary.GenerationSummary
+ Amazonka.CostExplorer.Types.GenerationSummary: instance GHC.Show.Show Amazonka.CostExplorer.Types.GenerationSummary.GenerationSummary
+ Amazonka.CostExplorer.Types.GenerationSummary: newGenerationSummary :: GenerationSummary
+ Amazonka.CostExplorer.Types.Granularity: Granularity' :: Text -> Granularity
+ Amazonka.CostExplorer.Types.Granularity: [fromGranularity] :: Granularity -> Text
+ Amazonka.CostExplorer.Types.Granularity: instance Amazonka.Data.ByteString.ToByteString Amazonka.CostExplorer.Types.Granularity.Granularity
+ Amazonka.CostExplorer.Types.Granularity: instance Amazonka.Data.Headers.ToHeader Amazonka.CostExplorer.Types.Granularity.Granularity
+ Amazonka.CostExplorer.Types.Granularity: instance Amazonka.Data.Log.ToLog Amazonka.CostExplorer.Types.Granularity.Granularity
+ Amazonka.CostExplorer.Types.Granularity: instance Amazonka.Data.Query.ToQuery Amazonka.CostExplorer.Types.Granularity.Granularity
+ Amazonka.CostExplorer.Types.Granularity: instance Amazonka.Data.Text.FromText Amazonka.CostExplorer.Types.Granularity.Granularity
+ Amazonka.CostExplorer.Types.Granularity: instance Amazonka.Data.Text.ToText Amazonka.CostExplorer.Types.Granularity.Granularity
+ Amazonka.CostExplorer.Types.Granularity: instance Amazonka.Data.XML.FromXML Amazonka.CostExplorer.Types.Granularity.Granularity
+ Amazonka.CostExplorer.Types.Granularity: instance Amazonka.Data.XML.ToXML Amazonka.CostExplorer.Types.Granularity.Granularity
+ Amazonka.CostExplorer.Types.Granularity: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.Granularity.Granularity
+ Amazonka.CostExplorer.Types.Granularity: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.Granularity.Granularity
+ Amazonka.CostExplorer.Types.Granularity: instance Data.Aeson.Types.FromJSON.FromJSONKey Amazonka.CostExplorer.Types.Granularity.Granularity
+ Amazonka.CostExplorer.Types.Granularity: instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.CostExplorer.Types.Granularity.Granularity
+ Amazonka.CostExplorer.Types.Granularity: instance Data.Aeson.Types.ToJSON.ToJSONKey Amazonka.CostExplorer.Types.Granularity.Granularity
+ Amazonka.CostExplorer.Types.Granularity: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.Granularity.Granularity
+ Amazonka.CostExplorer.Types.Granularity: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.Granularity.Granularity
+ Amazonka.CostExplorer.Types.Granularity: instance GHC.Classes.Ord Amazonka.CostExplorer.Types.Granularity.Granularity
+ Amazonka.CostExplorer.Types.Granularity: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.Granularity.Granularity
+ Amazonka.CostExplorer.Types.Granularity: instance GHC.Read.Read Amazonka.CostExplorer.Types.Granularity.Granularity
+ Amazonka.CostExplorer.Types.Granularity: instance GHC.Show.Show Amazonka.CostExplorer.Types.Granularity.Granularity
+ Amazonka.CostExplorer.Types.Granularity: newtype Granularity
+ Amazonka.CostExplorer.Types.Granularity: pattern Granularity_DAILY :: Granularity
+ Amazonka.CostExplorer.Types.Granularity: pattern Granularity_HOURLY :: Granularity
+ Amazonka.CostExplorer.Types.Granularity: pattern Granularity_MONTHLY :: Granularity
+ Amazonka.CostExplorer.Types.Group: Group' :: Maybe [Text] -> Maybe (HashMap Text MetricValue) -> Group
+ Amazonka.CostExplorer.Types.Group: [$sel:keys:Group'] :: Group -> Maybe [Text]
+ Amazonka.CostExplorer.Types.Group: [$sel:metrics:Group'] :: Group -> Maybe (HashMap Text MetricValue)
+ Amazonka.CostExplorer.Types.Group: data Group
+ Amazonka.CostExplorer.Types.Group: group_keys :: Lens' Group (Maybe [Text])
+ Amazonka.CostExplorer.Types.Group: group_metrics :: Lens' Group (Maybe (HashMap Text MetricValue))
+ Amazonka.CostExplorer.Types.Group: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.Group.Group
+ Amazonka.CostExplorer.Types.Group: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.Group.Group
+ Amazonka.CostExplorer.Types.Group: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.Group.Group
+ Amazonka.CostExplorer.Types.Group: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.Group.Group
+ Amazonka.CostExplorer.Types.Group: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.Group.Group
+ Amazonka.CostExplorer.Types.Group: instance GHC.Read.Read Amazonka.CostExplorer.Types.Group.Group
+ Amazonka.CostExplorer.Types.Group: instance GHC.Show.Show Amazonka.CostExplorer.Types.Group.Group
+ Amazonka.CostExplorer.Types.Group: newGroup :: Group
+ Amazonka.CostExplorer.Types.GroupDefinition: GroupDefinition' :: Maybe Text -> Maybe GroupDefinitionType -> GroupDefinition
+ Amazonka.CostExplorer.Types.GroupDefinition: [$sel:key:GroupDefinition'] :: GroupDefinition -> Maybe Text
+ Amazonka.CostExplorer.Types.GroupDefinition: [$sel:type':GroupDefinition'] :: GroupDefinition -> Maybe GroupDefinitionType
+ Amazonka.CostExplorer.Types.GroupDefinition: data GroupDefinition
+ Amazonka.CostExplorer.Types.GroupDefinition: groupDefinition_key :: Lens' GroupDefinition (Maybe Text)
+ Amazonka.CostExplorer.Types.GroupDefinition: groupDefinition_type :: Lens' GroupDefinition (Maybe GroupDefinitionType)
+ Amazonka.CostExplorer.Types.GroupDefinition: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.GroupDefinition.GroupDefinition
+ Amazonka.CostExplorer.Types.GroupDefinition: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.GroupDefinition.GroupDefinition
+ Amazonka.CostExplorer.Types.GroupDefinition: instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.CostExplorer.Types.GroupDefinition.GroupDefinition
+ Amazonka.CostExplorer.Types.GroupDefinition: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.GroupDefinition.GroupDefinition
+ Amazonka.CostExplorer.Types.GroupDefinition: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.GroupDefinition.GroupDefinition
+ Amazonka.CostExplorer.Types.GroupDefinition: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.GroupDefinition.GroupDefinition
+ Amazonka.CostExplorer.Types.GroupDefinition: instance GHC.Read.Read Amazonka.CostExplorer.Types.GroupDefinition.GroupDefinition
+ Amazonka.CostExplorer.Types.GroupDefinition: instance GHC.Show.Show Amazonka.CostExplorer.Types.GroupDefinition.GroupDefinition
+ Amazonka.CostExplorer.Types.GroupDefinition: newGroupDefinition :: GroupDefinition
+ Amazonka.CostExplorer.Types.GroupDefinitionType: GroupDefinitionType' :: Text -> GroupDefinitionType
+ Amazonka.CostExplorer.Types.GroupDefinitionType: [fromGroupDefinitionType] :: GroupDefinitionType -> Text
+ Amazonka.CostExplorer.Types.GroupDefinitionType: instance Amazonka.Data.ByteString.ToByteString Amazonka.CostExplorer.Types.GroupDefinitionType.GroupDefinitionType
+ Amazonka.CostExplorer.Types.GroupDefinitionType: instance Amazonka.Data.Headers.ToHeader Amazonka.CostExplorer.Types.GroupDefinitionType.GroupDefinitionType
+ Amazonka.CostExplorer.Types.GroupDefinitionType: instance Amazonka.Data.Log.ToLog Amazonka.CostExplorer.Types.GroupDefinitionType.GroupDefinitionType
+ Amazonka.CostExplorer.Types.GroupDefinitionType: instance Amazonka.Data.Query.ToQuery Amazonka.CostExplorer.Types.GroupDefinitionType.GroupDefinitionType
+ Amazonka.CostExplorer.Types.GroupDefinitionType: instance Amazonka.Data.Text.FromText Amazonka.CostExplorer.Types.GroupDefinitionType.GroupDefinitionType
+ Amazonka.CostExplorer.Types.GroupDefinitionType: instance Amazonka.Data.Text.ToText Amazonka.CostExplorer.Types.GroupDefinitionType.GroupDefinitionType
+ Amazonka.CostExplorer.Types.GroupDefinitionType: instance Amazonka.Data.XML.FromXML Amazonka.CostExplorer.Types.GroupDefinitionType.GroupDefinitionType
+ Amazonka.CostExplorer.Types.GroupDefinitionType: instance Amazonka.Data.XML.ToXML Amazonka.CostExplorer.Types.GroupDefinitionType.GroupDefinitionType
+ Amazonka.CostExplorer.Types.GroupDefinitionType: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.GroupDefinitionType.GroupDefinitionType
+ Amazonka.CostExplorer.Types.GroupDefinitionType: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.GroupDefinitionType.GroupDefinitionType
+ Amazonka.CostExplorer.Types.GroupDefinitionType: instance Data.Aeson.Types.FromJSON.FromJSONKey Amazonka.CostExplorer.Types.GroupDefinitionType.GroupDefinitionType
+ Amazonka.CostExplorer.Types.GroupDefinitionType: instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.CostExplorer.Types.GroupDefinitionType.GroupDefinitionType
+ Amazonka.CostExplorer.Types.GroupDefinitionType: instance Data.Aeson.Types.ToJSON.ToJSONKey Amazonka.CostExplorer.Types.GroupDefinitionType.GroupDefinitionType
+ Amazonka.CostExplorer.Types.GroupDefinitionType: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.GroupDefinitionType.GroupDefinitionType
+ Amazonka.CostExplorer.Types.GroupDefinitionType: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.GroupDefinitionType.GroupDefinitionType
+ Amazonka.CostExplorer.Types.GroupDefinitionType: instance GHC.Classes.Ord Amazonka.CostExplorer.Types.GroupDefinitionType.GroupDefinitionType
+ Amazonka.CostExplorer.Types.GroupDefinitionType: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.GroupDefinitionType.GroupDefinitionType
+ Amazonka.CostExplorer.Types.GroupDefinitionType: instance GHC.Read.Read Amazonka.CostExplorer.Types.GroupDefinitionType.GroupDefinitionType
+ Amazonka.CostExplorer.Types.GroupDefinitionType: instance GHC.Show.Show Amazonka.CostExplorer.Types.GroupDefinitionType.GroupDefinitionType
+ Amazonka.CostExplorer.Types.GroupDefinitionType: newtype GroupDefinitionType
+ Amazonka.CostExplorer.Types.GroupDefinitionType: pattern GroupDefinitionType_COST_CATEGORY :: GroupDefinitionType
+ Amazonka.CostExplorer.Types.GroupDefinitionType: pattern GroupDefinitionType_DIMENSION :: GroupDefinitionType
+ Amazonka.CostExplorer.Types.GroupDefinitionType: pattern GroupDefinitionType_TAG :: GroupDefinitionType
+ Amazonka.CostExplorer.Types.Impact: Impact' :: Maybe Double -> Maybe Double -> Maybe Double -> Maybe Double -> Double -> Impact
+ Amazonka.CostExplorer.Types.Impact: [$sel:maxImpact:Impact'] :: Impact -> Double
+ Amazonka.CostExplorer.Types.Impact: [$sel:totalActualSpend:Impact'] :: Impact -> Maybe Double
+ Amazonka.CostExplorer.Types.Impact: [$sel:totalExpectedSpend:Impact'] :: Impact -> Maybe Double
+ Amazonka.CostExplorer.Types.Impact: [$sel:totalImpact:Impact'] :: Impact -> Maybe Double
+ Amazonka.CostExplorer.Types.Impact: [$sel:totalImpactPercentage:Impact'] :: Impact -> Maybe Double
+ Amazonka.CostExplorer.Types.Impact: data Impact
+ Amazonka.CostExplorer.Types.Impact: impact_maxImpact :: Lens' Impact Double
+ Amazonka.CostExplorer.Types.Impact: impact_totalActualSpend :: Lens' Impact (Maybe Double)
+ Amazonka.CostExplorer.Types.Impact: impact_totalExpectedSpend :: Lens' Impact (Maybe Double)
+ Amazonka.CostExplorer.Types.Impact: impact_totalImpact :: Lens' Impact (Maybe Double)
+ Amazonka.CostExplorer.Types.Impact: impact_totalImpactPercentage :: Lens' Impact (Maybe Double)
+ Amazonka.CostExplorer.Types.Impact: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.Impact.Impact
+ Amazonka.CostExplorer.Types.Impact: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.Impact.Impact
+ Amazonka.CostExplorer.Types.Impact: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.Impact.Impact
+ Amazonka.CostExplorer.Types.Impact: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.Impact.Impact
+ Amazonka.CostExplorer.Types.Impact: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.Impact.Impact
+ Amazonka.CostExplorer.Types.Impact: instance GHC.Read.Read Amazonka.CostExplorer.Types.Impact.Impact
+ Amazonka.CostExplorer.Types.Impact: instance GHC.Show.Show Amazonka.CostExplorer.Types.Impact.Impact
+ Amazonka.CostExplorer.Types.Impact: newImpact :: Double -> Impact
+ Amazonka.CostExplorer.Types.InstanceDetails: InstanceDetails' :: Maybe EC2InstanceDetails -> Maybe ESInstanceDetails -> Maybe ElastiCacheInstanceDetails -> Maybe RDSInstanceDetails -> Maybe RedshiftInstanceDetails -> InstanceDetails
+ Amazonka.CostExplorer.Types.InstanceDetails: [$sel:eC2InstanceDetails:InstanceDetails'] :: InstanceDetails -> Maybe EC2InstanceDetails
+ Amazonka.CostExplorer.Types.InstanceDetails: [$sel:eSInstanceDetails:InstanceDetails'] :: InstanceDetails -> Maybe ESInstanceDetails
+ Amazonka.CostExplorer.Types.InstanceDetails: [$sel:elastiCacheInstanceDetails:InstanceDetails'] :: InstanceDetails -> Maybe ElastiCacheInstanceDetails
+ Amazonka.CostExplorer.Types.InstanceDetails: [$sel:rDSInstanceDetails:InstanceDetails'] :: InstanceDetails -> Maybe RDSInstanceDetails
+ Amazonka.CostExplorer.Types.InstanceDetails: [$sel:redshiftInstanceDetails:InstanceDetails'] :: InstanceDetails -> Maybe RedshiftInstanceDetails
+ Amazonka.CostExplorer.Types.InstanceDetails: data InstanceDetails
+ Amazonka.CostExplorer.Types.InstanceDetails: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.InstanceDetails.InstanceDetails
+ Amazonka.CostExplorer.Types.InstanceDetails: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.InstanceDetails.InstanceDetails
+ Amazonka.CostExplorer.Types.InstanceDetails: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.InstanceDetails.InstanceDetails
+ Amazonka.CostExplorer.Types.InstanceDetails: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.InstanceDetails.InstanceDetails
+ Amazonka.CostExplorer.Types.InstanceDetails: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.InstanceDetails.InstanceDetails
+ Amazonka.CostExplorer.Types.InstanceDetails: instance GHC.Read.Read Amazonka.CostExplorer.Types.InstanceDetails.InstanceDetails
+ Amazonka.CostExplorer.Types.InstanceDetails: instance GHC.Show.Show Amazonka.CostExplorer.Types.InstanceDetails.InstanceDetails
+ Amazonka.CostExplorer.Types.InstanceDetails: instanceDetails_eC2InstanceDetails :: Lens' InstanceDetails (Maybe EC2InstanceDetails)
+ Amazonka.CostExplorer.Types.InstanceDetails: instanceDetails_eSInstanceDetails :: Lens' InstanceDetails (Maybe ESInstanceDetails)
+ Amazonka.CostExplorer.Types.InstanceDetails: instanceDetails_elastiCacheInstanceDetails :: Lens' InstanceDetails (Maybe ElastiCacheInstanceDetails)
+ Amazonka.CostExplorer.Types.InstanceDetails: instanceDetails_rDSInstanceDetails :: Lens' InstanceDetails (Maybe RDSInstanceDetails)
+ Amazonka.CostExplorer.Types.InstanceDetails: instanceDetails_redshiftInstanceDetails :: Lens' InstanceDetails (Maybe RedshiftInstanceDetails)
+ Amazonka.CostExplorer.Types.InstanceDetails: newInstanceDetails :: InstanceDetails
+ Amazonka.CostExplorer.Types.LookbackPeriodInDays: LookbackPeriodInDays' :: Text -> LookbackPeriodInDays
+ Amazonka.CostExplorer.Types.LookbackPeriodInDays: [fromLookbackPeriodInDays] :: LookbackPeriodInDays -> Text
+ Amazonka.CostExplorer.Types.LookbackPeriodInDays: instance Amazonka.Data.ByteString.ToByteString Amazonka.CostExplorer.Types.LookbackPeriodInDays.LookbackPeriodInDays
+ Amazonka.CostExplorer.Types.LookbackPeriodInDays: instance Amazonka.Data.Headers.ToHeader Amazonka.CostExplorer.Types.LookbackPeriodInDays.LookbackPeriodInDays
+ Amazonka.CostExplorer.Types.LookbackPeriodInDays: instance Amazonka.Data.Log.ToLog Amazonka.CostExplorer.Types.LookbackPeriodInDays.LookbackPeriodInDays
+ Amazonka.CostExplorer.Types.LookbackPeriodInDays: instance Amazonka.Data.Query.ToQuery Amazonka.CostExplorer.Types.LookbackPeriodInDays.LookbackPeriodInDays
+ Amazonka.CostExplorer.Types.LookbackPeriodInDays: instance Amazonka.Data.Text.FromText Amazonka.CostExplorer.Types.LookbackPeriodInDays.LookbackPeriodInDays
+ Amazonka.CostExplorer.Types.LookbackPeriodInDays: instance Amazonka.Data.Text.ToText Amazonka.CostExplorer.Types.LookbackPeriodInDays.LookbackPeriodInDays
+ Amazonka.CostExplorer.Types.LookbackPeriodInDays: instance Amazonka.Data.XML.FromXML Amazonka.CostExplorer.Types.LookbackPeriodInDays.LookbackPeriodInDays
+ Amazonka.CostExplorer.Types.LookbackPeriodInDays: instance Amazonka.Data.XML.ToXML Amazonka.CostExplorer.Types.LookbackPeriodInDays.LookbackPeriodInDays
+ Amazonka.CostExplorer.Types.LookbackPeriodInDays: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.LookbackPeriodInDays.LookbackPeriodInDays
+ Amazonka.CostExplorer.Types.LookbackPeriodInDays: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.LookbackPeriodInDays.LookbackPeriodInDays
+ Amazonka.CostExplorer.Types.LookbackPeriodInDays: instance Data.Aeson.Types.FromJSON.FromJSONKey Amazonka.CostExplorer.Types.LookbackPeriodInDays.LookbackPeriodInDays
+ Amazonka.CostExplorer.Types.LookbackPeriodInDays: instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.CostExplorer.Types.LookbackPeriodInDays.LookbackPeriodInDays
+ Amazonka.CostExplorer.Types.LookbackPeriodInDays: instance Data.Aeson.Types.ToJSON.ToJSONKey Amazonka.CostExplorer.Types.LookbackPeriodInDays.LookbackPeriodInDays
+ Amazonka.CostExplorer.Types.LookbackPeriodInDays: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.LookbackPeriodInDays.LookbackPeriodInDays
+ Amazonka.CostExplorer.Types.LookbackPeriodInDays: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.LookbackPeriodInDays.LookbackPeriodInDays
+ Amazonka.CostExplorer.Types.LookbackPeriodInDays: instance GHC.Classes.Ord Amazonka.CostExplorer.Types.LookbackPeriodInDays.LookbackPeriodInDays
+ Amazonka.CostExplorer.Types.LookbackPeriodInDays: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.LookbackPeriodInDays.LookbackPeriodInDays
+ Amazonka.CostExplorer.Types.LookbackPeriodInDays: instance GHC.Read.Read Amazonka.CostExplorer.Types.LookbackPeriodInDays.LookbackPeriodInDays
+ Amazonka.CostExplorer.Types.LookbackPeriodInDays: instance GHC.Show.Show Amazonka.CostExplorer.Types.LookbackPeriodInDays.LookbackPeriodInDays
+ Amazonka.CostExplorer.Types.LookbackPeriodInDays: newtype LookbackPeriodInDays
+ Amazonka.CostExplorer.Types.LookbackPeriodInDays: pattern LookbackPeriodInDays_SEVEN_DAYS :: LookbackPeriodInDays
+ Amazonka.CostExplorer.Types.LookbackPeriodInDays: pattern LookbackPeriodInDays_SIXTY_DAYS :: LookbackPeriodInDays
+ Amazonka.CostExplorer.Types.LookbackPeriodInDays: pattern LookbackPeriodInDays_THIRTY_DAYS :: LookbackPeriodInDays
+ Amazonka.CostExplorer.Types.MatchOption: MatchOption' :: Text -> MatchOption
+ Amazonka.CostExplorer.Types.MatchOption: [fromMatchOption] :: MatchOption -> Text
+ Amazonka.CostExplorer.Types.MatchOption: instance Amazonka.Data.ByteString.ToByteString Amazonka.CostExplorer.Types.MatchOption.MatchOption
+ Amazonka.CostExplorer.Types.MatchOption: instance Amazonka.Data.Headers.ToHeader Amazonka.CostExplorer.Types.MatchOption.MatchOption
+ Amazonka.CostExplorer.Types.MatchOption: instance Amazonka.Data.Log.ToLog Amazonka.CostExplorer.Types.MatchOption.MatchOption
+ Amazonka.CostExplorer.Types.MatchOption: instance Amazonka.Data.Query.ToQuery Amazonka.CostExplorer.Types.MatchOption.MatchOption
+ Amazonka.CostExplorer.Types.MatchOption: instance Amazonka.Data.Text.FromText Amazonka.CostExplorer.Types.MatchOption.MatchOption
+ Amazonka.CostExplorer.Types.MatchOption: instance Amazonka.Data.Text.ToText Amazonka.CostExplorer.Types.MatchOption.MatchOption
+ Amazonka.CostExplorer.Types.MatchOption: instance Amazonka.Data.XML.FromXML Amazonka.CostExplorer.Types.MatchOption.MatchOption
+ Amazonka.CostExplorer.Types.MatchOption: instance Amazonka.Data.XML.ToXML Amazonka.CostExplorer.Types.MatchOption.MatchOption
+ Amazonka.CostExplorer.Types.MatchOption: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.MatchOption.MatchOption
+ Amazonka.CostExplorer.Types.MatchOption: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.MatchOption.MatchOption
+ Amazonka.CostExplorer.Types.MatchOption: instance Data.Aeson.Types.FromJSON.FromJSONKey Amazonka.CostExplorer.Types.MatchOption.MatchOption
+ Amazonka.CostExplorer.Types.MatchOption: instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.CostExplorer.Types.MatchOption.MatchOption
+ Amazonka.CostExplorer.Types.MatchOption: instance Data.Aeson.Types.ToJSON.ToJSONKey Amazonka.CostExplorer.Types.MatchOption.MatchOption
+ Amazonka.CostExplorer.Types.MatchOption: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.MatchOption.MatchOption
+ Amazonka.CostExplorer.Types.MatchOption: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.MatchOption.MatchOption
+ Amazonka.CostExplorer.Types.MatchOption: instance GHC.Classes.Ord Amazonka.CostExplorer.Types.MatchOption.MatchOption
+ Amazonka.CostExplorer.Types.MatchOption: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.MatchOption.MatchOption
+ Amazonka.CostExplorer.Types.MatchOption: instance GHC.Read.Read Amazonka.CostExplorer.Types.MatchOption.MatchOption
+ Amazonka.CostExplorer.Types.MatchOption: instance GHC.Show.Show Amazonka.CostExplorer.Types.MatchOption.MatchOption
+ Amazonka.CostExplorer.Types.MatchOption: newtype MatchOption
+ Amazonka.CostExplorer.Types.MatchOption: pattern MatchOption_ABSENT :: MatchOption
+ Amazonka.CostExplorer.Types.MatchOption: pattern MatchOption_CASE_INSENSITIVE :: MatchOption
+ Amazonka.CostExplorer.Types.MatchOption: pattern MatchOption_CASE_SENSITIVE :: MatchOption
+ Amazonka.CostExplorer.Types.MatchOption: pattern MatchOption_CONTAINS :: MatchOption
+ Amazonka.CostExplorer.Types.MatchOption: pattern MatchOption_ENDS_WITH :: MatchOption
+ Amazonka.CostExplorer.Types.MatchOption: pattern MatchOption_EQUALS :: MatchOption
+ Amazonka.CostExplorer.Types.MatchOption: pattern MatchOption_GREATER_THAN_OR_EQUAL :: MatchOption
+ Amazonka.CostExplorer.Types.MatchOption: pattern MatchOption_STARTS_WITH :: MatchOption
+ Amazonka.CostExplorer.Types.Metric: Metric' :: Text -> Metric
+ Amazonka.CostExplorer.Types.Metric: [fromMetric] :: Metric -> Text
+ Amazonka.CostExplorer.Types.Metric: instance Amazonka.Data.ByteString.ToByteString Amazonka.CostExplorer.Types.Metric.Metric
+ Amazonka.CostExplorer.Types.Metric: instance Amazonka.Data.Headers.ToHeader Amazonka.CostExplorer.Types.Metric.Metric
+ Amazonka.CostExplorer.Types.Metric: instance Amazonka.Data.Log.ToLog Amazonka.CostExplorer.Types.Metric.Metric
+ Amazonka.CostExplorer.Types.Metric: instance Amazonka.Data.Query.ToQuery Amazonka.CostExplorer.Types.Metric.Metric
+ Amazonka.CostExplorer.Types.Metric: instance Amazonka.Data.Text.FromText Amazonka.CostExplorer.Types.Metric.Metric
+ Amazonka.CostExplorer.Types.Metric: instance Amazonka.Data.Text.ToText Amazonka.CostExplorer.Types.Metric.Metric
+ Amazonka.CostExplorer.Types.Metric: instance Amazonka.Data.XML.FromXML Amazonka.CostExplorer.Types.Metric.Metric
+ Amazonka.CostExplorer.Types.Metric: instance Amazonka.Data.XML.ToXML Amazonka.CostExplorer.Types.Metric.Metric
+ Amazonka.CostExplorer.Types.Metric: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.Metric.Metric
+ Amazonka.CostExplorer.Types.Metric: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.Metric.Metric
+ Amazonka.CostExplorer.Types.Metric: instance Data.Aeson.Types.FromJSON.FromJSONKey Amazonka.CostExplorer.Types.Metric.Metric
+ Amazonka.CostExplorer.Types.Metric: instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.CostExplorer.Types.Metric.Metric
+ Amazonka.CostExplorer.Types.Metric: instance Data.Aeson.Types.ToJSON.ToJSONKey Amazonka.CostExplorer.Types.Metric.Metric
+ Amazonka.CostExplorer.Types.Metric: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.Metric.Metric
+ Amazonka.CostExplorer.Types.Metric: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.Metric.Metric
+ Amazonka.CostExplorer.Types.Metric: instance GHC.Classes.Ord Amazonka.CostExplorer.Types.Metric.Metric
+ Amazonka.CostExplorer.Types.Metric: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.Metric.Metric
+ Amazonka.CostExplorer.Types.Metric: instance GHC.Read.Read Amazonka.CostExplorer.Types.Metric.Metric
+ Amazonka.CostExplorer.Types.Metric: instance GHC.Show.Show Amazonka.CostExplorer.Types.Metric.Metric
+ Amazonka.CostExplorer.Types.Metric: newtype Metric
+ Amazonka.CostExplorer.Types.Metric: pattern Metric_AMORTIZED_COST :: Metric
+ Amazonka.CostExplorer.Types.Metric: pattern Metric_BLENDED_COST :: Metric
+ Amazonka.CostExplorer.Types.Metric: pattern Metric_NET_AMORTIZED_COST :: Metric
+ Amazonka.CostExplorer.Types.Metric: pattern Metric_NET_UNBLENDED_COST :: Metric
+ Amazonka.CostExplorer.Types.Metric: pattern Metric_NORMALIZED_USAGE_AMOUNT :: Metric
+ Amazonka.CostExplorer.Types.Metric: pattern Metric_UNBLENDED_COST :: Metric
+ Amazonka.CostExplorer.Types.Metric: pattern Metric_USAGE_QUANTITY :: Metric
+ Amazonka.CostExplorer.Types.MetricValue: MetricValue' :: Maybe Text -> Maybe Text -> MetricValue
+ Amazonka.CostExplorer.Types.MetricValue: [$sel:amount:MetricValue'] :: MetricValue -> Maybe Text
+ Amazonka.CostExplorer.Types.MetricValue: [$sel:unit:MetricValue'] :: MetricValue -> Maybe Text
+ Amazonka.CostExplorer.Types.MetricValue: data MetricValue
+ Amazonka.CostExplorer.Types.MetricValue: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.MetricValue.MetricValue
+ Amazonka.CostExplorer.Types.MetricValue: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.MetricValue.MetricValue
+ Amazonka.CostExplorer.Types.MetricValue: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.MetricValue.MetricValue
+ Amazonka.CostExplorer.Types.MetricValue: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.MetricValue.MetricValue
+ Amazonka.CostExplorer.Types.MetricValue: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.MetricValue.MetricValue
+ Amazonka.CostExplorer.Types.MetricValue: instance GHC.Read.Read Amazonka.CostExplorer.Types.MetricValue.MetricValue
+ Amazonka.CostExplorer.Types.MetricValue: instance GHC.Show.Show Amazonka.CostExplorer.Types.MetricValue.MetricValue
+ Amazonka.CostExplorer.Types.MetricValue: metricValue_amount :: Lens' MetricValue (Maybe Text)
+ Amazonka.CostExplorer.Types.MetricValue: metricValue_unit :: Lens' MetricValue (Maybe Text)
+ Amazonka.CostExplorer.Types.MetricValue: newMetricValue :: MetricValue
+ Amazonka.CostExplorer.Types.ModifyRecommendationDetail: ModifyRecommendationDetail' :: Maybe [TargetInstance] -> ModifyRecommendationDetail
+ Amazonka.CostExplorer.Types.ModifyRecommendationDetail: [$sel:targetInstances:ModifyRecommendationDetail'] :: ModifyRecommendationDetail -> Maybe [TargetInstance]
+ Amazonka.CostExplorer.Types.ModifyRecommendationDetail: data ModifyRecommendationDetail
+ Amazonka.CostExplorer.Types.ModifyRecommendationDetail: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.ModifyRecommendationDetail.ModifyRecommendationDetail
+ Amazonka.CostExplorer.Types.ModifyRecommendationDetail: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.ModifyRecommendationDetail.ModifyRecommendationDetail
+ Amazonka.CostExplorer.Types.ModifyRecommendationDetail: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.ModifyRecommendationDetail.ModifyRecommendationDetail
+ Amazonka.CostExplorer.Types.ModifyRecommendationDetail: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.ModifyRecommendationDetail.ModifyRecommendationDetail
+ Amazonka.CostExplorer.Types.ModifyRecommendationDetail: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.ModifyRecommendationDetail.ModifyRecommendationDetail
+ Amazonka.CostExplorer.Types.ModifyRecommendationDetail: instance GHC.Read.Read Amazonka.CostExplorer.Types.ModifyRecommendationDetail.ModifyRecommendationDetail
+ Amazonka.CostExplorer.Types.ModifyRecommendationDetail: instance GHC.Show.Show Amazonka.CostExplorer.Types.ModifyRecommendationDetail.ModifyRecommendationDetail
+ Amazonka.CostExplorer.Types.ModifyRecommendationDetail: modifyRecommendationDetail_targetInstances :: Lens' ModifyRecommendationDetail (Maybe [TargetInstance])
+ Amazonka.CostExplorer.Types.ModifyRecommendationDetail: newModifyRecommendationDetail :: ModifyRecommendationDetail
+ Amazonka.CostExplorer.Types.MonitorDimension: MonitorDimension' :: Text -> MonitorDimension
+ Amazonka.CostExplorer.Types.MonitorDimension: [fromMonitorDimension] :: MonitorDimension -> Text
+ Amazonka.CostExplorer.Types.MonitorDimension: instance Amazonka.Data.ByteString.ToByteString Amazonka.CostExplorer.Types.MonitorDimension.MonitorDimension
+ Amazonka.CostExplorer.Types.MonitorDimension: instance Amazonka.Data.Headers.ToHeader Amazonka.CostExplorer.Types.MonitorDimension.MonitorDimension
+ Amazonka.CostExplorer.Types.MonitorDimension: instance Amazonka.Data.Log.ToLog Amazonka.CostExplorer.Types.MonitorDimension.MonitorDimension
+ Amazonka.CostExplorer.Types.MonitorDimension: instance Amazonka.Data.Query.ToQuery Amazonka.CostExplorer.Types.MonitorDimension.MonitorDimension
+ Amazonka.CostExplorer.Types.MonitorDimension: instance Amazonka.Data.Text.FromText Amazonka.CostExplorer.Types.MonitorDimension.MonitorDimension
+ Amazonka.CostExplorer.Types.MonitorDimension: instance Amazonka.Data.Text.ToText Amazonka.CostExplorer.Types.MonitorDimension.MonitorDimension
+ Amazonka.CostExplorer.Types.MonitorDimension: instance Amazonka.Data.XML.FromXML Amazonka.CostExplorer.Types.MonitorDimension.MonitorDimension
+ Amazonka.CostExplorer.Types.MonitorDimension: instance Amazonka.Data.XML.ToXML Amazonka.CostExplorer.Types.MonitorDimension.MonitorDimension
+ Amazonka.CostExplorer.Types.MonitorDimension: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.MonitorDimension.MonitorDimension
+ Amazonka.CostExplorer.Types.MonitorDimension: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.MonitorDimension.MonitorDimension
+ Amazonka.CostExplorer.Types.MonitorDimension: instance Data.Aeson.Types.FromJSON.FromJSONKey Amazonka.CostExplorer.Types.MonitorDimension.MonitorDimension
+ Amazonka.CostExplorer.Types.MonitorDimension: instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.CostExplorer.Types.MonitorDimension.MonitorDimension
+ Amazonka.CostExplorer.Types.MonitorDimension: instance Data.Aeson.Types.ToJSON.ToJSONKey Amazonka.CostExplorer.Types.MonitorDimension.MonitorDimension
+ Amazonka.CostExplorer.Types.MonitorDimension: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.MonitorDimension.MonitorDimension
+ Amazonka.CostExplorer.Types.MonitorDimension: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.MonitorDimension.MonitorDimension
+ Amazonka.CostExplorer.Types.MonitorDimension: instance GHC.Classes.Ord Amazonka.CostExplorer.Types.MonitorDimension.MonitorDimension
+ Amazonka.CostExplorer.Types.MonitorDimension: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.MonitorDimension.MonitorDimension
+ Amazonka.CostExplorer.Types.MonitorDimension: instance GHC.Read.Read Amazonka.CostExplorer.Types.MonitorDimension.MonitorDimension
+ Amazonka.CostExplorer.Types.MonitorDimension: instance GHC.Show.Show Amazonka.CostExplorer.Types.MonitorDimension.MonitorDimension
+ Amazonka.CostExplorer.Types.MonitorDimension: newtype MonitorDimension
+ Amazonka.CostExplorer.Types.MonitorDimension: pattern MonitorDimension_SERVICE :: MonitorDimension
+ Amazonka.CostExplorer.Types.MonitorType: MonitorType' :: Text -> MonitorType
+ Amazonka.CostExplorer.Types.MonitorType: [fromMonitorType] :: MonitorType -> Text
+ Amazonka.CostExplorer.Types.MonitorType: instance Amazonka.Data.ByteString.ToByteString Amazonka.CostExplorer.Types.MonitorType.MonitorType
+ Amazonka.CostExplorer.Types.MonitorType: instance Amazonka.Data.Headers.ToHeader Amazonka.CostExplorer.Types.MonitorType.MonitorType
+ Amazonka.CostExplorer.Types.MonitorType: instance Amazonka.Data.Log.ToLog Amazonka.CostExplorer.Types.MonitorType.MonitorType
+ Amazonka.CostExplorer.Types.MonitorType: instance Amazonka.Data.Query.ToQuery Amazonka.CostExplorer.Types.MonitorType.MonitorType
+ Amazonka.CostExplorer.Types.MonitorType: instance Amazonka.Data.Text.FromText Amazonka.CostExplorer.Types.MonitorType.MonitorType
+ Amazonka.CostExplorer.Types.MonitorType: instance Amazonka.Data.Text.ToText Amazonka.CostExplorer.Types.MonitorType.MonitorType
+ Amazonka.CostExplorer.Types.MonitorType: instance Amazonka.Data.XML.FromXML Amazonka.CostExplorer.Types.MonitorType.MonitorType
+ Amazonka.CostExplorer.Types.MonitorType: instance Amazonka.Data.XML.ToXML Amazonka.CostExplorer.Types.MonitorType.MonitorType
+ Amazonka.CostExplorer.Types.MonitorType: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.MonitorType.MonitorType
+ Amazonka.CostExplorer.Types.MonitorType: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.MonitorType.MonitorType
+ Amazonka.CostExplorer.Types.MonitorType: instance Data.Aeson.Types.FromJSON.FromJSONKey Amazonka.CostExplorer.Types.MonitorType.MonitorType
+ Amazonka.CostExplorer.Types.MonitorType: instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.CostExplorer.Types.MonitorType.MonitorType
+ Amazonka.CostExplorer.Types.MonitorType: instance Data.Aeson.Types.ToJSON.ToJSONKey Amazonka.CostExplorer.Types.MonitorType.MonitorType
+ Amazonka.CostExplorer.Types.MonitorType: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.MonitorType.MonitorType
+ Amazonka.CostExplorer.Types.MonitorType: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.MonitorType.MonitorType
+ Amazonka.CostExplorer.Types.MonitorType: instance GHC.Classes.Ord Amazonka.CostExplorer.Types.MonitorType.MonitorType
+ Amazonka.CostExplorer.Types.MonitorType: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.MonitorType.MonitorType
+ Amazonka.CostExplorer.Types.MonitorType: instance GHC.Read.Read Amazonka.CostExplorer.Types.MonitorType.MonitorType
+ Amazonka.CostExplorer.Types.MonitorType: instance GHC.Show.Show Amazonka.CostExplorer.Types.MonitorType.MonitorType
+ Amazonka.CostExplorer.Types.MonitorType: newtype MonitorType
+ Amazonka.CostExplorer.Types.MonitorType: pattern MonitorType_CUSTOM :: MonitorType
+ Amazonka.CostExplorer.Types.MonitorType: pattern MonitorType_DIMENSIONAL :: MonitorType
+ Amazonka.CostExplorer.Types.NetworkResourceUtilization: NetworkResourceUtilization' :: Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> NetworkResourceUtilization
+ Amazonka.CostExplorer.Types.NetworkResourceUtilization: [$sel:networkInBytesPerSecond:NetworkResourceUtilization'] :: NetworkResourceUtilization -> Maybe Text
+ Amazonka.CostExplorer.Types.NetworkResourceUtilization: [$sel:networkOutBytesPerSecond:NetworkResourceUtilization'] :: NetworkResourceUtilization -> Maybe Text
+ Amazonka.CostExplorer.Types.NetworkResourceUtilization: [$sel:networkPacketsInPerSecond:NetworkResourceUtilization'] :: NetworkResourceUtilization -> Maybe Text
+ Amazonka.CostExplorer.Types.NetworkResourceUtilization: [$sel:networkPacketsOutPerSecond:NetworkResourceUtilization'] :: NetworkResourceUtilization -> Maybe Text
+ Amazonka.CostExplorer.Types.NetworkResourceUtilization: data NetworkResourceUtilization
+ Amazonka.CostExplorer.Types.NetworkResourceUtilization: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.NetworkResourceUtilization.NetworkResourceUtilization
+ Amazonka.CostExplorer.Types.NetworkResourceUtilization: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.NetworkResourceUtilization.NetworkResourceUtilization
+ Amazonka.CostExplorer.Types.NetworkResourceUtilization: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.NetworkResourceUtilization.NetworkResourceUtilization
+ Amazonka.CostExplorer.Types.NetworkResourceUtilization: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.NetworkResourceUtilization.NetworkResourceUtilization
+ Amazonka.CostExplorer.Types.NetworkResourceUtilization: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.NetworkResourceUtilization.NetworkResourceUtilization
+ Amazonka.CostExplorer.Types.NetworkResourceUtilization: instance GHC.Read.Read Amazonka.CostExplorer.Types.NetworkResourceUtilization.NetworkResourceUtilization
+ Amazonka.CostExplorer.Types.NetworkResourceUtilization: instance GHC.Show.Show Amazonka.CostExplorer.Types.NetworkResourceUtilization.NetworkResourceUtilization
+ Amazonka.CostExplorer.Types.NetworkResourceUtilization: networkResourceUtilization_networkInBytesPerSecond :: Lens' NetworkResourceUtilization (Maybe Text)
+ Amazonka.CostExplorer.Types.NetworkResourceUtilization: networkResourceUtilization_networkOutBytesPerSecond :: Lens' NetworkResourceUtilization (Maybe Text)
+ Amazonka.CostExplorer.Types.NetworkResourceUtilization: networkResourceUtilization_networkPacketsInPerSecond :: Lens' NetworkResourceUtilization (Maybe Text)
+ Amazonka.CostExplorer.Types.NetworkResourceUtilization: networkResourceUtilization_networkPacketsOutPerSecond :: Lens' NetworkResourceUtilization (Maybe Text)
+ Amazonka.CostExplorer.Types.NetworkResourceUtilization: newNetworkResourceUtilization :: NetworkResourceUtilization
+ Amazonka.CostExplorer.Types.NumericOperator: NumericOperator' :: Text -> NumericOperator
+ Amazonka.CostExplorer.Types.NumericOperator: [fromNumericOperator] :: NumericOperator -> Text
+ Amazonka.CostExplorer.Types.NumericOperator: instance Amazonka.Data.ByteString.ToByteString Amazonka.CostExplorer.Types.NumericOperator.NumericOperator
+ Amazonka.CostExplorer.Types.NumericOperator: instance Amazonka.Data.Headers.ToHeader Amazonka.CostExplorer.Types.NumericOperator.NumericOperator
+ Amazonka.CostExplorer.Types.NumericOperator: instance Amazonka.Data.Log.ToLog Amazonka.CostExplorer.Types.NumericOperator.NumericOperator
+ Amazonka.CostExplorer.Types.NumericOperator: instance Amazonka.Data.Query.ToQuery Amazonka.CostExplorer.Types.NumericOperator.NumericOperator
+ Amazonka.CostExplorer.Types.NumericOperator: instance Amazonka.Data.Text.FromText Amazonka.CostExplorer.Types.NumericOperator.NumericOperator
+ Amazonka.CostExplorer.Types.NumericOperator: instance Amazonka.Data.Text.ToText Amazonka.CostExplorer.Types.NumericOperator.NumericOperator
+ Amazonka.CostExplorer.Types.NumericOperator: instance Amazonka.Data.XML.FromXML Amazonka.CostExplorer.Types.NumericOperator.NumericOperator
+ Amazonka.CostExplorer.Types.NumericOperator: instance Amazonka.Data.XML.ToXML Amazonka.CostExplorer.Types.NumericOperator.NumericOperator
+ Amazonka.CostExplorer.Types.NumericOperator: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.NumericOperator.NumericOperator
+ Amazonka.CostExplorer.Types.NumericOperator: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.NumericOperator.NumericOperator
+ Amazonka.CostExplorer.Types.NumericOperator: instance Data.Aeson.Types.FromJSON.FromJSONKey Amazonka.CostExplorer.Types.NumericOperator.NumericOperator
+ Amazonka.CostExplorer.Types.NumericOperator: instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.CostExplorer.Types.NumericOperator.NumericOperator
+ Amazonka.CostExplorer.Types.NumericOperator: instance Data.Aeson.Types.ToJSON.ToJSONKey Amazonka.CostExplorer.Types.NumericOperator.NumericOperator
+ Amazonka.CostExplorer.Types.NumericOperator: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.NumericOperator.NumericOperator
+ Amazonka.CostExplorer.Types.NumericOperator: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.NumericOperator.NumericOperator
+ Amazonka.CostExplorer.Types.NumericOperator: instance GHC.Classes.Ord Amazonka.CostExplorer.Types.NumericOperator.NumericOperator
+ Amazonka.CostExplorer.Types.NumericOperator: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.NumericOperator.NumericOperator
+ Amazonka.CostExplorer.Types.NumericOperator: instance GHC.Read.Read Amazonka.CostExplorer.Types.NumericOperator.NumericOperator
+ Amazonka.CostExplorer.Types.NumericOperator: instance GHC.Show.Show Amazonka.CostExplorer.Types.NumericOperator.NumericOperator
+ Amazonka.CostExplorer.Types.NumericOperator: newtype NumericOperator
+ Amazonka.CostExplorer.Types.NumericOperator: pattern NumericOperator_BETWEEN :: NumericOperator
+ Amazonka.CostExplorer.Types.NumericOperator: pattern NumericOperator_EQUAL :: NumericOperator
+ Amazonka.CostExplorer.Types.NumericOperator: pattern NumericOperator_GREATER_THAN :: NumericOperator
+ Amazonka.CostExplorer.Types.NumericOperator: pattern NumericOperator_GREATER_THAN_OR_EQUAL :: NumericOperator
+ Amazonka.CostExplorer.Types.NumericOperator: pattern NumericOperator_LESS_THAN :: NumericOperator
+ Amazonka.CostExplorer.Types.NumericOperator: pattern NumericOperator_LESS_THAN_OR_EQUAL :: NumericOperator
+ Amazonka.CostExplorer.Types.OfferingClass: OfferingClass' :: Text -> OfferingClass
+ Amazonka.CostExplorer.Types.OfferingClass: [fromOfferingClass] :: OfferingClass -> Text
+ Amazonka.CostExplorer.Types.OfferingClass: instance Amazonka.Data.ByteString.ToByteString Amazonka.CostExplorer.Types.OfferingClass.OfferingClass
+ Amazonka.CostExplorer.Types.OfferingClass: instance Amazonka.Data.Headers.ToHeader Amazonka.CostExplorer.Types.OfferingClass.OfferingClass
+ Amazonka.CostExplorer.Types.OfferingClass: instance Amazonka.Data.Log.ToLog Amazonka.CostExplorer.Types.OfferingClass.OfferingClass
+ Amazonka.CostExplorer.Types.OfferingClass: instance Amazonka.Data.Query.ToQuery Amazonka.CostExplorer.Types.OfferingClass.OfferingClass
+ Amazonka.CostExplorer.Types.OfferingClass: instance Amazonka.Data.Text.FromText Amazonka.CostExplorer.Types.OfferingClass.OfferingClass
+ Amazonka.CostExplorer.Types.OfferingClass: instance Amazonka.Data.Text.ToText Amazonka.CostExplorer.Types.OfferingClass.OfferingClass
+ Amazonka.CostExplorer.Types.OfferingClass: instance Amazonka.Data.XML.FromXML Amazonka.CostExplorer.Types.OfferingClass.OfferingClass
+ Amazonka.CostExplorer.Types.OfferingClass: instance Amazonka.Data.XML.ToXML Amazonka.CostExplorer.Types.OfferingClass.OfferingClass
+ Amazonka.CostExplorer.Types.OfferingClass: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.OfferingClass.OfferingClass
+ Amazonka.CostExplorer.Types.OfferingClass: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.OfferingClass.OfferingClass
+ Amazonka.CostExplorer.Types.OfferingClass: instance Data.Aeson.Types.FromJSON.FromJSONKey Amazonka.CostExplorer.Types.OfferingClass.OfferingClass
+ Amazonka.CostExplorer.Types.OfferingClass: instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.CostExplorer.Types.OfferingClass.OfferingClass
+ Amazonka.CostExplorer.Types.OfferingClass: instance Data.Aeson.Types.ToJSON.ToJSONKey Amazonka.CostExplorer.Types.OfferingClass.OfferingClass
+ Amazonka.CostExplorer.Types.OfferingClass: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.OfferingClass.OfferingClass
+ Amazonka.CostExplorer.Types.OfferingClass: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.OfferingClass.OfferingClass
+ Amazonka.CostExplorer.Types.OfferingClass: instance GHC.Classes.Ord Amazonka.CostExplorer.Types.OfferingClass.OfferingClass
+ Amazonka.CostExplorer.Types.OfferingClass: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.OfferingClass.OfferingClass
+ Amazonka.CostExplorer.Types.OfferingClass: instance GHC.Read.Read Amazonka.CostExplorer.Types.OfferingClass.OfferingClass
+ Amazonka.CostExplorer.Types.OfferingClass: instance GHC.Show.Show Amazonka.CostExplorer.Types.OfferingClass.OfferingClass
+ Amazonka.CostExplorer.Types.OfferingClass: newtype OfferingClass
+ Amazonka.CostExplorer.Types.OfferingClass: pattern OfferingClass_CONVERTIBLE :: OfferingClass
+ Amazonka.CostExplorer.Types.OfferingClass: pattern OfferingClass_STANDARD :: OfferingClass
+ Amazonka.CostExplorer.Types.PaymentOption: PaymentOption' :: Text -> PaymentOption
+ Amazonka.CostExplorer.Types.PaymentOption: [fromPaymentOption] :: PaymentOption -> Text
+ Amazonka.CostExplorer.Types.PaymentOption: instance Amazonka.Data.ByteString.ToByteString Amazonka.CostExplorer.Types.PaymentOption.PaymentOption
+ Amazonka.CostExplorer.Types.PaymentOption: instance Amazonka.Data.Headers.ToHeader Amazonka.CostExplorer.Types.PaymentOption.PaymentOption
+ Amazonka.CostExplorer.Types.PaymentOption: instance Amazonka.Data.Log.ToLog Amazonka.CostExplorer.Types.PaymentOption.PaymentOption
+ Amazonka.CostExplorer.Types.PaymentOption: instance Amazonka.Data.Query.ToQuery Amazonka.CostExplorer.Types.PaymentOption.PaymentOption
+ Amazonka.CostExplorer.Types.PaymentOption: instance Amazonka.Data.Text.FromText Amazonka.CostExplorer.Types.PaymentOption.PaymentOption
+ Amazonka.CostExplorer.Types.PaymentOption: instance Amazonka.Data.Text.ToText Amazonka.CostExplorer.Types.PaymentOption.PaymentOption
+ Amazonka.CostExplorer.Types.PaymentOption: instance Amazonka.Data.XML.FromXML Amazonka.CostExplorer.Types.PaymentOption.PaymentOption
+ Amazonka.CostExplorer.Types.PaymentOption: instance Amazonka.Data.XML.ToXML Amazonka.CostExplorer.Types.PaymentOption.PaymentOption
+ Amazonka.CostExplorer.Types.PaymentOption: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.PaymentOption.PaymentOption
+ Amazonka.CostExplorer.Types.PaymentOption: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.PaymentOption.PaymentOption
+ Amazonka.CostExplorer.Types.PaymentOption: instance Data.Aeson.Types.FromJSON.FromJSONKey Amazonka.CostExplorer.Types.PaymentOption.PaymentOption
+ Amazonka.CostExplorer.Types.PaymentOption: instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.CostExplorer.Types.PaymentOption.PaymentOption
+ Amazonka.CostExplorer.Types.PaymentOption: instance Data.Aeson.Types.ToJSON.ToJSONKey Amazonka.CostExplorer.Types.PaymentOption.PaymentOption
+ Amazonka.CostExplorer.Types.PaymentOption: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.PaymentOption.PaymentOption
+ Amazonka.CostExplorer.Types.PaymentOption: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.PaymentOption.PaymentOption
+ Amazonka.CostExplorer.Types.PaymentOption: instance GHC.Classes.Ord Amazonka.CostExplorer.Types.PaymentOption.PaymentOption
+ Amazonka.CostExplorer.Types.PaymentOption: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.PaymentOption.PaymentOption
+ Amazonka.CostExplorer.Types.PaymentOption: instance GHC.Read.Read Amazonka.CostExplorer.Types.PaymentOption.PaymentOption
+ Amazonka.CostExplorer.Types.PaymentOption: instance GHC.Show.Show Amazonka.CostExplorer.Types.PaymentOption.PaymentOption
+ Amazonka.CostExplorer.Types.PaymentOption: newtype PaymentOption
+ Amazonka.CostExplorer.Types.PaymentOption: pattern PaymentOption_ALL_UPFRONT :: PaymentOption
+ Amazonka.CostExplorer.Types.PaymentOption: pattern PaymentOption_HEAVY_UTILIZATION :: PaymentOption
+ Amazonka.CostExplorer.Types.PaymentOption: pattern PaymentOption_LIGHT_UTILIZATION :: PaymentOption
+ Amazonka.CostExplorer.Types.PaymentOption: pattern PaymentOption_MEDIUM_UTILIZATION :: PaymentOption
+ Amazonka.CostExplorer.Types.PaymentOption: pattern PaymentOption_NO_UPFRONT :: PaymentOption
+ Amazonka.CostExplorer.Types.PaymentOption: pattern PaymentOption_PARTIAL_UPFRONT :: PaymentOption
+ Amazonka.CostExplorer.Types.PlatformDifference: PlatformDifference' :: Text -> PlatformDifference
+ Amazonka.CostExplorer.Types.PlatformDifference: [fromPlatformDifference] :: PlatformDifference -> Text
+ Amazonka.CostExplorer.Types.PlatformDifference: instance Amazonka.Data.ByteString.ToByteString Amazonka.CostExplorer.Types.PlatformDifference.PlatformDifference
+ Amazonka.CostExplorer.Types.PlatformDifference: instance Amazonka.Data.Headers.ToHeader Amazonka.CostExplorer.Types.PlatformDifference.PlatformDifference
+ Amazonka.CostExplorer.Types.PlatformDifference: instance Amazonka.Data.Log.ToLog Amazonka.CostExplorer.Types.PlatformDifference.PlatformDifference
+ Amazonka.CostExplorer.Types.PlatformDifference: instance Amazonka.Data.Query.ToQuery Amazonka.CostExplorer.Types.PlatformDifference.PlatformDifference
+ Amazonka.CostExplorer.Types.PlatformDifference: instance Amazonka.Data.Text.FromText Amazonka.CostExplorer.Types.PlatformDifference.PlatformDifference
+ Amazonka.CostExplorer.Types.PlatformDifference: instance Amazonka.Data.Text.ToText Amazonka.CostExplorer.Types.PlatformDifference.PlatformDifference
+ Amazonka.CostExplorer.Types.PlatformDifference: instance Amazonka.Data.XML.FromXML Amazonka.CostExplorer.Types.PlatformDifference.PlatformDifference
+ Amazonka.CostExplorer.Types.PlatformDifference: instance Amazonka.Data.XML.ToXML Amazonka.CostExplorer.Types.PlatformDifference.PlatformDifference
+ Amazonka.CostExplorer.Types.PlatformDifference: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.PlatformDifference.PlatformDifference
+ Amazonka.CostExplorer.Types.PlatformDifference: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.PlatformDifference.PlatformDifference
+ Amazonka.CostExplorer.Types.PlatformDifference: instance Data.Aeson.Types.FromJSON.FromJSONKey Amazonka.CostExplorer.Types.PlatformDifference.PlatformDifference
+ Amazonka.CostExplorer.Types.PlatformDifference: instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.CostExplorer.Types.PlatformDifference.PlatformDifference
+ Amazonka.CostExplorer.Types.PlatformDifference: instance Data.Aeson.Types.ToJSON.ToJSONKey Amazonka.CostExplorer.Types.PlatformDifference.PlatformDifference
+ Amazonka.CostExplorer.Types.PlatformDifference: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.PlatformDifference.PlatformDifference
+ Amazonka.CostExplorer.Types.PlatformDifference: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.PlatformDifference.PlatformDifference
+ Amazonka.CostExplorer.Types.PlatformDifference: instance GHC.Classes.Ord Amazonka.CostExplorer.Types.PlatformDifference.PlatformDifference
+ Amazonka.CostExplorer.Types.PlatformDifference: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.PlatformDifference.PlatformDifference
+ Amazonka.CostExplorer.Types.PlatformDifference: instance GHC.Read.Read Amazonka.CostExplorer.Types.PlatformDifference.PlatformDifference
+ Amazonka.CostExplorer.Types.PlatformDifference: instance GHC.Show.Show Amazonka.CostExplorer.Types.PlatformDifference.PlatformDifference
+ Amazonka.CostExplorer.Types.PlatformDifference: newtype PlatformDifference
+ Amazonka.CostExplorer.Types.PlatformDifference: pattern PlatformDifference_HYPERVISOR :: PlatformDifference
+ Amazonka.CostExplorer.Types.PlatformDifference: pattern PlatformDifference_INSTANCE_STORE_AVAILABILITY :: PlatformDifference
+ Amazonka.CostExplorer.Types.PlatformDifference: pattern PlatformDifference_NETWORK_INTERFACE :: PlatformDifference
+ Amazonka.CostExplorer.Types.PlatformDifference: pattern PlatformDifference_STORAGE_INTERFACE :: PlatformDifference
+ Amazonka.CostExplorer.Types.PlatformDifference: pattern PlatformDifference_VIRTUALIZATION_TYPE :: PlatformDifference
+ Amazonka.CostExplorer.Types.RDSInstanceDetails: RDSInstanceDetails' :: Maybe Bool -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Bool -> RDSInstanceDetails
+ Amazonka.CostExplorer.Types.RDSInstanceDetails: [$sel:currentGeneration:RDSInstanceDetails'] :: RDSInstanceDetails -> Maybe Bool
+ Amazonka.CostExplorer.Types.RDSInstanceDetails: [$sel:databaseEdition:RDSInstanceDetails'] :: RDSInstanceDetails -> Maybe Text
+ Amazonka.CostExplorer.Types.RDSInstanceDetails: [$sel:databaseEngine:RDSInstanceDetails'] :: RDSInstanceDetails -> Maybe Text
+ Amazonka.CostExplorer.Types.RDSInstanceDetails: [$sel:deploymentOption:RDSInstanceDetails'] :: RDSInstanceDetails -> Maybe Text
+ Amazonka.CostExplorer.Types.RDSInstanceDetails: [$sel:family:RDSInstanceDetails'] :: RDSInstanceDetails -> Maybe Text
+ Amazonka.CostExplorer.Types.RDSInstanceDetails: [$sel:instanceType:RDSInstanceDetails'] :: RDSInstanceDetails -> Maybe Text
+ Amazonka.CostExplorer.Types.RDSInstanceDetails: [$sel:licenseModel:RDSInstanceDetails'] :: RDSInstanceDetails -> Maybe Text
+ Amazonka.CostExplorer.Types.RDSInstanceDetails: [$sel:region:RDSInstanceDetails'] :: RDSInstanceDetails -> Maybe Text
+ Amazonka.CostExplorer.Types.RDSInstanceDetails: [$sel:sizeFlexEligible:RDSInstanceDetails'] :: RDSInstanceDetails -> Maybe Bool
+ Amazonka.CostExplorer.Types.RDSInstanceDetails: data RDSInstanceDetails
+ Amazonka.CostExplorer.Types.RDSInstanceDetails: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.RDSInstanceDetails.RDSInstanceDetails
+ Amazonka.CostExplorer.Types.RDSInstanceDetails: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.RDSInstanceDetails.RDSInstanceDetails
+ Amazonka.CostExplorer.Types.RDSInstanceDetails: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.RDSInstanceDetails.RDSInstanceDetails
+ Amazonka.CostExplorer.Types.RDSInstanceDetails: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.RDSInstanceDetails.RDSInstanceDetails
+ Amazonka.CostExplorer.Types.RDSInstanceDetails: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.RDSInstanceDetails.RDSInstanceDetails
+ Amazonka.CostExplorer.Types.RDSInstanceDetails: instance GHC.Read.Read Amazonka.CostExplorer.Types.RDSInstanceDetails.RDSInstanceDetails
+ Amazonka.CostExplorer.Types.RDSInstanceDetails: instance GHC.Show.Show Amazonka.CostExplorer.Types.RDSInstanceDetails.RDSInstanceDetails
+ Amazonka.CostExplorer.Types.RDSInstanceDetails: newRDSInstanceDetails :: RDSInstanceDetails
+ Amazonka.CostExplorer.Types.RDSInstanceDetails: rDSInstanceDetails_currentGeneration :: Lens' RDSInstanceDetails (Maybe Bool)
+ Amazonka.CostExplorer.Types.RDSInstanceDetails: rDSInstanceDetails_databaseEdition :: Lens' RDSInstanceDetails (Maybe Text)
+ Amazonka.CostExplorer.Types.RDSInstanceDetails: rDSInstanceDetails_databaseEngine :: Lens' RDSInstanceDetails (Maybe Text)
+ Amazonka.CostExplorer.Types.RDSInstanceDetails: rDSInstanceDetails_deploymentOption :: Lens' RDSInstanceDetails (Maybe Text)
+ Amazonka.CostExplorer.Types.RDSInstanceDetails: rDSInstanceDetails_family :: Lens' RDSInstanceDetails (Maybe Text)
+ Amazonka.CostExplorer.Types.RDSInstanceDetails: rDSInstanceDetails_instanceType :: Lens' RDSInstanceDetails (Maybe Text)
+ Amazonka.CostExplorer.Types.RDSInstanceDetails: rDSInstanceDetails_licenseModel :: Lens' RDSInstanceDetails (Maybe Text)
+ Amazonka.CostExplorer.Types.RDSInstanceDetails: rDSInstanceDetails_region :: Lens' RDSInstanceDetails (Maybe Text)
+ Amazonka.CostExplorer.Types.RDSInstanceDetails: rDSInstanceDetails_sizeFlexEligible :: Lens' RDSInstanceDetails (Maybe Bool)
+ Amazonka.CostExplorer.Types.RecommendationTarget: RecommendationTarget' :: Text -> RecommendationTarget
+ Amazonka.CostExplorer.Types.RecommendationTarget: [fromRecommendationTarget] :: RecommendationTarget -> Text
+ Amazonka.CostExplorer.Types.RecommendationTarget: instance Amazonka.Data.ByteString.ToByteString Amazonka.CostExplorer.Types.RecommendationTarget.RecommendationTarget
+ Amazonka.CostExplorer.Types.RecommendationTarget: instance Amazonka.Data.Headers.ToHeader Amazonka.CostExplorer.Types.RecommendationTarget.RecommendationTarget
+ Amazonka.CostExplorer.Types.RecommendationTarget: instance Amazonka.Data.Log.ToLog Amazonka.CostExplorer.Types.RecommendationTarget.RecommendationTarget
+ Amazonka.CostExplorer.Types.RecommendationTarget: instance Amazonka.Data.Query.ToQuery Amazonka.CostExplorer.Types.RecommendationTarget.RecommendationTarget
+ Amazonka.CostExplorer.Types.RecommendationTarget: instance Amazonka.Data.Text.FromText Amazonka.CostExplorer.Types.RecommendationTarget.RecommendationTarget
+ Amazonka.CostExplorer.Types.RecommendationTarget: instance Amazonka.Data.Text.ToText Amazonka.CostExplorer.Types.RecommendationTarget.RecommendationTarget
+ Amazonka.CostExplorer.Types.RecommendationTarget: instance Amazonka.Data.XML.FromXML Amazonka.CostExplorer.Types.RecommendationTarget.RecommendationTarget
+ Amazonka.CostExplorer.Types.RecommendationTarget: instance Amazonka.Data.XML.ToXML Amazonka.CostExplorer.Types.RecommendationTarget.RecommendationTarget
+ Amazonka.CostExplorer.Types.RecommendationTarget: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.RecommendationTarget.RecommendationTarget
+ Amazonka.CostExplorer.Types.RecommendationTarget: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.RecommendationTarget.RecommendationTarget
+ Amazonka.CostExplorer.Types.RecommendationTarget: instance Data.Aeson.Types.FromJSON.FromJSONKey Amazonka.CostExplorer.Types.RecommendationTarget.RecommendationTarget
+ Amazonka.CostExplorer.Types.RecommendationTarget: instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.CostExplorer.Types.RecommendationTarget.RecommendationTarget
+ Amazonka.CostExplorer.Types.RecommendationTarget: instance Data.Aeson.Types.ToJSON.ToJSONKey Amazonka.CostExplorer.Types.RecommendationTarget.RecommendationTarget
+ Amazonka.CostExplorer.Types.RecommendationTarget: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.RecommendationTarget.RecommendationTarget
+ Amazonka.CostExplorer.Types.RecommendationTarget: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.RecommendationTarget.RecommendationTarget
+ Amazonka.CostExplorer.Types.RecommendationTarget: instance GHC.Classes.Ord Amazonka.CostExplorer.Types.RecommendationTarget.RecommendationTarget
+ Amazonka.CostExplorer.Types.RecommendationTarget: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.RecommendationTarget.RecommendationTarget
+ Amazonka.CostExplorer.Types.RecommendationTarget: instance GHC.Read.Read Amazonka.CostExplorer.Types.RecommendationTarget.RecommendationTarget
+ Amazonka.CostExplorer.Types.RecommendationTarget: instance GHC.Show.Show Amazonka.CostExplorer.Types.RecommendationTarget.RecommendationTarget
+ Amazonka.CostExplorer.Types.RecommendationTarget: newtype RecommendationTarget
+ Amazonka.CostExplorer.Types.RecommendationTarget: pattern RecommendationTarget_CROSS_INSTANCE_FAMILY :: RecommendationTarget
+ Amazonka.CostExplorer.Types.RecommendationTarget: pattern RecommendationTarget_SAME_INSTANCE_FAMILY :: RecommendationTarget
+ Amazonka.CostExplorer.Types.RedshiftInstanceDetails: RedshiftInstanceDetails' :: Maybe Bool -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Bool -> RedshiftInstanceDetails
+ Amazonka.CostExplorer.Types.RedshiftInstanceDetails: [$sel:currentGeneration:RedshiftInstanceDetails'] :: RedshiftInstanceDetails -> Maybe Bool
+ Amazonka.CostExplorer.Types.RedshiftInstanceDetails: [$sel:family:RedshiftInstanceDetails'] :: RedshiftInstanceDetails -> Maybe Text
+ Amazonka.CostExplorer.Types.RedshiftInstanceDetails: [$sel:nodeType:RedshiftInstanceDetails'] :: RedshiftInstanceDetails -> Maybe Text
+ Amazonka.CostExplorer.Types.RedshiftInstanceDetails: [$sel:region:RedshiftInstanceDetails'] :: RedshiftInstanceDetails -> Maybe Text
+ Amazonka.CostExplorer.Types.RedshiftInstanceDetails: [$sel:sizeFlexEligible:RedshiftInstanceDetails'] :: RedshiftInstanceDetails -> Maybe Bool
+ Amazonka.CostExplorer.Types.RedshiftInstanceDetails: data RedshiftInstanceDetails
+ Amazonka.CostExplorer.Types.RedshiftInstanceDetails: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.RedshiftInstanceDetails.RedshiftInstanceDetails
+ Amazonka.CostExplorer.Types.RedshiftInstanceDetails: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.RedshiftInstanceDetails.RedshiftInstanceDetails
+ Amazonka.CostExplorer.Types.RedshiftInstanceDetails: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.RedshiftInstanceDetails.RedshiftInstanceDetails
+ Amazonka.CostExplorer.Types.RedshiftInstanceDetails: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.RedshiftInstanceDetails.RedshiftInstanceDetails
+ Amazonka.CostExplorer.Types.RedshiftInstanceDetails: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.RedshiftInstanceDetails.RedshiftInstanceDetails
+ Amazonka.CostExplorer.Types.RedshiftInstanceDetails: instance GHC.Read.Read Amazonka.CostExplorer.Types.RedshiftInstanceDetails.RedshiftInstanceDetails
+ Amazonka.CostExplorer.Types.RedshiftInstanceDetails: instance GHC.Show.Show Amazonka.CostExplorer.Types.RedshiftInstanceDetails.RedshiftInstanceDetails
+ Amazonka.CostExplorer.Types.RedshiftInstanceDetails: newRedshiftInstanceDetails :: RedshiftInstanceDetails
+ Amazonka.CostExplorer.Types.RedshiftInstanceDetails: redshiftInstanceDetails_currentGeneration :: Lens' RedshiftInstanceDetails (Maybe Bool)
+ Amazonka.CostExplorer.Types.RedshiftInstanceDetails: redshiftInstanceDetails_family :: Lens' RedshiftInstanceDetails (Maybe Text)
+ Amazonka.CostExplorer.Types.RedshiftInstanceDetails: redshiftInstanceDetails_nodeType :: Lens' RedshiftInstanceDetails (Maybe Text)
+ Amazonka.CostExplorer.Types.RedshiftInstanceDetails: redshiftInstanceDetails_region :: Lens' RedshiftInstanceDetails (Maybe Text)
+ Amazonka.CostExplorer.Types.RedshiftInstanceDetails: redshiftInstanceDetails_sizeFlexEligible :: Lens' RedshiftInstanceDetails (Maybe Bool)
+ Amazonka.CostExplorer.Types.ReservationAggregates: ReservationAggregates' :: Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> ReservationAggregates
+ Amazonka.CostExplorer.Types.ReservationAggregates: [$sel:amortizedRecurringFee:ReservationAggregates'] :: ReservationAggregates -> Maybe Text
+ Amazonka.CostExplorer.Types.ReservationAggregates: [$sel:amortizedUpfrontFee:ReservationAggregates'] :: ReservationAggregates -> Maybe Text
+ Amazonka.CostExplorer.Types.ReservationAggregates: [$sel:netRISavings:ReservationAggregates'] :: ReservationAggregates -> Maybe Text
+ Amazonka.CostExplorer.Types.ReservationAggregates: [$sel:onDemandCostOfRIHoursUsed:ReservationAggregates'] :: ReservationAggregates -> Maybe Text
+ Amazonka.CostExplorer.Types.ReservationAggregates: [$sel:purchasedHours:ReservationAggregates'] :: ReservationAggregates -> Maybe Text
+ Amazonka.CostExplorer.Types.ReservationAggregates: [$sel:purchasedUnits:ReservationAggregates'] :: ReservationAggregates -> Maybe Text
+ Amazonka.CostExplorer.Types.ReservationAggregates: [$sel:rICostForUnusedHours:ReservationAggregates'] :: ReservationAggregates -> Maybe Text
+ Amazonka.CostExplorer.Types.ReservationAggregates: [$sel:realizedSavings:ReservationAggregates'] :: ReservationAggregates -> Maybe Text
+ Amazonka.CostExplorer.Types.ReservationAggregates: [$sel:totalActualHours:ReservationAggregates'] :: ReservationAggregates -> Maybe Text
+ Amazonka.CostExplorer.Types.ReservationAggregates: [$sel:totalActualUnits:ReservationAggregates'] :: ReservationAggregates -> Maybe Text
+ Amazonka.CostExplorer.Types.ReservationAggregates: [$sel:totalAmortizedFee:ReservationAggregates'] :: ReservationAggregates -> Maybe Text
+ Amazonka.CostExplorer.Types.ReservationAggregates: [$sel:totalPotentialRISavings:ReservationAggregates'] :: ReservationAggregates -> Maybe Text
+ Amazonka.CostExplorer.Types.ReservationAggregates: [$sel:unrealizedSavings:ReservationAggregates'] :: ReservationAggregates -> Maybe Text
+ Amazonka.CostExplorer.Types.ReservationAggregates: [$sel:unusedHours:ReservationAggregates'] :: ReservationAggregates -> Maybe Text
+ Amazonka.CostExplorer.Types.ReservationAggregates: [$sel:unusedUnits:ReservationAggregates'] :: ReservationAggregates -> Maybe Text
+ Amazonka.CostExplorer.Types.ReservationAggregates: [$sel:utilizationPercentage:ReservationAggregates'] :: ReservationAggregates -> Maybe Text
+ Amazonka.CostExplorer.Types.ReservationAggregates: [$sel:utilizationPercentageInUnits:ReservationAggregates'] :: ReservationAggregates -> Maybe Text
+ Amazonka.CostExplorer.Types.ReservationAggregates: data ReservationAggregates
+ Amazonka.CostExplorer.Types.ReservationAggregates: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.ReservationAggregates.ReservationAggregates
+ Amazonka.CostExplorer.Types.ReservationAggregates: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.ReservationAggregates.ReservationAggregates
+ Amazonka.CostExplorer.Types.ReservationAggregates: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.ReservationAggregates.ReservationAggregates
+ Amazonka.CostExplorer.Types.ReservationAggregates: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.ReservationAggregates.ReservationAggregates
+ Amazonka.CostExplorer.Types.ReservationAggregates: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.ReservationAggregates.ReservationAggregates
+ Amazonka.CostExplorer.Types.ReservationAggregates: instance GHC.Read.Read Amazonka.CostExplorer.Types.ReservationAggregates.ReservationAggregates
+ Amazonka.CostExplorer.Types.ReservationAggregates: instance GHC.Show.Show Amazonka.CostExplorer.Types.ReservationAggregates.ReservationAggregates
+ Amazonka.CostExplorer.Types.ReservationAggregates: newReservationAggregates :: ReservationAggregates
+ Amazonka.CostExplorer.Types.ReservationAggregates: reservationAggregates_amortizedRecurringFee :: Lens' ReservationAggregates (Maybe Text)
+ Amazonka.CostExplorer.Types.ReservationAggregates: reservationAggregates_amortizedUpfrontFee :: Lens' ReservationAggregates (Maybe Text)
+ Amazonka.CostExplorer.Types.ReservationAggregates: reservationAggregates_netRISavings :: Lens' ReservationAggregates (Maybe Text)
+ Amazonka.CostExplorer.Types.ReservationAggregates: reservationAggregates_onDemandCostOfRIHoursUsed :: Lens' ReservationAggregates (Maybe Text)
+ Amazonka.CostExplorer.Types.ReservationAggregates: reservationAggregates_purchasedHours :: Lens' ReservationAggregates (Maybe Text)
+ Amazonka.CostExplorer.Types.ReservationAggregates: reservationAggregates_purchasedUnits :: Lens' ReservationAggregates (Maybe Text)
+ Amazonka.CostExplorer.Types.ReservationAggregates: reservationAggregates_rICostForUnusedHours :: Lens' ReservationAggregates (Maybe Text)
+ Amazonka.CostExplorer.Types.ReservationAggregates: reservationAggregates_realizedSavings :: Lens' ReservationAggregates (Maybe Text)
+ Amazonka.CostExplorer.Types.ReservationAggregates: reservationAggregates_totalActualHours :: Lens' ReservationAggregates (Maybe Text)
+ Amazonka.CostExplorer.Types.ReservationAggregates: reservationAggregates_totalActualUnits :: Lens' ReservationAggregates (Maybe Text)
+ Amazonka.CostExplorer.Types.ReservationAggregates: reservationAggregates_totalAmortizedFee :: Lens' ReservationAggregates (Maybe Text)
+ Amazonka.CostExplorer.Types.ReservationAggregates: reservationAggregates_totalPotentialRISavings :: Lens' ReservationAggregates (Maybe Text)
+ Amazonka.CostExplorer.Types.ReservationAggregates: reservationAggregates_unrealizedSavings :: Lens' ReservationAggregates (Maybe Text)
+ Amazonka.CostExplorer.Types.ReservationAggregates: reservationAggregates_unusedHours :: Lens' ReservationAggregates (Maybe Text)
+ Amazonka.CostExplorer.Types.ReservationAggregates: reservationAggregates_unusedUnits :: Lens' ReservationAggregates (Maybe Text)
+ Amazonka.CostExplorer.Types.ReservationAggregates: reservationAggregates_utilizationPercentage :: Lens' ReservationAggregates (Maybe Text)
+ Amazonka.CostExplorer.Types.ReservationAggregates: reservationAggregates_utilizationPercentageInUnits :: Lens' ReservationAggregates (Maybe Text)
+ Amazonka.CostExplorer.Types.ReservationCoverageGroup: ReservationCoverageGroup' :: Maybe (HashMap Text Text) -> Maybe Coverage -> ReservationCoverageGroup
+ Amazonka.CostExplorer.Types.ReservationCoverageGroup: [$sel:attributes:ReservationCoverageGroup'] :: ReservationCoverageGroup -> Maybe (HashMap Text Text)
+ Amazonka.CostExplorer.Types.ReservationCoverageGroup: [$sel:coverage:ReservationCoverageGroup'] :: ReservationCoverageGroup -> Maybe Coverage
+ Amazonka.CostExplorer.Types.ReservationCoverageGroup: data ReservationCoverageGroup
+ Amazonka.CostExplorer.Types.ReservationCoverageGroup: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.ReservationCoverageGroup.ReservationCoverageGroup
+ Amazonka.CostExplorer.Types.ReservationCoverageGroup: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.ReservationCoverageGroup.ReservationCoverageGroup
+ Amazonka.CostExplorer.Types.ReservationCoverageGroup: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.ReservationCoverageGroup.ReservationCoverageGroup
+ Amazonka.CostExplorer.Types.ReservationCoverageGroup: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.ReservationCoverageGroup.ReservationCoverageGroup
+ Amazonka.CostExplorer.Types.ReservationCoverageGroup: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.ReservationCoverageGroup.ReservationCoverageGroup
+ Amazonka.CostExplorer.Types.ReservationCoverageGroup: instance GHC.Read.Read Amazonka.CostExplorer.Types.ReservationCoverageGroup.ReservationCoverageGroup
+ Amazonka.CostExplorer.Types.ReservationCoverageGroup: instance GHC.Show.Show Amazonka.CostExplorer.Types.ReservationCoverageGroup.ReservationCoverageGroup
+ Amazonka.CostExplorer.Types.ReservationCoverageGroup: newReservationCoverageGroup :: ReservationCoverageGroup
+ Amazonka.CostExplorer.Types.ReservationCoverageGroup: reservationCoverageGroup_attributes :: Lens' ReservationCoverageGroup (Maybe (HashMap Text Text))
+ Amazonka.CostExplorer.Types.ReservationCoverageGroup: reservationCoverageGroup_coverage :: Lens' ReservationCoverageGroup (Maybe Coverage)
+ Amazonka.CostExplorer.Types.ReservationPurchaseRecommendation: ReservationPurchaseRecommendation' :: Maybe AccountScope -> Maybe LookbackPeriodInDays -> Maybe PaymentOption -> Maybe [ReservationPurchaseRecommendationDetail] -> Maybe ReservationPurchaseRecommendationSummary -> Maybe ServiceSpecification -> Maybe TermInYears -> ReservationPurchaseRecommendation
+ Amazonka.CostExplorer.Types.ReservationPurchaseRecommendation: [$sel:accountScope:ReservationPurchaseRecommendation'] :: ReservationPurchaseRecommendation -> Maybe AccountScope
+ Amazonka.CostExplorer.Types.ReservationPurchaseRecommendation: [$sel:lookbackPeriodInDays:ReservationPurchaseRecommendation'] :: ReservationPurchaseRecommendation -> Maybe LookbackPeriodInDays
+ Amazonka.CostExplorer.Types.ReservationPurchaseRecommendation: [$sel:paymentOption:ReservationPurchaseRecommendation'] :: ReservationPurchaseRecommendation -> Maybe PaymentOption
+ Amazonka.CostExplorer.Types.ReservationPurchaseRecommendation: [$sel:recommendationDetails:ReservationPurchaseRecommendation'] :: ReservationPurchaseRecommendation -> Maybe [ReservationPurchaseRecommendationDetail]
+ Amazonka.CostExplorer.Types.ReservationPurchaseRecommendation: [$sel:recommendationSummary:ReservationPurchaseRecommendation'] :: ReservationPurchaseRecommendation -> Maybe ReservationPurchaseRecommendationSummary
+ Amazonka.CostExplorer.Types.ReservationPurchaseRecommendation: [$sel:serviceSpecification:ReservationPurchaseRecommendation'] :: ReservationPurchaseRecommendation -> Maybe ServiceSpecification
+ Amazonka.CostExplorer.Types.ReservationPurchaseRecommendation: [$sel:termInYears:ReservationPurchaseRecommendation'] :: ReservationPurchaseRecommendation -> Maybe TermInYears
+ Amazonka.CostExplorer.Types.ReservationPurchaseRecommendation: data ReservationPurchaseRecommendation
+ Amazonka.CostExplorer.Types.ReservationPurchaseRecommendation: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.ReservationPurchaseRecommendation.ReservationPurchaseRecommendation
+ Amazonka.CostExplorer.Types.ReservationPurchaseRecommendation: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.ReservationPurchaseRecommendation.ReservationPurchaseRecommendation
+ Amazonka.CostExplorer.Types.ReservationPurchaseRecommendation: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.ReservationPurchaseRecommendation.ReservationPurchaseRecommendation
+ Amazonka.CostExplorer.Types.ReservationPurchaseRecommendation: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.ReservationPurchaseRecommendation.ReservationPurchaseRecommendation
+ Amazonka.CostExplorer.Types.ReservationPurchaseRecommendation: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.ReservationPurchaseRecommendation.ReservationPurchaseRecommendation
+ Amazonka.CostExplorer.Types.ReservationPurchaseRecommendation: instance GHC.Read.Read Amazonka.CostExplorer.Types.ReservationPurchaseRecommendation.ReservationPurchaseRecommendation
+ Amazonka.CostExplorer.Types.ReservationPurchaseRecommendation: instance GHC.Show.Show Amazonka.CostExplorer.Types.ReservationPurchaseRecommendation.ReservationPurchaseRecommendation
+ Amazonka.CostExplorer.Types.ReservationPurchaseRecommendation: newReservationPurchaseRecommendation :: ReservationPurchaseRecommendation
+ Amazonka.CostExplorer.Types.ReservationPurchaseRecommendation: reservationPurchaseRecommendation_accountScope :: Lens' ReservationPurchaseRecommendation (Maybe AccountScope)
+ Amazonka.CostExplorer.Types.ReservationPurchaseRecommendation: reservationPurchaseRecommendation_lookbackPeriodInDays :: Lens' ReservationPurchaseRecommendation (Maybe LookbackPeriodInDays)
+ Amazonka.CostExplorer.Types.ReservationPurchaseRecommendation: reservationPurchaseRecommendation_paymentOption :: Lens' ReservationPurchaseRecommendation (Maybe PaymentOption)
+ Amazonka.CostExplorer.Types.ReservationPurchaseRecommendation: reservationPurchaseRecommendation_recommendationDetails :: Lens' ReservationPurchaseRecommendation (Maybe [ReservationPurchaseRecommendationDetail])
+ Amazonka.CostExplorer.Types.ReservationPurchaseRecommendation: reservationPurchaseRecommendation_recommendationSummary :: Lens' ReservationPurchaseRecommendation (Maybe ReservationPurchaseRecommendationSummary)
+ Amazonka.CostExplorer.Types.ReservationPurchaseRecommendation: reservationPurchaseRecommendation_serviceSpecification :: Lens' ReservationPurchaseRecommendation (Maybe ServiceSpecification)
+ Amazonka.CostExplorer.Types.ReservationPurchaseRecommendation: reservationPurchaseRecommendation_termInYears :: Lens' ReservationPurchaseRecommendation (Maybe TermInYears)
+ Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationDetail: ReservationPurchaseRecommendationDetail' :: Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe InstanceDetails -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> ReservationPurchaseRecommendationDetail
+ Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationDetail: [$sel:accountId:ReservationPurchaseRecommendationDetail'] :: ReservationPurchaseRecommendationDetail -> Maybe Text
+ Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationDetail: [$sel:averageNormalizedUnitsUsedPerHour:ReservationPurchaseRecommendationDetail'] :: ReservationPurchaseRecommendationDetail -> Maybe Text
+ Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationDetail: [$sel:averageNumberOfInstancesUsedPerHour:ReservationPurchaseRecommendationDetail'] :: ReservationPurchaseRecommendationDetail -> Maybe Text
+ Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationDetail: [$sel:averageUtilization:ReservationPurchaseRecommendationDetail'] :: ReservationPurchaseRecommendationDetail -> Maybe Text
+ Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationDetail: [$sel:currencyCode:ReservationPurchaseRecommendationDetail'] :: ReservationPurchaseRecommendationDetail -> Maybe Text
+ Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationDetail: [$sel:estimatedBreakEvenInMonths:ReservationPurchaseRecommendationDetail'] :: ReservationPurchaseRecommendationDetail -> Maybe Text
+ Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationDetail: [$sel:estimatedMonthlyOnDemandCost:ReservationPurchaseRecommendationDetail'] :: ReservationPurchaseRecommendationDetail -> Maybe Text
+ Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationDetail: [$sel:estimatedMonthlySavingsAmount:ReservationPurchaseRecommendationDetail'] :: ReservationPurchaseRecommendationDetail -> Maybe Text
+ Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationDetail: [$sel:estimatedMonthlySavingsPercentage:ReservationPurchaseRecommendationDetail'] :: ReservationPurchaseRecommendationDetail -> Maybe Text
+ Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationDetail: [$sel:estimatedReservationCostForLookbackPeriod:ReservationPurchaseRecommendationDetail'] :: ReservationPurchaseRecommendationDetail -> Maybe Text
+ Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationDetail: [$sel:instanceDetails:ReservationPurchaseRecommendationDetail'] :: ReservationPurchaseRecommendationDetail -> Maybe InstanceDetails
+ Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationDetail: [$sel:maximumNormalizedUnitsUsedPerHour:ReservationPurchaseRecommendationDetail'] :: ReservationPurchaseRecommendationDetail -> Maybe Text
+ Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationDetail: [$sel:maximumNumberOfInstancesUsedPerHour:ReservationPurchaseRecommendationDetail'] :: ReservationPurchaseRecommendationDetail -> Maybe Text
+ Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationDetail: [$sel:minimumNormalizedUnitsUsedPerHour:ReservationPurchaseRecommendationDetail'] :: ReservationPurchaseRecommendationDetail -> Maybe Text
+ Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationDetail: [$sel:minimumNumberOfInstancesUsedPerHour:ReservationPurchaseRecommendationDetail'] :: ReservationPurchaseRecommendationDetail -> Maybe Text
+ Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationDetail: [$sel:recommendedNormalizedUnitsToPurchase:ReservationPurchaseRecommendationDetail'] :: ReservationPurchaseRecommendationDetail -> Maybe Text
+ Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationDetail: [$sel:recommendedNumberOfInstancesToPurchase:ReservationPurchaseRecommendationDetail'] :: ReservationPurchaseRecommendationDetail -> Maybe Text
+ Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationDetail: [$sel:recurringStandardMonthlyCost:ReservationPurchaseRecommendationDetail'] :: ReservationPurchaseRecommendationDetail -> Maybe Text
+ Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationDetail: [$sel:upfrontCost:ReservationPurchaseRecommendationDetail'] :: ReservationPurchaseRecommendationDetail -> Maybe Text
+ Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationDetail: data ReservationPurchaseRecommendationDetail
+ Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationDetail: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationDetail.ReservationPurchaseRecommendationDetail
+ Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationDetail: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationDetail.ReservationPurchaseRecommendationDetail
+ Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationDetail: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationDetail.ReservationPurchaseRecommendationDetail
+ Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationDetail: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationDetail.ReservationPurchaseRecommendationDetail
+ Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationDetail: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationDetail.ReservationPurchaseRecommendationDetail
+ Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationDetail: instance GHC.Read.Read Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationDetail.ReservationPurchaseRecommendationDetail
+ Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationDetail: instance GHC.Show.Show Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationDetail.ReservationPurchaseRecommendationDetail
+ Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationDetail: newReservationPurchaseRecommendationDetail :: ReservationPurchaseRecommendationDetail
+ Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationDetail: reservationPurchaseRecommendationDetail_accountId :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationDetail: reservationPurchaseRecommendationDetail_averageNormalizedUnitsUsedPerHour :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationDetail: reservationPurchaseRecommendationDetail_averageNumberOfInstancesUsedPerHour :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationDetail: reservationPurchaseRecommendationDetail_averageUtilization :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationDetail: reservationPurchaseRecommendationDetail_currencyCode :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationDetail: reservationPurchaseRecommendationDetail_estimatedBreakEvenInMonths :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationDetail: reservationPurchaseRecommendationDetail_estimatedMonthlyOnDemandCost :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationDetail: reservationPurchaseRecommendationDetail_estimatedMonthlySavingsAmount :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationDetail: reservationPurchaseRecommendationDetail_estimatedMonthlySavingsPercentage :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationDetail: reservationPurchaseRecommendationDetail_estimatedReservationCostForLookbackPeriod :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationDetail: reservationPurchaseRecommendationDetail_instanceDetails :: Lens' ReservationPurchaseRecommendationDetail (Maybe InstanceDetails)
+ Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationDetail: reservationPurchaseRecommendationDetail_maximumNormalizedUnitsUsedPerHour :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationDetail: reservationPurchaseRecommendationDetail_maximumNumberOfInstancesUsedPerHour :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationDetail: reservationPurchaseRecommendationDetail_minimumNormalizedUnitsUsedPerHour :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationDetail: reservationPurchaseRecommendationDetail_minimumNumberOfInstancesUsedPerHour :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationDetail: reservationPurchaseRecommendationDetail_recommendedNormalizedUnitsToPurchase :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationDetail: reservationPurchaseRecommendationDetail_recommendedNumberOfInstancesToPurchase :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationDetail: reservationPurchaseRecommendationDetail_recurringStandardMonthlyCost :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationDetail: reservationPurchaseRecommendationDetail_upfrontCost :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationMetadata: ReservationPurchaseRecommendationMetadata' :: Maybe Text -> Maybe Text -> ReservationPurchaseRecommendationMetadata
+ Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationMetadata: [$sel:generationTimestamp:ReservationPurchaseRecommendationMetadata'] :: ReservationPurchaseRecommendationMetadata -> Maybe Text
+ Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationMetadata: [$sel:recommendationId:ReservationPurchaseRecommendationMetadata'] :: ReservationPurchaseRecommendationMetadata -> Maybe Text
+ Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationMetadata: data ReservationPurchaseRecommendationMetadata
+ Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationMetadata: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationMetadata.ReservationPurchaseRecommendationMetadata
+ Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationMetadata: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationMetadata.ReservationPurchaseRecommendationMetadata
+ Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationMetadata: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationMetadata.ReservationPurchaseRecommendationMetadata
+ Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationMetadata: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationMetadata.ReservationPurchaseRecommendationMetadata
+ Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationMetadata: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationMetadata.ReservationPurchaseRecommendationMetadata
+ Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationMetadata: instance GHC.Read.Read Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationMetadata.ReservationPurchaseRecommendationMetadata
+ Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationMetadata: instance GHC.Show.Show Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationMetadata.ReservationPurchaseRecommendationMetadata
+ Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationMetadata: newReservationPurchaseRecommendationMetadata :: ReservationPurchaseRecommendationMetadata
+ Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationMetadata: reservationPurchaseRecommendationMetadata_generationTimestamp :: Lens' ReservationPurchaseRecommendationMetadata (Maybe Text)
+ Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationMetadata: reservationPurchaseRecommendationMetadata_recommendationId :: Lens' ReservationPurchaseRecommendationMetadata (Maybe Text)
+ Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationSummary: ReservationPurchaseRecommendationSummary' :: Maybe Text -> Maybe Text -> Maybe Text -> ReservationPurchaseRecommendationSummary
+ Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationSummary: [$sel:currencyCode:ReservationPurchaseRecommendationSummary'] :: ReservationPurchaseRecommendationSummary -> Maybe Text
+ Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationSummary: [$sel:totalEstimatedMonthlySavingsAmount:ReservationPurchaseRecommendationSummary'] :: ReservationPurchaseRecommendationSummary -> Maybe Text
+ Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationSummary: [$sel:totalEstimatedMonthlySavingsPercentage:ReservationPurchaseRecommendationSummary'] :: ReservationPurchaseRecommendationSummary -> Maybe Text
+ Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationSummary: data ReservationPurchaseRecommendationSummary
+ Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationSummary: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationSummary.ReservationPurchaseRecommendationSummary
+ Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationSummary: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationSummary.ReservationPurchaseRecommendationSummary
+ Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationSummary: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationSummary.ReservationPurchaseRecommendationSummary
+ Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationSummary: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationSummary.ReservationPurchaseRecommendationSummary
+ Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationSummary: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationSummary.ReservationPurchaseRecommendationSummary
+ Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationSummary: instance GHC.Read.Read Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationSummary.ReservationPurchaseRecommendationSummary
+ Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationSummary: instance GHC.Show.Show Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationSummary.ReservationPurchaseRecommendationSummary
+ Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationSummary: newReservationPurchaseRecommendationSummary :: ReservationPurchaseRecommendationSummary
+ Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationSummary: reservationPurchaseRecommendationSummary_currencyCode :: Lens' ReservationPurchaseRecommendationSummary (Maybe Text)
+ Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationSummary: reservationPurchaseRecommendationSummary_totalEstimatedMonthlySavingsAmount :: Lens' ReservationPurchaseRecommendationSummary (Maybe Text)
+ Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationSummary: reservationPurchaseRecommendationSummary_totalEstimatedMonthlySavingsPercentage :: Lens' ReservationPurchaseRecommendationSummary (Maybe Text)
+ Amazonka.CostExplorer.Types.ReservationUtilizationGroup: ReservationUtilizationGroup' :: Maybe (HashMap Text Text) -> Maybe Text -> Maybe ReservationAggregates -> Maybe Text -> ReservationUtilizationGroup
+ Amazonka.CostExplorer.Types.ReservationUtilizationGroup: [$sel:attributes:ReservationUtilizationGroup'] :: ReservationUtilizationGroup -> Maybe (HashMap Text Text)
+ Amazonka.CostExplorer.Types.ReservationUtilizationGroup: [$sel:key:ReservationUtilizationGroup'] :: ReservationUtilizationGroup -> Maybe Text
+ Amazonka.CostExplorer.Types.ReservationUtilizationGroup: [$sel:utilization:ReservationUtilizationGroup'] :: ReservationUtilizationGroup -> Maybe ReservationAggregates
+ Amazonka.CostExplorer.Types.ReservationUtilizationGroup: [$sel:value:ReservationUtilizationGroup'] :: ReservationUtilizationGroup -> Maybe Text
+ Amazonka.CostExplorer.Types.ReservationUtilizationGroup: data ReservationUtilizationGroup
+ Amazonka.CostExplorer.Types.ReservationUtilizationGroup: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.ReservationUtilizationGroup.ReservationUtilizationGroup
+ Amazonka.CostExplorer.Types.ReservationUtilizationGroup: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.ReservationUtilizationGroup.ReservationUtilizationGroup
+ Amazonka.CostExplorer.Types.ReservationUtilizationGroup: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.ReservationUtilizationGroup.ReservationUtilizationGroup
+ Amazonka.CostExplorer.Types.ReservationUtilizationGroup: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.ReservationUtilizationGroup.ReservationUtilizationGroup
+ Amazonka.CostExplorer.Types.ReservationUtilizationGroup: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.ReservationUtilizationGroup.ReservationUtilizationGroup
+ Amazonka.CostExplorer.Types.ReservationUtilizationGroup: instance GHC.Read.Read Amazonka.CostExplorer.Types.ReservationUtilizationGroup.ReservationUtilizationGroup
+ Amazonka.CostExplorer.Types.ReservationUtilizationGroup: instance GHC.Show.Show Amazonka.CostExplorer.Types.ReservationUtilizationGroup.ReservationUtilizationGroup
+ Amazonka.CostExplorer.Types.ReservationUtilizationGroup: newReservationUtilizationGroup :: ReservationUtilizationGroup
+ Amazonka.CostExplorer.Types.ReservationUtilizationGroup: reservationUtilizationGroup_attributes :: Lens' ReservationUtilizationGroup (Maybe (HashMap Text Text))
+ Amazonka.CostExplorer.Types.ReservationUtilizationGroup: reservationUtilizationGroup_key :: Lens' ReservationUtilizationGroup (Maybe Text)
+ Amazonka.CostExplorer.Types.ReservationUtilizationGroup: reservationUtilizationGroup_utilization :: Lens' ReservationUtilizationGroup (Maybe ReservationAggregates)
+ Amazonka.CostExplorer.Types.ReservationUtilizationGroup: reservationUtilizationGroup_value :: Lens' ReservationUtilizationGroup (Maybe Text)
+ Amazonka.CostExplorer.Types.ResourceDetails: ResourceDetails' :: Maybe EC2ResourceDetails -> ResourceDetails
+ Amazonka.CostExplorer.Types.ResourceDetails: [$sel:eC2ResourceDetails:ResourceDetails'] :: ResourceDetails -> Maybe EC2ResourceDetails
+ Amazonka.CostExplorer.Types.ResourceDetails: data ResourceDetails
+ Amazonka.CostExplorer.Types.ResourceDetails: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.ResourceDetails.ResourceDetails
+ Amazonka.CostExplorer.Types.ResourceDetails: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.ResourceDetails.ResourceDetails
+ Amazonka.CostExplorer.Types.ResourceDetails: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.ResourceDetails.ResourceDetails
+ Amazonka.CostExplorer.Types.ResourceDetails: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.ResourceDetails.ResourceDetails
+ Amazonka.CostExplorer.Types.ResourceDetails: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.ResourceDetails.ResourceDetails
+ Amazonka.CostExplorer.Types.ResourceDetails: instance GHC.Read.Read Amazonka.CostExplorer.Types.ResourceDetails.ResourceDetails
+ Amazonka.CostExplorer.Types.ResourceDetails: instance GHC.Show.Show Amazonka.CostExplorer.Types.ResourceDetails.ResourceDetails
+ Amazonka.CostExplorer.Types.ResourceDetails: newResourceDetails :: ResourceDetails
+ Amazonka.CostExplorer.Types.ResourceDetails: resourceDetails_eC2ResourceDetails :: Lens' ResourceDetails (Maybe EC2ResourceDetails)
+ Amazonka.CostExplorer.Types.ResourceTag: ResourceTag' :: Text -> Text -> ResourceTag
+ Amazonka.CostExplorer.Types.ResourceTag: [$sel:key:ResourceTag'] :: ResourceTag -> Text
+ Amazonka.CostExplorer.Types.ResourceTag: [$sel:value:ResourceTag'] :: ResourceTag -> Text
+ Amazonka.CostExplorer.Types.ResourceTag: data ResourceTag
+ Amazonka.CostExplorer.Types.ResourceTag: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.ResourceTag.ResourceTag
+ Amazonka.CostExplorer.Types.ResourceTag: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.ResourceTag.ResourceTag
+ Amazonka.CostExplorer.Types.ResourceTag: instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.CostExplorer.Types.ResourceTag.ResourceTag
+ Amazonka.CostExplorer.Types.ResourceTag: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.ResourceTag.ResourceTag
+ Amazonka.CostExplorer.Types.ResourceTag: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.ResourceTag.ResourceTag
+ Amazonka.CostExplorer.Types.ResourceTag: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.ResourceTag.ResourceTag
+ Amazonka.CostExplorer.Types.ResourceTag: instance GHC.Read.Read Amazonka.CostExplorer.Types.ResourceTag.ResourceTag
+ Amazonka.CostExplorer.Types.ResourceTag: instance GHC.Show.Show Amazonka.CostExplorer.Types.ResourceTag.ResourceTag
+ Amazonka.CostExplorer.Types.ResourceTag: newResourceTag :: Text -> Text -> ResourceTag
+ Amazonka.CostExplorer.Types.ResourceTag: resourceTag_key :: Lens' ResourceTag Text
+ Amazonka.CostExplorer.Types.ResourceTag: resourceTag_value :: Lens' ResourceTag Text
+ Amazonka.CostExplorer.Types.ResourceUtilization: ResourceUtilization' :: Maybe EC2ResourceUtilization -> ResourceUtilization
+ Amazonka.CostExplorer.Types.ResourceUtilization: [$sel:eC2ResourceUtilization:ResourceUtilization'] :: ResourceUtilization -> Maybe EC2ResourceUtilization
+ Amazonka.CostExplorer.Types.ResourceUtilization: data ResourceUtilization
+ Amazonka.CostExplorer.Types.ResourceUtilization: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.ResourceUtilization.ResourceUtilization
+ Amazonka.CostExplorer.Types.ResourceUtilization: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.ResourceUtilization.ResourceUtilization
+ Amazonka.CostExplorer.Types.ResourceUtilization: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.ResourceUtilization.ResourceUtilization
+ Amazonka.CostExplorer.Types.ResourceUtilization: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.ResourceUtilization.ResourceUtilization
+ Amazonka.CostExplorer.Types.ResourceUtilization: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.ResourceUtilization.ResourceUtilization
+ Amazonka.CostExplorer.Types.ResourceUtilization: instance GHC.Read.Read Amazonka.CostExplorer.Types.ResourceUtilization.ResourceUtilization
+ Amazonka.CostExplorer.Types.ResourceUtilization: instance GHC.Show.Show Amazonka.CostExplorer.Types.ResourceUtilization.ResourceUtilization
+ Amazonka.CostExplorer.Types.ResourceUtilization: newResourceUtilization :: ResourceUtilization
+ Amazonka.CostExplorer.Types.ResourceUtilization: resourceUtilization_eC2ResourceUtilization :: Lens' ResourceUtilization (Maybe EC2ResourceUtilization)
+ Amazonka.CostExplorer.Types.ResultByTime: ResultByTime' :: Maybe Bool -> Maybe [Group] -> Maybe DateInterval -> Maybe (HashMap Text MetricValue) -> ResultByTime
+ Amazonka.CostExplorer.Types.ResultByTime: [$sel:estimated:ResultByTime'] :: ResultByTime -> Maybe Bool
+ Amazonka.CostExplorer.Types.ResultByTime: [$sel:groups:ResultByTime'] :: ResultByTime -> Maybe [Group]
+ Amazonka.CostExplorer.Types.ResultByTime: [$sel:timePeriod:ResultByTime'] :: ResultByTime -> Maybe DateInterval
+ Amazonka.CostExplorer.Types.ResultByTime: [$sel:total:ResultByTime'] :: ResultByTime -> Maybe (HashMap Text MetricValue)
+ Amazonka.CostExplorer.Types.ResultByTime: data ResultByTime
+ Amazonka.CostExplorer.Types.ResultByTime: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.ResultByTime.ResultByTime
+ Amazonka.CostExplorer.Types.ResultByTime: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.ResultByTime.ResultByTime
+ Amazonka.CostExplorer.Types.ResultByTime: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.ResultByTime.ResultByTime
+ Amazonka.CostExplorer.Types.ResultByTime: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.ResultByTime.ResultByTime
+ Amazonka.CostExplorer.Types.ResultByTime: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.ResultByTime.ResultByTime
+ Amazonka.CostExplorer.Types.ResultByTime: instance GHC.Read.Read Amazonka.CostExplorer.Types.ResultByTime.ResultByTime
+ Amazonka.CostExplorer.Types.ResultByTime: instance GHC.Show.Show Amazonka.CostExplorer.Types.ResultByTime.ResultByTime
+ Amazonka.CostExplorer.Types.ResultByTime: newResultByTime :: ResultByTime
+ Amazonka.CostExplorer.Types.ResultByTime: resultByTime_estimated :: Lens' ResultByTime (Maybe Bool)
+ Amazonka.CostExplorer.Types.ResultByTime: resultByTime_groups :: Lens' ResultByTime (Maybe [Group])
+ Amazonka.CostExplorer.Types.ResultByTime: resultByTime_timePeriod :: Lens' ResultByTime (Maybe DateInterval)
+ Amazonka.CostExplorer.Types.ResultByTime: resultByTime_total :: Lens' ResultByTime (Maybe (HashMap Text MetricValue))
+ Amazonka.CostExplorer.Types.RightsizingRecommendation: RightsizingRecommendation' :: Maybe Text -> Maybe CurrentInstance -> Maybe [FindingReasonCode] -> Maybe ModifyRecommendationDetail -> Maybe RightsizingType -> Maybe TerminateRecommendationDetail -> RightsizingRecommendation
+ Amazonka.CostExplorer.Types.RightsizingRecommendation: [$sel:accountId:RightsizingRecommendation'] :: RightsizingRecommendation -> Maybe Text
+ Amazonka.CostExplorer.Types.RightsizingRecommendation: [$sel:currentInstance:RightsizingRecommendation'] :: RightsizingRecommendation -> Maybe CurrentInstance
+ Amazonka.CostExplorer.Types.RightsizingRecommendation: [$sel:findingReasonCodes:RightsizingRecommendation'] :: RightsizingRecommendation -> Maybe [FindingReasonCode]
+ Amazonka.CostExplorer.Types.RightsizingRecommendation: [$sel:modifyRecommendationDetail:RightsizingRecommendation'] :: RightsizingRecommendation -> Maybe ModifyRecommendationDetail
+ Amazonka.CostExplorer.Types.RightsizingRecommendation: [$sel:rightsizingType:RightsizingRecommendation'] :: RightsizingRecommendation -> Maybe RightsizingType
+ Amazonka.CostExplorer.Types.RightsizingRecommendation: [$sel:terminateRecommendationDetail:RightsizingRecommendation'] :: RightsizingRecommendation -> Maybe TerminateRecommendationDetail
+ Amazonka.CostExplorer.Types.RightsizingRecommendation: data RightsizingRecommendation
+ Amazonka.CostExplorer.Types.RightsizingRecommendation: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.RightsizingRecommendation.RightsizingRecommendation
+ Amazonka.CostExplorer.Types.RightsizingRecommendation: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.RightsizingRecommendation.RightsizingRecommendation
+ Amazonka.CostExplorer.Types.RightsizingRecommendation: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.RightsizingRecommendation.RightsizingRecommendation
+ Amazonka.CostExplorer.Types.RightsizingRecommendation: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.RightsizingRecommendation.RightsizingRecommendation
+ Amazonka.CostExplorer.Types.RightsizingRecommendation: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.RightsizingRecommendation.RightsizingRecommendation
+ Amazonka.CostExplorer.Types.RightsizingRecommendation: instance GHC.Read.Read Amazonka.CostExplorer.Types.RightsizingRecommendation.RightsizingRecommendation
+ Amazonka.CostExplorer.Types.RightsizingRecommendation: instance GHC.Show.Show Amazonka.CostExplorer.Types.RightsizingRecommendation.RightsizingRecommendation
+ Amazonka.CostExplorer.Types.RightsizingRecommendation: newRightsizingRecommendation :: RightsizingRecommendation
+ Amazonka.CostExplorer.Types.RightsizingRecommendation: rightsizingRecommendation_accountId :: Lens' RightsizingRecommendation (Maybe Text)
+ Amazonka.CostExplorer.Types.RightsizingRecommendation: rightsizingRecommendation_currentInstance :: Lens' RightsizingRecommendation (Maybe CurrentInstance)
+ Amazonka.CostExplorer.Types.RightsizingRecommendation: rightsizingRecommendation_findingReasonCodes :: Lens' RightsizingRecommendation (Maybe [FindingReasonCode])
+ Amazonka.CostExplorer.Types.RightsizingRecommendation: rightsizingRecommendation_modifyRecommendationDetail :: Lens' RightsizingRecommendation (Maybe ModifyRecommendationDetail)
+ Amazonka.CostExplorer.Types.RightsizingRecommendation: rightsizingRecommendation_rightsizingType :: Lens' RightsizingRecommendation (Maybe RightsizingType)
+ Amazonka.CostExplorer.Types.RightsizingRecommendation: rightsizingRecommendation_terminateRecommendationDetail :: Lens' RightsizingRecommendation (Maybe TerminateRecommendationDetail)
+ Amazonka.CostExplorer.Types.RightsizingRecommendationConfiguration: RightsizingRecommendationConfiguration' :: RecommendationTarget -> Bool -> RightsizingRecommendationConfiguration
+ Amazonka.CostExplorer.Types.RightsizingRecommendationConfiguration: [$sel:benefitsConsidered:RightsizingRecommendationConfiguration'] :: RightsizingRecommendationConfiguration -> Bool
+ Amazonka.CostExplorer.Types.RightsizingRecommendationConfiguration: [$sel:recommendationTarget:RightsizingRecommendationConfiguration'] :: RightsizingRecommendationConfiguration -> RecommendationTarget
+ Amazonka.CostExplorer.Types.RightsizingRecommendationConfiguration: data RightsizingRecommendationConfiguration
+ Amazonka.CostExplorer.Types.RightsizingRecommendationConfiguration: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.RightsizingRecommendationConfiguration.RightsizingRecommendationConfiguration
+ Amazonka.CostExplorer.Types.RightsizingRecommendationConfiguration: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.RightsizingRecommendationConfiguration.RightsizingRecommendationConfiguration
+ Amazonka.CostExplorer.Types.RightsizingRecommendationConfiguration: instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.CostExplorer.Types.RightsizingRecommendationConfiguration.RightsizingRecommendationConfiguration
+ Amazonka.CostExplorer.Types.RightsizingRecommendationConfiguration: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.RightsizingRecommendationConfiguration.RightsizingRecommendationConfiguration
+ Amazonka.CostExplorer.Types.RightsizingRecommendationConfiguration: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.RightsizingRecommendationConfiguration.RightsizingRecommendationConfiguration
+ Amazonka.CostExplorer.Types.RightsizingRecommendationConfiguration: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.RightsizingRecommendationConfiguration.RightsizingRecommendationConfiguration
+ Amazonka.CostExplorer.Types.RightsizingRecommendationConfiguration: instance GHC.Read.Read Amazonka.CostExplorer.Types.RightsizingRecommendationConfiguration.RightsizingRecommendationConfiguration
+ Amazonka.CostExplorer.Types.RightsizingRecommendationConfiguration: instance GHC.Show.Show Amazonka.CostExplorer.Types.RightsizingRecommendationConfiguration.RightsizingRecommendationConfiguration
+ Amazonka.CostExplorer.Types.RightsizingRecommendationConfiguration: newRightsizingRecommendationConfiguration :: RecommendationTarget -> Bool -> RightsizingRecommendationConfiguration
+ Amazonka.CostExplorer.Types.RightsizingRecommendationConfiguration: rightsizingRecommendationConfiguration_benefitsConsidered :: Lens' RightsizingRecommendationConfiguration Bool
+ Amazonka.CostExplorer.Types.RightsizingRecommendationConfiguration: rightsizingRecommendationConfiguration_recommendationTarget :: Lens' RightsizingRecommendationConfiguration RecommendationTarget
+ Amazonka.CostExplorer.Types.RightsizingRecommendationMetadata: RightsizingRecommendationMetadata' :: Maybe Text -> Maybe Text -> Maybe LookbackPeriodInDays -> Maybe Text -> RightsizingRecommendationMetadata
+ Amazonka.CostExplorer.Types.RightsizingRecommendationMetadata: [$sel:additionalMetadata:RightsizingRecommendationMetadata'] :: RightsizingRecommendationMetadata -> Maybe Text
+ Amazonka.CostExplorer.Types.RightsizingRecommendationMetadata: [$sel:generationTimestamp:RightsizingRecommendationMetadata'] :: RightsizingRecommendationMetadata -> Maybe Text
+ Amazonka.CostExplorer.Types.RightsizingRecommendationMetadata: [$sel:lookbackPeriodInDays:RightsizingRecommendationMetadata'] :: RightsizingRecommendationMetadata -> Maybe LookbackPeriodInDays
+ Amazonka.CostExplorer.Types.RightsizingRecommendationMetadata: [$sel:recommendationId:RightsizingRecommendationMetadata'] :: RightsizingRecommendationMetadata -> Maybe Text
+ Amazonka.CostExplorer.Types.RightsizingRecommendationMetadata: data RightsizingRecommendationMetadata
+ Amazonka.CostExplorer.Types.RightsizingRecommendationMetadata: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.RightsizingRecommendationMetadata.RightsizingRecommendationMetadata
+ Amazonka.CostExplorer.Types.RightsizingRecommendationMetadata: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.RightsizingRecommendationMetadata.RightsizingRecommendationMetadata
+ Amazonka.CostExplorer.Types.RightsizingRecommendationMetadata: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.RightsizingRecommendationMetadata.RightsizingRecommendationMetadata
+ Amazonka.CostExplorer.Types.RightsizingRecommendationMetadata: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.RightsizingRecommendationMetadata.RightsizingRecommendationMetadata
+ Amazonka.CostExplorer.Types.RightsizingRecommendationMetadata: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.RightsizingRecommendationMetadata.RightsizingRecommendationMetadata
+ Amazonka.CostExplorer.Types.RightsizingRecommendationMetadata: instance GHC.Read.Read Amazonka.CostExplorer.Types.RightsizingRecommendationMetadata.RightsizingRecommendationMetadata
+ Amazonka.CostExplorer.Types.RightsizingRecommendationMetadata: instance GHC.Show.Show Amazonka.CostExplorer.Types.RightsizingRecommendationMetadata.RightsizingRecommendationMetadata
+ Amazonka.CostExplorer.Types.RightsizingRecommendationMetadata: newRightsizingRecommendationMetadata :: RightsizingRecommendationMetadata
+ Amazonka.CostExplorer.Types.RightsizingRecommendationMetadata: rightsizingRecommendationMetadata_additionalMetadata :: Lens' RightsizingRecommendationMetadata (Maybe Text)
+ Amazonka.CostExplorer.Types.RightsizingRecommendationMetadata: rightsizingRecommendationMetadata_generationTimestamp :: Lens' RightsizingRecommendationMetadata (Maybe Text)
+ Amazonka.CostExplorer.Types.RightsizingRecommendationMetadata: rightsizingRecommendationMetadata_lookbackPeriodInDays :: Lens' RightsizingRecommendationMetadata (Maybe LookbackPeriodInDays)
+ Amazonka.CostExplorer.Types.RightsizingRecommendationMetadata: rightsizingRecommendationMetadata_recommendationId :: Lens' RightsizingRecommendationMetadata (Maybe Text)
+ Amazonka.CostExplorer.Types.RightsizingRecommendationSummary: RightsizingRecommendationSummary' :: Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> RightsizingRecommendationSummary
+ Amazonka.CostExplorer.Types.RightsizingRecommendationSummary: [$sel:estimatedTotalMonthlySavingsAmount:RightsizingRecommendationSummary'] :: RightsizingRecommendationSummary -> Maybe Text
+ Amazonka.CostExplorer.Types.RightsizingRecommendationSummary: [$sel:savingsCurrencyCode:RightsizingRecommendationSummary'] :: RightsizingRecommendationSummary -> Maybe Text
+ Amazonka.CostExplorer.Types.RightsizingRecommendationSummary: [$sel:savingsPercentage:RightsizingRecommendationSummary'] :: RightsizingRecommendationSummary -> Maybe Text
+ Amazonka.CostExplorer.Types.RightsizingRecommendationSummary: [$sel:totalRecommendationCount:RightsizingRecommendationSummary'] :: RightsizingRecommendationSummary -> Maybe Text
+ Amazonka.CostExplorer.Types.RightsizingRecommendationSummary: data RightsizingRecommendationSummary
+ Amazonka.CostExplorer.Types.RightsizingRecommendationSummary: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.RightsizingRecommendationSummary.RightsizingRecommendationSummary
+ Amazonka.CostExplorer.Types.RightsizingRecommendationSummary: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.RightsizingRecommendationSummary.RightsizingRecommendationSummary
+ Amazonka.CostExplorer.Types.RightsizingRecommendationSummary: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.RightsizingRecommendationSummary.RightsizingRecommendationSummary
+ Amazonka.CostExplorer.Types.RightsizingRecommendationSummary: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.RightsizingRecommendationSummary.RightsizingRecommendationSummary
+ Amazonka.CostExplorer.Types.RightsizingRecommendationSummary: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.RightsizingRecommendationSummary.RightsizingRecommendationSummary
+ Amazonka.CostExplorer.Types.RightsizingRecommendationSummary: instance GHC.Read.Read Amazonka.CostExplorer.Types.RightsizingRecommendationSummary.RightsizingRecommendationSummary
+ Amazonka.CostExplorer.Types.RightsizingRecommendationSummary: instance GHC.Show.Show Amazonka.CostExplorer.Types.RightsizingRecommendationSummary.RightsizingRecommendationSummary
+ Amazonka.CostExplorer.Types.RightsizingRecommendationSummary: newRightsizingRecommendationSummary :: RightsizingRecommendationSummary
+ Amazonka.CostExplorer.Types.RightsizingRecommendationSummary: rightsizingRecommendationSummary_estimatedTotalMonthlySavingsAmount :: Lens' RightsizingRecommendationSummary (Maybe Text)
+ Amazonka.CostExplorer.Types.RightsizingRecommendationSummary: rightsizingRecommendationSummary_savingsCurrencyCode :: Lens' RightsizingRecommendationSummary (Maybe Text)
+ Amazonka.CostExplorer.Types.RightsizingRecommendationSummary: rightsizingRecommendationSummary_savingsPercentage :: Lens' RightsizingRecommendationSummary (Maybe Text)
+ Amazonka.CostExplorer.Types.RightsizingRecommendationSummary: rightsizingRecommendationSummary_totalRecommendationCount :: Lens' RightsizingRecommendationSummary (Maybe Text)
+ Amazonka.CostExplorer.Types.RightsizingType: RightsizingType' :: Text -> RightsizingType
+ Amazonka.CostExplorer.Types.RightsizingType: [fromRightsizingType] :: RightsizingType -> Text
+ Amazonka.CostExplorer.Types.RightsizingType: instance Amazonka.Data.ByteString.ToByteString Amazonka.CostExplorer.Types.RightsizingType.RightsizingType
+ Amazonka.CostExplorer.Types.RightsizingType: instance Amazonka.Data.Headers.ToHeader Amazonka.CostExplorer.Types.RightsizingType.RightsizingType
+ Amazonka.CostExplorer.Types.RightsizingType: instance Amazonka.Data.Log.ToLog Amazonka.CostExplorer.Types.RightsizingType.RightsizingType
+ Amazonka.CostExplorer.Types.RightsizingType: instance Amazonka.Data.Query.ToQuery Amazonka.CostExplorer.Types.RightsizingType.RightsizingType
+ Amazonka.CostExplorer.Types.RightsizingType: instance Amazonka.Data.Text.FromText Amazonka.CostExplorer.Types.RightsizingType.RightsizingType
+ Amazonka.CostExplorer.Types.RightsizingType: instance Amazonka.Data.Text.ToText Amazonka.CostExplorer.Types.RightsizingType.RightsizingType
+ Amazonka.CostExplorer.Types.RightsizingType: instance Amazonka.Data.XML.FromXML Amazonka.CostExplorer.Types.RightsizingType.RightsizingType
+ Amazonka.CostExplorer.Types.RightsizingType: instance Amazonka.Data.XML.ToXML Amazonka.CostExplorer.Types.RightsizingType.RightsizingType
+ Amazonka.CostExplorer.Types.RightsizingType: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.RightsizingType.RightsizingType
+ Amazonka.CostExplorer.Types.RightsizingType: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.RightsizingType.RightsizingType
+ Amazonka.CostExplorer.Types.RightsizingType: instance Data.Aeson.Types.FromJSON.FromJSONKey Amazonka.CostExplorer.Types.RightsizingType.RightsizingType
+ Amazonka.CostExplorer.Types.RightsizingType: instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.CostExplorer.Types.RightsizingType.RightsizingType
+ Amazonka.CostExplorer.Types.RightsizingType: instance Data.Aeson.Types.ToJSON.ToJSONKey Amazonka.CostExplorer.Types.RightsizingType.RightsizingType
+ Amazonka.CostExplorer.Types.RightsizingType: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.RightsizingType.RightsizingType
+ Amazonka.CostExplorer.Types.RightsizingType: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.RightsizingType.RightsizingType
+ Amazonka.CostExplorer.Types.RightsizingType: instance GHC.Classes.Ord Amazonka.CostExplorer.Types.RightsizingType.RightsizingType
+ Amazonka.CostExplorer.Types.RightsizingType: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.RightsizingType.RightsizingType
+ Amazonka.CostExplorer.Types.RightsizingType: instance GHC.Read.Read Amazonka.CostExplorer.Types.RightsizingType.RightsizingType
+ Amazonka.CostExplorer.Types.RightsizingType: instance GHC.Show.Show Amazonka.CostExplorer.Types.RightsizingType.RightsizingType
+ Amazonka.CostExplorer.Types.RightsizingType: newtype RightsizingType
+ Amazonka.CostExplorer.Types.RightsizingType: pattern RightsizingType_MODIFY :: RightsizingType
+ Amazonka.CostExplorer.Types.RightsizingType: pattern RightsizingType_TERMINATE :: RightsizingType
+ Amazonka.CostExplorer.Types.RootCause: RootCause' :: Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> RootCause
+ Amazonka.CostExplorer.Types.RootCause: [$sel:linkedAccount:RootCause'] :: RootCause -> Maybe Text
+ Amazonka.CostExplorer.Types.RootCause: [$sel:linkedAccountName:RootCause'] :: RootCause -> Maybe Text
+ Amazonka.CostExplorer.Types.RootCause: [$sel:region:RootCause'] :: RootCause -> Maybe Text
+ Amazonka.CostExplorer.Types.RootCause: [$sel:service:RootCause'] :: RootCause -> Maybe Text
+ Amazonka.CostExplorer.Types.RootCause: [$sel:usageType:RootCause'] :: RootCause -> Maybe Text
+ Amazonka.CostExplorer.Types.RootCause: data RootCause
+ Amazonka.CostExplorer.Types.RootCause: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.RootCause.RootCause
+ Amazonka.CostExplorer.Types.RootCause: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.RootCause.RootCause
+ Amazonka.CostExplorer.Types.RootCause: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.RootCause.RootCause
+ Amazonka.CostExplorer.Types.RootCause: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.RootCause.RootCause
+ Amazonka.CostExplorer.Types.RootCause: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.RootCause.RootCause
+ Amazonka.CostExplorer.Types.RootCause: instance GHC.Read.Read Amazonka.CostExplorer.Types.RootCause.RootCause
+ Amazonka.CostExplorer.Types.RootCause: instance GHC.Show.Show Amazonka.CostExplorer.Types.RootCause.RootCause
+ Amazonka.CostExplorer.Types.RootCause: newRootCause :: RootCause
+ Amazonka.CostExplorer.Types.RootCause: rootCause_linkedAccount :: Lens' RootCause (Maybe Text)
+ Amazonka.CostExplorer.Types.RootCause: rootCause_linkedAccountName :: Lens' RootCause (Maybe Text)
+ Amazonka.CostExplorer.Types.RootCause: rootCause_region :: Lens' RootCause (Maybe Text)
+ Amazonka.CostExplorer.Types.RootCause: rootCause_service :: Lens' RootCause (Maybe Text)
+ Amazonka.CostExplorer.Types.RootCause: rootCause_usageType :: Lens' RootCause (Maybe Text)
+ Amazonka.CostExplorer.Types.SavingsPlansAmortizedCommitment: SavingsPlansAmortizedCommitment' :: Maybe Text -> Maybe Text -> Maybe Text -> SavingsPlansAmortizedCommitment
+ Amazonka.CostExplorer.Types.SavingsPlansAmortizedCommitment: [$sel:amortizedRecurringCommitment:SavingsPlansAmortizedCommitment'] :: SavingsPlansAmortizedCommitment -> Maybe Text
+ Amazonka.CostExplorer.Types.SavingsPlansAmortizedCommitment: [$sel:amortizedUpfrontCommitment:SavingsPlansAmortizedCommitment'] :: SavingsPlansAmortizedCommitment -> Maybe Text
+ Amazonka.CostExplorer.Types.SavingsPlansAmortizedCommitment: [$sel:totalAmortizedCommitment:SavingsPlansAmortizedCommitment'] :: SavingsPlansAmortizedCommitment -> Maybe Text
+ Amazonka.CostExplorer.Types.SavingsPlansAmortizedCommitment: data SavingsPlansAmortizedCommitment
+ Amazonka.CostExplorer.Types.SavingsPlansAmortizedCommitment: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.SavingsPlansAmortizedCommitment.SavingsPlansAmortizedCommitment
+ Amazonka.CostExplorer.Types.SavingsPlansAmortizedCommitment: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.SavingsPlansAmortizedCommitment.SavingsPlansAmortizedCommitment
+ Amazonka.CostExplorer.Types.SavingsPlansAmortizedCommitment: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.SavingsPlansAmortizedCommitment.SavingsPlansAmortizedCommitment
+ Amazonka.CostExplorer.Types.SavingsPlansAmortizedCommitment: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.SavingsPlansAmortizedCommitment.SavingsPlansAmortizedCommitment
+ Amazonka.CostExplorer.Types.SavingsPlansAmortizedCommitment: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.SavingsPlansAmortizedCommitment.SavingsPlansAmortizedCommitment
+ Amazonka.CostExplorer.Types.SavingsPlansAmortizedCommitment: instance GHC.Read.Read Amazonka.CostExplorer.Types.SavingsPlansAmortizedCommitment.SavingsPlansAmortizedCommitment
+ Amazonka.CostExplorer.Types.SavingsPlansAmortizedCommitment: instance GHC.Show.Show Amazonka.CostExplorer.Types.SavingsPlansAmortizedCommitment.SavingsPlansAmortizedCommitment
+ Amazonka.CostExplorer.Types.SavingsPlansAmortizedCommitment: newSavingsPlansAmortizedCommitment :: SavingsPlansAmortizedCommitment
+ Amazonka.CostExplorer.Types.SavingsPlansAmortizedCommitment: savingsPlansAmortizedCommitment_amortizedRecurringCommitment :: Lens' SavingsPlansAmortizedCommitment (Maybe Text)
+ Amazonka.CostExplorer.Types.SavingsPlansAmortizedCommitment: savingsPlansAmortizedCommitment_amortizedUpfrontCommitment :: Lens' SavingsPlansAmortizedCommitment (Maybe Text)
+ Amazonka.CostExplorer.Types.SavingsPlansAmortizedCommitment: savingsPlansAmortizedCommitment_totalAmortizedCommitment :: Lens' SavingsPlansAmortizedCommitment (Maybe Text)
+ Amazonka.CostExplorer.Types.SavingsPlansCoverage: SavingsPlansCoverage' :: Maybe (HashMap Text Text) -> Maybe SavingsPlansCoverageData -> Maybe DateInterval -> SavingsPlansCoverage
+ Amazonka.CostExplorer.Types.SavingsPlansCoverage: [$sel:attributes:SavingsPlansCoverage'] :: SavingsPlansCoverage -> Maybe (HashMap Text Text)
+ Amazonka.CostExplorer.Types.SavingsPlansCoverage: [$sel:coverage:SavingsPlansCoverage'] :: SavingsPlansCoverage -> Maybe SavingsPlansCoverageData
+ Amazonka.CostExplorer.Types.SavingsPlansCoverage: [$sel:timePeriod:SavingsPlansCoverage'] :: SavingsPlansCoverage -> Maybe DateInterval
+ Amazonka.CostExplorer.Types.SavingsPlansCoverage: data SavingsPlansCoverage
+ Amazonka.CostExplorer.Types.SavingsPlansCoverage: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.SavingsPlansCoverage.SavingsPlansCoverage
+ Amazonka.CostExplorer.Types.SavingsPlansCoverage: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.SavingsPlansCoverage.SavingsPlansCoverage
+ Amazonka.CostExplorer.Types.SavingsPlansCoverage: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.SavingsPlansCoverage.SavingsPlansCoverage
+ Amazonka.CostExplorer.Types.SavingsPlansCoverage: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.SavingsPlansCoverage.SavingsPlansCoverage
+ Amazonka.CostExplorer.Types.SavingsPlansCoverage: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.SavingsPlansCoverage.SavingsPlansCoverage
+ Amazonka.CostExplorer.Types.SavingsPlansCoverage: instance GHC.Read.Read Amazonka.CostExplorer.Types.SavingsPlansCoverage.SavingsPlansCoverage
+ Amazonka.CostExplorer.Types.SavingsPlansCoverage: instance GHC.Show.Show Amazonka.CostExplorer.Types.SavingsPlansCoverage.SavingsPlansCoverage
+ Amazonka.CostExplorer.Types.SavingsPlansCoverage: newSavingsPlansCoverage :: SavingsPlansCoverage
+ Amazonka.CostExplorer.Types.SavingsPlansCoverage: savingsPlansCoverage_attributes :: Lens' SavingsPlansCoverage (Maybe (HashMap Text Text))
+ Amazonka.CostExplorer.Types.SavingsPlansCoverage: savingsPlansCoverage_coverage :: Lens' SavingsPlansCoverage (Maybe SavingsPlansCoverageData)
+ Amazonka.CostExplorer.Types.SavingsPlansCoverage: savingsPlansCoverage_timePeriod :: Lens' SavingsPlansCoverage (Maybe DateInterval)
+ Amazonka.CostExplorer.Types.SavingsPlansCoverageData: SavingsPlansCoverageData' :: Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> SavingsPlansCoverageData
+ Amazonka.CostExplorer.Types.SavingsPlansCoverageData: [$sel:coveragePercentage:SavingsPlansCoverageData'] :: SavingsPlansCoverageData -> Maybe Text
+ Amazonka.CostExplorer.Types.SavingsPlansCoverageData: [$sel:onDemandCost:SavingsPlansCoverageData'] :: SavingsPlansCoverageData -> Maybe Text
+ Amazonka.CostExplorer.Types.SavingsPlansCoverageData: [$sel:spendCoveredBySavingsPlans:SavingsPlansCoverageData'] :: SavingsPlansCoverageData -> Maybe Text
+ Amazonka.CostExplorer.Types.SavingsPlansCoverageData: [$sel:totalCost:SavingsPlansCoverageData'] :: SavingsPlansCoverageData -> Maybe Text
+ Amazonka.CostExplorer.Types.SavingsPlansCoverageData: data SavingsPlansCoverageData
+ Amazonka.CostExplorer.Types.SavingsPlansCoverageData: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.SavingsPlansCoverageData.SavingsPlansCoverageData
+ Amazonka.CostExplorer.Types.SavingsPlansCoverageData: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.SavingsPlansCoverageData.SavingsPlansCoverageData
+ Amazonka.CostExplorer.Types.SavingsPlansCoverageData: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.SavingsPlansCoverageData.SavingsPlansCoverageData
+ Amazonka.CostExplorer.Types.SavingsPlansCoverageData: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.SavingsPlansCoverageData.SavingsPlansCoverageData
+ Amazonka.CostExplorer.Types.SavingsPlansCoverageData: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.SavingsPlansCoverageData.SavingsPlansCoverageData
+ Amazonka.CostExplorer.Types.SavingsPlansCoverageData: instance GHC.Read.Read Amazonka.CostExplorer.Types.SavingsPlansCoverageData.SavingsPlansCoverageData
+ Amazonka.CostExplorer.Types.SavingsPlansCoverageData: instance GHC.Show.Show Amazonka.CostExplorer.Types.SavingsPlansCoverageData.SavingsPlansCoverageData
+ Amazonka.CostExplorer.Types.SavingsPlansCoverageData: newSavingsPlansCoverageData :: SavingsPlansCoverageData
+ Amazonka.CostExplorer.Types.SavingsPlansCoverageData: savingsPlansCoverageData_coveragePercentage :: Lens' SavingsPlansCoverageData (Maybe Text)
+ Amazonka.CostExplorer.Types.SavingsPlansCoverageData: savingsPlansCoverageData_onDemandCost :: Lens' SavingsPlansCoverageData (Maybe Text)
+ Amazonka.CostExplorer.Types.SavingsPlansCoverageData: savingsPlansCoverageData_spendCoveredBySavingsPlans :: Lens' SavingsPlansCoverageData (Maybe Text)
+ Amazonka.CostExplorer.Types.SavingsPlansCoverageData: savingsPlansCoverageData_totalCost :: Lens' SavingsPlansCoverageData (Maybe Text)
+ Amazonka.CostExplorer.Types.SavingsPlansDataType: SavingsPlansDataType' :: Text -> SavingsPlansDataType
+ Amazonka.CostExplorer.Types.SavingsPlansDataType: [fromSavingsPlansDataType] :: SavingsPlansDataType -> Text
+ Amazonka.CostExplorer.Types.SavingsPlansDataType: instance Amazonka.Data.ByteString.ToByteString Amazonka.CostExplorer.Types.SavingsPlansDataType.SavingsPlansDataType
+ Amazonka.CostExplorer.Types.SavingsPlansDataType: instance Amazonka.Data.Headers.ToHeader Amazonka.CostExplorer.Types.SavingsPlansDataType.SavingsPlansDataType
+ Amazonka.CostExplorer.Types.SavingsPlansDataType: instance Amazonka.Data.Log.ToLog Amazonka.CostExplorer.Types.SavingsPlansDataType.SavingsPlansDataType
+ Amazonka.CostExplorer.Types.SavingsPlansDataType: instance Amazonka.Data.Query.ToQuery Amazonka.CostExplorer.Types.SavingsPlansDataType.SavingsPlansDataType
+ Amazonka.CostExplorer.Types.SavingsPlansDataType: instance Amazonka.Data.Text.FromText Amazonka.CostExplorer.Types.SavingsPlansDataType.SavingsPlansDataType
+ Amazonka.CostExplorer.Types.SavingsPlansDataType: instance Amazonka.Data.Text.ToText Amazonka.CostExplorer.Types.SavingsPlansDataType.SavingsPlansDataType
+ Amazonka.CostExplorer.Types.SavingsPlansDataType: instance Amazonka.Data.XML.FromXML Amazonka.CostExplorer.Types.SavingsPlansDataType.SavingsPlansDataType
+ Amazonka.CostExplorer.Types.SavingsPlansDataType: instance Amazonka.Data.XML.ToXML Amazonka.CostExplorer.Types.SavingsPlansDataType.SavingsPlansDataType
+ Amazonka.CostExplorer.Types.SavingsPlansDataType: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.SavingsPlansDataType.SavingsPlansDataType
+ Amazonka.CostExplorer.Types.SavingsPlansDataType: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.SavingsPlansDataType.SavingsPlansDataType
+ Amazonka.CostExplorer.Types.SavingsPlansDataType: instance Data.Aeson.Types.FromJSON.FromJSONKey Amazonka.CostExplorer.Types.SavingsPlansDataType.SavingsPlansDataType
+ Amazonka.CostExplorer.Types.SavingsPlansDataType: instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.CostExplorer.Types.SavingsPlansDataType.SavingsPlansDataType
+ Amazonka.CostExplorer.Types.SavingsPlansDataType: instance Data.Aeson.Types.ToJSON.ToJSONKey Amazonka.CostExplorer.Types.SavingsPlansDataType.SavingsPlansDataType
+ Amazonka.CostExplorer.Types.SavingsPlansDataType: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.SavingsPlansDataType.SavingsPlansDataType
+ Amazonka.CostExplorer.Types.SavingsPlansDataType: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.SavingsPlansDataType.SavingsPlansDataType
+ Amazonka.CostExplorer.Types.SavingsPlansDataType: instance GHC.Classes.Ord Amazonka.CostExplorer.Types.SavingsPlansDataType.SavingsPlansDataType
+ Amazonka.CostExplorer.Types.SavingsPlansDataType: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.SavingsPlansDataType.SavingsPlansDataType
+ Amazonka.CostExplorer.Types.SavingsPlansDataType: instance GHC.Read.Read Amazonka.CostExplorer.Types.SavingsPlansDataType.SavingsPlansDataType
+ Amazonka.CostExplorer.Types.SavingsPlansDataType: instance GHC.Show.Show Amazonka.CostExplorer.Types.SavingsPlansDataType.SavingsPlansDataType
+ Amazonka.CostExplorer.Types.SavingsPlansDataType: newtype SavingsPlansDataType
+ Amazonka.CostExplorer.Types.SavingsPlansDataType: pattern SavingsPlansDataType_AMORTIZED_COMMITMENT :: SavingsPlansDataType
+ Amazonka.CostExplorer.Types.SavingsPlansDataType: pattern SavingsPlansDataType_ATTRIBUTES :: SavingsPlansDataType
+ Amazonka.CostExplorer.Types.SavingsPlansDataType: pattern SavingsPlansDataType_SAVINGS :: SavingsPlansDataType
+ Amazonka.CostExplorer.Types.SavingsPlansDataType: pattern SavingsPlansDataType_UTILIZATION :: SavingsPlansDataType
+ Amazonka.CostExplorer.Types.SavingsPlansDetails: SavingsPlansDetails' :: Maybe Text -> Maybe Text -> Maybe Text -> SavingsPlansDetails
+ Amazonka.CostExplorer.Types.SavingsPlansDetails: [$sel:instanceFamily:SavingsPlansDetails'] :: SavingsPlansDetails -> Maybe Text
+ Amazonka.CostExplorer.Types.SavingsPlansDetails: [$sel:offeringId:SavingsPlansDetails'] :: SavingsPlansDetails -> Maybe Text
+ Amazonka.CostExplorer.Types.SavingsPlansDetails: [$sel:region:SavingsPlansDetails'] :: SavingsPlansDetails -> Maybe Text
+ Amazonka.CostExplorer.Types.SavingsPlansDetails: data SavingsPlansDetails
+ Amazonka.CostExplorer.Types.SavingsPlansDetails: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.SavingsPlansDetails.SavingsPlansDetails
+ Amazonka.CostExplorer.Types.SavingsPlansDetails: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.SavingsPlansDetails.SavingsPlansDetails
+ Amazonka.CostExplorer.Types.SavingsPlansDetails: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.SavingsPlansDetails.SavingsPlansDetails
+ Amazonka.CostExplorer.Types.SavingsPlansDetails: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.SavingsPlansDetails.SavingsPlansDetails
+ Amazonka.CostExplorer.Types.SavingsPlansDetails: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.SavingsPlansDetails.SavingsPlansDetails
+ Amazonka.CostExplorer.Types.SavingsPlansDetails: instance GHC.Read.Read Amazonka.CostExplorer.Types.SavingsPlansDetails.SavingsPlansDetails
+ Amazonka.CostExplorer.Types.SavingsPlansDetails: instance GHC.Show.Show Amazonka.CostExplorer.Types.SavingsPlansDetails.SavingsPlansDetails
+ Amazonka.CostExplorer.Types.SavingsPlansDetails: newSavingsPlansDetails :: SavingsPlansDetails
+ Amazonka.CostExplorer.Types.SavingsPlansDetails: savingsPlansDetails_instanceFamily :: Lens' SavingsPlansDetails (Maybe Text)
+ Amazonka.CostExplorer.Types.SavingsPlansDetails: savingsPlansDetails_offeringId :: Lens' SavingsPlansDetails (Maybe Text)
+ Amazonka.CostExplorer.Types.SavingsPlansDetails: savingsPlansDetails_region :: Lens' SavingsPlansDetails (Maybe Text)
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendation: SavingsPlansPurchaseRecommendation' :: Maybe AccountScope -> Maybe LookbackPeriodInDays -> Maybe PaymentOption -> Maybe [SavingsPlansPurchaseRecommendationDetail] -> Maybe SavingsPlansPurchaseRecommendationSummary -> Maybe SupportedSavingsPlansType -> Maybe TermInYears -> SavingsPlansPurchaseRecommendation
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendation: [$sel:accountScope:SavingsPlansPurchaseRecommendation'] :: SavingsPlansPurchaseRecommendation -> Maybe AccountScope
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendation: [$sel:lookbackPeriodInDays:SavingsPlansPurchaseRecommendation'] :: SavingsPlansPurchaseRecommendation -> Maybe LookbackPeriodInDays
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendation: [$sel:paymentOption:SavingsPlansPurchaseRecommendation'] :: SavingsPlansPurchaseRecommendation -> Maybe PaymentOption
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendation: [$sel:savingsPlansPurchaseRecommendationDetails:SavingsPlansPurchaseRecommendation'] :: SavingsPlansPurchaseRecommendation -> Maybe [SavingsPlansPurchaseRecommendationDetail]
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendation: [$sel:savingsPlansPurchaseRecommendationSummary:SavingsPlansPurchaseRecommendation'] :: SavingsPlansPurchaseRecommendation -> Maybe SavingsPlansPurchaseRecommendationSummary
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendation: [$sel:savingsPlansType:SavingsPlansPurchaseRecommendation'] :: SavingsPlansPurchaseRecommendation -> Maybe SupportedSavingsPlansType
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendation: [$sel:termInYears:SavingsPlansPurchaseRecommendation'] :: SavingsPlansPurchaseRecommendation -> Maybe TermInYears
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendation: data SavingsPlansPurchaseRecommendation
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendation: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendation.SavingsPlansPurchaseRecommendation
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendation: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendation.SavingsPlansPurchaseRecommendation
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendation: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendation.SavingsPlansPurchaseRecommendation
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendation: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendation.SavingsPlansPurchaseRecommendation
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendation: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendation.SavingsPlansPurchaseRecommendation
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendation: instance GHC.Read.Read Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendation.SavingsPlansPurchaseRecommendation
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendation: instance GHC.Show.Show Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendation.SavingsPlansPurchaseRecommendation
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendation: newSavingsPlansPurchaseRecommendation :: SavingsPlansPurchaseRecommendation
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendation: savingsPlansPurchaseRecommendation_accountScope :: Lens' SavingsPlansPurchaseRecommendation (Maybe AccountScope)
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendation: savingsPlansPurchaseRecommendation_lookbackPeriodInDays :: Lens' SavingsPlansPurchaseRecommendation (Maybe LookbackPeriodInDays)
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendation: savingsPlansPurchaseRecommendation_paymentOption :: Lens' SavingsPlansPurchaseRecommendation (Maybe PaymentOption)
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendation: savingsPlansPurchaseRecommendation_savingsPlansPurchaseRecommendationDetails :: Lens' SavingsPlansPurchaseRecommendation (Maybe [SavingsPlansPurchaseRecommendationDetail])
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendation: savingsPlansPurchaseRecommendation_savingsPlansPurchaseRecommendationSummary :: Lens' SavingsPlansPurchaseRecommendation (Maybe SavingsPlansPurchaseRecommendationSummary)
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendation: savingsPlansPurchaseRecommendation_savingsPlansType :: Lens' SavingsPlansPurchaseRecommendation (Maybe SupportedSavingsPlansType)
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendation: savingsPlansPurchaseRecommendation_termInYears :: Lens' SavingsPlansPurchaseRecommendation (Maybe TermInYears)
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationDetail: SavingsPlansPurchaseRecommendationDetail' :: Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe SavingsPlansDetails -> Maybe Text -> SavingsPlansPurchaseRecommendationDetail
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationDetail: [$sel:accountId:SavingsPlansPurchaseRecommendationDetail'] :: SavingsPlansPurchaseRecommendationDetail -> Maybe Text
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationDetail: [$sel:currencyCode:SavingsPlansPurchaseRecommendationDetail'] :: SavingsPlansPurchaseRecommendationDetail -> Maybe Text
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationDetail: [$sel:currentAverageHourlyOnDemandSpend:SavingsPlansPurchaseRecommendationDetail'] :: SavingsPlansPurchaseRecommendationDetail -> Maybe Text
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationDetail: [$sel:currentMaximumHourlyOnDemandSpend:SavingsPlansPurchaseRecommendationDetail'] :: SavingsPlansPurchaseRecommendationDetail -> Maybe Text
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationDetail: [$sel:currentMinimumHourlyOnDemandSpend:SavingsPlansPurchaseRecommendationDetail'] :: SavingsPlansPurchaseRecommendationDetail -> Maybe Text
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationDetail: [$sel:estimatedAverageUtilization:SavingsPlansPurchaseRecommendationDetail'] :: SavingsPlansPurchaseRecommendationDetail -> Maybe Text
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationDetail: [$sel:estimatedMonthlySavingsAmount:SavingsPlansPurchaseRecommendationDetail'] :: SavingsPlansPurchaseRecommendationDetail -> Maybe Text
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationDetail: [$sel:estimatedOnDemandCost:SavingsPlansPurchaseRecommendationDetail'] :: SavingsPlansPurchaseRecommendationDetail -> Maybe Text
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationDetail: [$sel:estimatedOnDemandCostWithCurrentCommitment:SavingsPlansPurchaseRecommendationDetail'] :: SavingsPlansPurchaseRecommendationDetail -> Maybe Text
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationDetail: [$sel:estimatedROI:SavingsPlansPurchaseRecommendationDetail'] :: SavingsPlansPurchaseRecommendationDetail -> Maybe Text
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationDetail: [$sel:estimatedSPCost:SavingsPlansPurchaseRecommendationDetail'] :: SavingsPlansPurchaseRecommendationDetail -> Maybe Text
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationDetail: [$sel:estimatedSavingsAmount:SavingsPlansPurchaseRecommendationDetail'] :: SavingsPlansPurchaseRecommendationDetail -> Maybe Text
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationDetail: [$sel:estimatedSavingsPercentage:SavingsPlansPurchaseRecommendationDetail'] :: SavingsPlansPurchaseRecommendationDetail -> Maybe Text
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationDetail: [$sel:hourlyCommitmentToPurchase:SavingsPlansPurchaseRecommendationDetail'] :: SavingsPlansPurchaseRecommendationDetail -> Maybe Text
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationDetail: [$sel:savingsPlansDetails:SavingsPlansPurchaseRecommendationDetail'] :: SavingsPlansPurchaseRecommendationDetail -> Maybe SavingsPlansDetails
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationDetail: [$sel:upfrontCost:SavingsPlansPurchaseRecommendationDetail'] :: SavingsPlansPurchaseRecommendationDetail -> Maybe Text
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationDetail: data SavingsPlansPurchaseRecommendationDetail
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationDetail: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationDetail.SavingsPlansPurchaseRecommendationDetail
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationDetail: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationDetail.SavingsPlansPurchaseRecommendationDetail
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationDetail: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationDetail.SavingsPlansPurchaseRecommendationDetail
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationDetail: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationDetail.SavingsPlansPurchaseRecommendationDetail
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationDetail: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationDetail.SavingsPlansPurchaseRecommendationDetail
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationDetail: instance GHC.Read.Read Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationDetail.SavingsPlansPurchaseRecommendationDetail
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationDetail: instance GHC.Show.Show Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationDetail.SavingsPlansPurchaseRecommendationDetail
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationDetail: newSavingsPlansPurchaseRecommendationDetail :: SavingsPlansPurchaseRecommendationDetail
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationDetail: savingsPlansPurchaseRecommendationDetail_accountId :: Lens' SavingsPlansPurchaseRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationDetail: savingsPlansPurchaseRecommendationDetail_currencyCode :: Lens' SavingsPlansPurchaseRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationDetail: savingsPlansPurchaseRecommendationDetail_currentAverageHourlyOnDemandSpend :: Lens' SavingsPlansPurchaseRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationDetail: savingsPlansPurchaseRecommendationDetail_currentMaximumHourlyOnDemandSpend :: Lens' SavingsPlansPurchaseRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationDetail: savingsPlansPurchaseRecommendationDetail_currentMinimumHourlyOnDemandSpend :: Lens' SavingsPlansPurchaseRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationDetail: savingsPlansPurchaseRecommendationDetail_estimatedAverageUtilization :: Lens' SavingsPlansPurchaseRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationDetail: savingsPlansPurchaseRecommendationDetail_estimatedMonthlySavingsAmount :: Lens' SavingsPlansPurchaseRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationDetail: savingsPlansPurchaseRecommendationDetail_estimatedOnDemandCost :: Lens' SavingsPlansPurchaseRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationDetail: savingsPlansPurchaseRecommendationDetail_estimatedOnDemandCostWithCurrentCommitment :: Lens' SavingsPlansPurchaseRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationDetail: savingsPlansPurchaseRecommendationDetail_estimatedROI :: Lens' SavingsPlansPurchaseRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationDetail: savingsPlansPurchaseRecommendationDetail_estimatedSPCost :: Lens' SavingsPlansPurchaseRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationDetail: savingsPlansPurchaseRecommendationDetail_estimatedSavingsAmount :: Lens' SavingsPlansPurchaseRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationDetail: savingsPlansPurchaseRecommendationDetail_estimatedSavingsPercentage :: Lens' SavingsPlansPurchaseRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationDetail: savingsPlansPurchaseRecommendationDetail_hourlyCommitmentToPurchase :: Lens' SavingsPlansPurchaseRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationDetail: savingsPlansPurchaseRecommendationDetail_savingsPlansDetails :: Lens' SavingsPlansPurchaseRecommendationDetail (Maybe SavingsPlansDetails)
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationDetail: savingsPlansPurchaseRecommendationDetail_upfrontCost :: Lens' SavingsPlansPurchaseRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationMetadata: SavingsPlansPurchaseRecommendationMetadata' :: Maybe Text -> Maybe Text -> Maybe Text -> SavingsPlansPurchaseRecommendationMetadata
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationMetadata: [$sel:additionalMetadata:SavingsPlansPurchaseRecommendationMetadata'] :: SavingsPlansPurchaseRecommendationMetadata -> Maybe Text
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationMetadata: [$sel:generationTimestamp:SavingsPlansPurchaseRecommendationMetadata'] :: SavingsPlansPurchaseRecommendationMetadata -> Maybe Text
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationMetadata: [$sel:recommendationId:SavingsPlansPurchaseRecommendationMetadata'] :: SavingsPlansPurchaseRecommendationMetadata -> Maybe Text
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationMetadata: data SavingsPlansPurchaseRecommendationMetadata
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationMetadata: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationMetadata.SavingsPlansPurchaseRecommendationMetadata
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationMetadata: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationMetadata.SavingsPlansPurchaseRecommendationMetadata
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationMetadata: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationMetadata.SavingsPlansPurchaseRecommendationMetadata
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationMetadata: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationMetadata.SavingsPlansPurchaseRecommendationMetadata
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationMetadata: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationMetadata.SavingsPlansPurchaseRecommendationMetadata
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationMetadata: instance GHC.Read.Read Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationMetadata.SavingsPlansPurchaseRecommendationMetadata
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationMetadata: instance GHC.Show.Show Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationMetadata.SavingsPlansPurchaseRecommendationMetadata
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationMetadata: newSavingsPlansPurchaseRecommendationMetadata :: SavingsPlansPurchaseRecommendationMetadata
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationMetadata: savingsPlansPurchaseRecommendationMetadata_additionalMetadata :: Lens' SavingsPlansPurchaseRecommendationMetadata (Maybe Text)
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationMetadata: savingsPlansPurchaseRecommendationMetadata_generationTimestamp :: Lens' SavingsPlansPurchaseRecommendationMetadata (Maybe Text)
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationMetadata: savingsPlansPurchaseRecommendationMetadata_recommendationId :: Lens' SavingsPlansPurchaseRecommendationMetadata (Maybe Text)
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationSummary: SavingsPlansPurchaseRecommendationSummary' :: Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> SavingsPlansPurchaseRecommendationSummary
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationSummary: [$sel:currencyCode:SavingsPlansPurchaseRecommendationSummary'] :: SavingsPlansPurchaseRecommendationSummary -> Maybe Text
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationSummary: [$sel:currentOnDemandSpend:SavingsPlansPurchaseRecommendationSummary'] :: SavingsPlansPurchaseRecommendationSummary -> Maybe Text
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationSummary: [$sel:dailyCommitmentToPurchase:SavingsPlansPurchaseRecommendationSummary'] :: SavingsPlansPurchaseRecommendationSummary -> Maybe Text
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationSummary: [$sel:estimatedMonthlySavingsAmount:SavingsPlansPurchaseRecommendationSummary'] :: SavingsPlansPurchaseRecommendationSummary -> Maybe Text
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationSummary: [$sel:estimatedOnDemandCostWithCurrentCommitment:SavingsPlansPurchaseRecommendationSummary'] :: SavingsPlansPurchaseRecommendationSummary -> Maybe Text
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationSummary: [$sel:estimatedROI:SavingsPlansPurchaseRecommendationSummary'] :: SavingsPlansPurchaseRecommendationSummary -> Maybe Text
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationSummary: [$sel:estimatedSavingsAmount:SavingsPlansPurchaseRecommendationSummary'] :: SavingsPlansPurchaseRecommendationSummary -> Maybe Text
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationSummary: [$sel:estimatedSavingsPercentage:SavingsPlansPurchaseRecommendationSummary'] :: SavingsPlansPurchaseRecommendationSummary -> Maybe Text
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationSummary: [$sel:estimatedTotalCost:SavingsPlansPurchaseRecommendationSummary'] :: SavingsPlansPurchaseRecommendationSummary -> Maybe Text
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationSummary: [$sel:hourlyCommitmentToPurchase:SavingsPlansPurchaseRecommendationSummary'] :: SavingsPlansPurchaseRecommendationSummary -> Maybe Text
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationSummary: [$sel:totalRecommendationCount:SavingsPlansPurchaseRecommendationSummary'] :: SavingsPlansPurchaseRecommendationSummary -> Maybe Text
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationSummary: data SavingsPlansPurchaseRecommendationSummary
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationSummary: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationSummary.SavingsPlansPurchaseRecommendationSummary
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationSummary: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationSummary.SavingsPlansPurchaseRecommendationSummary
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationSummary: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationSummary.SavingsPlansPurchaseRecommendationSummary
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationSummary: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationSummary.SavingsPlansPurchaseRecommendationSummary
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationSummary: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationSummary.SavingsPlansPurchaseRecommendationSummary
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationSummary: instance GHC.Read.Read Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationSummary.SavingsPlansPurchaseRecommendationSummary
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationSummary: instance GHC.Show.Show Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationSummary.SavingsPlansPurchaseRecommendationSummary
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationSummary: newSavingsPlansPurchaseRecommendationSummary :: SavingsPlansPurchaseRecommendationSummary
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationSummary: savingsPlansPurchaseRecommendationSummary_currencyCode :: Lens' SavingsPlansPurchaseRecommendationSummary (Maybe Text)
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationSummary: savingsPlansPurchaseRecommendationSummary_currentOnDemandSpend :: Lens' SavingsPlansPurchaseRecommendationSummary (Maybe Text)
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationSummary: savingsPlansPurchaseRecommendationSummary_dailyCommitmentToPurchase :: Lens' SavingsPlansPurchaseRecommendationSummary (Maybe Text)
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationSummary: savingsPlansPurchaseRecommendationSummary_estimatedMonthlySavingsAmount :: Lens' SavingsPlansPurchaseRecommendationSummary (Maybe Text)
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationSummary: savingsPlansPurchaseRecommendationSummary_estimatedOnDemandCostWithCurrentCommitment :: Lens' SavingsPlansPurchaseRecommendationSummary (Maybe Text)
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationSummary: savingsPlansPurchaseRecommendationSummary_estimatedROI :: Lens' SavingsPlansPurchaseRecommendationSummary (Maybe Text)
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationSummary: savingsPlansPurchaseRecommendationSummary_estimatedSavingsAmount :: Lens' SavingsPlansPurchaseRecommendationSummary (Maybe Text)
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationSummary: savingsPlansPurchaseRecommendationSummary_estimatedSavingsPercentage :: Lens' SavingsPlansPurchaseRecommendationSummary (Maybe Text)
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationSummary: savingsPlansPurchaseRecommendationSummary_estimatedTotalCost :: Lens' SavingsPlansPurchaseRecommendationSummary (Maybe Text)
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationSummary: savingsPlansPurchaseRecommendationSummary_hourlyCommitmentToPurchase :: Lens' SavingsPlansPurchaseRecommendationSummary (Maybe Text)
+ Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationSummary: savingsPlansPurchaseRecommendationSummary_totalRecommendationCount :: Lens' SavingsPlansPurchaseRecommendationSummary (Maybe Text)
+ Amazonka.CostExplorer.Types.SavingsPlansSavings: SavingsPlansSavings' :: Maybe Text -> Maybe Text -> SavingsPlansSavings
+ Amazonka.CostExplorer.Types.SavingsPlansSavings: [$sel:netSavings:SavingsPlansSavings'] :: SavingsPlansSavings -> Maybe Text
+ Amazonka.CostExplorer.Types.SavingsPlansSavings: [$sel:onDemandCostEquivalent:SavingsPlansSavings'] :: SavingsPlansSavings -> Maybe Text
+ Amazonka.CostExplorer.Types.SavingsPlansSavings: data SavingsPlansSavings
+ Amazonka.CostExplorer.Types.SavingsPlansSavings: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.SavingsPlansSavings.SavingsPlansSavings
+ Amazonka.CostExplorer.Types.SavingsPlansSavings: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.SavingsPlansSavings.SavingsPlansSavings
+ Amazonka.CostExplorer.Types.SavingsPlansSavings: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.SavingsPlansSavings.SavingsPlansSavings
+ Amazonka.CostExplorer.Types.SavingsPlansSavings: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.SavingsPlansSavings.SavingsPlansSavings
+ Amazonka.CostExplorer.Types.SavingsPlansSavings: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.SavingsPlansSavings.SavingsPlansSavings
+ Amazonka.CostExplorer.Types.SavingsPlansSavings: instance GHC.Read.Read Amazonka.CostExplorer.Types.SavingsPlansSavings.SavingsPlansSavings
+ Amazonka.CostExplorer.Types.SavingsPlansSavings: instance GHC.Show.Show Amazonka.CostExplorer.Types.SavingsPlansSavings.SavingsPlansSavings
+ Amazonka.CostExplorer.Types.SavingsPlansSavings: newSavingsPlansSavings :: SavingsPlansSavings
+ Amazonka.CostExplorer.Types.SavingsPlansSavings: savingsPlansSavings_netSavings :: Lens' SavingsPlansSavings (Maybe Text)
+ Amazonka.CostExplorer.Types.SavingsPlansSavings: savingsPlansSavings_onDemandCostEquivalent :: Lens' SavingsPlansSavings (Maybe Text)
+ Amazonka.CostExplorer.Types.SavingsPlansUtilization: SavingsPlansUtilization' :: Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> SavingsPlansUtilization
+ Amazonka.CostExplorer.Types.SavingsPlansUtilization: [$sel:totalCommitment:SavingsPlansUtilization'] :: SavingsPlansUtilization -> Maybe Text
+ Amazonka.CostExplorer.Types.SavingsPlansUtilization: [$sel:unusedCommitment:SavingsPlansUtilization'] :: SavingsPlansUtilization -> Maybe Text
+ Amazonka.CostExplorer.Types.SavingsPlansUtilization: [$sel:usedCommitment:SavingsPlansUtilization'] :: SavingsPlansUtilization -> Maybe Text
+ Amazonka.CostExplorer.Types.SavingsPlansUtilization: [$sel:utilizationPercentage:SavingsPlansUtilization'] :: SavingsPlansUtilization -> Maybe Text
+ Amazonka.CostExplorer.Types.SavingsPlansUtilization: data SavingsPlansUtilization
+ Amazonka.CostExplorer.Types.SavingsPlansUtilization: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.SavingsPlansUtilization.SavingsPlansUtilization
+ Amazonka.CostExplorer.Types.SavingsPlansUtilization: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.SavingsPlansUtilization.SavingsPlansUtilization
+ Amazonka.CostExplorer.Types.SavingsPlansUtilization: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.SavingsPlansUtilization.SavingsPlansUtilization
+ Amazonka.CostExplorer.Types.SavingsPlansUtilization: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.SavingsPlansUtilization.SavingsPlansUtilization
+ Amazonka.CostExplorer.Types.SavingsPlansUtilization: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.SavingsPlansUtilization.SavingsPlansUtilization
+ Amazonka.CostExplorer.Types.SavingsPlansUtilization: instance GHC.Read.Read Amazonka.CostExplorer.Types.SavingsPlansUtilization.SavingsPlansUtilization
+ Amazonka.CostExplorer.Types.SavingsPlansUtilization: instance GHC.Show.Show Amazonka.CostExplorer.Types.SavingsPlansUtilization.SavingsPlansUtilization
+ Amazonka.CostExplorer.Types.SavingsPlansUtilization: newSavingsPlansUtilization :: SavingsPlansUtilization
+ Amazonka.CostExplorer.Types.SavingsPlansUtilization: savingsPlansUtilization_totalCommitment :: Lens' SavingsPlansUtilization (Maybe Text)
+ Amazonka.CostExplorer.Types.SavingsPlansUtilization: savingsPlansUtilization_unusedCommitment :: Lens' SavingsPlansUtilization (Maybe Text)
+ Amazonka.CostExplorer.Types.SavingsPlansUtilization: savingsPlansUtilization_usedCommitment :: Lens' SavingsPlansUtilization (Maybe Text)
+ Amazonka.CostExplorer.Types.SavingsPlansUtilization: savingsPlansUtilization_utilizationPercentage :: Lens' SavingsPlansUtilization (Maybe Text)
+ Amazonka.CostExplorer.Types.SavingsPlansUtilizationAggregates: SavingsPlansUtilizationAggregates' :: Maybe SavingsPlansAmortizedCommitment -> Maybe SavingsPlansSavings -> SavingsPlansUtilization -> SavingsPlansUtilizationAggregates
+ Amazonka.CostExplorer.Types.SavingsPlansUtilizationAggregates: [$sel:amortizedCommitment:SavingsPlansUtilizationAggregates'] :: SavingsPlansUtilizationAggregates -> Maybe SavingsPlansAmortizedCommitment
+ Amazonka.CostExplorer.Types.SavingsPlansUtilizationAggregates: [$sel:savings:SavingsPlansUtilizationAggregates'] :: SavingsPlansUtilizationAggregates -> Maybe SavingsPlansSavings
+ Amazonka.CostExplorer.Types.SavingsPlansUtilizationAggregates: [$sel:utilization:SavingsPlansUtilizationAggregates'] :: SavingsPlansUtilizationAggregates -> SavingsPlansUtilization
+ Amazonka.CostExplorer.Types.SavingsPlansUtilizationAggregates: data SavingsPlansUtilizationAggregates
+ Amazonka.CostExplorer.Types.SavingsPlansUtilizationAggregates: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.SavingsPlansUtilizationAggregates.SavingsPlansUtilizationAggregates
+ Amazonka.CostExplorer.Types.SavingsPlansUtilizationAggregates: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.SavingsPlansUtilizationAggregates.SavingsPlansUtilizationAggregates
+ Amazonka.CostExplorer.Types.SavingsPlansUtilizationAggregates: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.SavingsPlansUtilizationAggregates.SavingsPlansUtilizationAggregates
+ Amazonka.CostExplorer.Types.SavingsPlansUtilizationAggregates: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.SavingsPlansUtilizationAggregates.SavingsPlansUtilizationAggregates
+ Amazonka.CostExplorer.Types.SavingsPlansUtilizationAggregates: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.SavingsPlansUtilizationAggregates.SavingsPlansUtilizationAggregates
+ Amazonka.CostExplorer.Types.SavingsPlansUtilizationAggregates: instance GHC.Read.Read Amazonka.CostExplorer.Types.SavingsPlansUtilizationAggregates.SavingsPlansUtilizationAggregates
+ Amazonka.CostExplorer.Types.SavingsPlansUtilizationAggregates: instance GHC.Show.Show Amazonka.CostExplorer.Types.SavingsPlansUtilizationAggregates.SavingsPlansUtilizationAggregates
+ Amazonka.CostExplorer.Types.SavingsPlansUtilizationAggregates: newSavingsPlansUtilizationAggregates :: SavingsPlansUtilization -> SavingsPlansUtilizationAggregates
+ Amazonka.CostExplorer.Types.SavingsPlansUtilizationAggregates: savingsPlansUtilizationAggregates_amortizedCommitment :: Lens' SavingsPlansUtilizationAggregates (Maybe SavingsPlansAmortizedCommitment)
+ Amazonka.CostExplorer.Types.SavingsPlansUtilizationAggregates: savingsPlansUtilizationAggregates_savings :: Lens' SavingsPlansUtilizationAggregates (Maybe SavingsPlansSavings)
+ Amazonka.CostExplorer.Types.SavingsPlansUtilizationAggregates: savingsPlansUtilizationAggregates_utilization :: Lens' SavingsPlansUtilizationAggregates SavingsPlansUtilization
+ Amazonka.CostExplorer.Types.SavingsPlansUtilizationByTime: SavingsPlansUtilizationByTime' :: Maybe SavingsPlansAmortizedCommitment -> Maybe SavingsPlansSavings -> DateInterval -> SavingsPlansUtilization -> SavingsPlansUtilizationByTime
+ Amazonka.CostExplorer.Types.SavingsPlansUtilizationByTime: [$sel:amortizedCommitment:SavingsPlansUtilizationByTime'] :: SavingsPlansUtilizationByTime -> Maybe SavingsPlansAmortizedCommitment
+ Amazonka.CostExplorer.Types.SavingsPlansUtilizationByTime: [$sel:savings:SavingsPlansUtilizationByTime'] :: SavingsPlansUtilizationByTime -> Maybe SavingsPlansSavings
+ Amazonka.CostExplorer.Types.SavingsPlansUtilizationByTime: [$sel:timePeriod:SavingsPlansUtilizationByTime'] :: SavingsPlansUtilizationByTime -> DateInterval
+ Amazonka.CostExplorer.Types.SavingsPlansUtilizationByTime: [$sel:utilization:SavingsPlansUtilizationByTime'] :: SavingsPlansUtilizationByTime -> SavingsPlansUtilization
+ Amazonka.CostExplorer.Types.SavingsPlansUtilizationByTime: data SavingsPlansUtilizationByTime
+ Amazonka.CostExplorer.Types.SavingsPlansUtilizationByTime: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.SavingsPlansUtilizationByTime.SavingsPlansUtilizationByTime
+ Amazonka.CostExplorer.Types.SavingsPlansUtilizationByTime: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.SavingsPlansUtilizationByTime.SavingsPlansUtilizationByTime
+ Amazonka.CostExplorer.Types.SavingsPlansUtilizationByTime: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.SavingsPlansUtilizationByTime.SavingsPlansUtilizationByTime
+ Amazonka.CostExplorer.Types.SavingsPlansUtilizationByTime: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.SavingsPlansUtilizationByTime.SavingsPlansUtilizationByTime
+ Amazonka.CostExplorer.Types.SavingsPlansUtilizationByTime: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.SavingsPlansUtilizationByTime.SavingsPlansUtilizationByTime
+ Amazonka.CostExplorer.Types.SavingsPlansUtilizationByTime: instance GHC.Read.Read Amazonka.CostExplorer.Types.SavingsPlansUtilizationByTime.SavingsPlansUtilizationByTime
+ Amazonka.CostExplorer.Types.SavingsPlansUtilizationByTime: instance GHC.Show.Show Amazonka.CostExplorer.Types.SavingsPlansUtilizationByTime.SavingsPlansUtilizationByTime
+ Amazonka.CostExplorer.Types.SavingsPlansUtilizationByTime: newSavingsPlansUtilizationByTime :: DateInterval -> SavingsPlansUtilization -> SavingsPlansUtilizationByTime
+ Amazonka.CostExplorer.Types.SavingsPlansUtilizationByTime: savingsPlansUtilizationByTime_amortizedCommitment :: Lens' SavingsPlansUtilizationByTime (Maybe SavingsPlansAmortizedCommitment)
+ Amazonka.CostExplorer.Types.SavingsPlansUtilizationByTime: savingsPlansUtilizationByTime_savings :: Lens' SavingsPlansUtilizationByTime (Maybe SavingsPlansSavings)
+ Amazonka.CostExplorer.Types.SavingsPlansUtilizationByTime: savingsPlansUtilizationByTime_timePeriod :: Lens' SavingsPlansUtilizationByTime DateInterval
+ Amazonka.CostExplorer.Types.SavingsPlansUtilizationByTime: savingsPlansUtilizationByTime_utilization :: Lens' SavingsPlansUtilizationByTime SavingsPlansUtilization
+ Amazonka.CostExplorer.Types.SavingsPlansUtilizationDetail: SavingsPlansUtilizationDetail' :: Maybe SavingsPlansAmortizedCommitment -> Maybe (HashMap Text Text) -> Maybe SavingsPlansSavings -> Maybe Text -> Maybe SavingsPlansUtilization -> SavingsPlansUtilizationDetail
+ Amazonka.CostExplorer.Types.SavingsPlansUtilizationDetail: [$sel:amortizedCommitment:SavingsPlansUtilizationDetail'] :: SavingsPlansUtilizationDetail -> Maybe SavingsPlansAmortizedCommitment
+ Amazonka.CostExplorer.Types.SavingsPlansUtilizationDetail: [$sel:attributes:SavingsPlansUtilizationDetail'] :: SavingsPlansUtilizationDetail -> Maybe (HashMap Text Text)
+ Amazonka.CostExplorer.Types.SavingsPlansUtilizationDetail: [$sel:savings:SavingsPlansUtilizationDetail'] :: SavingsPlansUtilizationDetail -> Maybe SavingsPlansSavings
+ Amazonka.CostExplorer.Types.SavingsPlansUtilizationDetail: [$sel:savingsPlanArn:SavingsPlansUtilizationDetail'] :: SavingsPlansUtilizationDetail -> Maybe Text
+ Amazonka.CostExplorer.Types.SavingsPlansUtilizationDetail: [$sel:utilization:SavingsPlansUtilizationDetail'] :: SavingsPlansUtilizationDetail -> Maybe SavingsPlansUtilization
+ Amazonka.CostExplorer.Types.SavingsPlansUtilizationDetail: data SavingsPlansUtilizationDetail
+ Amazonka.CostExplorer.Types.SavingsPlansUtilizationDetail: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.SavingsPlansUtilizationDetail.SavingsPlansUtilizationDetail
+ Amazonka.CostExplorer.Types.SavingsPlansUtilizationDetail: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.SavingsPlansUtilizationDetail.SavingsPlansUtilizationDetail
+ Amazonka.CostExplorer.Types.SavingsPlansUtilizationDetail: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.SavingsPlansUtilizationDetail.SavingsPlansUtilizationDetail
+ Amazonka.CostExplorer.Types.SavingsPlansUtilizationDetail: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.SavingsPlansUtilizationDetail.SavingsPlansUtilizationDetail
+ Amazonka.CostExplorer.Types.SavingsPlansUtilizationDetail: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.SavingsPlansUtilizationDetail.SavingsPlansUtilizationDetail
+ Amazonka.CostExplorer.Types.SavingsPlansUtilizationDetail: instance GHC.Read.Read Amazonka.CostExplorer.Types.SavingsPlansUtilizationDetail.SavingsPlansUtilizationDetail
+ Amazonka.CostExplorer.Types.SavingsPlansUtilizationDetail: instance GHC.Show.Show Amazonka.CostExplorer.Types.SavingsPlansUtilizationDetail.SavingsPlansUtilizationDetail
+ Amazonka.CostExplorer.Types.SavingsPlansUtilizationDetail: newSavingsPlansUtilizationDetail :: SavingsPlansUtilizationDetail
+ Amazonka.CostExplorer.Types.SavingsPlansUtilizationDetail: savingsPlansUtilizationDetail_amortizedCommitment :: Lens' SavingsPlansUtilizationDetail (Maybe SavingsPlansAmortizedCommitment)
+ Amazonka.CostExplorer.Types.SavingsPlansUtilizationDetail: savingsPlansUtilizationDetail_attributes :: Lens' SavingsPlansUtilizationDetail (Maybe (HashMap Text Text))
+ Amazonka.CostExplorer.Types.SavingsPlansUtilizationDetail: savingsPlansUtilizationDetail_savings :: Lens' SavingsPlansUtilizationDetail (Maybe SavingsPlansSavings)
+ Amazonka.CostExplorer.Types.SavingsPlansUtilizationDetail: savingsPlansUtilizationDetail_savingsPlanArn :: Lens' SavingsPlansUtilizationDetail (Maybe Text)
+ Amazonka.CostExplorer.Types.SavingsPlansUtilizationDetail: savingsPlansUtilizationDetail_utilization :: Lens' SavingsPlansUtilizationDetail (Maybe SavingsPlansUtilization)
+ Amazonka.CostExplorer.Types.ServiceSpecification: ServiceSpecification' :: Maybe EC2Specification -> ServiceSpecification
+ Amazonka.CostExplorer.Types.ServiceSpecification: [$sel:eC2Specification:ServiceSpecification'] :: ServiceSpecification -> Maybe EC2Specification
+ Amazonka.CostExplorer.Types.ServiceSpecification: data ServiceSpecification
+ Amazonka.CostExplorer.Types.ServiceSpecification: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.ServiceSpecification.ServiceSpecification
+ Amazonka.CostExplorer.Types.ServiceSpecification: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.ServiceSpecification.ServiceSpecification
+ Amazonka.CostExplorer.Types.ServiceSpecification: instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.CostExplorer.Types.ServiceSpecification.ServiceSpecification
+ Amazonka.CostExplorer.Types.ServiceSpecification: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.ServiceSpecification.ServiceSpecification
+ Amazonka.CostExplorer.Types.ServiceSpecification: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.ServiceSpecification.ServiceSpecification
+ Amazonka.CostExplorer.Types.ServiceSpecification: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.ServiceSpecification.ServiceSpecification
+ Amazonka.CostExplorer.Types.ServiceSpecification: instance GHC.Read.Read Amazonka.CostExplorer.Types.ServiceSpecification.ServiceSpecification
+ Amazonka.CostExplorer.Types.ServiceSpecification: instance GHC.Show.Show Amazonka.CostExplorer.Types.ServiceSpecification.ServiceSpecification
+ Amazonka.CostExplorer.Types.ServiceSpecification: newServiceSpecification :: ServiceSpecification
+ Amazonka.CostExplorer.Types.ServiceSpecification: serviceSpecification_eC2Specification :: Lens' ServiceSpecification (Maybe EC2Specification)
+ Amazonka.CostExplorer.Types.SortDefinition: SortDefinition' :: Maybe SortOrder -> Text -> SortDefinition
+ Amazonka.CostExplorer.Types.SortDefinition: [$sel:key:SortDefinition'] :: SortDefinition -> Text
+ Amazonka.CostExplorer.Types.SortDefinition: [$sel:sortOrder:SortDefinition'] :: SortDefinition -> Maybe SortOrder
+ Amazonka.CostExplorer.Types.SortDefinition: data SortDefinition
+ Amazonka.CostExplorer.Types.SortDefinition: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.SortDefinition.SortDefinition
+ Amazonka.CostExplorer.Types.SortDefinition: instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.CostExplorer.Types.SortDefinition.SortDefinition
+ Amazonka.CostExplorer.Types.SortDefinition: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.SortDefinition.SortDefinition
+ Amazonka.CostExplorer.Types.SortDefinition: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.SortDefinition.SortDefinition
+ Amazonka.CostExplorer.Types.SortDefinition: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.SortDefinition.SortDefinition
+ Amazonka.CostExplorer.Types.SortDefinition: instance GHC.Read.Read Amazonka.CostExplorer.Types.SortDefinition.SortDefinition
+ Amazonka.CostExplorer.Types.SortDefinition: instance GHC.Show.Show Amazonka.CostExplorer.Types.SortDefinition.SortDefinition
+ Amazonka.CostExplorer.Types.SortDefinition: newSortDefinition :: Text -> SortDefinition
+ Amazonka.CostExplorer.Types.SortDefinition: sortDefinition_key :: Lens' SortDefinition Text
+ Amazonka.CostExplorer.Types.SortDefinition: sortDefinition_sortOrder :: Lens' SortDefinition (Maybe SortOrder)
+ Amazonka.CostExplorer.Types.SortOrder: SortOrder' :: Text -> SortOrder
+ Amazonka.CostExplorer.Types.SortOrder: [fromSortOrder] :: SortOrder -> Text
+ Amazonka.CostExplorer.Types.SortOrder: instance Amazonka.Data.ByteString.ToByteString Amazonka.CostExplorer.Types.SortOrder.SortOrder
+ Amazonka.CostExplorer.Types.SortOrder: instance Amazonka.Data.Headers.ToHeader Amazonka.CostExplorer.Types.SortOrder.SortOrder
+ Amazonka.CostExplorer.Types.SortOrder: instance Amazonka.Data.Log.ToLog Amazonka.CostExplorer.Types.SortOrder.SortOrder
+ Amazonka.CostExplorer.Types.SortOrder: instance Amazonka.Data.Query.ToQuery Amazonka.CostExplorer.Types.SortOrder.SortOrder
+ Amazonka.CostExplorer.Types.SortOrder: instance Amazonka.Data.Text.FromText Amazonka.CostExplorer.Types.SortOrder.SortOrder
+ Amazonka.CostExplorer.Types.SortOrder: instance Amazonka.Data.Text.ToText Amazonka.CostExplorer.Types.SortOrder.SortOrder
+ Amazonka.CostExplorer.Types.SortOrder: instance Amazonka.Data.XML.FromXML Amazonka.CostExplorer.Types.SortOrder.SortOrder
+ Amazonka.CostExplorer.Types.SortOrder: instance Amazonka.Data.XML.ToXML Amazonka.CostExplorer.Types.SortOrder.SortOrder
+ Amazonka.CostExplorer.Types.SortOrder: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.SortOrder.SortOrder
+ Amazonka.CostExplorer.Types.SortOrder: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.SortOrder.SortOrder
+ Amazonka.CostExplorer.Types.SortOrder: instance Data.Aeson.Types.FromJSON.FromJSONKey Amazonka.CostExplorer.Types.SortOrder.SortOrder
+ Amazonka.CostExplorer.Types.SortOrder: instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.CostExplorer.Types.SortOrder.SortOrder
+ Amazonka.CostExplorer.Types.SortOrder: instance Data.Aeson.Types.ToJSON.ToJSONKey Amazonka.CostExplorer.Types.SortOrder.SortOrder
+ Amazonka.CostExplorer.Types.SortOrder: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.SortOrder.SortOrder
+ Amazonka.CostExplorer.Types.SortOrder: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.SortOrder.SortOrder
+ Amazonka.CostExplorer.Types.SortOrder: instance GHC.Classes.Ord Amazonka.CostExplorer.Types.SortOrder.SortOrder
+ Amazonka.CostExplorer.Types.SortOrder: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.SortOrder.SortOrder
+ Amazonka.CostExplorer.Types.SortOrder: instance GHC.Read.Read Amazonka.CostExplorer.Types.SortOrder.SortOrder
+ Amazonka.CostExplorer.Types.SortOrder: instance GHC.Show.Show Amazonka.CostExplorer.Types.SortOrder.SortOrder
+ Amazonka.CostExplorer.Types.SortOrder: newtype SortOrder
+ Amazonka.CostExplorer.Types.SortOrder: pattern SortOrder_ASCENDING :: SortOrder
+ Amazonka.CostExplorer.Types.SortOrder: pattern SortOrder_DESCENDING :: SortOrder
+ Amazonka.CostExplorer.Types.Subscriber: Subscriber' :: Maybe Text -> Maybe SubscriberStatus -> Maybe SubscriberType -> Subscriber
+ Amazonka.CostExplorer.Types.Subscriber: [$sel:address:Subscriber'] :: Subscriber -> Maybe Text
+ Amazonka.CostExplorer.Types.Subscriber: [$sel:status:Subscriber'] :: Subscriber -> Maybe SubscriberStatus
+ Amazonka.CostExplorer.Types.Subscriber: [$sel:type':Subscriber'] :: Subscriber -> Maybe SubscriberType
+ Amazonka.CostExplorer.Types.Subscriber: data Subscriber
+ Amazonka.CostExplorer.Types.Subscriber: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.Subscriber.Subscriber
+ Amazonka.CostExplorer.Types.Subscriber: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.Subscriber.Subscriber
+ Amazonka.CostExplorer.Types.Subscriber: instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.CostExplorer.Types.Subscriber.Subscriber
+ Amazonka.CostExplorer.Types.Subscriber: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.Subscriber.Subscriber
+ Amazonka.CostExplorer.Types.Subscriber: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.Subscriber.Subscriber
+ Amazonka.CostExplorer.Types.Subscriber: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.Subscriber.Subscriber
+ Amazonka.CostExplorer.Types.Subscriber: instance GHC.Read.Read Amazonka.CostExplorer.Types.Subscriber.Subscriber
+ Amazonka.CostExplorer.Types.Subscriber: instance GHC.Show.Show Amazonka.CostExplorer.Types.Subscriber.Subscriber
+ Amazonka.CostExplorer.Types.Subscriber: newSubscriber :: Subscriber
+ Amazonka.CostExplorer.Types.Subscriber: subscriber_address :: Lens' Subscriber (Maybe Text)
+ Amazonka.CostExplorer.Types.Subscriber: subscriber_status :: Lens' Subscriber (Maybe SubscriberStatus)
+ Amazonka.CostExplorer.Types.Subscriber: subscriber_type :: Lens' Subscriber (Maybe SubscriberType)
+ Amazonka.CostExplorer.Types.SubscriberStatus: SubscriberStatus' :: Text -> SubscriberStatus
+ Amazonka.CostExplorer.Types.SubscriberStatus: [fromSubscriberStatus] :: SubscriberStatus -> Text
+ Amazonka.CostExplorer.Types.SubscriberStatus: instance Amazonka.Data.ByteString.ToByteString Amazonka.CostExplorer.Types.SubscriberStatus.SubscriberStatus
+ Amazonka.CostExplorer.Types.SubscriberStatus: instance Amazonka.Data.Headers.ToHeader Amazonka.CostExplorer.Types.SubscriberStatus.SubscriberStatus
+ Amazonka.CostExplorer.Types.SubscriberStatus: instance Amazonka.Data.Log.ToLog Amazonka.CostExplorer.Types.SubscriberStatus.SubscriberStatus
+ Amazonka.CostExplorer.Types.SubscriberStatus: instance Amazonka.Data.Query.ToQuery Amazonka.CostExplorer.Types.SubscriberStatus.SubscriberStatus
+ Amazonka.CostExplorer.Types.SubscriberStatus: instance Amazonka.Data.Text.FromText Amazonka.CostExplorer.Types.SubscriberStatus.SubscriberStatus
+ Amazonka.CostExplorer.Types.SubscriberStatus: instance Amazonka.Data.Text.ToText Amazonka.CostExplorer.Types.SubscriberStatus.SubscriberStatus
+ Amazonka.CostExplorer.Types.SubscriberStatus: instance Amazonka.Data.XML.FromXML Amazonka.CostExplorer.Types.SubscriberStatus.SubscriberStatus
+ Amazonka.CostExplorer.Types.SubscriberStatus: instance Amazonka.Data.XML.ToXML Amazonka.CostExplorer.Types.SubscriberStatus.SubscriberStatus
+ Amazonka.CostExplorer.Types.SubscriberStatus: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.SubscriberStatus.SubscriberStatus
+ Amazonka.CostExplorer.Types.SubscriberStatus: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.SubscriberStatus.SubscriberStatus
+ Amazonka.CostExplorer.Types.SubscriberStatus: instance Data.Aeson.Types.FromJSON.FromJSONKey Amazonka.CostExplorer.Types.SubscriberStatus.SubscriberStatus
+ Amazonka.CostExplorer.Types.SubscriberStatus: instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.CostExplorer.Types.SubscriberStatus.SubscriberStatus
+ Amazonka.CostExplorer.Types.SubscriberStatus: instance Data.Aeson.Types.ToJSON.ToJSONKey Amazonka.CostExplorer.Types.SubscriberStatus.SubscriberStatus
+ Amazonka.CostExplorer.Types.SubscriberStatus: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.SubscriberStatus.SubscriberStatus
+ Amazonka.CostExplorer.Types.SubscriberStatus: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.SubscriberStatus.SubscriberStatus
+ Amazonka.CostExplorer.Types.SubscriberStatus: instance GHC.Classes.Ord Amazonka.CostExplorer.Types.SubscriberStatus.SubscriberStatus
+ Amazonka.CostExplorer.Types.SubscriberStatus: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.SubscriberStatus.SubscriberStatus
+ Amazonka.CostExplorer.Types.SubscriberStatus: instance GHC.Read.Read Amazonka.CostExplorer.Types.SubscriberStatus.SubscriberStatus
+ Amazonka.CostExplorer.Types.SubscriberStatus: instance GHC.Show.Show Amazonka.CostExplorer.Types.SubscriberStatus.SubscriberStatus
+ Amazonka.CostExplorer.Types.SubscriberStatus: newtype SubscriberStatus
+ Amazonka.CostExplorer.Types.SubscriberStatus: pattern SubscriberStatus_CONFIRMED :: SubscriberStatus
+ Amazonka.CostExplorer.Types.SubscriberStatus: pattern SubscriberStatus_DECLINED :: SubscriberStatus
+ Amazonka.CostExplorer.Types.SubscriberType: SubscriberType' :: Text -> SubscriberType
+ Amazonka.CostExplorer.Types.SubscriberType: [fromSubscriberType] :: SubscriberType -> Text
+ Amazonka.CostExplorer.Types.SubscriberType: instance Amazonka.Data.ByteString.ToByteString Amazonka.CostExplorer.Types.SubscriberType.SubscriberType
+ Amazonka.CostExplorer.Types.SubscriberType: instance Amazonka.Data.Headers.ToHeader Amazonka.CostExplorer.Types.SubscriberType.SubscriberType
+ Amazonka.CostExplorer.Types.SubscriberType: instance Amazonka.Data.Log.ToLog Amazonka.CostExplorer.Types.SubscriberType.SubscriberType
+ Amazonka.CostExplorer.Types.SubscriberType: instance Amazonka.Data.Query.ToQuery Amazonka.CostExplorer.Types.SubscriberType.SubscriberType
+ Amazonka.CostExplorer.Types.SubscriberType: instance Amazonka.Data.Text.FromText Amazonka.CostExplorer.Types.SubscriberType.SubscriberType
+ Amazonka.CostExplorer.Types.SubscriberType: instance Amazonka.Data.Text.ToText Amazonka.CostExplorer.Types.SubscriberType.SubscriberType
+ Amazonka.CostExplorer.Types.SubscriberType: instance Amazonka.Data.XML.FromXML Amazonka.CostExplorer.Types.SubscriberType.SubscriberType
+ Amazonka.CostExplorer.Types.SubscriberType: instance Amazonka.Data.XML.ToXML Amazonka.CostExplorer.Types.SubscriberType.SubscriberType
+ Amazonka.CostExplorer.Types.SubscriberType: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.SubscriberType.SubscriberType
+ Amazonka.CostExplorer.Types.SubscriberType: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.SubscriberType.SubscriberType
+ Amazonka.CostExplorer.Types.SubscriberType: instance Data.Aeson.Types.FromJSON.FromJSONKey Amazonka.CostExplorer.Types.SubscriberType.SubscriberType
+ Amazonka.CostExplorer.Types.SubscriberType: instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.CostExplorer.Types.SubscriberType.SubscriberType
+ Amazonka.CostExplorer.Types.SubscriberType: instance Data.Aeson.Types.ToJSON.ToJSONKey Amazonka.CostExplorer.Types.SubscriberType.SubscriberType
+ Amazonka.CostExplorer.Types.SubscriberType: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.SubscriberType.SubscriberType
+ Amazonka.CostExplorer.Types.SubscriberType: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.SubscriberType.SubscriberType
+ Amazonka.CostExplorer.Types.SubscriberType: instance GHC.Classes.Ord Amazonka.CostExplorer.Types.SubscriberType.SubscriberType
+ Amazonka.CostExplorer.Types.SubscriberType: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.SubscriberType.SubscriberType
+ Amazonka.CostExplorer.Types.SubscriberType: instance GHC.Read.Read Amazonka.CostExplorer.Types.SubscriberType.SubscriberType
+ Amazonka.CostExplorer.Types.SubscriberType: instance GHC.Show.Show Amazonka.CostExplorer.Types.SubscriberType.SubscriberType
+ Amazonka.CostExplorer.Types.SubscriberType: newtype SubscriberType
+ Amazonka.CostExplorer.Types.SubscriberType: pattern SubscriberType_EMAIL :: SubscriberType
+ Amazonka.CostExplorer.Types.SubscriberType: pattern SubscriberType_SNS :: SubscriberType
+ Amazonka.CostExplorer.Types.SupportedSavingsPlansType: SupportedSavingsPlansType' :: Text -> SupportedSavingsPlansType
+ Amazonka.CostExplorer.Types.SupportedSavingsPlansType: [fromSupportedSavingsPlansType] :: SupportedSavingsPlansType -> Text
+ Amazonka.CostExplorer.Types.SupportedSavingsPlansType: instance Amazonka.Data.ByteString.ToByteString Amazonka.CostExplorer.Types.SupportedSavingsPlansType.SupportedSavingsPlansType
+ Amazonka.CostExplorer.Types.SupportedSavingsPlansType: instance Amazonka.Data.Headers.ToHeader Amazonka.CostExplorer.Types.SupportedSavingsPlansType.SupportedSavingsPlansType
+ Amazonka.CostExplorer.Types.SupportedSavingsPlansType: instance Amazonka.Data.Log.ToLog Amazonka.CostExplorer.Types.SupportedSavingsPlansType.SupportedSavingsPlansType
+ Amazonka.CostExplorer.Types.SupportedSavingsPlansType: instance Amazonka.Data.Query.ToQuery Amazonka.CostExplorer.Types.SupportedSavingsPlansType.SupportedSavingsPlansType
+ Amazonka.CostExplorer.Types.SupportedSavingsPlansType: instance Amazonka.Data.Text.FromText Amazonka.CostExplorer.Types.SupportedSavingsPlansType.SupportedSavingsPlansType
+ Amazonka.CostExplorer.Types.SupportedSavingsPlansType: instance Amazonka.Data.Text.ToText Amazonka.CostExplorer.Types.SupportedSavingsPlansType.SupportedSavingsPlansType
+ Amazonka.CostExplorer.Types.SupportedSavingsPlansType: instance Amazonka.Data.XML.FromXML Amazonka.CostExplorer.Types.SupportedSavingsPlansType.SupportedSavingsPlansType
+ Amazonka.CostExplorer.Types.SupportedSavingsPlansType: instance Amazonka.Data.XML.ToXML Amazonka.CostExplorer.Types.SupportedSavingsPlansType.SupportedSavingsPlansType
+ Amazonka.CostExplorer.Types.SupportedSavingsPlansType: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.SupportedSavingsPlansType.SupportedSavingsPlansType
+ Amazonka.CostExplorer.Types.SupportedSavingsPlansType: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.SupportedSavingsPlansType.SupportedSavingsPlansType
+ Amazonka.CostExplorer.Types.SupportedSavingsPlansType: instance Data.Aeson.Types.FromJSON.FromJSONKey Amazonka.CostExplorer.Types.SupportedSavingsPlansType.SupportedSavingsPlansType
+ Amazonka.CostExplorer.Types.SupportedSavingsPlansType: instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.CostExplorer.Types.SupportedSavingsPlansType.SupportedSavingsPlansType
+ Amazonka.CostExplorer.Types.SupportedSavingsPlansType: instance Data.Aeson.Types.ToJSON.ToJSONKey Amazonka.CostExplorer.Types.SupportedSavingsPlansType.SupportedSavingsPlansType
+ Amazonka.CostExplorer.Types.SupportedSavingsPlansType: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.SupportedSavingsPlansType.SupportedSavingsPlansType
+ Amazonka.CostExplorer.Types.SupportedSavingsPlansType: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.SupportedSavingsPlansType.SupportedSavingsPlansType
+ Amazonka.CostExplorer.Types.SupportedSavingsPlansType: instance GHC.Classes.Ord Amazonka.CostExplorer.Types.SupportedSavingsPlansType.SupportedSavingsPlansType
+ Amazonka.CostExplorer.Types.SupportedSavingsPlansType: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.SupportedSavingsPlansType.SupportedSavingsPlansType
+ Amazonka.CostExplorer.Types.SupportedSavingsPlansType: instance GHC.Read.Read Amazonka.CostExplorer.Types.SupportedSavingsPlansType.SupportedSavingsPlansType
+ Amazonka.CostExplorer.Types.SupportedSavingsPlansType: instance GHC.Show.Show Amazonka.CostExplorer.Types.SupportedSavingsPlansType.SupportedSavingsPlansType
+ Amazonka.CostExplorer.Types.SupportedSavingsPlansType: newtype SupportedSavingsPlansType
+ Amazonka.CostExplorer.Types.SupportedSavingsPlansType: pattern SupportedSavingsPlansType_COMPUTE_SP :: SupportedSavingsPlansType
+ Amazonka.CostExplorer.Types.SupportedSavingsPlansType: pattern SupportedSavingsPlansType_EC2_INSTANCE_SP :: SupportedSavingsPlansType
+ Amazonka.CostExplorer.Types.SupportedSavingsPlansType: pattern SupportedSavingsPlansType_SAGEMAKER_SP :: SupportedSavingsPlansType
+ Amazonka.CostExplorer.Types.TagValues: TagValues' :: Maybe Text -> Maybe [MatchOption] -> Maybe [Text] -> TagValues
+ Amazonka.CostExplorer.Types.TagValues: [$sel:key:TagValues'] :: TagValues -> Maybe Text
+ Amazonka.CostExplorer.Types.TagValues: [$sel:matchOptions:TagValues'] :: TagValues -> Maybe [MatchOption]
+ Amazonka.CostExplorer.Types.TagValues: [$sel:values:TagValues'] :: TagValues -> Maybe [Text]
+ Amazonka.CostExplorer.Types.TagValues: data TagValues
+ Amazonka.CostExplorer.Types.TagValues: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.TagValues.TagValues
+ Amazonka.CostExplorer.Types.TagValues: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.TagValues.TagValues
+ Amazonka.CostExplorer.Types.TagValues: instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.CostExplorer.Types.TagValues.TagValues
+ Amazonka.CostExplorer.Types.TagValues: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.TagValues.TagValues
+ Amazonka.CostExplorer.Types.TagValues: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.TagValues.TagValues
+ Amazonka.CostExplorer.Types.TagValues: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.TagValues.TagValues
+ Amazonka.CostExplorer.Types.TagValues: instance GHC.Read.Read Amazonka.CostExplorer.Types.TagValues.TagValues
+ Amazonka.CostExplorer.Types.TagValues: instance GHC.Show.Show Amazonka.CostExplorer.Types.TagValues.TagValues
+ Amazonka.CostExplorer.Types.TagValues: newTagValues :: TagValues
+ Amazonka.CostExplorer.Types.TagValues: tagValues_key :: Lens' TagValues (Maybe Text)
+ Amazonka.CostExplorer.Types.TagValues: tagValues_matchOptions :: Lens' TagValues (Maybe [MatchOption])
+ Amazonka.CostExplorer.Types.TagValues: tagValues_values :: Lens' TagValues (Maybe [Text])
+ Amazonka.CostExplorer.Types.TargetInstance: TargetInstance' :: Maybe Text -> Maybe Bool -> Maybe Text -> Maybe Text -> Maybe ResourceUtilization -> Maybe [PlatformDifference] -> Maybe ResourceDetails -> TargetInstance
+ Amazonka.CostExplorer.Types.TargetInstance: [$sel:currencyCode:TargetInstance'] :: TargetInstance -> Maybe Text
+ Amazonka.CostExplorer.Types.TargetInstance: [$sel:defaultTargetInstance:TargetInstance'] :: TargetInstance -> Maybe Bool
+ Amazonka.CostExplorer.Types.TargetInstance: [$sel:estimatedMonthlyCost:TargetInstance'] :: TargetInstance -> Maybe Text
+ Amazonka.CostExplorer.Types.TargetInstance: [$sel:estimatedMonthlySavings:TargetInstance'] :: TargetInstance -> Maybe Text
+ Amazonka.CostExplorer.Types.TargetInstance: [$sel:expectedResourceUtilization:TargetInstance'] :: TargetInstance -> Maybe ResourceUtilization
+ Amazonka.CostExplorer.Types.TargetInstance: [$sel:platformDifferences:TargetInstance'] :: TargetInstance -> Maybe [PlatformDifference]
+ Amazonka.CostExplorer.Types.TargetInstance: [$sel:resourceDetails:TargetInstance'] :: TargetInstance -> Maybe ResourceDetails
+ Amazonka.CostExplorer.Types.TargetInstance: data TargetInstance
+ Amazonka.CostExplorer.Types.TargetInstance: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.TargetInstance.TargetInstance
+ Amazonka.CostExplorer.Types.TargetInstance: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.TargetInstance.TargetInstance
+ Amazonka.CostExplorer.Types.TargetInstance: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.TargetInstance.TargetInstance
+ Amazonka.CostExplorer.Types.TargetInstance: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.TargetInstance.TargetInstance
+ Amazonka.CostExplorer.Types.TargetInstance: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.TargetInstance.TargetInstance
+ Amazonka.CostExplorer.Types.TargetInstance: instance GHC.Read.Read Amazonka.CostExplorer.Types.TargetInstance.TargetInstance
+ Amazonka.CostExplorer.Types.TargetInstance: instance GHC.Show.Show Amazonka.CostExplorer.Types.TargetInstance.TargetInstance
+ Amazonka.CostExplorer.Types.TargetInstance: newTargetInstance :: TargetInstance
+ Amazonka.CostExplorer.Types.TargetInstance: targetInstance_currencyCode :: Lens' TargetInstance (Maybe Text)
+ Amazonka.CostExplorer.Types.TargetInstance: targetInstance_defaultTargetInstance :: Lens' TargetInstance (Maybe Bool)
+ Amazonka.CostExplorer.Types.TargetInstance: targetInstance_estimatedMonthlyCost :: Lens' TargetInstance (Maybe Text)
+ Amazonka.CostExplorer.Types.TargetInstance: targetInstance_estimatedMonthlySavings :: Lens' TargetInstance (Maybe Text)
+ Amazonka.CostExplorer.Types.TargetInstance: targetInstance_expectedResourceUtilization :: Lens' TargetInstance (Maybe ResourceUtilization)
+ Amazonka.CostExplorer.Types.TargetInstance: targetInstance_platformDifferences :: Lens' TargetInstance (Maybe [PlatformDifference])
+ Amazonka.CostExplorer.Types.TargetInstance: targetInstance_resourceDetails :: Lens' TargetInstance (Maybe ResourceDetails)
+ Amazonka.CostExplorer.Types.TermInYears: TermInYears' :: Text -> TermInYears
+ Amazonka.CostExplorer.Types.TermInYears: [fromTermInYears] :: TermInYears -> Text
+ Amazonka.CostExplorer.Types.TermInYears: instance Amazonka.Data.ByteString.ToByteString Amazonka.CostExplorer.Types.TermInYears.TermInYears
+ Amazonka.CostExplorer.Types.TermInYears: instance Amazonka.Data.Headers.ToHeader Amazonka.CostExplorer.Types.TermInYears.TermInYears
+ Amazonka.CostExplorer.Types.TermInYears: instance Amazonka.Data.Log.ToLog Amazonka.CostExplorer.Types.TermInYears.TermInYears
+ Amazonka.CostExplorer.Types.TermInYears: instance Amazonka.Data.Query.ToQuery Amazonka.CostExplorer.Types.TermInYears.TermInYears
+ Amazonka.CostExplorer.Types.TermInYears: instance Amazonka.Data.Text.FromText Amazonka.CostExplorer.Types.TermInYears.TermInYears
+ Amazonka.CostExplorer.Types.TermInYears: instance Amazonka.Data.Text.ToText Amazonka.CostExplorer.Types.TermInYears.TermInYears
+ Amazonka.CostExplorer.Types.TermInYears: instance Amazonka.Data.XML.FromXML Amazonka.CostExplorer.Types.TermInYears.TermInYears
+ Amazonka.CostExplorer.Types.TermInYears: instance Amazonka.Data.XML.ToXML Amazonka.CostExplorer.Types.TermInYears.TermInYears
+ Amazonka.CostExplorer.Types.TermInYears: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.TermInYears.TermInYears
+ Amazonka.CostExplorer.Types.TermInYears: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.TermInYears.TermInYears
+ Amazonka.CostExplorer.Types.TermInYears: instance Data.Aeson.Types.FromJSON.FromJSONKey Amazonka.CostExplorer.Types.TermInYears.TermInYears
+ Amazonka.CostExplorer.Types.TermInYears: instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.CostExplorer.Types.TermInYears.TermInYears
+ Amazonka.CostExplorer.Types.TermInYears: instance Data.Aeson.Types.ToJSON.ToJSONKey Amazonka.CostExplorer.Types.TermInYears.TermInYears
+ Amazonka.CostExplorer.Types.TermInYears: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.TermInYears.TermInYears
+ Amazonka.CostExplorer.Types.TermInYears: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.TermInYears.TermInYears
+ Amazonka.CostExplorer.Types.TermInYears: instance GHC.Classes.Ord Amazonka.CostExplorer.Types.TermInYears.TermInYears
+ Amazonka.CostExplorer.Types.TermInYears: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.TermInYears.TermInYears
+ Amazonka.CostExplorer.Types.TermInYears: instance GHC.Read.Read Amazonka.CostExplorer.Types.TermInYears.TermInYears
+ Amazonka.CostExplorer.Types.TermInYears: instance GHC.Show.Show Amazonka.CostExplorer.Types.TermInYears.TermInYears
+ Amazonka.CostExplorer.Types.TermInYears: newtype TermInYears
+ Amazonka.CostExplorer.Types.TermInYears: pattern TermInYears_ONE_YEAR :: TermInYears
+ Amazonka.CostExplorer.Types.TermInYears: pattern TermInYears_THREE_YEARS :: TermInYears
+ Amazonka.CostExplorer.Types.TerminateRecommendationDetail: TerminateRecommendationDetail' :: Maybe Text -> Maybe Text -> TerminateRecommendationDetail
+ Amazonka.CostExplorer.Types.TerminateRecommendationDetail: [$sel:currencyCode:TerminateRecommendationDetail'] :: TerminateRecommendationDetail -> Maybe Text
+ Amazonka.CostExplorer.Types.TerminateRecommendationDetail: [$sel:estimatedMonthlySavings:TerminateRecommendationDetail'] :: TerminateRecommendationDetail -> Maybe Text
+ Amazonka.CostExplorer.Types.TerminateRecommendationDetail: data TerminateRecommendationDetail
+ Amazonka.CostExplorer.Types.TerminateRecommendationDetail: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.TerminateRecommendationDetail.TerminateRecommendationDetail
+ Amazonka.CostExplorer.Types.TerminateRecommendationDetail: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.TerminateRecommendationDetail.TerminateRecommendationDetail
+ Amazonka.CostExplorer.Types.TerminateRecommendationDetail: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.TerminateRecommendationDetail.TerminateRecommendationDetail
+ Amazonka.CostExplorer.Types.TerminateRecommendationDetail: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.TerminateRecommendationDetail.TerminateRecommendationDetail
+ Amazonka.CostExplorer.Types.TerminateRecommendationDetail: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.TerminateRecommendationDetail.TerminateRecommendationDetail
+ Amazonka.CostExplorer.Types.TerminateRecommendationDetail: instance GHC.Read.Read Amazonka.CostExplorer.Types.TerminateRecommendationDetail.TerminateRecommendationDetail
+ Amazonka.CostExplorer.Types.TerminateRecommendationDetail: instance GHC.Show.Show Amazonka.CostExplorer.Types.TerminateRecommendationDetail.TerminateRecommendationDetail
+ Amazonka.CostExplorer.Types.TerminateRecommendationDetail: newTerminateRecommendationDetail :: TerminateRecommendationDetail
+ Amazonka.CostExplorer.Types.TerminateRecommendationDetail: terminateRecommendationDetail_currencyCode :: Lens' TerminateRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Types.TerminateRecommendationDetail: terminateRecommendationDetail_estimatedMonthlySavings :: Lens' TerminateRecommendationDetail (Maybe Text)
+ Amazonka.CostExplorer.Types.TotalImpactFilter: TotalImpactFilter' :: Maybe Double -> NumericOperator -> Double -> TotalImpactFilter
+ Amazonka.CostExplorer.Types.TotalImpactFilter: [$sel:endValue:TotalImpactFilter'] :: TotalImpactFilter -> Maybe Double
+ Amazonka.CostExplorer.Types.TotalImpactFilter: [$sel:numericOperator:TotalImpactFilter'] :: TotalImpactFilter -> NumericOperator
+ Amazonka.CostExplorer.Types.TotalImpactFilter: [$sel:startValue:TotalImpactFilter'] :: TotalImpactFilter -> Double
+ Amazonka.CostExplorer.Types.TotalImpactFilter: data TotalImpactFilter
+ Amazonka.CostExplorer.Types.TotalImpactFilter: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.TotalImpactFilter.TotalImpactFilter
+ Amazonka.CostExplorer.Types.TotalImpactFilter: instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.CostExplorer.Types.TotalImpactFilter.TotalImpactFilter
+ Amazonka.CostExplorer.Types.TotalImpactFilter: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.TotalImpactFilter.TotalImpactFilter
+ Amazonka.CostExplorer.Types.TotalImpactFilter: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.TotalImpactFilter.TotalImpactFilter
+ Amazonka.CostExplorer.Types.TotalImpactFilter: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.TotalImpactFilter.TotalImpactFilter
+ Amazonka.CostExplorer.Types.TotalImpactFilter: instance GHC.Read.Read Amazonka.CostExplorer.Types.TotalImpactFilter.TotalImpactFilter
+ Amazonka.CostExplorer.Types.TotalImpactFilter: instance GHC.Show.Show Amazonka.CostExplorer.Types.TotalImpactFilter.TotalImpactFilter
+ Amazonka.CostExplorer.Types.TotalImpactFilter: newTotalImpactFilter :: NumericOperator -> Double -> TotalImpactFilter
+ Amazonka.CostExplorer.Types.TotalImpactFilter: totalImpactFilter_endValue :: Lens' TotalImpactFilter (Maybe Double)
+ Amazonka.CostExplorer.Types.TotalImpactFilter: totalImpactFilter_numericOperator :: Lens' TotalImpactFilter NumericOperator
+ Amazonka.CostExplorer.Types.TotalImpactFilter: totalImpactFilter_startValue :: Lens' TotalImpactFilter Double
+ Amazonka.CostExplorer.Types.UpdateCostAllocationTagsStatusError: UpdateCostAllocationTagsStatusError' :: Maybe Text -> Maybe Text -> Maybe Text -> UpdateCostAllocationTagsStatusError
+ Amazonka.CostExplorer.Types.UpdateCostAllocationTagsStatusError: [$sel:code:UpdateCostAllocationTagsStatusError'] :: UpdateCostAllocationTagsStatusError -> Maybe Text
+ Amazonka.CostExplorer.Types.UpdateCostAllocationTagsStatusError: [$sel:message:UpdateCostAllocationTagsStatusError'] :: UpdateCostAllocationTagsStatusError -> Maybe Text
+ Amazonka.CostExplorer.Types.UpdateCostAllocationTagsStatusError: [$sel:tagKey:UpdateCostAllocationTagsStatusError'] :: UpdateCostAllocationTagsStatusError -> Maybe Text
+ Amazonka.CostExplorer.Types.UpdateCostAllocationTagsStatusError: data UpdateCostAllocationTagsStatusError
+ Amazonka.CostExplorer.Types.UpdateCostAllocationTagsStatusError: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.UpdateCostAllocationTagsStatusError.UpdateCostAllocationTagsStatusError
+ Amazonka.CostExplorer.Types.UpdateCostAllocationTagsStatusError: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.UpdateCostAllocationTagsStatusError.UpdateCostAllocationTagsStatusError
+ Amazonka.CostExplorer.Types.UpdateCostAllocationTagsStatusError: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.UpdateCostAllocationTagsStatusError.UpdateCostAllocationTagsStatusError
+ Amazonka.CostExplorer.Types.UpdateCostAllocationTagsStatusError: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.UpdateCostAllocationTagsStatusError.UpdateCostAllocationTagsStatusError
+ Amazonka.CostExplorer.Types.UpdateCostAllocationTagsStatusError: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.UpdateCostAllocationTagsStatusError.UpdateCostAllocationTagsStatusError
+ Amazonka.CostExplorer.Types.UpdateCostAllocationTagsStatusError: instance GHC.Read.Read Amazonka.CostExplorer.Types.UpdateCostAllocationTagsStatusError.UpdateCostAllocationTagsStatusError
+ Amazonka.CostExplorer.Types.UpdateCostAllocationTagsStatusError: instance GHC.Show.Show Amazonka.CostExplorer.Types.UpdateCostAllocationTagsStatusError.UpdateCostAllocationTagsStatusError
+ Amazonka.CostExplorer.Types.UpdateCostAllocationTagsStatusError: newUpdateCostAllocationTagsStatusError :: UpdateCostAllocationTagsStatusError
+ Amazonka.CostExplorer.Types.UpdateCostAllocationTagsStatusError: updateCostAllocationTagsStatusError_code :: Lens' UpdateCostAllocationTagsStatusError (Maybe Text)
+ Amazonka.CostExplorer.Types.UpdateCostAllocationTagsStatusError: updateCostAllocationTagsStatusError_message :: Lens' UpdateCostAllocationTagsStatusError (Maybe Text)
+ Amazonka.CostExplorer.Types.UpdateCostAllocationTagsStatusError: updateCostAllocationTagsStatusError_tagKey :: Lens' UpdateCostAllocationTagsStatusError (Maybe Text)
+ Amazonka.CostExplorer.Types.UtilizationByTime: UtilizationByTime' :: Maybe [ReservationUtilizationGroup] -> Maybe DateInterval -> Maybe ReservationAggregates -> UtilizationByTime
+ Amazonka.CostExplorer.Types.UtilizationByTime: [$sel:groups:UtilizationByTime'] :: UtilizationByTime -> Maybe [ReservationUtilizationGroup]
+ Amazonka.CostExplorer.Types.UtilizationByTime: [$sel:timePeriod:UtilizationByTime'] :: UtilizationByTime -> Maybe DateInterval
+ Amazonka.CostExplorer.Types.UtilizationByTime: [$sel:total:UtilizationByTime'] :: UtilizationByTime -> Maybe ReservationAggregates
+ Amazonka.CostExplorer.Types.UtilizationByTime: data UtilizationByTime
+ Amazonka.CostExplorer.Types.UtilizationByTime: instance Control.DeepSeq.NFData Amazonka.CostExplorer.Types.UtilizationByTime.UtilizationByTime
+ Amazonka.CostExplorer.Types.UtilizationByTime: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.CostExplorer.Types.UtilizationByTime.UtilizationByTime
+ Amazonka.CostExplorer.Types.UtilizationByTime: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.Types.UtilizationByTime.UtilizationByTime
+ Amazonka.CostExplorer.Types.UtilizationByTime: instance GHC.Classes.Eq Amazonka.CostExplorer.Types.UtilizationByTime.UtilizationByTime
+ Amazonka.CostExplorer.Types.UtilizationByTime: instance GHC.Generics.Generic Amazonka.CostExplorer.Types.UtilizationByTime.UtilizationByTime
+ Amazonka.CostExplorer.Types.UtilizationByTime: instance GHC.Read.Read Amazonka.CostExplorer.Types.UtilizationByTime.UtilizationByTime
+ Amazonka.CostExplorer.Types.UtilizationByTime: instance GHC.Show.Show Amazonka.CostExplorer.Types.UtilizationByTime.UtilizationByTime
+ Amazonka.CostExplorer.Types.UtilizationByTime: newUtilizationByTime :: UtilizationByTime
+ Amazonka.CostExplorer.Types.UtilizationByTime: utilizationByTime_groups :: Lens' UtilizationByTime (Maybe [ReservationUtilizationGroup])
+ Amazonka.CostExplorer.Types.UtilizationByTime: utilizationByTime_timePeriod :: Lens' UtilizationByTime (Maybe DateInterval)
+ Amazonka.CostExplorer.Types.UtilizationByTime: utilizationByTime_total :: Lens' UtilizationByTime (Maybe ReservationAggregates)
+ Amazonka.CostExplorer.UntagResource: UntagResource' :: Text -> [Text] -> UntagResource
+ Amazonka.CostExplorer.UntagResource: UntagResourceResponse' :: Int -> UntagResourceResponse
+ Amazonka.CostExplorer.UntagResource: [$sel:httpStatus:UntagResourceResponse'] :: UntagResourceResponse -> Int
+ Amazonka.CostExplorer.UntagResource: [$sel:resourceArn:UntagResource'] :: UntagResource -> Text
+ Amazonka.CostExplorer.UntagResource: [$sel:resourceTagKeys:UntagResource'] :: UntagResource -> [Text]
+ Amazonka.CostExplorer.UntagResource: data UntagResource
+ Amazonka.CostExplorer.UntagResource: data UntagResourceResponse
+ Amazonka.CostExplorer.UntagResource: instance Amazonka.Data.Headers.ToHeaders Amazonka.CostExplorer.UntagResource.UntagResource
+ Amazonka.CostExplorer.UntagResource: instance Amazonka.Data.Path.ToPath Amazonka.CostExplorer.UntagResource.UntagResource
+ Amazonka.CostExplorer.UntagResource: instance Amazonka.Data.Query.ToQuery Amazonka.CostExplorer.UntagResource.UntagResource
+ Amazonka.CostExplorer.UntagResource: instance Amazonka.Types.AWSRequest Amazonka.CostExplorer.UntagResource.UntagResource
+ Amazonka.CostExplorer.UntagResource: instance Control.DeepSeq.NFData Amazonka.CostExplorer.UntagResource.UntagResource
+ Amazonka.CostExplorer.UntagResource: instance Control.DeepSeq.NFData Amazonka.CostExplorer.UntagResource.UntagResourceResponse
+ Amazonka.CostExplorer.UntagResource: instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.CostExplorer.UntagResource.UntagResource
+ Amazonka.CostExplorer.UntagResource: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.UntagResource.UntagResource
+ Amazonka.CostExplorer.UntagResource: instance GHC.Classes.Eq Amazonka.CostExplorer.UntagResource.UntagResource
+ Amazonka.CostExplorer.UntagResource: instance GHC.Classes.Eq Amazonka.CostExplorer.UntagResource.UntagResourceResponse
+ Amazonka.CostExplorer.UntagResource: instance GHC.Generics.Generic Amazonka.CostExplorer.UntagResource.UntagResource
+ Amazonka.CostExplorer.UntagResource: instance GHC.Generics.Generic Amazonka.CostExplorer.UntagResource.UntagResourceResponse
+ Amazonka.CostExplorer.UntagResource: instance GHC.Read.Read Amazonka.CostExplorer.UntagResource.UntagResource
+ Amazonka.CostExplorer.UntagResource: instance GHC.Read.Read Amazonka.CostExplorer.UntagResource.UntagResourceResponse
+ Amazonka.CostExplorer.UntagResource: instance GHC.Show.Show Amazonka.CostExplorer.UntagResource.UntagResource
+ Amazonka.CostExplorer.UntagResource: instance GHC.Show.Show Amazonka.CostExplorer.UntagResource.UntagResourceResponse
+ Amazonka.CostExplorer.UntagResource: newUntagResource :: Text -> UntagResource
+ Amazonka.CostExplorer.UntagResource: newUntagResourceResponse :: Int -> UntagResourceResponse
+ Amazonka.CostExplorer.UntagResource: untagResourceResponse_httpStatus :: Lens' UntagResourceResponse Int
+ Amazonka.CostExplorer.UntagResource: untagResource_resourceArn :: Lens' UntagResource Text
+ Amazonka.CostExplorer.UntagResource: untagResource_resourceTagKeys :: Lens' UntagResource [Text]
+ Amazonka.CostExplorer.UpdateAnomalyMonitor: UpdateAnomalyMonitor' :: Maybe Text -> Text -> UpdateAnomalyMonitor
+ Amazonka.CostExplorer.UpdateAnomalyMonitor: UpdateAnomalyMonitorResponse' :: Int -> Text -> UpdateAnomalyMonitorResponse
+ Amazonka.CostExplorer.UpdateAnomalyMonitor: [$sel:httpStatus:UpdateAnomalyMonitorResponse'] :: UpdateAnomalyMonitorResponse -> Int
+ Amazonka.CostExplorer.UpdateAnomalyMonitor: [$sel:monitorArn:UpdateAnomalyMonitor'] :: UpdateAnomalyMonitor -> Text
+ Amazonka.CostExplorer.UpdateAnomalyMonitor: [$sel:monitorArn:UpdateAnomalyMonitorResponse'] :: UpdateAnomalyMonitorResponse -> Text
+ Amazonka.CostExplorer.UpdateAnomalyMonitor: [$sel:monitorName:UpdateAnomalyMonitor'] :: UpdateAnomalyMonitor -> Maybe Text
+ Amazonka.CostExplorer.UpdateAnomalyMonitor: data UpdateAnomalyMonitor
+ Amazonka.CostExplorer.UpdateAnomalyMonitor: data UpdateAnomalyMonitorResponse
+ Amazonka.CostExplorer.UpdateAnomalyMonitor: instance Amazonka.Data.Headers.ToHeaders Amazonka.CostExplorer.UpdateAnomalyMonitor.UpdateAnomalyMonitor
+ Amazonka.CostExplorer.UpdateAnomalyMonitor: instance Amazonka.Data.Path.ToPath Amazonka.CostExplorer.UpdateAnomalyMonitor.UpdateAnomalyMonitor
+ Amazonka.CostExplorer.UpdateAnomalyMonitor: instance Amazonka.Data.Query.ToQuery Amazonka.CostExplorer.UpdateAnomalyMonitor.UpdateAnomalyMonitor
+ Amazonka.CostExplorer.UpdateAnomalyMonitor: instance Amazonka.Types.AWSRequest Amazonka.CostExplorer.UpdateAnomalyMonitor.UpdateAnomalyMonitor
+ Amazonka.CostExplorer.UpdateAnomalyMonitor: instance Control.DeepSeq.NFData Amazonka.CostExplorer.UpdateAnomalyMonitor.UpdateAnomalyMonitor
+ Amazonka.CostExplorer.UpdateAnomalyMonitor: instance Control.DeepSeq.NFData Amazonka.CostExplorer.UpdateAnomalyMonitor.UpdateAnomalyMonitorResponse
+ Amazonka.CostExplorer.UpdateAnomalyMonitor: instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.CostExplorer.UpdateAnomalyMonitor.UpdateAnomalyMonitor
+ Amazonka.CostExplorer.UpdateAnomalyMonitor: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.UpdateAnomalyMonitor.UpdateAnomalyMonitor
+ Amazonka.CostExplorer.UpdateAnomalyMonitor: instance GHC.Classes.Eq Amazonka.CostExplorer.UpdateAnomalyMonitor.UpdateAnomalyMonitor
+ Amazonka.CostExplorer.UpdateAnomalyMonitor: instance GHC.Classes.Eq Amazonka.CostExplorer.UpdateAnomalyMonitor.UpdateAnomalyMonitorResponse
+ Amazonka.CostExplorer.UpdateAnomalyMonitor: instance GHC.Generics.Generic Amazonka.CostExplorer.UpdateAnomalyMonitor.UpdateAnomalyMonitor
+ Amazonka.CostExplorer.UpdateAnomalyMonitor: instance GHC.Generics.Generic Amazonka.CostExplorer.UpdateAnomalyMonitor.UpdateAnomalyMonitorResponse
+ Amazonka.CostExplorer.UpdateAnomalyMonitor: instance GHC.Read.Read Amazonka.CostExplorer.UpdateAnomalyMonitor.UpdateAnomalyMonitor
+ Amazonka.CostExplorer.UpdateAnomalyMonitor: instance GHC.Read.Read Amazonka.CostExplorer.UpdateAnomalyMonitor.UpdateAnomalyMonitorResponse
+ Amazonka.CostExplorer.UpdateAnomalyMonitor: instance GHC.Show.Show Amazonka.CostExplorer.UpdateAnomalyMonitor.UpdateAnomalyMonitor
+ Amazonka.CostExplorer.UpdateAnomalyMonitor: instance GHC.Show.Show Amazonka.CostExplorer.UpdateAnomalyMonitor.UpdateAnomalyMonitorResponse
+ Amazonka.CostExplorer.UpdateAnomalyMonitor: newUpdateAnomalyMonitor :: Text -> UpdateAnomalyMonitor
+ Amazonka.CostExplorer.UpdateAnomalyMonitor: newUpdateAnomalyMonitorResponse :: Int -> Text -> UpdateAnomalyMonitorResponse
+ Amazonka.CostExplorer.UpdateAnomalyMonitor: updateAnomalyMonitorResponse_httpStatus :: Lens' UpdateAnomalyMonitorResponse Int
+ Amazonka.CostExplorer.UpdateAnomalyMonitor: updateAnomalyMonitorResponse_monitorArn :: Lens' UpdateAnomalyMonitorResponse Text
+ Amazonka.CostExplorer.UpdateAnomalyMonitor: updateAnomalyMonitor_monitorArn :: Lens' UpdateAnomalyMonitor Text
+ Amazonka.CostExplorer.UpdateAnomalyMonitor: updateAnomalyMonitor_monitorName :: Lens' UpdateAnomalyMonitor (Maybe Text)
+ Amazonka.CostExplorer.UpdateAnomalySubscription: UpdateAnomalySubscription' :: Maybe AnomalySubscriptionFrequency -> Maybe [Text] -> Maybe [Subscriber] -> Maybe Text -> Maybe Double -> Maybe Expression -> Text -> UpdateAnomalySubscription
+ Amazonka.CostExplorer.UpdateAnomalySubscription: UpdateAnomalySubscriptionResponse' :: Int -> Text -> UpdateAnomalySubscriptionResponse
+ Amazonka.CostExplorer.UpdateAnomalySubscription: [$sel:frequency:UpdateAnomalySubscription'] :: UpdateAnomalySubscription -> Maybe AnomalySubscriptionFrequency
+ Amazonka.CostExplorer.UpdateAnomalySubscription: [$sel:httpStatus:UpdateAnomalySubscriptionResponse'] :: UpdateAnomalySubscriptionResponse -> Int
+ Amazonka.CostExplorer.UpdateAnomalySubscription: [$sel:monitorArnList:UpdateAnomalySubscription'] :: UpdateAnomalySubscription -> Maybe [Text]
+ Amazonka.CostExplorer.UpdateAnomalySubscription: [$sel:subscribers:UpdateAnomalySubscription'] :: UpdateAnomalySubscription -> Maybe [Subscriber]
+ Amazonka.CostExplorer.UpdateAnomalySubscription: [$sel:subscriptionArn:UpdateAnomalySubscription'] :: UpdateAnomalySubscription -> Text
+ Amazonka.CostExplorer.UpdateAnomalySubscription: [$sel:subscriptionArn:UpdateAnomalySubscriptionResponse'] :: UpdateAnomalySubscriptionResponse -> Text
+ Amazonka.CostExplorer.UpdateAnomalySubscription: [$sel:subscriptionName:UpdateAnomalySubscription'] :: UpdateAnomalySubscription -> Maybe Text
+ Amazonka.CostExplorer.UpdateAnomalySubscription: [$sel:threshold:UpdateAnomalySubscription'] :: UpdateAnomalySubscription -> Maybe Double
+ Amazonka.CostExplorer.UpdateAnomalySubscription: [$sel:thresholdExpression:UpdateAnomalySubscription'] :: UpdateAnomalySubscription -> Maybe Expression
+ Amazonka.CostExplorer.UpdateAnomalySubscription: data UpdateAnomalySubscription
+ Amazonka.CostExplorer.UpdateAnomalySubscription: data UpdateAnomalySubscriptionResponse
+ Amazonka.CostExplorer.UpdateAnomalySubscription: instance Amazonka.Data.Headers.ToHeaders Amazonka.CostExplorer.UpdateAnomalySubscription.UpdateAnomalySubscription
+ Amazonka.CostExplorer.UpdateAnomalySubscription: instance Amazonka.Data.Path.ToPath Amazonka.CostExplorer.UpdateAnomalySubscription.UpdateAnomalySubscription
+ Amazonka.CostExplorer.UpdateAnomalySubscription: instance Amazonka.Data.Query.ToQuery Amazonka.CostExplorer.UpdateAnomalySubscription.UpdateAnomalySubscription
+ Amazonka.CostExplorer.UpdateAnomalySubscription: instance Amazonka.Types.AWSRequest Amazonka.CostExplorer.UpdateAnomalySubscription.UpdateAnomalySubscription
+ Amazonka.CostExplorer.UpdateAnomalySubscription: instance Control.DeepSeq.NFData Amazonka.CostExplorer.UpdateAnomalySubscription.UpdateAnomalySubscription
+ Amazonka.CostExplorer.UpdateAnomalySubscription: instance Control.DeepSeq.NFData Amazonka.CostExplorer.UpdateAnomalySubscription.UpdateAnomalySubscriptionResponse
+ Amazonka.CostExplorer.UpdateAnomalySubscription: instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.CostExplorer.UpdateAnomalySubscription.UpdateAnomalySubscription
+ Amazonka.CostExplorer.UpdateAnomalySubscription: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.UpdateAnomalySubscription.UpdateAnomalySubscription
+ Amazonka.CostExplorer.UpdateAnomalySubscription: instance GHC.Classes.Eq Amazonka.CostExplorer.UpdateAnomalySubscription.UpdateAnomalySubscription
+ Amazonka.CostExplorer.UpdateAnomalySubscription: instance GHC.Classes.Eq Amazonka.CostExplorer.UpdateAnomalySubscription.UpdateAnomalySubscriptionResponse
+ Amazonka.CostExplorer.UpdateAnomalySubscription: instance GHC.Generics.Generic Amazonka.CostExplorer.UpdateAnomalySubscription.UpdateAnomalySubscription
+ Amazonka.CostExplorer.UpdateAnomalySubscription: instance GHC.Generics.Generic Amazonka.CostExplorer.UpdateAnomalySubscription.UpdateAnomalySubscriptionResponse
+ Amazonka.CostExplorer.UpdateAnomalySubscription: instance GHC.Read.Read Amazonka.CostExplorer.UpdateAnomalySubscription.UpdateAnomalySubscription
+ Amazonka.CostExplorer.UpdateAnomalySubscription: instance GHC.Read.Read Amazonka.CostExplorer.UpdateAnomalySubscription.UpdateAnomalySubscriptionResponse
+ Amazonka.CostExplorer.UpdateAnomalySubscription: instance GHC.Show.Show Amazonka.CostExplorer.UpdateAnomalySubscription.UpdateAnomalySubscription
+ Amazonka.CostExplorer.UpdateAnomalySubscription: instance GHC.Show.Show Amazonka.CostExplorer.UpdateAnomalySubscription.UpdateAnomalySubscriptionResponse
+ Amazonka.CostExplorer.UpdateAnomalySubscription: newUpdateAnomalySubscription :: Text -> UpdateAnomalySubscription
+ Amazonka.CostExplorer.UpdateAnomalySubscription: newUpdateAnomalySubscriptionResponse :: Int -> Text -> UpdateAnomalySubscriptionResponse
+ Amazonka.CostExplorer.UpdateAnomalySubscription: updateAnomalySubscriptionResponse_httpStatus :: Lens' UpdateAnomalySubscriptionResponse Int
+ Amazonka.CostExplorer.UpdateAnomalySubscription: updateAnomalySubscriptionResponse_subscriptionArn :: Lens' UpdateAnomalySubscriptionResponse Text
+ Amazonka.CostExplorer.UpdateAnomalySubscription: updateAnomalySubscription_frequency :: Lens' UpdateAnomalySubscription (Maybe AnomalySubscriptionFrequency)
+ Amazonka.CostExplorer.UpdateAnomalySubscription: updateAnomalySubscription_monitorArnList :: Lens' UpdateAnomalySubscription (Maybe [Text])
+ Amazonka.CostExplorer.UpdateAnomalySubscription: updateAnomalySubscription_subscribers :: Lens' UpdateAnomalySubscription (Maybe [Subscriber])
+ Amazonka.CostExplorer.UpdateAnomalySubscription: updateAnomalySubscription_subscriptionArn :: Lens' UpdateAnomalySubscription Text
+ Amazonka.CostExplorer.UpdateAnomalySubscription: updateAnomalySubscription_subscriptionName :: Lens' UpdateAnomalySubscription (Maybe Text)
+ Amazonka.CostExplorer.UpdateAnomalySubscription: updateAnomalySubscription_threshold :: Lens' UpdateAnomalySubscription (Maybe Double)
+ Amazonka.CostExplorer.UpdateAnomalySubscription: updateAnomalySubscription_thresholdExpression :: Lens' UpdateAnomalySubscription (Maybe Expression)
+ Amazonka.CostExplorer.UpdateCostAllocationTagsStatus: UpdateCostAllocationTagsStatus' :: NonEmpty CostAllocationTagStatusEntry -> UpdateCostAllocationTagsStatus
+ Amazonka.CostExplorer.UpdateCostAllocationTagsStatus: UpdateCostAllocationTagsStatusResponse' :: Maybe [UpdateCostAllocationTagsStatusError] -> Int -> UpdateCostAllocationTagsStatusResponse
+ Amazonka.CostExplorer.UpdateCostAllocationTagsStatus: [$sel:costAllocationTagsStatus:UpdateCostAllocationTagsStatus'] :: UpdateCostAllocationTagsStatus -> NonEmpty CostAllocationTagStatusEntry
+ Amazonka.CostExplorer.UpdateCostAllocationTagsStatus: [$sel:errors:UpdateCostAllocationTagsStatusResponse'] :: UpdateCostAllocationTagsStatusResponse -> Maybe [UpdateCostAllocationTagsStatusError]
+ Amazonka.CostExplorer.UpdateCostAllocationTagsStatus: [$sel:httpStatus:UpdateCostAllocationTagsStatusResponse'] :: UpdateCostAllocationTagsStatusResponse -> Int
+ Amazonka.CostExplorer.UpdateCostAllocationTagsStatus: data UpdateCostAllocationTagsStatus
+ Amazonka.CostExplorer.UpdateCostAllocationTagsStatus: data UpdateCostAllocationTagsStatusResponse
+ Amazonka.CostExplorer.UpdateCostAllocationTagsStatus: instance Amazonka.Data.Headers.ToHeaders Amazonka.CostExplorer.UpdateCostAllocationTagsStatus.UpdateCostAllocationTagsStatus
+ Amazonka.CostExplorer.UpdateCostAllocationTagsStatus: instance Amazonka.Data.Path.ToPath Amazonka.CostExplorer.UpdateCostAllocationTagsStatus.UpdateCostAllocationTagsStatus
+ Amazonka.CostExplorer.UpdateCostAllocationTagsStatus: instance Amazonka.Data.Query.ToQuery Amazonka.CostExplorer.UpdateCostAllocationTagsStatus.UpdateCostAllocationTagsStatus
+ Amazonka.CostExplorer.UpdateCostAllocationTagsStatus: instance Amazonka.Types.AWSRequest Amazonka.CostExplorer.UpdateCostAllocationTagsStatus.UpdateCostAllocationTagsStatus
+ Amazonka.CostExplorer.UpdateCostAllocationTagsStatus: instance Control.DeepSeq.NFData Amazonka.CostExplorer.UpdateCostAllocationTagsStatus.UpdateCostAllocationTagsStatus
+ Amazonka.CostExplorer.UpdateCostAllocationTagsStatus: instance Control.DeepSeq.NFData Amazonka.CostExplorer.UpdateCostAllocationTagsStatus.UpdateCostAllocationTagsStatusResponse
+ Amazonka.CostExplorer.UpdateCostAllocationTagsStatus: instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.CostExplorer.UpdateCostAllocationTagsStatus.UpdateCostAllocationTagsStatus
+ Amazonka.CostExplorer.UpdateCostAllocationTagsStatus: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.UpdateCostAllocationTagsStatus.UpdateCostAllocationTagsStatus
+ Amazonka.CostExplorer.UpdateCostAllocationTagsStatus: instance GHC.Classes.Eq Amazonka.CostExplorer.UpdateCostAllocationTagsStatus.UpdateCostAllocationTagsStatus
+ Amazonka.CostExplorer.UpdateCostAllocationTagsStatus: instance GHC.Classes.Eq Amazonka.CostExplorer.UpdateCostAllocationTagsStatus.UpdateCostAllocationTagsStatusResponse
+ Amazonka.CostExplorer.UpdateCostAllocationTagsStatus: instance GHC.Generics.Generic Amazonka.CostExplorer.UpdateCostAllocationTagsStatus.UpdateCostAllocationTagsStatus
+ Amazonka.CostExplorer.UpdateCostAllocationTagsStatus: instance GHC.Generics.Generic Amazonka.CostExplorer.UpdateCostAllocationTagsStatus.UpdateCostAllocationTagsStatusResponse
+ Amazonka.CostExplorer.UpdateCostAllocationTagsStatus: instance GHC.Read.Read Amazonka.CostExplorer.UpdateCostAllocationTagsStatus.UpdateCostAllocationTagsStatus
+ Amazonka.CostExplorer.UpdateCostAllocationTagsStatus: instance GHC.Read.Read Amazonka.CostExplorer.UpdateCostAllocationTagsStatus.UpdateCostAllocationTagsStatusResponse
+ Amazonka.CostExplorer.UpdateCostAllocationTagsStatus: instance GHC.Show.Show Amazonka.CostExplorer.UpdateCostAllocationTagsStatus.UpdateCostAllocationTagsStatus
+ Amazonka.CostExplorer.UpdateCostAllocationTagsStatus: instance GHC.Show.Show Amazonka.CostExplorer.UpdateCostAllocationTagsStatus.UpdateCostAllocationTagsStatusResponse
+ Amazonka.CostExplorer.UpdateCostAllocationTagsStatus: newUpdateCostAllocationTagsStatus :: NonEmpty CostAllocationTagStatusEntry -> UpdateCostAllocationTagsStatus
+ Amazonka.CostExplorer.UpdateCostAllocationTagsStatus: newUpdateCostAllocationTagsStatusResponse :: Int -> UpdateCostAllocationTagsStatusResponse
+ Amazonka.CostExplorer.UpdateCostAllocationTagsStatus: updateCostAllocationTagsStatusResponse_errors :: Lens' UpdateCostAllocationTagsStatusResponse (Maybe [UpdateCostAllocationTagsStatusError])
+ Amazonka.CostExplorer.UpdateCostAllocationTagsStatus: updateCostAllocationTagsStatusResponse_httpStatus :: Lens' UpdateCostAllocationTagsStatusResponse Int
+ Amazonka.CostExplorer.UpdateCostAllocationTagsStatus: updateCostAllocationTagsStatus_costAllocationTagsStatus :: Lens' UpdateCostAllocationTagsStatus (NonEmpty CostAllocationTagStatusEntry)
+ Amazonka.CostExplorer.UpdateCostCategoryDefinition: UpdateCostCategoryDefinition' :: Maybe Text -> Maybe Text -> Maybe (NonEmpty CostCategorySplitChargeRule) -> Text -> CostCategoryRuleVersion -> NonEmpty CostCategoryRule -> UpdateCostCategoryDefinition
+ Amazonka.CostExplorer.UpdateCostCategoryDefinition: UpdateCostCategoryDefinitionResponse' :: Maybe Text -> Maybe Text -> Int -> UpdateCostCategoryDefinitionResponse
+ Amazonka.CostExplorer.UpdateCostCategoryDefinition: [$sel:costCategoryArn:UpdateCostCategoryDefinition'] :: UpdateCostCategoryDefinition -> Text
+ Amazonka.CostExplorer.UpdateCostCategoryDefinition: [$sel:costCategoryArn:UpdateCostCategoryDefinitionResponse'] :: UpdateCostCategoryDefinitionResponse -> Maybe Text
+ Amazonka.CostExplorer.UpdateCostCategoryDefinition: [$sel:defaultValue:UpdateCostCategoryDefinition'] :: UpdateCostCategoryDefinition -> Maybe Text
+ Amazonka.CostExplorer.UpdateCostCategoryDefinition: [$sel:effectiveStart:UpdateCostCategoryDefinition'] :: UpdateCostCategoryDefinition -> Maybe Text
+ Amazonka.CostExplorer.UpdateCostCategoryDefinition: [$sel:effectiveStart:UpdateCostCategoryDefinitionResponse'] :: UpdateCostCategoryDefinitionResponse -> Maybe Text
+ Amazonka.CostExplorer.UpdateCostCategoryDefinition: [$sel:httpStatus:UpdateCostCategoryDefinitionResponse'] :: UpdateCostCategoryDefinitionResponse -> Int
+ Amazonka.CostExplorer.UpdateCostCategoryDefinition: [$sel:ruleVersion:UpdateCostCategoryDefinition'] :: UpdateCostCategoryDefinition -> CostCategoryRuleVersion
+ Amazonka.CostExplorer.UpdateCostCategoryDefinition: [$sel:rules:UpdateCostCategoryDefinition'] :: UpdateCostCategoryDefinition -> NonEmpty CostCategoryRule
+ Amazonka.CostExplorer.UpdateCostCategoryDefinition: [$sel:splitChargeRules:UpdateCostCategoryDefinition'] :: UpdateCostCategoryDefinition -> Maybe (NonEmpty CostCategorySplitChargeRule)
+ Amazonka.CostExplorer.UpdateCostCategoryDefinition: data UpdateCostCategoryDefinition
+ Amazonka.CostExplorer.UpdateCostCategoryDefinition: data UpdateCostCategoryDefinitionResponse
+ Amazonka.CostExplorer.UpdateCostCategoryDefinition: instance Amazonka.Data.Headers.ToHeaders Amazonka.CostExplorer.UpdateCostCategoryDefinition.UpdateCostCategoryDefinition
+ Amazonka.CostExplorer.UpdateCostCategoryDefinition: instance Amazonka.Data.Path.ToPath Amazonka.CostExplorer.UpdateCostCategoryDefinition.UpdateCostCategoryDefinition
+ Amazonka.CostExplorer.UpdateCostCategoryDefinition: instance Amazonka.Data.Query.ToQuery Amazonka.CostExplorer.UpdateCostCategoryDefinition.UpdateCostCategoryDefinition
+ Amazonka.CostExplorer.UpdateCostCategoryDefinition: instance Amazonka.Types.AWSRequest Amazonka.CostExplorer.UpdateCostCategoryDefinition.UpdateCostCategoryDefinition
+ Amazonka.CostExplorer.UpdateCostCategoryDefinition: instance Control.DeepSeq.NFData Amazonka.CostExplorer.UpdateCostCategoryDefinition.UpdateCostCategoryDefinition
+ Amazonka.CostExplorer.UpdateCostCategoryDefinition: instance Control.DeepSeq.NFData Amazonka.CostExplorer.UpdateCostCategoryDefinition.UpdateCostCategoryDefinitionResponse
+ Amazonka.CostExplorer.UpdateCostCategoryDefinition: instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.CostExplorer.UpdateCostCategoryDefinition.UpdateCostCategoryDefinition
+ Amazonka.CostExplorer.UpdateCostCategoryDefinition: instance Data.Hashable.Class.Hashable Amazonka.CostExplorer.UpdateCostCategoryDefinition.UpdateCostCategoryDefinition
+ Amazonka.CostExplorer.UpdateCostCategoryDefinition: instance GHC.Classes.Eq Amazonka.CostExplorer.UpdateCostCategoryDefinition.UpdateCostCategoryDefinition
+ Amazonka.CostExplorer.UpdateCostCategoryDefinition: instance GHC.Classes.Eq Amazonka.CostExplorer.UpdateCostCategoryDefinition.UpdateCostCategoryDefinitionResponse
+ Amazonka.CostExplorer.UpdateCostCategoryDefinition: instance GHC.Generics.Generic Amazonka.CostExplorer.UpdateCostCategoryDefinition.UpdateCostCategoryDefinition
+ Amazonka.CostExplorer.UpdateCostCategoryDefinition: instance GHC.Generics.Generic Amazonka.CostExplorer.UpdateCostCategoryDefinition.UpdateCostCategoryDefinitionResponse
+ Amazonka.CostExplorer.UpdateCostCategoryDefinition: instance GHC.Read.Read Amazonka.CostExplorer.UpdateCostCategoryDefinition.UpdateCostCategoryDefinition
+ Amazonka.CostExplorer.UpdateCostCategoryDefinition: instance GHC.Read.Read Amazonka.CostExplorer.UpdateCostCategoryDefinition.UpdateCostCategoryDefinitionResponse
+ Amazonka.CostExplorer.UpdateCostCategoryDefinition: instance GHC.Show.Show Amazonka.CostExplorer.UpdateCostCategoryDefinition.UpdateCostCategoryDefinition
+ Amazonka.CostExplorer.UpdateCostCategoryDefinition: instance GHC.Show.Show Amazonka.CostExplorer.UpdateCostCategoryDefinition.UpdateCostCategoryDefinitionResponse
+ Amazonka.CostExplorer.UpdateCostCategoryDefinition: newUpdateCostCategoryDefinition :: Text -> CostCategoryRuleVersion -> NonEmpty CostCategoryRule -> UpdateCostCategoryDefinition
+ Amazonka.CostExplorer.UpdateCostCategoryDefinition: newUpdateCostCategoryDefinitionResponse :: Int -> UpdateCostCategoryDefinitionResponse
+ Amazonka.CostExplorer.UpdateCostCategoryDefinition: updateCostCategoryDefinitionResponse_costCategoryArn :: Lens' UpdateCostCategoryDefinitionResponse (Maybe Text)
+ Amazonka.CostExplorer.UpdateCostCategoryDefinition: updateCostCategoryDefinitionResponse_effectiveStart :: Lens' UpdateCostCategoryDefinitionResponse (Maybe Text)
+ Amazonka.CostExplorer.UpdateCostCategoryDefinition: updateCostCategoryDefinitionResponse_httpStatus :: Lens' UpdateCostCategoryDefinitionResponse Int
+ Amazonka.CostExplorer.UpdateCostCategoryDefinition: updateCostCategoryDefinition_costCategoryArn :: Lens' UpdateCostCategoryDefinition Text
+ Amazonka.CostExplorer.UpdateCostCategoryDefinition: updateCostCategoryDefinition_defaultValue :: Lens' UpdateCostCategoryDefinition (Maybe Text)
+ Amazonka.CostExplorer.UpdateCostCategoryDefinition: updateCostCategoryDefinition_effectiveStart :: Lens' UpdateCostCategoryDefinition (Maybe Text)
+ Amazonka.CostExplorer.UpdateCostCategoryDefinition: updateCostCategoryDefinition_ruleVersion :: Lens' UpdateCostCategoryDefinition CostCategoryRuleVersion
+ Amazonka.CostExplorer.UpdateCostCategoryDefinition: updateCostCategoryDefinition_rules :: Lens' UpdateCostCategoryDefinition (NonEmpty CostCategoryRule)
+ Amazonka.CostExplorer.UpdateCostCategoryDefinition: updateCostCategoryDefinition_splitChargeRules :: Lens' UpdateCostCategoryDefinition (Maybe (NonEmpty CostCategorySplitChargeRule))

Files

README.md view
@@ -7,9 +7,8 @@   ## Version--`1.6.1`-+ +`2.0` - Derived from API version @2017-10-25@ of the AWS service descriptions, licensed under Apache 2.0.  ## Description @@ -26,7 +25,7 @@ The provided lenses should be compatible with any of the major lens libraries [lens](http://hackage.haskell.org/package/lens) or [lens-family-core](http://hackage.haskell.org/package/lens-family-core). -See [Network.AWS.CostExplorer](http://hackage.haskell.org/package/amazonka-cost-explorer/docs/Network-AWS-CostExplorer.html)+See [Amazonka.CostExplorer](http://hackage.haskell.org/package/amazonka-cost-explorer/docs/Amazonka-CostExplorer.html) or [the AWS documentation](https://aws.amazon.com/documentation/) to get started.  
− Setup.hs
@@ -1,2 +0,0 @@-import           Distribution.Simple-main = defaultMain
amazonka-cost-explorer.cabal view
@@ -1,91 +1,237 @@-name:                  amazonka-cost-explorer-version:               1.6.1-synopsis:              Amazon Cost Explorer Service SDK.-homepage:              https://github.com/brendanhay/amazonka-bug-reports:           https://github.com/brendanhay/amazonka/issues-license:               MPL-2.0-license-file:          LICENSE-author:                Brendan Hay-maintainer:            Brendan Hay <brendan.g.hay+amazonka@gmail.com>-copyright:             Copyright (c) 2013-2018 Brendan Hay-category:              Network, AWS, Cloud, Distributed Computing-build-type:            Simple-cabal-version:         >= 1.10-extra-source-files:    README.md fixture/*.yaml fixture/*.proto src/.gitkeep+cabal-version:      2.2+name:               amazonka-cost-explorer+version:            2.0+synopsis:           Amazon Cost Explorer Service SDK.+homepage:           https://github.com/brendanhay/amazonka+bug-reports:        https://github.com/brendanhay/amazonka/issues+license:            MPL-2.0+license-file:       LICENSE+author:             Brendan Hay+maintainer:+  Brendan Hay <brendan.g.hay+amazonka@gmail.com>, Jack Kelly <jack@jackkelly.name>++copyright:          Copyright (c) 2013-2023 Brendan Hay+category:           AWS+build-type:         Simple+extra-source-files:+  fixture/*.proto+  fixture/*.yaml+  README.md+  src/.gitkeep+ description:-    The types from this library are intended to be used with-    <http://hackage.haskell.org/package/amazonka amazonka>, which provides-    mechanisms for specifying AuthN/AuthZ information, sending requests,-    and receiving responses.-    .-    Lenses are used for constructing and manipulating types,-    due to the depth of nesting of AWS types and transparency regarding-    de/serialisation into more palatable Haskell values.-    The provided lenses should be compatible with any of the major lens libraries-    such as <http://hackage.haskell.org/package/lens lens> or-    <http://hackage.haskell.org/package/lens-family-core lens-family-core>.-    .-    See "Network.AWS.CostExplorer" or <https://aws.amazon.com/documentation/ the AWS documentation>-    to get started.+  Derived from API version @2017-10-25@ of the AWS service descriptions, licensed under Apache 2.0.+  .+  The types from this library are intended to be used with <http://hackage.haskell.org/package/amazonka amazonka>,+  which provides mechanisms for specifying AuthN/AuthZ information, sending requests, and receiving responses.+  .+  It is recommended to use generic lenses or optics from packages such as <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify optional fields and deconstruct responses.+  .+  Generated lenses can be found in "Amazonka.CostExplorer.Lens" and are+  suitable for use with a lens package such as <http://hackage.haskell.org/package/lens lens> or <http://hackage.haskell.org/package/lens-family-core lens-family-core>.+  .+  See "Amazonka.CostExplorer" and the <https://aws.amazon.com/documentation/ AWS documentation> to get started.  source-repository head-    type:              git-    location:          git://github.com/brendanhay/amazonka.git-    subdir:            amazonka-cost-explorer+  type:     git+  location: git://github.com/brendanhay/amazonka.git+  subdir:   amazonka-cost-explorer  library-    default-language:  Haskell2010-    hs-source-dirs:    src gen--    ghc-options:-        -Wall-        -fwarn-incomplete-uni-patterns-        -fwarn-incomplete-record-updates-        -funbox-strict-fields--    exposed-modules:-          Network.AWS.CostExplorer-        , Network.AWS.CostExplorer.GetCostAndUsage-        , Network.AWS.CostExplorer.GetDimensionValues-        , Network.AWS.CostExplorer.GetReservationCoverage-        , Network.AWS.CostExplorer.GetReservationPurchaseRecommendation-        , Network.AWS.CostExplorer.GetReservationUtilization-        , Network.AWS.CostExplorer.GetTags-        , Network.AWS.CostExplorer.Types-        , Network.AWS.CostExplorer.Waiters+  default-language: Haskell2010+  hs-source-dirs:   src gen+  ghc-options:+    -Wall -fwarn-incomplete-uni-patterns+    -fwarn-incomplete-record-updates -funbox-strict-fields -    other-modules:-          Network.AWS.CostExplorer.Types.Product-        , Network.AWS.CostExplorer.Types.Sum+  exposed-modules:+    Amazonka.CostExplorer+    Amazonka.CostExplorer.CreateAnomalyMonitor+    Amazonka.CostExplorer.CreateAnomalySubscription+    Amazonka.CostExplorer.CreateCostCategoryDefinition+    Amazonka.CostExplorer.DeleteAnomalyMonitor+    Amazonka.CostExplorer.DeleteAnomalySubscription+    Amazonka.CostExplorer.DeleteCostCategoryDefinition+    Amazonka.CostExplorer.DescribeCostCategoryDefinition+    Amazonka.CostExplorer.GetAnomalies+    Amazonka.CostExplorer.GetAnomalyMonitors+    Amazonka.CostExplorer.GetAnomalySubscriptions+    Amazonka.CostExplorer.GetCostAndUsage+    Amazonka.CostExplorer.GetCostAndUsageWithResources+    Amazonka.CostExplorer.GetCostCategories+    Amazonka.CostExplorer.GetCostForecast+    Amazonka.CostExplorer.GetDimensionValues+    Amazonka.CostExplorer.GetReservationCoverage+    Amazonka.CostExplorer.GetReservationPurchaseRecommendation+    Amazonka.CostExplorer.GetReservationUtilization+    Amazonka.CostExplorer.GetRightsizingRecommendation+    Amazonka.CostExplorer.GetSavingsPlansCoverage+    Amazonka.CostExplorer.GetSavingsPlansPurchaseRecommendation+    Amazonka.CostExplorer.GetSavingsPlansUtilization+    Amazonka.CostExplorer.GetSavingsPlansUtilizationDetails+    Amazonka.CostExplorer.GetTags+    Amazonka.CostExplorer.GetUsageForecast+    Amazonka.CostExplorer.Lens+    Amazonka.CostExplorer.ListCostAllocationTags+    Amazonka.CostExplorer.ListCostCategoryDefinitions+    Amazonka.CostExplorer.ListSavingsPlansPurchaseRecommendationGeneration+    Amazonka.CostExplorer.ListTagsForResource+    Amazonka.CostExplorer.ProvideAnomalyFeedback+    Amazonka.CostExplorer.StartSavingsPlansPurchaseRecommendationGeneration+    Amazonka.CostExplorer.TagResource+    Amazonka.CostExplorer.Types+    Amazonka.CostExplorer.Types.AccountScope+    Amazonka.CostExplorer.Types.Anomaly+    Amazonka.CostExplorer.Types.AnomalyDateInterval+    Amazonka.CostExplorer.Types.AnomalyFeedbackType+    Amazonka.CostExplorer.Types.AnomalyMonitor+    Amazonka.CostExplorer.Types.AnomalyScore+    Amazonka.CostExplorer.Types.AnomalySubscription+    Amazonka.CostExplorer.Types.AnomalySubscriptionFrequency+    Amazonka.CostExplorer.Types.Context+    Amazonka.CostExplorer.Types.CostAllocationTag+    Amazonka.CostExplorer.Types.CostAllocationTagStatus+    Amazonka.CostExplorer.Types.CostAllocationTagStatusEntry+    Amazonka.CostExplorer.Types.CostAllocationTagType+    Amazonka.CostExplorer.Types.CostCategory+    Amazonka.CostExplorer.Types.CostCategoryInheritedValueDimension+    Amazonka.CostExplorer.Types.CostCategoryInheritedValueDimensionName+    Amazonka.CostExplorer.Types.CostCategoryProcessingStatus+    Amazonka.CostExplorer.Types.CostCategoryReference+    Amazonka.CostExplorer.Types.CostCategoryRule+    Amazonka.CostExplorer.Types.CostCategoryRuleType+    Amazonka.CostExplorer.Types.CostCategoryRuleVersion+    Amazonka.CostExplorer.Types.CostCategorySplitChargeMethod+    Amazonka.CostExplorer.Types.CostCategorySplitChargeRule+    Amazonka.CostExplorer.Types.CostCategorySplitChargeRuleParameter+    Amazonka.CostExplorer.Types.CostCategorySplitChargeRuleParameterType+    Amazonka.CostExplorer.Types.CostCategoryStatus+    Amazonka.CostExplorer.Types.CostCategoryStatusComponent+    Amazonka.CostExplorer.Types.CostCategoryValues+    Amazonka.CostExplorer.Types.Coverage+    Amazonka.CostExplorer.Types.CoverageByTime+    Amazonka.CostExplorer.Types.CoverageCost+    Amazonka.CostExplorer.Types.CoverageHours+    Amazonka.CostExplorer.Types.CoverageNormalizedUnits+    Amazonka.CostExplorer.Types.CurrentInstance+    Amazonka.CostExplorer.Types.DateInterval+    Amazonka.CostExplorer.Types.Dimension+    Amazonka.CostExplorer.Types.DimensionValues+    Amazonka.CostExplorer.Types.DimensionValuesWithAttributes+    Amazonka.CostExplorer.Types.DiskResourceUtilization+    Amazonka.CostExplorer.Types.EBSResourceUtilization+    Amazonka.CostExplorer.Types.EC2InstanceDetails+    Amazonka.CostExplorer.Types.EC2ResourceDetails+    Amazonka.CostExplorer.Types.EC2ResourceUtilization+    Amazonka.CostExplorer.Types.EC2Specification+    Amazonka.CostExplorer.Types.ElastiCacheInstanceDetails+    Amazonka.CostExplorer.Types.ESInstanceDetails+    Amazonka.CostExplorer.Types.Expression+    Amazonka.CostExplorer.Types.FindingReasonCode+    Amazonka.CostExplorer.Types.ForecastResult+    Amazonka.CostExplorer.Types.GenerationStatus+    Amazonka.CostExplorer.Types.GenerationSummary+    Amazonka.CostExplorer.Types.Granularity+    Amazonka.CostExplorer.Types.Group+    Amazonka.CostExplorer.Types.GroupDefinition+    Amazonka.CostExplorer.Types.GroupDefinitionType+    Amazonka.CostExplorer.Types.Impact+    Amazonka.CostExplorer.Types.InstanceDetails+    Amazonka.CostExplorer.Types.LookbackPeriodInDays+    Amazonka.CostExplorer.Types.MatchOption+    Amazonka.CostExplorer.Types.Metric+    Amazonka.CostExplorer.Types.MetricValue+    Amazonka.CostExplorer.Types.ModifyRecommendationDetail+    Amazonka.CostExplorer.Types.MonitorDimension+    Amazonka.CostExplorer.Types.MonitorType+    Amazonka.CostExplorer.Types.NetworkResourceUtilization+    Amazonka.CostExplorer.Types.NumericOperator+    Amazonka.CostExplorer.Types.OfferingClass+    Amazonka.CostExplorer.Types.PaymentOption+    Amazonka.CostExplorer.Types.PlatformDifference+    Amazonka.CostExplorer.Types.RDSInstanceDetails+    Amazonka.CostExplorer.Types.RecommendationTarget+    Amazonka.CostExplorer.Types.RedshiftInstanceDetails+    Amazonka.CostExplorer.Types.ReservationAggregates+    Amazonka.CostExplorer.Types.ReservationCoverageGroup+    Amazonka.CostExplorer.Types.ReservationPurchaseRecommendation+    Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationDetail+    Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationMetadata+    Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationSummary+    Amazonka.CostExplorer.Types.ReservationUtilizationGroup+    Amazonka.CostExplorer.Types.ResourceDetails+    Amazonka.CostExplorer.Types.ResourceTag+    Amazonka.CostExplorer.Types.ResourceUtilization+    Amazonka.CostExplorer.Types.ResultByTime+    Amazonka.CostExplorer.Types.RightsizingRecommendation+    Amazonka.CostExplorer.Types.RightsizingRecommendationConfiguration+    Amazonka.CostExplorer.Types.RightsizingRecommendationMetadata+    Amazonka.CostExplorer.Types.RightsizingRecommendationSummary+    Amazonka.CostExplorer.Types.RightsizingType+    Amazonka.CostExplorer.Types.RootCause+    Amazonka.CostExplorer.Types.SavingsPlansAmortizedCommitment+    Amazonka.CostExplorer.Types.SavingsPlansCoverage+    Amazonka.CostExplorer.Types.SavingsPlansCoverageData+    Amazonka.CostExplorer.Types.SavingsPlansDataType+    Amazonka.CostExplorer.Types.SavingsPlansDetails+    Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendation+    Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationDetail+    Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationMetadata+    Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationSummary+    Amazonka.CostExplorer.Types.SavingsPlansSavings+    Amazonka.CostExplorer.Types.SavingsPlansUtilization+    Amazonka.CostExplorer.Types.SavingsPlansUtilizationAggregates+    Amazonka.CostExplorer.Types.SavingsPlansUtilizationByTime+    Amazonka.CostExplorer.Types.SavingsPlansUtilizationDetail+    Amazonka.CostExplorer.Types.ServiceSpecification+    Amazonka.CostExplorer.Types.SortDefinition+    Amazonka.CostExplorer.Types.SortOrder+    Amazonka.CostExplorer.Types.Subscriber+    Amazonka.CostExplorer.Types.SubscriberStatus+    Amazonka.CostExplorer.Types.SubscriberType+    Amazonka.CostExplorer.Types.SupportedSavingsPlansType+    Amazonka.CostExplorer.Types.TagValues+    Amazonka.CostExplorer.Types.TargetInstance+    Amazonka.CostExplorer.Types.TerminateRecommendationDetail+    Amazonka.CostExplorer.Types.TermInYears+    Amazonka.CostExplorer.Types.TotalImpactFilter+    Amazonka.CostExplorer.Types.UpdateCostAllocationTagsStatusError+    Amazonka.CostExplorer.Types.UtilizationByTime+    Amazonka.CostExplorer.UntagResource+    Amazonka.CostExplorer.UpdateAnomalyMonitor+    Amazonka.CostExplorer.UpdateAnomalySubscription+    Amazonka.CostExplorer.UpdateCostAllocationTagsStatus+    Amazonka.CostExplorer.UpdateCostCategoryDefinition+    Amazonka.CostExplorer.Waiters -    build-depends:-          amazonka-core == 1.6.1.*-        , base          >= 4.7     && < 5+  build-depends:+    , amazonka-core  >=2.0  && <2.1+    , base           >=4.12 && <5  test-suite amazonka-cost-explorer-test-    type:              exitcode-stdio-1.0-    default-language:  Haskell2010-    hs-source-dirs:    test-    main-is:           Main.hs--    ghc-options:       -Wall -threaded+  type:             exitcode-stdio-1.0+  default-language: Haskell2010+  hs-source-dirs:   test+  main-is:          Main.hs+  ghc-options:      -Wall -threaded -    -- This section is encoded by the template and any modules added by-    -- hand outside these namespaces will not correctly be added to the-    -- distribution package.-    other-modules:-          Test.AWS.CostExplorer-        , Test.AWS.Gen.CostExplorer-        , Test.AWS.CostExplorer.Internal+  -- This section is encoded by the template and any modules added by+  -- hand outside these namespaces will not correctly be added to the+  -- distribution package.+  other-modules:+    Test.Amazonka.CostExplorer+    Test.Amazonka.CostExplorer.Internal+    Test.Amazonka.Gen.CostExplorer -    build-depends:-          amazonka-core == 1.6.1.*-        , amazonka-test == 1.6.1.*-        , amazonka-cost-explorer-        , base-        , bytestring-        , tasty-        , tasty-hunit-        , text-        , time-        , unordered-containers+  build-depends:+    , amazonka-core           >=2.0 && <2.1+    , amazonka-cost-explorer+    , amazonka-test           >=2.0 && <2.1+    , base+    , bytestring+    , case-insensitive+    , tasty+    , tasty-hunit+    , text+    , time+    , unordered-containers
+ fixture/CreateAnomalyMonitor.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ce/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  ce.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/CreateAnomalyMonitorResponse.proto view
+ fixture/CreateAnomalySubscription.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ce/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  ce.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/CreateAnomalySubscriptionResponse.proto view
+ fixture/CreateCostCategoryDefinition.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ce/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  ce.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/CreateCostCategoryDefinitionResponse.proto view
+ fixture/DeleteAnomalyMonitor.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ce/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  ce.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DeleteAnomalyMonitorResponse.proto view
+ fixture/DeleteAnomalySubscription.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ce/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  ce.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DeleteAnomalySubscriptionResponse.proto view
+ fixture/DeleteCostCategoryDefinition.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ce/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  ce.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DeleteCostCategoryDefinitionResponse.proto view
+ fixture/DescribeCostCategoryDefinition.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ce/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  ce.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DescribeCostCategoryDefinitionResponse.proto view
+ fixture/GetAnomalies.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ce/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  ce.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/GetAnomaliesResponse.proto view
+ fixture/GetAnomalyMonitors.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ce/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  ce.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/GetAnomalyMonitorsResponse.proto view
+ fixture/GetAnomalySubscriptions.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ce/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  ce.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/GetAnomalySubscriptionsResponse.proto view
+ fixture/GetCostAndUsageWithResources.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ce/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  ce.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/GetCostAndUsageWithResourcesResponse.proto view
+ fixture/GetCostCategories.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ce/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  ce.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/GetCostCategoriesResponse.proto view
+ fixture/GetCostForecast.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ce/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  ce.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/GetCostForecastResponse.proto view
+ fixture/GetRightsizingRecommendation.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ce/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  ce.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/GetRightsizingRecommendationResponse.proto view
+ fixture/GetSavingsPlansCoverage.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ce/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  ce.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/GetSavingsPlansCoverageResponse.proto view
+ fixture/GetSavingsPlansPurchaseRecommendation.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ce/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  ce.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/GetSavingsPlansPurchaseRecommendationResponse.proto view
+ fixture/GetSavingsPlansUtilization.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ce/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  ce.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/GetSavingsPlansUtilizationDetails.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ce/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  ce.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/GetSavingsPlansUtilizationDetailsResponse.proto view
+ fixture/GetSavingsPlansUtilizationResponse.proto view
+ fixture/GetUsageForecast.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ce/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  ce.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/GetUsageForecastResponse.proto view
+ fixture/ListCostAllocationTags.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ce/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  ce.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/ListCostAllocationTagsResponse.proto view
+ fixture/ListCostCategoryDefinitions.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ce/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  ce.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/ListCostCategoryDefinitionsResponse.proto view
+ fixture/ListSavingsPlansPurchaseRecommendationGeneration.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ce/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  ce.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/ListSavingsPlansPurchaseRecommendationGenerationResponse.proto view
+ fixture/ListTagsForResource.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ce/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  ce.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/ListTagsForResourceResponse.proto view
+ fixture/ProvideAnomalyFeedback.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ce/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  ce.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/ProvideAnomalyFeedbackResponse.proto view
+ fixture/StartSavingsPlansPurchaseRecommendationGeneration.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ce/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  ce.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/StartSavingsPlansPurchaseRecommendationGenerationResponse.proto view
+ fixture/TagResource.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ce/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  ce.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/TagResourceResponse.proto view
+ fixture/UntagResource.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ce/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  ce.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/UntagResourceResponse.proto view
+ fixture/UpdateAnomalyMonitor.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ce/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  ce.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/UpdateAnomalyMonitorResponse.proto view
+ fixture/UpdateAnomalySubscription.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ce/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  ce.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/UpdateAnomalySubscriptionResponse.proto view
+ fixture/UpdateCostAllocationTagsStatus.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ce/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  ce.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/UpdateCostAllocationTagsStatusResponse.proto view
+ fixture/UpdateCostCategoryDefinition.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/ce/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  ce.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/UpdateCostCategoryDefinitionResponse.proto view
+ gen/Amazonka/CostExplorer.hs view
@@ -0,0 +1,803 @@+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Amazonka.CostExplorer+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Derived from API version @2017-10-25@ of the AWS service descriptions, licensed under Apache 2.0.+--+-- You can use the Cost Explorer API to programmatically query your cost+-- and usage data. You can query for aggregated data such as total monthly+-- costs or total daily usage. You can also query for granular data. This+-- might include the number of daily write operations for Amazon DynamoDB+-- database tables in your production environment.+--+-- Service Endpoint+--+-- The Cost Explorer API provides the following endpoint:+--+-- -   @https:\/\/ce.us-east-1.amazonaws.com@+--+-- For information about the costs that are associated with the Cost+-- Explorer API, see+-- <http://aws.amazon.com/aws-cost-management/pricing/ Amazon Web Services Cost Management Pricing>.+module Amazonka.CostExplorer+  ( -- * Service Configuration+    defaultService,++    -- * Errors+    -- $errors++    -- ** BillExpirationException+    _BillExpirationException,++    -- ** DataUnavailableException+    _DataUnavailableException,++    -- ** GenerationExistsException+    _GenerationExistsException,++    -- ** InvalidNextTokenException+    _InvalidNextTokenException,++    -- ** LimitExceededException+    _LimitExceededException,++    -- ** RequestChangedException+    _RequestChangedException,++    -- ** ResourceNotFoundException+    _ResourceNotFoundException,++    -- ** ServiceQuotaExceededException+    _ServiceQuotaExceededException,++    -- ** TooManyTagsException+    _TooManyTagsException,++    -- ** UnknownMonitorException+    _UnknownMonitorException,++    -- ** UnknownSubscriptionException+    _UnknownSubscriptionException,++    -- ** UnresolvableUsageUnitException+    _UnresolvableUsageUnitException,++    -- * Waiters+    -- $waiters++    -- * Operations+    -- $operations++    -- ** CreateAnomalyMonitor+    CreateAnomalyMonitor (CreateAnomalyMonitor'),+    newCreateAnomalyMonitor,+    CreateAnomalyMonitorResponse (CreateAnomalyMonitorResponse'),+    newCreateAnomalyMonitorResponse,++    -- ** CreateAnomalySubscription+    CreateAnomalySubscription (CreateAnomalySubscription'),+    newCreateAnomalySubscription,+    CreateAnomalySubscriptionResponse (CreateAnomalySubscriptionResponse'),+    newCreateAnomalySubscriptionResponse,++    -- ** CreateCostCategoryDefinition+    CreateCostCategoryDefinition (CreateCostCategoryDefinition'),+    newCreateCostCategoryDefinition,+    CreateCostCategoryDefinitionResponse (CreateCostCategoryDefinitionResponse'),+    newCreateCostCategoryDefinitionResponse,++    -- ** DeleteAnomalyMonitor+    DeleteAnomalyMonitor (DeleteAnomalyMonitor'),+    newDeleteAnomalyMonitor,+    DeleteAnomalyMonitorResponse (DeleteAnomalyMonitorResponse'),+    newDeleteAnomalyMonitorResponse,++    -- ** DeleteAnomalySubscription+    DeleteAnomalySubscription (DeleteAnomalySubscription'),+    newDeleteAnomalySubscription,+    DeleteAnomalySubscriptionResponse (DeleteAnomalySubscriptionResponse'),+    newDeleteAnomalySubscriptionResponse,++    -- ** DeleteCostCategoryDefinition+    DeleteCostCategoryDefinition (DeleteCostCategoryDefinition'),+    newDeleteCostCategoryDefinition,+    DeleteCostCategoryDefinitionResponse (DeleteCostCategoryDefinitionResponse'),+    newDeleteCostCategoryDefinitionResponse,++    -- ** DescribeCostCategoryDefinition+    DescribeCostCategoryDefinition (DescribeCostCategoryDefinition'),+    newDescribeCostCategoryDefinition,+    DescribeCostCategoryDefinitionResponse (DescribeCostCategoryDefinitionResponse'),+    newDescribeCostCategoryDefinitionResponse,++    -- ** GetAnomalies+    GetAnomalies (GetAnomalies'),+    newGetAnomalies,+    GetAnomaliesResponse (GetAnomaliesResponse'),+    newGetAnomaliesResponse,++    -- ** GetAnomalyMonitors+    GetAnomalyMonitors (GetAnomalyMonitors'),+    newGetAnomalyMonitors,+    GetAnomalyMonitorsResponse (GetAnomalyMonitorsResponse'),+    newGetAnomalyMonitorsResponse,++    -- ** GetAnomalySubscriptions+    GetAnomalySubscriptions (GetAnomalySubscriptions'),+    newGetAnomalySubscriptions,+    GetAnomalySubscriptionsResponse (GetAnomalySubscriptionsResponse'),+    newGetAnomalySubscriptionsResponse,++    -- ** GetCostAndUsage+    GetCostAndUsage (GetCostAndUsage'),+    newGetCostAndUsage,+    GetCostAndUsageResponse (GetCostAndUsageResponse'),+    newGetCostAndUsageResponse,++    -- ** GetCostAndUsageWithResources+    GetCostAndUsageWithResources (GetCostAndUsageWithResources'),+    newGetCostAndUsageWithResources,+    GetCostAndUsageWithResourcesResponse (GetCostAndUsageWithResourcesResponse'),+    newGetCostAndUsageWithResourcesResponse,++    -- ** GetCostCategories+    GetCostCategories (GetCostCategories'),+    newGetCostCategories,+    GetCostCategoriesResponse (GetCostCategoriesResponse'),+    newGetCostCategoriesResponse,++    -- ** GetCostForecast+    GetCostForecast (GetCostForecast'),+    newGetCostForecast,+    GetCostForecastResponse (GetCostForecastResponse'),+    newGetCostForecastResponse,++    -- ** GetDimensionValues+    GetDimensionValues (GetDimensionValues'),+    newGetDimensionValues,+    GetDimensionValuesResponse (GetDimensionValuesResponse'),+    newGetDimensionValuesResponse,++    -- ** GetReservationCoverage+    GetReservationCoverage (GetReservationCoverage'),+    newGetReservationCoverage,+    GetReservationCoverageResponse (GetReservationCoverageResponse'),+    newGetReservationCoverageResponse,++    -- ** GetReservationPurchaseRecommendation+    GetReservationPurchaseRecommendation (GetReservationPurchaseRecommendation'),+    newGetReservationPurchaseRecommendation,+    GetReservationPurchaseRecommendationResponse (GetReservationPurchaseRecommendationResponse'),+    newGetReservationPurchaseRecommendationResponse,++    -- ** GetReservationUtilization+    GetReservationUtilization (GetReservationUtilization'),+    newGetReservationUtilization,+    GetReservationUtilizationResponse (GetReservationUtilizationResponse'),+    newGetReservationUtilizationResponse,++    -- ** GetRightsizingRecommendation+    GetRightsizingRecommendation (GetRightsizingRecommendation'),+    newGetRightsizingRecommendation,+    GetRightsizingRecommendationResponse (GetRightsizingRecommendationResponse'),+    newGetRightsizingRecommendationResponse,++    -- ** GetSavingsPlansCoverage+    GetSavingsPlansCoverage (GetSavingsPlansCoverage'),+    newGetSavingsPlansCoverage,+    GetSavingsPlansCoverageResponse (GetSavingsPlansCoverageResponse'),+    newGetSavingsPlansCoverageResponse,++    -- ** GetSavingsPlansPurchaseRecommendation+    GetSavingsPlansPurchaseRecommendation (GetSavingsPlansPurchaseRecommendation'),+    newGetSavingsPlansPurchaseRecommendation,+    GetSavingsPlansPurchaseRecommendationResponse (GetSavingsPlansPurchaseRecommendationResponse'),+    newGetSavingsPlansPurchaseRecommendationResponse,++    -- ** GetSavingsPlansUtilization+    GetSavingsPlansUtilization (GetSavingsPlansUtilization'),+    newGetSavingsPlansUtilization,+    GetSavingsPlansUtilizationResponse (GetSavingsPlansUtilizationResponse'),+    newGetSavingsPlansUtilizationResponse,++    -- ** GetSavingsPlansUtilizationDetails+    GetSavingsPlansUtilizationDetails (GetSavingsPlansUtilizationDetails'),+    newGetSavingsPlansUtilizationDetails,+    GetSavingsPlansUtilizationDetailsResponse (GetSavingsPlansUtilizationDetailsResponse'),+    newGetSavingsPlansUtilizationDetailsResponse,++    -- ** GetTags+    GetTags (GetTags'),+    newGetTags,+    GetTagsResponse (GetTagsResponse'),+    newGetTagsResponse,++    -- ** GetUsageForecast+    GetUsageForecast (GetUsageForecast'),+    newGetUsageForecast,+    GetUsageForecastResponse (GetUsageForecastResponse'),+    newGetUsageForecastResponse,++    -- ** ListCostAllocationTags+    ListCostAllocationTags (ListCostAllocationTags'),+    newListCostAllocationTags,+    ListCostAllocationTagsResponse (ListCostAllocationTagsResponse'),+    newListCostAllocationTagsResponse,++    -- ** ListCostCategoryDefinitions+    ListCostCategoryDefinitions (ListCostCategoryDefinitions'),+    newListCostCategoryDefinitions,+    ListCostCategoryDefinitionsResponse (ListCostCategoryDefinitionsResponse'),+    newListCostCategoryDefinitionsResponse,++    -- ** ListSavingsPlansPurchaseRecommendationGeneration+    ListSavingsPlansPurchaseRecommendationGeneration (ListSavingsPlansPurchaseRecommendationGeneration'),+    newListSavingsPlansPurchaseRecommendationGeneration,+    ListSavingsPlansPurchaseRecommendationGenerationResponse (ListSavingsPlansPurchaseRecommendationGenerationResponse'),+    newListSavingsPlansPurchaseRecommendationGenerationResponse,++    -- ** ListTagsForResource+    ListTagsForResource (ListTagsForResource'),+    newListTagsForResource,+    ListTagsForResourceResponse (ListTagsForResourceResponse'),+    newListTagsForResourceResponse,++    -- ** ProvideAnomalyFeedback+    ProvideAnomalyFeedback (ProvideAnomalyFeedback'),+    newProvideAnomalyFeedback,+    ProvideAnomalyFeedbackResponse (ProvideAnomalyFeedbackResponse'),+    newProvideAnomalyFeedbackResponse,++    -- ** StartSavingsPlansPurchaseRecommendationGeneration+    StartSavingsPlansPurchaseRecommendationGeneration (StartSavingsPlansPurchaseRecommendationGeneration'),+    newStartSavingsPlansPurchaseRecommendationGeneration,+    StartSavingsPlansPurchaseRecommendationGenerationResponse (StartSavingsPlansPurchaseRecommendationGenerationResponse'),+    newStartSavingsPlansPurchaseRecommendationGenerationResponse,++    -- ** TagResource+    TagResource (TagResource'),+    newTagResource,+    TagResourceResponse (TagResourceResponse'),+    newTagResourceResponse,++    -- ** UntagResource+    UntagResource (UntagResource'),+    newUntagResource,+    UntagResourceResponse (UntagResourceResponse'),+    newUntagResourceResponse,++    -- ** UpdateAnomalyMonitor+    UpdateAnomalyMonitor (UpdateAnomalyMonitor'),+    newUpdateAnomalyMonitor,+    UpdateAnomalyMonitorResponse (UpdateAnomalyMonitorResponse'),+    newUpdateAnomalyMonitorResponse,++    -- ** UpdateAnomalySubscription+    UpdateAnomalySubscription (UpdateAnomalySubscription'),+    newUpdateAnomalySubscription,+    UpdateAnomalySubscriptionResponse (UpdateAnomalySubscriptionResponse'),+    newUpdateAnomalySubscriptionResponse,++    -- ** UpdateCostAllocationTagsStatus+    UpdateCostAllocationTagsStatus (UpdateCostAllocationTagsStatus'),+    newUpdateCostAllocationTagsStatus,+    UpdateCostAllocationTagsStatusResponse (UpdateCostAllocationTagsStatusResponse'),+    newUpdateCostAllocationTagsStatusResponse,++    -- ** UpdateCostCategoryDefinition+    UpdateCostCategoryDefinition (UpdateCostCategoryDefinition'),+    newUpdateCostCategoryDefinition,+    UpdateCostCategoryDefinitionResponse (UpdateCostCategoryDefinitionResponse'),+    newUpdateCostCategoryDefinitionResponse,++    -- * Types++    -- ** AccountScope+    AccountScope (..),++    -- ** AnomalyFeedbackType+    AnomalyFeedbackType (..),++    -- ** AnomalySubscriptionFrequency+    AnomalySubscriptionFrequency (..),++    -- ** Context+    Context (..),++    -- ** CostAllocationTagStatus+    CostAllocationTagStatus (..),++    -- ** CostAllocationTagType+    CostAllocationTagType (..),++    -- ** CostCategoryInheritedValueDimensionName+    CostCategoryInheritedValueDimensionName (..),++    -- ** CostCategoryRuleType+    CostCategoryRuleType (..),++    -- ** CostCategoryRuleVersion+    CostCategoryRuleVersion (..),++    -- ** CostCategorySplitChargeMethod+    CostCategorySplitChargeMethod (..),++    -- ** CostCategorySplitChargeRuleParameterType+    CostCategorySplitChargeRuleParameterType (..),++    -- ** CostCategoryStatus+    CostCategoryStatus (..),++    -- ** CostCategoryStatusComponent+    CostCategoryStatusComponent (..),++    -- ** Dimension+    Dimension (..),++    -- ** FindingReasonCode+    FindingReasonCode (..),++    -- ** GenerationStatus+    GenerationStatus (..),++    -- ** Granularity+    Granularity (..),++    -- ** GroupDefinitionType+    GroupDefinitionType (..),++    -- ** LookbackPeriodInDays+    LookbackPeriodInDays (..),++    -- ** MatchOption+    MatchOption (..),++    -- ** Metric+    Metric (..),++    -- ** MonitorDimension+    MonitorDimension (..),++    -- ** MonitorType+    MonitorType (..),++    -- ** NumericOperator+    NumericOperator (..),++    -- ** OfferingClass+    OfferingClass (..),++    -- ** PaymentOption+    PaymentOption (..),++    -- ** PlatformDifference+    PlatformDifference (..),++    -- ** RecommendationTarget+    RecommendationTarget (..),++    -- ** RightsizingType+    RightsizingType (..),++    -- ** SavingsPlansDataType+    SavingsPlansDataType (..),++    -- ** SortOrder+    SortOrder (..),++    -- ** SubscriberStatus+    SubscriberStatus (..),++    -- ** SubscriberType+    SubscriberType (..),++    -- ** SupportedSavingsPlansType+    SupportedSavingsPlansType (..),++    -- ** TermInYears+    TermInYears (..),++    -- ** Anomaly+    Anomaly (Anomaly'),+    newAnomaly,++    -- ** AnomalyDateInterval+    AnomalyDateInterval (AnomalyDateInterval'),+    newAnomalyDateInterval,++    -- ** AnomalyMonitor+    AnomalyMonitor (AnomalyMonitor'),+    newAnomalyMonitor,++    -- ** AnomalyScore+    AnomalyScore (AnomalyScore'),+    newAnomalyScore,++    -- ** AnomalySubscription+    AnomalySubscription (AnomalySubscription'),+    newAnomalySubscription,++    -- ** CostAllocationTag+    CostAllocationTag (CostAllocationTag'),+    newCostAllocationTag,++    -- ** CostAllocationTagStatusEntry+    CostAllocationTagStatusEntry (CostAllocationTagStatusEntry'),+    newCostAllocationTagStatusEntry,++    -- ** CostCategory+    CostCategory (CostCategory'),+    newCostCategory,++    -- ** CostCategoryInheritedValueDimension+    CostCategoryInheritedValueDimension (CostCategoryInheritedValueDimension'),+    newCostCategoryInheritedValueDimension,++    -- ** CostCategoryProcessingStatus+    CostCategoryProcessingStatus (CostCategoryProcessingStatus'),+    newCostCategoryProcessingStatus,++    -- ** CostCategoryReference+    CostCategoryReference (CostCategoryReference'),+    newCostCategoryReference,++    -- ** CostCategoryRule+    CostCategoryRule (CostCategoryRule'),+    newCostCategoryRule,++    -- ** CostCategorySplitChargeRule+    CostCategorySplitChargeRule (CostCategorySplitChargeRule'),+    newCostCategorySplitChargeRule,++    -- ** CostCategorySplitChargeRuleParameter+    CostCategorySplitChargeRuleParameter (CostCategorySplitChargeRuleParameter'),+    newCostCategorySplitChargeRuleParameter,++    -- ** CostCategoryValues+    CostCategoryValues (CostCategoryValues'),+    newCostCategoryValues,++    -- ** Coverage+    Coverage (Coverage'),+    newCoverage,++    -- ** CoverageByTime+    CoverageByTime (CoverageByTime'),+    newCoverageByTime,++    -- ** CoverageCost+    CoverageCost (CoverageCost'),+    newCoverageCost,++    -- ** CoverageHours+    CoverageHours (CoverageHours'),+    newCoverageHours,++    -- ** CoverageNormalizedUnits+    CoverageNormalizedUnits (CoverageNormalizedUnits'),+    newCoverageNormalizedUnits,++    -- ** CurrentInstance+    CurrentInstance (CurrentInstance'),+    newCurrentInstance,++    -- ** DateInterval+    DateInterval (DateInterval'),+    newDateInterval,++    -- ** DimensionValues+    DimensionValues (DimensionValues'),+    newDimensionValues,++    -- ** DimensionValuesWithAttributes+    DimensionValuesWithAttributes (DimensionValuesWithAttributes'),+    newDimensionValuesWithAttributes,++    -- ** DiskResourceUtilization+    DiskResourceUtilization (DiskResourceUtilization'),+    newDiskResourceUtilization,++    -- ** EBSResourceUtilization+    EBSResourceUtilization (EBSResourceUtilization'),+    newEBSResourceUtilization,++    -- ** EC2InstanceDetails+    EC2InstanceDetails (EC2InstanceDetails'),+    newEC2InstanceDetails,++    -- ** EC2ResourceDetails+    EC2ResourceDetails (EC2ResourceDetails'),+    newEC2ResourceDetails,++    -- ** EC2ResourceUtilization+    EC2ResourceUtilization (EC2ResourceUtilization'),+    newEC2ResourceUtilization,++    -- ** EC2Specification+    EC2Specification (EC2Specification'),+    newEC2Specification,++    -- ** ESInstanceDetails+    ESInstanceDetails (ESInstanceDetails'),+    newESInstanceDetails,++    -- ** ElastiCacheInstanceDetails+    ElastiCacheInstanceDetails (ElastiCacheInstanceDetails'),+    newElastiCacheInstanceDetails,++    -- ** Expression+    Expression (Expression'),+    newExpression,++    -- ** ForecastResult+    ForecastResult (ForecastResult'),+    newForecastResult,++    -- ** GenerationSummary+    GenerationSummary (GenerationSummary'),+    newGenerationSummary,++    -- ** Group+    Group (Group'),+    newGroup,++    -- ** GroupDefinition+    GroupDefinition (GroupDefinition'),+    newGroupDefinition,++    -- ** Impact+    Impact (Impact'),+    newImpact,++    -- ** InstanceDetails+    InstanceDetails (InstanceDetails'),+    newInstanceDetails,++    -- ** MetricValue+    MetricValue (MetricValue'),+    newMetricValue,++    -- ** ModifyRecommendationDetail+    ModifyRecommendationDetail (ModifyRecommendationDetail'),+    newModifyRecommendationDetail,++    -- ** NetworkResourceUtilization+    NetworkResourceUtilization (NetworkResourceUtilization'),+    newNetworkResourceUtilization,++    -- ** RDSInstanceDetails+    RDSInstanceDetails (RDSInstanceDetails'),+    newRDSInstanceDetails,++    -- ** RedshiftInstanceDetails+    RedshiftInstanceDetails (RedshiftInstanceDetails'),+    newRedshiftInstanceDetails,++    -- ** ReservationAggregates+    ReservationAggregates (ReservationAggregates'),+    newReservationAggregates,++    -- ** ReservationCoverageGroup+    ReservationCoverageGroup (ReservationCoverageGroup'),+    newReservationCoverageGroup,++    -- ** ReservationPurchaseRecommendation+    ReservationPurchaseRecommendation (ReservationPurchaseRecommendation'),+    newReservationPurchaseRecommendation,++    -- ** ReservationPurchaseRecommendationDetail+    ReservationPurchaseRecommendationDetail (ReservationPurchaseRecommendationDetail'),+    newReservationPurchaseRecommendationDetail,++    -- ** ReservationPurchaseRecommendationMetadata+    ReservationPurchaseRecommendationMetadata (ReservationPurchaseRecommendationMetadata'),+    newReservationPurchaseRecommendationMetadata,++    -- ** ReservationPurchaseRecommendationSummary+    ReservationPurchaseRecommendationSummary (ReservationPurchaseRecommendationSummary'),+    newReservationPurchaseRecommendationSummary,++    -- ** ReservationUtilizationGroup+    ReservationUtilizationGroup (ReservationUtilizationGroup'),+    newReservationUtilizationGroup,++    -- ** ResourceDetails+    ResourceDetails (ResourceDetails'),+    newResourceDetails,++    -- ** ResourceTag+    ResourceTag (ResourceTag'),+    newResourceTag,++    -- ** ResourceUtilization+    ResourceUtilization (ResourceUtilization'),+    newResourceUtilization,++    -- ** ResultByTime+    ResultByTime (ResultByTime'),+    newResultByTime,++    -- ** RightsizingRecommendation+    RightsizingRecommendation (RightsizingRecommendation'),+    newRightsizingRecommendation,++    -- ** RightsizingRecommendationConfiguration+    RightsizingRecommendationConfiguration (RightsizingRecommendationConfiguration'),+    newRightsizingRecommendationConfiguration,++    -- ** RightsizingRecommendationMetadata+    RightsizingRecommendationMetadata (RightsizingRecommendationMetadata'),+    newRightsizingRecommendationMetadata,++    -- ** RightsizingRecommendationSummary+    RightsizingRecommendationSummary (RightsizingRecommendationSummary'),+    newRightsizingRecommendationSummary,++    -- ** RootCause+    RootCause (RootCause'),+    newRootCause,++    -- ** SavingsPlansAmortizedCommitment+    SavingsPlansAmortizedCommitment (SavingsPlansAmortizedCommitment'),+    newSavingsPlansAmortizedCommitment,++    -- ** SavingsPlansCoverage+    SavingsPlansCoverage (SavingsPlansCoverage'),+    newSavingsPlansCoverage,++    -- ** SavingsPlansCoverageData+    SavingsPlansCoverageData (SavingsPlansCoverageData'),+    newSavingsPlansCoverageData,++    -- ** SavingsPlansDetails+    SavingsPlansDetails (SavingsPlansDetails'),+    newSavingsPlansDetails,++    -- ** SavingsPlansPurchaseRecommendation+    SavingsPlansPurchaseRecommendation (SavingsPlansPurchaseRecommendation'),+    newSavingsPlansPurchaseRecommendation,++    -- ** SavingsPlansPurchaseRecommendationDetail+    SavingsPlansPurchaseRecommendationDetail (SavingsPlansPurchaseRecommendationDetail'),+    newSavingsPlansPurchaseRecommendationDetail,++    -- ** SavingsPlansPurchaseRecommendationMetadata+    SavingsPlansPurchaseRecommendationMetadata (SavingsPlansPurchaseRecommendationMetadata'),+    newSavingsPlansPurchaseRecommendationMetadata,++    -- ** SavingsPlansPurchaseRecommendationSummary+    SavingsPlansPurchaseRecommendationSummary (SavingsPlansPurchaseRecommendationSummary'),+    newSavingsPlansPurchaseRecommendationSummary,++    -- ** SavingsPlansSavings+    SavingsPlansSavings (SavingsPlansSavings'),+    newSavingsPlansSavings,++    -- ** SavingsPlansUtilization+    SavingsPlansUtilization (SavingsPlansUtilization'),+    newSavingsPlansUtilization,++    -- ** SavingsPlansUtilizationAggregates+    SavingsPlansUtilizationAggregates (SavingsPlansUtilizationAggregates'),+    newSavingsPlansUtilizationAggregates,++    -- ** SavingsPlansUtilizationByTime+    SavingsPlansUtilizationByTime (SavingsPlansUtilizationByTime'),+    newSavingsPlansUtilizationByTime,++    -- ** SavingsPlansUtilizationDetail+    SavingsPlansUtilizationDetail (SavingsPlansUtilizationDetail'),+    newSavingsPlansUtilizationDetail,++    -- ** ServiceSpecification+    ServiceSpecification (ServiceSpecification'),+    newServiceSpecification,++    -- ** SortDefinition+    SortDefinition (SortDefinition'),+    newSortDefinition,++    -- ** Subscriber+    Subscriber (Subscriber'),+    newSubscriber,++    -- ** TagValues+    TagValues (TagValues'),+    newTagValues,++    -- ** TargetInstance+    TargetInstance (TargetInstance'),+    newTargetInstance,++    -- ** TerminateRecommendationDetail+    TerminateRecommendationDetail (TerminateRecommendationDetail'),+    newTerminateRecommendationDetail,++    -- ** TotalImpactFilter+    TotalImpactFilter (TotalImpactFilter'),+    newTotalImpactFilter,++    -- ** UpdateCostAllocationTagsStatusError+    UpdateCostAllocationTagsStatusError (UpdateCostAllocationTagsStatusError'),+    newUpdateCostAllocationTagsStatusError,++    -- ** UtilizationByTime+    UtilizationByTime (UtilizationByTime'),+    newUtilizationByTime,+  )+where++import Amazonka.CostExplorer.CreateAnomalyMonitor+import Amazonka.CostExplorer.CreateAnomalySubscription+import Amazonka.CostExplorer.CreateCostCategoryDefinition+import Amazonka.CostExplorer.DeleteAnomalyMonitor+import Amazonka.CostExplorer.DeleteAnomalySubscription+import Amazonka.CostExplorer.DeleteCostCategoryDefinition+import Amazonka.CostExplorer.DescribeCostCategoryDefinition+import Amazonka.CostExplorer.GetAnomalies+import Amazonka.CostExplorer.GetAnomalyMonitors+import Amazonka.CostExplorer.GetAnomalySubscriptions+import Amazonka.CostExplorer.GetCostAndUsage+import Amazonka.CostExplorer.GetCostAndUsageWithResources+import Amazonka.CostExplorer.GetCostCategories+import Amazonka.CostExplorer.GetCostForecast+import Amazonka.CostExplorer.GetDimensionValues+import Amazonka.CostExplorer.GetReservationCoverage+import Amazonka.CostExplorer.GetReservationPurchaseRecommendation+import Amazonka.CostExplorer.GetReservationUtilization+import Amazonka.CostExplorer.GetRightsizingRecommendation+import Amazonka.CostExplorer.GetSavingsPlansCoverage+import Amazonka.CostExplorer.GetSavingsPlansPurchaseRecommendation+import Amazonka.CostExplorer.GetSavingsPlansUtilization+import Amazonka.CostExplorer.GetSavingsPlansUtilizationDetails+import Amazonka.CostExplorer.GetTags+import Amazonka.CostExplorer.GetUsageForecast+import Amazonka.CostExplorer.Lens+import Amazonka.CostExplorer.ListCostAllocationTags+import Amazonka.CostExplorer.ListCostCategoryDefinitions+import Amazonka.CostExplorer.ListSavingsPlansPurchaseRecommendationGeneration+import Amazonka.CostExplorer.ListTagsForResource+import Amazonka.CostExplorer.ProvideAnomalyFeedback+import Amazonka.CostExplorer.StartSavingsPlansPurchaseRecommendationGeneration+import Amazonka.CostExplorer.TagResource+import Amazonka.CostExplorer.Types+import Amazonka.CostExplorer.UntagResource+import Amazonka.CostExplorer.UpdateAnomalyMonitor+import Amazonka.CostExplorer.UpdateAnomalySubscription+import Amazonka.CostExplorer.UpdateCostAllocationTagsStatus+import Amazonka.CostExplorer.UpdateCostCategoryDefinition+import Amazonka.CostExplorer.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 'CostExplorer'.++-- $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.
+ gen/Amazonka/CostExplorer/CreateAnomalyMonitor.hs view
@@ -0,0 +1,268 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.CreateAnomalyMonitor+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a new cost anomaly detection monitor with the requested type and+-- monitor specification.+module Amazonka.CostExplorer.CreateAnomalyMonitor+  ( -- * Creating a Request+    CreateAnomalyMonitor (..),+    newCreateAnomalyMonitor,++    -- * Request Lenses+    createAnomalyMonitor_resourceTags,+    createAnomalyMonitor_anomalyMonitor,++    -- * Destructuring the Response+    CreateAnomalyMonitorResponse (..),+    newCreateAnomalyMonitorResponse,++    -- * Response Lenses+    createAnomalyMonitorResponse_httpStatus,+    createAnomalyMonitorResponse_monitorArn,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CostExplorer.Types+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateAnomalyMonitor' smart constructor.+data CreateAnomalyMonitor = CreateAnomalyMonitor'+  { -- | An optional list of tags to associate with the specified+    -- <https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_AnomalyMonitor.html AnomalyMonitor>+    -- . You can use resource tags to control access to your @monitor@ using+    -- IAM policies.+    --+    -- Each tag consists of a key and a value, and each key must be unique for+    -- the resource. The following restrictions apply to resource tags:+    --+    -- -   Although the maximum number of array members is 200, you can assign+    --     a maximum of 50 user-tags to one resource. The remaining are+    --     reserved for Amazon Web Services use+    --+    -- -   The maximum length of a key is 128 characters+    --+    -- -   The maximum length of a value is 256 characters+    --+    -- -   Keys and values can only contain alphanumeric characters, spaces,+    --     and any of the following: @_.:\/=+\@-@+    --+    -- -   Keys and values are case sensitive+    --+    -- -   Keys and values are trimmed for any leading or trailing whitespaces+    --+    -- -   Don’t use @aws:@ as a prefix for your keys. This prefix is reserved+    --     for Amazon Web Services use+    resourceTags :: Prelude.Maybe [ResourceTag],+    -- | The cost anomaly detection monitor object that you want to create.+    anomalyMonitor :: AnomalyMonitor+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateAnomalyMonitor' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'resourceTags', 'createAnomalyMonitor_resourceTags' - An optional list of tags to associate with the specified+-- <https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_AnomalyMonitor.html AnomalyMonitor>+-- . You can use resource tags to control access to your @monitor@ using+-- IAM policies.+--+-- Each tag consists of a key and a value, and each key must be unique for+-- the resource. The following restrictions apply to resource tags:+--+-- -   Although the maximum number of array members is 200, you can assign+--     a maximum of 50 user-tags to one resource. The remaining are+--     reserved for Amazon Web Services use+--+-- -   The maximum length of a key is 128 characters+--+-- -   The maximum length of a value is 256 characters+--+-- -   Keys and values can only contain alphanumeric characters, spaces,+--     and any of the following: @_.:\/=+\@-@+--+-- -   Keys and values are case sensitive+--+-- -   Keys and values are trimmed for any leading or trailing whitespaces+--+-- -   Don’t use @aws:@ as a prefix for your keys. This prefix is reserved+--     for Amazon Web Services use+--+-- 'anomalyMonitor', 'createAnomalyMonitor_anomalyMonitor' - The cost anomaly detection monitor object that you want to create.+newCreateAnomalyMonitor ::+  -- | 'anomalyMonitor'+  AnomalyMonitor ->+  CreateAnomalyMonitor+newCreateAnomalyMonitor pAnomalyMonitor_ =+  CreateAnomalyMonitor'+    { resourceTags =+        Prelude.Nothing,+      anomalyMonitor = pAnomalyMonitor_+    }++-- | An optional list of tags to associate with the specified+-- <https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_AnomalyMonitor.html AnomalyMonitor>+-- . You can use resource tags to control access to your @monitor@ using+-- IAM policies.+--+-- Each tag consists of a key and a value, and each key must be unique for+-- the resource. The following restrictions apply to resource tags:+--+-- -   Although the maximum number of array members is 200, you can assign+--     a maximum of 50 user-tags to one resource. The remaining are+--     reserved for Amazon Web Services use+--+-- -   The maximum length of a key is 128 characters+--+-- -   The maximum length of a value is 256 characters+--+-- -   Keys and values can only contain alphanumeric characters, spaces,+--     and any of the following: @_.:\/=+\@-@+--+-- -   Keys and values are case sensitive+--+-- -   Keys and values are trimmed for any leading or trailing whitespaces+--+-- -   Don’t use @aws:@ as a prefix for your keys. This prefix is reserved+--     for Amazon Web Services use+createAnomalyMonitor_resourceTags :: Lens.Lens' CreateAnomalyMonitor (Prelude.Maybe [ResourceTag])+createAnomalyMonitor_resourceTags = Lens.lens (\CreateAnomalyMonitor' {resourceTags} -> resourceTags) (\s@CreateAnomalyMonitor' {} a -> s {resourceTags = a} :: CreateAnomalyMonitor) Prelude.. Lens.mapping Lens.coerced++-- | The cost anomaly detection monitor object that you want to create.+createAnomalyMonitor_anomalyMonitor :: Lens.Lens' CreateAnomalyMonitor AnomalyMonitor+createAnomalyMonitor_anomalyMonitor = Lens.lens (\CreateAnomalyMonitor' {anomalyMonitor} -> anomalyMonitor) (\s@CreateAnomalyMonitor' {} a -> s {anomalyMonitor = a} :: CreateAnomalyMonitor)++instance Core.AWSRequest CreateAnomalyMonitor where+  type+    AWSResponse CreateAnomalyMonitor =+      CreateAnomalyMonitorResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateAnomalyMonitorResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "MonitorArn")+      )++instance Prelude.Hashable CreateAnomalyMonitor where+  hashWithSalt _salt CreateAnomalyMonitor' {..} =+    _salt+      `Prelude.hashWithSalt` resourceTags+      `Prelude.hashWithSalt` anomalyMonitor++instance Prelude.NFData CreateAnomalyMonitor where+  rnf CreateAnomalyMonitor' {..} =+    Prelude.rnf resourceTags+      `Prelude.seq` Prelude.rnf anomalyMonitor++instance Data.ToHeaders CreateAnomalyMonitor where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSInsightsIndexService.CreateAnomalyMonitor" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateAnomalyMonitor where+  toJSON CreateAnomalyMonitor' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("ResourceTags" Data..=) Prelude.<$> resourceTags,+            Prelude.Just+              ("AnomalyMonitor" Data..= anomalyMonitor)+          ]+      )++instance Data.ToPath CreateAnomalyMonitor where+  toPath = Prelude.const "/"++instance Data.ToQuery CreateAnomalyMonitor where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateAnomalyMonitorResponse' smart constructor.+data CreateAnomalyMonitorResponse = CreateAnomalyMonitorResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The unique identifier of your newly created cost anomaly detection+    -- monitor.+    monitorArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateAnomalyMonitorResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'createAnomalyMonitorResponse_httpStatus' - The response's http status code.+--+-- 'monitorArn', 'createAnomalyMonitorResponse_monitorArn' - The unique identifier of your newly created cost anomaly detection+-- monitor.+newCreateAnomalyMonitorResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'monitorArn'+  Prelude.Text ->+  CreateAnomalyMonitorResponse+newCreateAnomalyMonitorResponse+  pHttpStatus_+  pMonitorArn_ =+    CreateAnomalyMonitorResponse'+      { httpStatus =+          pHttpStatus_,+        monitorArn = pMonitorArn_+      }++-- | The response's http status code.+createAnomalyMonitorResponse_httpStatus :: Lens.Lens' CreateAnomalyMonitorResponse Prelude.Int+createAnomalyMonitorResponse_httpStatus = Lens.lens (\CreateAnomalyMonitorResponse' {httpStatus} -> httpStatus) (\s@CreateAnomalyMonitorResponse' {} a -> s {httpStatus = a} :: CreateAnomalyMonitorResponse)++-- | The unique identifier of your newly created cost anomaly detection+-- monitor.+createAnomalyMonitorResponse_monitorArn :: Lens.Lens' CreateAnomalyMonitorResponse Prelude.Text+createAnomalyMonitorResponse_monitorArn = Lens.lens (\CreateAnomalyMonitorResponse' {monitorArn} -> monitorArn) (\s@CreateAnomalyMonitorResponse' {} a -> s {monitorArn = a} :: CreateAnomalyMonitorResponse)++instance Prelude.NFData CreateAnomalyMonitorResponse where+  rnf CreateAnomalyMonitorResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf monitorArn
+ gen/Amazonka/CostExplorer/CreateAnomalySubscription.hs view
@@ -0,0 +1,270 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.CreateAnomalySubscription+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Adds an alert subscription to a cost anomaly detection monitor. You can+-- use each subscription to define subscribers with email or SNS+-- notifications. Email subscribers can set an absolute or percentage+-- threshold and a time frequency for receiving notifications.+module Amazonka.CostExplorer.CreateAnomalySubscription+  ( -- * Creating a Request+    CreateAnomalySubscription (..),+    newCreateAnomalySubscription,++    -- * Request Lenses+    createAnomalySubscription_resourceTags,+    createAnomalySubscription_anomalySubscription,++    -- * Destructuring the Response+    CreateAnomalySubscriptionResponse (..),+    newCreateAnomalySubscriptionResponse,++    -- * Response Lenses+    createAnomalySubscriptionResponse_httpStatus,+    createAnomalySubscriptionResponse_subscriptionArn,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CostExplorer.Types+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateAnomalySubscription' smart constructor.+data CreateAnomalySubscription = CreateAnomalySubscription'+  { -- | An optional list of tags to associate with the specified+    -- <https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_AnomalySubscription.html AnomalySubscription>+    -- . You can use resource tags to control access to your @subscription@+    -- using IAM policies.+    --+    -- Each tag consists of a key and a value, and each key must be unique for+    -- the resource. The following restrictions apply to resource tags:+    --+    -- -   Although the maximum number of array members is 200, you can assign+    --     a maximum of 50 user-tags to one resource. The remaining are+    --     reserved for Amazon Web Services use+    --+    -- -   The maximum length of a key is 128 characters+    --+    -- -   The maximum length of a value is 256 characters+    --+    -- -   Keys and values can only contain alphanumeric characters, spaces,+    --     and any of the following: @_.:\/=+\@-@+    --+    -- -   Keys and values are case sensitive+    --+    -- -   Keys and values are trimmed for any leading or trailing whitespaces+    --+    -- -   Don’t use @aws:@ as a prefix for your keys. This prefix is reserved+    --     for Amazon Web Services use+    resourceTags :: Prelude.Maybe [ResourceTag],+    -- | The cost anomaly subscription object that you want to create.+    anomalySubscription :: AnomalySubscription+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateAnomalySubscription' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'resourceTags', 'createAnomalySubscription_resourceTags' - An optional list of tags to associate with the specified+-- <https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_AnomalySubscription.html AnomalySubscription>+-- . You can use resource tags to control access to your @subscription@+-- using IAM policies.+--+-- Each tag consists of a key and a value, and each key must be unique for+-- the resource. The following restrictions apply to resource tags:+--+-- -   Although the maximum number of array members is 200, you can assign+--     a maximum of 50 user-tags to one resource. The remaining are+--     reserved for Amazon Web Services use+--+-- -   The maximum length of a key is 128 characters+--+-- -   The maximum length of a value is 256 characters+--+-- -   Keys and values can only contain alphanumeric characters, spaces,+--     and any of the following: @_.:\/=+\@-@+--+-- -   Keys and values are case sensitive+--+-- -   Keys and values are trimmed for any leading or trailing whitespaces+--+-- -   Don’t use @aws:@ as a prefix for your keys. This prefix is reserved+--     for Amazon Web Services use+--+-- 'anomalySubscription', 'createAnomalySubscription_anomalySubscription' - The cost anomaly subscription object that you want to create.+newCreateAnomalySubscription ::+  -- | 'anomalySubscription'+  AnomalySubscription ->+  CreateAnomalySubscription+newCreateAnomalySubscription pAnomalySubscription_ =+  CreateAnomalySubscription'+    { resourceTags =+        Prelude.Nothing,+      anomalySubscription = pAnomalySubscription_+    }++-- | An optional list of tags to associate with the specified+-- <https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_AnomalySubscription.html AnomalySubscription>+-- . You can use resource tags to control access to your @subscription@+-- using IAM policies.+--+-- Each tag consists of a key and a value, and each key must be unique for+-- the resource. The following restrictions apply to resource tags:+--+-- -   Although the maximum number of array members is 200, you can assign+--     a maximum of 50 user-tags to one resource. The remaining are+--     reserved for Amazon Web Services use+--+-- -   The maximum length of a key is 128 characters+--+-- -   The maximum length of a value is 256 characters+--+-- -   Keys and values can only contain alphanumeric characters, spaces,+--     and any of the following: @_.:\/=+\@-@+--+-- -   Keys and values are case sensitive+--+-- -   Keys and values are trimmed for any leading or trailing whitespaces+--+-- -   Don’t use @aws:@ as a prefix for your keys. This prefix is reserved+--     for Amazon Web Services use+createAnomalySubscription_resourceTags :: Lens.Lens' CreateAnomalySubscription (Prelude.Maybe [ResourceTag])+createAnomalySubscription_resourceTags = Lens.lens (\CreateAnomalySubscription' {resourceTags} -> resourceTags) (\s@CreateAnomalySubscription' {} a -> s {resourceTags = a} :: CreateAnomalySubscription) Prelude.. Lens.mapping Lens.coerced++-- | The cost anomaly subscription object that you want to create.+createAnomalySubscription_anomalySubscription :: Lens.Lens' CreateAnomalySubscription AnomalySubscription+createAnomalySubscription_anomalySubscription = Lens.lens (\CreateAnomalySubscription' {anomalySubscription} -> anomalySubscription) (\s@CreateAnomalySubscription' {} a -> s {anomalySubscription = a} :: CreateAnomalySubscription)++instance Core.AWSRequest CreateAnomalySubscription where+  type+    AWSResponse CreateAnomalySubscription =+      CreateAnomalySubscriptionResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateAnomalySubscriptionResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "SubscriptionArn")+      )++instance Prelude.Hashable CreateAnomalySubscription where+  hashWithSalt _salt CreateAnomalySubscription' {..} =+    _salt+      `Prelude.hashWithSalt` resourceTags+      `Prelude.hashWithSalt` anomalySubscription++instance Prelude.NFData CreateAnomalySubscription where+  rnf CreateAnomalySubscription' {..} =+    Prelude.rnf resourceTags+      `Prelude.seq` Prelude.rnf anomalySubscription++instance Data.ToHeaders CreateAnomalySubscription where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSInsightsIndexService.CreateAnomalySubscription" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateAnomalySubscription where+  toJSON CreateAnomalySubscription' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("ResourceTags" Data..=) Prelude.<$> resourceTags,+            Prelude.Just+              ("AnomalySubscription" Data..= anomalySubscription)+          ]+      )++instance Data.ToPath CreateAnomalySubscription where+  toPath = Prelude.const "/"++instance Data.ToQuery CreateAnomalySubscription where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateAnomalySubscriptionResponse' smart constructor.+data CreateAnomalySubscriptionResponse = CreateAnomalySubscriptionResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The unique identifier of your newly created cost anomaly subscription.+    subscriptionArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateAnomalySubscriptionResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'createAnomalySubscriptionResponse_httpStatus' - The response's http status code.+--+-- 'subscriptionArn', 'createAnomalySubscriptionResponse_subscriptionArn' - The unique identifier of your newly created cost anomaly subscription.+newCreateAnomalySubscriptionResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'subscriptionArn'+  Prelude.Text ->+  CreateAnomalySubscriptionResponse+newCreateAnomalySubscriptionResponse+  pHttpStatus_+  pSubscriptionArn_ =+    CreateAnomalySubscriptionResponse'+      { httpStatus =+          pHttpStatus_,+        subscriptionArn = pSubscriptionArn_+      }++-- | The response's http status code.+createAnomalySubscriptionResponse_httpStatus :: Lens.Lens' CreateAnomalySubscriptionResponse Prelude.Int+createAnomalySubscriptionResponse_httpStatus = Lens.lens (\CreateAnomalySubscriptionResponse' {httpStatus} -> httpStatus) (\s@CreateAnomalySubscriptionResponse' {} a -> s {httpStatus = a} :: CreateAnomalySubscriptionResponse)++-- | The unique identifier of your newly created cost anomaly subscription.+createAnomalySubscriptionResponse_subscriptionArn :: Lens.Lens' CreateAnomalySubscriptionResponse Prelude.Text+createAnomalySubscriptionResponse_subscriptionArn = Lens.lens (\CreateAnomalySubscriptionResponse' {subscriptionArn} -> subscriptionArn) (\s@CreateAnomalySubscriptionResponse' {} a -> s {subscriptionArn = a} :: CreateAnomalySubscriptionResponse)++instance+  Prelude.NFData+    CreateAnomalySubscriptionResponse+  where+  rnf CreateAnomalySubscriptionResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf subscriptionArn
+ gen/Amazonka/CostExplorer/CreateCostCategoryDefinition.hs view
@@ -0,0 +1,369 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.CreateCostCategoryDefinition+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a new Cost Category with the requested name and rules.+module Amazonka.CostExplorer.CreateCostCategoryDefinition+  ( -- * Creating a Request+    CreateCostCategoryDefinition (..),+    newCreateCostCategoryDefinition,++    -- * Request Lenses+    createCostCategoryDefinition_defaultValue,+    createCostCategoryDefinition_effectiveStart,+    createCostCategoryDefinition_resourceTags,+    createCostCategoryDefinition_splitChargeRules,+    createCostCategoryDefinition_name,+    createCostCategoryDefinition_ruleVersion,+    createCostCategoryDefinition_rules,++    -- * Destructuring the Response+    CreateCostCategoryDefinitionResponse (..),+    newCreateCostCategoryDefinitionResponse,++    -- * Response Lenses+    createCostCategoryDefinitionResponse_costCategoryArn,+    createCostCategoryDefinitionResponse_effectiveStart,+    createCostCategoryDefinitionResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CostExplorer.Types+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newCreateCostCategoryDefinition' smart constructor.+data CreateCostCategoryDefinition = CreateCostCategoryDefinition'+  { defaultValue :: Prelude.Maybe Prelude.Text,+    -- | The Cost Category\'s effective start date. It can only be a billing+    -- start date (first day of the month). If the date isn\'t provided, it\'s+    -- the first day of the current month. Dates can\'t be before the previous+    -- twelve months, or in the future.+    effectiveStart :: Prelude.Maybe Prelude.Text,+    -- | An optional list of tags to associate with the specified+    -- <https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_CostCategory.html CostCategory>+    -- . You can use resource tags to control access to your @cost category@+    -- using IAM policies.+    --+    -- Each tag consists of a key and a value, and each key must be unique for+    -- the resource. The following restrictions apply to resource tags:+    --+    -- -   Although the maximum number of array members is 200, you can assign+    --     a maximum of 50 user-tags to one resource. The remaining are+    --     reserved for Amazon Web Services use+    --+    -- -   The maximum length of a key is 128 characters+    --+    -- -   The maximum length of a value is 256 characters+    --+    -- -   Keys and values can only contain alphanumeric characters, spaces,+    --     and any of the following: @_.:\/=+\@-@+    --+    -- -   Keys and values are case sensitive+    --+    -- -   Keys and values are trimmed for any leading or trailing whitespaces+    --+    -- -   Don’t use @aws:@ as a prefix for your keys. This prefix is reserved+    --     for Amazon Web Services use+    resourceTags :: Prelude.Maybe [ResourceTag],+    -- | The split charge rules used to allocate your charges between your Cost+    -- Category values.+    splitChargeRules :: Prelude.Maybe (Prelude.NonEmpty CostCategorySplitChargeRule),+    name :: Prelude.Text,+    ruleVersion :: CostCategoryRuleVersion,+    -- | The Cost Category rules used to categorize costs. For more information,+    -- see+    -- <https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_CostCategoryRule.html CostCategoryRule>.+    rules :: Prelude.NonEmpty CostCategoryRule+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateCostCategoryDefinition' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'defaultValue', 'createCostCategoryDefinition_defaultValue' - Undocumented member.+--+-- 'effectiveStart', 'createCostCategoryDefinition_effectiveStart' - The Cost Category\'s effective start date. It can only be a billing+-- start date (first day of the month). If the date isn\'t provided, it\'s+-- the first day of the current month. Dates can\'t be before the previous+-- twelve months, or in the future.+--+-- 'resourceTags', 'createCostCategoryDefinition_resourceTags' - An optional list of tags to associate with the specified+-- <https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_CostCategory.html CostCategory>+-- . You can use resource tags to control access to your @cost category@+-- using IAM policies.+--+-- Each tag consists of a key and a value, and each key must be unique for+-- the resource. The following restrictions apply to resource tags:+--+-- -   Although the maximum number of array members is 200, you can assign+--     a maximum of 50 user-tags to one resource. The remaining are+--     reserved for Amazon Web Services use+--+-- -   The maximum length of a key is 128 characters+--+-- -   The maximum length of a value is 256 characters+--+-- -   Keys and values can only contain alphanumeric characters, spaces,+--     and any of the following: @_.:\/=+\@-@+--+-- -   Keys and values are case sensitive+--+-- -   Keys and values are trimmed for any leading or trailing whitespaces+--+-- -   Don’t use @aws:@ as a prefix for your keys. This prefix is reserved+--     for Amazon Web Services use+--+-- 'splitChargeRules', 'createCostCategoryDefinition_splitChargeRules' - The split charge rules used to allocate your charges between your Cost+-- Category values.+--+-- 'name', 'createCostCategoryDefinition_name' - Undocumented member.+--+-- 'ruleVersion', 'createCostCategoryDefinition_ruleVersion' - Undocumented member.+--+-- 'rules', 'createCostCategoryDefinition_rules' - The Cost Category rules used to categorize costs. For more information,+-- see+-- <https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_CostCategoryRule.html CostCategoryRule>.+newCreateCostCategoryDefinition ::+  -- | 'name'+  Prelude.Text ->+  -- | 'ruleVersion'+  CostCategoryRuleVersion ->+  -- | 'rules'+  Prelude.NonEmpty CostCategoryRule ->+  CreateCostCategoryDefinition+newCreateCostCategoryDefinition+  pName_+  pRuleVersion_+  pRules_ =+    CreateCostCategoryDefinition'+      { defaultValue =+          Prelude.Nothing,+        effectiveStart = Prelude.Nothing,+        resourceTags = Prelude.Nothing,+        splitChargeRules = Prelude.Nothing,+        name = pName_,+        ruleVersion = pRuleVersion_,+        rules = Lens.coerced Lens.# pRules_+      }++-- | Undocumented member.+createCostCategoryDefinition_defaultValue :: Lens.Lens' CreateCostCategoryDefinition (Prelude.Maybe Prelude.Text)+createCostCategoryDefinition_defaultValue = Lens.lens (\CreateCostCategoryDefinition' {defaultValue} -> defaultValue) (\s@CreateCostCategoryDefinition' {} a -> s {defaultValue = a} :: CreateCostCategoryDefinition)++-- | The Cost Category\'s effective start date. It can only be a billing+-- start date (first day of the month). If the date isn\'t provided, it\'s+-- the first day of the current month. Dates can\'t be before the previous+-- twelve months, or in the future.+createCostCategoryDefinition_effectiveStart :: Lens.Lens' CreateCostCategoryDefinition (Prelude.Maybe Prelude.Text)+createCostCategoryDefinition_effectiveStart = Lens.lens (\CreateCostCategoryDefinition' {effectiveStart} -> effectiveStart) (\s@CreateCostCategoryDefinition' {} a -> s {effectiveStart = a} :: CreateCostCategoryDefinition)++-- | An optional list of tags to associate with the specified+-- <https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_CostCategory.html CostCategory>+-- . You can use resource tags to control access to your @cost category@+-- using IAM policies.+--+-- Each tag consists of a key and a value, and each key must be unique for+-- the resource. The following restrictions apply to resource tags:+--+-- -   Although the maximum number of array members is 200, you can assign+--     a maximum of 50 user-tags to one resource. The remaining are+--     reserved for Amazon Web Services use+--+-- -   The maximum length of a key is 128 characters+--+-- -   The maximum length of a value is 256 characters+--+-- -   Keys and values can only contain alphanumeric characters, spaces,+--     and any of the following: @_.:\/=+\@-@+--+-- -   Keys and values are case sensitive+--+-- -   Keys and values are trimmed for any leading or trailing whitespaces+--+-- -   Don’t use @aws:@ as a prefix for your keys. This prefix is reserved+--     for Amazon Web Services use+createCostCategoryDefinition_resourceTags :: Lens.Lens' CreateCostCategoryDefinition (Prelude.Maybe [ResourceTag])+createCostCategoryDefinition_resourceTags = Lens.lens (\CreateCostCategoryDefinition' {resourceTags} -> resourceTags) (\s@CreateCostCategoryDefinition' {} a -> s {resourceTags = a} :: CreateCostCategoryDefinition) Prelude.. Lens.mapping Lens.coerced++-- | The split charge rules used to allocate your charges between your Cost+-- Category values.+createCostCategoryDefinition_splitChargeRules :: Lens.Lens' CreateCostCategoryDefinition (Prelude.Maybe (Prelude.NonEmpty CostCategorySplitChargeRule))+createCostCategoryDefinition_splitChargeRules = Lens.lens (\CreateCostCategoryDefinition' {splitChargeRules} -> splitChargeRules) (\s@CreateCostCategoryDefinition' {} a -> s {splitChargeRules = a} :: CreateCostCategoryDefinition) Prelude.. Lens.mapping Lens.coerced++-- | Undocumented member.+createCostCategoryDefinition_name :: Lens.Lens' CreateCostCategoryDefinition Prelude.Text+createCostCategoryDefinition_name = Lens.lens (\CreateCostCategoryDefinition' {name} -> name) (\s@CreateCostCategoryDefinition' {} a -> s {name = a} :: CreateCostCategoryDefinition)++-- | Undocumented member.+createCostCategoryDefinition_ruleVersion :: Lens.Lens' CreateCostCategoryDefinition CostCategoryRuleVersion+createCostCategoryDefinition_ruleVersion = Lens.lens (\CreateCostCategoryDefinition' {ruleVersion} -> ruleVersion) (\s@CreateCostCategoryDefinition' {} a -> s {ruleVersion = a} :: CreateCostCategoryDefinition)++-- | The Cost Category rules used to categorize costs. For more information,+-- see+-- <https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_CostCategoryRule.html CostCategoryRule>.+createCostCategoryDefinition_rules :: Lens.Lens' CreateCostCategoryDefinition (Prelude.NonEmpty CostCategoryRule)+createCostCategoryDefinition_rules = Lens.lens (\CreateCostCategoryDefinition' {rules} -> rules) (\s@CreateCostCategoryDefinition' {} a -> s {rules = a} :: CreateCostCategoryDefinition) Prelude.. Lens.coerced++instance Core.AWSRequest CreateCostCategoryDefinition where+  type+    AWSResponse CreateCostCategoryDefinition =+      CreateCostCategoryDefinitionResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          CreateCostCategoryDefinitionResponse'+            Prelude.<$> (x Data..?> "CostCategoryArn")+            Prelude.<*> (x Data..?> "EffectiveStart")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    CreateCostCategoryDefinition+  where+  hashWithSalt _salt CreateCostCategoryDefinition' {..} =+    _salt+      `Prelude.hashWithSalt` defaultValue+      `Prelude.hashWithSalt` effectiveStart+      `Prelude.hashWithSalt` resourceTags+      `Prelude.hashWithSalt` splitChargeRules+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` ruleVersion+      `Prelude.hashWithSalt` rules++instance Prelude.NFData CreateCostCategoryDefinition where+  rnf CreateCostCategoryDefinition' {..} =+    Prelude.rnf defaultValue+      `Prelude.seq` Prelude.rnf effectiveStart+      `Prelude.seq` Prelude.rnf resourceTags+      `Prelude.seq` Prelude.rnf splitChargeRules+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf ruleVersion+      `Prelude.seq` Prelude.rnf rules++instance Data.ToHeaders CreateCostCategoryDefinition where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSInsightsIndexService.CreateCostCategoryDefinition" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON CreateCostCategoryDefinition where+  toJSON CreateCostCategoryDefinition' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("DefaultValue" Data..=) Prelude.<$> defaultValue,+            ("EffectiveStart" Data..=)+              Prelude.<$> effectiveStart,+            ("ResourceTags" Data..=) Prelude.<$> resourceTags,+            ("SplitChargeRules" Data..=)+              Prelude.<$> splitChargeRules,+            Prelude.Just ("Name" Data..= name),+            Prelude.Just ("RuleVersion" Data..= ruleVersion),+            Prelude.Just ("Rules" Data..= rules)+          ]+      )++instance Data.ToPath CreateCostCategoryDefinition where+  toPath = Prelude.const "/"++instance Data.ToQuery CreateCostCategoryDefinition where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newCreateCostCategoryDefinitionResponse' smart constructor.+data CreateCostCategoryDefinitionResponse = CreateCostCategoryDefinitionResponse'+  { -- | The unique identifier for your newly created Cost Category.+    costCategoryArn :: Prelude.Maybe Prelude.Text,+    -- | The Cost Category\'s effective start date. It can only be a billing+    -- start date (first day of the month).+    effectiveStart :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CreateCostCategoryDefinitionResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'costCategoryArn', 'createCostCategoryDefinitionResponse_costCategoryArn' - The unique identifier for your newly created Cost Category.+--+-- 'effectiveStart', 'createCostCategoryDefinitionResponse_effectiveStart' - The Cost Category\'s effective start date. It can only be a billing+-- start date (first day of the month).+--+-- 'httpStatus', 'createCostCategoryDefinitionResponse_httpStatus' - The response's http status code.+newCreateCostCategoryDefinitionResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  CreateCostCategoryDefinitionResponse+newCreateCostCategoryDefinitionResponse pHttpStatus_ =+  CreateCostCategoryDefinitionResponse'+    { costCategoryArn =+        Prelude.Nothing,+      effectiveStart = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The unique identifier for your newly created Cost Category.+createCostCategoryDefinitionResponse_costCategoryArn :: Lens.Lens' CreateCostCategoryDefinitionResponse (Prelude.Maybe Prelude.Text)+createCostCategoryDefinitionResponse_costCategoryArn = Lens.lens (\CreateCostCategoryDefinitionResponse' {costCategoryArn} -> costCategoryArn) (\s@CreateCostCategoryDefinitionResponse' {} a -> s {costCategoryArn = a} :: CreateCostCategoryDefinitionResponse)++-- | The Cost Category\'s effective start date. It can only be a billing+-- start date (first day of the month).+createCostCategoryDefinitionResponse_effectiveStart :: Lens.Lens' CreateCostCategoryDefinitionResponse (Prelude.Maybe Prelude.Text)+createCostCategoryDefinitionResponse_effectiveStart = Lens.lens (\CreateCostCategoryDefinitionResponse' {effectiveStart} -> effectiveStart) (\s@CreateCostCategoryDefinitionResponse' {} a -> s {effectiveStart = a} :: CreateCostCategoryDefinitionResponse)++-- | The response's http status code.+createCostCategoryDefinitionResponse_httpStatus :: Lens.Lens' CreateCostCategoryDefinitionResponse Prelude.Int+createCostCategoryDefinitionResponse_httpStatus = Lens.lens (\CreateCostCategoryDefinitionResponse' {httpStatus} -> httpStatus) (\s@CreateCostCategoryDefinitionResponse' {} a -> s {httpStatus = a} :: CreateCostCategoryDefinitionResponse)++instance+  Prelude.NFData+    CreateCostCategoryDefinitionResponse+  where+  rnf CreateCostCategoryDefinitionResponse' {..} =+    Prelude.rnf costCategoryArn+      `Prelude.seq` Prelude.rnf effectiveStart+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/CostExplorer/DeleteAnomalyMonitor.hs view
@@ -0,0 +1,160 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.DeleteAnomalyMonitor+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes a cost anomaly monitor.+module Amazonka.CostExplorer.DeleteAnomalyMonitor+  ( -- * Creating a Request+    DeleteAnomalyMonitor (..),+    newDeleteAnomalyMonitor,++    -- * Request Lenses+    deleteAnomalyMonitor_monitorArn,++    -- * Destructuring the Response+    DeleteAnomalyMonitorResponse (..),+    newDeleteAnomalyMonitorResponse,++    -- * Response Lenses+    deleteAnomalyMonitorResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CostExplorer.Types+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteAnomalyMonitor' smart constructor.+data DeleteAnomalyMonitor = DeleteAnomalyMonitor'+  { -- | The unique identifier of the cost anomaly monitor that you want to+    -- delete.+    monitorArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteAnomalyMonitor' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'monitorArn', 'deleteAnomalyMonitor_monitorArn' - The unique identifier of the cost anomaly monitor that you want to+-- delete.+newDeleteAnomalyMonitor ::+  -- | 'monitorArn'+  Prelude.Text ->+  DeleteAnomalyMonitor+newDeleteAnomalyMonitor pMonitorArn_ =+  DeleteAnomalyMonitor' {monitorArn = pMonitorArn_}++-- | The unique identifier of the cost anomaly monitor that you want to+-- delete.+deleteAnomalyMonitor_monitorArn :: Lens.Lens' DeleteAnomalyMonitor Prelude.Text+deleteAnomalyMonitor_monitorArn = Lens.lens (\DeleteAnomalyMonitor' {monitorArn} -> monitorArn) (\s@DeleteAnomalyMonitor' {} a -> s {monitorArn = a} :: DeleteAnomalyMonitor)++instance Core.AWSRequest DeleteAnomalyMonitor where+  type+    AWSResponse DeleteAnomalyMonitor =+      DeleteAnomalyMonitorResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          DeleteAnomalyMonitorResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteAnomalyMonitor where+  hashWithSalt _salt DeleteAnomalyMonitor' {..} =+    _salt `Prelude.hashWithSalt` monitorArn++instance Prelude.NFData DeleteAnomalyMonitor where+  rnf DeleteAnomalyMonitor' {..} =+    Prelude.rnf monitorArn++instance Data.ToHeaders DeleteAnomalyMonitor where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSInsightsIndexService.DeleteAnomalyMonitor" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DeleteAnomalyMonitor where+  toJSON DeleteAnomalyMonitor' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("MonitorArn" Data..= monitorArn)]+      )++instance Data.ToPath DeleteAnomalyMonitor where+  toPath = Prelude.const "/"++instance Data.ToQuery DeleteAnomalyMonitor where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteAnomalyMonitorResponse' smart constructor.+data DeleteAnomalyMonitorResponse = DeleteAnomalyMonitorResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteAnomalyMonitorResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'deleteAnomalyMonitorResponse_httpStatus' - The response's http status code.+newDeleteAnomalyMonitorResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteAnomalyMonitorResponse+newDeleteAnomalyMonitorResponse pHttpStatus_ =+  DeleteAnomalyMonitorResponse'+    { httpStatus =+        pHttpStatus_+    }++-- | The response's http status code.+deleteAnomalyMonitorResponse_httpStatus :: Lens.Lens' DeleteAnomalyMonitorResponse Prelude.Int+deleteAnomalyMonitorResponse_httpStatus = Lens.lens (\DeleteAnomalyMonitorResponse' {httpStatus} -> httpStatus) (\s@DeleteAnomalyMonitorResponse' {} a -> s {httpStatus = a} :: DeleteAnomalyMonitorResponse)++instance Prelude.NFData DeleteAnomalyMonitorResponse where+  rnf DeleteAnomalyMonitorResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/CostExplorer/DeleteAnomalySubscription.hs view
@@ -0,0 +1,168 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.DeleteAnomalySubscription+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes a cost anomaly subscription.+module Amazonka.CostExplorer.DeleteAnomalySubscription+  ( -- * Creating a Request+    DeleteAnomalySubscription (..),+    newDeleteAnomalySubscription,++    -- * Request Lenses+    deleteAnomalySubscription_subscriptionArn,++    -- * Destructuring the Response+    DeleteAnomalySubscriptionResponse (..),+    newDeleteAnomalySubscriptionResponse,++    -- * Response Lenses+    deleteAnomalySubscriptionResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CostExplorer.Types+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteAnomalySubscription' smart constructor.+data DeleteAnomalySubscription = DeleteAnomalySubscription'+  { -- | The unique identifier of the cost anomaly subscription that you want to+    -- delete.+    subscriptionArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteAnomalySubscription' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'subscriptionArn', 'deleteAnomalySubscription_subscriptionArn' - The unique identifier of the cost anomaly subscription that you want to+-- delete.+newDeleteAnomalySubscription ::+  -- | 'subscriptionArn'+  Prelude.Text ->+  DeleteAnomalySubscription+newDeleteAnomalySubscription pSubscriptionArn_ =+  DeleteAnomalySubscription'+    { subscriptionArn =+        pSubscriptionArn_+    }++-- | The unique identifier of the cost anomaly subscription that you want to+-- delete.+deleteAnomalySubscription_subscriptionArn :: Lens.Lens' DeleteAnomalySubscription Prelude.Text+deleteAnomalySubscription_subscriptionArn = Lens.lens (\DeleteAnomalySubscription' {subscriptionArn} -> subscriptionArn) (\s@DeleteAnomalySubscription' {} a -> s {subscriptionArn = a} :: DeleteAnomalySubscription)++instance Core.AWSRequest DeleteAnomalySubscription where+  type+    AWSResponse DeleteAnomalySubscription =+      DeleteAnomalySubscriptionResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          DeleteAnomalySubscriptionResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable DeleteAnomalySubscription where+  hashWithSalt _salt DeleteAnomalySubscription' {..} =+    _salt `Prelude.hashWithSalt` subscriptionArn++instance Prelude.NFData DeleteAnomalySubscription where+  rnf DeleteAnomalySubscription' {..} =+    Prelude.rnf subscriptionArn++instance Data.ToHeaders DeleteAnomalySubscription where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSInsightsIndexService.DeleteAnomalySubscription" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DeleteAnomalySubscription where+  toJSON DeleteAnomalySubscription' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("SubscriptionArn" Data..= subscriptionArn)+          ]+      )++instance Data.ToPath DeleteAnomalySubscription where+  toPath = Prelude.const "/"++instance Data.ToQuery DeleteAnomalySubscription where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteAnomalySubscriptionResponse' smart constructor.+data DeleteAnomalySubscriptionResponse = DeleteAnomalySubscriptionResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteAnomalySubscriptionResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'deleteAnomalySubscriptionResponse_httpStatus' - The response's http status code.+newDeleteAnomalySubscriptionResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteAnomalySubscriptionResponse+newDeleteAnomalySubscriptionResponse pHttpStatus_ =+  DeleteAnomalySubscriptionResponse'+    { httpStatus =+        pHttpStatus_+    }++-- | The response's http status code.+deleteAnomalySubscriptionResponse_httpStatus :: Lens.Lens' DeleteAnomalySubscriptionResponse Prelude.Int+deleteAnomalySubscriptionResponse_httpStatus = Lens.lens (\DeleteAnomalySubscriptionResponse' {httpStatus} -> httpStatus) (\s@DeleteAnomalySubscriptionResponse' {} a -> s {httpStatus = a} :: DeleteAnomalySubscriptionResponse)++instance+  Prelude.NFData+    DeleteAnomalySubscriptionResponse+  where+  rnf DeleteAnomalySubscriptionResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/CostExplorer/DeleteCostCategoryDefinition.hs view
@@ -0,0 +1,196 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.DeleteCostCategoryDefinition+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes a Cost Category. Expenses from this month going forward will no+-- longer be categorized with this Cost Category.+module Amazonka.CostExplorer.DeleteCostCategoryDefinition+  ( -- * Creating a Request+    DeleteCostCategoryDefinition (..),+    newDeleteCostCategoryDefinition,++    -- * Request Lenses+    deleteCostCategoryDefinition_costCategoryArn,++    -- * Destructuring the Response+    DeleteCostCategoryDefinitionResponse (..),+    newDeleteCostCategoryDefinitionResponse,++    -- * Response Lenses+    deleteCostCategoryDefinitionResponse_costCategoryArn,+    deleteCostCategoryDefinitionResponse_effectiveEnd,+    deleteCostCategoryDefinitionResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CostExplorer.Types+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDeleteCostCategoryDefinition' smart constructor.+data DeleteCostCategoryDefinition = DeleteCostCategoryDefinition'+  { -- | The unique identifier for your Cost Category.+    costCategoryArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteCostCategoryDefinition' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'costCategoryArn', 'deleteCostCategoryDefinition_costCategoryArn' - The unique identifier for your Cost Category.+newDeleteCostCategoryDefinition ::+  -- | 'costCategoryArn'+  Prelude.Text ->+  DeleteCostCategoryDefinition+newDeleteCostCategoryDefinition pCostCategoryArn_ =+  DeleteCostCategoryDefinition'+    { costCategoryArn =+        pCostCategoryArn_+    }++-- | The unique identifier for your Cost Category.+deleteCostCategoryDefinition_costCategoryArn :: Lens.Lens' DeleteCostCategoryDefinition Prelude.Text+deleteCostCategoryDefinition_costCategoryArn = Lens.lens (\DeleteCostCategoryDefinition' {costCategoryArn} -> costCategoryArn) (\s@DeleteCostCategoryDefinition' {} a -> s {costCategoryArn = a} :: DeleteCostCategoryDefinition)++instance Core.AWSRequest DeleteCostCategoryDefinition where+  type+    AWSResponse DeleteCostCategoryDefinition =+      DeleteCostCategoryDefinitionResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DeleteCostCategoryDefinitionResponse'+            Prelude.<$> (x Data..?> "CostCategoryArn")+            Prelude.<*> (x Data..?> "EffectiveEnd")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    DeleteCostCategoryDefinition+  where+  hashWithSalt _salt DeleteCostCategoryDefinition' {..} =+    _salt `Prelude.hashWithSalt` costCategoryArn++instance Prelude.NFData DeleteCostCategoryDefinition where+  rnf DeleteCostCategoryDefinition' {..} =+    Prelude.rnf costCategoryArn++instance Data.ToHeaders DeleteCostCategoryDefinition where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSInsightsIndexService.DeleteCostCategoryDefinition" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DeleteCostCategoryDefinition where+  toJSON DeleteCostCategoryDefinition' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ("CostCategoryArn" Data..= costCategoryArn)+          ]+      )++instance Data.ToPath DeleteCostCategoryDefinition where+  toPath = Prelude.const "/"++instance Data.ToQuery DeleteCostCategoryDefinition where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDeleteCostCategoryDefinitionResponse' smart constructor.+data DeleteCostCategoryDefinitionResponse = DeleteCostCategoryDefinitionResponse'+  { -- | The unique identifier for your Cost Category.+    costCategoryArn :: Prelude.Maybe Prelude.Text,+    -- | The effective end date of the Cost Category as a result of deleting it.+    -- No costs after this date is categorized by the deleted Cost Category.+    effectiveEnd :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DeleteCostCategoryDefinitionResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'costCategoryArn', 'deleteCostCategoryDefinitionResponse_costCategoryArn' - The unique identifier for your Cost Category.+--+-- 'effectiveEnd', 'deleteCostCategoryDefinitionResponse_effectiveEnd' - The effective end date of the Cost Category as a result of deleting it.+-- No costs after this date is categorized by the deleted Cost Category.+--+-- 'httpStatus', 'deleteCostCategoryDefinitionResponse_httpStatus' - The response's http status code.+newDeleteCostCategoryDefinitionResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DeleteCostCategoryDefinitionResponse+newDeleteCostCategoryDefinitionResponse pHttpStatus_ =+  DeleteCostCategoryDefinitionResponse'+    { costCategoryArn =+        Prelude.Nothing,+      effectiveEnd = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The unique identifier for your Cost Category.+deleteCostCategoryDefinitionResponse_costCategoryArn :: Lens.Lens' DeleteCostCategoryDefinitionResponse (Prelude.Maybe Prelude.Text)+deleteCostCategoryDefinitionResponse_costCategoryArn = Lens.lens (\DeleteCostCategoryDefinitionResponse' {costCategoryArn} -> costCategoryArn) (\s@DeleteCostCategoryDefinitionResponse' {} a -> s {costCategoryArn = a} :: DeleteCostCategoryDefinitionResponse)++-- | The effective end date of the Cost Category as a result of deleting it.+-- No costs after this date is categorized by the deleted Cost Category.+deleteCostCategoryDefinitionResponse_effectiveEnd :: Lens.Lens' DeleteCostCategoryDefinitionResponse (Prelude.Maybe Prelude.Text)+deleteCostCategoryDefinitionResponse_effectiveEnd = Lens.lens (\DeleteCostCategoryDefinitionResponse' {effectiveEnd} -> effectiveEnd) (\s@DeleteCostCategoryDefinitionResponse' {} a -> s {effectiveEnd = a} :: DeleteCostCategoryDefinitionResponse)++-- | The response's http status code.+deleteCostCategoryDefinitionResponse_httpStatus :: Lens.Lens' DeleteCostCategoryDefinitionResponse Prelude.Int+deleteCostCategoryDefinitionResponse_httpStatus = Lens.lens (\DeleteCostCategoryDefinitionResponse' {httpStatus} -> httpStatus) (\s@DeleteCostCategoryDefinitionResponse' {} a -> s {httpStatus = a} :: DeleteCostCategoryDefinitionResponse)++instance+  Prelude.NFData+    DeleteCostCategoryDefinitionResponse+  where+  rnf DeleteCostCategoryDefinitionResponse' {..} =+    Prelude.rnf costCategoryArn+      `Prelude.seq` Prelude.rnf effectiveEnd+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/CostExplorer/DescribeCostCategoryDefinition.hs view
@@ -0,0 +1,212 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.DescribeCostCategoryDefinition+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns the name, Amazon Resource Name (ARN), rules, definition, and+-- effective dates of a Cost Category that\'s defined in the account.+--+-- You have the option to use @EffectiveOn@ to return a Cost Category+-- that\'s active on a specific date. If there\'s no @EffectiveOn@+-- specified, you see a Cost Category that\'s effective on the current+-- date. If Cost Category is still effective, @EffectiveEnd@ is omitted in+-- the response.+module Amazonka.CostExplorer.DescribeCostCategoryDefinition+  ( -- * Creating a Request+    DescribeCostCategoryDefinition (..),+    newDescribeCostCategoryDefinition,++    -- * Request Lenses+    describeCostCategoryDefinition_effectiveOn,+    describeCostCategoryDefinition_costCategoryArn,++    -- * Destructuring the Response+    DescribeCostCategoryDefinitionResponse (..),+    newDescribeCostCategoryDefinitionResponse,++    -- * Response Lenses+    describeCostCategoryDefinitionResponse_costCategory,+    describeCostCategoryDefinitionResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CostExplorer.Types+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeCostCategoryDefinition' smart constructor.+data DescribeCostCategoryDefinition = DescribeCostCategoryDefinition'+  { -- | The date when the Cost Category was effective.+    effectiveOn :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier for your Cost Category.+    costCategoryArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeCostCategoryDefinition' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'effectiveOn', 'describeCostCategoryDefinition_effectiveOn' - The date when the Cost Category was effective.+--+-- 'costCategoryArn', 'describeCostCategoryDefinition_costCategoryArn' - The unique identifier for your Cost Category.+newDescribeCostCategoryDefinition ::+  -- | 'costCategoryArn'+  Prelude.Text ->+  DescribeCostCategoryDefinition+newDescribeCostCategoryDefinition pCostCategoryArn_ =+  DescribeCostCategoryDefinition'+    { effectiveOn =+        Prelude.Nothing,+      costCategoryArn = pCostCategoryArn_+    }++-- | The date when the Cost Category was effective.+describeCostCategoryDefinition_effectiveOn :: Lens.Lens' DescribeCostCategoryDefinition (Prelude.Maybe Prelude.Text)+describeCostCategoryDefinition_effectiveOn = Lens.lens (\DescribeCostCategoryDefinition' {effectiveOn} -> effectiveOn) (\s@DescribeCostCategoryDefinition' {} a -> s {effectiveOn = a} :: DescribeCostCategoryDefinition)++-- | The unique identifier for your Cost Category.+describeCostCategoryDefinition_costCategoryArn :: Lens.Lens' DescribeCostCategoryDefinition Prelude.Text+describeCostCategoryDefinition_costCategoryArn = Lens.lens (\DescribeCostCategoryDefinition' {costCategoryArn} -> costCategoryArn) (\s@DescribeCostCategoryDefinition' {} a -> s {costCategoryArn = a} :: DescribeCostCategoryDefinition)++instance+  Core.AWSRequest+    DescribeCostCategoryDefinition+  where+  type+    AWSResponse DescribeCostCategoryDefinition =+      DescribeCostCategoryDefinitionResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          DescribeCostCategoryDefinitionResponse'+            Prelude.<$> (x Data..?> "CostCategory")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    DescribeCostCategoryDefinition+  where+  hashWithSalt+    _salt+    DescribeCostCategoryDefinition' {..} =+      _salt+        `Prelude.hashWithSalt` effectiveOn+        `Prelude.hashWithSalt` costCategoryArn++instance+  Prelude.NFData+    DescribeCostCategoryDefinition+  where+  rnf DescribeCostCategoryDefinition' {..} =+    Prelude.rnf effectiveOn+      `Prelude.seq` Prelude.rnf costCategoryArn++instance+  Data.ToHeaders+    DescribeCostCategoryDefinition+  where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSInsightsIndexService.DescribeCostCategoryDefinition" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON DescribeCostCategoryDefinition where+  toJSON DescribeCostCategoryDefinition' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("EffectiveOn" Data..=) Prelude.<$> effectiveOn,+            Prelude.Just+              ("CostCategoryArn" Data..= costCategoryArn)+          ]+      )++instance Data.ToPath DescribeCostCategoryDefinition where+  toPath = Prelude.const "/"++instance Data.ToQuery DescribeCostCategoryDefinition where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeCostCategoryDefinitionResponse' smart constructor.+data DescribeCostCategoryDefinitionResponse = DescribeCostCategoryDefinitionResponse'+  { costCategory :: Prelude.Maybe CostCategory,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeCostCategoryDefinitionResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'costCategory', 'describeCostCategoryDefinitionResponse_costCategory' - Undocumented member.+--+-- 'httpStatus', 'describeCostCategoryDefinitionResponse_httpStatus' - The response's http status code.+newDescribeCostCategoryDefinitionResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  DescribeCostCategoryDefinitionResponse+newDescribeCostCategoryDefinitionResponse+  pHttpStatus_ =+    DescribeCostCategoryDefinitionResponse'+      { costCategory =+          Prelude.Nothing,+        httpStatus = pHttpStatus_+      }++-- | Undocumented member.+describeCostCategoryDefinitionResponse_costCategory :: Lens.Lens' DescribeCostCategoryDefinitionResponse (Prelude.Maybe CostCategory)+describeCostCategoryDefinitionResponse_costCategory = Lens.lens (\DescribeCostCategoryDefinitionResponse' {costCategory} -> costCategory) (\s@DescribeCostCategoryDefinitionResponse' {} a -> s {costCategory = a} :: DescribeCostCategoryDefinitionResponse)++-- | The response's http status code.+describeCostCategoryDefinitionResponse_httpStatus :: Lens.Lens' DescribeCostCategoryDefinitionResponse Prelude.Int+describeCostCategoryDefinitionResponse_httpStatus = Lens.lens (\DescribeCostCategoryDefinitionResponse' {httpStatus} -> httpStatus) (\s@DescribeCostCategoryDefinitionResponse' {} a -> s {httpStatus = a} :: DescribeCostCategoryDefinitionResponse)++instance+  Prelude.NFData+    DescribeCostCategoryDefinitionResponse+  where+  rnf DescribeCostCategoryDefinitionResponse' {..} =+    Prelude.rnf costCategory+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/CostExplorer/GetAnomalies.hs view
@@ -0,0 +1,277 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.GetAnomalies+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves all of the cost anomalies detected on your account during the+-- time period that\'s specified by the @DateInterval@ object. Anomalies+-- are available for up to 90 days.+module Amazonka.CostExplorer.GetAnomalies+  ( -- * Creating a Request+    GetAnomalies (..),+    newGetAnomalies,++    -- * Request Lenses+    getAnomalies_feedback,+    getAnomalies_maxResults,+    getAnomalies_monitorArn,+    getAnomalies_nextPageToken,+    getAnomalies_totalImpact,+    getAnomalies_dateInterval,++    -- * Destructuring the Response+    GetAnomaliesResponse (..),+    newGetAnomaliesResponse,++    -- * Response Lenses+    getAnomaliesResponse_nextPageToken,+    getAnomaliesResponse_httpStatus,+    getAnomaliesResponse_anomalies,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CostExplorer.Types+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetAnomalies' smart constructor.+data GetAnomalies = GetAnomalies'+  { -- | Filters anomaly results by the feedback field on the anomaly object.+    feedback :: Prelude.Maybe AnomalyFeedbackType,+    -- | The number of entries a paginated response contains.+    maxResults :: Prelude.Maybe Prelude.Int,+    -- | Retrieves all of the cost anomalies detected for a specific cost anomaly+    -- monitor Amazon Resource Name (ARN).+    monitorArn :: Prelude.Maybe Prelude.Text,+    -- | The token to retrieve the next set of results. Amazon Web Services+    -- provides the token when the response from a previous call has more+    -- results than the maximum page size.+    nextPageToken :: Prelude.Maybe Prelude.Text,+    -- | Filters anomaly results by the total impact field on the anomaly object.+    -- For example, you can filter anomalies @GREATER_THAN 200.00@ to retrieve+    -- anomalies, with an estimated dollar impact greater than 200.+    totalImpact :: Prelude.Maybe TotalImpactFilter,+    -- | Assigns the start and end dates for retrieving cost anomalies. The+    -- returned anomaly object will have an @AnomalyEndDate@ in the specified+    -- time range.+    dateInterval :: AnomalyDateInterval+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetAnomalies' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'feedback', 'getAnomalies_feedback' - Filters anomaly results by the feedback field on the anomaly object.+--+-- 'maxResults', 'getAnomalies_maxResults' - The number of entries a paginated response contains.+--+-- 'monitorArn', 'getAnomalies_monitorArn' - Retrieves all of the cost anomalies detected for a specific cost anomaly+-- monitor Amazon Resource Name (ARN).+--+-- 'nextPageToken', 'getAnomalies_nextPageToken' - The token to retrieve the next set of results. Amazon Web Services+-- provides the token when the response from a previous call has more+-- results than the maximum page size.+--+-- 'totalImpact', 'getAnomalies_totalImpact' - Filters anomaly results by the total impact field on the anomaly object.+-- For example, you can filter anomalies @GREATER_THAN 200.00@ to retrieve+-- anomalies, with an estimated dollar impact greater than 200.+--+-- 'dateInterval', 'getAnomalies_dateInterval' - Assigns the start and end dates for retrieving cost anomalies. The+-- returned anomaly object will have an @AnomalyEndDate@ in the specified+-- time range.+newGetAnomalies ::+  -- | 'dateInterval'+  AnomalyDateInterval ->+  GetAnomalies+newGetAnomalies pDateInterval_ =+  GetAnomalies'+    { feedback = Prelude.Nothing,+      maxResults = Prelude.Nothing,+      monitorArn = Prelude.Nothing,+      nextPageToken = Prelude.Nothing,+      totalImpact = Prelude.Nothing,+      dateInterval = pDateInterval_+    }++-- | Filters anomaly results by the feedback field on the anomaly object.+getAnomalies_feedback :: Lens.Lens' GetAnomalies (Prelude.Maybe AnomalyFeedbackType)+getAnomalies_feedback = Lens.lens (\GetAnomalies' {feedback} -> feedback) (\s@GetAnomalies' {} a -> s {feedback = a} :: GetAnomalies)++-- | The number of entries a paginated response contains.+getAnomalies_maxResults :: Lens.Lens' GetAnomalies (Prelude.Maybe Prelude.Int)+getAnomalies_maxResults = Lens.lens (\GetAnomalies' {maxResults} -> maxResults) (\s@GetAnomalies' {} a -> s {maxResults = a} :: GetAnomalies)++-- | Retrieves all of the cost anomalies detected for a specific cost anomaly+-- monitor Amazon Resource Name (ARN).+getAnomalies_monitorArn :: Lens.Lens' GetAnomalies (Prelude.Maybe Prelude.Text)+getAnomalies_monitorArn = Lens.lens (\GetAnomalies' {monitorArn} -> monitorArn) (\s@GetAnomalies' {} a -> s {monitorArn = a} :: GetAnomalies)++-- | The token to retrieve the next set of results. Amazon Web Services+-- provides the token when the response from a previous call has more+-- results than the maximum page size.+getAnomalies_nextPageToken :: Lens.Lens' GetAnomalies (Prelude.Maybe Prelude.Text)+getAnomalies_nextPageToken = Lens.lens (\GetAnomalies' {nextPageToken} -> nextPageToken) (\s@GetAnomalies' {} a -> s {nextPageToken = a} :: GetAnomalies)++-- | Filters anomaly results by the total impact field on the anomaly object.+-- For example, you can filter anomalies @GREATER_THAN 200.00@ to retrieve+-- anomalies, with an estimated dollar impact greater than 200.+getAnomalies_totalImpact :: Lens.Lens' GetAnomalies (Prelude.Maybe TotalImpactFilter)+getAnomalies_totalImpact = Lens.lens (\GetAnomalies' {totalImpact} -> totalImpact) (\s@GetAnomalies' {} a -> s {totalImpact = a} :: GetAnomalies)++-- | Assigns the start and end dates for retrieving cost anomalies. The+-- returned anomaly object will have an @AnomalyEndDate@ in the specified+-- time range.+getAnomalies_dateInterval :: Lens.Lens' GetAnomalies AnomalyDateInterval+getAnomalies_dateInterval = Lens.lens (\GetAnomalies' {dateInterval} -> dateInterval) (\s@GetAnomalies' {} a -> s {dateInterval = a} :: GetAnomalies)++instance Core.AWSRequest GetAnomalies where+  type AWSResponse GetAnomalies = GetAnomaliesResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetAnomaliesResponse'+            Prelude.<$> (x Data..?> "NextPageToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..?> "Anomalies" Core..!@ Prelude.mempty)+      )++instance Prelude.Hashable GetAnomalies where+  hashWithSalt _salt GetAnomalies' {..} =+    _salt+      `Prelude.hashWithSalt` feedback+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` monitorArn+      `Prelude.hashWithSalt` nextPageToken+      `Prelude.hashWithSalt` totalImpact+      `Prelude.hashWithSalt` dateInterval++instance Prelude.NFData GetAnomalies where+  rnf GetAnomalies' {..} =+    Prelude.rnf feedback+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf monitorArn+      `Prelude.seq` Prelude.rnf nextPageToken+      `Prelude.seq` Prelude.rnf totalImpact+      `Prelude.seq` Prelude.rnf dateInterval++instance Data.ToHeaders GetAnomalies where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSInsightsIndexService.GetAnomalies" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON GetAnomalies where+  toJSON GetAnomalies' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Feedback" Data..=) Prelude.<$> feedback,+            ("MaxResults" Data..=) Prelude.<$> maxResults,+            ("MonitorArn" Data..=) Prelude.<$> monitorArn,+            ("NextPageToken" Data..=) Prelude.<$> nextPageToken,+            ("TotalImpact" Data..=) Prelude.<$> totalImpact,+            Prelude.Just ("DateInterval" Data..= dateInterval)+          ]+      )++instance Data.ToPath GetAnomalies where+  toPath = Prelude.const "/"++instance Data.ToQuery GetAnomalies where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetAnomaliesResponse' smart constructor.+data GetAnomaliesResponse = GetAnomaliesResponse'+  { -- | The token to retrieve the next set of results. Amazon Web Services+    -- provides the token when the response from a previous call has more+    -- results than the maximum page size.+    nextPageToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | A list of cost anomalies.+    anomalies :: [Anomaly]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetAnomaliesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'nextPageToken', 'getAnomaliesResponse_nextPageToken' - The token to retrieve the next set of results. Amazon Web Services+-- provides the token when the response from a previous call has more+-- results than the maximum page size.+--+-- 'httpStatus', 'getAnomaliesResponse_httpStatus' - The response's http status code.+--+-- 'anomalies', 'getAnomaliesResponse_anomalies' - A list of cost anomalies.+newGetAnomaliesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetAnomaliesResponse+newGetAnomaliesResponse pHttpStatus_ =+  GetAnomaliesResponse'+    { nextPageToken =+        Prelude.Nothing,+      httpStatus = pHttpStatus_,+      anomalies = Prelude.mempty+    }++-- | The token to retrieve the next set of results. Amazon Web Services+-- provides the token when the response from a previous call has more+-- results than the maximum page size.+getAnomaliesResponse_nextPageToken :: Lens.Lens' GetAnomaliesResponse (Prelude.Maybe Prelude.Text)+getAnomaliesResponse_nextPageToken = Lens.lens (\GetAnomaliesResponse' {nextPageToken} -> nextPageToken) (\s@GetAnomaliesResponse' {} a -> s {nextPageToken = a} :: GetAnomaliesResponse)++-- | The response's http status code.+getAnomaliesResponse_httpStatus :: Lens.Lens' GetAnomaliesResponse Prelude.Int+getAnomaliesResponse_httpStatus = Lens.lens (\GetAnomaliesResponse' {httpStatus} -> httpStatus) (\s@GetAnomaliesResponse' {} a -> s {httpStatus = a} :: GetAnomaliesResponse)++-- | A list of cost anomalies.+getAnomaliesResponse_anomalies :: Lens.Lens' GetAnomaliesResponse [Anomaly]+getAnomaliesResponse_anomalies = Lens.lens (\GetAnomaliesResponse' {anomalies} -> anomalies) (\s@GetAnomaliesResponse' {} a -> s {anomalies = a} :: GetAnomaliesResponse) Prelude.. Lens.coerced++instance Prelude.NFData GetAnomaliesResponse where+  rnf GetAnomaliesResponse' {..} =+    Prelude.rnf nextPageToken+      `Prelude.seq` Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf anomalies
+ gen/Amazonka/CostExplorer/GetAnomalyMonitors.hs view
@@ -0,0 +1,230 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.GetAnomalyMonitors+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves the cost anomaly monitor definitions for your account. You can+-- filter using a list of cost anomaly monitor Amazon Resource Names+-- (ARNs).+module Amazonka.CostExplorer.GetAnomalyMonitors+  ( -- * Creating a Request+    GetAnomalyMonitors (..),+    newGetAnomalyMonitors,++    -- * Request Lenses+    getAnomalyMonitors_maxResults,+    getAnomalyMonitors_monitorArnList,+    getAnomalyMonitors_nextPageToken,++    -- * Destructuring the Response+    GetAnomalyMonitorsResponse (..),+    newGetAnomalyMonitorsResponse,++    -- * Response Lenses+    getAnomalyMonitorsResponse_nextPageToken,+    getAnomalyMonitorsResponse_httpStatus,+    getAnomalyMonitorsResponse_anomalyMonitors,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CostExplorer.Types+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetAnomalyMonitors' smart constructor.+data GetAnomalyMonitors = GetAnomalyMonitors'+  { -- | The number of entries that a paginated response contains.+    maxResults :: Prelude.Maybe Prelude.Int,+    -- | A list of cost anomaly monitor ARNs.+    monitorArnList :: Prelude.Maybe [Prelude.Text],+    -- | The token to retrieve the next set of results. Amazon Web Services+    -- provides the token when the response from a previous call has more+    -- results than the maximum page size.+    nextPageToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetAnomalyMonitors' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'maxResults', 'getAnomalyMonitors_maxResults' - The number of entries that a paginated response contains.+--+-- 'monitorArnList', 'getAnomalyMonitors_monitorArnList' - A list of cost anomaly monitor ARNs.+--+-- 'nextPageToken', 'getAnomalyMonitors_nextPageToken' - The token to retrieve the next set of results. Amazon Web Services+-- provides the token when the response from a previous call has more+-- results than the maximum page size.+newGetAnomalyMonitors ::+  GetAnomalyMonitors+newGetAnomalyMonitors =+  GetAnomalyMonitors'+    { maxResults = Prelude.Nothing,+      monitorArnList = Prelude.Nothing,+      nextPageToken = Prelude.Nothing+    }++-- | The number of entries that a paginated response contains.+getAnomalyMonitors_maxResults :: Lens.Lens' GetAnomalyMonitors (Prelude.Maybe Prelude.Int)+getAnomalyMonitors_maxResults = Lens.lens (\GetAnomalyMonitors' {maxResults} -> maxResults) (\s@GetAnomalyMonitors' {} a -> s {maxResults = a} :: GetAnomalyMonitors)++-- | A list of cost anomaly monitor ARNs.+getAnomalyMonitors_monitorArnList :: Lens.Lens' GetAnomalyMonitors (Prelude.Maybe [Prelude.Text])+getAnomalyMonitors_monitorArnList = Lens.lens (\GetAnomalyMonitors' {monitorArnList} -> monitorArnList) (\s@GetAnomalyMonitors' {} a -> s {monitorArnList = a} :: GetAnomalyMonitors) Prelude.. Lens.mapping Lens.coerced++-- | The token to retrieve the next set of results. Amazon Web Services+-- provides the token when the response from a previous call has more+-- results than the maximum page size.+getAnomalyMonitors_nextPageToken :: Lens.Lens' GetAnomalyMonitors (Prelude.Maybe Prelude.Text)+getAnomalyMonitors_nextPageToken = Lens.lens (\GetAnomalyMonitors' {nextPageToken} -> nextPageToken) (\s@GetAnomalyMonitors' {} a -> s {nextPageToken = a} :: GetAnomalyMonitors)++instance Core.AWSRequest GetAnomalyMonitors where+  type+    AWSResponse GetAnomalyMonitors =+      GetAnomalyMonitorsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetAnomalyMonitorsResponse'+            Prelude.<$> (x Data..?> "NextPageToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> ( x+                            Data..?> "AnomalyMonitors"+                            Core..!@ Prelude.mempty+                        )+      )++instance Prelude.Hashable GetAnomalyMonitors where+  hashWithSalt _salt GetAnomalyMonitors' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` monitorArnList+      `Prelude.hashWithSalt` nextPageToken++instance Prelude.NFData GetAnomalyMonitors where+  rnf GetAnomalyMonitors' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf monitorArnList+      `Prelude.seq` Prelude.rnf nextPageToken++instance Data.ToHeaders GetAnomalyMonitors where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSInsightsIndexService.GetAnomalyMonitors" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON GetAnomalyMonitors where+  toJSON GetAnomalyMonitors' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("MaxResults" Data..=) Prelude.<$> maxResults,+            ("MonitorArnList" Data..=)+              Prelude.<$> monitorArnList,+            ("NextPageToken" Data..=) Prelude.<$> nextPageToken+          ]+      )++instance Data.ToPath GetAnomalyMonitors where+  toPath = Prelude.const "/"++instance Data.ToQuery GetAnomalyMonitors where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetAnomalyMonitorsResponse' smart constructor.+data GetAnomalyMonitorsResponse = GetAnomalyMonitorsResponse'+  { -- | The token to retrieve the next set of results. Amazon Web Services+    -- provides the token when the response from a previous call has more+    -- results than the maximum page size.+    nextPageToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | A list of cost anomaly monitors that includes the detailed metadata for+    -- each monitor.+    anomalyMonitors :: [AnomalyMonitor]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetAnomalyMonitorsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'nextPageToken', 'getAnomalyMonitorsResponse_nextPageToken' - The token to retrieve the next set of results. Amazon Web Services+-- provides the token when the response from a previous call has more+-- results than the maximum page size.+--+-- 'httpStatus', 'getAnomalyMonitorsResponse_httpStatus' - The response's http status code.+--+-- 'anomalyMonitors', 'getAnomalyMonitorsResponse_anomalyMonitors' - A list of cost anomaly monitors that includes the detailed metadata for+-- each monitor.+newGetAnomalyMonitorsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetAnomalyMonitorsResponse+newGetAnomalyMonitorsResponse pHttpStatus_ =+  GetAnomalyMonitorsResponse'+    { nextPageToken =+        Prelude.Nothing,+      httpStatus = pHttpStatus_,+      anomalyMonitors = Prelude.mempty+    }++-- | The token to retrieve the next set of results. Amazon Web Services+-- provides the token when the response from a previous call has more+-- results than the maximum page size.+getAnomalyMonitorsResponse_nextPageToken :: Lens.Lens' GetAnomalyMonitorsResponse (Prelude.Maybe Prelude.Text)+getAnomalyMonitorsResponse_nextPageToken = Lens.lens (\GetAnomalyMonitorsResponse' {nextPageToken} -> nextPageToken) (\s@GetAnomalyMonitorsResponse' {} a -> s {nextPageToken = a} :: GetAnomalyMonitorsResponse)++-- | The response's http status code.+getAnomalyMonitorsResponse_httpStatus :: Lens.Lens' GetAnomalyMonitorsResponse Prelude.Int+getAnomalyMonitorsResponse_httpStatus = Lens.lens (\GetAnomalyMonitorsResponse' {httpStatus} -> httpStatus) (\s@GetAnomalyMonitorsResponse' {} a -> s {httpStatus = a} :: GetAnomalyMonitorsResponse)++-- | A list of cost anomaly monitors that includes the detailed metadata for+-- each monitor.+getAnomalyMonitorsResponse_anomalyMonitors :: Lens.Lens' GetAnomalyMonitorsResponse [AnomalyMonitor]+getAnomalyMonitorsResponse_anomalyMonitors = Lens.lens (\GetAnomalyMonitorsResponse' {anomalyMonitors} -> anomalyMonitors) (\s@GetAnomalyMonitorsResponse' {} a -> s {anomalyMonitors = a} :: GetAnomalyMonitorsResponse) Prelude.. Lens.coerced++instance Prelude.NFData GetAnomalyMonitorsResponse where+  rnf GetAnomalyMonitorsResponse' {..} =+    Prelude.rnf nextPageToken+      `Prelude.seq` Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf anomalyMonitors
+ gen/Amazonka/CostExplorer/GetAnomalySubscriptions.hs view
@@ -0,0 +1,247 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.GetAnomalySubscriptions+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves the cost anomaly subscription objects for your account. You+-- can filter using a list of cost anomaly monitor Amazon Resource Names+-- (ARNs).+module Amazonka.CostExplorer.GetAnomalySubscriptions+  ( -- * Creating a Request+    GetAnomalySubscriptions (..),+    newGetAnomalySubscriptions,++    -- * Request Lenses+    getAnomalySubscriptions_maxResults,+    getAnomalySubscriptions_monitorArn,+    getAnomalySubscriptions_nextPageToken,+    getAnomalySubscriptions_subscriptionArnList,++    -- * Destructuring the Response+    GetAnomalySubscriptionsResponse (..),+    newGetAnomalySubscriptionsResponse,++    -- * Response Lenses+    getAnomalySubscriptionsResponse_nextPageToken,+    getAnomalySubscriptionsResponse_httpStatus,+    getAnomalySubscriptionsResponse_anomalySubscriptions,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CostExplorer.Types+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetAnomalySubscriptions' smart constructor.+data GetAnomalySubscriptions = GetAnomalySubscriptions'+  { -- | The number of entries a paginated response contains.+    maxResults :: Prelude.Maybe Prelude.Int,+    -- | Cost anomaly monitor ARNs.+    monitorArn :: Prelude.Maybe Prelude.Text,+    -- | The token to retrieve the next set of results. Amazon Web Services+    -- provides the token when the response from a previous call has more+    -- results than the maximum page size.+    nextPageToken :: Prelude.Maybe Prelude.Text,+    -- | A list of cost anomaly subscription ARNs.+    subscriptionArnList :: Prelude.Maybe [Prelude.Text]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetAnomalySubscriptions' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'maxResults', 'getAnomalySubscriptions_maxResults' - The number of entries a paginated response contains.+--+-- 'monitorArn', 'getAnomalySubscriptions_monitorArn' - Cost anomaly monitor ARNs.+--+-- 'nextPageToken', 'getAnomalySubscriptions_nextPageToken' - The token to retrieve the next set of results. Amazon Web Services+-- provides the token when the response from a previous call has more+-- results than the maximum page size.+--+-- 'subscriptionArnList', 'getAnomalySubscriptions_subscriptionArnList' - A list of cost anomaly subscription ARNs.+newGetAnomalySubscriptions ::+  GetAnomalySubscriptions+newGetAnomalySubscriptions =+  GetAnomalySubscriptions'+    { maxResults =+        Prelude.Nothing,+      monitorArn = Prelude.Nothing,+      nextPageToken = Prelude.Nothing,+      subscriptionArnList = Prelude.Nothing+    }++-- | The number of entries a paginated response contains.+getAnomalySubscriptions_maxResults :: Lens.Lens' GetAnomalySubscriptions (Prelude.Maybe Prelude.Int)+getAnomalySubscriptions_maxResults = Lens.lens (\GetAnomalySubscriptions' {maxResults} -> maxResults) (\s@GetAnomalySubscriptions' {} a -> s {maxResults = a} :: GetAnomalySubscriptions)++-- | Cost anomaly monitor ARNs.+getAnomalySubscriptions_monitorArn :: Lens.Lens' GetAnomalySubscriptions (Prelude.Maybe Prelude.Text)+getAnomalySubscriptions_monitorArn = Lens.lens (\GetAnomalySubscriptions' {monitorArn} -> monitorArn) (\s@GetAnomalySubscriptions' {} a -> s {monitorArn = a} :: GetAnomalySubscriptions)++-- | The token to retrieve the next set of results. Amazon Web Services+-- provides the token when the response from a previous call has more+-- results than the maximum page size.+getAnomalySubscriptions_nextPageToken :: Lens.Lens' GetAnomalySubscriptions (Prelude.Maybe Prelude.Text)+getAnomalySubscriptions_nextPageToken = Lens.lens (\GetAnomalySubscriptions' {nextPageToken} -> nextPageToken) (\s@GetAnomalySubscriptions' {} a -> s {nextPageToken = a} :: GetAnomalySubscriptions)++-- | A list of cost anomaly subscription ARNs.+getAnomalySubscriptions_subscriptionArnList :: Lens.Lens' GetAnomalySubscriptions (Prelude.Maybe [Prelude.Text])+getAnomalySubscriptions_subscriptionArnList = Lens.lens (\GetAnomalySubscriptions' {subscriptionArnList} -> subscriptionArnList) (\s@GetAnomalySubscriptions' {} a -> s {subscriptionArnList = a} :: GetAnomalySubscriptions) Prelude.. Lens.mapping Lens.coerced++instance Core.AWSRequest GetAnomalySubscriptions where+  type+    AWSResponse GetAnomalySubscriptions =+      GetAnomalySubscriptionsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetAnomalySubscriptionsResponse'+            Prelude.<$> (x Data..?> "NextPageToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> ( x+                            Data..?> "AnomalySubscriptions"+                            Core..!@ Prelude.mempty+                        )+      )++instance Prelude.Hashable GetAnomalySubscriptions where+  hashWithSalt _salt GetAnomalySubscriptions' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` monitorArn+      `Prelude.hashWithSalt` nextPageToken+      `Prelude.hashWithSalt` subscriptionArnList++instance Prelude.NFData GetAnomalySubscriptions where+  rnf GetAnomalySubscriptions' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf monitorArn+      `Prelude.seq` Prelude.rnf nextPageToken+      `Prelude.seq` Prelude.rnf subscriptionArnList++instance Data.ToHeaders GetAnomalySubscriptions where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSInsightsIndexService.GetAnomalySubscriptions" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON GetAnomalySubscriptions where+  toJSON GetAnomalySubscriptions' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("MaxResults" Data..=) Prelude.<$> maxResults,+            ("MonitorArn" Data..=) Prelude.<$> monitorArn,+            ("NextPageToken" Data..=) Prelude.<$> nextPageToken,+            ("SubscriptionArnList" Data..=)+              Prelude.<$> subscriptionArnList+          ]+      )++instance Data.ToPath GetAnomalySubscriptions where+  toPath = Prelude.const "/"++instance Data.ToQuery GetAnomalySubscriptions where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetAnomalySubscriptionsResponse' smart constructor.+data GetAnomalySubscriptionsResponse = GetAnomalySubscriptionsResponse'+  { -- | The token to retrieve the next set of results. Amazon Web Services+    -- provides the token when the response from a previous call has more+    -- results than the maximum page size.+    nextPageToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | A list of cost anomaly subscriptions that includes the detailed metadata+    -- for each one.+    anomalySubscriptions :: [AnomalySubscription]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetAnomalySubscriptionsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'nextPageToken', 'getAnomalySubscriptionsResponse_nextPageToken' - The token to retrieve the next set of results. Amazon Web Services+-- provides the token when the response from a previous call has more+-- results than the maximum page size.+--+-- 'httpStatus', 'getAnomalySubscriptionsResponse_httpStatus' - The response's http status code.+--+-- 'anomalySubscriptions', 'getAnomalySubscriptionsResponse_anomalySubscriptions' - A list of cost anomaly subscriptions that includes the detailed metadata+-- for each one.+newGetAnomalySubscriptionsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetAnomalySubscriptionsResponse+newGetAnomalySubscriptionsResponse pHttpStatus_ =+  GetAnomalySubscriptionsResponse'+    { nextPageToken =+        Prelude.Nothing,+      httpStatus = pHttpStatus_,+      anomalySubscriptions = Prelude.mempty+    }++-- | The token to retrieve the next set of results. Amazon Web Services+-- provides the token when the response from a previous call has more+-- results than the maximum page size.+getAnomalySubscriptionsResponse_nextPageToken :: Lens.Lens' GetAnomalySubscriptionsResponse (Prelude.Maybe Prelude.Text)+getAnomalySubscriptionsResponse_nextPageToken = Lens.lens (\GetAnomalySubscriptionsResponse' {nextPageToken} -> nextPageToken) (\s@GetAnomalySubscriptionsResponse' {} a -> s {nextPageToken = a} :: GetAnomalySubscriptionsResponse)++-- | The response's http status code.+getAnomalySubscriptionsResponse_httpStatus :: Lens.Lens' GetAnomalySubscriptionsResponse Prelude.Int+getAnomalySubscriptionsResponse_httpStatus = Lens.lens (\GetAnomalySubscriptionsResponse' {httpStatus} -> httpStatus) (\s@GetAnomalySubscriptionsResponse' {} a -> s {httpStatus = a} :: GetAnomalySubscriptionsResponse)++-- | A list of cost anomaly subscriptions that includes the detailed metadata+-- for each one.+getAnomalySubscriptionsResponse_anomalySubscriptions :: Lens.Lens' GetAnomalySubscriptionsResponse [AnomalySubscription]+getAnomalySubscriptionsResponse_anomalySubscriptions = Lens.lens (\GetAnomalySubscriptionsResponse' {anomalySubscriptions} -> anomalySubscriptions) (\s@GetAnomalySubscriptionsResponse' {} a -> s {anomalySubscriptions = a} :: GetAnomalySubscriptionsResponse) Prelude.. Lens.coerced++instance+  Prelude.NFData+    GetAnomalySubscriptionsResponse+  where+  rnf GetAnomalySubscriptionsResponse' {..} =+    Prelude.rnf nextPageToken+      `Prelude.seq` Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf anomalySubscriptions
+ gen/Amazonka/CostExplorer/GetCostAndUsage.hs view
@@ -0,0 +1,444 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.GetCostAndUsage+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves cost and usage metrics for your account. You can specify which+-- cost and usage-related metric that you want the request to return. For+-- example, you can specify @BlendedCosts@ or @UsageQuantity@. You can also+-- filter and group your data by various dimensions, such as @SERVICE@ or+-- @AZ@, in a specific time range. For a complete list of valid dimensions,+-- see the+-- <https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_GetDimensionValues.html GetDimensionValues>+-- operation. Management account in an organization in Organizations have+-- access to all member accounts.+--+-- For information about filter limitations, see+-- <https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/billing-limits.html Quotas and restrictions>+-- in the /Billing and Cost Management User Guide/.+module Amazonka.CostExplorer.GetCostAndUsage+  ( -- * Creating a Request+    GetCostAndUsage (..),+    newGetCostAndUsage,++    -- * Request Lenses+    getCostAndUsage_filter,+    getCostAndUsage_groupBy,+    getCostAndUsage_nextPageToken,+    getCostAndUsage_timePeriod,+    getCostAndUsage_granularity,+    getCostAndUsage_metrics,++    -- * Destructuring the Response+    GetCostAndUsageResponse (..),+    newGetCostAndUsageResponse,++    -- * Response Lenses+    getCostAndUsageResponse_dimensionValueAttributes,+    getCostAndUsageResponse_groupDefinitions,+    getCostAndUsageResponse_nextPageToken,+    getCostAndUsageResponse_resultsByTime,+    getCostAndUsageResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CostExplorer.Types+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetCostAndUsage' smart constructor.+data GetCostAndUsage = GetCostAndUsage'+  { -- | Filters Amazon Web Services costs by different dimensions. For example,+    -- you can specify @SERVICE@ and @LINKED_ACCOUNT@ and get the costs that+    -- are associated with that account\'s usage of that service. You can nest+    -- @Expression@ objects to define any combination of dimension filters. For+    -- more information, see+    -- <https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html Expression>.+    --+    -- Valid values for @MatchOptions@ for @Dimensions@ are @EQUALS@ and+    -- @CASE_SENSITIVE@.+    --+    -- Valid values for @MatchOptions@ for @CostCategories@ and @Tags@ are+    -- @EQUALS@, @ABSENT@, and @CASE_SENSITIVE@. Default values are @EQUALS@+    -- and @CASE_SENSITIVE@.+    filter' :: Prelude.Maybe Expression,+    -- | You can group Amazon Web Services costs using up to two different+    -- groups, either dimensions, tag keys, cost categories, or any two group+    -- by types.+    --+    -- Valid values for the @DIMENSION@ type are @AZ@, @INSTANCE_TYPE@,+    -- @LEGAL_ENTITY_NAME@, @INVOICING_ENTITY@, @LINKED_ACCOUNT@, @OPERATION@,+    -- @PLATFORM@, @PURCHASE_TYPE@, @SERVICE@, @TENANCY@, @RECORD_TYPE@, and+    -- @USAGE_TYPE@.+    --+    -- When you group by the @TAG@ type and include a valid tag key, you get+    -- all tag values, including empty strings.+    groupBy :: Prelude.Maybe [GroupDefinition],+    -- | The token to retrieve the next set of results. Amazon Web Services+    -- provides the token when the response from a previous call has more+    -- results than the maximum page size.+    nextPageToken :: Prelude.Maybe Prelude.Text,+    -- | Sets the start date and end date for retrieving Amazon Web Services+    -- costs. The start date is inclusive, but the end date is exclusive. For+    -- example, if @start@ is @2017-01-01@ and @end@ is @2017-05-01@, then the+    -- cost and usage data is retrieved from @2017-01-01@ up to and including+    -- @2017-04-30@ but not including @2017-05-01@.+    timePeriod :: DateInterval,+    -- | Sets the Amazon Web Services cost granularity to @MONTHLY@ or @DAILY@,+    -- or @HOURLY@. If @Granularity@ isn\'t set, the response object doesn\'t+    -- include the @Granularity@, either @MONTHLY@ or @DAILY@, or @HOURLY@.+    granularity :: Granularity,+    -- | Which metrics are returned in the query. For more information about+    -- blended and unblended rates, see+    -- <http://aws.amazon.com/premiumsupport/knowledge-center/blended-rates-intro/ Why does the \"blended\" annotation appear on some line items in my bill?>.+    --+    -- Valid values are @AmortizedCost@, @BlendedCost@, @NetAmortizedCost@,+    -- @NetUnblendedCost@, @NormalizedUsageAmount@, @UnblendedCost@, and+    -- @UsageQuantity@.+    --+    -- If you return the @UsageQuantity@ metric, the service aggregates all+    -- usage numbers without taking into account the units. For example, if you+    -- aggregate @usageQuantity@ across all of Amazon EC2, the results aren\'t+    -- meaningful because Amazon EC2 compute hours and data transfer are+    -- measured in different units (for example, hours and GB). To get more+    -- meaningful @UsageQuantity@ metrics, filter by @UsageType@ or+    -- @UsageTypeGroups@.+    --+    -- @Metrics@ is required for @GetCostAndUsage@ requests.+    metrics :: [Prelude.Text]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetCostAndUsage' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'filter'', 'getCostAndUsage_filter' - Filters Amazon Web Services costs by different dimensions. For example,+-- you can specify @SERVICE@ and @LINKED_ACCOUNT@ and get the costs that+-- are associated with that account\'s usage of that service. You can nest+-- @Expression@ objects to define any combination of dimension filters. For+-- more information, see+-- <https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html Expression>.+--+-- Valid values for @MatchOptions@ for @Dimensions@ are @EQUALS@ and+-- @CASE_SENSITIVE@.+--+-- Valid values for @MatchOptions@ for @CostCategories@ and @Tags@ are+-- @EQUALS@, @ABSENT@, and @CASE_SENSITIVE@. Default values are @EQUALS@+-- and @CASE_SENSITIVE@.+--+-- 'groupBy', 'getCostAndUsage_groupBy' - You can group Amazon Web Services costs using up to two different+-- groups, either dimensions, tag keys, cost categories, or any two group+-- by types.+--+-- Valid values for the @DIMENSION@ type are @AZ@, @INSTANCE_TYPE@,+-- @LEGAL_ENTITY_NAME@, @INVOICING_ENTITY@, @LINKED_ACCOUNT@, @OPERATION@,+-- @PLATFORM@, @PURCHASE_TYPE@, @SERVICE@, @TENANCY@, @RECORD_TYPE@, and+-- @USAGE_TYPE@.+--+-- When you group by the @TAG@ type and include a valid tag key, you get+-- all tag values, including empty strings.+--+-- 'nextPageToken', 'getCostAndUsage_nextPageToken' - The token to retrieve the next set of results. Amazon Web Services+-- provides the token when the response from a previous call has more+-- results than the maximum page size.+--+-- 'timePeriod', 'getCostAndUsage_timePeriod' - Sets the start date and end date for retrieving Amazon Web Services+-- costs. The start date is inclusive, but the end date is exclusive. For+-- example, if @start@ is @2017-01-01@ and @end@ is @2017-05-01@, then the+-- cost and usage data is retrieved from @2017-01-01@ up to and including+-- @2017-04-30@ but not including @2017-05-01@.+--+-- 'granularity', 'getCostAndUsage_granularity' - Sets the Amazon Web Services cost granularity to @MONTHLY@ or @DAILY@,+-- or @HOURLY@. If @Granularity@ isn\'t set, the response object doesn\'t+-- include the @Granularity@, either @MONTHLY@ or @DAILY@, or @HOURLY@.+--+-- 'metrics', 'getCostAndUsage_metrics' - Which metrics are returned in the query. For more information about+-- blended and unblended rates, see+-- <http://aws.amazon.com/premiumsupport/knowledge-center/blended-rates-intro/ Why does the \"blended\" annotation appear on some line items in my bill?>.+--+-- Valid values are @AmortizedCost@, @BlendedCost@, @NetAmortizedCost@,+-- @NetUnblendedCost@, @NormalizedUsageAmount@, @UnblendedCost@, and+-- @UsageQuantity@.+--+-- If you return the @UsageQuantity@ metric, the service aggregates all+-- usage numbers without taking into account the units. For example, if you+-- aggregate @usageQuantity@ across all of Amazon EC2, the results aren\'t+-- meaningful because Amazon EC2 compute hours and data transfer are+-- measured in different units (for example, hours and GB). To get more+-- meaningful @UsageQuantity@ metrics, filter by @UsageType@ or+-- @UsageTypeGroups@.+--+-- @Metrics@ is required for @GetCostAndUsage@ requests.+newGetCostAndUsage ::+  -- | 'timePeriod'+  DateInterval ->+  -- | 'granularity'+  Granularity ->+  GetCostAndUsage+newGetCostAndUsage pTimePeriod_ pGranularity_ =+  GetCostAndUsage'+    { filter' = Prelude.Nothing,+      groupBy = Prelude.Nothing,+      nextPageToken = Prelude.Nothing,+      timePeriod = pTimePeriod_,+      granularity = pGranularity_,+      metrics = Prelude.mempty+    }++-- | Filters Amazon Web Services costs by different dimensions. For example,+-- you can specify @SERVICE@ and @LINKED_ACCOUNT@ and get the costs that+-- are associated with that account\'s usage of that service. You can nest+-- @Expression@ objects to define any combination of dimension filters. For+-- more information, see+-- <https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html Expression>.+--+-- Valid values for @MatchOptions@ for @Dimensions@ are @EQUALS@ and+-- @CASE_SENSITIVE@.+--+-- Valid values for @MatchOptions@ for @CostCategories@ and @Tags@ are+-- @EQUALS@, @ABSENT@, and @CASE_SENSITIVE@. Default values are @EQUALS@+-- and @CASE_SENSITIVE@.+getCostAndUsage_filter :: Lens.Lens' GetCostAndUsage (Prelude.Maybe Expression)+getCostAndUsage_filter = Lens.lens (\GetCostAndUsage' {filter'} -> filter') (\s@GetCostAndUsage' {} a -> s {filter' = a} :: GetCostAndUsage)++-- | You can group Amazon Web Services costs using up to two different+-- groups, either dimensions, tag keys, cost categories, or any two group+-- by types.+--+-- Valid values for the @DIMENSION@ type are @AZ@, @INSTANCE_TYPE@,+-- @LEGAL_ENTITY_NAME@, @INVOICING_ENTITY@, @LINKED_ACCOUNT@, @OPERATION@,+-- @PLATFORM@, @PURCHASE_TYPE@, @SERVICE@, @TENANCY@, @RECORD_TYPE@, and+-- @USAGE_TYPE@.+--+-- When you group by the @TAG@ type and include a valid tag key, you get+-- all tag values, including empty strings.+getCostAndUsage_groupBy :: Lens.Lens' GetCostAndUsage (Prelude.Maybe [GroupDefinition])+getCostAndUsage_groupBy = Lens.lens (\GetCostAndUsage' {groupBy} -> groupBy) (\s@GetCostAndUsage' {} a -> s {groupBy = a} :: GetCostAndUsage) Prelude.. Lens.mapping Lens.coerced++-- | The token to retrieve the next set of results. Amazon Web Services+-- provides the token when the response from a previous call has more+-- results than the maximum page size.+getCostAndUsage_nextPageToken :: Lens.Lens' GetCostAndUsage (Prelude.Maybe Prelude.Text)+getCostAndUsage_nextPageToken = Lens.lens (\GetCostAndUsage' {nextPageToken} -> nextPageToken) (\s@GetCostAndUsage' {} a -> s {nextPageToken = a} :: GetCostAndUsage)++-- | Sets the start date and end date for retrieving Amazon Web Services+-- costs. The start date is inclusive, but the end date is exclusive. For+-- example, if @start@ is @2017-01-01@ and @end@ is @2017-05-01@, then the+-- cost and usage data is retrieved from @2017-01-01@ up to and including+-- @2017-04-30@ but not including @2017-05-01@.+getCostAndUsage_timePeriod :: Lens.Lens' GetCostAndUsage DateInterval+getCostAndUsage_timePeriod = Lens.lens (\GetCostAndUsage' {timePeriod} -> timePeriod) (\s@GetCostAndUsage' {} a -> s {timePeriod = a} :: GetCostAndUsage)++-- | Sets the Amazon Web Services cost granularity to @MONTHLY@ or @DAILY@,+-- or @HOURLY@. If @Granularity@ isn\'t set, the response object doesn\'t+-- include the @Granularity@, either @MONTHLY@ or @DAILY@, or @HOURLY@.+getCostAndUsage_granularity :: Lens.Lens' GetCostAndUsage Granularity+getCostAndUsage_granularity = Lens.lens (\GetCostAndUsage' {granularity} -> granularity) (\s@GetCostAndUsage' {} a -> s {granularity = a} :: GetCostAndUsage)++-- | Which metrics are returned in the query. For more information about+-- blended and unblended rates, see+-- <http://aws.amazon.com/premiumsupport/knowledge-center/blended-rates-intro/ Why does the \"blended\" annotation appear on some line items in my bill?>.+--+-- Valid values are @AmortizedCost@, @BlendedCost@, @NetAmortizedCost@,+-- @NetUnblendedCost@, @NormalizedUsageAmount@, @UnblendedCost@, and+-- @UsageQuantity@.+--+-- If you return the @UsageQuantity@ metric, the service aggregates all+-- usage numbers without taking into account the units. For example, if you+-- aggregate @usageQuantity@ across all of Amazon EC2, the results aren\'t+-- meaningful because Amazon EC2 compute hours and data transfer are+-- measured in different units (for example, hours and GB). To get more+-- meaningful @UsageQuantity@ metrics, filter by @UsageType@ or+-- @UsageTypeGroups@.+--+-- @Metrics@ is required for @GetCostAndUsage@ requests.+getCostAndUsage_metrics :: Lens.Lens' GetCostAndUsage [Prelude.Text]+getCostAndUsage_metrics = Lens.lens (\GetCostAndUsage' {metrics} -> metrics) (\s@GetCostAndUsage' {} a -> s {metrics = a} :: GetCostAndUsage) Prelude.. Lens.coerced++instance Core.AWSRequest GetCostAndUsage where+  type+    AWSResponse GetCostAndUsage =+      GetCostAndUsageResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetCostAndUsageResponse'+            Prelude.<$> ( x+                            Data..?> "DimensionValueAttributes"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> ( x+                            Data..?> "GroupDefinitions"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "NextPageToken")+            Prelude.<*> (x Data..?> "ResultsByTime" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetCostAndUsage where+  hashWithSalt _salt GetCostAndUsage' {..} =+    _salt+      `Prelude.hashWithSalt` filter'+      `Prelude.hashWithSalt` groupBy+      `Prelude.hashWithSalt` nextPageToken+      `Prelude.hashWithSalt` timePeriod+      `Prelude.hashWithSalt` granularity+      `Prelude.hashWithSalt` metrics++instance Prelude.NFData GetCostAndUsage where+  rnf GetCostAndUsage' {..} =+    Prelude.rnf filter'+      `Prelude.seq` Prelude.rnf groupBy+      `Prelude.seq` Prelude.rnf nextPageToken+      `Prelude.seq` Prelude.rnf timePeriod+      `Prelude.seq` Prelude.rnf granularity+      `Prelude.seq` Prelude.rnf metrics++instance Data.ToHeaders GetCostAndUsage where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSInsightsIndexService.GetCostAndUsage" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON GetCostAndUsage where+  toJSON GetCostAndUsage' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Filter" Data..=) Prelude.<$> filter',+            ("GroupBy" Data..=) Prelude.<$> groupBy,+            ("NextPageToken" Data..=) Prelude.<$> nextPageToken,+            Prelude.Just ("TimePeriod" Data..= timePeriod),+            Prelude.Just ("Granularity" Data..= granularity),+            Prelude.Just ("Metrics" Data..= metrics)+          ]+      )++instance Data.ToPath GetCostAndUsage where+  toPath = Prelude.const "/"++instance Data.ToQuery GetCostAndUsage where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetCostAndUsageResponse' smart constructor.+data GetCostAndUsageResponse = GetCostAndUsageResponse'+  { -- | The attributes that apply to a specific dimension value. For example, if+    -- the value is a linked account, the attribute is that account name.+    dimensionValueAttributes :: Prelude.Maybe [DimensionValuesWithAttributes],+    -- | The groups that are specified by the @Filter@ or @GroupBy@ parameters in+    -- the request.+    groupDefinitions :: Prelude.Maybe [GroupDefinition],+    -- | The token for the next set of retrievable results. Amazon Web Services+    -- provides the token when the response from a previous call has more+    -- results than the maximum page size.+    nextPageToken :: Prelude.Maybe Prelude.Text,+    -- | The time period that\'s covered by the results in the response.+    resultsByTime :: Prelude.Maybe [ResultByTime],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetCostAndUsageResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dimensionValueAttributes', 'getCostAndUsageResponse_dimensionValueAttributes' - The attributes that apply to a specific dimension value. For example, if+-- the value is a linked account, the attribute is that account name.+--+-- 'groupDefinitions', 'getCostAndUsageResponse_groupDefinitions' - The groups that are specified by the @Filter@ or @GroupBy@ parameters in+-- the request.+--+-- 'nextPageToken', 'getCostAndUsageResponse_nextPageToken' - The token for the next set of retrievable results. Amazon Web Services+-- provides the token when the response from a previous call has more+-- results than the maximum page size.+--+-- 'resultsByTime', 'getCostAndUsageResponse_resultsByTime' - The time period that\'s covered by the results in the response.+--+-- 'httpStatus', 'getCostAndUsageResponse_httpStatus' - The response's http status code.+newGetCostAndUsageResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetCostAndUsageResponse+newGetCostAndUsageResponse pHttpStatus_ =+  GetCostAndUsageResponse'+    { dimensionValueAttributes =+        Prelude.Nothing,+      groupDefinitions = Prelude.Nothing,+      nextPageToken = Prelude.Nothing,+      resultsByTime = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The attributes that apply to a specific dimension value. For example, if+-- the value is a linked account, the attribute is that account name.+getCostAndUsageResponse_dimensionValueAttributes :: Lens.Lens' GetCostAndUsageResponse (Prelude.Maybe [DimensionValuesWithAttributes])+getCostAndUsageResponse_dimensionValueAttributes = Lens.lens (\GetCostAndUsageResponse' {dimensionValueAttributes} -> dimensionValueAttributes) (\s@GetCostAndUsageResponse' {} a -> s {dimensionValueAttributes = a} :: GetCostAndUsageResponse) Prelude.. Lens.mapping Lens.coerced++-- | The groups that are specified by the @Filter@ or @GroupBy@ parameters in+-- the request.+getCostAndUsageResponse_groupDefinitions :: Lens.Lens' GetCostAndUsageResponse (Prelude.Maybe [GroupDefinition])+getCostAndUsageResponse_groupDefinitions = Lens.lens (\GetCostAndUsageResponse' {groupDefinitions} -> groupDefinitions) (\s@GetCostAndUsageResponse' {} a -> s {groupDefinitions = a} :: GetCostAndUsageResponse) Prelude.. Lens.mapping Lens.coerced++-- | The token for the next set of retrievable results. Amazon Web Services+-- provides the token when the response from a previous call has more+-- results than the maximum page size.+getCostAndUsageResponse_nextPageToken :: Lens.Lens' GetCostAndUsageResponse (Prelude.Maybe Prelude.Text)+getCostAndUsageResponse_nextPageToken = Lens.lens (\GetCostAndUsageResponse' {nextPageToken} -> nextPageToken) (\s@GetCostAndUsageResponse' {} a -> s {nextPageToken = a} :: GetCostAndUsageResponse)++-- | The time period that\'s covered by the results in the response.+getCostAndUsageResponse_resultsByTime :: Lens.Lens' GetCostAndUsageResponse (Prelude.Maybe [ResultByTime])+getCostAndUsageResponse_resultsByTime = Lens.lens (\GetCostAndUsageResponse' {resultsByTime} -> resultsByTime) (\s@GetCostAndUsageResponse' {} a -> s {resultsByTime = a} :: GetCostAndUsageResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+getCostAndUsageResponse_httpStatus :: Lens.Lens' GetCostAndUsageResponse Prelude.Int+getCostAndUsageResponse_httpStatus = Lens.lens (\GetCostAndUsageResponse' {httpStatus} -> httpStatus) (\s@GetCostAndUsageResponse' {} a -> s {httpStatus = a} :: GetCostAndUsageResponse)++instance Prelude.NFData GetCostAndUsageResponse where+  rnf GetCostAndUsageResponse' {..} =+    Prelude.rnf dimensionValueAttributes+      `Prelude.seq` Prelude.rnf groupDefinitions+      `Prelude.seq` Prelude.rnf nextPageToken+      `Prelude.seq` Prelude.rnf resultsByTime+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/CostExplorer/GetCostAndUsageWithResources.hs view
@@ -0,0 +1,453 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.GetCostAndUsageWithResources+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves cost and usage metrics with resources for your account. You+-- can specify which cost and usage-related metric, such as @BlendedCosts@+-- or @UsageQuantity@, that you want the request to return. You can also+-- filter and group your data by various dimensions, such as @SERVICE@ or+-- @AZ@, in a specific time range. For a complete list of valid dimensions,+-- see the+-- <https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_GetDimensionValues.html GetDimensionValues>+-- operation. Management account in an organization in Organizations have+-- access to all member accounts. This API is currently available for the+-- Amazon Elastic Compute Cloud – Compute service only.+--+-- This is an opt-in only feature. You can enable this feature from the+-- Cost Explorer Settings page. For information about how to access the+-- Settings page, see+-- <https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/ce-access.html Controlling Access for Cost Explorer>+-- in the /Billing and Cost Management User Guide/.+module Amazonka.CostExplorer.GetCostAndUsageWithResources+  ( -- * Creating a Request+    GetCostAndUsageWithResources (..),+    newGetCostAndUsageWithResources,++    -- * Request Lenses+    getCostAndUsageWithResources_groupBy,+    getCostAndUsageWithResources_metrics,+    getCostAndUsageWithResources_nextPageToken,+    getCostAndUsageWithResources_timePeriod,+    getCostAndUsageWithResources_granularity,+    getCostAndUsageWithResources_filter,++    -- * Destructuring the Response+    GetCostAndUsageWithResourcesResponse (..),+    newGetCostAndUsageWithResourcesResponse,++    -- * Response Lenses+    getCostAndUsageWithResourcesResponse_dimensionValueAttributes,+    getCostAndUsageWithResourcesResponse_groupDefinitions,+    getCostAndUsageWithResourcesResponse_nextPageToken,+    getCostAndUsageWithResourcesResponse_resultsByTime,+    getCostAndUsageWithResourcesResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CostExplorer.Types+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetCostAndUsageWithResources' smart constructor.+data GetCostAndUsageWithResources = GetCostAndUsageWithResources'+  { -- | You can group Amazon Web Services costs using up to two different+    -- groups: @DIMENSION@, @TAG@, @COST_CATEGORY@.+    groupBy :: Prelude.Maybe [GroupDefinition],+    -- | Which metrics are returned in the query. For more information about+    -- blended and unblended rates, see+    -- <http://aws.amazon.com/premiumsupport/knowledge-center/blended-rates-intro/ Why does the \"blended\" annotation appear on some line items in my bill?>.+    --+    -- Valid values are @AmortizedCost@, @BlendedCost@, @NetAmortizedCost@,+    -- @NetUnblendedCost@, @NormalizedUsageAmount@, @UnblendedCost@, and+    -- @UsageQuantity@.+    --+    -- If you return the @UsageQuantity@ metric, the service aggregates all+    -- usage numbers without taking the units into account. For example, if you+    -- aggregate @usageQuantity@ across all of Amazon EC2, the results aren\'t+    -- meaningful because Amazon EC2 compute hours and data transfer are+    -- measured in different units (for example, hour or GB). To get more+    -- meaningful @UsageQuantity@ metrics, filter by @UsageType@ or+    -- @UsageTypeGroups@.+    --+    -- @Metrics@ is required for @GetCostAndUsageWithResources@ requests.+    metrics :: Prelude.Maybe [Prelude.Text],+    -- | The token to retrieve the next set of results. Amazon Web Services+    -- provides the token when the response from a previous call has more+    -- results than the maximum page size.+    nextPageToken :: Prelude.Maybe Prelude.Text,+    -- | Sets the start and end dates for retrieving Amazon Web Services costs.+    -- The range must be within the last 14 days (the start date cannot be+    -- earlier than 14 days ago). The start date is inclusive, but the end date+    -- is exclusive. For example, if @start@ is @2017-01-01@ and @end@ is+    -- @2017-05-01@, then the cost and usage data is retrieved from+    -- @2017-01-01@ up to and including @2017-04-30@ but not including+    -- @2017-05-01@.+    timePeriod :: DateInterval,+    -- | Sets the Amazon Web Services cost granularity to @MONTHLY@, @DAILY@, or+    -- @HOURLY@. If @Granularity@ isn\'t set, the response object doesn\'t+    -- include the @Granularity@, @MONTHLY@, @DAILY@, or @HOURLY@.+    granularity :: Granularity,+    -- | Filters Amazon Web Services costs by different dimensions. For example,+    -- you can specify @SERVICE@ and @LINKED_ACCOUNT@ and get the costs that+    -- are associated with that account\'s usage of that service. You can nest+    -- @Expression@ objects to define any combination of dimension filters. For+    -- more information, see+    -- <https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html Expression>.+    --+    -- The @GetCostAndUsageWithResources@ operation requires that you either+    -- group by or filter by a @ResourceId@. It requires the+    -- <https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html Expression>+    -- @\"SERVICE = Amazon Elastic Compute Cloud - Compute\"@ in the filter.+    --+    -- Valid values for @MatchOptions@ for @Dimensions@ are @EQUALS@ and+    -- @CASE_SENSITIVE@.+    --+    -- Valid values for @MatchOptions@ for @CostCategories@ and @Tags@ are+    -- @EQUALS@, @ABSENT@, and @CASE_SENSITIVE@. Default values are @EQUALS@+    -- and @CASE_SENSITIVE@.+    filter' :: Expression+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetCostAndUsageWithResources' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'groupBy', 'getCostAndUsageWithResources_groupBy' - You can group Amazon Web Services costs using up to two different+-- groups: @DIMENSION@, @TAG@, @COST_CATEGORY@.+--+-- 'metrics', 'getCostAndUsageWithResources_metrics' - Which metrics are returned in the query. For more information about+-- blended and unblended rates, see+-- <http://aws.amazon.com/premiumsupport/knowledge-center/blended-rates-intro/ Why does the \"blended\" annotation appear on some line items in my bill?>.+--+-- Valid values are @AmortizedCost@, @BlendedCost@, @NetAmortizedCost@,+-- @NetUnblendedCost@, @NormalizedUsageAmount@, @UnblendedCost@, and+-- @UsageQuantity@.+--+-- If you return the @UsageQuantity@ metric, the service aggregates all+-- usage numbers without taking the units into account. For example, if you+-- aggregate @usageQuantity@ across all of Amazon EC2, the results aren\'t+-- meaningful because Amazon EC2 compute hours and data transfer are+-- measured in different units (for example, hour or GB). To get more+-- meaningful @UsageQuantity@ metrics, filter by @UsageType@ or+-- @UsageTypeGroups@.+--+-- @Metrics@ is required for @GetCostAndUsageWithResources@ requests.+--+-- 'nextPageToken', 'getCostAndUsageWithResources_nextPageToken' - The token to retrieve the next set of results. Amazon Web Services+-- provides the token when the response from a previous call has more+-- results than the maximum page size.+--+-- 'timePeriod', 'getCostAndUsageWithResources_timePeriod' - Sets the start and end dates for retrieving Amazon Web Services costs.+-- The range must be within the last 14 days (the start date cannot be+-- earlier than 14 days ago). The start date is inclusive, but the end date+-- is exclusive. For example, if @start@ is @2017-01-01@ and @end@ is+-- @2017-05-01@, then the cost and usage data is retrieved from+-- @2017-01-01@ up to and including @2017-04-30@ but not including+-- @2017-05-01@.+--+-- 'granularity', 'getCostAndUsageWithResources_granularity' - Sets the Amazon Web Services cost granularity to @MONTHLY@, @DAILY@, or+-- @HOURLY@. If @Granularity@ isn\'t set, the response object doesn\'t+-- include the @Granularity@, @MONTHLY@, @DAILY@, or @HOURLY@.+--+-- 'filter'', 'getCostAndUsageWithResources_filter' - Filters Amazon Web Services costs by different dimensions. For example,+-- you can specify @SERVICE@ and @LINKED_ACCOUNT@ and get the costs that+-- are associated with that account\'s usage of that service. You can nest+-- @Expression@ objects to define any combination of dimension filters. For+-- more information, see+-- <https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html Expression>.+--+-- The @GetCostAndUsageWithResources@ operation requires that you either+-- group by or filter by a @ResourceId@. It requires the+-- <https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html Expression>+-- @\"SERVICE = Amazon Elastic Compute Cloud - Compute\"@ in the filter.+--+-- Valid values for @MatchOptions@ for @Dimensions@ are @EQUALS@ and+-- @CASE_SENSITIVE@.+--+-- Valid values for @MatchOptions@ for @CostCategories@ and @Tags@ are+-- @EQUALS@, @ABSENT@, and @CASE_SENSITIVE@. Default values are @EQUALS@+-- and @CASE_SENSITIVE@.+newGetCostAndUsageWithResources ::+  -- | 'timePeriod'+  DateInterval ->+  -- | 'granularity'+  Granularity ->+  -- | 'filter''+  Expression ->+  GetCostAndUsageWithResources+newGetCostAndUsageWithResources+  pTimePeriod_+  pGranularity_+  pFilter_ =+    GetCostAndUsageWithResources'+      { groupBy =+          Prelude.Nothing,+        metrics = Prelude.Nothing,+        nextPageToken = Prelude.Nothing,+        timePeriod = pTimePeriod_,+        granularity = pGranularity_,+        filter' = pFilter_+      }++-- | You can group Amazon Web Services costs using up to two different+-- groups: @DIMENSION@, @TAG@, @COST_CATEGORY@.+getCostAndUsageWithResources_groupBy :: Lens.Lens' GetCostAndUsageWithResources (Prelude.Maybe [GroupDefinition])+getCostAndUsageWithResources_groupBy = Lens.lens (\GetCostAndUsageWithResources' {groupBy} -> groupBy) (\s@GetCostAndUsageWithResources' {} a -> s {groupBy = a} :: GetCostAndUsageWithResources) Prelude.. Lens.mapping Lens.coerced++-- | Which metrics are returned in the query. For more information about+-- blended and unblended rates, see+-- <http://aws.amazon.com/premiumsupport/knowledge-center/blended-rates-intro/ Why does the \"blended\" annotation appear on some line items in my bill?>.+--+-- Valid values are @AmortizedCost@, @BlendedCost@, @NetAmortizedCost@,+-- @NetUnblendedCost@, @NormalizedUsageAmount@, @UnblendedCost@, and+-- @UsageQuantity@.+--+-- If you return the @UsageQuantity@ metric, the service aggregates all+-- usage numbers without taking the units into account. For example, if you+-- aggregate @usageQuantity@ across all of Amazon EC2, the results aren\'t+-- meaningful because Amazon EC2 compute hours and data transfer are+-- measured in different units (for example, hour or GB). To get more+-- meaningful @UsageQuantity@ metrics, filter by @UsageType@ or+-- @UsageTypeGroups@.+--+-- @Metrics@ is required for @GetCostAndUsageWithResources@ requests.+getCostAndUsageWithResources_metrics :: Lens.Lens' GetCostAndUsageWithResources (Prelude.Maybe [Prelude.Text])+getCostAndUsageWithResources_metrics = Lens.lens (\GetCostAndUsageWithResources' {metrics} -> metrics) (\s@GetCostAndUsageWithResources' {} a -> s {metrics = a} :: GetCostAndUsageWithResources) Prelude.. Lens.mapping Lens.coerced++-- | The token to retrieve the next set of results. Amazon Web Services+-- provides the token when the response from a previous call has more+-- results than the maximum page size.+getCostAndUsageWithResources_nextPageToken :: Lens.Lens' GetCostAndUsageWithResources (Prelude.Maybe Prelude.Text)+getCostAndUsageWithResources_nextPageToken = Lens.lens (\GetCostAndUsageWithResources' {nextPageToken} -> nextPageToken) (\s@GetCostAndUsageWithResources' {} a -> s {nextPageToken = a} :: GetCostAndUsageWithResources)++-- | Sets the start and end dates for retrieving Amazon Web Services costs.+-- The range must be within the last 14 days (the start date cannot be+-- earlier than 14 days ago). The start date is inclusive, but the end date+-- is exclusive. For example, if @start@ is @2017-01-01@ and @end@ is+-- @2017-05-01@, then the cost and usage data is retrieved from+-- @2017-01-01@ up to and including @2017-04-30@ but not including+-- @2017-05-01@.+getCostAndUsageWithResources_timePeriod :: Lens.Lens' GetCostAndUsageWithResources DateInterval+getCostAndUsageWithResources_timePeriod = Lens.lens (\GetCostAndUsageWithResources' {timePeriod} -> timePeriod) (\s@GetCostAndUsageWithResources' {} a -> s {timePeriod = a} :: GetCostAndUsageWithResources)++-- | Sets the Amazon Web Services cost granularity to @MONTHLY@, @DAILY@, or+-- @HOURLY@. If @Granularity@ isn\'t set, the response object doesn\'t+-- include the @Granularity@, @MONTHLY@, @DAILY@, or @HOURLY@.+getCostAndUsageWithResources_granularity :: Lens.Lens' GetCostAndUsageWithResources Granularity+getCostAndUsageWithResources_granularity = Lens.lens (\GetCostAndUsageWithResources' {granularity} -> granularity) (\s@GetCostAndUsageWithResources' {} a -> s {granularity = a} :: GetCostAndUsageWithResources)++-- | Filters Amazon Web Services costs by different dimensions. For example,+-- you can specify @SERVICE@ and @LINKED_ACCOUNT@ and get the costs that+-- are associated with that account\'s usage of that service. You can nest+-- @Expression@ objects to define any combination of dimension filters. For+-- more information, see+-- <https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html Expression>.+--+-- The @GetCostAndUsageWithResources@ operation requires that you either+-- group by or filter by a @ResourceId@. It requires the+-- <https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html Expression>+-- @\"SERVICE = Amazon Elastic Compute Cloud - Compute\"@ in the filter.+--+-- Valid values for @MatchOptions@ for @Dimensions@ are @EQUALS@ and+-- @CASE_SENSITIVE@.+--+-- Valid values for @MatchOptions@ for @CostCategories@ and @Tags@ are+-- @EQUALS@, @ABSENT@, and @CASE_SENSITIVE@. Default values are @EQUALS@+-- and @CASE_SENSITIVE@.+getCostAndUsageWithResources_filter :: Lens.Lens' GetCostAndUsageWithResources Expression+getCostAndUsageWithResources_filter = Lens.lens (\GetCostAndUsageWithResources' {filter'} -> filter') (\s@GetCostAndUsageWithResources' {} a -> s {filter' = a} :: GetCostAndUsageWithResources)++instance Core.AWSRequest GetCostAndUsageWithResources where+  type+    AWSResponse GetCostAndUsageWithResources =+      GetCostAndUsageWithResourcesResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetCostAndUsageWithResourcesResponse'+            Prelude.<$> ( x+                            Data..?> "DimensionValueAttributes"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> ( x+                            Data..?> "GroupDefinitions"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "NextPageToken")+            Prelude.<*> (x Data..?> "ResultsByTime" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    GetCostAndUsageWithResources+  where+  hashWithSalt _salt GetCostAndUsageWithResources' {..} =+    _salt+      `Prelude.hashWithSalt` groupBy+      `Prelude.hashWithSalt` metrics+      `Prelude.hashWithSalt` nextPageToken+      `Prelude.hashWithSalt` timePeriod+      `Prelude.hashWithSalt` granularity+      `Prelude.hashWithSalt` filter'++instance Prelude.NFData GetCostAndUsageWithResources where+  rnf GetCostAndUsageWithResources' {..} =+    Prelude.rnf groupBy+      `Prelude.seq` Prelude.rnf metrics+      `Prelude.seq` Prelude.rnf nextPageToken+      `Prelude.seq` Prelude.rnf timePeriod+      `Prelude.seq` Prelude.rnf granularity+      `Prelude.seq` Prelude.rnf filter'++instance Data.ToHeaders GetCostAndUsageWithResources where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSInsightsIndexService.GetCostAndUsageWithResources" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON GetCostAndUsageWithResources where+  toJSON GetCostAndUsageWithResources' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("GroupBy" Data..=) Prelude.<$> groupBy,+            ("Metrics" Data..=) Prelude.<$> metrics,+            ("NextPageToken" Data..=) Prelude.<$> nextPageToken,+            Prelude.Just ("TimePeriod" Data..= timePeriod),+            Prelude.Just ("Granularity" Data..= granularity),+            Prelude.Just ("Filter" Data..= filter')+          ]+      )++instance Data.ToPath GetCostAndUsageWithResources where+  toPath = Prelude.const "/"++instance Data.ToQuery GetCostAndUsageWithResources where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetCostAndUsageWithResourcesResponse' smart constructor.+data GetCostAndUsageWithResourcesResponse = GetCostAndUsageWithResourcesResponse'+  { -- | The attributes that apply to a specific dimension value. For example, if+    -- the value is a linked account, the attribute is that account name.+    dimensionValueAttributes :: Prelude.Maybe [DimensionValuesWithAttributes],+    -- | The groups that are specified by the @Filter@ or @GroupBy@ parameters in+    -- the request.+    groupDefinitions :: Prelude.Maybe [GroupDefinition],+    -- | The token for the next set of retrievable results. Amazon Web Services+    -- provides the token when the response from a previous call has more+    -- results than the maximum page size.+    nextPageToken :: Prelude.Maybe Prelude.Text,+    -- | The time period that\'s covered by the results in the response.+    resultsByTime :: Prelude.Maybe [ResultByTime],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetCostAndUsageWithResourcesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dimensionValueAttributes', 'getCostAndUsageWithResourcesResponse_dimensionValueAttributes' - The attributes that apply to a specific dimension value. For example, if+-- the value is a linked account, the attribute is that account name.+--+-- 'groupDefinitions', 'getCostAndUsageWithResourcesResponse_groupDefinitions' - The groups that are specified by the @Filter@ or @GroupBy@ parameters in+-- the request.+--+-- 'nextPageToken', 'getCostAndUsageWithResourcesResponse_nextPageToken' - The token for the next set of retrievable results. Amazon Web Services+-- provides the token when the response from a previous call has more+-- results than the maximum page size.+--+-- 'resultsByTime', 'getCostAndUsageWithResourcesResponse_resultsByTime' - The time period that\'s covered by the results in the response.+--+-- 'httpStatus', 'getCostAndUsageWithResourcesResponse_httpStatus' - The response's http status code.+newGetCostAndUsageWithResourcesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetCostAndUsageWithResourcesResponse+newGetCostAndUsageWithResourcesResponse pHttpStatus_ =+  GetCostAndUsageWithResourcesResponse'+    { dimensionValueAttributes =+        Prelude.Nothing,+      groupDefinitions = Prelude.Nothing,+      nextPageToken = Prelude.Nothing,+      resultsByTime = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The attributes that apply to a specific dimension value. For example, if+-- the value is a linked account, the attribute is that account name.+getCostAndUsageWithResourcesResponse_dimensionValueAttributes :: Lens.Lens' GetCostAndUsageWithResourcesResponse (Prelude.Maybe [DimensionValuesWithAttributes])+getCostAndUsageWithResourcesResponse_dimensionValueAttributes = Lens.lens (\GetCostAndUsageWithResourcesResponse' {dimensionValueAttributes} -> dimensionValueAttributes) (\s@GetCostAndUsageWithResourcesResponse' {} a -> s {dimensionValueAttributes = a} :: GetCostAndUsageWithResourcesResponse) Prelude.. Lens.mapping Lens.coerced++-- | The groups that are specified by the @Filter@ or @GroupBy@ parameters in+-- the request.+getCostAndUsageWithResourcesResponse_groupDefinitions :: Lens.Lens' GetCostAndUsageWithResourcesResponse (Prelude.Maybe [GroupDefinition])+getCostAndUsageWithResourcesResponse_groupDefinitions = Lens.lens (\GetCostAndUsageWithResourcesResponse' {groupDefinitions} -> groupDefinitions) (\s@GetCostAndUsageWithResourcesResponse' {} a -> s {groupDefinitions = a} :: GetCostAndUsageWithResourcesResponse) Prelude.. Lens.mapping Lens.coerced++-- | The token for the next set of retrievable results. Amazon Web Services+-- provides the token when the response from a previous call has more+-- results than the maximum page size.+getCostAndUsageWithResourcesResponse_nextPageToken :: Lens.Lens' GetCostAndUsageWithResourcesResponse (Prelude.Maybe Prelude.Text)+getCostAndUsageWithResourcesResponse_nextPageToken = Lens.lens (\GetCostAndUsageWithResourcesResponse' {nextPageToken} -> nextPageToken) (\s@GetCostAndUsageWithResourcesResponse' {} a -> s {nextPageToken = a} :: GetCostAndUsageWithResourcesResponse)++-- | The time period that\'s covered by the results in the response.+getCostAndUsageWithResourcesResponse_resultsByTime :: Lens.Lens' GetCostAndUsageWithResourcesResponse (Prelude.Maybe [ResultByTime])+getCostAndUsageWithResourcesResponse_resultsByTime = Lens.lens (\GetCostAndUsageWithResourcesResponse' {resultsByTime} -> resultsByTime) (\s@GetCostAndUsageWithResourcesResponse' {} a -> s {resultsByTime = a} :: GetCostAndUsageWithResourcesResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+getCostAndUsageWithResourcesResponse_httpStatus :: Lens.Lens' GetCostAndUsageWithResourcesResponse Prelude.Int+getCostAndUsageWithResourcesResponse_httpStatus = Lens.lens (\GetCostAndUsageWithResourcesResponse' {httpStatus} -> httpStatus) (\s@GetCostAndUsageWithResourcesResponse' {} a -> s {httpStatus = a} :: GetCostAndUsageWithResourcesResponse)++instance+  Prelude.NFData+    GetCostAndUsageWithResourcesResponse+  where+  rnf GetCostAndUsageWithResourcesResponse' {..} =+    Prelude.rnf dimensionValueAttributes+      `Prelude.seq` Prelude.rnf groupDefinitions+      `Prelude.seq` Prelude.rnf nextPageToken+      `Prelude.seq` Prelude.rnf resultsByTime+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/CostExplorer/GetCostCategories.hs view
@@ -0,0 +1,446 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.GetCostCategories+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves an array of Cost Category names and values incurred cost.+--+-- If some Cost Category names and values are not associated with any cost,+-- they will not be returned by this API.+module Amazonka.CostExplorer.GetCostCategories+  ( -- * Creating a Request+    GetCostCategories (..),+    newGetCostCategories,++    -- * Request Lenses+    getCostCategories_costCategoryName,+    getCostCategories_filter,+    getCostCategories_maxResults,+    getCostCategories_nextPageToken,+    getCostCategories_searchString,+    getCostCategories_sortBy,+    getCostCategories_timePeriod,++    -- * Destructuring the Response+    GetCostCategoriesResponse (..),+    newGetCostCategoriesResponse,++    -- * Response Lenses+    getCostCategoriesResponse_costCategoryNames,+    getCostCategoriesResponse_costCategoryValues,+    getCostCategoriesResponse_nextPageToken,+    getCostCategoriesResponse_httpStatus,+    getCostCategoriesResponse_returnSize,+    getCostCategoriesResponse_totalSize,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CostExplorer.Types+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetCostCategories' smart constructor.+data GetCostCategories = GetCostCategories'+  { costCategoryName :: Prelude.Maybe Prelude.Text,+    filter' :: Prelude.Maybe Expression,+    -- | This field is only used when the @SortBy@ value is provided in the+    -- request.+    --+    -- The maximum number of objects that are returned for this request. If+    -- @MaxResults@ isn\'t specified with the @SortBy@ value, the request+    -- returns 1000 results as the default value for this parameter.+    --+    -- For @GetCostCategories@, MaxResults has an upper quota of 1000.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | If the number of objects that are still available for retrieval exceeds+    -- the quota, Amazon Web Services returns a NextPageToken value in the+    -- response. To retrieve the next batch of objects, provide the+    -- NextPageToken from the previous call in your next request.+    nextPageToken :: Prelude.Maybe Prelude.Text,+    -- | The value that you want to search the filter values for.+    --+    -- If you don\'t specify a @CostCategoryName@, @SearchString@ is used to+    -- filter Cost Category names that match the @SearchString@ pattern. If you+    -- specify a @CostCategoryName@, @SearchString@ is used to filter Cost+    -- Category values that match the @SearchString@ pattern.+    searchString :: Prelude.Maybe Prelude.Text,+    -- | The value that you sort the data by.+    --+    -- The key represents the cost and usage metrics. The following values are+    -- supported:+    --+    -- -   @BlendedCost@+    --+    -- -   @UnblendedCost@+    --+    -- -   @AmortizedCost@+    --+    -- -   @NetAmortizedCost@+    --+    -- -   @NetUnblendedCost@+    --+    -- -   @UsageQuantity@+    --+    -- -   @NormalizedUsageAmount@+    --+    -- The supported key values for the @SortOrder@ value are @ASCENDING@ and+    -- @DESCENDING@.+    --+    -- When you use the @SortBy@ value, the @NextPageToken@ and @SearchString@+    -- key values aren\'t supported.+    sortBy :: Prelude.Maybe [SortDefinition],+    timePeriod :: DateInterval+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetCostCategories' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'costCategoryName', 'getCostCategories_costCategoryName' - Undocumented member.+--+-- 'filter'', 'getCostCategories_filter' - Undocumented member.+--+-- 'maxResults', 'getCostCategories_maxResults' - This field is only used when the @SortBy@ value is provided in the+-- request.+--+-- The maximum number of objects that are returned for this request. If+-- @MaxResults@ isn\'t specified with the @SortBy@ value, the request+-- returns 1000 results as the default value for this parameter.+--+-- For @GetCostCategories@, MaxResults has an upper quota of 1000.+--+-- 'nextPageToken', 'getCostCategories_nextPageToken' - If the number of objects that are still available for retrieval exceeds+-- the quota, Amazon Web Services returns a NextPageToken value in the+-- response. To retrieve the next batch of objects, provide the+-- NextPageToken from the previous call in your next request.+--+-- 'searchString', 'getCostCategories_searchString' - The value that you want to search the filter values for.+--+-- If you don\'t specify a @CostCategoryName@, @SearchString@ is used to+-- filter Cost Category names that match the @SearchString@ pattern. If you+-- specify a @CostCategoryName@, @SearchString@ is used to filter Cost+-- Category values that match the @SearchString@ pattern.+--+-- 'sortBy', 'getCostCategories_sortBy' - The value that you sort the data by.+--+-- The key represents the cost and usage metrics. The following values are+-- supported:+--+-- -   @BlendedCost@+--+-- -   @UnblendedCost@+--+-- -   @AmortizedCost@+--+-- -   @NetAmortizedCost@+--+-- -   @NetUnblendedCost@+--+-- -   @UsageQuantity@+--+-- -   @NormalizedUsageAmount@+--+-- The supported key values for the @SortOrder@ value are @ASCENDING@ and+-- @DESCENDING@.+--+-- When you use the @SortBy@ value, the @NextPageToken@ and @SearchString@+-- key values aren\'t supported.+--+-- 'timePeriod', 'getCostCategories_timePeriod' - Undocumented member.+newGetCostCategories ::+  -- | 'timePeriod'+  DateInterval ->+  GetCostCategories+newGetCostCategories pTimePeriod_ =+  GetCostCategories'+    { costCategoryName =+        Prelude.Nothing,+      filter' = Prelude.Nothing,+      maxResults = Prelude.Nothing,+      nextPageToken = Prelude.Nothing,+      searchString = Prelude.Nothing,+      sortBy = Prelude.Nothing,+      timePeriod = pTimePeriod_+    }++-- | Undocumented member.+getCostCategories_costCategoryName :: Lens.Lens' GetCostCategories (Prelude.Maybe Prelude.Text)+getCostCategories_costCategoryName = Lens.lens (\GetCostCategories' {costCategoryName} -> costCategoryName) (\s@GetCostCategories' {} a -> s {costCategoryName = a} :: GetCostCategories)++-- | Undocumented member.+getCostCategories_filter :: Lens.Lens' GetCostCategories (Prelude.Maybe Expression)+getCostCategories_filter = Lens.lens (\GetCostCategories' {filter'} -> filter') (\s@GetCostCategories' {} a -> s {filter' = a} :: GetCostCategories)++-- | This field is only used when the @SortBy@ value is provided in the+-- request.+--+-- The maximum number of objects that are returned for this request. If+-- @MaxResults@ isn\'t specified with the @SortBy@ value, the request+-- returns 1000 results as the default value for this parameter.+--+-- For @GetCostCategories@, MaxResults has an upper quota of 1000.+getCostCategories_maxResults :: Lens.Lens' GetCostCategories (Prelude.Maybe Prelude.Natural)+getCostCategories_maxResults = Lens.lens (\GetCostCategories' {maxResults} -> maxResults) (\s@GetCostCategories' {} a -> s {maxResults = a} :: GetCostCategories)++-- | If the number of objects that are still available for retrieval exceeds+-- the quota, Amazon Web Services returns a NextPageToken value in the+-- response. To retrieve the next batch of objects, provide the+-- NextPageToken from the previous call in your next request.+getCostCategories_nextPageToken :: Lens.Lens' GetCostCategories (Prelude.Maybe Prelude.Text)+getCostCategories_nextPageToken = Lens.lens (\GetCostCategories' {nextPageToken} -> nextPageToken) (\s@GetCostCategories' {} a -> s {nextPageToken = a} :: GetCostCategories)++-- | The value that you want to search the filter values for.+--+-- If you don\'t specify a @CostCategoryName@, @SearchString@ is used to+-- filter Cost Category names that match the @SearchString@ pattern. If you+-- specify a @CostCategoryName@, @SearchString@ is used to filter Cost+-- Category values that match the @SearchString@ pattern.+getCostCategories_searchString :: Lens.Lens' GetCostCategories (Prelude.Maybe Prelude.Text)+getCostCategories_searchString = Lens.lens (\GetCostCategories' {searchString} -> searchString) (\s@GetCostCategories' {} a -> s {searchString = a} :: GetCostCategories)++-- | The value that you sort the data by.+--+-- The key represents the cost and usage metrics. The following values are+-- supported:+--+-- -   @BlendedCost@+--+-- -   @UnblendedCost@+--+-- -   @AmortizedCost@+--+-- -   @NetAmortizedCost@+--+-- -   @NetUnblendedCost@+--+-- -   @UsageQuantity@+--+-- -   @NormalizedUsageAmount@+--+-- The supported key values for the @SortOrder@ value are @ASCENDING@ and+-- @DESCENDING@.+--+-- When you use the @SortBy@ value, the @NextPageToken@ and @SearchString@+-- key values aren\'t supported.+getCostCategories_sortBy :: Lens.Lens' GetCostCategories (Prelude.Maybe [SortDefinition])+getCostCategories_sortBy = Lens.lens (\GetCostCategories' {sortBy} -> sortBy) (\s@GetCostCategories' {} a -> s {sortBy = a} :: GetCostCategories) Prelude.. Lens.mapping Lens.coerced++-- | Undocumented member.+getCostCategories_timePeriod :: Lens.Lens' GetCostCategories DateInterval+getCostCategories_timePeriod = Lens.lens (\GetCostCategories' {timePeriod} -> timePeriod) (\s@GetCostCategories' {} a -> s {timePeriod = a} :: GetCostCategories)++instance Core.AWSRequest GetCostCategories where+  type+    AWSResponse GetCostCategories =+      GetCostCategoriesResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetCostCategoriesResponse'+            Prelude.<$> ( x+                            Data..?> "CostCategoryNames"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> ( x+                            Data..?> "CostCategoryValues"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "NextPageToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "ReturnSize")+            Prelude.<*> (x Data..:> "TotalSize")+      )++instance Prelude.Hashable GetCostCategories where+  hashWithSalt _salt GetCostCategories' {..} =+    _salt+      `Prelude.hashWithSalt` costCategoryName+      `Prelude.hashWithSalt` filter'+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextPageToken+      `Prelude.hashWithSalt` searchString+      `Prelude.hashWithSalt` sortBy+      `Prelude.hashWithSalt` timePeriod++instance Prelude.NFData GetCostCategories where+  rnf GetCostCategories' {..} =+    Prelude.rnf costCategoryName+      `Prelude.seq` Prelude.rnf filter'+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextPageToken+      `Prelude.seq` Prelude.rnf searchString+      `Prelude.seq` Prelude.rnf sortBy+      `Prelude.seq` Prelude.rnf timePeriod++instance Data.ToHeaders GetCostCategories where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSInsightsIndexService.GetCostCategories" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON GetCostCategories where+  toJSON GetCostCategories' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("CostCategoryName" Data..=)+              Prelude.<$> costCategoryName,+            ("Filter" Data..=) Prelude.<$> filter',+            ("MaxResults" Data..=) Prelude.<$> maxResults,+            ("NextPageToken" Data..=) Prelude.<$> nextPageToken,+            ("SearchString" Data..=) Prelude.<$> searchString,+            ("SortBy" Data..=) Prelude.<$> sortBy,+            Prelude.Just ("TimePeriod" Data..= timePeriod)+          ]+      )++instance Data.ToPath GetCostCategories where+  toPath = Prelude.const "/"++instance Data.ToQuery GetCostCategories where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetCostCategoriesResponse' smart constructor.+data GetCostCategoriesResponse = GetCostCategoriesResponse'+  { -- | The names of the Cost Categories.+    costCategoryNames :: Prelude.Maybe [Prelude.Text],+    -- | The Cost Category values.+    --+    -- If the @CostCategoryName@ key isn\'t specified in the request, the+    -- @CostCategoryValues@ fields aren\'t returned.+    costCategoryValues :: Prelude.Maybe [Prelude.Text],+    -- | If the number of objects that are still available for retrieval exceeds+    -- the quota, Amazon Web Services returns a NextPageToken value in the+    -- response. To retrieve the next batch of objects, provide the marker from+    -- the prior call in your next request.+    nextPageToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The number of objects that are returned.+    returnSize :: Prelude.Int,+    -- | The total number of objects.+    totalSize :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetCostCategoriesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'costCategoryNames', 'getCostCategoriesResponse_costCategoryNames' - The names of the Cost Categories.+--+-- 'costCategoryValues', 'getCostCategoriesResponse_costCategoryValues' - The Cost Category values.+--+-- If the @CostCategoryName@ key isn\'t specified in the request, the+-- @CostCategoryValues@ fields aren\'t returned.+--+-- 'nextPageToken', 'getCostCategoriesResponse_nextPageToken' - If the number of objects that are still available for retrieval exceeds+-- the quota, Amazon Web Services returns a NextPageToken value in the+-- response. To retrieve the next batch of objects, provide the marker from+-- the prior call in your next request.+--+-- 'httpStatus', 'getCostCategoriesResponse_httpStatus' - The response's http status code.+--+-- 'returnSize', 'getCostCategoriesResponse_returnSize' - The number of objects that are returned.+--+-- 'totalSize', 'getCostCategoriesResponse_totalSize' - The total number of objects.+newGetCostCategoriesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'returnSize'+  Prelude.Int ->+  -- | 'totalSize'+  Prelude.Int ->+  GetCostCategoriesResponse+newGetCostCategoriesResponse+  pHttpStatus_+  pReturnSize_+  pTotalSize_ =+    GetCostCategoriesResponse'+      { costCategoryNames =+          Prelude.Nothing,+        costCategoryValues = Prelude.Nothing,+        nextPageToken = Prelude.Nothing,+        httpStatus = pHttpStatus_,+        returnSize = pReturnSize_,+        totalSize = pTotalSize_+      }++-- | The names of the Cost Categories.+getCostCategoriesResponse_costCategoryNames :: Lens.Lens' GetCostCategoriesResponse (Prelude.Maybe [Prelude.Text])+getCostCategoriesResponse_costCategoryNames = Lens.lens (\GetCostCategoriesResponse' {costCategoryNames} -> costCategoryNames) (\s@GetCostCategoriesResponse' {} a -> s {costCategoryNames = a} :: GetCostCategoriesResponse) Prelude.. Lens.mapping Lens.coerced++-- | The Cost Category values.+--+-- If the @CostCategoryName@ key isn\'t specified in the request, the+-- @CostCategoryValues@ fields aren\'t returned.+getCostCategoriesResponse_costCategoryValues :: Lens.Lens' GetCostCategoriesResponse (Prelude.Maybe [Prelude.Text])+getCostCategoriesResponse_costCategoryValues = Lens.lens (\GetCostCategoriesResponse' {costCategoryValues} -> costCategoryValues) (\s@GetCostCategoriesResponse' {} a -> s {costCategoryValues = a} :: GetCostCategoriesResponse) Prelude.. Lens.mapping Lens.coerced++-- | If the number of objects that are still available for retrieval exceeds+-- the quota, Amazon Web Services returns a NextPageToken value in the+-- response. To retrieve the next batch of objects, provide the marker from+-- the prior call in your next request.+getCostCategoriesResponse_nextPageToken :: Lens.Lens' GetCostCategoriesResponse (Prelude.Maybe Prelude.Text)+getCostCategoriesResponse_nextPageToken = Lens.lens (\GetCostCategoriesResponse' {nextPageToken} -> nextPageToken) (\s@GetCostCategoriesResponse' {} a -> s {nextPageToken = a} :: GetCostCategoriesResponse)++-- | The response's http status code.+getCostCategoriesResponse_httpStatus :: Lens.Lens' GetCostCategoriesResponse Prelude.Int+getCostCategoriesResponse_httpStatus = Lens.lens (\GetCostCategoriesResponse' {httpStatus} -> httpStatus) (\s@GetCostCategoriesResponse' {} a -> s {httpStatus = a} :: GetCostCategoriesResponse)++-- | The number of objects that are returned.+getCostCategoriesResponse_returnSize :: Lens.Lens' GetCostCategoriesResponse Prelude.Int+getCostCategoriesResponse_returnSize = Lens.lens (\GetCostCategoriesResponse' {returnSize} -> returnSize) (\s@GetCostCategoriesResponse' {} a -> s {returnSize = a} :: GetCostCategoriesResponse)++-- | The total number of objects.+getCostCategoriesResponse_totalSize :: Lens.Lens' GetCostCategoriesResponse Prelude.Int+getCostCategoriesResponse_totalSize = Lens.lens (\GetCostCategoriesResponse' {totalSize} -> totalSize) (\s@GetCostCategoriesResponse' {} a -> s {totalSize = a} :: GetCostCategoriesResponse)++instance Prelude.NFData GetCostCategoriesResponse where+  rnf GetCostCategoriesResponse' {..} =+    Prelude.rnf costCategoryNames+      `Prelude.seq` Prelude.rnf costCategoryValues+      `Prelude.seq` Prelude.rnf nextPageToken+      `Prelude.seq` Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf returnSize+      `Prelude.seq` Prelude.rnf totalSize
+ gen/Amazonka/CostExplorer/GetCostForecast.hs view
@@ -0,0 +1,466 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.GetCostForecast+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves a forecast for how much Amazon Web Services predicts that you+-- will spend over the forecast time period that you select, based on your+-- past costs.+module Amazonka.CostExplorer.GetCostForecast+  ( -- * Creating a Request+    GetCostForecast (..),+    newGetCostForecast,++    -- * Request Lenses+    getCostForecast_filter,+    getCostForecast_predictionIntervalLevel,+    getCostForecast_timePeriod,+    getCostForecast_metric,+    getCostForecast_granularity,++    -- * Destructuring the Response+    GetCostForecastResponse (..),+    newGetCostForecastResponse,++    -- * Response Lenses+    getCostForecastResponse_forecastResultsByTime,+    getCostForecastResponse_total,+    getCostForecastResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CostExplorer.Types+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetCostForecast' smart constructor.+data GetCostForecast = GetCostForecast'+  { -- | The filters that you want to use to filter your forecast. The+    -- @GetCostForecast@ API supports filtering by the following dimensions:+    --+    -- -   @AZ@+    --+    -- -   @INSTANCE_TYPE@+    --+    -- -   @LINKED_ACCOUNT@+    --+    -- -   @LINKED_ACCOUNT_NAME@+    --+    -- -   @OPERATION@+    --+    -- -   @PURCHASE_TYPE@+    --+    -- -   @REGION@+    --+    -- -   @SERVICE@+    --+    -- -   @USAGE_TYPE@+    --+    -- -   @USAGE_TYPE_GROUP@+    --+    -- -   @RECORD_TYPE@+    --+    -- -   @OPERATING_SYSTEM@+    --+    -- -   @TENANCY@+    --+    -- -   @SCOPE@+    --+    -- -   @PLATFORM@+    --+    -- -   @SUBSCRIPTION_ID@+    --+    -- -   @LEGAL_ENTITY_NAME@+    --+    -- -   @DEPLOYMENT_OPTION@+    --+    -- -   @DATABASE_ENGINE@+    --+    -- -   @INSTANCE_TYPE_FAMILY@+    --+    -- -   @BILLING_ENTITY@+    --+    -- -   @RESERVATION_ID@+    --+    -- -   @SAVINGS_PLAN_ARN@+    filter' :: Prelude.Maybe Expression,+    -- | Cost Explorer always returns the mean forecast as a single point. You+    -- can request a prediction interval around the mean by specifying a+    -- confidence level. The higher the confidence level, the more confident+    -- Cost Explorer is about the actual value falling in the prediction+    -- interval. Higher confidence levels result in wider prediction intervals.+    predictionIntervalLevel :: Prelude.Maybe Prelude.Natural,+    -- | The period of time that you want the forecast to cover. The start date+    -- must be equal to or no later than the current date to avoid a validation+    -- error.+    timePeriod :: DateInterval,+    -- | Which metric Cost Explorer uses to create your forecast. For more+    -- information about blended and unblended rates, see+    -- <http://aws.amazon.com/premiumsupport/knowledge-center/blended-rates-intro/ Why does the \"blended\" annotation appear on some line items in my bill?>.+    --+    -- Valid values for a @GetCostForecast@ call are the following:+    --+    -- -   AMORTIZED_COST+    --+    -- -   BLENDED_COST+    --+    -- -   NET_AMORTIZED_COST+    --+    -- -   NET_UNBLENDED_COST+    --+    -- -   UNBLENDED_COST+    metric :: Metric,+    -- | How granular you want the forecast to be. You can get 3 months of+    -- @DAILY@ forecasts or 12 months of @MONTHLY@ forecasts.+    --+    -- The @GetCostForecast@ operation supports only @DAILY@ and @MONTHLY@+    -- granularities.+    granularity :: Granularity+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetCostForecast' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'filter'', 'getCostForecast_filter' - The filters that you want to use to filter your forecast. The+-- @GetCostForecast@ API supports filtering by the following dimensions:+--+-- -   @AZ@+--+-- -   @INSTANCE_TYPE@+--+-- -   @LINKED_ACCOUNT@+--+-- -   @LINKED_ACCOUNT_NAME@+--+-- -   @OPERATION@+--+-- -   @PURCHASE_TYPE@+--+-- -   @REGION@+--+-- -   @SERVICE@+--+-- -   @USAGE_TYPE@+--+-- -   @USAGE_TYPE_GROUP@+--+-- -   @RECORD_TYPE@+--+-- -   @OPERATING_SYSTEM@+--+-- -   @TENANCY@+--+-- -   @SCOPE@+--+-- -   @PLATFORM@+--+-- -   @SUBSCRIPTION_ID@+--+-- -   @LEGAL_ENTITY_NAME@+--+-- -   @DEPLOYMENT_OPTION@+--+-- -   @DATABASE_ENGINE@+--+-- -   @INSTANCE_TYPE_FAMILY@+--+-- -   @BILLING_ENTITY@+--+-- -   @RESERVATION_ID@+--+-- -   @SAVINGS_PLAN_ARN@+--+-- 'predictionIntervalLevel', 'getCostForecast_predictionIntervalLevel' - Cost Explorer always returns the mean forecast as a single point. You+-- can request a prediction interval around the mean by specifying a+-- confidence level. The higher the confidence level, the more confident+-- Cost Explorer is about the actual value falling in the prediction+-- interval. Higher confidence levels result in wider prediction intervals.+--+-- 'timePeriod', 'getCostForecast_timePeriod' - The period of time that you want the forecast to cover. The start date+-- must be equal to or no later than the current date to avoid a validation+-- error.+--+-- 'metric', 'getCostForecast_metric' - Which metric Cost Explorer uses to create your forecast. For more+-- information about blended and unblended rates, see+-- <http://aws.amazon.com/premiumsupport/knowledge-center/blended-rates-intro/ Why does the \"blended\" annotation appear on some line items in my bill?>.+--+-- Valid values for a @GetCostForecast@ call are the following:+--+-- -   AMORTIZED_COST+--+-- -   BLENDED_COST+--+-- -   NET_AMORTIZED_COST+--+-- -   NET_UNBLENDED_COST+--+-- -   UNBLENDED_COST+--+-- 'granularity', 'getCostForecast_granularity' - How granular you want the forecast to be. You can get 3 months of+-- @DAILY@ forecasts or 12 months of @MONTHLY@ forecasts.+--+-- The @GetCostForecast@ operation supports only @DAILY@ and @MONTHLY@+-- granularities.+newGetCostForecast ::+  -- | 'timePeriod'+  DateInterval ->+  -- | 'metric'+  Metric ->+  -- | 'granularity'+  Granularity ->+  GetCostForecast+newGetCostForecast+  pTimePeriod_+  pMetric_+  pGranularity_ =+    GetCostForecast'+      { filter' = Prelude.Nothing,+        predictionIntervalLevel = Prelude.Nothing,+        timePeriod = pTimePeriod_,+        metric = pMetric_,+        granularity = pGranularity_+      }++-- | The filters that you want to use to filter your forecast. The+-- @GetCostForecast@ API supports filtering by the following dimensions:+--+-- -   @AZ@+--+-- -   @INSTANCE_TYPE@+--+-- -   @LINKED_ACCOUNT@+--+-- -   @LINKED_ACCOUNT_NAME@+--+-- -   @OPERATION@+--+-- -   @PURCHASE_TYPE@+--+-- -   @REGION@+--+-- -   @SERVICE@+--+-- -   @USAGE_TYPE@+--+-- -   @USAGE_TYPE_GROUP@+--+-- -   @RECORD_TYPE@+--+-- -   @OPERATING_SYSTEM@+--+-- -   @TENANCY@+--+-- -   @SCOPE@+--+-- -   @PLATFORM@+--+-- -   @SUBSCRIPTION_ID@+--+-- -   @LEGAL_ENTITY_NAME@+--+-- -   @DEPLOYMENT_OPTION@+--+-- -   @DATABASE_ENGINE@+--+-- -   @INSTANCE_TYPE_FAMILY@+--+-- -   @BILLING_ENTITY@+--+-- -   @RESERVATION_ID@+--+-- -   @SAVINGS_PLAN_ARN@+getCostForecast_filter :: Lens.Lens' GetCostForecast (Prelude.Maybe Expression)+getCostForecast_filter = Lens.lens (\GetCostForecast' {filter'} -> filter') (\s@GetCostForecast' {} a -> s {filter' = a} :: GetCostForecast)++-- | Cost Explorer always returns the mean forecast as a single point. You+-- can request a prediction interval around the mean by specifying a+-- confidence level. The higher the confidence level, the more confident+-- Cost Explorer is about the actual value falling in the prediction+-- interval. Higher confidence levels result in wider prediction intervals.+getCostForecast_predictionIntervalLevel :: Lens.Lens' GetCostForecast (Prelude.Maybe Prelude.Natural)+getCostForecast_predictionIntervalLevel = Lens.lens (\GetCostForecast' {predictionIntervalLevel} -> predictionIntervalLevel) (\s@GetCostForecast' {} a -> s {predictionIntervalLevel = a} :: GetCostForecast)++-- | The period of time that you want the forecast to cover. The start date+-- must be equal to or no later than the current date to avoid a validation+-- error.+getCostForecast_timePeriod :: Lens.Lens' GetCostForecast DateInterval+getCostForecast_timePeriod = Lens.lens (\GetCostForecast' {timePeriod} -> timePeriod) (\s@GetCostForecast' {} a -> s {timePeriod = a} :: GetCostForecast)++-- | Which metric Cost Explorer uses to create your forecast. For more+-- information about blended and unblended rates, see+-- <http://aws.amazon.com/premiumsupport/knowledge-center/blended-rates-intro/ Why does the \"blended\" annotation appear on some line items in my bill?>.+--+-- Valid values for a @GetCostForecast@ call are the following:+--+-- -   AMORTIZED_COST+--+-- -   BLENDED_COST+--+-- -   NET_AMORTIZED_COST+--+-- -   NET_UNBLENDED_COST+--+-- -   UNBLENDED_COST+getCostForecast_metric :: Lens.Lens' GetCostForecast Metric+getCostForecast_metric = Lens.lens (\GetCostForecast' {metric} -> metric) (\s@GetCostForecast' {} a -> s {metric = a} :: GetCostForecast)++-- | How granular you want the forecast to be. You can get 3 months of+-- @DAILY@ forecasts or 12 months of @MONTHLY@ forecasts.+--+-- The @GetCostForecast@ operation supports only @DAILY@ and @MONTHLY@+-- granularities.+getCostForecast_granularity :: Lens.Lens' GetCostForecast Granularity+getCostForecast_granularity = Lens.lens (\GetCostForecast' {granularity} -> granularity) (\s@GetCostForecast' {} a -> s {granularity = a} :: GetCostForecast)++instance Core.AWSRequest GetCostForecast where+  type+    AWSResponse GetCostForecast =+      GetCostForecastResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetCostForecastResponse'+            Prelude.<$> ( x+                            Data..?> "ForecastResultsByTime"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "Total")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetCostForecast where+  hashWithSalt _salt GetCostForecast' {..} =+    _salt+      `Prelude.hashWithSalt` filter'+      `Prelude.hashWithSalt` predictionIntervalLevel+      `Prelude.hashWithSalt` timePeriod+      `Prelude.hashWithSalt` metric+      `Prelude.hashWithSalt` granularity++instance Prelude.NFData GetCostForecast where+  rnf GetCostForecast' {..} =+    Prelude.rnf filter'+      `Prelude.seq` Prelude.rnf predictionIntervalLevel+      `Prelude.seq` Prelude.rnf timePeriod+      `Prelude.seq` Prelude.rnf metric+      `Prelude.seq` Prelude.rnf granularity++instance Data.ToHeaders GetCostForecast where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSInsightsIndexService.GetCostForecast" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON GetCostForecast where+  toJSON GetCostForecast' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Filter" Data..=) Prelude.<$> filter',+            ("PredictionIntervalLevel" Data..=)+              Prelude.<$> predictionIntervalLevel,+            Prelude.Just ("TimePeriod" Data..= timePeriod),+            Prelude.Just ("Metric" Data..= metric),+            Prelude.Just ("Granularity" Data..= granularity)+          ]+      )++instance Data.ToPath GetCostForecast where+  toPath = Prelude.const "/"++instance Data.ToQuery GetCostForecast where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetCostForecastResponse' smart constructor.+data GetCostForecastResponse = GetCostForecastResponse'+  { -- | The forecasts for your query, in order. For @DAILY@ forecasts, this is a+    -- list of days. For @MONTHLY@ forecasts, this is a list of months.+    forecastResultsByTime :: Prelude.Maybe [ForecastResult],+    -- | How much you are forecasted to spend over the forecast period, in @USD@.+    total :: Prelude.Maybe MetricValue,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetCostForecastResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'forecastResultsByTime', 'getCostForecastResponse_forecastResultsByTime' - The forecasts for your query, in order. For @DAILY@ forecasts, this is a+-- list of days. For @MONTHLY@ forecasts, this is a list of months.+--+-- 'total', 'getCostForecastResponse_total' - How much you are forecasted to spend over the forecast period, in @USD@.+--+-- 'httpStatus', 'getCostForecastResponse_httpStatus' - The response's http status code.+newGetCostForecastResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetCostForecastResponse+newGetCostForecastResponse pHttpStatus_ =+  GetCostForecastResponse'+    { forecastResultsByTime =+        Prelude.Nothing,+      total = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The forecasts for your query, in order. For @DAILY@ forecasts, this is a+-- list of days. For @MONTHLY@ forecasts, this is a list of months.+getCostForecastResponse_forecastResultsByTime :: Lens.Lens' GetCostForecastResponse (Prelude.Maybe [ForecastResult])+getCostForecastResponse_forecastResultsByTime = Lens.lens (\GetCostForecastResponse' {forecastResultsByTime} -> forecastResultsByTime) (\s@GetCostForecastResponse' {} a -> s {forecastResultsByTime = a} :: GetCostForecastResponse) Prelude.. Lens.mapping Lens.coerced++-- | How much you are forecasted to spend over the forecast period, in @USD@.+getCostForecastResponse_total :: Lens.Lens' GetCostForecastResponse (Prelude.Maybe MetricValue)+getCostForecastResponse_total = Lens.lens (\GetCostForecastResponse' {total} -> total) (\s@GetCostForecastResponse' {} a -> s {total = a} :: GetCostForecastResponse)++-- | The response's http status code.+getCostForecastResponse_httpStatus :: Lens.Lens' GetCostForecastResponse Prelude.Int+getCostForecastResponse_httpStatus = Lens.lens (\GetCostForecastResponse' {httpStatus} -> httpStatus) (\s@GetCostForecastResponse' {} a -> s {httpStatus = a} :: GetCostForecastResponse)++instance Prelude.NFData GetCostForecastResponse where+  rnf GetCostForecastResponse' {..} =+    Prelude.rnf forecastResultsByTime+      `Prelude.seq` Prelude.rnf total+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/CostExplorer/GetDimensionValues.hs view
@@ -0,0 +1,1162 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.GetDimensionValues+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves all available filter values for a specified filter over a+-- period of time. You can search the dimension values for an arbitrary+-- string.+module Amazonka.CostExplorer.GetDimensionValues+  ( -- * Creating a Request+    GetDimensionValues (..),+    newGetDimensionValues,++    -- * Request Lenses+    getDimensionValues_context,+    getDimensionValues_filter,+    getDimensionValues_maxResults,+    getDimensionValues_nextPageToken,+    getDimensionValues_searchString,+    getDimensionValues_sortBy,+    getDimensionValues_timePeriod,+    getDimensionValues_dimension,++    -- * Destructuring the Response+    GetDimensionValuesResponse (..),+    newGetDimensionValuesResponse,++    -- * Response Lenses+    getDimensionValuesResponse_nextPageToken,+    getDimensionValuesResponse_httpStatus,+    getDimensionValuesResponse_dimensionValues,+    getDimensionValuesResponse_returnSize,+    getDimensionValuesResponse_totalSize,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CostExplorer.Types+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetDimensionValues' smart constructor.+data GetDimensionValues = GetDimensionValues'+  { -- | The context for the call to @GetDimensionValues@. This can be+    -- @RESERVATIONS@ or @COST_AND_USAGE@. The default value is+    -- @COST_AND_USAGE@. If the context is set to @RESERVATIONS@, the resulting+    -- dimension values can be used in the @GetReservationUtilization@+    -- operation. If the context is set to @COST_AND_USAGE@, the resulting+    -- dimension values can be used in the @GetCostAndUsage@ operation.+    --+    -- If you set the context to @COST_AND_USAGE@, you can use the following+    -- dimensions for searching:+    --+    -- -   AZ - The Availability Zone. An example is @us-east-1a@.+    --+    -- -   BILLING_ENTITY - The Amazon Web Services seller that your account is+    --     with. Possible values are the following:+    --+    --     - Amazon Web Services(Amazon Web Services): The entity that sells+    --     Amazon Web Services.+    --+    --     - AISPL (Amazon Internet Services Pvt. Ltd.): The local Indian+    --     entity that\'s an acting reseller for Amazon Web Services in India.+    --+    --     - Amazon Web Services Marketplace: The entity that supports the sale+    --     of solutions that are built on Amazon Web Services by third-party+    --     software providers.+    --+    -- -   CACHE_ENGINE - The Amazon ElastiCache operating system. Examples are+    --     Windows or Linux.+    --+    -- -   DEPLOYMENT_OPTION - The scope of Amazon Relational Database Service+    --     deployments. Valid values are @SingleAZ@ and @MultiAZ@.+    --+    -- -   DATABASE_ENGINE - The Amazon Relational Database Service database.+    --     Examples are Aurora or MySQL.+    --+    -- -   INSTANCE_TYPE - The type of Amazon EC2 instance. An example is+    --     @m4.xlarge@.+    --+    -- -   INSTANCE_TYPE_FAMILY - A family of instance types optimized to fit+    --     different use cases. Examples are @Compute Optimized@ (for example,+    --     @C4@, @C5@, @C6g@, and @C7g@), @Memory Optimization@ (for example,+    --     @R4@, @R5n@, @R5b@, and @R6g@).+    --+    -- -   INVOICING_ENTITY - The name of the entity that issues the Amazon Web+    --     Services invoice.+    --+    -- -   LEGAL_ENTITY_NAME - The name of the organization that sells you+    --     Amazon Web Services services, such as Amazon Web Services.+    --+    -- -   LINKED_ACCOUNT - The description in the attribute map that includes+    --     the full name of the member account. The value field contains the+    --     Amazon Web Services ID of the member account.+    --+    -- -   OPERATING_SYSTEM - The operating system. Examples are Windows or+    --     Linux.+    --+    -- -   OPERATION - The action performed. Examples include @RunInstance@ and+    --     @CreateBucket@.+    --+    -- -   PLATFORM - The Amazon EC2 operating system. Examples are Windows or+    --     Linux.+    --+    -- -   PURCHASE_TYPE - The reservation type of the purchase that this usage+    --     is related to. Examples include On-Demand Instances and Standard+    --     Reserved Instances.+    --+    -- -   RESERVATION_ID - The unique identifier for an Amazon Web Services+    --     Reservation Instance.+    --+    -- -   SAVINGS_PLAN_ARN - The unique identifier for your Savings Plans.+    --+    -- -   SAVINGS_PLANS_TYPE - Type of Savings Plans (EC2 Instance or+    --     Compute).+    --+    -- -   SERVICE - The Amazon Web Services service such as Amazon DynamoDB.+    --+    -- -   TENANCY - The tenancy of a resource. Examples are shared or+    --     dedicated.+    --+    -- -   USAGE_TYPE - The type of usage. An example is DataTransfer-In-Bytes.+    --     The response for the @GetDimensionValues@ operation includes a unit+    --     attribute. Examples include GB and Hrs.+    --+    -- -   USAGE_TYPE_GROUP - The grouping of common usage types. An example is+    --     Amazon EC2: CloudWatch – Alarms. The response for this operation+    --     includes a unit attribute.+    --+    -- -   REGION - The Amazon Web Services Region.+    --+    -- -   RECORD_TYPE - The different types of charges such as Reserved+    --     Instance (RI) fees, usage costs, tax refunds, and credits.+    --+    -- -   RESOURCE_ID - The unique identifier of the resource. ResourceId is+    --     an opt-in feature only available for last 14 days for EC2-Compute+    --     Service.+    --+    -- If you set the context to @RESERVATIONS@, you can use the following+    -- dimensions for searching:+    --+    -- -   AZ - The Availability Zone. An example is @us-east-1a@.+    --+    -- -   CACHE_ENGINE - The Amazon ElastiCache operating system. Examples are+    --     Windows or Linux.+    --+    -- -   DEPLOYMENT_OPTION - The scope of Amazon Relational Database Service+    --     deployments. Valid values are @SingleAZ@ and @MultiAZ@.+    --+    -- -   INSTANCE_TYPE - The type of Amazon EC2 instance. An example is+    --     @m4.xlarge@.+    --+    -- -   LINKED_ACCOUNT - The description in the attribute map that includes+    --     the full name of the member account. The value field contains the+    --     Amazon Web Services ID of the member account.+    --+    -- -   PLATFORM - The Amazon EC2 operating system. Examples are Windows or+    --     Linux.+    --+    -- -   REGION - The Amazon Web Services Region.+    --+    -- -   SCOPE (Utilization only) - The scope of a Reserved Instance (RI).+    --     Values are regional or a single Availability Zone.+    --+    -- -   TAG (Coverage only) - The tags that are associated with a Reserved+    --     Instance (RI).+    --+    -- -   TENANCY - The tenancy of a resource. Examples are shared or+    --     dedicated.+    --+    -- If you set the context to @SAVINGS_PLANS@, you can use the following+    -- dimensions for searching:+    --+    -- -   SAVINGS_PLANS_TYPE - Type of Savings Plans (EC2 Instance or Compute)+    --+    -- -   PAYMENT_OPTION - The payment option for the given Savings Plans (for+    --     example, All Upfront)+    --+    -- -   REGION - The Amazon Web Services Region.+    --+    -- -   INSTANCE_TYPE_FAMILY - The family of instances (For example, @m5@)+    --+    -- -   LINKED_ACCOUNT - The description in the attribute map that includes+    --     the full name of the member account. The value field contains the+    --     Amazon Web Services ID of the member account.+    --+    -- -   SAVINGS_PLAN_ARN - The unique identifier for your Savings Plans.+    context :: Prelude.Maybe Context,+    filter' :: Prelude.Maybe Expression,+    -- | This field is only used when SortBy is provided in the request. The+    -- maximum number of objects that are returned for this request. If+    -- MaxResults isn\'t specified with SortBy, the request returns 1000+    -- results as the default value for this parameter.+    --+    -- For @GetDimensionValues@, MaxResults has an upper limit of 1000.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The token to retrieve the next set of results. Amazon Web Services+    -- provides the token when the response from a previous call has more+    -- results than the maximum page size.+    nextPageToken :: Prelude.Maybe Prelude.Text,+    -- | The value that you want to search the filter values for.+    searchString :: Prelude.Maybe Prelude.Text,+    -- | The value that you want to sort the data by.+    --+    -- The key represents cost and usage metrics. The following values are+    -- supported:+    --+    -- -   @BlendedCost@+    --+    -- -   @UnblendedCost@+    --+    -- -   @AmortizedCost@+    --+    -- -   @NetAmortizedCost@+    --+    -- -   @NetUnblendedCost@+    --+    -- -   @UsageQuantity@+    --+    -- -   @NormalizedUsageAmount@+    --+    -- The supported values for the @SortOrder@ key are @ASCENDING@ or+    -- @DESCENDING@.+    --+    -- When you specify a @SortBy@ paramater, the context must be+    -- @COST_AND_USAGE@. Further, when using @SortBy@, @NextPageToken@ and+    -- @SearchString@ aren\'t supported.+    sortBy :: Prelude.Maybe [SortDefinition],+    -- | The start date and end date for retrieving the dimension values. The+    -- start date is inclusive, but the end date is exclusive. For example, if+    -- @start@ is @2017-01-01@ and @end@ is @2017-05-01@, then the cost and+    -- usage data is retrieved from @2017-01-01@ up to and including+    -- @2017-04-30@ but not including @2017-05-01@.+    timePeriod :: DateInterval,+    -- | The name of the dimension. Each @Dimension@ is available for a different+    -- @Context@. For more information, see @Context@. @LINK_ACCOUNT_NAME@ and+    -- @SERVICE_CODE@ can only be used in+    -- <https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/AAPI_CostCategoryRule.html CostCategoryRule>.+    dimension :: Dimension+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetDimensionValues' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'context', 'getDimensionValues_context' - The context for the call to @GetDimensionValues@. This can be+-- @RESERVATIONS@ or @COST_AND_USAGE@. The default value is+-- @COST_AND_USAGE@. If the context is set to @RESERVATIONS@, the resulting+-- dimension values can be used in the @GetReservationUtilization@+-- operation. If the context is set to @COST_AND_USAGE@, the resulting+-- dimension values can be used in the @GetCostAndUsage@ operation.+--+-- If you set the context to @COST_AND_USAGE@, you can use the following+-- dimensions for searching:+--+-- -   AZ - The Availability Zone. An example is @us-east-1a@.+--+-- -   BILLING_ENTITY - The Amazon Web Services seller that your account is+--     with. Possible values are the following:+--+--     - Amazon Web Services(Amazon Web Services): The entity that sells+--     Amazon Web Services.+--+--     - AISPL (Amazon Internet Services Pvt. Ltd.): The local Indian+--     entity that\'s an acting reseller for Amazon Web Services in India.+--+--     - Amazon Web Services Marketplace: The entity that supports the sale+--     of solutions that are built on Amazon Web Services by third-party+--     software providers.+--+-- -   CACHE_ENGINE - The Amazon ElastiCache operating system. Examples are+--     Windows or Linux.+--+-- -   DEPLOYMENT_OPTION - The scope of Amazon Relational Database Service+--     deployments. Valid values are @SingleAZ@ and @MultiAZ@.+--+-- -   DATABASE_ENGINE - The Amazon Relational Database Service database.+--     Examples are Aurora or MySQL.+--+-- -   INSTANCE_TYPE - The type of Amazon EC2 instance. An example is+--     @m4.xlarge@.+--+-- -   INSTANCE_TYPE_FAMILY - A family of instance types optimized to fit+--     different use cases. Examples are @Compute Optimized@ (for example,+--     @C4@, @C5@, @C6g@, and @C7g@), @Memory Optimization@ (for example,+--     @R4@, @R5n@, @R5b@, and @R6g@).+--+-- -   INVOICING_ENTITY - The name of the entity that issues the Amazon Web+--     Services invoice.+--+-- -   LEGAL_ENTITY_NAME - The name of the organization that sells you+--     Amazon Web Services services, such as Amazon Web Services.+--+-- -   LINKED_ACCOUNT - The description in the attribute map that includes+--     the full name of the member account. The value field contains the+--     Amazon Web Services ID of the member account.+--+-- -   OPERATING_SYSTEM - The operating system. Examples are Windows or+--     Linux.+--+-- -   OPERATION - The action performed. Examples include @RunInstance@ and+--     @CreateBucket@.+--+-- -   PLATFORM - The Amazon EC2 operating system. Examples are Windows or+--     Linux.+--+-- -   PURCHASE_TYPE - The reservation type of the purchase that this usage+--     is related to. Examples include On-Demand Instances and Standard+--     Reserved Instances.+--+-- -   RESERVATION_ID - The unique identifier for an Amazon Web Services+--     Reservation Instance.+--+-- -   SAVINGS_PLAN_ARN - The unique identifier for your Savings Plans.+--+-- -   SAVINGS_PLANS_TYPE - Type of Savings Plans (EC2 Instance or+--     Compute).+--+-- -   SERVICE - The Amazon Web Services service such as Amazon DynamoDB.+--+-- -   TENANCY - The tenancy of a resource. Examples are shared or+--     dedicated.+--+-- -   USAGE_TYPE - The type of usage. An example is DataTransfer-In-Bytes.+--     The response for the @GetDimensionValues@ operation includes a unit+--     attribute. Examples include GB and Hrs.+--+-- -   USAGE_TYPE_GROUP - The grouping of common usage types. An example is+--     Amazon EC2: CloudWatch – Alarms. The response for this operation+--     includes a unit attribute.+--+-- -   REGION - The Amazon Web Services Region.+--+-- -   RECORD_TYPE - The different types of charges such as Reserved+--     Instance (RI) fees, usage costs, tax refunds, and credits.+--+-- -   RESOURCE_ID - The unique identifier of the resource. ResourceId is+--     an opt-in feature only available for last 14 days for EC2-Compute+--     Service.+--+-- If you set the context to @RESERVATIONS@, you can use the following+-- dimensions for searching:+--+-- -   AZ - The Availability Zone. An example is @us-east-1a@.+--+-- -   CACHE_ENGINE - The Amazon ElastiCache operating system. Examples are+--     Windows or Linux.+--+-- -   DEPLOYMENT_OPTION - The scope of Amazon Relational Database Service+--     deployments. Valid values are @SingleAZ@ and @MultiAZ@.+--+-- -   INSTANCE_TYPE - The type of Amazon EC2 instance. An example is+--     @m4.xlarge@.+--+-- -   LINKED_ACCOUNT - The description in the attribute map that includes+--     the full name of the member account. The value field contains the+--     Amazon Web Services ID of the member account.+--+-- -   PLATFORM - The Amazon EC2 operating system. Examples are Windows or+--     Linux.+--+-- -   REGION - The Amazon Web Services Region.+--+-- -   SCOPE (Utilization only) - The scope of a Reserved Instance (RI).+--     Values are regional or a single Availability Zone.+--+-- -   TAG (Coverage only) - The tags that are associated with a Reserved+--     Instance (RI).+--+-- -   TENANCY - The tenancy of a resource. Examples are shared or+--     dedicated.+--+-- If you set the context to @SAVINGS_PLANS@, you can use the following+-- dimensions for searching:+--+-- -   SAVINGS_PLANS_TYPE - Type of Savings Plans (EC2 Instance or Compute)+--+-- -   PAYMENT_OPTION - The payment option for the given Savings Plans (for+--     example, All Upfront)+--+-- -   REGION - The Amazon Web Services Region.+--+-- -   INSTANCE_TYPE_FAMILY - The family of instances (For example, @m5@)+--+-- -   LINKED_ACCOUNT - The description in the attribute map that includes+--     the full name of the member account. The value field contains the+--     Amazon Web Services ID of the member account.+--+-- -   SAVINGS_PLAN_ARN - The unique identifier for your Savings Plans.+--+-- 'filter'', 'getDimensionValues_filter' - Undocumented member.+--+-- 'maxResults', 'getDimensionValues_maxResults' - This field is only used when SortBy is provided in the request. The+-- maximum number of objects that are returned for this request. If+-- MaxResults isn\'t specified with SortBy, the request returns 1000+-- results as the default value for this parameter.+--+-- For @GetDimensionValues@, MaxResults has an upper limit of 1000.+--+-- 'nextPageToken', 'getDimensionValues_nextPageToken' - The token to retrieve the next set of results. Amazon Web Services+-- provides the token when the response from a previous call has more+-- results than the maximum page size.+--+-- 'searchString', 'getDimensionValues_searchString' - The value that you want to search the filter values for.+--+-- 'sortBy', 'getDimensionValues_sortBy' - The value that you want to sort the data by.+--+-- The key represents cost and usage metrics. The following values are+-- supported:+--+-- -   @BlendedCost@+--+-- -   @UnblendedCost@+--+-- -   @AmortizedCost@+--+-- -   @NetAmortizedCost@+--+-- -   @NetUnblendedCost@+--+-- -   @UsageQuantity@+--+-- -   @NormalizedUsageAmount@+--+-- The supported values for the @SortOrder@ key are @ASCENDING@ or+-- @DESCENDING@.+--+-- When you specify a @SortBy@ paramater, the context must be+-- @COST_AND_USAGE@. Further, when using @SortBy@, @NextPageToken@ and+-- @SearchString@ aren\'t supported.+--+-- 'timePeriod', 'getDimensionValues_timePeriod' - The start date and end date for retrieving the dimension values. The+-- start date is inclusive, but the end date is exclusive. For example, if+-- @start@ is @2017-01-01@ and @end@ is @2017-05-01@, then the cost and+-- usage data is retrieved from @2017-01-01@ up to and including+-- @2017-04-30@ but not including @2017-05-01@.+--+-- 'dimension', 'getDimensionValues_dimension' - The name of the dimension. Each @Dimension@ is available for a different+-- @Context@. For more information, see @Context@. @LINK_ACCOUNT_NAME@ and+-- @SERVICE_CODE@ can only be used in+-- <https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/AAPI_CostCategoryRule.html CostCategoryRule>.+newGetDimensionValues ::+  -- | 'timePeriod'+  DateInterval ->+  -- | 'dimension'+  Dimension ->+  GetDimensionValues+newGetDimensionValues pTimePeriod_ pDimension_ =+  GetDimensionValues'+    { context = Prelude.Nothing,+      filter' = Prelude.Nothing,+      maxResults = Prelude.Nothing,+      nextPageToken = Prelude.Nothing,+      searchString = Prelude.Nothing,+      sortBy = Prelude.Nothing,+      timePeriod = pTimePeriod_,+      dimension = pDimension_+    }++-- | The context for the call to @GetDimensionValues@. This can be+-- @RESERVATIONS@ or @COST_AND_USAGE@. The default value is+-- @COST_AND_USAGE@. If the context is set to @RESERVATIONS@, the resulting+-- dimension values can be used in the @GetReservationUtilization@+-- operation. If the context is set to @COST_AND_USAGE@, the resulting+-- dimension values can be used in the @GetCostAndUsage@ operation.+--+-- If you set the context to @COST_AND_USAGE@, you can use the following+-- dimensions for searching:+--+-- -   AZ - The Availability Zone. An example is @us-east-1a@.+--+-- -   BILLING_ENTITY - The Amazon Web Services seller that your account is+--     with. Possible values are the following:+--+--     - Amazon Web Services(Amazon Web Services): The entity that sells+--     Amazon Web Services.+--+--     - AISPL (Amazon Internet Services Pvt. Ltd.): The local Indian+--     entity that\'s an acting reseller for Amazon Web Services in India.+--+--     - Amazon Web Services Marketplace: The entity that supports the sale+--     of solutions that are built on Amazon Web Services by third-party+--     software providers.+--+-- -   CACHE_ENGINE - The Amazon ElastiCache operating system. Examples are+--     Windows or Linux.+--+-- -   DEPLOYMENT_OPTION - The scope of Amazon Relational Database Service+--     deployments. Valid values are @SingleAZ@ and @MultiAZ@.+--+-- -   DATABASE_ENGINE - The Amazon Relational Database Service database.+--     Examples are Aurora or MySQL.+--+-- -   INSTANCE_TYPE - The type of Amazon EC2 instance. An example is+--     @m4.xlarge@.+--+-- -   INSTANCE_TYPE_FAMILY - A family of instance types optimized to fit+--     different use cases. Examples are @Compute Optimized@ (for example,+--     @C4@, @C5@, @C6g@, and @C7g@), @Memory Optimization@ (for example,+--     @R4@, @R5n@, @R5b@, and @R6g@).+--+-- -   INVOICING_ENTITY - The name of the entity that issues the Amazon Web+--     Services invoice.+--+-- -   LEGAL_ENTITY_NAME - The name of the organization that sells you+--     Amazon Web Services services, such as Amazon Web Services.+--+-- -   LINKED_ACCOUNT - The description in the attribute map that includes+--     the full name of the member account. The value field contains the+--     Amazon Web Services ID of the member account.+--+-- -   OPERATING_SYSTEM - The operating system. Examples are Windows or+--     Linux.+--+-- -   OPERATION - The action performed. Examples include @RunInstance@ and+--     @CreateBucket@.+--+-- -   PLATFORM - The Amazon EC2 operating system. Examples are Windows or+--     Linux.+--+-- -   PURCHASE_TYPE - The reservation type of the purchase that this usage+--     is related to. Examples include On-Demand Instances and Standard+--     Reserved Instances.+--+-- -   RESERVATION_ID - The unique identifier for an Amazon Web Services+--     Reservation Instance.+--+-- -   SAVINGS_PLAN_ARN - The unique identifier for your Savings Plans.+--+-- -   SAVINGS_PLANS_TYPE - Type of Savings Plans (EC2 Instance or+--     Compute).+--+-- -   SERVICE - The Amazon Web Services service such as Amazon DynamoDB.+--+-- -   TENANCY - The tenancy of a resource. Examples are shared or+--     dedicated.+--+-- -   USAGE_TYPE - The type of usage. An example is DataTransfer-In-Bytes.+--     The response for the @GetDimensionValues@ operation includes a unit+--     attribute. Examples include GB and Hrs.+--+-- -   USAGE_TYPE_GROUP - The grouping of common usage types. An example is+--     Amazon EC2: CloudWatch – Alarms. The response for this operation+--     includes a unit attribute.+--+-- -   REGION - The Amazon Web Services Region.+--+-- -   RECORD_TYPE - The different types of charges such as Reserved+--     Instance (RI) fees, usage costs, tax refunds, and credits.+--+-- -   RESOURCE_ID - The unique identifier of the resource. ResourceId is+--     an opt-in feature only available for last 14 days for EC2-Compute+--     Service.+--+-- If you set the context to @RESERVATIONS@, you can use the following+-- dimensions for searching:+--+-- -   AZ - The Availability Zone. An example is @us-east-1a@.+--+-- -   CACHE_ENGINE - The Amazon ElastiCache operating system. Examples are+--     Windows or Linux.+--+-- -   DEPLOYMENT_OPTION - The scope of Amazon Relational Database Service+--     deployments. Valid values are @SingleAZ@ and @MultiAZ@.+--+-- -   INSTANCE_TYPE - The type of Amazon EC2 instance. An example is+--     @m4.xlarge@.+--+-- -   LINKED_ACCOUNT - The description in the attribute map that includes+--     the full name of the member account. The value field contains the+--     Amazon Web Services ID of the member account.+--+-- -   PLATFORM - The Amazon EC2 operating system. Examples are Windows or+--     Linux.+--+-- -   REGION - The Amazon Web Services Region.+--+-- -   SCOPE (Utilization only) - The scope of a Reserved Instance (RI).+--     Values are regional or a single Availability Zone.+--+-- -   TAG (Coverage only) - The tags that are associated with a Reserved+--     Instance (RI).+--+-- -   TENANCY - The tenancy of a resource. Examples are shared or+--     dedicated.+--+-- If you set the context to @SAVINGS_PLANS@, you can use the following+-- dimensions for searching:+--+-- -   SAVINGS_PLANS_TYPE - Type of Savings Plans (EC2 Instance or Compute)+--+-- -   PAYMENT_OPTION - The payment option for the given Savings Plans (for+--     example, All Upfront)+--+-- -   REGION - The Amazon Web Services Region.+--+-- -   INSTANCE_TYPE_FAMILY - The family of instances (For example, @m5@)+--+-- -   LINKED_ACCOUNT - The description in the attribute map that includes+--     the full name of the member account. The value field contains the+--     Amazon Web Services ID of the member account.+--+-- -   SAVINGS_PLAN_ARN - The unique identifier for your Savings Plans.+getDimensionValues_context :: Lens.Lens' GetDimensionValues (Prelude.Maybe Context)+getDimensionValues_context = Lens.lens (\GetDimensionValues' {context} -> context) (\s@GetDimensionValues' {} a -> s {context = a} :: GetDimensionValues)++-- | Undocumented member.+getDimensionValues_filter :: Lens.Lens' GetDimensionValues (Prelude.Maybe Expression)+getDimensionValues_filter = Lens.lens (\GetDimensionValues' {filter'} -> filter') (\s@GetDimensionValues' {} a -> s {filter' = a} :: GetDimensionValues)++-- | This field is only used when SortBy is provided in the request. The+-- maximum number of objects that are returned for this request. If+-- MaxResults isn\'t specified with SortBy, the request returns 1000+-- results as the default value for this parameter.+--+-- For @GetDimensionValues@, MaxResults has an upper limit of 1000.+getDimensionValues_maxResults :: Lens.Lens' GetDimensionValues (Prelude.Maybe Prelude.Natural)+getDimensionValues_maxResults = Lens.lens (\GetDimensionValues' {maxResults} -> maxResults) (\s@GetDimensionValues' {} a -> s {maxResults = a} :: GetDimensionValues)++-- | The token to retrieve the next set of results. Amazon Web Services+-- provides the token when the response from a previous call has more+-- results than the maximum page size.+getDimensionValues_nextPageToken :: Lens.Lens' GetDimensionValues (Prelude.Maybe Prelude.Text)+getDimensionValues_nextPageToken = Lens.lens (\GetDimensionValues' {nextPageToken} -> nextPageToken) (\s@GetDimensionValues' {} a -> s {nextPageToken = a} :: GetDimensionValues)++-- | The value that you want to search the filter values for.+getDimensionValues_searchString :: Lens.Lens' GetDimensionValues (Prelude.Maybe Prelude.Text)+getDimensionValues_searchString = Lens.lens (\GetDimensionValues' {searchString} -> searchString) (\s@GetDimensionValues' {} a -> s {searchString = a} :: GetDimensionValues)++-- | The value that you want to sort the data by.+--+-- The key represents cost and usage metrics. The following values are+-- supported:+--+-- -   @BlendedCost@+--+-- -   @UnblendedCost@+--+-- -   @AmortizedCost@+--+-- -   @NetAmortizedCost@+--+-- -   @NetUnblendedCost@+--+-- -   @UsageQuantity@+--+-- -   @NormalizedUsageAmount@+--+-- The supported values for the @SortOrder@ key are @ASCENDING@ or+-- @DESCENDING@.+--+-- When you specify a @SortBy@ paramater, the context must be+-- @COST_AND_USAGE@. Further, when using @SortBy@, @NextPageToken@ and+-- @SearchString@ aren\'t supported.+getDimensionValues_sortBy :: Lens.Lens' GetDimensionValues (Prelude.Maybe [SortDefinition])+getDimensionValues_sortBy = Lens.lens (\GetDimensionValues' {sortBy} -> sortBy) (\s@GetDimensionValues' {} a -> s {sortBy = a} :: GetDimensionValues) Prelude.. Lens.mapping Lens.coerced++-- | The start date and end date for retrieving the dimension values. The+-- start date is inclusive, but the end date is exclusive. For example, if+-- @start@ is @2017-01-01@ and @end@ is @2017-05-01@, then the cost and+-- usage data is retrieved from @2017-01-01@ up to and including+-- @2017-04-30@ but not including @2017-05-01@.+getDimensionValues_timePeriod :: Lens.Lens' GetDimensionValues DateInterval+getDimensionValues_timePeriod = Lens.lens (\GetDimensionValues' {timePeriod} -> timePeriod) (\s@GetDimensionValues' {} a -> s {timePeriod = a} :: GetDimensionValues)++-- | The name of the dimension. Each @Dimension@ is available for a different+-- @Context@. For more information, see @Context@. @LINK_ACCOUNT_NAME@ and+-- @SERVICE_CODE@ can only be used in+-- <https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/AAPI_CostCategoryRule.html CostCategoryRule>.+getDimensionValues_dimension :: Lens.Lens' GetDimensionValues Dimension+getDimensionValues_dimension = Lens.lens (\GetDimensionValues' {dimension} -> dimension) (\s@GetDimensionValues' {} a -> s {dimension = a} :: GetDimensionValues)++instance Core.AWSRequest GetDimensionValues where+  type+    AWSResponse GetDimensionValues =+      GetDimensionValuesResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetDimensionValuesResponse'+            Prelude.<$> (x Data..?> "NextPageToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> ( x+                            Data..?> "DimensionValues"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..:> "ReturnSize")+            Prelude.<*> (x Data..:> "TotalSize")+      )++instance Prelude.Hashable GetDimensionValues where+  hashWithSalt _salt GetDimensionValues' {..} =+    _salt+      `Prelude.hashWithSalt` context+      `Prelude.hashWithSalt` filter'+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextPageToken+      `Prelude.hashWithSalt` searchString+      `Prelude.hashWithSalt` sortBy+      `Prelude.hashWithSalt` timePeriod+      `Prelude.hashWithSalt` dimension++instance Prelude.NFData GetDimensionValues where+  rnf GetDimensionValues' {..} =+    Prelude.rnf context+      `Prelude.seq` Prelude.rnf filter'+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextPageToken+      `Prelude.seq` Prelude.rnf searchString+      `Prelude.seq` Prelude.rnf sortBy+      `Prelude.seq` Prelude.rnf timePeriod+      `Prelude.seq` Prelude.rnf dimension++instance Data.ToHeaders GetDimensionValues where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSInsightsIndexService.GetDimensionValues" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON GetDimensionValues where+  toJSON GetDimensionValues' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Context" Data..=) Prelude.<$> context,+            ("Filter" Data..=) Prelude.<$> filter',+            ("MaxResults" Data..=) Prelude.<$> maxResults,+            ("NextPageToken" Data..=) Prelude.<$> nextPageToken,+            ("SearchString" Data..=) Prelude.<$> searchString,+            ("SortBy" Data..=) Prelude.<$> sortBy,+            Prelude.Just ("TimePeriod" Data..= timePeriod),+            Prelude.Just ("Dimension" Data..= dimension)+          ]+      )++instance Data.ToPath GetDimensionValues where+  toPath = Prelude.const "/"++instance Data.ToQuery GetDimensionValues where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetDimensionValuesResponse' smart constructor.+data GetDimensionValuesResponse = GetDimensionValuesResponse'+  { -- | The token for the next set of retrievable results. Amazon Web Services+    -- provides the token when the response from a previous call has more+    -- results than the maximum page size.+    nextPageToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The filters that you used to filter your request. Some dimensions are+    -- available only for a specific context.+    --+    -- If you set the context to @COST_AND_USAGE@, you can use the following+    -- dimensions for searching:+    --+    -- -   AZ - The Availability Zone. An example is @us-east-1a@.+    --+    -- -   DATABASE_ENGINE - The Amazon Relational Database Service database.+    --     Examples are Aurora or MySQL.+    --+    -- -   INSTANCE_TYPE - The type of Amazon EC2 instance. An example is+    --     @m4.xlarge@.+    --+    -- -   LEGAL_ENTITY_NAME - The name of the organization that sells you+    --     Amazon Web Services services, such as Amazon Web Services.+    --+    -- -   LINKED_ACCOUNT - The description in the attribute map that includes+    --     the full name of the member account. The value field contains the+    --     Amazon Web Services ID of the member account.+    --+    -- -   OPERATING_SYSTEM - The operating system. Examples are Windows or+    --     Linux.+    --+    -- -   OPERATION - The action performed. Examples include @RunInstance@ and+    --     @CreateBucket@.+    --+    -- -   PLATFORM - The Amazon EC2 operating system. Examples are Windows or+    --     Linux.+    --+    -- -   PURCHASE_TYPE - The reservation type of the purchase to which this+    --     usage is related. Examples include On-Demand Instances and Standard+    --     Reserved Instances.+    --+    -- -   SERVICE - The Amazon Web Services service such as Amazon DynamoDB.+    --+    -- -   USAGE_TYPE - The type of usage. An example is DataTransfer-In-Bytes.+    --     The response for the @GetDimensionValues@ operation includes a unit+    --     attribute. Examples include GB and Hrs.+    --+    -- -   USAGE_TYPE_GROUP - The grouping of common usage types. An example is+    --     Amazon EC2: CloudWatch – Alarms. The response for this operation+    --     includes a unit attribute.+    --+    -- -   RECORD_TYPE - The different types of charges such as RI fees, usage+    --     costs, tax refunds, and credits.+    --+    -- -   RESOURCE_ID - The unique identifier of the resource. ResourceId is+    --     an opt-in feature only available for last 14 days for EC2-Compute+    --     Service. You can opt-in by enabling @Hourly@ and+    --     @Resource Level Data@ in Cost Management Console preferences.+    --+    -- If you set the context to @RESERVATIONS@, you can use the following+    -- dimensions for searching:+    --+    -- -   AZ - The Availability Zone. An example is @us-east-1a@.+    --+    -- -   CACHE_ENGINE - The Amazon ElastiCache operating system. Examples are+    --     Windows or Linux.+    --+    -- -   DEPLOYMENT_OPTION - The scope of Amazon Relational Database Service+    --     deployments. Valid values are @SingleAZ@ and @MultiAZ@.+    --+    -- -   INSTANCE_TYPE - The type of Amazon EC2 instance. An example is+    --     @m4.xlarge@.+    --+    -- -   LINKED_ACCOUNT - The description in the attribute map that includes+    --     the full name of the member account. The value field contains the+    --     Amazon Web Services ID of the member account.+    --+    -- -   PLATFORM - The Amazon EC2 operating system. Examples are Windows or+    --     Linux.+    --+    -- -   REGION - The Amazon Web Services Region.+    --+    -- -   SCOPE (Utilization only) - The scope of a Reserved Instance (RI).+    --     Values are regional or a single Availability Zone.+    --+    -- -   TAG (Coverage only) - The tags that are associated with a Reserved+    --     Instance (RI).+    --+    -- -   TENANCY - The tenancy of a resource. Examples are shared or+    --     dedicated.+    --+    -- If you set the context to @SAVINGS_PLANS@, you can use the following+    -- dimensions for searching:+    --+    -- -   SAVINGS_PLANS_TYPE - Type of Savings Plans (EC2 Instance or Compute)+    --+    -- -   PAYMENT_OPTION - Payment option for the given Savings Plans (for+    --     example, All Upfront)+    --+    -- -   REGION - The Amazon Web Services Region.+    --+    -- -   INSTANCE_TYPE_FAMILY - The family of instances (For example, @m5@)+    --+    -- -   LINKED_ACCOUNT - The description in the attribute map that includes+    --     the full name of the member account. The value field contains the+    --     Amazon Web Services ID of the member account.+    --+    -- -   SAVINGS_PLAN_ARN - The unique identifier for your Savings Plan+    dimensionValues :: [DimensionValuesWithAttributes],+    -- | The number of results that Amazon Web Services returned at one time.+    returnSize :: Prelude.Int,+    -- | The total number of search results.+    totalSize :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetDimensionValuesResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'nextPageToken', 'getDimensionValuesResponse_nextPageToken' - The token for the next set of retrievable results. Amazon Web Services+-- provides the token when the response from a previous call has more+-- results than the maximum page size.+--+-- 'httpStatus', 'getDimensionValuesResponse_httpStatus' - The response's http status code.+--+-- 'dimensionValues', 'getDimensionValuesResponse_dimensionValues' - The filters that you used to filter your request. Some dimensions are+-- available only for a specific context.+--+-- If you set the context to @COST_AND_USAGE@, you can use the following+-- dimensions for searching:+--+-- -   AZ - The Availability Zone. An example is @us-east-1a@.+--+-- -   DATABASE_ENGINE - The Amazon Relational Database Service database.+--     Examples are Aurora or MySQL.+--+-- -   INSTANCE_TYPE - The type of Amazon EC2 instance. An example is+--     @m4.xlarge@.+--+-- -   LEGAL_ENTITY_NAME - The name of the organization that sells you+--     Amazon Web Services services, such as Amazon Web Services.+--+-- -   LINKED_ACCOUNT - The description in the attribute map that includes+--     the full name of the member account. The value field contains the+--     Amazon Web Services ID of the member account.+--+-- -   OPERATING_SYSTEM - The operating system. Examples are Windows or+--     Linux.+--+-- -   OPERATION - The action performed. Examples include @RunInstance@ and+--     @CreateBucket@.+--+-- -   PLATFORM - The Amazon EC2 operating system. Examples are Windows or+--     Linux.+--+-- -   PURCHASE_TYPE - The reservation type of the purchase to which this+--     usage is related. Examples include On-Demand Instances and Standard+--     Reserved Instances.+--+-- -   SERVICE - The Amazon Web Services service such as Amazon DynamoDB.+--+-- -   USAGE_TYPE - The type of usage. An example is DataTransfer-In-Bytes.+--     The response for the @GetDimensionValues@ operation includes a unit+--     attribute. Examples include GB and Hrs.+--+-- -   USAGE_TYPE_GROUP - The grouping of common usage types. An example is+--     Amazon EC2: CloudWatch – Alarms. The response for this operation+--     includes a unit attribute.+--+-- -   RECORD_TYPE - The different types of charges such as RI fees, usage+--     costs, tax refunds, and credits.+--+-- -   RESOURCE_ID - The unique identifier of the resource. ResourceId is+--     an opt-in feature only available for last 14 days for EC2-Compute+--     Service. You can opt-in by enabling @Hourly@ and+--     @Resource Level Data@ in Cost Management Console preferences.+--+-- If you set the context to @RESERVATIONS@, you can use the following+-- dimensions for searching:+--+-- -   AZ - The Availability Zone. An example is @us-east-1a@.+--+-- -   CACHE_ENGINE - The Amazon ElastiCache operating system. Examples are+--     Windows or Linux.+--+-- -   DEPLOYMENT_OPTION - The scope of Amazon Relational Database Service+--     deployments. Valid values are @SingleAZ@ and @MultiAZ@.+--+-- -   INSTANCE_TYPE - The type of Amazon EC2 instance. An example is+--     @m4.xlarge@.+--+-- -   LINKED_ACCOUNT - The description in the attribute map that includes+--     the full name of the member account. The value field contains the+--     Amazon Web Services ID of the member account.+--+-- -   PLATFORM - The Amazon EC2 operating system. Examples are Windows or+--     Linux.+--+-- -   REGION - The Amazon Web Services Region.+--+-- -   SCOPE (Utilization only) - The scope of a Reserved Instance (RI).+--     Values are regional or a single Availability Zone.+--+-- -   TAG (Coverage only) - The tags that are associated with a Reserved+--     Instance (RI).+--+-- -   TENANCY - The tenancy of a resource. Examples are shared or+--     dedicated.+--+-- If you set the context to @SAVINGS_PLANS@, you can use the following+-- dimensions for searching:+--+-- -   SAVINGS_PLANS_TYPE - Type of Savings Plans (EC2 Instance or Compute)+--+-- -   PAYMENT_OPTION - Payment option for the given Savings Plans (for+--     example, All Upfront)+--+-- -   REGION - The Amazon Web Services Region.+--+-- -   INSTANCE_TYPE_FAMILY - The family of instances (For example, @m5@)+--+-- -   LINKED_ACCOUNT - The description in the attribute map that includes+--     the full name of the member account. The value field contains the+--     Amazon Web Services ID of the member account.+--+-- -   SAVINGS_PLAN_ARN - The unique identifier for your Savings Plan+--+-- 'returnSize', 'getDimensionValuesResponse_returnSize' - The number of results that Amazon Web Services returned at one time.+--+-- 'totalSize', 'getDimensionValuesResponse_totalSize' - The total number of search results.+newGetDimensionValuesResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'returnSize'+  Prelude.Int ->+  -- | 'totalSize'+  Prelude.Int ->+  GetDimensionValuesResponse+newGetDimensionValuesResponse+  pHttpStatus_+  pReturnSize_+  pTotalSize_ =+    GetDimensionValuesResponse'+      { nextPageToken =+          Prelude.Nothing,+        httpStatus = pHttpStatus_,+        dimensionValues = Prelude.mempty,+        returnSize = pReturnSize_,+        totalSize = pTotalSize_+      }++-- | The token for the next set of retrievable results. Amazon Web Services+-- provides the token when the response from a previous call has more+-- results than the maximum page size.+getDimensionValuesResponse_nextPageToken :: Lens.Lens' GetDimensionValuesResponse (Prelude.Maybe Prelude.Text)+getDimensionValuesResponse_nextPageToken = Lens.lens (\GetDimensionValuesResponse' {nextPageToken} -> nextPageToken) (\s@GetDimensionValuesResponse' {} a -> s {nextPageToken = a} :: GetDimensionValuesResponse)++-- | The response's http status code.+getDimensionValuesResponse_httpStatus :: Lens.Lens' GetDimensionValuesResponse Prelude.Int+getDimensionValuesResponse_httpStatus = Lens.lens (\GetDimensionValuesResponse' {httpStatus} -> httpStatus) (\s@GetDimensionValuesResponse' {} a -> s {httpStatus = a} :: GetDimensionValuesResponse)++-- | The filters that you used to filter your request. Some dimensions are+-- available only for a specific context.+--+-- If you set the context to @COST_AND_USAGE@, you can use the following+-- dimensions for searching:+--+-- -   AZ - The Availability Zone. An example is @us-east-1a@.+--+-- -   DATABASE_ENGINE - The Amazon Relational Database Service database.+--     Examples are Aurora or MySQL.+--+-- -   INSTANCE_TYPE - The type of Amazon EC2 instance. An example is+--     @m4.xlarge@.+--+-- -   LEGAL_ENTITY_NAME - The name of the organization that sells you+--     Amazon Web Services services, such as Amazon Web Services.+--+-- -   LINKED_ACCOUNT - The description in the attribute map that includes+--     the full name of the member account. The value field contains the+--     Amazon Web Services ID of the member account.+--+-- -   OPERATING_SYSTEM - The operating system. Examples are Windows or+--     Linux.+--+-- -   OPERATION - The action performed. Examples include @RunInstance@ and+--     @CreateBucket@.+--+-- -   PLATFORM - The Amazon EC2 operating system. Examples are Windows or+--     Linux.+--+-- -   PURCHASE_TYPE - The reservation type of the purchase to which this+--     usage is related. Examples include On-Demand Instances and Standard+--     Reserved Instances.+--+-- -   SERVICE - The Amazon Web Services service such as Amazon DynamoDB.+--+-- -   USAGE_TYPE - The type of usage. An example is DataTransfer-In-Bytes.+--     The response for the @GetDimensionValues@ operation includes a unit+--     attribute. Examples include GB and Hrs.+--+-- -   USAGE_TYPE_GROUP - The grouping of common usage types. An example is+--     Amazon EC2: CloudWatch – Alarms. The response for this operation+--     includes a unit attribute.+--+-- -   RECORD_TYPE - The different types of charges such as RI fees, usage+--     costs, tax refunds, and credits.+--+-- -   RESOURCE_ID - The unique identifier of the resource. ResourceId is+--     an opt-in feature only available for last 14 days for EC2-Compute+--     Service. You can opt-in by enabling @Hourly@ and+--     @Resource Level Data@ in Cost Management Console preferences.+--+-- If you set the context to @RESERVATIONS@, you can use the following+-- dimensions for searching:+--+-- -   AZ - The Availability Zone. An example is @us-east-1a@.+--+-- -   CACHE_ENGINE - The Amazon ElastiCache operating system. Examples are+--     Windows or Linux.+--+-- -   DEPLOYMENT_OPTION - The scope of Amazon Relational Database Service+--     deployments. Valid values are @SingleAZ@ and @MultiAZ@.+--+-- -   INSTANCE_TYPE - The type of Amazon EC2 instance. An example is+--     @m4.xlarge@.+--+-- -   LINKED_ACCOUNT - The description in the attribute map that includes+--     the full name of the member account. The value field contains the+--     Amazon Web Services ID of the member account.+--+-- -   PLATFORM - The Amazon EC2 operating system. Examples are Windows or+--     Linux.+--+-- -   REGION - The Amazon Web Services Region.+--+-- -   SCOPE (Utilization only) - The scope of a Reserved Instance (RI).+--     Values are regional or a single Availability Zone.+--+-- -   TAG (Coverage only) - The tags that are associated with a Reserved+--     Instance (RI).+--+-- -   TENANCY - The tenancy of a resource. Examples are shared or+--     dedicated.+--+-- If you set the context to @SAVINGS_PLANS@, you can use the following+-- dimensions for searching:+--+-- -   SAVINGS_PLANS_TYPE - Type of Savings Plans (EC2 Instance or Compute)+--+-- -   PAYMENT_OPTION - Payment option for the given Savings Plans (for+--     example, All Upfront)+--+-- -   REGION - The Amazon Web Services Region.+--+-- -   INSTANCE_TYPE_FAMILY - The family of instances (For example, @m5@)+--+-- -   LINKED_ACCOUNT - The description in the attribute map that includes+--     the full name of the member account. The value field contains the+--     Amazon Web Services ID of the member account.+--+-- -   SAVINGS_PLAN_ARN - The unique identifier for your Savings Plan+getDimensionValuesResponse_dimensionValues :: Lens.Lens' GetDimensionValuesResponse [DimensionValuesWithAttributes]+getDimensionValuesResponse_dimensionValues = Lens.lens (\GetDimensionValuesResponse' {dimensionValues} -> dimensionValues) (\s@GetDimensionValuesResponse' {} a -> s {dimensionValues = a} :: GetDimensionValuesResponse) Prelude.. Lens.coerced++-- | The number of results that Amazon Web Services returned at one time.+getDimensionValuesResponse_returnSize :: Lens.Lens' GetDimensionValuesResponse Prelude.Int+getDimensionValuesResponse_returnSize = Lens.lens (\GetDimensionValuesResponse' {returnSize} -> returnSize) (\s@GetDimensionValuesResponse' {} a -> s {returnSize = a} :: GetDimensionValuesResponse)++-- | The total number of search results.+getDimensionValuesResponse_totalSize :: Lens.Lens' GetDimensionValuesResponse Prelude.Int+getDimensionValuesResponse_totalSize = Lens.lens (\GetDimensionValuesResponse' {totalSize} -> totalSize) (\s@GetDimensionValuesResponse' {} a -> s {totalSize = a} :: GetDimensionValuesResponse)++instance Prelude.NFData GetDimensionValuesResponse where+  rnf GetDimensionValuesResponse' {..} =+    Prelude.rnf nextPageToken+      `Prelude.seq` Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf dimensionValues+      `Prelude.seq` Prelude.rnf returnSize+      `Prelude.seq` Prelude.rnf totalSize
+ gen/Amazonka/CostExplorer/GetReservationCoverage.hs view
@@ -0,0 +1,646 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.GetReservationCoverage+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves the reservation coverage for your account, which you can use+-- to see how much of your Amazon Elastic Compute Cloud, Amazon+-- ElastiCache, Amazon Relational Database Service, or Amazon Redshift+-- usage is covered by a reservation. An organization\'s management account+-- can see the coverage of the associated member accounts. This supports+-- dimensions, Cost Categories, and nested expressions. For any time+-- period, you can filter data about reservation usage by the following+-- dimensions:+--+-- -   AZ+--+-- -   CACHE_ENGINE+--+-- -   DATABASE_ENGINE+--+-- -   DEPLOYMENT_OPTION+--+-- -   INSTANCE_TYPE+--+-- -   LINKED_ACCOUNT+--+-- -   OPERATING_SYSTEM+--+-- -   PLATFORM+--+-- -   REGION+--+-- -   SERVICE+--+-- -   TAG+--+-- -   TENANCY+--+-- To determine valid values for a dimension, use the @GetDimensionValues@+-- operation.+module Amazonka.CostExplorer.GetReservationCoverage+  ( -- * Creating a Request+    GetReservationCoverage (..),+    newGetReservationCoverage,++    -- * Request Lenses+    getReservationCoverage_filter,+    getReservationCoverage_granularity,+    getReservationCoverage_groupBy,+    getReservationCoverage_maxResults,+    getReservationCoverage_metrics,+    getReservationCoverage_nextPageToken,+    getReservationCoverage_sortBy,+    getReservationCoverage_timePeriod,++    -- * Destructuring the Response+    GetReservationCoverageResponse (..),+    newGetReservationCoverageResponse,++    -- * Response Lenses+    getReservationCoverageResponse_nextPageToken,+    getReservationCoverageResponse_total,+    getReservationCoverageResponse_httpStatus,+    getReservationCoverageResponse_coveragesByTime,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CostExplorer.Types+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | You can use the following request parameters to query for how much of+-- your instance usage a reservation covered.+--+-- /See:/ 'newGetReservationCoverage' smart constructor.+data GetReservationCoverage = GetReservationCoverage'+  { -- | Filters utilization data by dimensions. You can filter by the following+    -- dimensions:+    --+    -- -   AZ+    --+    -- -   CACHE_ENGINE+    --+    -- -   DATABASE_ENGINE+    --+    -- -   DEPLOYMENT_OPTION+    --+    -- -   INSTANCE_TYPE+    --+    -- -   LINKED_ACCOUNT+    --+    -- -   OPERATING_SYSTEM+    --+    -- -   PLATFORM+    --+    -- -   REGION+    --+    -- -   SERVICE+    --+    -- -   TAG+    --+    -- -   TENANCY+    --+    -- @GetReservationCoverage@ uses the same+    -- <https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html Expression>+    -- object as the other operations, but only @AND@ is supported among each+    -- dimension. You can nest only one level deep. If there are multiple+    -- values for a dimension, they are OR\'d together.+    --+    -- If you don\'t provide a @SERVICE@ filter, Cost Explorer defaults to EC2.+    --+    -- Cost category is also supported.+    filter' :: Prelude.Maybe Expression,+    -- | The granularity of the Amazon Web Services cost data for the+    -- reservation. Valid values are @MONTHLY@ and @DAILY@.+    --+    -- If @GroupBy@ is set, @Granularity@ can\'t be set. If @Granularity@+    -- isn\'t set, the response object doesn\'t include @Granularity@, either+    -- @MONTHLY@ or @DAILY@.+    --+    -- The @GetReservationCoverage@ operation supports only @DAILY@ and+    -- @MONTHLY@ granularities.+    granularity :: Prelude.Maybe Granularity,+    -- | You can group the data by the following attributes:+    --+    -- -   AZ+    --+    -- -   CACHE_ENGINE+    --+    -- -   DATABASE_ENGINE+    --+    -- -   DEPLOYMENT_OPTION+    --+    -- -   INSTANCE_TYPE+    --+    -- -   INVOICING_ENTITY+    --+    -- -   LINKED_ACCOUNT+    --+    -- -   OPERATING_SYSTEM+    --+    -- -   PLATFORM+    --+    -- -   REGION+    --+    -- -   TENANCY+    groupBy :: Prelude.Maybe [GroupDefinition],+    -- | The maximum number of objects that you returned for this request. If+    -- more objects are available, in the response, Amazon Web Services+    -- provides a NextPageToken value that you can use in a subsequent call to+    -- get the next batch of objects.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The measurement that you want your reservation coverage reported in.+    --+    -- Valid values are @Hour@, @Unit@, and @Cost@. You can use multiple values+    -- in a request.+    metrics :: Prelude.Maybe [Prelude.Text],+    -- | The token to retrieve the next set of results. Amazon Web Services+    -- provides the token when the response from a previous call has more+    -- results than the maximum page size.+    nextPageToken :: Prelude.Maybe Prelude.Text,+    -- | The value by which you want to sort the data.+    --+    -- The following values are supported for @Key@:+    --+    -- -   @OnDemandCost@+    --+    -- -   @CoverageHoursPercentage@+    --+    -- -   @OnDemandHours@+    --+    -- -   @ReservedHours@+    --+    -- -   @TotalRunningHours@+    --+    -- -   @CoverageNormalizedUnitsPercentage@+    --+    -- -   @OnDemandNormalizedUnits@+    --+    -- -   @ReservedNormalizedUnits@+    --+    -- -   @TotalRunningNormalizedUnits@+    --+    -- -   @Time@+    --+    -- Supported values for @SortOrder@ are @ASCENDING@ or @DESCENDING@.+    sortBy :: Prelude.Maybe SortDefinition,+    -- | The start and end dates of the period that you want to retrieve data+    -- about reservation coverage for. You can retrieve data for a maximum of+    -- 13 months: the last 12 months and the current month. The start date is+    -- inclusive, but the end date is exclusive. For example, if @start@ is+    -- @2017-01-01@ and @end@ is @2017-05-01@, then the cost and usage data is+    -- retrieved from @2017-01-01@ up to and including @2017-04-30@ but not+    -- including @2017-05-01@.+    timePeriod :: DateInterval+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetReservationCoverage' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'filter'', 'getReservationCoverage_filter' - Filters utilization data by dimensions. You can filter by the following+-- dimensions:+--+-- -   AZ+--+-- -   CACHE_ENGINE+--+-- -   DATABASE_ENGINE+--+-- -   DEPLOYMENT_OPTION+--+-- -   INSTANCE_TYPE+--+-- -   LINKED_ACCOUNT+--+-- -   OPERATING_SYSTEM+--+-- -   PLATFORM+--+-- -   REGION+--+-- -   SERVICE+--+-- -   TAG+--+-- -   TENANCY+--+-- @GetReservationCoverage@ uses the same+-- <https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html Expression>+-- object as the other operations, but only @AND@ is supported among each+-- dimension. You can nest only one level deep. If there are multiple+-- values for a dimension, they are OR\'d together.+--+-- If you don\'t provide a @SERVICE@ filter, Cost Explorer defaults to EC2.+--+-- Cost category is also supported.+--+-- 'granularity', 'getReservationCoverage_granularity' - The granularity of the Amazon Web Services cost data for the+-- reservation. Valid values are @MONTHLY@ and @DAILY@.+--+-- If @GroupBy@ is set, @Granularity@ can\'t be set. If @Granularity@+-- isn\'t set, the response object doesn\'t include @Granularity@, either+-- @MONTHLY@ or @DAILY@.+--+-- The @GetReservationCoverage@ operation supports only @DAILY@ and+-- @MONTHLY@ granularities.+--+-- 'groupBy', 'getReservationCoverage_groupBy' - You can group the data by the following attributes:+--+-- -   AZ+--+-- -   CACHE_ENGINE+--+-- -   DATABASE_ENGINE+--+-- -   DEPLOYMENT_OPTION+--+-- -   INSTANCE_TYPE+--+-- -   INVOICING_ENTITY+--+-- -   LINKED_ACCOUNT+--+-- -   OPERATING_SYSTEM+--+-- -   PLATFORM+--+-- -   REGION+--+-- -   TENANCY+--+-- 'maxResults', 'getReservationCoverage_maxResults' - The maximum number of objects that you returned for this request. If+-- more objects are available, in the response, Amazon Web Services+-- provides a NextPageToken value that you can use in a subsequent call to+-- get the next batch of objects.+--+-- 'metrics', 'getReservationCoverage_metrics' - The measurement that you want your reservation coverage reported in.+--+-- Valid values are @Hour@, @Unit@, and @Cost@. You can use multiple values+-- in a request.+--+-- 'nextPageToken', 'getReservationCoverage_nextPageToken' - The token to retrieve the next set of results. Amazon Web Services+-- provides the token when the response from a previous call has more+-- results than the maximum page size.+--+-- 'sortBy', 'getReservationCoverage_sortBy' - The value by which you want to sort the data.+--+-- The following values are supported for @Key@:+--+-- -   @OnDemandCost@+--+-- -   @CoverageHoursPercentage@+--+-- -   @OnDemandHours@+--+-- -   @ReservedHours@+--+-- -   @TotalRunningHours@+--+-- -   @CoverageNormalizedUnitsPercentage@+--+-- -   @OnDemandNormalizedUnits@+--+-- -   @ReservedNormalizedUnits@+--+-- -   @TotalRunningNormalizedUnits@+--+-- -   @Time@+--+-- Supported values for @SortOrder@ are @ASCENDING@ or @DESCENDING@.+--+-- 'timePeriod', 'getReservationCoverage_timePeriod' - The start and end dates of the period that you want to retrieve data+-- about reservation coverage for. You can retrieve data for a maximum of+-- 13 months: the last 12 months and the current month. The start date is+-- inclusive, but the end date is exclusive. For example, if @start@ is+-- @2017-01-01@ and @end@ is @2017-05-01@, then the cost and usage data is+-- retrieved from @2017-01-01@ up to and including @2017-04-30@ but not+-- including @2017-05-01@.+newGetReservationCoverage ::+  -- | 'timePeriod'+  DateInterval ->+  GetReservationCoverage+newGetReservationCoverage pTimePeriod_ =+  GetReservationCoverage'+    { filter' = Prelude.Nothing,+      granularity = Prelude.Nothing,+      groupBy = Prelude.Nothing,+      maxResults = Prelude.Nothing,+      metrics = Prelude.Nothing,+      nextPageToken = Prelude.Nothing,+      sortBy = Prelude.Nothing,+      timePeriod = pTimePeriod_+    }++-- | Filters utilization data by dimensions. You can filter by the following+-- dimensions:+--+-- -   AZ+--+-- -   CACHE_ENGINE+--+-- -   DATABASE_ENGINE+--+-- -   DEPLOYMENT_OPTION+--+-- -   INSTANCE_TYPE+--+-- -   LINKED_ACCOUNT+--+-- -   OPERATING_SYSTEM+--+-- -   PLATFORM+--+-- -   REGION+--+-- -   SERVICE+--+-- -   TAG+--+-- -   TENANCY+--+-- @GetReservationCoverage@ uses the same+-- <https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html Expression>+-- object as the other operations, but only @AND@ is supported among each+-- dimension. You can nest only one level deep. If there are multiple+-- values for a dimension, they are OR\'d together.+--+-- If you don\'t provide a @SERVICE@ filter, Cost Explorer defaults to EC2.+--+-- Cost category is also supported.+getReservationCoverage_filter :: Lens.Lens' GetReservationCoverage (Prelude.Maybe Expression)+getReservationCoverage_filter = Lens.lens (\GetReservationCoverage' {filter'} -> filter') (\s@GetReservationCoverage' {} a -> s {filter' = a} :: GetReservationCoverage)++-- | The granularity of the Amazon Web Services cost data for the+-- reservation. Valid values are @MONTHLY@ and @DAILY@.+--+-- If @GroupBy@ is set, @Granularity@ can\'t be set. If @Granularity@+-- isn\'t set, the response object doesn\'t include @Granularity@, either+-- @MONTHLY@ or @DAILY@.+--+-- The @GetReservationCoverage@ operation supports only @DAILY@ and+-- @MONTHLY@ granularities.+getReservationCoverage_granularity :: Lens.Lens' GetReservationCoverage (Prelude.Maybe Granularity)+getReservationCoverage_granularity = Lens.lens (\GetReservationCoverage' {granularity} -> granularity) (\s@GetReservationCoverage' {} a -> s {granularity = a} :: GetReservationCoverage)++-- | You can group the data by the following attributes:+--+-- -   AZ+--+-- -   CACHE_ENGINE+--+-- -   DATABASE_ENGINE+--+-- -   DEPLOYMENT_OPTION+--+-- -   INSTANCE_TYPE+--+-- -   INVOICING_ENTITY+--+-- -   LINKED_ACCOUNT+--+-- -   OPERATING_SYSTEM+--+-- -   PLATFORM+--+-- -   REGION+--+-- -   TENANCY+getReservationCoverage_groupBy :: Lens.Lens' GetReservationCoverage (Prelude.Maybe [GroupDefinition])+getReservationCoverage_groupBy = Lens.lens (\GetReservationCoverage' {groupBy} -> groupBy) (\s@GetReservationCoverage' {} a -> s {groupBy = a} :: GetReservationCoverage) Prelude.. Lens.mapping Lens.coerced++-- | The maximum number of objects that you returned for this request. If+-- more objects are available, in the response, Amazon Web Services+-- provides a NextPageToken value that you can use in a subsequent call to+-- get the next batch of objects.+getReservationCoverage_maxResults :: Lens.Lens' GetReservationCoverage (Prelude.Maybe Prelude.Natural)+getReservationCoverage_maxResults = Lens.lens (\GetReservationCoverage' {maxResults} -> maxResults) (\s@GetReservationCoverage' {} a -> s {maxResults = a} :: GetReservationCoverage)++-- | The measurement that you want your reservation coverage reported in.+--+-- Valid values are @Hour@, @Unit@, and @Cost@. You can use multiple values+-- in a request.+getReservationCoverage_metrics :: Lens.Lens' GetReservationCoverage (Prelude.Maybe [Prelude.Text])+getReservationCoverage_metrics = Lens.lens (\GetReservationCoverage' {metrics} -> metrics) (\s@GetReservationCoverage' {} a -> s {metrics = a} :: GetReservationCoverage) Prelude.. Lens.mapping Lens.coerced++-- | The token to retrieve the next set of results. Amazon Web Services+-- provides the token when the response from a previous call has more+-- results than the maximum page size.+getReservationCoverage_nextPageToken :: Lens.Lens' GetReservationCoverage (Prelude.Maybe Prelude.Text)+getReservationCoverage_nextPageToken = Lens.lens (\GetReservationCoverage' {nextPageToken} -> nextPageToken) (\s@GetReservationCoverage' {} a -> s {nextPageToken = a} :: GetReservationCoverage)++-- | The value by which you want to sort the data.+--+-- The following values are supported for @Key@:+--+-- -   @OnDemandCost@+--+-- -   @CoverageHoursPercentage@+--+-- -   @OnDemandHours@+--+-- -   @ReservedHours@+--+-- -   @TotalRunningHours@+--+-- -   @CoverageNormalizedUnitsPercentage@+--+-- -   @OnDemandNormalizedUnits@+--+-- -   @ReservedNormalizedUnits@+--+-- -   @TotalRunningNormalizedUnits@+--+-- -   @Time@+--+-- Supported values for @SortOrder@ are @ASCENDING@ or @DESCENDING@.+getReservationCoverage_sortBy :: Lens.Lens' GetReservationCoverage (Prelude.Maybe SortDefinition)+getReservationCoverage_sortBy = Lens.lens (\GetReservationCoverage' {sortBy} -> sortBy) (\s@GetReservationCoverage' {} a -> s {sortBy = a} :: GetReservationCoverage)++-- | The start and end dates of the period that you want to retrieve data+-- about reservation coverage for. You can retrieve data for a maximum of+-- 13 months: the last 12 months and the current month. The start date is+-- inclusive, but the end date is exclusive. For example, if @start@ is+-- @2017-01-01@ and @end@ is @2017-05-01@, then the cost and usage data is+-- retrieved from @2017-01-01@ up to and including @2017-04-30@ but not+-- including @2017-05-01@.+getReservationCoverage_timePeriod :: Lens.Lens' GetReservationCoverage DateInterval+getReservationCoverage_timePeriod = Lens.lens (\GetReservationCoverage' {timePeriod} -> timePeriod) (\s@GetReservationCoverage' {} a -> s {timePeriod = a} :: GetReservationCoverage)++instance Core.AWSRequest GetReservationCoverage where+  type+    AWSResponse GetReservationCoverage =+      GetReservationCoverageResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetReservationCoverageResponse'+            Prelude.<$> (x Data..?> "NextPageToken")+            Prelude.<*> (x Data..?> "Total")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> ( x+                            Data..?> "CoveragesByTime"+                            Core..!@ Prelude.mempty+                        )+      )++instance Prelude.Hashable GetReservationCoverage where+  hashWithSalt _salt GetReservationCoverage' {..} =+    _salt+      `Prelude.hashWithSalt` filter'+      `Prelude.hashWithSalt` granularity+      `Prelude.hashWithSalt` groupBy+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` metrics+      `Prelude.hashWithSalt` nextPageToken+      `Prelude.hashWithSalt` sortBy+      `Prelude.hashWithSalt` timePeriod++instance Prelude.NFData GetReservationCoverage where+  rnf GetReservationCoverage' {..} =+    Prelude.rnf filter'+      `Prelude.seq` Prelude.rnf granularity+      `Prelude.seq` Prelude.rnf groupBy+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf metrics+      `Prelude.seq` Prelude.rnf nextPageToken+      `Prelude.seq` Prelude.rnf sortBy+      `Prelude.seq` Prelude.rnf timePeriod++instance Data.ToHeaders GetReservationCoverage where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSInsightsIndexService.GetReservationCoverage" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON GetReservationCoverage where+  toJSON GetReservationCoverage' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Filter" Data..=) Prelude.<$> filter',+            ("Granularity" Data..=) Prelude.<$> granularity,+            ("GroupBy" Data..=) Prelude.<$> groupBy,+            ("MaxResults" Data..=) Prelude.<$> maxResults,+            ("Metrics" Data..=) Prelude.<$> metrics,+            ("NextPageToken" Data..=) Prelude.<$> nextPageToken,+            ("SortBy" Data..=) Prelude.<$> sortBy,+            Prelude.Just ("TimePeriod" Data..= timePeriod)+          ]+      )++instance Data.ToPath GetReservationCoverage where+  toPath = Prelude.const "/"++instance Data.ToQuery GetReservationCoverage where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetReservationCoverageResponse' smart constructor.+data GetReservationCoverageResponse = GetReservationCoverageResponse'+  { -- | The token for the next set of retrievable results. Amazon Web Services+    -- provides the token when the response from a previous call has more+    -- results than the maximum page size.+    nextPageToken :: Prelude.Maybe Prelude.Text,+    -- | The total amount of instance usage that a reservation covered.+    total :: Prelude.Maybe Coverage,+    -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The amount of time that your reservations covered.+    coveragesByTime :: [CoverageByTime]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetReservationCoverageResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'nextPageToken', 'getReservationCoverageResponse_nextPageToken' - The token for the next set of retrievable results. Amazon Web Services+-- provides the token when the response from a previous call has more+-- results than the maximum page size.+--+-- 'total', 'getReservationCoverageResponse_total' - The total amount of instance usage that a reservation covered.+--+-- 'httpStatus', 'getReservationCoverageResponse_httpStatus' - The response's http status code.+--+-- 'coveragesByTime', 'getReservationCoverageResponse_coveragesByTime' - The amount of time that your reservations covered.+newGetReservationCoverageResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetReservationCoverageResponse+newGetReservationCoverageResponse pHttpStatus_ =+  GetReservationCoverageResponse'+    { nextPageToken =+        Prelude.Nothing,+      total = Prelude.Nothing,+      httpStatus = pHttpStatus_,+      coveragesByTime = Prelude.mempty+    }++-- | The token for the next set of retrievable results. Amazon Web Services+-- provides the token when the response from a previous call has more+-- results than the maximum page size.+getReservationCoverageResponse_nextPageToken :: Lens.Lens' GetReservationCoverageResponse (Prelude.Maybe Prelude.Text)+getReservationCoverageResponse_nextPageToken = Lens.lens (\GetReservationCoverageResponse' {nextPageToken} -> nextPageToken) (\s@GetReservationCoverageResponse' {} a -> s {nextPageToken = a} :: GetReservationCoverageResponse)++-- | The total amount of instance usage that a reservation covered.+getReservationCoverageResponse_total :: Lens.Lens' GetReservationCoverageResponse (Prelude.Maybe Coverage)+getReservationCoverageResponse_total = Lens.lens (\GetReservationCoverageResponse' {total} -> total) (\s@GetReservationCoverageResponse' {} a -> s {total = a} :: GetReservationCoverageResponse)++-- | The response's http status code.+getReservationCoverageResponse_httpStatus :: Lens.Lens' GetReservationCoverageResponse Prelude.Int+getReservationCoverageResponse_httpStatus = Lens.lens (\GetReservationCoverageResponse' {httpStatus} -> httpStatus) (\s@GetReservationCoverageResponse' {} a -> s {httpStatus = a} :: GetReservationCoverageResponse)++-- | The amount of time that your reservations covered.+getReservationCoverageResponse_coveragesByTime :: Lens.Lens' GetReservationCoverageResponse [CoverageByTime]+getReservationCoverageResponse_coveragesByTime = Lens.lens (\GetReservationCoverageResponse' {coveragesByTime} -> coveragesByTime) (\s@GetReservationCoverageResponse' {} a -> s {coveragesByTime = a} :: GetReservationCoverageResponse) Prelude.. Lens.coerced++instance+  Prelude.NFData+    GetReservationCoverageResponse+  where+  rnf GetReservationCoverageResponse' {..} =+    Prelude.rnf nextPageToken+      `Prelude.seq` Prelude.rnf total+      `Prelude.seq` Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf coveragesByTime
+ gen/Amazonka/CostExplorer/GetReservationPurchaseRecommendation.hs view
@@ -0,0 +1,401 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.GetReservationPurchaseRecommendation+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets recommendations for reservation purchases. These recommendations+-- might help you to reduce your costs. Reservations provide a discounted+-- hourly rate (up to 75%) compared to On-Demand pricing.+--+-- Amazon Web Services generates your recommendations by identifying your+-- On-Demand usage during a specific time period and collecting your usage+-- into categories that are eligible for a reservation. After Amazon Web+-- Services has these categories, it simulates every combination of+-- reservations in each category of usage to identify the best number of+-- each type of Reserved Instance (RI) to purchase to maximize your+-- estimated savings.+--+-- For example, Amazon Web Services automatically aggregates your Amazon+-- EC2 Linux, shared tenancy, and c4 family usage in the US West (Oregon)+-- Region and recommends that you buy size-flexible regional reservations+-- to apply to the c4 family usage. Amazon Web Services recommends the+-- smallest size instance in an instance family. This makes it easier to+-- purchase a size-flexible Reserved Instance (RI). Amazon Web Services+-- also shows the equal number of normalized units. This way, you can+-- purchase any instance size that you want. For this example, your RI+-- recommendation is for @c4.large@ because that is the smallest size+-- instance in the c4 instance family.+module Amazonka.CostExplorer.GetReservationPurchaseRecommendation+  ( -- * Creating a Request+    GetReservationPurchaseRecommendation (..),+    newGetReservationPurchaseRecommendation,++    -- * Request Lenses+    getReservationPurchaseRecommendation_accountId,+    getReservationPurchaseRecommendation_accountScope,+    getReservationPurchaseRecommendation_filter,+    getReservationPurchaseRecommendation_lookbackPeriodInDays,+    getReservationPurchaseRecommendation_nextPageToken,+    getReservationPurchaseRecommendation_pageSize,+    getReservationPurchaseRecommendation_paymentOption,+    getReservationPurchaseRecommendation_serviceSpecification,+    getReservationPurchaseRecommendation_termInYears,+    getReservationPurchaseRecommendation_service,++    -- * Destructuring the Response+    GetReservationPurchaseRecommendationResponse (..),+    newGetReservationPurchaseRecommendationResponse,++    -- * Response Lenses+    getReservationPurchaseRecommendationResponse_metadata,+    getReservationPurchaseRecommendationResponse_nextPageToken,+    getReservationPurchaseRecommendationResponse_recommendations,+    getReservationPurchaseRecommendationResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CostExplorer.Types+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetReservationPurchaseRecommendation' smart constructor.+data GetReservationPurchaseRecommendation = GetReservationPurchaseRecommendation'+  { -- | The account ID that\'s associated with the recommendation.+    accountId :: Prelude.Maybe Prelude.Text,+    -- | The account scope that you want your recommendations for. Amazon Web+    -- Services calculates recommendations including the management account and+    -- member accounts if the value is set to @PAYER@. If the value is+    -- @LINKED@, recommendations are calculated for individual member accounts+    -- only.+    accountScope :: Prelude.Maybe AccountScope,+    filter' :: Prelude.Maybe Expression,+    -- | The number of previous days that you want Amazon Web Services to+    -- consider when it calculates your recommendations.+    lookbackPeriodInDays :: Prelude.Maybe LookbackPeriodInDays,+    -- | The pagination token that indicates the next set of results that you+    -- want to retrieve.+    nextPageToken :: Prelude.Maybe Prelude.Text,+    -- | The number of recommendations that you want returned in a single+    -- response object.+    pageSize :: Prelude.Maybe Prelude.Natural,+    -- | The reservation purchase option that you want recommendations for.+    paymentOption :: Prelude.Maybe PaymentOption,+    -- | The hardware specifications for the service instances that you want+    -- recommendations for, such as standard or convertible Amazon EC2+    -- instances.+    serviceSpecification :: Prelude.Maybe ServiceSpecification,+    -- | The reservation term that you want recommendations for.+    termInYears :: Prelude.Maybe TermInYears,+    -- | The specific service that you want recommendations for.+    service :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetReservationPurchaseRecommendation' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'accountId', 'getReservationPurchaseRecommendation_accountId' - The account ID that\'s associated with the recommendation.+--+-- 'accountScope', 'getReservationPurchaseRecommendation_accountScope' - The account scope that you want your recommendations for. Amazon Web+-- Services calculates recommendations including the management account and+-- member accounts if the value is set to @PAYER@. If the value is+-- @LINKED@, recommendations are calculated for individual member accounts+-- only.+--+-- 'filter'', 'getReservationPurchaseRecommendation_filter' - Undocumented member.+--+-- 'lookbackPeriodInDays', 'getReservationPurchaseRecommendation_lookbackPeriodInDays' - The number of previous days that you want Amazon Web Services to+-- consider when it calculates your recommendations.+--+-- 'nextPageToken', 'getReservationPurchaseRecommendation_nextPageToken' - The pagination token that indicates the next set of results that you+-- want to retrieve.+--+-- 'pageSize', 'getReservationPurchaseRecommendation_pageSize' - The number of recommendations that you want returned in a single+-- response object.+--+-- 'paymentOption', 'getReservationPurchaseRecommendation_paymentOption' - The reservation purchase option that you want recommendations for.+--+-- 'serviceSpecification', 'getReservationPurchaseRecommendation_serviceSpecification' - The hardware specifications for the service instances that you want+-- recommendations for, such as standard or convertible Amazon EC2+-- instances.+--+-- 'termInYears', 'getReservationPurchaseRecommendation_termInYears' - The reservation term that you want recommendations for.+--+-- 'service', 'getReservationPurchaseRecommendation_service' - The specific service that you want recommendations for.+newGetReservationPurchaseRecommendation ::+  -- | 'service'+  Prelude.Text ->+  GetReservationPurchaseRecommendation+newGetReservationPurchaseRecommendation pService_ =+  GetReservationPurchaseRecommendation'+    { accountId =+        Prelude.Nothing,+      accountScope = Prelude.Nothing,+      filter' = Prelude.Nothing,+      lookbackPeriodInDays =+        Prelude.Nothing,+      nextPageToken = Prelude.Nothing,+      pageSize = Prelude.Nothing,+      paymentOption = Prelude.Nothing,+      serviceSpecification =+        Prelude.Nothing,+      termInYears = Prelude.Nothing,+      service = pService_+    }++-- | The account ID that\'s associated with the recommendation.+getReservationPurchaseRecommendation_accountId :: Lens.Lens' GetReservationPurchaseRecommendation (Prelude.Maybe Prelude.Text)+getReservationPurchaseRecommendation_accountId = Lens.lens (\GetReservationPurchaseRecommendation' {accountId} -> accountId) (\s@GetReservationPurchaseRecommendation' {} a -> s {accountId = a} :: GetReservationPurchaseRecommendation)++-- | The account scope that you want your recommendations for. Amazon Web+-- Services calculates recommendations including the management account and+-- member accounts if the value is set to @PAYER@. If the value is+-- @LINKED@, recommendations are calculated for individual member accounts+-- only.+getReservationPurchaseRecommendation_accountScope :: Lens.Lens' GetReservationPurchaseRecommendation (Prelude.Maybe AccountScope)+getReservationPurchaseRecommendation_accountScope = Lens.lens (\GetReservationPurchaseRecommendation' {accountScope} -> accountScope) (\s@GetReservationPurchaseRecommendation' {} a -> s {accountScope = a} :: GetReservationPurchaseRecommendation)++-- | Undocumented member.+getReservationPurchaseRecommendation_filter :: Lens.Lens' GetReservationPurchaseRecommendation (Prelude.Maybe Expression)+getReservationPurchaseRecommendation_filter = Lens.lens (\GetReservationPurchaseRecommendation' {filter'} -> filter') (\s@GetReservationPurchaseRecommendation' {} a -> s {filter' = a} :: GetReservationPurchaseRecommendation)++-- | The number of previous days that you want Amazon Web Services to+-- consider when it calculates your recommendations.+getReservationPurchaseRecommendation_lookbackPeriodInDays :: Lens.Lens' GetReservationPurchaseRecommendation (Prelude.Maybe LookbackPeriodInDays)+getReservationPurchaseRecommendation_lookbackPeriodInDays = Lens.lens (\GetReservationPurchaseRecommendation' {lookbackPeriodInDays} -> lookbackPeriodInDays) (\s@GetReservationPurchaseRecommendation' {} a -> s {lookbackPeriodInDays = a} :: GetReservationPurchaseRecommendation)++-- | The pagination token that indicates the next set of results that you+-- want to retrieve.+getReservationPurchaseRecommendation_nextPageToken :: Lens.Lens' GetReservationPurchaseRecommendation (Prelude.Maybe Prelude.Text)+getReservationPurchaseRecommendation_nextPageToken = Lens.lens (\GetReservationPurchaseRecommendation' {nextPageToken} -> nextPageToken) (\s@GetReservationPurchaseRecommendation' {} a -> s {nextPageToken = a} :: GetReservationPurchaseRecommendation)++-- | The number of recommendations that you want returned in a single+-- response object.+getReservationPurchaseRecommendation_pageSize :: Lens.Lens' GetReservationPurchaseRecommendation (Prelude.Maybe Prelude.Natural)+getReservationPurchaseRecommendation_pageSize = Lens.lens (\GetReservationPurchaseRecommendation' {pageSize} -> pageSize) (\s@GetReservationPurchaseRecommendation' {} a -> s {pageSize = a} :: GetReservationPurchaseRecommendation)++-- | The reservation purchase option that you want recommendations for.+getReservationPurchaseRecommendation_paymentOption :: Lens.Lens' GetReservationPurchaseRecommendation (Prelude.Maybe PaymentOption)+getReservationPurchaseRecommendation_paymentOption = Lens.lens (\GetReservationPurchaseRecommendation' {paymentOption} -> paymentOption) (\s@GetReservationPurchaseRecommendation' {} a -> s {paymentOption = a} :: GetReservationPurchaseRecommendation)++-- | The hardware specifications for the service instances that you want+-- recommendations for, such as standard or convertible Amazon EC2+-- instances.+getReservationPurchaseRecommendation_serviceSpecification :: Lens.Lens' GetReservationPurchaseRecommendation (Prelude.Maybe ServiceSpecification)+getReservationPurchaseRecommendation_serviceSpecification = Lens.lens (\GetReservationPurchaseRecommendation' {serviceSpecification} -> serviceSpecification) (\s@GetReservationPurchaseRecommendation' {} a -> s {serviceSpecification = a} :: GetReservationPurchaseRecommendation)++-- | The reservation term that you want recommendations for.+getReservationPurchaseRecommendation_termInYears :: Lens.Lens' GetReservationPurchaseRecommendation (Prelude.Maybe TermInYears)+getReservationPurchaseRecommendation_termInYears = Lens.lens (\GetReservationPurchaseRecommendation' {termInYears} -> termInYears) (\s@GetReservationPurchaseRecommendation' {} a -> s {termInYears = a} :: GetReservationPurchaseRecommendation)++-- | The specific service that you want recommendations for.+getReservationPurchaseRecommendation_service :: Lens.Lens' GetReservationPurchaseRecommendation Prelude.Text+getReservationPurchaseRecommendation_service = Lens.lens (\GetReservationPurchaseRecommendation' {service} -> service) (\s@GetReservationPurchaseRecommendation' {} a -> s {service = a} :: GetReservationPurchaseRecommendation)++instance+  Core.AWSRequest+    GetReservationPurchaseRecommendation+  where+  type+    AWSResponse GetReservationPurchaseRecommendation =+      GetReservationPurchaseRecommendationResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetReservationPurchaseRecommendationResponse'+            Prelude.<$> (x Data..?> "Metadata")+            Prelude.<*> (x Data..?> "NextPageToken")+            Prelude.<*> ( x+                            Data..?> "Recommendations"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    GetReservationPurchaseRecommendation+  where+  hashWithSalt+    _salt+    GetReservationPurchaseRecommendation' {..} =+      _salt+        `Prelude.hashWithSalt` accountId+        `Prelude.hashWithSalt` accountScope+        `Prelude.hashWithSalt` filter'+        `Prelude.hashWithSalt` lookbackPeriodInDays+        `Prelude.hashWithSalt` nextPageToken+        `Prelude.hashWithSalt` pageSize+        `Prelude.hashWithSalt` paymentOption+        `Prelude.hashWithSalt` serviceSpecification+        `Prelude.hashWithSalt` termInYears+        `Prelude.hashWithSalt` service++instance+  Prelude.NFData+    GetReservationPurchaseRecommendation+  where+  rnf GetReservationPurchaseRecommendation' {..} =+    Prelude.rnf accountId+      `Prelude.seq` Prelude.rnf accountScope+      `Prelude.seq` Prelude.rnf filter'+      `Prelude.seq` Prelude.rnf lookbackPeriodInDays+      `Prelude.seq` Prelude.rnf nextPageToken+      `Prelude.seq` Prelude.rnf pageSize+      `Prelude.seq` Prelude.rnf paymentOption+      `Prelude.seq` Prelude.rnf serviceSpecification+      `Prelude.seq` Prelude.rnf termInYears+      `Prelude.seq` Prelude.rnf service++instance+  Data.ToHeaders+    GetReservationPurchaseRecommendation+  where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSInsightsIndexService.GetReservationPurchaseRecommendation" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance+  Data.ToJSON+    GetReservationPurchaseRecommendation+  where+  toJSON GetReservationPurchaseRecommendation' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("AccountId" Data..=) Prelude.<$> accountId,+            ("AccountScope" Data..=) Prelude.<$> accountScope,+            ("Filter" Data..=) Prelude.<$> filter',+            ("LookbackPeriodInDays" Data..=)+              Prelude.<$> lookbackPeriodInDays,+            ("NextPageToken" Data..=) Prelude.<$> nextPageToken,+            ("PageSize" Data..=) Prelude.<$> pageSize,+            ("PaymentOption" Data..=) Prelude.<$> paymentOption,+            ("ServiceSpecification" Data..=)+              Prelude.<$> serviceSpecification,+            ("TermInYears" Data..=) Prelude.<$> termInYears,+            Prelude.Just ("Service" Data..= service)+          ]+      )++instance+  Data.ToPath+    GetReservationPurchaseRecommendation+  where+  toPath = Prelude.const "/"++instance+  Data.ToQuery+    GetReservationPurchaseRecommendation+  where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetReservationPurchaseRecommendationResponse' smart constructor.+data GetReservationPurchaseRecommendationResponse = GetReservationPurchaseRecommendationResponse'+  { -- | Information about this specific recommendation call, such as the time+    -- stamp for when Cost Explorer generated this recommendation.+    metadata :: Prelude.Maybe ReservationPurchaseRecommendationMetadata,+    -- | The pagination token for the next set of retrievable results.+    nextPageToken :: Prelude.Maybe Prelude.Text,+    -- | Recommendations for reservations to purchase.+    recommendations :: Prelude.Maybe [ReservationPurchaseRecommendation],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetReservationPurchaseRecommendationResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'metadata', 'getReservationPurchaseRecommendationResponse_metadata' - Information about this specific recommendation call, such as the time+-- stamp for when Cost Explorer generated this recommendation.+--+-- 'nextPageToken', 'getReservationPurchaseRecommendationResponse_nextPageToken' - The pagination token for the next set of retrievable results.+--+-- 'recommendations', 'getReservationPurchaseRecommendationResponse_recommendations' - Recommendations for reservations to purchase.+--+-- 'httpStatus', 'getReservationPurchaseRecommendationResponse_httpStatus' - The response's http status code.+newGetReservationPurchaseRecommendationResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetReservationPurchaseRecommendationResponse+newGetReservationPurchaseRecommendationResponse+  pHttpStatus_ =+    GetReservationPurchaseRecommendationResponse'+      { metadata =+          Prelude.Nothing,+        nextPageToken =+          Prelude.Nothing,+        recommendations =+          Prelude.Nothing,+        httpStatus = pHttpStatus_+      }++-- | Information about this specific recommendation call, such as the time+-- stamp for when Cost Explorer generated this recommendation.+getReservationPurchaseRecommendationResponse_metadata :: Lens.Lens' GetReservationPurchaseRecommendationResponse (Prelude.Maybe ReservationPurchaseRecommendationMetadata)+getReservationPurchaseRecommendationResponse_metadata = Lens.lens (\GetReservationPurchaseRecommendationResponse' {metadata} -> metadata) (\s@GetReservationPurchaseRecommendationResponse' {} a -> s {metadata = a} :: GetReservationPurchaseRecommendationResponse)++-- | The pagination token for the next set of retrievable results.+getReservationPurchaseRecommendationResponse_nextPageToken :: Lens.Lens' GetReservationPurchaseRecommendationResponse (Prelude.Maybe Prelude.Text)+getReservationPurchaseRecommendationResponse_nextPageToken = Lens.lens (\GetReservationPurchaseRecommendationResponse' {nextPageToken} -> nextPageToken) (\s@GetReservationPurchaseRecommendationResponse' {} a -> s {nextPageToken = a} :: GetReservationPurchaseRecommendationResponse)++-- | Recommendations for reservations to purchase.+getReservationPurchaseRecommendationResponse_recommendations :: Lens.Lens' GetReservationPurchaseRecommendationResponse (Prelude.Maybe [ReservationPurchaseRecommendation])+getReservationPurchaseRecommendationResponse_recommendations = Lens.lens (\GetReservationPurchaseRecommendationResponse' {recommendations} -> recommendations) (\s@GetReservationPurchaseRecommendationResponse' {} a -> s {recommendations = a} :: GetReservationPurchaseRecommendationResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+getReservationPurchaseRecommendationResponse_httpStatus :: Lens.Lens' GetReservationPurchaseRecommendationResponse Prelude.Int+getReservationPurchaseRecommendationResponse_httpStatus = Lens.lens (\GetReservationPurchaseRecommendationResponse' {httpStatus} -> httpStatus) (\s@GetReservationPurchaseRecommendationResponse' {} a -> s {httpStatus = a} :: GetReservationPurchaseRecommendationResponse)++instance+  Prelude.NFData+    GetReservationPurchaseRecommendationResponse+  where+  rnf GetReservationPurchaseRecommendationResponse' {..} =+    Prelude.rnf metadata+      `Prelude.seq` Prelude.rnf nextPageToken+      `Prelude.seq` Prelude.rnf recommendations+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/CostExplorer/GetReservationUtilization.hs view
@@ -0,0 +1,538 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.GetReservationUtilization+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves the reservation utilization for your account. Management+-- account in an organization have access to member accounts. You can+-- filter data by dimensions in a time period. You can use+-- @GetDimensionValues@ to determine the possible dimension values.+-- Currently, you can group only by @SUBSCRIPTION_ID@.+module Amazonka.CostExplorer.GetReservationUtilization+  ( -- * Creating a Request+    GetReservationUtilization (..),+    newGetReservationUtilization,++    -- * Request Lenses+    getReservationUtilization_filter,+    getReservationUtilization_granularity,+    getReservationUtilization_groupBy,+    getReservationUtilization_maxResults,+    getReservationUtilization_nextPageToken,+    getReservationUtilization_sortBy,+    getReservationUtilization_timePeriod,++    -- * Destructuring the Response+    GetReservationUtilizationResponse (..),+    newGetReservationUtilizationResponse,++    -- * Response Lenses+    getReservationUtilizationResponse_nextPageToken,+    getReservationUtilizationResponse_total,+    getReservationUtilizationResponse_httpStatus,+    getReservationUtilizationResponse_utilizationsByTime,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CostExplorer.Types+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetReservationUtilization' smart constructor.+data GetReservationUtilization = GetReservationUtilization'+  { -- | Filters utilization data by dimensions. You can filter by the following+    -- dimensions:+    --+    -- -   AZ+    --+    -- -   CACHE_ENGINE+    --+    -- -   DEPLOYMENT_OPTION+    --+    -- -   INSTANCE_TYPE+    --+    -- -   LINKED_ACCOUNT+    --+    -- -   OPERATING_SYSTEM+    --+    -- -   PLATFORM+    --+    -- -   REGION+    --+    -- -   SERVICE+    --+    -- -   SCOPE+    --+    -- -   TENANCY+    --+    -- @GetReservationUtilization@ uses the same+    -- <https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html Expression>+    -- object as the other operations, but only @AND@ is supported among each+    -- dimension, and nesting is supported up to only one level deep. If there+    -- are multiple values for a dimension, they are OR\'d together.+    filter' :: Prelude.Maybe Expression,+    -- | If @GroupBy@ is set, @Granularity@ can\'t be set. If @Granularity@+    -- isn\'t set, the response object doesn\'t include @Granularity@, either+    -- @MONTHLY@ or @DAILY@. If both @GroupBy@ and @Granularity@ aren\'t set,+    -- @GetReservationUtilization@ defaults to @DAILY@.+    --+    -- The @GetReservationUtilization@ operation supports only @DAILY@ and+    -- @MONTHLY@ granularities.+    granularity :: Prelude.Maybe Granularity,+    -- | Groups only by @SUBSCRIPTION_ID@. Metadata is included.+    groupBy :: Prelude.Maybe [GroupDefinition],+    -- | The maximum number of objects that you returned for this request. If+    -- more objects are available, in the response, Amazon Web Services+    -- provides a NextPageToken value that you can use in a subsequent call to+    -- get the next batch of objects.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The token to retrieve the next set of results. Amazon Web Services+    -- provides the token when the response from a previous call has more+    -- results than the maximum page size.+    nextPageToken :: Prelude.Maybe Prelude.Text,+    -- | The value that you want to sort the data by.+    --+    -- The following values are supported for @Key@:+    --+    -- -   @UtilizationPercentage@+    --+    -- -   @UtilizationPercentageInUnits@+    --+    -- -   @PurchasedHours@+    --+    -- -   @PurchasedUnits@+    --+    -- -   @TotalActualHours@+    --+    -- -   @TotalActualUnits@+    --+    -- -   @UnusedHours@+    --+    -- -   @UnusedUnits@+    --+    -- -   @OnDemandCostOfRIHoursUsed@+    --+    -- -   @NetRISavings@+    --+    -- -   @TotalPotentialRISavings@+    --+    -- -   @AmortizedUpfrontFee@+    --+    -- -   @AmortizedRecurringFee@+    --+    -- -   @TotalAmortizedFee@+    --+    -- -   @RICostForUnusedHours@+    --+    -- -   @RealizedSavings@+    --+    -- -   @UnrealizedSavings@+    --+    -- The supported values for @SortOrder@ are @ASCENDING@ and @DESCENDING@.+    sortBy :: Prelude.Maybe SortDefinition,+    -- | Sets the start and end dates for retrieving Reserved Instance (RI)+    -- utilization. The start date is inclusive, but the end date is exclusive.+    -- For example, if @start@ is @2017-01-01@ and @end@ is @2017-05-01@, then+    -- the cost and usage data is retrieved from @2017-01-01@ up to and+    -- including @2017-04-30@ but not including @2017-05-01@.+    timePeriod :: DateInterval+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetReservationUtilization' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'filter'', 'getReservationUtilization_filter' - Filters utilization data by dimensions. You can filter by the following+-- dimensions:+--+-- -   AZ+--+-- -   CACHE_ENGINE+--+-- -   DEPLOYMENT_OPTION+--+-- -   INSTANCE_TYPE+--+-- -   LINKED_ACCOUNT+--+-- -   OPERATING_SYSTEM+--+-- -   PLATFORM+--+-- -   REGION+--+-- -   SERVICE+--+-- -   SCOPE+--+-- -   TENANCY+--+-- @GetReservationUtilization@ uses the same+-- <https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html Expression>+-- object as the other operations, but only @AND@ is supported among each+-- dimension, and nesting is supported up to only one level deep. If there+-- are multiple values for a dimension, they are OR\'d together.+--+-- 'granularity', 'getReservationUtilization_granularity' - If @GroupBy@ is set, @Granularity@ can\'t be set. If @Granularity@+-- isn\'t set, the response object doesn\'t include @Granularity@, either+-- @MONTHLY@ or @DAILY@. If both @GroupBy@ and @Granularity@ aren\'t set,+-- @GetReservationUtilization@ defaults to @DAILY@.+--+-- The @GetReservationUtilization@ operation supports only @DAILY@ and+-- @MONTHLY@ granularities.+--+-- 'groupBy', 'getReservationUtilization_groupBy' - Groups only by @SUBSCRIPTION_ID@. Metadata is included.+--+-- 'maxResults', 'getReservationUtilization_maxResults' - The maximum number of objects that you returned for this request. If+-- more objects are available, in the response, Amazon Web Services+-- provides a NextPageToken value that you can use in a subsequent call to+-- get the next batch of objects.+--+-- 'nextPageToken', 'getReservationUtilization_nextPageToken' - The token to retrieve the next set of results. Amazon Web Services+-- provides the token when the response from a previous call has more+-- results than the maximum page size.+--+-- 'sortBy', 'getReservationUtilization_sortBy' - The value that you want to sort the data by.+--+-- The following values are supported for @Key@:+--+-- -   @UtilizationPercentage@+--+-- -   @UtilizationPercentageInUnits@+--+-- -   @PurchasedHours@+--+-- -   @PurchasedUnits@+--+-- -   @TotalActualHours@+--+-- -   @TotalActualUnits@+--+-- -   @UnusedHours@+--+-- -   @UnusedUnits@+--+-- -   @OnDemandCostOfRIHoursUsed@+--+-- -   @NetRISavings@+--+-- -   @TotalPotentialRISavings@+--+-- -   @AmortizedUpfrontFee@+--+-- -   @AmortizedRecurringFee@+--+-- -   @TotalAmortizedFee@+--+-- -   @RICostForUnusedHours@+--+-- -   @RealizedSavings@+--+-- -   @UnrealizedSavings@+--+-- The supported values for @SortOrder@ are @ASCENDING@ and @DESCENDING@.+--+-- 'timePeriod', 'getReservationUtilization_timePeriod' - Sets the start and end dates for retrieving Reserved Instance (RI)+-- utilization. The start date is inclusive, but the end date is exclusive.+-- For example, if @start@ is @2017-01-01@ and @end@ is @2017-05-01@, then+-- the cost and usage data is retrieved from @2017-01-01@ up to and+-- including @2017-04-30@ but not including @2017-05-01@.+newGetReservationUtilization ::+  -- | 'timePeriod'+  DateInterval ->+  GetReservationUtilization+newGetReservationUtilization pTimePeriod_ =+  GetReservationUtilization'+    { filter' =+        Prelude.Nothing,+      granularity = Prelude.Nothing,+      groupBy = Prelude.Nothing,+      maxResults = Prelude.Nothing,+      nextPageToken = Prelude.Nothing,+      sortBy = Prelude.Nothing,+      timePeriod = pTimePeriod_+    }++-- | Filters utilization data by dimensions. You can filter by the following+-- dimensions:+--+-- -   AZ+--+-- -   CACHE_ENGINE+--+-- -   DEPLOYMENT_OPTION+--+-- -   INSTANCE_TYPE+--+-- -   LINKED_ACCOUNT+--+-- -   OPERATING_SYSTEM+--+-- -   PLATFORM+--+-- -   REGION+--+-- -   SERVICE+--+-- -   SCOPE+--+-- -   TENANCY+--+-- @GetReservationUtilization@ uses the same+-- <https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html Expression>+-- object as the other operations, but only @AND@ is supported among each+-- dimension, and nesting is supported up to only one level deep. If there+-- are multiple values for a dimension, they are OR\'d together.+getReservationUtilization_filter :: Lens.Lens' GetReservationUtilization (Prelude.Maybe Expression)+getReservationUtilization_filter = Lens.lens (\GetReservationUtilization' {filter'} -> filter') (\s@GetReservationUtilization' {} a -> s {filter' = a} :: GetReservationUtilization)++-- | If @GroupBy@ is set, @Granularity@ can\'t be set. If @Granularity@+-- isn\'t set, the response object doesn\'t include @Granularity@, either+-- @MONTHLY@ or @DAILY@. If both @GroupBy@ and @Granularity@ aren\'t set,+-- @GetReservationUtilization@ defaults to @DAILY@.+--+-- The @GetReservationUtilization@ operation supports only @DAILY@ and+-- @MONTHLY@ granularities.+getReservationUtilization_granularity :: Lens.Lens' GetReservationUtilization (Prelude.Maybe Granularity)+getReservationUtilization_granularity = Lens.lens (\GetReservationUtilization' {granularity} -> granularity) (\s@GetReservationUtilization' {} a -> s {granularity = a} :: GetReservationUtilization)++-- | Groups only by @SUBSCRIPTION_ID@. Metadata is included.+getReservationUtilization_groupBy :: Lens.Lens' GetReservationUtilization (Prelude.Maybe [GroupDefinition])+getReservationUtilization_groupBy = Lens.lens (\GetReservationUtilization' {groupBy} -> groupBy) (\s@GetReservationUtilization' {} a -> s {groupBy = a} :: GetReservationUtilization) Prelude.. Lens.mapping Lens.coerced++-- | The maximum number of objects that you returned for this request. If+-- more objects are available, in the response, Amazon Web Services+-- provides a NextPageToken value that you can use in a subsequent call to+-- get the next batch of objects.+getReservationUtilization_maxResults :: Lens.Lens' GetReservationUtilization (Prelude.Maybe Prelude.Natural)+getReservationUtilization_maxResults = Lens.lens (\GetReservationUtilization' {maxResults} -> maxResults) (\s@GetReservationUtilization' {} a -> s {maxResults = a} :: GetReservationUtilization)++-- | The token to retrieve the next set of results. Amazon Web Services+-- provides the token when the response from a previous call has more+-- results than the maximum page size.+getReservationUtilization_nextPageToken :: Lens.Lens' GetReservationUtilization (Prelude.Maybe Prelude.Text)+getReservationUtilization_nextPageToken = Lens.lens (\GetReservationUtilization' {nextPageToken} -> nextPageToken) (\s@GetReservationUtilization' {} a -> s {nextPageToken = a} :: GetReservationUtilization)++-- | The value that you want to sort the data by.+--+-- The following values are supported for @Key@:+--+-- -   @UtilizationPercentage@+--+-- -   @UtilizationPercentageInUnits@+--+-- -   @PurchasedHours@+--+-- -   @PurchasedUnits@+--+-- -   @TotalActualHours@+--+-- -   @TotalActualUnits@+--+-- -   @UnusedHours@+--+-- -   @UnusedUnits@+--+-- -   @OnDemandCostOfRIHoursUsed@+--+-- -   @NetRISavings@+--+-- -   @TotalPotentialRISavings@+--+-- -   @AmortizedUpfrontFee@+--+-- -   @AmortizedRecurringFee@+--+-- -   @TotalAmortizedFee@+--+-- -   @RICostForUnusedHours@+--+-- -   @RealizedSavings@+--+-- -   @UnrealizedSavings@+--+-- The supported values for @SortOrder@ are @ASCENDING@ and @DESCENDING@.+getReservationUtilization_sortBy :: Lens.Lens' GetReservationUtilization (Prelude.Maybe SortDefinition)+getReservationUtilization_sortBy = Lens.lens (\GetReservationUtilization' {sortBy} -> sortBy) (\s@GetReservationUtilization' {} a -> s {sortBy = a} :: GetReservationUtilization)++-- | Sets the start and end dates for retrieving Reserved Instance (RI)+-- utilization. The start date is inclusive, but the end date is exclusive.+-- For example, if @start@ is @2017-01-01@ and @end@ is @2017-05-01@, then+-- the cost and usage data is retrieved from @2017-01-01@ up to and+-- including @2017-04-30@ but not including @2017-05-01@.+getReservationUtilization_timePeriod :: Lens.Lens' GetReservationUtilization DateInterval+getReservationUtilization_timePeriod = Lens.lens (\GetReservationUtilization' {timePeriod} -> timePeriod) (\s@GetReservationUtilization' {} a -> s {timePeriod = a} :: GetReservationUtilization)++instance Core.AWSRequest GetReservationUtilization where+  type+    AWSResponse GetReservationUtilization =+      GetReservationUtilizationResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetReservationUtilizationResponse'+            Prelude.<$> (x Data..?> "NextPageToken")+            Prelude.<*> (x Data..?> "Total")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> ( x+                            Data..?> "UtilizationsByTime"+                            Core..!@ Prelude.mempty+                        )+      )++instance Prelude.Hashable GetReservationUtilization where+  hashWithSalt _salt GetReservationUtilization' {..} =+    _salt+      `Prelude.hashWithSalt` filter'+      `Prelude.hashWithSalt` granularity+      `Prelude.hashWithSalt` groupBy+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextPageToken+      `Prelude.hashWithSalt` sortBy+      `Prelude.hashWithSalt` timePeriod++instance Prelude.NFData GetReservationUtilization where+  rnf GetReservationUtilization' {..} =+    Prelude.rnf filter'+      `Prelude.seq` Prelude.rnf granularity+      `Prelude.seq` Prelude.rnf groupBy+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextPageToken+      `Prelude.seq` Prelude.rnf sortBy+      `Prelude.seq` Prelude.rnf timePeriod++instance Data.ToHeaders GetReservationUtilization where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSInsightsIndexService.GetReservationUtilization" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON GetReservationUtilization where+  toJSON GetReservationUtilization' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Filter" Data..=) Prelude.<$> filter',+            ("Granularity" Data..=) Prelude.<$> granularity,+            ("GroupBy" Data..=) Prelude.<$> groupBy,+            ("MaxResults" Data..=) Prelude.<$> maxResults,+            ("NextPageToken" Data..=) Prelude.<$> nextPageToken,+            ("SortBy" Data..=) Prelude.<$> sortBy,+            Prelude.Just ("TimePeriod" Data..= timePeriod)+          ]+      )++instance Data.ToPath GetReservationUtilization where+  toPath = Prelude.const "/"++instance Data.ToQuery GetReservationUtilization where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetReservationUtilizationResponse' smart constructor.+data GetReservationUtilizationResponse = GetReservationUtilizationResponse'+  { -- | The token for the next set of retrievable results. Amazon Web Services+    -- provides the token when the response from a previous call has more+    -- results than the maximum page size.+    nextPageToken :: Prelude.Maybe Prelude.Text,+    -- | The total amount of time that you used your Reserved Instances (RIs).+    total :: Prelude.Maybe ReservationAggregates,+    -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The amount of time that you used your Reserved Instances (RIs).+    utilizationsByTime :: [UtilizationByTime]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetReservationUtilizationResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'nextPageToken', 'getReservationUtilizationResponse_nextPageToken' - The token for the next set of retrievable results. Amazon Web Services+-- provides the token when the response from a previous call has more+-- results than the maximum page size.+--+-- 'total', 'getReservationUtilizationResponse_total' - The total amount of time that you used your Reserved Instances (RIs).+--+-- 'httpStatus', 'getReservationUtilizationResponse_httpStatus' - The response's http status code.+--+-- 'utilizationsByTime', 'getReservationUtilizationResponse_utilizationsByTime' - The amount of time that you used your Reserved Instances (RIs).+newGetReservationUtilizationResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetReservationUtilizationResponse+newGetReservationUtilizationResponse pHttpStatus_ =+  GetReservationUtilizationResponse'+    { nextPageToken =+        Prelude.Nothing,+      total = Prelude.Nothing,+      httpStatus = pHttpStatus_,+      utilizationsByTime = Prelude.mempty+    }++-- | The token for the next set of retrievable results. Amazon Web Services+-- provides the token when the response from a previous call has more+-- results than the maximum page size.+getReservationUtilizationResponse_nextPageToken :: Lens.Lens' GetReservationUtilizationResponse (Prelude.Maybe Prelude.Text)+getReservationUtilizationResponse_nextPageToken = Lens.lens (\GetReservationUtilizationResponse' {nextPageToken} -> nextPageToken) (\s@GetReservationUtilizationResponse' {} a -> s {nextPageToken = a} :: GetReservationUtilizationResponse)++-- | The total amount of time that you used your Reserved Instances (RIs).+getReservationUtilizationResponse_total :: Lens.Lens' GetReservationUtilizationResponse (Prelude.Maybe ReservationAggregates)+getReservationUtilizationResponse_total = Lens.lens (\GetReservationUtilizationResponse' {total} -> total) (\s@GetReservationUtilizationResponse' {} a -> s {total = a} :: GetReservationUtilizationResponse)++-- | The response's http status code.+getReservationUtilizationResponse_httpStatus :: Lens.Lens' GetReservationUtilizationResponse Prelude.Int+getReservationUtilizationResponse_httpStatus = Lens.lens (\GetReservationUtilizationResponse' {httpStatus} -> httpStatus) (\s@GetReservationUtilizationResponse' {} a -> s {httpStatus = a} :: GetReservationUtilizationResponse)++-- | The amount of time that you used your Reserved Instances (RIs).+getReservationUtilizationResponse_utilizationsByTime :: Lens.Lens' GetReservationUtilizationResponse [UtilizationByTime]+getReservationUtilizationResponse_utilizationsByTime = Lens.lens (\GetReservationUtilizationResponse' {utilizationsByTime} -> utilizationsByTime) (\s@GetReservationUtilizationResponse' {} a -> s {utilizationsByTime = a} :: GetReservationUtilizationResponse) Prelude.. Lens.coerced++instance+  Prelude.NFData+    GetReservationUtilizationResponse+  where+  rnf GetReservationUtilizationResponse' {..} =+    Prelude.rnf nextPageToken+      `Prelude.seq` Prelude.rnf total+      `Prelude.seq` Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf utilizationsByTime
+ gen/Amazonka/CostExplorer/GetRightsizingRecommendation.hs view
@@ -0,0 +1,329 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.GetRightsizingRecommendation+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates recommendations that help you save cost by identifying idle and+-- underutilized Amazon EC2 instances.+--+-- Recommendations are generated to either downsize or terminate instances,+-- along with providing savings detail and metrics. For more information+-- about calculation and function, see+-- <https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/ce-rightsizing.html Optimizing Your Cost with Rightsizing Recommendations>+-- in the /Billing and Cost Management User Guide/.+module Amazonka.CostExplorer.GetRightsizingRecommendation+  ( -- * Creating a Request+    GetRightsizingRecommendation (..),+    newGetRightsizingRecommendation,++    -- * Request Lenses+    getRightsizingRecommendation_configuration,+    getRightsizingRecommendation_filter,+    getRightsizingRecommendation_nextPageToken,+    getRightsizingRecommendation_pageSize,+    getRightsizingRecommendation_service,++    -- * Destructuring the Response+    GetRightsizingRecommendationResponse (..),+    newGetRightsizingRecommendationResponse,++    -- * Response Lenses+    getRightsizingRecommendationResponse_configuration,+    getRightsizingRecommendationResponse_metadata,+    getRightsizingRecommendationResponse_nextPageToken,+    getRightsizingRecommendationResponse_rightsizingRecommendations,+    getRightsizingRecommendationResponse_summary,+    getRightsizingRecommendationResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CostExplorer.Types+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetRightsizingRecommendation' smart constructor.+data GetRightsizingRecommendation = GetRightsizingRecommendation'+  { -- | You can use Configuration to customize recommendations across two+    -- attributes. You can choose to view recommendations for instances within+    -- the same instance families or across different instance families. You+    -- can also choose to view your estimated savings that are associated with+    -- recommendations with consideration of existing Savings Plans or RI+    -- benefits, or neither.+    configuration :: Prelude.Maybe RightsizingRecommendationConfiguration,+    filter' :: Prelude.Maybe Expression,+    -- | The pagination token that indicates the next set of results that you+    -- want to retrieve.+    nextPageToken :: Prelude.Maybe Prelude.Text,+    -- | The number of recommendations that you want returned in a single+    -- response object.+    pageSize :: Prelude.Maybe Prelude.Natural,+    -- | The specific service that you want recommendations for. The only valid+    -- value for @GetRightsizingRecommendation@ is \"@AmazonEC2@\".+    service :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetRightsizingRecommendation' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'configuration', 'getRightsizingRecommendation_configuration' - You can use Configuration to customize recommendations across two+-- attributes. You can choose to view recommendations for instances within+-- the same instance families or across different instance families. You+-- can also choose to view your estimated savings that are associated with+-- recommendations with consideration of existing Savings Plans or RI+-- benefits, or neither.+--+-- 'filter'', 'getRightsizingRecommendation_filter' - Undocumented member.+--+-- 'nextPageToken', 'getRightsizingRecommendation_nextPageToken' - The pagination token that indicates the next set of results that you+-- want to retrieve.+--+-- 'pageSize', 'getRightsizingRecommendation_pageSize' - The number of recommendations that you want returned in a single+-- response object.+--+-- 'service', 'getRightsizingRecommendation_service' - The specific service that you want recommendations for. The only valid+-- value for @GetRightsizingRecommendation@ is \"@AmazonEC2@\".+newGetRightsizingRecommendation ::+  -- | 'service'+  Prelude.Text ->+  GetRightsizingRecommendation+newGetRightsizingRecommendation pService_ =+  GetRightsizingRecommendation'+    { configuration =+        Prelude.Nothing,+      filter' = Prelude.Nothing,+      nextPageToken = Prelude.Nothing,+      pageSize = Prelude.Nothing,+      service = pService_+    }++-- | You can use Configuration to customize recommendations across two+-- attributes. You can choose to view recommendations for instances within+-- the same instance families or across different instance families. You+-- can also choose to view your estimated savings that are associated with+-- recommendations with consideration of existing Savings Plans or RI+-- benefits, or neither.+getRightsizingRecommendation_configuration :: Lens.Lens' GetRightsizingRecommendation (Prelude.Maybe RightsizingRecommendationConfiguration)+getRightsizingRecommendation_configuration = Lens.lens (\GetRightsizingRecommendation' {configuration} -> configuration) (\s@GetRightsizingRecommendation' {} a -> s {configuration = a} :: GetRightsizingRecommendation)++-- | Undocumented member.+getRightsizingRecommendation_filter :: Lens.Lens' GetRightsizingRecommendation (Prelude.Maybe Expression)+getRightsizingRecommendation_filter = Lens.lens (\GetRightsizingRecommendation' {filter'} -> filter') (\s@GetRightsizingRecommendation' {} a -> s {filter' = a} :: GetRightsizingRecommendation)++-- | The pagination token that indicates the next set of results that you+-- want to retrieve.+getRightsizingRecommendation_nextPageToken :: Lens.Lens' GetRightsizingRecommendation (Prelude.Maybe Prelude.Text)+getRightsizingRecommendation_nextPageToken = Lens.lens (\GetRightsizingRecommendation' {nextPageToken} -> nextPageToken) (\s@GetRightsizingRecommendation' {} a -> s {nextPageToken = a} :: GetRightsizingRecommendation)++-- | The number of recommendations that you want returned in a single+-- response object.+getRightsizingRecommendation_pageSize :: Lens.Lens' GetRightsizingRecommendation (Prelude.Maybe Prelude.Natural)+getRightsizingRecommendation_pageSize = Lens.lens (\GetRightsizingRecommendation' {pageSize} -> pageSize) (\s@GetRightsizingRecommendation' {} a -> s {pageSize = a} :: GetRightsizingRecommendation)++-- | The specific service that you want recommendations for. The only valid+-- value for @GetRightsizingRecommendation@ is \"@AmazonEC2@\".+getRightsizingRecommendation_service :: Lens.Lens' GetRightsizingRecommendation Prelude.Text+getRightsizingRecommendation_service = Lens.lens (\GetRightsizingRecommendation' {service} -> service) (\s@GetRightsizingRecommendation' {} a -> s {service = a} :: GetRightsizingRecommendation)++instance Core.AWSRequest GetRightsizingRecommendation where+  type+    AWSResponse GetRightsizingRecommendation =+      GetRightsizingRecommendationResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetRightsizingRecommendationResponse'+            Prelude.<$> (x Data..?> "Configuration")+            Prelude.<*> (x Data..?> "Metadata")+            Prelude.<*> (x Data..?> "NextPageToken")+            Prelude.<*> ( x+                            Data..?> "RightsizingRecommendations"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "Summary")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    GetRightsizingRecommendation+  where+  hashWithSalt _salt GetRightsizingRecommendation' {..} =+    _salt+      `Prelude.hashWithSalt` configuration+      `Prelude.hashWithSalt` filter'+      `Prelude.hashWithSalt` nextPageToken+      `Prelude.hashWithSalt` pageSize+      `Prelude.hashWithSalt` service++instance Prelude.NFData GetRightsizingRecommendation where+  rnf GetRightsizingRecommendation' {..} =+    Prelude.rnf configuration+      `Prelude.seq` Prelude.rnf filter'+      `Prelude.seq` Prelude.rnf nextPageToken+      `Prelude.seq` Prelude.rnf pageSize+      `Prelude.seq` Prelude.rnf service++instance Data.ToHeaders GetRightsizingRecommendation where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSInsightsIndexService.GetRightsizingRecommendation" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON GetRightsizingRecommendation where+  toJSON GetRightsizingRecommendation' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Configuration" Data..=) Prelude.<$> configuration,+            ("Filter" Data..=) Prelude.<$> filter',+            ("NextPageToken" Data..=) Prelude.<$> nextPageToken,+            ("PageSize" Data..=) Prelude.<$> pageSize,+            Prelude.Just ("Service" Data..= service)+          ]+      )++instance Data.ToPath GetRightsizingRecommendation where+  toPath = Prelude.const "/"++instance Data.ToQuery GetRightsizingRecommendation where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetRightsizingRecommendationResponse' smart constructor.+data GetRightsizingRecommendationResponse = GetRightsizingRecommendationResponse'+  { -- | You can use Configuration to customize recommendations across two+    -- attributes. You can choose to view recommendations for instances within+    -- the same instance families or across different instance families. You+    -- can also choose to view your estimated savings that are associated with+    -- recommendations with consideration of existing Savings Plans or RI+    -- benefits, or neither.+    configuration :: Prelude.Maybe RightsizingRecommendationConfiguration,+    -- | Information regarding this specific recommendation set.+    metadata :: Prelude.Maybe RightsizingRecommendationMetadata,+    -- | The token to retrieve the next set of results.+    nextPageToken :: Prelude.Maybe Prelude.Text,+    -- | Recommendations to rightsize resources.+    rightsizingRecommendations :: Prelude.Maybe [RightsizingRecommendation],+    -- | Summary of this recommendation set.+    summary :: Prelude.Maybe RightsizingRecommendationSummary,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetRightsizingRecommendationResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'configuration', 'getRightsizingRecommendationResponse_configuration' - You can use Configuration to customize recommendations across two+-- attributes. You can choose to view recommendations for instances within+-- the same instance families or across different instance families. You+-- can also choose to view your estimated savings that are associated with+-- recommendations with consideration of existing Savings Plans or RI+-- benefits, or neither.+--+-- 'metadata', 'getRightsizingRecommendationResponse_metadata' - Information regarding this specific recommendation set.+--+-- 'nextPageToken', 'getRightsizingRecommendationResponse_nextPageToken' - The token to retrieve the next set of results.+--+-- 'rightsizingRecommendations', 'getRightsizingRecommendationResponse_rightsizingRecommendations' - Recommendations to rightsize resources.+--+-- 'summary', 'getRightsizingRecommendationResponse_summary' - Summary of this recommendation set.+--+-- 'httpStatus', 'getRightsizingRecommendationResponse_httpStatus' - The response's http status code.+newGetRightsizingRecommendationResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetRightsizingRecommendationResponse+newGetRightsizingRecommendationResponse pHttpStatus_ =+  GetRightsizingRecommendationResponse'+    { configuration =+        Prelude.Nothing,+      metadata = Prelude.Nothing,+      nextPageToken = Prelude.Nothing,+      rightsizingRecommendations =+        Prelude.Nothing,+      summary = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | You can use Configuration to customize recommendations across two+-- attributes. You can choose to view recommendations for instances within+-- the same instance families or across different instance families. You+-- can also choose to view your estimated savings that are associated with+-- recommendations with consideration of existing Savings Plans or RI+-- benefits, or neither.+getRightsizingRecommendationResponse_configuration :: Lens.Lens' GetRightsizingRecommendationResponse (Prelude.Maybe RightsizingRecommendationConfiguration)+getRightsizingRecommendationResponse_configuration = Lens.lens (\GetRightsizingRecommendationResponse' {configuration} -> configuration) (\s@GetRightsizingRecommendationResponse' {} a -> s {configuration = a} :: GetRightsizingRecommendationResponse)++-- | Information regarding this specific recommendation set.+getRightsizingRecommendationResponse_metadata :: Lens.Lens' GetRightsizingRecommendationResponse (Prelude.Maybe RightsizingRecommendationMetadata)+getRightsizingRecommendationResponse_metadata = Lens.lens (\GetRightsizingRecommendationResponse' {metadata} -> metadata) (\s@GetRightsizingRecommendationResponse' {} a -> s {metadata = a} :: GetRightsizingRecommendationResponse)++-- | The token to retrieve the next set of results.+getRightsizingRecommendationResponse_nextPageToken :: Lens.Lens' GetRightsizingRecommendationResponse (Prelude.Maybe Prelude.Text)+getRightsizingRecommendationResponse_nextPageToken = Lens.lens (\GetRightsizingRecommendationResponse' {nextPageToken} -> nextPageToken) (\s@GetRightsizingRecommendationResponse' {} a -> s {nextPageToken = a} :: GetRightsizingRecommendationResponse)++-- | Recommendations to rightsize resources.+getRightsizingRecommendationResponse_rightsizingRecommendations :: Lens.Lens' GetRightsizingRecommendationResponse (Prelude.Maybe [RightsizingRecommendation])+getRightsizingRecommendationResponse_rightsizingRecommendations = Lens.lens (\GetRightsizingRecommendationResponse' {rightsizingRecommendations} -> rightsizingRecommendations) (\s@GetRightsizingRecommendationResponse' {} a -> s {rightsizingRecommendations = a} :: GetRightsizingRecommendationResponse) Prelude.. Lens.mapping Lens.coerced++-- | Summary of this recommendation set.+getRightsizingRecommendationResponse_summary :: Lens.Lens' GetRightsizingRecommendationResponse (Prelude.Maybe RightsizingRecommendationSummary)+getRightsizingRecommendationResponse_summary = Lens.lens (\GetRightsizingRecommendationResponse' {summary} -> summary) (\s@GetRightsizingRecommendationResponse' {} a -> s {summary = a} :: GetRightsizingRecommendationResponse)++-- | The response's http status code.+getRightsizingRecommendationResponse_httpStatus :: Lens.Lens' GetRightsizingRecommendationResponse Prelude.Int+getRightsizingRecommendationResponse_httpStatus = Lens.lens (\GetRightsizingRecommendationResponse' {httpStatus} -> httpStatus) (\s@GetRightsizingRecommendationResponse' {} a -> s {httpStatus = a} :: GetRightsizingRecommendationResponse)++instance+  Prelude.NFData+    GetRightsizingRecommendationResponse+  where+  rnf GetRightsizingRecommendationResponse' {..} =+    Prelude.rnf configuration+      `Prelude.seq` Prelude.rnf metadata+      `Prelude.seq` Prelude.rnf nextPageToken+      `Prelude.seq` Prelude.rnf rightsizingRecommendations+      `Prelude.seq` Prelude.rnf summary+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/CostExplorer/GetSavingsPlansCoverage.hs view
@@ -0,0 +1,445 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.GetSavingsPlansCoverage+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves the Savings Plans covered for your account. This enables you+-- to see how much of your cost is covered by a Savings Plan. An+-- organization’s management account can see the coverage of the associated+-- member accounts. This supports dimensions, Cost Categories, and nested+-- expressions. For any time period, you can filter data for Savings Plans+-- usage with the following dimensions:+--+-- -   @LINKED_ACCOUNT@+--+-- -   @REGION@+--+-- -   @SERVICE@+--+-- -   @INSTANCE_FAMILY@+--+-- To determine valid values for a dimension, use the @GetDimensionValues@+-- operation.+module Amazonka.CostExplorer.GetSavingsPlansCoverage+  ( -- * Creating a Request+    GetSavingsPlansCoverage (..),+    newGetSavingsPlansCoverage,++    -- * Request Lenses+    getSavingsPlansCoverage_filter,+    getSavingsPlansCoverage_granularity,+    getSavingsPlansCoverage_groupBy,+    getSavingsPlansCoverage_maxResults,+    getSavingsPlansCoverage_metrics,+    getSavingsPlansCoverage_nextToken,+    getSavingsPlansCoverage_sortBy,+    getSavingsPlansCoverage_timePeriod,++    -- * Destructuring the Response+    GetSavingsPlansCoverageResponse (..),+    newGetSavingsPlansCoverageResponse,++    -- * Response Lenses+    getSavingsPlansCoverageResponse_nextToken,+    getSavingsPlansCoverageResponse_httpStatus,+    getSavingsPlansCoverageResponse_savingsPlansCoverages,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CostExplorer.Types+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetSavingsPlansCoverage' smart constructor.+data GetSavingsPlansCoverage = GetSavingsPlansCoverage'+  { -- | Filters Savings Plans coverage data by dimensions. You can filter data+    -- for Savings Plans usage with the following dimensions:+    --+    -- -   @LINKED_ACCOUNT@+    --+    -- -   @REGION@+    --+    -- -   @SERVICE@+    --+    -- -   @INSTANCE_FAMILY@+    --+    -- @GetSavingsPlansCoverage@ uses the same+    -- <https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html Expression>+    -- object as the other operations, but only @AND@ is supported among each+    -- dimension. If there are multiple values for a dimension, they are OR\'d+    -- together.+    --+    -- Cost category is also supported.+    filter' :: Prelude.Maybe Expression,+    -- | The granularity of the Amazon Web Services cost data for your Savings+    -- Plans. @Granularity@ can\'t be set if @GroupBy@ is set.+    --+    -- The @GetSavingsPlansCoverage@ operation supports only @DAILY@ and+    -- @MONTHLY@ granularities.+    granularity :: Prelude.Maybe Granularity,+    -- | You can group the data using the attributes @INSTANCE_FAMILY@, @REGION@,+    -- or @SERVICE@.+    groupBy :: Prelude.Maybe [GroupDefinition],+    -- | The number of items to be returned in a response. The default is @20@,+    -- with a minimum value of @1@.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The measurement that you want your Savings Plans coverage reported in.+    -- The only valid value is @SpendCoveredBySavingsPlans@.+    metrics :: Prelude.Maybe [Prelude.Text],+    -- | The token to retrieve the next set of results. Amazon Web Services+    -- provides the token when the response from a previous call has more+    -- results than the maximum page size.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The value that you want to sort the data by.+    --+    -- The following values are supported for @Key@:+    --+    -- -   @SpendCoveredBySavingsPlan@+    --+    -- -   @OnDemandCost@+    --+    -- -   @CoveragePercentage@+    --+    -- -   @TotalCost@+    --+    -- -   @InstanceFamily@+    --+    -- -   @Region@+    --+    -- -   @Service@+    --+    -- The supported values for @SortOrder@ are @ASCENDING@ and @DESCENDING@.+    sortBy :: Prelude.Maybe SortDefinition,+    -- | The time period that you want the usage and costs for. The @Start@ date+    -- must be within 13 months. The @End@ date must be after the @Start@ date,+    -- and before the current date. Future dates can\'t be used as an @End@+    -- date.+    timePeriod :: DateInterval+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetSavingsPlansCoverage' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'filter'', 'getSavingsPlansCoverage_filter' - Filters Savings Plans coverage data by dimensions. You can filter data+-- for Savings Plans usage with the following dimensions:+--+-- -   @LINKED_ACCOUNT@+--+-- -   @REGION@+--+-- -   @SERVICE@+--+-- -   @INSTANCE_FAMILY@+--+-- @GetSavingsPlansCoverage@ uses the same+-- <https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html Expression>+-- object as the other operations, but only @AND@ is supported among each+-- dimension. If there are multiple values for a dimension, they are OR\'d+-- together.+--+-- Cost category is also supported.+--+-- 'granularity', 'getSavingsPlansCoverage_granularity' - The granularity of the Amazon Web Services cost data for your Savings+-- Plans. @Granularity@ can\'t be set if @GroupBy@ is set.+--+-- The @GetSavingsPlansCoverage@ operation supports only @DAILY@ and+-- @MONTHLY@ granularities.+--+-- 'groupBy', 'getSavingsPlansCoverage_groupBy' - You can group the data using the attributes @INSTANCE_FAMILY@, @REGION@,+-- or @SERVICE@.+--+-- 'maxResults', 'getSavingsPlansCoverage_maxResults' - The number of items to be returned in a response. The default is @20@,+-- with a minimum value of @1@.+--+-- 'metrics', 'getSavingsPlansCoverage_metrics' - The measurement that you want your Savings Plans coverage reported in.+-- The only valid value is @SpendCoveredBySavingsPlans@.+--+-- 'nextToken', 'getSavingsPlansCoverage_nextToken' - The token to retrieve the next set of results. Amazon Web Services+-- provides the token when the response from a previous call has more+-- results than the maximum page size.+--+-- 'sortBy', 'getSavingsPlansCoverage_sortBy' - The value that you want to sort the data by.+--+-- The following values are supported for @Key@:+--+-- -   @SpendCoveredBySavingsPlan@+--+-- -   @OnDemandCost@+--+-- -   @CoveragePercentage@+--+-- -   @TotalCost@+--+-- -   @InstanceFamily@+--+-- -   @Region@+--+-- -   @Service@+--+-- The supported values for @SortOrder@ are @ASCENDING@ and @DESCENDING@.+--+-- 'timePeriod', 'getSavingsPlansCoverage_timePeriod' - The time period that you want the usage and costs for. The @Start@ date+-- must be within 13 months. The @End@ date must be after the @Start@ date,+-- and before the current date. Future dates can\'t be used as an @End@+-- date.+newGetSavingsPlansCoverage ::+  -- | 'timePeriod'+  DateInterval ->+  GetSavingsPlansCoverage+newGetSavingsPlansCoverage pTimePeriod_ =+  GetSavingsPlansCoverage'+    { filter' = Prelude.Nothing,+      granularity = Prelude.Nothing,+      groupBy = Prelude.Nothing,+      maxResults = Prelude.Nothing,+      metrics = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      sortBy = Prelude.Nothing,+      timePeriod = pTimePeriod_+    }++-- | Filters Savings Plans coverage data by dimensions. You can filter data+-- for Savings Plans usage with the following dimensions:+--+-- -   @LINKED_ACCOUNT@+--+-- -   @REGION@+--+-- -   @SERVICE@+--+-- -   @INSTANCE_FAMILY@+--+-- @GetSavingsPlansCoverage@ uses the same+-- <https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html Expression>+-- object as the other operations, but only @AND@ is supported among each+-- dimension. If there are multiple values for a dimension, they are OR\'d+-- together.+--+-- Cost category is also supported.+getSavingsPlansCoverage_filter :: Lens.Lens' GetSavingsPlansCoverage (Prelude.Maybe Expression)+getSavingsPlansCoverage_filter = Lens.lens (\GetSavingsPlansCoverage' {filter'} -> filter') (\s@GetSavingsPlansCoverage' {} a -> s {filter' = a} :: GetSavingsPlansCoverage)++-- | The granularity of the Amazon Web Services cost data for your Savings+-- Plans. @Granularity@ can\'t be set if @GroupBy@ is set.+--+-- The @GetSavingsPlansCoverage@ operation supports only @DAILY@ and+-- @MONTHLY@ granularities.+getSavingsPlansCoverage_granularity :: Lens.Lens' GetSavingsPlansCoverage (Prelude.Maybe Granularity)+getSavingsPlansCoverage_granularity = Lens.lens (\GetSavingsPlansCoverage' {granularity} -> granularity) (\s@GetSavingsPlansCoverage' {} a -> s {granularity = a} :: GetSavingsPlansCoverage)++-- | You can group the data using the attributes @INSTANCE_FAMILY@, @REGION@,+-- or @SERVICE@.+getSavingsPlansCoverage_groupBy :: Lens.Lens' GetSavingsPlansCoverage (Prelude.Maybe [GroupDefinition])+getSavingsPlansCoverage_groupBy = Lens.lens (\GetSavingsPlansCoverage' {groupBy} -> groupBy) (\s@GetSavingsPlansCoverage' {} a -> s {groupBy = a} :: GetSavingsPlansCoverage) Prelude.. Lens.mapping Lens.coerced++-- | The number of items to be returned in a response. The default is @20@,+-- with a minimum value of @1@.+getSavingsPlansCoverage_maxResults :: Lens.Lens' GetSavingsPlansCoverage (Prelude.Maybe Prelude.Natural)+getSavingsPlansCoverage_maxResults = Lens.lens (\GetSavingsPlansCoverage' {maxResults} -> maxResults) (\s@GetSavingsPlansCoverage' {} a -> s {maxResults = a} :: GetSavingsPlansCoverage)++-- | The measurement that you want your Savings Plans coverage reported in.+-- The only valid value is @SpendCoveredBySavingsPlans@.+getSavingsPlansCoverage_metrics :: Lens.Lens' GetSavingsPlansCoverage (Prelude.Maybe [Prelude.Text])+getSavingsPlansCoverage_metrics = Lens.lens (\GetSavingsPlansCoverage' {metrics} -> metrics) (\s@GetSavingsPlansCoverage' {} a -> s {metrics = a} :: GetSavingsPlansCoverage) Prelude.. Lens.mapping Lens.coerced++-- | The token to retrieve the next set of results. Amazon Web Services+-- provides the token when the response from a previous call has more+-- results than the maximum page size.+getSavingsPlansCoverage_nextToken :: Lens.Lens' GetSavingsPlansCoverage (Prelude.Maybe Prelude.Text)+getSavingsPlansCoverage_nextToken = Lens.lens (\GetSavingsPlansCoverage' {nextToken} -> nextToken) (\s@GetSavingsPlansCoverage' {} a -> s {nextToken = a} :: GetSavingsPlansCoverage)++-- | The value that you want to sort the data by.+--+-- The following values are supported for @Key@:+--+-- -   @SpendCoveredBySavingsPlan@+--+-- -   @OnDemandCost@+--+-- -   @CoveragePercentage@+--+-- -   @TotalCost@+--+-- -   @InstanceFamily@+--+-- -   @Region@+--+-- -   @Service@+--+-- The supported values for @SortOrder@ are @ASCENDING@ and @DESCENDING@.+getSavingsPlansCoverage_sortBy :: Lens.Lens' GetSavingsPlansCoverage (Prelude.Maybe SortDefinition)+getSavingsPlansCoverage_sortBy = Lens.lens (\GetSavingsPlansCoverage' {sortBy} -> sortBy) (\s@GetSavingsPlansCoverage' {} a -> s {sortBy = a} :: GetSavingsPlansCoverage)++-- | The time period that you want the usage and costs for. The @Start@ date+-- must be within 13 months. The @End@ date must be after the @Start@ date,+-- and before the current date. Future dates can\'t be used as an @End@+-- date.+getSavingsPlansCoverage_timePeriod :: Lens.Lens' GetSavingsPlansCoverage DateInterval+getSavingsPlansCoverage_timePeriod = Lens.lens (\GetSavingsPlansCoverage' {timePeriod} -> timePeriod) (\s@GetSavingsPlansCoverage' {} a -> s {timePeriod = a} :: GetSavingsPlansCoverage)++instance Core.AWSRequest GetSavingsPlansCoverage where+  type+    AWSResponse GetSavingsPlansCoverage =+      GetSavingsPlansCoverageResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetSavingsPlansCoverageResponse'+            Prelude.<$> (x Data..?> "NextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> ( x+                            Data..?> "SavingsPlansCoverages"+                            Core..!@ Prelude.mempty+                        )+      )++instance Prelude.Hashable GetSavingsPlansCoverage where+  hashWithSalt _salt GetSavingsPlansCoverage' {..} =+    _salt+      `Prelude.hashWithSalt` filter'+      `Prelude.hashWithSalt` granularity+      `Prelude.hashWithSalt` groupBy+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` metrics+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` sortBy+      `Prelude.hashWithSalt` timePeriod++instance Prelude.NFData GetSavingsPlansCoverage where+  rnf GetSavingsPlansCoverage' {..} =+    Prelude.rnf filter'+      `Prelude.seq` Prelude.rnf granularity+      `Prelude.seq` Prelude.rnf groupBy+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf metrics+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf sortBy+      `Prelude.seq` Prelude.rnf timePeriod++instance Data.ToHeaders GetSavingsPlansCoverage where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSInsightsIndexService.GetSavingsPlansCoverage" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON GetSavingsPlansCoverage where+  toJSON GetSavingsPlansCoverage' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Filter" Data..=) Prelude.<$> filter',+            ("Granularity" Data..=) Prelude.<$> granularity,+            ("GroupBy" Data..=) Prelude.<$> groupBy,+            ("MaxResults" Data..=) Prelude.<$> maxResults,+            ("Metrics" Data..=) Prelude.<$> metrics,+            ("NextToken" Data..=) Prelude.<$> nextToken,+            ("SortBy" Data..=) Prelude.<$> sortBy,+            Prelude.Just ("TimePeriod" Data..= timePeriod)+          ]+      )++instance Data.ToPath GetSavingsPlansCoverage where+  toPath = Prelude.const "/"++instance Data.ToQuery GetSavingsPlansCoverage where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetSavingsPlansCoverageResponse' smart constructor.+data GetSavingsPlansCoverageResponse = GetSavingsPlansCoverageResponse'+  { -- | The token to retrieve the next set of results. Amazon Web Services+    -- provides the token when the response from a previous call has more+    -- results than the maximum page size.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The amount of spend that your Savings Plans covered.+    savingsPlansCoverages :: [SavingsPlansCoverage]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetSavingsPlansCoverageResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'nextToken', 'getSavingsPlansCoverageResponse_nextToken' - The token to retrieve the next set of results. Amazon Web Services+-- provides the token when the response from a previous call has more+-- results than the maximum page size.+--+-- 'httpStatus', 'getSavingsPlansCoverageResponse_httpStatus' - The response's http status code.+--+-- 'savingsPlansCoverages', 'getSavingsPlansCoverageResponse_savingsPlansCoverages' - The amount of spend that your Savings Plans covered.+newGetSavingsPlansCoverageResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetSavingsPlansCoverageResponse+newGetSavingsPlansCoverageResponse pHttpStatus_ =+  GetSavingsPlansCoverageResponse'+    { nextToken =+        Prelude.Nothing,+      httpStatus = pHttpStatus_,+      savingsPlansCoverages = Prelude.mempty+    }++-- | The token to retrieve the next set of results. Amazon Web Services+-- provides the token when the response from a previous call has more+-- results than the maximum page size.+getSavingsPlansCoverageResponse_nextToken :: Lens.Lens' GetSavingsPlansCoverageResponse (Prelude.Maybe Prelude.Text)+getSavingsPlansCoverageResponse_nextToken = Lens.lens (\GetSavingsPlansCoverageResponse' {nextToken} -> nextToken) (\s@GetSavingsPlansCoverageResponse' {} a -> s {nextToken = a} :: GetSavingsPlansCoverageResponse)++-- | The response's http status code.+getSavingsPlansCoverageResponse_httpStatus :: Lens.Lens' GetSavingsPlansCoverageResponse Prelude.Int+getSavingsPlansCoverageResponse_httpStatus = Lens.lens (\GetSavingsPlansCoverageResponse' {httpStatus} -> httpStatus) (\s@GetSavingsPlansCoverageResponse' {} a -> s {httpStatus = a} :: GetSavingsPlansCoverageResponse)++-- | The amount of spend that your Savings Plans covered.+getSavingsPlansCoverageResponse_savingsPlansCoverages :: Lens.Lens' GetSavingsPlansCoverageResponse [SavingsPlansCoverage]+getSavingsPlansCoverageResponse_savingsPlansCoverages = Lens.lens (\GetSavingsPlansCoverageResponse' {savingsPlansCoverages} -> savingsPlansCoverages) (\s@GetSavingsPlansCoverageResponse' {} a -> s {savingsPlansCoverages = a} :: GetSavingsPlansCoverageResponse) Prelude.. Lens.coerced++instance+  Prelude.NFData+    GetSavingsPlansCoverageResponse+  where+  rnf GetSavingsPlansCoverageResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf savingsPlansCoverages
+ gen/Amazonka/CostExplorer/GetSavingsPlansPurchaseRecommendation.hs view
@@ -0,0 +1,405 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.GetSavingsPlansPurchaseRecommendation+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves the Savings Plans recommendations for your account. First use+-- @StartSavingsPlansPurchaseRecommendationGeneration@ to generate a new+-- set of recommendations, and then use+-- @GetSavingsPlansPurchaseRecommendation@ to retrieve them.+module Amazonka.CostExplorer.GetSavingsPlansPurchaseRecommendation+  ( -- * Creating a Request+    GetSavingsPlansPurchaseRecommendation (..),+    newGetSavingsPlansPurchaseRecommendation,++    -- * Request Lenses+    getSavingsPlansPurchaseRecommendation_accountScope,+    getSavingsPlansPurchaseRecommendation_filter,+    getSavingsPlansPurchaseRecommendation_nextPageToken,+    getSavingsPlansPurchaseRecommendation_pageSize,+    getSavingsPlansPurchaseRecommendation_savingsPlansType,+    getSavingsPlansPurchaseRecommendation_termInYears,+    getSavingsPlansPurchaseRecommendation_paymentOption,+    getSavingsPlansPurchaseRecommendation_lookbackPeriodInDays,++    -- * Destructuring the Response+    GetSavingsPlansPurchaseRecommendationResponse (..),+    newGetSavingsPlansPurchaseRecommendationResponse,++    -- * Response Lenses+    getSavingsPlansPurchaseRecommendationResponse_metadata,+    getSavingsPlansPurchaseRecommendationResponse_nextPageToken,+    getSavingsPlansPurchaseRecommendationResponse_savingsPlansPurchaseRecommendation,+    getSavingsPlansPurchaseRecommendationResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CostExplorer.Types+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetSavingsPlansPurchaseRecommendation' smart constructor.+data GetSavingsPlansPurchaseRecommendation = GetSavingsPlansPurchaseRecommendation'+  { -- | The account scope that you want your recommendations for. Amazon Web+    -- Services calculates recommendations including the management account and+    -- member accounts if the value is set to @PAYER@. If the value is+    -- @LINKED@, recommendations are calculated for individual member accounts+    -- only.+    accountScope :: Prelude.Maybe AccountScope,+    -- | You can filter your recommendations by Account ID with the+    -- @LINKED_ACCOUNT@ dimension. To filter your recommendations by Account+    -- ID, specify @Key@ as @LINKED_ACCOUNT@ and @Value@ as the comma-separated+    -- Acount ID(s) that you want to see Savings Plans purchase recommendations+    -- for.+    --+    -- For GetSavingsPlansPurchaseRecommendation, the @Filter@ doesn\'t include+    -- @CostCategories@ or @Tags@. It only includes @Dimensions@. With+    -- @Dimensions@, @Key@ must be @LINKED_ACCOUNT@ and @Value@ can be a single+    -- Account ID or multiple comma-separated Account IDs that you want to see+    -- Savings Plans Purchase Recommendations for. @AND@ and @OR@ operators are+    -- not supported.+    filter' :: Prelude.Maybe Expression,+    -- | The token to retrieve the next set of results. Amazon Web Services+    -- provides the token when the response from a previous call has more+    -- results than the maximum page size.+    nextPageToken :: Prelude.Maybe Prelude.Text,+    -- | The number of recommendations that you want returned in a single+    -- response object.+    pageSize :: Prelude.Maybe Prelude.Natural,+    -- | The Savings Plans recommendation type that\'s requested.+    savingsPlansType :: SupportedSavingsPlansType,+    -- | The savings plan recommendation term that\'s used to generate these+    -- recommendations.+    termInYears :: TermInYears,+    -- | The payment option that\'s used to generate these recommendations.+    paymentOption :: PaymentOption,+    -- | The lookback period that\'s used to generate the recommendation.+    lookbackPeriodInDays :: LookbackPeriodInDays+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetSavingsPlansPurchaseRecommendation' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'accountScope', 'getSavingsPlansPurchaseRecommendation_accountScope' - The account scope that you want your recommendations for. Amazon Web+-- Services calculates recommendations including the management account and+-- member accounts if the value is set to @PAYER@. If the value is+-- @LINKED@, recommendations are calculated for individual member accounts+-- only.+--+-- 'filter'', 'getSavingsPlansPurchaseRecommendation_filter' - You can filter your recommendations by Account ID with the+-- @LINKED_ACCOUNT@ dimension. To filter your recommendations by Account+-- ID, specify @Key@ as @LINKED_ACCOUNT@ and @Value@ as the comma-separated+-- Acount ID(s) that you want to see Savings Plans purchase recommendations+-- for.+--+-- For GetSavingsPlansPurchaseRecommendation, the @Filter@ doesn\'t include+-- @CostCategories@ or @Tags@. It only includes @Dimensions@. With+-- @Dimensions@, @Key@ must be @LINKED_ACCOUNT@ and @Value@ can be a single+-- Account ID or multiple comma-separated Account IDs that you want to see+-- Savings Plans Purchase Recommendations for. @AND@ and @OR@ operators are+-- not supported.+--+-- 'nextPageToken', 'getSavingsPlansPurchaseRecommendation_nextPageToken' - The token to retrieve the next set of results. Amazon Web Services+-- provides the token when the response from a previous call has more+-- results than the maximum page size.+--+-- 'pageSize', 'getSavingsPlansPurchaseRecommendation_pageSize' - The number of recommendations that you want returned in a single+-- response object.+--+-- 'savingsPlansType', 'getSavingsPlansPurchaseRecommendation_savingsPlansType' - The Savings Plans recommendation type that\'s requested.+--+-- 'termInYears', 'getSavingsPlansPurchaseRecommendation_termInYears' - The savings plan recommendation term that\'s used to generate these+-- recommendations.+--+-- 'paymentOption', 'getSavingsPlansPurchaseRecommendation_paymentOption' - The payment option that\'s used to generate these recommendations.+--+-- 'lookbackPeriodInDays', 'getSavingsPlansPurchaseRecommendation_lookbackPeriodInDays' - The lookback period that\'s used to generate the recommendation.+newGetSavingsPlansPurchaseRecommendation ::+  -- | 'savingsPlansType'+  SupportedSavingsPlansType ->+  -- | 'termInYears'+  TermInYears ->+  -- | 'paymentOption'+  PaymentOption ->+  -- | 'lookbackPeriodInDays'+  LookbackPeriodInDays ->+  GetSavingsPlansPurchaseRecommendation+newGetSavingsPlansPurchaseRecommendation+  pSavingsPlansType_+  pTermInYears_+  pPaymentOption_+  pLookbackPeriodInDays_ =+    GetSavingsPlansPurchaseRecommendation'+      { accountScope =+          Prelude.Nothing,+        filter' = Prelude.Nothing,+        nextPageToken = Prelude.Nothing,+        pageSize = Prelude.Nothing,+        savingsPlansType =+          pSavingsPlansType_,+        termInYears = pTermInYears_,+        paymentOption = pPaymentOption_,+        lookbackPeriodInDays =+          pLookbackPeriodInDays_+      }++-- | The account scope that you want your recommendations for. Amazon Web+-- Services calculates recommendations including the management account and+-- member accounts if the value is set to @PAYER@. If the value is+-- @LINKED@, recommendations are calculated for individual member accounts+-- only.+getSavingsPlansPurchaseRecommendation_accountScope :: Lens.Lens' GetSavingsPlansPurchaseRecommendation (Prelude.Maybe AccountScope)+getSavingsPlansPurchaseRecommendation_accountScope = Lens.lens (\GetSavingsPlansPurchaseRecommendation' {accountScope} -> accountScope) (\s@GetSavingsPlansPurchaseRecommendation' {} a -> s {accountScope = a} :: GetSavingsPlansPurchaseRecommendation)++-- | You can filter your recommendations by Account ID with the+-- @LINKED_ACCOUNT@ dimension. To filter your recommendations by Account+-- ID, specify @Key@ as @LINKED_ACCOUNT@ and @Value@ as the comma-separated+-- Acount ID(s) that you want to see Savings Plans purchase recommendations+-- for.+--+-- For GetSavingsPlansPurchaseRecommendation, the @Filter@ doesn\'t include+-- @CostCategories@ or @Tags@. It only includes @Dimensions@. With+-- @Dimensions@, @Key@ must be @LINKED_ACCOUNT@ and @Value@ can be a single+-- Account ID or multiple comma-separated Account IDs that you want to see+-- Savings Plans Purchase Recommendations for. @AND@ and @OR@ operators are+-- not supported.+getSavingsPlansPurchaseRecommendation_filter :: Lens.Lens' GetSavingsPlansPurchaseRecommendation (Prelude.Maybe Expression)+getSavingsPlansPurchaseRecommendation_filter = Lens.lens (\GetSavingsPlansPurchaseRecommendation' {filter'} -> filter') (\s@GetSavingsPlansPurchaseRecommendation' {} a -> s {filter' = a} :: GetSavingsPlansPurchaseRecommendation)++-- | The token to retrieve the next set of results. Amazon Web Services+-- provides the token when the response from a previous call has more+-- results than the maximum page size.+getSavingsPlansPurchaseRecommendation_nextPageToken :: Lens.Lens' GetSavingsPlansPurchaseRecommendation (Prelude.Maybe Prelude.Text)+getSavingsPlansPurchaseRecommendation_nextPageToken = Lens.lens (\GetSavingsPlansPurchaseRecommendation' {nextPageToken} -> nextPageToken) (\s@GetSavingsPlansPurchaseRecommendation' {} a -> s {nextPageToken = a} :: GetSavingsPlansPurchaseRecommendation)++-- | The number of recommendations that you want returned in a single+-- response object.+getSavingsPlansPurchaseRecommendation_pageSize :: Lens.Lens' GetSavingsPlansPurchaseRecommendation (Prelude.Maybe Prelude.Natural)+getSavingsPlansPurchaseRecommendation_pageSize = Lens.lens (\GetSavingsPlansPurchaseRecommendation' {pageSize} -> pageSize) (\s@GetSavingsPlansPurchaseRecommendation' {} a -> s {pageSize = a} :: GetSavingsPlansPurchaseRecommendation)++-- | The Savings Plans recommendation type that\'s requested.+getSavingsPlansPurchaseRecommendation_savingsPlansType :: Lens.Lens' GetSavingsPlansPurchaseRecommendation SupportedSavingsPlansType+getSavingsPlansPurchaseRecommendation_savingsPlansType = Lens.lens (\GetSavingsPlansPurchaseRecommendation' {savingsPlansType} -> savingsPlansType) (\s@GetSavingsPlansPurchaseRecommendation' {} a -> s {savingsPlansType = a} :: GetSavingsPlansPurchaseRecommendation)++-- | The savings plan recommendation term that\'s used to generate these+-- recommendations.+getSavingsPlansPurchaseRecommendation_termInYears :: Lens.Lens' GetSavingsPlansPurchaseRecommendation TermInYears+getSavingsPlansPurchaseRecommendation_termInYears = Lens.lens (\GetSavingsPlansPurchaseRecommendation' {termInYears} -> termInYears) (\s@GetSavingsPlansPurchaseRecommendation' {} a -> s {termInYears = a} :: GetSavingsPlansPurchaseRecommendation)++-- | The payment option that\'s used to generate these recommendations.+getSavingsPlansPurchaseRecommendation_paymentOption :: Lens.Lens' GetSavingsPlansPurchaseRecommendation PaymentOption+getSavingsPlansPurchaseRecommendation_paymentOption = Lens.lens (\GetSavingsPlansPurchaseRecommendation' {paymentOption} -> paymentOption) (\s@GetSavingsPlansPurchaseRecommendation' {} a -> s {paymentOption = a} :: GetSavingsPlansPurchaseRecommendation)++-- | The lookback period that\'s used to generate the recommendation.+getSavingsPlansPurchaseRecommendation_lookbackPeriodInDays :: Lens.Lens' GetSavingsPlansPurchaseRecommendation LookbackPeriodInDays+getSavingsPlansPurchaseRecommendation_lookbackPeriodInDays = Lens.lens (\GetSavingsPlansPurchaseRecommendation' {lookbackPeriodInDays} -> lookbackPeriodInDays) (\s@GetSavingsPlansPurchaseRecommendation' {} a -> s {lookbackPeriodInDays = a} :: GetSavingsPlansPurchaseRecommendation)++instance+  Core.AWSRequest+    GetSavingsPlansPurchaseRecommendation+  where+  type+    AWSResponse+      GetSavingsPlansPurchaseRecommendation =+      GetSavingsPlansPurchaseRecommendationResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetSavingsPlansPurchaseRecommendationResponse'+            Prelude.<$> (x Data..?> "Metadata")+            Prelude.<*> (x Data..?> "NextPageToken")+            Prelude.<*> (x Data..?> "SavingsPlansPurchaseRecommendation")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    GetSavingsPlansPurchaseRecommendation+  where+  hashWithSalt+    _salt+    GetSavingsPlansPurchaseRecommendation' {..} =+      _salt+        `Prelude.hashWithSalt` accountScope+        `Prelude.hashWithSalt` filter'+        `Prelude.hashWithSalt` nextPageToken+        `Prelude.hashWithSalt` pageSize+        `Prelude.hashWithSalt` savingsPlansType+        `Prelude.hashWithSalt` termInYears+        `Prelude.hashWithSalt` paymentOption+        `Prelude.hashWithSalt` lookbackPeriodInDays++instance+  Prelude.NFData+    GetSavingsPlansPurchaseRecommendation+  where+  rnf GetSavingsPlansPurchaseRecommendation' {..} =+    Prelude.rnf accountScope+      `Prelude.seq` Prelude.rnf filter'+      `Prelude.seq` Prelude.rnf nextPageToken+      `Prelude.seq` Prelude.rnf pageSize+      `Prelude.seq` Prelude.rnf savingsPlansType+      `Prelude.seq` Prelude.rnf termInYears+      `Prelude.seq` Prelude.rnf paymentOption+      `Prelude.seq` Prelude.rnf lookbackPeriodInDays++instance+  Data.ToHeaders+    GetSavingsPlansPurchaseRecommendation+  where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSInsightsIndexService.GetSavingsPlansPurchaseRecommendation" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance+  Data.ToJSON+    GetSavingsPlansPurchaseRecommendation+  where+  toJSON GetSavingsPlansPurchaseRecommendation' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("AccountScope" Data..=) Prelude.<$> accountScope,+            ("Filter" Data..=) Prelude.<$> filter',+            ("NextPageToken" Data..=) Prelude.<$> nextPageToken,+            ("PageSize" Data..=) Prelude.<$> pageSize,+            Prelude.Just+              ("SavingsPlansType" Data..= savingsPlansType),+            Prelude.Just ("TermInYears" Data..= termInYears),+            Prelude.Just ("PaymentOption" Data..= paymentOption),+            Prelude.Just+              ( "LookbackPeriodInDays"+                  Data..= lookbackPeriodInDays+              )+          ]+      )++instance+  Data.ToPath+    GetSavingsPlansPurchaseRecommendation+  where+  toPath = Prelude.const "/"++instance+  Data.ToQuery+    GetSavingsPlansPurchaseRecommendation+  where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetSavingsPlansPurchaseRecommendationResponse' smart constructor.+data GetSavingsPlansPurchaseRecommendationResponse = GetSavingsPlansPurchaseRecommendationResponse'+  { -- | Information that regards this specific recommendation set.+    metadata :: Prelude.Maybe SavingsPlansPurchaseRecommendationMetadata,+    -- | The token for the next set of retrievable results. Amazon Web Services+    -- provides the token when the response from a previous call has more+    -- results than the maximum page size.+    nextPageToken :: Prelude.Maybe Prelude.Text,+    -- | Contains your request parameters, Savings Plan Recommendations Summary,+    -- and Details.+    savingsPlansPurchaseRecommendation :: Prelude.Maybe SavingsPlansPurchaseRecommendation,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetSavingsPlansPurchaseRecommendationResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'metadata', 'getSavingsPlansPurchaseRecommendationResponse_metadata' - Information that regards this specific recommendation set.+--+-- 'nextPageToken', 'getSavingsPlansPurchaseRecommendationResponse_nextPageToken' - The token for the next set of retrievable results. Amazon Web Services+-- provides the token when the response from a previous call has more+-- results than the maximum page size.+--+-- 'savingsPlansPurchaseRecommendation', 'getSavingsPlansPurchaseRecommendationResponse_savingsPlansPurchaseRecommendation' - Contains your request parameters, Savings Plan Recommendations Summary,+-- and Details.+--+-- 'httpStatus', 'getSavingsPlansPurchaseRecommendationResponse_httpStatus' - The response's http status code.+newGetSavingsPlansPurchaseRecommendationResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetSavingsPlansPurchaseRecommendationResponse+newGetSavingsPlansPurchaseRecommendationResponse+  pHttpStatus_ =+    GetSavingsPlansPurchaseRecommendationResponse'+      { metadata =+          Prelude.Nothing,+        nextPageToken =+          Prelude.Nothing,+        savingsPlansPurchaseRecommendation =+          Prelude.Nothing,+        httpStatus = pHttpStatus_+      }++-- | Information that regards this specific recommendation set.+getSavingsPlansPurchaseRecommendationResponse_metadata :: Lens.Lens' GetSavingsPlansPurchaseRecommendationResponse (Prelude.Maybe SavingsPlansPurchaseRecommendationMetadata)+getSavingsPlansPurchaseRecommendationResponse_metadata = Lens.lens (\GetSavingsPlansPurchaseRecommendationResponse' {metadata} -> metadata) (\s@GetSavingsPlansPurchaseRecommendationResponse' {} a -> s {metadata = a} :: GetSavingsPlansPurchaseRecommendationResponse)++-- | The token for the next set of retrievable results. Amazon Web Services+-- provides the token when the response from a previous call has more+-- results than the maximum page size.+getSavingsPlansPurchaseRecommendationResponse_nextPageToken :: Lens.Lens' GetSavingsPlansPurchaseRecommendationResponse (Prelude.Maybe Prelude.Text)+getSavingsPlansPurchaseRecommendationResponse_nextPageToken = Lens.lens (\GetSavingsPlansPurchaseRecommendationResponse' {nextPageToken} -> nextPageToken) (\s@GetSavingsPlansPurchaseRecommendationResponse' {} a -> s {nextPageToken = a} :: GetSavingsPlansPurchaseRecommendationResponse)++-- | Contains your request parameters, Savings Plan Recommendations Summary,+-- and Details.+getSavingsPlansPurchaseRecommendationResponse_savingsPlansPurchaseRecommendation :: Lens.Lens' GetSavingsPlansPurchaseRecommendationResponse (Prelude.Maybe SavingsPlansPurchaseRecommendation)+getSavingsPlansPurchaseRecommendationResponse_savingsPlansPurchaseRecommendation = Lens.lens (\GetSavingsPlansPurchaseRecommendationResponse' {savingsPlansPurchaseRecommendation} -> savingsPlansPurchaseRecommendation) (\s@GetSavingsPlansPurchaseRecommendationResponse' {} a -> s {savingsPlansPurchaseRecommendation = a} :: GetSavingsPlansPurchaseRecommendationResponse)++-- | The response's http status code.+getSavingsPlansPurchaseRecommendationResponse_httpStatus :: Lens.Lens' GetSavingsPlansPurchaseRecommendationResponse Prelude.Int+getSavingsPlansPurchaseRecommendationResponse_httpStatus = Lens.lens (\GetSavingsPlansPurchaseRecommendationResponse' {httpStatus} -> httpStatus) (\s@GetSavingsPlansPurchaseRecommendationResponse' {} a -> s {httpStatus = a} :: GetSavingsPlansPurchaseRecommendationResponse)++instance+  Prelude.NFData+    GetSavingsPlansPurchaseRecommendationResponse+  where+  rnf+    GetSavingsPlansPurchaseRecommendationResponse' {..} =+      Prelude.rnf metadata+        `Prelude.seq` Prelude.rnf nextPageToken+        `Prelude.seq` Prelude.rnf savingsPlansPurchaseRecommendation+        `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/CostExplorer/GetSavingsPlansUtilization.hs view
@@ -0,0 +1,365 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.GetSavingsPlansUtilization+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves the Savings Plans utilization for your account across date+-- ranges with daily or monthly granularity. Management account in an+-- organization have access to member accounts. You can use+-- @GetDimensionValues@ in @SAVINGS_PLANS@ to determine the possible+-- dimension values.+--+-- You can\'t group by any dimension values for+-- @GetSavingsPlansUtilization@.+module Amazonka.CostExplorer.GetSavingsPlansUtilization+  ( -- * Creating a Request+    GetSavingsPlansUtilization (..),+    newGetSavingsPlansUtilization,++    -- * Request Lenses+    getSavingsPlansUtilization_filter,+    getSavingsPlansUtilization_granularity,+    getSavingsPlansUtilization_sortBy,+    getSavingsPlansUtilization_timePeriod,++    -- * Destructuring the Response+    GetSavingsPlansUtilizationResponse (..),+    newGetSavingsPlansUtilizationResponse,++    -- * Response Lenses+    getSavingsPlansUtilizationResponse_savingsPlansUtilizationsByTime,+    getSavingsPlansUtilizationResponse_httpStatus,+    getSavingsPlansUtilizationResponse_total,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CostExplorer.Types+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetSavingsPlansUtilization' smart constructor.+data GetSavingsPlansUtilization = GetSavingsPlansUtilization'+  { -- | Filters Savings Plans utilization coverage data for active Savings Plans+    -- dimensions. You can filter data with the following dimensions:+    --+    -- -   @LINKED_ACCOUNT@+    --+    -- -   @SAVINGS_PLAN_ARN@+    --+    -- -   @SAVINGS_PLANS_TYPE@+    --+    -- -   @REGION@+    --+    -- -   @PAYMENT_OPTION@+    --+    -- -   @INSTANCE_TYPE_FAMILY@+    --+    -- @GetSavingsPlansUtilization@ uses the same+    -- <https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html Expression>+    -- object as the other operations, but only @AND@ is supported among each+    -- dimension.+    filter' :: Prelude.Maybe Expression,+    -- | The granularity of the Amazon Web Services utillization data for your+    -- Savings Plans.+    --+    -- The @GetSavingsPlansUtilization@ operation supports only @DAILY@ and+    -- @MONTHLY@ granularities.+    granularity :: Prelude.Maybe Granularity,+    -- | The value that you want to sort the data by.+    --+    -- The following values are supported for @Key@:+    --+    -- -   @UtilizationPercentage@+    --+    -- -   @TotalCommitment@+    --+    -- -   @UsedCommitment@+    --+    -- -   @UnusedCommitment@+    --+    -- -   @NetSavings@+    --+    -- The supported values for @SortOrder@ are @ASCENDING@ and @DESCENDING@.+    sortBy :: Prelude.Maybe SortDefinition,+    -- | The time period that you want the usage and costs for. The @Start@ date+    -- must be within 13 months. The @End@ date must be after the @Start@ date,+    -- and before the current date. Future dates can\'t be used as an @End@+    -- date.+    timePeriod :: DateInterval+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetSavingsPlansUtilization' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'filter'', 'getSavingsPlansUtilization_filter' - Filters Savings Plans utilization coverage data for active Savings Plans+-- dimensions. You can filter data with the following dimensions:+--+-- -   @LINKED_ACCOUNT@+--+-- -   @SAVINGS_PLAN_ARN@+--+-- -   @SAVINGS_PLANS_TYPE@+--+-- -   @REGION@+--+-- -   @PAYMENT_OPTION@+--+-- -   @INSTANCE_TYPE_FAMILY@+--+-- @GetSavingsPlansUtilization@ uses the same+-- <https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html Expression>+-- object as the other operations, but only @AND@ is supported among each+-- dimension.+--+-- 'granularity', 'getSavingsPlansUtilization_granularity' - The granularity of the Amazon Web Services utillization data for your+-- Savings Plans.+--+-- The @GetSavingsPlansUtilization@ operation supports only @DAILY@ and+-- @MONTHLY@ granularities.+--+-- 'sortBy', 'getSavingsPlansUtilization_sortBy' - The value that you want to sort the data by.+--+-- The following values are supported for @Key@:+--+-- -   @UtilizationPercentage@+--+-- -   @TotalCommitment@+--+-- -   @UsedCommitment@+--+-- -   @UnusedCommitment@+--+-- -   @NetSavings@+--+-- The supported values for @SortOrder@ are @ASCENDING@ and @DESCENDING@.+--+-- 'timePeriod', 'getSavingsPlansUtilization_timePeriod' - The time period that you want the usage and costs for. The @Start@ date+-- must be within 13 months. The @End@ date must be after the @Start@ date,+-- and before the current date. Future dates can\'t be used as an @End@+-- date.+newGetSavingsPlansUtilization ::+  -- | 'timePeriod'+  DateInterval ->+  GetSavingsPlansUtilization+newGetSavingsPlansUtilization pTimePeriod_ =+  GetSavingsPlansUtilization'+    { filter' =+        Prelude.Nothing,+      granularity = Prelude.Nothing,+      sortBy = Prelude.Nothing,+      timePeriod = pTimePeriod_+    }++-- | Filters Savings Plans utilization coverage data for active Savings Plans+-- dimensions. You can filter data with the following dimensions:+--+-- -   @LINKED_ACCOUNT@+--+-- -   @SAVINGS_PLAN_ARN@+--+-- -   @SAVINGS_PLANS_TYPE@+--+-- -   @REGION@+--+-- -   @PAYMENT_OPTION@+--+-- -   @INSTANCE_TYPE_FAMILY@+--+-- @GetSavingsPlansUtilization@ uses the same+-- <https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html Expression>+-- object as the other operations, but only @AND@ is supported among each+-- dimension.+getSavingsPlansUtilization_filter :: Lens.Lens' GetSavingsPlansUtilization (Prelude.Maybe Expression)+getSavingsPlansUtilization_filter = Lens.lens (\GetSavingsPlansUtilization' {filter'} -> filter') (\s@GetSavingsPlansUtilization' {} a -> s {filter' = a} :: GetSavingsPlansUtilization)++-- | The granularity of the Amazon Web Services utillization data for your+-- Savings Plans.+--+-- The @GetSavingsPlansUtilization@ operation supports only @DAILY@ and+-- @MONTHLY@ granularities.+getSavingsPlansUtilization_granularity :: Lens.Lens' GetSavingsPlansUtilization (Prelude.Maybe Granularity)+getSavingsPlansUtilization_granularity = Lens.lens (\GetSavingsPlansUtilization' {granularity} -> granularity) (\s@GetSavingsPlansUtilization' {} a -> s {granularity = a} :: GetSavingsPlansUtilization)++-- | The value that you want to sort the data by.+--+-- The following values are supported for @Key@:+--+-- -   @UtilizationPercentage@+--+-- -   @TotalCommitment@+--+-- -   @UsedCommitment@+--+-- -   @UnusedCommitment@+--+-- -   @NetSavings@+--+-- The supported values for @SortOrder@ are @ASCENDING@ and @DESCENDING@.+getSavingsPlansUtilization_sortBy :: Lens.Lens' GetSavingsPlansUtilization (Prelude.Maybe SortDefinition)+getSavingsPlansUtilization_sortBy = Lens.lens (\GetSavingsPlansUtilization' {sortBy} -> sortBy) (\s@GetSavingsPlansUtilization' {} a -> s {sortBy = a} :: GetSavingsPlansUtilization)++-- | The time period that you want the usage and costs for. The @Start@ date+-- must be within 13 months. The @End@ date must be after the @Start@ date,+-- and before the current date. Future dates can\'t be used as an @End@+-- date.+getSavingsPlansUtilization_timePeriod :: Lens.Lens' GetSavingsPlansUtilization DateInterval+getSavingsPlansUtilization_timePeriod = Lens.lens (\GetSavingsPlansUtilization' {timePeriod} -> timePeriod) (\s@GetSavingsPlansUtilization' {} a -> s {timePeriod = a} :: GetSavingsPlansUtilization)++instance Core.AWSRequest GetSavingsPlansUtilization where+  type+    AWSResponse GetSavingsPlansUtilization =+      GetSavingsPlansUtilizationResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetSavingsPlansUtilizationResponse'+            Prelude.<$> ( x+                            Data..?> "SavingsPlansUtilizationsByTime"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "Total")+      )++instance Prelude.Hashable GetSavingsPlansUtilization where+  hashWithSalt _salt GetSavingsPlansUtilization' {..} =+    _salt+      `Prelude.hashWithSalt` filter'+      `Prelude.hashWithSalt` granularity+      `Prelude.hashWithSalt` sortBy+      `Prelude.hashWithSalt` timePeriod++instance Prelude.NFData GetSavingsPlansUtilization where+  rnf GetSavingsPlansUtilization' {..} =+    Prelude.rnf filter'+      `Prelude.seq` Prelude.rnf granularity+      `Prelude.seq` Prelude.rnf sortBy+      `Prelude.seq` Prelude.rnf timePeriod++instance Data.ToHeaders GetSavingsPlansUtilization where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSInsightsIndexService.GetSavingsPlansUtilization" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON GetSavingsPlansUtilization where+  toJSON GetSavingsPlansUtilization' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Filter" Data..=) Prelude.<$> filter',+            ("Granularity" Data..=) Prelude.<$> granularity,+            ("SortBy" Data..=) Prelude.<$> sortBy,+            Prelude.Just ("TimePeriod" Data..= timePeriod)+          ]+      )++instance Data.ToPath GetSavingsPlansUtilization where+  toPath = Prelude.const "/"++instance Data.ToQuery GetSavingsPlansUtilization where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetSavingsPlansUtilizationResponse' smart constructor.+data GetSavingsPlansUtilizationResponse = GetSavingsPlansUtilizationResponse'+  { -- | The amount of cost\/commitment that you used your Savings Plans. You can+    -- use it to specify date ranges.+    savingsPlansUtilizationsByTime :: Prelude.Maybe [SavingsPlansUtilizationByTime],+    -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The total amount of cost\/commitment that you used your Savings Plans,+    -- regardless of date ranges.+    total :: SavingsPlansUtilizationAggregates+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetSavingsPlansUtilizationResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'savingsPlansUtilizationsByTime', 'getSavingsPlansUtilizationResponse_savingsPlansUtilizationsByTime' - The amount of cost\/commitment that you used your Savings Plans. You can+-- use it to specify date ranges.+--+-- 'httpStatus', 'getSavingsPlansUtilizationResponse_httpStatus' - The response's http status code.+--+-- 'total', 'getSavingsPlansUtilizationResponse_total' - The total amount of cost\/commitment that you used your Savings Plans,+-- regardless of date ranges.+newGetSavingsPlansUtilizationResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'total'+  SavingsPlansUtilizationAggregates ->+  GetSavingsPlansUtilizationResponse+newGetSavingsPlansUtilizationResponse+  pHttpStatus_+  pTotal_ =+    GetSavingsPlansUtilizationResponse'+      { savingsPlansUtilizationsByTime =+          Prelude.Nothing,+        httpStatus = pHttpStatus_,+        total = pTotal_+      }++-- | The amount of cost\/commitment that you used your Savings Plans. You can+-- use it to specify date ranges.+getSavingsPlansUtilizationResponse_savingsPlansUtilizationsByTime :: Lens.Lens' GetSavingsPlansUtilizationResponse (Prelude.Maybe [SavingsPlansUtilizationByTime])+getSavingsPlansUtilizationResponse_savingsPlansUtilizationsByTime = Lens.lens (\GetSavingsPlansUtilizationResponse' {savingsPlansUtilizationsByTime} -> savingsPlansUtilizationsByTime) (\s@GetSavingsPlansUtilizationResponse' {} a -> s {savingsPlansUtilizationsByTime = a} :: GetSavingsPlansUtilizationResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+getSavingsPlansUtilizationResponse_httpStatus :: Lens.Lens' GetSavingsPlansUtilizationResponse Prelude.Int+getSavingsPlansUtilizationResponse_httpStatus = Lens.lens (\GetSavingsPlansUtilizationResponse' {httpStatus} -> httpStatus) (\s@GetSavingsPlansUtilizationResponse' {} a -> s {httpStatus = a} :: GetSavingsPlansUtilizationResponse)++-- | The total amount of cost\/commitment that you used your Savings Plans,+-- regardless of date ranges.+getSavingsPlansUtilizationResponse_total :: Lens.Lens' GetSavingsPlansUtilizationResponse SavingsPlansUtilizationAggregates+getSavingsPlansUtilizationResponse_total = Lens.lens (\GetSavingsPlansUtilizationResponse' {total} -> total) (\s@GetSavingsPlansUtilizationResponse' {} a -> s {total = a} :: GetSavingsPlansUtilizationResponse)++instance+  Prelude.NFData+    GetSavingsPlansUtilizationResponse+  where+  rnf GetSavingsPlansUtilizationResponse' {..} =+    Prelude.rnf savingsPlansUtilizationsByTime+      `Prelude.seq` Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf total
+ gen/Amazonka/CostExplorer/GetSavingsPlansUtilizationDetails.hs view
@@ -0,0 +1,446 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.GetSavingsPlansUtilizationDetails+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves attribute data along with aggregate utilization and savings+-- data for a given time period. This doesn\'t support granular or grouped+-- data (daily\/monthly) in response. You can\'t retrieve data by dates in+-- a single response similar to @GetSavingsPlanUtilization@, but you have+-- the option to make multiple calls to @GetSavingsPlanUtilizationDetails@+-- by providing individual dates. You can use @GetDimensionValues@ in+-- @SAVINGS_PLANS@ to determine the possible dimension values.+--+-- @GetSavingsPlanUtilizationDetails@ internally groups data by+-- @SavingsPlansArn@.+module Amazonka.CostExplorer.GetSavingsPlansUtilizationDetails+  ( -- * Creating a Request+    GetSavingsPlansUtilizationDetails (..),+    newGetSavingsPlansUtilizationDetails,++    -- * Request Lenses+    getSavingsPlansUtilizationDetails_dataType,+    getSavingsPlansUtilizationDetails_filter,+    getSavingsPlansUtilizationDetails_maxResults,+    getSavingsPlansUtilizationDetails_nextToken,+    getSavingsPlansUtilizationDetails_sortBy,+    getSavingsPlansUtilizationDetails_timePeriod,++    -- * Destructuring the Response+    GetSavingsPlansUtilizationDetailsResponse (..),+    newGetSavingsPlansUtilizationDetailsResponse,++    -- * Response Lenses+    getSavingsPlansUtilizationDetailsResponse_nextToken,+    getSavingsPlansUtilizationDetailsResponse_total,+    getSavingsPlansUtilizationDetailsResponse_httpStatus,+    getSavingsPlansUtilizationDetailsResponse_savingsPlansUtilizationDetails,+    getSavingsPlansUtilizationDetailsResponse_timePeriod,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CostExplorer.Types+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetSavingsPlansUtilizationDetails' smart constructor.+data GetSavingsPlansUtilizationDetails = GetSavingsPlansUtilizationDetails'+  { -- | The data type.+    dataType :: Prelude.Maybe [SavingsPlansDataType],+    -- | Filters Savings Plans utilization coverage data for active Savings Plans+    -- dimensions. You can filter data with the following dimensions:+    --+    -- -   @LINKED_ACCOUNT@+    --+    -- -   @SAVINGS_PLAN_ARN@+    --+    -- -   @REGION@+    --+    -- -   @PAYMENT_OPTION@+    --+    -- -   @INSTANCE_TYPE_FAMILY@+    --+    -- @GetSavingsPlansUtilizationDetails@ uses the same+    -- <https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html Expression>+    -- object as the other operations, but only @AND@ is supported among each+    -- dimension.+    filter' :: Prelude.Maybe Expression,+    -- | The number of items to be returned in a response. The default is @20@,+    -- with a minimum value of @1@.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The token to retrieve the next set of results. Amazon Web Services+    -- provides the token when the response from a previous call has more+    -- results than the maximum page size.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The value that you want to sort the data by.+    --+    -- The following values are supported for @Key@:+    --+    -- -   @UtilizationPercentage@+    --+    -- -   @TotalCommitment@+    --+    -- -   @UsedCommitment@+    --+    -- -   @UnusedCommitment@+    --+    -- -   @NetSavings@+    --+    -- -   @AmortizedRecurringCommitment@+    --+    -- -   @AmortizedUpfrontCommitment@+    --+    -- The supported values for @SortOrder@ are @ASCENDING@ and @DESCENDING@.+    sortBy :: Prelude.Maybe SortDefinition,+    -- | The time period that you want the usage and costs for. The @Start@ date+    -- must be within 13 months. The @End@ date must be after the @Start@ date,+    -- and before the current date. Future dates can\'t be used as an @End@+    -- date.+    timePeriod :: DateInterval+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetSavingsPlansUtilizationDetails' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dataType', 'getSavingsPlansUtilizationDetails_dataType' - The data type.+--+-- 'filter'', 'getSavingsPlansUtilizationDetails_filter' - Filters Savings Plans utilization coverage data for active Savings Plans+-- dimensions. You can filter data with the following dimensions:+--+-- -   @LINKED_ACCOUNT@+--+-- -   @SAVINGS_PLAN_ARN@+--+-- -   @REGION@+--+-- -   @PAYMENT_OPTION@+--+-- -   @INSTANCE_TYPE_FAMILY@+--+-- @GetSavingsPlansUtilizationDetails@ uses the same+-- <https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html Expression>+-- object as the other operations, but only @AND@ is supported among each+-- dimension.+--+-- 'maxResults', 'getSavingsPlansUtilizationDetails_maxResults' - The number of items to be returned in a response. The default is @20@,+-- with a minimum value of @1@.+--+-- 'nextToken', 'getSavingsPlansUtilizationDetails_nextToken' - The token to retrieve the next set of results. Amazon Web Services+-- provides the token when the response from a previous call has more+-- results than the maximum page size.+--+-- 'sortBy', 'getSavingsPlansUtilizationDetails_sortBy' - The value that you want to sort the data by.+--+-- The following values are supported for @Key@:+--+-- -   @UtilizationPercentage@+--+-- -   @TotalCommitment@+--+-- -   @UsedCommitment@+--+-- -   @UnusedCommitment@+--+-- -   @NetSavings@+--+-- -   @AmortizedRecurringCommitment@+--+-- -   @AmortizedUpfrontCommitment@+--+-- The supported values for @SortOrder@ are @ASCENDING@ and @DESCENDING@.+--+-- 'timePeriod', 'getSavingsPlansUtilizationDetails_timePeriod' - The time period that you want the usage and costs for. The @Start@ date+-- must be within 13 months. The @End@ date must be after the @Start@ date,+-- and before the current date. Future dates can\'t be used as an @End@+-- date.+newGetSavingsPlansUtilizationDetails ::+  -- | 'timePeriod'+  DateInterval ->+  GetSavingsPlansUtilizationDetails+newGetSavingsPlansUtilizationDetails pTimePeriod_ =+  GetSavingsPlansUtilizationDetails'+    { dataType =+        Prelude.Nothing,+      filter' = Prelude.Nothing,+      maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing,+      sortBy = Prelude.Nothing,+      timePeriod = pTimePeriod_+    }++-- | The data type.+getSavingsPlansUtilizationDetails_dataType :: Lens.Lens' GetSavingsPlansUtilizationDetails (Prelude.Maybe [SavingsPlansDataType])+getSavingsPlansUtilizationDetails_dataType = Lens.lens (\GetSavingsPlansUtilizationDetails' {dataType} -> dataType) (\s@GetSavingsPlansUtilizationDetails' {} a -> s {dataType = a} :: GetSavingsPlansUtilizationDetails) Prelude.. Lens.mapping Lens.coerced++-- | Filters Savings Plans utilization coverage data for active Savings Plans+-- dimensions. You can filter data with the following dimensions:+--+-- -   @LINKED_ACCOUNT@+--+-- -   @SAVINGS_PLAN_ARN@+--+-- -   @REGION@+--+-- -   @PAYMENT_OPTION@+--+-- -   @INSTANCE_TYPE_FAMILY@+--+-- @GetSavingsPlansUtilizationDetails@ uses the same+-- <https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html Expression>+-- object as the other operations, but only @AND@ is supported among each+-- dimension.+getSavingsPlansUtilizationDetails_filter :: Lens.Lens' GetSavingsPlansUtilizationDetails (Prelude.Maybe Expression)+getSavingsPlansUtilizationDetails_filter = Lens.lens (\GetSavingsPlansUtilizationDetails' {filter'} -> filter') (\s@GetSavingsPlansUtilizationDetails' {} a -> s {filter' = a} :: GetSavingsPlansUtilizationDetails)++-- | The number of items to be returned in a response. The default is @20@,+-- with a minimum value of @1@.+getSavingsPlansUtilizationDetails_maxResults :: Lens.Lens' GetSavingsPlansUtilizationDetails (Prelude.Maybe Prelude.Natural)+getSavingsPlansUtilizationDetails_maxResults = Lens.lens (\GetSavingsPlansUtilizationDetails' {maxResults} -> maxResults) (\s@GetSavingsPlansUtilizationDetails' {} a -> s {maxResults = a} :: GetSavingsPlansUtilizationDetails)++-- | The token to retrieve the next set of results. Amazon Web Services+-- provides the token when the response from a previous call has more+-- results than the maximum page size.+getSavingsPlansUtilizationDetails_nextToken :: Lens.Lens' GetSavingsPlansUtilizationDetails (Prelude.Maybe Prelude.Text)+getSavingsPlansUtilizationDetails_nextToken = Lens.lens (\GetSavingsPlansUtilizationDetails' {nextToken} -> nextToken) (\s@GetSavingsPlansUtilizationDetails' {} a -> s {nextToken = a} :: GetSavingsPlansUtilizationDetails)++-- | The value that you want to sort the data by.+--+-- The following values are supported for @Key@:+--+-- -   @UtilizationPercentage@+--+-- -   @TotalCommitment@+--+-- -   @UsedCommitment@+--+-- -   @UnusedCommitment@+--+-- -   @NetSavings@+--+-- -   @AmortizedRecurringCommitment@+--+-- -   @AmortizedUpfrontCommitment@+--+-- The supported values for @SortOrder@ are @ASCENDING@ and @DESCENDING@.+getSavingsPlansUtilizationDetails_sortBy :: Lens.Lens' GetSavingsPlansUtilizationDetails (Prelude.Maybe SortDefinition)+getSavingsPlansUtilizationDetails_sortBy = Lens.lens (\GetSavingsPlansUtilizationDetails' {sortBy} -> sortBy) (\s@GetSavingsPlansUtilizationDetails' {} a -> s {sortBy = a} :: GetSavingsPlansUtilizationDetails)++-- | The time period that you want the usage and costs for. The @Start@ date+-- must be within 13 months. The @End@ date must be after the @Start@ date,+-- and before the current date. Future dates can\'t be used as an @End@+-- date.+getSavingsPlansUtilizationDetails_timePeriod :: Lens.Lens' GetSavingsPlansUtilizationDetails DateInterval+getSavingsPlansUtilizationDetails_timePeriod = Lens.lens (\GetSavingsPlansUtilizationDetails' {timePeriod} -> timePeriod) (\s@GetSavingsPlansUtilizationDetails' {} a -> s {timePeriod = a} :: GetSavingsPlansUtilizationDetails)++instance+  Core.AWSRequest+    GetSavingsPlansUtilizationDetails+  where+  type+    AWSResponse GetSavingsPlansUtilizationDetails =+      GetSavingsPlansUtilizationDetailsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetSavingsPlansUtilizationDetailsResponse'+            Prelude.<$> (x Data..?> "NextToken")+            Prelude.<*> (x Data..?> "Total")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> ( x+                            Data..?> "SavingsPlansUtilizationDetails"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..:> "TimePeriod")+      )++instance+  Prelude.Hashable+    GetSavingsPlansUtilizationDetails+  where+  hashWithSalt+    _salt+    GetSavingsPlansUtilizationDetails' {..} =+      _salt+        `Prelude.hashWithSalt` dataType+        `Prelude.hashWithSalt` filter'+        `Prelude.hashWithSalt` maxResults+        `Prelude.hashWithSalt` nextToken+        `Prelude.hashWithSalt` sortBy+        `Prelude.hashWithSalt` timePeriod++instance+  Prelude.NFData+    GetSavingsPlansUtilizationDetails+  where+  rnf GetSavingsPlansUtilizationDetails' {..} =+    Prelude.rnf dataType+      `Prelude.seq` Prelude.rnf filter'+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf sortBy+      `Prelude.seq` Prelude.rnf timePeriod++instance+  Data.ToHeaders+    GetSavingsPlansUtilizationDetails+  where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSInsightsIndexService.GetSavingsPlansUtilizationDetails" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance+  Data.ToJSON+    GetSavingsPlansUtilizationDetails+  where+  toJSON GetSavingsPlansUtilizationDetails' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("DataType" Data..=) Prelude.<$> dataType,+            ("Filter" Data..=) Prelude.<$> filter',+            ("MaxResults" Data..=) Prelude.<$> maxResults,+            ("NextToken" Data..=) Prelude.<$> nextToken,+            ("SortBy" Data..=) Prelude.<$> sortBy,+            Prelude.Just ("TimePeriod" Data..= timePeriod)+          ]+      )++instance+  Data.ToPath+    GetSavingsPlansUtilizationDetails+  where+  toPath = Prelude.const "/"++instance+  Data.ToQuery+    GetSavingsPlansUtilizationDetails+  where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetSavingsPlansUtilizationDetailsResponse' smart constructor.+data GetSavingsPlansUtilizationDetailsResponse = GetSavingsPlansUtilizationDetailsResponse'+  { -- | The token to retrieve the next set of results. Amazon Web Services+    -- provides the token when the response from a previous call has more+    -- results than the maximum page size.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The total Savings Plans utilization, regardless of time period.+    total :: Prelude.Maybe SavingsPlansUtilizationAggregates,+    -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | Retrieves a single daily or monthly Savings Plans utilization rate and+    -- details for your account.+    savingsPlansUtilizationDetails :: [SavingsPlansUtilizationDetail],+    timePeriod :: DateInterval+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetSavingsPlansUtilizationDetailsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'nextToken', 'getSavingsPlansUtilizationDetailsResponse_nextToken' - The token to retrieve the next set of results. Amazon Web Services+-- provides the token when the response from a previous call has more+-- results than the maximum page size.+--+-- 'total', 'getSavingsPlansUtilizationDetailsResponse_total' - The total Savings Plans utilization, regardless of time period.+--+-- 'httpStatus', 'getSavingsPlansUtilizationDetailsResponse_httpStatus' - The response's http status code.+--+-- 'savingsPlansUtilizationDetails', 'getSavingsPlansUtilizationDetailsResponse_savingsPlansUtilizationDetails' - Retrieves a single daily or monthly Savings Plans utilization rate and+-- details for your account.+--+-- 'timePeriod', 'getSavingsPlansUtilizationDetailsResponse_timePeriod' - Undocumented member.+newGetSavingsPlansUtilizationDetailsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'timePeriod'+  DateInterval ->+  GetSavingsPlansUtilizationDetailsResponse+newGetSavingsPlansUtilizationDetailsResponse+  pHttpStatus_+  pTimePeriod_ =+    GetSavingsPlansUtilizationDetailsResponse'+      { nextToken =+          Prelude.Nothing,+        total = Prelude.Nothing,+        httpStatus = pHttpStatus_,+        savingsPlansUtilizationDetails =+          Prelude.mempty,+        timePeriod = pTimePeriod_+      }++-- | The token to retrieve the next set of results. Amazon Web Services+-- provides the token when the response from a previous call has more+-- results than the maximum page size.+getSavingsPlansUtilizationDetailsResponse_nextToken :: Lens.Lens' GetSavingsPlansUtilizationDetailsResponse (Prelude.Maybe Prelude.Text)+getSavingsPlansUtilizationDetailsResponse_nextToken = Lens.lens (\GetSavingsPlansUtilizationDetailsResponse' {nextToken} -> nextToken) (\s@GetSavingsPlansUtilizationDetailsResponse' {} a -> s {nextToken = a} :: GetSavingsPlansUtilizationDetailsResponse)++-- | The total Savings Plans utilization, regardless of time period.+getSavingsPlansUtilizationDetailsResponse_total :: Lens.Lens' GetSavingsPlansUtilizationDetailsResponse (Prelude.Maybe SavingsPlansUtilizationAggregates)+getSavingsPlansUtilizationDetailsResponse_total = Lens.lens (\GetSavingsPlansUtilizationDetailsResponse' {total} -> total) (\s@GetSavingsPlansUtilizationDetailsResponse' {} a -> s {total = a} :: GetSavingsPlansUtilizationDetailsResponse)++-- | The response's http status code.+getSavingsPlansUtilizationDetailsResponse_httpStatus :: Lens.Lens' GetSavingsPlansUtilizationDetailsResponse Prelude.Int+getSavingsPlansUtilizationDetailsResponse_httpStatus = Lens.lens (\GetSavingsPlansUtilizationDetailsResponse' {httpStatus} -> httpStatus) (\s@GetSavingsPlansUtilizationDetailsResponse' {} a -> s {httpStatus = a} :: GetSavingsPlansUtilizationDetailsResponse)++-- | Retrieves a single daily or monthly Savings Plans utilization rate and+-- details for your account.+getSavingsPlansUtilizationDetailsResponse_savingsPlansUtilizationDetails :: Lens.Lens' GetSavingsPlansUtilizationDetailsResponse [SavingsPlansUtilizationDetail]+getSavingsPlansUtilizationDetailsResponse_savingsPlansUtilizationDetails = Lens.lens (\GetSavingsPlansUtilizationDetailsResponse' {savingsPlansUtilizationDetails} -> savingsPlansUtilizationDetails) (\s@GetSavingsPlansUtilizationDetailsResponse' {} a -> s {savingsPlansUtilizationDetails = a} :: GetSavingsPlansUtilizationDetailsResponse) Prelude.. Lens.coerced++-- | Undocumented member.+getSavingsPlansUtilizationDetailsResponse_timePeriod :: Lens.Lens' GetSavingsPlansUtilizationDetailsResponse DateInterval+getSavingsPlansUtilizationDetailsResponse_timePeriod = Lens.lens (\GetSavingsPlansUtilizationDetailsResponse' {timePeriod} -> timePeriod) (\s@GetSavingsPlansUtilizationDetailsResponse' {} a -> s {timePeriod = a} :: GetSavingsPlansUtilizationDetailsResponse)++instance+  Prelude.NFData+    GetSavingsPlansUtilizationDetailsResponse+  where+  rnf GetSavingsPlansUtilizationDetailsResponse' {..} =+    Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf total+      `Prelude.seq` Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf savingsPlansUtilizationDetails+      `Prelude.seq` Prelude.rnf timePeriod
+ gen/Amazonka/CostExplorer/GetTags.hs view
@@ -0,0 +1,396 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.GetTags+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Queries for available tag keys and tag values for a specified period.+-- You can search the tag values for an arbitrary string.+module Amazonka.CostExplorer.GetTags+  ( -- * Creating a Request+    GetTags (..),+    newGetTags,++    -- * Request Lenses+    getTags_filter,+    getTags_maxResults,+    getTags_nextPageToken,+    getTags_searchString,+    getTags_sortBy,+    getTags_tagKey,+    getTags_timePeriod,++    -- * Destructuring the Response+    GetTagsResponse (..),+    newGetTagsResponse,++    -- * Response Lenses+    getTagsResponse_nextPageToken,+    getTagsResponse_httpStatus,+    getTagsResponse_tags,+    getTagsResponse_returnSize,+    getTagsResponse_totalSize,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CostExplorer.Types+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetTags' smart constructor.+data GetTags = GetTags'+  { filter' :: Prelude.Maybe Expression,+    -- | This field is only used when SortBy is provided in the request. The+    -- maximum number of objects that are returned for this request. If+    -- MaxResults isn\'t specified with SortBy, the request returns 1000+    -- results as the default value for this parameter.+    --+    -- For @GetTags@, MaxResults has an upper quota of 1000.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The token to retrieve the next set of results. Amazon Web Services+    -- provides the token when the response from a previous call has more+    -- results than the maximum page size.+    nextPageToken :: Prelude.Maybe Prelude.Text,+    -- | The value that you want to search for.+    searchString :: Prelude.Maybe Prelude.Text,+    -- | The value that you want to sort the data by.+    --+    -- The key represents cost and usage metrics. The following values are+    -- supported:+    --+    -- -   @BlendedCost@+    --+    -- -   @UnblendedCost@+    --+    -- -   @AmortizedCost@+    --+    -- -   @NetAmortizedCost@+    --+    -- -   @NetUnblendedCost@+    --+    -- -   @UsageQuantity@+    --+    -- -   @NormalizedUsageAmount@+    --+    -- The supported values for @SortOrder@ are @ASCENDING@ and @DESCENDING@.+    --+    -- When you use @SortBy@, @NextPageToken@ and @SearchString@ aren\'t+    -- supported.+    sortBy :: Prelude.Maybe [SortDefinition],+    -- | The key of the tag that you want to return values for.+    tagKey :: Prelude.Maybe Prelude.Text,+    -- | The start and end dates for retrieving the dimension values. The start+    -- date is inclusive, but the end date is exclusive. For example, if+    -- @start@ is @2017-01-01@ and @end@ is @2017-05-01@, then the cost and+    -- usage data is retrieved from @2017-01-01@ up to and including+    -- @2017-04-30@ but not including @2017-05-01@.+    timePeriod :: DateInterval+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetTags' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'filter'', 'getTags_filter' - Undocumented member.+--+-- 'maxResults', 'getTags_maxResults' - This field is only used when SortBy is provided in the request. The+-- maximum number of objects that are returned for this request. If+-- MaxResults isn\'t specified with SortBy, the request returns 1000+-- results as the default value for this parameter.+--+-- For @GetTags@, MaxResults has an upper quota of 1000.+--+-- 'nextPageToken', 'getTags_nextPageToken' - The token to retrieve the next set of results. Amazon Web Services+-- provides the token when the response from a previous call has more+-- results than the maximum page size.+--+-- 'searchString', 'getTags_searchString' - The value that you want to search for.+--+-- 'sortBy', 'getTags_sortBy' - The value that you want to sort the data by.+--+-- The key represents cost and usage metrics. The following values are+-- supported:+--+-- -   @BlendedCost@+--+-- -   @UnblendedCost@+--+-- -   @AmortizedCost@+--+-- -   @NetAmortizedCost@+--+-- -   @NetUnblendedCost@+--+-- -   @UsageQuantity@+--+-- -   @NormalizedUsageAmount@+--+-- The supported values for @SortOrder@ are @ASCENDING@ and @DESCENDING@.+--+-- When you use @SortBy@, @NextPageToken@ and @SearchString@ aren\'t+-- supported.+--+-- 'tagKey', 'getTags_tagKey' - The key of the tag that you want to return values for.+--+-- 'timePeriod', 'getTags_timePeriod' - The start and end dates for retrieving the dimension values. The start+-- date is inclusive, but the end date is exclusive. For example, if+-- @start@ is @2017-01-01@ and @end@ is @2017-05-01@, then the cost and+-- usage data is retrieved from @2017-01-01@ up to and including+-- @2017-04-30@ but not including @2017-05-01@.+newGetTags ::+  -- | 'timePeriod'+  DateInterval ->+  GetTags+newGetTags pTimePeriod_ =+  GetTags'+    { filter' = Prelude.Nothing,+      maxResults = Prelude.Nothing,+      nextPageToken = Prelude.Nothing,+      searchString = Prelude.Nothing,+      sortBy = Prelude.Nothing,+      tagKey = Prelude.Nothing,+      timePeriod = pTimePeriod_+    }++-- | Undocumented member.+getTags_filter :: Lens.Lens' GetTags (Prelude.Maybe Expression)+getTags_filter = Lens.lens (\GetTags' {filter'} -> filter') (\s@GetTags' {} a -> s {filter' = a} :: GetTags)++-- | This field is only used when SortBy is provided in the request. The+-- maximum number of objects that are returned for this request. If+-- MaxResults isn\'t specified with SortBy, the request returns 1000+-- results as the default value for this parameter.+--+-- For @GetTags@, MaxResults has an upper quota of 1000.+getTags_maxResults :: Lens.Lens' GetTags (Prelude.Maybe Prelude.Natural)+getTags_maxResults = Lens.lens (\GetTags' {maxResults} -> maxResults) (\s@GetTags' {} a -> s {maxResults = a} :: GetTags)++-- | The token to retrieve the next set of results. Amazon Web Services+-- provides the token when the response from a previous call has more+-- results than the maximum page size.+getTags_nextPageToken :: Lens.Lens' GetTags (Prelude.Maybe Prelude.Text)+getTags_nextPageToken = Lens.lens (\GetTags' {nextPageToken} -> nextPageToken) (\s@GetTags' {} a -> s {nextPageToken = a} :: GetTags)++-- | The value that you want to search for.+getTags_searchString :: Lens.Lens' GetTags (Prelude.Maybe Prelude.Text)+getTags_searchString = Lens.lens (\GetTags' {searchString} -> searchString) (\s@GetTags' {} a -> s {searchString = a} :: GetTags)++-- | The value that you want to sort the data by.+--+-- The key represents cost and usage metrics. The following values are+-- supported:+--+-- -   @BlendedCost@+--+-- -   @UnblendedCost@+--+-- -   @AmortizedCost@+--+-- -   @NetAmortizedCost@+--+-- -   @NetUnblendedCost@+--+-- -   @UsageQuantity@+--+-- -   @NormalizedUsageAmount@+--+-- The supported values for @SortOrder@ are @ASCENDING@ and @DESCENDING@.+--+-- When you use @SortBy@, @NextPageToken@ and @SearchString@ aren\'t+-- supported.+getTags_sortBy :: Lens.Lens' GetTags (Prelude.Maybe [SortDefinition])+getTags_sortBy = Lens.lens (\GetTags' {sortBy} -> sortBy) (\s@GetTags' {} a -> s {sortBy = a} :: GetTags) Prelude.. Lens.mapping Lens.coerced++-- | The key of the tag that you want to return values for.+getTags_tagKey :: Lens.Lens' GetTags (Prelude.Maybe Prelude.Text)+getTags_tagKey = Lens.lens (\GetTags' {tagKey} -> tagKey) (\s@GetTags' {} a -> s {tagKey = a} :: GetTags)++-- | The start and end dates for retrieving the dimension values. The start+-- date is inclusive, but the end date is exclusive. For example, if+-- @start@ is @2017-01-01@ and @end@ is @2017-05-01@, then the cost and+-- usage data is retrieved from @2017-01-01@ up to and including+-- @2017-04-30@ but not including @2017-05-01@.+getTags_timePeriod :: Lens.Lens' GetTags DateInterval+getTags_timePeriod = Lens.lens (\GetTags' {timePeriod} -> timePeriod) (\s@GetTags' {} a -> s {timePeriod = a} :: GetTags)++instance Core.AWSRequest GetTags where+  type AWSResponse GetTags = GetTagsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetTagsResponse'+            Prelude.<$> (x Data..?> "NextPageToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..?> "Tags" Core..!@ Prelude.mempty)+            Prelude.<*> (x Data..:> "ReturnSize")+            Prelude.<*> (x Data..:> "TotalSize")+      )++instance Prelude.Hashable GetTags where+  hashWithSalt _salt GetTags' {..} =+    _salt+      `Prelude.hashWithSalt` filter'+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextPageToken+      `Prelude.hashWithSalt` searchString+      `Prelude.hashWithSalt` sortBy+      `Prelude.hashWithSalt` tagKey+      `Prelude.hashWithSalt` timePeriod++instance Prelude.NFData GetTags where+  rnf GetTags' {..} =+    Prelude.rnf filter'+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextPageToken+      `Prelude.seq` Prelude.rnf searchString+      `Prelude.seq` Prelude.rnf sortBy+      `Prelude.seq` Prelude.rnf tagKey+      `Prelude.seq` Prelude.rnf timePeriod++instance Data.ToHeaders GetTags where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSInsightsIndexService.GetTags" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON GetTags where+  toJSON GetTags' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Filter" Data..=) Prelude.<$> filter',+            ("MaxResults" Data..=) Prelude.<$> maxResults,+            ("NextPageToken" Data..=) Prelude.<$> nextPageToken,+            ("SearchString" Data..=) Prelude.<$> searchString,+            ("SortBy" Data..=) Prelude.<$> sortBy,+            ("TagKey" Data..=) Prelude.<$> tagKey,+            Prelude.Just ("TimePeriod" Data..= timePeriod)+          ]+      )++instance Data.ToPath GetTags where+  toPath = Prelude.const "/"++instance Data.ToQuery GetTags where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetTagsResponse' smart constructor.+data GetTagsResponse = GetTagsResponse'+  { -- | The token for the next set of retrievable results. Amazon Web Services+    -- provides the token when the response from a previous call has more+    -- results than the maximum page size.+    nextPageToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The tags that match your request.+    tags :: [Prelude.Text],+    -- | The number of query results that Amazon Web Services returns at a time.+    returnSize :: Prelude.Int,+    -- | The total number of query results.+    totalSize :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetTagsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'nextPageToken', 'getTagsResponse_nextPageToken' - The token for the next set of retrievable results. Amazon Web Services+-- provides the token when the response from a previous call has more+-- results than the maximum page size.+--+-- 'httpStatus', 'getTagsResponse_httpStatus' - The response's http status code.+--+-- 'tags', 'getTagsResponse_tags' - The tags that match your request.+--+-- 'returnSize', 'getTagsResponse_returnSize' - The number of query results that Amazon Web Services returns at a time.+--+-- 'totalSize', 'getTagsResponse_totalSize' - The total number of query results.+newGetTagsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'returnSize'+  Prelude.Int ->+  -- | 'totalSize'+  Prelude.Int ->+  GetTagsResponse+newGetTagsResponse+  pHttpStatus_+  pReturnSize_+  pTotalSize_ =+    GetTagsResponse'+      { nextPageToken = Prelude.Nothing,+        httpStatus = pHttpStatus_,+        tags = Prelude.mempty,+        returnSize = pReturnSize_,+        totalSize = pTotalSize_+      }++-- | The token for the next set of retrievable results. Amazon Web Services+-- provides the token when the response from a previous call has more+-- results than the maximum page size.+getTagsResponse_nextPageToken :: Lens.Lens' GetTagsResponse (Prelude.Maybe Prelude.Text)+getTagsResponse_nextPageToken = Lens.lens (\GetTagsResponse' {nextPageToken} -> nextPageToken) (\s@GetTagsResponse' {} a -> s {nextPageToken = a} :: GetTagsResponse)++-- | The response's http status code.+getTagsResponse_httpStatus :: Lens.Lens' GetTagsResponse Prelude.Int+getTagsResponse_httpStatus = Lens.lens (\GetTagsResponse' {httpStatus} -> httpStatus) (\s@GetTagsResponse' {} a -> s {httpStatus = a} :: GetTagsResponse)++-- | The tags that match your request.+getTagsResponse_tags :: Lens.Lens' GetTagsResponse [Prelude.Text]+getTagsResponse_tags = Lens.lens (\GetTagsResponse' {tags} -> tags) (\s@GetTagsResponse' {} a -> s {tags = a} :: GetTagsResponse) Prelude.. Lens.coerced++-- | The number of query results that Amazon Web Services returns at a time.+getTagsResponse_returnSize :: Lens.Lens' GetTagsResponse Prelude.Int+getTagsResponse_returnSize = Lens.lens (\GetTagsResponse' {returnSize} -> returnSize) (\s@GetTagsResponse' {} a -> s {returnSize = a} :: GetTagsResponse)++-- | The total number of query results.+getTagsResponse_totalSize :: Lens.Lens' GetTagsResponse Prelude.Int+getTagsResponse_totalSize = Lens.lens (\GetTagsResponse' {totalSize} -> totalSize) (\s@GetTagsResponse' {} a -> s {totalSize = a} :: GetTagsResponse)++instance Prelude.NFData GetTagsResponse where+  rnf GetTagsResponse' {..} =+    Prelude.rnf nextPageToken+      `Prelude.seq` Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf returnSize+      `Prelude.seq` Prelude.rnf totalSize
+ gen/Amazonka/CostExplorer/GetUsageForecast.hs view
@@ -0,0 +1,457 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.GetUsageForecast+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves a forecast for how much Amazon Web Services predicts that you+-- will use over the forecast time period that you select, based on your+-- past usage.+module Amazonka.CostExplorer.GetUsageForecast+  ( -- * Creating a Request+    GetUsageForecast (..),+    newGetUsageForecast,++    -- * Request Lenses+    getUsageForecast_filter,+    getUsageForecast_predictionIntervalLevel,+    getUsageForecast_timePeriod,+    getUsageForecast_metric,+    getUsageForecast_granularity,++    -- * Destructuring the Response+    GetUsageForecastResponse (..),+    newGetUsageForecastResponse,++    -- * Response Lenses+    getUsageForecastResponse_forecastResultsByTime,+    getUsageForecastResponse_total,+    getUsageForecastResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CostExplorer.Types+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetUsageForecast' smart constructor.+data GetUsageForecast = GetUsageForecast'+  { -- | The filters that you want to use to filter your forecast. The+    -- @GetUsageForecast@ API supports filtering by the following dimensions:+    --+    -- -   @AZ@+    --+    -- -   @INSTANCE_TYPE@+    --+    -- -   @LINKED_ACCOUNT@+    --+    -- -   @LINKED_ACCOUNT_NAME@+    --+    -- -   @OPERATION@+    --+    -- -   @PURCHASE_TYPE@+    --+    -- -   @REGION@+    --+    -- -   @SERVICE@+    --+    -- -   @USAGE_TYPE@+    --+    -- -   @USAGE_TYPE_GROUP@+    --+    -- -   @RECORD_TYPE@+    --+    -- -   @OPERATING_SYSTEM@+    --+    -- -   @TENANCY@+    --+    -- -   @SCOPE@+    --+    -- -   @PLATFORM@+    --+    -- -   @SUBSCRIPTION_ID@+    --+    -- -   @LEGAL_ENTITY_NAME@+    --+    -- -   @DEPLOYMENT_OPTION@+    --+    -- -   @DATABASE_ENGINE@+    --+    -- -   @INSTANCE_TYPE_FAMILY@+    --+    -- -   @BILLING_ENTITY@+    --+    -- -   @RESERVATION_ID@+    --+    -- -   @SAVINGS_PLAN_ARN@+    filter' :: Prelude.Maybe Expression,+    -- | Amazon Web Services Cost Explorer always returns the mean forecast as a+    -- single point. You can request a prediction interval around the mean by+    -- specifying a confidence level. The higher the confidence level, the more+    -- confident Cost Explorer is about the actual value falling in the+    -- prediction interval. Higher confidence levels result in wider prediction+    -- intervals.+    predictionIntervalLevel :: Prelude.Maybe Prelude.Natural,+    -- | The start and end dates of the period that you want to retrieve usage+    -- forecast for. The start date is included in the period, but the end date+    -- isn\'t included in the period. For example, if @start@ is @2017-01-01@+    -- and @end@ is @2017-05-01@, then the cost and usage data is retrieved+    -- from @2017-01-01@ up to and including @2017-04-30@ but not including+    -- @2017-05-01@. The start date must be equal to or later than the current+    -- date to avoid a validation error.+    timePeriod :: DateInterval,+    -- | Which metric Cost Explorer uses to create your forecast.+    --+    -- Valid values for a @GetUsageForecast@ call are the following:+    --+    -- -   USAGE_QUANTITY+    --+    -- -   NORMALIZED_USAGE_AMOUNT+    metric :: Metric,+    -- | How granular you want the forecast to be. You can get 3 months of+    -- @DAILY@ forecasts or 12 months of @MONTHLY@ forecasts.+    --+    -- The @GetUsageForecast@ operation supports only @DAILY@ and @MONTHLY@+    -- granularities.+    granularity :: Granularity+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetUsageForecast' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'filter'', 'getUsageForecast_filter' - The filters that you want to use to filter your forecast. The+-- @GetUsageForecast@ API supports filtering by the following dimensions:+--+-- -   @AZ@+--+-- -   @INSTANCE_TYPE@+--+-- -   @LINKED_ACCOUNT@+--+-- -   @LINKED_ACCOUNT_NAME@+--+-- -   @OPERATION@+--+-- -   @PURCHASE_TYPE@+--+-- -   @REGION@+--+-- -   @SERVICE@+--+-- -   @USAGE_TYPE@+--+-- -   @USAGE_TYPE_GROUP@+--+-- -   @RECORD_TYPE@+--+-- -   @OPERATING_SYSTEM@+--+-- -   @TENANCY@+--+-- -   @SCOPE@+--+-- -   @PLATFORM@+--+-- -   @SUBSCRIPTION_ID@+--+-- -   @LEGAL_ENTITY_NAME@+--+-- -   @DEPLOYMENT_OPTION@+--+-- -   @DATABASE_ENGINE@+--+-- -   @INSTANCE_TYPE_FAMILY@+--+-- -   @BILLING_ENTITY@+--+-- -   @RESERVATION_ID@+--+-- -   @SAVINGS_PLAN_ARN@+--+-- 'predictionIntervalLevel', 'getUsageForecast_predictionIntervalLevel' - Amazon Web Services Cost Explorer always returns the mean forecast as a+-- single point. You can request a prediction interval around the mean by+-- specifying a confidence level. The higher the confidence level, the more+-- confident Cost Explorer is about the actual value falling in the+-- prediction interval. Higher confidence levels result in wider prediction+-- intervals.+--+-- 'timePeriod', 'getUsageForecast_timePeriod' - The start and end dates of the period that you want to retrieve usage+-- forecast for. The start date is included in the period, but the end date+-- isn\'t included in the period. For example, if @start@ is @2017-01-01@+-- and @end@ is @2017-05-01@, then the cost and usage data is retrieved+-- from @2017-01-01@ up to and including @2017-04-30@ but not including+-- @2017-05-01@. The start date must be equal to or later than the current+-- date to avoid a validation error.+--+-- 'metric', 'getUsageForecast_metric' - Which metric Cost Explorer uses to create your forecast.+--+-- Valid values for a @GetUsageForecast@ call are the following:+--+-- -   USAGE_QUANTITY+--+-- -   NORMALIZED_USAGE_AMOUNT+--+-- 'granularity', 'getUsageForecast_granularity' - How granular you want the forecast to be. You can get 3 months of+-- @DAILY@ forecasts or 12 months of @MONTHLY@ forecasts.+--+-- The @GetUsageForecast@ operation supports only @DAILY@ and @MONTHLY@+-- granularities.+newGetUsageForecast ::+  -- | 'timePeriod'+  DateInterval ->+  -- | 'metric'+  Metric ->+  -- | 'granularity'+  Granularity ->+  GetUsageForecast+newGetUsageForecast+  pTimePeriod_+  pMetric_+  pGranularity_ =+    GetUsageForecast'+      { filter' = Prelude.Nothing,+        predictionIntervalLevel = Prelude.Nothing,+        timePeriod = pTimePeriod_,+        metric = pMetric_,+        granularity = pGranularity_+      }++-- | The filters that you want to use to filter your forecast. The+-- @GetUsageForecast@ API supports filtering by the following dimensions:+--+-- -   @AZ@+--+-- -   @INSTANCE_TYPE@+--+-- -   @LINKED_ACCOUNT@+--+-- -   @LINKED_ACCOUNT_NAME@+--+-- -   @OPERATION@+--+-- -   @PURCHASE_TYPE@+--+-- -   @REGION@+--+-- -   @SERVICE@+--+-- -   @USAGE_TYPE@+--+-- -   @USAGE_TYPE_GROUP@+--+-- -   @RECORD_TYPE@+--+-- -   @OPERATING_SYSTEM@+--+-- -   @TENANCY@+--+-- -   @SCOPE@+--+-- -   @PLATFORM@+--+-- -   @SUBSCRIPTION_ID@+--+-- -   @LEGAL_ENTITY_NAME@+--+-- -   @DEPLOYMENT_OPTION@+--+-- -   @DATABASE_ENGINE@+--+-- -   @INSTANCE_TYPE_FAMILY@+--+-- -   @BILLING_ENTITY@+--+-- -   @RESERVATION_ID@+--+-- -   @SAVINGS_PLAN_ARN@+getUsageForecast_filter :: Lens.Lens' GetUsageForecast (Prelude.Maybe Expression)+getUsageForecast_filter = Lens.lens (\GetUsageForecast' {filter'} -> filter') (\s@GetUsageForecast' {} a -> s {filter' = a} :: GetUsageForecast)++-- | Amazon Web Services Cost Explorer always returns the mean forecast as a+-- single point. You can request a prediction interval around the mean by+-- specifying a confidence level. The higher the confidence level, the more+-- confident Cost Explorer is about the actual value falling in the+-- prediction interval. Higher confidence levels result in wider prediction+-- intervals.+getUsageForecast_predictionIntervalLevel :: Lens.Lens' GetUsageForecast (Prelude.Maybe Prelude.Natural)+getUsageForecast_predictionIntervalLevel = Lens.lens (\GetUsageForecast' {predictionIntervalLevel} -> predictionIntervalLevel) (\s@GetUsageForecast' {} a -> s {predictionIntervalLevel = a} :: GetUsageForecast)++-- | The start and end dates of the period that you want to retrieve usage+-- forecast for. The start date is included in the period, but the end date+-- isn\'t included in the period. For example, if @start@ is @2017-01-01@+-- and @end@ is @2017-05-01@, then the cost and usage data is retrieved+-- from @2017-01-01@ up to and including @2017-04-30@ but not including+-- @2017-05-01@. The start date must be equal to or later than the current+-- date to avoid a validation error.+getUsageForecast_timePeriod :: Lens.Lens' GetUsageForecast DateInterval+getUsageForecast_timePeriod = Lens.lens (\GetUsageForecast' {timePeriod} -> timePeriod) (\s@GetUsageForecast' {} a -> s {timePeriod = a} :: GetUsageForecast)++-- | Which metric Cost Explorer uses to create your forecast.+--+-- Valid values for a @GetUsageForecast@ call are the following:+--+-- -   USAGE_QUANTITY+--+-- -   NORMALIZED_USAGE_AMOUNT+getUsageForecast_metric :: Lens.Lens' GetUsageForecast Metric+getUsageForecast_metric = Lens.lens (\GetUsageForecast' {metric} -> metric) (\s@GetUsageForecast' {} a -> s {metric = a} :: GetUsageForecast)++-- | How granular you want the forecast to be. You can get 3 months of+-- @DAILY@ forecasts or 12 months of @MONTHLY@ forecasts.+--+-- The @GetUsageForecast@ operation supports only @DAILY@ and @MONTHLY@+-- granularities.+getUsageForecast_granularity :: Lens.Lens' GetUsageForecast Granularity+getUsageForecast_granularity = Lens.lens (\GetUsageForecast' {granularity} -> granularity) (\s@GetUsageForecast' {} a -> s {granularity = a} :: GetUsageForecast)++instance Core.AWSRequest GetUsageForecast where+  type+    AWSResponse GetUsageForecast =+      GetUsageForecastResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          GetUsageForecastResponse'+            Prelude.<$> ( x+                            Data..?> "ForecastResultsByTime"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "Total")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable GetUsageForecast where+  hashWithSalt _salt GetUsageForecast' {..} =+    _salt+      `Prelude.hashWithSalt` filter'+      `Prelude.hashWithSalt` predictionIntervalLevel+      `Prelude.hashWithSalt` timePeriod+      `Prelude.hashWithSalt` metric+      `Prelude.hashWithSalt` granularity++instance Prelude.NFData GetUsageForecast where+  rnf GetUsageForecast' {..} =+    Prelude.rnf filter'+      `Prelude.seq` Prelude.rnf predictionIntervalLevel+      `Prelude.seq` Prelude.rnf timePeriod+      `Prelude.seq` Prelude.rnf metric+      `Prelude.seq` Prelude.rnf granularity++instance Data.ToHeaders GetUsageForecast where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSInsightsIndexService.GetUsageForecast" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON GetUsageForecast where+  toJSON GetUsageForecast' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Filter" Data..=) Prelude.<$> filter',+            ("PredictionIntervalLevel" Data..=)+              Prelude.<$> predictionIntervalLevel,+            Prelude.Just ("TimePeriod" Data..= timePeriod),+            Prelude.Just ("Metric" Data..= metric),+            Prelude.Just ("Granularity" Data..= granularity)+          ]+      )++instance Data.ToPath GetUsageForecast where+  toPath = Prelude.const "/"++instance Data.ToQuery GetUsageForecast where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetUsageForecastResponse' smart constructor.+data GetUsageForecastResponse = GetUsageForecastResponse'+  { -- | The forecasts for your query, in order. For @DAILY@ forecasts, this is a+    -- list of days. For @MONTHLY@ forecasts, this is a list of months.+    forecastResultsByTime :: Prelude.Maybe [ForecastResult],+    -- | How much you\'re forecasted to use over the forecast period.+    total :: Prelude.Maybe MetricValue,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetUsageForecastResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'forecastResultsByTime', 'getUsageForecastResponse_forecastResultsByTime' - The forecasts for your query, in order. For @DAILY@ forecasts, this is a+-- list of days. For @MONTHLY@ forecasts, this is a list of months.+--+-- 'total', 'getUsageForecastResponse_total' - How much you\'re forecasted to use over the forecast period.+--+-- 'httpStatus', 'getUsageForecastResponse_httpStatus' - The response's http status code.+newGetUsageForecastResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  GetUsageForecastResponse+newGetUsageForecastResponse pHttpStatus_ =+  GetUsageForecastResponse'+    { forecastResultsByTime =+        Prelude.Nothing,+      total = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The forecasts for your query, in order. For @DAILY@ forecasts, this is a+-- list of days. For @MONTHLY@ forecasts, this is a list of months.+getUsageForecastResponse_forecastResultsByTime :: Lens.Lens' GetUsageForecastResponse (Prelude.Maybe [ForecastResult])+getUsageForecastResponse_forecastResultsByTime = Lens.lens (\GetUsageForecastResponse' {forecastResultsByTime} -> forecastResultsByTime) (\s@GetUsageForecastResponse' {} a -> s {forecastResultsByTime = a} :: GetUsageForecastResponse) Prelude.. Lens.mapping Lens.coerced++-- | How much you\'re forecasted to use over the forecast period.+getUsageForecastResponse_total :: Lens.Lens' GetUsageForecastResponse (Prelude.Maybe MetricValue)+getUsageForecastResponse_total = Lens.lens (\GetUsageForecastResponse' {total} -> total) (\s@GetUsageForecastResponse' {} a -> s {total = a} :: GetUsageForecastResponse)++-- | The response's http status code.+getUsageForecastResponse_httpStatus :: Lens.Lens' GetUsageForecastResponse Prelude.Int+getUsageForecastResponse_httpStatus = Lens.lens (\GetUsageForecastResponse' {httpStatus} -> httpStatus) (\s@GetUsageForecastResponse' {} a -> s {httpStatus = a} :: GetUsageForecastResponse)++instance Prelude.NFData GetUsageForecastResponse where+  rnf GetUsageForecastResponse' {..} =+    Prelude.rnf forecastResultsByTime+      `Prelude.seq` Prelude.rnf total+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/CostExplorer/Lens.hs view
@@ -0,0 +1,1030 @@+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Lens+-- 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.CostExplorer.Lens+  ( -- * Operations++    -- ** CreateAnomalyMonitor+    createAnomalyMonitor_resourceTags,+    createAnomalyMonitor_anomalyMonitor,+    createAnomalyMonitorResponse_httpStatus,+    createAnomalyMonitorResponse_monitorArn,++    -- ** CreateAnomalySubscription+    createAnomalySubscription_resourceTags,+    createAnomalySubscription_anomalySubscription,+    createAnomalySubscriptionResponse_httpStatus,+    createAnomalySubscriptionResponse_subscriptionArn,++    -- ** CreateCostCategoryDefinition+    createCostCategoryDefinition_defaultValue,+    createCostCategoryDefinition_effectiveStart,+    createCostCategoryDefinition_resourceTags,+    createCostCategoryDefinition_splitChargeRules,+    createCostCategoryDefinition_name,+    createCostCategoryDefinition_ruleVersion,+    createCostCategoryDefinition_rules,+    createCostCategoryDefinitionResponse_costCategoryArn,+    createCostCategoryDefinitionResponse_effectiveStart,+    createCostCategoryDefinitionResponse_httpStatus,++    -- ** DeleteAnomalyMonitor+    deleteAnomalyMonitor_monitorArn,+    deleteAnomalyMonitorResponse_httpStatus,++    -- ** DeleteAnomalySubscription+    deleteAnomalySubscription_subscriptionArn,+    deleteAnomalySubscriptionResponse_httpStatus,++    -- ** DeleteCostCategoryDefinition+    deleteCostCategoryDefinition_costCategoryArn,+    deleteCostCategoryDefinitionResponse_costCategoryArn,+    deleteCostCategoryDefinitionResponse_effectiveEnd,+    deleteCostCategoryDefinitionResponse_httpStatus,++    -- ** DescribeCostCategoryDefinition+    describeCostCategoryDefinition_effectiveOn,+    describeCostCategoryDefinition_costCategoryArn,+    describeCostCategoryDefinitionResponse_costCategory,+    describeCostCategoryDefinitionResponse_httpStatus,++    -- ** GetAnomalies+    getAnomalies_feedback,+    getAnomalies_maxResults,+    getAnomalies_monitorArn,+    getAnomalies_nextPageToken,+    getAnomalies_totalImpact,+    getAnomalies_dateInterval,+    getAnomaliesResponse_nextPageToken,+    getAnomaliesResponse_httpStatus,+    getAnomaliesResponse_anomalies,++    -- ** GetAnomalyMonitors+    getAnomalyMonitors_maxResults,+    getAnomalyMonitors_monitorArnList,+    getAnomalyMonitors_nextPageToken,+    getAnomalyMonitorsResponse_nextPageToken,+    getAnomalyMonitorsResponse_httpStatus,+    getAnomalyMonitorsResponse_anomalyMonitors,++    -- ** GetAnomalySubscriptions+    getAnomalySubscriptions_maxResults,+    getAnomalySubscriptions_monitorArn,+    getAnomalySubscriptions_nextPageToken,+    getAnomalySubscriptions_subscriptionArnList,+    getAnomalySubscriptionsResponse_nextPageToken,+    getAnomalySubscriptionsResponse_httpStatus,+    getAnomalySubscriptionsResponse_anomalySubscriptions,++    -- ** GetCostAndUsage+    getCostAndUsage_filter,+    getCostAndUsage_groupBy,+    getCostAndUsage_nextPageToken,+    getCostAndUsage_timePeriod,+    getCostAndUsage_granularity,+    getCostAndUsage_metrics,+    getCostAndUsageResponse_dimensionValueAttributes,+    getCostAndUsageResponse_groupDefinitions,+    getCostAndUsageResponse_nextPageToken,+    getCostAndUsageResponse_resultsByTime,+    getCostAndUsageResponse_httpStatus,++    -- ** GetCostAndUsageWithResources+    getCostAndUsageWithResources_groupBy,+    getCostAndUsageWithResources_metrics,+    getCostAndUsageWithResources_nextPageToken,+    getCostAndUsageWithResources_timePeriod,+    getCostAndUsageWithResources_granularity,+    getCostAndUsageWithResources_filter,+    getCostAndUsageWithResourcesResponse_dimensionValueAttributes,+    getCostAndUsageWithResourcesResponse_groupDefinitions,+    getCostAndUsageWithResourcesResponse_nextPageToken,+    getCostAndUsageWithResourcesResponse_resultsByTime,+    getCostAndUsageWithResourcesResponse_httpStatus,++    -- ** GetCostCategories+    getCostCategories_costCategoryName,+    getCostCategories_filter,+    getCostCategories_maxResults,+    getCostCategories_nextPageToken,+    getCostCategories_searchString,+    getCostCategories_sortBy,+    getCostCategories_timePeriod,+    getCostCategoriesResponse_costCategoryNames,+    getCostCategoriesResponse_costCategoryValues,+    getCostCategoriesResponse_nextPageToken,+    getCostCategoriesResponse_httpStatus,+    getCostCategoriesResponse_returnSize,+    getCostCategoriesResponse_totalSize,++    -- ** GetCostForecast+    getCostForecast_filter,+    getCostForecast_predictionIntervalLevel,+    getCostForecast_timePeriod,+    getCostForecast_metric,+    getCostForecast_granularity,+    getCostForecastResponse_forecastResultsByTime,+    getCostForecastResponse_total,+    getCostForecastResponse_httpStatus,++    -- ** GetDimensionValues+    getDimensionValues_context,+    getDimensionValues_filter,+    getDimensionValues_maxResults,+    getDimensionValues_nextPageToken,+    getDimensionValues_searchString,+    getDimensionValues_sortBy,+    getDimensionValues_timePeriod,+    getDimensionValues_dimension,+    getDimensionValuesResponse_nextPageToken,+    getDimensionValuesResponse_httpStatus,+    getDimensionValuesResponse_dimensionValues,+    getDimensionValuesResponse_returnSize,+    getDimensionValuesResponse_totalSize,++    -- ** GetReservationCoverage+    getReservationCoverage_filter,+    getReservationCoverage_granularity,+    getReservationCoverage_groupBy,+    getReservationCoverage_maxResults,+    getReservationCoverage_metrics,+    getReservationCoverage_nextPageToken,+    getReservationCoverage_sortBy,+    getReservationCoverage_timePeriod,+    getReservationCoverageResponse_nextPageToken,+    getReservationCoverageResponse_total,+    getReservationCoverageResponse_httpStatus,+    getReservationCoverageResponse_coveragesByTime,++    -- ** GetReservationPurchaseRecommendation+    getReservationPurchaseRecommendation_accountId,+    getReservationPurchaseRecommendation_accountScope,+    getReservationPurchaseRecommendation_filter,+    getReservationPurchaseRecommendation_lookbackPeriodInDays,+    getReservationPurchaseRecommendation_nextPageToken,+    getReservationPurchaseRecommendation_pageSize,+    getReservationPurchaseRecommendation_paymentOption,+    getReservationPurchaseRecommendation_serviceSpecification,+    getReservationPurchaseRecommendation_termInYears,+    getReservationPurchaseRecommendation_service,+    getReservationPurchaseRecommendationResponse_metadata,+    getReservationPurchaseRecommendationResponse_nextPageToken,+    getReservationPurchaseRecommendationResponse_recommendations,+    getReservationPurchaseRecommendationResponse_httpStatus,++    -- ** GetReservationUtilization+    getReservationUtilization_filter,+    getReservationUtilization_granularity,+    getReservationUtilization_groupBy,+    getReservationUtilization_maxResults,+    getReservationUtilization_nextPageToken,+    getReservationUtilization_sortBy,+    getReservationUtilization_timePeriod,+    getReservationUtilizationResponse_nextPageToken,+    getReservationUtilizationResponse_total,+    getReservationUtilizationResponse_httpStatus,+    getReservationUtilizationResponse_utilizationsByTime,++    -- ** GetRightsizingRecommendation+    getRightsizingRecommendation_configuration,+    getRightsizingRecommendation_filter,+    getRightsizingRecommendation_nextPageToken,+    getRightsizingRecommendation_pageSize,+    getRightsizingRecommendation_service,+    getRightsizingRecommendationResponse_configuration,+    getRightsizingRecommendationResponse_metadata,+    getRightsizingRecommendationResponse_nextPageToken,+    getRightsizingRecommendationResponse_rightsizingRecommendations,+    getRightsizingRecommendationResponse_summary,+    getRightsizingRecommendationResponse_httpStatus,++    -- ** GetSavingsPlansCoverage+    getSavingsPlansCoverage_filter,+    getSavingsPlansCoverage_granularity,+    getSavingsPlansCoverage_groupBy,+    getSavingsPlansCoverage_maxResults,+    getSavingsPlansCoverage_metrics,+    getSavingsPlansCoverage_nextToken,+    getSavingsPlansCoverage_sortBy,+    getSavingsPlansCoverage_timePeriod,+    getSavingsPlansCoverageResponse_nextToken,+    getSavingsPlansCoverageResponse_httpStatus,+    getSavingsPlansCoverageResponse_savingsPlansCoverages,++    -- ** GetSavingsPlansPurchaseRecommendation+    getSavingsPlansPurchaseRecommendation_accountScope,+    getSavingsPlansPurchaseRecommendation_filter,+    getSavingsPlansPurchaseRecommendation_nextPageToken,+    getSavingsPlansPurchaseRecommendation_pageSize,+    getSavingsPlansPurchaseRecommendation_savingsPlansType,+    getSavingsPlansPurchaseRecommendation_termInYears,+    getSavingsPlansPurchaseRecommendation_paymentOption,+    getSavingsPlansPurchaseRecommendation_lookbackPeriodInDays,+    getSavingsPlansPurchaseRecommendationResponse_metadata,+    getSavingsPlansPurchaseRecommendationResponse_nextPageToken,+    getSavingsPlansPurchaseRecommendationResponse_savingsPlansPurchaseRecommendation,+    getSavingsPlansPurchaseRecommendationResponse_httpStatus,++    -- ** GetSavingsPlansUtilization+    getSavingsPlansUtilization_filter,+    getSavingsPlansUtilization_granularity,+    getSavingsPlansUtilization_sortBy,+    getSavingsPlansUtilization_timePeriod,+    getSavingsPlansUtilizationResponse_savingsPlansUtilizationsByTime,+    getSavingsPlansUtilizationResponse_httpStatus,+    getSavingsPlansUtilizationResponse_total,++    -- ** GetSavingsPlansUtilizationDetails+    getSavingsPlansUtilizationDetails_dataType,+    getSavingsPlansUtilizationDetails_filter,+    getSavingsPlansUtilizationDetails_maxResults,+    getSavingsPlansUtilizationDetails_nextToken,+    getSavingsPlansUtilizationDetails_sortBy,+    getSavingsPlansUtilizationDetails_timePeriod,+    getSavingsPlansUtilizationDetailsResponse_nextToken,+    getSavingsPlansUtilizationDetailsResponse_total,+    getSavingsPlansUtilizationDetailsResponse_httpStatus,+    getSavingsPlansUtilizationDetailsResponse_savingsPlansUtilizationDetails,+    getSavingsPlansUtilizationDetailsResponse_timePeriod,++    -- ** GetTags+    getTags_filter,+    getTags_maxResults,+    getTags_nextPageToken,+    getTags_searchString,+    getTags_sortBy,+    getTags_tagKey,+    getTags_timePeriod,+    getTagsResponse_nextPageToken,+    getTagsResponse_httpStatus,+    getTagsResponse_tags,+    getTagsResponse_returnSize,+    getTagsResponse_totalSize,++    -- ** GetUsageForecast+    getUsageForecast_filter,+    getUsageForecast_predictionIntervalLevel,+    getUsageForecast_timePeriod,+    getUsageForecast_metric,+    getUsageForecast_granularity,+    getUsageForecastResponse_forecastResultsByTime,+    getUsageForecastResponse_total,+    getUsageForecastResponse_httpStatus,++    -- ** ListCostAllocationTags+    listCostAllocationTags_maxResults,+    listCostAllocationTags_nextToken,+    listCostAllocationTags_status,+    listCostAllocationTags_tagKeys,+    listCostAllocationTags_type,+    listCostAllocationTagsResponse_costAllocationTags,+    listCostAllocationTagsResponse_nextToken,+    listCostAllocationTagsResponse_httpStatus,++    -- ** ListCostCategoryDefinitions+    listCostCategoryDefinitions_effectiveOn,+    listCostCategoryDefinitions_maxResults,+    listCostCategoryDefinitions_nextToken,+    listCostCategoryDefinitionsResponse_costCategoryReferences,+    listCostCategoryDefinitionsResponse_nextToken,+    listCostCategoryDefinitionsResponse_httpStatus,++    -- ** ListSavingsPlansPurchaseRecommendationGeneration+    listSavingsPlansPurchaseRecommendationGeneration_generationStatus,+    listSavingsPlansPurchaseRecommendationGeneration_nextPageToken,+    listSavingsPlansPurchaseRecommendationGeneration_pageSize,+    listSavingsPlansPurchaseRecommendationGeneration_recommendationIds,+    listSavingsPlansPurchaseRecommendationGenerationResponse_generationSummaryList,+    listSavingsPlansPurchaseRecommendationGenerationResponse_nextPageToken,+    listSavingsPlansPurchaseRecommendationGenerationResponse_httpStatus,++    -- ** ListTagsForResource+    listTagsForResource_resourceArn,+    listTagsForResourceResponse_resourceTags,+    listTagsForResourceResponse_httpStatus,++    -- ** ProvideAnomalyFeedback+    provideAnomalyFeedback_anomalyId,+    provideAnomalyFeedback_feedback,+    provideAnomalyFeedbackResponse_httpStatus,+    provideAnomalyFeedbackResponse_anomalyId,++    -- ** StartSavingsPlansPurchaseRecommendationGeneration+    startSavingsPlansPurchaseRecommendationGenerationResponse_estimatedCompletionTime,+    startSavingsPlansPurchaseRecommendationGenerationResponse_generationStartedTime,+    startSavingsPlansPurchaseRecommendationGenerationResponse_recommendationId,+    startSavingsPlansPurchaseRecommendationGenerationResponse_httpStatus,++    -- ** TagResource+    tagResource_resourceArn,+    tagResource_resourceTags,+    tagResourceResponse_httpStatus,++    -- ** UntagResource+    untagResource_resourceArn,+    untagResource_resourceTagKeys,+    untagResourceResponse_httpStatus,++    -- ** UpdateAnomalyMonitor+    updateAnomalyMonitor_monitorName,+    updateAnomalyMonitor_monitorArn,+    updateAnomalyMonitorResponse_httpStatus,+    updateAnomalyMonitorResponse_monitorArn,++    -- ** UpdateAnomalySubscription+    updateAnomalySubscription_frequency,+    updateAnomalySubscription_monitorArnList,+    updateAnomalySubscription_subscribers,+    updateAnomalySubscription_subscriptionName,+    updateAnomalySubscription_threshold,+    updateAnomalySubscription_thresholdExpression,+    updateAnomalySubscription_subscriptionArn,+    updateAnomalySubscriptionResponse_httpStatus,+    updateAnomalySubscriptionResponse_subscriptionArn,++    -- ** UpdateCostAllocationTagsStatus+    updateCostAllocationTagsStatus_costAllocationTagsStatus,+    updateCostAllocationTagsStatusResponse_errors,+    updateCostAllocationTagsStatusResponse_httpStatus,++    -- ** UpdateCostCategoryDefinition+    updateCostCategoryDefinition_defaultValue,+    updateCostCategoryDefinition_effectiveStart,+    updateCostCategoryDefinition_splitChargeRules,+    updateCostCategoryDefinition_costCategoryArn,+    updateCostCategoryDefinition_ruleVersion,+    updateCostCategoryDefinition_rules,+    updateCostCategoryDefinitionResponse_costCategoryArn,+    updateCostCategoryDefinitionResponse_effectiveStart,+    updateCostCategoryDefinitionResponse_httpStatus,++    -- * Types++    -- ** Anomaly+    anomaly_anomalyEndDate,+    anomaly_anomalyStartDate,+    anomaly_dimensionValue,+    anomaly_feedback,+    anomaly_rootCauses,+    anomaly_anomalyId,+    anomaly_anomalyScore,+    anomaly_impact,+    anomaly_monitorArn,++    -- ** AnomalyDateInterval+    anomalyDateInterval_endDate,+    anomalyDateInterval_startDate,++    -- ** AnomalyMonitor+    anomalyMonitor_creationDate,+    anomalyMonitor_dimensionalValueCount,+    anomalyMonitor_lastEvaluatedDate,+    anomalyMonitor_lastUpdatedDate,+    anomalyMonitor_monitorArn,+    anomalyMonitor_monitorDimension,+    anomalyMonitor_monitorSpecification,+    anomalyMonitor_monitorName,+    anomalyMonitor_monitorType,++    -- ** AnomalyScore+    anomalyScore_maxScore,+    anomalyScore_currentScore,++    -- ** AnomalySubscription+    anomalySubscription_accountId,+    anomalySubscription_subscriptionArn,+    anomalySubscription_threshold,+    anomalySubscription_thresholdExpression,+    anomalySubscription_monitorArnList,+    anomalySubscription_subscribers,+    anomalySubscription_frequency,+    anomalySubscription_subscriptionName,++    -- ** CostAllocationTag+    costAllocationTag_tagKey,+    costAllocationTag_type,+    costAllocationTag_status,++    -- ** CostAllocationTagStatusEntry+    costAllocationTagStatusEntry_tagKey,+    costAllocationTagStatusEntry_status,++    -- ** CostCategory+    costCategory_defaultValue,+    costCategory_effectiveEnd,+    costCategory_processingStatus,+    costCategory_splitChargeRules,+    costCategory_costCategoryArn,+    costCategory_effectiveStart,+    costCategory_name,+    costCategory_ruleVersion,+    costCategory_rules,++    -- ** CostCategoryInheritedValueDimension+    costCategoryInheritedValueDimension_dimensionKey,+    costCategoryInheritedValueDimension_dimensionName,++    -- ** CostCategoryProcessingStatus+    costCategoryProcessingStatus_component,+    costCategoryProcessingStatus_status,++    -- ** CostCategoryReference+    costCategoryReference_costCategoryArn,+    costCategoryReference_defaultValue,+    costCategoryReference_effectiveEnd,+    costCategoryReference_effectiveStart,+    costCategoryReference_name,+    costCategoryReference_numberOfRules,+    costCategoryReference_processingStatus,+    costCategoryReference_values,++    -- ** CostCategoryRule+    costCategoryRule_inheritedValue,+    costCategoryRule_rule,+    costCategoryRule_type,+    costCategoryRule_value,++    -- ** CostCategorySplitChargeRule+    costCategorySplitChargeRule_parameters,+    costCategorySplitChargeRule_source,+    costCategorySplitChargeRule_targets,+    costCategorySplitChargeRule_method,++    -- ** CostCategorySplitChargeRuleParameter+    costCategorySplitChargeRuleParameter_type,+    costCategorySplitChargeRuleParameter_values,++    -- ** CostCategoryValues+    costCategoryValues_key,+    costCategoryValues_matchOptions,+    costCategoryValues_values,++    -- ** Coverage+    coverage_coverageCost,+    coverage_coverageHours,+    coverage_coverageNormalizedUnits,++    -- ** CoverageByTime+    coverageByTime_groups,+    coverageByTime_timePeriod,+    coverageByTime_total,++    -- ** CoverageCost+    coverageCost_onDemandCost,++    -- ** CoverageHours+    coverageHours_coverageHoursPercentage,+    coverageHours_onDemandHours,+    coverageHours_reservedHours,+    coverageHours_totalRunningHours,++    -- ** CoverageNormalizedUnits+    coverageNormalizedUnits_coverageNormalizedUnitsPercentage,+    coverageNormalizedUnits_onDemandNormalizedUnits,+    coverageNormalizedUnits_reservedNormalizedUnits,+    coverageNormalizedUnits_totalRunningNormalizedUnits,++    -- ** CurrentInstance+    currentInstance_currencyCode,+    currentInstance_instanceName,+    currentInstance_monthlyCost,+    currentInstance_onDemandHoursInLookbackPeriod,+    currentInstance_reservationCoveredHoursInLookbackPeriod,+    currentInstance_resourceDetails,+    currentInstance_resourceId,+    currentInstance_resourceUtilization,+    currentInstance_savingsPlansCoveredHoursInLookbackPeriod,+    currentInstance_tags,+    currentInstance_totalRunningHoursInLookbackPeriod,++    -- ** DateInterval+    dateInterval_start,+    dateInterval_end,++    -- ** DimensionValues+    dimensionValues_key,+    dimensionValues_matchOptions,+    dimensionValues_values,++    -- ** DimensionValuesWithAttributes+    dimensionValuesWithAttributes_attributes,+    dimensionValuesWithAttributes_value,++    -- ** DiskResourceUtilization+    diskResourceUtilization_diskReadBytesPerSecond,+    diskResourceUtilization_diskReadOpsPerSecond,+    diskResourceUtilization_diskWriteBytesPerSecond,+    diskResourceUtilization_diskWriteOpsPerSecond,++    -- ** EBSResourceUtilization+    eBSResourceUtilization_ebsReadBytesPerSecond,+    eBSResourceUtilization_ebsReadOpsPerSecond,+    eBSResourceUtilization_ebsWriteBytesPerSecond,+    eBSResourceUtilization_ebsWriteOpsPerSecond,++    -- ** EC2InstanceDetails+    eC2InstanceDetails_availabilityZone,+    eC2InstanceDetails_currentGeneration,+    eC2InstanceDetails_family,+    eC2InstanceDetails_instanceType,+    eC2InstanceDetails_platform,+    eC2InstanceDetails_region,+    eC2InstanceDetails_sizeFlexEligible,+    eC2InstanceDetails_tenancy,++    -- ** EC2ResourceDetails+    eC2ResourceDetails_hourlyOnDemandRate,+    eC2ResourceDetails_instanceType,+    eC2ResourceDetails_memory,+    eC2ResourceDetails_networkPerformance,+    eC2ResourceDetails_platform,+    eC2ResourceDetails_region,+    eC2ResourceDetails_sku,+    eC2ResourceDetails_storage,+    eC2ResourceDetails_vcpu,++    -- ** EC2ResourceUtilization+    eC2ResourceUtilization_diskResourceUtilization,+    eC2ResourceUtilization_eBSResourceUtilization,+    eC2ResourceUtilization_maxCpuUtilizationPercentage,+    eC2ResourceUtilization_maxMemoryUtilizationPercentage,+    eC2ResourceUtilization_maxStorageUtilizationPercentage,+    eC2ResourceUtilization_networkResourceUtilization,++    -- ** EC2Specification+    eC2Specification_offeringClass,++    -- ** ESInstanceDetails+    eSInstanceDetails_currentGeneration,+    eSInstanceDetails_instanceClass,+    eSInstanceDetails_instanceSize,+    eSInstanceDetails_region,+    eSInstanceDetails_sizeFlexEligible,++    -- ** ElastiCacheInstanceDetails+    elastiCacheInstanceDetails_currentGeneration,+    elastiCacheInstanceDetails_family,+    elastiCacheInstanceDetails_nodeType,+    elastiCacheInstanceDetails_productDescription,+    elastiCacheInstanceDetails_region,+    elastiCacheInstanceDetails_sizeFlexEligible,++    -- ** Expression+    expression_and,+    expression_costCategories,+    expression_dimensions,+    expression_not,+    expression_or,+    expression_tags,++    -- ** ForecastResult+    forecastResult_meanValue,+    forecastResult_predictionIntervalLowerBound,+    forecastResult_predictionIntervalUpperBound,+    forecastResult_timePeriod,++    -- ** GenerationSummary+    generationSummary_estimatedCompletionTime,+    generationSummary_generationCompletionTime,+    generationSummary_generationStartedTime,+    generationSummary_generationStatus,+    generationSummary_recommendationId,++    -- ** Group+    group_keys,+    group_metrics,++    -- ** GroupDefinition+    groupDefinition_key,+    groupDefinition_type,++    -- ** Impact+    impact_totalActualSpend,+    impact_totalExpectedSpend,+    impact_totalImpact,+    impact_totalImpactPercentage,+    impact_maxImpact,++    -- ** InstanceDetails+    instanceDetails_eC2InstanceDetails,+    instanceDetails_eSInstanceDetails,+    instanceDetails_elastiCacheInstanceDetails,+    instanceDetails_rDSInstanceDetails,+    instanceDetails_redshiftInstanceDetails,++    -- ** MetricValue+    metricValue_amount,+    metricValue_unit,++    -- ** ModifyRecommendationDetail+    modifyRecommendationDetail_targetInstances,++    -- ** NetworkResourceUtilization+    networkResourceUtilization_networkInBytesPerSecond,+    networkResourceUtilization_networkOutBytesPerSecond,+    networkResourceUtilization_networkPacketsInPerSecond,+    networkResourceUtilization_networkPacketsOutPerSecond,++    -- ** RDSInstanceDetails+    rDSInstanceDetails_currentGeneration,+    rDSInstanceDetails_databaseEdition,+    rDSInstanceDetails_databaseEngine,+    rDSInstanceDetails_deploymentOption,+    rDSInstanceDetails_family,+    rDSInstanceDetails_instanceType,+    rDSInstanceDetails_licenseModel,+    rDSInstanceDetails_region,+    rDSInstanceDetails_sizeFlexEligible,++    -- ** RedshiftInstanceDetails+    redshiftInstanceDetails_currentGeneration,+    redshiftInstanceDetails_family,+    redshiftInstanceDetails_nodeType,+    redshiftInstanceDetails_region,+    redshiftInstanceDetails_sizeFlexEligible,++    -- ** ReservationAggregates+    reservationAggregates_amortizedRecurringFee,+    reservationAggregates_amortizedUpfrontFee,+    reservationAggregates_netRISavings,+    reservationAggregates_onDemandCostOfRIHoursUsed,+    reservationAggregates_purchasedHours,+    reservationAggregates_purchasedUnits,+    reservationAggregates_rICostForUnusedHours,+    reservationAggregates_realizedSavings,+    reservationAggregates_totalActualHours,+    reservationAggregates_totalActualUnits,+    reservationAggregates_totalAmortizedFee,+    reservationAggregates_totalPotentialRISavings,+    reservationAggregates_unrealizedSavings,+    reservationAggregates_unusedHours,+    reservationAggregates_unusedUnits,+    reservationAggregates_utilizationPercentage,+    reservationAggregates_utilizationPercentageInUnits,++    -- ** ReservationCoverageGroup+    reservationCoverageGroup_attributes,+    reservationCoverageGroup_coverage,++    -- ** ReservationPurchaseRecommendation+    reservationPurchaseRecommendation_accountScope,+    reservationPurchaseRecommendation_lookbackPeriodInDays,+    reservationPurchaseRecommendation_paymentOption,+    reservationPurchaseRecommendation_recommendationDetails,+    reservationPurchaseRecommendation_recommendationSummary,+    reservationPurchaseRecommendation_serviceSpecification,+    reservationPurchaseRecommendation_termInYears,++    -- ** ReservationPurchaseRecommendationDetail+    reservationPurchaseRecommendationDetail_accountId,+    reservationPurchaseRecommendationDetail_averageNormalizedUnitsUsedPerHour,+    reservationPurchaseRecommendationDetail_averageNumberOfInstancesUsedPerHour,+    reservationPurchaseRecommendationDetail_averageUtilization,+    reservationPurchaseRecommendationDetail_currencyCode,+    reservationPurchaseRecommendationDetail_estimatedBreakEvenInMonths,+    reservationPurchaseRecommendationDetail_estimatedMonthlyOnDemandCost,+    reservationPurchaseRecommendationDetail_estimatedMonthlySavingsAmount,+    reservationPurchaseRecommendationDetail_estimatedMonthlySavingsPercentage,+    reservationPurchaseRecommendationDetail_estimatedReservationCostForLookbackPeriod,+    reservationPurchaseRecommendationDetail_instanceDetails,+    reservationPurchaseRecommendationDetail_maximumNormalizedUnitsUsedPerHour,+    reservationPurchaseRecommendationDetail_maximumNumberOfInstancesUsedPerHour,+    reservationPurchaseRecommendationDetail_minimumNormalizedUnitsUsedPerHour,+    reservationPurchaseRecommendationDetail_minimumNumberOfInstancesUsedPerHour,+    reservationPurchaseRecommendationDetail_recommendedNormalizedUnitsToPurchase,+    reservationPurchaseRecommendationDetail_recommendedNumberOfInstancesToPurchase,+    reservationPurchaseRecommendationDetail_recurringStandardMonthlyCost,+    reservationPurchaseRecommendationDetail_upfrontCost,++    -- ** ReservationPurchaseRecommendationMetadata+    reservationPurchaseRecommendationMetadata_generationTimestamp,+    reservationPurchaseRecommendationMetadata_recommendationId,++    -- ** ReservationPurchaseRecommendationSummary+    reservationPurchaseRecommendationSummary_currencyCode,+    reservationPurchaseRecommendationSummary_totalEstimatedMonthlySavingsAmount,+    reservationPurchaseRecommendationSummary_totalEstimatedMonthlySavingsPercentage,++    -- ** ReservationUtilizationGroup+    reservationUtilizationGroup_attributes,+    reservationUtilizationGroup_key,+    reservationUtilizationGroup_utilization,+    reservationUtilizationGroup_value,++    -- ** ResourceDetails+    resourceDetails_eC2ResourceDetails,++    -- ** ResourceTag+    resourceTag_key,+    resourceTag_value,++    -- ** ResourceUtilization+    resourceUtilization_eC2ResourceUtilization,++    -- ** ResultByTime+    resultByTime_estimated,+    resultByTime_groups,+    resultByTime_timePeriod,+    resultByTime_total,++    -- ** RightsizingRecommendation+    rightsizingRecommendation_accountId,+    rightsizingRecommendation_currentInstance,+    rightsizingRecommendation_findingReasonCodes,+    rightsizingRecommendation_modifyRecommendationDetail,+    rightsizingRecommendation_rightsizingType,+    rightsizingRecommendation_terminateRecommendationDetail,++    -- ** RightsizingRecommendationConfiguration+    rightsizingRecommendationConfiguration_recommendationTarget,+    rightsizingRecommendationConfiguration_benefitsConsidered,++    -- ** RightsizingRecommendationMetadata+    rightsizingRecommendationMetadata_additionalMetadata,+    rightsizingRecommendationMetadata_generationTimestamp,+    rightsizingRecommendationMetadata_lookbackPeriodInDays,+    rightsizingRecommendationMetadata_recommendationId,++    -- ** RightsizingRecommendationSummary+    rightsizingRecommendationSummary_estimatedTotalMonthlySavingsAmount,+    rightsizingRecommendationSummary_savingsCurrencyCode,+    rightsizingRecommendationSummary_savingsPercentage,+    rightsizingRecommendationSummary_totalRecommendationCount,++    -- ** RootCause+    rootCause_linkedAccount,+    rootCause_linkedAccountName,+    rootCause_region,+    rootCause_service,+    rootCause_usageType,++    -- ** SavingsPlansAmortizedCommitment+    savingsPlansAmortizedCommitment_amortizedRecurringCommitment,+    savingsPlansAmortizedCommitment_amortizedUpfrontCommitment,+    savingsPlansAmortizedCommitment_totalAmortizedCommitment,++    -- ** SavingsPlansCoverage+    savingsPlansCoverage_attributes,+    savingsPlansCoverage_coverage,+    savingsPlansCoverage_timePeriod,++    -- ** SavingsPlansCoverageData+    savingsPlansCoverageData_coveragePercentage,+    savingsPlansCoverageData_onDemandCost,+    savingsPlansCoverageData_spendCoveredBySavingsPlans,+    savingsPlansCoverageData_totalCost,++    -- ** SavingsPlansDetails+    savingsPlansDetails_instanceFamily,+    savingsPlansDetails_offeringId,+    savingsPlansDetails_region,++    -- ** SavingsPlansPurchaseRecommendation+    savingsPlansPurchaseRecommendation_accountScope,+    savingsPlansPurchaseRecommendation_lookbackPeriodInDays,+    savingsPlansPurchaseRecommendation_paymentOption,+    savingsPlansPurchaseRecommendation_savingsPlansPurchaseRecommendationDetails,+    savingsPlansPurchaseRecommendation_savingsPlansPurchaseRecommendationSummary,+    savingsPlansPurchaseRecommendation_savingsPlansType,+    savingsPlansPurchaseRecommendation_termInYears,++    -- ** SavingsPlansPurchaseRecommendationDetail+    savingsPlansPurchaseRecommendationDetail_accountId,+    savingsPlansPurchaseRecommendationDetail_currencyCode,+    savingsPlansPurchaseRecommendationDetail_currentAverageHourlyOnDemandSpend,+    savingsPlansPurchaseRecommendationDetail_currentMaximumHourlyOnDemandSpend,+    savingsPlansPurchaseRecommendationDetail_currentMinimumHourlyOnDemandSpend,+    savingsPlansPurchaseRecommendationDetail_estimatedAverageUtilization,+    savingsPlansPurchaseRecommendationDetail_estimatedMonthlySavingsAmount,+    savingsPlansPurchaseRecommendationDetail_estimatedOnDemandCost,+    savingsPlansPurchaseRecommendationDetail_estimatedOnDemandCostWithCurrentCommitment,+    savingsPlansPurchaseRecommendationDetail_estimatedROI,+    savingsPlansPurchaseRecommendationDetail_estimatedSPCost,+    savingsPlansPurchaseRecommendationDetail_estimatedSavingsAmount,+    savingsPlansPurchaseRecommendationDetail_estimatedSavingsPercentage,+    savingsPlansPurchaseRecommendationDetail_hourlyCommitmentToPurchase,+    savingsPlansPurchaseRecommendationDetail_savingsPlansDetails,+    savingsPlansPurchaseRecommendationDetail_upfrontCost,++    -- ** SavingsPlansPurchaseRecommendationMetadata+    savingsPlansPurchaseRecommendationMetadata_additionalMetadata,+    savingsPlansPurchaseRecommendationMetadata_generationTimestamp,+    savingsPlansPurchaseRecommendationMetadata_recommendationId,++    -- ** SavingsPlansPurchaseRecommendationSummary+    savingsPlansPurchaseRecommendationSummary_currencyCode,+    savingsPlansPurchaseRecommendationSummary_currentOnDemandSpend,+    savingsPlansPurchaseRecommendationSummary_dailyCommitmentToPurchase,+    savingsPlansPurchaseRecommendationSummary_estimatedMonthlySavingsAmount,+    savingsPlansPurchaseRecommendationSummary_estimatedOnDemandCostWithCurrentCommitment,+    savingsPlansPurchaseRecommendationSummary_estimatedROI,+    savingsPlansPurchaseRecommendationSummary_estimatedSavingsAmount,+    savingsPlansPurchaseRecommendationSummary_estimatedSavingsPercentage,+    savingsPlansPurchaseRecommendationSummary_estimatedTotalCost,+    savingsPlansPurchaseRecommendationSummary_hourlyCommitmentToPurchase,+    savingsPlansPurchaseRecommendationSummary_totalRecommendationCount,++    -- ** SavingsPlansSavings+    savingsPlansSavings_netSavings,+    savingsPlansSavings_onDemandCostEquivalent,++    -- ** SavingsPlansUtilization+    savingsPlansUtilization_totalCommitment,+    savingsPlansUtilization_unusedCommitment,+    savingsPlansUtilization_usedCommitment,+    savingsPlansUtilization_utilizationPercentage,++    -- ** SavingsPlansUtilizationAggregates+    savingsPlansUtilizationAggregates_amortizedCommitment,+    savingsPlansUtilizationAggregates_savings,+    savingsPlansUtilizationAggregates_utilization,++    -- ** SavingsPlansUtilizationByTime+    savingsPlansUtilizationByTime_amortizedCommitment,+    savingsPlansUtilizationByTime_savings,+    savingsPlansUtilizationByTime_timePeriod,+    savingsPlansUtilizationByTime_utilization,++    -- ** SavingsPlansUtilizationDetail+    savingsPlansUtilizationDetail_amortizedCommitment,+    savingsPlansUtilizationDetail_attributes,+    savingsPlansUtilizationDetail_savings,+    savingsPlansUtilizationDetail_savingsPlanArn,+    savingsPlansUtilizationDetail_utilization,++    -- ** ServiceSpecification+    serviceSpecification_eC2Specification,++    -- ** SortDefinition+    sortDefinition_sortOrder,+    sortDefinition_key,++    -- ** Subscriber+    subscriber_address,+    subscriber_status,+    subscriber_type,++    -- ** TagValues+    tagValues_key,+    tagValues_matchOptions,+    tagValues_values,++    -- ** TargetInstance+    targetInstance_currencyCode,+    targetInstance_defaultTargetInstance,+    targetInstance_estimatedMonthlyCost,+    targetInstance_estimatedMonthlySavings,+    targetInstance_expectedResourceUtilization,+    targetInstance_platformDifferences,+    targetInstance_resourceDetails,++    -- ** TerminateRecommendationDetail+    terminateRecommendationDetail_currencyCode,+    terminateRecommendationDetail_estimatedMonthlySavings,++    -- ** TotalImpactFilter+    totalImpactFilter_endValue,+    totalImpactFilter_numericOperator,+    totalImpactFilter_startValue,++    -- ** UpdateCostAllocationTagsStatusError+    updateCostAllocationTagsStatusError_code,+    updateCostAllocationTagsStatusError_message,+    updateCostAllocationTagsStatusError_tagKey,++    -- ** UtilizationByTime+    utilizationByTime_groups,+    utilizationByTime_timePeriod,+    utilizationByTime_total,+  )+where++import Amazonka.CostExplorer.CreateAnomalyMonitor+import Amazonka.CostExplorer.CreateAnomalySubscription+import Amazonka.CostExplorer.CreateCostCategoryDefinition+import Amazonka.CostExplorer.DeleteAnomalyMonitor+import Amazonka.CostExplorer.DeleteAnomalySubscription+import Amazonka.CostExplorer.DeleteCostCategoryDefinition+import Amazonka.CostExplorer.DescribeCostCategoryDefinition+import Amazonka.CostExplorer.GetAnomalies+import Amazonka.CostExplorer.GetAnomalyMonitors+import Amazonka.CostExplorer.GetAnomalySubscriptions+import Amazonka.CostExplorer.GetCostAndUsage+import Amazonka.CostExplorer.GetCostAndUsageWithResources+import Amazonka.CostExplorer.GetCostCategories+import Amazonka.CostExplorer.GetCostForecast+import Amazonka.CostExplorer.GetDimensionValues+import Amazonka.CostExplorer.GetReservationCoverage+import Amazonka.CostExplorer.GetReservationPurchaseRecommendation+import Amazonka.CostExplorer.GetReservationUtilization+import Amazonka.CostExplorer.GetRightsizingRecommendation+import Amazonka.CostExplorer.GetSavingsPlansCoverage+import Amazonka.CostExplorer.GetSavingsPlansPurchaseRecommendation+import Amazonka.CostExplorer.GetSavingsPlansUtilization+import Amazonka.CostExplorer.GetSavingsPlansUtilizationDetails+import Amazonka.CostExplorer.GetTags+import Amazonka.CostExplorer.GetUsageForecast+import Amazonka.CostExplorer.ListCostAllocationTags+import Amazonka.CostExplorer.ListCostCategoryDefinitions+import Amazonka.CostExplorer.ListSavingsPlansPurchaseRecommendationGeneration+import Amazonka.CostExplorer.ListTagsForResource+import Amazonka.CostExplorer.ProvideAnomalyFeedback+import Amazonka.CostExplorer.StartSavingsPlansPurchaseRecommendationGeneration+import Amazonka.CostExplorer.TagResource+import Amazonka.CostExplorer.Types.Anomaly+import Amazonka.CostExplorer.Types.AnomalyDateInterval+import Amazonka.CostExplorer.Types.AnomalyMonitor+import Amazonka.CostExplorer.Types.AnomalyScore+import Amazonka.CostExplorer.Types.AnomalySubscription+import Amazonka.CostExplorer.Types.CostAllocationTag+import Amazonka.CostExplorer.Types.CostAllocationTagStatusEntry+import Amazonka.CostExplorer.Types.CostCategory+import Amazonka.CostExplorer.Types.CostCategoryInheritedValueDimension+import Amazonka.CostExplorer.Types.CostCategoryProcessingStatus+import Amazonka.CostExplorer.Types.CostCategoryReference+import Amazonka.CostExplorer.Types.CostCategoryRule+import Amazonka.CostExplorer.Types.CostCategorySplitChargeRule+import Amazonka.CostExplorer.Types.CostCategorySplitChargeRuleParameter+import Amazonka.CostExplorer.Types.CostCategoryValues+import Amazonka.CostExplorer.Types.Coverage+import Amazonka.CostExplorer.Types.CoverageByTime+import Amazonka.CostExplorer.Types.CoverageCost+import Amazonka.CostExplorer.Types.CoverageHours+import Amazonka.CostExplorer.Types.CoverageNormalizedUnits+import Amazonka.CostExplorer.Types.CurrentInstance+import Amazonka.CostExplorer.Types.DateInterval+import Amazonka.CostExplorer.Types.DimensionValues+import Amazonka.CostExplorer.Types.DimensionValuesWithAttributes+import Amazonka.CostExplorer.Types.DiskResourceUtilization+import Amazonka.CostExplorer.Types.EBSResourceUtilization+import Amazonka.CostExplorer.Types.EC2InstanceDetails+import Amazonka.CostExplorer.Types.EC2ResourceDetails+import Amazonka.CostExplorer.Types.EC2ResourceUtilization+import Amazonka.CostExplorer.Types.EC2Specification+import Amazonka.CostExplorer.Types.ESInstanceDetails+import Amazonka.CostExplorer.Types.ElastiCacheInstanceDetails+import Amazonka.CostExplorer.Types.Expression+import Amazonka.CostExplorer.Types.ForecastResult+import Amazonka.CostExplorer.Types.GenerationSummary+import Amazonka.CostExplorer.Types.Group+import Amazonka.CostExplorer.Types.GroupDefinition+import Amazonka.CostExplorer.Types.Impact+import Amazonka.CostExplorer.Types.InstanceDetails+import Amazonka.CostExplorer.Types.MetricValue+import Amazonka.CostExplorer.Types.ModifyRecommendationDetail+import Amazonka.CostExplorer.Types.NetworkResourceUtilization+import Amazonka.CostExplorer.Types.RDSInstanceDetails+import Amazonka.CostExplorer.Types.RedshiftInstanceDetails+import Amazonka.CostExplorer.Types.ReservationAggregates+import Amazonka.CostExplorer.Types.ReservationCoverageGroup+import Amazonka.CostExplorer.Types.ReservationPurchaseRecommendation+import Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationDetail+import Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationMetadata+import Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationSummary+import Amazonka.CostExplorer.Types.ReservationUtilizationGroup+import Amazonka.CostExplorer.Types.ResourceDetails+import Amazonka.CostExplorer.Types.ResourceTag+import Amazonka.CostExplorer.Types.ResourceUtilization+import Amazonka.CostExplorer.Types.ResultByTime+import Amazonka.CostExplorer.Types.RightsizingRecommendation+import Amazonka.CostExplorer.Types.RightsizingRecommendationConfiguration+import Amazonka.CostExplorer.Types.RightsizingRecommendationMetadata+import Amazonka.CostExplorer.Types.RightsizingRecommendationSummary+import Amazonka.CostExplorer.Types.RootCause+import Amazonka.CostExplorer.Types.SavingsPlansAmortizedCommitment+import Amazonka.CostExplorer.Types.SavingsPlansCoverage+import Amazonka.CostExplorer.Types.SavingsPlansCoverageData+import Amazonka.CostExplorer.Types.SavingsPlansDetails+import Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendation+import Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationDetail+import Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationMetadata+import Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationSummary+import Amazonka.CostExplorer.Types.SavingsPlansSavings+import Amazonka.CostExplorer.Types.SavingsPlansUtilization+import Amazonka.CostExplorer.Types.SavingsPlansUtilizationAggregates+import Amazonka.CostExplorer.Types.SavingsPlansUtilizationByTime+import Amazonka.CostExplorer.Types.SavingsPlansUtilizationDetail+import Amazonka.CostExplorer.Types.ServiceSpecification+import Amazonka.CostExplorer.Types.SortDefinition+import Amazonka.CostExplorer.Types.Subscriber+import Amazonka.CostExplorer.Types.TagValues+import Amazonka.CostExplorer.Types.TargetInstance+import Amazonka.CostExplorer.Types.TerminateRecommendationDetail+import Amazonka.CostExplorer.Types.TotalImpactFilter+import Amazonka.CostExplorer.Types.UpdateCostAllocationTagsStatusError+import Amazonka.CostExplorer.Types.UtilizationByTime+import Amazonka.CostExplorer.UntagResource+import Amazonka.CostExplorer.UpdateAnomalyMonitor+import Amazonka.CostExplorer.UpdateAnomalySubscription+import Amazonka.CostExplorer.UpdateCostAllocationTagsStatus+import Amazonka.CostExplorer.UpdateCostCategoryDefinition
+ gen/Amazonka/CostExplorer/ListCostAllocationTags.hs view
@@ -0,0 +1,276 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.ListCostAllocationTags+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Get a list of cost allocation tags. All inputs in the API are optional+-- and serve as filters. By default, all cost allocation tags are returned.+module Amazonka.CostExplorer.ListCostAllocationTags+  ( -- * Creating a Request+    ListCostAllocationTags (..),+    newListCostAllocationTags,++    -- * Request Lenses+    listCostAllocationTags_maxResults,+    listCostAllocationTags_nextToken,+    listCostAllocationTags_status,+    listCostAllocationTags_tagKeys,+    listCostAllocationTags_type,++    -- * Destructuring the Response+    ListCostAllocationTagsResponse (..),+    newListCostAllocationTagsResponse,++    -- * Response Lenses+    listCostAllocationTagsResponse_costAllocationTags,+    listCostAllocationTagsResponse_nextToken,+    listCostAllocationTagsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CostExplorer.Types+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListCostAllocationTags' smart constructor.+data ListCostAllocationTags = ListCostAllocationTags'+  { -- | The maximum number of objects that are returned for this request. By+    -- default, the request returns 100 results.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The token to retrieve the next set of results. Amazon Web Services+    -- provides the token when the response from a previous call has more+    -- results than the maximum page size.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The status of cost allocation tag keys that are returned for this+    -- request.+    status :: Prelude.Maybe CostAllocationTagStatus,+    -- | The list of cost allocation tag keys that are returned for this request.+    tagKeys :: Prelude.Maybe (Prelude.NonEmpty Prelude.Text),+    -- | The type of @CostAllocationTag@ object that are returned for this+    -- request. The @AWSGenerated@ type tags are tags that Amazon Web Services+    -- defines and applies to support Amazon Web Services resources for cost+    -- allocation purposes. The @UserDefined@ type tags are tags that you+    -- define, create, and apply to resources.+    type' :: Prelude.Maybe CostAllocationTagType+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListCostAllocationTags' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'maxResults', 'listCostAllocationTags_maxResults' - The maximum number of objects that are returned for this request. By+-- default, the request returns 100 results.+--+-- 'nextToken', 'listCostAllocationTags_nextToken' - The token to retrieve the next set of results. Amazon Web Services+-- provides the token when the response from a previous call has more+-- results than the maximum page size.+--+-- 'status', 'listCostAllocationTags_status' - The status of cost allocation tag keys that are returned for this+-- request.+--+-- 'tagKeys', 'listCostAllocationTags_tagKeys' - The list of cost allocation tag keys that are returned for this request.+--+-- 'type'', 'listCostAllocationTags_type' - The type of @CostAllocationTag@ object that are returned for this+-- request. The @AWSGenerated@ type tags are tags that Amazon Web Services+-- defines and applies to support Amazon Web Services resources for cost+-- allocation purposes. The @UserDefined@ type tags are tags that you+-- define, create, and apply to resources.+newListCostAllocationTags ::+  ListCostAllocationTags+newListCostAllocationTags =+  ListCostAllocationTags'+    { maxResults =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      status = Prelude.Nothing,+      tagKeys = Prelude.Nothing,+      type' = Prelude.Nothing+    }++-- | The maximum number of objects that are returned for this request. By+-- default, the request returns 100 results.+listCostAllocationTags_maxResults :: Lens.Lens' ListCostAllocationTags (Prelude.Maybe Prelude.Natural)+listCostAllocationTags_maxResults = Lens.lens (\ListCostAllocationTags' {maxResults} -> maxResults) (\s@ListCostAllocationTags' {} a -> s {maxResults = a} :: ListCostAllocationTags)++-- | The token to retrieve the next set of results. Amazon Web Services+-- provides the token when the response from a previous call has more+-- results than the maximum page size.+listCostAllocationTags_nextToken :: Lens.Lens' ListCostAllocationTags (Prelude.Maybe Prelude.Text)+listCostAllocationTags_nextToken = Lens.lens (\ListCostAllocationTags' {nextToken} -> nextToken) (\s@ListCostAllocationTags' {} a -> s {nextToken = a} :: ListCostAllocationTags)++-- | The status of cost allocation tag keys that are returned for this+-- request.+listCostAllocationTags_status :: Lens.Lens' ListCostAllocationTags (Prelude.Maybe CostAllocationTagStatus)+listCostAllocationTags_status = Lens.lens (\ListCostAllocationTags' {status} -> status) (\s@ListCostAllocationTags' {} a -> s {status = a} :: ListCostAllocationTags)++-- | The list of cost allocation tag keys that are returned for this request.+listCostAllocationTags_tagKeys :: Lens.Lens' ListCostAllocationTags (Prelude.Maybe (Prelude.NonEmpty Prelude.Text))+listCostAllocationTags_tagKeys = Lens.lens (\ListCostAllocationTags' {tagKeys} -> tagKeys) (\s@ListCostAllocationTags' {} a -> s {tagKeys = a} :: ListCostAllocationTags) Prelude.. Lens.mapping Lens.coerced++-- | The type of @CostAllocationTag@ object that are returned for this+-- request. The @AWSGenerated@ type tags are tags that Amazon Web Services+-- defines and applies to support Amazon Web Services resources for cost+-- allocation purposes. The @UserDefined@ type tags are tags that you+-- define, create, and apply to resources.+listCostAllocationTags_type :: Lens.Lens' ListCostAllocationTags (Prelude.Maybe CostAllocationTagType)+listCostAllocationTags_type = Lens.lens (\ListCostAllocationTags' {type'} -> type') (\s@ListCostAllocationTags' {} a -> s {type' = a} :: ListCostAllocationTags)++instance Core.AWSRequest ListCostAllocationTags where+  type+    AWSResponse ListCostAllocationTags =+      ListCostAllocationTagsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListCostAllocationTagsResponse'+            Prelude.<$> ( x+                            Data..?> "CostAllocationTags"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "NextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListCostAllocationTags where+  hashWithSalt _salt ListCostAllocationTags' {..} =+    _salt+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken+      `Prelude.hashWithSalt` status+      `Prelude.hashWithSalt` tagKeys+      `Prelude.hashWithSalt` type'++instance Prelude.NFData ListCostAllocationTags where+  rnf ListCostAllocationTags' {..} =+    Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf tagKeys+      `Prelude.seq` Prelude.rnf type'++instance Data.ToHeaders ListCostAllocationTags where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSInsightsIndexService.ListCostAllocationTags" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListCostAllocationTags where+  toJSON ListCostAllocationTags' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("MaxResults" Data..=) Prelude.<$> maxResults,+            ("NextToken" Data..=) Prelude.<$> nextToken,+            ("Status" Data..=) Prelude.<$> status,+            ("TagKeys" Data..=) Prelude.<$> tagKeys,+            ("Type" Data..=) Prelude.<$> type'+          ]+      )++instance Data.ToPath ListCostAllocationTags where+  toPath = Prelude.const "/"++instance Data.ToQuery ListCostAllocationTags where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListCostAllocationTagsResponse' smart constructor.+data ListCostAllocationTagsResponse = ListCostAllocationTagsResponse'+  { -- | A list of cost allocation tags that includes the detailed metadata for+    -- each one.+    costAllocationTags :: Prelude.Maybe [CostAllocationTag],+    -- | The token to retrieve the next set of results. Amazon Web Services+    -- provides the token when the response from a previous call has more+    -- results than the maximum page size.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListCostAllocationTagsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'costAllocationTags', 'listCostAllocationTagsResponse_costAllocationTags' - A list of cost allocation tags that includes the detailed metadata for+-- each one.+--+-- 'nextToken', 'listCostAllocationTagsResponse_nextToken' - The token to retrieve the next set of results. Amazon Web Services+-- provides the token when the response from a previous call has more+-- results than the maximum page size.+--+-- 'httpStatus', 'listCostAllocationTagsResponse_httpStatus' - The response's http status code.+newListCostAllocationTagsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListCostAllocationTagsResponse+newListCostAllocationTagsResponse pHttpStatus_ =+  ListCostAllocationTagsResponse'+    { costAllocationTags =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | A list of cost allocation tags that includes the detailed metadata for+-- each one.+listCostAllocationTagsResponse_costAllocationTags :: Lens.Lens' ListCostAllocationTagsResponse (Prelude.Maybe [CostAllocationTag])+listCostAllocationTagsResponse_costAllocationTags = Lens.lens (\ListCostAllocationTagsResponse' {costAllocationTags} -> costAllocationTags) (\s@ListCostAllocationTagsResponse' {} a -> s {costAllocationTags = a} :: ListCostAllocationTagsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The token to retrieve the next set of results. Amazon Web Services+-- provides the token when the response from a previous call has more+-- results than the maximum page size.+listCostAllocationTagsResponse_nextToken :: Lens.Lens' ListCostAllocationTagsResponse (Prelude.Maybe Prelude.Text)+listCostAllocationTagsResponse_nextToken = Lens.lens (\ListCostAllocationTagsResponse' {nextToken} -> nextToken) (\s@ListCostAllocationTagsResponse' {} a -> s {nextToken = a} :: ListCostAllocationTagsResponse)++-- | The response's http status code.+listCostAllocationTagsResponse_httpStatus :: Lens.Lens' ListCostAllocationTagsResponse Prelude.Int+listCostAllocationTagsResponse_httpStatus = Lens.lens (\ListCostAllocationTagsResponse' {httpStatus} -> httpStatus) (\s@ListCostAllocationTagsResponse' {} a -> s {httpStatus = a} :: ListCostAllocationTagsResponse)++instance+  Prelude.NFData+    ListCostAllocationTagsResponse+  where+  rnf ListCostAllocationTagsResponse' {..} =+    Prelude.rnf costAllocationTags+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/CostExplorer/ListCostCategoryDefinitions.hs view
@@ -0,0 +1,238 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.ListCostCategoryDefinitions+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns the name, Amazon Resource Name (ARN), @NumberOfRules@ and+-- effective dates of all Cost Categories defined in the account. You have+-- the option to use @EffectiveOn@ to return a list of Cost Categories that+-- were active on a specific date. If there is no @EffectiveOn@ specified,+-- you’ll see Cost Categories that are effective on the current date. If+-- Cost Category is still effective, @EffectiveEnd@ is omitted in the+-- response. @ListCostCategoryDefinitions@ supports pagination. The request+-- can have a @MaxResults@ range up to 100.+module Amazonka.CostExplorer.ListCostCategoryDefinitions+  ( -- * Creating a Request+    ListCostCategoryDefinitions (..),+    newListCostCategoryDefinitions,++    -- * Request Lenses+    listCostCategoryDefinitions_effectiveOn,+    listCostCategoryDefinitions_maxResults,+    listCostCategoryDefinitions_nextToken,++    -- * Destructuring the Response+    ListCostCategoryDefinitionsResponse (..),+    newListCostCategoryDefinitionsResponse,++    -- * Response Lenses+    listCostCategoryDefinitionsResponse_costCategoryReferences,+    listCostCategoryDefinitionsResponse_nextToken,+    listCostCategoryDefinitionsResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CostExplorer.Types+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListCostCategoryDefinitions' smart constructor.+data ListCostCategoryDefinitions = ListCostCategoryDefinitions'+  { -- | The date when the Cost Category was effective.+    effectiveOn :: Prelude.Maybe Prelude.Text,+    -- | The number of entries a paginated response contains.+    maxResults :: Prelude.Maybe Prelude.Natural,+    -- | The token to retrieve the next set of results. Amazon Web Services+    -- provides the token when the response from a previous call has more+    -- results than the maximum page size.+    nextToken :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListCostCategoryDefinitions' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'effectiveOn', 'listCostCategoryDefinitions_effectiveOn' - The date when the Cost Category was effective.+--+-- 'maxResults', 'listCostCategoryDefinitions_maxResults' - The number of entries a paginated response contains.+--+-- 'nextToken', 'listCostCategoryDefinitions_nextToken' - The token to retrieve the next set of results. Amazon Web Services+-- provides the token when the response from a previous call has more+-- results than the maximum page size.+newListCostCategoryDefinitions ::+  ListCostCategoryDefinitions+newListCostCategoryDefinitions =+  ListCostCategoryDefinitions'+    { effectiveOn =+        Prelude.Nothing,+      maxResults = Prelude.Nothing,+      nextToken = Prelude.Nothing+    }++-- | The date when the Cost Category was effective.+listCostCategoryDefinitions_effectiveOn :: Lens.Lens' ListCostCategoryDefinitions (Prelude.Maybe Prelude.Text)+listCostCategoryDefinitions_effectiveOn = Lens.lens (\ListCostCategoryDefinitions' {effectiveOn} -> effectiveOn) (\s@ListCostCategoryDefinitions' {} a -> s {effectiveOn = a} :: ListCostCategoryDefinitions)++-- | The number of entries a paginated response contains.+listCostCategoryDefinitions_maxResults :: Lens.Lens' ListCostCategoryDefinitions (Prelude.Maybe Prelude.Natural)+listCostCategoryDefinitions_maxResults = Lens.lens (\ListCostCategoryDefinitions' {maxResults} -> maxResults) (\s@ListCostCategoryDefinitions' {} a -> s {maxResults = a} :: ListCostCategoryDefinitions)++-- | The token to retrieve the next set of results. Amazon Web Services+-- provides the token when the response from a previous call has more+-- results than the maximum page size.+listCostCategoryDefinitions_nextToken :: Lens.Lens' ListCostCategoryDefinitions (Prelude.Maybe Prelude.Text)+listCostCategoryDefinitions_nextToken = Lens.lens (\ListCostCategoryDefinitions' {nextToken} -> nextToken) (\s@ListCostCategoryDefinitions' {} a -> s {nextToken = a} :: ListCostCategoryDefinitions)++instance Core.AWSRequest ListCostCategoryDefinitions where+  type+    AWSResponse ListCostCategoryDefinitions =+      ListCostCategoryDefinitionsResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListCostCategoryDefinitionsResponse'+            Prelude.<$> ( x+                            Data..?> "CostCategoryReferences"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "NextToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListCostCategoryDefinitions where+  hashWithSalt _salt ListCostCategoryDefinitions' {..} =+    _salt+      `Prelude.hashWithSalt` effectiveOn+      `Prelude.hashWithSalt` maxResults+      `Prelude.hashWithSalt` nextToken++instance Prelude.NFData ListCostCategoryDefinitions where+  rnf ListCostCategoryDefinitions' {..} =+    Prelude.rnf effectiveOn+      `Prelude.seq` Prelude.rnf maxResults+      `Prelude.seq` Prelude.rnf nextToken++instance Data.ToHeaders ListCostCategoryDefinitions where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSInsightsIndexService.ListCostCategoryDefinitions" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListCostCategoryDefinitions where+  toJSON ListCostCategoryDefinitions' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("EffectiveOn" Data..=) Prelude.<$> effectiveOn,+            ("MaxResults" Data..=) Prelude.<$> maxResults,+            ("NextToken" Data..=) Prelude.<$> nextToken+          ]+      )++instance Data.ToPath ListCostCategoryDefinitions where+  toPath = Prelude.const "/"++instance Data.ToQuery ListCostCategoryDefinitions where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListCostCategoryDefinitionsResponse' smart constructor.+data ListCostCategoryDefinitionsResponse = ListCostCategoryDefinitionsResponse'+  { -- | A reference to a Cost Category that contains enough information to+    -- identify the Cost Category.+    costCategoryReferences :: Prelude.Maybe [CostCategoryReference],+    -- | The token to retrieve the next set of results. Amazon Web Services+    -- provides the token when the response from a previous call has more+    -- results than the maximum page size.+    nextToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListCostCategoryDefinitionsResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'costCategoryReferences', 'listCostCategoryDefinitionsResponse_costCategoryReferences' - A reference to a Cost Category that contains enough information to+-- identify the Cost Category.+--+-- 'nextToken', 'listCostCategoryDefinitionsResponse_nextToken' - The token to retrieve the next set of results. Amazon Web Services+-- provides the token when the response from a previous call has more+-- results than the maximum page size.+--+-- 'httpStatus', 'listCostCategoryDefinitionsResponse_httpStatus' - The response's http status code.+newListCostCategoryDefinitionsResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListCostCategoryDefinitionsResponse+newListCostCategoryDefinitionsResponse pHttpStatus_ =+  ListCostCategoryDefinitionsResponse'+    { costCategoryReferences =+        Prelude.Nothing,+      nextToken = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | A reference to a Cost Category that contains enough information to+-- identify the Cost Category.+listCostCategoryDefinitionsResponse_costCategoryReferences :: Lens.Lens' ListCostCategoryDefinitionsResponse (Prelude.Maybe [CostCategoryReference])+listCostCategoryDefinitionsResponse_costCategoryReferences = Lens.lens (\ListCostCategoryDefinitionsResponse' {costCategoryReferences} -> costCategoryReferences) (\s@ListCostCategoryDefinitionsResponse' {} a -> s {costCategoryReferences = a} :: ListCostCategoryDefinitionsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The token to retrieve the next set of results. Amazon Web Services+-- provides the token when the response from a previous call has more+-- results than the maximum page size.+listCostCategoryDefinitionsResponse_nextToken :: Lens.Lens' ListCostCategoryDefinitionsResponse (Prelude.Maybe Prelude.Text)+listCostCategoryDefinitionsResponse_nextToken = Lens.lens (\ListCostCategoryDefinitionsResponse' {nextToken} -> nextToken) (\s@ListCostCategoryDefinitionsResponse' {} a -> s {nextToken = a} :: ListCostCategoryDefinitionsResponse)++-- | The response's http status code.+listCostCategoryDefinitionsResponse_httpStatus :: Lens.Lens' ListCostCategoryDefinitionsResponse Prelude.Int+listCostCategoryDefinitionsResponse_httpStatus = Lens.lens (\ListCostCategoryDefinitionsResponse' {httpStatus} -> httpStatus) (\s@ListCostCategoryDefinitionsResponse' {} a -> s {httpStatus = a} :: ListCostCategoryDefinitionsResponse)++instance+  Prelude.NFData+    ListCostCategoryDefinitionsResponse+  where+  rnf ListCostCategoryDefinitionsResponse' {..} =+    Prelude.rnf costCategoryReferences+      `Prelude.seq` Prelude.rnf nextToken+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/CostExplorer/ListSavingsPlansPurchaseRecommendationGeneration.hs view
@@ -0,0 +1,268 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.ListSavingsPlansPurchaseRecommendationGeneration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Retrieves a list of your historical recommendation generations within+-- the past 30 days.+module Amazonka.CostExplorer.ListSavingsPlansPurchaseRecommendationGeneration+  ( -- * Creating a Request+    ListSavingsPlansPurchaseRecommendationGeneration (..),+    newListSavingsPlansPurchaseRecommendationGeneration,++    -- * Request Lenses+    listSavingsPlansPurchaseRecommendationGeneration_generationStatus,+    listSavingsPlansPurchaseRecommendationGeneration_nextPageToken,+    listSavingsPlansPurchaseRecommendationGeneration_pageSize,+    listSavingsPlansPurchaseRecommendationGeneration_recommendationIds,++    -- * Destructuring the Response+    ListSavingsPlansPurchaseRecommendationGenerationResponse (..),+    newListSavingsPlansPurchaseRecommendationGenerationResponse,++    -- * Response Lenses+    listSavingsPlansPurchaseRecommendationGenerationResponse_generationSummaryList,+    listSavingsPlansPurchaseRecommendationGenerationResponse_nextPageToken,+    listSavingsPlansPurchaseRecommendationGenerationResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CostExplorer.Types+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListSavingsPlansPurchaseRecommendationGeneration' smart constructor.+data ListSavingsPlansPurchaseRecommendationGeneration = ListSavingsPlansPurchaseRecommendationGeneration'+  { -- | The status of the recommendation generation.+    generationStatus :: Prelude.Maybe GenerationStatus,+    -- | The token to retrieve the next set of results.+    nextPageToken :: Prelude.Maybe Prelude.Text,+    -- | The number of recommendations that you want returned in a single+    -- response object.+    pageSize :: Prelude.Maybe Prelude.Natural,+    -- | The IDs for each specific recommendation.+    recommendationIds :: Prelude.Maybe [Prelude.Text]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListSavingsPlansPurchaseRecommendationGeneration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'generationStatus', 'listSavingsPlansPurchaseRecommendationGeneration_generationStatus' - The status of the recommendation generation.+--+-- 'nextPageToken', 'listSavingsPlansPurchaseRecommendationGeneration_nextPageToken' - The token to retrieve the next set of results.+--+-- 'pageSize', 'listSavingsPlansPurchaseRecommendationGeneration_pageSize' - The number of recommendations that you want returned in a single+-- response object.+--+-- 'recommendationIds', 'listSavingsPlansPurchaseRecommendationGeneration_recommendationIds' - The IDs for each specific recommendation.+newListSavingsPlansPurchaseRecommendationGeneration ::+  ListSavingsPlansPurchaseRecommendationGeneration+newListSavingsPlansPurchaseRecommendationGeneration =+  ListSavingsPlansPurchaseRecommendationGeneration'+    { generationStatus =+        Prelude.Nothing,+      nextPageToken =+        Prelude.Nothing,+      pageSize =+        Prelude.Nothing,+      recommendationIds =+        Prelude.Nothing+    }++-- | The status of the recommendation generation.+listSavingsPlansPurchaseRecommendationGeneration_generationStatus :: Lens.Lens' ListSavingsPlansPurchaseRecommendationGeneration (Prelude.Maybe GenerationStatus)+listSavingsPlansPurchaseRecommendationGeneration_generationStatus = Lens.lens (\ListSavingsPlansPurchaseRecommendationGeneration' {generationStatus} -> generationStatus) (\s@ListSavingsPlansPurchaseRecommendationGeneration' {} a -> s {generationStatus = a} :: ListSavingsPlansPurchaseRecommendationGeneration)++-- | The token to retrieve the next set of results.+listSavingsPlansPurchaseRecommendationGeneration_nextPageToken :: Lens.Lens' ListSavingsPlansPurchaseRecommendationGeneration (Prelude.Maybe Prelude.Text)+listSavingsPlansPurchaseRecommendationGeneration_nextPageToken = Lens.lens (\ListSavingsPlansPurchaseRecommendationGeneration' {nextPageToken} -> nextPageToken) (\s@ListSavingsPlansPurchaseRecommendationGeneration' {} a -> s {nextPageToken = a} :: ListSavingsPlansPurchaseRecommendationGeneration)++-- | The number of recommendations that you want returned in a single+-- response object.+listSavingsPlansPurchaseRecommendationGeneration_pageSize :: Lens.Lens' ListSavingsPlansPurchaseRecommendationGeneration (Prelude.Maybe Prelude.Natural)+listSavingsPlansPurchaseRecommendationGeneration_pageSize = Lens.lens (\ListSavingsPlansPurchaseRecommendationGeneration' {pageSize} -> pageSize) (\s@ListSavingsPlansPurchaseRecommendationGeneration' {} a -> s {pageSize = a} :: ListSavingsPlansPurchaseRecommendationGeneration)++-- | The IDs for each specific recommendation.+listSavingsPlansPurchaseRecommendationGeneration_recommendationIds :: Lens.Lens' ListSavingsPlansPurchaseRecommendationGeneration (Prelude.Maybe [Prelude.Text])+listSavingsPlansPurchaseRecommendationGeneration_recommendationIds = Lens.lens (\ListSavingsPlansPurchaseRecommendationGeneration' {recommendationIds} -> recommendationIds) (\s@ListSavingsPlansPurchaseRecommendationGeneration' {} a -> s {recommendationIds = a} :: ListSavingsPlansPurchaseRecommendationGeneration) Prelude.. Lens.mapping Lens.coerced++instance+  Core.AWSRequest+    ListSavingsPlansPurchaseRecommendationGeneration+  where+  type+    AWSResponse+      ListSavingsPlansPurchaseRecommendationGeneration =+      ListSavingsPlansPurchaseRecommendationGenerationResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListSavingsPlansPurchaseRecommendationGenerationResponse'+            Prelude.<$> ( x+                            Data..?> "GenerationSummaryList"+                            Core..!@ Prelude.mempty+                        )+            Prelude.<*> (x Data..?> "NextPageToken")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    ListSavingsPlansPurchaseRecommendationGeneration+  where+  hashWithSalt+    _salt+    ListSavingsPlansPurchaseRecommendationGeneration' {..} =+      _salt+        `Prelude.hashWithSalt` generationStatus+        `Prelude.hashWithSalt` nextPageToken+        `Prelude.hashWithSalt` pageSize+        `Prelude.hashWithSalt` recommendationIds++instance+  Prelude.NFData+    ListSavingsPlansPurchaseRecommendationGeneration+  where+  rnf+    ListSavingsPlansPurchaseRecommendationGeneration' {..} =+      Prelude.rnf generationStatus+        `Prelude.seq` Prelude.rnf nextPageToken+        `Prelude.seq` Prelude.rnf pageSize+        `Prelude.seq` Prelude.rnf recommendationIds++instance+  Data.ToHeaders+    ListSavingsPlansPurchaseRecommendationGeneration+  where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSInsightsIndexService.ListSavingsPlansPurchaseRecommendationGeneration" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance+  Data.ToJSON+    ListSavingsPlansPurchaseRecommendationGeneration+  where+  toJSON+    ListSavingsPlansPurchaseRecommendationGeneration' {..} =+      Data.object+        ( Prelude.catMaybes+            [ ("GenerationStatus" Data..=)+                Prelude.<$> generationStatus,+              ("NextPageToken" Data..=) Prelude.<$> nextPageToken,+              ("PageSize" Data..=) Prelude.<$> pageSize,+              ("RecommendationIds" Data..=)+                Prelude.<$> recommendationIds+            ]+        )++instance+  Data.ToPath+    ListSavingsPlansPurchaseRecommendationGeneration+  where+  toPath = Prelude.const "/"++instance+  Data.ToQuery+    ListSavingsPlansPurchaseRecommendationGeneration+  where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListSavingsPlansPurchaseRecommendationGenerationResponse' smart constructor.+data ListSavingsPlansPurchaseRecommendationGenerationResponse = ListSavingsPlansPurchaseRecommendationGenerationResponse'+  { -- | The list of historical recommendation generations.+    generationSummaryList :: Prelude.Maybe [GenerationSummary],+    -- | The token to retrieve the next set of results.+    nextPageToken :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListSavingsPlansPurchaseRecommendationGenerationResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'generationSummaryList', 'listSavingsPlansPurchaseRecommendationGenerationResponse_generationSummaryList' - The list of historical recommendation generations.+--+-- 'nextPageToken', 'listSavingsPlansPurchaseRecommendationGenerationResponse_nextPageToken' - The token to retrieve the next set of results.+--+-- 'httpStatus', 'listSavingsPlansPurchaseRecommendationGenerationResponse_httpStatus' - The response's http status code.+newListSavingsPlansPurchaseRecommendationGenerationResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListSavingsPlansPurchaseRecommendationGenerationResponse+newListSavingsPlansPurchaseRecommendationGenerationResponse+  pHttpStatus_ =+    ListSavingsPlansPurchaseRecommendationGenerationResponse'+      { generationSummaryList =+          Prelude.Nothing,+        nextPageToken =+          Prelude.Nothing,+        httpStatus =+          pHttpStatus_+      }++-- | The list of historical recommendation generations.+listSavingsPlansPurchaseRecommendationGenerationResponse_generationSummaryList :: Lens.Lens' ListSavingsPlansPurchaseRecommendationGenerationResponse (Prelude.Maybe [GenerationSummary])+listSavingsPlansPurchaseRecommendationGenerationResponse_generationSummaryList = Lens.lens (\ListSavingsPlansPurchaseRecommendationGenerationResponse' {generationSummaryList} -> generationSummaryList) (\s@ListSavingsPlansPurchaseRecommendationGenerationResponse' {} a -> s {generationSummaryList = a} :: ListSavingsPlansPurchaseRecommendationGenerationResponse) Prelude.. Lens.mapping Lens.coerced++-- | The token to retrieve the next set of results.+listSavingsPlansPurchaseRecommendationGenerationResponse_nextPageToken :: Lens.Lens' ListSavingsPlansPurchaseRecommendationGenerationResponse (Prelude.Maybe Prelude.Text)+listSavingsPlansPurchaseRecommendationGenerationResponse_nextPageToken = Lens.lens (\ListSavingsPlansPurchaseRecommendationGenerationResponse' {nextPageToken} -> nextPageToken) (\s@ListSavingsPlansPurchaseRecommendationGenerationResponse' {} a -> s {nextPageToken = a} :: ListSavingsPlansPurchaseRecommendationGenerationResponse)++-- | The response's http status code.+listSavingsPlansPurchaseRecommendationGenerationResponse_httpStatus :: Lens.Lens' ListSavingsPlansPurchaseRecommendationGenerationResponse Prelude.Int+listSavingsPlansPurchaseRecommendationGenerationResponse_httpStatus = Lens.lens (\ListSavingsPlansPurchaseRecommendationGenerationResponse' {httpStatus} -> httpStatus) (\s@ListSavingsPlansPurchaseRecommendationGenerationResponse' {} a -> s {httpStatus = a} :: ListSavingsPlansPurchaseRecommendationGenerationResponse)++instance+  Prelude.NFData+    ListSavingsPlansPurchaseRecommendationGenerationResponse+  where+  rnf+    ListSavingsPlansPurchaseRecommendationGenerationResponse' {..} =+      Prelude.rnf generationSummaryList+        `Prelude.seq` Prelude.rnf nextPageToken+        `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/CostExplorer/ListTagsForResource.hs view
@@ -0,0 +1,176 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.ListTagsForResource+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a list of resource tags associated with the resource specified+-- by the Amazon Resource Name (ARN).+module Amazonka.CostExplorer.ListTagsForResource+  ( -- * Creating a Request+    ListTagsForResource (..),+    newListTagsForResource,++    -- * Request Lenses+    listTagsForResource_resourceArn,++    -- * Destructuring the Response+    ListTagsForResourceResponse (..),+    newListTagsForResourceResponse,++    -- * Response Lenses+    listTagsForResourceResponse_resourceTags,+    listTagsForResourceResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CostExplorer.Types+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newListTagsForResource' smart constructor.+data ListTagsForResource = ListTagsForResource'+  { -- | The Amazon Resource Name (ARN) of the resource. For a list of supported+    -- resources, see+    -- <https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_ResourceTag.html ResourceTag>.+    resourceArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListTagsForResource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'resourceArn', 'listTagsForResource_resourceArn' - The Amazon Resource Name (ARN) of the resource. For a list of supported+-- resources, see+-- <https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_ResourceTag.html ResourceTag>.+newListTagsForResource ::+  -- | 'resourceArn'+  Prelude.Text ->+  ListTagsForResource+newListTagsForResource pResourceArn_ =+  ListTagsForResource' {resourceArn = pResourceArn_}++-- | The Amazon Resource Name (ARN) of the resource. For a list of supported+-- resources, see+-- <https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_ResourceTag.html ResourceTag>.+listTagsForResource_resourceArn :: Lens.Lens' ListTagsForResource Prelude.Text+listTagsForResource_resourceArn = Lens.lens (\ListTagsForResource' {resourceArn} -> resourceArn) (\s@ListTagsForResource' {} a -> s {resourceArn = a} :: ListTagsForResource)++instance Core.AWSRequest ListTagsForResource where+  type+    AWSResponse ListTagsForResource =+      ListTagsForResourceResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ListTagsForResourceResponse'+            Prelude.<$> (x Data..?> "ResourceTags" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable ListTagsForResource where+  hashWithSalt _salt ListTagsForResource' {..} =+    _salt `Prelude.hashWithSalt` resourceArn++instance Prelude.NFData ListTagsForResource where+  rnf ListTagsForResource' {..} =+    Prelude.rnf resourceArn++instance Data.ToHeaders ListTagsForResource where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSInsightsIndexService.ListTagsForResource" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ListTagsForResource where+  toJSON ListTagsForResource' {..} =+    Data.object+      ( Prelude.catMaybes+          [Prelude.Just ("ResourceArn" Data..= resourceArn)]+      )++instance Data.ToPath ListTagsForResource where+  toPath = Prelude.const "/"++instance Data.ToQuery ListTagsForResource where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newListTagsForResourceResponse' smart constructor.+data ListTagsForResourceResponse = ListTagsForResourceResponse'+  { -- | A list of tag key value pairs that are associated with the resource.+    resourceTags :: Prelude.Maybe [ResourceTag],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ListTagsForResourceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'resourceTags', 'listTagsForResourceResponse_resourceTags' - A list of tag key value pairs that are associated with the resource.+--+-- 'httpStatus', 'listTagsForResourceResponse_httpStatus' - The response's http status code.+newListTagsForResourceResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  ListTagsForResourceResponse+newListTagsForResourceResponse pHttpStatus_ =+  ListTagsForResourceResponse'+    { resourceTags =+        Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | A list of tag key value pairs that are associated with the resource.+listTagsForResourceResponse_resourceTags :: Lens.Lens' ListTagsForResourceResponse (Prelude.Maybe [ResourceTag])+listTagsForResourceResponse_resourceTags = Lens.lens (\ListTagsForResourceResponse' {resourceTags} -> resourceTags) (\s@ListTagsForResourceResponse' {} a -> s {resourceTags = a} :: ListTagsForResourceResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+listTagsForResourceResponse_httpStatus :: Lens.Lens' ListTagsForResourceResponse Prelude.Int+listTagsForResourceResponse_httpStatus = Lens.lens (\ListTagsForResourceResponse' {httpStatus} -> httpStatus) (\s@ListTagsForResourceResponse' {} a -> s {httpStatus = a} :: ListTagsForResourceResponse)++instance Prelude.NFData ListTagsForResourceResponse where+  rnf ListTagsForResourceResponse' {..} =+    Prelude.rnf resourceTags+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/CostExplorer/ProvideAnomalyFeedback.hs view
@@ -0,0 +1,198 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.ProvideAnomalyFeedback+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Modifies the feedback property of a given cost anomaly.+module Amazonka.CostExplorer.ProvideAnomalyFeedback+  ( -- * Creating a Request+    ProvideAnomalyFeedback (..),+    newProvideAnomalyFeedback,++    -- * Request Lenses+    provideAnomalyFeedback_anomalyId,+    provideAnomalyFeedback_feedback,++    -- * Destructuring the Response+    ProvideAnomalyFeedbackResponse (..),+    newProvideAnomalyFeedbackResponse,++    -- * Response Lenses+    provideAnomalyFeedbackResponse_httpStatus,+    provideAnomalyFeedbackResponse_anomalyId,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CostExplorer.Types+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newProvideAnomalyFeedback' smart constructor.+data ProvideAnomalyFeedback = ProvideAnomalyFeedback'+  { -- | A cost anomaly ID.+    anomalyId :: Prelude.Text,+    -- | Describes whether the cost anomaly was a planned activity or you+    -- considered it an anomaly.+    feedback :: AnomalyFeedbackType+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ProvideAnomalyFeedback' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'anomalyId', 'provideAnomalyFeedback_anomalyId' - A cost anomaly ID.+--+-- 'feedback', 'provideAnomalyFeedback_feedback' - Describes whether the cost anomaly was a planned activity or you+-- considered it an anomaly.+newProvideAnomalyFeedback ::+  -- | 'anomalyId'+  Prelude.Text ->+  -- | 'feedback'+  AnomalyFeedbackType ->+  ProvideAnomalyFeedback+newProvideAnomalyFeedback pAnomalyId_ pFeedback_ =+  ProvideAnomalyFeedback'+    { anomalyId = pAnomalyId_,+      feedback = pFeedback_+    }++-- | A cost anomaly ID.+provideAnomalyFeedback_anomalyId :: Lens.Lens' ProvideAnomalyFeedback Prelude.Text+provideAnomalyFeedback_anomalyId = Lens.lens (\ProvideAnomalyFeedback' {anomalyId} -> anomalyId) (\s@ProvideAnomalyFeedback' {} a -> s {anomalyId = a} :: ProvideAnomalyFeedback)++-- | Describes whether the cost anomaly was a planned activity or you+-- considered it an anomaly.+provideAnomalyFeedback_feedback :: Lens.Lens' ProvideAnomalyFeedback AnomalyFeedbackType+provideAnomalyFeedback_feedback = Lens.lens (\ProvideAnomalyFeedback' {feedback} -> feedback) (\s@ProvideAnomalyFeedback' {} a -> s {feedback = a} :: ProvideAnomalyFeedback)++instance Core.AWSRequest ProvideAnomalyFeedback where+  type+    AWSResponse ProvideAnomalyFeedback =+      ProvideAnomalyFeedbackResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          ProvideAnomalyFeedbackResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "AnomalyId")+      )++instance Prelude.Hashable ProvideAnomalyFeedback where+  hashWithSalt _salt ProvideAnomalyFeedback' {..} =+    _salt+      `Prelude.hashWithSalt` anomalyId+      `Prelude.hashWithSalt` feedback++instance Prelude.NFData ProvideAnomalyFeedback where+  rnf ProvideAnomalyFeedback' {..} =+    Prelude.rnf anomalyId+      `Prelude.seq` Prelude.rnf feedback++instance Data.ToHeaders ProvideAnomalyFeedback where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSInsightsIndexService.ProvideAnomalyFeedback" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON ProvideAnomalyFeedback where+  toJSON ProvideAnomalyFeedback' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("AnomalyId" Data..= anomalyId),+            Prelude.Just ("Feedback" Data..= feedback)+          ]+      )++instance Data.ToPath ProvideAnomalyFeedback where+  toPath = Prelude.const "/"++instance Data.ToQuery ProvideAnomalyFeedback where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newProvideAnomalyFeedbackResponse' smart constructor.+data ProvideAnomalyFeedbackResponse = ProvideAnomalyFeedbackResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | The ID of the modified cost anomaly.+    anomalyId :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ProvideAnomalyFeedbackResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'provideAnomalyFeedbackResponse_httpStatus' - The response's http status code.+--+-- 'anomalyId', 'provideAnomalyFeedbackResponse_anomalyId' - The ID of the modified cost anomaly.+newProvideAnomalyFeedbackResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'anomalyId'+  Prelude.Text ->+  ProvideAnomalyFeedbackResponse+newProvideAnomalyFeedbackResponse+  pHttpStatus_+  pAnomalyId_ =+    ProvideAnomalyFeedbackResponse'+      { httpStatus =+          pHttpStatus_,+        anomalyId = pAnomalyId_+      }++-- | The response's http status code.+provideAnomalyFeedbackResponse_httpStatus :: Lens.Lens' ProvideAnomalyFeedbackResponse Prelude.Int+provideAnomalyFeedbackResponse_httpStatus = Lens.lens (\ProvideAnomalyFeedbackResponse' {httpStatus} -> httpStatus) (\s@ProvideAnomalyFeedbackResponse' {} a -> s {httpStatus = a} :: ProvideAnomalyFeedbackResponse)++-- | The ID of the modified cost anomaly.+provideAnomalyFeedbackResponse_anomalyId :: Lens.Lens' ProvideAnomalyFeedbackResponse Prelude.Text+provideAnomalyFeedbackResponse_anomalyId = Lens.lens (\ProvideAnomalyFeedbackResponse' {anomalyId} -> anomalyId) (\s@ProvideAnomalyFeedbackResponse' {} a -> s {anomalyId = a} :: ProvideAnomalyFeedbackResponse)++instance+  Prelude.NFData+    ProvideAnomalyFeedbackResponse+  where+  rnf ProvideAnomalyFeedbackResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf anomalyId
+ gen/Amazonka/CostExplorer/StartSavingsPlansPurchaseRecommendationGeneration.hs view
@@ -0,0 +1,210 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.StartSavingsPlansPurchaseRecommendationGeneration+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Requests a Savings Plans recommendation generation. This enables you to+-- calculate a fresh set of Savings Plans recommendations that takes your+-- latest usage data and current Savings Plans inventory into account. You+-- can refresh Savings Plans recommendations up to three times daily for a+-- consolidated billing family.+--+-- @StartSavingsPlansPurchaseRecommendationGeneration@ has no request+-- syntax because no input parameters are needed to support this operation.+module Amazonka.CostExplorer.StartSavingsPlansPurchaseRecommendationGeneration+  ( -- * Creating a Request+    StartSavingsPlansPurchaseRecommendationGeneration (..),+    newStartSavingsPlansPurchaseRecommendationGeneration,++    -- * Destructuring the Response+    StartSavingsPlansPurchaseRecommendationGenerationResponse (..),+    newStartSavingsPlansPurchaseRecommendationGenerationResponse,++    -- * Response Lenses+    startSavingsPlansPurchaseRecommendationGenerationResponse_estimatedCompletionTime,+    startSavingsPlansPurchaseRecommendationGenerationResponse_generationStartedTime,+    startSavingsPlansPurchaseRecommendationGenerationResponse_recommendationId,+    startSavingsPlansPurchaseRecommendationGenerationResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CostExplorer.Types+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newStartSavingsPlansPurchaseRecommendationGeneration' smart constructor.+data StartSavingsPlansPurchaseRecommendationGeneration = StartSavingsPlansPurchaseRecommendationGeneration'+  {+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StartSavingsPlansPurchaseRecommendationGeneration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+newStartSavingsPlansPurchaseRecommendationGeneration ::+  StartSavingsPlansPurchaseRecommendationGeneration+newStartSavingsPlansPurchaseRecommendationGeneration =+  StartSavingsPlansPurchaseRecommendationGeneration'++instance+  Core.AWSRequest+    StartSavingsPlansPurchaseRecommendationGeneration+  where+  type+    AWSResponse+      StartSavingsPlansPurchaseRecommendationGeneration =+      StartSavingsPlansPurchaseRecommendationGenerationResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          StartSavingsPlansPurchaseRecommendationGenerationResponse'+            Prelude.<$> (x Data..?> "EstimatedCompletionTime")+            Prelude.<*> (x Data..?> "GenerationStartedTime")+            Prelude.<*> (x Data..?> "RecommendationId")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    StartSavingsPlansPurchaseRecommendationGeneration+  where+  hashWithSalt _salt _ =+    _salt `Prelude.hashWithSalt` ()++instance+  Prelude.NFData+    StartSavingsPlansPurchaseRecommendationGeneration+  where+  rnf _ = ()++instance+  Data.ToHeaders+    StartSavingsPlansPurchaseRecommendationGeneration+  where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSInsightsIndexService.StartSavingsPlansPurchaseRecommendationGeneration" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance+  Data.ToJSON+    StartSavingsPlansPurchaseRecommendationGeneration+  where+  toJSON = Prelude.const (Data.Object Prelude.mempty)++instance+  Data.ToPath+    StartSavingsPlansPurchaseRecommendationGeneration+  where+  toPath = Prelude.const "/"++instance+  Data.ToQuery+    StartSavingsPlansPurchaseRecommendationGeneration+  where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newStartSavingsPlansPurchaseRecommendationGenerationResponse' smart constructor.+data StartSavingsPlansPurchaseRecommendationGenerationResponse = StartSavingsPlansPurchaseRecommendationGenerationResponse'+  { -- | The estimated time for when the recommendation generation will complete.+    estimatedCompletionTime :: Prelude.Maybe Prelude.Text,+    -- | The start time of the recommendation generation.+    generationStartedTime :: Prelude.Maybe Prelude.Text,+    -- | The ID for this specific recommendation.+    recommendationId :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'StartSavingsPlansPurchaseRecommendationGenerationResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'estimatedCompletionTime', 'startSavingsPlansPurchaseRecommendationGenerationResponse_estimatedCompletionTime' - The estimated time for when the recommendation generation will complete.+--+-- 'generationStartedTime', 'startSavingsPlansPurchaseRecommendationGenerationResponse_generationStartedTime' - The start time of the recommendation generation.+--+-- 'recommendationId', 'startSavingsPlansPurchaseRecommendationGenerationResponse_recommendationId' - The ID for this specific recommendation.+--+-- 'httpStatus', 'startSavingsPlansPurchaseRecommendationGenerationResponse_httpStatus' - The response's http status code.+newStartSavingsPlansPurchaseRecommendationGenerationResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  StartSavingsPlansPurchaseRecommendationGenerationResponse+newStartSavingsPlansPurchaseRecommendationGenerationResponse+  pHttpStatus_ =+    StartSavingsPlansPurchaseRecommendationGenerationResponse'+      { estimatedCompletionTime =+          Prelude.Nothing,+        generationStartedTime =+          Prelude.Nothing,+        recommendationId =+          Prelude.Nothing,+        httpStatus =+          pHttpStatus_+      }++-- | The estimated time for when the recommendation generation will complete.+startSavingsPlansPurchaseRecommendationGenerationResponse_estimatedCompletionTime :: Lens.Lens' StartSavingsPlansPurchaseRecommendationGenerationResponse (Prelude.Maybe Prelude.Text)+startSavingsPlansPurchaseRecommendationGenerationResponse_estimatedCompletionTime = Lens.lens (\StartSavingsPlansPurchaseRecommendationGenerationResponse' {estimatedCompletionTime} -> estimatedCompletionTime) (\s@StartSavingsPlansPurchaseRecommendationGenerationResponse' {} a -> s {estimatedCompletionTime = a} :: StartSavingsPlansPurchaseRecommendationGenerationResponse)++-- | The start time of the recommendation generation.+startSavingsPlansPurchaseRecommendationGenerationResponse_generationStartedTime :: Lens.Lens' StartSavingsPlansPurchaseRecommendationGenerationResponse (Prelude.Maybe Prelude.Text)+startSavingsPlansPurchaseRecommendationGenerationResponse_generationStartedTime = Lens.lens (\StartSavingsPlansPurchaseRecommendationGenerationResponse' {generationStartedTime} -> generationStartedTime) (\s@StartSavingsPlansPurchaseRecommendationGenerationResponse' {} a -> s {generationStartedTime = a} :: StartSavingsPlansPurchaseRecommendationGenerationResponse)++-- | The ID for this specific recommendation.+startSavingsPlansPurchaseRecommendationGenerationResponse_recommendationId :: Lens.Lens' StartSavingsPlansPurchaseRecommendationGenerationResponse (Prelude.Maybe Prelude.Text)+startSavingsPlansPurchaseRecommendationGenerationResponse_recommendationId = Lens.lens (\StartSavingsPlansPurchaseRecommendationGenerationResponse' {recommendationId} -> recommendationId) (\s@StartSavingsPlansPurchaseRecommendationGenerationResponse' {} a -> s {recommendationId = a} :: StartSavingsPlansPurchaseRecommendationGenerationResponse)++-- | The response's http status code.+startSavingsPlansPurchaseRecommendationGenerationResponse_httpStatus :: Lens.Lens' StartSavingsPlansPurchaseRecommendationGenerationResponse Prelude.Int+startSavingsPlansPurchaseRecommendationGenerationResponse_httpStatus = Lens.lens (\StartSavingsPlansPurchaseRecommendationGenerationResponse' {httpStatus} -> httpStatus) (\s@StartSavingsPlansPurchaseRecommendationGenerationResponse' {} a -> s {httpStatus = a} :: StartSavingsPlansPurchaseRecommendationGenerationResponse)++instance+  Prelude.NFData+    StartSavingsPlansPurchaseRecommendationGenerationResponse+  where+  rnf+    StartSavingsPlansPurchaseRecommendationGenerationResponse' {..} =+      Prelude.rnf estimatedCompletionTime+        `Prelude.seq` Prelude.rnf generationStartedTime+        `Prelude.seq` Prelude.rnf recommendationId+        `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/CostExplorer/TagResource.hs view
@@ -0,0 +1,247 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.TagResource+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- An API operation for adding one or more tags (key-value pairs) to a+-- resource.+--+-- You can use the @TagResource@ operation with a resource that already has+-- tags. If you specify a new tag key for the resource, this tag is+-- appended to the list of tags associated with the resource. If you+-- specify a tag key that is already associated with the resource, the new+-- tag value you specify replaces the previous value for that tag.+--+-- Although the maximum number of array members is 200, user-tag maximum is+-- 50. The remaining are reserved for Amazon Web Services use.+module Amazonka.CostExplorer.TagResource+  ( -- * Creating a Request+    TagResource (..),+    newTagResource,++    -- * Request Lenses+    tagResource_resourceArn,+    tagResource_resourceTags,++    -- * Destructuring the Response+    TagResourceResponse (..),+    newTagResourceResponse,++    -- * Response Lenses+    tagResourceResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CostExplorer.Types+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newTagResource' smart constructor.+data TagResource = TagResource'+  { -- | The Amazon Resource Name (ARN) of the resource. For a list of supported+    -- resources, see+    -- <https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_ResourceTag.html ResourceTag>.+    resourceArn :: Prelude.Text,+    -- | A list of tag key-value pairs to be added to the resource.+    --+    -- Each tag consists of a key and a value, and each key must be unique for+    -- the resource. The following restrictions apply to resource tags:+    --+    -- -   Although the maximum number of array members is 200, you can assign+    --     a maximum of 50 user-tags to one resource. The remaining are+    --     reserved for Amazon Web Services use+    --+    -- -   The maximum length of a key is 128 characters+    --+    -- -   The maximum length of a value is 256 characters+    --+    -- -   Keys and values can only contain alphanumeric characters, spaces,+    --     and any of the following: @_.:\/=+\@-@+    --+    -- -   Keys and values are case sensitive+    --+    -- -   Keys and values are trimmed for any leading or trailing whitespaces+    --+    -- -   Don’t use @aws:@ as a prefix for your keys. This prefix is reserved+    --     for Amazon Web Services use+    resourceTags :: [ResourceTag]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TagResource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'resourceArn', 'tagResource_resourceArn' - The Amazon Resource Name (ARN) of the resource. For a list of supported+-- resources, see+-- <https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_ResourceTag.html ResourceTag>.+--+-- 'resourceTags', 'tagResource_resourceTags' - A list of tag key-value pairs to be added to the resource.+--+-- Each tag consists of a key and a value, and each key must be unique for+-- the resource. The following restrictions apply to resource tags:+--+-- -   Although the maximum number of array members is 200, you can assign+--     a maximum of 50 user-tags to one resource. The remaining are+--     reserved for Amazon Web Services use+--+-- -   The maximum length of a key is 128 characters+--+-- -   The maximum length of a value is 256 characters+--+-- -   Keys and values can only contain alphanumeric characters, spaces,+--     and any of the following: @_.:\/=+\@-@+--+-- -   Keys and values are case sensitive+--+-- -   Keys and values are trimmed for any leading or trailing whitespaces+--+-- -   Don’t use @aws:@ as a prefix for your keys. This prefix is reserved+--     for Amazon Web Services use+newTagResource ::+  -- | 'resourceArn'+  Prelude.Text ->+  TagResource+newTagResource pResourceArn_ =+  TagResource'+    { resourceArn = pResourceArn_,+      resourceTags = Prelude.mempty+    }++-- | The Amazon Resource Name (ARN) of the resource. For a list of supported+-- resources, see+-- <https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_ResourceTag.html ResourceTag>.+tagResource_resourceArn :: Lens.Lens' TagResource Prelude.Text+tagResource_resourceArn = Lens.lens (\TagResource' {resourceArn} -> resourceArn) (\s@TagResource' {} a -> s {resourceArn = a} :: TagResource)++-- | A list of tag key-value pairs to be added to the resource.+--+-- Each tag consists of a key and a value, and each key must be unique for+-- the resource. The following restrictions apply to resource tags:+--+-- -   Although the maximum number of array members is 200, you can assign+--     a maximum of 50 user-tags to one resource. The remaining are+--     reserved for Amazon Web Services use+--+-- -   The maximum length of a key is 128 characters+--+-- -   The maximum length of a value is 256 characters+--+-- -   Keys and values can only contain alphanumeric characters, spaces,+--     and any of the following: @_.:\/=+\@-@+--+-- -   Keys and values are case sensitive+--+-- -   Keys and values are trimmed for any leading or trailing whitespaces+--+-- -   Don’t use @aws:@ as a prefix for your keys. This prefix is reserved+--     for Amazon Web Services use+tagResource_resourceTags :: Lens.Lens' TagResource [ResourceTag]+tagResource_resourceTags = Lens.lens (\TagResource' {resourceTags} -> resourceTags) (\s@TagResource' {} a -> s {resourceTags = a} :: TagResource) Prelude.. Lens.coerced++instance Core.AWSRequest TagResource where+  type AWSResponse TagResource = TagResourceResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          TagResourceResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable TagResource where+  hashWithSalt _salt TagResource' {..} =+    _salt+      `Prelude.hashWithSalt` resourceArn+      `Prelude.hashWithSalt` resourceTags++instance Prelude.NFData TagResource where+  rnf TagResource' {..} =+    Prelude.rnf resourceArn+      `Prelude.seq` Prelude.rnf resourceTags++instance Data.ToHeaders TagResource where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSInsightsIndexService.TagResource" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON TagResource where+  toJSON TagResource' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("ResourceArn" Data..= resourceArn),+            Prelude.Just ("ResourceTags" Data..= resourceTags)+          ]+      )++instance Data.ToPath TagResource where+  toPath = Prelude.const "/"++instance Data.ToQuery TagResource where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newTagResourceResponse' smart constructor.+data TagResourceResponse = TagResourceResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TagResourceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'tagResourceResponse_httpStatus' - The response's http status code.+newTagResourceResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  TagResourceResponse+newTagResourceResponse pHttpStatus_ =+  TagResourceResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+tagResourceResponse_httpStatus :: Lens.Lens' TagResourceResponse Prelude.Int+tagResourceResponse_httpStatus = Lens.lens (\TagResourceResponse' {httpStatus} -> httpStatus) (\s@TagResourceResponse' {} a -> s {httpStatus = a} :: TagResourceResponse)++instance Prelude.NFData TagResourceResponse where+  rnf TagResourceResponse' {..} = Prelude.rnf httpStatus
+ gen/Amazonka/CostExplorer/Types.hs view
@@ -0,0 +1,1121 @@+{-# 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.CostExplorer.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.CostExplorer.Types+  ( -- * Service Configuration+    defaultService,++    -- * Errors+    _BillExpirationException,+    _DataUnavailableException,+    _GenerationExistsException,+    _InvalidNextTokenException,+    _LimitExceededException,+    _RequestChangedException,+    _ResourceNotFoundException,+    _ServiceQuotaExceededException,+    _TooManyTagsException,+    _UnknownMonitorException,+    _UnknownSubscriptionException,+    _UnresolvableUsageUnitException,++    -- * AccountScope+    AccountScope (..),++    -- * AnomalyFeedbackType+    AnomalyFeedbackType (..),++    -- * AnomalySubscriptionFrequency+    AnomalySubscriptionFrequency (..),++    -- * Context+    Context (..),++    -- * CostAllocationTagStatus+    CostAllocationTagStatus (..),++    -- * CostAllocationTagType+    CostAllocationTagType (..),++    -- * CostCategoryInheritedValueDimensionName+    CostCategoryInheritedValueDimensionName (..),++    -- * CostCategoryRuleType+    CostCategoryRuleType (..),++    -- * CostCategoryRuleVersion+    CostCategoryRuleVersion (..),++    -- * CostCategorySplitChargeMethod+    CostCategorySplitChargeMethod (..),++    -- * CostCategorySplitChargeRuleParameterType+    CostCategorySplitChargeRuleParameterType (..),++    -- * CostCategoryStatus+    CostCategoryStatus (..),++    -- * CostCategoryStatusComponent+    CostCategoryStatusComponent (..),++    -- * Dimension+    Dimension (..),++    -- * FindingReasonCode+    FindingReasonCode (..),++    -- * GenerationStatus+    GenerationStatus (..),++    -- * Granularity+    Granularity (..),++    -- * GroupDefinitionType+    GroupDefinitionType (..),++    -- * LookbackPeriodInDays+    LookbackPeriodInDays (..),++    -- * MatchOption+    MatchOption (..),++    -- * Metric+    Metric (..),++    -- * MonitorDimension+    MonitorDimension (..),++    -- * MonitorType+    MonitorType (..),++    -- * NumericOperator+    NumericOperator (..),++    -- * OfferingClass+    OfferingClass (..),++    -- * PaymentOption+    PaymentOption (..),++    -- * PlatformDifference+    PlatformDifference (..),++    -- * RecommendationTarget+    RecommendationTarget (..),++    -- * RightsizingType+    RightsizingType (..),++    -- * SavingsPlansDataType+    SavingsPlansDataType (..),++    -- * SortOrder+    SortOrder (..),++    -- * SubscriberStatus+    SubscriberStatus (..),++    -- * SubscriberType+    SubscriberType (..),++    -- * SupportedSavingsPlansType+    SupportedSavingsPlansType (..),++    -- * TermInYears+    TermInYears (..),++    -- * Anomaly+    Anomaly (..),+    newAnomaly,+    anomaly_anomalyEndDate,+    anomaly_anomalyStartDate,+    anomaly_dimensionValue,+    anomaly_feedback,+    anomaly_rootCauses,+    anomaly_anomalyId,+    anomaly_anomalyScore,+    anomaly_impact,+    anomaly_monitorArn,++    -- * AnomalyDateInterval+    AnomalyDateInterval (..),+    newAnomalyDateInterval,+    anomalyDateInterval_endDate,+    anomalyDateInterval_startDate,++    -- * AnomalyMonitor+    AnomalyMonitor (..),+    newAnomalyMonitor,+    anomalyMonitor_creationDate,+    anomalyMonitor_dimensionalValueCount,+    anomalyMonitor_lastEvaluatedDate,+    anomalyMonitor_lastUpdatedDate,+    anomalyMonitor_monitorArn,+    anomalyMonitor_monitorDimension,+    anomalyMonitor_monitorSpecification,+    anomalyMonitor_monitorName,+    anomalyMonitor_monitorType,++    -- * AnomalyScore+    AnomalyScore (..),+    newAnomalyScore,+    anomalyScore_maxScore,+    anomalyScore_currentScore,++    -- * AnomalySubscription+    AnomalySubscription (..),+    newAnomalySubscription,+    anomalySubscription_accountId,+    anomalySubscription_subscriptionArn,+    anomalySubscription_threshold,+    anomalySubscription_thresholdExpression,+    anomalySubscription_monitorArnList,+    anomalySubscription_subscribers,+    anomalySubscription_frequency,+    anomalySubscription_subscriptionName,++    -- * CostAllocationTag+    CostAllocationTag (..),+    newCostAllocationTag,+    costAllocationTag_tagKey,+    costAllocationTag_type,+    costAllocationTag_status,++    -- * CostAllocationTagStatusEntry+    CostAllocationTagStatusEntry (..),+    newCostAllocationTagStatusEntry,+    costAllocationTagStatusEntry_tagKey,+    costAllocationTagStatusEntry_status,++    -- * CostCategory+    CostCategory (..),+    newCostCategory,+    costCategory_defaultValue,+    costCategory_effectiveEnd,+    costCategory_processingStatus,+    costCategory_splitChargeRules,+    costCategory_costCategoryArn,+    costCategory_effectiveStart,+    costCategory_name,+    costCategory_ruleVersion,+    costCategory_rules,++    -- * CostCategoryInheritedValueDimension+    CostCategoryInheritedValueDimension (..),+    newCostCategoryInheritedValueDimension,+    costCategoryInheritedValueDimension_dimensionKey,+    costCategoryInheritedValueDimension_dimensionName,++    -- * CostCategoryProcessingStatus+    CostCategoryProcessingStatus (..),+    newCostCategoryProcessingStatus,+    costCategoryProcessingStatus_component,+    costCategoryProcessingStatus_status,++    -- * CostCategoryReference+    CostCategoryReference (..),+    newCostCategoryReference,+    costCategoryReference_costCategoryArn,+    costCategoryReference_defaultValue,+    costCategoryReference_effectiveEnd,+    costCategoryReference_effectiveStart,+    costCategoryReference_name,+    costCategoryReference_numberOfRules,+    costCategoryReference_processingStatus,+    costCategoryReference_values,++    -- * CostCategoryRule+    CostCategoryRule (..),+    newCostCategoryRule,+    costCategoryRule_inheritedValue,+    costCategoryRule_rule,+    costCategoryRule_type,+    costCategoryRule_value,++    -- * CostCategorySplitChargeRule+    CostCategorySplitChargeRule (..),+    newCostCategorySplitChargeRule,+    costCategorySplitChargeRule_parameters,+    costCategorySplitChargeRule_source,+    costCategorySplitChargeRule_targets,+    costCategorySplitChargeRule_method,++    -- * CostCategorySplitChargeRuleParameter+    CostCategorySplitChargeRuleParameter (..),+    newCostCategorySplitChargeRuleParameter,+    costCategorySplitChargeRuleParameter_type,+    costCategorySplitChargeRuleParameter_values,++    -- * CostCategoryValues+    CostCategoryValues (..),+    newCostCategoryValues,+    costCategoryValues_key,+    costCategoryValues_matchOptions,+    costCategoryValues_values,++    -- * Coverage+    Coverage (..),+    newCoverage,+    coverage_coverageCost,+    coverage_coverageHours,+    coverage_coverageNormalizedUnits,++    -- * CoverageByTime+    CoverageByTime (..),+    newCoverageByTime,+    coverageByTime_groups,+    coverageByTime_timePeriod,+    coverageByTime_total,++    -- * CoverageCost+    CoverageCost (..),+    newCoverageCost,+    coverageCost_onDemandCost,++    -- * CoverageHours+    CoverageHours (..),+    newCoverageHours,+    coverageHours_coverageHoursPercentage,+    coverageHours_onDemandHours,+    coverageHours_reservedHours,+    coverageHours_totalRunningHours,++    -- * CoverageNormalizedUnits+    CoverageNormalizedUnits (..),+    newCoverageNormalizedUnits,+    coverageNormalizedUnits_coverageNormalizedUnitsPercentage,+    coverageNormalizedUnits_onDemandNormalizedUnits,+    coverageNormalizedUnits_reservedNormalizedUnits,+    coverageNormalizedUnits_totalRunningNormalizedUnits,++    -- * CurrentInstance+    CurrentInstance (..),+    newCurrentInstance,+    currentInstance_currencyCode,+    currentInstance_instanceName,+    currentInstance_monthlyCost,+    currentInstance_onDemandHoursInLookbackPeriod,+    currentInstance_reservationCoveredHoursInLookbackPeriod,+    currentInstance_resourceDetails,+    currentInstance_resourceId,+    currentInstance_resourceUtilization,+    currentInstance_savingsPlansCoveredHoursInLookbackPeriod,+    currentInstance_tags,+    currentInstance_totalRunningHoursInLookbackPeriod,++    -- * DateInterval+    DateInterval (..),+    newDateInterval,+    dateInterval_start,+    dateInterval_end,++    -- * DimensionValues+    DimensionValues (..),+    newDimensionValues,+    dimensionValues_key,+    dimensionValues_matchOptions,+    dimensionValues_values,++    -- * DimensionValuesWithAttributes+    DimensionValuesWithAttributes (..),+    newDimensionValuesWithAttributes,+    dimensionValuesWithAttributes_attributes,+    dimensionValuesWithAttributes_value,++    -- * DiskResourceUtilization+    DiskResourceUtilization (..),+    newDiskResourceUtilization,+    diskResourceUtilization_diskReadBytesPerSecond,+    diskResourceUtilization_diskReadOpsPerSecond,+    diskResourceUtilization_diskWriteBytesPerSecond,+    diskResourceUtilization_diskWriteOpsPerSecond,++    -- * EBSResourceUtilization+    EBSResourceUtilization (..),+    newEBSResourceUtilization,+    eBSResourceUtilization_ebsReadBytesPerSecond,+    eBSResourceUtilization_ebsReadOpsPerSecond,+    eBSResourceUtilization_ebsWriteBytesPerSecond,+    eBSResourceUtilization_ebsWriteOpsPerSecond,++    -- * EC2InstanceDetails+    EC2InstanceDetails (..),+    newEC2InstanceDetails,+    eC2InstanceDetails_availabilityZone,+    eC2InstanceDetails_currentGeneration,+    eC2InstanceDetails_family,+    eC2InstanceDetails_instanceType,+    eC2InstanceDetails_platform,+    eC2InstanceDetails_region,+    eC2InstanceDetails_sizeFlexEligible,+    eC2InstanceDetails_tenancy,++    -- * EC2ResourceDetails+    EC2ResourceDetails (..),+    newEC2ResourceDetails,+    eC2ResourceDetails_hourlyOnDemandRate,+    eC2ResourceDetails_instanceType,+    eC2ResourceDetails_memory,+    eC2ResourceDetails_networkPerformance,+    eC2ResourceDetails_platform,+    eC2ResourceDetails_region,+    eC2ResourceDetails_sku,+    eC2ResourceDetails_storage,+    eC2ResourceDetails_vcpu,++    -- * EC2ResourceUtilization+    EC2ResourceUtilization (..),+    newEC2ResourceUtilization,+    eC2ResourceUtilization_diskResourceUtilization,+    eC2ResourceUtilization_eBSResourceUtilization,+    eC2ResourceUtilization_maxCpuUtilizationPercentage,+    eC2ResourceUtilization_maxMemoryUtilizationPercentage,+    eC2ResourceUtilization_maxStorageUtilizationPercentage,+    eC2ResourceUtilization_networkResourceUtilization,++    -- * EC2Specification+    EC2Specification (..),+    newEC2Specification,+    eC2Specification_offeringClass,++    -- * ESInstanceDetails+    ESInstanceDetails (..),+    newESInstanceDetails,+    eSInstanceDetails_currentGeneration,+    eSInstanceDetails_instanceClass,+    eSInstanceDetails_instanceSize,+    eSInstanceDetails_region,+    eSInstanceDetails_sizeFlexEligible,++    -- * ElastiCacheInstanceDetails+    ElastiCacheInstanceDetails (..),+    newElastiCacheInstanceDetails,+    elastiCacheInstanceDetails_currentGeneration,+    elastiCacheInstanceDetails_family,+    elastiCacheInstanceDetails_nodeType,+    elastiCacheInstanceDetails_productDescription,+    elastiCacheInstanceDetails_region,+    elastiCacheInstanceDetails_sizeFlexEligible,++    -- * Expression+    Expression (..),+    newExpression,+    expression_and,+    expression_costCategories,+    expression_dimensions,+    expression_not,+    expression_or,+    expression_tags,++    -- * ForecastResult+    ForecastResult (..),+    newForecastResult,+    forecastResult_meanValue,+    forecastResult_predictionIntervalLowerBound,+    forecastResult_predictionIntervalUpperBound,+    forecastResult_timePeriod,++    -- * GenerationSummary+    GenerationSummary (..),+    newGenerationSummary,+    generationSummary_estimatedCompletionTime,+    generationSummary_generationCompletionTime,+    generationSummary_generationStartedTime,+    generationSummary_generationStatus,+    generationSummary_recommendationId,++    -- * Group+    Group (..),+    newGroup,+    group_keys,+    group_metrics,++    -- * GroupDefinition+    GroupDefinition (..),+    newGroupDefinition,+    groupDefinition_key,+    groupDefinition_type,++    -- * Impact+    Impact (..),+    newImpact,+    impact_totalActualSpend,+    impact_totalExpectedSpend,+    impact_totalImpact,+    impact_totalImpactPercentage,+    impact_maxImpact,++    -- * InstanceDetails+    InstanceDetails (..),+    newInstanceDetails,+    instanceDetails_eC2InstanceDetails,+    instanceDetails_eSInstanceDetails,+    instanceDetails_elastiCacheInstanceDetails,+    instanceDetails_rDSInstanceDetails,+    instanceDetails_redshiftInstanceDetails,++    -- * MetricValue+    MetricValue (..),+    newMetricValue,+    metricValue_amount,+    metricValue_unit,++    -- * ModifyRecommendationDetail+    ModifyRecommendationDetail (..),+    newModifyRecommendationDetail,+    modifyRecommendationDetail_targetInstances,++    -- * NetworkResourceUtilization+    NetworkResourceUtilization (..),+    newNetworkResourceUtilization,+    networkResourceUtilization_networkInBytesPerSecond,+    networkResourceUtilization_networkOutBytesPerSecond,+    networkResourceUtilization_networkPacketsInPerSecond,+    networkResourceUtilization_networkPacketsOutPerSecond,++    -- * RDSInstanceDetails+    RDSInstanceDetails (..),+    newRDSInstanceDetails,+    rDSInstanceDetails_currentGeneration,+    rDSInstanceDetails_databaseEdition,+    rDSInstanceDetails_databaseEngine,+    rDSInstanceDetails_deploymentOption,+    rDSInstanceDetails_family,+    rDSInstanceDetails_instanceType,+    rDSInstanceDetails_licenseModel,+    rDSInstanceDetails_region,+    rDSInstanceDetails_sizeFlexEligible,++    -- * RedshiftInstanceDetails+    RedshiftInstanceDetails (..),+    newRedshiftInstanceDetails,+    redshiftInstanceDetails_currentGeneration,+    redshiftInstanceDetails_family,+    redshiftInstanceDetails_nodeType,+    redshiftInstanceDetails_region,+    redshiftInstanceDetails_sizeFlexEligible,++    -- * ReservationAggregates+    ReservationAggregates (..),+    newReservationAggregates,+    reservationAggregates_amortizedRecurringFee,+    reservationAggregates_amortizedUpfrontFee,+    reservationAggregates_netRISavings,+    reservationAggregates_onDemandCostOfRIHoursUsed,+    reservationAggregates_purchasedHours,+    reservationAggregates_purchasedUnits,+    reservationAggregates_rICostForUnusedHours,+    reservationAggregates_realizedSavings,+    reservationAggregates_totalActualHours,+    reservationAggregates_totalActualUnits,+    reservationAggregates_totalAmortizedFee,+    reservationAggregates_totalPotentialRISavings,+    reservationAggregates_unrealizedSavings,+    reservationAggregates_unusedHours,+    reservationAggregates_unusedUnits,+    reservationAggregates_utilizationPercentage,+    reservationAggregates_utilizationPercentageInUnits,++    -- * ReservationCoverageGroup+    ReservationCoverageGroup (..),+    newReservationCoverageGroup,+    reservationCoverageGroup_attributes,+    reservationCoverageGroup_coverage,++    -- * ReservationPurchaseRecommendation+    ReservationPurchaseRecommendation (..),+    newReservationPurchaseRecommendation,+    reservationPurchaseRecommendation_accountScope,+    reservationPurchaseRecommendation_lookbackPeriodInDays,+    reservationPurchaseRecommendation_paymentOption,+    reservationPurchaseRecommendation_recommendationDetails,+    reservationPurchaseRecommendation_recommendationSummary,+    reservationPurchaseRecommendation_serviceSpecification,+    reservationPurchaseRecommendation_termInYears,++    -- * ReservationPurchaseRecommendationDetail+    ReservationPurchaseRecommendationDetail (..),+    newReservationPurchaseRecommendationDetail,+    reservationPurchaseRecommendationDetail_accountId,+    reservationPurchaseRecommendationDetail_averageNormalizedUnitsUsedPerHour,+    reservationPurchaseRecommendationDetail_averageNumberOfInstancesUsedPerHour,+    reservationPurchaseRecommendationDetail_averageUtilization,+    reservationPurchaseRecommendationDetail_currencyCode,+    reservationPurchaseRecommendationDetail_estimatedBreakEvenInMonths,+    reservationPurchaseRecommendationDetail_estimatedMonthlyOnDemandCost,+    reservationPurchaseRecommendationDetail_estimatedMonthlySavingsAmount,+    reservationPurchaseRecommendationDetail_estimatedMonthlySavingsPercentage,+    reservationPurchaseRecommendationDetail_estimatedReservationCostForLookbackPeriod,+    reservationPurchaseRecommendationDetail_instanceDetails,+    reservationPurchaseRecommendationDetail_maximumNormalizedUnitsUsedPerHour,+    reservationPurchaseRecommendationDetail_maximumNumberOfInstancesUsedPerHour,+    reservationPurchaseRecommendationDetail_minimumNormalizedUnitsUsedPerHour,+    reservationPurchaseRecommendationDetail_minimumNumberOfInstancesUsedPerHour,+    reservationPurchaseRecommendationDetail_recommendedNormalizedUnitsToPurchase,+    reservationPurchaseRecommendationDetail_recommendedNumberOfInstancesToPurchase,+    reservationPurchaseRecommendationDetail_recurringStandardMonthlyCost,+    reservationPurchaseRecommendationDetail_upfrontCost,++    -- * ReservationPurchaseRecommendationMetadata+    ReservationPurchaseRecommendationMetadata (..),+    newReservationPurchaseRecommendationMetadata,+    reservationPurchaseRecommendationMetadata_generationTimestamp,+    reservationPurchaseRecommendationMetadata_recommendationId,++    -- * ReservationPurchaseRecommendationSummary+    ReservationPurchaseRecommendationSummary (..),+    newReservationPurchaseRecommendationSummary,+    reservationPurchaseRecommendationSummary_currencyCode,+    reservationPurchaseRecommendationSummary_totalEstimatedMonthlySavingsAmount,+    reservationPurchaseRecommendationSummary_totalEstimatedMonthlySavingsPercentage,++    -- * ReservationUtilizationGroup+    ReservationUtilizationGroup (..),+    newReservationUtilizationGroup,+    reservationUtilizationGroup_attributes,+    reservationUtilizationGroup_key,+    reservationUtilizationGroup_utilization,+    reservationUtilizationGroup_value,++    -- * ResourceDetails+    ResourceDetails (..),+    newResourceDetails,+    resourceDetails_eC2ResourceDetails,++    -- * ResourceTag+    ResourceTag (..),+    newResourceTag,+    resourceTag_key,+    resourceTag_value,++    -- * ResourceUtilization+    ResourceUtilization (..),+    newResourceUtilization,+    resourceUtilization_eC2ResourceUtilization,++    -- * ResultByTime+    ResultByTime (..),+    newResultByTime,+    resultByTime_estimated,+    resultByTime_groups,+    resultByTime_timePeriod,+    resultByTime_total,++    -- * RightsizingRecommendation+    RightsizingRecommendation (..),+    newRightsizingRecommendation,+    rightsizingRecommendation_accountId,+    rightsizingRecommendation_currentInstance,+    rightsizingRecommendation_findingReasonCodes,+    rightsizingRecommendation_modifyRecommendationDetail,+    rightsizingRecommendation_rightsizingType,+    rightsizingRecommendation_terminateRecommendationDetail,++    -- * RightsizingRecommendationConfiguration+    RightsizingRecommendationConfiguration (..),+    newRightsizingRecommendationConfiguration,+    rightsizingRecommendationConfiguration_recommendationTarget,+    rightsizingRecommendationConfiguration_benefitsConsidered,++    -- * RightsizingRecommendationMetadata+    RightsizingRecommendationMetadata (..),+    newRightsizingRecommendationMetadata,+    rightsizingRecommendationMetadata_additionalMetadata,+    rightsizingRecommendationMetadata_generationTimestamp,+    rightsizingRecommendationMetadata_lookbackPeriodInDays,+    rightsizingRecommendationMetadata_recommendationId,++    -- * RightsizingRecommendationSummary+    RightsizingRecommendationSummary (..),+    newRightsizingRecommendationSummary,+    rightsizingRecommendationSummary_estimatedTotalMonthlySavingsAmount,+    rightsizingRecommendationSummary_savingsCurrencyCode,+    rightsizingRecommendationSummary_savingsPercentage,+    rightsizingRecommendationSummary_totalRecommendationCount,++    -- * RootCause+    RootCause (..),+    newRootCause,+    rootCause_linkedAccount,+    rootCause_linkedAccountName,+    rootCause_region,+    rootCause_service,+    rootCause_usageType,++    -- * SavingsPlansAmortizedCommitment+    SavingsPlansAmortizedCommitment (..),+    newSavingsPlansAmortizedCommitment,+    savingsPlansAmortizedCommitment_amortizedRecurringCommitment,+    savingsPlansAmortizedCommitment_amortizedUpfrontCommitment,+    savingsPlansAmortizedCommitment_totalAmortizedCommitment,++    -- * SavingsPlansCoverage+    SavingsPlansCoverage (..),+    newSavingsPlansCoverage,+    savingsPlansCoverage_attributes,+    savingsPlansCoverage_coverage,+    savingsPlansCoverage_timePeriod,++    -- * SavingsPlansCoverageData+    SavingsPlansCoverageData (..),+    newSavingsPlansCoverageData,+    savingsPlansCoverageData_coveragePercentage,+    savingsPlansCoverageData_onDemandCost,+    savingsPlansCoverageData_spendCoveredBySavingsPlans,+    savingsPlansCoverageData_totalCost,++    -- * SavingsPlansDetails+    SavingsPlansDetails (..),+    newSavingsPlansDetails,+    savingsPlansDetails_instanceFamily,+    savingsPlansDetails_offeringId,+    savingsPlansDetails_region,++    -- * SavingsPlansPurchaseRecommendation+    SavingsPlansPurchaseRecommendation (..),+    newSavingsPlansPurchaseRecommendation,+    savingsPlansPurchaseRecommendation_accountScope,+    savingsPlansPurchaseRecommendation_lookbackPeriodInDays,+    savingsPlansPurchaseRecommendation_paymentOption,+    savingsPlansPurchaseRecommendation_savingsPlansPurchaseRecommendationDetails,+    savingsPlansPurchaseRecommendation_savingsPlansPurchaseRecommendationSummary,+    savingsPlansPurchaseRecommendation_savingsPlansType,+    savingsPlansPurchaseRecommendation_termInYears,++    -- * SavingsPlansPurchaseRecommendationDetail+    SavingsPlansPurchaseRecommendationDetail (..),+    newSavingsPlansPurchaseRecommendationDetail,+    savingsPlansPurchaseRecommendationDetail_accountId,+    savingsPlansPurchaseRecommendationDetail_currencyCode,+    savingsPlansPurchaseRecommendationDetail_currentAverageHourlyOnDemandSpend,+    savingsPlansPurchaseRecommendationDetail_currentMaximumHourlyOnDemandSpend,+    savingsPlansPurchaseRecommendationDetail_currentMinimumHourlyOnDemandSpend,+    savingsPlansPurchaseRecommendationDetail_estimatedAverageUtilization,+    savingsPlansPurchaseRecommendationDetail_estimatedMonthlySavingsAmount,+    savingsPlansPurchaseRecommendationDetail_estimatedOnDemandCost,+    savingsPlansPurchaseRecommendationDetail_estimatedOnDemandCostWithCurrentCommitment,+    savingsPlansPurchaseRecommendationDetail_estimatedROI,+    savingsPlansPurchaseRecommendationDetail_estimatedSPCost,+    savingsPlansPurchaseRecommendationDetail_estimatedSavingsAmount,+    savingsPlansPurchaseRecommendationDetail_estimatedSavingsPercentage,+    savingsPlansPurchaseRecommendationDetail_hourlyCommitmentToPurchase,+    savingsPlansPurchaseRecommendationDetail_savingsPlansDetails,+    savingsPlansPurchaseRecommendationDetail_upfrontCost,++    -- * SavingsPlansPurchaseRecommendationMetadata+    SavingsPlansPurchaseRecommendationMetadata (..),+    newSavingsPlansPurchaseRecommendationMetadata,+    savingsPlansPurchaseRecommendationMetadata_additionalMetadata,+    savingsPlansPurchaseRecommendationMetadata_generationTimestamp,+    savingsPlansPurchaseRecommendationMetadata_recommendationId,++    -- * SavingsPlansPurchaseRecommendationSummary+    SavingsPlansPurchaseRecommendationSummary (..),+    newSavingsPlansPurchaseRecommendationSummary,+    savingsPlansPurchaseRecommendationSummary_currencyCode,+    savingsPlansPurchaseRecommendationSummary_currentOnDemandSpend,+    savingsPlansPurchaseRecommendationSummary_dailyCommitmentToPurchase,+    savingsPlansPurchaseRecommendationSummary_estimatedMonthlySavingsAmount,+    savingsPlansPurchaseRecommendationSummary_estimatedOnDemandCostWithCurrentCommitment,+    savingsPlansPurchaseRecommendationSummary_estimatedROI,+    savingsPlansPurchaseRecommendationSummary_estimatedSavingsAmount,+    savingsPlansPurchaseRecommendationSummary_estimatedSavingsPercentage,+    savingsPlansPurchaseRecommendationSummary_estimatedTotalCost,+    savingsPlansPurchaseRecommendationSummary_hourlyCommitmentToPurchase,+    savingsPlansPurchaseRecommendationSummary_totalRecommendationCount,++    -- * SavingsPlansSavings+    SavingsPlansSavings (..),+    newSavingsPlansSavings,+    savingsPlansSavings_netSavings,+    savingsPlansSavings_onDemandCostEquivalent,++    -- * SavingsPlansUtilization+    SavingsPlansUtilization (..),+    newSavingsPlansUtilization,+    savingsPlansUtilization_totalCommitment,+    savingsPlansUtilization_unusedCommitment,+    savingsPlansUtilization_usedCommitment,+    savingsPlansUtilization_utilizationPercentage,++    -- * SavingsPlansUtilizationAggregates+    SavingsPlansUtilizationAggregates (..),+    newSavingsPlansUtilizationAggregates,+    savingsPlansUtilizationAggregates_amortizedCommitment,+    savingsPlansUtilizationAggregates_savings,+    savingsPlansUtilizationAggregates_utilization,++    -- * SavingsPlansUtilizationByTime+    SavingsPlansUtilizationByTime (..),+    newSavingsPlansUtilizationByTime,+    savingsPlansUtilizationByTime_amortizedCommitment,+    savingsPlansUtilizationByTime_savings,+    savingsPlansUtilizationByTime_timePeriod,+    savingsPlansUtilizationByTime_utilization,++    -- * SavingsPlansUtilizationDetail+    SavingsPlansUtilizationDetail (..),+    newSavingsPlansUtilizationDetail,+    savingsPlansUtilizationDetail_amortizedCommitment,+    savingsPlansUtilizationDetail_attributes,+    savingsPlansUtilizationDetail_savings,+    savingsPlansUtilizationDetail_savingsPlanArn,+    savingsPlansUtilizationDetail_utilization,++    -- * ServiceSpecification+    ServiceSpecification (..),+    newServiceSpecification,+    serviceSpecification_eC2Specification,++    -- * SortDefinition+    SortDefinition (..),+    newSortDefinition,+    sortDefinition_sortOrder,+    sortDefinition_key,++    -- * Subscriber+    Subscriber (..),+    newSubscriber,+    subscriber_address,+    subscriber_status,+    subscriber_type,++    -- * TagValues+    TagValues (..),+    newTagValues,+    tagValues_key,+    tagValues_matchOptions,+    tagValues_values,++    -- * TargetInstance+    TargetInstance (..),+    newTargetInstance,+    targetInstance_currencyCode,+    targetInstance_defaultTargetInstance,+    targetInstance_estimatedMonthlyCost,+    targetInstance_estimatedMonthlySavings,+    targetInstance_expectedResourceUtilization,+    targetInstance_platformDifferences,+    targetInstance_resourceDetails,++    -- * TerminateRecommendationDetail+    TerminateRecommendationDetail (..),+    newTerminateRecommendationDetail,+    terminateRecommendationDetail_currencyCode,+    terminateRecommendationDetail_estimatedMonthlySavings,++    -- * TotalImpactFilter+    TotalImpactFilter (..),+    newTotalImpactFilter,+    totalImpactFilter_endValue,+    totalImpactFilter_numericOperator,+    totalImpactFilter_startValue,++    -- * UpdateCostAllocationTagsStatusError+    UpdateCostAllocationTagsStatusError (..),+    newUpdateCostAllocationTagsStatusError,+    updateCostAllocationTagsStatusError_code,+    updateCostAllocationTagsStatusError_message,+    updateCostAllocationTagsStatusError_tagKey,++    -- * UtilizationByTime+    UtilizationByTime (..),+    newUtilizationByTime,+    utilizationByTime_groups,+    utilizationByTime_timePeriod,+    utilizationByTime_total,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CostExplorer.Types.AccountScope+import Amazonka.CostExplorer.Types.Anomaly+import Amazonka.CostExplorer.Types.AnomalyDateInterval+import Amazonka.CostExplorer.Types.AnomalyFeedbackType+import Amazonka.CostExplorer.Types.AnomalyMonitor+import Amazonka.CostExplorer.Types.AnomalyScore+import Amazonka.CostExplorer.Types.AnomalySubscription+import Amazonka.CostExplorer.Types.AnomalySubscriptionFrequency+import Amazonka.CostExplorer.Types.Context+import Amazonka.CostExplorer.Types.CostAllocationTag+import Amazonka.CostExplorer.Types.CostAllocationTagStatus+import Amazonka.CostExplorer.Types.CostAllocationTagStatusEntry+import Amazonka.CostExplorer.Types.CostAllocationTagType+import Amazonka.CostExplorer.Types.CostCategory+import Amazonka.CostExplorer.Types.CostCategoryInheritedValueDimension+import Amazonka.CostExplorer.Types.CostCategoryInheritedValueDimensionName+import Amazonka.CostExplorer.Types.CostCategoryProcessingStatus+import Amazonka.CostExplorer.Types.CostCategoryReference+import Amazonka.CostExplorer.Types.CostCategoryRule+import Amazonka.CostExplorer.Types.CostCategoryRuleType+import Amazonka.CostExplorer.Types.CostCategoryRuleVersion+import Amazonka.CostExplorer.Types.CostCategorySplitChargeMethod+import Amazonka.CostExplorer.Types.CostCategorySplitChargeRule+import Amazonka.CostExplorer.Types.CostCategorySplitChargeRuleParameter+import Amazonka.CostExplorer.Types.CostCategorySplitChargeRuleParameterType+import Amazonka.CostExplorer.Types.CostCategoryStatus+import Amazonka.CostExplorer.Types.CostCategoryStatusComponent+import Amazonka.CostExplorer.Types.CostCategoryValues+import Amazonka.CostExplorer.Types.Coverage+import Amazonka.CostExplorer.Types.CoverageByTime+import Amazonka.CostExplorer.Types.CoverageCost+import Amazonka.CostExplorer.Types.CoverageHours+import Amazonka.CostExplorer.Types.CoverageNormalizedUnits+import Amazonka.CostExplorer.Types.CurrentInstance+import Amazonka.CostExplorer.Types.DateInterval+import Amazonka.CostExplorer.Types.Dimension+import Amazonka.CostExplorer.Types.DimensionValues+import Amazonka.CostExplorer.Types.DimensionValuesWithAttributes+import Amazonka.CostExplorer.Types.DiskResourceUtilization+import Amazonka.CostExplorer.Types.EBSResourceUtilization+import Amazonka.CostExplorer.Types.EC2InstanceDetails+import Amazonka.CostExplorer.Types.EC2ResourceDetails+import Amazonka.CostExplorer.Types.EC2ResourceUtilization+import Amazonka.CostExplorer.Types.EC2Specification+import Amazonka.CostExplorer.Types.ESInstanceDetails+import Amazonka.CostExplorer.Types.ElastiCacheInstanceDetails+import Amazonka.CostExplorer.Types.Expression+import Amazonka.CostExplorer.Types.FindingReasonCode+import Amazonka.CostExplorer.Types.ForecastResult+import Amazonka.CostExplorer.Types.GenerationStatus+import Amazonka.CostExplorer.Types.GenerationSummary+import Amazonka.CostExplorer.Types.Granularity+import Amazonka.CostExplorer.Types.Group+import Amazonka.CostExplorer.Types.GroupDefinition+import Amazonka.CostExplorer.Types.GroupDefinitionType+import Amazonka.CostExplorer.Types.Impact+import Amazonka.CostExplorer.Types.InstanceDetails+import Amazonka.CostExplorer.Types.LookbackPeriodInDays+import Amazonka.CostExplorer.Types.MatchOption+import Amazonka.CostExplorer.Types.Metric+import Amazonka.CostExplorer.Types.MetricValue+import Amazonka.CostExplorer.Types.ModifyRecommendationDetail+import Amazonka.CostExplorer.Types.MonitorDimension+import Amazonka.CostExplorer.Types.MonitorType+import Amazonka.CostExplorer.Types.NetworkResourceUtilization+import Amazonka.CostExplorer.Types.NumericOperator+import Amazonka.CostExplorer.Types.OfferingClass+import Amazonka.CostExplorer.Types.PaymentOption+import Amazonka.CostExplorer.Types.PlatformDifference+import Amazonka.CostExplorer.Types.RDSInstanceDetails+import Amazonka.CostExplorer.Types.RecommendationTarget+import Amazonka.CostExplorer.Types.RedshiftInstanceDetails+import Amazonka.CostExplorer.Types.ReservationAggregates+import Amazonka.CostExplorer.Types.ReservationCoverageGroup+import Amazonka.CostExplorer.Types.ReservationPurchaseRecommendation+import Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationDetail+import Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationMetadata+import Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationSummary+import Amazonka.CostExplorer.Types.ReservationUtilizationGroup+import Amazonka.CostExplorer.Types.ResourceDetails+import Amazonka.CostExplorer.Types.ResourceTag+import Amazonka.CostExplorer.Types.ResourceUtilization+import Amazonka.CostExplorer.Types.ResultByTime+import Amazonka.CostExplorer.Types.RightsizingRecommendation+import Amazonka.CostExplorer.Types.RightsizingRecommendationConfiguration+import Amazonka.CostExplorer.Types.RightsizingRecommendationMetadata+import Amazonka.CostExplorer.Types.RightsizingRecommendationSummary+import Amazonka.CostExplorer.Types.RightsizingType+import Amazonka.CostExplorer.Types.RootCause+import Amazonka.CostExplorer.Types.SavingsPlansAmortizedCommitment+import Amazonka.CostExplorer.Types.SavingsPlansCoverage+import Amazonka.CostExplorer.Types.SavingsPlansCoverageData+import Amazonka.CostExplorer.Types.SavingsPlansDataType+import Amazonka.CostExplorer.Types.SavingsPlansDetails+import Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendation+import Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationDetail+import Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationMetadata+import Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationSummary+import Amazonka.CostExplorer.Types.SavingsPlansSavings+import Amazonka.CostExplorer.Types.SavingsPlansUtilization+import Amazonka.CostExplorer.Types.SavingsPlansUtilizationAggregates+import Amazonka.CostExplorer.Types.SavingsPlansUtilizationByTime+import Amazonka.CostExplorer.Types.SavingsPlansUtilizationDetail+import Amazonka.CostExplorer.Types.ServiceSpecification+import Amazonka.CostExplorer.Types.SortDefinition+import Amazonka.CostExplorer.Types.SortOrder+import Amazonka.CostExplorer.Types.Subscriber+import Amazonka.CostExplorer.Types.SubscriberStatus+import Amazonka.CostExplorer.Types.SubscriberType+import Amazonka.CostExplorer.Types.SupportedSavingsPlansType+import Amazonka.CostExplorer.Types.TagValues+import Amazonka.CostExplorer.Types.TargetInstance+import Amazonka.CostExplorer.Types.TermInYears+import Amazonka.CostExplorer.Types.TerminateRecommendationDetail+import Amazonka.CostExplorer.Types.TotalImpactFilter+import Amazonka.CostExplorer.Types.UpdateCostAllocationTagsStatusError+import Amazonka.CostExplorer.Types.UtilizationByTime+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Sign.V4 as Sign++-- | API version @2017-10-25@ of the Amazon Cost Explorer Service SDK configuration.+defaultService :: Core.Service+defaultService =+  Core.Service+    { Core.abbrev = "CostExplorer",+      Core.signer = Sign.v4,+      Core.endpointPrefix = "ce",+      Core.signingName = "ce",+      Core.version = "2017-10-25",+      Core.s3AddressingStyle = Core.S3AddressingStyleAuto,+      Core.endpoint = Core.defaultEndpoint defaultService,+      Core.timeout = Prelude.Just 70,+      Core.check = Core.statusSuccess,+      Core.error = Core.parseJSONError "CostExplorer",+      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++-- | The requested report expired. Update the date interval and try again.+_BillExpirationException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_BillExpirationException =+  Core._MatchServiceError+    defaultService+    "BillExpirationException"++-- | The requested data is unavailable.+_DataUnavailableException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_DataUnavailableException =+  Core._MatchServiceError+    defaultService+    "DataUnavailableException"++-- | A request to generate a recommendation is already in progress.+_GenerationExistsException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_GenerationExistsException =+  Core._MatchServiceError+    defaultService+    "GenerationExistsException"++-- | The pagination token is invalid. Try again without a pagination token.+_InvalidNextTokenException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InvalidNextTokenException =+  Core._MatchServiceError+    defaultService+    "InvalidNextTokenException"++-- | You made too many calls in a short period of time. Try again later.+_LimitExceededException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_LimitExceededException =+  Core._MatchServiceError+    defaultService+    "LimitExceededException"++-- | Your request parameters changed between pages. Try again with the old+-- parameters or without a pagination token.+_RequestChangedException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_RequestChangedException =+  Core._MatchServiceError+    defaultService+    "RequestChangedException"++-- | The specified ARN in the request doesn\'t exist.+_ResourceNotFoundException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ResourceNotFoundException =+  Core._MatchServiceError+    defaultService+    "ResourceNotFoundException"++-- | You\'ve reached the limit on the number of resources you can create, or+-- exceeded the size of an individual resource.+_ServiceQuotaExceededException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ServiceQuotaExceededException =+  Core._MatchServiceError+    defaultService+    "ServiceQuotaExceededException"++-- | Can occur if you specify a number of tags for a resource greater than+-- the maximum 50 user tags per resource.+_TooManyTagsException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_TooManyTagsException =+  Core._MatchServiceError+    defaultService+    "TooManyTagsException"++-- | The cost anomaly monitor does not exist for the account.+_UnknownMonitorException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_UnknownMonitorException =+  Core._MatchServiceError+    defaultService+    "UnknownMonitorException"++-- | The cost anomaly subscription does not exist for the account.+_UnknownSubscriptionException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_UnknownSubscriptionException =+  Core._MatchServiceError+    defaultService+    "UnknownSubscriptionException"++-- | Cost Explorer was unable to identify the usage unit. Provide+-- @UsageType\/UsageTypeGroup@ filter selections that contain matching+-- units, for example: @hours@.+_UnresolvableUsageUnitException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_UnresolvableUsageUnitException =+  Core._MatchServiceError+    defaultService+    "UnresolvableUsageUnitException"
+ gen/Amazonka/CostExplorer/Types/AccountScope.hs view
@@ -0,0 +1,71 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.AccountScope+-- 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.CostExplorer.Types.AccountScope+  ( AccountScope+      ( ..,+        AccountScope_LINKED,+        AccountScope_PAYER+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype AccountScope = AccountScope'+  { fromAccountScope ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern AccountScope_LINKED :: AccountScope+pattern AccountScope_LINKED = AccountScope' "LINKED"++pattern AccountScope_PAYER :: AccountScope+pattern AccountScope_PAYER = AccountScope' "PAYER"++{-# COMPLETE+  AccountScope_LINKED,+  AccountScope_PAYER,+  AccountScope'+  #-}
+ gen/Amazonka/CostExplorer/Types/Anomaly.hs view
@@ -0,0 +1,191 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.Anomaly+-- 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.CostExplorer.Types.Anomaly where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CostExplorer.Types.AnomalyFeedbackType+import Amazonka.CostExplorer.Types.AnomalyScore+import Amazonka.CostExplorer.Types.Impact+import Amazonka.CostExplorer.Types.RootCause+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | An unusual cost pattern. This consists of the detailed metadata and the+-- current status of the anomaly object.+--+-- /See:/ 'newAnomaly' smart constructor.+data Anomaly = Anomaly'+  { -- | The last day the anomaly is detected.+    anomalyEndDate :: Prelude.Maybe Prelude.Text,+    -- | The first day the anomaly is detected.+    anomalyStartDate :: Prelude.Maybe Prelude.Text,+    -- | The dimension for the anomaly (for example, an Amazon Web Service in a+    -- service monitor).+    dimensionValue :: Prelude.Maybe Prelude.Text,+    -- | The feedback value.+    feedback :: Prelude.Maybe AnomalyFeedbackType,+    -- | The list of identified root causes for the anomaly.+    rootCauses :: Prelude.Maybe [RootCause],+    -- | The unique identifier for the anomaly.+    anomalyId :: Prelude.Text,+    -- | The latest and maximum score for the anomaly.+    anomalyScore :: AnomalyScore,+    -- | The dollar impact for the anomaly.+    impact :: Impact,+    -- | The Amazon Resource Name (ARN) for the cost monitor that generated this+    -- anomaly.+    monitorArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Anomaly' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'anomalyEndDate', 'anomaly_anomalyEndDate' - The last day the anomaly is detected.+--+-- 'anomalyStartDate', 'anomaly_anomalyStartDate' - The first day the anomaly is detected.+--+-- 'dimensionValue', 'anomaly_dimensionValue' - The dimension for the anomaly (for example, an Amazon Web Service in a+-- service monitor).+--+-- 'feedback', 'anomaly_feedback' - The feedback value.+--+-- 'rootCauses', 'anomaly_rootCauses' - The list of identified root causes for the anomaly.+--+-- 'anomalyId', 'anomaly_anomalyId' - The unique identifier for the anomaly.+--+-- 'anomalyScore', 'anomaly_anomalyScore' - The latest and maximum score for the anomaly.+--+-- 'impact', 'anomaly_impact' - The dollar impact for the anomaly.+--+-- 'monitorArn', 'anomaly_monitorArn' - The Amazon Resource Name (ARN) for the cost monitor that generated this+-- anomaly.+newAnomaly ::+  -- | 'anomalyId'+  Prelude.Text ->+  -- | 'anomalyScore'+  AnomalyScore ->+  -- | 'impact'+  Impact ->+  -- | 'monitorArn'+  Prelude.Text ->+  Anomaly+newAnomaly+  pAnomalyId_+  pAnomalyScore_+  pImpact_+  pMonitorArn_ =+    Anomaly'+      { anomalyEndDate = Prelude.Nothing,+        anomalyStartDate = Prelude.Nothing,+        dimensionValue = Prelude.Nothing,+        feedback = Prelude.Nothing,+        rootCauses = Prelude.Nothing,+        anomalyId = pAnomalyId_,+        anomalyScore = pAnomalyScore_,+        impact = pImpact_,+        monitorArn = pMonitorArn_+      }++-- | The last day the anomaly is detected.+anomaly_anomalyEndDate :: Lens.Lens' Anomaly (Prelude.Maybe Prelude.Text)+anomaly_anomalyEndDate = Lens.lens (\Anomaly' {anomalyEndDate} -> anomalyEndDate) (\s@Anomaly' {} a -> s {anomalyEndDate = a} :: Anomaly)++-- | The first day the anomaly is detected.+anomaly_anomalyStartDate :: Lens.Lens' Anomaly (Prelude.Maybe Prelude.Text)+anomaly_anomalyStartDate = Lens.lens (\Anomaly' {anomalyStartDate} -> anomalyStartDate) (\s@Anomaly' {} a -> s {anomalyStartDate = a} :: Anomaly)++-- | The dimension for the anomaly (for example, an Amazon Web Service in a+-- service monitor).+anomaly_dimensionValue :: Lens.Lens' Anomaly (Prelude.Maybe Prelude.Text)+anomaly_dimensionValue = Lens.lens (\Anomaly' {dimensionValue} -> dimensionValue) (\s@Anomaly' {} a -> s {dimensionValue = a} :: Anomaly)++-- | The feedback value.+anomaly_feedback :: Lens.Lens' Anomaly (Prelude.Maybe AnomalyFeedbackType)+anomaly_feedback = Lens.lens (\Anomaly' {feedback} -> feedback) (\s@Anomaly' {} a -> s {feedback = a} :: Anomaly)++-- | The list of identified root causes for the anomaly.+anomaly_rootCauses :: Lens.Lens' Anomaly (Prelude.Maybe [RootCause])+anomaly_rootCauses = Lens.lens (\Anomaly' {rootCauses} -> rootCauses) (\s@Anomaly' {} a -> s {rootCauses = a} :: Anomaly) Prelude.. Lens.mapping Lens.coerced++-- | The unique identifier for the anomaly.+anomaly_anomalyId :: Lens.Lens' Anomaly Prelude.Text+anomaly_anomalyId = Lens.lens (\Anomaly' {anomalyId} -> anomalyId) (\s@Anomaly' {} a -> s {anomalyId = a} :: Anomaly)++-- | The latest and maximum score for the anomaly.+anomaly_anomalyScore :: Lens.Lens' Anomaly AnomalyScore+anomaly_anomalyScore = Lens.lens (\Anomaly' {anomalyScore} -> anomalyScore) (\s@Anomaly' {} a -> s {anomalyScore = a} :: Anomaly)++-- | The dollar impact for the anomaly.+anomaly_impact :: Lens.Lens' Anomaly Impact+anomaly_impact = Lens.lens (\Anomaly' {impact} -> impact) (\s@Anomaly' {} a -> s {impact = a} :: Anomaly)++-- | The Amazon Resource Name (ARN) for the cost monitor that generated this+-- anomaly.+anomaly_monitorArn :: Lens.Lens' Anomaly Prelude.Text+anomaly_monitorArn = Lens.lens (\Anomaly' {monitorArn} -> monitorArn) (\s@Anomaly' {} a -> s {monitorArn = a} :: Anomaly)++instance Data.FromJSON Anomaly where+  parseJSON =+    Data.withObject+      "Anomaly"+      ( \x ->+          Anomaly'+            Prelude.<$> (x Data..:? "AnomalyEndDate")+            Prelude.<*> (x Data..:? "AnomalyStartDate")+            Prelude.<*> (x Data..:? "DimensionValue")+            Prelude.<*> (x Data..:? "Feedback")+            Prelude.<*> (x Data..:? "RootCauses" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..: "AnomalyId")+            Prelude.<*> (x Data..: "AnomalyScore")+            Prelude.<*> (x Data..: "Impact")+            Prelude.<*> (x Data..: "MonitorArn")+      )++instance Prelude.Hashable Anomaly where+  hashWithSalt _salt Anomaly' {..} =+    _salt+      `Prelude.hashWithSalt` anomalyEndDate+      `Prelude.hashWithSalt` anomalyStartDate+      `Prelude.hashWithSalt` dimensionValue+      `Prelude.hashWithSalt` feedback+      `Prelude.hashWithSalt` rootCauses+      `Prelude.hashWithSalt` anomalyId+      `Prelude.hashWithSalt` anomalyScore+      `Prelude.hashWithSalt` impact+      `Prelude.hashWithSalt` monitorArn++instance Prelude.NFData Anomaly where+  rnf Anomaly' {..} =+    Prelude.rnf anomalyEndDate+      `Prelude.seq` Prelude.rnf anomalyStartDate+      `Prelude.seq` Prelude.rnf dimensionValue+      `Prelude.seq` Prelude.rnf feedback+      `Prelude.seq` Prelude.rnf rootCauses+      `Prelude.seq` Prelude.rnf anomalyId+      `Prelude.seq` Prelude.rnf anomalyScore+      `Prelude.seq` Prelude.rnf impact+      `Prelude.seq` Prelude.rnf monitorArn
+ gen/Amazonka/CostExplorer/Types/AnomalyDateInterval.hs view
@@ -0,0 +1,85 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.AnomalyDateInterval+-- 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.CostExplorer.Types.AnomalyDateInterval where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The time period for an anomaly.+--+-- /See:/ 'newAnomalyDateInterval' smart constructor.+data AnomalyDateInterval = AnomalyDateInterval'+  { -- | The last date an anomaly was observed.+    endDate :: Prelude.Maybe Prelude.Text,+    -- | The first date an anomaly was observed.+    startDate :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AnomalyDateInterval' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'endDate', 'anomalyDateInterval_endDate' - The last date an anomaly was observed.+--+-- 'startDate', 'anomalyDateInterval_startDate' - The first date an anomaly was observed.+newAnomalyDateInterval ::+  -- | 'startDate'+  Prelude.Text ->+  AnomalyDateInterval+newAnomalyDateInterval pStartDate_ =+  AnomalyDateInterval'+    { endDate = Prelude.Nothing,+      startDate = pStartDate_+    }++-- | The last date an anomaly was observed.+anomalyDateInterval_endDate :: Lens.Lens' AnomalyDateInterval (Prelude.Maybe Prelude.Text)+anomalyDateInterval_endDate = Lens.lens (\AnomalyDateInterval' {endDate} -> endDate) (\s@AnomalyDateInterval' {} a -> s {endDate = a} :: AnomalyDateInterval)++-- | The first date an anomaly was observed.+anomalyDateInterval_startDate :: Lens.Lens' AnomalyDateInterval Prelude.Text+anomalyDateInterval_startDate = Lens.lens (\AnomalyDateInterval' {startDate} -> startDate) (\s@AnomalyDateInterval' {} a -> s {startDate = a} :: AnomalyDateInterval)++instance Prelude.Hashable AnomalyDateInterval where+  hashWithSalt _salt AnomalyDateInterval' {..} =+    _salt+      `Prelude.hashWithSalt` endDate+      `Prelude.hashWithSalt` startDate++instance Prelude.NFData AnomalyDateInterval where+  rnf AnomalyDateInterval' {..} =+    Prelude.rnf endDate+      `Prelude.seq` Prelude.rnf startDate++instance Data.ToJSON AnomalyDateInterval where+  toJSON AnomalyDateInterval' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("EndDate" Data..=) Prelude.<$> endDate,+            Prelude.Just ("StartDate" Data..= startDate)+          ]+      )
+ gen/Amazonka/CostExplorer/Types/AnomalyFeedbackType.hs view
@@ -0,0 +1,76 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.AnomalyFeedbackType+-- 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.CostExplorer.Types.AnomalyFeedbackType+  ( AnomalyFeedbackType+      ( ..,+        AnomalyFeedbackType_NO,+        AnomalyFeedbackType_PLANNED_ACTIVITY,+        AnomalyFeedbackType_YES+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype AnomalyFeedbackType = AnomalyFeedbackType'+  { fromAnomalyFeedbackType ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern AnomalyFeedbackType_NO :: AnomalyFeedbackType+pattern AnomalyFeedbackType_NO = AnomalyFeedbackType' "NO"++pattern AnomalyFeedbackType_PLANNED_ACTIVITY :: AnomalyFeedbackType+pattern AnomalyFeedbackType_PLANNED_ACTIVITY = AnomalyFeedbackType' "PLANNED_ACTIVITY"++pattern AnomalyFeedbackType_YES :: AnomalyFeedbackType+pattern AnomalyFeedbackType_YES = AnomalyFeedbackType' "YES"++{-# COMPLETE+  AnomalyFeedbackType_NO,+  AnomalyFeedbackType_PLANNED_ACTIVITY,+  AnomalyFeedbackType_YES,+  AnomalyFeedbackType'+  #-}
+ gen/Amazonka/CostExplorer/Types/AnomalyMonitor.hs view
@@ -0,0 +1,198 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.AnomalyMonitor+-- 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.CostExplorer.Types.AnomalyMonitor where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CostExplorer.Types.Expression+import Amazonka.CostExplorer.Types.MonitorDimension+import Amazonka.CostExplorer.Types.MonitorType+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | This object continuously inspects your account\'s cost data for+-- anomalies. It\'s based on @MonitorType@ and @MonitorSpecification@. The+-- content consists of detailed metadata and the current status of the+-- monitor object.+--+-- /See:/ 'newAnomalyMonitor' smart constructor.+data AnomalyMonitor = AnomalyMonitor'+  { -- | The date when the monitor was created.+    creationDate :: Prelude.Maybe Prelude.Text,+    -- | The value for evaluated dimensions.+    dimensionalValueCount :: Prelude.Maybe Prelude.Natural,+    -- | The date when the monitor last evaluated for anomalies.+    lastEvaluatedDate :: Prelude.Maybe Prelude.Text,+    -- | The date when the monitor was last updated.+    lastUpdatedDate :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Resource Name (ARN) value.+    monitorArn :: Prelude.Maybe Prelude.Text,+    -- | The dimensions to evaluate.+    monitorDimension :: Prelude.Maybe MonitorDimension,+    monitorSpecification :: Prelude.Maybe Expression,+    -- | The name of the monitor.+    monitorName :: Prelude.Text,+    -- | The possible type values.+    monitorType :: MonitorType+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AnomalyMonitor' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'creationDate', 'anomalyMonitor_creationDate' - The date when the monitor was created.+--+-- 'dimensionalValueCount', 'anomalyMonitor_dimensionalValueCount' - The value for evaluated dimensions.+--+-- 'lastEvaluatedDate', 'anomalyMonitor_lastEvaluatedDate' - The date when the monitor last evaluated for anomalies.+--+-- 'lastUpdatedDate', 'anomalyMonitor_lastUpdatedDate' - The date when the monitor was last updated.+--+-- 'monitorArn', 'anomalyMonitor_monitorArn' - The Amazon Resource Name (ARN) value.+--+-- 'monitorDimension', 'anomalyMonitor_monitorDimension' - The dimensions to evaluate.+--+-- 'monitorSpecification', 'anomalyMonitor_monitorSpecification' - Undocumented member.+--+-- 'monitorName', 'anomalyMonitor_monitorName' - The name of the monitor.+--+-- 'monitorType', 'anomalyMonitor_monitorType' - The possible type values.+newAnomalyMonitor ::+  -- | 'monitorName'+  Prelude.Text ->+  -- | 'monitorType'+  MonitorType ->+  AnomalyMonitor+newAnomalyMonitor pMonitorName_ pMonitorType_ =+  AnomalyMonitor'+    { creationDate = Prelude.Nothing,+      dimensionalValueCount = Prelude.Nothing,+      lastEvaluatedDate = Prelude.Nothing,+      lastUpdatedDate = Prelude.Nothing,+      monitorArn = Prelude.Nothing,+      monitorDimension = Prelude.Nothing,+      monitorSpecification = Prelude.Nothing,+      monitorName = pMonitorName_,+      monitorType = pMonitorType_+    }++-- | The date when the monitor was created.+anomalyMonitor_creationDate :: Lens.Lens' AnomalyMonitor (Prelude.Maybe Prelude.Text)+anomalyMonitor_creationDate = Lens.lens (\AnomalyMonitor' {creationDate} -> creationDate) (\s@AnomalyMonitor' {} a -> s {creationDate = a} :: AnomalyMonitor)++-- | The value for evaluated dimensions.+anomalyMonitor_dimensionalValueCount :: Lens.Lens' AnomalyMonitor (Prelude.Maybe Prelude.Natural)+anomalyMonitor_dimensionalValueCount = Lens.lens (\AnomalyMonitor' {dimensionalValueCount} -> dimensionalValueCount) (\s@AnomalyMonitor' {} a -> s {dimensionalValueCount = a} :: AnomalyMonitor)++-- | The date when the monitor last evaluated for anomalies.+anomalyMonitor_lastEvaluatedDate :: Lens.Lens' AnomalyMonitor (Prelude.Maybe Prelude.Text)+anomalyMonitor_lastEvaluatedDate = Lens.lens (\AnomalyMonitor' {lastEvaluatedDate} -> lastEvaluatedDate) (\s@AnomalyMonitor' {} a -> s {lastEvaluatedDate = a} :: AnomalyMonitor)++-- | The date when the monitor was last updated.+anomalyMonitor_lastUpdatedDate :: Lens.Lens' AnomalyMonitor (Prelude.Maybe Prelude.Text)+anomalyMonitor_lastUpdatedDate = Lens.lens (\AnomalyMonitor' {lastUpdatedDate} -> lastUpdatedDate) (\s@AnomalyMonitor' {} a -> s {lastUpdatedDate = a} :: AnomalyMonitor)++-- | The Amazon Resource Name (ARN) value.+anomalyMonitor_monitorArn :: Lens.Lens' AnomalyMonitor (Prelude.Maybe Prelude.Text)+anomalyMonitor_monitorArn = Lens.lens (\AnomalyMonitor' {monitorArn} -> monitorArn) (\s@AnomalyMonitor' {} a -> s {monitorArn = a} :: AnomalyMonitor)++-- | The dimensions to evaluate.+anomalyMonitor_monitorDimension :: Lens.Lens' AnomalyMonitor (Prelude.Maybe MonitorDimension)+anomalyMonitor_monitorDimension = Lens.lens (\AnomalyMonitor' {monitorDimension} -> monitorDimension) (\s@AnomalyMonitor' {} a -> s {monitorDimension = a} :: AnomalyMonitor)++-- | Undocumented member.+anomalyMonitor_monitorSpecification :: Lens.Lens' AnomalyMonitor (Prelude.Maybe Expression)+anomalyMonitor_monitorSpecification = Lens.lens (\AnomalyMonitor' {monitorSpecification} -> monitorSpecification) (\s@AnomalyMonitor' {} a -> s {monitorSpecification = a} :: AnomalyMonitor)++-- | The name of the monitor.+anomalyMonitor_monitorName :: Lens.Lens' AnomalyMonitor Prelude.Text+anomalyMonitor_monitorName = Lens.lens (\AnomalyMonitor' {monitorName} -> monitorName) (\s@AnomalyMonitor' {} a -> s {monitorName = a} :: AnomalyMonitor)++-- | The possible type values.+anomalyMonitor_monitorType :: Lens.Lens' AnomalyMonitor MonitorType+anomalyMonitor_monitorType = Lens.lens (\AnomalyMonitor' {monitorType} -> monitorType) (\s@AnomalyMonitor' {} a -> s {monitorType = a} :: AnomalyMonitor)++instance Data.FromJSON AnomalyMonitor where+  parseJSON =+    Data.withObject+      "AnomalyMonitor"+      ( \x ->+          AnomalyMonitor'+            Prelude.<$> (x Data..:? "CreationDate")+            Prelude.<*> (x Data..:? "DimensionalValueCount")+            Prelude.<*> (x Data..:? "LastEvaluatedDate")+            Prelude.<*> (x Data..:? "LastUpdatedDate")+            Prelude.<*> (x Data..:? "MonitorArn")+            Prelude.<*> (x Data..:? "MonitorDimension")+            Prelude.<*> (x Data..:? "MonitorSpecification")+            Prelude.<*> (x Data..: "MonitorName")+            Prelude.<*> (x Data..: "MonitorType")+      )++instance Prelude.Hashable AnomalyMonitor where+  hashWithSalt _salt AnomalyMonitor' {..} =+    _salt+      `Prelude.hashWithSalt` creationDate+      `Prelude.hashWithSalt` dimensionalValueCount+      `Prelude.hashWithSalt` lastEvaluatedDate+      `Prelude.hashWithSalt` lastUpdatedDate+      `Prelude.hashWithSalt` monitorArn+      `Prelude.hashWithSalt` monitorDimension+      `Prelude.hashWithSalt` monitorSpecification+      `Prelude.hashWithSalt` monitorName+      `Prelude.hashWithSalt` monitorType++instance Prelude.NFData AnomalyMonitor where+  rnf AnomalyMonitor' {..} =+    Prelude.rnf creationDate+      `Prelude.seq` Prelude.rnf dimensionalValueCount+      `Prelude.seq` Prelude.rnf lastEvaluatedDate+      `Prelude.seq` Prelude.rnf lastUpdatedDate+      `Prelude.seq` Prelude.rnf monitorArn+      `Prelude.seq` Prelude.rnf monitorDimension+      `Prelude.seq` Prelude.rnf monitorSpecification+      `Prelude.seq` Prelude.rnf monitorName+      `Prelude.seq` Prelude.rnf monitorType++instance Data.ToJSON AnomalyMonitor where+  toJSON AnomalyMonitor' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("CreationDate" Data..=) Prelude.<$> creationDate,+            ("DimensionalValueCount" Data..=)+              Prelude.<$> dimensionalValueCount,+            ("LastEvaluatedDate" Data..=)+              Prelude.<$> lastEvaluatedDate,+            ("LastUpdatedDate" Data..=)+              Prelude.<$> lastUpdatedDate,+            ("MonitorArn" Data..=) Prelude.<$> monitorArn,+            ("MonitorDimension" Data..=)+              Prelude.<$> monitorDimension,+            ("MonitorSpecification" Data..=)+              Prelude.<$> monitorSpecification,+            Prelude.Just ("MonitorName" Data..= monitorName),+            Prelude.Just ("MonitorType" Data..= monitorType)+          ]+      )
+ gen/Amazonka/CostExplorer/Types/AnomalyScore.hs view
@@ -0,0 +1,89 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.AnomalyScore+-- 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.CostExplorer.Types.AnomalyScore where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Quantifies the anomaly. The higher score means that it\'s more+-- anomalous.+--+-- /See:/ 'newAnomalyScore' smart constructor.+data AnomalyScore = AnomalyScore'+  { -- | The maximum score that\'s observed during the @AnomalyDateInterval@.+    maxScore :: Prelude.Double,+    -- | The last observed score.+    currentScore :: Prelude.Double+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AnomalyScore' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'maxScore', 'anomalyScore_maxScore' - The maximum score that\'s observed during the @AnomalyDateInterval@.+--+-- 'currentScore', 'anomalyScore_currentScore' - The last observed score.+newAnomalyScore ::+  -- | 'maxScore'+  Prelude.Double ->+  -- | 'currentScore'+  Prelude.Double ->+  AnomalyScore+newAnomalyScore pMaxScore_ pCurrentScore_ =+  AnomalyScore'+    { maxScore = pMaxScore_,+      currentScore = pCurrentScore_+    }++-- | The maximum score that\'s observed during the @AnomalyDateInterval@.+anomalyScore_maxScore :: Lens.Lens' AnomalyScore Prelude.Double+anomalyScore_maxScore = Lens.lens (\AnomalyScore' {maxScore} -> maxScore) (\s@AnomalyScore' {} a -> s {maxScore = a} :: AnomalyScore)++-- | The last observed score.+anomalyScore_currentScore :: Lens.Lens' AnomalyScore Prelude.Double+anomalyScore_currentScore = Lens.lens (\AnomalyScore' {currentScore} -> currentScore) (\s@AnomalyScore' {} a -> s {currentScore = a} :: AnomalyScore)++instance Data.FromJSON AnomalyScore where+  parseJSON =+    Data.withObject+      "AnomalyScore"+      ( \x ->+          AnomalyScore'+            Prelude.<$> (x Data..: "MaxScore")+            Prelude.<*> (x Data..: "CurrentScore")+      )++instance Prelude.Hashable AnomalyScore where+  hashWithSalt _salt AnomalyScore' {..} =+    _salt+      `Prelude.hashWithSalt` maxScore+      `Prelude.hashWithSalt` currentScore++instance Prelude.NFData AnomalyScore where+  rnf AnomalyScore' {..} =+    Prelude.rnf maxScore+      `Prelude.seq` Prelude.rnf currentScore
+ gen/Amazonka/CostExplorer/Types/AnomalySubscription.hs view
@@ -0,0 +1,281 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.AnomalySubscription+-- 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.CostExplorer.Types.AnomalySubscription where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CostExplorer.Types.AnomalySubscriptionFrequency+import Amazonka.CostExplorer.Types.Expression+import Amazonka.CostExplorer.Types.Subscriber+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The association between a monitor, threshold, and list of subscribers+-- used to deliver notifications about anomalies detected by a monitor that+-- exceeds a threshold. The content consists of the detailed metadata and+-- the current status of the @AnomalySubscription@ object.+--+-- /See:/ 'newAnomalySubscription' smart constructor.+data AnomalySubscription = AnomalySubscription'+  { -- | Your unique account identifier.+    accountId :: Prelude.Maybe Prelude.Text,+    -- | The @AnomalySubscription@ Amazon Resource Name (ARN).+    subscriptionArn :: Prelude.Maybe Prelude.Text,+    -- | (deprecated)+    --+    -- The dollar value that triggers a notification if the threshold is+    -- exceeded.+    --+    -- This field has been deprecated. To specify a threshold, use+    -- ThresholdExpression. Continued use of Threshold will be treated as+    -- shorthand syntax for a ThresholdExpression.+    --+    -- One of Threshold or ThresholdExpression is required for this resource.+    threshold :: Prelude.Maybe Prelude.Double,+    -- | An+    -- <https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html Expression>+    -- object used to specify the anomalies that you want to generate alerts+    -- for. This supports dimensions and nested expressions. The supported+    -- dimensions are @ANOMALY_TOTAL_IMPACT_ABSOLUTE@ and+    -- @ANOMALY_TOTAL_IMPACT_PERCENTAGE@. The supported nested expression types+    -- are @AND@ and @OR@. The match option @GREATER_THAN_OR_EQUAL@ is+    -- required. Values must be numbers between 0 and 10,000,000,000.+    --+    -- One of Threshold or ThresholdExpression is required for this resource.+    --+    -- The following are examples of valid ThresholdExpressions:+    --+    -- -   Absolute threshold:+    --     @{ \"Dimensions\": { \"Key\": \"ANOMALY_TOTAL_IMPACT_ABSOLUTE\", \"MatchOptions\": [ \"GREATER_THAN_OR_EQUAL\" ], \"Values\": [ \"100\" ] } }@+    --+    -- -   Percentage threshold:+    --     @{ \"Dimensions\": { \"Key\": \"ANOMALY_TOTAL_IMPACT_PERCENTAGE\", \"MatchOptions\": [ \"GREATER_THAN_OR_EQUAL\" ], \"Values\": [ \"100\" ] } }@+    --+    -- -   @AND@ two thresholds together:+    --     @{ \"And\": [ { \"Dimensions\": { \"Key\": \"ANOMALY_TOTAL_IMPACT_ABSOLUTE\", \"MatchOptions\": [ \"GREATER_THAN_OR_EQUAL\" ], \"Values\": [ \"100\" ] } }, { \"Dimensions\": { \"Key\": \"ANOMALY_TOTAL_IMPACT_PERCENTAGE\", \"MatchOptions\": [ \"GREATER_THAN_OR_EQUAL\" ], \"Values\": [ \"100\" ] } } ] }@+    --+    -- -   @OR@ two thresholds together:+    --     @{ \"Or\": [ { \"Dimensions\": { \"Key\": \"ANOMALY_TOTAL_IMPACT_ABSOLUTE\", \"MatchOptions\": [ \"GREATER_THAN_OR_EQUAL\" ], \"Values\": [ \"100\" ] } }, { \"Dimensions\": { \"Key\": \"ANOMALY_TOTAL_IMPACT_PERCENTAGE\", \"MatchOptions\": [ \"GREATER_THAN_OR_EQUAL\" ], \"Values\": [ \"100\" ] } } ] }@+    thresholdExpression :: Prelude.Maybe Expression,+    -- | A list of cost anomaly monitors.+    monitorArnList :: [Prelude.Text],+    -- | A list of subscribers to notify.+    subscribers :: [Subscriber],+    -- | The frequency that anomaly reports are sent over email.+    frequency :: AnomalySubscriptionFrequency,+    -- | The name for the subscription.+    subscriptionName :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AnomalySubscription' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'accountId', 'anomalySubscription_accountId' - Your unique account identifier.+--+-- 'subscriptionArn', 'anomalySubscription_subscriptionArn' - The @AnomalySubscription@ Amazon Resource Name (ARN).+--+-- 'threshold', 'anomalySubscription_threshold' - (deprecated)+--+-- The dollar value that triggers a notification if the threshold is+-- exceeded.+--+-- This field has been deprecated. To specify a threshold, use+-- ThresholdExpression. Continued use of Threshold will be treated as+-- shorthand syntax for a ThresholdExpression.+--+-- One of Threshold or ThresholdExpression is required for this resource.+--+-- 'thresholdExpression', 'anomalySubscription_thresholdExpression' - An+-- <https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html Expression>+-- object used to specify the anomalies that you want to generate alerts+-- for. This supports dimensions and nested expressions. The supported+-- dimensions are @ANOMALY_TOTAL_IMPACT_ABSOLUTE@ and+-- @ANOMALY_TOTAL_IMPACT_PERCENTAGE@. The supported nested expression types+-- are @AND@ and @OR@. The match option @GREATER_THAN_OR_EQUAL@ is+-- required. Values must be numbers between 0 and 10,000,000,000.+--+-- One of Threshold or ThresholdExpression is required for this resource.+--+-- The following are examples of valid ThresholdExpressions:+--+-- -   Absolute threshold:+--     @{ \"Dimensions\": { \"Key\": \"ANOMALY_TOTAL_IMPACT_ABSOLUTE\", \"MatchOptions\": [ \"GREATER_THAN_OR_EQUAL\" ], \"Values\": [ \"100\" ] } }@+--+-- -   Percentage threshold:+--     @{ \"Dimensions\": { \"Key\": \"ANOMALY_TOTAL_IMPACT_PERCENTAGE\", \"MatchOptions\": [ \"GREATER_THAN_OR_EQUAL\" ], \"Values\": [ \"100\" ] } }@+--+-- -   @AND@ two thresholds together:+--     @{ \"And\": [ { \"Dimensions\": { \"Key\": \"ANOMALY_TOTAL_IMPACT_ABSOLUTE\", \"MatchOptions\": [ \"GREATER_THAN_OR_EQUAL\" ], \"Values\": [ \"100\" ] } }, { \"Dimensions\": { \"Key\": \"ANOMALY_TOTAL_IMPACT_PERCENTAGE\", \"MatchOptions\": [ \"GREATER_THAN_OR_EQUAL\" ], \"Values\": [ \"100\" ] } } ] }@+--+-- -   @OR@ two thresholds together:+--     @{ \"Or\": [ { \"Dimensions\": { \"Key\": \"ANOMALY_TOTAL_IMPACT_ABSOLUTE\", \"MatchOptions\": [ \"GREATER_THAN_OR_EQUAL\" ], \"Values\": [ \"100\" ] } }, { \"Dimensions\": { \"Key\": \"ANOMALY_TOTAL_IMPACT_PERCENTAGE\", \"MatchOptions\": [ \"GREATER_THAN_OR_EQUAL\" ], \"Values\": [ \"100\" ] } } ] }@+--+-- 'monitorArnList', 'anomalySubscription_monitorArnList' - A list of cost anomaly monitors.+--+-- 'subscribers', 'anomalySubscription_subscribers' - A list of subscribers to notify.+--+-- 'frequency', 'anomalySubscription_frequency' - The frequency that anomaly reports are sent over email.+--+-- 'subscriptionName', 'anomalySubscription_subscriptionName' - The name for the subscription.+newAnomalySubscription ::+  -- | 'frequency'+  AnomalySubscriptionFrequency ->+  -- | 'subscriptionName'+  Prelude.Text ->+  AnomalySubscription+newAnomalySubscription pFrequency_ pSubscriptionName_ =+  AnomalySubscription'+    { accountId = Prelude.Nothing,+      subscriptionArn = Prelude.Nothing,+      threshold = Prelude.Nothing,+      thresholdExpression = Prelude.Nothing,+      monitorArnList = Prelude.mempty,+      subscribers = Prelude.mempty,+      frequency = pFrequency_,+      subscriptionName = pSubscriptionName_+    }++-- | Your unique account identifier.+anomalySubscription_accountId :: Lens.Lens' AnomalySubscription (Prelude.Maybe Prelude.Text)+anomalySubscription_accountId = Lens.lens (\AnomalySubscription' {accountId} -> accountId) (\s@AnomalySubscription' {} a -> s {accountId = a} :: AnomalySubscription)++-- | The @AnomalySubscription@ Amazon Resource Name (ARN).+anomalySubscription_subscriptionArn :: Lens.Lens' AnomalySubscription (Prelude.Maybe Prelude.Text)+anomalySubscription_subscriptionArn = Lens.lens (\AnomalySubscription' {subscriptionArn} -> subscriptionArn) (\s@AnomalySubscription' {} a -> s {subscriptionArn = a} :: AnomalySubscription)++-- | (deprecated)+--+-- The dollar value that triggers a notification if the threshold is+-- exceeded.+--+-- This field has been deprecated. To specify a threshold, use+-- ThresholdExpression. Continued use of Threshold will be treated as+-- shorthand syntax for a ThresholdExpression.+--+-- One of Threshold or ThresholdExpression is required for this resource.+anomalySubscription_threshold :: Lens.Lens' AnomalySubscription (Prelude.Maybe Prelude.Double)+anomalySubscription_threshold = Lens.lens (\AnomalySubscription' {threshold} -> threshold) (\s@AnomalySubscription' {} a -> s {threshold = a} :: AnomalySubscription)++-- | An+-- <https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html Expression>+-- object used to specify the anomalies that you want to generate alerts+-- for. This supports dimensions and nested expressions. The supported+-- dimensions are @ANOMALY_TOTAL_IMPACT_ABSOLUTE@ and+-- @ANOMALY_TOTAL_IMPACT_PERCENTAGE@. The supported nested expression types+-- are @AND@ and @OR@. The match option @GREATER_THAN_OR_EQUAL@ is+-- required. Values must be numbers between 0 and 10,000,000,000.+--+-- One of Threshold or ThresholdExpression is required for this resource.+--+-- The following are examples of valid ThresholdExpressions:+--+-- -   Absolute threshold:+--     @{ \"Dimensions\": { \"Key\": \"ANOMALY_TOTAL_IMPACT_ABSOLUTE\", \"MatchOptions\": [ \"GREATER_THAN_OR_EQUAL\" ], \"Values\": [ \"100\" ] } }@+--+-- -   Percentage threshold:+--     @{ \"Dimensions\": { \"Key\": \"ANOMALY_TOTAL_IMPACT_PERCENTAGE\", \"MatchOptions\": [ \"GREATER_THAN_OR_EQUAL\" ], \"Values\": [ \"100\" ] } }@+--+-- -   @AND@ two thresholds together:+--     @{ \"And\": [ { \"Dimensions\": { \"Key\": \"ANOMALY_TOTAL_IMPACT_ABSOLUTE\", \"MatchOptions\": [ \"GREATER_THAN_OR_EQUAL\" ], \"Values\": [ \"100\" ] } }, { \"Dimensions\": { \"Key\": \"ANOMALY_TOTAL_IMPACT_PERCENTAGE\", \"MatchOptions\": [ \"GREATER_THAN_OR_EQUAL\" ], \"Values\": [ \"100\" ] } } ] }@+--+-- -   @OR@ two thresholds together:+--     @{ \"Or\": [ { \"Dimensions\": { \"Key\": \"ANOMALY_TOTAL_IMPACT_ABSOLUTE\", \"MatchOptions\": [ \"GREATER_THAN_OR_EQUAL\" ], \"Values\": [ \"100\" ] } }, { \"Dimensions\": { \"Key\": \"ANOMALY_TOTAL_IMPACT_PERCENTAGE\", \"MatchOptions\": [ \"GREATER_THAN_OR_EQUAL\" ], \"Values\": [ \"100\" ] } } ] }@+anomalySubscription_thresholdExpression :: Lens.Lens' AnomalySubscription (Prelude.Maybe Expression)+anomalySubscription_thresholdExpression = Lens.lens (\AnomalySubscription' {thresholdExpression} -> thresholdExpression) (\s@AnomalySubscription' {} a -> s {thresholdExpression = a} :: AnomalySubscription)++-- | A list of cost anomaly monitors.+anomalySubscription_monitorArnList :: Lens.Lens' AnomalySubscription [Prelude.Text]+anomalySubscription_monitorArnList = Lens.lens (\AnomalySubscription' {monitorArnList} -> monitorArnList) (\s@AnomalySubscription' {} a -> s {monitorArnList = a} :: AnomalySubscription) Prelude.. Lens.coerced++-- | A list of subscribers to notify.+anomalySubscription_subscribers :: Lens.Lens' AnomalySubscription [Subscriber]+anomalySubscription_subscribers = Lens.lens (\AnomalySubscription' {subscribers} -> subscribers) (\s@AnomalySubscription' {} a -> s {subscribers = a} :: AnomalySubscription) Prelude.. Lens.coerced++-- | The frequency that anomaly reports are sent over email.+anomalySubscription_frequency :: Lens.Lens' AnomalySubscription AnomalySubscriptionFrequency+anomalySubscription_frequency = Lens.lens (\AnomalySubscription' {frequency} -> frequency) (\s@AnomalySubscription' {} a -> s {frequency = a} :: AnomalySubscription)++-- | The name for the subscription.+anomalySubscription_subscriptionName :: Lens.Lens' AnomalySubscription Prelude.Text+anomalySubscription_subscriptionName = Lens.lens (\AnomalySubscription' {subscriptionName} -> subscriptionName) (\s@AnomalySubscription' {} a -> s {subscriptionName = a} :: AnomalySubscription)++instance Data.FromJSON AnomalySubscription where+  parseJSON =+    Data.withObject+      "AnomalySubscription"+      ( \x ->+          AnomalySubscription'+            Prelude.<$> (x Data..:? "AccountId")+            Prelude.<*> (x Data..:? "SubscriptionArn")+            Prelude.<*> (x Data..:? "Threshold")+            Prelude.<*> (x Data..:? "ThresholdExpression")+            Prelude.<*> (x Data..:? "MonitorArnList" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "Subscribers" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..: "Frequency")+            Prelude.<*> (x Data..: "SubscriptionName")+      )++instance Prelude.Hashable AnomalySubscription where+  hashWithSalt _salt AnomalySubscription' {..} =+    _salt+      `Prelude.hashWithSalt` accountId+      `Prelude.hashWithSalt` subscriptionArn+      `Prelude.hashWithSalt` threshold+      `Prelude.hashWithSalt` thresholdExpression+      `Prelude.hashWithSalt` monitorArnList+      `Prelude.hashWithSalt` subscribers+      `Prelude.hashWithSalt` frequency+      `Prelude.hashWithSalt` subscriptionName++instance Prelude.NFData AnomalySubscription where+  rnf AnomalySubscription' {..} =+    Prelude.rnf accountId+      `Prelude.seq` Prelude.rnf subscriptionArn+      `Prelude.seq` Prelude.rnf threshold+      `Prelude.seq` Prelude.rnf thresholdExpression+      `Prelude.seq` Prelude.rnf monitorArnList+      `Prelude.seq` Prelude.rnf subscribers+      `Prelude.seq` Prelude.rnf frequency+      `Prelude.seq` Prelude.rnf subscriptionName++instance Data.ToJSON AnomalySubscription where+  toJSON AnomalySubscription' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("AccountId" Data..=) Prelude.<$> accountId,+            ("SubscriptionArn" Data..=)+              Prelude.<$> subscriptionArn,+            ("Threshold" Data..=) Prelude.<$> threshold,+            ("ThresholdExpression" Data..=)+              Prelude.<$> thresholdExpression,+            Prelude.Just+              ("MonitorArnList" Data..= monitorArnList),+            Prelude.Just ("Subscribers" Data..= subscribers),+            Prelude.Just ("Frequency" Data..= frequency),+            Prelude.Just+              ("SubscriptionName" Data..= subscriptionName)+          ]+      )
+ gen/Amazonka/CostExplorer/Types/AnomalySubscriptionFrequency.hs view
@@ -0,0 +1,76 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.AnomalySubscriptionFrequency+-- 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.CostExplorer.Types.AnomalySubscriptionFrequency+  ( AnomalySubscriptionFrequency+      ( ..,+        AnomalySubscriptionFrequency_DAILY,+        AnomalySubscriptionFrequency_IMMEDIATE,+        AnomalySubscriptionFrequency_WEEKLY+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype AnomalySubscriptionFrequency = AnomalySubscriptionFrequency'+  { fromAnomalySubscriptionFrequency ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern AnomalySubscriptionFrequency_DAILY :: AnomalySubscriptionFrequency+pattern AnomalySubscriptionFrequency_DAILY = AnomalySubscriptionFrequency' "DAILY"++pattern AnomalySubscriptionFrequency_IMMEDIATE :: AnomalySubscriptionFrequency+pattern AnomalySubscriptionFrequency_IMMEDIATE = AnomalySubscriptionFrequency' "IMMEDIATE"++pattern AnomalySubscriptionFrequency_WEEKLY :: AnomalySubscriptionFrequency+pattern AnomalySubscriptionFrequency_WEEKLY = AnomalySubscriptionFrequency' "WEEKLY"++{-# COMPLETE+  AnomalySubscriptionFrequency_DAILY,+  AnomalySubscriptionFrequency_IMMEDIATE,+  AnomalySubscriptionFrequency_WEEKLY,+  AnomalySubscriptionFrequency'+  #-}
+ gen/Amazonka/CostExplorer/Types/Context.hs view
@@ -0,0 +1,73 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.Context+-- 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.CostExplorer.Types.Context+  ( Context+      ( ..,+        Context_COST_AND_USAGE,+        Context_RESERVATIONS,+        Context_SAVINGS_PLANS+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype Context = Context' {fromContext :: Data.Text}+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern Context_COST_AND_USAGE :: Context+pattern Context_COST_AND_USAGE = Context' "COST_AND_USAGE"++pattern Context_RESERVATIONS :: Context+pattern Context_RESERVATIONS = Context' "RESERVATIONS"++pattern Context_SAVINGS_PLANS :: Context+pattern Context_SAVINGS_PLANS = Context' "SAVINGS_PLANS"++{-# COMPLETE+  Context_COST_AND_USAGE,+  Context_RESERVATIONS,+  Context_SAVINGS_PLANS,+  Context'+  #-}
+ gen/Amazonka/CostExplorer/Types/CostAllocationTag.hs view
@@ -0,0 +1,117 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.CostAllocationTag+-- 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.CostExplorer.Types.CostAllocationTag where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CostExplorer.Types.CostAllocationTagStatus+import Amazonka.CostExplorer.Types.CostAllocationTagType+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The cost allocation tag structure. This includes detailed metadata for+-- the @CostAllocationTag@ object.+--+-- /See:/ 'newCostAllocationTag' smart constructor.+data CostAllocationTag = CostAllocationTag'+  { -- | The key for the cost allocation tag.+    tagKey :: Prelude.Text,+    -- | The type of cost allocation tag. You can use @AWSGenerated@ or+    -- @UserDefined@ type tags. @AWSGenerated@ type tags are tags that Amazon+    -- Web Services defines and applies to support Amazon Web Services+    -- resources for cost allocation purposes. @UserDefined@ type tags are tags+    -- that you define, create, and apply to resources.+    type' :: CostAllocationTagType,+    -- | The status of a cost allocation tag.+    status :: CostAllocationTagStatus+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CostAllocationTag' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'tagKey', 'costAllocationTag_tagKey' - The key for the cost allocation tag.+--+-- 'type'', 'costAllocationTag_type' - The type of cost allocation tag. You can use @AWSGenerated@ or+-- @UserDefined@ type tags. @AWSGenerated@ type tags are tags that Amazon+-- Web Services defines and applies to support Amazon Web Services+-- resources for cost allocation purposes. @UserDefined@ type tags are tags+-- that you define, create, and apply to resources.+--+-- 'status', 'costAllocationTag_status' - The status of a cost allocation tag.+newCostAllocationTag ::+  -- | 'tagKey'+  Prelude.Text ->+  -- | 'type''+  CostAllocationTagType ->+  -- | 'status'+  CostAllocationTagStatus ->+  CostAllocationTag+newCostAllocationTag pTagKey_ pType_ pStatus_ =+  CostAllocationTag'+    { tagKey = pTagKey_,+      type' = pType_,+      status = pStatus_+    }++-- | The key for the cost allocation tag.+costAllocationTag_tagKey :: Lens.Lens' CostAllocationTag Prelude.Text+costAllocationTag_tagKey = Lens.lens (\CostAllocationTag' {tagKey} -> tagKey) (\s@CostAllocationTag' {} a -> s {tagKey = a} :: CostAllocationTag)++-- | The type of cost allocation tag. You can use @AWSGenerated@ or+-- @UserDefined@ type tags. @AWSGenerated@ type tags are tags that Amazon+-- Web Services defines and applies to support Amazon Web Services+-- resources for cost allocation purposes. @UserDefined@ type tags are tags+-- that you define, create, and apply to resources.+costAllocationTag_type :: Lens.Lens' CostAllocationTag CostAllocationTagType+costAllocationTag_type = Lens.lens (\CostAllocationTag' {type'} -> type') (\s@CostAllocationTag' {} a -> s {type' = a} :: CostAllocationTag)++-- | The status of a cost allocation tag.+costAllocationTag_status :: Lens.Lens' CostAllocationTag CostAllocationTagStatus+costAllocationTag_status = Lens.lens (\CostAllocationTag' {status} -> status) (\s@CostAllocationTag' {} a -> s {status = a} :: CostAllocationTag)++instance Data.FromJSON CostAllocationTag where+  parseJSON =+    Data.withObject+      "CostAllocationTag"+      ( \x ->+          CostAllocationTag'+            Prelude.<$> (x Data..: "TagKey")+            Prelude.<*> (x Data..: "Type")+            Prelude.<*> (x Data..: "Status")+      )++instance Prelude.Hashable CostAllocationTag where+  hashWithSalt _salt CostAllocationTag' {..} =+    _salt+      `Prelude.hashWithSalt` tagKey+      `Prelude.hashWithSalt` type'+      `Prelude.hashWithSalt` status++instance Prelude.NFData CostAllocationTag where+  rnf CostAllocationTag' {..} =+    Prelude.rnf tagKey+      `Prelude.seq` Prelude.rnf type'+      `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/CostExplorer/Types/CostAllocationTagStatus.hs view
@@ -0,0 +1,71 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.CostAllocationTagStatus+-- 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.CostExplorer.Types.CostAllocationTagStatus+  ( CostAllocationTagStatus+      ( ..,+        CostAllocationTagStatus_Active,+        CostAllocationTagStatus_Inactive+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype CostAllocationTagStatus = CostAllocationTagStatus'+  { fromCostAllocationTagStatus ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern CostAllocationTagStatus_Active :: CostAllocationTagStatus+pattern CostAllocationTagStatus_Active = CostAllocationTagStatus' "Active"++pattern CostAllocationTagStatus_Inactive :: CostAllocationTagStatus+pattern CostAllocationTagStatus_Inactive = CostAllocationTagStatus' "Inactive"++{-# COMPLETE+  CostAllocationTagStatus_Active,+  CostAllocationTagStatus_Inactive,+  CostAllocationTagStatus'+  #-}
+ gen/Amazonka/CostExplorer/Types/CostAllocationTagStatusEntry.hs view
@@ -0,0 +1,91 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.CostAllocationTagStatusEntry+-- 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.CostExplorer.Types.CostAllocationTagStatusEntry where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CostExplorer.Types.CostAllocationTagStatus+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The cost allocation tag status. The status of a key can either be active+-- or inactive.+--+-- /See:/ 'newCostAllocationTagStatusEntry' smart constructor.+data CostAllocationTagStatusEntry = CostAllocationTagStatusEntry'+  { -- | The key for the cost allocation tag.+    tagKey :: Prelude.Text,+    -- | The status of a cost allocation tag.+    status :: CostAllocationTagStatus+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CostAllocationTagStatusEntry' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'tagKey', 'costAllocationTagStatusEntry_tagKey' - The key for the cost allocation tag.+--+-- 'status', 'costAllocationTagStatusEntry_status' - The status of a cost allocation tag.+newCostAllocationTagStatusEntry ::+  -- | 'tagKey'+  Prelude.Text ->+  -- | 'status'+  CostAllocationTagStatus ->+  CostAllocationTagStatusEntry+newCostAllocationTagStatusEntry pTagKey_ pStatus_ =+  CostAllocationTagStatusEntry'+    { tagKey = pTagKey_,+      status = pStatus_+    }++-- | The key for the cost allocation tag.+costAllocationTagStatusEntry_tagKey :: Lens.Lens' CostAllocationTagStatusEntry Prelude.Text+costAllocationTagStatusEntry_tagKey = Lens.lens (\CostAllocationTagStatusEntry' {tagKey} -> tagKey) (\s@CostAllocationTagStatusEntry' {} a -> s {tagKey = a} :: CostAllocationTagStatusEntry)++-- | The status of a cost allocation tag.+costAllocationTagStatusEntry_status :: Lens.Lens' CostAllocationTagStatusEntry CostAllocationTagStatus+costAllocationTagStatusEntry_status = Lens.lens (\CostAllocationTagStatusEntry' {status} -> status) (\s@CostAllocationTagStatusEntry' {} a -> s {status = a} :: CostAllocationTagStatusEntry)++instance+  Prelude.Hashable+    CostAllocationTagStatusEntry+  where+  hashWithSalt _salt CostAllocationTagStatusEntry' {..} =+    _salt+      `Prelude.hashWithSalt` tagKey+      `Prelude.hashWithSalt` status++instance Prelude.NFData CostAllocationTagStatusEntry where+  rnf CostAllocationTagStatusEntry' {..} =+    Prelude.rnf tagKey `Prelude.seq` Prelude.rnf status++instance Data.ToJSON CostAllocationTagStatusEntry where+  toJSON CostAllocationTagStatusEntry' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("TagKey" Data..= tagKey),+            Prelude.Just ("Status" Data..= status)+          ]+      )
+ gen/Amazonka/CostExplorer/Types/CostAllocationTagType.hs view
@@ -0,0 +1,71 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.CostAllocationTagType+-- 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.CostExplorer.Types.CostAllocationTagType+  ( CostAllocationTagType+      ( ..,+        CostAllocationTagType_AWSGenerated,+        CostAllocationTagType_UserDefined+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype CostAllocationTagType = CostAllocationTagType'+  { fromCostAllocationTagType ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern CostAllocationTagType_AWSGenerated :: CostAllocationTagType+pattern CostAllocationTagType_AWSGenerated = CostAllocationTagType' "AWSGenerated"++pattern CostAllocationTagType_UserDefined :: CostAllocationTagType+pattern CostAllocationTagType_UserDefined = CostAllocationTagType' "UserDefined"++{-# COMPLETE+  CostAllocationTagType_AWSGenerated,+  CostAllocationTagType_UserDefined,+  CostAllocationTagType'+  #-}
+ gen/Amazonka/CostExplorer/Types/CostCategory.hs view
@@ -0,0 +1,200 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.CostCategory+-- 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.CostExplorer.Types.CostCategory where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CostExplorer.Types.CostCategoryProcessingStatus+import Amazonka.CostExplorer.Types.CostCategoryRule+import Amazonka.CostExplorer.Types.CostCategoryRuleVersion+import Amazonka.CostExplorer.Types.CostCategorySplitChargeRule+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The structure of Cost Categories. This includes detailed metadata and+-- the set of rules for the @CostCategory@ object.+--+-- /See:/ 'newCostCategory' smart constructor.+data CostCategory = CostCategory'+  { defaultValue :: Prelude.Maybe Prelude.Text,+    -- | The effective end date of your Cost Category.+    effectiveEnd :: Prelude.Maybe Prelude.Text,+    -- | The list of processing statuses for Cost Management products for a+    -- specific cost category.+    processingStatus :: Prelude.Maybe [CostCategoryProcessingStatus],+    -- | The split charge rules that are used to allocate your charges between+    -- your Cost Category values.+    splitChargeRules :: Prelude.Maybe (Prelude.NonEmpty CostCategorySplitChargeRule),+    -- | The unique identifier for your Cost Category.+    costCategoryArn :: Prelude.Text,+    -- | The effective start date of your Cost Category.+    effectiveStart :: Prelude.Text,+    name :: Prelude.Text,+    ruleVersion :: CostCategoryRuleVersion,+    -- | The rules are processed in order. If there are multiple rules that match+    -- the line item, then the first rule to match is used to determine that+    -- Cost Category value.+    rules :: Prelude.NonEmpty CostCategoryRule+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CostCategory' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'defaultValue', 'costCategory_defaultValue' - Undocumented member.+--+-- 'effectiveEnd', 'costCategory_effectiveEnd' - The effective end date of your Cost Category.+--+-- 'processingStatus', 'costCategory_processingStatus' - The list of processing statuses for Cost Management products for a+-- specific cost category.+--+-- 'splitChargeRules', 'costCategory_splitChargeRules' - The split charge rules that are used to allocate your charges between+-- your Cost Category values.+--+-- 'costCategoryArn', 'costCategory_costCategoryArn' - The unique identifier for your Cost Category.+--+-- 'effectiveStart', 'costCategory_effectiveStart' - The effective start date of your Cost Category.+--+-- 'name', 'costCategory_name' - Undocumented member.+--+-- 'ruleVersion', 'costCategory_ruleVersion' - Undocumented member.+--+-- 'rules', 'costCategory_rules' - The rules are processed in order. If there are multiple rules that match+-- the line item, then the first rule to match is used to determine that+-- Cost Category value.+newCostCategory ::+  -- | 'costCategoryArn'+  Prelude.Text ->+  -- | 'effectiveStart'+  Prelude.Text ->+  -- | 'name'+  Prelude.Text ->+  -- | 'ruleVersion'+  CostCategoryRuleVersion ->+  -- | 'rules'+  Prelude.NonEmpty CostCategoryRule ->+  CostCategory+newCostCategory+  pCostCategoryArn_+  pEffectiveStart_+  pName_+  pRuleVersion_+  pRules_ =+    CostCategory'+      { defaultValue = Prelude.Nothing,+        effectiveEnd = Prelude.Nothing,+        processingStatus = Prelude.Nothing,+        splitChargeRules = Prelude.Nothing,+        costCategoryArn = pCostCategoryArn_,+        effectiveStart = pEffectiveStart_,+        name = pName_,+        ruleVersion = pRuleVersion_,+        rules = Lens.coerced Lens.# pRules_+      }++-- | Undocumented member.+costCategory_defaultValue :: Lens.Lens' CostCategory (Prelude.Maybe Prelude.Text)+costCategory_defaultValue = Lens.lens (\CostCategory' {defaultValue} -> defaultValue) (\s@CostCategory' {} a -> s {defaultValue = a} :: CostCategory)++-- | The effective end date of your Cost Category.+costCategory_effectiveEnd :: Lens.Lens' CostCategory (Prelude.Maybe Prelude.Text)+costCategory_effectiveEnd = Lens.lens (\CostCategory' {effectiveEnd} -> effectiveEnd) (\s@CostCategory' {} a -> s {effectiveEnd = a} :: CostCategory)++-- | The list of processing statuses for Cost Management products for a+-- specific cost category.+costCategory_processingStatus :: Lens.Lens' CostCategory (Prelude.Maybe [CostCategoryProcessingStatus])+costCategory_processingStatus = Lens.lens (\CostCategory' {processingStatus} -> processingStatus) (\s@CostCategory' {} a -> s {processingStatus = a} :: CostCategory) Prelude.. Lens.mapping Lens.coerced++-- | The split charge rules that are used to allocate your charges between+-- your Cost Category values.+costCategory_splitChargeRules :: Lens.Lens' CostCategory (Prelude.Maybe (Prelude.NonEmpty CostCategorySplitChargeRule))+costCategory_splitChargeRules = Lens.lens (\CostCategory' {splitChargeRules} -> splitChargeRules) (\s@CostCategory' {} a -> s {splitChargeRules = a} :: CostCategory) Prelude.. Lens.mapping Lens.coerced++-- | The unique identifier for your Cost Category.+costCategory_costCategoryArn :: Lens.Lens' CostCategory Prelude.Text+costCategory_costCategoryArn = Lens.lens (\CostCategory' {costCategoryArn} -> costCategoryArn) (\s@CostCategory' {} a -> s {costCategoryArn = a} :: CostCategory)++-- | The effective start date of your Cost Category.+costCategory_effectiveStart :: Lens.Lens' CostCategory Prelude.Text+costCategory_effectiveStart = Lens.lens (\CostCategory' {effectiveStart} -> effectiveStart) (\s@CostCategory' {} a -> s {effectiveStart = a} :: CostCategory)++-- | Undocumented member.+costCategory_name :: Lens.Lens' CostCategory Prelude.Text+costCategory_name = Lens.lens (\CostCategory' {name} -> name) (\s@CostCategory' {} a -> s {name = a} :: CostCategory)++-- | Undocumented member.+costCategory_ruleVersion :: Lens.Lens' CostCategory CostCategoryRuleVersion+costCategory_ruleVersion = Lens.lens (\CostCategory' {ruleVersion} -> ruleVersion) (\s@CostCategory' {} a -> s {ruleVersion = a} :: CostCategory)++-- | The rules are processed in order. If there are multiple rules that match+-- the line item, then the first rule to match is used to determine that+-- Cost Category value.+costCategory_rules :: Lens.Lens' CostCategory (Prelude.NonEmpty CostCategoryRule)+costCategory_rules = Lens.lens (\CostCategory' {rules} -> rules) (\s@CostCategory' {} a -> s {rules = a} :: CostCategory) Prelude.. Lens.coerced++instance Data.FromJSON CostCategory where+  parseJSON =+    Data.withObject+      "CostCategory"+      ( \x ->+          CostCategory'+            Prelude.<$> (x Data..:? "DefaultValue")+            Prelude.<*> (x Data..:? "EffectiveEnd")+            Prelude.<*> ( x+                            Data..:? "ProcessingStatus"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "SplitChargeRules")+            Prelude.<*> (x Data..: "CostCategoryArn")+            Prelude.<*> (x Data..: "EffectiveStart")+            Prelude.<*> (x Data..: "Name")+            Prelude.<*> (x Data..: "RuleVersion")+            Prelude.<*> (x Data..: "Rules")+      )++instance Prelude.Hashable CostCategory where+  hashWithSalt _salt CostCategory' {..} =+    _salt+      `Prelude.hashWithSalt` defaultValue+      `Prelude.hashWithSalt` effectiveEnd+      `Prelude.hashWithSalt` processingStatus+      `Prelude.hashWithSalt` splitChargeRules+      `Prelude.hashWithSalt` costCategoryArn+      `Prelude.hashWithSalt` effectiveStart+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` ruleVersion+      `Prelude.hashWithSalt` rules++instance Prelude.NFData CostCategory where+  rnf CostCategory' {..} =+    Prelude.rnf defaultValue+      `Prelude.seq` Prelude.rnf effectiveEnd+      `Prelude.seq` Prelude.rnf processingStatus+      `Prelude.seq` Prelude.rnf splitChargeRules+      `Prelude.seq` Prelude.rnf costCategoryArn+      `Prelude.seq` Prelude.rnf effectiveStart+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf ruleVersion+      `Prelude.seq` Prelude.rnf rules
+ gen/Amazonka/CostExplorer/Types/CostCategoryInheritedValueDimension.hs view
@@ -0,0 +1,128 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.CostCategoryInheritedValueDimension+-- 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.CostExplorer.Types.CostCategoryInheritedValueDimension where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CostExplorer.Types.CostCategoryInheritedValueDimensionName+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | When you create or update a cost category, you can define the+-- @CostCategoryRule@ rule type as @INHERITED_VALUE@. This rule type adds+-- the flexibility to define a rule that dynamically inherits the cost+-- category value from the dimension value that\'s defined by+-- @CostCategoryInheritedValueDimension@. For example, suppose that you+-- want to dynamically group costs that are based on the value of a+-- specific tag key. First, choose an inherited value rule type, and then+-- choose the tag dimension and specify the tag key to use.+--+-- /See:/ 'newCostCategoryInheritedValueDimension' smart constructor.+data CostCategoryInheritedValueDimension = CostCategoryInheritedValueDimension'+  { -- | The key to extract cost category values.+    dimensionKey :: Prelude.Maybe Prelude.Text,+    -- | The name of the dimension that\'s used to group costs.+    --+    -- If you specify @LINKED_ACCOUNT_NAME@, the cost category value is based+    -- on account name. If you specify @TAG@, the cost category value is based+    -- on the value of the specified tag key.+    dimensionName :: Prelude.Maybe CostCategoryInheritedValueDimensionName+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CostCategoryInheritedValueDimension' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'dimensionKey', 'costCategoryInheritedValueDimension_dimensionKey' - The key to extract cost category values.+--+-- 'dimensionName', 'costCategoryInheritedValueDimension_dimensionName' - The name of the dimension that\'s used to group costs.+--+-- If you specify @LINKED_ACCOUNT_NAME@, the cost category value is based+-- on account name. If you specify @TAG@, the cost category value is based+-- on the value of the specified tag key.+newCostCategoryInheritedValueDimension ::+  CostCategoryInheritedValueDimension+newCostCategoryInheritedValueDimension =+  CostCategoryInheritedValueDimension'+    { dimensionKey =+        Prelude.Nothing,+      dimensionName = Prelude.Nothing+    }++-- | The key to extract cost category values.+costCategoryInheritedValueDimension_dimensionKey :: Lens.Lens' CostCategoryInheritedValueDimension (Prelude.Maybe Prelude.Text)+costCategoryInheritedValueDimension_dimensionKey = Lens.lens (\CostCategoryInheritedValueDimension' {dimensionKey} -> dimensionKey) (\s@CostCategoryInheritedValueDimension' {} a -> s {dimensionKey = a} :: CostCategoryInheritedValueDimension)++-- | The name of the dimension that\'s used to group costs.+--+-- If you specify @LINKED_ACCOUNT_NAME@, the cost category value is based+-- on account name. If you specify @TAG@, the cost category value is based+-- on the value of the specified tag key.+costCategoryInheritedValueDimension_dimensionName :: Lens.Lens' CostCategoryInheritedValueDimension (Prelude.Maybe CostCategoryInheritedValueDimensionName)+costCategoryInheritedValueDimension_dimensionName = Lens.lens (\CostCategoryInheritedValueDimension' {dimensionName} -> dimensionName) (\s@CostCategoryInheritedValueDimension' {} a -> s {dimensionName = a} :: CostCategoryInheritedValueDimension)++instance+  Data.FromJSON+    CostCategoryInheritedValueDimension+  where+  parseJSON =+    Data.withObject+      "CostCategoryInheritedValueDimension"+      ( \x ->+          CostCategoryInheritedValueDimension'+            Prelude.<$> (x Data..:? "DimensionKey")+            Prelude.<*> (x Data..:? "DimensionName")+      )++instance+  Prelude.Hashable+    CostCategoryInheritedValueDimension+  where+  hashWithSalt+    _salt+    CostCategoryInheritedValueDimension' {..} =+      _salt+        `Prelude.hashWithSalt` dimensionKey+        `Prelude.hashWithSalt` dimensionName++instance+  Prelude.NFData+    CostCategoryInheritedValueDimension+  where+  rnf CostCategoryInheritedValueDimension' {..} =+    Prelude.rnf dimensionKey+      `Prelude.seq` Prelude.rnf dimensionName++instance+  Data.ToJSON+    CostCategoryInheritedValueDimension+  where+  toJSON CostCategoryInheritedValueDimension' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("DimensionKey" Data..=) Prelude.<$> dimensionKey,+            ("DimensionName" Data..=) Prelude.<$> dimensionName+          ]+      )
+ gen/Amazonka/CostExplorer/Types/CostCategoryInheritedValueDimensionName.hs view
@@ -0,0 +1,71 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.CostCategoryInheritedValueDimensionName+-- 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.CostExplorer.Types.CostCategoryInheritedValueDimensionName+  ( CostCategoryInheritedValueDimensionName+      ( ..,+        CostCategoryInheritedValueDimensionName_LINKED_ACCOUNT_NAME,+        CostCategoryInheritedValueDimensionName_TAG+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype CostCategoryInheritedValueDimensionName = CostCategoryInheritedValueDimensionName'+  { fromCostCategoryInheritedValueDimensionName ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern CostCategoryInheritedValueDimensionName_LINKED_ACCOUNT_NAME :: CostCategoryInheritedValueDimensionName+pattern CostCategoryInheritedValueDimensionName_LINKED_ACCOUNT_NAME = CostCategoryInheritedValueDimensionName' "LINKED_ACCOUNT_NAME"++pattern CostCategoryInheritedValueDimensionName_TAG :: CostCategoryInheritedValueDimensionName+pattern CostCategoryInheritedValueDimensionName_TAG = CostCategoryInheritedValueDimensionName' "TAG"++{-# COMPLETE+  CostCategoryInheritedValueDimensionName_LINKED_ACCOUNT_NAME,+  CostCategoryInheritedValueDimensionName_TAG,+  CostCategoryInheritedValueDimensionName'+  #-}
+ gen/Amazonka/CostExplorer/Types/CostCategoryProcessingStatus.hs view
@@ -0,0 +1,91 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.CostCategoryProcessingStatus+-- 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.CostExplorer.Types.CostCategoryProcessingStatus where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CostExplorer.Types.CostCategoryStatus+import Amazonka.CostExplorer.Types.CostCategoryStatusComponent+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The list of processing statuses for Cost Management products for a+-- specific cost category.+--+-- /See:/ 'newCostCategoryProcessingStatus' smart constructor.+data CostCategoryProcessingStatus = CostCategoryProcessingStatus'+  { -- | The Cost Management product name of the applied status.+    component :: Prelude.Maybe CostCategoryStatusComponent,+    -- | The process status for a specific cost category.+    status :: Prelude.Maybe CostCategoryStatus+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CostCategoryProcessingStatus' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'component', 'costCategoryProcessingStatus_component' - The Cost Management product name of the applied status.+--+-- 'status', 'costCategoryProcessingStatus_status' - The process status for a specific cost category.+newCostCategoryProcessingStatus ::+  CostCategoryProcessingStatus+newCostCategoryProcessingStatus =+  CostCategoryProcessingStatus'+    { component =+        Prelude.Nothing,+      status = Prelude.Nothing+    }++-- | The Cost Management product name of the applied status.+costCategoryProcessingStatus_component :: Lens.Lens' CostCategoryProcessingStatus (Prelude.Maybe CostCategoryStatusComponent)+costCategoryProcessingStatus_component = Lens.lens (\CostCategoryProcessingStatus' {component} -> component) (\s@CostCategoryProcessingStatus' {} a -> s {component = a} :: CostCategoryProcessingStatus)++-- | The process status for a specific cost category.+costCategoryProcessingStatus_status :: Lens.Lens' CostCategoryProcessingStatus (Prelude.Maybe CostCategoryStatus)+costCategoryProcessingStatus_status = Lens.lens (\CostCategoryProcessingStatus' {status} -> status) (\s@CostCategoryProcessingStatus' {} a -> s {status = a} :: CostCategoryProcessingStatus)++instance Data.FromJSON CostCategoryProcessingStatus where+  parseJSON =+    Data.withObject+      "CostCategoryProcessingStatus"+      ( \x ->+          CostCategoryProcessingStatus'+            Prelude.<$> (x Data..:? "Component")+            Prelude.<*> (x Data..:? "Status")+      )++instance+  Prelude.Hashable+    CostCategoryProcessingStatus+  where+  hashWithSalt _salt CostCategoryProcessingStatus' {..} =+    _salt+      `Prelude.hashWithSalt` component+      `Prelude.hashWithSalt` status++instance Prelude.NFData CostCategoryProcessingStatus where+  rnf CostCategoryProcessingStatus' {..} =+    Prelude.rnf component+      `Prelude.seq` Prelude.rnf status
+ gen/Amazonka/CostExplorer/Types/CostCategoryReference.hs view
@@ -0,0 +1,166 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.CostCategoryReference+-- 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.CostExplorer.Types.CostCategoryReference where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CostExplorer.Types.CostCategoryProcessingStatus+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | A reference to a Cost Category containing only enough information to+-- identify the Cost Category.+--+-- You can use this information to retrieve the full Cost Category+-- information using @DescribeCostCategory@.+--+-- /See:/ 'newCostCategoryReference' smart constructor.+data CostCategoryReference = CostCategoryReference'+  { -- | The unique identifier for your Cost Category.+    costCategoryArn :: Prelude.Maybe Prelude.Text,+    defaultValue :: Prelude.Maybe Prelude.Text,+    -- | The Cost Category\'s effective end date.+    effectiveEnd :: Prelude.Maybe Prelude.Text,+    -- | The Cost Category\'s effective start date.+    effectiveStart :: Prelude.Maybe Prelude.Text,+    name :: Prelude.Maybe Prelude.Text,+    -- | The number of rules that are associated with a specific Cost Category.+    numberOfRules :: Prelude.Maybe Prelude.Natural,+    -- | The list of processing statuses for Cost Management products for a+    -- specific cost category.+    processingStatus :: Prelude.Maybe [CostCategoryProcessingStatus],+    -- | A list of unique cost category values in a specific cost category.+    values :: Prelude.Maybe [Prelude.Text]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CostCategoryReference' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'costCategoryArn', 'costCategoryReference_costCategoryArn' - The unique identifier for your Cost Category.+--+-- 'defaultValue', 'costCategoryReference_defaultValue' - Undocumented member.+--+-- 'effectiveEnd', 'costCategoryReference_effectiveEnd' - The Cost Category\'s effective end date.+--+-- 'effectiveStart', 'costCategoryReference_effectiveStart' - The Cost Category\'s effective start date.+--+-- 'name', 'costCategoryReference_name' - Undocumented member.+--+-- 'numberOfRules', 'costCategoryReference_numberOfRules' - The number of rules that are associated with a specific Cost Category.+--+-- 'processingStatus', 'costCategoryReference_processingStatus' - The list of processing statuses for Cost Management products for a+-- specific cost category.+--+-- 'values', 'costCategoryReference_values' - A list of unique cost category values in a specific cost category.+newCostCategoryReference ::+  CostCategoryReference+newCostCategoryReference =+  CostCategoryReference'+    { costCategoryArn =+        Prelude.Nothing,+      defaultValue = Prelude.Nothing,+      effectiveEnd = Prelude.Nothing,+      effectiveStart = Prelude.Nothing,+      name = Prelude.Nothing,+      numberOfRules = Prelude.Nothing,+      processingStatus = Prelude.Nothing,+      values = Prelude.Nothing+    }++-- | The unique identifier for your Cost Category.+costCategoryReference_costCategoryArn :: Lens.Lens' CostCategoryReference (Prelude.Maybe Prelude.Text)+costCategoryReference_costCategoryArn = Lens.lens (\CostCategoryReference' {costCategoryArn} -> costCategoryArn) (\s@CostCategoryReference' {} a -> s {costCategoryArn = a} :: CostCategoryReference)++-- | Undocumented member.+costCategoryReference_defaultValue :: Lens.Lens' CostCategoryReference (Prelude.Maybe Prelude.Text)+costCategoryReference_defaultValue = Lens.lens (\CostCategoryReference' {defaultValue} -> defaultValue) (\s@CostCategoryReference' {} a -> s {defaultValue = a} :: CostCategoryReference)++-- | The Cost Category\'s effective end date.+costCategoryReference_effectiveEnd :: Lens.Lens' CostCategoryReference (Prelude.Maybe Prelude.Text)+costCategoryReference_effectiveEnd = Lens.lens (\CostCategoryReference' {effectiveEnd} -> effectiveEnd) (\s@CostCategoryReference' {} a -> s {effectiveEnd = a} :: CostCategoryReference)++-- | The Cost Category\'s effective start date.+costCategoryReference_effectiveStart :: Lens.Lens' CostCategoryReference (Prelude.Maybe Prelude.Text)+costCategoryReference_effectiveStart = Lens.lens (\CostCategoryReference' {effectiveStart} -> effectiveStart) (\s@CostCategoryReference' {} a -> s {effectiveStart = a} :: CostCategoryReference)++-- | Undocumented member.+costCategoryReference_name :: Lens.Lens' CostCategoryReference (Prelude.Maybe Prelude.Text)+costCategoryReference_name = Lens.lens (\CostCategoryReference' {name} -> name) (\s@CostCategoryReference' {} a -> s {name = a} :: CostCategoryReference)++-- | The number of rules that are associated with a specific Cost Category.+costCategoryReference_numberOfRules :: Lens.Lens' CostCategoryReference (Prelude.Maybe Prelude.Natural)+costCategoryReference_numberOfRules = Lens.lens (\CostCategoryReference' {numberOfRules} -> numberOfRules) (\s@CostCategoryReference' {} a -> s {numberOfRules = a} :: CostCategoryReference)++-- | The list of processing statuses for Cost Management products for a+-- specific cost category.+costCategoryReference_processingStatus :: Lens.Lens' CostCategoryReference (Prelude.Maybe [CostCategoryProcessingStatus])+costCategoryReference_processingStatus = Lens.lens (\CostCategoryReference' {processingStatus} -> processingStatus) (\s@CostCategoryReference' {} a -> s {processingStatus = a} :: CostCategoryReference) Prelude.. Lens.mapping Lens.coerced++-- | A list of unique cost category values in a specific cost category.+costCategoryReference_values :: Lens.Lens' CostCategoryReference (Prelude.Maybe [Prelude.Text])+costCategoryReference_values = Lens.lens (\CostCategoryReference' {values} -> values) (\s@CostCategoryReference' {} a -> s {values = a} :: CostCategoryReference) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON CostCategoryReference where+  parseJSON =+    Data.withObject+      "CostCategoryReference"+      ( \x ->+          CostCategoryReference'+            Prelude.<$> (x Data..:? "CostCategoryArn")+            Prelude.<*> (x Data..:? "DefaultValue")+            Prelude.<*> (x Data..:? "EffectiveEnd")+            Prelude.<*> (x Data..:? "EffectiveStart")+            Prelude.<*> (x Data..:? "Name")+            Prelude.<*> (x Data..:? "NumberOfRules")+            Prelude.<*> ( x+                            Data..:? "ProcessingStatus"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "Values" Data..!= Prelude.mempty)+      )++instance Prelude.Hashable CostCategoryReference where+  hashWithSalt _salt CostCategoryReference' {..} =+    _salt+      `Prelude.hashWithSalt` costCategoryArn+      `Prelude.hashWithSalt` defaultValue+      `Prelude.hashWithSalt` effectiveEnd+      `Prelude.hashWithSalt` effectiveStart+      `Prelude.hashWithSalt` name+      `Prelude.hashWithSalt` numberOfRules+      `Prelude.hashWithSalt` processingStatus+      `Prelude.hashWithSalt` values++instance Prelude.NFData CostCategoryReference where+  rnf CostCategoryReference' {..} =+    Prelude.rnf costCategoryArn+      `Prelude.seq` Prelude.rnf defaultValue+      `Prelude.seq` Prelude.rnf effectiveEnd+      `Prelude.seq` Prelude.rnf effectiveStart+      `Prelude.seq` Prelude.rnf name+      `Prelude.seq` Prelude.rnf numberOfRules+      `Prelude.seq` Prelude.rnf processingStatus+      `Prelude.seq` Prelude.rnf values
+ gen/Amazonka/CostExplorer/Types/CostCategoryRule.hs view
@@ -0,0 +1,193 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.CostCategoryRule+-- 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.CostExplorer.Types.CostCategoryRule where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CostExplorer.Types.CostCategoryInheritedValueDimension+import Amazonka.CostExplorer.Types.CostCategoryRuleType+import Amazonka.CostExplorer.Types.Expression+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Rules are processed in order. If there are multiple rules that match the+-- line item, then the first rule to match is used to determine that Cost+-- Category value.+--+-- /See:/ 'newCostCategoryRule' smart constructor.+data CostCategoryRule = CostCategoryRule'+  { -- | The value the line item is categorized as if the line item contains the+    -- matched dimension.+    inheritedValue :: Prelude.Maybe CostCategoryInheritedValueDimension,+    -- | An+    -- <https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html Expression>+    -- object used to categorize costs. This supports dimensions, tags, and+    -- nested expressions. Currently the only dimensions supported are+    -- @LINKED_ACCOUNT@, @SERVICE_CODE@, @RECORD_TYPE@, and+    -- @LINKED_ACCOUNT_NAME@.+    --+    -- Root level @OR@ isn\'t supported. We recommend that you create a+    -- separate rule instead.+    --+    -- @RECORD_TYPE@ is a dimension used for Cost Explorer APIs, and is also+    -- supported for Cost Category expressions. This dimension uses different+    -- terms, depending on whether you\'re using the console or API\/JSON+    -- editor. For a detailed comparison, see+    -- <https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/manage-cost-categories.html#cost-categories-terms Term Comparisons>+    -- in the /Billing and Cost Management User Guide/.+    rule :: Prelude.Maybe Expression,+    -- | You can define the @CostCategoryRule@ rule type as either @REGULAR@ or+    -- @INHERITED_VALUE@. The @INHERITED_VALUE@ rule type adds the flexibility+    -- to define a rule that dynamically inherits the cost category value. This+    -- value is from the dimension value that\'s defined by+    -- @CostCategoryInheritedValueDimension@. For example, suppose that you+    -- want to costs to be dynamically grouped based on the value of a specific+    -- tag key. First, choose an inherited value rule type, and then choose the+    -- tag dimension and specify the tag key to use.+    type' :: Prelude.Maybe CostCategoryRuleType,+    value :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CostCategoryRule' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'inheritedValue', 'costCategoryRule_inheritedValue' - The value the line item is categorized as if the line item contains the+-- matched dimension.+--+-- 'rule', 'costCategoryRule_rule' - An+-- <https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html Expression>+-- object used to categorize costs. This supports dimensions, tags, and+-- nested expressions. Currently the only dimensions supported are+-- @LINKED_ACCOUNT@, @SERVICE_CODE@, @RECORD_TYPE@, and+-- @LINKED_ACCOUNT_NAME@.+--+-- Root level @OR@ isn\'t supported. We recommend that you create a+-- separate rule instead.+--+-- @RECORD_TYPE@ is a dimension used for Cost Explorer APIs, and is also+-- supported for Cost Category expressions. This dimension uses different+-- terms, depending on whether you\'re using the console or API\/JSON+-- editor. For a detailed comparison, see+-- <https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/manage-cost-categories.html#cost-categories-terms Term Comparisons>+-- in the /Billing and Cost Management User Guide/.+--+-- 'type'', 'costCategoryRule_type' - You can define the @CostCategoryRule@ rule type as either @REGULAR@ or+-- @INHERITED_VALUE@. The @INHERITED_VALUE@ rule type adds the flexibility+-- to define a rule that dynamically inherits the cost category value. This+-- value is from the dimension value that\'s defined by+-- @CostCategoryInheritedValueDimension@. For example, suppose that you+-- want to costs to be dynamically grouped based on the value of a specific+-- tag key. First, choose an inherited value rule type, and then choose the+-- tag dimension and specify the tag key to use.+--+-- 'value', 'costCategoryRule_value' - Undocumented member.+newCostCategoryRule ::+  CostCategoryRule+newCostCategoryRule =+  CostCategoryRule'+    { inheritedValue = Prelude.Nothing,+      rule = Prelude.Nothing,+      type' = Prelude.Nothing,+      value = Prelude.Nothing+    }++-- | The value the line item is categorized as if the line item contains the+-- matched dimension.+costCategoryRule_inheritedValue :: Lens.Lens' CostCategoryRule (Prelude.Maybe CostCategoryInheritedValueDimension)+costCategoryRule_inheritedValue = Lens.lens (\CostCategoryRule' {inheritedValue} -> inheritedValue) (\s@CostCategoryRule' {} a -> s {inheritedValue = a} :: CostCategoryRule)++-- | An+-- <https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html Expression>+-- object used to categorize costs. This supports dimensions, tags, and+-- nested expressions. Currently the only dimensions supported are+-- @LINKED_ACCOUNT@, @SERVICE_CODE@, @RECORD_TYPE@, and+-- @LINKED_ACCOUNT_NAME@.+--+-- Root level @OR@ isn\'t supported. We recommend that you create a+-- separate rule instead.+--+-- @RECORD_TYPE@ is a dimension used for Cost Explorer APIs, and is also+-- supported for Cost Category expressions. This dimension uses different+-- terms, depending on whether you\'re using the console or API\/JSON+-- editor. For a detailed comparison, see+-- <https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/manage-cost-categories.html#cost-categories-terms Term Comparisons>+-- in the /Billing and Cost Management User Guide/.+costCategoryRule_rule :: Lens.Lens' CostCategoryRule (Prelude.Maybe Expression)+costCategoryRule_rule = Lens.lens (\CostCategoryRule' {rule} -> rule) (\s@CostCategoryRule' {} a -> s {rule = a} :: CostCategoryRule)++-- | You can define the @CostCategoryRule@ rule type as either @REGULAR@ or+-- @INHERITED_VALUE@. The @INHERITED_VALUE@ rule type adds the flexibility+-- to define a rule that dynamically inherits the cost category value. This+-- value is from the dimension value that\'s defined by+-- @CostCategoryInheritedValueDimension@. For example, suppose that you+-- want to costs to be dynamically grouped based on the value of a specific+-- tag key. First, choose an inherited value rule type, and then choose the+-- tag dimension and specify the tag key to use.+costCategoryRule_type :: Lens.Lens' CostCategoryRule (Prelude.Maybe CostCategoryRuleType)+costCategoryRule_type = Lens.lens (\CostCategoryRule' {type'} -> type') (\s@CostCategoryRule' {} a -> s {type' = a} :: CostCategoryRule)++-- | Undocumented member.+costCategoryRule_value :: Lens.Lens' CostCategoryRule (Prelude.Maybe Prelude.Text)+costCategoryRule_value = Lens.lens (\CostCategoryRule' {value} -> value) (\s@CostCategoryRule' {} a -> s {value = a} :: CostCategoryRule)++instance Data.FromJSON CostCategoryRule where+  parseJSON =+    Data.withObject+      "CostCategoryRule"+      ( \x ->+          CostCategoryRule'+            Prelude.<$> (x Data..:? "InheritedValue")+            Prelude.<*> (x Data..:? "Rule")+            Prelude.<*> (x Data..:? "Type")+            Prelude.<*> (x Data..:? "Value")+      )++instance Prelude.Hashable CostCategoryRule where+  hashWithSalt _salt CostCategoryRule' {..} =+    _salt+      `Prelude.hashWithSalt` inheritedValue+      `Prelude.hashWithSalt` rule+      `Prelude.hashWithSalt` type'+      `Prelude.hashWithSalt` value++instance Prelude.NFData CostCategoryRule where+  rnf CostCategoryRule' {..} =+    Prelude.rnf inheritedValue+      `Prelude.seq` Prelude.rnf rule+      `Prelude.seq` Prelude.rnf type'+      `Prelude.seq` Prelude.rnf value++instance Data.ToJSON CostCategoryRule where+  toJSON CostCategoryRule' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("InheritedValue" Data..=)+              Prelude.<$> inheritedValue,+            ("Rule" Data..=) Prelude.<$> rule,+            ("Type" Data..=) Prelude.<$> type',+            ("Value" Data..=) Prelude.<$> value+          ]+      )
+ gen/Amazonka/CostExplorer/Types/CostCategoryRuleType.hs view
@@ -0,0 +1,71 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.CostCategoryRuleType+-- 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.CostExplorer.Types.CostCategoryRuleType+  ( CostCategoryRuleType+      ( ..,+        CostCategoryRuleType_INHERITED_VALUE,+        CostCategoryRuleType_REGULAR+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype CostCategoryRuleType = CostCategoryRuleType'+  { fromCostCategoryRuleType ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern CostCategoryRuleType_INHERITED_VALUE :: CostCategoryRuleType+pattern CostCategoryRuleType_INHERITED_VALUE = CostCategoryRuleType' "INHERITED_VALUE"++pattern CostCategoryRuleType_REGULAR :: CostCategoryRuleType+pattern CostCategoryRuleType_REGULAR = CostCategoryRuleType' "REGULAR"++{-# COMPLETE+  CostCategoryRuleType_INHERITED_VALUE,+  CostCategoryRuleType_REGULAR,+  CostCategoryRuleType'+  #-}
+ gen/Amazonka/CostExplorer/Types/CostCategoryRuleVersion.hs view
@@ -0,0 +1,67 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.CostCategoryRuleVersion+-- 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.CostExplorer.Types.CostCategoryRuleVersion+  ( CostCategoryRuleVersion+      ( ..,+        CostCategoryRuleVersion_CostCategoryExpression_v1+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The rule schema version in this particular Cost Category.+newtype CostCategoryRuleVersion = CostCategoryRuleVersion'+  { fromCostCategoryRuleVersion ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern CostCategoryRuleVersion_CostCategoryExpression_v1 :: CostCategoryRuleVersion+pattern CostCategoryRuleVersion_CostCategoryExpression_v1 = CostCategoryRuleVersion' "CostCategoryExpression.v1"++{-# COMPLETE+  CostCategoryRuleVersion_CostCategoryExpression_v1,+  CostCategoryRuleVersion'+  #-}
+ gen/Amazonka/CostExplorer/Types/CostCategorySplitChargeMethod.hs view
@@ -0,0 +1,76 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.CostCategorySplitChargeMethod+-- 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.CostExplorer.Types.CostCategorySplitChargeMethod+  ( CostCategorySplitChargeMethod+      ( ..,+        CostCategorySplitChargeMethod_EVEN,+        CostCategorySplitChargeMethod_FIXED,+        CostCategorySplitChargeMethod_PROPORTIONAL+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype CostCategorySplitChargeMethod = CostCategorySplitChargeMethod'+  { fromCostCategorySplitChargeMethod ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern CostCategorySplitChargeMethod_EVEN :: CostCategorySplitChargeMethod+pattern CostCategorySplitChargeMethod_EVEN = CostCategorySplitChargeMethod' "EVEN"++pattern CostCategorySplitChargeMethod_FIXED :: CostCategorySplitChargeMethod+pattern CostCategorySplitChargeMethod_FIXED = CostCategorySplitChargeMethod' "FIXED"++pattern CostCategorySplitChargeMethod_PROPORTIONAL :: CostCategorySplitChargeMethod+pattern CostCategorySplitChargeMethod_PROPORTIONAL = CostCategorySplitChargeMethod' "PROPORTIONAL"++{-# COMPLETE+  CostCategorySplitChargeMethod_EVEN,+  CostCategorySplitChargeMethod_FIXED,+  CostCategorySplitChargeMethod_PROPORTIONAL,+  CostCategorySplitChargeMethod'+  #-}
+ gen/Amazonka/CostExplorer/Types/CostCategorySplitChargeRule.hs view
@@ -0,0 +1,171 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.CostCategorySplitChargeRule+-- 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.CostExplorer.Types.CostCategorySplitChargeRule where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CostExplorer.Types.CostCategorySplitChargeMethod+import Amazonka.CostExplorer.Types.CostCategorySplitChargeRuleParameter+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Use the split charge rule to split the cost of one Cost Category value+-- across several other target values.+--+-- /See:/ 'newCostCategorySplitChargeRule' smart constructor.+data CostCategorySplitChargeRule = CostCategorySplitChargeRule'+  { -- | The parameters for a split charge method. This is only required for the+    -- @FIXED@ method.+    parameters :: Prelude.Maybe (Prelude.NonEmpty CostCategorySplitChargeRuleParameter),+    -- | The Cost Category value that you want to split. That value can\'t be+    -- used as a source or a target in other split charge rules. To indicate+    -- uncategorized costs, you can use an empty string as the source.+    source :: Prelude.Text,+    -- | The Cost Category values that you want to split costs across. These+    -- values can\'t be used as a source in other split charge rules.+    targets :: Prelude.NonEmpty Prelude.Text,+    -- | The method that\'s used to define how to split your source costs across+    -- your targets.+    --+    -- @Proportional@ - Allocates charges across your targets based on the+    -- proportional weighted cost of each target.+    --+    -- @Fixed@ - Allocates charges across your targets based on your defined+    -- allocation percentage.+    --+    -- >@Even@ - Allocates costs evenly across all targets.+    method :: CostCategorySplitChargeMethod+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CostCategorySplitChargeRule' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'parameters', 'costCategorySplitChargeRule_parameters' - The parameters for a split charge method. This is only required for the+-- @FIXED@ method.+--+-- 'source', 'costCategorySplitChargeRule_source' - The Cost Category value that you want to split. That value can\'t be+-- used as a source or a target in other split charge rules. To indicate+-- uncategorized costs, you can use an empty string as the source.+--+-- 'targets', 'costCategorySplitChargeRule_targets' - The Cost Category values that you want to split costs across. These+-- values can\'t be used as a source in other split charge rules.+--+-- 'method', 'costCategorySplitChargeRule_method' - The method that\'s used to define how to split your source costs across+-- your targets.+--+-- @Proportional@ - Allocates charges across your targets based on the+-- proportional weighted cost of each target.+--+-- @Fixed@ - Allocates charges across your targets based on your defined+-- allocation percentage.+--+-- >@Even@ - Allocates costs evenly across all targets.+newCostCategorySplitChargeRule ::+  -- | 'source'+  Prelude.Text ->+  -- | 'targets'+  Prelude.NonEmpty Prelude.Text ->+  -- | 'method'+  CostCategorySplitChargeMethod ->+  CostCategorySplitChargeRule+newCostCategorySplitChargeRule+  pSource_+  pTargets_+  pMethod_ =+    CostCategorySplitChargeRule'+      { parameters =+          Prelude.Nothing,+        source = pSource_,+        targets = Lens.coerced Lens.# pTargets_,+        method = pMethod_+      }++-- | The parameters for a split charge method. This is only required for the+-- @FIXED@ method.+costCategorySplitChargeRule_parameters :: Lens.Lens' CostCategorySplitChargeRule (Prelude.Maybe (Prelude.NonEmpty CostCategorySplitChargeRuleParameter))+costCategorySplitChargeRule_parameters = Lens.lens (\CostCategorySplitChargeRule' {parameters} -> parameters) (\s@CostCategorySplitChargeRule' {} a -> s {parameters = a} :: CostCategorySplitChargeRule) Prelude.. Lens.mapping Lens.coerced++-- | The Cost Category value that you want to split. That value can\'t be+-- used as a source or a target in other split charge rules. To indicate+-- uncategorized costs, you can use an empty string as the source.+costCategorySplitChargeRule_source :: Lens.Lens' CostCategorySplitChargeRule Prelude.Text+costCategorySplitChargeRule_source = Lens.lens (\CostCategorySplitChargeRule' {source} -> source) (\s@CostCategorySplitChargeRule' {} a -> s {source = a} :: CostCategorySplitChargeRule)++-- | The Cost Category values that you want to split costs across. These+-- values can\'t be used as a source in other split charge rules.+costCategorySplitChargeRule_targets :: Lens.Lens' CostCategorySplitChargeRule (Prelude.NonEmpty Prelude.Text)+costCategorySplitChargeRule_targets = Lens.lens (\CostCategorySplitChargeRule' {targets} -> targets) (\s@CostCategorySplitChargeRule' {} a -> s {targets = a} :: CostCategorySplitChargeRule) Prelude.. Lens.coerced++-- | The method that\'s used to define how to split your source costs across+-- your targets.+--+-- @Proportional@ - Allocates charges across your targets based on the+-- proportional weighted cost of each target.+--+-- @Fixed@ - Allocates charges across your targets based on your defined+-- allocation percentage.+--+-- >@Even@ - Allocates costs evenly across all targets.+costCategorySplitChargeRule_method :: Lens.Lens' CostCategorySplitChargeRule CostCategorySplitChargeMethod+costCategorySplitChargeRule_method = Lens.lens (\CostCategorySplitChargeRule' {method} -> method) (\s@CostCategorySplitChargeRule' {} a -> s {method = a} :: CostCategorySplitChargeRule)++instance Data.FromJSON CostCategorySplitChargeRule where+  parseJSON =+    Data.withObject+      "CostCategorySplitChargeRule"+      ( \x ->+          CostCategorySplitChargeRule'+            Prelude.<$> (x Data..:? "Parameters")+            Prelude.<*> (x Data..: "Source")+            Prelude.<*> (x Data..: "Targets")+            Prelude.<*> (x Data..: "Method")+      )++instance Prelude.Hashable CostCategorySplitChargeRule where+  hashWithSalt _salt CostCategorySplitChargeRule' {..} =+    _salt+      `Prelude.hashWithSalt` parameters+      `Prelude.hashWithSalt` source+      `Prelude.hashWithSalt` targets+      `Prelude.hashWithSalt` method++instance Prelude.NFData CostCategorySplitChargeRule where+  rnf CostCategorySplitChargeRule' {..} =+    Prelude.rnf parameters+      `Prelude.seq` Prelude.rnf source+      `Prelude.seq` Prelude.rnf targets+      `Prelude.seq` Prelude.rnf method++instance Data.ToJSON CostCategorySplitChargeRule where+  toJSON CostCategorySplitChargeRule' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Parameters" Data..=) Prelude.<$> parameters,+            Prelude.Just ("Source" Data..= source),+            Prelude.Just ("Targets" Data..= targets),+            Prelude.Just ("Method" Data..= method)+          ]+      )
+ gen/Amazonka/CostExplorer/Types/CostCategorySplitChargeRuleParameter.hs view
@@ -0,0 +1,114 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.CostCategorySplitChargeRuleParameter+-- 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.CostExplorer.Types.CostCategorySplitChargeRuleParameter where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CostExplorer.Types.CostCategorySplitChargeRuleParameterType+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The parameters for a split charge method.+--+-- /See:/ 'newCostCategorySplitChargeRuleParameter' smart constructor.+data CostCategorySplitChargeRuleParameter = CostCategorySplitChargeRuleParameter'+  { -- | The parameter type.+    type' :: CostCategorySplitChargeRuleParameterType,+    -- | The parameter values.+    values :: Prelude.NonEmpty Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CostCategorySplitChargeRuleParameter' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'type'', 'costCategorySplitChargeRuleParameter_type' - The parameter type.+--+-- 'values', 'costCategorySplitChargeRuleParameter_values' - The parameter values.+newCostCategorySplitChargeRuleParameter ::+  -- | 'type''+  CostCategorySplitChargeRuleParameterType ->+  -- | 'values'+  Prelude.NonEmpty Prelude.Text ->+  CostCategorySplitChargeRuleParameter+newCostCategorySplitChargeRuleParameter+  pType_+  pValues_ =+    CostCategorySplitChargeRuleParameter'+      { type' =+          pType_,+        values = Lens.coerced Lens.# pValues_+      }++-- | The parameter type.+costCategorySplitChargeRuleParameter_type :: Lens.Lens' CostCategorySplitChargeRuleParameter CostCategorySplitChargeRuleParameterType+costCategorySplitChargeRuleParameter_type = Lens.lens (\CostCategorySplitChargeRuleParameter' {type'} -> type') (\s@CostCategorySplitChargeRuleParameter' {} a -> s {type' = a} :: CostCategorySplitChargeRuleParameter)++-- | The parameter values.+costCategorySplitChargeRuleParameter_values :: Lens.Lens' CostCategorySplitChargeRuleParameter (Prelude.NonEmpty Prelude.Text)+costCategorySplitChargeRuleParameter_values = Lens.lens (\CostCategorySplitChargeRuleParameter' {values} -> values) (\s@CostCategorySplitChargeRuleParameter' {} a -> s {values = a} :: CostCategorySplitChargeRuleParameter) Prelude.. Lens.coerced++instance+  Data.FromJSON+    CostCategorySplitChargeRuleParameter+  where+  parseJSON =+    Data.withObject+      "CostCategorySplitChargeRuleParameter"+      ( \x ->+          CostCategorySplitChargeRuleParameter'+            Prelude.<$> (x Data..: "Type")+            Prelude.<*> (x Data..: "Values")+      )++instance+  Prelude.Hashable+    CostCategorySplitChargeRuleParameter+  where+  hashWithSalt+    _salt+    CostCategorySplitChargeRuleParameter' {..} =+      _salt+        `Prelude.hashWithSalt` type'+        `Prelude.hashWithSalt` values++instance+  Prelude.NFData+    CostCategorySplitChargeRuleParameter+  where+  rnf CostCategorySplitChargeRuleParameter' {..} =+    Prelude.rnf type' `Prelude.seq` Prelude.rnf values++instance+  Data.ToJSON+    CostCategorySplitChargeRuleParameter+  where+  toJSON CostCategorySplitChargeRuleParameter' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("Type" Data..= type'),+            Prelude.Just ("Values" Data..= values)+          ]+      )
+ gen/Amazonka/CostExplorer/Types/CostCategorySplitChargeRuleParameterType.hs view
@@ -0,0 +1,66 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.CostCategorySplitChargeRuleParameterType+-- 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.CostExplorer.Types.CostCategorySplitChargeRuleParameterType+  ( CostCategorySplitChargeRuleParameterType+      ( ..,+        CostCategorySplitChargeRuleParameterType_ALLOCATION_PERCENTAGES+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype CostCategorySplitChargeRuleParameterType = CostCategorySplitChargeRuleParameterType'+  { fromCostCategorySplitChargeRuleParameterType ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern CostCategorySplitChargeRuleParameterType_ALLOCATION_PERCENTAGES :: CostCategorySplitChargeRuleParameterType+pattern CostCategorySplitChargeRuleParameterType_ALLOCATION_PERCENTAGES = CostCategorySplitChargeRuleParameterType' "ALLOCATION_PERCENTAGES"++{-# COMPLETE+  CostCategorySplitChargeRuleParameterType_ALLOCATION_PERCENTAGES,+  CostCategorySplitChargeRuleParameterType'+  #-}
+ gen/Amazonka/CostExplorer/Types/CostCategoryStatus.hs view
@@ -0,0 +1,71 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.CostCategoryStatus+-- 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.CostExplorer.Types.CostCategoryStatus+  ( CostCategoryStatus+      ( ..,+        CostCategoryStatus_APPLIED,+        CostCategoryStatus_PROCESSING+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype CostCategoryStatus = CostCategoryStatus'+  { fromCostCategoryStatus ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern CostCategoryStatus_APPLIED :: CostCategoryStatus+pattern CostCategoryStatus_APPLIED = CostCategoryStatus' "APPLIED"++pattern CostCategoryStatus_PROCESSING :: CostCategoryStatus+pattern CostCategoryStatus_PROCESSING = CostCategoryStatus' "PROCESSING"++{-# COMPLETE+  CostCategoryStatus_APPLIED,+  CostCategoryStatus_PROCESSING,+  CostCategoryStatus'+  #-}
+ gen/Amazonka/CostExplorer/Types/CostCategoryStatusComponent.hs view
@@ -0,0 +1,66 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.CostCategoryStatusComponent+-- 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.CostExplorer.Types.CostCategoryStatusComponent+  ( CostCategoryStatusComponent+      ( ..,+        CostCategoryStatusComponent_COST_EXPLORER+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype CostCategoryStatusComponent = CostCategoryStatusComponent'+  { fromCostCategoryStatusComponent ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern CostCategoryStatusComponent_COST_EXPLORER :: CostCategoryStatusComponent+pattern CostCategoryStatusComponent_COST_EXPLORER = CostCategoryStatusComponent' "COST_EXPLORER"++{-# COMPLETE+  CostCategoryStatusComponent_COST_EXPLORER,+  CostCategoryStatusComponent'+  #-}
+ gen/Amazonka/CostExplorer/Types/CostCategoryValues.hs view
@@ -0,0 +1,120 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.CostCategoryValues+-- 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.CostExplorer.Types.CostCategoryValues where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CostExplorer.Types.MatchOption+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The Cost Categories values used for filtering the costs.+--+-- If @Values@ and @Key@ are not specified, the @ABSENT@ @MatchOption@ is+-- applied to all Cost Categories. That is, it filters on resources that+-- aren\'t mapped to any Cost Categories.+--+-- If @Values@ is provided and @Key@ isn\'t specified, the @ABSENT@+-- @MatchOption@ is applied to the Cost Categories @Key@ only. That is, it+-- filters on resources without the given Cost Categories key.+--+-- /See:/ 'newCostCategoryValues' smart constructor.+data CostCategoryValues = CostCategoryValues'+  { key :: Prelude.Maybe Prelude.Text,+    -- | The match options that you can use to filter your results. MatchOptions+    -- is only applicable for actions related to cost category. The default+    -- values for @MatchOptions@ is @EQUALS@ and @CASE_SENSITIVE@.+    matchOptions :: Prelude.Maybe [MatchOption],+    -- | The specific value of the Cost Category.+    values :: Prelude.Maybe [Prelude.Text]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CostCategoryValues' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'key', 'costCategoryValues_key' - Undocumented member.+--+-- 'matchOptions', 'costCategoryValues_matchOptions' - The match options that you can use to filter your results. MatchOptions+-- is only applicable for actions related to cost category. The default+-- values for @MatchOptions@ is @EQUALS@ and @CASE_SENSITIVE@.+--+-- 'values', 'costCategoryValues_values' - The specific value of the Cost Category.+newCostCategoryValues ::+  CostCategoryValues+newCostCategoryValues =+  CostCategoryValues'+    { key = Prelude.Nothing,+      matchOptions = Prelude.Nothing,+      values = Prelude.Nothing+    }++-- | Undocumented member.+costCategoryValues_key :: Lens.Lens' CostCategoryValues (Prelude.Maybe Prelude.Text)+costCategoryValues_key = Lens.lens (\CostCategoryValues' {key} -> key) (\s@CostCategoryValues' {} a -> s {key = a} :: CostCategoryValues)++-- | The match options that you can use to filter your results. MatchOptions+-- is only applicable for actions related to cost category. The default+-- values for @MatchOptions@ is @EQUALS@ and @CASE_SENSITIVE@.+costCategoryValues_matchOptions :: Lens.Lens' CostCategoryValues (Prelude.Maybe [MatchOption])+costCategoryValues_matchOptions = Lens.lens (\CostCategoryValues' {matchOptions} -> matchOptions) (\s@CostCategoryValues' {} a -> s {matchOptions = a} :: CostCategoryValues) Prelude.. Lens.mapping Lens.coerced++-- | The specific value of the Cost Category.+costCategoryValues_values :: Lens.Lens' CostCategoryValues (Prelude.Maybe [Prelude.Text])+costCategoryValues_values = Lens.lens (\CostCategoryValues' {values} -> values) (\s@CostCategoryValues' {} a -> s {values = a} :: CostCategoryValues) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON CostCategoryValues where+  parseJSON =+    Data.withObject+      "CostCategoryValues"+      ( \x ->+          CostCategoryValues'+            Prelude.<$> (x Data..:? "Key")+            Prelude.<*> (x Data..:? "MatchOptions" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "Values" Data..!= Prelude.mempty)+      )++instance Prelude.Hashable CostCategoryValues where+  hashWithSalt _salt CostCategoryValues' {..} =+    _salt+      `Prelude.hashWithSalt` key+      `Prelude.hashWithSalt` matchOptions+      `Prelude.hashWithSalt` values++instance Prelude.NFData CostCategoryValues where+  rnf CostCategoryValues' {..} =+    Prelude.rnf key+      `Prelude.seq` Prelude.rnf matchOptions+      `Prelude.seq` Prelude.rnf values++instance Data.ToJSON CostCategoryValues where+  toJSON CostCategoryValues' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Key" Data..=) Prelude.<$> key,+            ("MatchOptions" Data..=) Prelude.<$> matchOptions,+            ("Values" Data..=) Prelude.<$> values+          ]+      )
+ gen/Amazonka/CostExplorer/Types/Coverage.hs view
@@ -0,0 +1,102 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.Coverage+-- 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.CostExplorer.Types.Coverage where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CostExplorer.Types.CoverageCost+import Amazonka.CostExplorer.Types.CoverageHours+import Amazonka.CostExplorer.Types.CoverageNormalizedUnits+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The amount of instance usage that a reservation covered.+--+-- /See:/ 'newCoverage' smart constructor.+data Coverage = Coverage'+  { -- | The amount of cost that the reservation covered.+    coverageCost :: Prelude.Maybe CoverageCost,+    -- | The amount of instance usage that the reservation covered, in hours.+    coverageHours :: Prelude.Maybe CoverageHours,+    -- | The amount of instance usage that the reservation covered, in normalized+    -- units.+    coverageNormalizedUnits :: Prelude.Maybe CoverageNormalizedUnits+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Coverage' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'coverageCost', 'coverage_coverageCost' - The amount of cost that the reservation covered.+--+-- 'coverageHours', 'coverage_coverageHours' - The amount of instance usage that the reservation covered, in hours.+--+-- 'coverageNormalizedUnits', 'coverage_coverageNormalizedUnits' - The amount of instance usage that the reservation covered, in normalized+-- units.+newCoverage ::+  Coverage+newCoverage =+  Coverage'+    { coverageCost = Prelude.Nothing,+      coverageHours = Prelude.Nothing,+      coverageNormalizedUnits = Prelude.Nothing+    }++-- | The amount of cost that the reservation covered.+coverage_coverageCost :: Lens.Lens' Coverage (Prelude.Maybe CoverageCost)+coverage_coverageCost = Lens.lens (\Coverage' {coverageCost} -> coverageCost) (\s@Coverage' {} a -> s {coverageCost = a} :: Coverage)++-- | The amount of instance usage that the reservation covered, in hours.+coverage_coverageHours :: Lens.Lens' Coverage (Prelude.Maybe CoverageHours)+coverage_coverageHours = Lens.lens (\Coverage' {coverageHours} -> coverageHours) (\s@Coverage' {} a -> s {coverageHours = a} :: Coverage)++-- | The amount of instance usage that the reservation covered, in normalized+-- units.+coverage_coverageNormalizedUnits :: Lens.Lens' Coverage (Prelude.Maybe CoverageNormalizedUnits)+coverage_coverageNormalizedUnits = Lens.lens (\Coverage' {coverageNormalizedUnits} -> coverageNormalizedUnits) (\s@Coverage' {} a -> s {coverageNormalizedUnits = a} :: Coverage)++instance Data.FromJSON Coverage where+  parseJSON =+    Data.withObject+      "Coverage"+      ( \x ->+          Coverage'+            Prelude.<$> (x Data..:? "CoverageCost")+            Prelude.<*> (x Data..:? "CoverageHours")+            Prelude.<*> (x Data..:? "CoverageNormalizedUnits")+      )++instance Prelude.Hashable Coverage where+  hashWithSalt _salt Coverage' {..} =+    _salt+      `Prelude.hashWithSalt` coverageCost+      `Prelude.hashWithSalt` coverageHours+      `Prelude.hashWithSalt` coverageNormalizedUnits++instance Prelude.NFData Coverage where+  rnf Coverage' {..} =+    Prelude.rnf coverageCost+      `Prelude.seq` Prelude.rnf coverageHours+      `Prelude.seq` Prelude.rnf coverageNormalizedUnits
+ gen/Amazonka/CostExplorer/Types/CoverageByTime.hs view
@@ -0,0 +1,99 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.CoverageByTime+-- 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.CostExplorer.Types.CoverageByTime where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CostExplorer.Types.Coverage+import Amazonka.CostExplorer.Types.DateInterval+import Amazonka.CostExplorer.Types.ReservationCoverageGroup+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Reservation coverage for a specified period, in hours.+--+-- /See:/ 'newCoverageByTime' smart constructor.+data CoverageByTime = CoverageByTime'+  { -- | The groups of instances that the reservation covered.+    groups :: Prelude.Maybe [ReservationCoverageGroup],+    -- | The period that this coverage was used over.+    timePeriod :: Prelude.Maybe DateInterval,+    -- | The total reservation coverage, in hours.+    total :: Prelude.Maybe Coverage+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CoverageByTime' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'groups', 'coverageByTime_groups' - The groups of instances that the reservation covered.+--+-- 'timePeriod', 'coverageByTime_timePeriod' - The period that this coverage was used over.+--+-- 'total', 'coverageByTime_total' - The total reservation coverage, in hours.+newCoverageByTime ::+  CoverageByTime+newCoverageByTime =+  CoverageByTime'+    { groups = Prelude.Nothing,+      timePeriod = Prelude.Nothing,+      total = Prelude.Nothing+    }++-- | The groups of instances that the reservation covered.+coverageByTime_groups :: Lens.Lens' CoverageByTime (Prelude.Maybe [ReservationCoverageGroup])+coverageByTime_groups = Lens.lens (\CoverageByTime' {groups} -> groups) (\s@CoverageByTime' {} a -> s {groups = a} :: CoverageByTime) Prelude.. Lens.mapping Lens.coerced++-- | The period that this coverage was used over.+coverageByTime_timePeriod :: Lens.Lens' CoverageByTime (Prelude.Maybe DateInterval)+coverageByTime_timePeriod = Lens.lens (\CoverageByTime' {timePeriod} -> timePeriod) (\s@CoverageByTime' {} a -> s {timePeriod = a} :: CoverageByTime)++-- | The total reservation coverage, in hours.+coverageByTime_total :: Lens.Lens' CoverageByTime (Prelude.Maybe Coverage)+coverageByTime_total = Lens.lens (\CoverageByTime' {total} -> total) (\s@CoverageByTime' {} a -> s {total = a} :: CoverageByTime)++instance Data.FromJSON CoverageByTime where+  parseJSON =+    Data.withObject+      "CoverageByTime"+      ( \x ->+          CoverageByTime'+            Prelude.<$> (x Data..:? "Groups" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "TimePeriod")+            Prelude.<*> (x Data..:? "Total")+      )++instance Prelude.Hashable CoverageByTime where+  hashWithSalt _salt CoverageByTime' {..} =+    _salt+      `Prelude.hashWithSalt` groups+      `Prelude.hashWithSalt` timePeriod+      `Prelude.hashWithSalt` total++instance Prelude.NFData CoverageByTime where+  rnf CoverageByTime' {..} =+    Prelude.rnf groups+      `Prelude.seq` Prelude.rnf timePeriod+      `Prelude.seq` Prelude.rnf total
+ gen/Amazonka/CostExplorer/Types/CoverageCost.hs view
@@ -0,0 +1,68 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.CoverageCost+-- 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.CostExplorer.Types.CoverageCost where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | How much it costs to run an instance.+--+-- /See:/ 'newCoverageCost' smart constructor.+data CoverageCost = CoverageCost'+  { -- | How much an On-Demand Instance costs.+    onDemandCost :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CoverageCost' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'onDemandCost', 'coverageCost_onDemandCost' - How much an On-Demand Instance costs.+newCoverageCost ::+  CoverageCost+newCoverageCost =+  CoverageCost' {onDemandCost = Prelude.Nothing}++-- | How much an On-Demand Instance costs.+coverageCost_onDemandCost :: Lens.Lens' CoverageCost (Prelude.Maybe Prelude.Text)+coverageCost_onDemandCost = Lens.lens (\CoverageCost' {onDemandCost} -> onDemandCost) (\s@CoverageCost' {} a -> s {onDemandCost = a} :: CoverageCost)++instance Data.FromJSON CoverageCost where+  parseJSON =+    Data.withObject+      "CoverageCost"+      ( \x ->+          CoverageCost'+            Prelude.<$> (x Data..:? "OnDemandCost")+      )++instance Prelude.Hashable CoverageCost where+  hashWithSalt _salt CoverageCost' {..} =+    _salt `Prelude.hashWithSalt` onDemandCost++instance Prelude.NFData CoverageCost where+  rnf CoverageCost' {..} = Prelude.rnf onDemandCost
+ gen/Amazonka/CostExplorer/Types/CoverageHours.hs view
@@ -0,0 +1,109 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.CoverageHours+-- 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.CostExplorer.Types.CoverageHours where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | How long a running instance either used a reservation or was On-Demand.+--+-- /See:/ 'newCoverageHours' smart constructor.+data CoverageHours = CoverageHours'+  { -- | The percentage of instance hours that a reservation covered.+    coverageHoursPercentage :: Prelude.Maybe Prelude.Text,+    -- | The number of instance running hours that On-Demand Instances covered.+    onDemandHours :: Prelude.Maybe Prelude.Text,+    -- | The number of instance running hours that reservations covered.+    reservedHours :: Prelude.Maybe Prelude.Text,+    -- | The total instance usage, in hours.+    totalRunningHours :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CoverageHours' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'coverageHoursPercentage', 'coverageHours_coverageHoursPercentage' - The percentage of instance hours that a reservation covered.+--+-- 'onDemandHours', 'coverageHours_onDemandHours' - The number of instance running hours that On-Demand Instances covered.+--+-- 'reservedHours', 'coverageHours_reservedHours' - The number of instance running hours that reservations covered.+--+-- 'totalRunningHours', 'coverageHours_totalRunningHours' - The total instance usage, in hours.+newCoverageHours ::+  CoverageHours+newCoverageHours =+  CoverageHours'+    { coverageHoursPercentage =+        Prelude.Nothing,+      onDemandHours = Prelude.Nothing,+      reservedHours = Prelude.Nothing,+      totalRunningHours = Prelude.Nothing+    }++-- | The percentage of instance hours that a reservation covered.+coverageHours_coverageHoursPercentage :: Lens.Lens' CoverageHours (Prelude.Maybe Prelude.Text)+coverageHours_coverageHoursPercentage = Lens.lens (\CoverageHours' {coverageHoursPercentage} -> coverageHoursPercentage) (\s@CoverageHours' {} a -> s {coverageHoursPercentage = a} :: CoverageHours)++-- | The number of instance running hours that On-Demand Instances covered.+coverageHours_onDemandHours :: Lens.Lens' CoverageHours (Prelude.Maybe Prelude.Text)+coverageHours_onDemandHours = Lens.lens (\CoverageHours' {onDemandHours} -> onDemandHours) (\s@CoverageHours' {} a -> s {onDemandHours = a} :: CoverageHours)++-- | The number of instance running hours that reservations covered.+coverageHours_reservedHours :: Lens.Lens' CoverageHours (Prelude.Maybe Prelude.Text)+coverageHours_reservedHours = Lens.lens (\CoverageHours' {reservedHours} -> reservedHours) (\s@CoverageHours' {} a -> s {reservedHours = a} :: CoverageHours)++-- | The total instance usage, in hours.+coverageHours_totalRunningHours :: Lens.Lens' CoverageHours (Prelude.Maybe Prelude.Text)+coverageHours_totalRunningHours = Lens.lens (\CoverageHours' {totalRunningHours} -> totalRunningHours) (\s@CoverageHours' {} a -> s {totalRunningHours = a} :: CoverageHours)++instance Data.FromJSON CoverageHours where+  parseJSON =+    Data.withObject+      "CoverageHours"+      ( \x ->+          CoverageHours'+            Prelude.<$> (x Data..:? "CoverageHoursPercentage")+            Prelude.<*> (x Data..:? "OnDemandHours")+            Prelude.<*> (x Data..:? "ReservedHours")+            Prelude.<*> (x Data..:? "TotalRunningHours")+      )++instance Prelude.Hashable CoverageHours where+  hashWithSalt _salt CoverageHours' {..} =+    _salt+      `Prelude.hashWithSalt` coverageHoursPercentage+      `Prelude.hashWithSalt` onDemandHours+      `Prelude.hashWithSalt` reservedHours+      `Prelude.hashWithSalt` totalRunningHours++instance Prelude.NFData CoverageHours where+  rnf CoverageHours' {..} =+    Prelude.rnf coverageHoursPercentage+      `Prelude.seq` Prelude.rnf onDemandHours+      `Prelude.seq` Prelude.rnf reservedHours+      `Prelude.seq` Prelude.rnf totalRunningHours
+ gen/Amazonka/CostExplorer/Types/CoverageNormalizedUnits.hs view
@@ -0,0 +1,127 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.CoverageNormalizedUnits+-- 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.CostExplorer.Types.CoverageNormalizedUnits where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The amount of instance usage, in normalized units. You can use+-- normalized units to see your EC2 usage for multiple sizes of instances+-- in a uniform way. For example, suppose that you run an xlarge instance+-- and a 2xlarge instance. If you run both instances for the same amount of+-- time, the 2xlarge instance uses twice as much of your reservation as the+-- xlarge instance, even though both instances show only one instance-hour.+-- When you use normalized units instead of instance-hours, the xlarge+-- instance used 8 normalized units, and the 2xlarge instance used 16+-- normalized units.+--+-- For more information, see+-- <https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ri-modifying.html Modifying Reserved Instances>+-- in the /Amazon Elastic Compute Cloud User Guide for Linux Instances/.+--+-- /See:/ 'newCoverageNormalizedUnits' smart constructor.+data CoverageNormalizedUnits = CoverageNormalizedUnits'+  { -- | The percentage of your used instance normalized units that a reservation+    -- covers.+    coverageNormalizedUnitsPercentage :: Prelude.Maybe Prelude.Text,+    -- | The number of normalized units that are covered by On-Demand Instances+    -- instead of a reservation.+    onDemandNormalizedUnits :: Prelude.Maybe Prelude.Text,+    -- | The number of normalized units that a reservation covers.+    reservedNormalizedUnits :: Prelude.Maybe Prelude.Text,+    -- | The total number of normalized units that you used.+    totalRunningNormalizedUnits :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CoverageNormalizedUnits' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'coverageNormalizedUnitsPercentage', 'coverageNormalizedUnits_coverageNormalizedUnitsPercentage' - The percentage of your used instance normalized units that a reservation+-- covers.+--+-- 'onDemandNormalizedUnits', 'coverageNormalizedUnits_onDemandNormalizedUnits' - The number of normalized units that are covered by On-Demand Instances+-- instead of a reservation.+--+-- 'reservedNormalizedUnits', 'coverageNormalizedUnits_reservedNormalizedUnits' - The number of normalized units that a reservation covers.+--+-- 'totalRunningNormalizedUnits', 'coverageNormalizedUnits_totalRunningNormalizedUnits' - The total number of normalized units that you used.+newCoverageNormalizedUnits ::+  CoverageNormalizedUnits+newCoverageNormalizedUnits =+  CoverageNormalizedUnits'+    { coverageNormalizedUnitsPercentage =+        Prelude.Nothing,+      onDemandNormalizedUnits = Prelude.Nothing,+      reservedNormalizedUnits = Prelude.Nothing,+      totalRunningNormalizedUnits = Prelude.Nothing+    }++-- | The percentage of your used instance normalized units that a reservation+-- covers.+coverageNormalizedUnits_coverageNormalizedUnitsPercentage :: Lens.Lens' CoverageNormalizedUnits (Prelude.Maybe Prelude.Text)+coverageNormalizedUnits_coverageNormalizedUnitsPercentage = Lens.lens (\CoverageNormalizedUnits' {coverageNormalizedUnitsPercentage} -> coverageNormalizedUnitsPercentage) (\s@CoverageNormalizedUnits' {} a -> s {coverageNormalizedUnitsPercentage = a} :: CoverageNormalizedUnits)++-- | The number of normalized units that are covered by On-Demand Instances+-- instead of a reservation.+coverageNormalizedUnits_onDemandNormalizedUnits :: Lens.Lens' CoverageNormalizedUnits (Prelude.Maybe Prelude.Text)+coverageNormalizedUnits_onDemandNormalizedUnits = Lens.lens (\CoverageNormalizedUnits' {onDemandNormalizedUnits} -> onDemandNormalizedUnits) (\s@CoverageNormalizedUnits' {} a -> s {onDemandNormalizedUnits = a} :: CoverageNormalizedUnits)++-- | The number of normalized units that a reservation covers.+coverageNormalizedUnits_reservedNormalizedUnits :: Lens.Lens' CoverageNormalizedUnits (Prelude.Maybe Prelude.Text)+coverageNormalizedUnits_reservedNormalizedUnits = Lens.lens (\CoverageNormalizedUnits' {reservedNormalizedUnits} -> reservedNormalizedUnits) (\s@CoverageNormalizedUnits' {} a -> s {reservedNormalizedUnits = a} :: CoverageNormalizedUnits)++-- | The total number of normalized units that you used.+coverageNormalizedUnits_totalRunningNormalizedUnits :: Lens.Lens' CoverageNormalizedUnits (Prelude.Maybe Prelude.Text)+coverageNormalizedUnits_totalRunningNormalizedUnits = Lens.lens (\CoverageNormalizedUnits' {totalRunningNormalizedUnits} -> totalRunningNormalizedUnits) (\s@CoverageNormalizedUnits' {} a -> s {totalRunningNormalizedUnits = a} :: CoverageNormalizedUnits)++instance Data.FromJSON CoverageNormalizedUnits where+  parseJSON =+    Data.withObject+      "CoverageNormalizedUnits"+      ( \x ->+          CoverageNormalizedUnits'+            Prelude.<$> (x Data..:? "CoverageNormalizedUnitsPercentage")+            Prelude.<*> (x Data..:? "OnDemandNormalizedUnits")+            Prelude.<*> (x Data..:? "ReservedNormalizedUnits")+            Prelude.<*> (x Data..:? "TotalRunningNormalizedUnits")+      )++instance Prelude.Hashable CoverageNormalizedUnits where+  hashWithSalt _salt CoverageNormalizedUnits' {..} =+    _salt+      `Prelude.hashWithSalt` coverageNormalizedUnitsPercentage+      `Prelude.hashWithSalt` onDemandNormalizedUnits+      `Prelude.hashWithSalt` reservedNormalizedUnits+      `Prelude.hashWithSalt` totalRunningNormalizedUnits++instance Prelude.NFData CoverageNormalizedUnits where+  rnf CoverageNormalizedUnits' {..} =+    Prelude.rnf coverageNormalizedUnitsPercentage+      `Prelude.seq` Prelude.rnf onDemandNormalizedUnits+      `Prelude.seq` Prelude.rnf reservedNormalizedUnits+      `Prelude.seq` Prelude.rnf totalRunningNormalizedUnits
+ gen/Amazonka/CostExplorer/Types/CurrentInstance.hs view
@@ -0,0 +1,225 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.CurrentInstance+-- 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.CostExplorer.Types.CurrentInstance where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CostExplorer.Types.ResourceDetails+import Amazonka.CostExplorer.Types.ResourceUtilization+import Amazonka.CostExplorer.Types.TagValues+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Context about the current instance.+--+-- /See:/ 'newCurrentInstance' smart constructor.+data CurrentInstance = CurrentInstance'+  { -- | The currency code that Amazon Web Services used to calculate the costs+    -- for this instance.+    currencyCode :: Prelude.Maybe Prelude.Text,+    -- | The name that you given an instance. This field shows as blank if you+    -- haven\'t given the instance a name.+    instanceName :: Prelude.Maybe Prelude.Text,+    -- | The current On-Demand cost of operating this instance on a monthly+    -- basis.+    monthlyCost :: Prelude.Maybe Prelude.Text,+    -- | The number of hours during the lookback period that\'s billed at+    -- On-Demand rates.+    onDemandHoursInLookbackPeriod :: Prelude.Maybe Prelude.Text,+    -- | The number of hours during the lookback period that\'s covered by+    -- reservations.+    reservationCoveredHoursInLookbackPeriod :: Prelude.Maybe Prelude.Text,+    -- | Details about the resource and utilization.+    resourceDetails :: Prelude.Maybe ResourceDetails,+    -- | Resource ID of the current instance.+    resourceId :: Prelude.Maybe Prelude.Text,+    -- | Utilization information of the current instance during the lookback+    -- period.+    resourceUtilization :: Prelude.Maybe ResourceUtilization,+    -- | The number of hours during the lookback period that\'s covered by+    -- Savings Plans.+    savingsPlansCoveredHoursInLookbackPeriod :: Prelude.Maybe Prelude.Text,+    -- | Cost allocation resource tags that are applied to the instance.+    tags :: Prelude.Maybe [TagValues],+    -- | The total number of hours that the instance ran during the lookback+    -- period.+    totalRunningHoursInLookbackPeriod :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'CurrentInstance' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'currencyCode', 'currentInstance_currencyCode' - The currency code that Amazon Web Services used to calculate the costs+-- for this instance.+--+-- 'instanceName', 'currentInstance_instanceName' - The name that you given an instance. This field shows as blank if you+-- haven\'t given the instance a name.+--+-- 'monthlyCost', 'currentInstance_monthlyCost' - The current On-Demand cost of operating this instance on a monthly+-- basis.+--+-- 'onDemandHoursInLookbackPeriod', 'currentInstance_onDemandHoursInLookbackPeriod' - The number of hours during the lookback period that\'s billed at+-- On-Demand rates.+--+-- 'reservationCoveredHoursInLookbackPeriod', 'currentInstance_reservationCoveredHoursInLookbackPeriod' - The number of hours during the lookback period that\'s covered by+-- reservations.+--+-- 'resourceDetails', 'currentInstance_resourceDetails' - Details about the resource and utilization.+--+-- 'resourceId', 'currentInstance_resourceId' - Resource ID of the current instance.+--+-- 'resourceUtilization', 'currentInstance_resourceUtilization' - Utilization information of the current instance during the lookback+-- period.+--+-- 'savingsPlansCoveredHoursInLookbackPeriod', 'currentInstance_savingsPlansCoveredHoursInLookbackPeriod' - The number of hours during the lookback period that\'s covered by+-- Savings Plans.+--+-- 'tags', 'currentInstance_tags' - Cost allocation resource tags that are applied to the instance.+--+-- 'totalRunningHoursInLookbackPeriod', 'currentInstance_totalRunningHoursInLookbackPeriod' - The total number of hours that the instance ran during the lookback+-- period.+newCurrentInstance ::+  CurrentInstance+newCurrentInstance =+  CurrentInstance'+    { currencyCode = Prelude.Nothing,+      instanceName = Prelude.Nothing,+      monthlyCost = Prelude.Nothing,+      onDemandHoursInLookbackPeriod = Prelude.Nothing,+      reservationCoveredHoursInLookbackPeriod =+        Prelude.Nothing,+      resourceDetails = Prelude.Nothing,+      resourceId = Prelude.Nothing,+      resourceUtilization = Prelude.Nothing,+      savingsPlansCoveredHoursInLookbackPeriod =+        Prelude.Nothing,+      tags = Prelude.Nothing,+      totalRunningHoursInLookbackPeriod = Prelude.Nothing+    }++-- | The currency code that Amazon Web Services used to calculate the costs+-- for this instance.+currentInstance_currencyCode :: Lens.Lens' CurrentInstance (Prelude.Maybe Prelude.Text)+currentInstance_currencyCode = Lens.lens (\CurrentInstance' {currencyCode} -> currencyCode) (\s@CurrentInstance' {} a -> s {currencyCode = a} :: CurrentInstance)++-- | The name that you given an instance. This field shows as blank if you+-- haven\'t given the instance a name.+currentInstance_instanceName :: Lens.Lens' CurrentInstance (Prelude.Maybe Prelude.Text)+currentInstance_instanceName = Lens.lens (\CurrentInstance' {instanceName} -> instanceName) (\s@CurrentInstance' {} a -> s {instanceName = a} :: CurrentInstance)++-- | The current On-Demand cost of operating this instance on a monthly+-- basis.+currentInstance_monthlyCost :: Lens.Lens' CurrentInstance (Prelude.Maybe Prelude.Text)+currentInstance_monthlyCost = Lens.lens (\CurrentInstance' {monthlyCost} -> monthlyCost) (\s@CurrentInstance' {} a -> s {monthlyCost = a} :: CurrentInstance)++-- | The number of hours during the lookback period that\'s billed at+-- On-Demand rates.+currentInstance_onDemandHoursInLookbackPeriod :: Lens.Lens' CurrentInstance (Prelude.Maybe Prelude.Text)+currentInstance_onDemandHoursInLookbackPeriod = Lens.lens (\CurrentInstance' {onDemandHoursInLookbackPeriod} -> onDemandHoursInLookbackPeriod) (\s@CurrentInstance' {} a -> s {onDemandHoursInLookbackPeriod = a} :: CurrentInstance)++-- | The number of hours during the lookback period that\'s covered by+-- reservations.+currentInstance_reservationCoveredHoursInLookbackPeriod :: Lens.Lens' CurrentInstance (Prelude.Maybe Prelude.Text)+currentInstance_reservationCoveredHoursInLookbackPeriod = Lens.lens (\CurrentInstance' {reservationCoveredHoursInLookbackPeriod} -> reservationCoveredHoursInLookbackPeriod) (\s@CurrentInstance' {} a -> s {reservationCoveredHoursInLookbackPeriod = a} :: CurrentInstance)++-- | Details about the resource and utilization.+currentInstance_resourceDetails :: Lens.Lens' CurrentInstance (Prelude.Maybe ResourceDetails)+currentInstance_resourceDetails = Lens.lens (\CurrentInstance' {resourceDetails} -> resourceDetails) (\s@CurrentInstance' {} a -> s {resourceDetails = a} :: CurrentInstance)++-- | Resource ID of the current instance.+currentInstance_resourceId :: Lens.Lens' CurrentInstance (Prelude.Maybe Prelude.Text)+currentInstance_resourceId = Lens.lens (\CurrentInstance' {resourceId} -> resourceId) (\s@CurrentInstance' {} a -> s {resourceId = a} :: CurrentInstance)++-- | Utilization information of the current instance during the lookback+-- period.+currentInstance_resourceUtilization :: Lens.Lens' CurrentInstance (Prelude.Maybe ResourceUtilization)+currentInstance_resourceUtilization = Lens.lens (\CurrentInstance' {resourceUtilization} -> resourceUtilization) (\s@CurrentInstance' {} a -> s {resourceUtilization = a} :: CurrentInstance)++-- | The number of hours during the lookback period that\'s covered by+-- Savings Plans.+currentInstance_savingsPlansCoveredHoursInLookbackPeriod :: Lens.Lens' CurrentInstance (Prelude.Maybe Prelude.Text)+currentInstance_savingsPlansCoveredHoursInLookbackPeriod = Lens.lens (\CurrentInstance' {savingsPlansCoveredHoursInLookbackPeriod} -> savingsPlansCoveredHoursInLookbackPeriod) (\s@CurrentInstance' {} a -> s {savingsPlansCoveredHoursInLookbackPeriod = a} :: CurrentInstance)++-- | Cost allocation resource tags that are applied to the instance.+currentInstance_tags :: Lens.Lens' CurrentInstance (Prelude.Maybe [TagValues])+currentInstance_tags = Lens.lens (\CurrentInstance' {tags} -> tags) (\s@CurrentInstance' {} a -> s {tags = a} :: CurrentInstance) Prelude.. Lens.mapping Lens.coerced++-- | The total number of hours that the instance ran during the lookback+-- period.+currentInstance_totalRunningHoursInLookbackPeriod :: Lens.Lens' CurrentInstance (Prelude.Maybe Prelude.Text)+currentInstance_totalRunningHoursInLookbackPeriod = Lens.lens (\CurrentInstance' {totalRunningHoursInLookbackPeriod} -> totalRunningHoursInLookbackPeriod) (\s@CurrentInstance' {} a -> s {totalRunningHoursInLookbackPeriod = a} :: CurrentInstance)++instance Data.FromJSON CurrentInstance where+  parseJSON =+    Data.withObject+      "CurrentInstance"+      ( \x ->+          CurrentInstance'+            Prelude.<$> (x Data..:? "CurrencyCode")+            Prelude.<*> (x Data..:? "InstanceName")+            Prelude.<*> (x Data..:? "MonthlyCost")+            Prelude.<*> (x Data..:? "OnDemandHoursInLookbackPeriod")+            Prelude.<*> ( x+                            Data..:? "ReservationCoveredHoursInLookbackPeriod"+                        )+            Prelude.<*> (x Data..:? "ResourceDetails")+            Prelude.<*> (x Data..:? "ResourceId")+            Prelude.<*> (x Data..:? "ResourceUtilization")+            Prelude.<*> ( x+                            Data..:? "SavingsPlansCoveredHoursInLookbackPeriod"+                        )+            Prelude.<*> (x Data..:? "Tags" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "TotalRunningHoursInLookbackPeriod")+      )++instance Prelude.Hashable CurrentInstance where+  hashWithSalt _salt CurrentInstance' {..} =+    _salt+      `Prelude.hashWithSalt` currencyCode+      `Prelude.hashWithSalt` instanceName+      `Prelude.hashWithSalt` monthlyCost+      `Prelude.hashWithSalt` onDemandHoursInLookbackPeriod+      `Prelude.hashWithSalt` reservationCoveredHoursInLookbackPeriod+      `Prelude.hashWithSalt` resourceDetails+      `Prelude.hashWithSalt` resourceId+      `Prelude.hashWithSalt` resourceUtilization+      `Prelude.hashWithSalt` savingsPlansCoveredHoursInLookbackPeriod+      `Prelude.hashWithSalt` tags+      `Prelude.hashWithSalt` totalRunningHoursInLookbackPeriod++instance Prelude.NFData CurrentInstance where+  rnf CurrentInstance' {..} =+    Prelude.rnf currencyCode+      `Prelude.seq` Prelude.rnf instanceName+      `Prelude.seq` Prelude.rnf monthlyCost+      `Prelude.seq` Prelude.rnf onDemandHoursInLookbackPeriod+      `Prelude.seq` Prelude.rnf reservationCoveredHoursInLookbackPeriod+      `Prelude.seq` Prelude.rnf resourceDetails+      `Prelude.seq` Prelude.rnf resourceId+      `Prelude.seq` Prelude.rnf resourceUtilization+      `Prelude.seq` Prelude.rnf savingsPlansCoveredHoursInLookbackPeriod+      `Prelude.seq` Prelude.rnf tags+      `Prelude.seq` Prelude.rnf totalRunningHoursInLookbackPeriod
+ gen/Amazonka/CostExplorer/Types/DateInterval.hs view
@@ -0,0 +1,111 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.DateInterval+-- 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.CostExplorer.Types.DateInterval where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The time period of the request.+--+-- /See:/ 'newDateInterval' smart constructor.+data DateInterval = DateInterval'+  { -- | The beginning of the time period. The start date is inclusive. For+    -- example, if @start@ is @2017-01-01@, Amazon Web Services retrieves cost+    -- and usage data starting at @2017-01-01@ up to the end date. The start+    -- date must be equal to or no later than the current date to avoid a+    -- validation error.+    start :: Prelude.Text,+    -- | The end of the time period. The end date is exclusive. For example, if+    -- @end@ is @2017-05-01@, Amazon Web Services retrieves cost and usage data+    -- from the start date up to, but not including, @2017-05-01@.+    end :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DateInterval' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'start', 'dateInterval_start' - The beginning of the time period. The start date is inclusive. For+-- example, if @start@ is @2017-01-01@, Amazon Web Services retrieves cost+-- and usage data starting at @2017-01-01@ up to the end date. The start+-- date must be equal to or no later than the current date to avoid a+-- validation error.+--+-- 'end', 'dateInterval_end' - The end of the time period. The end date is exclusive. For example, if+-- @end@ is @2017-05-01@, Amazon Web Services retrieves cost and usage data+-- from the start date up to, but not including, @2017-05-01@.+newDateInterval ::+  -- | 'start'+  Prelude.Text ->+  -- | 'end'+  Prelude.Text ->+  DateInterval+newDateInterval pStart_ pEnd_ =+  DateInterval' {start = pStart_, end = pEnd_}++-- | The beginning of the time period. The start date is inclusive. For+-- example, if @start@ is @2017-01-01@, Amazon Web Services retrieves cost+-- and usage data starting at @2017-01-01@ up to the end date. The start+-- date must be equal to or no later than the current date to avoid a+-- validation error.+dateInterval_start :: Lens.Lens' DateInterval Prelude.Text+dateInterval_start = Lens.lens (\DateInterval' {start} -> start) (\s@DateInterval' {} a -> s {start = a} :: DateInterval)++-- | The end of the time period. The end date is exclusive. For example, if+-- @end@ is @2017-05-01@, Amazon Web Services retrieves cost and usage data+-- from the start date up to, but not including, @2017-05-01@.+dateInterval_end :: Lens.Lens' DateInterval Prelude.Text+dateInterval_end = Lens.lens (\DateInterval' {end} -> end) (\s@DateInterval' {} a -> s {end = a} :: DateInterval)++instance Data.FromJSON DateInterval where+  parseJSON =+    Data.withObject+      "DateInterval"+      ( \x ->+          DateInterval'+            Prelude.<$> (x Data..: "Start")+            Prelude.<*> (x Data..: "End")+      )++instance Prelude.Hashable DateInterval where+  hashWithSalt _salt DateInterval' {..} =+    _salt+      `Prelude.hashWithSalt` start+      `Prelude.hashWithSalt` end++instance Prelude.NFData DateInterval where+  rnf DateInterval' {..} =+    Prelude.rnf start `Prelude.seq` Prelude.rnf end++instance Data.ToJSON DateInterval where+  toJSON DateInterval' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("Start" Data..= start),+            Prelude.Just ("End" Data..= end)+          ]+      )
+ gen/Amazonka/CostExplorer/Types/Dimension.hs view
@@ -0,0 +1,231 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.Dimension+-- 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.CostExplorer.Types.Dimension+  ( Dimension+      ( ..,+        Dimension_AGREEMENT_END_DATE_TIME_AFTER,+        Dimension_AGREEMENT_END_DATE_TIME_BEFORE,+        Dimension_ANOMALY_TOTAL_IMPACT_ABSOLUTE,+        Dimension_ANOMALY_TOTAL_IMPACT_PERCENTAGE,+        Dimension_AZ,+        Dimension_BILLING_ENTITY,+        Dimension_CACHE_ENGINE,+        Dimension_DATABASE_ENGINE,+        Dimension_DEPLOYMENT_OPTION,+        Dimension_INSTANCE_TYPE,+        Dimension_INSTANCE_TYPE_FAMILY,+        Dimension_INVOICING_ENTITY,+        Dimension_LEGAL_ENTITY_NAME,+        Dimension_LINKED_ACCOUNT,+        Dimension_LINKED_ACCOUNT_NAME,+        Dimension_OPERATING_SYSTEM,+        Dimension_OPERATION,+        Dimension_PAYMENT_OPTION,+        Dimension_PLATFORM,+        Dimension_PURCHASE_TYPE,+        Dimension_RECORD_TYPE,+        Dimension_REGION,+        Dimension_RESERVATION_ID,+        Dimension_RESOURCE_ID,+        Dimension_RIGHTSIZING_TYPE,+        Dimension_SAVINGS_PLANS_TYPE,+        Dimension_SAVINGS_PLAN_ARN,+        Dimension_SCOPE,+        Dimension_SERVICE,+        Dimension_SERVICE_CODE,+        Dimension_SUBSCRIPTION_ID,+        Dimension_TENANCY,+        Dimension_USAGE_TYPE,+        Dimension_USAGE_TYPE_GROUP+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype Dimension = Dimension'+  { fromDimension ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern Dimension_AGREEMENT_END_DATE_TIME_AFTER :: Dimension+pattern Dimension_AGREEMENT_END_DATE_TIME_AFTER = Dimension' "AGREEMENT_END_DATE_TIME_AFTER"++pattern Dimension_AGREEMENT_END_DATE_TIME_BEFORE :: Dimension+pattern Dimension_AGREEMENT_END_DATE_TIME_BEFORE = Dimension' "AGREEMENT_END_DATE_TIME_BEFORE"++pattern Dimension_ANOMALY_TOTAL_IMPACT_ABSOLUTE :: Dimension+pattern Dimension_ANOMALY_TOTAL_IMPACT_ABSOLUTE = Dimension' "ANOMALY_TOTAL_IMPACT_ABSOLUTE"++pattern Dimension_ANOMALY_TOTAL_IMPACT_PERCENTAGE :: Dimension+pattern Dimension_ANOMALY_TOTAL_IMPACT_PERCENTAGE = Dimension' "ANOMALY_TOTAL_IMPACT_PERCENTAGE"++pattern Dimension_AZ :: Dimension+pattern Dimension_AZ = Dimension' "AZ"++pattern Dimension_BILLING_ENTITY :: Dimension+pattern Dimension_BILLING_ENTITY = Dimension' "BILLING_ENTITY"++pattern Dimension_CACHE_ENGINE :: Dimension+pattern Dimension_CACHE_ENGINE = Dimension' "CACHE_ENGINE"++pattern Dimension_DATABASE_ENGINE :: Dimension+pattern Dimension_DATABASE_ENGINE = Dimension' "DATABASE_ENGINE"++pattern Dimension_DEPLOYMENT_OPTION :: Dimension+pattern Dimension_DEPLOYMENT_OPTION = Dimension' "DEPLOYMENT_OPTION"++pattern Dimension_INSTANCE_TYPE :: Dimension+pattern Dimension_INSTANCE_TYPE = Dimension' "INSTANCE_TYPE"++pattern Dimension_INSTANCE_TYPE_FAMILY :: Dimension+pattern Dimension_INSTANCE_TYPE_FAMILY = Dimension' "INSTANCE_TYPE_FAMILY"++pattern Dimension_INVOICING_ENTITY :: Dimension+pattern Dimension_INVOICING_ENTITY = Dimension' "INVOICING_ENTITY"++pattern Dimension_LEGAL_ENTITY_NAME :: Dimension+pattern Dimension_LEGAL_ENTITY_NAME = Dimension' "LEGAL_ENTITY_NAME"++pattern Dimension_LINKED_ACCOUNT :: Dimension+pattern Dimension_LINKED_ACCOUNT = Dimension' "LINKED_ACCOUNT"++pattern Dimension_LINKED_ACCOUNT_NAME :: Dimension+pattern Dimension_LINKED_ACCOUNT_NAME = Dimension' "LINKED_ACCOUNT_NAME"++pattern Dimension_OPERATING_SYSTEM :: Dimension+pattern Dimension_OPERATING_SYSTEM = Dimension' "OPERATING_SYSTEM"++pattern Dimension_OPERATION :: Dimension+pattern Dimension_OPERATION = Dimension' "OPERATION"++pattern Dimension_PAYMENT_OPTION :: Dimension+pattern Dimension_PAYMENT_OPTION = Dimension' "PAYMENT_OPTION"++pattern Dimension_PLATFORM :: Dimension+pattern Dimension_PLATFORM = Dimension' "PLATFORM"++pattern Dimension_PURCHASE_TYPE :: Dimension+pattern Dimension_PURCHASE_TYPE = Dimension' "PURCHASE_TYPE"++pattern Dimension_RECORD_TYPE :: Dimension+pattern Dimension_RECORD_TYPE = Dimension' "RECORD_TYPE"++pattern Dimension_REGION :: Dimension+pattern Dimension_REGION = Dimension' "REGION"++pattern Dimension_RESERVATION_ID :: Dimension+pattern Dimension_RESERVATION_ID = Dimension' "RESERVATION_ID"++pattern Dimension_RESOURCE_ID :: Dimension+pattern Dimension_RESOURCE_ID = Dimension' "RESOURCE_ID"++pattern Dimension_RIGHTSIZING_TYPE :: Dimension+pattern Dimension_RIGHTSIZING_TYPE = Dimension' "RIGHTSIZING_TYPE"++pattern Dimension_SAVINGS_PLANS_TYPE :: Dimension+pattern Dimension_SAVINGS_PLANS_TYPE = Dimension' "SAVINGS_PLANS_TYPE"++pattern Dimension_SAVINGS_PLAN_ARN :: Dimension+pattern Dimension_SAVINGS_PLAN_ARN = Dimension' "SAVINGS_PLAN_ARN"++pattern Dimension_SCOPE :: Dimension+pattern Dimension_SCOPE = Dimension' "SCOPE"++pattern Dimension_SERVICE :: Dimension+pattern Dimension_SERVICE = Dimension' "SERVICE"++pattern Dimension_SERVICE_CODE :: Dimension+pattern Dimension_SERVICE_CODE = Dimension' "SERVICE_CODE"++pattern Dimension_SUBSCRIPTION_ID :: Dimension+pattern Dimension_SUBSCRIPTION_ID = Dimension' "SUBSCRIPTION_ID"++pattern Dimension_TENANCY :: Dimension+pattern Dimension_TENANCY = Dimension' "TENANCY"++pattern Dimension_USAGE_TYPE :: Dimension+pattern Dimension_USAGE_TYPE = Dimension' "USAGE_TYPE"++pattern Dimension_USAGE_TYPE_GROUP :: Dimension+pattern Dimension_USAGE_TYPE_GROUP = Dimension' "USAGE_TYPE_GROUP"++{-# COMPLETE+  Dimension_AGREEMENT_END_DATE_TIME_AFTER,+  Dimension_AGREEMENT_END_DATE_TIME_BEFORE,+  Dimension_ANOMALY_TOTAL_IMPACT_ABSOLUTE,+  Dimension_ANOMALY_TOTAL_IMPACT_PERCENTAGE,+  Dimension_AZ,+  Dimension_BILLING_ENTITY,+  Dimension_CACHE_ENGINE,+  Dimension_DATABASE_ENGINE,+  Dimension_DEPLOYMENT_OPTION,+  Dimension_INSTANCE_TYPE,+  Dimension_INSTANCE_TYPE_FAMILY,+  Dimension_INVOICING_ENTITY,+  Dimension_LEGAL_ENTITY_NAME,+  Dimension_LINKED_ACCOUNT,+  Dimension_LINKED_ACCOUNT_NAME,+  Dimension_OPERATING_SYSTEM,+  Dimension_OPERATION,+  Dimension_PAYMENT_OPTION,+  Dimension_PLATFORM,+  Dimension_PURCHASE_TYPE,+  Dimension_RECORD_TYPE,+  Dimension_REGION,+  Dimension_RESERVATION_ID,+  Dimension_RESOURCE_ID,+  Dimension_RIGHTSIZING_TYPE,+  Dimension_SAVINGS_PLANS_TYPE,+  Dimension_SAVINGS_PLAN_ARN,+  Dimension_SCOPE,+  Dimension_SERVICE,+  Dimension_SERVICE_CODE,+  Dimension_SUBSCRIPTION_ID,+  Dimension_TENANCY,+  Dimension_USAGE_TYPE,+  Dimension_USAGE_TYPE_GROUP,+  Dimension'+  #-}
+ gen/Amazonka/CostExplorer/Types/DimensionValues.hs view
@@ -0,0 +1,163 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.DimensionValues+-- 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.CostExplorer.Types.DimensionValues where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CostExplorer.Types.Dimension+import Amazonka.CostExplorer.Types.MatchOption+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The metadata that you can use to filter and group your results. You can+-- use @GetDimensionValues@ to find specific values.+--+-- /See:/ 'newDimensionValues' smart constructor.+data DimensionValues = DimensionValues'+  { -- | The names of the metadata types that you can use to filter and group+    -- your results. For example, @AZ@ returns a list of Availability Zones.+    --+    -- Not all dimensions are supported in each API. Refer to the documentation+    -- for each specific API to see what is supported.+    --+    -- @LINK_ACCOUNT_NAME@ and @SERVICE_CODE@ can only be used in+    -- <https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_CostCategoryRule.html CostCategoryRule>.+    --+    -- @ANOMALY_TOTAL_IMPACT_ABSOLUTE@ and @ANOMALY_TOTAL_IMPACT_PERCENTAGE@+    -- can only be used in+    -- <https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_AnomalySubscription.html AnomalySubscriptions>.+    key :: Prelude.Maybe Dimension,+    -- | The match options that you can use to filter your results.+    --+    -- @MatchOptions@ is only applicable for actions related to Cost Category+    -- and Anomaly Subscriptions. Refer to the documentation for each specific+    -- API to see what is supported.+    --+    -- The default values for @MatchOptions@ are @EQUALS@ and @CASE_SENSITIVE@.+    matchOptions :: Prelude.Maybe [MatchOption],+    -- | The metadata values that you can use to filter and group your results.+    -- You can use @GetDimensionValues@ to find specific values.+    values :: Prelude.Maybe [Prelude.Text]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DimensionValues' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'key', 'dimensionValues_key' - The names of the metadata types that you can use to filter and group+-- your results. For example, @AZ@ returns a list of Availability Zones.+--+-- Not all dimensions are supported in each API. Refer to the documentation+-- for each specific API to see what is supported.+--+-- @LINK_ACCOUNT_NAME@ and @SERVICE_CODE@ can only be used in+-- <https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_CostCategoryRule.html CostCategoryRule>.+--+-- @ANOMALY_TOTAL_IMPACT_ABSOLUTE@ and @ANOMALY_TOTAL_IMPACT_PERCENTAGE@+-- can only be used in+-- <https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_AnomalySubscription.html AnomalySubscriptions>.+--+-- 'matchOptions', 'dimensionValues_matchOptions' - The match options that you can use to filter your results.+--+-- @MatchOptions@ is only applicable for actions related to Cost Category+-- and Anomaly Subscriptions. Refer to the documentation for each specific+-- API to see what is supported.+--+-- The default values for @MatchOptions@ are @EQUALS@ and @CASE_SENSITIVE@.+--+-- 'values', 'dimensionValues_values' - The metadata values that you can use to filter and group your results.+-- You can use @GetDimensionValues@ to find specific values.+newDimensionValues ::+  DimensionValues+newDimensionValues =+  DimensionValues'+    { key = Prelude.Nothing,+      matchOptions = Prelude.Nothing,+      values = Prelude.Nothing+    }++-- | The names of the metadata types that you can use to filter and group+-- your results. For example, @AZ@ returns a list of Availability Zones.+--+-- Not all dimensions are supported in each API. Refer to the documentation+-- for each specific API to see what is supported.+--+-- @LINK_ACCOUNT_NAME@ and @SERVICE_CODE@ can only be used in+-- <https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_CostCategoryRule.html CostCategoryRule>.+--+-- @ANOMALY_TOTAL_IMPACT_ABSOLUTE@ and @ANOMALY_TOTAL_IMPACT_PERCENTAGE@+-- can only be used in+-- <https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_AnomalySubscription.html AnomalySubscriptions>.+dimensionValues_key :: Lens.Lens' DimensionValues (Prelude.Maybe Dimension)+dimensionValues_key = Lens.lens (\DimensionValues' {key} -> key) (\s@DimensionValues' {} a -> s {key = a} :: DimensionValues)++-- | The match options that you can use to filter your results.+--+-- @MatchOptions@ is only applicable for actions related to Cost Category+-- and Anomaly Subscriptions. Refer to the documentation for each specific+-- API to see what is supported.+--+-- The default values for @MatchOptions@ are @EQUALS@ and @CASE_SENSITIVE@.+dimensionValues_matchOptions :: Lens.Lens' DimensionValues (Prelude.Maybe [MatchOption])+dimensionValues_matchOptions = Lens.lens (\DimensionValues' {matchOptions} -> matchOptions) (\s@DimensionValues' {} a -> s {matchOptions = a} :: DimensionValues) Prelude.. Lens.mapping Lens.coerced++-- | The metadata values that you can use to filter and group your results.+-- You can use @GetDimensionValues@ to find specific values.+dimensionValues_values :: Lens.Lens' DimensionValues (Prelude.Maybe [Prelude.Text])+dimensionValues_values = Lens.lens (\DimensionValues' {values} -> values) (\s@DimensionValues' {} a -> s {values = a} :: DimensionValues) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON DimensionValues where+  parseJSON =+    Data.withObject+      "DimensionValues"+      ( \x ->+          DimensionValues'+            Prelude.<$> (x Data..:? "Key")+            Prelude.<*> (x Data..:? "MatchOptions" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "Values" Data..!= Prelude.mempty)+      )++instance Prelude.Hashable DimensionValues where+  hashWithSalt _salt DimensionValues' {..} =+    _salt+      `Prelude.hashWithSalt` key+      `Prelude.hashWithSalt` matchOptions+      `Prelude.hashWithSalt` values++instance Prelude.NFData DimensionValues where+  rnf DimensionValues' {..} =+    Prelude.rnf key+      `Prelude.seq` Prelude.rnf matchOptions+      `Prelude.seq` Prelude.rnf values++instance Data.ToJSON DimensionValues where+  toJSON DimensionValues' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Key" Data..=) Prelude.<$> key,+            ("MatchOptions" Data..=) Prelude.<$> matchOptions,+            ("Values" Data..=) Prelude.<$> values+          ]+      )
+ gen/Amazonka/CostExplorer/Types/DimensionValuesWithAttributes.hs view
@@ -0,0 +1,89 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.DimensionValuesWithAttributes+-- 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.CostExplorer.Types.DimensionValuesWithAttributes where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The metadata of a specific type that you can use to filter and group+-- your results. You can use @GetDimensionValues@ to find specific values.+--+-- /See:/ 'newDimensionValuesWithAttributes' smart constructor.+data DimensionValuesWithAttributes = DimensionValuesWithAttributes'+  { -- | The attribute that applies to a specific @Dimension@.+    attributes :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The value of a dimension with a specific attribute.+    value :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DimensionValuesWithAttributes' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'attributes', 'dimensionValuesWithAttributes_attributes' - The attribute that applies to a specific @Dimension@.+--+-- 'value', 'dimensionValuesWithAttributes_value' - The value of a dimension with a specific attribute.+newDimensionValuesWithAttributes ::+  DimensionValuesWithAttributes+newDimensionValuesWithAttributes =+  DimensionValuesWithAttributes'+    { attributes =+        Prelude.Nothing,+      value = Prelude.Nothing+    }++-- | The attribute that applies to a specific @Dimension@.+dimensionValuesWithAttributes_attributes :: Lens.Lens' DimensionValuesWithAttributes (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+dimensionValuesWithAttributes_attributes = Lens.lens (\DimensionValuesWithAttributes' {attributes} -> attributes) (\s@DimensionValuesWithAttributes' {} a -> s {attributes = a} :: DimensionValuesWithAttributes) Prelude.. Lens.mapping Lens.coerced++-- | The value of a dimension with a specific attribute.+dimensionValuesWithAttributes_value :: Lens.Lens' DimensionValuesWithAttributes (Prelude.Maybe Prelude.Text)+dimensionValuesWithAttributes_value = Lens.lens (\DimensionValuesWithAttributes' {value} -> value) (\s@DimensionValuesWithAttributes' {} a -> s {value = a} :: DimensionValuesWithAttributes)++instance Data.FromJSON DimensionValuesWithAttributes where+  parseJSON =+    Data.withObject+      "DimensionValuesWithAttributes"+      ( \x ->+          DimensionValuesWithAttributes'+            Prelude.<$> (x Data..:? "Attributes" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "Value")+      )++instance+  Prelude.Hashable+    DimensionValuesWithAttributes+  where+  hashWithSalt _salt DimensionValuesWithAttributes' {..} =+    _salt+      `Prelude.hashWithSalt` attributes+      `Prelude.hashWithSalt` value++instance Prelude.NFData DimensionValuesWithAttributes where+  rnf DimensionValuesWithAttributes' {..} =+    Prelude.rnf attributes+      `Prelude.seq` Prelude.rnf value
+ gen/Amazonka/CostExplorer/Types/DiskResourceUtilization.hs view
@@ -0,0 +1,110 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.DiskResourceUtilization+-- 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.CostExplorer.Types.DiskResourceUtilization where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The field that contains a list of disk (local storage) metrics that are+-- associated with the current instance.+--+-- /See:/ 'newDiskResourceUtilization' smart constructor.+data DiskResourceUtilization = DiskResourceUtilization'+  { -- | The maximum read throughput operations per second.+    diskReadBytesPerSecond :: Prelude.Maybe Prelude.Text,+    -- | The maximum number of read operations per second.+    diskReadOpsPerSecond :: Prelude.Maybe Prelude.Text,+    -- | The maximum write throughput operations per second.+    diskWriteBytesPerSecond :: Prelude.Maybe Prelude.Text,+    -- | The maximum number of write operations per second.+    diskWriteOpsPerSecond :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DiskResourceUtilization' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'diskReadBytesPerSecond', 'diskResourceUtilization_diskReadBytesPerSecond' - The maximum read throughput operations per second.+--+-- 'diskReadOpsPerSecond', 'diskResourceUtilization_diskReadOpsPerSecond' - The maximum number of read operations per second.+--+-- 'diskWriteBytesPerSecond', 'diskResourceUtilization_diskWriteBytesPerSecond' - The maximum write throughput operations per second.+--+-- 'diskWriteOpsPerSecond', 'diskResourceUtilization_diskWriteOpsPerSecond' - The maximum number of write operations per second.+newDiskResourceUtilization ::+  DiskResourceUtilization+newDiskResourceUtilization =+  DiskResourceUtilization'+    { diskReadBytesPerSecond =+        Prelude.Nothing,+      diskReadOpsPerSecond = Prelude.Nothing,+      diskWriteBytesPerSecond = Prelude.Nothing,+      diskWriteOpsPerSecond = Prelude.Nothing+    }++-- | The maximum read throughput operations per second.+diskResourceUtilization_diskReadBytesPerSecond :: Lens.Lens' DiskResourceUtilization (Prelude.Maybe Prelude.Text)+diskResourceUtilization_diskReadBytesPerSecond = Lens.lens (\DiskResourceUtilization' {diskReadBytesPerSecond} -> diskReadBytesPerSecond) (\s@DiskResourceUtilization' {} a -> s {diskReadBytesPerSecond = a} :: DiskResourceUtilization)++-- | The maximum number of read operations per second.+diskResourceUtilization_diskReadOpsPerSecond :: Lens.Lens' DiskResourceUtilization (Prelude.Maybe Prelude.Text)+diskResourceUtilization_diskReadOpsPerSecond = Lens.lens (\DiskResourceUtilization' {diskReadOpsPerSecond} -> diskReadOpsPerSecond) (\s@DiskResourceUtilization' {} a -> s {diskReadOpsPerSecond = a} :: DiskResourceUtilization)++-- | The maximum write throughput operations per second.+diskResourceUtilization_diskWriteBytesPerSecond :: Lens.Lens' DiskResourceUtilization (Prelude.Maybe Prelude.Text)+diskResourceUtilization_diskWriteBytesPerSecond = Lens.lens (\DiskResourceUtilization' {diskWriteBytesPerSecond} -> diskWriteBytesPerSecond) (\s@DiskResourceUtilization' {} a -> s {diskWriteBytesPerSecond = a} :: DiskResourceUtilization)++-- | The maximum number of write operations per second.+diskResourceUtilization_diskWriteOpsPerSecond :: Lens.Lens' DiskResourceUtilization (Prelude.Maybe Prelude.Text)+diskResourceUtilization_diskWriteOpsPerSecond = Lens.lens (\DiskResourceUtilization' {diskWriteOpsPerSecond} -> diskWriteOpsPerSecond) (\s@DiskResourceUtilization' {} a -> s {diskWriteOpsPerSecond = a} :: DiskResourceUtilization)++instance Data.FromJSON DiskResourceUtilization where+  parseJSON =+    Data.withObject+      "DiskResourceUtilization"+      ( \x ->+          DiskResourceUtilization'+            Prelude.<$> (x Data..:? "DiskReadBytesPerSecond")+            Prelude.<*> (x Data..:? "DiskReadOpsPerSecond")+            Prelude.<*> (x Data..:? "DiskWriteBytesPerSecond")+            Prelude.<*> (x Data..:? "DiskWriteOpsPerSecond")+      )++instance Prelude.Hashable DiskResourceUtilization where+  hashWithSalt _salt DiskResourceUtilization' {..} =+    _salt+      `Prelude.hashWithSalt` diskReadBytesPerSecond+      `Prelude.hashWithSalt` diskReadOpsPerSecond+      `Prelude.hashWithSalt` diskWriteBytesPerSecond+      `Prelude.hashWithSalt` diskWriteOpsPerSecond++instance Prelude.NFData DiskResourceUtilization where+  rnf DiskResourceUtilization' {..} =+    Prelude.rnf diskReadBytesPerSecond+      `Prelude.seq` Prelude.rnf diskReadOpsPerSecond+      `Prelude.seq` Prelude.rnf diskWriteBytesPerSecond+      `Prelude.seq` Prelude.rnf diskWriteOpsPerSecond
+ gen/Amazonka/CostExplorer/Types/EBSResourceUtilization.hs view
@@ -0,0 +1,110 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.EBSResourceUtilization+-- 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.CostExplorer.Types.EBSResourceUtilization where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The EBS field that contains a list of EBS metrics that are associated+-- with the current instance.+--+-- /See:/ 'newEBSResourceUtilization' smart constructor.+data EBSResourceUtilization = EBSResourceUtilization'+  { -- | The maximum size of read operations per second+    ebsReadBytesPerSecond :: Prelude.Maybe Prelude.Text,+    -- | The maximum number of read operations per second.+    ebsReadOpsPerSecond :: Prelude.Maybe Prelude.Text,+    -- | The maximum size of write operations per second.+    ebsWriteBytesPerSecond :: Prelude.Maybe Prelude.Text,+    -- | The maximum number of write operations per second.+    ebsWriteOpsPerSecond :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'EBSResourceUtilization' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'ebsReadBytesPerSecond', 'eBSResourceUtilization_ebsReadBytesPerSecond' - The maximum size of read operations per second+--+-- 'ebsReadOpsPerSecond', 'eBSResourceUtilization_ebsReadOpsPerSecond' - The maximum number of read operations per second.+--+-- 'ebsWriteBytesPerSecond', 'eBSResourceUtilization_ebsWriteBytesPerSecond' - The maximum size of write operations per second.+--+-- 'ebsWriteOpsPerSecond', 'eBSResourceUtilization_ebsWriteOpsPerSecond' - The maximum number of write operations per second.+newEBSResourceUtilization ::+  EBSResourceUtilization+newEBSResourceUtilization =+  EBSResourceUtilization'+    { ebsReadBytesPerSecond =+        Prelude.Nothing,+      ebsReadOpsPerSecond = Prelude.Nothing,+      ebsWriteBytesPerSecond = Prelude.Nothing,+      ebsWriteOpsPerSecond = Prelude.Nothing+    }++-- | The maximum size of read operations per second+eBSResourceUtilization_ebsReadBytesPerSecond :: Lens.Lens' EBSResourceUtilization (Prelude.Maybe Prelude.Text)+eBSResourceUtilization_ebsReadBytesPerSecond = Lens.lens (\EBSResourceUtilization' {ebsReadBytesPerSecond} -> ebsReadBytesPerSecond) (\s@EBSResourceUtilization' {} a -> s {ebsReadBytesPerSecond = a} :: EBSResourceUtilization)++-- | The maximum number of read operations per second.+eBSResourceUtilization_ebsReadOpsPerSecond :: Lens.Lens' EBSResourceUtilization (Prelude.Maybe Prelude.Text)+eBSResourceUtilization_ebsReadOpsPerSecond = Lens.lens (\EBSResourceUtilization' {ebsReadOpsPerSecond} -> ebsReadOpsPerSecond) (\s@EBSResourceUtilization' {} a -> s {ebsReadOpsPerSecond = a} :: EBSResourceUtilization)++-- | The maximum size of write operations per second.+eBSResourceUtilization_ebsWriteBytesPerSecond :: Lens.Lens' EBSResourceUtilization (Prelude.Maybe Prelude.Text)+eBSResourceUtilization_ebsWriteBytesPerSecond = Lens.lens (\EBSResourceUtilization' {ebsWriteBytesPerSecond} -> ebsWriteBytesPerSecond) (\s@EBSResourceUtilization' {} a -> s {ebsWriteBytesPerSecond = a} :: EBSResourceUtilization)++-- | The maximum number of write operations per second.+eBSResourceUtilization_ebsWriteOpsPerSecond :: Lens.Lens' EBSResourceUtilization (Prelude.Maybe Prelude.Text)+eBSResourceUtilization_ebsWriteOpsPerSecond = Lens.lens (\EBSResourceUtilization' {ebsWriteOpsPerSecond} -> ebsWriteOpsPerSecond) (\s@EBSResourceUtilization' {} a -> s {ebsWriteOpsPerSecond = a} :: EBSResourceUtilization)++instance Data.FromJSON EBSResourceUtilization where+  parseJSON =+    Data.withObject+      "EBSResourceUtilization"+      ( \x ->+          EBSResourceUtilization'+            Prelude.<$> (x Data..:? "EbsReadBytesPerSecond")+            Prelude.<*> (x Data..:? "EbsReadOpsPerSecond")+            Prelude.<*> (x Data..:? "EbsWriteBytesPerSecond")+            Prelude.<*> (x Data..:? "EbsWriteOpsPerSecond")+      )++instance Prelude.Hashable EBSResourceUtilization where+  hashWithSalt _salt EBSResourceUtilization' {..} =+    _salt+      `Prelude.hashWithSalt` ebsReadBytesPerSecond+      `Prelude.hashWithSalt` ebsReadOpsPerSecond+      `Prelude.hashWithSalt` ebsWriteBytesPerSecond+      `Prelude.hashWithSalt` ebsWriteOpsPerSecond++instance Prelude.NFData EBSResourceUtilization where+  rnf EBSResourceUtilization' {..} =+    Prelude.rnf ebsReadBytesPerSecond+      `Prelude.seq` Prelude.rnf ebsReadOpsPerSecond+      `Prelude.seq` Prelude.rnf ebsWriteBytesPerSecond+      `Prelude.seq` Prelude.rnf ebsWriteOpsPerSecond
+ gen/Amazonka/CostExplorer/Types/EC2InstanceDetails.hs view
@@ -0,0 +1,167 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.EC2InstanceDetails+-- 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.CostExplorer.Types.EC2InstanceDetails where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Details about the Amazon EC2 instances that Amazon Web Services+-- recommends that you purchase.+--+-- /See:/ 'newEC2InstanceDetails' smart constructor.+data EC2InstanceDetails = EC2InstanceDetails'+  { -- | The Availability Zone of the recommended reservation.+    availabilityZone :: Prelude.Maybe Prelude.Text,+    -- | Determines whether the recommendation is for a current-generation+    -- instance.+    currentGeneration :: Prelude.Maybe Prelude.Bool,+    -- | The instance family of the recommended reservation.+    family :: Prelude.Maybe Prelude.Text,+    -- | The type of instance that Amazon Web Services recommends.+    instanceType :: Prelude.Maybe Prelude.Text,+    -- | The platform of the recommended reservation. The platform is the+    -- specific combination of operating system, license model, and software on+    -- an instance.+    platform :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Web Services Region of the recommended reservation.+    region :: Prelude.Maybe Prelude.Text,+    -- | Determines whether the recommended reservation is size flexible.+    sizeFlexEligible :: Prelude.Maybe Prelude.Bool,+    -- | Determines whether the recommended reservation is dedicated or shared.+    tenancy :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'EC2InstanceDetails' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'availabilityZone', 'eC2InstanceDetails_availabilityZone' - The Availability Zone of the recommended reservation.+--+-- 'currentGeneration', 'eC2InstanceDetails_currentGeneration' - Determines whether the recommendation is for a current-generation+-- instance.+--+-- 'family', 'eC2InstanceDetails_family' - The instance family of the recommended reservation.+--+-- 'instanceType', 'eC2InstanceDetails_instanceType' - The type of instance that Amazon Web Services recommends.+--+-- 'platform', 'eC2InstanceDetails_platform' - The platform of the recommended reservation. The platform is the+-- specific combination of operating system, license model, and software on+-- an instance.+--+-- 'region', 'eC2InstanceDetails_region' - The Amazon Web Services Region of the recommended reservation.+--+-- 'sizeFlexEligible', 'eC2InstanceDetails_sizeFlexEligible' - Determines whether the recommended reservation is size flexible.+--+-- 'tenancy', 'eC2InstanceDetails_tenancy' - Determines whether the recommended reservation is dedicated or shared.+newEC2InstanceDetails ::+  EC2InstanceDetails+newEC2InstanceDetails =+  EC2InstanceDetails'+    { availabilityZone =+        Prelude.Nothing,+      currentGeneration = Prelude.Nothing,+      family = Prelude.Nothing,+      instanceType = Prelude.Nothing,+      platform = Prelude.Nothing,+      region = Prelude.Nothing,+      sizeFlexEligible = Prelude.Nothing,+      tenancy = Prelude.Nothing+    }++-- | The Availability Zone of the recommended reservation.+eC2InstanceDetails_availabilityZone :: Lens.Lens' EC2InstanceDetails (Prelude.Maybe Prelude.Text)+eC2InstanceDetails_availabilityZone = Lens.lens (\EC2InstanceDetails' {availabilityZone} -> availabilityZone) (\s@EC2InstanceDetails' {} a -> s {availabilityZone = a} :: EC2InstanceDetails)++-- | Determines whether the recommendation is for a current-generation+-- instance.+eC2InstanceDetails_currentGeneration :: Lens.Lens' EC2InstanceDetails (Prelude.Maybe Prelude.Bool)+eC2InstanceDetails_currentGeneration = Lens.lens (\EC2InstanceDetails' {currentGeneration} -> currentGeneration) (\s@EC2InstanceDetails' {} a -> s {currentGeneration = a} :: EC2InstanceDetails)++-- | The instance family of the recommended reservation.+eC2InstanceDetails_family :: Lens.Lens' EC2InstanceDetails (Prelude.Maybe Prelude.Text)+eC2InstanceDetails_family = Lens.lens (\EC2InstanceDetails' {family} -> family) (\s@EC2InstanceDetails' {} a -> s {family = a} :: EC2InstanceDetails)++-- | The type of instance that Amazon Web Services recommends.+eC2InstanceDetails_instanceType :: Lens.Lens' EC2InstanceDetails (Prelude.Maybe Prelude.Text)+eC2InstanceDetails_instanceType = Lens.lens (\EC2InstanceDetails' {instanceType} -> instanceType) (\s@EC2InstanceDetails' {} a -> s {instanceType = a} :: EC2InstanceDetails)++-- | The platform of the recommended reservation. The platform is the+-- specific combination of operating system, license model, and software on+-- an instance.+eC2InstanceDetails_platform :: Lens.Lens' EC2InstanceDetails (Prelude.Maybe Prelude.Text)+eC2InstanceDetails_platform = Lens.lens (\EC2InstanceDetails' {platform} -> platform) (\s@EC2InstanceDetails' {} a -> s {platform = a} :: EC2InstanceDetails)++-- | The Amazon Web Services Region of the recommended reservation.+eC2InstanceDetails_region :: Lens.Lens' EC2InstanceDetails (Prelude.Maybe Prelude.Text)+eC2InstanceDetails_region = Lens.lens (\EC2InstanceDetails' {region} -> region) (\s@EC2InstanceDetails' {} a -> s {region = a} :: EC2InstanceDetails)++-- | Determines whether the recommended reservation is size flexible.+eC2InstanceDetails_sizeFlexEligible :: Lens.Lens' EC2InstanceDetails (Prelude.Maybe Prelude.Bool)+eC2InstanceDetails_sizeFlexEligible = Lens.lens (\EC2InstanceDetails' {sizeFlexEligible} -> sizeFlexEligible) (\s@EC2InstanceDetails' {} a -> s {sizeFlexEligible = a} :: EC2InstanceDetails)++-- | Determines whether the recommended reservation is dedicated or shared.+eC2InstanceDetails_tenancy :: Lens.Lens' EC2InstanceDetails (Prelude.Maybe Prelude.Text)+eC2InstanceDetails_tenancy = Lens.lens (\EC2InstanceDetails' {tenancy} -> tenancy) (\s@EC2InstanceDetails' {} a -> s {tenancy = a} :: EC2InstanceDetails)++instance Data.FromJSON EC2InstanceDetails where+  parseJSON =+    Data.withObject+      "EC2InstanceDetails"+      ( \x ->+          EC2InstanceDetails'+            Prelude.<$> (x Data..:? "AvailabilityZone")+            Prelude.<*> (x Data..:? "CurrentGeneration")+            Prelude.<*> (x Data..:? "Family")+            Prelude.<*> (x Data..:? "InstanceType")+            Prelude.<*> (x Data..:? "Platform")+            Prelude.<*> (x Data..:? "Region")+            Prelude.<*> (x Data..:? "SizeFlexEligible")+            Prelude.<*> (x Data..:? "Tenancy")+      )++instance Prelude.Hashable EC2InstanceDetails where+  hashWithSalt _salt EC2InstanceDetails' {..} =+    _salt+      `Prelude.hashWithSalt` availabilityZone+      `Prelude.hashWithSalt` currentGeneration+      `Prelude.hashWithSalt` family+      `Prelude.hashWithSalt` instanceType+      `Prelude.hashWithSalt` platform+      `Prelude.hashWithSalt` region+      `Prelude.hashWithSalt` sizeFlexEligible+      `Prelude.hashWithSalt` tenancy++instance Prelude.NFData EC2InstanceDetails where+  rnf EC2InstanceDetails' {..} =+    Prelude.rnf availabilityZone+      `Prelude.seq` Prelude.rnf currentGeneration+      `Prelude.seq` Prelude.rnf family+      `Prelude.seq` Prelude.rnf instanceType+      `Prelude.seq` Prelude.rnf platform+      `Prelude.seq` Prelude.rnf region+      `Prelude.seq` Prelude.rnf sizeFlexEligible+      `Prelude.seq` Prelude.rnf tenancy
+ gen/Amazonka/CostExplorer/Types/EC2ResourceDetails.hs view
@@ -0,0 +1,178 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.EC2ResourceDetails+-- 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.CostExplorer.Types.EC2ResourceDetails where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Details on the Amazon EC2 Resource.+--+-- /See:/ 'newEC2ResourceDetails' smart constructor.+data EC2ResourceDetails = EC2ResourceDetails'+  { -- | The hourly public On-Demand rate for the instance type.+    hourlyOnDemandRate :: Prelude.Maybe Prelude.Text,+    -- | The type of Amazon Web Services instance.+    instanceType :: Prelude.Maybe Prelude.Text,+    -- | The memory capacity of the Amazon Web Services instance.+    memory :: Prelude.Maybe Prelude.Text,+    -- | The network performance capacity of the Amazon Web Services instance.+    networkPerformance :: Prelude.Maybe Prelude.Text,+    -- | The platform of the Amazon Web Services instance. The platform is the+    -- specific combination of operating system, license model, and software on+    -- an instance.+    platform :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Web Services Region of the instance.+    region :: Prelude.Maybe Prelude.Text,+    -- | The SKU of the product.+    sku :: Prelude.Maybe Prelude.Text,+    -- | The disk storage of the Amazon Web Services instance. This doesn\'t+    -- include EBS storage.+    storage :: Prelude.Maybe Prelude.Text,+    -- | The number of VCPU cores in the Amazon Web Services instance type.+    vcpu :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'EC2ResourceDetails' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'hourlyOnDemandRate', 'eC2ResourceDetails_hourlyOnDemandRate' - The hourly public On-Demand rate for the instance type.+--+-- 'instanceType', 'eC2ResourceDetails_instanceType' - The type of Amazon Web Services instance.+--+-- 'memory', 'eC2ResourceDetails_memory' - The memory capacity of the Amazon Web Services instance.+--+-- 'networkPerformance', 'eC2ResourceDetails_networkPerformance' - The network performance capacity of the Amazon Web Services instance.+--+-- 'platform', 'eC2ResourceDetails_platform' - The platform of the Amazon Web Services instance. The platform is the+-- specific combination of operating system, license model, and software on+-- an instance.+--+-- 'region', 'eC2ResourceDetails_region' - The Amazon Web Services Region of the instance.+--+-- 'sku', 'eC2ResourceDetails_sku' - The SKU of the product.+--+-- 'storage', 'eC2ResourceDetails_storage' - The disk storage of the Amazon Web Services instance. This doesn\'t+-- include EBS storage.+--+-- 'vcpu', 'eC2ResourceDetails_vcpu' - The number of VCPU cores in the Amazon Web Services instance type.+newEC2ResourceDetails ::+  EC2ResourceDetails+newEC2ResourceDetails =+  EC2ResourceDetails'+    { hourlyOnDemandRate =+        Prelude.Nothing,+      instanceType = Prelude.Nothing,+      memory = Prelude.Nothing,+      networkPerformance = Prelude.Nothing,+      platform = Prelude.Nothing,+      region = Prelude.Nothing,+      sku = Prelude.Nothing,+      storage = Prelude.Nothing,+      vcpu = Prelude.Nothing+    }++-- | The hourly public On-Demand rate for the instance type.+eC2ResourceDetails_hourlyOnDemandRate :: Lens.Lens' EC2ResourceDetails (Prelude.Maybe Prelude.Text)+eC2ResourceDetails_hourlyOnDemandRate = Lens.lens (\EC2ResourceDetails' {hourlyOnDemandRate} -> hourlyOnDemandRate) (\s@EC2ResourceDetails' {} a -> s {hourlyOnDemandRate = a} :: EC2ResourceDetails)++-- | The type of Amazon Web Services instance.+eC2ResourceDetails_instanceType :: Lens.Lens' EC2ResourceDetails (Prelude.Maybe Prelude.Text)+eC2ResourceDetails_instanceType = Lens.lens (\EC2ResourceDetails' {instanceType} -> instanceType) (\s@EC2ResourceDetails' {} a -> s {instanceType = a} :: EC2ResourceDetails)++-- | The memory capacity of the Amazon Web Services instance.+eC2ResourceDetails_memory :: Lens.Lens' EC2ResourceDetails (Prelude.Maybe Prelude.Text)+eC2ResourceDetails_memory = Lens.lens (\EC2ResourceDetails' {memory} -> memory) (\s@EC2ResourceDetails' {} a -> s {memory = a} :: EC2ResourceDetails)++-- | The network performance capacity of the Amazon Web Services instance.+eC2ResourceDetails_networkPerformance :: Lens.Lens' EC2ResourceDetails (Prelude.Maybe Prelude.Text)+eC2ResourceDetails_networkPerformance = Lens.lens (\EC2ResourceDetails' {networkPerformance} -> networkPerformance) (\s@EC2ResourceDetails' {} a -> s {networkPerformance = a} :: EC2ResourceDetails)++-- | The platform of the Amazon Web Services instance. The platform is the+-- specific combination of operating system, license model, and software on+-- an instance.+eC2ResourceDetails_platform :: Lens.Lens' EC2ResourceDetails (Prelude.Maybe Prelude.Text)+eC2ResourceDetails_platform = Lens.lens (\EC2ResourceDetails' {platform} -> platform) (\s@EC2ResourceDetails' {} a -> s {platform = a} :: EC2ResourceDetails)++-- | The Amazon Web Services Region of the instance.+eC2ResourceDetails_region :: Lens.Lens' EC2ResourceDetails (Prelude.Maybe Prelude.Text)+eC2ResourceDetails_region = Lens.lens (\EC2ResourceDetails' {region} -> region) (\s@EC2ResourceDetails' {} a -> s {region = a} :: EC2ResourceDetails)++-- | The SKU of the product.+eC2ResourceDetails_sku :: Lens.Lens' EC2ResourceDetails (Prelude.Maybe Prelude.Text)+eC2ResourceDetails_sku = Lens.lens (\EC2ResourceDetails' {sku} -> sku) (\s@EC2ResourceDetails' {} a -> s {sku = a} :: EC2ResourceDetails)++-- | The disk storage of the Amazon Web Services instance. This doesn\'t+-- include EBS storage.+eC2ResourceDetails_storage :: Lens.Lens' EC2ResourceDetails (Prelude.Maybe Prelude.Text)+eC2ResourceDetails_storage = Lens.lens (\EC2ResourceDetails' {storage} -> storage) (\s@EC2ResourceDetails' {} a -> s {storage = a} :: EC2ResourceDetails)++-- | The number of VCPU cores in the Amazon Web Services instance type.+eC2ResourceDetails_vcpu :: Lens.Lens' EC2ResourceDetails (Prelude.Maybe Prelude.Text)+eC2ResourceDetails_vcpu = Lens.lens (\EC2ResourceDetails' {vcpu} -> vcpu) (\s@EC2ResourceDetails' {} a -> s {vcpu = a} :: EC2ResourceDetails)++instance Data.FromJSON EC2ResourceDetails where+  parseJSON =+    Data.withObject+      "EC2ResourceDetails"+      ( \x ->+          EC2ResourceDetails'+            Prelude.<$> (x Data..:? "HourlyOnDemandRate")+            Prelude.<*> (x Data..:? "InstanceType")+            Prelude.<*> (x Data..:? "Memory")+            Prelude.<*> (x Data..:? "NetworkPerformance")+            Prelude.<*> (x Data..:? "Platform")+            Prelude.<*> (x Data..:? "Region")+            Prelude.<*> (x Data..:? "Sku")+            Prelude.<*> (x Data..:? "Storage")+            Prelude.<*> (x Data..:? "Vcpu")+      )++instance Prelude.Hashable EC2ResourceDetails where+  hashWithSalt _salt EC2ResourceDetails' {..} =+    _salt+      `Prelude.hashWithSalt` hourlyOnDemandRate+      `Prelude.hashWithSalt` instanceType+      `Prelude.hashWithSalt` memory+      `Prelude.hashWithSalt` networkPerformance+      `Prelude.hashWithSalt` platform+      `Prelude.hashWithSalt` region+      `Prelude.hashWithSalt` sku+      `Prelude.hashWithSalt` storage+      `Prelude.hashWithSalt` vcpu++instance Prelude.NFData EC2ResourceDetails where+  rnf EC2ResourceDetails' {..} =+    Prelude.rnf hourlyOnDemandRate+      `Prelude.seq` Prelude.rnf instanceType+      `Prelude.seq` Prelude.rnf memory+      `Prelude.seq` Prelude.rnf networkPerformance+      `Prelude.seq` Prelude.rnf platform+      `Prelude.seq` Prelude.rnf region+      `Prelude.seq` Prelude.rnf sku+      `Prelude.seq` Prelude.rnf storage+      `Prelude.seq` Prelude.rnf vcpu
+ gen/Amazonka/CostExplorer/Types/EC2ResourceUtilization.hs view
@@ -0,0 +1,148 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.EC2ResourceUtilization+-- 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.CostExplorer.Types.EC2ResourceUtilization where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CostExplorer.Types.DiskResourceUtilization+import Amazonka.CostExplorer.Types.EBSResourceUtilization+import Amazonka.CostExplorer.Types.NetworkResourceUtilization+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Utilization metrics for the instance.+--+-- /See:/ 'newEC2ResourceUtilization' smart constructor.+data EC2ResourceUtilization = EC2ResourceUtilization'+  { -- | The field that contains a list of disk (local storage) metrics that are+    -- associated with the current instance.+    diskResourceUtilization :: Prelude.Maybe DiskResourceUtilization,+    -- | The EBS field that contains a list of EBS metrics that are associated+    -- with the current instance.+    eBSResourceUtilization :: Prelude.Maybe EBSResourceUtilization,+    -- | The maximum observed or expected CPU utilization of the instance.+    maxCpuUtilizationPercentage :: Prelude.Maybe Prelude.Text,+    -- | The maximum observed or expected memory utilization of the instance.+    maxMemoryUtilizationPercentage :: Prelude.Maybe Prelude.Text,+    -- | The maximum observed or expected storage utilization of the instance.+    -- This doesn\'t include EBS storage.+    maxStorageUtilizationPercentage :: Prelude.Maybe Prelude.Text,+    -- | The network field that contains a list of network metrics that are+    -- associated with the current instance.+    networkResourceUtilization :: Prelude.Maybe NetworkResourceUtilization+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'EC2ResourceUtilization' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'diskResourceUtilization', 'eC2ResourceUtilization_diskResourceUtilization' - The field that contains a list of disk (local storage) metrics that are+-- associated with the current instance.+--+-- 'eBSResourceUtilization', 'eC2ResourceUtilization_eBSResourceUtilization' - The EBS field that contains a list of EBS metrics that are associated+-- with the current instance.+--+-- 'maxCpuUtilizationPercentage', 'eC2ResourceUtilization_maxCpuUtilizationPercentage' - The maximum observed or expected CPU utilization of the instance.+--+-- 'maxMemoryUtilizationPercentage', 'eC2ResourceUtilization_maxMemoryUtilizationPercentage' - The maximum observed or expected memory utilization of the instance.+--+-- 'maxStorageUtilizationPercentage', 'eC2ResourceUtilization_maxStorageUtilizationPercentage' - The maximum observed or expected storage utilization of the instance.+-- This doesn\'t include EBS storage.+--+-- 'networkResourceUtilization', 'eC2ResourceUtilization_networkResourceUtilization' - The network field that contains a list of network metrics that are+-- associated with the current instance.+newEC2ResourceUtilization ::+  EC2ResourceUtilization+newEC2ResourceUtilization =+  EC2ResourceUtilization'+    { diskResourceUtilization =+        Prelude.Nothing,+      eBSResourceUtilization = Prelude.Nothing,+      maxCpuUtilizationPercentage = Prelude.Nothing,+      maxMemoryUtilizationPercentage = Prelude.Nothing,+      maxStorageUtilizationPercentage = Prelude.Nothing,+      networkResourceUtilization = Prelude.Nothing+    }++-- | The field that contains a list of disk (local storage) metrics that are+-- associated with the current instance.+eC2ResourceUtilization_diskResourceUtilization :: Lens.Lens' EC2ResourceUtilization (Prelude.Maybe DiskResourceUtilization)+eC2ResourceUtilization_diskResourceUtilization = Lens.lens (\EC2ResourceUtilization' {diskResourceUtilization} -> diskResourceUtilization) (\s@EC2ResourceUtilization' {} a -> s {diskResourceUtilization = a} :: EC2ResourceUtilization)++-- | The EBS field that contains a list of EBS metrics that are associated+-- with the current instance.+eC2ResourceUtilization_eBSResourceUtilization :: Lens.Lens' EC2ResourceUtilization (Prelude.Maybe EBSResourceUtilization)+eC2ResourceUtilization_eBSResourceUtilization = Lens.lens (\EC2ResourceUtilization' {eBSResourceUtilization} -> eBSResourceUtilization) (\s@EC2ResourceUtilization' {} a -> s {eBSResourceUtilization = a} :: EC2ResourceUtilization)++-- | The maximum observed or expected CPU utilization of the instance.+eC2ResourceUtilization_maxCpuUtilizationPercentage :: Lens.Lens' EC2ResourceUtilization (Prelude.Maybe Prelude.Text)+eC2ResourceUtilization_maxCpuUtilizationPercentage = Lens.lens (\EC2ResourceUtilization' {maxCpuUtilizationPercentage} -> maxCpuUtilizationPercentage) (\s@EC2ResourceUtilization' {} a -> s {maxCpuUtilizationPercentage = a} :: EC2ResourceUtilization)++-- | The maximum observed or expected memory utilization of the instance.+eC2ResourceUtilization_maxMemoryUtilizationPercentage :: Lens.Lens' EC2ResourceUtilization (Prelude.Maybe Prelude.Text)+eC2ResourceUtilization_maxMemoryUtilizationPercentage = Lens.lens (\EC2ResourceUtilization' {maxMemoryUtilizationPercentage} -> maxMemoryUtilizationPercentage) (\s@EC2ResourceUtilization' {} a -> s {maxMemoryUtilizationPercentage = a} :: EC2ResourceUtilization)++-- | The maximum observed or expected storage utilization of the instance.+-- This doesn\'t include EBS storage.+eC2ResourceUtilization_maxStorageUtilizationPercentage :: Lens.Lens' EC2ResourceUtilization (Prelude.Maybe Prelude.Text)+eC2ResourceUtilization_maxStorageUtilizationPercentage = Lens.lens (\EC2ResourceUtilization' {maxStorageUtilizationPercentage} -> maxStorageUtilizationPercentage) (\s@EC2ResourceUtilization' {} a -> s {maxStorageUtilizationPercentage = a} :: EC2ResourceUtilization)++-- | The network field that contains a list of network metrics that are+-- associated with the current instance.+eC2ResourceUtilization_networkResourceUtilization :: Lens.Lens' EC2ResourceUtilization (Prelude.Maybe NetworkResourceUtilization)+eC2ResourceUtilization_networkResourceUtilization = Lens.lens (\EC2ResourceUtilization' {networkResourceUtilization} -> networkResourceUtilization) (\s@EC2ResourceUtilization' {} a -> s {networkResourceUtilization = a} :: EC2ResourceUtilization)++instance Data.FromJSON EC2ResourceUtilization where+  parseJSON =+    Data.withObject+      "EC2ResourceUtilization"+      ( \x ->+          EC2ResourceUtilization'+            Prelude.<$> (x Data..:? "DiskResourceUtilization")+            Prelude.<*> (x Data..:? "EBSResourceUtilization")+            Prelude.<*> (x Data..:? "MaxCpuUtilizationPercentage")+            Prelude.<*> (x Data..:? "MaxMemoryUtilizationPercentage")+            Prelude.<*> (x Data..:? "MaxStorageUtilizationPercentage")+            Prelude.<*> (x Data..:? "NetworkResourceUtilization")+      )++instance Prelude.Hashable EC2ResourceUtilization where+  hashWithSalt _salt EC2ResourceUtilization' {..} =+    _salt+      `Prelude.hashWithSalt` diskResourceUtilization+      `Prelude.hashWithSalt` eBSResourceUtilization+      `Prelude.hashWithSalt` maxCpuUtilizationPercentage+      `Prelude.hashWithSalt` maxMemoryUtilizationPercentage+      `Prelude.hashWithSalt` maxStorageUtilizationPercentage+      `Prelude.hashWithSalt` networkResourceUtilization++instance Prelude.NFData EC2ResourceUtilization where+  rnf EC2ResourceUtilization' {..} =+    Prelude.rnf diskResourceUtilization+      `Prelude.seq` Prelude.rnf eBSResourceUtilization+      `Prelude.seq` Prelude.rnf maxCpuUtilizationPercentage+      `Prelude.seq` Prelude.rnf maxMemoryUtilizationPercentage+      `Prelude.seq` Prelude.rnf maxStorageUtilizationPercentage+      `Prelude.seq` Prelude.rnf networkResourceUtilization
+ gen/Amazonka/CostExplorer/Types/EC2Specification.hs view
@@ -0,0 +1,82 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.EC2Specification+-- 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.CostExplorer.Types.EC2Specification where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CostExplorer.Types.OfferingClass+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The Amazon EC2 hardware specifications that you want Amazon Web Services+-- to provide recommendations for.+--+-- /See:/ 'newEC2Specification' smart constructor.+data EC2Specification = EC2Specification'+  { -- | Indicates whether you want a recommendation for standard or convertible+    -- reservations.+    offeringClass :: Prelude.Maybe OfferingClass+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'EC2Specification' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'offeringClass', 'eC2Specification_offeringClass' - Indicates whether you want a recommendation for standard or convertible+-- reservations.+newEC2Specification ::+  EC2Specification+newEC2Specification =+  EC2Specification' {offeringClass = Prelude.Nothing}++-- | Indicates whether you want a recommendation for standard or convertible+-- reservations.+eC2Specification_offeringClass :: Lens.Lens' EC2Specification (Prelude.Maybe OfferingClass)+eC2Specification_offeringClass = Lens.lens (\EC2Specification' {offeringClass} -> offeringClass) (\s@EC2Specification' {} a -> s {offeringClass = a} :: EC2Specification)++instance Data.FromJSON EC2Specification where+  parseJSON =+    Data.withObject+      "EC2Specification"+      ( \x ->+          EC2Specification'+            Prelude.<$> (x Data..:? "OfferingClass")+      )++instance Prelude.Hashable EC2Specification where+  hashWithSalt _salt EC2Specification' {..} =+    _salt `Prelude.hashWithSalt` offeringClass++instance Prelude.NFData EC2Specification where+  rnf EC2Specification' {..} = Prelude.rnf offeringClass++instance Data.ToJSON EC2Specification where+  toJSON EC2Specification' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("OfferingClass" Data..=)+              Prelude.<$> offeringClass+          ]+      )
+ gen/Amazonka/CostExplorer/Types/ESInstanceDetails.hs view
@@ -0,0 +1,125 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.ESInstanceDetails+-- 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.CostExplorer.Types.ESInstanceDetails where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Details about the Amazon OpenSearch Service instances that Amazon Web+-- Services recommends that you purchase.+--+-- /See:/ 'newESInstanceDetails' smart constructor.+data ESInstanceDetails = ESInstanceDetails'+  { -- | Determines whether the recommendation is for a current-generation+    -- instance.+    currentGeneration :: Prelude.Maybe Prelude.Bool,+    -- | The class of instance that Amazon Web Services recommends.+    instanceClass :: Prelude.Maybe Prelude.Text,+    -- | The size of instance that Amazon Web Services recommends.+    instanceSize :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Web Services Region of the recommended reservation.+    region :: Prelude.Maybe Prelude.Text,+    -- | Determines whether the recommended reservation is size flexible.+    sizeFlexEligible :: Prelude.Maybe Prelude.Bool+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ESInstanceDetails' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'currentGeneration', 'eSInstanceDetails_currentGeneration' - Determines whether the recommendation is for a current-generation+-- instance.+--+-- 'instanceClass', 'eSInstanceDetails_instanceClass' - The class of instance that Amazon Web Services recommends.+--+-- 'instanceSize', 'eSInstanceDetails_instanceSize' - The size of instance that Amazon Web Services recommends.+--+-- 'region', 'eSInstanceDetails_region' - The Amazon Web Services Region of the recommended reservation.+--+-- 'sizeFlexEligible', 'eSInstanceDetails_sizeFlexEligible' - Determines whether the recommended reservation is size flexible.+newESInstanceDetails ::+  ESInstanceDetails+newESInstanceDetails =+  ESInstanceDetails'+    { currentGeneration =+        Prelude.Nothing,+      instanceClass = Prelude.Nothing,+      instanceSize = Prelude.Nothing,+      region = Prelude.Nothing,+      sizeFlexEligible = Prelude.Nothing+    }++-- | Determines whether the recommendation is for a current-generation+-- instance.+eSInstanceDetails_currentGeneration :: Lens.Lens' ESInstanceDetails (Prelude.Maybe Prelude.Bool)+eSInstanceDetails_currentGeneration = Lens.lens (\ESInstanceDetails' {currentGeneration} -> currentGeneration) (\s@ESInstanceDetails' {} a -> s {currentGeneration = a} :: ESInstanceDetails)++-- | The class of instance that Amazon Web Services recommends.+eSInstanceDetails_instanceClass :: Lens.Lens' ESInstanceDetails (Prelude.Maybe Prelude.Text)+eSInstanceDetails_instanceClass = Lens.lens (\ESInstanceDetails' {instanceClass} -> instanceClass) (\s@ESInstanceDetails' {} a -> s {instanceClass = a} :: ESInstanceDetails)++-- | The size of instance that Amazon Web Services recommends.+eSInstanceDetails_instanceSize :: Lens.Lens' ESInstanceDetails (Prelude.Maybe Prelude.Text)+eSInstanceDetails_instanceSize = Lens.lens (\ESInstanceDetails' {instanceSize} -> instanceSize) (\s@ESInstanceDetails' {} a -> s {instanceSize = a} :: ESInstanceDetails)++-- | The Amazon Web Services Region of the recommended reservation.+eSInstanceDetails_region :: Lens.Lens' ESInstanceDetails (Prelude.Maybe Prelude.Text)+eSInstanceDetails_region = Lens.lens (\ESInstanceDetails' {region} -> region) (\s@ESInstanceDetails' {} a -> s {region = a} :: ESInstanceDetails)++-- | Determines whether the recommended reservation is size flexible.+eSInstanceDetails_sizeFlexEligible :: Lens.Lens' ESInstanceDetails (Prelude.Maybe Prelude.Bool)+eSInstanceDetails_sizeFlexEligible = Lens.lens (\ESInstanceDetails' {sizeFlexEligible} -> sizeFlexEligible) (\s@ESInstanceDetails' {} a -> s {sizeFlexEligible = a} :: ESInstanceDetails)++instance Data.FromJSON ESInstanceDetails where+  parseJSON =+    Data.withObject+      "ESInstanceDetails"+      ( \x ->+          ESInstanceDetails'+            Prelude.<$> (x Data..:? "CurrentGeneration")+            Prelude.<*> (x Data..:? "InstanceClass")+            Prelude.<*> (x Data..:? "InstanceSize")+            Prelude.<*> (x Data..:? "Region")+            Prelude.<*> (x Data..:? "SizeFlexEligible")+      )++instance Prelude.Hashable ESInstanceDetails where+  hashWithSalt _salt ESInstanceDetails' {..} =+    _salt+      `Prelude.hashWithSalt` currentGeneration+      `Prelude.hashWithSalt` instanceClass+      `Prelude.hashWithSalt` instanceSize+      `Prelude.hashWithSalt` region+      `Prelude.hashWithSalt` sizeFlexEligible++instance Prelude.NFData ESInstanceDetails where+  rnf ESInstanceDetails' {..} =+    Prelude.rnf currentGeneration+      `Prelude.seq` Prelude.rnf instanceClass+      `Prelude.seq` Prelude.rnf instanceSize+      `Prelude.seq` Prelude.rnf region+      `Prelude.seq` Prelude.rnf sizeFlexEligible
+ gen/Amazonka/CostExplorer/Types/ElastiCacheInstanceDetails.hs view
@@ -0,0 +1,137 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.ElastiCacheInstanceDetails+-- 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.CostExplorer.Types.ElastiCacheInstanceDetails where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Details about the Amazon ElastiCache instances that Amazon Web Services+-- recommends that you purchase.+--+-- /See:/ 'newElastiCacheInstanceDetails' smart constructor.+data ElastiCacheInstanceDetails = ElastiCacheInstanceDetails'+  { -- | Determines whether the recommendation is for a current generation+    -- instance.+    currentGeneration :: Prelude.Maybe Prelude.Bool,+    -- | The instance family of the recommended reservation.+    family :: Prelude.Maybe Prelude.Text,+    -- | The type of node that Amazon Web Services recommends.+    nodeType :: Prelude.Maybe Prelude.Text,+    -- | The description of the recommended reservation.+    productDescription :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Web Services Region of the recommended reservation.+    region :: Prelude.Maybe Prelude.Text,+    -- | Determines whether the recommended reservation is size flexible.+    sizeFlexEligible :: Prelude.Maybe Prelude.Bool+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ElastiCacheInstanceDetails' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'currentGeneration', 'elastiCacheInstanceDetails_currentGeneration' - Determines whether the recommendation is for a current generation+-- instance.+--+-- 'family', 'elastiCacheInstanceDetails_family' - The instance family of the recommended reservation.+--+-- 'nodeType', 'elastiCacheInstanceDetails_nodeType' - The type of node that Amazon Web Services recommends.+--+-- 'productDescription', 'elastiCacheInstanceDetails_productDescription' - The description of the recommended reservation.+--+-- 'region', 'elastiCacheInstanceDetails_region' - The Amazon Web Services Region of the recommended reservation.+--+-- 'sizeFlexEligible', 'elastiCacheInstanceDetails_sizeFlexEligible' - Determines whether the recommended reservation is size flexible.+newElastiCacheInstanceDetails ::+  ElastiCacheInstanceDetails+newElastiCacheInstanceDetails =+  ElastiCacheInstanceDetails'+    { currentGeneration =+        Prelude.Nothing,+      family = Prelude.Nothing,+      nodeType = Prelude.Nothing,+      productDescription = Prelude.Nothing,+      region = Prelude.Nothing,+      sizeFlexEligible = Prelude.Nothing+    }++-- | Determines whether the recommendation is for a current generation+-- instance.+elastiCacheInstanceDetails_currentGeneration :: Lens.Lens' ElastiCacheInstanceDetails (Prelude.Maybe Prelude.Bool)+elastiCacheInstanceDetails_currentGeneration = Lens.lens (\ElastiCacheInstanceDetails' {currentGeneration} -> currentGeneration) (\s@ElastiCacheInstanceDetails' {} a -> s {currentGeneration = a} :: ElastiCacheInstanceDetails)++-- | The instance family of the recommended reservation.+elastiCacheInstanceDetails_family :: Lens.Lens' ElastiCacheInstanceDetails (Prelude.Maybe Prelude.Text)+elastiCacheInstanceDetails_family = Lens.lens (\ElastiCacheInstanceDetails' {family} -> family) (\s@ElastiCacheInstanceDetails' {} a -> s {family = a} :: ElastiCacheInstanceDetails)++-- | The type of node that Amazon Web Services recommends.+elastiCacheInstanceDetails_nodeType :: Lens.Lens' ElastiCacheInstanceDetails (Prelude.Maybe Prelude.Text)+elastiCacheInstanceDetails_nodeType = Lens.lens (\ElastiCacheInstanceDetails' {nodeType} -> nodeType) (\s@ElastiCacheInstanceDetails' {} a -> s {nodeType = a} :: ElastiCacheInstanceDetails)++-- | The description of the recommended reservation.+elastiCacheInstanceDetails_productDescription :: Lens.Lens' ElastiCacheInstanceDetails (Prelude.Maybe Prelude.Text)+elastiCacheInstanceDetails_productDescription = Lens.lens (\ElastiCacheInstanceDetails' {productDescription} -> productDescription) (\s@ElastiCacheInstanceDetails' {} a -> s {productDescription = a} :: ElastiCacheInstanceDetails)++-- | The Amazon Web Services Region of the recommended reservation.+elastiCacheInstanceDetails_region :: Lens.Lens' ElastiCacheInstanceDetails (Prelude.Maybe Prelude.Text)+elastiCacheInstanceDetails_region = Lens.lens (\ElastiCacheInstanceDetails' {region} -> region) (\s@ElastiCacheInstanceDetails' {} a -> s {region = a} :: ElastiCacheInstanceDetails)++-- | Determines whether the recommended reservation is size flexible.+elastiCacheInstanceDetails_sizeFlexEligible :: Lens.Lens' ElastiCacheInstanceDetails (Prelude.Maybe Prelude.Bool)+elastiCacheInstanceDetails_sizeFlexEligible = Lens.lens (\ElastiCacheInstanceDetails' {sizeFlexEligible} -> sizeFlexEligible) (\s@ElastiCacheInstanceDetails' {} a -> s {sizeFlexEligible = a} :: ElastiCacheInstanceDetails)++instance Data.FromJSON ElastiCacheInstanceDetails where+  parseJSON =+    Data.withObject+      "ElastiCacheInstanceDetails"+      ( \x ->+          ElastiCacheInstanceDetails'+            Prelude.<$> (x Data..:? "CurrentGeneration")+            Prelude.<*> (x Data..:? "Family")+            Prelude.<*> (x Data..:? "NodeType")+            Prelude.<*> (x Data..:? "ProductDescription")+            Prelude.<*> (x Data..:? "Region")+            Prelude.<*> (x Data..:? "SizeFlexEligible")+      )++instance Prelude.Hashable ElastiCacheInstanceDetails where+  hashWithSalt _salt ElastiCacheInstanceDetails' {..} =+    _salt+      `Prelude.hashWithSalt` currentGeneration+      `Prelude.hashWithSalt` family+      `Prelude.hashWithSalt` nodeType+      `Prelude.hashWithSalt` productDescription+      `Prelude.hashWithSalt` region+      `Prelude.hashWithSalt` sizeFlexEligible++instance Prelude.NFData ElastiCacheInstanceDetails where+  rnf ElastiCacheInstanceDetails' {..} =+    Prelude.rnf currentGeneration+      `Prelude.seq` Prelude.rnf family+      `Prelude.seq` Prelude.rnf nodeType+      `Prelude.seq` Prelude.rnf productDescription+      `Prelude.seq` Prelude.rnf region+      `Prelude.seq` Prelude.rnf sizeFlexEligible
+ gen/Amazonka/CostExplorer/Types/Expression.hs view
@@ -0,0 +1,227 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.Expression+-- 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.CostExplorer.Types.Expression where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CostExplorer.Types.CostCategoryValues+import Amazonka.CostExplorer.Types.DimensionValues+import Amazonka.CostExplorer.Types.TagValues+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Use @Expression@ to filter in various Cost Explorer APIs.+--+-- Not all @Expression@ types are supported in each API. Refer to the+-- documentation for each specific API to see what is supported.+--+-- There are two patterns:+--+-- -   Simple dimension values.+--+--     -   There are three types of simple dimension values:+--         @CostCategories@, @Tags@, and @Dimensions@.+--+--         -   Specify the @CostCategories@ field to define a filter that+--             acts on Cost Categories.+--+--         -   Specify the @Tags@ field to define a filter that acts on+--             Cost Allocation Tags.+--+--         -   Specify the @Dimensions@ field to define a filter that acts+--             on the+--             <https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_DimensionValues.html DimensionValues>+--             .+--+--     -   For each filter type, you can set the dimension name and values+--         for the filters that you plan to use.+--+--         -   For example, you can filter for+--             @REGION==us-east-1 OR REGION==us-west-1@. For+--             @GetRightsizingRecommendation@, the Region is a full name+--             (for example, @REGION==US East (N. Virginia)@.+--+--         -   The corresponding @Expression@ for this example is as+--             follows:+--             @{ \"Dimensions\": { \"Key\": \"REGION\", \"Values\": [ \"us-east-1\", “us-west-1” ] } }@+--+--         -   As shown in the previous example, lists of dimension values+--             are combined with @OR@ when applying the filter.+--+--     -   You can also set different match options to further control how+--         the filter behaves. Not all APIs support match options. Refer to+--         the documentation for each specific API to see what is+--         supported.+--+--         -   For example, you can filter for linked account names that+--             start with “a”.+--+--         -   The corresponding @Expression@ for this example is as+--             follows:+--             @{ \"Dimensions\": { \"Key\": \"LINKED_ACCOUNT_NAME\", \"MatchOptions\": [ \"STARTS_WITH\" ], \"Values\": [ \"a\" ] } }@+--+-- -   Compound @Expression@ types with logical operations.+--+--     -   You can use multiple @Expression@ types and the logical+--         operators @AND\/OR\/NOT@ to create a list of one or more+--         @Expression@ objects. By doing this, you can filter by more+--         advanced options.+--+--     -   For example, you can filter by+--         @((REGION == us-east-1 OR REGION == us-west-1) OR (TAG.Type == Type1)) AND (USAGE_TYPE != DataTransfer)@.+--+--     -   The corresponding @Expression@ for this example is as follows:+--         @{ \"And\": [ {\"Or\": [ {\"Dimensions\": { \"Key\": \"REGION\", \"Values\": [ \"us-east-1\", \"us-west-1\" ] }}, {\"Tags\": { \"Key\": \"TagName\", \"Values\": [\"Value1\"] } } ]}, {\"Not\": {\"Dimensions\": { \"Key\": \"USAGE_TYPE\", \"Values\": [\"DataTransfer\"] }}} ] } @+--+--     Because each @Expression@ can have only one operator, the service+--     returns an error if more than one is specified. The following+--     example shows an @Expression@ object that creates an error:+--     @ { \"And\": [ ... ], \"Dimensions\": { \"Key\": \"USAGE_TYPE\", \"Values\": [ \"DataTransfer\" ] } } @+--+--     The following is an example of the corresponding error message:+--     @\"Expression has more than one roots. Only one root operator is allowed for each expression: And, Or, Not, Dimensions, Tags, CostCategories\"@+--+-- For the @GetRightsizingRecommendation@ action, a combination of OR and+-- NOT isn\'t supported. OR isn\'t supported between different dimensions,+-- or dimensions and tags. NOT operators aren\'t supported. Dimensions are+-- also limited to @LINKED_ACCOUNT@, @REGION@, or @RIGHTSIZING_TYPE@.+--+-- For the @GetReservationPurchaseRecommendation@ action, only NOT is+-- supported. AND and OR aren\'t supported. Dimensions are limited to+-- @LINKED_ACCOUNT@.+--+-- /See:/ 'newExpression' smart constructor.+data Expression = Expression'+  { -- | Return results that match both @Dimension@ objects.+    and :: Prelude.Maybe [Expression],+    -- | The filter that\'s based on @CostCategory@ values.+    costCategories :: Prelude.Maybe CostCategoryValues,+    -- | The specific @Dimension@ to use for @Expression@.+    dimensions :: Prelude.Maybe DimensionValues,+    -- | Return results that don\'t match a @Dimension@ object.+    not :: Prelude.Maybe Expression,+    -- | Return results that match either @Dimension@ object.+    or :: Prelude.Maybe [Expression],+    -- | The specific @Tag@ to use for @Expression@.+    tags :: Prelude.Maybe TagValues+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Expression' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'and', 'expression_and' - Return results that match both @Dimension@ objects.+--+-- 'costCategories', 'expression_costCategories' - The filter that\'s based on @CostCategory@ values.+--+-- 'dimensions', 'expression_dimensions' - The specific @Dimension@ to use for @Expression@.+--+-- 'not', 'expression_not' - Return results that don\'t match a @Dimension@ object.+--+-- 'or', 'expression_or' - Return results that match either @Dimension@ object.+--+-- 'tags', 'expression_tags' - The specific @Tag@ to use for @Expression@.+newExpression ::+  Expression+newExpression =+  Expression'+    { and = Prelude.Nothing,+      costCategories = Prelude.Nothing,+      dimensions = Prelude.Nothing,+      not = Prelude.Nothing,+      or = Prelude.Nothing,+      tags = Prelude.Nothing+    }++-- | Return results that match both @Dimension@ objects.+expression_and :: Lens.Lens' Expression (Prelude.Maybe [Expression])+expression_and = Lens.lens (\Expression' {and} -> and) (\s@Expression' {} a -> s {and = a} :: Expression) Prelude.. Lens.mapping Lens.coerced++-- | The filter that\'s based on @CostCategory@ values.+expression_costCategories :: Lens.Lens' Expression (Prelude.Maybe CostCategoryValues)+expression_costCategories = Lens.lens (\Expression' {costCategories} -> costCategories) (\s@Expression' {} a -> s {costCategories = a} :: Expression)++-- | The specific @Dimension@ to use for @Expression@.+expression_dimensions :: Lens.Lens' Expression (Prelude.Maybe DimensionValues)+expression_dimensions = Lens.lens (\Expression' {dimensions} -> dimensions) (\s@Expression' {} a -> s {dimensions = a} :: Expression)++-- | Return results that don\'t match a @Dimension@ object.+expression_not :: Lens.Lens' Expression (Prelude.Maybe Expression)+expression_not = Lens.lens (\Expression' {not} -> not) (\s@Expression' {} a -> s {not = a} :: Expression)++-- | Return results that match either @Dimension@ object.+expression_or :: Lens.Lens' Expression (Prelude.Maybe [Expression])+expression_or = Lens.lens (\Expression' {or} -> or) (\s@Expression' {} a -> s {or = a} :: Expression) Prelude.. Lens.mapping Lens.coerced++-- | The specific @Tag@ to use for @Expression@.+expression_tags :: Lens.Lens' Expression (Prelude.Maybe TagValues)+expression_tags = Lens.lens (\Expression' {tags} -> tags) (\s@Expression' {} a -> s {tags = a} :: Expression)++instance Data.FromJSON Expression where+  parseJSON =+    Data.withObject+      "Expression"+      ( \x ->+          Expression'+            Prelude.<$> (x Data..:? "And" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "CostCategories")+            Prelude.<*> (x Data..:? "Dimensions")+            Prelude.<*> (x Data..:? "Not")+            Prelude.<*> (x Data..:? "Or" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "Tags")+      )++instance Prelude.Hashable Expression where+  hashWithSalt _salt Expression' {..} =+    _salt+      `Prelude.hashWithSalt` and+      `Prelude.hashWithSalt` costCategories+      `Prelude.hashWithSalt` dimensions+      `Prelude.hashWithSalt` not+      `Prelude.hashWithSalt` or+      `Prelude.hashWithSalt` tags++instance Prelude.NFData Expression where+  rnf Expression' {..} =+    Prelude.rnf and+      `Prelude.seq` Prelude.rnf costCategories+      `Prelude.seq` Prelude.rnf dimensions+      `Prelude.seq` Prelude.rnf not+      `Prelude.seq` Prelude.rnf or+      `Prelude.seq` Prelude.rnf tags++instance Data.ToJSON Expression where+  toJSON Expression' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("And" Data..=) Prelude.<$> and,+            ("CostCategories" Data..=)+              Prelude.<$> costCategories,+            ("Dimensions" Data..=) Prelude.<$> dimensions,+            ("Not" Data..=) Prelude.<$> not,+            ("Or" Data..=) Prelude.<$> or,+            ("Tags" Data..=) Prelude.<$> tags+          ]+      )
+ gen/Amazonka/CostExplorer/Types/FindingReasonCode.hs view
@@ -0,0 +1,141 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.FindingReasonCode+-- 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.CostExplorer.Types.FindingReasonCode+  ( FindingReasonCode+      ( ..,+        FindingReasonCode_CPU_OVER_PROVISIONED,+        FindingReasonCode_CPU_UNDER_PROVISIONED,+        FindingReasonCode_DISK_IOPS_OVER_PROVISIONED,+        FindingReasonCode_DISK_IOPS_UNDER_PROVISIONED,+        FindingReasonCode_DISK_THROUGHPUT_OVER_PROVISIONED,+        FindingReasonCode_DISK_THROUGHPUT_UNDER_PROVISIONED,+        FindingReasonCode_EBS_IOPS_OVER_PROVISIONED,+        FindingReasonCode_EBS_IOPS_UNDER_PROVISIONED,+        FindingReasonCode_EBS_THROUGHPUT_OVER_PROVISIONED,+        FindingReasonCode_EBS_THROUGHPUT_UNDER_PROVISIONED,+        FindingReasonCode_MEMORY_OVER_PROVISIONED,+        FindingReasonCode_MEMORY_UNDER_PROVISIONED,+        FindingReasonCode_NETWORK_BANDWIDTH_OVER_PROVISIONED,+        FindingReasonCode_NETWORK_BANDWIDTH_UNDER_PROVISIONED,+        FindingReasonCode_NETWORK_PPS_OVER_PROVISIONED,+        FindingReasonCode_NETWORK_PPS_UNDER_PROVISIONED+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype FindingReasonCode = FindingReasonCode'+  { fromFindingReasonCode ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern FindingReasonCode_CPU_OVER_PROVISIONED :: FindingReasonCode+pattern FindingReasonCode_CPU_OVER_PROVISIONED = FindingReasonCode' "CPU_OVER_PROVISIONED"++pattern FindingReasonCode_CPU_UNDER_PROVISIONED :: FindingReasonCode+pattern FindingReasonCode_CPU_UNDER_PROVISIONED = FindingReasonCode' "CPU_UNDER_PROVISIONED"++pattern FindingReasonCode_DISK_IOPS_OVER_PROVISIONED :: FindingReasonCode+pattern FindingReasonCode_DISK_IOPS_OVER_PROVISIONED = FindingReasonCode' "DISK_IOPS_OVER_PROVISIONED"++pattern FindingReasonCode_DISK_IOPS_UNDER_PROVISIONED :: FindingReasonCode+pattern FindingReasonCode_DISK_IOPS_UNDER_PROVISIONED = FindingReasonCode' "DISK_IOPS_UNDER_PROVISIONED"++pattern FindingReasonCode_DISK_THROUGHPUT_OVER_PROVISIONED :: FindingReasonCode+pattern FindingReasonCode_DISK_THROUGHPUT_OVER_PROVISIONED = FindingReasonCode' "DISK_THROUGHPUT_OVER_PROVISIONED"++pattern FindingReasonCode_DISK_THROUGHPUT_UNDER_PROVISIONED :: FindingReasonCode+pattern FindingReasonCode_DISK_THROUGHPUT_UNDER_PROVISIONED = FindingReasonCode' "DISK_THROUGHPUT_UNDER_PROVISIONED"++pattern FindingReasonCode_EBS_IOPS_OVER_PROVISIONED :: FindingReasonCode+pattern FindingReasonCode_EBS_IOPS_OVER_PROVISIONED = FindingReasonCode' "EBS_IOPS_OVER_PROVISIONED"++pattern FindingReasonCode_EBS_IOPS_UNDER_PROVISIONED :: FindingReasonCode+pattern FindingReasonCode_EBS_IOPS_UNDER_PROVISIONED = FindingReasonCode' "EBS_IOPS_UNDER_PROVISIONED"++pattern FindingReasonCode_EBS_THROUGHPUT_OVER_PROVISIONED :: FindingReasonCode+pattern FindingReasonCode_EBS_THROUGHPUT_OVER_PROVISIONED = FindingReasonCode' "EBS_THROUGHPUT_OVER_PROVISIONED"++pattern FindingReasonCode_EBS_THROUGHPUT_UNDER_PROVISIONED :: FindingReasonCode+pattern FindingReasonCode_EBS_THROUGHPUT_UNDER_PROVISIONED = FindingReasonCode' "EBS_THROUGHPUT_UNDER_PROVISIONED"++pattern FindingReasonCode_MEMORY_OVER_PROVISIONED :: FindingReasonCode+pattern FindingReasonCode_MEMORY_OVER_PROVISIONED = FindingReasonCode' "MEMORY_OVER_PROVISIONED"++pattern FindingReasonCode_MEMORY_UNDER_PROVISIONED :: FindingReasonCode+pattern FindingReasonCode_MEMORY_UNDER_PROVISIONED = FindingReasonCode' "MEMORY_UNDER_PROVISIONED"++pattern FindingReasonCode_NETWORK_BANDWIDTH_OVER_PROVISIONED :: FindingReasonCode+pattern FindingReasonCode_NETWORK_BANDWIDTH_OVER_PROVISIONED = FindingReasonCode' "NETWORK_BANDWIDTH_OVER_PROVISIONED"++pattern FindingReasonCode_NETWORK_BANDWIDTH_UNDER_PROVISIONED :: FindingReasonCode+pattern FindingReasonCode_NETWORK_BANDWIDTH_UNDER_PROVISIONED = FindingReasonCode' "NETWORK_BANDWIDTH_UNDER_PROVISIONED"++pattern FindingReasonCode_NETWORK_PPS_OVER_PROVISIONED :: FindingReasonCode+pattern FindingReasonCode_NETWORK_PPS_OVER_PROVISIONED = FindingReasonCode' "NETWORK_PPS_OVER_PROVISIONED"++pattern FindingReasonCode_NETWORK_PPS_UNDER_PROVISIONED :: FindingReasonCode+pattern FindingReasonCode_NETWORK_PPS_UNDER_PROVISIONED = FindingReasonCode' "NETWORK_PPS_UNDER_PROVISIONED"++{-# COMPLETE+  FindingReasonCode_CPU_OVER_PROVISIONED,+  FindingReasonCode_CPU_UNDER_PROVISIONED,+  FindingReasonCode_DISK_IOPS_OVER_PROVISIONED,+  FindingReasonCode_DISK_IOPS_UNDER_PROVISIONED,+  FindingReasonCode_DISK_THROUGHPUT_OVER_PROVISIONED,+  FindingReasonCode_DISK_THROUGHPUT_UNDER_PROVISIONED,+  FindingReasonCode_EBS_IOPS_OVER_PROVISIONED,+  FindingReasonCode_EBS_IOPS_UNDER_PROVISIONED,+  FindingReasonCode_EBS_THROUGHPUT_OVER_PROVISIONED,+  FindingReasonCode_EBS_THROUGHPUT_UNDER_PROVISIONED,+  FindingReasonCode_MEMORY_OVER_PROVISIONED,+  FindingReasonCode_MEMORY_UNDER_PROVISIONED,+  FindingReasonCode_NETWORK_BANDWIDTH_OVER_PROVISIONED,+  FindingReasonCode_NETWORK_BANDWIDTH_UNDER_PROVISIONED,+  FindingReasonCode_NETWORK_PPS_OVER_PROVISIONED,+  FindingReasonCode_NETWORK_PPS_UNDER_PROVISIONED,+  FindingReasonCode'+  #-}
+ gen/Amazonka/CostExplorer/Types/ForecastResult.hs view
@@ -0,0 +1,109 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.ForecastResult+-- 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.CostExplorer.Types.ForecastResult where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CostExplorer.Types.DateInterval+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The forecast that\'s created for your query.+--+-- /See:/ 'newForecastResult' smart constructor.+data ForecastResult = ForecastResult'+  { -- | The mean value of the forecast.+    meanValue :: Prelude.Maybe Prelude.Text,+    -- | The lower limit for the prediction interval.+    predictionIntervalLowerBound :: Prelude.Maybe Prelude.Text,+    -- | The upper limit for the prediction interval.+    predictionIntervalUpperBound :: Prelude.Maybe Prelude.Text,+    -- | The period of time that the forecast covers.+    timePeriod :: Prelude.Maybe DateInterval+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ForecastResult' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'meanValue', 'forecastResult_meanValue' - The mean value of the forecast.+--+-- 'predictionIntervalLowerBound', 'forecastResult_predictionIntervalLowerBound' - The lower limit for the prediction interval.+--+-- 'predictionIntervalUpperBound', 'forecastResult_predictionIntervalUpperBound' - The upper limit for the prediction interval.+--+-- 'timePeriod', 'forecastResult_timePeriod' - The period of time that the forecast covers.+newForecastResult ::+  ForecastResult+newForecastResult =+  ForecastResult'+    { meanValue = Prelude.Nothing,+      predictionIntervalLowerBound = Prelude.Nothing,+      predictionIntervalUpperBound = Prelude.Nothing,+      timePeriod = Prelude.Nothing+    }++-- | The mean value of the forecast.+forecastResult_meanValue :: Lens.Lens' ForecastResult (Prelude.Maybe Prelude.Text)+forecastResult_meanValue = Lens.lens (\ForecastResult' {meanValue} -> meanValue) (\s@ForecastResult' {} a -> s {meanValue = a} :: ForecastResult)++-- | The lower limit for the prediction interval.+forecastResult_predictionIntervalLowerBound :: Lens.Lens' ForecastResult (Prelude.Maybe Prelude.Text)+forecastResult_predictionIntervalLowerBound = Lens.lens (\ForecastResult' {predictionIntervalLowerBound} -> predictionIntervalLowerBound) (\s@ForecastResult' {} a -> s {predictionIntervalLowerBound = a} :: ForecastResult)++-- | The upper limit for the prediction interval.+forecastResult_predictionIntervalUpperBound :: Lens.Lens' ForecastResult (Prelude.Maybe Prelude.Text)+forecastResult_predictionIntervalUpperBound = Lens.lens (\ForecastResult' {predictionIntervalUpperBound} -> predictionIntervalUpperBound) (\s@ForecastResult' {} a -> s {predictionIntervalUpperBound = a} :: ForecastResult)++-- | The period of time that the forecast covers.+forecastResult_timePeriod :: Lens.Lens' ForecastResult (Prelude.Maybe DateInterval)+forecastResult_timePeriod = Lens.lens (\ForecastResult' {timePeriod} -> timePeriod) (\s@ForecastResult' {} a -> s {timePeriod = a} :: ForecastResult)++instance Data.FromJSON ForecastResult where+  parseJSON =+    Data.withObject+      "ForecastResult"+      ( \x ->+          ForecastResult'+            Prelude.<$> (x Data..:? "MeanValue")+            Prelude.<*> (x Data..:? "PredictionIntervalLowerBound")+            Prelude.<*> (x Data..:? "PredictionIntervalUpperBound")+            Prelude.<*> (x Data..:? "TimePeriod")+      )++instance Prelude.Hashable ForecastResult where+  hashWithSalt _salt ForecastResult' {..} =+    _salt+      `Prelude.hashWithSalt` meanValue+      `Prelude.hashWithSalt` predictionIntervalLowerBound+      `Prelude.hashWithSalt` predictionIntervalUpperBound+      `Prelude.hashWithSalt` timePeriod++instance Prelude.NFData ForecastResult where+  rnf ForecastResult' {..} =+    Prelude.rnf meanValue+      `Prelude.seq` Prelude.rnf predictionIntervalLowerBound+      `Prelude.seq` Prelude.rnf predictionIntervalUpperBound+      `Prelude.seq` Prelude.rnf timePeriod
+ gen/Amazonka/CostExplorer/Types/GenerationStatus.hs view
@@ -0,0 +1,76 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.GenerationStatus+-- 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.CostExplorer.Types.GenerationStatus+  ( GenerationStatus+      ( ..,+        GenerationStatus_FAILED,+        GenerationStatus_PROCESSING,+        GenerationStatus_SUCCEEDED+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype GenerationStatus = GenerationStatus'+  { fromGenerationStatus ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern GenerationStatus_FAILED :: GenerationStatus+pattern GenerationStatus_FAILED = GenerationStatus' "FAILED"++pattern GenerationStatus_PROCESSING :: GenerationStatus+pattern GenerationStatus_PROCESSING = GenerationStatus' "PROCESSING"++pattern GenerationStatus_SUCCEEDED :: GenerationStatus+pattern GenerationStatus_SUCCEEDED = GenerationStatus' "SUCCEEDED"++{-# COMPLETE+  GenerationStatus_FAILED,+  GenerationStatus_PROCESSING,+  GenerationStatus_SUCCEEDED,+  GenerationStatus'+  #-}
+ gen/Amazonka/CostExplorer/Types/GenerationSummary.hs view
@@ -0,0 +1,128 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.GenerationSummary+-- 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.CostExplorer.Types.GenerationSummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CostExplorer.Types.GenerationStatus+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The summary of the Savings Plans recommendation generation.+--+-- /See:/ 'newGenerationSummary' smart constructor.+data GenerationSummary = GenerationSummary'+  { -- | Indicates the estimated time for when the recommendation generation will+    -- complete.+    estimatedCompletionTime :: Prelude.Maybe Prelude.Text,+    -- | Indicates the completion time of the recommendation generation.+    generationCompletionTime :: Prelude.Maybe Prelude.Text,+    -- | Indicates the start time of the recommendation generation.+    generationStartedTime :: Prelude.Maybe Prelude.Text,+    -- | Indicates whether the recommendation generation succeeded, is+    -- processing, or failed.+    generationStatus :: Prelude.Maybe GenerationStatus,+    -- | Indicates the ID for this specific recommendation.+    recommendationId :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GenerationSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'estimatedCompletionTime', 'generationSummary_estimatedCompletionTime' - Indicates the estimated time for when the recommendation generation will+-- complete.+--+-- 'generationCompletionTime', 'generationSummary_generationCompletionTime' - Indicates the completion time of the recommendation generation.+--+-- 'generationStartedTime', 'generationSummary_generationStartedTime' - Indicates the start time of the recommendation generation.+--+-- 'generationStatus', 'generationSummary_generationStatus' - Indicates whether the recommendation generation succeeded, is+-- processing, or failed.+--+-- 'recommendationId', 'generationSummary_recommendationId' - Indicates the ID for this specific recommendation.+newGenerationSummary ::+  GenerationSummary+newGenerationSummary =+  GenerationSummary'+    { estimatedCompletionTime =+        Prelude.Nothing,+      generationCompletionTime = Prelude.Nothing,+      generationStartedTime = Prelude.Nothing,+      generationStatus = Prelude.Nothing,+      recommendationId = Prelude.Nothing+    }++-- | Indicates the estimated time for when the recommendation generation will+-- complete.+generationSummary_estimatedCompletionTime :: Lens.Lens' GenerationSummary (Prelude.Maybe Prelude.Text)+generationSummary_estimatedCompletionTime = Lens.lens (\GenerationSummary' {estimatedCompletionTime} -> estimatedCompletionTime) (\s@GenerationSummary' {} a -> s {estimatedCompletionTime = a} :: GenerationSummary)++-- | Indicates the completion time of the recommendation generation.+generationSummary_generationCompletionTime :: Lens.Lens' GenerationSummary (Prelude.Maybe Prelude.Text)+generationSummary_generationCompletionTime = Lens.lens (\GenerationSummary' {generationCompletionTime} -> generationCompletionTime) (\s@GenerationSummary' {} a -> s {generationCompletionTime = a} :: GenerationSummary)++-- | Indicates the start time of the recommendation generation.+generationSummary_generationStartedTime :: Lens.Lens' GenerationSummary (Prelude.Maybe Prelude.Text)+generationSummary_generationStartedTime = Lens.lens (\GenerationSummary' {generationStartedTime} -> generationStartedTime) (\s@GenerationSummary' {} a -> s {generationStartedTime = a} :: GenerationSummary)++-- | Indicates whether the recommendation generation succeeded, is+-- processing, or failed.+generationSummary_generationStatus :: Lens.Lens' GenerationSummary (Prelude.Maybe GenerationStatus)+generationSummary_generationStatus = Lens.lens (\GenerationSummary' {generationStatus} -> generationStatus) (\s@GenerationSummary' {} a -> s {generationStatus = a} :: GenerationSummary)++-- | Indicates the ID for this specific recommendation.+generationSummary_recommendationId :: Lens.Lens' GenerationSummary (Prelude.Maybe Prelude.Text)+generationSummary_recommendationId = Lens.lens (\GenerationSummary' {recommendationId} -> recommendationId) (\s@GenerationSummary' {} a -> s {recommendationId = a} :: GenerationSummary)++instance Data.FromJSON GenerationSummary where+  parseJSON =+    Data.withObject+      "GenerationSummary"+      ( \x ->+          GenerationSummary'+            Prelude.<$> (x Data..:? "EstimatedCompletionTime")+            Prelude.<*> (x Data..:? "GenerationCompletionTime")+            Prelude.<*> (x Data..:? "GenerationStartedTime")+            Prelude.<*> (x Data..:? "GenerationStatus")+            Prelude.<*> (x Data..:? "RecommendationId")+      )++instance Prelude.Hashable GenerationSummary where+  hashWithSalt _salt GenerationSummary' {..} =+    _salt+      `Prelude.hashWithSalt` estimatedCompletionTime+      `Prelude.hashWithSalt` generationCompletionTime+      `Prelude.hashWithSalt` generationStartedTime+      `Prelude.hashWithSalt` generationStatus+      `Prelude.hashWithSalt` recommendationId++instance Prelude.NFData GenerationSummary where+  rnf GenerationSummary' {..} =+    Prelude.rnf estimatedCompletionTime+      `Prelude.seq` Prelude.rnf generationCompletionTime+      `Prelude.seq` Prelude.rnf generationStartedTime+      `Prelude.seq` Prelude.rnf generationStatus+      `Prelude.seq` Prelude.rnf recommendationId
+ gen/Amazonka/CostExplorer/Types/Granularity.hs view
@@ -0,0 +1,76 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.Granularity+-- 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.CostExplorer.Types.Granularity+  ( Granularity+      ( ..,+        Granularity_DAILY,+        Granularity_HOURLY,+        Granularity_MONTHLY+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype Granularity = Granularity'+  { fromGranularity ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern Granularity_DAILY :: Granularity+pattern Granularity_DAILY = Granularity' "DAILY"++pattern Granularity_HOURLY :: Granularity+pattern Granularity_HOURLY = Granularity' "HOURLY"++pattern Granularity_MONTHLY :: Granularity+pattern Granularity_MONTHLY = Granularity' "MONTHLY"++{-# COMPLETE+  Granularity_DAILY,+  Granularity_HOURLY,+  Granularity_MONTHLY,+  Granularity'+  #-}
+ gen/Amazonka/CostExplorer/Types/Group.hs view
@@ -0,0 +1,84 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.Group+-- 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.CostExplorer.Types.Group where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CostExplorer.Types.MetricValue+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | One level of grouped data in the results.+--+-- /See:/ 'newGroup' smart constructor.+data Group = Group'+  { -- | The keys that are included in this group.+    keys :: Prelude.Maybe [Prelude.Text],+    -- | The metrics that are included in this group.+    metrics :: Prelude.Maybe (Prelude.HashMap Prelude.Text MetricValue)+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Group' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'keys', 'group_keys' - The keys that are included in this group.+--+-- 'metrics', 'group_metrics' - The metrics that are included in this group.+newGroup ::+  Group+newGroup =+  Group'+    { keys = Prelude.Nothing,+      metrics = Prelude.Nothing+    }++-- | The keys that are included in this group.+group_keys :: Lens.Lens' Group (Prelude.Maybe [Prelude.Text])+group_keys = Lens.lens (\Group' {keys} -> keys) (\s@Group' {} a -> s {keys = a} :: Group) Prelude.. Lens.mapping Lens.coerced++-- | The metrics that are included in this group.+group_metrics :: Lens.Lens' Group (Prelude.Maybe (Prelude.HashMap Prelude.Text MetricValue))+group_metrics = Lens.lens (\Group' {metrics} -> metrics) (\s@Group' {} a -> s {metrics = a} :: Group) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON Group where+  parseJSON =+    Data.withObject+      "Group"+      ( \x ->+          Group'+            Prelude.<$> (x Data..:? "Keys" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "Metrics" Data..!= Prelude.mempty)+      )++instance Prelude.Hashable Group where+  hashWithSalt _salt Group' {..} =+    _salt+      `Prelude.hashWithSalt` keys+      `Prelude.hashWithSalt` metrics++instance Prelude.NFData Group where+  rnf Group' {..} =+    Prelude.rnf keys `Prelude.seq` Prelude.rnf metrics
+ gen/Amazonka/CostExplorer/Types/GroupDefinition.hs view
@@ -0,0 +1,94 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.GroupDefinition+-- 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.CostExplorer.Types.GroupDefinition where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CostExplorer.Types.GroupDefinitionType+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Represents a group when you specify a group by criteria or in the+-- response to a query with a specific grouping.+--+-- /See:/ 'newGroupDefinition' smart constructor.+data GroupDefinition = GroupDefinition'+  { -- | The string that represents a key for a specified group.+    key :: Prelude.Maybe Prelude.Text,+    -- | The string that represents the type of group.+    type' :: Prelude.Maybe GroupDefinitionType+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GroupDefinition' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'key', 'groupDefinition_key' - The string that represents a key for a specified group.+--+-- 'type'', 'groupDefinition_type' - The string that represents the type of group.+newGroupDefinition ::+  GroupDefinition+newGroupDefinition =+  GroupDefinition'+    { key = Prelude.Nothing,+      type' = Prelude.Nothing+    }++-- | The string that represents a key for a specified group.+groupDefinition_key :: Lens.Lens' GroupDefinition (Prelude.Maybe Prelude.Text)+groupDefinition_key = Lens.lens (\GroupDefinition' {key} -> key) (\s@GroupDefinition' {} a -> s {key = a} :: GroupDefinition)++-- | The string that represents the type of group.+groupDefinition_type :: Lens.Lens' GroupDefinition (Prelude.Maybe GroupDefinitionType)+groupDefinition_type = Lens.lens (\GroupDefinition' {type'} -> type') (\s@GroupDefinition' {} a -> s {type' = a} :: GroupDefinition)++instance Data.FromJSON GroupDefinition where+  parseJSON =+    Data.withObject+      "GroupDefinition"+      ( \x ->+          GroupDefinition'+            Prelude.<$> (x Data..:? "Key")+            Prelude.<*> (x Data..:? "Type")+      )++instance Prelude.Hashable GroupDefinition where+  hashWithSalt _salt GroupDefinition' {..} =+    _salt+      `Prelude.hashWithSalt` key+      `Prelude.hashWithSalt` type'++instance Prelude.NFData GroupDefinition where+  rnf GroupDefinition' {..} =+    Prelude.rnf key `Prelude.seq` Prelude.rnf type'++instance Data.ToJSON GroupDefinition where+  toJSON GroupDefinition' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Key" Data..=) Prelude.<$> key,+            ("Type" Data..=) Prelude.<$> type'+          ]+      )
+ gen/Amazonka/CostExplorer/Types/GroupDefinitionType.hs view
@@ -0,0 +1,76 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.GroupDefinitionType+-- 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.CostExplorer.Types.GroupDefinitionType+  ( GroupDefinitionType+      ( ..,+        GroupDefinitionType_COST_CATEGORY,+        GroupDefinitionType_DIMENSION,+        GroupDefinitionType_TAG+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype GroupDefinitionType = GroupDefinitionType'+  { fromGroupDefinitionType ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern GroupDefinitionType_COST_CATEGORY :: GroupDefinitionType+pattern GroupDefinitionType_COST_CATEGORY = GroupDefinitionType' "COST_CATEGORY"++pattern GroupDefinitionType_DIMENSION :: GroupDefinitionType+pattern GroupDefinitionType_DIMENSION = GroupDefinitionType' "DIMENSION"++pattern GroupDefinitionType_TAG :: GroupDefinitionType+pattern GroupDefinitionType_TAG = GroupDefinitionType' "TAG"++{-# COMPLETE+  GroupDefinitionType_COST_CATEGORY,+  GroupDefinitionType_DIMENSION,+  GroupDefinitionType_TAG,+  GroupDefinitionType'+  #-}
+ gen/Amazonka/CostExplorer/Types/Impact.hs view
@@ -0,0 +1,149 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.Impact+-- 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.CostExplorer.Types.Impact where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The dollar value of the anomaly.+--+-- /See:/ 'newImpact' smart constructor.+data Impact = Impact'+  { -- | The cumulative dollar amount that was actually spent during the anomaly.+    totalActualSpend :: Prelude.Maybe Prelude.Double,+    -- | The cumulative dollar amount that was expected to be spent during the+    -- anomaly. It is calculated using advanced machine learning models to+    -- determine the typical spending pattern based on historical data for a+    -- customer.+    totalExpectedSpend :: Prelude.Maybe Prelude.Double,+    -- | The cumulative dollar difference between the total actual spend and+    -- total expected spend. It is calculated as+    -- @TotalActualSpend - TotalExpectedSpend@.+    totalImpact :: Prelude.Maybe Prelude.Double,+    -- | The cumulative percentage difference between the total actual spend and+    -- total expected spend. It is calculated as+    -- @(TotalImpact \/ TotalExpectedSpend) * 100@. When @TotalExpectedSpend@+    -- is zero, this field is omitted. Expected spend can be zero in situations+    -- such as when you start to use a service for the first time.+    totalImpactPercentage :: Prelude.Maybe Prelude.Double,+    -- | The maximum dollar value that\'s observed for an anomaly.+    maxImpact :: Prelude.Double+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Impact' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'totalActualSpend', 'impact_totalActualSpend' - The cumulative dollar amount that was actually spent during the anomaly.+--+-- 'totalExpectedSpend', 'impact_totalExpectedSpend' - The cumulative dollar amount that was expected to be spent during the+-- anomaly. It is calculated using advanced machine learning models to+-- determine the typical spending pattern based on historical data for a+-- customer.+--+-- 'totalImpact', 'impact_totalImpact' - The cumulative dollar difference between the total actual spend and+-- total expected spend. It is calculated as+-- @TotalActualSpend - TotalExpectedSpend@.+--+-- 'totalImpactPercentage', 'impact_totalImpactPercentage' - The cumulative percentage difference between the total actual spend and+-- total expected spend. It is calculated as+-- @(TotalImpact \/ TotalExpectedSpend) * 100@. When @TotalExpectedSpend@+-- is zero, this field is omitted. Expected spend can be zero in situations+-- such as when you start to use a service for the first time.+--+-- 'maxImpact', 'impact_maxImpact' - The maximum dollar value that\'s observed for an anomaly.+newImpact ::+  -- | 'maxImpact'+  Prelude.Double ->+  Impact+newImpact pMaxImpact_ =+  Impact'+    { totalActualSpend = Prelude.Nothing,+      totalExpectedSpend = Prelude.Nothing,+      totalImpact = Prelude.Nothing,+      totalImpactPercentage = Prelude.Nothing,+      maxImpact = pMaxImpact_+    }++-- | The cumulative dollar amount that was actually spent during the anomaly.+impact_totalActualSpend :: Lens.Lens' Impact (Prelude.Maybe Prelude.Double)+impact_totalActualSpend = Lens.lens (\Impact' {totalActualSpend} -> totalActualSpend) (\s@Impact' {} a -> s {totalActualSpend = a} :: Impact)++-- | The cumulative dollar amount that was expected to be spent during the+-- anomaly. It is calculated using advanced machine learning models to+-- determine the typical spending pattern based on historical data for a+-- customer.+impact_totalExpectedSpend :: Lens.Lens' Impact (Prelude.Maybe Prelude.Double)+impact_totalExpectedSpend = Lens.lens (\Impact' {totalExpectedSpend} -> totalExpectedSpend) (\s@Impact' {} a -> s {totalExpectedSpend = a} :: Impact)++-- | The cumulative dollar difference between the total actual spend and+-- total expected spend. It is calculated as+-- @TotalActualSpend - TotalExpectedSpend@.+impact_totalImpact :: Lens.Lens' Impact (Prelude.Maybe Prelude.Double)+impact_totalImpact = Lens.lens (\Impact' {totalImpact} -> totalImpact) (\s@Impact' {} a -> s {totalImpact = a} :: Impact)++-- | The cumulative percentage difference between the total actual spend and+-- total expected spend. It is calculated as+-- @(TotalImpact \/ TotalExpectedSpend) * 100@. When @TotalExpectedSpend@+-- is zero, this field is omitted. Expected spend can be zero in situations+-- such as when you start to use a service for the first time.+impact_totalImpactPercentage :: Lens.Lens' Impact (Prelude.Maybe Prelude.Double)+impact_totalImpactPercentage = Lens.lens (\Impact' {totalImpactPercentage} -> totalImpactPercentage) (\s@Impact' {} a -> s {totalImpactPercentage = a} :: Impact)++-- | The maximum dollar value that\'s observed for an anomaly.+impact_maxImpact :: Lens.Lens' Impact Prelude.Double+impact_maxImpact = Lens.lens (\Impact' {maxImpact} -> maxImpact) (\s@Impact' {} a -> s {maxImpact = a} :: Impact)++instance Data.FromJSON Impact where+  parseJSON =+    Data.withObject+      "Impact"+      ( \x ->+          Impact'+            Prelude.<$> (x Data..:? "TotalActualSpend")+            Prelude.<*> (x Data..:? "TotalExpectedSpend")+            Prelude.<*> (x Data..:? "TotalImpact")+            Prelude.<*> (x Data..:? "TotalImpactPercentage")+            Prelude.<*> (x Data..: "MaxImpact")+      )++instance Prelude.Hashable Impact where+  hashWithSalt _salt Impact' {..} =+    _salt+      `Prelude.hashWithSalt` totalActualSpend+      `Prelude.hashWithSalt` totalExpectedSpend+      `Prelude.hashWithSalt` totalImpact+      `Prelude.hashWithSalt` totalImpactPercentage+      `Prelude.hashWithSalt` maxImpact++instance Prelude.NFData Impact where+  rnf Impact' {..} =+    Prelude.rnf totalActualSpend+      `Prelude.seq` Prelude.rnf totalExpectedSpend+      `Prelude.seq` Prelude.rnf totalImpact+      `Prelude.seq` Prelude.rnf totalImpactPercentage+      `Prelude.seq` Prelude.rnf maxImpact
+ gen/Amazonka/CostExplorer/Types/InstanceDetails.hs view
@@ -0,0 +1,142 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.InstanceDetails+-- 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.CostExplorer.Types.InstanceDetails where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CostExplorer.Types.EC2InstanceDetails+import Amazonka.CostExplorer.Types.ESInstanceDetails+import Amazonka.CostExplorer.Types.ElastiCacheInstanceDetails+import Amazonka.CostExplorer.Types.RDSInstanceDetails+import Amazonka.CostExplorer.Types.RedshiftInstanceDetails+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Details about the instances that Amazon Web Services recommends that you+-- purchase.+--+-- /See:/ 'newInstanceDetails' smart constructor.+data InstanceDetails = InstanceDetails'+  { -- | The Amazon EC2 instances that Amazon Web Services recommends that you+    -- purchase.+    eC2InstanceDetails :: Prelude.Maybe EC2InstanceDetails,+    -- | The Amazon OpenSearch Service instances that Amazon Web Services+    -- recommends that you purchase.+    eSInstanceDetails :: Prelude.Maybe ESInstanceDetails,+    -- | The ElastiCache instances that Amazon Web Services recommends that you+    -- purchase.+    elastiCacheInstanceDetails :: Prelude.Maybe ElastiCacheInstanceDetails,+    -- | The Amazon RDS instances that Amazon Web Services recommends that you+    -- purchase.+    rDSInstanceDetails :: Prelude.Maybe RDSInstanceDetails,+    -- | The Amazon Redshift instances that Amazon Web Services recommends that+    -- you purchase.+    redshiftInstanceDetails :: Prelude.Maybe RedshiftInstanceDetails+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'InstanceDetails' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'eC2InstanceDetails', 'instanceDetails_eC2InstanceDetails' - The Amazon EC2 instances that Amazon Web Services recommends that you+-- purchase.+--+-- 'eSInstanceDetails', 'instanceDetails_eSInstanceDetails' - The Amazon OpenSearch Service instances that Amazon Web Services+-- recommends that you purchase.+--+-- 'elastiCacheInstanceDetails', 'instanceDetails_elastiCacheInstanceDetails' - The ElastiCache instances that Amazon Web Services recommends that you+-- purchase.+--+-- 'rDSInstanceDetails', 'instanceDetails_rDSInstanceDetails' - The Amazon RDS instances that Amazon Web Services recommends that you+-- purchase.+--+-- 'redshiftInstanceDetails', 'instanceDetails_redshiftInstanceDetails' - The Amazon Redshift instances that Amazon Web Services recommends that+-- you purchase.+newInstanceDetails ::+  InstanceDetails+newInstanceDetails =+  InstanceDetails'+    { eC2InstanceDetails =+        Prelude.Nothing,+      eSInstanceDetails = Prelude.Nothing,+      elastiCacheInstanceDetails = Prelude.Nothing,+      rDSInstanceDetails = Prelude.Nothing,+      redshiftInstanceDetails = Prelude.Nothing+    }++-- | The Amazon EC2 instances that Amazon Web Services recommends that you+-- purchase.+instanceDetails_eC2InstanceDetails :: Lens.Lens' InstanceDetails (Prelude.Maybe EC2InstanceDetails)+instanceDetails_eC2InstanceDetails = Lens.lens (\InstanceDetails' {eC2InstanceDetails} -> eC2InstanceDetails) (\s@InstanceDetails' {} a -> s {eC2InstanceDetails = a} :: InstanceDetails)++-- | The Amazon OpenSearch Service instances that Amazon Web Services+-- recommends that you purchase.+instanceDetails_eSInstanceDetails :: Lens.Lens' InstanceDetails (Prelude.Maybe ESInstanceDetails)+instanceDetails_eSInstanceDetails = Lens.lens (\InstanceDetails' {eSInstanceDetails} -> eSInstanceDetails) (\s@InstanceDetails' {} a -> s {eSInstanceDetails = a} :: InstanceDetails)++-- | The ElastiCache instances that Amazon Web Services recommends that you+-- purchase.+instanceDetails_elastiCacheInstanceDetails :: Lens.Lens' InstanceDetails (Prelude.Maybe ElastiCacheInstanceDetails)+instanceDetails_elastiCacheInstanceDetails = Lens.lens (\InstanceDetails' {elastiCacheInstanceDetails} -> elastiCacheInstanceDetails) (\s@InstanceDetails' {} a -> s {elastiCacheInstanceDetails = a} :: InstanceDetails)++-- | The Amazon RDS instances that Amazon Web Services recommends that you+-- purchase.+instanceDetails_rDSInstanceDetails :: Lens.Lens' InstanceDetails (Prelude.Maybe RDSInstanceDetails)+instanceDetails_rDSInstanceDetails = Lens.lens (\InstanceDetails' {rDSInstanceDetails} -> rDSInstanceDetails) (\s@InstanceDetails' {} a -> s {rDSInstanceDetails = a} :: InstanceDetails)++-- | The Amazon Redshift instances that Amazon Web Services recommends that+-- you purchase.+instanceDetails_redshiftInstanceDetails :: Lens.Lens' InstanceDetails (Prelude.Maybe RedshiftInstanceDetails)+instanceDetails_redshiftInstanceDetails = Lens.lens (\InstanceDetails' {redshiftInstanceDetails} -> redshiftInstanceDetails) (\s@InstanceDetails' {} a -> s {redshiftInstanceDetails = a} :: InstanceDetails)++instance Data.FromJSON InstanceDetails where+  parseJSON =+    Data.withObject+      "InstanceDetails"+      ( \x ->+          InstanceDetails'+            Prelude.<$> (x Data..:? "EC2InstanceDetails")+            Prelude.<*> (x Data..:? "ESInstanceDetails")+            Prelude.<*> (x Data..:? "ElastiCacheInstanceDetails")+            Prelude.<*> (x Data..:? "RDSInstanceDetails")+            Prelude.<*> (x Data..:? "RedshiftInstanceDetails")+      )++instance Prelude.Hashable InstanceDetails where+  hashWithSalt _salt InstanceDetails' {..} =+    _salt+      `Prelude.hashWithSalt` eC2InstanceDetails+      `Prelude.hashWithSalt` eSInstanceDetails+      `Prelude.hashWithSalt` elastiCacheInstanceDetails+      `Prelude.hashWithSalt` rDSInstanceDetails+      `Prelude.hashWithSalt` redshiftInstanceDetails++instance Prelude.NFData InstanceDetails where+  rnf InstanceDetails' {..} =+    Prelude.rnf eC2InstanceDetails+      `Prelude.seq` Prelude.rnf eSInstanceDetails+      `Prelude.seq` Prelude.rnf elastiCacheInstanceDetails+      `Prelude.seq` Prelude.rnf rDSInstanceDetails+      `Prelude.seq` Prelude.rnf redshiftInstanceDetails
+ gen/Amazonka/CostExplorer/Types/LookbackPeriodInDays.hs view
@@ -0,0 +1,76 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.LookbackPeriodInDays+-- 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.CostExplorer.Types.LookbackPeriodInDays+  ( LookbackPeriodInDays+      ( ..,+        LookbackPeriodInDays_SEVEN_DAYS,+        LookbackPeriodInDays_SIXTY_DAYS,+        LookbackPeriodInDays_THIRTY_DAYS+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype LookbackPeriodInDays = LookbackPeriodInDays'+  { fromLookbackPeriodInDays ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern LookbackPeriodInDays_SEVEN_DAYS :: LookbackPeriodInDays+pattern LookbackPeriodInDays_SEVEN_DAYS = LookbackPeriodInDays' "SEVEN_DAYS"++pattern LookbackPeriodInDays_SIXTY_DAYS :: LookbackPeriodInDays+pattern LookbackPeriodInDays_SIXTY_DAYS = LookbackPeriodInDays' "SIXTY_DAYS"++pattern LookbackPeriodInDays_THIRTY_DAYS :: LookbackPeriodInDays+pattern LookbackPeriodInDays_THIRTY_DAYS = LookbackPeriodInDays' "THIRTY_DAYS"++{-# COMPLETE+  LookbackPeriodInDays_SEVEN_DAYS,+  LookbackPeriodInDays_SIXTY_DAYS,+  LookbackPeriodInDays_THIRTY_DAYS,+  LookbackPeriodInDays'+  #-}
+ gen/Amazonka/CostExplorer/Types/MatchOption.hs view
@@ -0,0 +1,101 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.MatchOption+-- 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.CostExplorer.Types.MatchOption+  ( MatchOption+      ( ..,+        MatchOption_ABSENT,+        MatchOption_CASE_INSENSITIVE,+        MatchOption_CASE_SENSITIVE,+        MatchOption_CONTAINS,+        MatchOption_ENDS_WITH,+        MatchOption_EQUALS,+        MatchOption_GREATER_THAN_OR_EQUAL,+        MatchOption_STARTS_WITH+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype MatchOption = MatchOption'+  { fromMatchOption ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern MatchOption_ABSENT :: MatchOption+pattern MatchOption_ABSENT = MatchOption' "ABSENT"++pattern MatchOption_CASE_INSENSITIVE :: MatchOption+pattern MatchOption_CASE_INSENSITIVE = MatchOption' "CASE_INSENSITIVE"++pattern MatchOption_CASE_SENSITIVE :: MatchOption+pattern MatchOption_CASE_SENSITIVE = MatchOption' "CASE_SENSITIVE"++pattern MatchOption_CONTAINS :: MatchOption+pattern MatchOption_CONTAINS = MatchOption' "CONTAINS"++pattern MatchOption_ENDS_WITH :: MatchOption+pattern MatchOption_ENDS_WITH = MatchOption' "ENDS_WITH"++pattern MatchOption_EQUALS :: MatchOption+pattern MatchOption_EQUALS = MatchOption' "EQUALS"++pattern MatchOption_GREATER_THAN_OR_EQUAL :: MatchOption+pattern MatchOption_GREATER_THAN_OR_EQUAL = MatchOption' "GREATER_THAN_OR_EQUAL"++pattern MatchOption_STARTS_WITH :: MatchOption+pattern MatchOption_STARTS_WITH = MatchOption' "STARTS_WITH"++{-# COMPLETE+  MatchOption_ABSENT,+  MatchOption_CASE_INSENSITIVE,+  MatchOption_CASE_SENSITIVE,+  MatchOption_CONTAINS,+  MatchOption_ENDS_WITH,+  MatchOption_EQUALS,+  MatchOption_GREATER_THAN_OR_EQUAL,+  MatchOption_STARTS_WITH,+  MatchOption'+  #-}
+ gen/Amazonka/CostExplorer/Types/Metric.hs view
@@ -0,0 +1,93 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.Metric+-- 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.CostExplorer.Types.Metric+  ( Metric+      ( ..,+        Metric_AMORTIZED_COST,+        Metric_BLENDED_COST,+        Metric_NET_AMORTIZED_COST,+        Metric_NET_UNBLENDED_COST,+        Metric_NORMALIZED_USAGE_AMOUNT,+        Metric_UNBLENDED_COST,+        Metric_USAGE_QUANTITY+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype Metric = Metric' {fromMetric :: Data.Text}+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern Metric_AMORTIZED_COST :: Metric+pattern Metric_AMORTIZED_COST = Metric' "AMORTIZED_COST"++pattern Metric_BLENDED_COST :: Metric+pattern Metric_BLENDED_COST = Metric' "BLENDED_COST"++pattern Metric_NET_AMORTIZED_COST :: Metric+pattern Metric_NET_AMORTIZED_COST = Metric' "NET_AMORTIZED_COST"++pattern Metric_NET_UNBLENDED_COST :: Metric+pattern Metric_NET_UNBLENDED_COST = Metric' "NET_UNBLENDED_COST"++pattern Metric_NORMALIZED_USAGE_AMOUNT :: Metric+pattern Metric_NORMALIZED_USAGE_AMOUNT = Metric' "NORMALIZED_USAGE_AMOUNT"++pattern Metric_UNBLENDED_COST :: Metric+pattern Metric_UNBLENDED_COST = Metric' "UNBLENDED_COST"++pattern Metric_USAGE_QUANTITY :: Metric+pattern Metric_USAGE_QUANTITY = Metric' "USAGE_QUANTITY"++{-# COMPLETE+  Metric_AMORTIZED_COST,+  Metric_BLENDED_COST,+  Metric_NET_AMORTIZED_COST,+  Metric_NET_UNBLENDED_COST,+  Metric_NORMALIZED_USAGE_AMOUNT,+  Metric_UNBLENDED_COST,+  Metric_USAGE_QUANTITY,+  Metric'+  #-}
+ gen/Amazonka/CostExplorer/Types/MetricValue.hs view
@@ -0,0 +1,83 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.MetricValue+-- 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.CostExplorer.Types.MetricValue where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The aggregated value for a metric.+--+-- /See:/ 'newMetricValue' smart constructor.+data MetricValue = MetricValue'+  { -- | The actual number that represents the metric.+    amount :: Prelude.Maybe Prelude.Text,+    -- | The unit that the metric is given in.+    unit :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'MetricValue' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'amount', 'metricValue_amount' - The actual number that represents the metric.+--+-- 'unit', 'metricValue_unit' - The unit that the metric is given in.+newMetricValue ::+  MetricValue+newMetricValue =+  MetricValue'+    { amount = Prelude.Nothing,+      unit = Prelude.Nothing+    }++-- | The actual number that represents the metric.+metricValue_amount :: Lens.Lens' MetricValue (Prelude.Maybe Prelude.Text)+metricValue_amount = Lens.lens (\MetricValue' {amount} -> amount) (\s@MetricValue' {} a -> s {amount = a} :: MetricValue)++-- | The unit that the metric is given in.+metricValue_unit :: Lens.Lens' MetricValue (Prelude.Maybe Prelude.Text)+metricValue_unit = Lens.lens (\MetricValue' {unit} -> unit) (\s@MetricValue' {} a -> s {unit = a} :: MetricValue)++instance Data.FromJSON MetricValue where+  parseJSON =+    Data.withObject+      "MetricValue"+      ( \x ->+          MetricValue'+            Prelude.<$> (x Data..:? "Amount")+            Prelude.<*> (x Data..:? "Unit")+      )++instance Prelude.Hashable MetricValue where+  hashWithSalt _salt MetricValue' {..} =+    _salt+      `Prelude.hashWithSalt` amount+      `Prelude.hashWithSalt` unit++instance Prelude.NFData MetricValue where+  rnf MetricValue' {..} =+    Prelude.rnf amount `Prelude.seq` Prelude.rnf unit
+ gen/Amazonka/CostExplorer/Types/ModifyRecommendationDetail.hs view
@@ -0,0 +1,79 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.ModifyRecommendationDetail+-- 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.CostExplorer.Types.ModifyRecommendationDetail where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CostExplorer.Types.TargetInstance+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Details for the modification recommendation.+--+-- /See:/ 'newModifyRecommendationDetail' smart constructor.+data ModifyRecommendationDetail = ModifyRecommendationDetail'+  { -- | Determines whether this instance type is the Amazon Web Services default+    -- recommendation.+    targetInstances :: Prelude.Maybe [TargetInstance]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ModifyRecommendationDetail' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'targetInstances', 'modifyRecommendationDetail_targetInstances' - Determines whether this instance type is the Amazon Web Services default+-- recommendation.+newModifyRecommendationDetail ::+  ModifyRecommendationDetail+newModifyRecommendationDetail =+  ModifyRecommendationDetail'+    { targetInstances =+        Prelude.Nothing+    }++-- | Determines whether this instance type is the Amazon Web Services default+-- recommendation.+modifyRecommendationDetail_targetInstances :: Lens.Lens' ModifyRecommendationDetail (Prelude.Maybe [TargetInstance])+modifyRecommendationDetail_targetInstances = Lens.lens (\ModifyRecommendationDetail' {targetInstances} -> targetInstances) (\s@ModifyRecommendationDetail' {} a -> s {targetInstances = a} :: ModifyRecommendationDetail) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON ModifyRecommendationDetail where+  parseJSON =+    Data.withObject+      "ModifyRecommendationDetail"+      ( \x ->+          ModifyRecommendationDetail'+            Prelude.<$> ( x+                            Data..:? "TargetInstances"+                            Data..!= Prelude.mempty+                        )+      )++instance Prelude.Hashable ModifyRecommendationDetail where+  hashWithSalt _salt ModifyRecommendationDetail' {..} =+    _salt `Prelude.hashWithSalt` targetInstances++instance Prelude.NFData ModifyRecommendationDetail where+  rnf ModifyRecommendationDetail' {..} =+    Prelude.rnf targetInstances
+ gen/Amazonka/CostExplorer/Types/MonitorDimension.hs view
@@ -0,0 +1,66 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.MonitorDimension+-- 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.CostExplorer.Types.MonitorDimension+  ( MonitorDimension+      ( ..,+        MonitorDimension_SERVICE+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype MonitorDimension = MonitorDimension'+  { fromMonitorDimension ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern MonitorDimension_SERVICE :: MonitorDimension+pattern MonitorDimension_SERVICE = MonitorDimension' "SERVICE"++{-# COMPLETE+  MonitorDimension_SERVICE,+  MonitorDimension'+  #-}
+ gen/Amazonka/CostExplorer/Types/MonitorType.hs view
@@ -0,0 +1,71 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.MonitorType+-- 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.CostExplorer.Types.MonitorType+  ( MonitorType+      ( ..,+        MonitorType_CUSTOM,+        MonitorType_DIMENSIONAL+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype MonitorType = MonitorType'+  { fromMonitorType ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern MonitorType_CUSTOM :: MonitorType+pattern MonitorType_CUSTOM = MonitorType' "CUSTOM"++pattern MonitorType_DIMENSIONAL :: MonitorType+pattern MonitorType_DIMENSIONAL = MonitorType' "DIMENSIONAL"++{-# COMPLETE+  MonitorType_CUSTOM,+  MonitorType_DIMENSIONAL,+  MonitorType'+  #-}
+ gen/Amazonka/CostExplorer/Types/NetworkResourceUtilization.hs view
@@ -0,0 +1,116 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.NetworkResourceUtilization+-- 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.CostExplorer.Types.NetworkResourceUtilization where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The network field that contains a list of network metrics that are+-- associated with the current instance.+--+-- /See:/ 'newNetworkResourceUtilization' smart constructor.+data NetworkResourceUtilization = NetworkResourceUtilization'+  { -- | The network inbound throughput utilization measured in Bytes per second+    -- (Bps).+    networkInBytesPerSecond :: Prelude.Maybe Prelude.Text,+    -- | The network outbound throughput utilization measured in Bytes per second+    -- (Bps).+    networkOutBytesPerSecond :: Prelude.Maybe Prelude.Text,+    -- | The network inbound packets that are measured in packets per second.+    networkPacketsInPerSecond :: Prelude.Maybe Prelude.Text,+    -- | The network outbound packets that are measured in packets per second.+    networkPacketsOutPerSecond :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'NetworkResourceUtilization' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'networkInBytesPerSecond', 'networkResourceUtilization_networkInBytesPerSecond' - The network inbound throughput utilization measured in Bytes per second+-- (Bps).+--+-- 'networkOutBytesPerSecond', 'networkResourceUtilization_networkOutBytesPerSecond' - The network outbound throughput utilization measured in Bytes per second+-- (Bps).+--+-- 'networkPacketsInPerSecond', 'networkResourceUtilization_networkPacketsInPerSecond' - The network inbound packets that are measured in packets per second.+--+-- 'networkPacketsOutPerSecond', 'networkResourceUtilization_networkPacketsOutPerSecond' - The network outbound packets that are measured in packets per second.+newNetworkResourceUtilization ::+  NetworkResourceUtilization+newNetworkResourceUtilization =+  NetworkResourceUtilization'+    { networkInBytesPerSecond =+        Prelude.Nothing,+      networkOutBytesPerSecond = Prelude.Nothing,+      networkPacketsInPerSecond = Prelude.Nothing,+      networkPacketsOutPerSecond = Prelude.Nothing+    }++-- | The network inbound throughput utilization measured in Bytes per second+-- (Bps).+networkResourceUtilization_networkInBytesPerSecond :: Lens.Lens' NetworkResourceUtilization (Prelude.Maybe Prelude.Text)+networkResourceUtilization_networkInBytesPerSecond = Lens.lens (\NetworkResourceUtilization' {networkInBytesPerSecond} -> networkInBytesPerSecond) (\s@NetworkResourceUtilization' {} a -> s {networkInBytesPerSecond = a} :: NetworkResourceUtilization)++-- | The network outbound throughput utilization measured in Bytes per second+-- (Bps).+networkResourceUtilization_networkOutBytesPerSecond :: Lens.Lens' NetworkResourceUtilization (Prelude.Maybe Prelude.Text)+networkResourceUtilization_networkOutBytesPerSecond = Lens.lens (\NetworkResourceUtilization' {networkOutBytesPerSecond} -> networkOutBytesPerSecond) (\s@NetworkResourceUtilization' {} a -> s {networkOutBytesPerSecond = a} :: NetworkResourceUtilization)++-- | The network inbound packets that are measured in packets per second.+networkResourceUtilization_networkPacketsInPerSecond :: Lens.Lens' NetworkResourceUtilization (Prelude.Maybe Prelude.Text)+networkResourceUtilization_networkPacketsInPerSecond = Lens.lens (\NetworkResourceUtilization' {networkPacketsInPerSecond} -> networkPacketsInPerSecond) (\s@NetworkResourceUtilization' {} a -> s {networkPacketsInPerSecond = a} :: NetworkResourceUtilization)++-- | The network outbound packets that are measured in packets per second.+networkResourceUtilization_networkPacketsOutPerSecond :: Lens.Lens' NetworkResourceUtilization (Prelude.Maybe Prelude.Text)+networkResourceUtilization_networkPacketsOutPerSecond = Lens.lens (\NetworkResourceUtilization' {networkPacketsOutPerSecond} -> networkPacketsOutPerSecond) (\s@NetworkResourceUtilization' {} a -> s {networkPacketsOutPerSecond = a} :: NetworkResourceUtilization)++instance Data.FromJSON NetworkResourceUtilization where+  parseJSON =+    Data.withObject+      "NetworkResourceUtilization"+      ( \x ->+          NetworkResourceUtilization'+            Prelude.<$> (x Data..:? "NetworkInBytesPerSecond")+            Prelude.<*> (x Data..:? "NetworkOutBytesPerSecond")+            Prelude.<*> (x Data..:? "NetworkPacketsInPerSecond")+            Prelude.<*> (x Data..:? "NetworkPacketsOutPerSecond")+      )++instance Prelude.Hashable NetworkResourceUtilization where+  hashWithSalt _salt NetworkResourceUtilization' {..} =+    _salt+      `Prelude.hashWithSalt` networkInBytesPerSecond+      `Prelude.hashWithSalt` networkOutBytesPerSecond+      `Prelude.hashWithSalt` networkPacketsInPerSecond+      `Prelude.hashWithSalt` networkPacketsOutPerSecond++instance Prelude.NFData NetworkResourceUtilization where+  rnf NetworkResourceUtilization' {..} =+    Prelude.rnf networkInBytesPerSecond+      `Prelude.seq` Prelude.rnf networkOutBytesPerSecond+      `Prelude.seq` Prelude.rnf networkPacketsInPerSecond+      `Prelude.seq` Prelude.rnf networkPacketsOutPerSecond
+ gen/Amazonka/CostExplorer/Types/NumericOperator.hs view
@@ -0,0 +1,91 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.NumericOperator+-- 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.CostExplorer.Types.NumericOperator+  ( NumericOperator+      ( ..,+        NumericOperator_BETWEEN,+        NumericOperator_EQUAL,+        NumericOperator_GREATER_THAN,+        NumericOperator_GREATER_THAN_OR_EQUAL,+        NumericOperator_LESS_THAN,+        NumericOperator_LESS_THAN_OR_EQUAL+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype NumericOperator = NumericOperator'+  { fromNumericOperator ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern NumericOperator_BETWEEN :: NumericOperator+pattern NumericOperator_BETWEEN = NumericOperator' "BETWEEN"++pattern NumericOperator_EQUAL :: NumericOperator+pattern NumericOperator_EQUAL = NumericOperator' "EQUAL"++pattern NumericOperator_GREATER_THAN :: NumericOperator+pattern NumericOperator_GREATER_THAN = NumericOperator' "GREATER_THAN"++pattern NumericOperator_GREATER_THAN_OR_EQUAL :: NumericOperator+pattern NumericOperator_GREATER_THAN_OR_EQUAL = NumericOperator' "GREATER_THAN_OR_EQUAL"++pattern NumericOperator_LESS_THAN :: NumericOperator+pattern NumericOperator_LESS_THAN = NumericOperator' "LESS_THAN"++pattern NumericOperator_LESS_THAN_OR_EQUAL :: NumericOperator+pattern NumericOperator_LESS_THAN_OR_EQUAL = NumericOperator' "LESS_THAN_OR_EQUAL"++{-# COMPLETE+  NumericOperator_BETWEEN,+  NumericOperator_EQUAL,+  NumericOperator_GREATER_THAN,+  NumericOperator_GREATER_THAN_OR_EQUAL,+  NumericOperator_LESS_THAN,+  NumericOperator_LESS_THAN_OR_EQUAL,+  NumericOperator'+  #-}
+ gen/Amazonka/CostExplorer/Types/OfferingClass.hs view
@@ -0,0 +1,71 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.OfferingClass+-- 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.CostExplorer.Types.OfferingClass+  ( OfferingClass+      ( ..,+        OfferingClass_CONVERTIBLE,+        OfferingClass_STANDARD+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype OfferingClass = OfferingClass'+  { fromOfferingClass ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern OfferingClass_CONVERTIBLE :: OfferingClass+pattern OfferingClass_CONVERTIBLE = OfferingClass' "CONVERTIBLE"++pattern OfferingClass_STANDARD :: OfferingClass+pattern OfferingClass_STANDARD = OfferingClass' "STANDARD"++{-# COMPLETE+  OfferingClass_CONVERTIBLE,+  OfferingClass_STANDARD,+  OfferingClass'+  #-}
+ gen/Amazonka/CostExplorer/Types/PaymentOption.hs view
@@ -0,0 +1,91 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.PaymentOption+-- 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.CostExplorer.Types.PaymentOption+  ( PaymentOption+      ( ..,+        PaymentOption_ALL_UPFRONT,+        PaymentOption_HEAVY_UTILIZATION,+        PaymentOption_LIGHT_UTILIZATION,+        PaymentOption_MEDIUM_UTILIZATION,+        PaymentOption_NO_UPFRONT,+        PaymentOption_PARTIAL_UPFRONT+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype PaymentOption = PaymentOption'+  { fromPaymentOption ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern PaymentOption_ALL_UPFRONT :: PaymentOption+pattern PaymentOption_ALL_UPFRONT = PaymentOption' "ALL_UPFRONT"++pattern PaymentOption_HEAVY_UTILIZATION :: PaymentOption+pattern PaymentOption_HEAVY_UTILIZATION = PaymentOption' "HEAVY_UTILIZATION"++pattern PaymentOption_LIGHT_UTILIZATION :: PaymentOption+pattern PaymentOption_LIGHT_UTILIZATION = PaymentOption' "LIGHT_UTILIZATION"++pattern PaymentOption_MEDIUM_UTILIZATION :: PaymentOption+pattern PaymentOption_MEDIUM_UTILIZATION = PaymentOption' "MEDIUM_UTILIZATION"++pattern PaymentOption_NO_UPFRONT :: PaymentOption+pattern PaymentOption_NO_UPFRONT = PaymentOption' "NO_UPFRONT"++pattern PaymentOption_PARTIAL_UPFRONT :: PaymentOption+pattern PaymentOption_PARTIAL_UPFRONT = PaymentOption' "PARTIAL_UPFRONT"++{-# COMPLETE+  PaymentOption_ALL_UPFRONT,+  PaymentOption_HEAVY_UTILIZATION,+  PaymentOption_LIGHT_UTILIZATION,+  PaymentOption_MEDIUM_UTILIZATION,+  PaymentOption_NO_UPFRONT,+  PaymentOption_PARTIAL_UPFRONT,+  PaymentOption'+  #-}
+ gen/Amazonka/CostExplorer/Types/PlatformDifference.hs view
@@ -0,0 +1,86 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.PlatformDifference+-- 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.CostExplorer.Types.PlatformDifference+  ( PlatformDifference+      ( ..,+        PlatformDifference_HYPERVISOR,+        PlatformDifference_INSTANCE_STORE_AVAILABILITY,+        PlatformDifference_NETWORK_INTERFACE,+        PlatformDifference_STORAGE_INTERFACE,+        PlatformDifference_VIRTUALIZATION_TYPE+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype PlatformDifference = PlatformDifference'+  { fromPlatformDifference ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern PlatformDifference_HYPERVISOR :: PlatformDifference+pattern PlatformDifference_HYPERVISOR = PlatformDifference' "HYPERVISOR"++pattern PlatformDifference_INSTANCE_STORE_AVAILABILITY :: PlatformDifference+pattern PlatformDifference_INSTANCE_STORE_AVAILABILITY = PlatformDifference' "INSTANCE_STORE_AVAILABILITY"++pattern PlatformDifference_NETWORK_INTERFACE :: PlatformDifference+pattern PlatformDifference_NETWORK_INTERFACE = PlatformDifference' "NETWORK_INTERFACE"++pattern PlatformDifference_STORAGE_INTERFACE :: PlatformDifference+pattern PlatformDifference_STORAGE_INTERFACE = PlatformDifference' "STORAGE_INTERFACE"++pattern PlatformDifference_VIRTUALIZATION_TYPE :: PlatformDifference+pattern PlatformDifference_VIRTUALIZATION_TYPE = PlatformDifference' "VIRTUALIZATION_TYPE"++{-# COMPLETE+  PlatformDifference_HYPERVISOR,+  PlatformDifference_INSTANCE_STORE_AVAILABILITY,+  PlatformDifference_NETWORK_INTERFACE,+  PlatformDifference_STORAGE_INTERFACE,+  PlatformDifference_VIRTUALIZATION_TYPE,+  PlatformDifference'+  #-}
+ gen/Amazonka/CostExplorer/Types/RDSInstanceDetails.hs view
@@ -0,0 +1,179 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.RDSInstanceDetails+-- 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.CostExplorer.Types.RDSInstanceDetails where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Details about the Amazon RDS instances that Amazon Web Services+-- recommends that you purchase.+--+-- /See:/ 'newRDSInstanceDetails' smart constructor.+data RDSInstanceDetails = RDSInstanceDetails'+  { -- | Determines whether the recommendation is for a current-generation+    -- instance.+    currentGeneration :: Prelude.Maybe Prelude.Bool,+    -- | The database edition that the recommended reservation supports.+    databaseEdition :: Prelude.Maybe Prelude.Text,+    -- | The database engine that the recommended reservation supports.+    databaseEngine :: Prelude.Maybe Prelude.Text,+    -- | Determines whether the recommendation is for a reservation in a single+    -- Availability Zone or a reservation with a backup in a second+    -- Availability Zone.+    deploymentOption :: Prelude.Maybe Prelude.Text,+    -- | The instance family of the recommended reservation.+    family :: Prelude.Maybe Prelude.Text,+    -- | The type of instance that Amazon Web Services recommends.+    instanceType :: Prelude.Maybe Prelude.Text,+    -- | The license model that the recommended reservation supports.+    licenseModel :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Web Services Region of the recommended reservation.+    region :: Prelude.Maybe Prelude.Text,+    -- | Determines whether the recommended reservation is size flexible.+    sizeFlexEligible :: Prelude.Maybe Prelude.Bool+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RDSInstanceDetails' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'currentGeneration', 'rDSInstanceDetails_currentGeneration' - Determines whether the recommendation is for a current-generation+-- instance.+--+-- 'databaseEdition', 'rDSInstanceDetails_databaseEdition' - The database edition that the recommended reservation supports.+--+-- 'databaseEngine', 'rDSInstanceDetails_databaseEngine' - The database engine that the recommended reservation supports.+--+-- 'deploymentOption', 'rDSInstanceDetails_deploymentOption' - Determines whether the recommendation is for a reservation in a single+-- Availability Zone or a reservation with a backup in a second+-- Availability Zone.+--+-- 'family', 'rDSInstanceDetails_family' - The instance family of the recommended reservation.+--+-- 'instanceType', 'rDSInstanceDetails_instanceType' - The type of instance that Amazon Web Services recommends.+--+-- 'licenseModel', 'rDSInstanceDetails_licenseModel' - The license model that the recommended reservation supports.+--+-- 'region', 'rDSInstanceDetails_region' - The Amazon Web Services Region of the recommended reservation.+--+-- 'sizeFlexEligible', 'rDSInstanceDetails_sizeFlexEligible' - Determines whether the recommended reservation is size flexible.+newRDSInstanceDetails ::+  RDSInstanceDetails+newRDSInstanceDetails =+  RDSInstanceDetails'+    { currentGeneration =+        Prelude.Nothing,+      databaseEdition = Prelude.Nothing,+      databaseEngine = Prelude.Nothing,+      deploymentOption = Prelude.Nothing,+      family = Prelude.Nothing,+      instanceType = Prelude.Nothing,+      licenseModel = Prelude.Nothing,+      region = Prelude.Nothing,+      sizeFlexEligible = Prelude.Nothing+    }++-- | Determines whether the recommendation is for a current-generation+-- instance.+rDSInstanceDetails_currentGeneration :: Lens.Lens' RDSInstanceDetails (Prelude.Maybe Prelude.Bool)+rDSInstanceDetails_currentGeneration = Lens.lens (\RDSInstanceDetails' {currentGeneration} -> currentGeneration) (\s@RDSInstanceDetails' {} a -> s {currentGeneration = a} :: RDSInstanceDetails)++-- | The database edition that the recommended reservation supports.+rDSInstanceDetails_databaseEdition :: Lens.Lens' RDSInstanceDetails (Prelude.Maybe Prelude.Text)+rDSInstanceDetails_databaseEdition = Lens.lens (\RDSInstanceDetails' {databaseEdition} -> databaseEdition) (\s@RDSInstanceDetails' {} a -> s {databaseEdition = a} :: RDSInstanceDetails)++-- | The database engine that the recommended reservation supports.+rDSInstanceDetails_databaseEngine :: Lens.Lens' RDSInstanceDetails (Prelude.Maybe Prelude.Text)+rDSInstanceDetails_databaseEngine = Lens.lens (\RDSInstanceDetails' {databaseEngine} -> databaseEngine) (\s@RDSInstanceDetails' {} a -> s {databaseEngine = a} :: RDSInstanceDetails)++-- | Determines whether the recommendation is for a reservation in a single+-- Availability Zone or a reservation with a backup in a second+-- Availability Zone.+rDSInstanceDetails_deploymentOption :: Lens.Lens' RDSInstanceDetails (Prelude.Maybe Prelude.Text)+rDSInstanceDetails_deploymentOption = Lens.lens (\RDSInstanceDetails' {deploymentOption} -> deploymentOption) (\s@RDSInstanceDetails' {} a -> s {deploymentOption = a} :: RDSInstanceDetails)++-- | The instance family of the recommended reservation.+rDSInstanceDetails_family :: Lens.Lens' RDSInstanceDetails (Prelude.Maybe Prelude.Text)+rDSInstanceDetails_family = Lens.lens (\RDSInstanceDetails' {family} -> family) (\s@RDSInstanceDetails' {} a -> s {family = a} :: RDSInstanceDetails)++-- | The type of instance that Amazon Web Services recommends.+rDSInstanceDetails_instanceType :: Lens.Lens' RDSInstanceDetails (Prelude.Maybe Prelude.Text)+rDSInstanceDetails_instanceType = Lens.lens (\RDSInstanceDetails' {instanceType} -> instanceType) (\s@RDSInstanceDetails' {} a -> s {instanceType = a} :: RDSInstanceDetails)++-- | The license model that the recommended reservation supports.+rDSInstanceDetails_licenseModel :: Lens.Lens' RDSInstanceDetails (Prelude.Maybe Prelude.Text)+rDSInstanceDetails_licenseModel = Lens.lens (\RDSInstanceDetails' {licenseModel} -> licenseModel) (\s@RDSInstanceDetails' {} a -> s {licenseModel = a} :: RDSInstanceDetails)++-- | The Amazon Web Services Region of the recommended reservation.+rDSInstanceDetails_region :: Lens.Lens' RDSInstanceDetails (Prelude.Maybe Prelude.Text)+rDSInstanceDetails_region = Lens.lens (\RDSInstanceDetails' {region} -> region) (\s@RDSInstanceDetails' {} a -> s {region = a} :: RDSInstanceDetails)++-- | Determines whether the recommended reservation is size flexible.+rDSInstanceDetails_sizeFlexEligible :: Lens.Lens' RDSInstanceDetails (Prelude.Maybe Prelude.Bool)+rDSInstanceDetails_sizeFlexEligible = Lens.lens (\RDSInstanceDetails' {sizeFlexEligible} -> sizeFlexEligible) (\s@RDSInstanceDetails' {} a -> s {sizeFlexEligible = a} :: RDSInstanceDetails)++instance Data.FromJSON RDSInstanceDetails where+  parseJSON =+    Data.withObject+      "RDSInstanceDetails"+      ( \x ->+          RDSInstanceDetails'+            Prelude.<$> (x Data..:? "CurrentGeneration")+            Prelude.<*> (x Data..:? "DatabaseEdition")+            Prelude.<*> (x Data..:? "DatabaseEngine")+            Prelude.<*> (x Data..:? "DeploymentOption")+            Prelude.<*> (x Data..:? "Family")+            Prelude.<*> (x Data..:? "InstanceType")+            Prelude.<*> (x Data..:? "LicenseModel")+            Prelude.<*> (x Data..:? "Region")+            Prelude.<*> (x Data..:? "SizeFlexEligible")+      )++instance Prelude.Hashable RDSInstanceDetails where+  hashWithSalt _salt RDSInstanceDetails' {..} =+    _salt+      `Prelude.hashWithSalt` currentGeneration+      `Prelude.hashWithSalt` databaseEdition+      `Prelude.hashWithSalt` databaseEngine+      `Prelude.hashWithSalt` deploymentOption+      `Prelude.hashWithSalt` family+      `Prelude.hashWithSalt` instanceType+      `Prelude.hashWithSalt` licenseModel+      `Prelude.hashWithSalt` region+      `Prelude.hashWithSalt` sizeFlexEligible++instance Prelude.NFData RDSInstanceDetails where+  rnf RDSInstanceDetails' {..} =+    Prelude.rnf currentGeneration+      `Prelude.seq` Prelude.rnf databaseEdition+      `Prelude.seq` Prelude.rnf databaseEngine+      `Prelude.seq` Prelude.rnf deploymentOption+      `Prelude.seq` Prelude.rnf family+      `Prelude.seq` Prelude.rnf instanceType+      `Prelude.seq` Prelude.rnf licenseModel+      `Prelude.seq` Prelude.rnf region+      `Prelude.seq` Prelude.rnf sizeFlexEligible
+ gen/Amazonka/CostExplorer/Types/RecommendationTarget.hs view
@@ -0,0 +1,71 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.RecommendationTarget+-- 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.CostExplorer.Types.RecommendationTarget+  ( RecommendationTarget+      ( ..,+        RecommendationTarget_CROSS_INSTANCE_FAMILY,+        RecommendationTarget_SAME_INSTANCE_FAMILY+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype RecommendationTarget = RecommendationTarget'+  { fromRecommendationTarget ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern RecommendationTarget_CROSS_INSTANCE_FAMILY :: RecommendationTarget+pattern RecommendationTarget_CROSS_INSTANCE_FAMILY = RecommendationTarget' "CROSS_INSTANCE_FAMILY"++pattern RecommendationTarget_SAME_INSTANCE_FAMILY :: RecommendationTarget+pattern RecommendationTarget_SAME_INSTANCE_FAMILY = RecommendationTarget' "SAME_INSTANCE_FAMILY"++{-# COMPLETE+  RecommendationTarget_CROSS_INSTANCE_FAMILY,+  RecommendationTarget_SAME_INSTANCE_FAMILY,+  RecommendationTarget'+  #-}
+ gen/Amazonka/CostExplorer/Types/RedshiftInstanceDetails.hs view
@@ -0,0 +1,125 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.RedshiftInstanceDetails+-- 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.CostExplorer.Types.RedshiftInstanceDetails where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Details about the Amazon Redshift instances that Amazon Web Services+-- recommends that you purchase.+--+-- /See:/ 'newRedshiftInstanceDetails' smart constructor.+data RedshiftInstanceDetails = RedshiftInstanceDetails'+  { -- | Determines whether the recommendation is for a current-generation+    -- instance.+    currentGeneration :: Prelude.Maybe Prelude.Bool,+    -- | The instance family of the recommended reservation.+    family :: Prelude.Maybe Prelude.Text,+    -- | The type of node that Amazon Web Services recommends.+    nodeType :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Web Services Region of the recommended reservation.+    region :: Prelude.Maybe Prelude.Text,+    -- | Determines whether the recommended reservation is size flexible.+    sizeFlexEligible :: Prelude.Maybe Prelude.Bool+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RedshiftInstanceDetails' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'currentGeneration', 'redshiftInstanceDetails_currentGeneration' - Determines whether the recommendation is for a current-generation+-- instance.+--+-- 'family', 'redshiftInstanceDetails_family' - The instance family of the recommended reservation.+--+-- 'nodeType', 'redshiftInstanceDetails_nodeType' - The type of node that Amazon Web Services recommends.+--+-- 'region', 'redshiftInstanceDetails_region' - The Amazon Web Services Region of the recommended reservation.+--+-- 'sizeFlexEligible', 'redshiftInstanceDetails_sizeFlexEligible' - Determines whether the recommended reservation is size flexible.+newRedshiftInstanceDetails ::+  RedshiftInstanceDetails+newRedshiftInstanceDetails =+  RedshiftInstanceDetails'+    { currentGeneration =+        Prelude.Nothing,+      family = Prelude.Nothing,+      nodeType = Prelude.Nothing,+      region = Prelude.Nothing,+      sizeFlexEligible = Prelude.Nothing+    }++-- | Determines whether the recommendation is for a current-generation+-- instance.+redshiftInstanceDetails_currentGeneration :: Lens.Lens' RedshiftInstanceDetails (Prelude.Maybe Prelude.Bool)+redshiftInstanceDetails_currentGeneration = Lens.lens (\RedshiftInstanceDetails' {currentGeneration} -> currentGeneration) (\s@RedshiftInstanceDetails' {} a -> s {currentGeneration = a} :: RedshiftInstanceDetails)++-- | The instance family of the recommended reservation.+redshiftInstanceDetails_family :: Lens.Lens' RedshiftInstanceDetails (Prelude.Maybe Prelude.Text)+redshiftInstanceDetails_family = Lens.lens (\RedshiftInstanceDetails' {family} -> family) (\s@RedshiftInstanceDetails' {} a -> s {family = a} :: RedshiftInstanceDetails)++-- | The type of node that Amazon Web Services recommends.+redshiftInstanceDetails_nodeType :: Lens.Lens' RedshiftInstanceDetails (Prelude.Maybe Prelude.Text)+redshiftInstanceDetails_nodeType = Lens.lens (\RedshiftInstanceDetails' {nodeType} -> nodeType) (\s@RedshiftInstanceDetails' {} a -> s {nodeType = a} :: RedshiftInstanceDetails)++-- | The Amazon Web Services Region of the recommended reservation.+redshiftInstanceDetails_region :: Lens.Lens' RedshiftInstanceDetails (Prelude.Maybe Prelude.Text)+redshiftInstanceDetails_region = Lens.lens (\RedshiftInstanceDetails' {region} -> region) (\s@RedshiftInstanceDetails' {} a -> s {region = a} :: RedshiftInstanceDetails)++-- | Determines whether the recommended reservation is size flexible.+redshiftInstanceDetails_sizeFlexEligible :: Lens.Lens' RedshiftInstanceDetails (Prelude.Maybe Prelude.Bool)+redshiftInstanceDetails_sizeFlexEligible = Lens.lens (\RedshiftInstanceDetails' {sizeFlexEligible} -> sizeFlexEligible) (\s@RedshiftInstanceDetails' {} a -> s {sizeFlexEligible = a} :: RedshiftInstanceDetails)++instance Data.FromJSON RedshiftInstanceDetails where+  parseJSON =+    Data.withObject+      "RedshiftInstanceDetails"+      ( \x ->+          RedshiftInstanceDetails'+            Prelude.<$> (x Data..:? "CurrentGeneration")+            Prelude.<*> (x Data..:? "Family")+            Prelude.<*> (x Data..:? "NodeType")+            Prelude.<*> (x Data..:? "Region")+            Prelude.<*> (x Data..:? "SizeFlexEligible")+      )++instance Prelude.Hashable RedshiftInstanceDetails where+  hashWithSalt _salt RedshiftInstanceDetails' {..} =+    _salt+      `Prelude.hashWithSalt` currentGeneration+      `Prelude.hashWithSalt` family+      `Prelude.hashWithSalt` nodeType+      `Prelude.hashWithSalt` region+      `Prelude.hashWithSalt` sizeFlexEligible++instance Prelude.NFData RedshiftInstanceDetails where+  rnf RedshiftInstanceDetails' {..} =+    Prelude.rnf currentGeneration+      `Prelude.seq` Prelude.rnf family+      `Prelude.seq` Prelude.rnf nodeType+      `Prelude.seq` Prelude.rnf region+      `Prelude.seq` Prelude.rnf sizeFlexEligible
+ gen/Amazonka/CostExplorer/Types/ReservationAggregates.hs view
@@ -0,0 +1,305 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.ReservationAggregates+-- 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.CostExplorer.Types.ReservationAggregates where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The aggregated numbers for your reservation usage.+--+-- /See:/ 'newReservationAggregates' smart constructor.+data ReservationAggregates = ReservationAggregates'+  { -- | The monthly cost of your reservation. It\'s amortized over the+    -- reservation period.+    amortizedRecurringFee :: Prelude.Maybe Prelude.Text,+    -- | The upfront cost of your reservation. It\'s amortized over the+    -- reservation period.+    amortizedUpfrontFee :: Prelude.Maybe Prelude.Text,+    -- | How much you saved due to purchasing and utilizing reservation. Amazon+    -- Web Services calculates this by subtracting @TotalAmortizedFee@ from+    -- @OnDemandCostOfRIHoursUsed@.+    netRISavings :: Prelude.Maybe Prelude.Text,+    -- | How much your reservation costs if charged On-Demand rates.+    onDemandCostOfRIHoursUsed :: Prelude.Maybe Prelude.Text,+    -- | How many reservation hours that you purchased.+    purchasedHours :: Prelude.Maybe Prelude.Text,+    -- | The number of Amazon EC2 reservation hours that you purchased. It\'s+    -- converted to normalized units. Normalized units are available only for+    -- Amazon EC2 usage after November 11, 2017.+    purchasedUnits :: Prelude.Maybe Prelude.Text,+    -- | The cost of unused hours for your reservation.+    rICostForUnusedHours :: Prelude.Maybe Prelude.Text,+    -- | The realized savings because of purchasing and using a reservation.+    realizedSavings :: Prelude.Maybe Prelude.Text,+    -- | The total number of reservation hours that you used.+    totalActualHours :: Prelude.Maybe Prelude.Text,+    -- | The total number of Amazon EC2 reservation hours that you used. It\'s+    -- converted to normalized units. Normalized units are available only for+    -- Amazon EC2 usage after November 11, 2017.+    totalActualUnits :: Prelude.Maybe Prelude.Text,+    -- | The total cost of your reservation. It\'s amortized over the reservation+    -- period.+    totalAmortizedFee :: Prelude.Maybe Prelude.Text,+    -- | How much you might save if you use your entire reservation.+    totalPotentialRISavings :: Prelude.Maybe Prelude.Text,+    -- | The unrealized savings because of purchasing and using a reservation.+    unrealizedSavings :: Prelude.Maybe Prelude.Text,+    -- | The number of reservation hours that you didn\'t use.+    unusedHours :: Prelude.Maybe Prelude.Text,+    -- | The number of Amazon EC2 reservation hours that you didn\'t use. It\'s+    -- converted to normalized units. Normalized units are available only for+    -- Amazon EC2 usage after November 11, 2017.+    unusedUnits :: Prelude.Maybe Prelude.Text,+    -- | The percentage of reservation time that you used.+    utilizationPercentage :: Prelude.Maybe Prelude.Text,+    -- | The percentage of Amazon EC2 reservation time that you used. It\'s+    -- converted to normalized units. Normalized units are available only for+    -- Amazon EC2 usage after November 11, 2017.+    utilizationPercentageInUnits :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ReservationAggregates' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'amortizedRecurringFee', 'reservationAggregates_amortizedRecurringFee' - The monthly cost of your reservation. It\'s amortized over the+-- reservation period.+--+-- 'amortizedUpfrontFee', 'reservationAggregates_amortizedUpfrontFee' - The upfront cost of your reservation. It\'s amortized over the+-- reservation period.+--+-- 'netRISavings', 'reservationAggregates_netRISavings' - How much you saved due to purchasing and utilizing reservation. Amazon+-- Web Services calculates this by subtracting @TotalAmortizedFee@ from+-- @OnDemandCostOfRIHoursUsed@.+--+-- 'onDemandCostOfRIHoursUsed', 'reservationAggregates_onDemandCostOfRIHoursUsed' - How much your reservation costs if charged On-Demand rates.+--+-- 'purchasedHours', 'reservationAggregates_purchasedHours' - How many reservation hours that you purchased.+--+-- 'purchasedUnits', 'reservationAggregates_purchasedUnits' - The number of Amazon EC2 reservation hours that you purchased. It\'s+-- converted to normalized units. Normalized units are available only for+-- Amazon EC2 usage after November 11, 2017.+--+-- 'rICostForUnusedHours', 'reservationAggregates_rICostForUnusedHours' - The cost of unused hours for your reservation.+--+-- 'realizedSavings', 'reservationAggregates_realizedSavings' - The realized savings because of purchasing and using a reservation.+--+-- 'totalActualHours', 'reservationAggregates_totalActualHours' - The total number of reservation hours that you used.+--+-- 'totalActualUnits', 'reservationAggregates_totalActualUnits' - The total number of Amazon EC2 reservation hours that you used. It\'s+-- converted to normalized units. Normalized units are available only for+-- Amazon EC2 usage after November 11, 2017.+--+-- 'totalAmortizedFee', 'reservationAggregates_totalAmortizedFee' - The total cost of your reservation. It\'s amortized over the reservation+-- period.+--+-- 'totalPotentialRISavings', 'reservationAggregates_totalPotentialRISavings' - How much you might save if you use your entire reservation.+--+-- 'unrealizedSavings', 'reservationAggregates_unrealizedSavings' - The unrealized savings because of purchasing and using a reservation.+--+-- 'unusedHours', 'reservationAggregates_unusedHours' - The number of reservation hours that you didn\'t use.+--+-- 'unusedUnits', 'reservationAggregates_unusedUnits' - The number of Amazon EC2 reservation hours that you didn\'t use. It\'s+-- converted to normalized units. Normalized units are available only for+-- Amazon EC2 usage after November 11, 2017.+--+-- 'utilizationPercentage', 'reservationAggregates_utilizationPercentage' - The percentage of reservation time that you used.+--+-- 'utilizationPercentageInUnits', 'reservationAggregates_utilizationPercentageInUnits' - The percentage of Amazon EC2 reservation time that you used. It\'s+-- converted to normalized units. Normalized units are available only for+-- Amazon EC2 usage after November 11, 2017.+newReservationAggregates ::+  ReservationAggregates+newReservationAggregates =+  ReservationAggregates'+    { amortizedRecurringFee =+        Prelude.Nothing,+      amortizedUpfrontFee = Prelude.Nothing,+      netRISavings = Prelude.Nothing,+      onDemandCostOfRIHoursUsed = Prelude.Nothing,+      purchasedHours = Prelude.Nothing,+      purchasedUnits = Prelude.Nothing,+      rICostForUnusedHours = Prelude.Nothing,+      realizedSavings = Prelude.Nothing,+      totalActualHours = Prelude.Nothing,+      totalActualUnits = Prelude.Nothing,+      totalAmortizedFee = Prelude.Nothing,+      totalPotentialRISavings = Prelude.Nothing,+      unrealizedSavings = Prelude.Nothing,+      unusedHours = Prelude.Nothing,+      unusedUnits = Prelude.Nothing,+      utilizationPercentage = Prelude.Nothing,+      utilizationPercentageInUnits = Prelude.Nothing+    }++-- | The monthly cost of your reservation. It\'s amortized over the+-- reservation period.+reservationAggregates_amortizedRecurringFee :: Lens.Lens' ReservationAggregates (Prelude.Maybe Prelude.Text)+reservationAggregates_amortizedRecurringFee = Lens.lens (\ReservationAggregates' {amortizedRecurringFee} -> amortizedRecurringFee) (\s@ReservationAggregates' {} a -> s {amortizedRecurringFee = a} :: ReservationAggregates)++-- | The upfront cost of your reservation. It\'s amortized over the+-- reservation period.+reservationAggregates_amortizedUpfrontFee :: Lens.Lens' ReservationAggregates (Prelude.Maybe Prelude.Text)+reservationAggregates_amortizedUpfrontFee = Lens.lens (\ReservationAggregates' {amortizedUpfrontFee} -> amortizedUpfrontFee) (\s@ReservationAggregates' {} a -> s {amortizedUpfrontFee = a} :: ReservationAggregates)++-- | How much you saved due to purchasing and utilizing reservation. Amazon+-- Web Services calculates this by subtracting @TotalAmortizedFee@ from+-- @OnDemandCostOfRIHoursUsed@.+reservationAggregates_netRISavings :: Lens.Lens' ReservationAggregates (Prelude.Maybe Prelude.Text)+reservationAggregates_netRISavings = Lens.lens (\ReservationAggregates' {netRISavings} -> netRISavings) (\s@ReservationAggregates' {} a -> s {netRISavings = a} :: ReservationAggregates)++-- | How much your reservation costs if charged On-Demand rates.+reservationAggregates_onDemandCostOfRIHoursUsed :: Lens.Lens' ReservationAggregates (Prelude.Maybe Prelude.Text)+reservationAggregates_onDemandCostOfRIHoursUsed = Lens.lens (\ReservationAggregates' {onDemandCostOfRIHoursUsed} -> onDemandCostOfRIHoursUsed) (\s@ReservationAggregates' {} a -> s {onDemandCostOfRIHoursUsed = a} :: ReservationAggregates)++-- | How many reservation hours that you purchased.+reservationAggregates_purchasedHours :: Lens.Lens' ReservationAggregates (Prelude.Maybe Prelude.Text)+reservationAggregates_purchasedHours = Lens.lens (\ReservationAggregates' {purchasedHours} -> purchasedHours) (\s@ReservationAggregates' {} a -> s {purchasedHours = a} :: ReservationAggregates)++-- | The number of Amazon EC2 reservation hours that you purchased. It\'s+-- converted to normalized units. Normalized units are available only for+-- Amazon EC2 usage after November 11, 2017.+reservationAggregates_purchasedUnits :: Lens.Lens' ReservationAggregates (Prelude.Maybe Prelude.Text)+reservationAggregates_purchasedUnits = Lens.lens (\ReservationAggregates' {purchasedUnits} -> purchasedUnits) (\s@ReservationAggregates' {} a -> s {purchasedUnits = a} :: ReservationAggregates)++-- | The cost of unused hours for your reservation.+reservationAggregates_rICostForUnusedHours :: Lens.Lens' ReservationAggregates (Prelude.Maybe Prelude.Text)+reservationAggregates_rICostForUnusedHours = Lens.lens (\ReservationAggregates' {rICostForUnusedHours} -> rICostForUnusedHours) (\s@ReservationAggregates' {} a -> s {rICostForUnusedHours = a} :: ReservationAggregates)++-- | The realized savings because of purchasing and using a reservation.+reservationAggregates_realizedSavings :: Lens.Lens' ReservationAggregates (Prelude.Maybe Prelude.Text)+reservationAggregates_realizedSavings = Lens.lens (\ReservationAggregates' {realizedSavings} -> realizedSavings) (\s@ReservationAggregates' {} a -> s {realizedSavings = a} :: ReservationAggregates)++-- | The total number of reservation hours that you used.+reservationAggregates_totalActualHours :: Lens.Lens' ReservationAggregates (Prelude.Maybe Prelude.Text)+reservationAggregates_totalActualHours = Lens.lens (\ReservationAggregates' {totalActualHours} -> totalActualHours) (\s@ReservationAggregates' {} a -> s {totalActualHours = a} :: ReservationAggregates)++-- | The total number of Amazon EC2 reservation hours that you used. It\'s+-- converted to normalized units. Normalized units are available only for+-- Amazon EC2 usage after November 11, 2017.+reservationAggregates_totalActualUnits :: Lens.Lens' ReservationAggregates (Prelude.Maybe Prelude.Text)+reservationAggregates_totalActualUnits = Lens.lens (\ReservationAggregates' {totalActualUnits} -> totalActualUnits) (\s@ReservationAggregates' {} a -> s {totalActualUnits = a} :: ReservationAggregates)++-- | The total cost of your reservation. It\'s amortized over the reservation+-- period.+reservationAggregates_totalAmortizedFee :: Lens.Lens' ReservationAggregates (Prelude.Maybe Prelude.Text)+reservationAggregates_totalAmortizedFee = Lens.lens (\ReservationAggregates' {totalAmortizedFee} -> totalAmortizedFee) (\s@ReservationAggregates' {} a -> s {totalAmortizedFee = a} :: ReservationAggregates)++-- | How much you might save if you use your entire reservation.+reservationAggregates_totalPotentialRISavings :: Lens.Lens' ReservationAggregates (Prelude.Maybe Prelude.Text)+reservationAggregates_totalPotentialRISavings = Lens.lens (\ReservationAggregates' {totalPotentialRISavings} -> totalPotentialRISavings) (\s@ReservationAggregates' {} a -> s {totalPotentialRISavings = a} :: ReservationAggregates)++-- | The unrealized savings because of purchasing and using a reservation.+reservationAggregates_unrealizedSavings :: Lens.Lens' ReservationAggregates (Prelude.Maybe Prelude.Text)+reservationAggregates_unrealizedSavings = Lens.lens (\ReservationAggregates' {unrealizedSavings} -> unrealizedSavings) (\s@ReservationAggregates' {} a -> s {unrealizedSavings = a} :: ReservationAggregates)++-- | The number of reservation hours that you didn\'t use.+reservationAggregates_unusedHours :: Lens.Lens' ReservationAggregates (Prelude.Maybe Prelude.Text)+reservationAggregates_unusedHours = Lens.lens (\ReservationAggregates' {unusedHours} -> unusedHours) (\s@ReservationAggregates' {} a -> s {unusedHours = a} :: ReservationAggregates)++-- | The number of Amazon EC2 reservation hours that you didn\'t use. It\'s+-- converted to normalized units. Normalized units are available only for+-- Amazon EC2 usage after November 11, 2017.+reservationAggregates_unusedUnits :: Lens.Lens' ReservationAggregates (Prelude.Maybe Prelude.Text)+reservationAggregates_unusedUnits = Lens.lens (\ReservationAggregates' {unusedUnits} -> unusedUnits) (\s@ReservationAggregates' {} a -> s {unusedUnits = a} :: ReservationAggregates)++-- | The percentage of reservation time that you used.+reservationAggregates_utilizationPercentage :: Lens.Lens' ReservationAggregates (Prelude.Maybe Prelude.Text)+reservationAggregates_utilizationPercentage = Lens.lens (\ReservationAggregates' {utilizationPercentage} -> utilizationPercentage) (\s@ReservationAggregates' {} a -> s {utilizationPercentage = a} :: ReservationAggregates)++-- | The percentage of Amazon EC2 reservation time that you used. It\'s+-- converted to normalized units. Normalized units are available only for+-- Amazon EC2 usage after November 11, 2017.+reservationAggregates_utilizationPercentageInUnits :: Lens.Lens' ReservationAggregates (Prelude.Maybe Prelude.Text)+reservationAggregates_utilizationPercentageInUnits = Lens.lens (\ReservationAggregates' {utilizationPercentageInUnits} -> utilizationPercentageInUnits) (\s@ReservationAggregates' {} a -> s {utilizationPercentageInUnits = a} :: ReservationAggregates)++instance Data.FromJSON ReservationAggregates where+  parseJSON =+    Data.withObject+      "ReservationAggregates"+      ( \x ->+          ReservationAggregates'+            Prelude.<$> (x Data..:? "AmortizedRecurringFee")+            Prelude.<*> (x Data..:? "AmortizedUpfrontFee")+            Prelude.<*> (x Data..:? "NetRISavings")+            Prelude.<*> (x Data..:? "OnDemandCostOfRIHoursUsed")+            Prelude.<*> (x Data..:? "PurchasedHours")+            Prelude.<*> (x Data..:? "PurchasedUnits")+            Prelude.<*> (x Data..:? "RICostForUnusedHours")+            Prelude.<*> (x Data..:? "RealizedSavings")+            Prelude.<*> (x Data..:? "TotalActualHours")+            Prelude.<*> (x Data..:? "TotalActualUnits")+            Prelude.<*> (x Data..:? "TotalAmortizedFee")+            Prelude.<*> (x Data..:? "TotalPotentialRISavings")+            Prelude.<*> (x Data..:? "UnrealizedSavings")+            Prelude.<*> (x Data..:? "UnusedHours")+            Prelude.<*> (x Data..:? "UnusedUnits")+            Prelude.<*> (x Data..:? "UtilizationPercentage")+            Prelude.<*> (x Data..:? "UtilizationPercentageInUnits")+      )++instance Prelude.Hashable ReservationAggregates where+  hashWithSalt _salt ReservationAggregates' {..} =+    _salt+      `Prelude.hashWithSalt` amortizedRecurringFee+      `Prelude.hashWithSalt` amortizedUpfrontFee+      `Prelude.hashWithSalt` netRISavings+      `Prelude.hashWithSalt` onDemandCostOfRIHoursUsed+      `Prelude.hashWithSalt` purchasedHours+      `Prelude.hashWithSalt` purchasedUnits+      `Prelude.hashWithSalt` rICostForUnusedHours+      `Prelude.hashWithSalt` realizedSavings+      `Prelude.hashWithSalt` totalActualHours+      `Prelude.hashWithSalt` totalActualUnits+      `Prelude.hashWithSalt` totalAmortizedFee+      `Prelude.hashWithSalt` totalPotentialRISavings+      `Prelude.hashWithSalt` unrealizedSavings+      `Prelude.hashWithSalt` unusedHours+      `Prelude.hashWithSalt` unusedUnits+      `Prelude.hashWithSalt` utilizationPercentage+      `Prelude.hashWithSalt` utilizationPercentageInUnits++instance Prelude.NFData ReservationAggregates where+  rnf ReservationAggregates' {..} =+    Prelude.rnf amortizedRecurringFee+      `Prelude.seq` Prelude.rnf amortizedUpfrontFee+      `Prelude.seq` Prelude.rnf netRISavings+      `Prelude.seq` Prelude.rnf onDemandCostOfRIHoursUsed+      `Prelude.seq` Prelude.rnf purchasedHours+      `Prelude.seq` Prelude.rnf purchasedUnits+      `Prelude.seq` Prelude.rnf rICostForUnusedHours+      `Prelude.seq` Prelude.rnf realizedSavings+      `Prelude.seq` Prelude.rnf totalActualHours+      `Prelude.seq` Prelude.rnf totalActualUnits+      `Prelude.seq` Prelude.rnf totalAmortizedFee+      `Prelude.seq` Prelude.rnf totalPotentialRISavings+      `Prelude.seq` Prelude.rnf unrealizedSavings+      `Prelude.seq` Prelude.rnf unusedHours+      `Prelude.seq` Prelude.rnf unusedUnits+      `Prelude.seq` Prelude.rnf utilizationPercentage+      `Prelude.seq` Prelude.rnf+        utilizationPercentageInUnits
+ gen/Amazonka/CostExplorer/Types/ReservationCoverageGroup.hs view
@@ -0,0 +1,86 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.ReservationCoverageGroup+-- 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.CostExplorer.Types.ReservationCoverageGroup where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CostExplorer.Types.Coverage+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | A group of reservations that share a set of attributes.+--+-- /See:/ 'newReservationCoverageGroup' smart constructor.+data ReservationCoverageGroup = ReservationCoverageGroup'+  { -- | The attributes for this group of reservations.+    attributes :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | How much instance usage this group of reservations covered.+    coverage :: Prelude.Maybe Coverage+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ReservationCoverageGroup' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'attributes', 'reservationCoverageGroup_attributes' - The attributes for this group of reservations.+--+-- 'coverage', 'reservationCoverageGroup_coverage' - How much instance usage this group of reservations covered.+newReservationCoverageGroup ::+  ReservationCoverageGroup+newReservationCoverageGroup =+  ReservationCoverageGroup'+    { attributes =+        Prelude.Nothing,+      coverage = Prelude.Nothing+    }++-- | The attributes for this group of reservations.+reservationCoverageGroup_attributes :: Lens.Lens' ReservationCoverageGroup (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+reservationCoverageGroup_attributes = Lens.lens (\ReservationCoverageGroup' {attributes} -> attributes) (\s@ReservationCoverageGroup' {} a -> s {attributes = a} :: ReservationCoverageGroup) Prelude.. Lens.mapping Lens.coerced++-- | How much instance usage this group of reservations covered.+reservationCoverageGroup_coverage :: Lens.Lens' ReservationCoverageGroup (Prelude.Maybe Coverage)+reservationCoverageGroup_coverage = Lens.lens (\ReservationCoverageGroup' {coverage} -> coverage) (\s@ReservationCoverageGroup' {} a -> s {coverage = a} :: ReservationCoverageGroup)++instance Data.FromJSON ReservationCoverageGroup where+  parseJSON =+    Data.withObject+      "ReservationCoverageGroup"+      ( \x ->+          ReservationCoverageGroup'+            Prelude.<$> (x Data..:? "Attributes" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "Coverage")+      )++instance Prelude.Hashable ReservationCoverageGroup where+  hashWithSalt _salt ReservationCoverageGroup' {..} =+    _salt+      `Prelude.hashWithSalt` attributes+      `Prelude.hashWithSalt` coverage++instance Prelude.NFData ReservationCoverageGroup where+  rnf ReservationCoverageGroup' {..} =+    Prelude.rnf attributes+      `Prelude.seq` Prelude.rnf coverage
+ gen/Amazonka/CostExplorer/Types/ReservationPurchaseRecommendation.hs view
@@ -0,0 +1,181 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.ReservationPurchaseRecommendation+-- 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.CostExplorer.Types.ReservationPurchaseRecommendation where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CostExplorer.Types.AccountScope+import Amazonka.CostExplorer.Types.LookbackPeriodInDays+import Amazonka.CostExplorer.Types.PaymentOption+import Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationDetail+import Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationSummary+import Amazonka.CostExplorer.Types.ServiceSpecification+import Amazonka.CostExplorer.Types.TermInYears+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | A specific reservation that Amazon Web Services recommends for purchase.+--+-- /See:/ 'newReservationPurchaseRecommendation' smart constructor.+data ReservationPurchaseRecommendation = ReservationPurchaseRecommendation'+  { -- | The account scope that Amazon Web Services recommends that you purchase+    -- this instance for. For example, you can purchase this reservation for an+    -- entire organization in Amazon Web Services Organizations.+    accountScope :: Prelude.Maybe AccountScope,+    -- | How many days of previous usage that Amazon Web Services considers when+    -- making this recommendation.+    lookbackPeriodInDays :: Prelude.Maybe LookbackPeriodInDays,+    -- | The payment option for the reservation (for example, @AllUpfront@ or+    -- @NoUpfront@).+    paymentOption :: Prelude.Maybe PaymentOption,+    -- | Details about the recommended purchases.+    recommendationDetails :: Prelude.Maybe [ReservationPurchaseRecommendationDetail],+    -- | A summary about the recommended purchase.+    recommendationSummary :: Prelude.Maybe ReservationPurchaseRecommendationSummary,+    -- | Hardware specifications for the service that you want recommendations+    -- for.+    serviceSpecification :: Prelude.Maybe ServiceSpecification,+    -- | The term of the reservation that you want recommendations for, in years.+    termInYears :: Prelude.Maybe TermInYears+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ReservationPurchaseRecommendation' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'accountScope', 'reservationPurchaseRecommendation_accountScope' - The account scope that Amazon Web Services recommends that you purchase+-- this instance for. For example, you can purchase this reservation for an+-- entire organization in Amazon Web Services Organizations.+--+-- 'lookbackPeriodInDays', 'reservationPurchaseRecommendation_lookbackPeriodInDays' - How many days of previous usage that Amazon Web Services considers when+-- making this recommendation.+--+-- 'paymentOption', 'reservationPurchaseRecommendation_paymentOption' - The payment option for the reservation (for example, @AllUpfront@ or+-- @NoUpfront@).+--+-- 'recommendationDetails', 'reservationPurchaseRecommendation_recommendationDetails' - Details about the recommended purchases.+--+-- 'recommendationSummary', 'reservationPurchaseRecommendation_recommendationSummary' - A summary about the recommended purchase.+--+-- 'serviceSpecification', 'reservationPurchaseRecommendation_serviceSpecification' - Hardware specifications for the service that you want recommendations+-- for.+--+-- 'termInYears', 'reservationPurchaseRecommendation_termInYears' - The term of the reservation that you want recommendations for, in years.+newReservationPurchaseRecommendation ::+  ReservationPurchaseRecommendation+newReservationPurchaseRecommendation =+  ReservationPurchaseRecommendation'+    { accountScope =+        Prelude.Nothing,+      lookbackPeriodInDays = Prelude.Nothing,+      paymentOption = Prelude.Nothing,+      recommendationDetails = Prelude.Nothing,+      recommendationSummary = Prelude.Nothing,+      serviceSpecification = Prelude.Nothing,+      termInYears = Prelude.Nothing+    }++-- | The account scope that Amazon Web Services recommends that you purchase+-- this instance for. For example, you can purchase this reservation for an+-- entire organization in Amazon Web Services Organizations.+reservationPurchaseRecommendation_accountScope :: Lens.Lens' ReservationPurchaseRecommendation (Prelude.Maybe AccountScope)+reservationPurchaseRecommendation_accountScope = Lens.lens (\ReservationPurchaseRecommendation' {accountScope} -> accountScope) (\s@ReservationPurchaseRecommendation' {} a -> s {accountScope = a} :: ReservationPurchaseRecommendation)++-- | How many days of previous usage that Amazon Web Services considers when+-- making this recommendation.+reservationPurchaseRecommendation_lookbackPeriodInDays :: Lens.Lens' ReservationPurchaseRecommendation (Prelude.Maybe LookbackPeriodInDays)+reservationPurchaseRecommendation_lookbackPeriodInDays = Lens.lens (\ReservationPurchaseRecommendation' {lookbackPeriodInDays} -> lookbackPeriodInDays) (\s@ReservationPurchaseRecommendation' {} a -> s {lookbackPeriodInDays = a} :: ReservationPurchaseRecommendation)++-- | The payment option for the reservation (for example, @AllUpfront@ or+-- @NoUpfront@).+reservationPurchaseRecommendation_paymentOption :: Lens.Lens' ReservationPurchaseRecommendation (Prelude.Maybe PaymentOption)+reservationPurchaseRecommendation_paymentOption = Lens.lens (\ReservationPurchaseRecommendation' {paymentOption} -> paymentOption) (\s@ReservationPurchaseRecommendation' {} a -> s {paymentOption = a} :: ReservationPurchaseRecommendation)++-- | Details about the recommended purchases.+reservationPurchaseRecommendation_recommendationDetails :: Lens.Lens' ReservationPurchaseRecommendation (Prelude.Maybe [ReservationPurchaseRecommendationDetail])+reservationPurchaseRecommendation_recommendationDetails = Lens.lens (\ReservationPurchaseRecommendation' {recommendationDetails} -> recommendationDetails) (\s@ReservationPurchaseRecommendation' {} a -> s {recommendationDetails = a} :: ReservationPurchaseRecommendation) Prelude.. Lens.mapping Lens.coerced++-- | A summary about the recommended purchase.+reservationPurchaseRecommendation_recommendationSummary :: Lens.Lens' ReservationPurchaseRecommendation (Prelude.Maybe ReservationPurchaseRecommendationSummary)+reservationPurchaseRecommendation_recommendationSummary = Lens.lens (\ReservationPurchaseRecommendation' {recommendationSummary} -> recommendationSummary) (\s@ReservationPurchaseRecommendation' {} a -> s {recommendationSummary = a} :: ReservationPurchaseRecommendation)++-- | Hardware specifications for the service that you want recommendations+-- for.+reservationPurchaseRecommendation_serviceSpecification :: Lens.Lens' ReservationPurchaseRecommendation (Prelude.Maybe ServiceSpecification)+reservationPurchaseRecommendation_serviceSpecification = Lens.lens (\ReservationPurchaseRecommendation' {serviceSpecification} -> serviceSpecification) (\s@ReservationPurchaseRecommendation' {} a -> s {serviceSpecification = a} :: ReservationPurchaseRecommendation)++-- | The term of the reservation that you want recommendations for, in years.+reservationPurchaseRecommendation_termInYears :: Lens.Lens' ReservationPurchaseRecommendation (Prelude.Maybe TermInYears)+reservationPurchaseRecommendation_termInYears = Lens.lens (\ReservationPurchaseRecommendation' {termInYears} -> termInYears) (\s@ReservationPurchaseRecommendation' {} a -> s {termInYears = a} :: ReservationPurchaseRecommendation)++instance+  Data.FromJSON+    ReservationPurchaseRecommendation+  where+  parseJSON =+    Data.withObject+      "ReservationPurchaseRecommendation"+      ( \x ->+          ReservationPurchaseRecommendation'+            Prelude.<$> (x Data..:? "AccountScope")+            Prelude.<*> (x Data..:? "LookbackPeriodInDays")+            Prelude.<*> (x Data..:? "PaymentOption")+            Prelude.<*> ( x+                            Data..:? "RecommendationDetails"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "RecommendationSummary")+            Prelude.<*> (x Data..:? "ServiceSpecification")+            Prelude.<*> (x Data..:? "TermInYears")+      )++instance+  Prelude.Hashable+    ReservationPurchaseRecommendation+  where+  hashWithSalt+    _salt+    ReservationPurchaseRecommendation' {..} =+      _salt+        `Prelude.hashWithSalt` accountScope+        `Prelude.hashWithSalt` lookbackPeriodInDays+        `Prelude.hashWithSalt` paymentOption+        `Prelude.hashWithSalt` recommendationDetails+        `Prelude.hashWithSalt` recommendationSummary+        `Prelude.hashWithSalt` serviceSpecification+        `Prelude.hashWithSalt` termInYears++instance+  Prelude.NFData+    ReservationPurchaseRecommendation+  where+  rnf ReservationPurchaseRecommendation' {..} =+    Prelude.rnf accountScope+      `Prelude.seq` Prelude.rnf lookbackPeriodInDays+      `Prelude.seq` Prelude.rnf paymentOption+      `Prelude.seq` Prelude.rnf recommendationDetails+      `Prelude.seq` Prelude.rnf recommendationSummary+      `Prelude.seq` Prelude.rnf serviceSpecification+      `Prelude.seq` Prelude.rnf termInYears
+ gen/Amazonka/CostExplorer/Types/ReservationPurchaseRecommendationDetail.hs view
@@ -0,0 +1,391 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationDetail+-- 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.CostExplorer.Types.ReservationPurchaseRecommendationDetail where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CostExplorer.Types.InstanceDetails+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Details about your recommended reservation purchase.+--+-- /See:/ 'newReservationPurchaseRecommendationDetail' smart constructor.+data ReservationPurchaseRecommendationDetail = ReservationPurchaseRecommendationDetail'+  { -- | The account that this Reserved Instance (RI) recommendation is for.+    accountId :: Prelude.Maybe Prelude.Text,+    -- | The average number of normalized units that you used in an hour during+    -- the historical period. Amazon Web Services uses this to calculate your+    -- recommended reservation purchases.+    averageNormalizedUnitsUsedPerHour :: Prelude.Maybe Prelude.Text,+    -- | The average number of instances that you used in an hour during the+    -- historical period. Amazon Web Services uses this to calculate your+    -- recommended reservation purchases.+    averageNumberOfInstancesUsedPerHour :: Prelude.Maybe Prelude.Text,+    -- | The average utilization of your instances. Amazon Web Services uses this+    -- to calculate your recommended reservation purchases.+    averageUtilization :: Prelude.Maybe Prelude.Text,+    -- | The currency code that Amazon Web Services used to calculate the costs+    -- for this instance.+    currencyCode :: Prelude.Maybe Prelude.Text,+    -- | How long Amazon Web Services estimates that it takes for this instance+    -- to start saving you money, in months.+    estimatedBreakEvenInMonths :: Prelude.Maybe Prelude.Text,+    -- | How much Amazon Web Services estimates that you spend on On-Demand+    -- Instances in a month.+    estimatedMonthlyOnDemandCost :: Prelude.Maybe Prelude.Text,+    -- | How much Amazon Web Services estimates that this specific recommendation+    -- might save you in a month.+    estimatedMonthlySavingsAmount :: Prelude.Maybe Prelude.Text,+    -- | How much Amazon Web Services estimates that this specific recommendation+    -- might save you in a month, as a percentage of your overall costs.+    estimatedMonthlySavingsPercentage :: Prelude.Maybe Prelude.Text,+    -- | How much Amazon Web Services estimates that you might spend for all+    -- usage during the specified historical period if you had a reservation.+    estimatedReservationCostForLookbackPeriod :: Prelude.Maybe Prelude.Text,+    -- | Details about the instances that Amazon Web Services recommends that you+    -- purchase.+    instanceDetails :: Prelude.Maybe InstanceDetails,+    -- | The maximum number of normalized units that you used in an hour during+    -- the historical period. Amazon Web Services uses this to calculate your+    -- recommended reservation purchases.+    maximumNormalizedUnitsUsedPerHour :: Prelude.Maybe Prelude.Text,+    -- | The maximum number of instances that you used in an hour during the+    -- historical period. Amazon Web Services uses this to calculate your+    -- recommended reservation purchases.+    maximumNumberOfInstancesUsedPerHour :: Prelude.Maybe Prelude.Text,+    -- | The minimum number of normalized units that you used in an hour during+    -- the historical period. Amazon Web Services uses this to calculate your+    -- recommended reservation purchases.+    minimumNormalizedUnitsUsedPerHour :: Prelude.Maybe Prelude.Text,+    -- | The minimum number of instances that you used in an hour during the+    -- historical period. Amazon Web Services uses this to calculate your+    -- recommended reservation purchases.+    minimumNumberOfInstancesUsedPerHour :: Prelude.Maybe Prelude.Text,+    -- | The number of normalized units that Amazon Web Services recommends that+    -- you purchase.+    recommendedNormalizedUnitsToPurchase :: Prelude.Maybe Prelude.Text,+    -- | The number of instances that Amazon Web Services recommends that you+    -- purchase.+    recommendedNumberOfInstancesToPurchase :: Prelude.Maybe Prelude.Text,+    -- | How much purchasing this instance costs you on a monthly basis.+    recurringStandardMonthlyCost :: Prelude.Maybe Prelude.Text,+    -- | How much purchasing this instance costs you upfront.+    upfrontCost :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ReservationPurchaseRecommendationDetail' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'accountId', 'reservationPurchaseRecommendationDetail_accountId' - The account that this Reserved Instance (RI) recommendation is for.+--+-- 'averageNormalizedUnitsUsedPerHour', 'reservationPurchaseRecommendationDetail_averageNormalizedUnitsUsedPerHour' - The average number of normalized units that you used in an hour during+-- the historical period. Amazon Web Services uses this to calculate your+-- recommended reservation purchases.+--+-- 'averageNumberOfInstancesUsedPerHour', 'reservationPurchaseRecommendationDetail_averageNumberOfInstancesUsedPerHour' - The average number of instances that you used in an hour during the+-- historical period. Amazon Web Services uses this to calculate your+-- recommended reservation purchases.+--+-- 'averageUtilization', 'reservationPurchaseRecommendationDetail_averageUtilization' - The average utilization of your instances. Amazon Web Services uses this+-- to calculate your recommended reservation purchases.+--+-- 'currencyCode', 'reservationPurchaseRecommendationDetail_currencyCode' - The currency code that Amazon Web Services used to calculate the costs+-- for this instance.+--+-- 'estimatedBreakEvenInMonths', 'reservationPurchaseRecommendationDetail_estimatedBreakEvenInMonths' - How long Amazon Web Services estimates that it takes for this instance+-- to start saving you money, in months.+--+-- 'estimatedMonthlyOnDemandCost', 'reservationPurchaseRecommendationDetail_estimatedMonthlyOnDemandCost' - How much Amazon Web Services estimates that you spend on On-Demand+-- Instances in a month.+--+-- 'estimatedMonthlySavingsAmount', 'reservationPurchaseRecommendationDetail_estimatedMonthlySavingsAmount' - How much Amazon Web Services estimates that this specific recommendation+-- might save you in a month.+--+-- 'estimatedMonthlySavingsPercentage', 'reservationPurchaseRecommendationDetail_estimatedMonthlySavingsPercentage' - How much Amazon Web Services estimates that this specific recommendation+-- might save you in a month, as a percentage of your overall costs.+--+-- 'estimatedReservationCostForLookbackPeriod', 'reservationPurchaseRecommendationDetail_estimatedReservationCostForLookbackPeriod' - How much Amazon Web Services estimates that you might spend for all+-- usage during the specified historical period if you had a reservation.+--+-- 'instanceDetails', 'reservationPurchaseRecommendationDetail_instanceDetails' - Details about the instances that Amazon Web Services recommends that you+-- purchase.+--+-- 'maximumNormalizedUnitsUsedPerHour', 'reservationPurchaseRecommendationDetail_maximumNormalizedUnitsUsedPerHour' - The maximum number of normalized units that you used in an hour during+-- the historical period. Amazon Web Services uses this to calculate your+-- recommended reservation purchases.+--+-- 'maximumNumberOfInstancesUsedPerHour', 'reservationPurchaseRecommendationDetail_maximumNumberOfInstancesUsedPerHour' - The maximum number of instances that you used in an hour during the+-- historical period. Amazon Web Services uses this to calculate your+-- recommended reservation purchases.+--+-- 'minimumNormalizedUnitsUsedPerHour', 'reservationPurchaseRecommendationDetail_minimumNormalizedUnitsUsedPerHour' - The minimum number of normalized units that you used in an hour during+-- the historical period. Amazon Web Services uses this to calculate your+-- recommended reservation purchases.+--+-- 'minimumNumberOfInstancesUsedPerHour', 'reservationPurchaseRecommendationDetail_minimumNumberOfInstancesUsedPerHour' - The minimum number of instances that you used in an hour during the+-- historical period. Amazon Web Services uses this to calculate your+-- recommended reservation purchases.+--+-- 'recommendedNormalizedUnitsToPurchase', 'reservationPurchaseRecommendationDetail_recommendedNormalizedUnitsToPurchase' - The number of normalized units that Amazon Web Services recommends that+-- you purchase.+--+-- 'recommendedNumberOfInstancesToPurchase', 'reservationPurchaseRecommendationDetail_recommendedNumberOfInstancesToPurchase' - The number of instances that Amazon Web Services recommends that you+-- purchase.+--+-- 'recurringStandardMonthlyCost', 'reservationPurchaseRecommendationDetail_recurringStandardMonthlyCost' - How much purchasing this instance costs you on a monthly basis.+--+-- 'upfrontCost', 'reservationPurchaseRecommendationDetail_upfrontCost' - How much purchasing this instance costs you upfront.+newReservationPurchaseRecommendationDetail ::+  ReservationPurchaseRecommendationDetail+newReservationPurchaseRecommendationDetail =+  ReservationPurchaseRecommendationDetail'+    { accountId =+        Prelude.Nothing,+      averageNormalizedUnitsUsedPerHour =+        Prelude.Nothing,+      averageNumberOfInstancesUsedPerHour =+        Prelude.Nothing,+      averageUtilization =+        Prelude.Nothing,+      currencyCode = Prelude.Nothing,+      estimatedBreakEvenInMonths =+        Prelude.Nothing,+      estimatedMonthlyOnDemandCost =+        Prelude.Nothing,+      estimatedMonthlySavingsAmount =+        Prelude.Nothing,+      estimatedMonthlySavingsPercentage =+        Prelude.Nothing,+      estimatedReservationCostForLookbackPeriod =+        Prelude.Nothing,+      instanceDetails = Prelude.Nothing,+      maximumNormalizedUnitsUsedPerHour =+        Prelude.Nothing,+      maximumNumberOfInstancesUsedPerHour =+        Prelude.Nothing,+      minimumNormalizedUnitsUsedPerHour =+        Prelude.Nothing,+      minimumNumberOfInstancesUsedPerHour =+        Prelude.Nothing,+      recommendedNormalizedUnitsToPurchase =+        Prelude.Nothing,+      recommendedNumberOfInstancesToPurchase =+        Prelude.Nothing,+      recurringStandardMonthlyCost =+        Prelude.Nothing,+      upfrontCost = Prelude.Nothing+    }++-- | The account that this Reserved Instance (RI) recommendation is for.+reservationPurchaseRecommendationDetail_accountId :: Lens.Lens' ReservationPurchaseRecommendationDetail (Prelude.Maybe Prelude.Text)+reservationPurchaseRecommendationDetail_accountId = Lens.lens (\ReservationPurchaseRecommendationDetail' {accountId} -> accountId) (\s@ReservationPurchaseRecommendationDetail' {} a -> s {accountId = a} :: ReservationPurchaseRecommendationDetail)++-- | The average number of normalized units that you used in an hour during+-- the historical period. Amazon Web Services uses this to calculate your+-- recommended reservation purchases.+reservationPurchaseRecommendationDetail_averageNormalizedUnitsUsedPerHour :: Lens.Lens' ReservationPurchaseRecommendationDetail (Prelude.Maybe Prelude.Text)+reservationPurchaseRecommendationDetail_averageNormalizedUnitsUsedPerHour = Lens.lens (\ReservationPurchaseRecommendationDetail' {averageNormalizedUnitsUsedPerHour} -> averageNormalizedUnitsUsedPerHour) (\s@ReservationPurchaseRecommendationDetail' {} a -> s {averageNormalizedUnitsUsedPerHour = a} :: ReservationPurchaseRecommendationDetail)++-- | The average number of instances that you used in an hour during the+-- historical period. Amazon Web Services uses this to calculate your+-- recommended reservation purchases.+reservationPurchaseRecommendationDetail_averageNumberOfInstancesUsedPerHour :: Lens.Lens' ReservationPurchaseRecommendationDetail (Prelude.Maybe Prelude.Text)+reservationPurchaseRecommendationDetail_averageNumberOfInstancesUsedPerHour = Lens.lens (\ReservationPurchaseRecommendationDetail' {averageNumberOfInstancesUsedPerHour} -> averageNumberOfInstancesUsedPerHour) (\s@ReservationPurchaseRecommendationDetail' {} a -> s {averageNumberOfInstancesUsedPerHour = a} :: ReservationPurchaseRecommendationDetail)++-- | The average utilization of your instances. Amazon Web Services uses this+-- to calculate your recommended reservation purchases.+reservationPurchaseRecommendationDetail_averageUtilization :: Lens.Lens' ReservationPurchaseRecommendationDetail (Prelude.Maybe Prelude.Text)+reservationPurchaseRecommendationDetail_averageUtilization = Lens.lens (\ReservationPurchaseRecommendationDetail' {averageUtilization} -> averageUtilization) (\s@ReservationPurchaseRecommendationDetail' {} a -> s {averageUtilization = a} :: ReservationPurchaseRecommendationDetail)++-- | The currency code that Amazon Web Services used to calculate the costs+-- for this instance.+reservationPurchaseRecommendationDetail_currencyCode :: Lens.Lens' ReservationPurchaseRecommendationDetail (Prelude.Maybe Prelude.Text)+reservationPurchaseRecommendationDetail_currencyCode = Lens.lens (\ReservationPurchaseRecommendationDetail' {currencyCode} -> currencyCode) (\s@ReservationPurchaseRecommendationDetail' {} a -> s {currencyCode = a} :: ReservationPurchaseRecommendationDetail)++-- | How long Amazon Web Services estimates that it takes for this instance+-- to start saving you money, in months.+reservationPurchaseRecommendationDetail_estimatedBreakEvenInMonths :: Lens.Lens' ReservationPurchaseRecommendationDetail (Prelude.Maybe Prelude.Text)+reservationPurchaseRecommendationDetail_estimatedBreakEvenInMonths = Lens.lens (\ReservationPurchaseRecommendationDetail' {estimatedBreakEvenInMonths} -> estimatedBreakEvenInMonths) (\s@ReservationPurchaseRecommendationDetail' {} a -> s {estimatedBreakEvenInMonths = a} :: ReservationPurchaseRecommendationDetail)++-- | How much Amazon Web Services estimates that you spend on On-Demand+-- Instances in a month.+reservationPurchaseRecommendationDetail_estimatedMonthlyOnDemandCost :: Lens.Lens' ReservationPurchaseRecommendationDetail (Prelude.Maybe Prelude.Text)+reservationPurchaseRecommendationDetail_estimatedMonthlyOnDemandCost = Lens.lens (\ReservationPurchaseRecommendationDetail' {estimatedMonthlyOnDemandCost} -> estimatedMonthlyOnDemandCost) (\s@ReservationPurchaseRecommendationDetail' {} a -> s {estimatedMonthlyOnDemandCost = a} :: ReservationPurchaseRecommendationDetail)++-- | How much Amazon Web Services estimates that this specific recommendation+-- might save you in a month.+reservationPurchaseRecommendationDetail_estimatedMonthlySavingsAmount :: Lens.Lens' ReservationPurchaseRecommendationDetail (Prelude.Maybe Prelude.Text)+reservationPurchaseRecommendationDetail_estimatedMonthlySavingsAmount = Lens.lens (\ReservationPurchaseRecommendationDetail' {estimatedMonthlySavingsAmount} -> estimatedMonthlySavingsAmount) (\s@ReservationPurchaseRecommendationDetail' {} a -> s {estimatedMonthlySavingsAmount = a} :: ReservationPurchaseRecommendationDetail)++-- | How much Amazon Web Services estimates that this specific recommendation+-- might save you in a month, as a percentage of your overall costs.+reservationPurchaseRecommendationDetail_estimatedMonthlySavingsPercentage :: Lens.Lens' ReservationPurchaseRecommendationDetail (Prelude.Maybe Prelude.Text)+reservationPurchaseRecommendationDetail_estimatedMonthlySavingsPercentage = Lens.lens (\ReservationPurchaseRecommendationDetail' {estimatedMonthlySavingsPercentage} -> estimatedMonthlySavingsPercentage) (\s@ReservationPurchaseRecommendationDetail' {} a -> s {estimatedMonthlySavingsPercentage = a} :: ReservationPurchaseRecommendationDetail)++-- | How much Amazon Web Services estimates that you might spend for all+-- usage during the specified historical period if you had a reservation.+reservationPurchaseRecommendationDetail_estimatedReservationCostForLookbackPeriod :: Lens.Lens' ReservationPurchaseRecommendationDetail (Prelude.Maybe Prelude.Text)+reservationPurchaseRecommendationDetail_estimatedReservationCostForLookbackPeriod = Lens.lens (\ReservationPurchaseRecommendationDetail' {estimatedReservationCostForLookbackPeriod} -> estimatedReservationCostForLookbackPeriod) (\s@ReservationPurchaseRecommendationDetail' {} a -> s {estimatedReservationCostForLookbackPeriod = a} :: ReservationPurchaseRecommendationDetail)++-- | Details about the instances that Amazon Web Services recommends that you+-- purchase.+reservationPurchaseRecommendationDetail_instanceDetails :: Lens.Lens' ReservationPurchaseRecommendationDetail (Prelude.Maybe InstanceDetails)+reservationPurchaseRecommendationDetail_instanceDetails = Lens.lens (\ReservationPurchaseRecommendationDetail' {instanceDetails} -> instanceDetails) (\s@ReservationPurchaseRecommendationDetail' {} a -> s {instanceDetails = a} :: ReservationPurchaseRecommendationDetail)++-- | The maximum number of normalized units that you used in an hour during+-- the historical period. Amazon Web Services uses this to calculate your+-- recommended reservation purchases.+reservationPurchaseRecommendationDetail_maximumNormalizedUnitsUsedPerHour :: Lens.Lens' ReservationPurchaseRecommendationDetail (Prelude.Maybe Prelude.Text)+reservationPurchaseRecommendationDetail_maximumNormalizedUnitsUsedPerHour = Lens.lens (\ReservationPurchaseRecommendationDetail' {maximumNormalizedUnitsUsedPerHour} -> maximumNormalizedUnitsUsedPerHour) (\s@ReservationPurchaseRecommendationDetail' {} a -> s {maximumNormalizedUnitsUsedPerHour = a} :: ReservationPurchaseRecommendationDetail)++-- | The maximum number of instances that you used in an hour during the+-- historical period. Amazon Web Services uses this to calculate your+-- recommended reservation purchases.+reservationPurchaseRecommendationDetail_maximumNumberOfInstancesUsedPerHour :: Lens.Lens' ReservationPurchaseRecommendationDetail (Prelude.Maybe Prelude.Text)+reservationPurchaseRecommendationDetail_maximumNumberOfInstancesUsedPerHour = Lens.lens (\ReservationPurchaseRecommendationDetail' {maximumNumberOfInstancesUsedPerHour} -> maximumNumberOfInstancesUsedPerHour) (\s@ReservationPurchaseRecommendationDetail' {} a -> s {maximumNumberOfInstancesUsedPerHour = a} :: ReservationPurchaseRecommendationDetail)++-- | The minimum number of normalized units that you used in an hour during+-- the historical period. Amazon Web Services uses this to calculate your+-- recommended reservation purchases.+reservationPurchaseRecommendationDetail_minimumNormalizedUnitsUsedPerHour :: Lens.Lens' ReservationPurchaseRecommendationDetail (Prelude.Maybe Prelude.Text)+reservationPurchaseRecommendationDetail_minimumNormalizedUnitsUsedPerHour = Lens.lens (\ReservationPurchaseRecommendationDetail' {minimumNormalizedUnitsUsedPerHour} -> minimumNormalizedUnitsUsedPerHour) (\s@ReservationPurchaseRecommendationDetail' {} a -> s {minimumNormalizedUnitsUsedPerHour = a} :: ReservationPurchaseRecommendationDetail)++-- | The minimum number of instances that you used in an hour during the+-- historical period. Amazon Web Services uses this to calculate your+-- recommended reservation purchases.+reservationPurchaseRecommendationDetail_minimumNumberOfInstancesUsedPerHour :: Lens.Lens' ReservationPurchaseRecommendationDetail (Prelude.Maybe Prelude.Text)+reservationPurchaseRecommendationDetail_minimumNumberOfInstancesUsedPerHour = Lens.lens (\ReservationPurchaseRecommendationDetail' {minimumNumberOfInstancesUsedPerHour} -> minimumNumberOfInstancesUsedPerHour) (\s@ReservationPurchaseRecommendationDetail' {} a -> s {minimumNumberOfInstancesUsedPerHour = a} :: ReservationPurchaseRecommendationDetail)++-- | The number of normalized units that Amazon Web Services recommends that+-- you purchase.+reservationPurchaseRecommendationDetail_recommendedNormalizedUnitsToPurchase :: Lens.Lens' ReservationPurchaseRecommendationDetail (Prelude.Maybe Prelude.Text)+reservationPurchaseRecommendationDetail_recommendedNormalizedUnitsToPurchase = Lens.lens (\ReservationPurchaseRecommendationDetail' {recommendedNormalizedUnitsToPurchase} -> recommendedNormalizedUnitsToPurchase) (\s@ReservationPurchaseRecommendationDetail' {} a -> s {recommendedNormalizedUnitsToPurchase = a} :: ReservationPurchaseRecommendationDetail)++-- | The number of instances that Amazon Web Services recommends that you+-- purchase.+reservationPurchaseRecommendationDetail_recommendedNumberOfInstancesToPurchase :: Lens.Lens' ReservationPurchaseRecommendationDetail (Prelude.Maybe Prelude.Text)+reservationPurchaseRecommendationDetail_recommendedNumberOfInstancesToPurchase = Lens.lens (\ReservationPurchaseRecommendationDetail' {recommendedNumberOfInstancesToPurchase} -> recommendedNumberOfInstancesToPurchase) (\s@ReservationPurchaseRecommendationDetail' {} a -> s {recommendedNumberOfInstancesToPurchase = a} :: ReservationPurchaseRecommendationDetail)++-- | How much purchasing this instance costs you on a monthly basis.+reservationPurchaseRecommendationDetail_recurringStandardMonthlyCost :: Lens.Lens' ReservationPurchaseRecommendationDetail (Prelude.Maybe Prelude.Text)+reservationPurchaseRecommendationDetail_recurringStandardMonthlyCost = Lens.lens (\ReservationPurchaseRecommendationDetail' {recurringStandardMonthlyCost} -> recurringStandardMonthlyCost) (\s@ReservationPurchaseRecommendationDetail' {} a -> s {recurringStandardMonthlyCost = a} :: ReservationPurchaseRecommendationDetail)++-- | How much purchasing this instance costs you upfront.+reservationPurchaseRecommendationDetail_upfrontCost :: Lens.Lens' ReservationPurchaseRecommendationDetail (Prelude.Maybe Prelude.Text)+reservationPurchaseRecommendationDetail_upfrontCost = Lens.lens (\ReservationPurchaseRecommendationDetail' {upfrontCost} -> upfrontCost) (\s@ReservationPurchaseRecommendationDetail' {} a -> s {upfrontCost = a} :: ReservationPurchaseRecommendationDetail)++instance+  Data.FromJSON+    ReservationPurchaseRecommendationDetail+  where+  parseJSON =+    Data.withObject+      "ReservationPurchaseRecommendationDetail"+      ( \x ->+          ReservationPurchaseRecommendationDetail'+            Prelude.<$> (x Data..:? "AccountId")+            Prelude.<*> (x Data..:? "AverageNormalizedUnitsUsedPerHour")+            Prelude.<*> (x Data..:? "AverageNumberOfInstancesUsedPerHour")+            Prelude.<*> (x Data..:? "AverageUtilization")+            Prelude.<*> (x Data..:? "CurrencyCode")+            Prelude.<*> (x Data..:? "EstimatedBreakEvenInMonths")+            Prelude.<*> (x Data..:? "EstimatedMonthlyOnDemandCost")+            Prelude.<*> (x Data..:? "EstimatedMonthlySavingsAmount")+            Prelude.<*> (x Data..:? "EstimatedMonthlySavingsPercentage")+            Prelude.<*> ( x+                            Data..:? "EstimatedReservationCostForLookbackPeriod"+                        )+            Prelude.<*> (x Data..:? "InstanceDetails")+            Prelude.<*> (x Data..:? "MaximumNormalizedUnitsUsedPerHour")+            Prelude.<*> (x Data..:? "MaximumNumberOfInstancesUsedPerHour")+            Prelude.<*> (x Data..:? "MinimumNormalizedUnitsUsedPerHour")+            Prelude.<*> (x Data..:? "MinimumNumberOfInstancesUsedPerHour")+            Prelude.<*> (x Data..:? "RecommendedNormalizedUnitsToPurchase")+            Prelude.<*> (x Data..:? "RecommendedNumberOfInstancesToPurchase")+            Prelude.<*> (x Data..:? "RecurringStandardMonthlyCost")+            Prelude.<*> (x Data..:? "UpfrontCost")+      )++instance+  Prelude.Hashable+    ReservationPurchaseRecommendationDetail+  where+  hashWithSalt+    _salt+    ReservationPurchaseRecommendationDetail' {..} =+      _salt+        `Prelude.hashWithSalt` accountId+        `Prelude.hashWithSalt` averageNormalizedUnitsUsedPerHour+        `Prelude.hashWithSalt` averageNumberOfInstancesUsedPerHour+        `Prelude.hashWithSalt` averageUtilization+        `Prelude.hashWithSalt` currencyCode+        `Prelude.hashWithSalt` estimatedBreakEvenInMonths+        `Prelude.hashWithSalt` estimatedMonthlyOnDemandCost+        `Prelude.hashWithSalt` estimatedMonthlySavingsAmount+        `Prelude.hashWithSalt` estimatedMonthlySavingsPercentage+        `Prelude.hashWithSalt` estimatedReservationCostForLookbackPeriod+        `Prelude.hashWithSalt` instanceDetails+        `Prelude.hashWithSalt` maximumNormalizedUnitsUsedPerHour+        `Prelude.hashWithSalt` maximumNumberOfInstancesUsedPerHour+        `Prelude.hashWithSalt` minimumNormalizedUnitsUsedPerHour+        `Prelude.hashWithSalt` minimumNumberOfInstancesUsedPerHour+        `Prelude.hashWithSalt` recommendedNormalizedUnitsToPurchase+        `Prelude.hashWithSalt` recommendedNumberOfInstancesToPurchase+        `Prelude.hashWithSalt` recurringStandardMonthlyCost+        `Prelude.hashWithSalt` upfrontCost++instance+  Prelude.NFData+    ReservationPurchaseRecommendationDetail+  where+  rnf ReservationPurchaseRecommendationDetail' {..} =+    Prelude.rnf accountId+      `Prelude.seq` Prelude.rnf averageNormalizedUnitsUsedPerHour+      `Prelude.seq` Prelude.rnf averageNumberOfInstancesUsedPerHour+      `Prelude.seq` Prelude.rnf averageUtilization+      `Prelude.seq` Prelude.rnf currencyCode+      `Prelude.seq` Prelude.rnf estimatedBreakEvenInMonths+      `Prelude.seq` Prelude.rnf estimatedMonthlyOnDemandCost+      `Prelude.seq` Prelude.rnf estimatedMonthlySavingsAmount+      `Prelude.seq` Prelude.rnf estimatedMonthlySavingsPercentage+      `Prelude.seq` Prelude.rnf+        estimatedReservationCostForLookbackPeriod+      `Prelude.seq` Prelude.rnf instanceDetails+      `Prelude.seq` Prelude.rnf maximumNormalizedUnitsUsedPerHour+      `Prelude.seq` Prelude.rnf+        maximumNumberOfInstancesUsedPerHour+      `Prelude.seq` Prelude.rnf+        minimumNormalizedUnitsUsedPerHour+      `Prelude.seq` Prelude.rnf+        minimumNumberOfInstancesUsedPerHour+      `Prelude.seq` Prelude.rnf+        recommendedNormalizedUnitsToPurchase+      `Prelude.seq` Prelude.rnf+        recommendedNumberOfInstancesToPurchase+      `Prelude.seq` Prelude.rnf+        recurringStandardMonthlyCost+      `Prelude.seq` Prelude.rnf upfrontCost
+ gen/Amazonka/CostExplorer/Types/ReservationPurchaseRecommendationMetadata.hs view
@@ -0,0 +1,98 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationMetadata+-- 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.CostExplorer.Types.ReservationPurchaseRecommendationMetadata where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Information about this specific recommendation, such as the timestamp+-- for when Amazon Web Services made a specific recommendation.+--+-- /See:/ 'newReservationPurchaseRecommendationMetadata' smart constructor.+data ReservationPurchaseRecommendationMetadata = ReservationPurchaseRecommendationMetadata'+  { -- | The timestamp for when Amazon Web Services made this recommendation.+    generationTimestamp :: Prelude.Maybe Prelude.Text,+    -- | The ID for this specific recommendation.+    recommendationId :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ReservationPurchaseRecommendationMetadata' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'generationTimestamp', 'reservationPurchaseRecommendationMetadata_generationTimestamp' - The timestamp for when Amazon Web Services made this recommendation.+--+-- 'recommendationId', 'reservationPurchaseRecommendationMetadata_recommendationId' - The ID for this specific recommendation.+newReservationPurchaseRecommendationMetadata ::+  ReservationPurchaseRecommendationMetadata+newReservationPurchaseRecommendationMetadata =+  ReservationPurchaseRecommendationMetadata'+    { generationTimestamp =+        Prelude.Nothing,+      recommendationId =+        Prelude.Nothing+    }++-- | The timestamp for when Amazon Web Services made this recommendation.+reservationPurchaseRecommendationMetadata_generationTimestamp :: Lens.Lens' ReservationPurchaseRecommendationMetadata (Prelude.Maybe Prelude.Text)+reservationPurchaseRecommendationMetadata_generationTimestamp = Lens.lens (\ReservationPurchaseRecommendationMetadata' {generationTimestamp} -> generationTimestamp) (\s@ReservationPurchaseRecommendationMetadata' {} a -> s {generationTimestamp = a} :: ReservationPurchaseRecommendationMetadata)++-- | The ID for this specific recommendation.+reservationPurchaseRecommendationMetadata_recommendationId :: Lens.Lens' ReservationPurchaseRecommendationMetadata (Prelude.Maybe Prelude.Text)+reservationPurchaseRecommendationMetadata_recommendationId = Lens.lens (\ReservationPurchaseRecommendationMetadata' {recommendationId} -> recommendationId) (\s@ReservationPurchaseRecommendationMetadata' {} a -> s {recommendationId = a} :: ReservationPurchaseRecommendationMetadata)++instance+  Data.FromJSON+    ReservationPurchaseRecommendationMetadata+  where+  parseJSON =+    Data.withObject+      "ReservationPurchaseRecommendationMetadata"+      ( \x ->+          ReservationPurchaseRecommendationMetadata'+            Prelude.<$> (x Data..:? "GenerationTimestamp")+            Prelude.<*> (x Data..:? "RecommendationId")+      )++instance+  Prelude.Hashable+    ReservationPurchaseRecommendationMetadata+  where+  hashWithSalt+    _salt+    ReservationPurchaseRecommendationMetadata' {..} =+      _salt+        `Prelude.hashWithSalt` generationTimestamp+        `Prelude.hashWithSalt` recommendationId++instance+  Prelude.NFData+    ReservationPurchaseRecommendationMetadata+  where+  rnf ReservationPurchaseRecommendationMetadata' {..} =+    Prelude.rnf generationTimestamp+      `Prelude.seq` Prelude.rnf recommendationId
+ gen/Amazonka/CostExplorer/Types/ReservationPurchaseRecommendationSummary.hs view
@@ -0,0 +1,120 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.ReservationPurchaseRecommendationSummary+-- 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.CostExplorer.Types.ReservationPurchaseRecommendationSummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | A summary about this recommendation, such as the currency code, the+-- amount that Amazon Web Services estimates that you could save, and the+-- total amount of reservation to purchase.+--+-- /See:/ 'newReservationPurchaseRecommendationSummary' smart constructor.+data ReservationPurchaseRecommendationSummary = ReservationPurchaseRecommendationSummary'+  { -- | The currency code used for this recommendation.+    currencyCode :: Prelude.Maybe Prelude.Text,+    -- | The total amount that Amazon Web Services estimates that this+    -- recommendation could save you in a month.+    totalEstimatedMonthlySavingsAmount :: Prelude.Maybe Prelude.Text,+    -- | The total amount that Amazon Web Services estimates that this+    -- recommendation could save you in a month, as a percentage of your costs.+    totalEstimatedMonthlySavingsPercentage :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ReservationPurchaseRecommendationSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'currencyCode', 'reservationPurchaseRecommendationSummary_currencyCode' - The currency code used for this recommendation.+--+-- 'totalEstimatedMonthlySavingsAmount', 'reservationPurchaseRecommendationSummary_totalEstimatedMonthlySavingsAmount' - The total amount that Amazon Web Services estimates that this+-- recommendation could save you in a month.+--+-- 'totalEstimatedMonthlySavingsPercentage', 'reservationPurchaseRecommendationSummary_totalEstimatedMonthlySavingsPercentage' - The total amount that Amazon Web Services estimates that this+-- recommendation could save you in a month, as a percentage of your costs.+newReservationPurchaseRecommendationSummary ::+  ReservationPurchaseRecommendationSummary+newReservationPurchaseRecommendationSummary =+  ReservationPurchaseRecommendationSummary'+    { currencyCode =+        Prelude.Nothing,+      totalEstimatedMonthlySavingsAmount =+        Prelude.Nothing,+      totalEstimatedMonthlySavingsPercentage =+        Prelude.Nothing+    }++-- | The currency code used for this recommendation.+reservationPurchaseRecommendationSummary_currencyCode :: Lens.Lens' ReservationPurchaseRecommendationSummary (Prelude.Maybe Prelude.Text)+reservationPurchaseRecommendationSummary_currencyCode = Lens.lens (\ReservationPurchaseRecommendationSummary' {currencyCode} -> currencyCode) (\s@ReservationPurchaseRecommendationSummary' {} a -> s {currencyCode = a} :: ReservationPurchaseRecommendationSummary)++-- | The total amount that Amazon Web Services estimates that this+-- recommendation could save you in a month.+reservationPurchaseRecommendationSummary_totalEstimatedMonthlySavingsAmount :: Lens.Lens' ReservationPurchaseRecommendationSummary (Prelude.Maybe Prelude.Text)+reservationPurchaseRecommendationSummary_totalEstimatedMonthlySavingsAmount = Lens.lens (\ReservationPurchaseRecommendationSummary' {totalEstimatedMonthlySavingsAmount} -> totalEstimatedMonthlySavingsAmount) (\s@ReservationPurchaseRecommendationSummary' {} a -> s {totalEstimatedMonthlySavingsAmount = a} :: ReservationPurchaseRecommendationSummary)++-- | The total amount that Amazon Web Services estimates that this+-- recommendation could save you in a month, as a percentage of your costs.+reservationPurchaseRecommendationSummary_totalEstimatedMonthlySavingsPercentage :: Lens.Lens' ReservationPurchaseRecommendationSummary (Prelude.Maybe Prelude.Text)+reservationPurchaseRecommendationSummary_totalEstimatedMonthlySavingsPercentage = Lens.lens (\ReservationPurchaseRecommendationSummary' {totalEstimatedMonthlySavingsPercentage} -> totalEstimatedMonthlySavingsPercentage) (\s@ReservationPurchaseRecommendationSummary' {} a -> s {totalEstimatedMonthlySavingsPercentage = a} :: ReservationPurchaseRecommendationSummary)++instance+  Data.FromJSON+    ReservationPurchaseRecommendationSummary+  where+  parseJSON =+    Data.withObject+      "ReservationPurchaseRecommendationSummary"+      ( \x ->+          ReservationPurchaseRecommendationSummary'+            Prelude.<$> (x Data..:? "CurrencyCode")+            Prelude.<*> (x Data..:? "TotalEstimatedMonthlySavingsAmount")+            Prelude.<*> ( x+                            Data..:? "TotalEstimatedMonthlySavingsPercentage"+                        )+      )++instance+  Prelude.Hashable+    ReservationPurchaseRecommendationSummary+  where+  hashWithSalt+    _salt+    ReservationPurchaseRecommendationSummary' {..} =+      _salt+        `Prelude.hashWithSalt` currencyCode+        `Prelude.hashWithSalt` totalEstimatedMonthlySavingsAmount+        `Prelude.hashWithSalt` totalEstimatedMonthlySavingsPercentage++instance+  Prelude.NFData+    ReservationPurchaseRecommendationSummary+  where+  rnf ReservationPurchaseRecommendationSummary' {..} =+    Prelude.rnf currencyCode+      `Prelude.seq` Prelude.rnf totalEstimatedMonthlySavingsAmount+      `Prelude.seq` Prelude.rnf totalEstimatedMonthlySavingsPercentage
+ gen/Amazonka/CostExplorer/Types/ReservationUtilizationGroup.hs view
@@ -0,0 +1,110 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.ReservationUtilizationGroup+-- 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.CostExplorer.Types.ReservationUtilizationGroup where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CostExplorer.Types.ReservationAggregates+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | A group of reservations that share a set of attributes.+--+-- /See:/ 'newReservationUtilizationGroup' smart constructor.+data ReservationUtilizationGroup = ReservationUtilizationGroup'+  { -- | The attributes for this group of reservations.+    attributes :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The key for a specific reservation attribute.+    key :: Prelude.Maybe Prelude.Text,+    -- | How much you used this group of reservations.+    utilization :: Prelude.Maybe ReservationAggregates,+    -- | The value of a specific reservation attribute.+    value :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ReservationUtilizationGroup' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'attributes', 'reservationUtilizationGroup_attributes' - The attributes for this group of reservations.+--+-- 'key', 'reservationUtilizationGroup_key' - The key for a specific reservation attribute.+--+-- 'utilization', 'reservationUtilizationGroup_utilization' - How much you used this group of reservations.+--+-- 'value', 'reservationUtilizationGroup_value' - The value of a specific reservation attribute.+newReservationUtilizationGroup ::+  ReservationUtilizationGroup+newReservationUtilizationGroup =+  ReservationUtilizationGroup'+    { attributes =+        Prelude.Nothing,+      key = Prelude.Nothing,+      utilization = Prelude.Nothing,+      value = Prelude.Nothing+    }++-- | The attributes for this group of reservations.+reservationUtilizationGroup_attributes :: Lens.Lens' ReservationUtilizationGroup (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+reservationUtilizationGroup_attributes = Lens.lens (\ReservationUtilizationGroup' {attributes} -> attributes) (\s@ReservationUtilizationGroup' {} a -> s {attributes = a} :: ReservationUtilizationGroup) Prelude.. Lens.mapping Lens.coerced++-- | The key for a specific reservation attribute.+reservationUtilizationGroup_key :: Lens.Lens' ReservationUtilizationGroup (Prelude.Maybe Prelude.Text)+reservationUtilizationGroup_key = Lens.lens (\ReservationUtilizationGroup' {key} -> key) (\s@ReservationUtilizationGroup' {} a -> s {key = a} :: ReservationUtilizationGroup)++-- | How much you used this group of reservations.+reservationUtilizationGroup_utilization :: Lens.Lens' ReservationUtilizationGroup (Prelude.Maybe ReservationAggregates)+reservationUtilizationGroup_utilization = Lens.lens (\ReservationUtilizationGroup' {utilization} -> utilization) (\s@ReservationUtilizationGroup' {} a -> s {utilization = a} :: ReservationUtilizationGroup)++-- | The value of a specific reservation attribute.+reservationUtilizationGroup_value :: Lens.Lens' ReservationUtilizationGroup (Prelude.Maybe Prelude.Text)+reservationUtilizationGroup_value = Lens.lens (\ReservationUtilizationGroup' {value} -> value) (\s@ReservationUtilizationGroup' {} a -> s {value = a} :: ReservationUtilizationGroup)++instance Data.FromJSON ReservationUtilizationGroup where+  parseJSON =+    Data.withObject+      "ReservationUtilizationGroup"+      ( \x ->+          ReservationUtilizationGroup'+            Prelude.<$> (x Data..:? "Attributes" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "Key")+            Prelude.<*> (x Data..:? "Utilization")+            Prelude.<*> (x Data..:? "Value")+      )++instance Prelude.Hashable ReservationUtilizationGroup where+  hashWithSalt _salt ReservationUtilizationGroup' {..} =+    _salt+      `Prelude.hashWithSalt` attributes+      `Prelude.hashWithSalt` key+      `Prelude.hashWithSalt` utilization+      `Prelude.hashWithSalt` value++instance Prelude.NFData ReservationUtilizationGroup where+  rnf ReservationUtilizationGroup' {..} =+    Prelude.rnf attributes+      `Prelude.seq` Prelude.rnf key+      `Prelude.seq` Prelude.rnf utilization+      `Prelude.seq` Prelude.rnf value
+ gen/Amazonka/CostExplorer/Types/ResourceDetails.hs view
@@ -0,0 +1,73 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.ResourceDetails+-- 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.CostExplorer.Types.ResourceDetails where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CostExplorer.Types.EC2ResourceDetails+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Details for the resource.+--+-- /See:/ 'newResourceDetails' smart constructor.+data ResourceDetails = ResourceDetails'+  { -- | Details for the Amazon EC2 resource.+    eC2ResourceDetails :: Prelude.Maybe EC2ResourceDetails+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ResourceDetails' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'eC2ResourceDetails', 'resourceDetails_eC2ResourceDetails' - Details for the Amazon EC2 resource.+newResourceDetails ::+  ResourceDetails+newResourceDetails =+  ResourceDetails'+    { eC2ResourceDetails =+        Prelude.Nothing+    }++-- | Details for the Amazon EC2 resource.+resourceDetails_eC2ResourceDetails :: Lens.Lens' ResourceDetails (Prelude.Maybe EC2ResourceDetails)+resourceDetails_eC2ResourceDetails = Lens.lens (\ResourceDetails' {eC2ResourceDetails} -> eC2ResourceDetails) (\s@ResourceDetails' {} a -> s {eC2ResourceDetails = a} :: ResourceDetails)++instance Data.FromJSON ResourceDetails where+  parseJSON =+    Data.withObject+      "ResourceDetails"+      ( \x ->+          ResourceDetails'+            Prelude.<$> (x Data..:? "EC2ResourceDetails")+      )++instance Prelude.Hashable ResourceDetails where+  hashWithSalt _salt ResourceDetails' {..} =+    _salt `Prelude.hashWithSalt` eC2ResourceDetails++instance Prelude.NFData ResourceDetails where+  rnf ResourceDetails' {..} =+    Prelude.rnf eC2ResourceDetails
+ gen/Amazonka/CostExplorer/Types/ResourceTag.hs view
@@ -0,0 +1,102 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.ResourceTag+-- 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.CostExplorer.Types.ResourceTag where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The tag structure that contains a tag key and value.+--+-- Tagging is supported only for the following Cost Explorer resource+-- types:+-- <https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_AnomalyMonitor.html AnomalyMonitor>+-- ,+-- <https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_AnomalySubscription.html AnomalySubscription>+-- ,+-- <https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_CostCategory.html CostCategory>+-- .+--+-- /See:/ 'newResourceTag' smart constructor.+data ResourceTag = ResourceTag'+  { -- | The key that\'s associated with the tag.+    key :: Prelude.Text,+    -- | The value that\'s associated with the tag.+    value :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ResourceTag' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'key', 'resourceTag_key' - The key that\'s associated with the tag.+--+-- 'value', 'resourceTag_value' - The value that\'s associated with the tag.+newResourceTag ::+  -- | 'key'+  Prelude.Text ->+  -- | 'value'+  Prelude.Text ->+  ResourceTag+newResourceTag pKey_ pValue_ =+  ResourceTag' {key = pKey_, value = pValue_}++-- | The key that\'s associated with the tag.+resourceTag_key :: Lens.Lens' ResourceTag Prelude.Text+resourceTag_key = Lens.lens (\ResourceTag' {key} -> key) (\s@ResourceTag' {} a -> s {key = a} :: ResourceTag)++-- | The value that\'s associated with the tag.+resourceTag_value :: Lens.Lens' ResourceTag Prelude.Text+resourceTag_value = Lens.lens (\ResourceTag' {value} -> value) (\s@ResourceTag' {} a -> s {value = a} :: ResourceTag)++instance Data.FromJSON ResourceTag where+  parseJSON =+    Data.withObject+      "ResourceTag"+      ( \x ->+          ResourceTag'+            Prelude.<$> (x Data..: "Key")+            Prelude.<*> (x Data..: "Value")+      )++instance Prelude.Hashable ResourceTag where+  hashWithSalt _salt ResourceTag' {..} =+    _salt+      `Prelude.hashWithSalt` key+      `Prelude.hashWithSalt` value++instance Prelude.NFData ResourceTag where+  rnf ResourceTag' {..} =+    Prelude.rnf key `Prelude.seq` Prelude.rnf value++instance Data.ToJSON ResourceTag where+  toJSON ResourceTag' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("Key" Data..= key),+            Prelude.Just ("Value" Data..= value)+          ]+      )
+ gen/Amazonka/CostExplorer/Types/ResourceUtilization.hs view
@@ -0,0 +1,73 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.ResourceUtilization+-- 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.CostExplorer.Types.ResourceUtilization where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CostExplorer.Types.EC2ResourceUtilization+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Resource utilization of current resource.+--+-- /See:/ 'newResourceUtilization' smart constructor.+data ResourceUtilization = ResourceUtilization'+  { -- | The utilization of current Amazon EC2 instance.+    eC2ResourceUtilization :: Prelude.Maybe EC2ResourceUtilization+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ResourceUtilization' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'eC2ResourceUtilization', 'resourceUtilization_eC2ResourceUtilization' - The utilization of current Amazon EC2 instance.+newResourceUtilization ::+  ResourceUtilization+newResourceUtilization =+  ResourceUtilization'+    { eC2ResourceUtilization =+        Prelude.Nothing+    }++-- | The utilization of current Amazon EC2 instance.+resourceUtilization_eC2ResourceUtilization :: Lens.Lens' ResourceUtilization (Prelude.Maybe EC2ResourceUtilization)+resourceUtilization_eC2ResourceUtilization = Lens.lens (\ResourceUtilization' {eC2ResourceUtilization} -> eC2ResourceUtilization) (\s@ResourceUtilization' {} a -> s {eC2ResourceUtilization = a} :: ResourceUtilization)++instance Data.FromJSON ResourceUtilization where+  parseJSON =+    Data.withObject+      "ResourceUtilization"+      ( \x ->+          ResourceUtilization'+            Prelude.<$> (x Data..:? "EC2ResourceUtilization")+      )++instance Prelude.Hashable ResourceUtilization where+  hashWithSalt _salt ResourceUtilization' {..} =+    _salt `Prelude.hashWithSalt` eC2ResourceUtilization++instance Prelude.NFData ResourceUtilization where+  rnf ResourceUtilization' {..} =+    Prelude.rnf eC2ResourceUtilization
+ gen/Amazonka/CostExplorer/Types/ResultByTime.hs view
@@ -0,0 +1,111 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.ResultByTime+-- 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.CostExplorer.Types.ResultByTime where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CostExplorer.Types.DateInterval+import Amazonka.CostExplorer.Types.Group+import Amazonka.CostExplorer.Types.MetricValue+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The result that\'s associated with a time period.+--+-- /See:/ 'newResultByTime' smart constructor.+data ResultByTime = ResultByTime'+  { -- | Determines whether the result is estimated.+    estimated :: Prelude.Maybe Prelude.Bool,+    -- | The groups that this time period includes.+    groups :: Prelude.Maybe [Group],+    -- | The time period that the result covers.+    timePeriod :: Prelude.Maybe DateInterval,+    -- | The total amount of cost or usage accrued during the time period.+    total :: Prelude.Maybe (Prelude.HashMap Prelude.Text MetricValue)+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ResultByTime' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'estimated', 'resultByTime_estimated' - Determines whether the result is estimated.+--+-- 'groups', 'resultByTime_groups' - The groups that this time period includes.+--+-- 'timePeriod', 'resultByTime_timePeriod' - The time period that the result covers.+--+-- 'total', 'resultByTime_total' - The total amount of cost or usage accrued during the time period.+newResultByTime ::+  ResultByTime+newResultByTime =+  ResultByTime'+    { estimated = Prelude.Nothing,+      groups = Prelude.Nothing,+      timePeriod = Prelude.Nothing,+      total = Prelude.Nothing+    }++-- | Determines whether the result is estimated.+resultByTime_estimated :: Lens.Lens' ResultByTime (Prelude.Maybe Prelude.Bool)+resultByTime_estimated = Lens.lens (\ResultByTime' {estimated} -> estimated) (\s@ResultByTime' {} a -> s {estimated = a} :: ResultByTime)++-- | The groups that this time period includes.+resultByTime_groups :: Lens.Lens' ResultByTime (Prelude.Maybe [Group])+resultByTime_groups = Lens.lens (\ResultByTime' {groups} -> groups) (\s@ResultByTime' {} a -> s {groups = a} :: ResultByTime) Prelude.. Lens.mapping Lens.coerced++-- | The time period that the result covers.+resultByTime_timePeriod :: Lens.Lens' ResultByTime (Prelude.Maybe DateInterval)+resultByTime_timePeriod = Lens.lens (\ResultByTime' {timePeriod} -> timePeriod) (\s@ResultByTime' {} a -> s {timePeriod = a} :: ResultByTime)++-- | The total amount of cost or usage accrued during the time period.+resultByTime_total :: Lens.Lens' ResultByTime (Prelude.Maybe (Prelude.HashMap Prelude.Text MetricValue))+resultByTime_total = Lens.lens (\ResultByTime' {total} -> total) (\s@ResultByTime' {} a -> s {total = a} :: ResultByTime) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON ResultByTime where+  parseJSON =+    Data.withObject+      "ResultByTime"+      ( \x ->+          ResultByTime'+            Prelude.<$> (x Data..:? "Estimated")+            Prelude.<*> (x Data..:? "Groups" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "TimePeriod")+            Prelude.<*> (x Data..:? "Total" Data..!= Prelude.mempty)+      )++instance Prelude.Hashable ResultByTime where+  hashWithSalt _salt ResultByTime' {..} =+    _salt+      `Prelude.hashWithSalt` estimated+      `Prelude.hashWithSalt` groups+      `Prelude.hashWithSalt` timePeriod+      `Prelude.hashWithSalt` total++instance Prelude.NFData ResultByTime where+  rnf ResultByTime' {..} =+    Prelude.rnf estimated+      `Prelude.seq` Prelude.rnf groups+      `Prelude.seq` Prelude.rnf timePeriod+      `Prelude.seq` Prelude.rnf total
+ gen/Amazonka/CostExplorer/Types/RightsizingRecommendation.hs view
@@ -0,0 +1,147 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.RightsizingRecommendation+-- 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.CostExplorer.Types.RightsizingRecommendation where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CostExplorer.Types.CurrentInstance+import Amazonka.CostExplorer.Types.FindingReasonCode+import Amazonka.CostExplorer.Types.ModifyRecommendationDetail+import Amazonka.CostExplorer.Types.RightsizingType+import Amazonka.CostExplorer.Types.TerminateRecommendationDetail+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Recommendations to rightsize resources.+--+-- /See:/ 'newRightsizingRecommendation' smart constructor.+data RightsizingRecommendation = RightsizingRecommendation'+  { -- | The account that this recommendation is for.+    accountId :: Prelude.Maybe Prelude.Text,+    -- | Context regarding the current instance.+    currentInstance :: Prelude.Maybe CurrentInstance,+    -- | The list of possible reasons why the recommendation is generated, such+    -- as under- or over-utilization of specific metrics (for example, CPU,+    -- Memory, Network).+    findingReasonCodes :: Prelude.Maybe [FindingReasonCode],+    -- | The details for the modification recommendations.+    modifyRecommendationDetail :: Prelude.Maybe ModifyRecommendationDetail,+    -- | A recommendation to either terminate or modify the resource.+    rightsizingType :: Prelude.Maybe RightsizingType,+    -- | The details for termination recommendations.+    terminateRecommendationDetail :: Prelude.Maybe TerminateRecommendationDetail+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RightsizingRecommendation' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'accountId', 'rightsizingRecommendation_accountId' - The account that this recommendation is for.+--+-- 'currentInstance', 'rightsizingRecommendation_currentInstance' - Context regarding the current instance.+--+-- 'findingReasonCodes', 'rightsizingRecommendation_findingReasonCodes' - The list of possible reasons why the recommendation is generated, such+-- as under- or over-utilization of specific metrics (for example, CPU,+-- Memory, Network).+--+-- 'modifyRecommendationDetail', 'rightsizingRecommendation_modifyRecommendationDetail' - The details for the modification recommendations.+--+-- 'rightsizingType', 'rightsizingRecommendation_rightsizingType' - A recommendation to either terminate or modify the resource.+--+-- 'terminateRecommendationDetail', 'rightsizingRecommendation_terminateRecommendationDetail' - The details for termination recommendations.+newRightsizingRecommendation ::+  RightsizingRecommendation+newRightsizingRecommendation =+  RightsizingRecommendation'+    { accountId =+        Prelude.Nothing,+      currentInstance = Prelude.Nothing,+      findingReasonCodes = Prelude.Nothing,+      modifyRecommendationDetail = Prelude.Nothing,+      rightsizingType = Prelude.Nothing,+      terminateRecommendationDetail = Prelude.Nothing+    }++-- | The account that this recommendation is for.+rightsizingRecommendation_accountId :: Lens.Lens' RightsizingRecommendation (Prelude.Maybe Prelude.Text)+rightsizingRecommendation_accountId = Lens.lens (\RightsizingRecommendation' {accountId} -> accountId) (\s@RightsizingRecommendation' {} a -> s {accountId = a} :: RightsizingRecommendation)++-- | Context regarding the current instance.+rightsizingRecommendation_currentInstance :: Lens.Lens' RightsizingRecommendation (Prelude.Maybe CurrentInstance)+rightsizingRecommendation_currentInstance = Lens.lens (\RightsizingRecommendation' {currentInstance} -> currentInstance) (\s@RightsizingRecommendation' {} a -> s {currentInstance = a} :: RightsizingRecommendation)++-- | The list of possible reasons why the recommendation is generated, such+-- as under- or over-utilization of specific metrics (for example, CPU,+-- Memory, Network).+rightsizingRecommendation_findingReasonCodes :: Lens.Lens' RightsizingRecommendation (Prelude.Maybe [FindingReasonCode])+rightsizingRecommendation_findingReasonCodes = Lens.lens (\RightsizingRecommendation' {findingReasonCodes} -> findingReasonCodes) (\s@RightsizingRecommendation' {} a -> s {findingReasonCodes = a} :: RightsizingRecommendation) Prelude.. Lens.mapping Lens.coerced++-- | The details for the modification recommendations.+rightsizingRecommendation_modifyRecommendationDetail :: Lens.Lens' RightsizingRecommendation (Prelude.Maybe ModifyRecommendationDetail)+rightsizingRecommendation_modifyRecommendationDetail = Lens.lens (\RightsizingRecommendation' {modifyRecommendationDetail} -> modifyRecommendationDetail) (\s@RightsizingRecommendation' {} a -> s {modifyRecommendationDetail = a} :: RightsizingRecommendation)++-- | A recommendation to either terminate or modify the resource.+rightsizingRecommendation_rightsizingType :: Lens.Lens' RightsizingRecommendation (Prelude.Maybe RightsizingType)+rightsizingRecommendation_rightsizingType = Lens.lens (\RightsizingRecommendation' {rightsizingType} -> rightsizingType) (\s@RightsizingRecommendation' {} a -> s {rightsizingType = a} :: RightsizingRecommendation)++-- | The details for termination recommendations.+rightsizingRecommendation_terminateRecommendationDetail :: Lens.Lens' RightsizingRecommendation (Prelude.Maybe TerminateRecommendationDetail)+rightsizingRecommendation_terminateRecommendationDetail = Lens.lens (\RightsizingRecommendation' {terminateRecommendationDetail} -> terminateRecommendationDetail) (\s@RightsizingRecommendation' {} a -> s {terminateRecommendationDetail = a} :: RightsizingRecommendation)++instance Data.FromJSON RightsizingRecommendation where+  parseJSON =+    Data.withObject+      "RightsizingRecommendation"+      ( \x ->+          RightsizingRecommendation'+            Prelude.<$> (x Data..:? "AccountId")+            Prelude.<*> (x Data..:? "CurrentInstance")+            Prelude.<*> ( x+                            Data..:? "FindingReasonCodes"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "ModifyRecommendationDetail")+            Prelude.<*> (x Data..:? "RightsizingType")+            Prelude.<*> (x Data..:? "TerminateRecommendationDetail")+      )++instance Prelude.Hashable RightsizingRecommendation where+  hashWithSalt _salt RightsizingRecommendation' {..} =+    _salt+      `Prelude.hashWithSalt` accountId+      `Prelude.hashWithSalt` currentInstance+      `Prelude.hashWithSalt` findingReasonCodes+      `Prelude.hashWithSalt` modifyRecommendationDetail+      `Prelude.hashWithSalt` rightsizingType+      `Prelude.hashWithSalt` terminateRecommendationDetail++instance Prelude.NFData RightsizingRecommendation where+  rnf RightsizingRecommendation' {..} =+    Prelude.rnf accountId+      `Prelude.seq` Prelude.rnf currentInstance+      `Prelude.seq` Prelude.rnf findingReasonCodes+      `Prelude.seq` Prelude.rnf modifyRecommendationDetail+      `Prelude.seq` Prelude.rnf rightsizingType+      `Prelude.seq` Prelude.rnf terminateRecommendationDetail
+ gen/Amazonka/CostExplorer/Types/RightsizingRecommendationConfiguration.hs view
@@ -0,0 +1,135 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.RightsizingRecommendationConfiguration+-- 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.CostExplorer.Types.RightsizingRecommendationConfiguration where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CostExplorer.Types.RecommendationTarget+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | You can use @RightsizingRecommendationConfiguration@ to customize+-- recommendations across two attributes. You can choose to view+-- recommendations for instances within the same instance families or+-- across different instance families. You can also choose to view your+-- estimated savings that are associated with recommendations with+-- consideration of existing Savings Plans or Reserved Instance (RI)+-- benefits, or neither.+--+-- /See:/ 'newRightsizingRecommendationConfiguration' smart constructor.+data RightsizingRecommendationConfiguration = RightsizingRecommendationConfiguration'+  { -- | The option to see recommendations within the same instance family or+    -- recommendations for instances across other families. The default value+    -- is @SAME_INSTANCE_FAMILY@.+    recommendationTarget :: RecommendationTarget,+    -- | The option to consider RI or Savings Plans discount benefits in your+    -- savings calculation. The default value is @TRUE@.+    benefitsConsidered :: Prelude.Bool+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RightsizingRecommendationConfiguration' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'recommendationTarget', 'rightsizingRecommendationConfiguration_recommendationTarget' - The option to see recommendations within the same instance family or+-- recommendations for instances across other families. The default value+-- is @SAME_INSTANCE_FAMILY@.+--+-- 'benefitsConsidered', 'rightsizingRecommendationConfiguration_benefitsConsidered' - The option to consider RI or Savings Plans discount benefits in your+-- savings calculation. The default value is @TRUE@.+newRightsizingRecommendationConfiguration ::+  -- | 'recommendationTarget'+  RecommendationTarget ->+  -- | 'benefitsConsidered'+  Prelude.Bool ->+  RightsizingRecommendationConfiguration+newRightsizingRecommendationConfiguration+  pRecommendationTarget_+  pBenefitsConsidered_ =+    RightsizingRecommendationConfiguration'+      { recommendationTarget =+          pRecommendationTarget_,+        benefitsConsidered =+          pBenefitsConsidered_+      }++-- | The option to see recommendations within the same instance family or+-- recommendations for instances across other families. The default value+-- is @SAME_INSTANCE_FAMILY@.+rightsizingRecommendationConfiguration_recommendationTarget :: Lens.Lens' RightsizingRecommendationConfiguration RecommendationTarget+rightsizingRecommendationConfiguration_recommendationTarget = Lens.lens (\RightsizingRecommendationConfiguration' {recommendationTarget} -> recommendationTarget) (\s@RightsizingRecommendationConfiguration' {} a -> s {recommendationTarget = a} :: RightsizingRecommendationConfiguration)++-- | The option to consider RI or Savings Plans discount benefits in your+-- savings calculation. The default value is @TRUE@.+rightsizingRecommendationConfiguration_benefitsConsidered :: Lens.Lens' RightsizingRecommendationConfiguration Prelude.Bool+rightsizingRecommendationConfiguration_benefitsConsidered = Lens.lens (\RightsizingRecommendationConfiguration' {benefitsConsidered} -> benefitsConsidered) (\s@RightsizingRecommendationConfiguration' {} a -> s {benefitsConsidered = a} :: RightsizingRecommendationConfiguration)++instance+  Data.FromJSON+    RightsizingRecommendationConfiguration+  where+  parseJSON =+    Data.withObject+      "RightsizingRecommendationConfiguration"+      ( \x ->+          RightsizingRecommendationConfiguration'+            Prelude.<$> (x Data..: "RecommendationTarget")+            Prelude.<*> (x Data..: "BenefitsConsidered")+      )++instance+  Prelude.Hashable+    RightsizingRecommendationConfiguration+  where+  hashWithSalt+    _salt+    RightsizingRecommendationConfiguration' {..} =+      _salt+        `Prelude.hashWithSalt` recommendationTarget+        `Prelude.hashWithSalt` benefitsConsidered++instance+  Prelude.NFData+    RightsizingRecommendationConfiguration+  where+  rnf RightsizingRecommendationConfiguration' {..} =+    Prelude.rnf recommendationTarget+      `Prelude.seq` Prelude.rnf benefitsConsidered++instance+  Data.ToJSON+    RightsizingRecommendationConfiguration+  where+  toJSON RightsizingRecommendationConfiguration' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ( "RecommendationTarget"+                  Data..= recommendationTarget+              ),+            Prelude.Just+              ("BenefitsConsidered" Data..= benefitsConsidered)+          ]+      )
+ gen/Amazonka/CostExplorer/Types/RightsizingRecommendationMetadata.hs view
@@ -0,0 +1,124 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.RightsizingRecommendationMetadata+-- 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.CostExplorer.Types.RightsizingRecommendationMetadata where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CostExplorer.Types.LookbackPeriodInDays+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Metadata for this recommendation set.+--+-- /See:/ 'newRightsizingRecommendationMetadata' smart constructor.+data RightsizingRecommendationMetadata = RightsizingRecommendationMetadata'+  { -- | Additional metadata that might be applicable to the recommendation.+    additionalMetadata :: Prelude.Maybe Prelude.Text,+    -- | The timestamp for when Amazon Web Services made this recommendation.+    generationTimestamp :: Prelude.Maybe Prelude.Text,+    -- | The number of days of previous usage that Amazon Web Services considers+    -- when making this recommendation.+    lookbackPeriodInDays :: Prelude.Maybe LookbackPeriodInDays,+    -- | The ID for this specific recommendation.+    recommendationId :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RightsizingRecommendationMetadata' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'additionalMetadata', 'rightsizingRecommendationMetadata_additionalMetadata' - Additional metadata that might be applicable to the recommendation.+--+-- 'generationTimestamp', 'rightsizingRecommendationMetadata_generationTimestamp' - The timestamp for when Amazon Web Services made this recommendation.+--+-- 'lookbackPeriodInDays', 'rightsizingRecommendationMetadata_lookbackPeriodInDays' - The number of days of previous usage that Amazon Web Services considers+-- when making this recommendation.+--+-- 'recommendationId', 'rightsizingRecommendationMetadata_recommendationId' - The ID for this specific recommendation.+newRightsizingRecommendationMetadata ::+  RightsizingRecommendationMetadata+newRightsizingRecommendationMetadata =+  RightsizingRecommendationMetadata'+    { additionalMetadata =+        Prelude.Nothing,+      generationTimestamp = Prelude.Nothing,+      lookbackPeriodInDays = Prelude.Nothing,+      recommendationId = Prelude.Nothing+    }++-- | Additional metadata that might be applicable to the recommendation.+rightsizingRecommendationMetadata_additionalMetadata :: Lens.Lens' RightsizingRecommendationMetadata (Prelude.Maybe Prelude.Text)+rightsizingRecommendationMetadata_additionalMetadata = Lens.lens (\RightsizingRecommendationMetadata' {additionalMetadata} -> additionalMetadata) (\s@RightsizingRecommendationMetadata' {} a -> s {additionalMetadata = a} :: RightsizingRecommendationMetadata)++-- | The timestamp for when Amazon Web Services made this recommendation.+rightsizingRecommendationMetadata_generationTimestamp :: Lens.Lens' RightsizingRecommendationMetadata (Prelude.Maybe Prelude.Text)+rightsizingRecommendationMetadata_generationTimestamp = Lens.lens (\RightsizingRecommendationMetadata' {generationTimestamp} -> generationTimestamp) (\s@RightsizingRecommendationMetadata' {} a -> s {generationTimestamp = a} :: RightsizingRecommendationMetadata)++-- | The number of days of previous usage that Amazon Web Services considers+-- when making this recommendation.+rightsizingRecommendationMetadata_lookbackPeriodInDays :: Lens.Lens' RightsizingRecommendationMetadata (Prelude.Maybe LookbackPeriodInDays)+rightsizingRecommendationMetadata_lookbackPeriodInDays = Lens.lens (\RightsizingRecommendationMetadata' {lookbackPeriodInDays} -> lookbackPeriodInDays) (\s@RightsizingRecommendationMetadata' {} a -> s {lookbackPeriodInDays = a} :: RightsizingRecommendationMetadata)++-- | The ID for this specific recommendation.+rightsizingRecommendationMetadata_recommendationId :: Lens.Lens' RightsizingRecommendationMetadata (Prelude.Maybe Prelude.Text)+rightsizingRecommendationMetadata_recommendationId = Lens.lens (\RightsizingRecommendationMetadata' {recommendationId} -> recommendationId) (\s@RightsizingRecommendationMetadata' {} a -> s {recommendationId = a} :: RightsizingRecommendationMetadata)++instance+  Data.FromJSON+    RightsizingRecommendationMetadata+  where+  parseJSON =+    Data.withObject+      "RightsizingRecommendationMetadata"+      ( \x ->+          RightsizingRecommendationMetadata'+            Prelude.<$> (x Data..:? "AdditionalMetadata")+            Prelude.<*> (x Data..:? "GenerationTimestamp")+            Prelude.<*> (x Data..:? "LookbackPeriodInDays")+            Prelude.<*> (x Data..:? "RecommendationId")+      )++instance+  Prelude.Hashable+    RightsizingRecommendationMetadata+  where+  hashWithSalt+    _salt+    RightsizingRecommendationMetadata' {..} =+      _salt+        `Prelude.hashWithSalt` additionalMetadata+        `Prelude.hashWithSalt` generationTimestamp+        `Prelude.hashWithSalt` lookbackPeriodInDays+        `Prelude.hashWithSalt` recommendationId++instance+  Prelude.NFData+    RightsizingRecommendationMetadata+  where+  rnf RightsizingRecommendationMetadata' {..} =+    Prelude.rnf additionalMetadata+      `Prelude.seq` Prelude.rnf generationTimestamp+      `Prelude.seq` Prelude.rnf lookbackPeriodInDays+      `Prelude.seq` Prelude.rnf recommendationId
+ gen/Amazonka/CostExplorer/Types/RightsizingRecommendationSummary.hs view
@@ -0,0 +1,133 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.RightsizingRecommendationSummary+-- 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.CostExplorer.Types.RightsizingRecommendationSummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The summary of rightsizing recommendations+--+-- /See:/ 'newRightsizingRecommendationSummary' smart constructor.+data RightsizingRecommendationSummary = RightsizingRecommendationSummary'+  { -- | The estimated total savings resulting from modifications, on a monthly+    -- basis.+    estimatedTotalMonthlySavingsAmount :: Prelude.Maybe Prelude.Text,+    -- | The currency code that Amazon Web Services used to calculate the+    -- savings.+    savingsCurrencyCode :: Prelude.Maybe Prelude.Text,+    -- | The savings percentage based on the recommended modifications. It\'s+    -- relative to the total On-Demand costs that are associated with these+    -- instances.+    savingsPercentage :: Prelude.Maybe Prelude.Text,+    -- | The total number of instance recommendations.+    totalRecommendationCount :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RightsizingRecommendationSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'estimatedTotalMonthlySavingsAmount', 'rightsizingRecommendationSummary_estimatedTotalMonthlySavingsAmount' - The estimated total savings resulting from modifications, on a monthly+-- basis.+--+-- 'savingsCurrencyCode', 'rightsizingRecommendationSummary_savingsCurrencyCode' - The currency code that Amazon Web Services used to calculate the+-- savings.+--+-- 'savingsPercentage', 'rightsizingRecommendationSummary_savingsPercentage' - The savings percentage based on the recommended modifications. It\'s+-- relative to the total On-Demand costs that are associated with these+-- instances.+--+-- 'totalRecommendationCount', 'rightsizingRecommendationSummary_totalRecommendationCount' - The total number of instance recommendations.+newRightsizingRecommendationSummary ::+  RightsizingRecommendationSummary+newRightsizingRecommendationSummary =+  RightsizingRecommendationSummary'+    { estimatedTotalMonthlySavingsAmount =+        Prelude.Nothing,+      savingsCurrencyCode = Prelude.Nothing,+      savingsPercentage = Prelude.Nothing,+      totalRecommendationCount =+        Prelude.Nothing+    }++-- | The estimated total savings resulting from modifications, on a monthly+-- basis.+rightsizingRecommendationSummary_estimatedTotalMonthlySavingsAmount :: Lens.Lens' RightsizingRecommendationSummary (Prelude.Maybe Prelude.Text)+rightsizingRecommendationSummary_estimatedTotalMonthlySavingsAmount = Lens.lens (\RightsizingRecommendationSummary' {estimatedTotalMonthlySavingsAmount} -> estimatedTotalMonthlySavingsAmount) (\s@RightsizingRecommendationSummary' {} a -> s {estimatedTotalMonthlySavingsAmount = a} :: RightsizingRecommendationSummary)++-- | The currency code that Amazon Web Services used to calculate the+-- savings.+rightsizingRecommendationSummary_savingsCurrencyCode :: Lens.Lens' RightsizingRecommendationSummary (Prelude.Maybe Prelude.Text)+rightsizingRecommendationSummary_savingsCurrencyCode = Lens.lens (\RightsizingRecommendationSummary' {savingsCurrencyCode} -> savingsCurrencyCode) (\s@RightsizingRecommendationSummary' {} a -> s {savingsCurrencyCode = a} :: RightsizingRecommendationSummary)++-- | The savings percentage based on the recommended modifications. It\'s+-- relative to the total On-Demand costs that are associated with these+-- instances.+rightsizingRecommendationSummary_savingsPercentage :: Lens.Lens' RightsizingRecommendationSummary (Prelude.Maybe Prelude.Text)+rightsizingRecommendationSummary_savingsPercentage = Lens.lens (\RightsizingRecommendationSummary' {savingsPercentage} -> savingsPercentage) (\s@RightsizingRecommendationSummary' {} a -> s {savingsPercentage = a} :: RightsizingRecommendationSummary)++-- | The total number of instance recommendations.+rightsizingRecommendationSummary_totalRecommendationCount :: Lens.Lens' RightsizingRecommendationSummary (Prelude.Maybe Prelude.Text)+rightsizingRecommendationSummary_totalRecommendationCount = Lens.lens (\RightsizingRecommendationSummary' {totalRecommendationCount} -> totalRecommendationCount) (\s@RightsizingRecommendationSummary' {} a -> s {totalRecommendationCount = a} :: RightsizingRecommendationSummary)++instance+  Data.FromJSON+    RightsizingRecommendationSummary+  where+  parseJSON =+    Data.withObject+      "RightsizingRecommendationSummary"+      ( \x ->+          RightsizingRecommendationSummary'+            Prelude.<$> (x Data..:? "EstimatedTotalMonthlySavingsAmount")+            Prelude.<*> (x Data..:? "SavingsCurrencyCode")+            Prelude.<*> (x Data..:? "SavingsPercentage")+            Prelude.<*> (x Data..:? "TotalRecommendationCount")+      )++instance+  Prelude.Hashable+    RightsizingRecommendationSummary+  where+  hashWithSalt+    _salt+    RightsizingRecommendationSummary' {..} =+      _salt+        `Prelude.hashWithSalt` estimatedTotalMonthlySavingsAmount+        `Prelude.hashWithSalt` savingsCurrencyCode+        `Prelude.hashWithSalt` savingsPercentage+        `Prelude.hashWithSalt` totalRecommendationCount++instance+  Prelude.NFData+    RightsizingRecommendationSummary+  where+  rnf RightsizingRecommendationSummary' {..} =+    Prelude.rnf estimatedTotalMonthlySavingsAmount+      `Prelude.seq` Prelude.rnf savingsCurrencyCode+      `Prelude.seq` Prelude.rnf savingsPercentage+      `Prelude.seq` Prelude.rnf totalRecommendationCount
+ gen/Amazonka/CostExplorer/Types/RightsizingType.hs view
@@ -0,0 +1,71 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.RightsizingType+-- 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.CostExplorer.Types.RightsizingType+  ( RightsizingType+      ( ..,+        RightsizingType_MODIFY,+        RightsizingType_TERMINATE+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype RightsizingType = RightsizingType'+  { fromRightsizingType ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern RightsizingType_MODIFY :: RightsizingType+pattern RightsizingType_MODIFY = RightsizingType' "MODIFY"++pattern RightsizingType_TERMINATE :: RightsizingType+pattern RightsizingType_TERMINATE = RightsizingType' "TERMINATE"++{-# COMPLETE+  RightsizingType_MODIFY,+  RightsizingType_TERMINATE,+  RightsizingType'+  #-}
+ gen/Amazonka/CostExplorer/Types/RootCause.hs view
@@ -0,0 +1,123 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.RootCause+-- 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.CostExplorer.Types.RootCause where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The combination of Amazon Web Service, linked account, linked account+-- name, Region, and usage type where a cost anomaly is observed. The+-- linked account name will only be available when the account name can be+-- identified.+--+-- /See:/ 'newRootCause' smart constructor.+data RootCause = RootCause'+  { -- | The member account value that\'s associated with the cost anomaly.+    linkedAccount :: Prelude.Maybe Prelude.Text,+    -- | The member account name value that\'s associated with the cost anomaly.+    linkedAccountName :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Web Services Region that\'s associated with the cost anomaly.+    region :: Prelude.Maybe Prelude.Text,+    -- | The Amazon Web Service name that\'s associated with the cost anomaly.+    service :: Prelude.Maybe Prelude.Text,+    -- | The @UsageType@ value that\'s associated with the cost anomaly.+    usageType :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'RootCause' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'linkedAccount', 'rootCause_linkedAccount' - The member account value that\'s associated with the cost anomaly.+--+-- 'linkedAccountName', 'rootCause_linkedAccountName' - The member account name value that\'s associated with the cost anomaly.+--+-- 'region', 'rootCause_region' - The Amazon Web Services Region that\'s associated with the cost anomaly.+--+-- 'service', 'rootCause_service' - The Amazon Web Service name that\'s associated with the cost anomaly.+--+-- 'usageType', 'rootCause_usageType' - The @UsageType@ value that\'s associated with the cost anomaly.+newRootCause ::+  RootCause+newRootCause =+  RootCause'+    { linkedAccount = Prelude.Nothing,+      linkedAccountName = Prelude.Nothing,+      region = Prelude.Nothing,+      service = Prelude.Nothing,+      usageType = Prelude.Nothing+    }++-- | The member account value that\'s associated with the cost anomaly.+rootCause_linkedAccount :: Lens.Lens' RootCause (Prelude.Maybe Prelude.Text)+rootCause_linkedAccount = Lens.lens (\RootCause' {linkedAccount} -> linkedAccount) (\s@RootCause' {} a -> s {linkedAccount = a} :: RootCause)++-- | The member account name value that\'s associated with the cost anomaly.+rootCause_linkedAccountName :: Lens.Lens' RootCause (Prelude.Maybe Prelude.Text)+rootCause_linkedAccountName = Lens.lens (\RootCause' {linkedAccountName} -> linkedAccountName) (\s@RootCause' {} a -> s {linkedAccountName = a} :: RootCause)++-- | The Amazon Web Services Region that\'s associated with the cost anomaly.+rootCause_region :: Lens.Lens' RootCause (Prelude.Maybe Prelude.Text)+rootCause_region = Lens.lens (\RootCause' {region} -> region) (\s@RootCause' {} a -> s {region = a} :: RootCause)++-- | The Amazon Web Service name that\'s associated with the cost anomaly.+rootCause_service :: Lens.Lens' RootCause (Prelude.Maybe Prelude.Text)+rootCause_service = Lens.lens (\RootCause' {service} -> service) (\s@RootCause' {} a -> s {service = a} :: RootCause)++-- | The @UsageType@ value that\'s associated with the cost anomaly.+rootCause_usageType :: Lens.Lens' RootCause (Prelude.Maybe Prelude.Text)+rootCause_usageType = Lens.lens (\RootCause' {usageType} -> usageType) (\s@RootCause' {} a -> s {usageType = a} :: RootCause)++instance Data.FromJSON RootCause where+  parseJSON =+    Data.withObject+      "RootCause"+      ( \x ->+          RootCause'+            Prelude.<$> (x Data..:? "LinkedAccount")+            Prelude.<*> (x Data..:? "LinkedAccountName")+            Prelude.<*> (x Data..:? "Region")+            Prelude.<*> (x Data..:? "Service")+            Prelude.<*> (x Data..:? "UsageType")+      )++instance Prelude.Hashable RootCause where+  hashWithSalt _salt RootCause' {..} =+    _salt+      `Prelude.hashWithSalt` linkedAccount+      `Prelude.hashWithSalt` linkedAccountName+      `Prelude.hashWithSalt` region+      `Prelude.hashWithSalt` service+      `Prelude.hashWithSalt` usageType++instance Prelude.NFData RootCause where+  rnf RootCause' {..} =+    Prelude.rnf linkedAccount+      `Prelude.seq` Prelude.rnf linkedAccountName+      `Prelude.seq` Prelude.rnf region+      `Prelude.seq` Prelude.rnf service+      `Prelude.seq` Prelude.rnf usageType
+ gen/Amazonka/CostExplorer/Types/SavingsPlansAmortizedCommitment.hs view
@@ -0,0 +1,119 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.SavingsPlansAmortizedCommitment+-- 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.CostExplorer.Types.SavingsPlansAmortizedCommitment where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The amortized amount of Savings Plans purchased in a specific account+-- during a specific time interval.+--+-- /See:/ 'newSavingsPlansAmortizedCommitment' smart constructor.+data SavingsPlansAmortizedCommitment = SavingsPlansAmortizedCommitment'+  { -- | The amortized amount of your Savings Plans commitment that was purchased+    -- with either a @Partial@ or a @NoUpfront@.+    amortizedRecurringCommitment :: Prelude.Maybe Prelude.Text,+    -- | The amortized amount of your Savings Plans commitment that was purchased+    -- with an @Upfront@ or @PartialUpfront@ Savings Plans.+    amortizedUpfrontCommitment :: Prelude.Maybe Prelude.Text,+    -- | The total amortized amount of your Savings Plans commitment, regardless+    -- of your Savings Plans purchase method.+    totalAmortizedCommitment :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SavingsPlansAmortizedCommitment' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'amortizedRecurringCommitment', 'savingsPlansAmortizedCommitment_amortizedRecurringCommitment' - The amortized amount of your Savings Plans commitment that was purchased+-- with either a @Partial@ or a @NoUpfront@.+--+-- 'amortizedUpfrontCommitment', 'savingsPlansAmortizedCommitment_amortizedUpfrontCommitment' - The amortized amount of your Savings Plans commitment that was purchased+-- with an @Upfront@ or @PartialUpfront@ Savings Plans.+--+-- 'totalAmortizedCommitment', 'savingsPlansAmortizedCommitment_totalAmortizedCommitment' - The total amortized amount of your Savings Plans commitment, regardless+-- of your Savings Plans purchase method.+newSavingsPlansAmortizedCommitment ::+  SavingsPlansAmortizedCommitment+newSavingsPlansAmortizedCommitment =+  SavingsPlansAmortizedCommitment'+    { amortizedRecurringCommitment =+        Prelude.Nothing,+      amortizedUpfrontCommitment =+        Prelude.Nothing,+      totalAmortizedCommitment = Prelude.Nothing+    }++-- | The amortized amount of your Savings Plans commitment that was purchased+-- with either a @Partial@ or a @NoUpfront@.+savingsPlansAmortizedCommitment_amortizedRecurringCommitment :: Lens.Lens' SavingsPlansAmortizedCommitment (Prelude.Maybe Prelude.Text)+savingsPlansAmortizedCommitment_amortizedRecurringCommitment = Lens.lens (\SavingsPlansAmortizedCommitment' {amortizedRecurringCommitment} -> amortizedRecurringCommitment) (\s@SavingsPlansAmortizedCommitment' {} a -> s {amortizedRecurringCommitment = a} :: SavingsPlansAmortizedCommitment)++-- | The amortized amount of your Savings Plans commitment that was purchased+-- with an @Upfront@ or @PartialUpfront@ Savings Plans.+savingsPlansAmortizedCommitment_amortizedUpfrontCommitment :: Lens.Lens' SavingsPlansAmortizedCommitment (Prelude.Maybe Prelude.Text)+savingsPlansAmortizedCommitment_amortizedUpfrontCommitment = Lens.lens (\SavingsPlansAmortizedCommitment' {amortizedUpfrontCommitment} -> amortizedUpfrontCommitment) (\s@SavingsPlansAmortizedCommitment' {} a -> s {amortizedUpfrontCommitment = a} :: SavingsPlansAmortizedCommitment)++-- | The total amortized amount of your Savings Plans commitment, regardless+-- of your Savings Plans purchase method.+savingsPlansAmortizedCommitment_totalAmortizedCommitment :: Lens.Lens' SavingsPlansAmortizedCommitment (Prelude.Maybe Prelude.Text)+savingsPlansAmortizedCommitment_totalAmortizedCommitment = Lens.lens (\SavingsPlansAmortizedCommitment' {totalAmortizedCommitment} -> totalAmortizedCommitment) (\s@SavingsPlansAmortizedCommitment' {} a -> s {totalAmortizedCommitment = a} :: SavingsPlansAmortizedCommitment)++instance+  Data.FromJSON+    SavingsPlansAmortizedCommitment+  where+  parseJSON =+    Data.withObject+      "SavingsPlansAmortizedCommitment"+      ( \x ->+          SavingsPlansAmortizedCommitment'+            Prelude.<$> (x Data..:? "AmortizedRecurringCommitment")+            Prelude.<*> (x Data..:? "AmortizedUpfrontCommitment")+            Prelude.<*> (x Data..:? "TotalAmortizedCommitment")+      )++instance+  Prelude.Hashable+    SavingsPlansAmortizedCommitment+  where+  hashWithSalt+    _salt+    SavingsPlansAmortizedCommitment' {..} =+      _salt+        `Prelude.hashWithSalt` amortizedRecurringCommitment+        `Prelude.hashWithSalt` amortizedUpfrontCommitment+        `Prelude.hashWithSalt` totalAmortizedCommitment++instance+  Prelude.NFData+    SavingsPlansAmortizedCommitment+  where+  rnf SavingsPlansAmortizedCommitment' {..} =+    Prelude.rnf amortizedRecurringCommitment+      `Prelude.seq` Prelude.rnf amortizedUpfrontCommitment+      `Prelude.seq` Prelude.rnf totalAmortizedCommitment
+ gen/Amazonka/CostExplorer/Types/SavingsPlansCoverage.hs view
@@ -0,0 +1,102 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.SavingsPlansCoverage+-- 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.CostExplorer.Types.SavingsPlansCoverage where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CostExplorer.Types.DateInterval+import Amazonka.CostExplorer.Types.SavingsPlansCoverageData+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The amount of Savings Plans eligible usage that\'s covered by Savings+-- Plans. All calculations consider the On-Demand equivalent of your+-- Savings Plans usage.+--+-- /See:/ 'newSavingsPlansCoverage' smart constructor.+data SavingsPlansCoverage = SavingsPlansCoverage'+  { -- | The attribute that applies to a specific @Dimension@.+    attributes :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The amount of Savings Plans eligible usage that the Savings Plans+    -- covered.+    coverage :: Prelude.Maybe SavingsPlansCoverageData,+    timePeriod :: Prelude.Maybe DateInterval+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SavingsPlansCoverage' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'attributes', 'savingsPlansCoverage_attributes' - The attribute that applies to a specific @Dimension@.+--+-- 'coverage', 'savingsPlansCoverage_coverage' - The amount of Savings Plans eligible usage that the Savings Plans+-- covered.+--+-- 'timePeriod', 'savingsPlansCoverage_timePeriod' - Undocumented member.+newSavingsPlansCoverage ::+  SavingsPlansCoverage+newSavingsPlansCoverage =+  SavingsPlansCoverage'+    { attributes = Prelude.Nothing,+      coverage = Prelude.Nothing,+      timePeriod = Prelude.Nothing+    }++-- | The attribute that applies to a specific @Dimension@.+savingsPlansCoverage_attributes :: Lens.Lens' SavingsPlansCoverage (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+savingsPlansCoverage_attributes = Lens.lens (\SavingsPlansCoverage' {attributes} -> attributes) (\s@SavingsPlansCoverage' {} a -> s {attributes = a} :: SavingsPlansCoverage) Prelude.. Lens.mapping Lens.coerced++-- | The amount of Savings Plans eligible usage that the Savings Plans+-- covered.+savingsPlansCoverage_coverage :: Lens.Lens' SavingsPlansCoverage (Prelude.Maybe SavingsPlansCoverageData)+savingsPlansCoverage_coverage = Lens.lens (\SavingsPlansCoverage' {coverage} -> coverage) (\s@SavingsPlansCoverage' {} a -> s {coverage = a} :: SavingsPlansCoverage)++-- | Undocumented member.+savingsPlansCoverage_timePeriod :: Lens.Lens' SavingsPlansCoverage (Prelude.Maybe DateInterval)+savingsPlansCoverage_timePeriod = Lens.lens (\SavingsPlansCoverage' {timePeriod} -> timePeriod) (\s@SavingsPlansCoverage' {} a -> s {timePeriod = a} :: SavingsPlansCoverage)++instance Data.FromJSON SavingsPlansCoverage where+  parseJSON =+    Data.withObject+      "SavingsPlansCoverage"+      ( \x ->+          SavingsPlansCoverage'+            Prelude.<$> (x Data..:? "Attributes" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "Coverage")+            Prelude.<*> (x Data..:? "TimePeriod")+      )++instance Prelude.Hashable SavingsPlansCoverage where+  hashWithSalt _salt SavingsPlansCoverage' {..} =+    _salt+      `Prelude.hashWithSalt` attributes+      `Prelude.hashWithSalt` coverage+      `Prelude.hashWithSalt` timePeriod++instance Prelude.NFData SavingsPlansCoverage where+  rnf SavingsPlansCoverage' {..} =+    Prelude.rnf attributes+      `Prelude.seq` Prelude.rnf coverage+      `Prelude.seq` Prelude.rnf timePeriod
+ gen/Amazonka/CostExplorer/Types/SavingsPlansCoverageData.hs view
@@ -0,0 +1,122 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.SavingsPlansCoverageData+-- 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.CostExplorer.Types.SavingsPlansCoverageData where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Specific coverage percentage, On-Demand costs, and spend covered by+-- Savings Plans, and total Savings Plans costs for an account.+--+-- /See:/ 'newSavingsPlansCoverageData' smart constructor.+data SavingsPlansCoverageData = SavingsPlansCoverageData'+  { -- | The percentage of your existing Savings Plans covered usage, divided by+    -- all of your eligible Savings Plans usage in an account (or set of+    -- accounts).+    coveragePercentage :: Prelude.Maybe Prelude.Text,+    -- | The cost of your Amazon Web Services usage at the public On-Demand rate.+    onDemandCost :: Prelude.Maybe Prelude.Text,+    -- | The amount of your Amazon Web Services usage that\'s covered by a+    -- Savings Plans.+    spendCoveredBySavingsPlans :: Prelude.Maybe Prelude.Text,+    -- | The total cost of your Amazon Web Services usage, regardless of your+    -- purchase option.+    totalCost :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SavingsPlansCoverageData' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'coveragePercentage', 'savingsPlansCoverageData_coveragePercentage' - The percentage of your existing Savings Plans covered usage, divided by+-- all of your eligible Savings Plans usage in an account (or set of+-- accounts).+--+-- 'onDemandCost', 'savingsPlansCoverageData_onDemandCost' - The cost of your Amazon Web Services usage at the public On-Demand rate.+--+-- 'spendCoveredBySavingsPlans', 'savingsPlansCoverageData_spendCoveredBySavingsPlans' - The amount of your Amazon Web Services usage that\'s covered by a+-- Savings Plans.+--+-- 'totalCost', 'savingsPlansCoverageData_totalCost' - The total cost of your Amazon Web Services usage, regardless of your+-- purchase option.+newSavingsPlansCoverageData ::+  SavingsPlansCoverageData+newSavingsPlansCoverageData =+  SavingsPlansCoverageData'+    { coveragePercentage =+        Prelude.Nothing,+      onDemandCost = Prelude.Nothing,+      spendCoveredBySavingsPlans = Prelude.Nothing,+      totalCost = Prelude.Nothing+    }++-- | The percentage of your existing Savings Plans covered usage, divided by+-- all of your eligible Savings Plans usage in an account (or set of+-- accounts).+savingsPlansCoverageData_coveragePercentage :: Lens.Lens' SavingsPlansCoverageData (Prelude.Maybe Prelude.Text)+savingsPlansCoverageData_coveragePercentage = Lens.lens (\SavingsPlansCoverageData' {coveragePercentage} -> coveragePercentage) (\s@SavingsPlansCoverageData' {} a -> s {coveragePercentage = a} :: SavingsPlansCoverageData)++-- | The cost of your Amazon Web Services usage at the public On-Demand rate.+savingsPlansCoverageData_onDemandCost :: Lens.Lens' SavingsPlansCoverageData (Prelude.Maybe Prelude.Text)+savingsPlansCoverageData_onDemandCost = Lens.lens (\SavingsPlansCoverageData' {onDemandCost} -> onDemandCost) (\s@SavingsPlansCoverageData' {} a -> s {onDemandCost = a} :: SavingsPlansCoverageData)++-- | The amount of your Amazon Web Services usage that\'s covered by a+-- Savings Plans.+savingsPlansCoverageData_spendCoveredBySavingsPlans :: Lens.Lens' SavingsPlansCoverageData (Prelude.Maybe Prelude.Text)+savingsPlansCoverageData_spendCoveredBySavingsPlans = Lens.lens (\SavingsPlansCoverageData' {spendCoveredBySavingsPlans} -> spendCoveredBySavingsPlans) (\s@SavingsPlansCoverageData' {} a -> s {spendCoveredBySavingsPlans = a} :: SavingsPlansCoverageData)++-- | The total cost of your Amazon Web Services usage, regardless of your+-- purchase option.+savingsPlansCoverageData_totalCost :: Lens.Lens' SavingsPlansCoverageData (Prelude.Maybe Prelude.Text)+savingsPlansCoverageData_totalCost = Lens.lens (\SavingsPlansCoverageData' {totalCost} -> totalCost) (\s@SavingsPlansCoverageData' {} a -> s {totalCost = a} :: SavingsPlansCoverageData)++instance Data.FromJSON SavingsPlansCoverageData where+  parseJSON =+    Data.withObject+      "SavingsPlansCoverageData"+      ( \x ->+          SavingsPlansCoverageData'+            Prelude.<$> (x Data..:? "CoveragePercentage")+            Prelude.<*> (x Data..:? "OnDemandCost")+            Prelude.<*> (x Data..:? "SpendCoveredBySavingsPlans")+            Prelude.<*> (x Data..:? "TotalCost")+      )++instance Prelude.Hashable SavingsPlansCoverageData where+  hashWithSalt _salt SavingsPlansCoverageData' {..} =+    _salt+      `Prelude.hashWithSalt` coveragePercentage+      `Prelude.hashWithSalt` onDemandCost+      `Prelude.hashWithSalt` spendCoveredBySavingsPlans+      `Prelude.hashWithSalt` totalCost++instance Prelude.NFData SavingsPlansCoverageData where+  rnf SavingsPlansCoverageData' {..} =+    Prelude.rnf coveragePercentage+      `Prelude.seq` Prelude.rnf onDemandCost+      `Prelude.seq` Prelude.rnf spendCoveredBySavingsPlans+      `Prelude.seq` Prelude.rnf totalCost
+ gen/Amazonka/CostExplorer/Types/SavingsPlansDataType.hs view
@@ -0,0 +1,81 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.SavingsPlansDataType+-- 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.CostExplorer.Types.SavingsPlansDataType+  ( SavingsPlansDataType+      ( ..,+        SavingsPlansDataType_AMORTIZED_COMMITMENT,+        SavingsPlansDataType_ATTRIBUTES,+        SavingsPlansDataType_SAVINGS,+        SavingsPlansDataType_UTILIZATION+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype SavingsPlansDataType = SavingsPlansDataType'+  { fromSavingsPlansDataType ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern SavingsPlansDataType_AMORTIZED_COMMITMENT :: SavingsPlansDataType+pattern SavingsPlansDataType_AMORTIZED_COMMITMENT = SavingsPlansDataType' "AMORTIZED_COMMITMENT"++pattern SavingsPlansDataType_ATTRIBUTES :: SavingsPlansDataType+pattern SavingsPlansDataType_ATTRIBUTES = SavingsPlansDataType' "ATTRIBUTES"++pattern SavingsPlansDataType_SAVINGS :: SavingsPlansDataType+pattern SavingsPlansDataType_SAVINGS = SavingsPlansDataType' "SAVINGS"++pattern SavingsPlansDataType_UTILIZATION :: SavingsPlansDataType+pattern SavingsPlansDataType_UTILIZATION = SavingsPlansDataType' "UTILIZATION"++{-# COMPLETE+  SavingsPlansDataType_AMORTIZED_COMMITMENT,+  SavingsPlansDataType_ATTRIBUTES,+  SavingsPlansDataType_SAVINGS,+  SavingsPlansDataType_UTILIZATION,+  SavingsPlansDataType'+  #-}
+ gen/Amazonka/CostExplorer/Types/SavingsPlansDetails.hs view
@@ -0,0 +1,106 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.SavingsPlansDetails+-- 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.CostExplorer.Types.SavingsPlansDetails where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The attribute details on a specific Savings Plan.+--+-- /See:/ 'newSavingsPlansDetails' smart constructor.+data SavingsPlansDetails = SavingsPlansDetails'+  { -- | A group of instance types that Savings Plans applies to.+    instanceFamily :: Prelude.Maybe Prelude.Text,+    -- | The unique ID that\'s used to distinguish Savings Plans from one+    -- another.+    offeringId :: Prelude.Maybe Prelude.Text,+    -- | A collection of Amazon Web Services resources in a geographic area. Each+    -- Amazon Web Services Region is isolated and independent of the other+    -- Regions.+    region :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SavingsPlansDetails' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'instanceFamily', 'savingsPlansDetails_instanceFamily' - A group of instance types that Savings Plans applies to.+--+-- 'offeringId', 'savingsPlansDetails_offeringId' - The unique ID that\'s used to distinguish Savings Plans from one+-- another.+--+-- 'region', 'savingsPlansDetails_region' - A collection of Amazon Web Services resources in a geographic area. Each+-- Amazon Web Services Region is isolated and independent of the other+-- Regions.+newSavingsPlansDetails ::+  SavingsPlansDetails+newSavingsPlansDetails =+  SavingsPlansDetails'+    { instanceFamily =+        Prelude.Nothing,+      offeringId = Prelude.Nothing,+      region = Prelude.Nothing+    }++-- | A group of instance types that Savings Plans applies to.+savingsPlansDetails_instanceFamily :: Lens.Lens' SavingsPlansDetails (Prelude.Maybe Prelude.Text)+savingsPlansDetails_instanceFamily = Lens.lens (\SavingsPlansDetails' {instanceFamily} -> instanceFamily) (\s@SavingsPlansDetails' {} a -> s {instanceFamily = a} :: SavingsPlansDetails)++-- | The unique ID that\'s used to distinguish Savings Plans from one+-- another.+savingsPlansDetails_offeringId :: Lens.Lens' SavingsPlansDetails (Prelude.Maybe Prelude.Text)+savingsPlansDetails_offeringId = Lens.lens (\SavingsPlansDetails' {offeringId} -> offeringId) (\s@SavingsPlansDetails' {} a -> s {offeringId = a} :: SavingsPlansDetails)++-- | A collection of Amazon Web Services resources in a geographic area. Each+-- Amazon Web Services Region is isolated and independent of the other+-- Regions.+savingsPlansDetails_region :: Lens.Lens' SavingsPlansDetails (Prelude.Maybe Prelude.Text)+savingsPlansDetails_region = Lens.lens (\SavingsPlansDetails' {region} -> region) (\s@SavingsPlansDetails' {} a -> s {region = a} :: SavingsPlansDetails)++instance Data.FromJSON SavingsPlansDetails where+  parseJSON =+    Data.withObject+      "SavingsPlansDetails"+      ( \x ->+          SavingsPlansDetails'+            Prelude.<$> (x Data..:? "InstanceFamily")+            Prelude.<*> (x Data..:? "OfferingId")+            Prelude.<*> (x Data..:? "Region")+      )++instance Prelude.Hashable SavingsPlansDetails where+  hashWithSalt _salt SavingsPlansDetails' {..} =+    _salt+      `Prelude.hashWithSalt` instanceFamily+      `Prelude.hashWithSalt` offeringId+      `Prelude.hashWithSalt` region++instance Prelude.NFData SavingsPlansDetails where+  rnf SavingsPlansDetails' {..} =+    Prelude.rnf instanceFamily+      `Prelude.seq` Prelude.rnf offeringId+      `Prelude.seq` Prelude.rnf region
+ gen/Amazonka/CostExplorer/Types/SavingsPlansPurchaseRecommendation.hs view
@@ -0,0 +1,189 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendation+-- 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.CostExplorer.Types.SavingsPlansPurchaseRecommendation where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CostExplorer.Types.AccountScope+import Amazonka.CostExplorer.Types.LookbackPeriodInDays+import Amazonka.CostExplorer.Types.PaymentOption+import Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationDetail+import Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationSummary+import Amazonka.CostExplorer.Types.SupportedSavingsPlansType+import Amazonka.CostExplorer.Types.TermInYears+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Contains your request parameters, Savings Plan Recommendations Summary,+-- and Details.+--+-- /See:/ 'newSavingsPlansPurchaseRecommendation' smart constructor.+data SavingsPlansPurchaseRecommendation = SavingsPlansPurchaseRecommendation'+  { -- | The account scope that you want your recommendations for. Amazon Web+    -- Services calculates recommendations that include the management account+    -- and member accounts if the value is set to @PAYER@. If the value is+    -- @LINKED@, recommendations are calculated for individual member accounts+    -- only.+    accountScope :: Prelude.Maybe AccountScope,+    -- | The lookback period in days that\'s used to generate the recommendation.+    lookbackPeriodInDays :: Prelude.Maybe LookbackPeriodInDays,+    -- | The payment option that\'s used to generate the recommendation.+    paymentOption :: Prelude.Maybe PaymentOption,+    -- | Details for the Savings Plans that we recommend that you purchase to+    -- cover existing Savings Plans eligible workloads.+    savingsPlansPurchaseRecommendationDetails :: Prelude.Maybe [SavingsPlansPurchaseRecommendationDetail],+    -- | Summary metrics for your Savings Plans Recommendations.+    savingsPlansPurchaseRecommendationSummary :: Prelude.Maybe SavingsPlansPurchaseRecommendationSummary,+    -- | The requested Savings Plans recommendation type.+    savingsPlansType :: Prelude.Maybe SupportedSavingsPlansType,+    -- | The Savings Plans recommendation term in years. It\'s used to generate+    -- the recommendation.+    termInYears :: Prelude.Maybe TermInYears+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SavingsPlansPurchaseRecommendation' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'accountScope', 'savingsPlansPurchaseRecommendation_accountScope' - The account scope that you want your recommendations for. Amazon Web+-- Services calculates recommendations that include the management account+-- and member accounts if the value is set to @PAYER@. If the value is+-- @LINKED@, recommendations are calculated for individual member accounts+-- only.+--+-- 'lookbackPeriodInDays', 'savingsPlansPurchaseRecommendation_lookbackPeriodInDays' - The lookback period in days that\'s used to generate the recommendation.+--+-- 'paymentOption', 'savingsPlansPurchaseRecommendation_paymentOption' - The payment option that\'s used to generate the recommendation.+--+-- 'savingsPlansPurchaseRecommendationDetails', 'savingsPlansPurchaseRecommendation_savingsPlansPurchaseRecommendationDetails' - Details for the Savings Plans that we recommend that you purchase to+-- cover existing Savings Plans eligible workloads.+--+-- 'savingsPlansPurchaseRecommendationSummary', 'savingsPlansPurchaseRecommendation_savingsPlansPurchaseRecommendationSummary' - Summary metrics for your Savings Plans Recommendations.+--+-- 'savingsPlansType', 'savingsPlansPurchaseRecommendation_savingsPlansType' - The requested Savings Plans recommendation type.+--+-- 'termInYears', 'savingsPlansPurchaseRecommendation_termInYears' - The Savings Plans recommendation term in years. It\'s used to generate+-- the recommendation.+newSavingsPlansPurchaseRecommendation ::+  SavingsPlansPurchaseRecommendation+newSavingsPlansPurchaseRecommendation =+  SavingsPlansPurchaseRecommendation'+    { accountScope =+        Prelude.Nothing,+      lookbackPeriodInDays = Prelude.Nothing,+      paymentOption = Prelude.Nothing,+      savingsPlansPurchaseRecommendationDetails =+        Prelude.Nothing,+      savingsPlansPurchaseRecommendationSummary =+        Prelude.Nothing,+      savingsPlansType = Prelude.Nothing,+      termInYears = Prelude.Nothing+    }++-- | The account scope that you want your recommendations for. Amazon Web+-- Services calculates recommendations that include the management account+-- and member accounts if the value is set to @PAYER@. If the value is+-- @LINKED@, recommendations are calculated for individual member accounts+-- only.+savingsPlansPurchaseRecommendation_accountScope :: Lens.Lens' SavingsPlansPurchaseRecommendation (Prelude.Maybe AccountScope)+savingsPlansPurchaseRecommendation_accountScope = Lens.lens (\SavingsPlansPurchaseRecommendation' {accountScope} -> accountScope) (\s@SavingsPlansPurchaseRecommendation' {} a -> s {accountScope = a} :: SavingsPlansPurchaseRecommendation)++-- | The lookback period in days that\'s used to generate the recommendation.+savingsPlansPurchaseRecommendation_lookbackPeriodInDays :: Lens.Lens' SavingsPlansPurchaseRecommendation (Prelude.Maybe LookbackPeriodInDays)+savingsPlansPurchaseRecommendation_lookbackPeriodInDays = Lens.lens (\SavingsPlansPurchaseRecommendation' {lookbackPeriodInDays} -> lookbackPeriodInDays) (\s@SavingsPlansPurchaseRecommendation' {} a -> s {lookbackPeriodInDays = a} :: SavingsPlansPurchaseRecommendation)++-- | The payment option that\'s used to generate the recommendation.+savingsPlansPurchaseRecommendation_paymentOption :: Lens.Lens' SavingsPlansPurchaseRecommendation (Prelude.Maybe PaymentOption)+savingsPlansPurchaseRecommendation_paymentOption = Lens.lens (\SavingsPlansPurchaseRecommendation' {paymentOption} -> paymentOption) (\s@SavingsPlansPurchaseRecommendation' {} a -> s {paymentOption = a} :: SavingsPlansPurchaseRecommendation)++-- | Details for the Savings Plans that we recommend that you purchase to+-- cover existing Savings Plans eligible workloads.+savingsPlansPurchaseRecommendation_savingsPlansPurchaseRecommendationDetails :: Lens.Lens' SavingsPlansPurchaseRecommendation (Prelude.Maybe [SavingsPlansPurchaseRecommendationDetail])+savingsPlansPurchaseRecommendation_savingsPlansPurchaseRecommendationDetails = Lens.lens (\SavingsPlansPurchaseRecommendation' {savingsPlansPurchaseRecommendationDetails} -> savingsPlansPurchaseRecommendationDetails) (\s@SavingsPlansPurchaseRecommendation' {} a -> s {savingsPlansPurchaseRecommendationDetails = a} :: SavingsPlansPurchaseRecommendation) Prelude.. Lens.mapping Lens.coerced++-- | Summary metrics for your Savings Plans Recommendations.+savingsPlansPurchaseRecommendation_savingsPlansPurchaseRecommendationSummary :: Lens.Lens' SavingsPlansPurchaseRecommendation (Prelude.Maybe SavingsPlansPurchaseRecommendationSummary)+savingsPlansPurchaseRecommendation_savingsPlansPurchaseRecommendationSummary = Lens.lens (\SavingsPlansPurchaseRecommendation' {savingsPlansPurchaseRecommendationSummary} -> savingsPlansPurchaseRecommendationSummary) (\s@SavingsPlansPurchaseRecommendation' {} a -> s {savingsPlansPurchaseRecommendationSummary = a} :: SavingsPlansPurchaseRecommendation)++-- | The requested Savings Plans recommendation type.+savingsPlansPurchaseRecommendation_savingsPlansType :: Lens.Lens' SavingsPlansPurchaseRecommendation (Prelude.Maybe SupportedSavingsPlansType)+savingsPlansPurchaseRecommendation_savingsPlansType = Lens.lens (\SavingsPlansPurchaseRecommendation' {savingsPlansType} -> savingsPlansType) (\s@SavingsPlansPurchaseRecommendation' {} a -> s {savingsPlansType = a} :: SavingsPlansPurchaseRecommendation)++-- | The Savings Plans recommendation term in years. It\'s used to generate+-- the recommendation.+savingsPlansPurchaseRecommendation_termInYears :: Lens.Lens' SavingsPlansPurchaseRecommendation (Prelude.Maybe TermInYears)+savingsPlansPurchaseRecommendation_termInYears = Lens.lens (\SavingsPlansPurchaseRecommendation' {termInYears} -> termInYears) (\s@SavingsPlansPurchaseRecommendation' {} a -> s {termInYears = a} :: SavingsPlansPurchaseRecommendation)++instance+  Data.FromJSON+    SavingsPlansPurchaseRecommendation+  where+  parseJSON =+    Data.withObject+      "SavingsPlansPurchaseRecommendation"+      ( \x ->+          SavingsPlansPurchaseRecommendation'+            Prelude.<$> (x Data..:? "AccountScope")+            Prelude.<*> (x Data..:? "LookbackPeriodInDays")+            Prelude.<*> (x Data..:? "PaymentOption")+            Prelude.<*> ( x+                            Data..:? "SavingsPlansPurchaseRecommendationDetails"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> ( x+                            Data..:? "SavingsPlansPurchaseRecommendationSummary"+                        )+            Prelude.<*> (x Data..:? "SavingsPlansType")+            Prelude.<*> (x Data..:? "TermInYears")+      )++instance+  Prelude.Hashable+    SavingsPlansPurchaseRecommendation+  where+  hashWithSalt+    _salt+    SavingsPlansPurchaseRecommendation' {..} =+      _salt+        `Prelude.hashWithSalt` accountScope+        `Prelude.hashWithSalt` lookbackPeriodInDays+        `Prelude.hashWithSalt` paymentOption+        `Prelude.hashWithSalt` savingsPlansPurchaseRecommendationDetails+        `Prelude.hashWithSalt` savingsPlansPurchaseRecommendationSummary+        `Prelude.hashWithSalt` savingsPlansType+        `Prelude.hashWithSalt` termInYears++instance+  Prelude.NFData+    SavingsPlansPurchaseRecommendation+  where+  rnf SavingsPlansPurchaseRecommendation' {..} =+    Prelude.rnf accountScope+      `Prelude.seq` Prelude.rnf lookbackPeriodInDays+      `Prelude.seq` Prelude.rnf paymentOption+      `Prelude.seq` Prelude.rnf savingsPlansPurchaseRecommendationDetails+      `Prelude.seq` Prelude.rnf savingsPlansPurchaseRecommendationSummary+      `Prelude.seq` Prelude.rnf savingsPlansType+      `Prelude.seq` Prelude.rnf termInYears
+ gen/Amazonka/CostExplorer/Types/SavingsPlansPurchaseRecommendationDetail.hs view
@@ -0,0 +1,324 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationDetail+-- 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.CostExplorer.Types.SavingsPlansPurchaseRecommendationDetail where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CostExplorer.Types.SavingsPlansDetails+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Details for your recommended Savings Plans.+--+-- /See:/ 'newSavingsPlansPurchaseRecommendationDetail' smart constructor.+data SavingsPlansPurchaseRecommendationDetail = SavingsPlansPurchaseRecommendationDetail'+  { -- | The @AccountID@ the recommendation is generated for.+    accountId :: Prelude.Maybe Prelude.Text,+    -- | The currency code that Amazon Web Services used to generate the+    -- recommendations and present potential savings.+    currencyCode :: Prelude.Maybe Prelude.Text,+    -- | The average value of hourly On-Demand spend over the lookback period of+    -- the applicable usage type.+    currentAverageHourlyOnDemandSpend :: Prelude.Maybe Prelude.Text,+    -- | The highest value of hourly On-Demand spend over the lookback period of+    -- the applicable usage type.+    currentMaximumHourlyOnDemandSpend :: Prelude.Maybe Prelude.Text,+    -- | The lowest value of hourly On-Demand spend over the lookback period of+    -- the applicable usage type.+    currentMinimumHourlyOnDemandSpend :: Prelude.Maybe Prelude.Text,+    -- | The estimated utilization of the recommended Savings Plans.+    estimatedAverageUtilization :: Prelude.Maybe Prelude.Text,+    -- | The estimated monthly savings amount based on the recommended Savings+    -- Plans.+    estimatedMonthlySavingsAmount :: Prelude.Maybe Prelude.Text,+    -- | The remaining On-Demand cost estimated to not be covered by the+    -- recommended Savings Plans, over the length of the lookback period.+    estimatedOnDemandCost :: Prelude.Maybe Prelude.Text,+    -- | The estimated On-Demand costs you expect with no additional commitment,+    -- based on your usage of the selected time period and the Savings Plans+    -- you own.+    estimatedOnDemandCostWithCurrentCommitment :: Prelude.Maybe Prelude.Text,+    -- | The estimated return on investment that\'s based on the recommended+    -- Savings Plans that you purchased. This is calculated as+    -- @estimatedSavingsAmount@\/ @estimatedSPCost@*100.+    estimatedROI :: Prelude.Maybe Prelude.Text,+    -- | The cost of the recommended Savings Plans over the length of the+    -- lookback period.+    estimatedSPCost :: Prelude.Maybe Prelude.Text,+    -- | The estimated savings amount that\'s based on the recommended Savings+    -- Plans over the length of the lookback period.+    estimatedSavingsAmount :: Prelude.Maybe Prelude.Text,+    -- | The estimated savings percentage relative to the total cost of+    -- applicable On-Demand usage over the lookback period.+    estimatedSavingsPercentage :: Prelude.Maybe Prelude.Text,+    -- | The recommended hourly commitment level for the Savings Plans type and+    -- the configuration that\'s based on the usage during the lookback period.+    hourlyCommitmentToPurchase :: Prelude.Maybe Prelude.Text,+    -- | Details for your recommended Savings Plans.+    savingsPlansDetails :: Prelude.Maybe SavingsPlansDetails,+    -- | The upfront cost of the recommended Savings Plans, based on the selected+    -- payment option.+    upfrontCost :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SavingsPlansPurchaseRecommendationDetail' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'accountId', 'savingsPlansPurchaseRecommendationDetail_accountId' - The @AccountID@ the recommendation is generated for.+--+-- 'currencyCode', 'savingsPlansPurchaseRecommendationDetail_currencyCode' - The currency code that Amazon Web Services used to generate the+-- recommendations and present potential savings.+--+-- 'currentAverageHourlyOnDemandSpend', 'savingsPlansPurchaseRecommendationDetail_currentAverageHourlyOnDemandSpend' - The average value of hourly On-Demand spend over the lookback period of+-- the applicable usage type.+--+-- 'currentMaximumHourlyOnDemandSpend', 'savingsPlansPurchaseRecommendationDetail_currentMaximumHourlyOnDemandSpend' - The highest value of hourly On-Demand spend over the lookback period of+-- the applicable usage type.+--+-- 'currentMinimumHourlyOnDemandSpend', 'savingsPlansPurchaseRecommendationDetail_currentMinimumHourlyOnDemandSpend' - The lowest value of hourly On-Demand spend over the lookback period of+-- the applicable usage type.+--+-- 'estimatedAverageUtilization', 'savingsPlansPurchaseRecommendationDetail_estimatedAverageUtilization' - The estimated utilization of the recommended Savings Plans.+--+-- 'estimatedMonthlySavingsAmount', 'savingsPlansPurchaseRecommendationDetail_estimatedMonthlySavingsAmount' - The estimated monthly savings amount based on the recommended Savings+-- Plans.+--+-- 'estimatedOnDemandCost', 'savingsPlansPurchaseRecommendationDetail_estimatedOnDemandCost' - The remaining On-Demand cost estimated to not be covered by the+-- recommended Savings Plans, over the length of the lookback period.+--+-- 'estimatedOnDemandCostWithCurrentCommitment', 'savingsPlansPurchaseRecommendationDetail_estimatedOnDemandCostWithCurrentCommitment' - The estimated On-Demand costs you expect with no additional commitment,+-- based on your usage of the selected time period and the Savings Plans+-- you own.+--+-- 'estimatedROI', 'savingsPlansPurchaseRecommendationDetail_estimatedROI' - The estimated return on investment that\'s based on the recommended+-- Savings Plans that you purchased. This is calculated as+-- @estimatedSavingsAmount@\/ @estimatedSPCost@*100.+--+-- 'estimatedSPCost', 'savingsPlansPurchaseRecommendationDetail_estimatedSPCost' - The cost of the recommended Savings Plans over the length of the+-- lookback period.+--+-- 'estimatedSavingsAmount', 'savingsPlansPurchaseRecommendationDetail_estimatedSavingsAmount' - The estimated savings amount that\'s based on the recommended Savings+-- Plans over the length of the lookback period.+--+-- 'estimatedSavingsPercentage', 'savingsPlansPurchaseRecommendationDetail_estimatedSavingsPercentage' - The estimated savings percentage relative to the total cost of+-- applicable On-Demand usage over the lookback period.+--+-- 'hourlyCommitmentToPurchase', 'savingsPlansPurchaseRecommendationDetail_hourlyCommitmentToPurchase' - The recommended hourly commitment level for the Savings Plans type and+-- the configuration that\'s based on the usage during the lookback period.+--+-- 'savingsPlansDetails', 'savingsPlansPurchaseRecommendationDetail_savingsPlansDetails' - Details for your recommended Savings Plans.+--+-- 'upfrontCost', 'savingsPlansPurchaseRecommendationDetail_upfrontCost' - The upfront cost of the recommended Savings Plans, based on the selected+-- payment option.+newSavingsPlansPurchaseRecommendationDetail ::+  SavingsPlansPurchaseRecommendationDetail+newSavingsPlansPurchaseRecommendationDetail =+  SavingsPlansPurchaseRecommendationDetail'+    { accountId =+        Prelude.Nothing,+      currencyCode = Prelude.Nothing,+      currentAverageHourlyOnDemandSpend =+        Prelude.Nothing,+      currentMaximumHourlyOnDemandSpend =+        Prelude.Nothing,+      currentMinimumHourlyOnDemandSpend =+        Prelude.Nothing,+      estimatedAverageUtilization =+        Prelude.Nothing,+      estimatedMonthlySavingsAmount =+        Prelude.Nothing,+      estimatedOnDemandCost =+        Prelude.Nothing,+      estimatedOnDemandCostWithCurrentCommitment =+        Prelude.Nothing,+      estimatedROI = Prelude.Nothing,+      estimatedSPCost = Prelude.Nothing,+      estimatedSavingsAmount =+        Prelude.Nothing,+      estimatedSavingsPercentage =+        Prelude.Nothing,+      hourlyCommitmentToPurchase =+        Prelude.Nothing,+      savingsPlansDetails =+        Prelude.Nothing,+      upfrontCost = Prelude.Nothing+    }++-- | The @AccountID@ the recommendation is generated for.+savingsPlansPurchaseRecommendationDetail_accountId :: Lens.Lens' SavingsPlansPurchaseRecommendationDetail (Prelude.Maybe Prelude.Text)+savingsPlansPurchaseRecommendationDetail_accountId = Lens.lens (\SavingsPlansPurchaseRecommendationDetail' {accountId} -> accountId) (\s@SavingsPlansPurchaseRecommendationDetail' {} a -> s {accountId = a} :: SavingsPlansPurchaseRecommendationDetail)++-- | The currency code that Amazon Web Services used to generate the+-- recommendations and present potential savings.+savingsPlansPurchaseRecommendationDetail_currencyCode :: Lens.Lens' SavingsPlansPurchaseRecommendationDetail (Prelude.Maybe Prelude.Text)+savingsPlansPurchaseRecommendationDetail_currencyCode = Lens.lens (\SavingsPlansPurchaseRecommendationDetail' {currencyCode} -> currencyCode) (\s@SavingsPlansPurchaseRecommendationDetail' {} a -> s {currencyCode = a} :: SavingsPlansPurchaseRecommendationDetail)++-- | The average value of hourly On-Demand spend over the lookback period of+-- the applicable usage type.+savingsPlansPurchaseRecommendationDetail_currentAverageHourlyOnDemandSpend :: Lens.Lens' SavingsPlansPurchaseRecommendationDetail (Prelude.Maybe Prelude.Text)+savingsPlansPurchaseRecommendationDetail_currentAverageHourlyOnDemandSpend = Lens.lens (\SavingsPlansPurchaseRecommendationDetail' {currentAverageHourlyOnDemandSpend} -> currentAverageHourlyOnDemandSpend) (\s@SavingsPlansPurchaseRecommendationDetail' {} a -> s {currentAverageHourlyOnDemandSpend = a} :: SavingsPlansPurchaseRecommendationDetail)++-- | The highest value of hourly On-Demand spend over the lookback period of+-- the applicable usage type.+savingsPlansPurchaseRecommendationDetail_currentMaximumHourlyOnDemandSpend :: Lens.Lens' SavingsPlansPurchaseRecommendationDetail (Prelude.Maybe Prelude.Text)+savingsPlansPurchaseRecommendationDetail_currentMaximumHourlyOnDemandSpend = Lens.lens (\SavingsPlansPurchaseRecommendationDetail' {currentMaximumHourlyOnDemandSpend} -> currentMaximumHourlyOnDemandSpend) (\s@SavingsPlansPurchaseRecommendationDetail' {} a -> s {currentMaximumHourlyOnDemandSpend = a} :: SavingsPlansPurchaseRecommendationDetail)++-- | The lowest value of hourly On-Demand spend over the lookback period of+-- the applicable usage type.+savingsPlansPurchaseRecommendationDetail_currentMinimumHourlyOnDemandSpend :: Lens.Lens' SavingsPlansPurchaseRecommendationDetail (Prelude.Maybe Prelude.Text)+savingsPlansPurchaseRecommendationDetail_currentMinimumHourlyOnDemandSpend = Lens.lens (\SavingsPlansPurchaseRecommendationDetail' {currentMinimumHourlyOnDemandSpend} -> currentMinimumHourlyOnDemandSpend) (\s@SavingsPlansPurchaseRecommendationDetail' {} a -> s {currentMinimumHourlyOnDemandSpend = a} :: SavingsPlansPurchaseRecommendationDetail)++-- | The estimated utilization of the recommended Savings Plans.+savingsPlansPurchaseRecommendationDetail_estimatedAverageUtilization :: Lens.Lens' SavingsPlansPurchaseRecommendationDetail (Prelude.Maybe Prelude.Text)+savingsPlansPurchaseRecommendationDetail_estimatedAverageUtilization = Lens.lens (\SavingsPlansPurchaseRecommendationDetail' {estimatedAverageUtilization} -> estimatedAverageUtilization) (\s@SavingsPlansPurchaseRecommendationDetail' {} a -> s {estimatedAverageUtilization = a} :: SavingsPlansPurchaseRecommendationDetail)++-- | The estimated monthly savings amount based on the recommended Savings+-- Plans.+savingsPlansPurchaseRecommendationDetail_estimatedMonthlySavingsAmount :: Lens.Lens' SavingsPlansPurchaseRecommendationDetail (Prelude.Maybe Prelude.Text)+savingsPlansPurchaseRecommendationDetail_estimatedMonthlySavingsAmount = Lens.lens (\SavingsPlansPurchaseRecommendationDetail' {estimatedMonthlySavingsAmount} -> estimatedMonthlySavingsAmount) (\s@SavingsPlansPurchaseRecommendationDetail' {} a -> s {estimatedMonthlySavingsAmount = a} :: SavingsPlansPurchaseRecommendationDetail)++-- | The remaining On-Demand cost estimated to not be covered by the+-- recommended Savings Plans, over the length of the lookback period.+savingsPlansPurchaseRecommendationDetail_estimatedOnDemandCost :: Lens.Lens' SavingsPlansPurchaseRecommendationDetail (Prelude.Maybe Prelude.Text)+savingsPlansPurchaseRecommendationDetail_estimatedOnDemandCost = Lens.lens (\SavingsPlansPurchaseRecommendationDetail' {estimatedOnDemandCost} -> estimatedOnDemandCost) (\s@SavingsPlansPurchaseRecommendationDetail' {} a -> s {estimatedOnDemandCost = a} :: SavingsPlansPurchaseRecommendationDetail)++-- | The estimated On-Demand costs you expect with no additional commitment,+-- based on your usage of the selected time period and the Savings Plans+-- you own.+savingsPlansPurchaseRecommendationDetail_estimatedOnDemandCostWithCurrentCommitment :: Lens.Lens' SavingsPlansPurchaseRecommendationDetail (Prelude.Maybe Prelude.Text)+savingsPlansPurchaseRecommendationDetail_estimatedOnDemandCostWithCurrentCommitment = Lens.lens (\SavingsPlansPurchaseRecommendationDetail' {estimatedOnDemandCostWithCurrentCommitment} -> estimatedOnDemandCostWithCurrentCommitment) (\s@SavingsPlansPurchaseRecommendationDetail' {} a -> s {estimatedOnDemandCostWithCurrentCommitment = a} :: SavingsPlansPurchaseRecommendationDetail)++-- | The estimated return on investment that\'s based on the recommended+-- Savings Plans that you purchased. This is calculated as+-- @estimatedSavingsAmount@\/ @estimatedSPCost@*100.+savingsPlansPurchaseRecommendationDetail_estimatedROI :: Lens.Lens' SavingsPlansPurchaseRecommendationDetail (Prelude.Maybe Prelude.Text)+savingsPlansPurchaseRecommendationDetail_estimatedROI = Lens.lens (\SavingsPlansPurchaseRecommendationDetail' {estimatedROI} -> estimatedROI) (\s@SavingsPlansPurchaseRecommendationDetail' {} a -> s {estimatedROI = a} :: SavingsPlansPurchaseRecommendationDetail)++-- | The cost of the recommended Savings Plans over the length of the+-- lookback period.+savingsPlansPurchaseRecommendationDetail_estimatedSPCost :: Lens.Lens' SavingsPlansPurchaseRecommendationDetail (Prelude.Maybe Prelude.Text)+savingsPlansPurchaseRecommendationDetail_estimatedSPCost = Lens.lens (\SavingsPlansPurchaseRecommendationDetail' {estimatedSPCost} -> estimatedSPCost) (\s@SavingsPlansPurchaseRecommendationDetail' {} a -> s {estimatedSPCost = a} :: SavingsPlansPurchaseRecommendationDetail)++-- | The estimated savings amount that\'s based on the recommended Savings+-- Plans over the length of the lookback period.+savingsPlansPurchaseRecommendationDetail_estimatedSavingsAmount :: Lens.Lens' SavingsPlansPurchaseRecommendationDetail (Prelude.Maybe Prelude.Text)+savingsPlansPurchaseRecommendationDetail_estimatedSavingsAmount = Lens.lens (\SavingsPlansPurchaseRecommendationDetail' {estimatedSavingsAmount} -> estimatedSavingsAmount) (\s@SavingsPlansPurchaseRecommendationDetail' {} a -> s {estimatedSavingsAmount = a} :: SavingsPlansPurchaseRecommendationDetail)++-- | The estimated savings percentage relative to the total cost of+-- applicable On-Demand usage over the lookback period.+savingsPlansPurchaseRecommendationDetail_estimatedSavingsPercentage :: Lens.Lens' SavingsPlansPurchaseRecommendationDetail (Prelude.Maybe Prelude.Text)+savingsPlansPurchaseRecommendationDetail_estimatedSavingsPercentage = Lens.lens (\SavingsPlansPurchaseRecommendationDetail' {estimatedSavingsPercentage} -> estimatedSavingsPercentage) (\s@SavingsPlansPurchaseRecommendationDetail' {} a -> s {estimatedSavingsPercentage = a} :: SavingsPlansPurchaseRecommendationDetail)++-- | The recommended hourly commitment level for the Savings Plans type and+-- the configuration that\'s based on the usage during the lookback period.+savingsPlansPurchaseRecommendationDetail_hourlyCommitmentToPurchase :: Lens.Lens' SavingsPlansPurchaseRecommendationDetail (Prelude.Maybe Prelude.Text)+savingsPlansPurchaseRecommendationDetail_hourlyCommitmentToPurchase = Lens.lens (\SavingsPlansPurchaseRecommendationDetail' {hourlyCommitmentToPurchase} -> hourlyCommitmentToPurchase) (\s@SavingsPlansPurchaseRecommendationDetail' {} a -> s {hourlyCommitmentToPurchase = a} :: SavingsPlansPurchaseRecommendationDetail)++-- | Details for your recommended Savings Plans.+savingsPlansPurchaseRecommendationDetail_savingsPlansDetails :: Lens.Lens' SavingsPlansPurchaseRecommendationDetail (Prelude.Maybe SavingsPlansDetails)+savingsPlansPurchaseRecommendationDetail_savingsPlansDetails = Lens.lens (\SavingsPlansPurchaseRecommendationDetail' {savingsPlansDetails} -> savingsPlansDetails) (\s@SavingsPlansPurchaseRecommendationDetail' {} a -> s {savingsPlansDetails = a} :: SavingsPlansPurchaseRecommendationDetail)++-- | The upfront cost of the recommended Savings Plans, based on the selected+-- payment option.+savingsPlansPurchaseRecommendationDetail_upfrontCost :: Lens.Lens' SavingsPlansPurchaseRecommendationDetail (Prelude.Maybe Prelude.Text)+savingsPlansPurchaseRecommendationDetail_upfrontCost = Lens.lens (\SavingsPlansPurchaseRecommendationDetail' {upfrontCost} -> upfrontCost) (\s@SavingsPlansPurchaseRecommendationDetail' {} a -> s {upfrontCost = a} :: SavingsPlansPurchaseRecommendationDetail)++instance+  Data.FromJSON+    SavingsPlansPurchaseRecommendationDetail+  where+  parseJSON =+    Data.withObject+      "SavingsPlansPurchaseRecommendationDetail"+      ( \x ->+          SavingsPlansPurchaseRecommendationDetail'+            Prelude.<$> (x Data..:? "AccountId")+            Prelude.<*> (x Data..:? "CurrencyCode")+            Prelude.<*> (x Data..:? "CurrentAverageHourlyOnDemandSpend")+            Prelude.<*> (x Data..:? "CurrentMaximumHourlyOnDemandSpend")+            Prelude.<*> (x Data..:? "CurrentMinimumHourlyOnDemandSpend")+            Prelude.<*> (x Data..:? "EstimatedAverageUtilization")+            Prelude.<*> (x Data..:? "EstimatedMonthlySavingsAmount")+            Prelude.<*> (x Data..:? "EstimatedOnDemandCost")+            Prelude.<*> ( x+                            Data..:? "EstimatedOnDemandCostWithCurrentCommitment"+                        )+            Prelude.<*> (x Data..:? "EstimatedROI")+            Prelude.<*> (x Data..:? "EstimatedSPCost")+            Prelude.<*> (x Data..:? "EstimatedSavingsAmount")+            Prelude.<*> (x Data..:? "EstimatedSavingsPercentage")+            Prelude.<*> (x Data..:? "HourlyCommitmentToPurchase")+            Prelude.<*> (x Data..:? "SavingsPlansDetails")+            Prelude.<*> (x Data..:? "UpfrontCost")+      )++instance+  Prelude.Hashable+    SavingsPlansPurchaseRecommendationDetail+  where+  hashWithSalt+    _salt+    SavingsPlansPurchaseRecommendationDetail' {..} =+      _salt+        `Prelude.hashWithSalt` accountId+        `Prelude.hashWithSalt` currencyCode+        `Prelude.hashWithSalt` currentAverageHourlyOnDemandSpend+        `Prelude.hashWithSalt` currentMaximumHourlyOnDemandSpend+        `Prelude.hashWithSalt` currentMinimumHourlyOnDemandSpend+        `Prelude.hashWithSalt` estimatedAverageUtilization+        `Prelude.hashWithSalt` estimatedMonthlySavingsAmount+        `Prelude.hashWithSalt` estimatedOnDemandCost+        `Prelude.hashWithSalt` estimatedOnDemandCostWithCurrentCommitment+        `Prelude.hashWithSalt` estimatedROI+        `Prelude.hashWithSalt` estimatedSPCost+        `Prelude.hashWithSalt` estimatedSavingsAmount+        `Prelude.hashWithSalt` estimatedSavingsPercentage+        `Prelude.hashWithSalt` hourlyCommitmentToPurchase+        `Prelude.hashWithSalt` savingsPlansDetails+        `Prelude.hashWithSalt` upfrontCost++instance+  Prelude.NFData+    SavingsPlansPurchaseRecommendationDetail+  where+  rnf SavingsPlansPurchaseRecommendationDetail' {..} =+    Prelude.rnf accountId+      `Prelude.seq` Prelude.rnf currencyCode+      `Prelude.seq` Prelude.rnf currentAverageHourlyOnDemandSpend+      `Prelude.seq` Prelude.rnf currentMaximumHourlyOnDemandSpend+      `Prelude.seq` Prelude.rnf currentMinimumHourlyOnDemandSpend+      `Prelude.seq` Prelude.rnf estimatedAverageUtilization+      `Prelude.seq` Prelude.rnf estimatedMonthlySavingsAmount+      `Prelude.seq` Prelude.rnf estimatedOnDemandCost+      `Prelude.seq` Prelude.rnf+        estimatedOnDemandCostWithCurrentCommitment+      `Prelude.seq` Prelude.rnf estimatedROI+      `Prelude.seq` Prelude.rnf estimatedSPCost+      `Prelude.seq` Prelude.rnf estimatedSavingsAmount+      `Prelude.seq` Prelude.rnf estimatedSavingsPercentage+      `Prelude.seq` Prelude.rnf hourlyCommitmentToPurchase+      `Prelude.seq` Prelude.rnf savingsPlansDetails+      `Prelude.seq` Prelude.rnf upfrontCost
+ gen/Amazonka/CostExplorer/Types/SavingsPlansPurchaseRecommendationMetadata.hs view
@@ -0,0 +1,110 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationMetadata+-- 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.CostExplorer.Types.SavingsPlansPurchaseRecommendationMetadata where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Metadata about your Savings Plans Purchase Recommendations.+--+-- /See:/ 'newSavingsPlansPurchaseRecommendationMetadata' smart constructor.+data SavingsPlansPurchaseRecommendationMetadata = SavingsPlansPurchaseRecommendationMetadata'+  { -- | Additional metadata that might be applicable to the recommendation.+    additionalMetadata :: Prelude.Maybe Prelude.Text,+    -- | The timestamp that shows when the recommendations were generated.+    generationTimestamp :: Prelude.Maybe Prelude.Text,+    -- | The unique identifier for the recommendation set.+    recommendationId :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SavingsPlansPurchaseRecommendationMetadata' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'additionalMetadata', 'savingsPlansPurchaseRecommendationMetadata_additionalMetadata' - Additional metadata that might be applicable to the recommendation.+--+-- 'generationTimestamp', 'savingsPlansPurchaseRecommendationMetadata_generationTimestamp' - The timestamp that shows when the recommendations were generated.+--+-- 'recommendationId', 'savingsPlansPurchaseRecommendationMetadata_recommendationId' - The unique identifier for the recommendation set.+newSavingsPlansPurchaseRecommendationMetadata ::+  SavingsPlansPurchaseRecommendationMetadata+newSavingsPlansPurchaseRecommendationMetadata =+  SavingsPlansPurchaseRecommendationMetadata'+    { additionalMetadata =+        Prelude.Nothing,+      generationTimestamp =+        Prelude.Nothing,+      recommendationId =+        Prelude.Nothing+    }++-- | Additional metadata that might be applicable to the recommendation.+savingsPlansPurchaseRecommendationMetadata_additionalMetadata :: Lens.Lens' SavingsPlansPurchaseRecommendationMetadata (Prelude.Maybe Prelude.Text)+savingsPlansPurchaseRecommendationMetadata_additionalMetadata = Lens.lens (\SavingsPlansPurchaseRecommendationMetadata' {additionalMetadata} -> additionalMetadata) (\s@SavingsPlansPurchaseRecommendationMetadata' {} a -> s {additionalMetadata = a} :: SavingsPlansPurchaseRecommendationMetadata)++-- | The timestamp that shows when the recommendations were generated.+savingsPlansPurchaseRecommendationMetadata_generationTimestamp :: Lens.Lens' SavingsPlansPurchaseRecommendationMetadata (Prelude.Maybe Prelude.Text)+savingsPlansPurchaseRecommendationMetadata_generationTimestamp = Lens.lens (\SavingsPlansPurchaseRecommendationMetadata' {generationTimestamp} -> generationTimestamp) (\s@SavingsPlansPurchaseRecommendationMetadata' {} a -> s {generationTimestamp = a} :: SavingsPlansPurchaseRecommendationMetadata)++-- | The unique identifier for the recommendation set.+savingsPlansPurchaseRecommendationMetadata_recommendationId :: Lens.Lens' SavingsPlansPurchaseRecommendationMetadata (Prelude.Maybe Prelude.Text)+savingsPlansPurchaseRecommendationMetadata_recommendationId = Lens.lens (\SavingsPlansPurchaseRecommendationMetadata' {recommendationId} -> recommendationId) (\s@SavingsPlansPurchaseRecommendationMetadata' {} a -> s {recommendationId = a} :: SavingsPlansPurchaseRecommendationMetadata)++instance+  Data.FromJSON+    SavingsPlansPurchaseRecommendationMetadata+  where+  parseJSON =+    Data.withObject+      "SavingsPlansPurchaseRecommendationMetadata"+      ( \x ->+          SavingsPlansPurchaseRecommendationMetadata'+            Prelude.<$> (x Data..:? "AdditionalMetadata")+            Prelude.<*> (x Data..:? "GenerationTimestamp")+            Prelude.<*> (x Data..:? "RecommendationId")+      )++instance+  Prelude.Hashable+    SavingsPlansPurchaseRecommendationMetadata+  where+  hashWithSalt+    _salt+    SavingsPlansPurchaseRecommendationMetadata' {..} =+      _salt+        `Prelude.hashWithSalt` additionalMetadata+        `Prelude.hashWithSalt` generationTimestamp+        `Prelude.hashWithSalt` recommendationId++instance+  Prelude.NFData+    SavingsPlansPurchaseRecommendationMetadata+  where+  rnf SavingsPlansPurchaseRecommendationMetadata' {..} =+    Prelude.rnf additionalMetadata+      `Prelude.seq` Prelude.rnf generationTimestamp+      `Prelude.seq` Prelude.rnf recommendationId
+ gen/Amazonka/CostExplorer/Types/SavingsPlansPurchaseRecommendationSummary.hs view
@@ -0,0 +1,255 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.SavingsPlansPurchaseRecommendationSummary+-- 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.CostExplorer.Types.SavingsPlansPurchaseRecommendationSummary where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Summary metrics for your Savings Plans Purchase Recommendations.+--+-- /See:/ 'newSavingsPlansPurchaseRecommendationSummary' smart constructor.+data SavingsPlansPurchaseRecommendationSummary = SavingsPlansPurchaseRecommendationSummary'+  { -- | The currency code that Amazon Web Services used to generate the+    -- recommendations and present potential savings.+    currencyCode :: Prelude.Maybe Prelude.Text,+    -- | The current total on demand spend of the applicable usage types over the+    -- lookback period.+    currentOnDemandSpend :: Prelude.Maybe Prelude.Text,+    -- | The recommended Savings Plans cost on a daily (24 hourly) basis.+    dailyCommitmentToPurchase :: Prelude.Maybe Prelude.Text,+    -- | The estimated monthly savings amount that\'s based on the recommended+    -- Savings Plans purchase.+    estimatedMonthlySavingsAmount :: Prelude.Maybe Prelude.Text,+    -- | The estimated On-Demand costs you expect with no additional commitment.+    -- It\'s based on your usage of the selected time period and the Savings+    -- Plans you own.+    estimatedOnDemandCostWithCurrentCommitment :: Prelude.Maybe Prelude.Text,+    -- | The estimated return on investment that\'s based on the recommended+    -- Savings Plans and estimated savings.+    estimatedROI :: Prelude.Maybe Prelude.Text,+    -- | The estimated total savings over the lookback period, based on the+    -- purchase of the recommended Savings Plans.+    estimatedSavingsAmount :: Prelude.Maybe Prelude.Text,+    -- | The estimated savings relative to the total cost of On-Demand usage,+    -- over the lookback period. This is calculated as+    -- @estimatedSavingsAmount@\/ @CurrentOnDemandSpend@*100.+    estimatedSavingsPercentage :: Prelude.Maybe Prelude.Text,+    -- | The estimated total cost of the usage after purchasing the recommended+    -- Savings Plans. This is a sum of the cost of Savings Plans during this+    -- term, and the remaining On-Demand usage.+    estimatedTotalCost :: Prelude.Maybe Prelude.Text,+    -- | The recommended hourly commitment that\'s based on the recommendation+    -- parameters.+    hourlyCommitmentToPurchase :: Prelude.Maybe Prelude.Text,+    -- | The aggregate number of Savings Plans recommendations that exist for+    -- your account.+    totalRecommendationCount :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SavingsPlansPurchaseRecommendationSummary' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'currencyCode', 'savingsPlansPurchaseRecommendationSummary_currencyCode' - The currency code that Amazon Web Services used to generate the+-- recommendations and present potential savings.+--+-- 'currentOnDemandSpend', 'savingsPlansPurchaseRecommendationSummary_currentOnDemandSpend' - The current total on demand spend of the applicable usage types over the+-- lookback period.+--+-- 'dailyCommitmentToPurchase', 'savingsPlansPurchaseRecommendationSummary_dailyCommitmentToPurchase' - The recommended Savings Plans cost on a daily (24 hourly) basis.+--+-- 'estimatedMonthlySavingsAmount', 'savingsPlansPurchaseRecommendationSummary_estimatedMonthlySavingsAmount' - The estimated monthly savings amount that\'s based on the recommended+-- Savings Plans purchase.+--+-- 'estimatedOnDemandCostWithCurrentCommitment', 'savingsPlansPurchaseRecommendationSummary_estimatedOnDemandCostWithCurrentCommitment' - The estimated On-Demand costs you expect with no additional commitment.+-- It\'s based on your usage of the selected time period and the Savings+-- Plans you own.+--+-- 'estimatedROI', 'savingsPlansPurchaseRecommendationSummary_estimatedROI' - The estimated return on investment that\'s based on the recommended+-- Savings Plans and estimated savings.+--+-- 'estimatedSavingsAmount', 'savingsPlansPurchaseRecommendationSummary_estimatedSavingsAmount' - The estimated total savings over the lookback period, based on the+-- purchase of the recommended Savings Plans.+--+-- 'estimatedSavingsPercentage', 'savingsPlansPurchaseRecommendationSummary_estimatedSavingsPercentage' - The estimated savings relative to the total cost of On-Demand usage,+-- over the lookback period. This is calculated as+-- @estimatedSavingsAmount@\/ @CurrentOnDemandSpend@*100.+--+-- 'estimatedTotalCost', 'savingsPlansPurchaseRecommendationSummary_estimatedTotalCost' - The estimated total cost of the usage after purchasing the recommended+-- Savings Plans. This is a sum of the cost of Savings Plans during this+-- term, and the remaining On-Demand usage.+--+-- 'hourlyCommitmentToPurchase', 'savingsPlansPurchaseRecommendationSummary_hourlyCommitmentToPurchase' - The recommended hourly commitment that\'s based on the recommendation+-- parameters.+--+-- 'totalRecommendationCount', 'savingsPlansPurchaseRecommendationSummary_totalRecommendationCount' - The aggregate number of Savings Plans recommendations that exist for+-- your account.+newSavingsPlansPurchaseRecommendationSummary ::+  SavingsPlansPurchaseRecommendationSummary+newSavingsPlansPurchaseRecommendationSummary =+  SavingsPlansPurchaseRecommendationSummary'+    { currencyCode =+        Prelude.Nothing,+      currentOnDemandSpend =+        Prelude.Nothing,+      dailyCommitmentToPurchase =+        Prelude.Nothing,+      estimatedMonthlySavingsAmount =+        Prelude.Nothing,+      estimatedOnDemandCostWithCurrentCommitment =+        Prelude.Nothing,+      estimatedROI = Prelude.Nothing,+      estimatedSavingsAmount =+        Prelude.Nothing,+      estimatedSavingsPercentage =+        Prelude.Nothing,+      estimatedTotalCost =+        Prelude.Nothing,+      hourlyCommitmentToPurchase =+        Prelude.Nothing,+      totalRecommendationCount =+        Prelude.Nothing+    }++-- | The currency code that Amazon Web Services used to generate the+-- recommendations and present potential savings.+savingsPlansPurchaseRecommendationSummary_currencyCode :: Lens.Lens' SavingsPlansPurchaseRecommendationSummary (Prelude.Maybe Prelude.Text)+savingsPlansPurchaseRecommendationSummary_currencyCode = Lens.lens (\SavingsPlansPurchaseRecommendationSummary' {currencyCode} -> currencyCode) (\s@SavingsPlansPurchaseRecommendationSummary' {} a -> s {currencyCode = a} :: SavingsPlansPurchaseRecommendationSummary)++-- | The current total on demand spend of the applicable usage types over the+-- lookback period.+savingsPlansPurchaseRecommendationSummary_currentOnDemandSpend :: Lens.Lens' SavingsPlansPurchaseRecommendationSummary (Prelude.Maybe Prelude.Text)+savingsPlansPurchaseRecommendationSummary_currentOnDemandSpend = Lens.lens (\SavingsPlansPurchaseRecommendationSummary' {currentOnDemandSpend} -> currentOnDemandSpend) (\s@SavingsPlansPurchaseRecommendationSummary' {} a -> s {currentOnDemandSpend = a} :: SavingsPlansPurchaseRecommendationSummary)++-- | The recommended Savings Plans cost on a daily (24 hourly) basis.+savingsPlansPurchaseRecommendationSummary_dailyCommitmentToPurchase :: Lens.Lens' SavingsPlansPurchaseRecommendationSummary (Prelude.Maybe Prelude.Text)+savingsPlansPurchaseRecommendationSummary_dailyCommitmentToPurchase = Lens.lens (\SavingsPlansPurchaseRecommendationSummary' {dailyCommitmentToPurchase} -> dailyCommitmentToPurchase) (\s@SavingsPlansPurchaseRecommendationSummary' {} a -> s {dailyCommitmentToPurchase = a} :: SavingsPlansPurchaseRecommendationSummary)++-- | The estimated monthly savings amount that\'s based on the recommended+-- Savings Plans purchase.+savingsPlansPurchaseRecommendationSummary_estimatedMonthlySavingsAmount :: Lens.Lens' SavingsPlansPurchaseRecommendationSummary (Prelude.Maybe Prelude.Text)+savingsPlansPurchaseRecommendationSummary_estimatedMonthlySavingsAmount = Lens.lens (\SavingsPlansPurchaseRecommendationSummary' {estimatedMonthlySavingsAmount} -> estimatedMonthlySavingsAmount) (\s@SavingsPlansPurchaseRecommendationSummary' {} a -> s {estimatedMonthlySavingsAmount = a} :: SavingsPlansPurchaseRecommendationSummary)++-- | The estimated On-Demand costs you expect with no additional commitment.+-- It\'s based on your usage of the selected time period and the Savings+-- Plans you own.+savingsPlansPurchaseRecommendationSummary_estimatedOnDemandCostWithCurrentCommitment :: Lens.Lens' SavingsPlansPurchaseRecommendationSummary (Prelude.Maybe Prelude.Text)+savingsPlansPurchaseRecommendationSummary_estimatedOnDemandCostWithCurrentCommitment = Lens.lens (\SavingsPlansPurchaseRecommendationSummary' {estimatedOnDemandCostWithCurrentCommitment} -> estimatedOnDemandCostWithCurrentCommitment) (\s@SavingsPlansPurchaseRecommendationSummary' {} a -> s {estimatedOnDemandCostWithCurrentCommitment = a} :: SavingsPlansPurchaseRecommendationSummary)++-- | The estimated return on investment that\'s based on the recommended+-- Savings Plans and estimated savings.+savingsPlansPurchaseRecommendationSummary_estimatedROI :: Lens.Lens' SavingsPlansPurchaseRecommendationSummary (Prelude.Maybe Prelude.Text)+savingsPlansPurchaseRecommendationSummary_estimatedROI = Lens.lens (\SavingsPlansPurchaseRecommendationSummary' {estimatedROI} -> estimatedROI) (\s@SavingsPlansPurchaseRecommendationSummary' {} a -> s {estimatedROI = a} :: SavingsPlansPurchaseRecommendationSummary)++-- | The estimated total savings over the lookback period, based on the+-- purchase of the recommended Savings Plans.+savingsPlansPurchaseRecommendationSummary_estimatedSavingsAmount :: Lens.Lens' SavingsPlansPurchaseRecommendationSummary (Prelude.Maybe Prelude.Text)+savingsPlansPurchaseRecommendationSummary_estimatedSavingsAmount = Lens.lens (\SavingsPlansPurchaseRecommendationSummary' {estimatedSavingsAmount} -> estimatedSavingsAmount) (\s@SavingsPlansPurchaseRecommendationSummary' {} a -> s {estimatedSavingsAmount = a} :: SavingsPlansPurchaseRecommendationSummary)++-- | The estimated savings relative to the total cost of On-Demand usage,+-- over the lookback period. This is calculated as+-- @estimatedSavingsAmount@\/ @CurrentOnDemandSpend@*100.+savingsPlansPurchaseRecommendationSummary_estimatedSavingsPercentage :: Lens.Lens' SavingsPlansPurchaseRecommendationSummary (Prelude.Maybe Prelude.Text)+savingsPlansPurchaseRecommendationSummary_estimatedSavingsPercentage = Lens.lens (\SavingsPlansPurchaseRecommendationSummary' {estimatedSavingsPercentage} -> estimatedSavingsPercentage) (\s@SavingsPlansPurchaseRecommendationSummary' {} a -> s {estimatedSavingsPercentage = a} :: SavingsPlansPurchaseRecommendationSummary)++-- | The estimated total cost of the usage after purchasing the recommended+-- Savings Plans. This is a sum of the cost of Savings Plans during this+-- term, and the remaining On-Demand usage.+savingsPlansPurchaseRecommendationSummary_estimatedTotalCost :: Lens.Lens' SavingsPlansPurchaseRecommendationSummary (Prelude.Maybe Prelude.Text)+savingsPlansPurchaseRecommendationSummary_estimatedTotalCost = Lens.lens (\SavingsPlansPurchaseRecommendationSummary' {estimatedTotalCost} -> estimatedTotalCost) (\s@SavingsPlansPurchaseRecommendationSummary' {} a -> s {estimatedTotalCost = a} :: SavingsPlansPurchaseRecommendationSummary)++-- | The recommended hourly commitment that\'s based on the recommendation+-- parameters.+savingsPlansPurchaseRecommendationSummary_hourlyCommitmentToPurchase :: Lens.Lens' SavingsPlansPurchaseRecommendationSummary (Prelude.Maybe Prelude.Text)+savingsPlansPurchaseRecommendationSummary_hourlyCommitmentToPurchase = Lens.lens (\SavingsPlansPurchaseRecommendationSummary' {hourlyCommitmentToPurchase} -> hourlyCommitmentToPurchase) (\s@SavingsPlansPurchaseRecommendationSummary' {} a -> s {hourlyCommitmentToPurchase = a} :: SavingsPlansPurchaseRecommendationSummary)++-- | The aggregate number of Savings Plans recommendations that exist for+-- your account.+savingsPlansPurchaseRecommendationSummary_totalRecommendationCount :: Lens.Lens' SavingsPlansPurchaseRecommendationSummary (Prelude.Maybe Prelude.Text)+savingsPlansPurchaseRecommendationSummary_totalRecommendationCount = Lens.lens (\SavingsPlansPurchaseRecommendationSummary' {totalRecommendationCount} -> totalRecommendationCount) (\s@SavingsPlansPurchaseRecommendationSummary' {} a -> s {totalRecommendationCount = a} :: SavingsPlansPurchaseRecommendationSummary)++instance+  Data.FromJSON+    SavingsPlansPurchaseRecommendationSummary+  where+  parseJSON =+    Data.withObject+      "SavingsPlansPurchaseRecommendationSummary"+      ( \x ->+          SavingsPlansPurchaseRecommendationSummary'+            Prelude.<$> (x Data..:? "CurrencyCode")+            Prelude.<*> (x Data..:? "CurrentOnDemandSpend")+            Prelude.<*> (x Data..:? "DailyCommitmentToPurchase")+            Prelude.<*> (x Data..:? "EstimatedMonthlySavingsAmount")+            Prelude.<*> ( x+                            Data..:? "EstimatedOnDemandCostWithCurrentCommitment"+                        )+            Prelude.<*> (x Data..:? "EstimatedROI")+            Prelude.<*> (x Data..:? "EstimatedSavingsAmount")+            Prelude.<*> (x Data..:? "EstimatedSavingsPercentage")+            Prelude.<*> (x Data..:? "EstimatedTotalCost")+            Prelude.<*> (x Data..:? "HourlyCommitmentToPurchase")+            Prelude.<*> (x Data..:? "TotalRecommendationCount")+      )++instance+  Prelude.Hashable+    SavingsPlansPurchaseRecommendationSummary+  where+  hashWithSalt+    _salt+    SavingsPlansPurchaseRecommendationSummary' {..} =+      _salt+        `Prelude.hashWithSalt` currencyCode+        `Prelude.hashWithSalt` currentOnDemandSpend+        `Prelude.hashWithSalt` dailyCommitmentToPurchase+        `Prelude.hashWithSalt` estimatedMonthlySavingsAmount+        `Prelude.hashWithSalt` estimatedOnDemandCostWithCurrentCommitment+        `Prelude.hashWithSalt` estimatedROI+        `Prelude.hashWithSalt` estimatedSavingsAmount+        `Prelude.hashWithSalt` estimatedSavingsPercentage+        `Prelude.hashWithSalt` estimatedTotalCost+        `Prelude.hashWithSalt` hourlyCommitmentToPurchase+        `Prelude.hashWithSalt` totalRecommendationCount++instance+  Prelude.NFData+    SavingsPlansPurchaseRecommendationSummary+  where+  rnf SavingsPlansPurchaseRecommendationSummary' {..} =+    Prelude.rnf currencyCode+      `Prelude.seq` Prelude.rnf currentOnDemandSpend+      `Prelude.seq` Prelude.rnf dailyCommitmentToPurchase+      `Prelude.seq` Prelude.rnf estimatedMonthlySavingsAmount+      `Prelude.seq` Prelude.rnf+        estimatedOnDemandCostWithCurrentCommitment+      `Prelude.seq` Prelude.rnf estimatedROI+      `Prelude.seq` Prelude.rnf estimatedSavingsAmount+      `Prelude.seq` Prelude.rnf estimatedSavingsPercentage+      `Prelude.seq` Prelude.rnf estimatedTotalCost+      `Prelude.seq` Prelude.rnf hourlyCommitmentToPurchase+      `Prelude.seq` Prelude.rnf totalRecommendationCount
+ gen/Amazonka/CostExplorer/Types/SavingsPlansSavings.hs view
@@ -0,0 +1,94 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.SavingsPlansSavings+-- 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.CostExplorer.Types.SavingsPlansSavings where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The amount of savings that you\'re accumulating, against the public+-- On-Demand rate of the usage accrued in an account.+--+-- /See:/ 'newSavingsPlansSavings' smart constructor.+data SavingsPlansSavings = SavingsPlansSavings'+  { -- | The savings amount that you\'re accumulating for the usage that\'s+    -- covered by a Savings Plans, when compared to the On-Demand equivalent of+    -- the same usage.+    netSavings :: Prelude.Maybe Prelude.Text,+    -- | How much the amount that the usage would have cost if it was accrued at+    -- the On-Demand rate.+    onDemandCostEquivalent :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SavingsPlansSavings' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'netSavings', 'savingsPlansSavings_netSavings' - The savings amount that you\'re accumulating for the usage that\'s+-- covered by a Savings Plans, when compared to the On-Demand equivalent of+-- the same usage.+--+-- 'onDemandCostEquivalent', 'savingsPlansSavings_onDemandCostEquivalent' - How much the amount that the usage would have cost if it was accrued at+-- the On-Demand rate.+newSavingsPlansSavings ::+  SavingsPlansSavings+newSavingsPlansSavings =+  SavingsPlansSavings'+    { netSavings = Prelude.Nothing,+      onDemandCostEquivalent = Prelude.Nothing+    }++-- | The savings amount that you\'re accumulating for the usage that\'s+-- covered by a Savings Plans, when compared to the On-Demand equivalent of+-- the same usage.+savingsPlansSavings_netSavings :: Lens.Lens' SavingsPlansSavings (Prelude.Maybe Prelude.Text)+savingsPlansSavings_netSavings = Lens.lens (\SavingsPlansSavings' {netSavings} -> netSavings) (\s@SavingsPlansSavings' {} a -> s {netSavings = a} :: SavingsPlansSavings)++-- | How much the amount that the usage would have cost if it was accrued at+-- the On-Demand rate.+savingsPlansSavings_onDemandCostEquivalent :: Lens.Lens' SavingsPlansSavings (Prelude.Maybe Prelude.Text)+savingsPlansSavings_onDemandCostEquivalent = Lens.lens (\SavingsPlansSavings' {onDemandCostEquivalent} -> onDemandCostEquivalent) (\s@SavingsPlansSavings' {} a -> s {onDemandCostEquivalent = a} :: SavingsPlansSavings)++instance Data.FromJSON SavingsPlansSavings where+  parseJSON =+    Data.withObject+      "SavingsPlansSavings"+      ( \x ->+          SavingsPlansSavings'+            Prelude.<$> (x Data..:? "NetSavings")+            Prelude.<*> (x Data..:? "OnDemandCostEquivalent")+      )++instance Prelude.Hashable SavingsPlansSavings where+  hashWithSalt _salt SavingsPlansSavings' {..} =+    _salt+      `Prelude.hashWithSalt` netSavings+      `Prelude.hashWithSalt` onDemandCostEquivalent++instance Prelude.NFData SavingsPlansSavings where+  rnf SavingsPlansSavings' {..} =+    Prelude.rnf netSavings+      `Prelude.seq` Prelude.rnf onDemandCostEquivalent
+ gen/Amazonka/CostExplorer/Types/SavingsPlansUtilization.hs view
@@ -0,0 +1,121 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.SavingsPlansUtilization+-- 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.CostExplorer.Types.SavingsPlansUtilization where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The measurement of how well you\'re using your existing Savings Plans.+--+-- /See:/ 'newSavingsPlansUtilization' smart constructor.+data SavingsPlansUtilization = SavingsPlansUtilization'+  { -- | The total amount of Savings Plans commitment that\'s been purchased in+    -- an account (or set of accounts).+    totalCommitment :: Prelude.Maybe Prelude.Text,+    -- | The amount of your Savings Plans commitment that wasn\'t consumed from+    -- Savings Plans eligible usage in a specific period.+    unusedCommitment :: Prelude.Maybe Prelude.Text,+    -- | The amount of your Savings Plans commitment that was consumed from+    -- Savings Plans eligible usage in a specific period.+    usedCommitment :: Prelude.Maybe Prelude.Text,+    -- | The amount of @UsedCommitment@ divided by the @TotalCommitment@ for your+    -- Savings Plans.+    utilizationPercentage :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SavingsPlansUtilization' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'totalCommitment', 'savingsPlansUtilization_totalCommitment' - The total amount of Savings Plans commitment that\'s been purchased in+-- an account (or set of accounts).+--+-- 'unusedCommitment', 'savingsPlansUtilization_unusedCommitment' - The amount of your Savings Plans commitment that wasn\'t consumed from+-- Savings Plans eligible usage in a specific period.+--+-- 'usedCommitment', 'savingsPlansUtilization_usedCommitment' - The amount of your Savings Plans commitment that was consumed from+-- Savings Plans eligible usage in a specific period.+--+-- 'utilizationPercentage', 'savingsPlansUtilization_utilizationPercentage' - The amount of @UsedCommitment@ divided by the @TotalCommitment@ for your+-- Savings Plans.+newSavingsPlansUtilization ::+  SavingsPlansUtilization+newSavingsPlansUtilization =+  SavingsPlansUtilization'+    { totalCommitment =+        Prelude.Nothing,+      unusedCommitment = Prelude.Nothing,+      usedCommitment = Prelude.Nothing,+      utilizationPercentage = Prelude.Nothing+    }++-- | The total amount of Savings Plans commitment that\'s been purchased in+-- an account (or set of accounts).+savingsPlansUtilization_totalCommitment :: Lens.Lens' SavingsPlansUtilization (Prelude.Maybe Prelude.Text)+savingsPlansUtilization_totalCommitment = Lens.lens (\SavingsPlansUtilization' {totalCommitment} -> totalCommitment) (\s@SavingsPlansUtilization' {} a -> s {totalCommitment = a} :: SavingsPlansUtilization)++-- | The amount of your Savings Plans commitment that wasn\'t consumed from+-- Savings Plans eligible usage in a specific period.+savingsPlansUtilization_unusedCommitment :: Lens.Lens' SavingsPlansUtilization (Prelude.Maybe Prelude.Text)+savingsPlansUtilization_unusedCommitment = Lens.lens (\SavingsPlansUtilization' {unusedCommitment} -> unusedCommitment) (\s@SavingsPlansUtilization' {} a -> s {unusedCommitment = a} :: SavingsPlansUtilization)++-- | The amount of your Savings Plans commitment that was consumed from+-- Savings Plans eligible usage in a specific period.+savingsPlansUtilization_usedCommitment :: Lens.Lens' SavingsPlansUtilization (Prelude.Maybe Prelude.Text)+savingsPlansUtilization_usedCommitment = Lens.lens (\SavingsPlansUtilization' {usedCommitment} -> usedCommitment) (\s@SavingsPlansUtilization' {} a -> s {usedCommitment = a} :: SavingsPlansUtilization)++-- | The amount of @UsedCommitment@ divided by the @TotalCommitment@ for your+-- Savings Plans.+savingsPlansUtilization_utilizationPercentage :: Lens.Lens' SavingsPlansUtilization (Prelude.Maybe Prelude.Text)+savingsPlansUtilization_utilizationPercentage = Lens.lens (\SavingsPlansUtilization' {utilizationPercentage} -> utilizationPercentage) (\s@SavingsPlansUtilization' {} a -> s {utilizationPercentage = a} :: SavingsPlansUtilization)++instance Data.FromJSON SavingsPlansUtilization where+  parseJSON =+    Data.withObject+      "SavingsPlansUtilization"+      ( \x ->+          SavingsPlansUtilization'+            Prelude.<$> (x Data..:? "TotalCommitment")+            Prelude.<*> (x Data..:? "UnusedCommitment")+            Prelude.<*> (x Data..:? "UsedCommitment")+            Prelude.<*> (x Data..:? "UtilizationPercentage")+      )++instance Prelude.Hashable SavingsPlansUtilization where+  hashWithSalt _salt SavingsPlansUtilization' {..} =+    _salt+      `Prelude.hashWithSalt` totalCommitment+      `Prelude.hashWithSalt` unusedCommitment+      `Prelude.hashWithSalt` usedCommitment+      `Prelude.hashWithSalt` utilizationPercentage++instance Prelude.NFData SavingsPlansUtilization where+  rnf SavingsPlansUtilization' {..} =+    Prelude.rnf totalCommitment+      `Prelude.seq` Prelude.rnf unusedCommitment+      `Prelude.seq` Prelude.rnf usedCommitment+      `Prelude.seq` Prelude.rnf utilizationPercentage
+ gen/Amazonka/CostExplorer/Types/SavingsPlansUtilizationAggregates.hs view
@@ -0,0 +1,128 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.SavingsPlansUtilizationAggregates+-- 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.CostExplorer.Types.SavingsPlansUtilizationAggregates where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CostExplorer.Types.SavingsPlansAmortizedCommitment+import Amazonka.CostExplorer.Types.SavingsPlansSavings+import Amazonka.CostExplorer.Types.SavingsPlansUtilization+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The aggregated utilization metrics for your Savings Plans usage.+--+-- /See:/ 'newSavingsPlansUtilizationAggregates' smart constructor.+data SavingsPlansUtilizationAggregates = SavingsPlansUtilizationAggregates'+  { -- | The total amortized commitment for a Savings Plans. This includes the+    -- sum of the upfront and recurring Savings Plans fees.+    amortizedCommitment :: Prelude.Maybe SavingsPlansAmortizedCommitment,+    -- | The amount that\'s saved by using existing Savings Plans. Savings+    -- returns both net savings from Savings Plans and also the+    -- @onDemandCostEquivalent@ of the Savings Plans when considering the+    -- utilization rate.+    savings :: Prelude.Maybe SavingsPlansSavings,+    -- | A ratio of your effectiveness of using existing Savings Plans to apply+    -- to workloads that are Savings Plans eligible.+    utilization :: SavingsPlansUtilization+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SavingsPlansUtilizationAggregates' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'amortizedCommitment', 'savingsPlansUtilizationAggregates_amortizedCommitment' - The total amortized commitment for a Savings Plans. This includes the+-- sum of the upfront and recurring Savings Plans fees.+--+-- 'savings', 'savingsPlansUtilizationAggregates_savings' - The amount that\'s saved by using existing Savings Plans. Savings+-- returns both net savings from Savings Plans and also the+-- @onDemandCostEquivalent@ of the Savings Plans when considering the+-- utilization rate.+--+-- 'utilization', 'savingsPlansUtilizationAggregates_utilization' - A ratio of your effectiveness of using existing Savings Plans to apply+-- to workloads that are Savings Plans eligible.+newSavingsPlansUtilizationAggregates ::+  -- | 'utilization'+  SavingsPlansUtilization ->+  SavingsPlansUtilizationAggregates+newSavingsPlansUtilizationAggregates pUtilization_ =+  SavingsPlansUtilizationAggregates'+    { amortizedCommitment =+        Prelude.Nothing,+      savings = Prelude.Nothing,+      utilization = pUtilization_+    }++-- | The total amortized commitment for a Savings Plans. This includes the+-- sum of the upfront and recurring Savings Plans fees.+savingsPlansUtilizationAggregates_amortizedCommitment :: Lens.Lens' SavingsPlansUtilizationAggregates (Prelude.Maybe SavingsPlansAmortizedCommitment)+savingsPlansUtilizationAggregates_amortizedCommitment = Lens.lens (\SavingsPlansUtilizationAggregates' {amortizedCommitment} -> amortizedCommitment) (\s@SavingsPlansUtilizationAggregates' {} a -> s {amortizedCommitment = a} :: SavingsPlansUtilizationAggregates)++-- | The amount that\'s saved by using existing Savings Plans. Savings+-- returns both net savings from Savings Plans and also the+-- @onDemandCostEquivalent@ of the Savings Plans when considering the+-- utilization rate.+savingsPlansUtilizationAggregates_savings :: Lens.Lens' SavingsPlansUtilizationAggregates (Prelude.Maybe SavingsPlansSavings)+savingsPlansUtilizationAggregates_savings = Lens.lens (\SavingsPlansUtilizationAggregates' {savings} -> savings) (\s@SavingsPlansUtilizationAggregates' {} a -> s {savings = a} :: SavingsPlansUtilizationAggregates)++-- | A ratio of your effectiveness of using existing Savings Plans to apply+-- to workloads that are Savings Plans eligible.+savingsPlansUtilizationAggregates_utilization :: Lens.Lens' SavingsPlansUtilizationAggregates SavingsPlansUtilization+savingsPlansUtilizationAggregates_utilization = Lens.lens (\SavingsPlansUtilizationAggregates' {utilization} -> utilization) (\s@SavingsPlansUtilizationAggregates' {} a -> s {utilization = a} :: SavingsPlansUtilizationAggregates)++instance+  Data.FromJSON+    SavingsPlansUtilizationAggregates+  where+  parseJSON =+    Data.withObject+      "SavingsPlansUtilizationAggregates"+      ( \x ->+          SavingsPlansUtilizationAggregates'+            Prelude.<$> (x Data..:? "AmortizedCommitment")+            Prelude.<*> (x Data..:? "Savings")+            Prelude.<*> (x Data..: "Utilization")+      )++instance+  Prelude.Hashable+    SavingsPlansUtilizationAggregates+  where+  hashWithSalt+    _salt+    SavingsPlansUtilizationAggregates' {..} =+      _salt+        `Prelude.hashWithSalt` amortizedCommitment+        `Prelude.hashWithSalt` savings+        `Prelude.hashWithSalt` utilization++instance+  Prelude.NFData+    SavingsPlansUtilizationAggregates+  where+  rnf SavingsPlansUtilizationAggregates' {..} =+    Prelude.rnf amortizedCommitment+      `Prelude.seq` Prelude.rnf savings+      `Prelude.seq` Prelude.rnf utilization
+ gen/Amazonka/CostExplorer/Types/SavingsPlansUtilizationByTime.hs view
@@ -0,0 +1,136 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.SavingsPlansUtilizationByTime+-- 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.CostExplorer.Types.SavingsPlansUtilizationByTime where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CostExplorer.Types.DateInterval+import Amazonka.CostExplorer.Types.SavingsPlansAmortizedCommitment+import Amazonka.CostExplorer.Types.SavingsPlansSavings+import Amazonka.CostExplorer.Types.SavingsPlansUtilization+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The amount of Savings Plans utilization (in hours).+--+-- /See:/ 'newSavingsPlansUtilizationByTime' smart constructor.+data SavingsPlansUtilizationByTime = SavingsPlansUtilizationByTime'+  { -- | The total amortized commitment for a Savings Plans. This includes the+    -- sum of the upfront and recurring Savings Plans fees.+    amortizedCommitment :: Prelude.Maybe SavingsPlansAmortizedCommitment,+    -- | The amount that\'s saved by using existing Savings Plans. Savings+    -- returns both net savings from Savings Plans and also the+    -- @onDemandCostEquivalent@ of the Savings Plans when considering the+    -- utilization rate.+    savings :: Prelude.Maybe SavingsPlansSavings,+    timePeriod :: DateInterval,+    -- | A ratio of your effectiveness of using existing Savings Plans to apply+    -- to workloads that are Savings Plans eligible.+    utilization :: SavingsPlansUtilization+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SavingsPlansUtilizationByTime' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'amortizedCommitment', 'savingsPlansUtilizationByTime_amortizedCommitment' - The total amortized commitment for a Savings Plans. This includes the+-- sum of the upfront and recurring Savings Plans fees.+--+-- 'savings', 'savingsPlansUtilizationByTime_savings' - The amount that\'s saved by using existing Savings Plans. Savings+-- returns both net savings from Savings Plans and also the+-- @onDemandCostEquivalent@ of the Savings Plans when considering the+-- utilization rate.+--+-- 'timePeriod', 'savingsPlansUtilizationByTime_timePeriod' - Undocumented member.+--+-- 'utilization', 'savingsPlansUtilizationByTime_utilization' - A ratio of your effectiveness of using existing Savings Plans to apply+-- to workloads that are Savings Plans eligible.+newSavingsPlansUtilizationByTime ::+  -- | 'timePeriod'+  DateInterval ->+  -- | 'utilization'+  SavingsPlansUtilization ->+  SavingsPlansUtilizationByTime+newSavingsPlansUtilizationByTime+  pTimePeriod_+  pUtilization_ =+    SavingsPlansUtilizationByTime'+      { amortizedCommitment =+          Prelude.Nothing,+        savings = Prelude.Nothing,+        timePeriod = pTimePeriod_,+        utilization = pUtilization_+      }++-- | The total amortized commitment for a Savings Plans. This includes the+-- sum of the upfront and recurring Savings Plans fees.+savingsPlansUtilizationByTime_amortizedCommitment :: Lens.Lens' SavingsPlansUtilizationByTime (Prelude.Maybe SavingsPlansAmortizedCommitment)+savingsPlansUtilizationByTime_amortizedCommitment = Lens.lens (\SavingsPlansUtilizationByTime' {amortizedCommitment} -> amortizedCommitment) (\s@SavingsPlansUtilizationByTime' {} a -> s {amortizedCommitment = a} :: SavingsPlansUtilizationByTime)++-- | The amount that\'s saved by using existing Savings Plans. Savings+-- returns both net savings from Savings Plans and also the+-- @onDemandCostEquivalent@ of the Savings Plans when considering the+-- utilization rate.+savingsPlansUtilizationByTime_savings :: Lens.Lens' SavingsPlansUtilizationByTime (Prelude.Maybe SavingsPlansSavings)+savingsPlansUtilizationByTime_savings = Lens.lens (\SavingsPlansUtilizationByTime' {savings} -> savings) (\s@SavingsPlansUtilizationByTime' {} a -> s {savings = a} :: SavingsPlansUtilizationByTime)++-- | Undocumented member.+savingsPlansUtilizationByTime_timePeriod :: Lens.Lens' SavingsPlansUtilizationByTime DateInterval+savingsPlansUtilizationByTime_timePeriod = Lens.lens (\SavingsPlansUtilizationByTime' {timePeriod} -> timePeriod) (\s@SavingsPlansUtilizationByTime' {} a -> s {timePeriod = a} :: SavingsPlansUtilizationByTime)++-- | A ratio of your effectiveness of using existing Savings Plans to apply+-- to workloads that are Savings Plans eligible.+savingsPlansUtilizationByTime_utilization :: Lens.Lens' SavingsPlansUtilizationByTime SavingsPlansUtilization+savingsPlansUtilizationByTime_utilization = Lens.lens (\SavingsPlansUtilizationByTime' {utilization} -> utilization) (\s@SavingsPlansUtilizationByTime' {} a -> s {utilization = a} :: SavingsPlansUtilizationByTime)++instance Data.FromJSON SavingsPlansUtilizationByTime where+  parseJSON =+    Data.withObject+      "SavingsPlansUtilizationByTime"+      ( \x ->+          SavingsPlansUtilizationByTime'+            Prelude.<$> (x Data..:? "AmortizedCommitment")+            Prelude.<*> (x Data..:? "Savings")+            Prelude.<*> (x Data..: "TimePeriod")+            Prelude.<*> (x Data..: "Utilization")+      )++instance+  Prelude.Hashable+    SavingsPlansUtilizationByTime+  where+  hashWithSalt _salt SavingsPlansUtilizationByTime' {..} =+    _salt+      `Prelude.hashWithSalt` amortizedCommitment+      `Prelude.hashWithSalt` savings+      `Prelude.hashWithSalt` timePeriod+      `Prelude.hashWithSalt` utilization++instance Prelude.NFData SavingsPlansUtilizationByTime where+  rnf SavingsPlansUtilizationByTime' {..} =+    Prelude.rnf amortizedCommitment+      `Prelude.seq` Prelude.rnf savings+      `Prelude.seq` Prelude.rnf timePeriod+      `Prelude.seq` Prelude.rnf utilization
+ gen/Amazonka/CostExplorer/Types/SavingsPlansUtilizationDetail.hs view
@@ -0,0 +1,142 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.SavingsPlansUtilizationDetail+-- 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.CostExplorer.Types.SavingsPlansUtilizationDetail where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CostExplorer.Types.SavingsPlansAmortizedCommitment+import Amazonka.CostExplorer.Types.SavingsPlansSavings+import Amazonka.CostExplorer.Types.SavingsPlansUtilization+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | A single daily or monthly Savings Plans utilization rate and details for+-- your account. A management account in an organization have access to+-- member accounts. You can use @GetDimensionValues@ to determine the+-- possible dimension values.+--+-- /See:/ 'newSavingsPlansUtilizationDetail' smart constructor.+data SavingsPlansUtilizationDetail = SavingsPlansUtilizationDetail'+  { -- | The total amortized commitment for a Savings Plans. Includes the sum of+    -- the upfront and recurring Savings Plans fees.+    amortizedCommitment :: Prelude.Maybe SavingsPlansAmortizedCommitment,+    -- | The attribute that applies to a specific @Dimension@.+    attributes :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),+    -- | The amount saved by using existing Savings Plans. Savings returns both+    -- net savings from savings plans and also the @onDemandCostEquivalent@ of+    -- the Savings Plans when considering the utilization rate.+    savings :: Prelude.Maybe SavingsPlansSavings,+    -- | The unique Amazon Resource Name (ARN) for a particular Savings Plan.+    savingsPlanArn :: Prelude.Maybe Prelude.Text,+    -- | A ratio of your effectiveness of using existing Savings Plans to apply+    -- to workloads that are Savings Plans eligible.+    utilization :: Prelude.Maybe SavingsPlansUtilization+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SavingsPlansUtilizationDetail' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'amortizedCommitment', 'savingsPlansUtilizationDetail_amortizedCommitment' - The total amortized commitment for a Savings Plans. Includes the sum of+-- the upfront and recurring Savings Plans fees.+--+-- 'attributes', 'savingsPlansUtilizationDetail_attributes' - The attribute that applies to a specific @Dimension@.+--+-- 'savings', 'savingsPlansUtilizationDetail_savings' - The amount saved by using existing Savings Plans. Savings returns both+-- net savings from savings plans and also the @onDemandCostEquivalent@ of+-- the Savings Plans when considering the utilization rate.+--+-- 'savingsPlanArn', 'savingsPlansUtilizationDetail_savingsPlanArn' - The unique Amazon Resource Name (ARN) for a particular Savings Plan.+--+-- 'utilization', 'savingsPlansUtilizationDetail_utilization' - A ratio of your effectiveness of using existing Savings Plans to apply+-- to workloads that are Savings Plans eligible.+newSavingsPlansUtilizationDetail ::+  SavingsPlansUtilizationDetail+newSavingsPlansUtilizationDetail =+  SavingsPlansUtilizationDetail'+    { amortizedCommitment =+        Prelude.Nothing,+      attributes = Prelude.Nothing,+      savings = Prelude.Nothing,+      savingsPlanArn = Prelude.Nothing,+      utilization = Prelude.Nothing+    }++-- | The total amortized commitment for a Savings Plans. Includes the sum of+-- the upfront and recurring Savings Plans fees.+savingsPlansUtilizationDetail_amortizedCommitment :: Lens.Lens' SavingsPlansUtilizationDetail (Prelude.Maybe SavingsPlansAmortizedCommitment)+savingsPlansUtilizationDetail_amortizedCommitment = Lens.lens (\SavingsPlansUtilizationDetail' {amortizedCommitment} -> amortizedCommitment) (\s@SavingsPlansUtilizationDetail' {} a -> s {amortizedCommitment = a} :: SavingsPlansUtilizationDetail)++-- | The attribute that applies to a specific @Dimension@.+savingsPlansUtilizationDetail_attributes :: Lens.Lens' SavingsPlansUtilizationDetail (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))+savingsPlansUtilizationDetail_attributes = Lens.lens (\SavingsPlansUtilizationDetail' {attributes} -> attributes) (\s@SavingsPlansUtilizationDetail' {} a -> s {attributes = a} :: SavingsPlansUtilizationDetail) Prelude.. Lens.mapping Lens.coerced++-- | The amount saved by using existing Savings Plans. Savings returns both+-- net savings from savings plans and also the @onDemandCostEquivalent@ of+-- the Savings Plans when considering the utilization rate.+savingsPlansUtilizationDetail_savings :: Lens.Lens' SavingsPlansUtilizationDetail (Prelude.Maybe SavingsPlansSavings)+savingsPlansUtilizationDetail_savings = Lens.lens (\SavingsPlansUtilizationDetail' {savings} -> savings) (\s@SavingsPlansUtilizationDetail' {} a -> s {savings = a} :: SavingsPlansUtilizationDetail)++-- | The unique Amazon Resource Name (ARN) for a particular Savings Plan.+savingsPlansUtilizationDetail_savingsPlanArn :: Lens.Lens' SavingsPlansUtilizationDetail (Prelude.Maybe Prelude.Text)+savingsPlansUtilizationDetail_savingsPlanArn = Lens.lens (\SavingsPlansUtilizationDetail' {savingsPlanArn} -> savingsPlanArn) (\s@SavingsPlansUtilizationDetail' {} a -> s {savingsPlanArn = a} :: SavingsPlansUtilizationDetail)++-- | A ratio of your effectiveness of using existing Savings Plans to apply+-- to workloads that are Savings Plans eligible.+savingsPlansUtilizationDetail_utilization :: Lens.Lens' SavingsPlansUtilizationDetail (Prelude.Maybe SavingsPlansUtilization)+savingsPlansUtilizationDetail_utilization = Lens.lens (\SavingsPlansUtilizationDetail' {utilization} -> utilization) (\s@SavingsPlansUtilizationDetail' {} a -> s {utilization = a} :: SavingsPlansUtilizationDetail)++instance Data.FromJSON SavingsPlansUtilizationDetail where+  parseJSON =+    Data.withObject+      "SavingsPlansUtilizationDetail"+      ( \x ->+          SavingsPlansUtilizationDetail'+            Prelude.<$> (x Data..:? "AmortizedCommitment")+            Prelude.<*> (x Data..:? "Attributes" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "Savings")+            Prelude.<*> (x Data..:? "SavingsPlanArn")+            Prelude.<*> (x Data..:? "Utilization")+      )++instance+  Prelude.Hashable+    SavingsPlansUtilizationDetail+  where+  hashWithSalt _salt SavingsPlansUtilizationDetail' {..} =+    _salt+      `Prelude.hashWithSalt` amortizedCommitment+      `Prelude.hashWithSalt` attributes+      `Prelude.hashWithSalt` savings+      `Prelude.hashWithSalt` savingsPlanArn+      `Prelude.hashWithSalt` utilization++instance Prelude.NFData SavingsPlansUtilizationDetail where+  rnf SavingsPlansUtilizationDetail' {..} =+    Prelude.rnf amortizedCommitment+      `Prelude.seq` Prelude.rnf attributes+      `Prelude.seq` Prelude.rnf savings+      `Prelude.seq` Prelude.rnf savingsPlanArn+      `Prelude.seq` Prelude.rnf utilization
+ gen/Amazonka/CostExplorer/Types/ServiceSpecification.hs view
@@ -0,0 +1,86 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.ServiceSpecification+-- 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.CostExplorer.Types.ServiceSpecification where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CostExplorer.Types.EC2Specification+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Hardware specifications for the service that you want recommendations+-- for.+--+-- /See:/ 'newServiceSpecification' smart constructor.+data ServiceSpecification = ServiceSpecification'+  { -- | The Amazon EC2 hardware specifications that you want Amazon Web Services+    -- to provide recommendations for.+    eC2Specification :: Prelude.Maybe EC2Specification+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'ServiceSpecification' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'eC2Specification', 'serviceSpecification_eC2Specification' - The Amazon EC2 hardware specifications that you want Amazon Web Services+-- to provide recommendations for.+newServiceSpecification ::+  ServiceSpecification+newServiceSpecification =+  ServiceSpecification'+    { eC2Specification =+        Prelude.Nothing+    }++-- | The Amazon EC2 hardware specifications that you want Amazon Web Services+-- to provide recommendations for.+serviceSpecification_eC2Specification :: Lens.Lens' ServiceSpecification (Prelude.Maybe EC2Specification)+serviceSpecification_eC2Specification = Lens.lens (\ServiceSpecification' {eC2Specification} -> eC2Specification) (\s@ServiceSpecification' {} a -> s {eC2Specification = a} :: ServiceSpecification)++instance Data.FromJSON ServiceSpecification where+  parseJSON =+    Data.withObject+      "ServiceSpecification"+      ( \x ->+          ServiceSpecification'+            Prelude.<$> (x Data..:? "EC2Specification")+      )++instance Prelude.Hashable ServiceSpecification where+  hashWithSalt _salt ServiceSpecification' {..} =+    _salt `Prelude.hashWithSalt` eC2Specification++instance Prelude.NFData ServiceSpecification where+  rnf ServiceSpecification' {..} =+    Prelude.rnf eC2Specification++instance Data.ToJSON ServiceSpecification where+  toJSON ServiceSpecification' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("EC2Specification" Data..=)+              Prelude.<$> eC2Specification+          ]+      )
+ gen/Amazonka/CostExplorer/Types/SortDefinition.hs view
@@ -0,0 +1,85 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.SortDefinition+-- 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.CostExplorer.Types.SortDefinition where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CostExplorer.Types.SortOrder+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The details for how to sort the data.+--+-- /See:/ 'newSortDefinition' smart constructor.+data SortDefinition = SortDefinition'+  { -- | The order that\'s used to sort the data.+    sortOrder :: Prelude.Maybe SortOrder,+    -- | The key that\'s used to sort the data.+    key :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'SortDefinition' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'sortOrder', 'sortDefinition_sortOrder' - The order that\'s used to sort the data.+--+-- 'key', 'sortDefinition_key' - The key that\'s used to sort the data.+newSortDefinition ::+  -- | 'key'+  Prelude.Text ->+  SortDefinition+newSortDefinition pKey_ =+  SortDefinition'+    { sortOrder = Prelude.Nothing,+      key = pKey_+    }++-- | The order that\'s used to sort the data.+sortDefinition_sortOrder :: Lens.Lens' SortDefinition (Prelude.Maybe SortOrder)+sortDefinition_sortOrder = Lens.lens (\SortDefinition' {sortOrder} -> sortOrder) (\s@SortDefinition' {} a -> s {sortOrder = a} :: SortDefinition)++-- | The key that\'s used to sort the data.+sortDefinition_key :: Lens.Lens' SortDefinition Prelude.Text+sortDefinition_key = Lens.lens (\SortDefinition' {key} -> key) (\s@SortDefinition' {} a -> s {key = a} :: SortDefinition)++instance Prelude.Hashable SortDefinition where+  hashWithSalt _salt SortDefinition' {..} =+    _salt+      `Prelude.hashWithSalt` sortOrder+      `Prelude.hashWithSalt` key++instance Prelude.NFData SortDefinition where+  rnf SortDefinition' {..} =+    Prelude.rnf sortOrder `Prelude.seq` Prelude.rnf key++instance Data.ToJSON SortDefinition where+  toJSON SortDefinition' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("SortOrder" Data..=) Prelude.<$> sortOrder,+            Prelude.Just ("Key" Data..= key)+          ]+      )
+ gen/Amazonka/CostExplorer/Types/SortOrder.hs view
@@ -0,0 +1,71 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.SortOrder+-- 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.CostExplorer.Types.SortOrder+  ( SortOrder+      ( ..,+        SortOrder_ASCENDING,+        SortOrder_DESCENDING+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype SortOrder = SortOrder'+  { fromSortOrder ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern SortOrder_ASCENDING :: SortOrder+pattern SortOrder_ASCENDING = SortOrder' "ASCENDING"++pattern SortOrder_DESCENDING :: SortOrder+pattern SortOrder_DESCENDING = SortOrder' "DESCENDING"++{-# COMPLETE+  SortOrder_ASCENDING,+  SortOrder_DESCENDING,+  SortOrder'+  #-}
+ gen/Amazonka/CostExplorer/Types/Subscriber.hs view
@@ -0,0 +1,111 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.Subscriber+-- 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.CostExplorer.Types.Subscriber where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CostExplorer.Types.SubscriberStatus+import Amazonka.CostExplorer.Types.SubscriberType+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The recipient of @AnomalySubscription@ notifications.+--+-- /See:/ 'newSubscriber' smart constructor.+data Subscriber = Subscriber'+  { -- | The email address or SNS Amazon Resource Name (ARN). This depends on the+    -- @Type@.+    address :: Prelude.Maybe Prelude.Text,+    -- | Indicates if the subscriber accepts the notifications.+    status :: Prelude.Maybe SubscriberStatus,+    -- | The notification delivery channel.+    type' :: Prelude.Maybe SubscriberType+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Subscriber' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'address', 'subscriber_address' - The email address or SNS Amazon Resource Name (ARN). This depends on the+-- @Type@.+--+-- 'status', 'subscriber_status' - Indicates if the subscriber accepts the notifications.+--+-- 'type'', 'subscriber_type' - The notification delivery channel.+newSubscriber ::+  Subscriber+newSubscriber =+  Subscriber'+    { address = Prelude.Nothing,+      status = Prelude.Nothing,+      type' = Prelude.Nothing+    }++-- | The email address or SNS Amazon Resource Name (ARN). This depends on the+-- @Type@.+subscriber_address :: Lens.Lens' Subscriber (Prelude.Maybe Prelude.Text)+subscriber_address = Lens.lens (\Subscriber' {address} -> address) (\s@Subscriber' {} a -> s {address = a} :: Subscriber)++-- | Indicates if the subscriber accepts the notifications.+subscriber_status :: Lens.Lens' Subscriber (Prelude.Maybe SubscriberStatus)+subscriber_status = Lens.lens (\Subscriber' {status} -> status) (\s@Subscriber' {} a -> s {status = a} :: Subscriber)++-- | The notification delivery channel.+subscriber_type :: Lens.Lens' Subscriber (Prelude.Maybe SubscriberType)+subscriber_type = Lens.lens (\Subscriber' {type'} -> type') (\s@Subscriber' {} a -> s {type' = a} :: Subscriber)++instance Data.FromJSON Subscriber where+  parseJSON =+    Data.withObject+      "Subscriber"+      ( \x ->+          Subscriber'+            Prelude.<$> (x Data..:? "Address")+            Prelude.<*> (x Data..:? "Status")+            Prelude.<*> (x Data..:? "Type")+      )++instance Prelude.Hashable Subscriber where+  hashWithSalt _salt Subscriber' {..} =+    _salt+      `Prelude.hashWithSalt` address+      `Prelude.hashWithSalt` status+      `Prelude.hashWithSalt` type'++instance Prelude.NFData Subscriber where+  rnf Subscriber' {..} =+    Prelude.rnf address+      `Prelude.seq` Prelude.rnf status+      `Prelude.seq` Prelude.rnf type'++instance Data.ToJSON Subscriber where+  toJSON Subscriber' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Address" Data..=) Prelude.<$> address,+            ("Status" Data..=) Prelude.<$> status,+            ("Type" Data..=) Prelude.<$> type'+          ]+      )
+ gen/Amazonka/CostExplorer/Types/SubscriberStatus.hs view
@@ -0,0 +1,71 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.SubscriberStatus+-- 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.CostExplorer.Types.SubscriberStatus+  ( SubscriberStatus+      ( ..,+        SubscriberStatus_CONFIRMED,+        SubscriberStatus_DECLINED+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype SubscriberStatus = SubscriberStatus'+  { fromSubscriberStatus ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern SubscriberStatus_CONFIRMED :: SubscriberStatus+pattern SubscriberStatus_CONFIRMED = SubscriberStatus' "CONFIRMED"++pattern SubscriberStatus_DECLINED :: SubscriberStatus+pattern SubscriberStatus_DECLINED = SubscriberStatus' "DECLINED"++{-# COMPLETE+  SubscriberStatus_CONFIRMED,+  SubscriberStatus_DECLINED,+  SubscriberStatus'+  #-}
+ gen/Amazonka/CostExplorer/Types/SubscriberType.hs view
@@ -0,0 +1,71 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.SubscriberType+-- 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.CostExplorer.Types.SubscriberType+  ( SubscriberType+      ( ..,+        SubscriberType_EMAIL,+        SubscriberType_SNS+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype SubscriberType = SubscriberType'+  { fromSubscriberType ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern SubscriberType_EMAIL :: SubscriberType+pattern SubscriberType_EMAIL = SubscriberType' "EMAIL"++pattern SubscriberType_SNS :: SubscriberType+pattern SubscriberType_SNS = SubscriberType' "SNS"++{-# COMPLETE+  SubscriberType_EMAIL,+  SubscriberType_SNS,+  SubscriberType'+  #-}
+ gen/Amazonka/CostExplorer/Types/SupportedSavingsPlansType.hs view
@@ -0,0 +1,76 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.SupportedSavingsPlansType+-- 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.CostExplorer.Types.SupportedSavingsPlansType+  ( SupportedSavingsPlansType+      ( ..,+        SupportedSavingsPlansType_COMPUTE_SP,+        SupportedSavingsPlansType_EC2_INSTANCE_SP,+        SupportedSavingsPlansType_SAGEMAKER_SP+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype SupportedSavingsPlansType = SupportedSavingsPlansType'+  { fromSupportedSavingsPlansType ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern SupportedSavingsPlansType_COMPUTE_SP :: SupportedSavingsPlansType+pattern SupportedSavingsPlansType_COMPUTE_SP = SupportedSavingsPlansType' "COMPUTE_SP"++pattern SupportedSavingsPlansType_EC2_INSTANCE_SP :: SupportedSavingsPlansType+pattern SupportedSavingsPlansType_EC2_INSTANCE_SP = SupportedSavingsPlansType' "EC2_INSTANCE_SP"++pattern SupportedSavingsPlansType_SAGEMAKER_SP :: SupportedSavingsPlansType+pattern SupportedSavingsPlansType_SAGEMAKER_SP = SupportedSavingsPlansType' "SAGEMAKER_SP"++{-# COMPLETE+  SupportedSavingsPlansType_COMPUTE_SP,+  SupportedSavingsPlansType_EC2_INSTANCE_SP,+  SupportedSavingsPlansType_SAGEMAKER_SP,+  SupportedSavingsPlansType'+  #-}
+ gen/Amazonka/CostExplorer/Types/TagValues.hs view
@@ -0,0 +1,120 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.TagValues+-- 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.CostExplorer.Types.TagValues where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CostExplorer.Types.MatchOption+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The values that are available for a tag.+--+-- If @Values@ and @Key@ aren\'t specified, the @ABSENT@ @MatchOption@ is+-- applied to all tags. That is, it\'s filtered on resources with no tags.+--+-- If @Key@ is provided and @Values@ isn\'t specified, the @ABSENT@+-- @MatchOption@ is applied to the tag @Key@ only. That is, it\'s filtered+-- on resources without the given tag key.+--+-- /See:/ 'newTagValues' smart constructor.+data TagValues = TagValues'+  { -- | The key for the tag.+    key :: Prelude.Maybe Prelude.Text,+    -- | The match options that you can use to filter your results.+    -- @MatchOptions@ is only applicable for actions related to Cost Category.+    -- The default values for @MatchOptions@ are @EQUALS@ and @CASE_SENSITIVE@.+    matchOptions :: Prelude.Maybe [MatchOption],+    -- | The specific value of the tag.+    values :: Prelude.Maybe [Prelude.Text]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TagValues' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'key', 'tagValues_key' - The key for the tag.+--+-- 'matchOptions', 'tagValues_matchOptions' - The match options that you can use to filter your results.+-- @MatchOptions@ is only applicable for actions related to Cost Category.+-- The default values for @MatchOptions@ are @EQUALS@ and @CASE_SENSITIVE@.+--+-- 'values', 'tagValues_values' - The specific value of the tag.+newTagValues ::+  TagValues+newTagValues =+  TagValues'+    { key = Prelude.Nothing,+      matchOptions = Prelude.Nothing,+      values = Prelude.Nothing+    }++-- | The key for the tag.+tagValues_key :: Lens.Lens' TagValues (Prelude.Maybe Prelude.Text)+tagValues_key = Lens.lens (\TagValues' {key} -> key) (\s@TagValues' {} a -> s {key = a} :: TagValues)++-- | The match options that you can use to filter your results.+-- @MatchOptions@ is only applicable for actions related to Cost Category.+-- The default values for @MatchOptions@ are @EQUALS@ and @CASE_SENSITIVE@.+tagValues_matchOptions :: Lens.Lens' TagValues (Prelude.Maybe [MatchOption])+tagValues_matchOptions = Lens.lens (\TagValues' {matchOptions} -> matchOptions) (\s@TagValues' {} a -> s {matchOptions = a} :: TagValues) Prelude.. Lens.mapping Lens.coerced++-- | The specific value of the tag.+tagValues_values :: Lens.Lens' TagValues (Prelude.Maybe [Prelude.Text])+tagValues_values = Lens.lens (\TagValues' {values} -> values) (\s@TagValues' {} a -> s {values = a} :: TagValues) Prelude.. Lens.mapping Lens.coerced++instance Data.FromJSON TagValues where+  parseJSON =+    Data.withObject+      "TagValues"+      ( \x ->+          TagValues'+            Prelude.<$> (x Data..:? "Key")+            Prelude.<*> (x Data..:? "MatchOptions" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "Values" Data..!= Prelude.mempty)+      )++instance Prelude.Hashable TagValues where+  hashWithSalt _salt TagValues' {..} =+    _salt+      `Prelude.hashWithSalt` key+      `Prelude.hashWithSalt` matchOptions+      `Prelude.hashWithSalt` values++instance Prelude.NFData TagValues where+  rnf TagValues' {..} =+    Prelude.rnf key+      `Prelude.seq` Prelude.rnf matchOptions+      `Prelude.seq` Prelude.rnf values++instance Data.ToJSON TagValues where+  toJSON TagValues' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Key" Data..=) Prelude.<$> key,+            ("MatchOptions" Data..=) Prelude.<$> matchOptions,+            ("Values" Data..=) Prelude.<$> values+          ]+      )
+ gen/Amazonka/CostExplorer/Types/TargetInstance.hs view
@@ -0,0 +1,162 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.TargetInstance+-- 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.CostExplorer.Types.TargetInstance where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CostExplorer.Types.PlatformDifference+import Amazonka.CostExplorer.Types.ResourceDetails+import Amazonka.CostExplorer.Types.ResourceUtilization+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Details on recommended instance.+--+-- /See:/ 'newTargetInstance' smart constructor.+data TargetInstance = TargetInstance'+  { -- | The currency code that Amazon Web Services used to calculate the costs+    -- for this instance.+    currencyCode :: Prelude.Maybe Prelude.Text,+    -- | Determines whether this recommendation is the defaulted Amazon Web+    -- Services recommendation.+    defaultTargetInstance :: Prelude.Maybe Prelude.Bool,+    -- | The expected cost to operate this instance type on a monthly basis.+    estimatedMonthlyCost :: Prelude.Maybe Prelude.Text,+    -- | The estimated savings that result from modification, on a monthly basis.+    estimatedMonthlySavings :: Prelude.Maybe Prelude.Text,+    -- | The expected utilization metrics for target instance type.+    expectedResourceUtilization :: Prelude.Maybe ResourceUtilization,+    -- | Explains the actions that you might need to take to successfully migrate+    -- your workloads from the current instance type to the recommended+    -- instance type.+    platformDifferences :: Prelude.Maybe [PlatformDifference],+    -- | Details on the target instance type.+    resourceDetails :: Prelude.Maybe ResourceDetails+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TargetInstance' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'currencyCode', 'targetInstance_currencyCode' - The currency code that Amazon Web Services used to calculate the costs+-- for this instance.+--+-- 'defaultTargetInstance', 'targetInstance_defaultTargetInstance' - Determines whether this recommendation is the defaulted Amazon Web+-- Services recommendation.+--+-- 'estimatedMonthlyCost', 'targetInstance_estimatedMonthlyCost' - The expected cost to operate this instance type on a monthly basis.+--+-- 'estimatedMonthlySavings', 'targetInstance_estimatedMonthlySavings' - The estimated savings that result from modification, on a monthly basis.+--+-- 'expectedResourceUtilization', 'targetInstance_expectedResourceUtilization' - The expected utilization metrics for target instance type.+--+-- 'platformDifferences', 'targetInstance_platformDifferences' - Explains the actions that you might need to take to successfully migrate+-- your workloads from the current instance type to the recommended+-- instance type.+--+-- 'resourceDetails', 'targetInstance_resourceDetails' - Details on the target instance type.+newTargetInstance ::+  TargetInstance+newTargetInstance =+  TargetInstance'+    { currencyCode = Prelude.Nothing,+      defaultTargetInstance = Prelude.Nothing,+      estimatedMonthlyCost = Prelude.Nothing,+      estimatedMonthlySavings = Prelude.Nothing,+      expectedResourceUtilization = Prelude.Nothing,+      platformDifferences = Prelude.Nothing,+      resourceDetails = Prelude.Nothing+    }++-- | The currency code that Amazon Web Services used to calculate the costs+-- for this instance.+targetInstance_currencyCode :: Lens.Lens' TargetInstance (Prelude.Maybe Prelude.Text)+targetInstance_currencyCode = Lens.lens (\TargetInstance' {currencyCode} -> currencyCode) (\s@TargetInstance' {} a -> s {currencyCode = a} :: TargetInstance)++-- | Determines whether this recommendation is the defaulted Amazon Web+-- Services recommendation.+targetInstance_defaultTargetInstance :: Lens.Lens' TargetInstance (Prelude.Maybe Prelude.Bool)+targetInstance_defaultTargetInstance = Lens.lens (\TargetInstance' {defaultTargetInstance} -> defaultTargetInstance) (\s@TargetInstance' {} a -> s {defaultTargetInstance = a} :: TargetInstance)++-- | The expected cost to operate this instance type on a monthly basis.+targetInstance_estimatedMonthlyCost :: Lens.Lens' TargetInstance (Prelude.Maybe Prelude.Text)+targetInstance_estimatedMonthlyCost = Lens.lens (\TargetInstance' {estimatedMonthlyCost} -> estimatedMonthlyCost) (\s@TargetInstance' {} a -> s {estimatedMonthlyCost = a} :: TargetInstance)++-- | The estimated savings that result from modification, on a monthly basis.+targetInstance_estimatedMonthlySavings :: Lens.Lens' TargetInstance (Prelude.Maybe Prelude.Text)+targetInstance_estimatedMonthlySavings = Lens.lens (\TargetInstance' {estimatedMonthlySavings} -> estimatedMonthlySavings) (\s@TargetInstance' {} a -> s {estimatedMonthlySavings = a} :: TargetInstance)++-- | The expected utilization metrics for target instance type.+targetInstance_expectedResourceUtilization :: Lens.Lens' TargetInstance (Prelude.Maybe ResourceUtilization)+targetInstance_expectedResourceUtilization = Lens.lens (\TargetInstance' {expectedResourceUtilization} -> expectedResourceUtilization) (\s@TargetInstance' {} a -> s {expectedResourceUtilization = a} :: TargetInstance)++-- | Explains the actions that you might need to take to successfully migrate+-- your workloads from the current instance type to the recommended+-- instance type.+targetInstance_platformDifferences :: Lens.Lens' TargetInstance (Prelude.Maybe [PlatformDifference])+targetInstance_platformDifferences = Lens.lens (\TargetInstance' {platformDifferences} -> platformDifferences) (\s@TargetInstance' {} a -> s {platformDifferences = a} :: TargetInstance) Prelude.. Lens.mapping Lens.coerced++-- | Details on the target instance type.+targetInstance_resourceDetails :: Lens.Lens' TargetInstance (Prelude.Maybe ResourceDetails)+targetInstance_resourceDetails = Lens.lens (\TargetInstance' {resourceDetails} -> resourceDetails) (\s@TargetInstance' {} a -> s {resourceDetails = a} :: TargetInstance)++instance Data.FromJSON TargetInstance where+  parseJSON =+    Data.withObject+      "TargetInstance"+      ( \x ->+          TargetInstance'+            Prelude.<$> (x Data..:? "CurrencyCode")+            Prelude.<*> (x Data..:? "DefaultTargetInstance")+            Prelude.<*> (x Data..:? "EstimatedMonthlyCost")+            Prelude.<*> (x Data..:? "EstimatedMonthlySavings")+            Prelude.<*> (x Data..:? "ExpectedResourceUtilization")+            Prelude.<*> ( x+                            Data..:? "PlatformDifferences"+                            Data..!= Prelude.mempty+                        )+            Prelude.<*> (x Data..:? "ResourceDetails")+      )++instance Prelude.Hashable TargetInstance where+  hashWithSalt _salt TargetInstance' {..} =+    _salt+      `Prelude.hashWithSalt` currencyCode+      `Prelude.hashWithSalt` defaultTargetInstance+      `Prelude.hashWithSalt` estimatedMonthlyCost+      `Prelude.hashWithSalt` estimatedMonthlySavings+      `Prelude.hashWithSalt` expectedResourceUtilization+      `Prelude.hashWithSalt` platformDifferences+      `Prelude.hashWithSalt` resourceDetails++instance Prelude.NFData TargetInstance where+  rnf TargetInstance' {..} =+    Prelude.rnf currencyCode+      `Prelude.seq` Prelude.rnf defaultTargetInstance+      `Prelude.seq` Prelude.rnf estimatedMonthlyCost+      `Prelude.seq` Prelude.rnf estimatedMonthlySavings+      `Prelude.seq` Prelude.rnf expectedResourceUtilization+      `Prelude.seq` Prelude.rnf platformDifferences+      `Prelude.seq` Prelude.rnf resourceDetails
+ gen/Amazonka/CostExplorer/Types/TermInYears.hs view
@@ -0,0 +1,71 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.TermInYears+-- 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.CostExplorer.Types.TermInYears+  ( TermInYears+      ( ..,+        TermInYears_ONE_YEAR,+        TermInYears_THREE_YEARS+      ),+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype TermInYears = TermInYears'+  { fromTermInYears ::+      Data.Text+  }+  deriving stock+    ( Prelude.Show,+      Prelude.Read,+      Prelude.Eq,+      Prelude.Ord,+      Prelude.Generic+    )+  deriving newtype+    ( Prelude.Hashable,+      Prelude.NFData,+      Data.FromText,+      Data.ToText,+      Data.ToByteString,+      Data.ToLog,+      Data.ToHeader,+      Data.ToQuery,+      Data.FromJSON,+      Data.FromJSONKey,+      Data.ToJSON,+      Data.ToJSONKey,+      Data.FromXML,+      Data.ToXML+    )++pattern TermInYears_ONE_YEAR :: TermInYears+pattern TermInYears_ONE_YEAR = TermInYears' "ONE_YEAR"++pattern TermInYears_THREE_YEARS :: TermInYears+pattern TermInYears_THREE_YEARS = TermInYears' "THREE_YEARS"++{-# COMPLETE+  TermInYears_ONE_YEAR,+  TermInYears_THREE_YEARS,+  TermInYears'+  #-}
+ gen/Amazonka/CostExplorer/Types/TerminateRecommendationDetail.hs view
@@ -0,0 +1,91 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.TerminateRecommendationDetail+-- 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.CostExplorer.Types.TerminateRecommendationDetail where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Details on termination recommendation.+--+-- /See:/ 'newTerminateRecommendationDetail' smart constructor.+data TerminateRecommendationDetail = TerminateRecommendationDetail'+  { -- | The currency code that Amazon Web Services used to calculate the costs+    -- for this instance.+    currencyCode :: Prelude.Maybe Prelude.Text,+    -- | The estimated savings that result from modification, on a monthly basis.+    estimatedMonthlySavings :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TerminateRecommendationDetail' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'currencyCode', 'terminateRecommendationDetail_currencyCode' - The currency code that Amazon Web Services used to calculate the costs+-- for this instance.+--+-- 'estimatedMonthlySavings', 'terminateRecommendationDetail_estimatedMonthlySavings' - The estimated savings that result from modification, on a monthly basis.+newTerminateRecommendationDetail ::+  TerminateRecommendationDetail+newTerminateRecommendationDetail =+  TerminateRecommendationDetail'+    { currencyCode =+        Prelude.Nothing,+      estimatedMonthlySavings = Prelude.Nothing+    }++-- | The currency code that Amazon Web Services used to calculate the costs+-- for this instance.+terminateRecommendationDetail_currencyCode :: Lens.Lens' TerminateRecommendationDetail (Prelude.Maybe Prelude.Text)+terminateRecommendationDetail_currencyCode = Lens.lens (\TerminateRecommendationDetail' {currencyCode} -> currencyCode) (\s@TerminateRecommendationDetail' {} a -> s {currencyCode = a} :: TerminateRecommendationDetail)++-- | The estimated savings that result from modification, on a monthly basis.+terminateRecommendationDetail_estimatedMonthlySavings :: Lens.Lens' TerminateRecommendationDetail (Prelude.Maybe Prelude.Text)+terminateRecommendationDetail_estimatedMonthlySavings = Lens.lens (\TerminateRecommendationDetail' {estimatedMonthlySavings} -> estimatedMonthlySavings) (\s@TerminateRecommendationDetail' {} a -> s {estimatedMonthlySavings = a} :: TerminateRecommendationDetail)++instance Data.FromJSON TerminateRecommendationDetail where+  parseJSON =+    Data.withObject+      "TerminateRecommendationDetail"+      ( \x ->+          TerminateRecommendationDetail'+            Prelude.<$> (x Data..:? "CurrencyCode")+            Prelude.<*> (x Data..:? "EstimatedMonthlySavings")+      )++instance+  Prelude.Hashable+    TerminateRecommendationDetail+  where+  hashWithSalt _salt TerminateRecommendationDetail' {..} =+    _salt+      `Prelude.hashWithSalt` currencyCode+      `Prelude.hashWithSalt` estimatedMonthlySavings++instance Prelude.NFData TerminateRecommendationDetail where+  rnf TerminateRecommendationDetail' {..} =+    Prelude.rnf currencyCode+      `Prelude.seq` Prelude.rnf estimatedMonthlySavings
+ gen/Amazonka/CostExplorer/Types/TotalImpactFilter.hs view
@@ -0,0 +1,101 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.TotalImpactFilter+-- 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.CostExplorer.Types.TotalImpactFilter where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CostExplorer.Types.NumericOperator+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Filters cost anomalies based on the total impact.+--+-- /See:/ 'newTotalImpactFilter' smart constructor.+data TotalImpactFilter = TotalImpactFilter'+  { -- | The upper bound dollar value that\'s used in the filter.+    endValue :: Prelude.Maybe Prelude.Double,+    -- | The comparing value that\'s used in the filter.+    numericOperator :: NumericOperator,+    -- | The lower bound dollar value that\'s used in the filter.+    startValue :: Prelude.Double+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'TotalImpactFilter' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'endValue', 'totalImpactFilter_endValue' - The upper bound dollar value that\'s used in the filter.+--+-- 'numericOperator', 'totalImpactFilter_numericOperator' - The comparing value that\'s used in the filter.+--+-- 'startValue', 'totalImpactFilter_startValue' - The lower bound dollar value that\'s used in the filter.+newTotalImpactFilter ::+  -- | 'numericOperator'+  NumericOperator ->+  -- | 'startValue'+  Prelude.Double ->+  TotalImpactFilter+newTotalImpactFilter pNumericOperator_ pStartValue_ =+  TotalImpactFilter'+    { endValue = Prelude.Nothing,+      numericOperator = pNumericOperator_,+      startValue = pStartValue_+    }++-- | The upper bound dollar value that\'s used in the filter.+totalImpactFilter_endValue :: Lens.Lens' TotalImpactFilter (Prelude.Maybe Prelude.Double)+totalImpactFilter_endValue = Lens.lens (\TotalImpactFilter' {endValue} -> endValue) (\s@TotalImpactFilter' {} a -> s {endValue = a} :: TotalImpactFilter)++-- | The comparing value that\'s used in the filter.+totalImpactFilter_numericOperator :: Lens.Lens' TotalImpactFilter NumericOperator+totalImpactFilter_numericOperator = Lens.lens (\TotalImpactFilter' {numericOperator} -> numericOperator) (\s@TotalImpactFilter' {} a -> s {numericOperator = a} :: TotalImpactFilter)++-- | The lower bound dollar value that\'s used in the filter.+totalImpactFilter_startValue :: Lens.Lens' TotalImpactFilter Prelude.Double+totalImpactFilter_startValue = Lens.lens (\TotalImpactFilter' {startValue} -> startValue) (\s@TotalImpactFilter' {} a -> s {startValue = a} :: TotalImpactFilter)++instance Prelude.Hashable TotalImpactFilter where+  hashWithSalt _salt TotalImpactFilter' {..} =+    _salt+      `Prelude.hashWithSalt` endValue+      `Prelude.hashWithSalt` numericOperator+      `Prelude.hashWithSalt` startValue++instance Prelude.NFData TotalImpactFilter where+  rnf TotalImpactFilter' {..} =+    Prelude.rnf endValue+      `Prelude.seq` Prelude.rnf numericOperator+      `Prelude.seq` Prelude.rnf startValue++instance Data.ToJSON TotalImpactFilter where+  toJSON TotalImpactFilter' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("EndValue" Data..=) Prelude.<$> endValue,+            Prelude.Just+              ("NumericOperator" Data..= numericOperator),+            Prelude.Just ("StartValue" Data..= startValue)+          ]+      )
+ gen/Amazonka/CostExplorer/Types/UpdateCostAllocationTagsStatusError.hs view
@@ -0,0 +1,109 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.UpdateCostAllocationTagsStatusError+-- 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.CostExplorer.Types.UpdateCostAllocationTagsStatusError where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | Gives a detailed description of the result of an action. It\'s on each+-- cost allocation tag entry in the request.+--+-- /See:/ 'newUpdateCostAllocationTagsStatusError' smart constructor.+data UpdateCostAllocationTagsStatusError = UpdateCostAllocationTagsStatusError'+  { -- | An error code representing why the action failed on this entry.+    code :: Prelude.Maybe Prelude.Text,+    -- | A message explaining why the action failed on this entry.+    message :: Prelude.Maybe Prelude.Text,+    -- | The key for the cost allocation tag.+    tagKey :: Prelude.Maybe Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateCostAllocationTagsStatusError' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'code', 'updateCostAllocationTagsStatusError_code' - An error code representing why the action failed on this entry.+--+-- 'message', 'updateCostAllocationTagsStatusError_message' - A message explaining why the action failed on this entry.+--+-- 'tagKey', 'updateCostAllocationTagsStatusError_tagKey' - The key for the cost allocation tag.+newUpdateCostAllocationTagsStatusError ::+  UpdateCostAllocationTagsStatusError+newUpdateCostAllocationTagsStatusError =+  UpdateCostAllocationTagsStatusError'+    { code =+        Prelude.Nothing,+      message = Prelude.Nothing,+      tagKey = Prelude.Nothing+    }++-- | An error code representing why the action failed on this entry.+updateCostAllocationTagsStatusError_code :: Lens.Lens' UpdateCostAllocationTagsStatusError (Prelude.Maybe Prelude.Text)+updateCostAllocationTagsStatusError_code = Lens.lens (\UpdateCostAllocationTagsStatusError' {code} -> code) (\s@UpdateCostAllocationTagsStatusError' {} a -> s {code = a} :: UpdateCostAllocationTagsStatusError)++-- | A message explaining why the action failed on this entry.+updateCostAllocationTagsStatusError_message :: Lens.Lens' UpdateCostAllocationTagsStatusError (Prelude.Maybe Prelude.Text)+updateCostAllocationTagsStatusError_message = Lens.lens (\UpdateCostAllocationTagsStatusError' {message} -> message) (\s@UpdateCostAllocationTagsStatusError' {} a -> s {message = a} :: UpdateCostAllocationTagsStatusError)++-- | The key for the cost allocation tag.+updateCostAllocationTagsStatusError_tagKey :: Lens.Lens' UpdateCostAllocationTagsStatusError (Prelude.Maybe Prelude.Text)+updateCostAllocationTagsStatusError_tagKey = Lens.lens (\UpdateCostAllocationTagsStatusError' {tagKey} -> tagKey) (\s@UpdateCostAllocationTagsStatusError' {} a -> s {tagKey = a} :: UpdateCostAllocationTagsStatusError)++instance+  Data.FromJSON+    UpdateCostAllocationTagsStatusError+  where+  parseJSON =+    Data.withObject+      "UpdateCostAllocationTagsStatusError"+      ( \x ->+          UpdateCostAllocationTagsStatusError'+            Prelude.<$> (x Data..:? "Code")+            Prelude.<*> (x Data..:? "Message")+            Prelude.<*> (x Data..:? "TagKey")+      )++instance+  Prelude.Hashable+    UpdateCostAllocationTagsStatusError+  where+  hashWithSalt+    _salt+    UpdateCostAllocationTagsStatusError' {..} =+      _salt+        `Prelude.hashWithSalt` code+        `Prelude.hashWithSalt` message+        `Prelude.hashWithSalt` tagKey++instance+  Prelude.NFData+    UpdateCostAllocationTagsStatusError+  where+  rnf UpdateCostAllocationTagsStatusError' {..} =+    Prelude.rnf code+      `Prelude.seq` Prelude.rnf message+      `Prelude.seq` Prelude.rnf tagKey
+ gen/Amazonka/CostExplorer/Types/UtilizationByTime.hs view
@@ -0,0 +1,99 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Types.UtilizationByTime+-- 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.CostExplorer.Types.UtilizationByTime where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CostExplorer.Types.DateInterval+import Amazonka.CostExplorer.Types.ReservationAggregates+import Amazonka.CostExplorer.Types.ReservationUtilizationGroup+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++-- | The amount of utilization, in hours.+--+-- /See:/ 'newUtilizationByTime' smart constructor.+data UtilizationByTime = UtilizationByTime'+  { -- | The groups that this utilization result uses.+    groups :: Prelude.Maybe [ReservationUtilizationGroup],+    -- | The period of time that this utilization was used for.+    timePeriod :: Prelude.Maybe DateInterval,+    -- | The total number of reservation hours that were used.+    total :: Prelude.Maybe ReservationAggregates+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UtilizationByTime' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'groups', 'utilizationByTime_groups' - The groups that this utilization result uses.+--+-- 'timePeriod', 'utilizationByTime_timePeriod' - The period of time that this utilization was used for.+--+-- 'total', 'utilizationByTime_total' - The total number of reservation hours that were used.+newUtilizationByTime ::+  UtilizationByTime+newUtilizationByTime =+  UtilizationByTime'+    { groups = Prelude.Nothing,+      timePeriod = Prelude.Nothing,+      total = Prelude.Nothing+    }++-- | The groups that this utilization result uses.+utilizationByTime_groups :: Lens.Lens' UtilizationByTime (Prelude.Maybe [ReservationUtilizationGroup])+utilizationByTime_groups = Lens.lens (\UtilizationByTime' {groups} -> groups) (\s@UtilizationByTime' {} a -> s {groups = a} :: UtilizationByTime) Prelude.. Lens.mapping Lens.coerced++-- | The period of time that this utilization was used for.+utilizationByTime_timePeriod :: Lens.Lens' UtilizationByTime (Prelude.Maybe DateInterval)+utilizationByTime_timePeriod = Lens.lens (\UtilizationByTime' {timePeriod} -> timePeriod) (\s@UtilizationByTime' {} a -> s {timePeriod = a} :: UtilizationByTime)++-- | The total number of reservation hours that were used.+utilizationByTime_total :: Lens.Lens' UtilizationByTime (Prelude.Maybe ReservationAggregates)+utilizationByTime_total = Lens.lens (\UtilizationByTime' {total} -> total) (\s@UtilizationByTime' {} a -> s {total = a} :: UtilizationByTime)++instance Data.FromJSON UtilizationByTime where+  parseJSON =+    Data.withObject+      "UtilizationByTime"+      ( \x ->+          UtilizationByTime'+            Prelude.<$> (x Data..:? "Groups" Data..!= Prelude.mempty)+            Prelude.<*> (x Data..:? "TimePeriod")+            Prelude.<*> (x Data..:? "Total")+      )++instance Prelude.Hashable UtilizationByTime where+  hashWithSalt _salt UtilizationByTime' {..} =+    _salt+      `Prelude.hashWithSalt` groups+      `Prelude.hashWithSalt` timePeriod+      `Prelude.hashWithSalt` total++instance Prelude.NFData UtilizationByTime where+  rnf UtilizationByTime' {..} =+    Prelude.rnf groups+      `Prelude.seq` Prelude.rnf timePeriod+      `Prelude.seq` Prelude.rnf total
+ gen/Amazonka/CostExplorer/UntagResource.hs view
@@ -0,0 +1,188 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.UntagResource+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Removes one or more tags from a resource. Specify only tag keys in your+-- request. Don\'t specify the value.+module Amazonka.CostExplorer.UntagResource+  ( -- * Creating a Request+    UntagResource (..),+    newUntagResource,++    -- * Request Lenses+    untagResource_resourceArn,+    untagResource_resourceTagKeys,++    -- * Destructuring the Response+    UntagResourceResponse (..),+    newUntagResourceResponse,++    -- * Response Lenses+    untagResourceResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CostExplorer.Types+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUntagResource' smart constructor.+data UntagResource = UntagResource'+  { -- | The Amazon Resource Name (ARN) of the resource. For a list of supported+    -- resources, see+    -- <https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_ResourceTag.html ResourceTag>.+    resourceArn :: Prelude.Text,+    -- | A list of tag keys associated with tags that need to be removed from the+    -- resource. If you specify a tag key that doesn\'t exist, it\'s ignored.+    -- Although the maximum number of array members is 200, user-tag maximum is+    -- 50. The remaining are reserved for Amazon Web Services use.+    resourceTagKeys :: [Prelude.Text]+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UntagResource' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'resourceArn', 'untagResource_resourceArn' - The Amazon Resource Name (ARN) of the resource. For a list of supported+-- resources, see+-- <https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_ResourceTag.html ResourceTag>.+--+-- 'resourceTagKeys', 'untagResource_resourceTagKeys' - A list of tag keys associated with tags that need to be removed from the+-- resource. If you specify a tag key that doesn\'t exist, it\'s ignored.+-- Although the maximum number of array members is 200, user-tag maximum is+-- 50. The remaining are reserved for Amazon Web Services use.+newUntagResource ::+  -- | 'resourceArn'+  Prelude.Text ->+  UntagResource+newUntagResource pResourceArn_ =+  UntagResource'+    { resourceArn = pResourceArn_,+      resourceTagKeys = Prelude.mempty+    }++-- | The Amazon Resource Name (ARN) of the resource. For a list of supported+-- resources, see+-- <https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_ResourceTag.html ResourceTag>.+untagResource_resourceArn :: Lens.Lens' UntagResource Prelude.Text+untagResource_resourceArn = Lens.lens (\UntagResource' {resourceArn} -> resourceArn) (\s@UntagResource' {} a -> s {resourceArn = a} :: UntagResource)++-- | A list of tag keys associated with tags that need to be removed from the+-- resource. If you specify a tag key that doesn\'t exist, it\'s ignored.+-- Although the maximum number of array members is 200, user-tag maximum is+-- 50. The remaining are reserved for Amazon Web Services use.+untagResource_resourceTagKeys :: Lens.Lens' UntagResource [Prelude.Text]+untagResource_resourceTagKeys = Lens.lens (\UntagResource' {resourceTagKeys} -> resourceTagKeys) (\s@UntagResource' {} a -> s {resourceTagKeys = a} :: UntagResource) Prelude.. Lens.coerced++instance Core.AWSRequest UntagResource where+  type+    AWSResponse UntagResource =+      UntagResourceResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveEmpty+      ( \s h x ->+          UntagResourceResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+      )++instance Prelude.Hashable UntagResource where+  hashWithSalt _salt UntagResource' {..} =+    _salt+      `Prelude.hashWithSalt` resourceArn+      `Prelude.hashWithSalt` resourceTagKeys++instance Prelude.NFData UntagResource where+  rnf UntagResource' {..} =+    Prelude.rnf resourceArn+      `Prelude.seq` Prelude.rnf resourceTagKeys++instance Data.ToHeaders UntagResource where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSInsightsIndexService.UntagResource" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UntagResource where+  toJSON UntagResource' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just ("ResourceArn" Data..= resourceArn),+            Prelude.Just+              ("ResourceTagKeys" Data..= resourceTagKeys)+          ]+      )++instance Data.ToPath UntagResource where+  toPath = Prelude.const "/"++instance Data.ToQuery UntagResource where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUntagResourceResponse' smart constructor.+data UntagResourceResponse = UntagResourceResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UntagResourceResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'untagResourceResponse_httpStatus' - The response's http status code.+newUntagResourceResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UntagResourceResponse+newUntagResourceResponse pHttpStatus_ =+  UntagResourceResponse' {httpStatus = pHttpStatus_}++-- | The response's http status code.+untagResourceResponse_httpStatus :: Lens.Lens' UntagResourceResponse Prelude.Int+untagResourceResponse_httpStatus = Lens.lens (\UntagResourceResponse' {httpStatus} -> httpStatus) (\s@UntagResourceResponse' {} a -> s {httpStatus = a} :: UntagResourceResponse)++instance Prelude.NFData UntagResourceResponse where+  rnf UntagResourceResponse' {..} =+    Prelude.rnf httpStatus
+ gen/Amazonka/CostExplorer/UpdateAnomalyMonitor.hs view
@@ -0,0 +1,192 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.UpdateAnomalyMonitor+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates an existing cost anomaly monitor. The changes made are applied+-- going forward, and doesn\'t change anomalies detected in the past.+module Amazonka.CostExplorer.UpdateAnomalyMonitor+  ( -- * Creating a Request+    UpdateAnomalyMonitor (..),+    newUpdateAnomalyMonitor,++    -- * Request Lenses+    updateAnomalyMonitor_monitorName,+    updateAnomalyMonitor_monitorArn,++    -- * Destructuring the Response+    UpdateAnomalyMonitorResponse (..),+    newUpdateAnomalyMonitorResponse,++    -- * Response Lenses+    updateAnomalyMonitorResponse_httpStatus,+    updateAnomalyMonitorResponse_monitorArn,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CostExplorer.Types+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateAnomalyMonitor' smart constructor.+data UpdateAnomalyMonitor = UpdateAnomalyMonitor'+  { -- | The new name for the cost anomaly monitor.+    monitorName :: Prelude.Maybe Prelude.Text,+    -- | Cost anomaly monitor Amazon Resource Names (ARNs).+    monitorArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateAnomalyMonitor' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'monitorName', 'updateAnomalyMonitor_monitorName' - The new name for the cost anomaly monitor.+--+-- 'monitorArn', 'updateAnomalyMonitor_monitorArn' - Cost anomaly monitor Amazon Resource Names (ARNs).+newUpdateAnomalyMonitor ::+  -- | 'monitorArn'+  Prelude.Text ->+  UpdateAnomalyMonitor+newUpdateAnomalyMonitor pMonitorArn_ =+  UpdateAnomalyMonitor'+    { monitorName =+        Prelude.Nothing,+      monitorArn = pMonitorArn_+    }++-- | The new name for the cost anomaly monitor.+updateAnomalyMonitor_monitorName :: Lens.Lens' UpdateAnomalyMonitor (Prelude.Maybe Prelude.Text)+updateAnomalyMonitor_monitorName = Lens.lens (\UpdateAnomalyMonitor' {monitorName} -> monitorName) (\s@UpdateAnomalyMonitor' {} a -> s {monitorName = a} :: UpdateAnomalyMonitor)++-- | Cost anomaly monitor Amazon Resource Names (ARNs).+updateAnomalyMonitor_monitorArn :: Lens.Lens' UpdateAnomalyMonitor Prelude.Text+updateAnomalyMonitor_monitorArn = Lens.lens (\UpdateAnomalyMonitor' {monitorArn} -> monitorArn) (\s@UpdateAnomalyMonitor' {} a -> s {monitorArn = a} :: UpdateAnomalyMonitor)++instance Core.AWSRequest UpdateAnomalyMonitor where+  type+    AWSResponse UpdateAnomalyMonitor =+      UpdateAnomalyMonitorResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateAnomalyMonitorResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "MonitorArn")+      )++instance Prelude.Hashable UpdateAnomalyMonitor where+  hashWithSalt _salt UpdateAnomalyMonitor' {..} =+    _salt+      `Prelude.hashWithSalt` monitorName+      `Prelude.hashWithSalt` monitorArn++instance Prelude.NFData UpdateAnomalyMonitor where+  rnf UpdateAnomalyMonitor' {..} =+    Prelude.rnf monitorName+      `Prelude.seq` Prelude.rnf monitorArn++instance Data.ToHeaders UpdateAnomalyMonitor where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSInsightsIndexService.UpdateAnomalyMonitor" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateAnomalyMonitor where+  toJSON UpdateAnomalyMonitor' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("MonitorName" Data..=) Prelude.<$> monitorName,+            Prelude.Just ("MonitorArn" Data..= monitorArn)+          ]+      )++instance Data.ToPath UpdateAnomalyMonitor where+  toPath = Prelude.const "/"++instance Data.ToQuery UpdateAnomalyMonitor where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateAnomalyMonitorResponse' smart constructor.+data UpdateAnomalyMonitorResponse = UpdateAnomalyMonitorResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | A cost anomaly monitor ARN.+    monitorArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateAnomalyMonitorResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'updateAnomalyMonitorResponse_httpStatus' - The response's http status code.+--+-- 'monitorArn', 'updateAnomalyMonitorResponse_monitorArn' - A cost anomaly monitor ARN.+newUpdateAnomalyMonitorResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'monitorArn'+  Prelude.Text ->+  UpdateAnomalyMonitorResponse+newUpdateAnomalyMonitorResponse+  pHttpStatus_+  pMonitorArn_ =+    UpdateAnomalyMonitorResponse'+      { httpStatus =+          pHttpStatus_,+        monitorArn = pMonitorArn_+      }++-- | The response's http status code.+updateAnomalyMonitorResponse_httpStatus :: Lens.Lens' UpdateAnomalyMonitorResponse Prelude.Int+updateAnomalyMonitorResponse_httpStatus = Lens.lens (\UpdateAnomalyMonitorResponse' {httpStatus} -> httpStatus) (\s@UpdateAnomalyMonitorResponse' {} a -> s {httpStatus = a} :: UpdateAnomalyMonitorResponse)++-- | A cost anomaly monitor ARN.+updateAnomalyMonitorResponse_monitorArn :: Lens.Lens' UpdateAnomalyMonitorResponse Prelude.Text+updateAnomalyMonitorResponse_monitorArn = Lens.lens (\UpdateAnomalyMonitorResponse' {monitorArn} -> monitorArn) (\s@UpdateAnomalyMonitorResponse' {} a -> s {monitorArn = a} :: UpdateAnomalyMonitorResponse)++instance Prelude.NFData UpdateAnomalyMonitorResponse where+  rnf UpdateAnomalyMonitorResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf monitorArn
+ gen/Amazonka/CostExplorer/UpdateAnomalySubscription.hs view
@@ -0,0 +1,347 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.UpdateAnomalySubscription+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates an existing cost anomaly monitor subscription.+module Amazonka.CostExplorer.UpdateAnomalySubscription+  ( -- * Creating a Request+    UpdateAnomalySubscription (..),+    newUpdateAnomalySubscription,++    -- * Request Lenses+    updateAnomalySubscription_frequency,+    updateAnomalySubscription_monitorArnList,+    updateAnomalySubscription_subscribers,+    updateAnomalySubscription_subscriptionName,+    updateAnomalySubscription_threshold,+    updateAnomalySubscription_thresholdExpression,+    updateAnomalySubscription_subscriptionArn,++    -- * Destructuring the Response+    UpdateAnomalySubscriptionResponse (..),+    newUpdateAnomalySubscriptionResponse,++    -- * Response Lenses+    updateAnomalySubscriptionResponse_httpStatus,+    updateAnomalySubscriptionResponse_subscriptionArn,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CostExplorer.Types+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateAnomalySubscription' smart constructor.+data UpdateAnomalySubscription = UpdateAnomalySubscription'+  { -- | The update to the frequency value that subscribers receive+    -- notifications.+    frequency :: Prelude.Maybe AnomalySubscriptionFrequency,+    -- | A list of cost anomaly monitor ARNs.+    monitorArnList :: Prelude.Maybe [Prelude.Text],+    -- | The update to the subscriber list.+    subscribers :: Prelude.Maybe [Subscriber],+    -- | The new name of the subscription.+    subscriptionName :: Prelude.Maybe Prelude.Text,+    -- | (deprecated)+    --+    -- The update to the threshold value for receiving notifications.+    --+    -- This field has been deprecated. To update a threshold, use+    -- ThresholdExpression. Continued use of Threshold will be treated as+    -- shorthand syntax for a ThresholdExpression.+    threshold :: Prelude.Maybe Prelude.Double,+    -- | The update to the+    -- <https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html Expression>+    -- object used to specify the anomalies that you want to generate alerts+    -- for. This supports dimensions and nested expressions. The supported+    -- dimensions are @ANOMALY_TOTAL_IMPACT_ABSOLUTE@ and+    -- @ANOMALY_TOTAL_IMPACT_PERCENTAGE@. The supported nested expression types+    -- are @AND@ and @OR@. The match option @GREATER_THAN_OR_EQUAL@ is+    -- required. Values must be numbers between 0 and 10,000,000,000.+    --+    -- The following are examples of valid ThresholdExpressions:+    --+    -- -   Absolute threshold:+    --     @{ \"Dimensions\": { \"Key\": \"ANOMALY_TOTAL_IMPACT_ABSOLUTE\", \"MatchOptions\": [ \"GREATER_THAN_OR_EQUAL\" ], \"Values\": [ \"100\" ] } }@+    --+    -- -   Percentage threshold:+    --     @{ \"Dimensions\": { \"Key\": \"ANOMALY_TOTAL_IMPACT_PERCENTAGE\", \"MatchOptions\": [ \"GREATER_THAN_OR_EQUAL\" ], \"Values\": [ \"100\" ] } }@+    --+    -- -   @AND@ two thresholds together:+    --     @{ \"And\": [ { \"Dimensions\": { \"Key\": \"ANOMALY_TOTAL_IMPACT_ABSOLUTE\", \"MatchOptions\": [ \"GREATER_THAN_OR_EQUAL\" ], \"Values\": [ \"100\" ] } }, { \"Dimensions\": { \"Key\": \"ANOMALY_TOTAL_IMPACT_PERCENTAGE\", \"MatchOptions\": [ \"GREATER_THAN_OR_EQUAL\" ], \"Values\": [ \"100\" ] } } ] }@+    --+    -- -   @OR@ two thresholds together:+    --     @{ \"Or\": [ { \"Dimensions\": { \"Key\": \"ANOMALY_TOTAL_IMPACT_ABSOLUTE\", \"MatchOptions\": [ \"GREATER_THAN_OR_EQUAL\" ], \"Values\": [ \"100\" ] } }, { \"Dimensions\": { \"Key\": \"ANOMALY_TOTAL_IMPACT_PERCENTAGE\", \"MatchOptions\": [ \"GREATER_THAN_OR_EQUAL\" ], \"Values\": [ \"100\" ] } } ] }@+    thresholdExpression :: Prelude.Maybe Expression,+    -- | A cost anomaly subscription Amazon Resource Name (ARN).+    subscriptionArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateAnomalySubscription' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'frequency', 'updateAnomalySubscription_frequency' - The update to the frequency value that subscribers receive+-- notifications.+--+-- 'monitorArnList', 'updateAnomalySubscription_monitorArnList' - A list of cost anomaly monitor ARNs.+--+-- 'subscribers', 'updateAnomalySubscription_subscribers' - The update to the subscriber list.+--+-- 'subscriptionName', 'updateAnomalySubscription_subscriptionName' - The new name of the subscription.+--+-- 'threshold', 'updateAnomalySubscription_threshold' - (deprecated)+--+-- The update to the threshold value for receiving notifications.+--+-- This field has been deprecated. To update a threshold, use+-- ThresholdExpression. Continued use of Threshold will be treated as+-- shorthand syntax for a ThresholdExpression.+--+-- 'thresholdExpression', 'updateAnomalySubscription_thresholdExpression' - The update to the+-- <https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html Expression>+-- object used to specify the anomalies that you want to generate alerts+-- for. This supports dimensions and nested expressions. The supported+-- dimensions are @ANOMALY_TOTAL_IMPACT_ABSOLUTE@ and+-- @ANOMALY_TOTAL_IMPACT_PERCENTAGE@. The supported nested expression types+-- are @AND@ and @OR@. The match option @GREATER_THAN_OR_EQUAL@ is+-- required. Values must be numbers between 0 and 10,000,000,000.+--+-- The following are examples of valid ThresholdExpressions:+--+-- -   Absolute threshold:+--     @{ \"Dimensions\": { \"Key\": \"ANOMALY_TOTAL_IMPACT_ABSOLUTE\", \"MatchOptions\": [ \"GREATER_THAN_OR_EQUAL\" ], \"Values\": [ \"100\" ] } }@+--+-- -   Percentage threshold:+--     @{ \"Dimensions\": { \"Key\": \"ANOMALY_TOTAL_IMPACT_PERCENTAGE\", \"MatchOptions\": [ \"GREATER_THAN_OR_EQUAL\" ], \"Values\": [ \"100\" ] } }@+--+-- -   @AND@ two thresholds together:+--     @{ \"And\": [ { \"Dimensions\": { \"Key\": \"ANOMALY_TOTAL_IMPACT_ABSOLUTE\", \"MatchOptions\": [ \"GREATER_THAN_OR_EQUAL\" ], \"Values\": [ \"100\" ] } }, { \"Dimensions\": { \"Key\": \"ANOMALY_TOTAL_IMPACT_PERCENTAGE\", \"MatchOptions\": [ \"GREATER_THAN_OR_EQUAL\" ], \"Values\": [ \"100\" ] } } ] }@+--+-- -   @OR@ two thresholds together:+--     @{ \"Or\": [ { \"Dimensions\": { \"Key\": \"ANOMALY_TOTAL_IMPACT_ABSOLUTE\", \"MatchOptions\": [ \"GREATER_THAN_OR_EQUAL\" ], \"Values\": [ \"100\" ] } }, { \"Dimensions\": { \"Key\": \"ANOMALY_TOTAL_IMPACT_PERCENTAGE\", \"MatchOptions\": [ \"GREATER_THAN_OR_EQUAL\" ], \"Values\": [ \"100\" ] } } ] }@+--+-- 'subscriptionArn', 'updateAnomalySubscription_subscriptionArn' - A cost anomaly subscription Amazon Resource Name (ARN).+newUpdateAnomalySubscription ::+  -- | 'subscriptionArn'+  Prelude.Text ->+  UpdateAnomalySubscription+newUpdateAnomalySubscription pSubscriptionArn_ =+  UpdateAnomalySubscription'+    { frequency =+        Prelude.Nothing,+      monitorArnList = Prelude.Nothing,+      subscribers = Prelude.Nothing,+      subscriptionName = Prelude.Nothing,+      threshold = Prelude.Nothing,+      thresholdExpression = Prelude.Nothing,+      subscriptionArn = pSubscriptionArn_+    }++-- | The update to the frequency value that subscribers receive+-- notifications.+updateAnomalySubscription_frequency :: Lens.Lens' UpdateAnomalySubscription (Prelude.Maybe AnomalySubscriptionFrequency)+updateAnomalySubscription_frequency = Lens.lens (\UpdateAnomalySubscription' {frequency} -> frequency) (\s@UpdateAnomalySubscription' {} a -> s {frequency = a} :: UpdateAnomalySubscription)++-- | A list of cost anomaly monitor ARNs.+updateAnomalySubscription_monitorArnList :: Lens.Lens' UpdateAnomalySubscription (Prelude.Maybe [Prelude.Text])+updateAnomalySubscription_monitorArnList = Lens.lens (\UpdateAnomalySubscription' {monitorArnList} -> monitorArnList) (\s@UpdateAnomalySubscription' {} a -> s {monitorArnList = a} :: UpdateAnomalySubscription) Prelude.. Lens.mapping Lens.coerced++-- | The update to the subscriber list.+updateAnomalySubscription_subscribers :: Lens.Lens' UpdateAnomalySubscription (Prelude.Maybe [Subscriber])+updateAnomalySubscription_subscribers = Lens.lens (\UpdateAnomalySubscription' {subscribers} -> subscribers) (\s@UpdateAnomalySubscription' {} a -> s {subscribers = a} :: UpdateAnomalySubscription) Prelude.. Lens.mapping Lens.coerced++-- | The new name of the subscription.+updateAnomalySubscription_subscriptionName :: Lens.Lens' UpdateAnomalySubscription (Prelude.Maybe Prelude.Text)+updateAnomalySubscription_subscriptionName = Lens.lens (\UpdateAnomalySubscription' {subscriptionName} -> subscriptionName) (\s@UpdateAnomalySubscription' {} a -> s {subscriptionName = a} :: UpdateAnomalySubscription)++-- | (deprecated)+--+-- The update to the threshold value for receiving notifications.+--+-- This field has been deprecated. To update a threshold, use+-- ThresholdExpression. Continued use of Threshold will be treated as+-- shorthand syntax for a ThresholdExpression.+updateAnomalySubscription_threshold :: Lens.Lens' UpdateAnomalySubscription (Prelude.Maybe Prelude.Double)+updateAnomalySubscription_threshold = Lens.lens (\UpdateAnomalySubscription' {threshold} -> threshold) (\s@UpdateAnomalySubscription' {} a -> s {threshold = a} :: UpdateAnomalySubscription)++-- | The update to the+-- <https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html Expression>+-- object used to specify the anomalies that you want to generate alerts+-- for. This supports dimensions and nested expressions. The supported+-- dimensions are @ANOMALY_TOTAL_IMPACT_ABSOLUTE@ and+-- @ANOMALY_TOTAL_IMPACT_PERCENTAGE@. The supported nested expression types+-- are @AND@ and @OR@. The match option @GREATER_THAN_OR_EQUAL@ is+-- required. Values must be numbers between 0 and 10,000,000,000.+--+-- The following are examples of valid ThresholdExpressions:+--+-- -   Absolute threshold:+--     @{ \"Dimensions\": { \"Key\": \"ANOMALY_TOTAL_IMPACT_ABSOLUTE\", \"MatchOptions\": [ \"GREATER_THAN_OR_EQUAL\" ], \"Values\": [ \"100\" ] } }@+--+-- -   Percentage threshold:+--     @{ \"Dimensions\": { \"Key\": \"ANOMALY_TOTAL_IMPACT_PERCENTAGE\", \"MatchOptions\": [ \"GREATER_THAN_OR_EQUAL\" ], \"Values\": [ \"100\" ] } }@+--+-- -   @AND@ two thresholds together:+--     @{ \"And\": [ { \"Dimensions\": { \"Key\": \"ANOMALY_TOTAL_IMPACT_ABSOLUTE\", \"MatchOptions\": [ \"GREATER_THAN_OR_EQUAL\" ], \"Values\": [ \"100\" ] } }, { \"Dimensions\": { \"Key\": \"ANOMALY_TOTAL_IMPACT_PERCENTAGE\", \"MatchOptions\": [ \"GREATER_THAN_OR_EQUAL\" ], \"Values\": [ \"100\" ] } } ] }@+--+-- -   @OR@ two thresholds together:+--     @{ \"Or\": [ { \"Dimensions\": { \"Key\": \"ANOMALY_TOTAL_IMPACT_ABSOLUTE\", \"MatchOptions\": [ \"GREATER_THAN_OR_EQUAL\" ], \"Values\": [ \"100\" ] } }, { \"Dimensions\": { \"Key\": \"ANOMALY_TOTAL_IMPACT_PERCENTAGE\", \"MatchOptions\": [ \"GREATER_THAN_OR_EQUAL\" ], \"Values\": [ \"100\" ] } } ] }@+updateAnomalySubscription_thresholdExpression :: Lens.Lens' UpdateAnomalySubscription (Prelude.Maybe Expression)+updateAnomalySubscription_thresholdExpression = Lens.lens (\UpdateAnomalySubscription' {thresholdExpression} -> thresholdExpression) (\s@UpdateAnomalySubscription' {} a -> s {thresholdExpression = a} :: UpdateAnomalySubscription)++-- | A cost anomaly subscription Amazon Resource Name (ARN).+updateAnomalySubscription_subscriptionArn :: Lens.Lens' UpdateAnomalySubscription Prelude.Text+updateAnomalySubscription_subscriptionArn = Lens.lens (\UpdateAnomalySubscription' {subscriptionArn} -> subscriptionArn) (\s@UpdateAnomalySubscription' {} a -> s {subscriptionArn = a} :: UpdateAnomalySubscription)++instance Core.AWSRequest UpdateAnomalySubscription where+  type+    AWSResponse UpdateAnomalySubscription =+      UpdateAnomalySubscriptionResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateAnomalySubscriptionResponse'+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))+            Prelude.<*> (x Data..:> "SubscriptionArn")+      )++instance Prelude.Hashable UpdateAnomalySubscription where+  hashWithSalt _salt UpdateAnomalySubscription' {..} =+    _salt+      `Prelude.hashWithSalt` frequency+      `Prelude.hashWithSalt` monitorArnList+      `Prelude.hashWithSalt` subscribers+      `Prelude.hashWithSalt` subscriptionName+      `Prelude.hashWithSalt` threshold+      `Prelude.hashWithSalt` thresholdExpression+      `Prelude.hashWithSalt` subscriptionArn++instance Prelude.NFData UpdateAnomalySubscription where+  rnf UpdateAnomalySubscription' {..} =+    Prelude.rnf frequency+      `Prelude.seq` Prelude.rnf monitorArnList+      `Prelude.seq` Prelude.rnf subscribers+      `Prelude.seq` Prelude.rnf subscriptionName+      `Prelude.seq` Prelude.rnf threshold+      `Prelude.seq` Prelude.rnf thresholdExpression+      `Prelude.seq` Prelude.rnf subscriptionArn++instance Data.ToHeaders UpdateAnomalySubscription where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSInsightsIndexService.UpdateAnomalySubscription" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateAnomalySubscription where+  toJSON UpdateAnomalySubscription' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("Frequency" Data..=) Prelude.<$> frequency,+            ("MonitorArnList" Data..=)+              Prelude.<$> monitorArnList,+            ("Subscribers" Data..=) Prelude.<$> subscribers,+            ("SubscriptionName" Data..=)+              Prelude.<$> subscriptionName,+            ("Threshold" Data..=) Prelude.<$> threshold,+            ("ThresholdExpression" Data..=)+              Prelude.<$> thresholdExpression,+            Prelude.Just+              ("SubscriptionArn" Data..= subscriptionArn)+          ]+      )++instance Data.ToPath UpdateAnomalySubscription where+  toPath = Prelude.const "/"++instance Data.ToQuery UpdateAnomalySubscription where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateAnomalySubscriptionResponse' smart constructor.+data UpdateAnomalySubscriptionResponse = UpdateAnomalySubscriptionResponse'+  { -- | The response's http status code.+    httpStatus :: Prelude.Int,+    -- | A cost anomaly subscription ARN.+    subscriptionArn :: Prelude.Text+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateAnomalySubscriptionResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'httpStatus', 'updateAnomalySubscriptionResponse_httpStatus' - The response's http status code.+--+-- 'subscriptionArn', 'updateAnomalySubscriptionResponse_subscriptionArn' - A cost anomaly subscription ARN.+newUpdateAnomalySubscriptionResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  -- | 'subscriptionArn'+  Prelude.Text ->+  UpdateAnomalySubscriptionResponse+newUpdateAnomalySubscriptionResponse+  pHttpStatus_+  pSubscriptionArn_ =+    UpdateAnomalySubscriptionResponse'+      { httpStatus =+          pHttpStatus_,+        subscriptionArn = pSubscriptionArn_+      }++-- | The response's http status code.+updateAnomalySubscriptionResponse_httpStatus :: Lens.Lens' UpdateAnomalySubscriptionResponse Prelude.Int+updateAnomalySubscriptionResponse_httpStatus = Lens.lens (\UpdateAnomalySubscriptionResponse' {httpStatus} -> httpStatus) (\s@UpdateAnomalySubscriptionResponse' {} a -> s {httpStatus = a} :: UpdateAnomalySubscriptionResponse)++-- | A cost anomaly subscription ARN.+updateAnomalySubscriptionResponse_subscriptionArn :: Lens.Lens' UpdateAnomalySubscriptionResponse Prelude.Text+updateAnomalySubscriptionResponse_subscriptionArn = Lens.lens (\UpdateAnomalySubscriptionResponse' {subscriptionArn} -> subscriptionArn) (\s@UpdateAnomalySubscriptionResponse' {} a -> s {subscriptionArn = a} :: UpdateAnomalySubscriptionResponse)++instance+  Prelude.NFData+    UpdateAnomalySubscriptionResponse+  where+  rnf UpdateAnomalySubscriptionResponse' {..} =+    Prelude.rnf httpStatus+      `Prelude.seq` Prelude.rnf subscriptionArn
+ gen/Amazonka/CostExplorer/UpdateCostAllocationTagsStatus.hs view
@@ -0,0 +1,209 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.UpdateCostAllocationTagsStatus+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates status for cost allocation tags in bulk, with maximum batch size+-- of 20. If the tag status that\'s updated is the same as the existing tag+-- status, the request doesn\'t fail. Instead, it doesn\'t have any effect+-- on the tag status (for example, activating the active tag).+module Amazonka.CostExplorer.UpdateCostAllocationTagsStatus+  ( -- * Creating a Request+    UpdateCostAllocationTagsStatus (..),+    newUpdateCostAllocationTagsStatus,++    -- * Request Lenses+    updateCostAllocationTagsStatus_costAllocationTagsStatus,++    -- * Destructuring the Response+    UpdateCostAllocationTagsStatusResponse (..),+    newUpdateCostAllocationTagsStatusResponse,++    -- * Response Lenses+    updateCostAllocationTagsStatusResponse_errors,+    updateCostAllocationTagsStatusResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CostExplorer.Types+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateCostAllocationTagsStatus' smart constructor.+data UpdateCostAllocationTagsStatus = UpdateCostAllocationTagsStatus'+  { -- | The list of @CostAllocationTagStatusEntry@ objects that are used to+    -- update cost allocation tags status for this request.+    costAllocationTagsStatus :: Prelude.NonEmpty CostAllocationTagStatusEntry+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateCostAllocationTagsStatus' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'costAllocationTagsStatus', 'updateCostAllocationTagsStatus_costAllocationTagsStatus' - The list of @CostAllocationTagStatusEntry@ objects that are used to+-- update cost allocation tags status for this request.+newUpdateCostAllocationTagsStatus ::+  -- | 'costAllocationTagsStatus'+  Prelude.NonEmpty CostAllocationTagStatusEntry ->+  UpdateCostAllocationTagsStatus+newUpdateCostAllocationTagsStatus+  pCostAllocationTagsStatus_ =+    UpdateCostAllocationTagsStatus'+      { costAllocationTagsStatus =+          Lens.coerced+            Lens.# pCostAllocationTagsStatus_+      }++-- | The list of @CostAllocationTagStatusEntry@ objects that are used to+-- update cost allocation tags status for this request.+updateCostAllocationTagsStatus_costAllocationTagsStatus :: Lens.Lens' UpdateCostAllocationTagsStatus (Prelude.NonEmpty CostAllocationTagStatusEntry)+updateCostAllocationTagsStatus_costAllocationTagsStatus = Lens.lens (\UpdateCostAllocationTagsStatus' {costAllocationTagsStatus} -> costAllocationTagsStatus) (\s@UpdateCostAllocationTagsStatus' {} a -> s {costAllocationTagsStatus = a} :: UpdateCostAllocationTagsStatus) Prelude.. Lens.coerced++instance+  Core.AWSRequest+    UpdateCostAllocationTagsStatus+  where+  type+    AWSResponse UpdateCostAllocationTagsStatus =+      UpdateCostAllocationTagsStatusResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateCostAllocationTagsStatusResponse'+            Prelude.<$> (x Data..?> "Errors" Core..!@ Prelude.mempty)+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    UpdateCostAllocationTagsStatus+  where+  hashWithSalt+    _salt+    UpdateCostAllocationTagsStatus' {..} =+      _salt+        `Prelude.hashWithSalt` costAllocationTagsStatus++instance+  Prelude.NFData+    UpdateCostAllocationTagsStatus+  where+  rnf UpdateCostAllocationTagsStatus' {..} =+    Prelude.rnf costAllocationTagsStatus++instance+  Data.ToHeaders+    UpdateCostAllocationTagsStatus+  where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSInsightsIndexService.UpdateCostAllocationTagsStatus" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateCostAllocationTagsStatus where+  toJSON UpdateCostAllocationTagsStatus' {..} =+    Data.object+      ( Prelude.catMaybes+          [ Prelude.Just+              ( "CostAllocationTagsStatus"+                  Data..= costAllocationTagsStatus+              )+          ]+      )++instance Data.ToPath UpdateCostAllocationTagsStatus where+  toPath = Prelude.const "/"++instance Data.ToQuery UpdateCostAllocationTagsStatus where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateCostAllocationTagsStatusResponse' smart constructor.+data UpdateCostAllocationTagsStatusResponse = UpdateCostAllocationTagsStatusResponse'+  { -- | A list of @UpdateCostAllocationTagsStatusError@ objects with error+    -- details about each cost allocation tag that can\'t be updated. If+    -- there\'s no failure, an empty array returns.+    errors :: Prelude.Maybe [UpdateCostAllocationTagsStatusError],+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateCostAllocationTagsStatusResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'errors', 'updateCostAllocationTagsStatusResponse_errors' - A list of @UpdateCostAllocationTagsStatusError@ objects with error+-- details about each cost allocation tag that can\'t be updated. If+-- there\'s no failure, an empty array returns.+--+-- 'httpStatus', 'updateCostAllocationTagsStatusResponse_httpStatus' - The response's http status code.+newUpdateCostAllocationTagsStatusResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateCostAllocationTagsStatusResponse+newUpdateCostAllocationTagsStatusResponse+  pHttpStatus_ =+    UpdateCostAllocationTagsStatusResponse'+      { errors =+          Prelude.Nothing,+        httpStatus = pHttpStatus_+      }++-- | A list of @UpdateCostAllocationTagsStatusError@ objects with error+-- details about each cost allocation tag that can\'t be updated. If+-- there\'s no failure, an empty array returns.+updateCostAllocationTagsStatusResponse_errors :: Lens.Lens' UpdateCostAllocationTagsStatusResponse (Prelude.Maybe [UpdateCostAllocationTagsStatusError])+updateCostAllocationTagsStatusResponse_errors = Lens.lens (\UpdateCostAllocationTagsStatusResponse' {errors} -> errors) (\s@UpdateCostAllocationTagsStatusResponse' {} a -> s {errors = a} :: UpdateCostAllocationTagsStatusResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+updateCostAllocationTagsStatusResponse_httpStatus :: Lens.Lens' UpdateCostAllocationTagsStatusResponse Prelude.Int+updateCostAllocationTagsStatusResponse_httpStatus = Lens.lens (\UpdateCostAllocationTagsStatusResponse' {httpStatus} -> httpStatus) (\s@UpdateCostAllocationTagsStatusResponse' {} a -> s {httpStatus = a} :: UpdateCostAllocationTagsStatusResponse)++instance+  Prelude.NFData+    UpdateCostAllocationTagsStatusResponse+  where+  rnf UpdateCostAllocationTagsStatusResponse' {..} =+    Prelude.rnf errors+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/CostExplorer/UpdateCostCategoryDefinition.hs view
@@ -0,0 +1,291 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE NamedFieldPuns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.UpdateCostCategoryDefinition+-- Copyright   : (c) 2013-2023 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates an existing Cost Category. Changes made to the Cost Category+-- rules will be used to categorize the current month’s expenses and future+-- expenses. This won’t change categorization for the previous months.+module Amazonka.CostExplorer.UpdateCostCategoryDefinition+  ( -- * Creating a Request+    UpdateCostCategoryDefinition (..),+    newUpdateCostCategoryDefinition,++    -- * Request Lenses+    updateCostCategoryDefinition_defaultValue,+    updateCostCategoryDefinition_effectiveStart,+    updateCostCategoryDefinition_splitChargeRules,+    updateCostCategoryDefinition_costCategoryArn,+    updateCostCategoryDefinition_ruleVersion,+    updateCostCategoryDefinition_rules,++    -- * Destructuring the Response+    UpdateCostCategoryDefinitionResponse (..),+    newUpdateCostCategoryDefinitionResponse,++    -- * Response Lenses+    updateCostCategoryDefinitionResponse_costCategoryArn,+    updateCostCategoryDefinitionResponse_effectiveStart,+    updateCostCategoryDefinitionResponse_httpStatus,+  )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CostExplorer.Types+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newUpdateCostCategoryDefinition' smart constructor.+data UpdateCostCategoryDefinition = UpdateCostCategoryDefinition'+  { defaultValue :: Prelude.Maybe Prelude.Text,+    -- | The Cost Category\'s effective start date. It can only be a billing+    -- start date (first day of the month). If the date isn\'t provided, it\'s+    -- the first day of the current month. Dates can\'t be before the previous+    -- twelve months, or in the future.+    effectiveStart :: Prelude.Maybe Prelude.Text,+    -- | The split charge rules used to allocate your charges between your Cost+    -- Category values.+    splitChargeRules :: Prelude.Maybe (Prelude.NonEmpty CostCategorySplitChargeRule),+    -- | The unique identifier for your Cost Category.+    costCategoryArn :: Prelude.Text,+    ruleVersion :: CostCategoryRuleVersion,+    -- | The @Expression@ object used to categorize costs. For more information,+    -- see+    -- <https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_CostCategoryRule.html CostCategoryRule>+    -- .+    rules :: Prelude.NonEmpty CostCategoryRule+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateCostCategoryDefinition' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'defaultValue', 'updateCostCategoryDefinition_defaultValue' - Undocumented member.+--+-- 'effectiveStart', 'updateCostCategoryDefinition_effectiveStart' - The Cost Category\'s effective start date. It can only be a billing+-- start date (first day of the month). If the date isn\'t provided, it\'s+-- the first day of the current month. Dates can\'t be before the previous+-- twelve months, or in the future.+--+-- 'splitChargeRules', 'updateCostCategoryDefinition_splitChargeRules' - The split charge rules used to allocate your charges between your Cost+-- Category values.+--+-- 'costCategoryArn', 'updateCostCategoryDefinition_costCategoryArn' - The unique identifier for your Cost Category.+--+-- 'ruleVersion', 'updateCostCategoryDefinition_ruleVersion' - Undocumented member.+--+-- 'rules', 'updateCostCategoryDefinition_rules' - The @Expression@ object used to categorize costs. For more information,+-- see+-- <https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_CostCategoryRule.html CostCategoryRule>+-- .+newUpdateCostCategoryDefinition ::+  -- | 'costCategoryArn'+  Prelude.Text ->+  -- | 'ruleVersion'+  CostCategoryRuleVersion ->+  -- | 'rules'+  Prelude.NonEmpty CostCategoryRule ->+  UpdateCostCategoryDefinition+newUpdateCostCategoryDefinition+  pCostCategoryArn_+  pRuleVersion_+  pRules_ =+    UpdateCostCategoryDefinition'+      { defaultValue =+          Prelude.Nothing,+        effectiveStart = Prelude.Nothing,+        splitChargeRules = Prelude.Nothing,+        costCategoryArn = pCostCategoryArn_,+        ruleVersion = pRuleVersion_,+        rules = Lens.coerced Lens.# pRules_+      }++-- | Undocumented member.+updateCostCategoryDefinition_defaultValue :: Lens.Lens' UpdateCostCategoryDefinition (Prelude.Maybe Prelude.Text)+updateCostCategoryDefinition_defaultValue = Lens.lens (\UpdateCostCategoryDefinition' {defaultValue} -> defaultValue) (\s@UpdateCostCategoryDefinition' {} a -> s {defaultValue = a} :: UpdateCostCategoryDefinition)++-- | The Cost Category\'s effective start date. It can only be a billing+-- start date (first day of the month). If the date isn\'t provided, it\'s+-- the first day of the current month. Dates can\'t be before the previous+-- twelve months, or in the future.+updateCostCategoryDefinition_effectiveStart :: Lens.Lens' UpdateCostCategoryDefinition (Prelude.Maybe Prelude.Text)+updateCostCategoryDefinition_effectiveStart = Lens.lens (\UpdateCostCategoryDefinition' {effectiveStart} -> effectiveStart) (\s@UpdateCostCategoryDefinition' {} a -> s {effectiveStart = a} :: UpdateCostCategoryDefinition)++-- | The split charge rules used to allocate your charges between your Cost+-- Category values.+updateCostCategoryDefinition_splitChargeRules :: Lens.Lens' UpdateCostCategoryDefinition (Prelude.Maybe (Prelude.NonEmpty CostCategorySplitChargeRule))+updateCostCategoryDefinition_splitChargeRules = Lens.lens (\UpdateCostCategoryDefinition' {splitChargeRules} -> splitChargeRules) (\s@UpdateCostCategoryDefinition' {} a -> s {splitChargeRules = a} :: UpdateCostCategoryDefinition) Prelude.. Lens.mapping Lens.coerced++-- | The unique identifier for your Cost Category.+updateCostCategoryDefinition_costCategoryArn :: Lens.Lens' UpdateCostCategoryDefinition Prelude.Text+updateCostCategoryDefinition_costCategoryArn = Lens.lens (\UpdateCostCategoryDefinition' {costCategoryArn} -> costCategoryArn) (\s@UpdateCostCategoryDefinition' {} a -> s {costCategoryArn = a} :: UpdateCostCategoryDefinition)++-- | Undocumented member.+updateCostCategoryDefinition_ruleVersion :: Lens.Lens' UpdateCostCategoryDefinition CostCategoryRuleVersion+updateCostCategoryDefinition_ruleVersion = Lens.lens (\UpdateCostCategoryDefinition' {ruleVersion} -> ruleVersion) (\s@UpdateCostCategoryDefinition' {} a -> s {ruleVersion = a} :: UpdateCostCategoryDefinition)++-- | The @Expression@ object used to categorize costs. For more information,+-- see+-- <https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_CostCategoryRule.html CostCategoryRule>+-- .+updateCostCategoryDefinition_rules :: Lens.Lens' UpdateCostCategoryDefinition (Prelude.NonEmpty CostCategoryRule)+updateCostCategoryDefinition_rules = Lens.lens (\UpdateCostCategoryDefinition' {rules} -> rules) (\s@UpdateCostCategoryDefinition' {} a -> s {rules = a} :: UpdateCostCategoryDefinition) Prelude.. Lens.coerced++instance Core.AWSRequest UpdateCostCategoryDefinition where+  type+    AWSResponse UpdateCostCategoryDefinition =+      UpdateCostCategoryDefinitionResponse+  request overrides =+    Request.postJSON (overrides defaultService)+  response =+    Response.receiveJSON+      ( \s h x ->+          UpdateCostCategoryDefinitionResponse'+            Prelude.<$> (x Data..?> "CostCategoryArn")+            Prelude.<*> (x Data..?> "EffectiveStart")+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+      )++instance+  Prelude.Hashable+    UpdateCostCategoryDefinition+  where+  hashWithSalt _salt UpdateCostCategoryDefinition' {..} =+    _salt+      `Prelude.hashWithSalt` defaultValue+      `Prelude.hashWithSalt` effectiveStart+      `Prelude.hashWithSalt` splitChargeRules+      `Prelude.hashWithSalt` costCategoryArn+      `Prelude.hashWithSalt` ruleVersion+      `Prelude.hashWithSalt` rules++instance Prelude.NFData UpdateCostCategoryDefinition where+  rnf UpdateCostCategoryDefinition' {..} =+    Prelude.rnf defaultValue+      `Prelude.seq` Prelude.rnf effectiveStart+      `Prelude.seq` Prelude.rnf splitChargeRules+      `Prelude.seq` Prelude.rnf costCategoryArn+      `Prelude.seq` Prelude.rnf ruleVersion+      `Prelude.seq` Prelude.rnf rules++instance Data.ToHeaders UpdateCostCategoryDefinition where+  toHeaders =+    Prelude.const+      ( Prelude.mconcat+          [ "X-Amz-Target"+              Data.=# ( "AWSInsightsIndexService.UpdateCostCategoryDefinition" ::+                          Prelude.ByteString+                      ),+            "Content-Type"+              Data.=# ( "application/x-amz-json-1.1" ::+                          Prelude.ByteString+                      )+          ]+      )++instance Data.ToJSON UpdateCostCategoryDefinition where+  toJSON UpdateCostCategoryDefinition' {..} =+    Data.object+      ( Prelude.catMaybes+          [ ("DefaultValue" Data..=) Prelude.<$> defaultValue,+            ("EffectiveStart" Data..=)+              Prelude.<$> effectiveStart,+            ("SplitChargeRules" Data..=)+              Prelude.<$> splitChargeRules,+            Prelude.Just+              ("CostCategoryArn" Data..= costCategoryArn),+            Prelude.Just ("RuleVersion" Data..= ruleVersion),+            Prelude.Just ("Rules" Data..= rules)+          ]+      )++instance Data.ToPath UpdateCostCategoryDefinition where+  toPath = Prelude.const "/"++instance Data.ToQuery UpdateCostCategoryDefinition where+  toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newUpdateCostCategoryDefinitionResponse' smart constructor.+data UpdateCostCategoryDefinitionResponse = UpdateCostCategoryDefinitionResponse'+  { -- | The unique identifier for your Cost Category.+    costCategoryArn :: Prelude.Maybe Prelude.Text,+    -- | The Cost Category\'s effective start date. It can only be a billing+    -- start date (first day of the month).+    effectiveStart :: Prelude.Maybe Prelude.Text,+    -- | The response's http status code.+    httpStatus :: Prelude.Int+  }+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'UpdateCostCategoryDefinitionResponse' with all optional fields omitted.+--+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.+--+-- The following record fields are available, with the corresponding lenses provided+-- for backwards compatibility:+--+-- 'costCategoryArn', 'updateCostCategoryDefinitionResponse_costCategoryArn' - The unique identifier for your Cost Category.+--+-- 'effectiveStart', 'updateCostCategoryDefinitionResponse_effectiveStart' - The Cost Category\'s effective start date. It can only be a billing+-- start date (first day of the month).+--+-- 'httpStatus', 'updateCostCategoryDefinitionResponse_httpStatus' - The response's http status code.+newUpdateCostCategoryDefinitionResponse ::+  -- | 'httpStatus'+  Prelude.Int ->+  UpdateCostCategoryDefinitionResponse+newUpdateCostCategoryDefinitionResponse pHttpStatus_ =+  UpdateCostCategoryDefinitionResponse'+    { costCategoryArn =+        Prelude.Nothing,+      effectiveStart = Prelude.Nothing,+      httpStatus = pHttpStatus_+    }++-- | The unique identifier for your Cost Category.+updateCostCategoryDefinitionResponse_costCategoryArn :: Lens.Lens' UpdateCostCategoryDefinitionResponse (Prelude.Maybe Prelude.Text)+updateCostCategoryDefinitionResponse_costCategoryArn = Lens.lens (\UpdateCostCategoryDefinitionResponse' {costCategoryArn} -> costCategoryArn) (\s@UpdateCostCategoryDefinitionResponse' {} a -> s {costCategoryArn = a} :: UpdateCostCategoryDefinitionResponse)++-- | The Cost Category\'s effective start date. It can only be a billing+-- start date (first day of the month).+updateCostCategoryDefinitionResponse_effectiveStart :: Lens.Lens' UpdateCostCategoryDefinitionResponse (Prelude.Maybe Prelude.Text)+updateCostCategoryDefinitionResponse_effectiveStart = Lens.lens (\UpdateCostCategoryDefinitionResponse' {effectiveStart} -> effectiveStart) (\s@UpdateCostCategoryDefinitionResponse' {} a -> s {effectiveStart = a} :: UpdateCostCategoryDefinitionResponse)++-- | The response's http status code.+updateCostCategoryDefinitionResponse_httpStatus :: Lens.Lens' UpdateCostCategoryDefinitionResponse Prelude.Int+updateCostCategoryDefinitionResponse_httpStatus = Lens.lens (\UpdateCostCategoryDefinitionResponse' {httpStatus} -> httpStatus) (\s@UpdateCostCategoryDefinitionResponse' {} a -> s {httpStatus = a} :: UpdateCostCategoryDefinitionResponse)++instance+  Prelude.NFData+    UpdateCostCategoryDefinitionResponse+  where+  rnf UpdateCostCategoryDefinitionResponse' {..} =+    Prelude.rnf costCategoryArn+      `Prelude.seq` Prelude.rnf effectiveStart+      `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/CostExplorer/Waiters.hs view
@@ -0,0 +1,24 @@+{-# LANGUAGE DisambiguateRecordFields #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Amazonka.CostExplorer.Waiters+-- 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.CostExplorer.Waiters where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import Amazonka.CostExplorer.Lens+import Amazonka.CostExplorer.Types+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude
− gen/Network/AWS/CostExplorer.hs
@@ -1,335 +0,0 @@-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}---- Derived from AWS service descriptions, licensed under Apache 2.0.---- |--- Module      : Network.AWS.CostExplorer--- Copyright   : (c) 2013-2018 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)------ The Cost Explorer API allows you to programmatically query your cost and usage data. You can query for aggregated data such as total monthly costs or total daily usage. You can also query for granular data, such as the number of daily write operations for Amazon DynamoDB database tables in your production environment.--------- Service Endpoint------ The Cost Explorer API provides the following endpoint:------     * https://ce.us-east-1.amazonaws.com------------ For information about costs associated with the Cost Explorer API, see <https://aws.amazon.com/aws-cost-management/pricing/ AWS Cost Management Pricing> .----module Network.AWS.CostExplorer-    (-    -- * Service Configuration-      costExplorer--    -- * Errors-    -- $errors--    -- ** BillExpirationException-    , _BillExpirationException--    -- ** RequestChangedException-    , _RequestChangedException--    -- ** InvalidNextTokenException-    , _InvalidNextTokenException--    -- ** DataUnavailableException-    , _DataUnavailableException--    -- ** LimitExceededException-    , _LimitExceededException--    -- * Waiters-    -- $waiters--    -- * Operations-    -- $operations--    -- ** GetReservationUtilization-    , module Network.AWS.CostExplorer.GetReservationUtilization--    -- ** GetTags-    , module Network.AWS.CostExplorer.GetTags--    -- ** GetReservationCoverage-    , module Network.AWS.CostExplorer.GetReservationCoverage--    -- ** GetDimensionValues-    , module Network.AWS.CostExplorer.GetDimensionValues--    -- ** GetReservationPurchaseRecommendation-    , module Network.AWS.CostExplorer.GetReservationPurchaseRecommendation--    -- ** GetCostAndUsage-    , module Network.AWS.CostExplorer.GetCostAndUsage--    -- * Types--    -- ** AccountScope-    , AccountScope (..)--    -- ** Context-    , Context (..)--    -- ** Dimension-    , Dimension (..)--    -- ** Granularity-    , Granularity (..)--    -- ** GroupDefinitionType-    , GroupDefinitionType (..)--    -- ** LookbackPeriodInDays-    , LookbackPeriodInDays (..)--    -- ** OfferingClass-    , OfferingClass (..)--    -- ** PaymentOption-    , PaymentOption (..)--    -- ** TermInYears-    , TermInYears (..)--    -- ** Coverage-    , Coverage-    , coverage-    , cCoverageHours--    -- ** CoverageByTime-    , CoverageByTime-    , coverageByTime-    , cbtGroups-    , cbtTimePeriod-    , cbtTotal--    -- ** CoverageHours-    , CoverageHours-    , coverageHours-    , chCoverageHoursPercentage-    , chOnDemandHours-    , chTotalRunningHours-    , chReservedHours--    -- ** DateInterval-    , DateInterval-    , dateInterval-    , diStart-    , diEnd--    -- ** DimensionValues-    , DimensionValues-    , dimensionValues-    , dvValues-    , dvKey--    -- ** DimensionValuesWithAttributes-    , DimensionValuesWithAttributes-    , dimensionValuesWithAttributes-    , dvwaValue-    , dvwaAttributes--    -- ** EC2InstanceDetails-    , EC2InstanceDetails-    , ec2InstanceDetails-    , eidCurrentGeneration-    , eidPlatform-    , eidFamily-    , eidInstanceType-    , eidAvailabilityZone-    , eidSizeFlexEligible-    , eidTenancy-    , eidRegion--    -- ** EC2Specification-    , EC2Specification-    , ec2Specification-    , esOfferingClass--    -- ** Expression-    , Expression-    , expression-    , eNot-    , eAnd-    , eOr-    , eDimensions-    , eTags--    -- ** Group-    , Group-    , group'-    , gMetrics-    , gKeys--    -- ** GroupDefinition-    , GroupDefinition-    , groupDefinition-    , gdKey-    , gdType--    -- ** InstanceDetails-    , InstanceDetails-    , instanceDetails-    , idRDSInstanceDetails-    , idEC2InstanceDetails--    -- ** MetricValue-    , MetricValue-    , metricValue-    , mvAmount-    , mvUnit--    -- ** RDSInstanceDetails-    , RDSInstanceDetails-    , rdsInstanceDetails-    , ridCurrentGeneration-    , ridDeploymentOption-    , ridFamily-    , ridInstanceType-    , ridLicenseModel-    , ridSizeFlexEligible-    , ridRegion-    , ridDatabaseEngine--    -- ** ReservationAggregates-    , ReservationAggregates-    , reservationAggregates-    , raPurchasedHours-    , raTotalActualHours-    , raUtilizationPercentage-    , raUnusedHours--    -- ** ReservationCoverageGroup-    , ReservationCoverageGroup-    , reservationCoverageGroup-    , rcgCoverage-    , rcgAttributes--    -- ** ReservationPurchaseRecommendation-    , ReservationPurchaseRecommendation-    , reservationPurchaseRecommendation-    , rprTermInYears-    , rprRecommendationSummary-    , rprServiceSpecification-    , rprAccountScope-    , rprRecommendationDetails-    , rprLookbackPeriodInDays-    , rprPaymentOption--    -- ** ReservationPurchaseRecommendationDetail-    , ReservationPurchaseRecommendationDetail-    , reservationPurchaseRecommendationDetail-    , rprdMaximumNormalizedUnitsUsedPerHour-    , rprdRecurringStandardMonthlyCost-    , rprdAverageNormalizedUnitsUsedPerHour-    , rprdCurrencyCode-    , rprdEstimatedMonthlySavingsPercentage-    , rprdRecommendedNormalizedUnitsToPurchase-    , rprdAverageUtilization-    , rprdEstimatedMonthlySavingsAmount-    , rprdUpfrontCost-    , rprdMinimumNormalizedUnitsUsedPerHour-    , rprdEstimatedMonthlyOnDemandCost-    , rprdRecommendedNumberOfInstancesToPurchase-    , rprdMaximumNumberOfInstancesUsedPerHour-    , rprdEstimatedReservationCostForLookbackPeriod-    , rprdInstanceDetails-    , rprdAverageNumberOfInstancesUsedPerHour-    , rprdMinimumNumberOfInstancesUsedPerHour-    , rprdEstimatedBreakEvenInMonths--    -- ** ReservationPurchaseRecommendationMetadata-    , ReservationPurchaseRecommendationMetadata-    , reservationPurchaseRecommendationMetadata-    , rprmRecommendationId-    , rprmGenerationTimestamp--    -- ** ReservationPurchaseRecommendationSummary-    , ReservationPurchaseRecommendationSummary-    , reservationPurchaseRecommendationSummary-    , rprsCurrencyCode-    , rprsTotalEstimatedMonthlySavingsPercentage-    , rprsTotalEstimatedMonthlySavingsAmount--    -- ** ReservationUtilizationGroup-    , ReservationUtilizationGroup-    , reservationUtilizationGroup-    , rugValue-    , rugKey-    , rugAttributes-    , rugUtilization--    -- ** ResultByTime-    , ResultByTime-    , resultByTime-    , rbtGroups-    , rbtTimePeriod-    , rbtTotal-    , rbtEstimated--    -- ** ServiceSpecification-    , ServiceSpecification-    , serviceSpecification-    , ssEC2Specification--    -- ** TagValues-    , TagValues-    , tagValues-    , tvValues-    , tvKey--    -- ** UtilizationByTime-    , UtilizationByTime-    , utilizationByTime-    , ubtGroups-    , ubtTimePeriod-    , ubtTotal-    ) where--import Network.AWS.CostExplorer.GetCostAndUsage-import Network.AWS.CostExplorer.GetDimensionValues-import Network.AWS.CostExplorer.GetReservationCoverage-import Network.AWS.CostExplorer.GetReservationPurchaseRecommendation-import Network.AWS.CostExplorer.GetReservationUtilization-import Network.AWS.CostExplorer.GetTags-import Network.AWS.CostExplorer.Types-import Network.AWS.CostExplorer.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 'CostExplorer'.--}--{- $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.--}
− gen/Network/AWS/CostExplorer/GetCostAndUsage.hs
@@ -1,208 +0,0 @@-{-# LANGUAGE DeriveDataTypeable #-}-{-# LANGUAGE DeriveGeneric      #-}-{-# LANGUAGE OverloadedStrings  #-}-{-# LANGUAGE RecordWildCards    #-}-{-# LANGUAGE TypeFamilies       #-}--{-# OPTIONS_GHC -fno-warn-unused-imports #-}-{-# OPTIONS_GHC -fno-warn-unused-binds   #-}-{-# OPTIONS_GHC -fno-warn-unused-matches #-}---- Derived from AWS service descriptions, licensed under Apache 2.0.---- |--- Module      : Network.AWS.CostExplorer.GetCostAndUsage--- Copyright   : (c) 2013-2018 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)------ Retrieves cost and usage metrics for your account. You can specify which cost and usage-related metric, such as @BlendedCosts@ or @UsageQuantity@ , that you want the request to return. You can also filter and group your data by various dimensions, such as @SERVICE@ or @AZ@ , in a specific time range. For a complete list of valid dimensions, see the @<http://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_GetDimensionValues.html GetDimensionValues> @ operation. Master accounts in an organization in AWS Organizations have access to all member accounts.-------module Network.AWS.CostExplorer.GetCostAndUsage-    (-    -- * Creating a Request-      getCostAndUsage-    , GetCostAndUsage-    -- * Request Lenses-    , gcauGroupBy-    , gcauNextPageToken-    , gcauMetrics-    , gcauTimePeriod-    , gcauGranularity-    , gcauFilter--    -- * Destructuring the Response-    , getCostAndUsageResponse-    , GetCostAndUsageResponse-    -- * Response Lenses-    , gcaursResultsByTime-    , gcaursNextPageToken-    , gcaursGroupDefinitions-    , gcaursResponseStatus-    ) where--import Network.AWS.CostExplorer.Types-import Network.AWS.CostExplorer.Types.Product-import Network.AWS.Lens-import Network.AWS.Prelude-import Network.AWS.Request-import Network.AWS.Response---- | /See:/ 'getCostAndUsage' smart constructor.-data GetCostAndUsage = GetCostAndUsage'-  { _gcauGroupBy       :: !(Maybe [GroupDefinition])-  , _gcauNextPageToken :: !(Maybe Text)-  , _gcauMetrics       :: !(Maybe [Text])-  , _gcauTimePeriod    :: !(Maybe DateInterval)-  , _gcauGranularity   :: !(Maybe Granularity)-  , _gcauFilter        :: !(Maybe Expression)-  } deriving (Eq, Read, Show, Data, Typeable, Generic)----- | Creates a value of 'GetCostAndUsage' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'gcauGroupBy' - You can group AWS costs using up to two different groups, either dimensions, tag keys, or both. When you group by tag key, you get all tag values, including empty strings. Valid values are @AZ@ , @INSTANCE_TYPE@ , @LEGAL_ENTITY_NAME@ , @LINKED_ACCOUNT@ , @OPERATION@ , @PLATFORM@ , @PURCHASE_TYPE@ , @SERVICE@ , @TAGS@ , @TENANCY@ , and @USAGE_TYPE@ .------ * 'gcauNextPageToken' - The token to retrieve the next set of results. AWS provides the token when the response from a previous call has more results than the maximum page size.------ * 'gcauMetrics' - Which metrics are returned in the query. For more information about blended and unblended rates, see <https://aws.amazon.com/premiumsupport/knowledge-center/blended-rates-intro/ Why does the "blended" annotation appear on some line items in my bill?> .  Valid values are @BlendedCost@ , @UnblendedCost@ , and @UsageQuantity@ . @Metrics@ is required for @GetCostAndUsage@ requests.------ * 'gcauTimePeriod' - Sets the start and end dates for retrieving AWS costs. The start date is inclusive, but the end date is exclusive. For example, if @start@ is @2017-01-01@ and @end@ is @2017-05-01@ , then the cost and usage data is retrieved from @2017-01-01@ up to and including @2017-04-30@ but not including @2017-05-01@ .------ * 'gcauGranularity' - Sets the AWS cost granularity to @MONTHLY@ or @DAILY@ . If @Granularity@ isn't set, the response object doesn't include the @Granularity@ , either @MONTHLY@ or @DAILY@ .------ * 'gcauFilter' - Filters AWS costs by different dimensions. For example, you can specify @SERVICE@ and @LINKED_ACCOUNT@ and get the costs that are associated with that account's usage of that service. You can nest @Expression@ objects to define any combination of dimension filters. For more information, see <http://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html Expression> .-getCostAndUsage-    :: GetCostAndUsage-getCostAndUsage =-  GetCostAndUsage'-    { _gcauGroupBy = Nothing-    , _gcauNextPageToken = Nothing-    , _gcauMetrics = Nothing-    , _gcauTimePeriod = Nothing-    , _gcauGranularity = Nothing-    , _gcauFilter = Nothing-    }----- | You can group AWS costs using up to two different groups, either dimensions, tag keys, or both. When you group by tag key, you get all tag values, including empty strings. Valid values are @AZ@ , @INSTANCE_TYPE@ , @LEGAL_ENTITY_NAME@ , @LINKED_ACCOUNT@ , @OPERATION@ , @PLATFORM@ , @PURCHASE_TYPE@ , @SERVICE@ , @TAGS@ , @TENANCY@ , and @USAGE_TYPE@ .-gcauGroupBy :: Lens' GetCostAndUsage [GroupDefinition]-gcauGroupBy = lens _gcauGroupBy (\ s a -> s{_gcauGroupBy = a}) . _Default . _Coerce---- | The token to retrieve the next set of results. AWS provides the token when the response from a previous call has more results than the maximum page size.-gcauNextPageToken :: Lens' GetCostAndUsage (Maybe Text)-gcauNextPageToken = lens _gcauNextPageToken (\ s a -> s{_gcauNextPageToken = a})---- | Which metrics are returned in the query. For more information about blended and unblended rates, see <https://aws.amazon.com/premiumsupport/knowledge-center/blended-rates-intro/ Why does the "blended" annotation appear on some line items in my bill?> .  Valid values are @BlendedCost@ , @UnblendedCost@ , and @UsageQuantity@ . @Metrics@ is required for @GetCostAndUsage@ requests.-gcauMetrics :: Lens' GetCostAndUsage [Text]-gcauMetrics = lens _gcauMetrics (\ s a -> s{_gcauMetrics = a}) . _Default . _Coerce---- | Sets the start and end dates for retrieving AWS costs. The start date is inclusive, but the end date is exclusive. For example, if @start@ is @2017-01-01@ and @end@ is @2017-05-01@ , then the cost and usage data is retrieved from @2017-01-01@ up to and including @2017-04-30@ but not including @2017-05-01@ .-gcauTimePeriod :: Lens' GetCostAndUsage (Maybe DateInterval)-gcauTimePeriod = lens _gcauTimePeriod (\ s a -> s{_gcauTimePeriod = a})---- | Sets the AWS cost granularity to @MONTHLY@ or @DAILY@ . If @Granularity@ isn't set, the response object doesn't include the @Granularity@ , either @MONTHLY@ or @DAILY@ .-gcauGranularity :: Lens' GetCostAndUsage (Maybe Granularity)-gcauGranularity = lens _gcauGranularity (\ s a -> s{_gcauGranularity = a})---- | Filters AWS costs by different dimensions. For example, you can specify @SERVICE@ and @LINKED_ACCOUNT@ and get the costs that are associated with that account's usage of that service. You can nest @Expression@ objects to define any combination of dimension filters. For more information, see <http://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html Expression> .-gcauFilter :: Lens' GetCostAndUsage (Maybe Expression)-gcauFilter = lens _gcauFilter (\ s a -> s{_gcauFilter = a})--instance AWSRequest GetCostAndUsage where-        type Rs GetCostAndUsage = GetCostAndUsageResponse-        request = postJSON costExplorer-        response-          = receiveJSON-              (\ s h x ->-                 GetCostAndUsageResponse' <$>-                   (x .?> "ResultsByTime" .!@ mempty) <*>-                     (x .?> "NextPageToken")-                     <*> (x .?> "GroupDefinitions" .!@ mempty)-                     <*> (pure (fromEnum s)))--instance Hashable GetCostAndUsage where--instance NFData GetCostAndUsage where--instance ToHeaders GetCostAndUsage where-        toHeaders-          = const-              (mconcat-                 ["X-Amz-Target" =#-                    ("AWSInsightsIndexService.GetCostAndUsage" ::-                       ByteString),-                  "Content-Type" =#-                    ("application/x-amz-json-1.1" :: ByteString)])--instance ToJSON GetCostAndUsage where-        toJSON GetCostAndUsage'{..}-          = object-              (catMaybes-                 [("GroupBy" .=) <$> _gcauGroupBy,-                  ("NextPageToken" .=) <$> _gcauNextPageToken,-                  ("Metrics" .=) <$> _gcauMetrics,-                  ("TimePeriod" .=) <$> _gcauTimePeriod,-                  ("Granularity" .=) <$> _gcauGranularity,-                  ("Filter" .=) <$> _gcauFilter])--instance ToPath GetCostAndUsage where-        toPath = const "/"--instance ToQuery GetCostAndUsage where-        toQuery = const mempty---- | /See:/ 'getCostAndUsageResponse' smart constructor.-data GetCostAndUsageResponse = GetCostAndUsageResponse'-  { _gcaursResultsByTime    :: !(Maybe [ResultByTime])-  , _gcaursNextPageToken    :: !(Maybe Text)-  , _gcaursGroupDefinitions :: !(Maybe [GroupDefinition])-  , _gcaursResponseStatus   :: !Int-  } deriving (Eq, Read, Show, Data, Typeable, Generic)----- | Creates a value of 'GetCostAndUsageResponse' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'gcaursResultsByTime' - The time period that is covered by the results in the response.------ * 'gcaursNextPageToken' - The token for the next set of retrievable results. AWS provides the token when the response from a previous call has more results than the maximum page size.------ * 'gcaursGroupDefinitions' - The groups that are specified by the @Filter@ or @GroupBy@ parameters in the request.------ * 'gcaursResponseStatus' - -- | The response status code.-getCostAndUsageResponse-    :: Int -- ^ 'gcaursResponseStatus'-    -> GetCostAndUsageResponse-getCostAndUsageResponse pResponseStatus_ =-  GetCostAndUsageResponse'-    { _gcaursResultsByTime = Nothing-    , _gcaursNextPageToken = Nothing-    , _gcaursGroupDefinitions = Nothing-    , _gcaursResponseStatus = pResponseStatus_-    }----- | The time period that is covered by the results in the response.-gcaursResultsByTime :: Lens' GetCostAndUsageResponse [ResultByTime]-gcaursResultsByTime = lens _gcaursResultsByTime (\ s a -> s{_gcaursResultsByTime = a}) . _Default . _Coerce---- | The token for the next set of retrievable results. AWS provides the token when the response from a previous call has more results than the maximum page size.-gcaursNextPageToken :: Lens' GetCostAndUsageResponse (Maybe Text)-gcaursNextPageToken = lens _gcaursNextPageToken (\ s a -> s{_gcaursNextPageToken = a})---- | The groups that are specified by the @Filter@ or @GroupBy@ parameters in the request.-gcaursGroupDefinitions :: Lens' GetCostAndUsageResponse [GroupDefinition]-gcaursGroupDefinitions = lens _gcaursGroupDefinitions (\ s a -> s{_gcaursGroupDefinitions = a}) . _Default . _Coerce---- | -- | The response status code.-gcaursResponseStatus :: Lens' GetCostAndUsageResponse Int-gcaursResponseStatus = lens _gcaursResponseStatus (\ s a -> s{_gcaursResponseStatus = a})--instance NFData GetCostAndUsageResponse where
− gen/Network/AWS/CostExplorer/GetDimensionValues.hs
@@ -1,212 +0,0 @@-{-# LANGUAGE DeriveDataTypeable #-}-{-# LANGUAGE DeriveGeneric      #-}-{-# LANGUAGE OverloadedStrings  #-}-{-# LANGUAGE RecordWildCards    #-}-{-# LANGUAGE TypeFamilies       #-}--{-# OPTIONS_GHC -fno-warn-unused-imports #-}-{-# OPTIONS_GHC -fno-warn-unused-binds   #-}-{-# OPTIONS_GHC -fno-warn-unused-matches #-}---- Derived from AWS service descriptions, licensed under Apache 2.0.---- |--- Module      : Network.AWS.CostExplorer.GetDimensionValues--- Copyright   : (c) 2013-2018 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)------ Retrieves all available filter values for a specified filter over a period of time. You can search the dimension values for an arbitrary string.-------module Network.AWS.CostExplorer.GetDimensionValues-    (-    -- * Creating a Request-      getDimensionValues-    , GetDimensionValues-    -- * Request Lenses-    , gdvNextPageToken-    , gdvContext-    , gdvSearchString-    , gdvTimePeriod-    , gdvDimension--    -- * Destructuring the Response-    , getDimensionValuesResponse-    , GetDimensionValuesResponse-    -- * Response Lenses-    , gdvrsNextPageToken-    , gdvrsResponseStatus-    , gdvrsDimensionValues-    , gdvrsReturnSize-    , gdvrsTotalSize-    ) where--import Network.AWS.CostExplorer.Types-import Network.AWS.CostExplorer.Types.Product-import Network.AWS.Lens-import Network.AWS.Prelude-import Network.AWS.Request-import Network.AWS.Response---- | /See:/ 'getDimensionValues' smart constructor.-data GetDimensionValues = GetDimensionValues'-  { _gdvNextPageToken :: !(Maybe Text)-  , _gdvContext       :: !(Maybe Context)-  , _gdvSearchString  :: !(Maybe Text)-  , _gdvTimePeriod    :: !DateInterval-  , _gdvDimension     :: !Dimension-  } deriving (Eq, Read, Show, Data, Typeable, Generic)----- | Creates a value of 'GetDimensionValues' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'gdvNextPageToken' - The token to retrieve the next set of results. AWS provides the token when the response from a previous call has more results than the maximum page size.------ * 'gdvContext' - The context for the call to @GetDimensionValues@ . This can be @RESERVATIONS@ or @COST_AND_USAGE@ . The default value is @COST_AND_USAGE@ . If the context is set to @RESERVATIONS@ , the resulting dimension values can be used in the @GetReservationUtilization@ operation. If the context is set to @COST_AND_USAGE@ the resulting dimension values can be used in the @GetCostAndUsage@ operation. If you set the context to @COST_AND_USAGE@ , you can use the following dimensions for searching:     * AZ - The Availability Zone. An example is @us-east-1a@ .     * DATABASE_ENGINE - The Amazon Relational Database Service database. Examples are Aurora or MySQL.     * INSTANCE_TYPE - The type of EC2 instance. An example is @m4.xlarge@ .     * LEGAL_ENTITY_NAME - The name of the organization that sells you AWS services, such as Amazon Web Services.     * LINKED_ACCOUNT - The description in the attribute map that includes the full name of the member account. The value field contains the AWS ID of the member account.     * OPERATING_SYSTEM - The operating system. Examples are Windows or Linux.     * OPERATION - The action performed. Examples include @RunInstance@ and @CreateBucket@ .     * PLATFORM - The EC2 operating system. Examples are Windows or Linux.     * PURCHASE_TYPE - The reservation type of the purchase to which this usage is related. Examples include On-Demand Instances and Standard Reserved Instances.     * SERVICE - The AWS service such as Amazon DynamoDB.     * USAGE_TYPE - The type of usage. An example is DataTransfer-In-Bytes. The response for the @GetDimensionValues@ operation includes a unit attribute. Examples include GB and Hrs.     * USAGE_TYPE_GROUP - The grouping of common usage types. An example is EC2: CloudWatch – Alarms. The response for this operation includes a unit attribute.     * RECORD_TYPE - The different types of charges such as RI fees, usage costs, tax refunds, and credits. If you set the context to @RESERVATIONS@ , you can use the following dimensions for searching:     * AZ - The Availability Zone. An example is @us-east-1a@ .     * CACHE_ENGINE - The Amazon ElastiCache operating system. Examples are Windows or Linux.     * DEPLOYMENT_OPTION - The scope of Amazon Relational Database Service deployments. Valid values are @SingleAZ@ and @MultiAZ@ .     * INSTANCE_TYPE - The type of EC2 instance. An example is @m4.xlarge@ .     * LINKED_ACCOUNT - The description in the attribute map that includes the full name of the member account. The value field contains the AWS ID of the member account.     * PLATFORM - The EC2 operating system. Examples are Windows or Linux.     * REGION - The AWS Region.     * SCOPE (Utilization only) - The scope of a Reserved Instance (RI). Values are regional or a single Availability Zone.     * TAG (Coverage only) - The tags that are associated with a Reserved Instance (RI).     * TENANCY - The tenancy of a resource. Examples are shared or dedicated.------ * 'gdvSearchString' - The value that you want to search the filter values for.------ * 'gdvTimePeriod' - The start and end dates for retrieving the dimension values. The start date is inclusive, but the end date is exclusive. For example, if @start@ is @2017-01-01@ and @end@ is @2017-05-01@ , then the cost and usage data is retrieved from @2017-01-01@ up to and including @2017-04-30@ but not including @2017-05-01@ .------ * 'gdvDimension' - The name of the dimension. Each @Dimension@ is available for different a @Context@ . For more information, see @Context@ .-getDimensionValues-    :: DateInterval -- ^ 'gdvTimePeriod'-    -> Dimension -- ^ 'gdvDimension'-    -> GetDimensionValues-getDimensionValues pTimePeriod_ pDimension_ =-  GetDimensionValues'-    { _gdvNextPageToken = Nothing-    , _gdvContext = Nothing-    , _gdvSearchString = Nothing-    , _gdvTimePeriod = pTimePeriod_-    , _gdvDimension = pDimension_-    }----- | The token to retrieve the next set of results. AWS provides the token when the response from a previous call has more results than the maximum page size.-gdvNextPageToken :: Lens' GetDimensionValues (Maybe Text)-gdvNextPageToken = lens _gdvNextPageToken (\ s a -> s{_gdvNextPageToken = a})---- | The context for the call to @GetDimensionValues@ . This can be @RESERVATIONS@ or @COST_AND_USAGE@ . The default value is @COST_AND_USAGE@ . If the context is set to @RESERVATIONS@ , the resulting dimension values can be used in the @GetReservationUtilization@ operation. If the context is set to @COST_AND_USAGE@ the resulting dimension values can be used in the @GetCostAndUsage@ operation. If you set the context to @COST_AND_USAGE@ , you can use the following dimensions for searching:     * AZ - The Availability Zone. An example is @us-east-1a@ .     * DATABASE_ENGINE - The Amazon Relational Database Service database. Examples are Aurora or MySQL.     * INSTANCE_TYPE - The type of EC2 instance. An example is @m4.xlarge@ .     * LEGAL_ENTITY_NAME - The name of the organization that sells you AWS services, such as Amazon Web Services.     * LINKED_ACCOUNT - The description in the attribute map that includes the full name of the member account. The value field contains the AWS ID of the member account.     * OPERATING_SYSTEM - The operating system. Examples are Windows or Linux.     * OPERATION - The action performed. Examples include @RunInstance@ and @CreateBucket@ .     * PLATFORM - The EC2 operating system. Examples are Windows or Linux.     * PURCHASE_TYPE - The reservation type of the purchase to which this usage is related. Examples include On-Demand Instances and Standard Reserved Instances.     * SERVICE - The AWS service such as Amazon DynamoDB.     * USAGE_TYPE - The type of usage. An example is DataTransfer-In-Bytes. The response for the @GetDimensionValues@ operation includes a unit attribute. Examples include GB and Hrs.     * USAGE_TYPE_GROUP - The grouping of common usage types. An example is EC2: CloudWatch – Alarms. The response for this operation includes a unit attribute.     * RECORD_TYPE - The different types of charges such as RI fees, usage costs, tax refunds, and credits. If you set the context to @RESERVATIONS@ , you can use the following dimensions for searching:     * AZ - The Availability Zone. An example is @us-east-1a@ .     * CACHE_ENGINE - The Amazon ElastiCache operating system. Examples are Windows or Linux.     * DEPLOYMENT_OPTION - The scope of Amazon Relational Database Service deployments. Valid values are @SingleAZ@ and @MultiAZ@ .     * INSTANCE_TYPE - The type of EC2 instance. An example is @m4.xlarge@ .     * LINKED_ACCOUNT - The description in the attribute map that includes the full name of the member account. The value field contains the AWS ID of the member account.     * PLATFORM - The EC2 operating system. Examples are Windows or Linux.     * REGION - The AWS Region.     * SCOPE (Utilization only) - The scope of a Reserved Instance (RI). Values are regional or a single Availability Zone.     * TAG (Coverage only) - The tags that are associated with a Reserved Instance (RI).     * TENANCY - The tenancy of a resource. Examples are shared or dedicated.-gdvContext :: Lens' GetDimensionValues (Maybe Context)-gdvContext = lens _gdvContext (\ s a -> s{_gdvContext = a})---- | The value that you want to search the filter values for.-gdvSearchString :: Lens' GetDimensionValues (Maybe Text)-gdvSearchString = lens _gdvSearchString (\ s a -> s{_gdvSearchString = a})---- | The start and end dates for retrieving the dimension values. The start date is inclusive, but the end date is exclusive. For example, if @start@ is @2017-01-01@ and @end@ is @2017-05-01@ , then the cost and usage data is retrieved from @2017-01-01@ up to and including @2017-04-30@ but not including @2017-05-01@ .-gdvTimePeriod :: Lens' GetDimensionValues DateInterval-gdvTimePeriod = lens _gdvTimePeriod (\ s a -> s{_gdvTimePeriod = a})---- | The name of the dimension. Each @Dimension@ is available for different a @Context@ . For more information, see @Context@ .-gdvDimension :: Lens' GetDimensionValues Dimension-gdvDimension = lens _gdvDimension (\ s a -> s{_gdvDimension = a})--instance AWSRequest GetDimensionValues where-        type Rs GetDimensionValues =-             GetDimensionValuesResponse-        request = postJSON costExplorer-        response-          = receiveJSON-              (\ s h x ->-                 GetDimensionValuesResponse' <$>-                   (x .?> "NextPageToken") <*> (pure (fromEnum s)) <*>-                     (x .?> "DimensionValues" .!@ mempty)-                     <*> (x .:> "ReturnSize")-                     <*> (x .:> "TotalSize"))--instance Hashable GetDimensionValues where--instance NFData GetDimensionValues where--instance ToHeaders GetDimensionValues where-        toHeaders-          = const-              (mconcat-                 ["X-Amz-Target" =#-                    ("AWSInsightsIndexService.GetDimensionValues" ::-                       ByteString),-                  "Content-Type" =#-                    ("application/x-amz-json-1.1" :: ByteString)])--instance ToJSON GetDimensionValues where-        toJSON GetDimensionValues'{..}-          = object-              (catMaybes-                 [("NextPageToken" .=) <$> _gdvNextPageToken,-                  ("Context" .=) <$> _gdvContext,-                  ("SearchString" .=) <$> _gdvSearchString,-                  Just ("TimePeriod" .= _gdvTimePeriod),-                  Just ("Dimension" .= _gdvDimension)])--instance ToPath GetDimensionValues where-        toPath = const "/"--instance ToQuery GetDimensionValues where-        toQuery = const mempty---- | /See:/ 'getDimensionValuesResponse' smart constructor.-data GetDimensionValuesResponse = GetDimensionValuesResponse'-  { _gdvrsNextPageToken   :: !(Maybe Text)-  , _gdvrsResponseStatus  :: !Int-  , _gdvrsDimensionValues :: ![DimensionValuesWithAttributes]-  , _gdvrsReturnSize      :: !Int-  , _gdvrsTotalSize       :: !Int-  } deriving (Eq, Read, Show, Data, Typeable, Generic)----- | Creates a value of 'GetDimensionValuesResponse' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'gdvrsNextPageToken' - The token for the next set of retrievable results. AWS provides the token when the response from a previous call has more results than the maximum page size.------ * 'gdvrsResponseStatus' - -- | The response status code.------ * 'gdvrsDimensionValues' - The filters that you used to filter your request. Some dimensions are available only for a specific context: If you set the context to @COST_AND_USAGE@ , you can use the following dimensions for searching:     * AZ - The Availability Zone. An example is @us-east-1a@ .     * DATABASE_ENGINE - The Amazon Relational Database Service database. Examples are Aurora or MySQL.     * INSTANCE_TYPE - The type of EC2 instance. An example is @m4.xlarge@ .     * LEGAL_ENTITY_NAME - The name of the organization that sells you AWS services, such as Amazon Web Services.     * LINKED_ACCOUNT - The description in the attribute map that includes the full name of the member account. The value field contains the AWS ID of the member account.     * OPERATING_SYSTEM - The operating system. Examples are Windows or Linux.     * OPERATION - The action performed. Examples include @RunInstance@ and @CreateBucket@ .     * PLATFORM - The EC2 operating system. Examples are Windows or Linux.     * PURCHASE_TYPE - The reservation type of the purchase to which this usage is related. Examples include On-Demand Instances and Standard Reserved Instances.     * SERVICE - The AWS service such as Amazon DynamoDB.     * USAGE_TYPE - The type of usage. An example is DataTransfer-In-Bytes. The response for the @GetDimensionValues@ operation includes a unit attribute. Examples include GB and Hrs.     * USAGE_TYPE_GROUP - The grouping of common usage types. An example is EC2: CloudWatch – Alarms. The response for this operation includes a unit attribute.     * RECORD_TYPE - The different types of charges such as RI fees, usage costs, tax refunds, and credits. If you set the context to @RESERVATIONS@ , you can use the following dimensions for searching:     * AZ - The Availability Zone. An example is @us-east-1a@ .     * CACHE_ENGINE - The Amazon ElastiCache operating system. Examples are Windows or Linux.     * DEPLOYMENT_OPTION - The scope of Amazon Relational Database Service deployments. Valid values are @SingleAZ@ and @MultiAZ@ .     * INSTANCE_TYPE - The type of EC2 instance. An example is @m4.xlarge@ .     * LINKED_ACCOUNT - The description in the attribute map that includes the full name of the member account. The value field contains the AWS ID of the member account.     * PLATFORM - The EC2 operating system. Examples are Windows or Linux.     * REGION - The AWS Region.     * SCOPE (Utilization only) - The scope of a Reserved Instance (RI). Values are regional or a single Availability Zone.     * TAG (Coverage only) - The tags that are associated with a Reserved Instance (RI).     * TENANCY - The tenancy of a resource. Examples are shared or dedicated.------ * 'gdvrsReturnSize' - The number of results that AWS returned at one time.------ * 'gdvrsTotalSize' - The total number of search results.-getDimensionValuesResponse-    :: Int -- ^ 'gdvrsResponseStatus'-    -> Int -- ^ 'gdvrsReturnSize'-    -> Int -- ^ 'gdvrsTotalSize'-    -> GetDimensionValuesResponse-getDimensionValuesResponse pResponseStatus_ pReturnSize_ pTotalSize_ =-  GetDimensionValuesResponse'-    { _gdvrsNextPageToken = Nothing-    , _gdvrsResponseStatus = pResponseStatus_-    , _gdvrsDimensionValues = mempty-    , _gdvrsReturnSize = pReturnSize_-    , _gdvrsTotalSize = pTotalSize_-    }----- | The token for the next set of retrievable results. AWS provides the token when the response from a previous call has more results than the maximum page size.-gdvrsNextPageToken :: Lens' GetDimensionValuesResponse (Maybe Text)-gdvrsNextPageToken = lens _gdvrsNextPageToken (\ s a -> s{_gdvrsNextPageToken = a})---- | -- | The response status code.-gdvrsResponseStatus :: Lens' GetDimensionValuesResponse Int-gdvrsResponseStatus = lens _gdvrsResponseStatus (\ s a -> s{_gdvrsResponseStatus = a})---- | The filters that you used to filter your request. Some dimensions are available only for a specific context: If you set the context to @COST_AND_USAGE@ , you can use the following dimensions for searching:     * AZ - The Availability Zone. An example is @us-east-1a@ .     * DATABASE_ENGINE - The Amazon Relational Database Service database. Examples are Aurora or MySQL.     * INSTANCE_TYPE - The type of EC2 instance. An example is @m4.xlarge@ .     * LEGAL_ENTITY_NAME - The name of the organization that sells you AWS services, such as Amazon Web Services.     * LINKED_ACCOUNT - The description in the attribute map that includes the full name of the member account. The value field contains the AWS ID of the member account.     * OPERATING_SYSTEM - The operating system. Examples are Windows or Linux.     * OPERATION - The action performed. Examples include @RunInstance@ and @CreateBucket@ .     * PLATFORM - The EC2 operating system. Examples are Windows or Linux.     * PURCHASE_TYPE - The reservation type of the purchase to which this usage is related. Examples include On-Demand Instances and Standard Reserved Instances.     * SERVICE - The AWS service such as Amazon DynamoDB.     * USAGE_TYPE - The type of usage. An example is DataTransfer-In-Bytes. The response for the @GetDimensionValues@ operation includes a unit attribute. Examples include GB and Hrs.     * USAGE_TYPE_GROUP - The grouping of common usage types. An example is EC2: CloudWatch – Alarms. The response for this operation includes a unit attribute.     * RECORD_TYPE - The different types of charges such as RI fees, usage costs, tax refunds, and credits. If you set the context to @RESERVATIONS@ , you can use the following dimensions for searching:     * AZ - The Availability Zone. An example is @us-east-1a@ .     * CACHE_ENGINE - The Amazon ElastiCache operating system. Examples are Windows or Linux.     * DEPLOYMENT_OPTION - The scope of Amazon Relational Database Service deployments. Valid values are @SingleAZ@ and @MultiAZ@ .     * INSTANCE_TYPE - The type of EC2 instance. An example is @m4.xlarge@ .     * LINKED_ACCOUNT - The description in the attribute map that includes the full name of the member account. The value field contains the AWS ID of the member account.     * PLATFORM - The EC2 operating system. Examples are Windows or Linux.     * REGION - The AWS Region.     * SCOPE (Utilization only) - The scope of a Reserved Instance (RI). Values are regional or a single Availability Zone.     * TAG (Coverage only) - The tags that are associated with a Reserved Instance (RI).     * TENANCY - The tenancy of a resource. Examples are shared or dedicated.-gdvrsDimensionValues :: Lens' GetDimensionValuesResponse [DimensionValuesWithAttributes]-gdvrsDimensionValues = lens _gdvrsDimensionValues (\ s a -> s{_gdvrsDimensionValues = a}) . _Coerce---- | The number of results that AWS returned at one time.-gdvrsReturnSize :: Lens' GetDimensionValuesResponse Int-gdvrsReturnSize = lens _gdvrsReturnSize (\ s a -> s{_gdvrsReturnSize = a})---- | The total number of search results.-gdvrsTotalSize :: Lens' GetDimensionValuesResponse Int-gdvrsTotalSize = lens _gdvrsTotalSize (\ s a -> s{_gdvrsTotalSize = a})--instance NFData GetDimensionValuesResponse where
− gen/Network/AWS/CostExplorer/GetReservationCoverage.hs
@@ -1,231 +0,0 @@-{-# LANGUAGE DeriveDataTypeable #-}-{-# LANGUAGE DeriveGeneric      #-}-{-# LANGUAGE OverloadedStrings  #-}-{-# LANGUAGE RecordWildCards    #-}-{-# LANGUAGE TypeFamilies       #-}--{-# OPTIONS_GHC -fno-warn-unused-imports #-}-{-# OPTIONS_GHC -fno-warn-unused-binds   #-}-{-# OPTIONS_GHC -fno-warn-unused-matches #-}---- Derived from AWS service descriptions, licensed under Apache 2.0.---- |--- Module      : Network.AWS.CostExplorer.GetReservationCoverage--- Copyright   : (c) 2013-2018 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)------ Retrieves the reservation coverage for your account. This allows you to see how much of your Amazon Elastic Compute Cloud, Amazon ElastiCache, Amazon Relational Database Service, or Amazon Redshift usage is covered by a reservation. An organization's master account can see the coverage of the associated member accounts. For any time period, you can filter data about reservation usage by the following dimensions:---------     * AZ------     * CACHE_ENGINE------     * DATABASE_ENGINE------     * DEPLOYMENT_OPTION------     * INSTANCE_TYPE------     * LINKED_ACCOUNT------     * OPERATING_SYSTEM------     * PLATFORM------     * REGION------     * SERVICE------     * TAG------     * TENANCY------------ To determine valid values for a dimension, use the @GetDimensionValues@ operation.----module Network.AWS.CostExplorer.GetReservationCoverage-    (-    -- * Creating a Request-      getReservationCoverage-    , GetReservationCoverage-    -- * Request Lenses-    , grcGroupBy-    , grcNextPageToken-    , grcGranularity-    , grcFilter-    , grcTimePeriod--    -- * Destructuring the Response-    , getReservationCoverageResponse-    , GetReservationCoverageResponse-    -- * Response Lenses-    , grcrsNextPageToken-    , grcrsTotal-    , grcrsResponseStatus-    , grcrsCoveragesByTime-    ) where--import Network.AWS.CostExplorer.Types-import Network.AWS.CostExplorer.Types.Product-import Network.AWS.Lens-import Network.AWS.Prelude-import Network.AWS.Request-import Network.AWS.Response---- | You can use the following request parameters to query for how much of your instance usage is covered by a reservation.------------ /See:/ 'getReservationCoverage' smart constructor.-data GetReservationCoverage = GetReservationCoverage'-  { _grcGroupBy       :: !(Maybe [GroupDefinition])-  , _grcNextPageToken :: !(Maybe Text)-  , _grcGranularity   :: !(Maybe Granularity)-  , _grcFilter        :: !(Maybe Expression)-  , _grcTimePeriod    :: !DateInterval-  } deriving (Eq, Read, Show, Data, Typeable, Generic)----- | Creates a value of 'GetReservationCoverage' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'grcGroupBy' - You can group the data by the following attributes:     * AZ     * CACHE_ENGINE     * DATABASE_ENGINE     * DEPLOYMENT_OPTION     * INSTANCE_TYPE     * LINKED_ACCOUNT     * OPERATING_SYSTEM     * PLATFORM     * REGION     * TAG     * TENANCY------ * 'grcNextPageToken' - The token to retrieve the next set of results. AWS provides the token when the response from a previous call has more results than the maximum page size.------ * 'grcGranularity' - The granularity of the AWS cost data for the reservation. Valid values are @MONTHLY@ and @DAILY@ . If @GroupBy@ is set, @Granularity@ can't be set. If @Granularity@ isn't set, the response object doesn't include @Granularity@ , either @MONTHLY@ or @DAILY@ .------ * 'grcFilter' - Filters utilization data by dimensions. You can filter by the following dimensions:     * AZ     * CACHE_ENGINE     * DATABASE_ENGINE     * DEPLOYMENT_OPTION     * INSTANCE_TYPE     * LINKED_ACCOUNT     * OPERATING_SYSTEM     * PLATFORM     * REGION     * SERVICE     * TAG     * TENANCY @GetReservationCoverage@ uses the same @<http://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html Expression> @ object as the other operations, but only @AND@ is supported among each dimension. You can nest only one level deep. If there are multiple values for a dimension, they are OR'd together.------ * 'grcTimePeriod' - The start and end dates of the period for which you want to retrieve data about reservation coverage. You can retrieve data for a maximum of 13 months: the last 12 months and the current month. The start date is inclusive, but the end date is exclusive. For example, if @start@ is @2017-01-01@ and @end@ is @2017-05-01@ , then the cost and usage data is retrieved from @2017-01-01@ up to and including @2017-04-30@ but not including @2017-05-01@ .-getReservationCoverage-    :: DateInterval -- ^ 'grcTimePeriod'-    -> GetReservationCoverage-getReservationCoverage pTimePeriod_ =-  GetReservationCoverage'-    { _grcGroupBy = Nothing-    , _grcNextPageToken = Nothing-    , _grcGranularity = Nothing-    , _grcFilter = Nothing-    , _grcTimePeriod = pTimePeriod_-    }----- | You can group the data by the following attributes:     * AZ     * CACHE_ENGINE     * DATABASE_ENGINE     * DEPLOYMENT_OPTION     * INSTANCE_TYPE     * LINKED_ACCOUNT     * OPERATING_SYSTEM     * PLATFORM     * REGION     * TAG     * TENANCY-grcGroupBy :: Lens' GetReservationCoverage [GroupDefinition]-grcGroupBy = lens _grcGroupBy (\ s a -> s{_grcGroupBy = a}) . _Default . _Coerce---- | The token to retrieve the next set of results. AWS provides the token when the response from a previous call has more results than the maximum page size.-grcNextPageToken :: Lens' GetReservationCoverage (Maybe Text)-grcNextPageToken = lens _grcNextPageToken (\ s a -> s{_grcNextPageToken = a})---- | The granularity of the AWS cost data for the reservation. Valid values are @MONTHLY@ and @DAILY@ . If @GroupBy@ is set, @Granularity@ can't be set. If @Granularity@ isn't set, the response object doesn't include @Granularity@ , either @MONTHLY@ or @DAILY@ .-grcGranularity :: Lens' GetReservationCoverage (Maybe Granularity)-grcGranularity = lens _grcGranularity (\ s a -> s{_grcGranularity = a})---- | Filters utilization data by dimensions. You can filter by the following dimensions:     * AZ     * CACHE_ENGINE     * DATABASE_ENGINE     * DEPLOYMENT_OPTION     * INSTANCE_TYPE     * LINKED_ACCOUNT     * OPERATING_SYSTEM     * PLATFORM     * REGION     * SERVICE     * TAG     * TENANCY @GetReservationCoverage@ uses the same @<http://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html Expression> @ object as the other operations, but only @AND@ is supported among each dimension. You can nest only one level deep. If there are multiple values for a dimension, they are OR'd together.-grcFilter :: Lens' GetReservationCoverage (Maybe Expression)-grcFilter = lens _grcFilter (\ s a -> s{_grcFilter = a})---- | The start and end dates of the period for which you want to retrieve data about reservation coverage. You can retrieve data for a maximum of 13 months: the last 12 months and the current month. The start date is inclusive, but the end date is exclusive. For example, if @start@ is @2017-01-01@ and @end@ is @2017-05-01@ , then the cost and usage data is retrieved from @2017-01-01@ up to and including @2017-04-30@ but not including @2017-05-01@ .-grcTimePeriod :: Lens' GetReservationCoverage DateInterval-grcTimePeriod = lens _grcTimePeriod (\ s a -> s{_grcTimePeriod = a})--instance AWSRequest GetReservationCoverage where-        type Rs GetReservationCoverage =-             GetReservationCoverageResponse-        request = postJSON costExplorer-        response-          = receiveJSON-              (\ s h x ->-                 GetReservationCoverageResponse' <$>-                   (x .?> "NextPageToken") <*> (x .?> "Total") <*>-                     (pure (fromEnum s))-                     <*> (x .?> "CoveragesByTime" .!@ mempty))--instance Hashable GetReservationCoverage where--instance NFData GetReservationCoverage where--instance ToHeaders GetReservationCoverage where-        toHeaders-          = const-              (mconcat-                 ["X-Amz-Target" =#-                    ("AWSInsightsIndexService.GetReservationCoverage" ::-                       ByteString),-                  "Content-Type" =#-                    ("application/x-amz-json-1.1" :: ByteString)])--instance ToJSON GetReservationCoverage where-        toJSON GetReservationCoverage'{..}-          = object-              (catMaybes-                 [("GroupBy" .=) <$> _grcGroupBy,-                  ("NextPageToken" .=) <$> _grcNextPageToken,-                  ("Granularity" .=) <$> _grcGranularity,-                  ("Filter" .=) <$> _grcFilter,-                  Just ("TimePeriod" .= _grcTimePeriod)])--instance ToPath GetReservationCoverage where-        toPath = const "/"--instance ToQuery GetReservationCoverage where-        toQuery = const mempty---- | /See:/ 'getReservationCoverageResponse' smart constructor.-data GetReservationCoverageResponse = GetReservationCoverageResponse'-  { _grcrsNextPageToken   :: !(Maybe Text)-  , _grcrsTotal           :: !(Maybe Coverage)-  , _grcrsResponseStatus  :: !Int-  , _grcrsCoveragesByTime :: ![CoverageByTime]-  } deriving (Eq, Read, Show, Data, Typeable, Generic)----- | Creates a value of 'GetReservationCoverageResponse' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'grcrsNextPageToken' - The token for the next set of retrievable results. AWS provides the token when the response from a previous call has more results than the maximum page size.------ * 'grcrsTotal' - The total amount of instance usage that is covered by a reservation.------ * 'grcrsResponseStatus' - -- | The response status code.------ * 'grcrsCoveragesByTime' - The amount of time that your reservations covered.-getReservationCoverageResponse-    :: Int -- ^ 'grcrsResponseStatus'-    -> GetReservationCoverageResponse-getReservationCoverageResponse pResponseStatus_ =-  GetReservationCoverageResponse'-    { _grcrsNextPageToken = Nothing-    , _grcrsTotal = Nothing-    , _grcrsResponseStatus = pResponseStatus_-    , _grcrsCoveragesByTime = mempty-    }----- | The token for the next set of retrievable results. AWS provides the token when the response from a previous call has more results than the maximum page size.-grcrsNextPageToken :: Lens' GetReservationCoverageResponse (Maybe Text)-grcrsNextPageToken = lens _grcrsNextPageToken (\ s a -> s{_grcrsNextPageToken = a})---- | The total amount of instance usage that is covered by a reservation.-grcrsTotal :: Lens' GetReservationCoverageResponse (Maybe Coverage)-grcrsTotal = lens _grcrsTotal (\ s a -> s{_grcrsTotal = a})---- | -- | The response status code.-grcrsResponseStatus :: Lens' GetReservationCoverageResponse Int-grcrsResponseStatus = lens _grcrsResponseStatus (\ s a -> s{_grcrsResponseStatus = a})---- | The amount of time that your reservations covered.-grcrsCoveragesByTime :: Lens' GetReservationCoverageResponse [CoverageByTime]-grcrsCoveragesByTime = lens _grcrsCoveragesByTime (\ s a -> s{_grcrsCoveragesByTime = a}) . _Coerce--instance NFData GetReservationCoverageResponse where
− gen/Network/AWS/CostExplorer/GetReservationPurchaseRecommendation.hs
@@ -1,258 +0,0 @@-{-# LANGUAGE DeriveDataTypeable #-}-{-# LANGUAGE DeriveGeneric      #-}-{-# LANGUAGE OverloadedStrings  #-}-{-# LANGUAGE RecordWildCards    #-}-{-# LANGUAGE TypeFamilies       #-}--{-# OPTIONS_GHC -fno-warn-unused-imports #-}-{-# OPTIONS_GHC -fno-warn-unused-binds   #-}-{-# OPTIONS_GHC -fno-warn-unused-matches #-}---- Derived from AWS service descriptions, licensed under Apache 2.0.---- |--- Module      : Network.AWS.CostExplorer.GetReservationPurchaseRecommendation--- Copyright   : (c) 2013-2018 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)------ Gets recommendations for which reservations to purchase. These recommendations could help you reduce your costs. Reservations provide a discounted hourly rate (up to 75%) compared to On-Demand pricing.--------- AWS generates your recommendations by identifying your On-Demand usage during a specific time period and collecting your usage into categories that are eligible for a reservation. After AWS has these categories, it simulates every combination of reservations in each category of usage to identify the best number of each type of RI to purchase to maximize your estimated savings.------ For example, AWS automatically aggregates your EC2 Linux, shared tenancy, and c4 family usage in the US West (Oregon) Region and recommends that you buy size-flexible regional reservations to apply to the c4 family usage. AWS recommends the smallest size instance in an instance family. This makes it easier to purchase a size-flexible RI. AWS also shows the equal number of normalized units so that you can purchase any instance size that you want. For this example, your RI recommendation would be for @c4.large@ , because that is the smallest size instance in the c4 instance family.----module Network.AWS.CostExplorer.GetReservationPurchaseRecommendation-    (-    -- * Creating a Request-      getReservationPurchaseRecommendation-    , GetReservationPurchaseRecommendation-    -- * Request Lenses-    , grprNextPageToken-    , grprTermInYears-    , grprServiceSpecification-    , grprAccountScope-    , grprAccountId-    , grprPageSize-    , grprLookbackPeriodInDays-    , grprPaymentOption-    , grprService--    -- * Destructuring the Response-    , getReservationPurchaseRecommendationResponse-    , GetReservationPurchaseRecommendationResponse-    -- * Response Lenses-    , grprrsNextPageToken-    , grprrsRecommendations-    , grprrsMetadata-    , grprrsResponseStatus-    ) where--import Network.AWS.CostExplorer.Types-import Network.AWS.CostExplorer.Types.Product-import Network.AWS.Lens-import Network.AWS.Prelude-import Network.AWS.Request-import Network.AWS.Response---- | /See:/ 'getReservationPurchaseRecommendation' smart constructor.-data GetReservationPurchaseRecommendation = GetReservationPurchaseRecommendation'-  { _grprNextPageToken        :: !(Maybe Text)-  , _grprTermInYears          :: !(Maybe TermInYears)-  , _grprServiceSpecification :: !(Maybe ServiceSpecification)-  , _grprAccountScope         :: !(Maybe AccountScope)-  , _grprAccountId            :: !(Maybe Text)-  , _grprPageSize             :: !(Maybe Nat)-  , _grprLookbackPeriodInDays :: !(Maybe LookbackPeriodInDays)-  , _grprPaymentOption        :: !(Maybe PaymentOption)-  , _grprService              :: !Text-  } deriving (Eq, Read, Show, Data, Typeable, Generic)----- | Creates a value of 'GetReservationPurchaseRecommendation' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'grprNextPageToken' - The pagination token that indicates the next set of results that you want to retrieve.------ * 'grprTermInYears' - The reservation term that you want recommendations for.------ * 'grprServiceSpecification' - The hardware specifications for the service instances that you want recommendations for, such as standard or convertible EC2 instances.------ * 'grprAccountScope' - The account scope that you want recommendations for. The only valid value is @Payer@ . This means that AWS includes the master account and any member accounts when it calculates its recommendations.------ * 'grprAccountId' - The account ID that is associated with the recommendation.------ * 'grprPageSize' - The number of recommendations that you want returned in a single response object.------ * 'grprLookbackPeriodInDays' - The number of previous days that you want AWS to consider when it calculates your recommendations.------ * 'grprPaymentOption' - The reservation purchase option that you want recommendations for.------ * 'grprService' - The specific service that you want recommendations for.-getReservationPurchaseRecommendation-    :: Text -- ^ 'grprService'-    -> GetReservationPurchaseRecommendation-getReservationPurchaseRecommendation pService_ =-  GetReservationPurchaseRecommendation'-    { _grprNextPageToken = Nothing-    , _grprTermInYears = Nothing-    , _grprServiceSpecification = Nothing-    , _grprAccountScope = Nothing-    , _grprAccountId = Nothing-    , _grprPageSize = Nothing-    , _grprLookbackPeriodInDays = Nothing-    , _grprPaymentOption = Nothing-    , _grprService = pService_-    }----- | The pagination token that indicates the next set of results that you want to retrieve.-grprNextPageToken :: Lens' GetReservationPurchaseRecommendation (Maybe Text)-grprNextPageToken = lens _grprNextPageToken (\ s a -> s{_grprNextPageToken = a})---- | The reservation term that you want recommendations for.-grprTermInYears :: Lens' GetReservationPurchaseRecommendation (Maybe TermInYears)-grprTermInYears = lens _grprTermInYears (\ s a -> s{_grprTermInYears = a})---- | The hardware specifications for the service instances that you want recommendations for, such as standard or convertible EC2 instances.-grprServiceSpecification :: Lens' GetReservationPurchaseRecommendation (Maybe ServiceSpecification)-grprServiceSpecification = lens _grprServiceSpecification (\ s a -> s{_grprServiceSpecification = a})---- | The account scope that you want recommendations for. The only valid value is @Payer@ . This means that AWS includes the master account and any member accounts when it calculates its recommendations.-grprAccountScope :: Lens' GetReservationPurchaseRecommendation (Maybe AccountScope)-grprAccountScope = lens _grprAccountScope (\ s a -> s{_grprAccountScope = a})---- | The account ID that is associated with the recommendation.-grprAccountId :: Lens' GetReservationPurchaseRecommendation (Maybe Text)-grprAccountId = lens _grprAccountId (\ s a -> s{_grprAccountId = a})---- | The number of recommendations that you want returned in a single response object.-grprPageSize :: Lens' GetReservationPurchaseRecommendation (Maybe Natural)-grprPageSize = lens _grprPageSize (\ s a -> s{_grprPageSize = a}) . mapping _Nat---- | The number of previous days that you want AWS to consider when it calculates your recommendations.-grprLookbackPeriodInDays :: Lens' GetReservationPurchaseRecommendation (Maybe LookbackPeriodInDays)-grprLookbackPeriodInDays = lens _grprLookbackPeriodInDays (\ s a -> s{_grprLookbackPeriodInDays = a})---- | The reservation purchase option that you want recommendations for.-grprPaymentOption :: Lens' GetReservationPurchaseRecommendation (Maybe PaymentOption)-grprPaymentOption = lens _grprPaymentOption (\ s a -> s{_grprPaymentOption = a})---- | The specific service that you want recommendations for.-grprService :: Lens' GetReservationPurchaseRecommendation Text-grprService = lens _grprService (\ s a -> s{_grprService = a})--instance AWSRequest-           GetReservationPurchaseRecommendation-         where-        type Rs GetReservationPurchaseRecommendation =-             GetReservationPurchaseRecommendationResponse-        request = postJSON costExplorer-        response-          = receiveJSON-              (\ s h x ->-                 GetReservationPurchaseRecommendationResponse' <$>-                   (x .?> "NextPageToken") <*>-                     (x .?> "Recommendations" .!@ mempty)-                     <*> (x .?> "Metadata")-                     <*> (pure (fromEnum s)))--instance Hashable-           GetReservationPurchaseRecommendation-         where--instance NFData GetReservationPurchaseRecommendation-         where--instance ToHeaders-           GetReservationPurchaseRecommendation-         where-        toHeaders-          = const-              (mconcat-                 ["X-Amz-Target" =#-                    ("AWSInsightsIndexService.GetReservationPurchaseRecommendation"-                       :: ByteString),-                  "Content-Type" =#-                    ("application/x-amz-json-1.1" :: ByteString)])--instance ToJSON GetReservationPurchaseRecommendation-         where-        toJSON GetReservationPurchaseRecommendation'{..}-          = object-              (catMaybes-                 [("NextPageToken" .=) <$> _grprNextPageToken,-                  ("TermInYears" .=) <$> _grprTermInYears,-                  ("ServiceSpecification" .=) <$>-                    _grprServiceSpecification,-                  ("AccountScope" .=) <$> _grprAccountScope,-                  ("AccountId" .=) <$> _grprAccountId,-                  ("PageSize" .=) <$> _grprPageSize,-                  ("LookbackPeriodInDays" .=) <$>-                    _grprLookbackPeriodInDays,-                  ("PaymentOption" .=) <$> _grprPaymentOption,-                  Just ("Service" .= _grprService)])--instance ToPath GetReservationPurchaseRecommendation-         where-        toPath = const "/"--instance ToQuery GetReservationPurchaseRecommendation-         where-        toQuery = const mempty---- | /See:/ 'getReservationPurchaseRecommendationResponse' smart constructor.-data GetReservationPurchaseRecommendationResponse = GetReservationPurchaseRecommendationResponse'-  { _grprrsNextPageToken   :: !(Maybe Text)-  , _grprrsRecommendations :: !(Maybe [ReservationPurchaseRecommendation])-  , _grprrsMetadata        :: !(Maybe ReservationPurchaseRecommendationMetadata)-  , _grprrsResponseStatus  :: !Int-  } deriving (Eq, Read, Show, Data, Typeable, Generic)----- | Creates a value of 'GetReservationPurchaseRecommendationResponse' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'grprrsNextPageToken' - The pagination token for the next set of retrievable results.------ * 'grprrsRecommendations' - Recommendations for reservations to purchase.------ * 'grprrsMetadata' - Information about this specific recommendation call, such as the time stamp for when Cost Explorer generated this recommendation.------ * 'grprrsResponseStatus' - -- | The response status code.-getReservationPurchaseRecommendationResponse-    :: Int -- ^ 'grprrsResponseStatus'-    -> GetReservationPurchaseRecommendationResponse-getReservationPurchaseRecommendationResponse pResponseStatus_ =-  GetReservationPurchaseRecommendationResponse'-    { _grprrsNextPageToken = Nothing-    , _grprrsRecommendations = Nothing-    , _grprrsMetadata = Nothing-    , _grprrsResponseStatus = pResponseStatus_-    }----- | The pagination token for the next set of retrievable results.-grprrsNextPageToken :: Lens' GetReservationPurchaseRecommendationResponse (Maybe Text)-grprrsNextPageToken = lens _grprrsNextPageToken (\ s a -> s{_grprrsNextPageToken = a})---- | Recommendations for reservations to purchase.-grprrsRecommendations :: Lens' GetReservationPurchaseRecommendationResponse [ReservationPurchaseRecommendation]-grprrsRecommendations = lens _grprrsRecommendations (\ s a -> s{_grprrsRecommendations = a}) . _Default . _Coerce---- | Information about this specific recommendation call, such as the time stamp for when Cost Explorer generated this recommendation.-grprrsMetadata :: Lens' GetReservationPurchaseRecommendationResponse (Maybe ReservationPurchaseRecommendationMetadata)-grprrsMetadata = lens _grprrsMetadata (\ s a -> s{_grprrsMetadata = a})---- | -- | The response status code.-grprrsResponseStatus :: Lens' GetReservationPurchaseRecommendationResponse Int-grprrsResponseStatus = lens _grprrsResponseStatus (\ s a -> s{_grprrsResponseStatus = a})--instance NFData-           GetReservationPurchaseRecommendationResponse-         where
− gen/Network/AWS/CostExplorer/GetReservationUtilization.hs
@@ -1,200 +0,0 @@-{-# LANGUAGE DeriveDataTypeable #-}-{-# LANGUAGE DeriveGeneric      #-}-{-# LANGUAGE OverloadedStrings  #-}-{-# LANGUAGE RecordWildCards    #-}-{-# LANGUAGE TypeFamilies       #-}--{-# OPTIONS_GHC -fno-warn-unused-imports #-}-{-# OPTIONS_GHC -fno-warn-unused-binds   #-}-{-# OPTIONS_GHC -fno-warn-unused-matches #-}---- Derived from AWS service descriptions, licensed under Apache 2.0.---- |--- Module      : Network.AWS.CostExplorer.GetReservationUtilization--- Copyright   : (c) 2013-2018 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)------ Retrieves the reservation utilization for your account. Master accounts in an organization have access to member accounts. You can filter data by dimensions in a time period. You can use @GetDimensionValues@ to determine the possible dimension values. Currently, you can group only by @SUBSCRIPTION_ID@ .-------module Network.AWS.CostExplorer.GetReservationUtilization-    (-    -- * Creating a Request-      getReservationUtilization-    , GetReservationUtilization-    -- * Request Lenses-    , gruGroupBy-    , gruNextPageToken-    , gruGranularity-    , gruFilter-    , gruTimePeriod--    -- * Destructuring the Response-    , getReservationUtilizationResponse-    , GetReservationUtilizationResponse-    -- * Response Lenses-    , grursNextPageToken-    , grursTotal-    , grursResponseStatus-    , grursUtilizationsByTime-    ) where--import Network.AWS.CostExplorer.Types-import Network.AWS.CostExplorer.Types.Product-import Network.AWS.Lens-import Network.AWS.Prelude-import Network.AWS.Request-import Network.AWS.Response---- | /See:/ 'getReservationUtilization' smart constructor.-data GetReservationUtilization = GetReservationUtilization'-  { _gruGroupBy       :: !(Maybe [GroupDefinition])-  , _gruNextPageToken :: !(Maybe Text)-  , _gruGranularity   :: !(Maybe Granularity)-  , _gruFilter        :: !(Maybe Expression)-  , _gruTimePeriod    :: !DateInterval-  } deriving (Eq, Read, Show, Data, Typeable, Generic)----- | Creates a value of 'GetReservationUtilization' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'gruGroupBy' - Groups only by @SUBSCRIPTION_ID@ . Metadata is included.------ * 'gruNextPageToken' - The token to retrieve the next set of results. AWS provides the token when the response from a previous call has more results than the maximum page size.------ * 'gruGranularity' - If @GroupBy@ is set, @Granularity@ can't be set. If @Granularity@ isn't set, the response object doesn't include @Granularity@ , either @MONTHLY@ or @DAILY@ . If both @GroupBy@ and @Granularity@ aren't set, @GetReservationUtilization@ defaults to @DAILY@ .------ * 'gruFilter' - Filters utilization data by dimensions. You can filter by the following dimensions:     * AZ     * CACHE_ENGINE     * DATABASE_ENGINE     * DEPLOYMENT_OPTION     * INSTANCE_TYPE     * LINKED_ACCOUNT     * OPERATING_SYSTEM     * PLATFORM     * REGION     * SERVICE     * SCOPE     * TENANCY @GetReservationUtilization@ uses the same @<http://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html Expression> @ object as the other operations, but only @AND@ is supported among each dimension, and nesting is supported up to only one level deep. If there are multiple values for a dimension, they are OR'd together.------ * 'gruTimePeriod' - Sets the start and end dates for retrieving Reserved Instance (RI) utilization. The start date is inclusive, but the end date is exclusive. For example, if @start@ is @2017-01-01@ and @end@ is @2017-05-01@ , then the cost and usage data is retrieved from @2017-01-01@ up to and including @2017-04-30@ but not including @2017-05-01@ .-getReservationUtilization-    :: DateInterval -- ^ 'gruTimePeriod'-    -> GetReservationUtilization-getReservationUtilization pTimePeriod_ =-  GetReservationUtilization'-    { _gruGroupBy = Nothing-    , _gruNextPageToken = Nothing-    , _gruGranularity = Nothing-    , _gruFilter = Nothing-    , _gruTimePeriod = pTimePeriod_-    }----- | Groups only by @SUBSCRIPTION_ID@ . Metadata is included.-gruGroupBy :: Lens' GetReservationUtilization [GroupDefinition]-gruGroupBy = lens _gruGroupBy (\ s a -> s{_gruGroupBy = a}) . _Default . _Coerce---- | The token to retrieve the next set of results. AWS provides the token when the response from a previous call has more results than the maximum page size.-gruNextPageToken :: Lens' GetReservationUtilization (Maybe Text)-gruNextPageToken = lens _gruNextPageToken (\ s a -> s{_gruNextPageToken = a})---- | If @GroupBy@ is set, @Granularity@ can't be set. If @Granularity@ isn't set, the response object doesn't include @Granularity@ , either @MONTHLY@ or @DAILY@ . If both @GroupBy@ and @Granularity@ aren't set, @GetReservationUtilization@ defaults to @DAILY@ .-gruGranularity :: Lens' GetReservationUtilization (Maybe Granularity)-gruGranularity = lens _gruGranularity (\ s a -> s{_gruGranularity = a})---- | Filters utilization data by dimensions. You can filter by the following dimensions:     * AZ     * CACHE_ENGINE     * DATABASE_ENGINE     * DEPLOYMENT_OPTION     * INSTANCE_TYPE     * LINKED_ACCOUNT     * OPERATING_SYSTEM     * PLATFORM     * REGION     * SERVICE     * SCOPE     * TENANCY @GetReservationUtilization@ uses the same @<http://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_Expression.html Expression> @ object as the other operations, but only @AND@ is supported among each dimension, and nesting is supported up to only one level deep. If there are multiple values for a dimension, they are OR'd together.-gruFilter :: Lens' GetReservationUtilization (Maybe Expression)-gruFilter = lens _gruFilter (\ s a -> s{_gruFilter = a})---- | Sets the start and end dates for retrieving Reserved Instance (RI) utilization. The start date is inclusive, but the end date is exclusive. For example, if @start@ is @2017-01-01@ and @end@ is @2017-05-01@ , then the cost and usage data is retrieved from @2017-01-01@ up to and including @2017-04-30@ but not including @2017-05-01@ .-gruTimePeriod :: Lens' GetReservationUtilization DateInterval-gruTimePeriod = lens _gruTimePeriod (\ s a -> s{_gruTimePeriod = a})--instance AWSRequest GetReservationUtilization where-        type Rs GetReservationUtilization =-             GetReservationUtilizationResponse-        request = postJSON costExplorer-        response-          = receiveJSON-              (\ s h x ->-                 GetReservationUtilizationResponse' <$>-                   (x .?> "NextPageToken") <*> (x .?> "Total") <*>-                     (pure (fromEnum s))-                     <*> (x .?> "UtilizationsByTime" .!@ mempty))--instance Hashable GetReservationUtilization where--instance NFData GetReservationUtilization where--instance ToHeaders GetReservationUtilization where-        toHeaders-          = const-              (mconcat-                 ["X-Amz-Target" =#-                    ("AWSInsightsIndexService.GetReservationUtilization"-                       :: ByteString),-                  "Content-Type" =#-                    ("application/x-amz-json-1.1" :: ByteString)])--instance ToJSON GetReservationUtilization where-        toJSON GetReservationUtilization'{..}-          = object-              (catMaybes-                 [("GroupBy" .=) <$> _gruGroupBy,-                  ("NextPageToken" .=) <$> _gruNextPageToken,-                  ("Granularity" .=) <$> _gruGranularity,-                  ("Filter" .=) <$> _gruFilter,-                  Just ("TimePeriod" .= _gruTimePeriod)])--instance ToPath GetReservationUtilization where-        toPath = const "/"--instance ToQuery GetReservationUtilization where-        toQuery = const mempty---- | /See:/ 'getReservationUtilizationResponse' smart constructor.-data GetReservationUtilizationResponse = GetReservationUtilizationResponse'-  { _grursNextPageToken      :: !(Maybe Text)-  , _grursTotal              :: !(Maybe ReservationAggregates)-  , _grursResponseStatus     :: !Int-  , _grursUtilizationsByTime :: ![UtilizationByTime]-  } deriving (Eq, Read, Show, Data, Typeable, Generic)----- | Creates a value of 'GetReservationUtilizationResponse' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'grursNextPageToken' - The token for the next set of retrievable results. AWS provides the token when the response from a previous call has more results than the maximum page size.------ * 'grursTotal' - The total amount of time that you utilized your RIs.------ * 'grursResponseStatus' - -- | The response status code.------ * 'grursUtilizationsByTime' - The amount of time that you utilized your RIs.-getReservationUtilizationResponse-    :: Int -- ^ 'grursResponseStatus'-    -> GetReservationUtilizationResponse-getReservationUtilizationResponse pResponseStatus_ =-  GetReservationUtilizationResponse'-    { _grursNextPageToken = Nothing-    , _grursTotal = Nothing-    , _grursResponseStatus = pResponseStatus_-    , _grursUtilizationsByTime = mempty-    }----- | The token for the next set of retrievable results. AWS provides the token when the response from a previous call has more results than the maximum page size.-grursNextPageToken :: Lens' GetReservationUtilizationResponse (Maybe Text)-grursNextPageToken = lens _grursNextPageToken (\ s a -> s{_grursNextPageToken = a})---- | The total amount of time that you utilized your RIs.-grursTotal :: Lens' GetReservationUtilizationResponse (Maybe ReservationAggregates)-grursTotal = lens _grursTotal (\ s a -> s{_grursTotal = a})---- | -- | The response status code.-grursResponseStatus :: Lens' GetReservationUtilizationResponse Int-grursResponseStatus = lens _grursResponseStatus (\ s a -> s{_grursResponseStatus = a})---- | The amount of time that you utilized your RIs.-grursUtilizationsByTime :: Lens' GetReservationUtilizationResponse [UtilizationByTime]-grursUtilizationsByTime = lens _grursUtilizationsByTime (\ s a -> s{_grursUtilizationsByTime = a}) . _Coerce--instance NFData GetReservationUtilizationResponse-         where
− gen/Network/AWS/CostExplorer/GetTags.hs
@@ -1,199 +0,0 @@-{-# LANGUAGE DeriveDataTypeable #-}-{-# LANGUAGE DeriveGeneric      #-}-{-# LANGUAGE OverloadedStrings  #-}-{-# LANGUAGE RecordWildCards    #-}-{-# LANGUAGE TypeFamilies       #-}--{-# OPTIONS_GHC -fno-warn-unused-imports #-}-{-# OPTIONS_GHC -fno-warn-unused-binds   #-}-{-# OPTIONS_GHC -fno-warn-unused-matches #-}---- Derived from AWS service descriptions, licensed under Apache 2.0.---- |--- Module      : Network.AWS.CostExplorer.GetTags--- Copyright   : (c) 2013-2018 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)------ Queries for available tag keys and tag values for a specified period. You can search the tag values for an arbitrary string.-------module Network.AWS.CostExplorer.GetTags-    (-    -- * Creating a Request-      getTags-    , GetTags-    -- * Request Lenses-    , gtNextPageToken-    , gtSearchString-    , gtTagKey-    , gtTimePeriod--    -- * Destructuring the Response-    , getTagsResponse-    , GetTagsResponse-    -- * Response Lenses-    , gtrsNextPageToken-    , gtrsResponseStatus-    , gtrsTags-    , gtrsReturnSize-    , gtrsTotalSize-    ) where--import Network.AWS.CostExplorer.Types-import Network.AWS.CostExplorer.Types.Product-import Network.AWS.Lens-import Network.AWS.Prelude-import Network.AWS.Request-import Network.AWS.Response---- | /See:/ 'getTags' smart constructor.-data GetTags = GetTags'-  { _gtNextPageToken :: !(Maybe Text)-  , _gtSearchString  :: !(Maybe Text)-  , _gtTagKey        :: !(Maybe Text)-  , _gtTimePeriod    :: !DateInterval-  } deriving (Eq, Read, Show, Data, Typeable, Generic)----- | Creates a value of 'GetTags' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'gtNextPageToken' - The token to retrieve the next set of results. AWS provides the token when the response from a previous call has more results than the maximum page size.------ * 'gtSearchString' - The value that you want to search for.------ * 'gtTagKey' - The key of the tag that you want to return values for.------ * 'gtTimePeriod' - The start and end dates for retrieving the dimension values. The start date is inclusive, but the end date is exclusive. For example, if @start@ is @2017-01-01@ and @end@ is @2017-05-01@ , then the cost and usage data is retrieved from @2017-01-01@ up to and including @2017-04-30@ but not including @2017-05-01@ .-getTags-    :: DateInterval -- ^ 'gtTimePeriod'-    -> GetTags-getTags pTimePeriod_ =-  GetTags'-    { _gtNextPageToken = Nothing-    , _gtSearchString = Nothing-    , _gtTagKey = Nothing-    , _gtTimePeriod = pTimePeriod_-    }----- | The token to retrieve the next set of results. AWS provides the token when the response from a previous call has more results than the maximum page size.-gtNextPageToken :: Lens' GetTags (Maybe Text)-gtNextPageToken = lens _gtNextPageToken (\ s a -> s{_gtNextPageToken = a})---- | The value that you want to search for.-gtSearchString :: Lens' GetTags (Maybe Text)-gtSearchString = lens _gtSearchString (\ s a -> s{_gtSearchString = a})---- | The key of the tag that you want to return values for.-gtTagKey :: Lens' GetTags (Maybe Text)-gtTagKey = lens _gtTagKey (\ s a -> s{_gtTagKey = a})---- | The start and end dates for retrieving the dimension values. The start date is inclusive, but the end date is exclusive. For example, if @start@ is @2017-01-01@ and @end@ is @2017-05-01@ , then the cost and usage data is retrieved from @2017-01-01@ up to and including @2017-04-30@ but not including @2017-05-01@ .-gtTimePeriod :: Lens' GetTags DateInterval-gtTimePeriod = lens _gtTimePeriod (\ s a -> s{_gtTimePeriod = a})--instance AWSRequest GetTags where-        type Rs GetTags = GetTagsResponse-        request = postJSON costExplorer-        response-          = receiveJSON-              (\ s h x ->-                 GetTagsResponse' <$>-                   (x .?> "NextPageToken") <*> (pure (fromEnum s)) <*>-                     (x .?> "Tags" .!@ mempty)-                     <*> (x .:> "ReturnSize")-                     <*> (x .:> "TotalSize"))--instance Hashable GetTags where--instance NFData GetTags where--instance ToHeaders GetTags where-        toHeaders-          = const-              (mconcat-                 ["X-Amz-Target" =#-                    ("AWSInsightsIndexService.GetTags" :: ByteString),-                  "Content-Type" =#-                    ("application/x-amz-json-1.1" :: ByteString)])--instance ToJSON GetTags where-        toJSON GetTags'{..}-          = object-              (catMaybes-                 [("NextPageToken" .=) <$> _gtNextPageToken,-                  ("SearchString" .=) <$> _gtSearchString,-                  ("TagKey" .=) <$> _gtTagKey,-                  Just ("TimePeriod" .= _gtTimePeriod)])--instance ToPath GetTags where-        toPath = const "/"--instance ToQuery GetTags where-        toQuery = const mempty---- | /See:/ 'getTagsResponse' smart constructor.-data GetTagsResponse = GetTagsResponse'-  { _gtrsNextPageToken  :: !(Maybe Text)-  , _gtrsResponseStatus :: !Int-  , _gtrsTags           :: ![Text]-  , _gtrsReturnSize     :: !Int-  , _gtrsTotalSize      :: !Int-  } deriving (Eq, Read, Show, Data, Typeable, Generic)----- | Creates a value of 'GetTagsResponse' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'gtrsNextPageToken' - The token for the next set of retrievable results. AWS provides the token when the response from a previous call has more results than the maximum page size.------ * 'gtrsResponseStatus' - -- | The response status code.------ * 'gtrsTags' - The tags that match your request.------ * 'gtrsReturnSize' - The number of query results that AWS returns at a time.------ * 'gtrsTotalSize' - The total number of query results.-getTagsResponse-    :: Int -- ^ 'gtrsResponseStatus'-    -> Int -- ^ 'gtrsReturnSize'-    -> Int -- ^ 'gtrsTotalSize'-    -> GetTagsResponse-getTagsResponse pResponseStatus_ pReturnSize_ pTotalSize_ =-  GetTagsResponse'-    { _gtrsNextPageToken = Nothing-    , _gtrsResponseStatus = pResponseStatus_-    , _gtrsTags = mempty-    , _gtrsReturnSize = pReturnSize_-    , _gtrsTotalSize = pTotalSize_-    }----- | The token for the next set of retrievable results. AWS provides the token when the response from a previous call has more results than the maximum page size.-gtrsNextPageToken :: Lens' GetTagsResponse (Maybe Text)-gtrsNextPageToken = lens _gtrsNextPageToken (\ s a -> s{_gtrsNextPageToken = a})---- | -- | The response status code.-gtrsResponseStatus :: Lens' GetTagsResponse Int-gtrsResponseStatus = lens _gtrsResponseStatus (\ s a -> s{_gtrsResponseStatus = a})---- | The tags that match your request.-gtrsTags :: Lens' GetTagsResponse [Text]-gtrsTags = lens _gtrsTags (\ s a -> s{_gtrsTags = a}) . _Coerce---- | The number of query results that AWS returns at a time.-gtrsReturnSize :: Lens' GetTagsResponse Int-gtrsReturnSize = lens _gtrsReturnSize (\ s a -> s{_gtrsReturnSize = a})---- | The total number of query results.-gtrsTotalSize :: Lens' GetTagsResponse Int-gtrsTotalSize = lens _gtrsTotalSize (\ s a -> s{_gtrsTotalSize = a})--instance NFData GetTagsResponse where
− gen/Network/AWS/CostExplorer/Types.hs
@@ -1,330 +0,0 @@-{-# LANGUAGE OverloadedStrings #-}---- Derived from AWS service descriptions, licensed under Apache 2.0.---- |--- Module      : Network.AWS.CostExplorer.Types--- Copyright   : (c) 2013-2018 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)----module Network.AWS.CostExplorer.Types-    (-    -- * Service Configuration-      costExplorer--    -- * Errors-    , _BillExpirationException-    , _RequestChangedException-    , _InvalidNextTokenException-    , _DataUnavailableException-    , _LimitExceededException--    -- * AccountScope-    , AccountScope (..)--    -- * Context-    , Context (..)--    -- * Dimension-    , Dimension (..)--    -- * Granularity-    , Granularity (..)--    -- * GroupDefinitionType-    , GroupDefinitionType (..)--    -- * LookbackPeriodInDays-    , LookbackPeriodInDays (..)--    -- * OfferingClass-    , OfferingClass (..)--    -- * PaymentOption-    , PaymentOption (..)--    -- * TermInYears-    , TermInYears (..)--    -- * Coverage-    , Coverage-    , coverage-    , cCoverageHours--    -- * CoverageByTime-    , CoverageByTime-    , coverageByTime-    , cbtGroups-    , cbtTimePeriod-    , cbtTotal--    -- * CoverageHours-    , CoverageHours-    , coverageHours-    , chCoverageHoursPercentage-    , chOnDemandHours-    , chTotalRunningHours-    , chReservedHours--    -- * DateInterval-    , DateInterval-    , dateInterval-    , diStart-    , diEnd--    -- * DimensionValues-    , DimensionValues-    , dimensionValues-    , dvValues-    , dvKey--    -- * DimensionValuesWithAttributes-    , DimensionValuesWithAttributes-    , dimensionValuesWithAttributes-    , dvwaValue-    , dvwaAttributes--    -- * EC2InstanceDetails-    , EC2InstanceDetails-    , ec2InstanceDetails-    , eidCurrentGeneration-    , eidPlatform-    , eidFamily-    , eidInstanceType-    , eidAvailabilityZone-    , eidSizeFlexEligible-    , eidTenancy-    , eidRegion--    -- * EC2Specification-    , EC2Specification-    , ec2Specification-    , esOfferingClass--    -- * Expression-    , Expression-    , expression-    , eNot-    , eAnd-    , eOr-    , eDimensions-    , eTags--    -- * Group-    , Group-    , group'-    , gMetrics-    , gKeys--    -- * GroupDefinition-    , GroupDefinition-    , groupDefinition-    , gdKey-    , gdType--    -- * InstanceDetails-    , InstanceDetails-    , instanceDetails-    , idRDSInstanceDetails-    , idEC2InstanceDetails--    -- * MetricValue-    , MetricValue-    , metricValue-    , mvAmount-    , mvUnit--    -- * RDSInstanceDetails-    , RDSInstanceDetails-    , rdsInstanceDetails-    , ridCurrentGeneration-    , ridDeploymentOption-    , ridFamily-    , ridInstanceType-    , ridLicenseModel-    , ridSizeFlexEligible-    , ridRegion-    , ridDatabaseEngine--    -- * ReservationAggregates-    , ReservationAggregates-    , reservationAggregates-    , raPurchasedHours-    , raTotalActualHours-    , raUtilizationPercentage-    , raUnusedHours--    -- * ReservationCoverageGroup-    , ReservationCoverageGroup-    , reservationCoverageGroup-    , rcgCoverage-    , rcgAttributes--    -- * ReservationPurchaseRecommendation-    , ReservationPurchaseRecommendation-    , reservationPurchaseRecommendation-    , rprTermInYears-    , rprRecommendationSummary-    , rprServiceSpecification-    , rprAccountScope-    , rprRecommendationDetails-    , rprLookbackPeriodInDays-    , rprPaymentOption--    -- * ReservationPurchaseRecommendationDetail-    , ReservationPurchaseRecommendationDetail-    , reservationPurchaseRecommendationDetail-    , rprdMaximumNormalizedUnitsUsedPerHour-    , rprdRecurringStandardMonthlyCost-    , rprdAverageNormalizedUnitsUsedPerHour-    , rprdCurrencyCode-    , rprdEstimatedMonthlySavingsPercentage-    , rprdRecommendedNormalizedUnitsToPurchase-    , rprdAverageUtilization-    , rprdEstimatedMonthlySavingsAmount-    , rprdUpfrontCost-    , rprdMinimumNormalizedUnitsUsedPerHour-    , rprdEstimatedMonthlyOnDemandCost-    , rprdRecommendedNumberOfInstancesToPurchase-    , rprdMaximumNumberOfInstancesUsedPerHour-    , rprdEstimatedReservationCostForLookbackPeriod-    , rprdInstanceDetails-    , rprdAverageNumberOfInstancesUsedPerHour-    , rprdMinimumNumberOfInstancesUsedPerHour-    , rprdEstimatedBreakEvenInMonths--    -- * ReservationPurchaseRecommendationMetadata-    , ReservationPurchaseRecommendationMetadata-    , reservationPurchaseRecommendationMetadata-    , rprmRecommendationId-    , rprmGenerationTimestamp--    -- * ReservationPurchaseRecommendationSummary-    , ReservationPurchaseRecommendationSummary-    , reservationPurchaseRecommendationSummary-    , rprsCurrencyCode-    , rprsTotalEstimatedMonthlySavingsPercentage-    , rprsTotalEstimatedMonthlySavingsAmount--    -- * ReservationUtilizationGroup-    , ReservationUtilizationGroup-    , reservationUtilizationGroup-    , rugValue-    , rugKey-    , rugAttributes-    , rugUtilization--    -- * ResultByTime-    , ResultByTime-    , resultByTime-    , rbtGroups-    , rbtTimePeriod-    , rbtTotal-    , rbtEstimated--    -- * ServiceSpecification-    , ServiceSpecification-    , serviceSpecification-    , ssEC2Specification--    -- * TagValues-    , TagValues-    , tagValues-    , tvValues-    , tvKey--    -- * UtilizationByTime-    , UtilizationByTime-    , utilizationByTime-    , ubtGroups-    , ubtTimePeriod-    , ubtTotal-    ) where--import Network.AWS.CostExplorer.Types.Product-import Network.AWS.CostExplorer.Types.Sum-import Network.AWS.Lens-import Network.AWS.Prelude-import Network.AWS.Sign.V4---- | API version @2017-10-25@ of the Amazon Cost Explorer Service SDK configuration.-costExplorer :: Service-costExplorer =-  Service-    { _svcAbbrev = "CostExplorer"-    , _svcSigner = v4-    , _svcPrefix = "ce"-    , _svcVersion = "2017-10-25"-    , _svcEndpoint = defaultEndpoint costExplorer-    , _svcTimeout = Just 70-    , _svcCheck = statusSuccess-    , _svcError = parseJSONError "CostExplorer"-    , _svcRetry = retry-    }-  where-    retry =-      Exponential-        { _retryBase = 5.0e-2-        , _retryGrowth = 2-        , _retryAttempts = 5-        , _retryCheck = check-        }-    check e-      | has (hasCode "ThrottledException" . hasStatus 400) e =-        Just "throttled_exception"-      | has (hasStatus 429) e = Just "too_many_requests"-      | has (hasCode "ThrottlingException" . hasStatus 400) e =-        Just "throttling_exception"-      | has (hasCode "Throttling" . hasStatus 400) e = Just "throttling"-      | has (hasStatus 504) e = Just "gateway_timeout"-      | has (hasCode "RequestThrottledException" . hasStatus 400) e =-        Just "request_throttled_exception"-      | has (hasStatus 502) e = Just "bad_gateway"-      | has (hasStatus 503) e = Just "service_unavailable"-      | has (hasStatus 500) e = Just "general_server_error"-      | has (hasStatus 509) e = Just "limit_exceeded"-      | otherwise = Nothing----- | The requested report expired. Update the date interval and try again.-------_BillExpirationException :: AsError a => Getting (First ServiceError) a ServiceError-_BillExpirationException =-  _MatchServiceError costExplorer "BillExpirationException"----- | Your request parameters changed between pages. Try again with the old parameters or without a pagination token.-------_RequestChangedException :: AsError a => Getting (First ServiceError) a ServiceError-_RequestChangedException =-  _MatchServiceError costExplorer "RequestChangedException"----- | The pagination token is invalid. Try again without a pagination token.-------_InvalidNextTokenException :: AsError a => Getting (First ServiceError) a ServiceError-_InvalidNextTokenException =-  _MatchServiceError costExplorer "InvalidNextTokenException"----- | The requested data is unavailable.-------_DataUnavailableException :: AsError a => Getting (First ServiceError) a ServiceError-_DataUnavailableException =-  _MatchServiceError costExplorer "DataUnavailableException"----- | You made too many calls in a short period of time. Try again later.-------_LimitExceededException :: AsError a => Getting (First ServiceError) a ServiceError-_LimitExceededException =-  _MatchServiceError costExplorer "LimitExceededException"-
− gen/Network/AWS/CostExplorer/Types/Product.hs
@@ -1,1589 +0,0 @@-{-# LANGUAGE DeriveDataTypeable #-}-{-# LANGUAGE DeriveGeneric      #-}-{-# LANGUAGE OverloadedStrings  #-}-{-# LANGUAGE RecordWildCards    #-}--{-# OPTIONS_GHC -fno-warn-unused-imports #-}---- Derived from AWS service descriptions, licensed under Apache 2.0.---- |--- Module      : Network.AWS.CostExplorer.Types.Product--- Copyright   : (c) 2013-2018 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)----module Network.AWS.CostExplorer.Types.Product where--import Network.AWS.CostExplorer.Types.Sum-import Network.AWS.Lens-import Network.AWS.Prelude---- | The amount of instance usage that a reservation covered.------------ /See:/ 'coverage' smart constructor.-newtype Coverage = Coverage'-  { _cCoverageHours :: Maybe CoverageHours-  } deriving (Eq, Read, Show, Data, Typeable, Generic)----- | Creates a value of 'Coverage' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'cCoverageHours' - The amount of instance usage that a reservation covered, in hours.-coverage-    :: Coverage-coverage = Coverage' {_cCoverageHours = Nothing}----- | The amount of instance usage that a reservation covered, in hours.-cCoverageHours :: Lens' Coverage (Maybe CoverageHours)-cCoverageHours = lens _cCoverageHours (\ s a -> s{_cCoverageHours = a})--instance FromJSON Coverage where-        parseJSON-          = withObject "Coverage"-              (\ x -> Coverage' <$> (x .:? "CoverageHours"))--instance Hashable Coverage where--instance NFData Coverage where---- | Reservation coverage for a specified period, in hours.------------ /See:/ 'coverageByTime' smart constructor.-data CoverageByTime = CoverageByTime'-  { _cbtGroups     :: !(Maybe [ReservationCoverageGroup])-  , _cbtTimePeriod :: !(Maybe DateInterval)-  , _cbtTotal      :: !(Maybe Coverage)-  } deriving (Eq, Read, Show, Data, Typeable, Generic)----- | Creates a value of 'CoverageByTime' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'cbtGroups' - The groups of instances that are covered by a reservation.------ * 'cbtTimePeriod' - The period over which this coverage was used.------ * 'cbtTotal' - The total reservation coverage, in hours.-coverageByTime-    :: CoverageByTime-coverageByTime =-  CoverageByTime'-    {_cbtGroups = Nothing, _cbtTimePeriod = Nothing, _cbtTotal = Nothing}----- | The groups of instances that are covered by a reservation.-cbtGroups :: Lens' CoverageByTime [ReservationCoverageGroup]-cbtGroups = lens _cbtGroups (\ s a -> s{_cbtGroups = a}) . _Default . _Coerce---- | The period over which this coverage was used.-cbtTimePeriod :: Lens' CoverageByTime (Maybe DateInterval)-cbtTimePeriod = lens _cbtTimePeriod (\ s a -> s{_cbtTimePeriod = a})---- | The total reservation coverage, in hours.-cbtTotal :: Lens' CoverageByTime (Maybe Coverage)-cbtTotal = lens _cbtTotal (\ s a -> s{_cbtTotal = a})--instance FromJSON CoverageByTime where-        parseJSON-          = withObject "CoverageByTime"-              (\ x ->-                 CoverageByTime' <$>-                   (x .:? "Groups" .!= mempty) <*> (x .:? "TimePeriod")-                     <*> (x .:? "Total"))--instance Hashable CoverageByTime where--instance NFData CoverageByTime where---- | How long a running instance either used a reservation or was On-Demand.------------ /See:/ 'coverageHours' smart constructor.-data CoverageHours = CoverageHours'-  { _chCoverageHoursPercentage :: !(Maybe Text)-  , _chOnDemandHours           :: !(Maybe Text)-  , _chTotalRunningHours       :: !(Maybe Text)-  , _chReservedHours           :: !(Maybe Text)-  } deriving (Eq, Read, Show, Data, Typeable, Generic)----- | Creates a value of 'CoverageHours' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'chCoverageHoursPercentage' - The percentage of instance hours that are covered by a reservation.------ * 'chOnDemandHours' - The number of instance running hours that are covered by On-Demand Instances.------ * 'chTotalRunningHours' - The total instance usage, in hours.------ * 'chReservedHours' - The number of instance running hours that are covered by reservations.-coverageHours-    :: CoverageHours-coverageHours =-  CoverageHours'-    { _chCoverageHoursPercentage = Nothing-    , _chOnDemandHours = Nothing-    , _chTotalRunningHours = Nothing-    , _chReservedHours = Nothing-    }----- | The percentage of instance hours that are covered by a reservation.-chCoverageHoursPercentage :: Lens' CoverageHours (Maybe Text)-chCoverageHoursPercentage = lens _chCoverageHoursPercentage (\ s a -> s{_chCoverageHoursPercentage = a})---- | The number of instance running hours that are covered by On-Demand Instances.-chOnDemandHours :: Lens' CoverageHours (Maybe Text)-chOnDemandHours = lens _chOnDemandHours (\ s a -> s{_chOnDemandHours = a})---- | The total instance usage, in hours.-chTotalRunningHours :: Lens' CoverageHours (Maybe Text)-chTotalRunningHours = lens _chTotalRunningHours (\ s a -> s{_chTotalRunningHours = a})---- | The number of instance running hours that are covered by reservations.-chReservedHours :: Lens' CoverageHours (Maybe Text)-chReservedHours = lens _chReservedHours (\ s a -> s{_chReservedHours = a})--instance FromJSON CoverageHours where-        parseJSON-          = withObject "CoverageHours"-              (\ x ->-                 CoverageHours' <$>-                   (x .:? "CoverageHoursPercentage") <*>-                     (x .:? "OnDemandHours")-                     <*> (x .:? "TotalRunningHours")-                     <*> (x .:? "ReservedHours"))--instance Hashable CoverageHours where--instance NFData CoverageHours where---- | The time period that you want the usage and costs for.------------ /See:/ 'dateInterval' smart constructor.-data DateInterval = DateInterval'-  { _diStart :: !Text-  , _diEnd   :: !Text-  } deriving (Eq, Read, Show, Data, Typeable, Generic)----- | Creates a value of 'DateInterval' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'diStart' - The beginning of the time period that you want the usage and costs for. The start date is inclusive. For example, if @start@ is @2017-01-01@ , AWS retrieves cost and usage data starting at @2017-01-01@ up to the end date.------ * 'diEnd' - The end of the time period that you want the usage and costs for. The end date is exclusive. For example, if @end@ is @2017-05-01@ , AWS retrieves cost and usage data from the start date up to, but not including, @2017-05-01@ .-dateInterval-    :: Text -- ^ 'diStart'-    -> Text -- ^ 'diEnd'-    -> DateInterval-dateInterval pStart_ pEnd_ = DateInterval' {_diStart = pStart_, _diEnd = pEnd_}----- | The beginning of the time period that you want the usage and costs for. The start date is inclusive. For example, if @start@ is @2017-01-01@ , AWS retrieves cost and usage data starting at @2017-01-01@ up to the end date.-diStart :: Lens' DateInterval Text-diStart = lens _diStart (\ s a -> s{_diStart = a})---- | The end of the time period that you want the usage and costs for. The end date is exclusive. For example, if @end@ is @2017-05-01@ , AWS retrieves cost and usage data from the start date up to, but not including, @2017-05-01@ .-diEnd :: Lens' DateInterval Text-diEnd = lens _diEnd (\ s a -> s{_diEnd = a})--instance FromJSON DateInterval where-        parseJSON-          = withObject "DateInterval"-              (\ x ->-                 DateInterval' <$> (x .: "Start") <*> (x .: "End"))--instance Hashable DateInterval where--instance NFData DateInterval where--instance ToJSON DateInterval where-        toJSON DateInterval'{..}-          = object-              (catMaybes-                 [Just ("Start" .= _diStart), Just ("End" .= _diEnd)])---- | The metadata that you can use to filter and group your results. You can use @GetDimensionValues@ to find specific values.------------ /See:/ 'dimensionValues' smart constructor.-data DimensionValues = DimensionValues'-  { _dvValues :: !(Maybe [Text])-  , _dvKey    :: !(Maybe Dimension)-  } deriving (Eq, Read, Show, Data, Typeable, Generic)----- | Creates a value of 'DimensionValues' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'dvValues' - The metadata values that you can use to filter and group your results. You can use @GetDimensionValues@ to find specific values.------ * 'dvKey' - The names of the metadata types that you can use to filter and group your results. For example, @AZ@ returns a list of Availability Zones.-dimensionValues-    :: DimensionValues-dimensionValues = DimensionValues' {_dvValues = Nothing, _dvKey = Nothing}----- | The metadata values that you can use to filter and group your results. You can use @GetDimensionValues@ to find specific values.-dvValues :: Lens' DimensionValues [Text]-dvValues = lens _dvValues (\ s a -> s{_dvValues = a}) . _Default . _Coerce---- | The names of the metadata types that you can use to filter and group your results. For example, @AZ@ returns a list of Availability Zones.-dvKey :: Lens' DimensionValues (Maybe Dimension)-dvKey = lens _dvKey (\ s a -> s{_dvKey = a})--instance Hashable DimensionValues where--instance NFData DimensionValues where--instance ToJSON DimensionValues where-        toJSON DimensionValues'{..}-          = object-              (catMaybes-                 [("Values" .=) <$> _dvValues, ("Key" .=) <$> _dvKey])---- | The metadata of a specific type that you can use to filter and group your results. You can use @GetDimensionValues@ to find specific values.------------ /See:/ 'dimensionValuesWithAttributes' smart constructor.-data DimensionValuesWithAttributes = DimensionValuesWithAttributes'-  { _dvwaValue      :: !(Maybe Text)-  , _dvwaAttributes :: !(Maybe (Map Text Text))-  } deriving (Eq, Read, Show, Data, Typeable, Generic)----- | Creates a value of 'DimensionValuesWithAttributes' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'dvwaValue' - The value of a dimension with a specific attribute.------ * 'dvwaAttributes' - The attribute that applies to a specific @Dimension@ .-dimensionValuesWithAttributes-    :: DimensionValuesWithAttributes-dimensionValuesWithAttributes =-  DimensionValuesWithAttributes'-    {_dvwaValue = Nothing, _dvwaAttributes = Nothing}----- | The value of a dimension with a specific attribute.-dvwaValue :: Lens' DimensionValuesWithAttributes (Maybe Text)-dvwaValue = lens _dvwaValue (\ s a -> s{_dvwaValue = a})---- | The attribute that applies to a specific @Dimension@ .-dvwaAttributes :: Lens' DimensionValuesWithAttributes (HashMap Text Text)-dvwaAttributes = lens _dvwaAttributes (\ s a -> s{_dvwaAttributes = a}) . _Default . _Map--instance FromJSON DimensionValuesWithAttributes where-        parseJSON-          = withObject "DimensionValuesWithAttributes"-              (\ x ->-                 DimensionValuesWithAttributes' <$>-                   (x .:? "Value") <*> (x .:? "Attributes" .!= mempty))--instance Hashable DimensionValuesWithAttributes where--instance NFData DimensionValuesWithAttributes where---- | Details about the EC2 instances that AWS recommends that you purchase.------------ /See:/ 'ec2InstanceDetails' smart constructor.-data EC2InstanceDetails = EC2InstanceDetails'-  { _eidCurrentGeneration :: !(Maybe Bool)-  , _eidPlatform          :: !(Maybe Text)-  , _eidFamily            :: !(Maybe Text)-  , _eidInstanceType      :: !(Maybe Text)-  , _eidAvailabilityZone  :: !(Maybe Text)-  , _eidSizeFlexEligible  :: !(Maybe Bool)-  , _eidTenancy           :: !(Maybe Text)-  , _eidRegion            :: !(Maybe Text)-  } deriving (Eq, Read, Show, Data, Typeable, Generic)----- | Creates a value of 'EC2InstanceDetails' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'eidCurrentGeneration' - Whether the recommendation is for a current generation instance.------ * 'eidPlatform' - The platform of the recommended reservation. The platform is the specific combination of operating system, license model, and software on an instance.------ * 'eidFamily' - The instance family of the recommended reservation.------ * 'eidInstanceType' - The type of instance that AWS recommends.------ * 'eidAvailabilityZone' - The Availability Zone of the recommended reservation.------ * 'eidSizeFlexEligible' - Whether the recommended reservation is size flexible.------ * 'eidTenancy' - Whether the recommended reservation is dedicated or shared.------ * 'eidRegion' - The AWS Region of the recommended reservation.-ec2InstanceDetails-    :: EC2InstanceDetails-ec2InstanceDetails =-  EC2InstanceDetails'-    { _eidCurrentGeneration = Nothing-    , _eidPlatform = Nothing-    , _eidFamily = Nothing-    , _eidInstanceType = Nothing-    , _eidAvailabilityZone = Nothing-    , _eidSizeFlexEligible = Nothing-    , _eidTenancy = Nothing-    , _eidRegion = Nothing-    }----- | Whether the recommendation is for a current generation instance.-eidCurrentGeneration :: Lens' EC2InstanceDetails (Maybe Bool)-eidCurrentGeneration = lens _eidCurrentGeneration (\ s a -> s{_eidCurrentGeneration = a})---- | The platform of the recommended reservation. The platform is the specific combination of operating system, license model, and software on an instance.-eidPlatform :: Lens' EC2InstanceDetails (Maybe Text)-eidPlatform = lens _eidPlatform (\ s a -> s{_eidPlatform = a})---- | The instance family of the recommended reservation.-eidFamily :: Lens' EC2InstanceDetails (Maybe Text)-eidFamily = lens _eidFamily (\ s a -> s{_eidFamily = a})---- | The type of instance that AWS recommends.-eidInstanceType :: Lens' EC2InstanceDetails (Maybe Text)-eidInstanceType = lens _eidInstanceType (\ s a -> s{_eidInstanceType = a})---- | The Availability Zone of the recommended reservation.-eidAvailabilityZone :: Lens' EC2InstanceDetails (Maybe Text)-eidAvailabilityZone = lens _eidAvailabilityZone (\ s a -> s{_eidAvailabilityZone = a})---- | Whether the recommended reservation is size flexible.-eidSizeFlexEligible :: Lens' EC2InstanceDetails (Maybe Bool)-eidSizeFlexEligible = lens _eidSizeFlexEligible (\ s a -> s{_eidSizeFlexEligible = a})---- | Whether the recommended reservation is dedicated or shared.-eidTenancy :: Lens' EC2InstanceDetails (Maybe Text)-eidTenancy = lens _eidTenancy (\ s a -> s{_eidTenancy = a})---- | The AWS Region of the recommended reservation.-eidRegion :: Lens' EC2InstanceDetails (Maybe Text)-eidRegion = lens _eidRegion (\ s a -> s{_eidRegion = a})--instance FromJSON EC2InstanceDetails where-        parseJSON-          = withObject "EC2InstanceDetails"-              (\ x ->-                 EC2InstanceDetails' <$>-                   (x .:? "CurrentGeneration") <*> (x .:? "Platform")-                     <*> (x .:? "Family")-                     <*> (x .:? "InstanceType")-                     <*> (x .:? "AvailabilityZone")-                     <*> (x .:? "SizeFlexEligible")-                     <*> (x .:? "Tenancy")-                     <*> (x .:? "Region"))--instance Hashable EC2InstanceDetails where--instance NFData EC2InstanceDetails where---- | The EC2 hardware specifications that you want AWS to provide recommendations for.------------ /See:/ 'ec2Specification' smart constructor.-newtype EC2Specification = EC2Specification'-  { _esOfferingClass :: Maybe OfferingClass-  } deriving (Eq, Read, Show, Data, Typeable, Generic)----- | Creates a value of 'EC2Specification' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'esOfferingClass' - Whether you want a recommendation for standard or convertible reservations.-ec2Specification-    :: EC2Specification-ec2Specification = EC2Specification' {_esOfferingClass = Nothing}----- | Whether you want a recommendation for standard or convertible reservations.-esOfferingClass :: Lens' EC2Specification (Maybe OfferingClass)-esOfferingClass = lens _esOfferingClass (\ s a -> s{_esOfferingClass = a})--instance FromJSON EC2Specification where-        parseJSON-          = withObject "EC2Specification"-              (\ x ->-                 EC2Specification' <$> (x .:? "OfferingClass"))--instance Hashable EC2Specification where--instance NFData EC2Specification where--instance ToJSON EC2Specification where-        toJSON EC2Specification'{..}-          = object-              (catMaybes-                 [("OfferingClass" .=) <$> _esOfferingClass])---- | Use @Expression@ to filter by cost or by usage. There are two patterns:---------     * Simple dimension values - You can set the dimension name and values for the filters that you plan to use. For example, you can filter for @INSTANCE_TYPE==m4.xlarge OR INSTANCE_TYPE==c4.large@ . The @Expression@ for that looks like this:------ @{ "Dimensions": { "Key": "INSTANCE_TYPE", "Values": [ "m4.xlarge", “c4.large” ] } }@------ The list of dimension values are OR'd together to retrieve cost or usage data. You can create @Expression@ and @DimensionValues@ objects using either @with*@ methods or @set*@ methods in multiple lines.------     * Compound dimension values with logical operations - You can use multiple @Expression@ types and the logical operators @AND/OR/NOT@ to create a list of one or more @Expression@ objects. This allows you to filter on more advanced options. For example, you can filter on @((INSTANCE_TYPE == m4.large OR INSTANCE_TYPE == m3.large) OR (TAG.Type == Type1)) AND (USAGE_TYPE != DataTransfer)@ . The @Expression@ for that looks like this:------ @{ "And": [ {"Or": [ {"Dimensions": { "Key": "INSTANCE_TYPE", "Values": [ "m4.x.large", "c4.large" ] }}, {"Tag": { "Key": "TagName", "Values": ["Value1"] } } ]}, {"Not": {"dimensions": { "Key": "USAGE_TYPE", "Values": ["DataTransfer"] }}} ] } @------ @{ "And": [ ... ], "DimensionValues": { "Dimension": "USAGE_TYPE", "Values": [ "DataTransfer" ] } } @--------------- /See:/ 'expression' smart constructor.-data Expression = Expression'-  { _eNot        :: !(Maybe Expression)-  , _eAnd        :: !(Maybe [Expression])-  , _eOr         :: !(Maybe [Expression])-  , _eDimensions :: !(Maybe DimensionValues)-  , _eTags       :: !(Maybe TagValues)-  } deriving (Eq, Read, Show, Data, Typeable, Generic)----- | Creates a value of 'Expression' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'eNot' - Return results that don't match a @Dimension@ object.------ * 'eAnd' - Return results that match both @Dimension@ objects.------ * 'eOr' - Return results that match either @Dimension@ object.------ * 'eDimensions' - The specific @Dimension@ to use for @Expression@ .------ * 'eTags' - The specific @Tag@ to use for @Expression@ .-expression-    :: Expression-expression =-  Expression'-    { _eNot = Nothing-    , _eAnd = Nothing-    , _eOr = Nothing-    , _eDimensions = Nothing-    , _eTags = Nothing-    }----- | Return results that don't match a @Dimension@ object.-eNot :: Lens' Expression (Maybe Expression)-eNot = lens _eNot (\ s a -> s{_eNot = a})---- | Return results that match both @Dimension@ objects.-eAnd :: Lens' Expression [Expression]-eAnd = lens _eAnd (\ s a -> s{_eAnd = a}) . _Default . _Coerce---- | Return results that match either @Dimension@ object.-eOr :: Lens' Expression [Expression]-eOr = lens _eOr (\ s a -> s{_eOr = a}) . _Default . _Coerce---- | The specific @Dimension@ to use for @Expression@ .-eDimensions :: Lens' Expression (Maybe DimensionValues)-eDimensions = lens _eDimensions (\ s a -> s{_eDimensions = a})---- | The specific @Tag@ to use for @Expression@ .-eTags :: Lens' Expression (Maybe TagValues)-eTags = lens _eTags (\ s a -> s{_eTags = a})--instance Hashable Expression where--instance NFData Expression where--instance ToJSON Expression where-        toJSON Expression'{..}-          = object-              (catMaybes-                 [("Not" .=) <$> _eNot, ("And" .=) <$> _eAnd,-                  ("Or" .=) <$> _eOr,-                  ("Dimensions" .=) <$> _eDimensions,-                  ("Tags" .=) <$> _eTags])---- | One level of grouped data within the results.------------ /See:/ 'group'' smart constructor.-data Group = Group'-  { _gMetrics :: !(Maybe (Map Text MetricValue))-  , _gKeys    :: !(Maybe [Text])-  } deriving (Eq, Read, Show, Data, Typeable, Generic)----- | Creates a value of 'Group' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'gMetrics' - The metrics that are included in this group.------ * 'gKeys' - The keys that are included in this group.-group'-    :: Group-group' = Group' {_gMetrics = Nothing, _gKeys = Nothing}----- | The metrics that are included in this group.-gMetrics :: Lens' Group (HashMap Text MetricValue)-gMetrics = lens _gMetrics (\ s a -> s{_gMetrics = a}) . _Default . _Map---- | The keys that are included in this group.-gKeys :: Lens' Group [Text]-gKeys = lens _gKeys (\ s a -> s{_gKeys = a}) . _Default . _Coerce--instance FromJSON Group where-        parseJSON-          = withObject "Group"-              (\ x ->-                 Group' <$>-                   (x .:? "Metrics" .!= mempty) <*>-                     (x .:? "Keys" .!= mempty))--instance Hashable Group where--instance NFData Group where---- | Represents a group when you specify a group by criteria, or in the response to a query with a specific grouping.------------ /See:/ 'groupDefinition' smart constructor.-data GroupDefinition = GroupDefinition'-  { _gdKey  :: !(Maybe Text)-  , _gdType :: !(Maybe GroupDefinitionType)-  } deriving (Eq, Read, Show, Data, Typeable, Generic)----- | Creates a value of 'GroupDefinition' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'gdKey' - The string that represents a key for a specified group.------ * 'gdType' - The string that represents the type of group.-groupDefinition-    :: GroupDefinition-groupDefinition = GroupDefinition' {_gdKey = Nothing, _gdType = Nothing}----- | The string that represents a key for a specified group.-gdKey :: Lens' GroupDefinition (Maybe Text)-gdKey = lens _gdKey (\ s a -> s{_gdKey = a})---- | The string that represents the type of group.-gdType :: Lens' GroupDefinition (Maybe GroupDefinitionType)-gdType = lens _gdType (\ s a -> s{_gdType = a})--instance FromJSON GroupDefinition where-        parseJSON-          = withObject "GroupDefinition"-              (\ x ->-                 GroupDefinition' <$>-                   (x .:? "Key") <*> (x .:? "Type"))--instance Hashable GroupDefinition where--instance NFData GroupDefinition where--instance ToJSON GroupDefinition where-        toJSON GroupDefinition'{..}-          = object-              (catMaybes-                 [("Key" .=) <$> _gdKey, ("Type" .=) <$> _gdType])---- | Details about the instances that AWS recommends that you purchase.------------ /See:/ 'instanceDetails' smart constructor.-data InstanceDetails = InstanceDetails'-  { _idRDSInstanceDetails :: !(Maybe RDSInstanceDetails)-  , _idEC2InstanceDetails :: !(Maybe EC2InstanceDetails)-  } deriving (Eq, Read, Show, Data, Typeable, Generic)----- | Creates a value of 'InstanceDetails' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'idRDSInstanceDetails' - The RDS instances that AWS recommends that you purchase.------ * 'idEC2InstanceDetails' - The EC2 instances that AWS recommends that you purchase.-instanceDetails-    :: InstanceDetails-instanceDetails =-  InstanceDetails'-    {_idRDSInstanceDetails = Nothing, _idEC2InstanceDetails = Nothing}----- | The RDS instances that AWS recommends that you purchase.-idRDSInstanceDetails :: Lens' InstanceDetails (Maybe RDSInstanceDetails)-idRDSInstanceDetails = lens _idRDSInstanceDetails (\ s a -> s{_idRDSInstanceDetails = a})---- | The EC2 instances that AWS recommends that you purchase.-idEC2InstanceDetails :: Lens' InstanceDetails (Maybe EC2InstanceDetails)-idEC2InstanceDetails = lens _idEC2InstanceDetails (\ s a -> s{_idEC2InstanceDetails = a})--instance FromJSON InstanceDetails where-        parseJSON-          = withObject "InstanceDetails"-              (\ x ->-                 InstanceDetails' <$>-                   (x .:? "RDSInstanceDetails") <*>-                     (x .:? "EC2InstanceDetails"))--instance Hashable InstanceDetails where--instance NFData InstanceDetails where---- | The aggregated value for a metric.------------ /See:/ 'metricValue' smart constructor.-data MetricValue = MetricValue'-  { _mvAmount :: !(Maybe Text)-  , _mvUnit   :: !(Maybe Text)-  } deriving (Eq, Read, Show, Data, Typeable, Generic)----- | Creates a value of 'MetricValue' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'mvAmount' - The actual number that represents the metric.------ * 'mvUnit' - The unit that the metric is given in.-metricValue-    :: MetricValue-metricValue = MetricValue' {_mvAmount = Nothing, _mvUnit = Nothing}----- | The actual number that represents the metric.-mvAmount :: Lens' MetricValue (Maybe Text)-mvAmount = lens _mvAmount (\ s a -> s{_mvAmount = a})---- | The unit that the metric is given in.-mvUnit :: Lens' MetricValue (Maybe Text)-mvUnit = lens _mvUnit (\ s a -> s{_mvUnit = a})--instance FromJSON MetricValue where-        parseJSON-          = withObject "MetricValue"-              (\ x ->-                 MetricValue' <$> (x .:? "Amount") <*> (x .:? "Unit"))--instance Hashable MetricValue where--instance NFData MetricValue where---- | Details about the RDS instances that AWS recommends that you purchase.------------ /See:/ 'rdsInstanceDetails' smart constructor.-data RDSInstanceDetails = RDSInstanceDetails'-  { _ridCurrentGeneration :: !(Maybe Bool)-  , _ridDeploymentOption  :: !(Maybe Text)-  , _ridFamily            :: !(Maybe Text)-  , _ridInstanceType      :: !(Maybe Text)-  , _ridLicenseModel      :: !(Maybe Text)-  , _ridSizeFlexEligible  :: !(Maybe Bool)-  , _ridRegion            :: !(Maybe Text)-  , _ridDatabaseEngine    :: !(Maybe Text)-  } deriving (Eq, Read, Show, Data, Typeable, Generic)----- | Creates a value of 'RDSInstanceDetails' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ridCurrentGeneration' - Whether the recommendation is for a current generation instance.------ * 'ridDeploymentOption' - Whether the recommendation is for a reservation in a single availability zone or a reservation with a backup in a second availability zone.------ * 'ridFamily' - The instance family of the recommended reservation.------ * 'ridInstanceType' - The type of instance that AWS recommends.------ * 'ridLicenseModel' - The license model that the recommended reservation supports.------ * 'ridSizeFlexEligible' - Whether the recommended reservation is size flexible.------ * 'ridRegion' - The AWS Region of the recommended reservation.------ * 'ridDatabaseEngine' - The database engine that the recommended reservation supports.-rdsInstanceDetails-    :: RDSInstanceDetails-rdsInstanceDetails =-  RDSInstanceDetails'-    { _ridCurrentGeneration = Nothing-    , _ridDeploymentOption = Nothing-    , _ridFamily = Nothing-    , _ridInstanceType = Nothing-    , _ridLicenseModel = Nothing-    , _ridSizeFlexEligible = Nothing-    , _ridRegion = Nothing-    , _ridDatabaseEngine = Nothing-    }----- | Whether the recommendation is for a current generation instance.-ridCurrentGeneration :: Lens' RDSInstanceDetails (Maybe Bool)-ridCurrentGeneration = lens _ridCurrentGeneration (\ s a -> s{_ridCurrentGeneration = a})---- | Whether the recommendation is for a reservation in a single availability zone or a reservation with a backup in a second availability zone.-ridDeploymentOption :: Lens' RDSInstanceDetails (Maybe Text)-ridDeploymentOption = lens _ridDeploymentOption (\ s a -> s{_ridDeploymentOption = a})---- | The instance family of the recommended reservation.-ridFamily :: Lens' RDSInstanceDetails (Maybe Text)-ridFamily = lens _ridFamily (\ s a -> s{_ridFamily = a})---- | The type of instance that AWS recommends.-ridInstanceType :: Lens' RDSInstanceDetails (Maybe Text)-ridInstanceType = lens _ridInstanceType (\ s a -> s{_ridInstanceType = a})---- | The license model that the recommended reservation supports.-ridLicenseModel :: Lens' RDSInstanceDetails (Maybe Text)-ridLicenseModel = lens _ridLicenseModel (\ s a -> s{_ridLicenseModel = a})---- | Whether the recommended reservation is size flexible.-ridSizeFlexEligible :: Lens' RDSInstanceDetails (Maybe Bool)-ridSizeFlexEligible = lens _ridSizeFlexEligible (\ s a -> s{_ridSizeFlexEligible = a})---- | The AWS Region of the recommended reservation.-ridRegion :: Lens' RDSInstanceDetails (Maybe Text)-ridRegion = lens _ridRegion (\ s a -> s{_ridRegion = a})---- | The database engine that the recommended reservation supports.-ridDatabaseEngine :: Lens' RDSInstanceDetails (Maybe Text)-ridDatabaseEngine = lens _ridDatabaseEngine (\ s a -> s{_ridDatabaseEngine = a})--instance FromJSON RDSInstanceDetails where-        parseJSON-          = withObject "RDSInstanceDetails"-              (\ x ->-                 RDSInstanceDetails' <$>-                   (x .:? "CurrentGeneration") <*>-                     (x .:? "DeploymentOption")-                     <*> (x .:? "Family")-                     <*> (x .:? "InstanceType")-                     <*> (x .:? "LicenseModel")-                     <*> (x .:? "SizeFlexEligible")-                     <*> (x .:? "Region")-                     <*> (x .:? "DatabaseEngine"))--instance Hashable RDSInstanceDetails where--instance NFData RDSInstanceDetails where---- | The aggregated numbers for your RI usage.------------ /See:/ 'reservationAggregates' smart constructor.-data ReservationAggregates = ReservationAggregates'-  { _raPurchasedHours        :: !(Maybe Text)-  , _raTotalActualHours      :: !(Maybe Text)-  , _raUtilizationPercentage :: !(Maybe Text)-  , _raUnusedHours           :: !(Maybe Text)-  } deriving (Eq, Read, Show, Data, Typeable, Generic)----- | Creates a value of 'ReservationAggregates' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'raPurchasedHours' - How many RI hours that you purchased.------ * 'raTotalActualHours' - The total number of RI hours that you used.------ * 'raUtilizationPercentage' - The percentage of RI time that you used.------ * 'raUnusedHours' - The number of RI hours that you didn't use.-reservationAggregates-    :: ReservationAggregates-reservationAggregates =-  ReservationAggregates'-    { _raPurchasedHours = Nothing-    , _raTotalActualHours = Nothing-    , _raUtilizationPercentage = Nothing-    , _raUnusedHours = Nothing-    }----- | How many RI hours that you purchased.-raPurchasedHours :: Lens' ReservationAggregates (Maybe Text)-raPurchasedHours = lens _raPurchasedHours (\ s a -> s{_raPurchasedHours = a})---- | The total number of RI hours that you used.-raTotalActualHours :: Lens' ReservationAggregates (Maybe Text)-raTotalActualHours = lens _raTotalActualHours (\ s a -> s{_raTotalActualHours = a})---- | The percentage of RI time that you used.-raUtilizationPercentage :: Lens' ReservationAggregates (Maybe Text)-raUtilizationPercentage = lens _raUtilizationPercentage (\ s a -> s{_raUtilizationPercentage = a})---- | The number of RI hours that you didn't use.-raUnusedHours :: Lens' ReservationAggregates (Maybe Text)-raUnusedHours = lens _raUnusedHours (\ s a -> s{_raUnusedHours = a})--instance FromJSON ReservationAggregates where-        parseJSON-          = withObject "ReservationAggregates"-              (\ x ->-                 ReservationAggregates' <$>-                   (x .:? "PurchasedHours") <*>-                     (x .:? "TotalActualHours")-                     <*> (x .:? "UtilizationPercentage")-                     <*> (x .:? "UnusedHours"))--instance Hashable ReservationAggregates where--instance NFData ReservationAggregates where---- | A group of reservations that share a set of attributes.------------ /See:/ 'reservationCoverageGroup' smart constructor.-data ReservationCoverageGroup = ReservationCoverageGroup'-  { _rcgCoverage   :: !(Maybe Coverage)-  , _rcgAttributes :: !(Maybe (Map Text Text))-  } deriving (Eq, Read, Show, Data, Typeable, Generic)----- | Creates a value of 'ReservationCoverageGroup' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'rcgCoverage' - How much instance usage this group of reservations covered.------ * 'rcgAttributes' - The attributes for this group of reservations.-reservationCoverageGroup-    :: ReservationCoverageGroup-reservationCoverageGroup =-  ReservationCoverageGroup' {_rcgCoverage = Nothing, _rcgAttributes = Nothing}----- | How much instance usage this group of reservations covered.-rcgCoverage :: Lens' ReservationCoverageGroup (Maybe Coverage)-rcgCoverage = lens _rcgCoverage (\ s a -> s{_rcgCoverage = a})---- | The attributes for this group of reservations.-rcgAttributes :: Lens' ReservationCoverageGroup (HashMap Text Text)-rcgAttributes = lens _rcgAttributes (\ s a -> s{_rcgAttributes = a}) . _Default . _Map--instance FromJSON ReservationCoverageGroup where-        parseJSON-          = withObject "ReservationCoverageGroup"-              (\ x ->-                 ReservationCoverageGroup' <$>-                   (x .:? "Coverage") <*>-                     (x .:? "Attributes" .!= mempty))--instance Hashable ReservationCoverageGroup where--instance NFData ReservationCoverageGroup where---- | A specific reservation that AWS recommends for purchase.------------ /See:/ 'reservationPurchaseRecommendation' smart constructor.-data ReservationPurchaseRecommendation = ReservationPurchaseRecommendation'-  { _rprTermInYears :: !(Maybe TermInYears)-  , _rprRecommendationSummary :: !(Maybe ReservationPurchaseRecommendationSummary)-  , _rprServiceSpecification :: !(Maybe ServiceSpecification)-  , _rprAccountScope :: !(Maybe AccountScope)-  , _rprRecommendationDetails :: !(Maybe [ReservationPurchaseRecommendationDetail])-  , _rprLookbackPeriodInDays :: !(Maybe LookbackPeriodInDays)-  , _rprPaymentOption :: !(Maybe PaymentOption)-  } deriving (Eq, Read, Show, Data, Typeable, Generic)----- | Creates a value of 'ReservationPurchaseRecommendation' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'rprTermInYears' - The term of the reservation that you want recommendations for, in years.------ * 'rprRecommendationSummary' - A summary about the recommended purchase.------ * 'rprServiceSpecification' - Hardware specifications for the service that you want recommendations for.------ * 'rprAccountScope' - The account scope that AWS recommends that you purchase this instance for. For example, you can purchase this reservation for an entire organization in AWS Organizations.------ * 'rprRecommendationDetails' - Details about the recommended purchases.------ * 'rprLookbackPeriodInDays' - How many days of previous usage that AWS takes into consideration when making this recommendation.------ * 'rprPaymentOption' - The payment option for the reservation. For example, @AllUpfront@ or @NoUpfront@ .-reservationPurchaseRecommendation-    :: ReservationPurchaseRecommendation-reservationPurchaseRecommendation =-  ReservationPurchaseRecommendation'-    { _rprTermInYears = Nothing-    , _rprRecommendationSummary = Nothing-    , _rprServiceSpecification = Nothing-    , _rprAccountScope = Nothing-    , _rprRecommendationDetails = Nothing-    , _rprLookbackPeriodInDays = Nothing-    , _rprPaymentOption = Nothing-    }----- | The term of the reservation that you want recommendations for, in years.-rprTermInYears :: Lens' ReservationPurchaseRecommendation (Maybe TermInYears)-rprTermInYears = lens _rprTermInYears (\ s a -> s{_rprTermInYears = a})---- | A summary about the recommended purchase.-rprRecommendationSummary :: Lens' ReservationPurchaseRecommendation (Maybe ReservationPurchaseRecommendationSummary)-rprRecommendationSummary = lens _rprRecommendationSummary (\ s a -> s{_rprRecommendationSummary = a})---- | Hardware specifications for the service that you want recommendations for.-rprServiceSpecification :: Lens' ReservationPurchaseRecommendation (Maybe ServiceSpecification)-rprServiceSpecification = lens _rprServiceSpecification (\ s a -> s{_rprServiceSpecification = a})---- | The account scope that AWS recommends that you purchase this instance for. For example, you can purchase this reservation for an entire organization in AWS Organizations.-rprAccountScope :: Lens' ReservationPurchaseRecommendation (Maybe AccountScope)-rprAccountScope = lens _rprAccountScope (\ s a -> s{_rprAccountScope = a})---- | Details about the recommended purchases.-rprRecommendationDetails :: Lens' ReservationPurchaseRecommendation [ReservationPurchaseRecommendationDetail]-rprRecommendationDetails = lens _rprRecommendationDetails (\ s a -> s{_rprRecommendationDetails = a}) . _Default . _Coerce---- | How many days of previous usage that AWS takes into consideration when making this recommendation.-rprLookbackPeriodInDays :: Lens' ReservationPurchaseRecommendation (Maybe LookbackPeriodInDays)-rprLookbackPeriodInDays = lens _rprLookbackPeriodInDays (\ s a -> s{_rprLookbackPeriodInDays = a})---- | The payment option for the reservation. For example, @AllUpfront@ or @NoUpfront@ .-rprPaymentOption :: Lens' ReservationPurchaseRecommendation (Maybe PaymentOption)-rprPaymentOption = lens _rprPaymentOption (\ s a -> s{_rprPaymentOption = a})--instance FromJSON ReservationPurchaseRecommendation-         where-        parseJSON-          = withObject "ReservationPurchaseRecommendation"-              (\ x ->-                 ReservationPurchaseRecommendation' <$>-                   (x .:? "TermInYears") <*>-                     (x .:? "RecommendationSummary")-                     <*> (x .:? "ServiceSpecification")-                     <*> (x .:? "AccountScope")-                     <*> (x .:? "RecommendationDetails" .!= mempty)-                     <*> (x .:? "LookbackPeriodInDays")-                     <*> (x .:? "PaymentOption"))--instance Hashable ReservationPurchaseRecommendation-         where--instance NFData ReservationPurchaseRecommendation-         where---- | Details about your recommended reservation purchase.------------ /See:/ 'reservationPurchaseRecommendationDetail' smart constructor.-data ReservationPurchaseRecommendationDetail = ReservationPurchaseRecommendationDetail'-  { _rprdMaximumNormalizedUnitsUsedPerHour         :: !(Maybe Text)-  , _rprdRecurringStandardMonthlyCost              :: !(Maybe Text)-  , _rprdAverageNormalizedUnitsUsedPerHour         :: !(Maybe Text)-  , _rprdCurrencyCode                              :: !(Maybe Text)-  , _rprdEstimatedMonthlySavingsPercentage         :: !(Maybe Text)-  , _rprdRecommendedNormalizedUnitsToPurchase      :: !(Maybe Text)-  , _rprdAverageUtilization                        :: !(Maybe Text)-  , _rprdEstimatedMonthlySavingsAmount             :: !(Maybe Text)-  , _rprdUpfrontCost                               :: !(Maybe Text)-  , _rprdMinimumNormalizedUnitsUsedPerHour         :: !(Maybe Text)-  , _rprdEstimatedMonthlyOnDemandCost              :: !(Maybe Text)-  , _rprdRecommendedNumberOfInstancesToPurchase    :: !(Maybe Text)-  , _rprdMaximumNumberOfInstancesUsedPerHour       :: !(Maybe Text)-  , _rprdEstimatedReservationCostForLookbackPeriod :: !(Maybe Text)-  , _rprdInstanceDetails                           :: !(Maybe InstanceDetails)-  , _rprdAverageNumberOfInstancesUsedPerHour       :: !(Maybe Text)-  , _rprdMinimumNumberOfInstancesUsedPerHour       :: !(Maybe Text)-  , _rprdEstimatedBreakEvenInMonths                :: !(Maybe Text)-  } deriving (Eq, Read, Show, Data, Typeable, Generic)----- | Creates a value of 'ReservationPurchaseRecommendationDetail' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'rprdMaximumNormalizedUnitsUsedPerHour' - The maximum number of normalized units that you used in an hour during the historical period. AWS uses this to calculate your recommended reservation purchases.------ * 'rprdRecurringStandardMonthlyCost' - How much purchasing this instance costs you on a monthly basis.------ * 'rprdAverageNormalizedUnitsUsedPerHour' - The average number of normalized units that you used in an hour during the historical period. AWS uses this to calculate your recommended reservation purchases.------ * 'rprdCurrencyCode' - The currency code that AWS used to calculate the costs for this instance.------ * 'rprdEstimatedMonthlySavingsPercentage' - How much AWS estimates that this specific recommendation could save you in a month, as a percentage of your overall costs.------ * 'rprdRecommendedNormalizedUnitsToPurchase' - The number of normalized units that AWS recommends that you purchase.------ * 'rprdAverageUtilization' - The average utilization of your instances. AWS uses this to calculate your recommended reservation purchases.------ * 'rprdEstimatedMonthlySavingsAmount' - How much AWS estimates that this specific recommendation could save you in a month.------ * 'rprdUpfrontCost' - How much purchasing this instance costs you upfront.------ * 'rprdMinimumNormalizedUnitsUsedPerHour' - The minimum number of hours that you used in an hour during the historical period. AWS uses this to calculate your recommended reservation purchases.------ * 'rprdEstimatedMonthlyOnDemandCost' - How much AWS estimates that you spend on On-Demand Instances in a month.------ * 'rprdRecommendedNumberOfInstancesToPurchase' - The number of instances that AWS recommends that you purchase.------ * 'rprdMaximumNumberOfInstancesUsedPerHour' - The maximum number of instances that you used in an hour during the historical period. AWS uses this to calculate your recommended reservation purchases.------ * 'rprdEstimatedReservationCostForLookbackPeriod' - How much AWS estimates that you would have spent for all usage during the specified historical period if you had had a reservation.------ * 'rprdInstanceDetails' - Details about the instances that AWS recommends that you purchase.------ * 'rprdAverageNumberOfInstancesUsedPerHour' - The average number of instances that you used in an hour during the historical period. AWS uses this to calculate your recommended reservation purchases.------ * 'rprdMinimumNumberOfInstancesUsedPerHour' - The minimum number of instances that you used in an hour during the historical period. AWS uses this to calculate your recommended reservation purchases.------ * 'rprdEstimatedBreakEvenInMonths' - How long AWS estimates that it takes for this instance to start saving you money, in months.-reservationPurchaseRecommendationDetail-    :: ReservationPurchaseRecommendationDetail-reservationPurchaseRecommendationDetail =-  ReservationPurchaseRecommendationDetail'-    { _rprdMaximumNormalizedUnitsUsedPerHour = Nothing-    , _rprdRecurringStandardMonthlyCost = Nothing-    , _rprdAverageNormalizedUnitsUsedPerHour = Nothing-    , _rprdCurrencyCode = Nothing-    , _rprdEstimatedMonthlySavingsPercentage = Nothing-    , _rprdRecommendedNormalizedUnitsToPurchase = Nothing-    , _rprdAverageUtilization = Nothing-    , _rprdEstimatedMonthlySavingsAmount = Nothing-    , _rprdUpfrontCost = Nothing-    , _rprdMinimumNormalizedUnitsUsedPerHour = Nothing-    , _rprdEstimatedMonthlyOnDemandCost = Nothing-    , _rprdRecommendedNumberOfInstancesToPurchase = Nothing-    , _rprdMaximumNumberOfInstancesUsedPerHour = Nothing-    , _rprdEstimatedReservationCostForLookbackPeriod = Nothing-    , _rprdInstanceDetails = Nothing-    , _rprdAverageNumberOfInstancesUsedPerHour = Nothing-    , _rprdMinimumNumberOfInstancesUsedPerHour = Nothing-    , _rprdEstimatedBreakEvenInMonths = Nothing-    }----- | The maximum number of normalized units that you used in an hour during the historical period. AWS uses this to calculate your recommended reservation purchases.-rprdMaximumNormalizedUnitsUsedPerHour :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)-rprdMaximumNormalizedUnitsUsedPerHour = lens _rprdMaximumNormalizedUnitsUsedPerHour (\ s a -> s{_rprdMaximumNormalizedUnitsUsedPerHour = a})---- | How much purchasing this instance costs you on a monthly basis.-rprdRecurringStandardMonthlyCost :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)-rprdRecurringStandardMonthlyCost = lens _rprdRecurringStandardMonthlyCost (\ s a -> s{_rprdRecurringStandardMonthlyCost = a})---- | The average number of normalized units that you used in an hour during the historical period. AWS uses this to calculate your recommended reservation purchases.-rprdAverageNormalizedUnitsUsedPerHour :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)-rprdAverageNormalizedUnitsUsedPerHour = lens _rprdAverageNormalizedUnitsUsedPerHour (\ s a -> s{_rprdAverageNormalizedUnitsUsedPerHour = a})---- | The currency code that AWS used to calculate the costs for this instance.-rprdCurrencyCode :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)-rprdCurrencyCode = lens _rprdCurrencyCode (\ s a -> s{_rprdCurrencyCode = a})---- | How much AWS estimates that this specific recommendation could save you in a month, as a percentage of your overall costs.-rprdEstimatedMonthlySavingsPercentage :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)-rprdEstimatedMonthlySavingsPercentage = lens _rprdEstimatedMonthlySavingsPercentage (\ s a -> s{_rprdEstimatedMonthlySavingsPercentage = a})---- | The number of normalized units that AWS recommends that you purchase.-rprdRecommendedNormalizedUnitsToPurchase :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)-rprdRecommendedNormalizedUnitsToPurchase = lens _rprdRecommendedNormalizedUnitsToPurchase (\ s a -> s{_rprdRecommendedNormalizedUnitsToPurchase = a})---- | The average utilization of your instances. AWS uses this to calculate your recommended reservation purchases.-rprdAverageUtilization :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)-rprdAverageUtilization = lens _rprdAverageUtilization (\ s a -> s{_rprdAverageUtilization = a})---- | How much AWS estimates that this specific recommendation could save you in a month.-rprdEstimatedMonthlySavingsAmount :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)-rprdEstimatedMonthlySavingsAmount = lens _rprdEstimatedMonthlySavingsAmount (\ s a -> s{_rprdEstimatedMonthlySavingsAmount = a})---- | How much purchasing this instance costs you upfront.-rprdUpfrontCost :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)-rprdUpfrontCost = lens _rprdUpfrontCost (\ s a -> s{_rprdUpfrontCost = a})---- | The minimum number of hours that you used in an hour during the historical period. AWS uses this to calculate your recommended reservation purchases.-rprdMinimumNormalizedUnitsUsedPerHour :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)-rprdMinimumNormalizedUnitsUsedPerHour = lens _rprdMinimumNormalizedUnitsUsedPerHour (\ s a -> s{_rprdMinimumNormalizedUnitsUsedPerHour = a})---- | How much AWS estimates that you spend on On-Demand Instances in a month.-rprdEstimatedMonthlyOnDemandCost :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)-rprdEstimatedMonthlyOnDemandCost = lens _rprdEstimatedMonthlyOnDemandCost (\ s a -> s{_rprdEstimatedMonthlyOnDemandCost = a})---- | The number of instances that AWS recommends that you purchase.-rprdRecommendedNumberOfInstancesToPurchase :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)-rprdRecommendedNumberOfInstancesToPurchase = lens _rprdRecommendedNumberOfInstancesToPurchase (\ s a -> s{_rprdRecommendedNumberOfInstancesToPurchase = a})---- | The maximum number of instances that you used in an hour during the historical period. AWS uses this to calculate your recommended reservation purchases.-rprdMaximumNumberOfInstancesUsedPerHour :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)-rprdMaximumNumberOfInstancesUsedPerHour = lens _rprdMaximumNumberOfInstancesUsedPerHour (\ s a -> s{_rprdMaximumNumberOfInstancesUsedPerHour = a})---- | How much AWS estimates that you would have spent for all usage during the specified historical period if you had had a reservation.-rprdEstimatedReservationCostForLookbackPeriod :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)-rprdEstimatedReservationCostForLookbackPeriod = lens _rprdEstimatedReservationCostForLookbackPeriod (\ s a -> s{_rprdEstimatedReservationCostForLookbackPeriod = a})---- | Details about the instances that AWS recommends that you purchase.-rprdInstanceDetails :: Lens' ReservationPurchaseRecommendationDetail (Maybe InstanceDetails)-rprdInstanceDetails = lens _rprdInstanceDetails (\ s a -> s{_rprdInstanceDetails = a})---- | The average number of instances that you used in an hour during the historical period. AWS uses this to calculate your recommended reservation purchases.-rprdAverageNumberOfInstancesUsedPerHour :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)-rprdAverageNumberOfInstancesUsedPerHour = lens _rprdAverageNumberOfInstancesUsedPerHour (\ s a -> s{_rprdAverageNumberOfInstancesUsedPerHour = a})---- | The minimum number of instances that you used in an hour during the historical period. AWS uses this to calculate your recommended reservation purchases.-rprdMinimumNumberOfInstancesUsedPerHour :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)-rprdMinimumNumberOfInstancesUsedPerHour = lens _rprdMinimumNumberOfInstancesUsedPerHour (\ s a -> s{_rprdMinimumNumberOfInstancesUsedPerHour = a})---- | How long AWS estimates that it takes for this instance to start saving you money, in months.-rprdEstimatedBreakEvenInMonths :: Lens' ReservationPurchaseRecommendationDetail (Maybe Text)-rprdEstimatedBreakEvenInMonths = lens _rprdEstimatedBreakEvenInMonths (\ s a -> s{_rprdEstimatedBreakEvenInMonths = a})--instance FromJSON-           ReservationPurchaseRecommendationDetail-         where-        parseJSON-          = withObject-              "ReservationPurchaseRecommendationDetail"-              (\ x ->-                 ReservationPurchaseRecommendationDetail' <$>-                   (x .:? "MaximumNormalizedUnitsUsedPerHour") <*>-                     (x .:? "RecurringStandardMonthlyCost")-                     <*> (x .:? "AverageNormalizedUnitsUsedPerHour")-                     <*> (x .:? "CurrencyCode")-                     <*> (x .:? "EstimatedMonthlySavingsPercentage")-                     <*> (x .:? "RecommendedNormalizedUnitsToPurchase")-                     <*> (x .:? "AverageUtilization")-                     <*> (x .:? "EstimatedMonthlySavingsAmount")-                     <*> (x .:? "UpfrontCost")-                     <*> (x .:? "MinimumNormalizedUnitsUsedPerHour")-                     <*> (x .:? "EstimatedMonthlyOnDemandCost")-                     <*> (x .:? "RecommendedNumberOfInstancesToPurchase")-                     <*> (x .:? "MaximumNumberOfInstancesUsedPerHour")-                     <*>-                     (x .:? "EstimatedReservationCostForLookbackPeriod")-                     <*> (x .:? "InstanceDetails")-                     <*> (x .:? "AverageNumberOfInstancesUsedPerHour")-                     <*> (x .:? "MinimumNumberOfInstancesUsedPerHour")-                     <*> (x .:? "EstimatedBreakEvenInMonths"))--instance Hashable-           ReservationPurchaseRecommendationDetail-         where--instance NFData-           ReservationPurchaseRecommendationDetail-         where---- | Information about this specific recommendation, such as the time stamp for when AWS made a specific recommendation.------------ /See:/ 'reservationPurchaseRecommendationMetadata' smart constructor.-data ReservationPurchaseRecommendationMetadata = ReservationPurchaseRecommendationMetadata'-  { _rprmRecommendationId    :: !(Maybe Text)-  , _rprmGenerationTimestamp :: !(Maybe Text)-  } deriving (Eq, Read, Show, Data, Typeable, Generic)----- | Creates a value of 'ReservationPurchaseRecommendationMetadata' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'rprmRecommendationId' - The ID for this specific recommendation.------ * 'rprmGenerationTimestamp' - The time stamp for when AWS made this recommendation.-reservationPurchaseRecommendationMetadata-    :: ReservationPurchaseRecommendationMetadata-reservationPurchaseRecommendationMetadata =-  ReservationPurchaseRecommendationMetadata'-    {_rprmRecommendationId = Nothing, _rprmGenerationTimestamp = Nothing}----- | The ID for this specific recommendation.-rprmRecommendationId :: Lens' ReservationPurchaseRecommendationMetadata (Maybe Text)-rprmRecommendationId = lens _rprmRecommendationId (\ s a -> s{_rprmRecommendationId = a})---- | The time stamp for when AWS made this recommendation.-rprmGenerationTimestamp :: Lens' ReservationPurchaseRecommendationMetadata (Maybe Text)-rprmGenerationTimestamp = lens _rprmGenerationTimestamp (\ s a -> s{_rprmGenerationTimestamp = a})--instance FromJSON-           ReservationPurchaseRecommendationMetadata-         where-        parseJSON-          = withObject-              "ReservationPurchaseRecommendationMetadata"-              (\ x ->-                 ReservationPurchaseRecommendationMetadata' <$>-                   (x .:? "RecommendationId") <*>-                     (x .:? "GenerationTimestamp"))--instance Hashable-           ReservationPurchaseRecommendationMetadata-         where--instance NFData-           ReservationPurchaseRecommendationMetadata-         where---- | A summary about this recommendation, such as the currency code, the amount that AWS estimates you could save, and the total amount of reservation to purchase.------------ /See:/ 'reservationPurchaseRecommendationSummary' smart constructor.-data ReservationPurchaseRecommendationSummary = ReservationPurchaseRecommendationSummary'-  { _rprsCurrencyCode                           :: !(Maybe Text)-  , _rprsTotalEstimatedMonthlySavingsPercentage :: !(Maybe Text)-  , _rprsTotalEstimatedMonthlySavingsAmount     :: !(Maybe Text)-  } deriving (Eq, Read, Show, Data, Typeable, Generic)----- | Creates a value of 'ReservationPurchaseRecommendationSummary' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'rprsCurrencyCode' - The currency code used for this recommendation.------ * 'rprsTotalEstimatedMonthlySavingsPercentage' - The total amount that AWS estimates that this recommendation could save you in a month, as a percentage of your costs.------ * 'rprsTotalEstimatedMonthlySavingsAmount' - The total amount that AWS estimates that this recommendation could save you in a month.-reservationPurchaseRecommendationSummary-    :: ReservationPurchaseRecommendationSummary-reservationPurchaseRecommendationSummary =-  ReservationPurchaseRecommendationSummary'-    { _rprsCurrencyCode = Nothing-    , _rprsTotalEstimatedMonthlySavingsPercentage = Nothing-    , _rprsTotalEstimatedMonthlySavingsAmount = Nothing-    }----- | The currency code used for this recommendation.-rprsCurrencyCode :: Lens' ReservationPurchaseRecommendationSummary (Maybe Text)-rprsCurrencyCode = lens _rprsCurrencyCode (\ s a -> s{_rprsCurrencyCode = a})---- | The total amount that AWS estimates that this recommendation could save you in a month, as a percentage of your costs.-rprsTotalEstimatedMonthlySavingsPercentage :: Lens' ReservationPurchaseRecommendationSummary (Maybe Text)-rprsTotalEstimatedMonthlySavingsPercentage = lens _rprsTotalEstimatedMonthlySavingsPercentage (\ s a -> s{_rprsTotalEstimatedMonthlySavingsPercentage = a})---- | The total amount that AWS estimates that this recommendation could save you in a month.-rprsTotalEstimatedMonthlySavingsAmount :: Lens' ReservationPurchaseRecommendationSummary (Maybe Text)-rprsTotalEstimatedMonthlySavingsAmount = lens _rprsTotalEstimatedMonthlySavingsAmount (\ s a -> s{_rprsTotalEstimatedMonthlySavingsAmount = a})--instance FromJSON-           ReservationPurchaseRecommendationSummary-         where-        parseJSON-          = withObject-              "ReservationPurchaseRecommendationSummary"-              (\ x ->-                 ReservationPurchaseRecommendationSummary' <$>-                   (x .:? "CurrencyCode") <*>-                     (x .:? "TotalEstimatedMonthlySavingsPercentage")-                     <*> (x .:? "TotalEstimatedMonthlySavingsAmount"))--instance Hashable-           ReservationPurchaseRecommendationSummary-         where--instance NFData-           ReservationPurchaseRecommendationSummary-         where---- | A group of RIs that share a set of attributes.------------ /See:/ 'reservationUtilizationGroup' smart constructor.-data ReservationUtilizationGroup = ReservationUtilizationGroup'-  { _rugValue       :: !(Maybe Text)-  , _rugKey         :: !(Maybe Text)-  , _rugAttributes  :: !(Maybe (Map Text Text))-  , _rugUtilization :: !(Maybe ReservationAggregates)-  } deriving (Eq, Read, Show, Data, Typeable, Generic)----- | Creates a value of 'ReservationUtilizationGroup' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'rugValue' - The value of a specific RI attribute.------ * 'rugKey' - The key for a specific RI attribute.------ * 'rugAttributes' - The attributes for this group of RIs.------ * 'rugUtilization' - How much you used this group of RIs.-reservationUtilizationGroup-    :: ReservationUtilizationGroup-reservationUtilizationGroup =-  ReservationUtilizationGroup'-    { _rugValue = Nothing-    , _rugKey = Nothing-    , _rugAttributes = Nothing-    , _rugUtilization = Nothing-    }----- | The value of a specific RI attribute.-rugValue :: Lens' ReservationUtilizationGroup (Maybe Text)-rugValue = lens _rugValue (\ s a -> s{_rugValue = a})---- | The key for a specific RI attribute.-rugKey :: Lens' ReservationUtilizationGroup (Maybe Text)-rugKey = lens _rugKey (\ s a -> s{_rugKey = a})---- | The attributes for this group of RIs.-rugAttributes :: Lens' ReservationUtilizationGroup (HashMap Text Text)-rugAttributes = lens _rugAttributes (\ s a -> s{_rugAttributes = a}) . _Default . _Map---- | How much you used this group of RIs.-rugUtilization :: Lens' ReservationUtilizationGroup (Maybe ReservationAggregates)-rugUtilization = lens _rugUtilization (\ s a -> s{_rugUtilization = a})--instance FromJSON ReservationUtilizationGroup where-        parseJSON-          = withObject "ReservationUtilizationGroup"-              (\ x ->-                 ReservationUtilizationGroup' <$>-                   (x .:? "Value") <*> (x .:? "Key") <*>-                     (x .:? "Attributes" .!= mempty)-                     <*> (x .:? "Utilization"))--instance Hashable ReservationUtilizationGroup where--instance NFData ReservationUtilizationGroup where---- | The result that is associated with a time period.------------ /See:/ 'resultByTime' smart constructor.-data ResultByTime = ResultByTime'-  { _rbtGroups     :: !(Maybe [Group])-  , _rbtTimePeriod :: !(Maybe DateInterval)-  , _rbtTotal      :: !(Maybe (Map Text MetricValue))-  , _rbtEstimated  :: !(Maybe Bool)-  } deriving (Eq, Read, Show, Data, Typeable, Generic)----- | Creates a value of 'ResultByTime' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'rbtGroups' - The groups that are included in this time period.------ * 'rbtTimePeriod' - The time period covered by a result.------ * 'rbtTotal' - The total amount of cost or usage accrued during the time period.------ * 'rbtEstimated' - Whether this result is estimated.-resultByTime-    :: ResultByTime-resultByTime =-  ResultByTime'-    { _rbtGroups = Nothing-    , _rbtTimePeriod = Nothing-    , _rbtTotal = Nothing-    , _rbtEstimated = Nothing-    }----- | The groups that are included in this time period.-rbtGroups :: Lens' ResultByTime [Group]-rbtGroups = lens _rbtGroups (\ s a -> s{_rbtGroups = a}) . _Default . _Coerce---- | The time period covered by a result.-rbtTimePeriod :: Lens' ResultByTime (Maybe DateInterval)-rbtTimePeriod = lens _rbtTimePeriod (\ s a -> s{_rbtTimePeriod = a})---- | The total amount of cost or usage accrued during the time period.-rbtTotal :: Lens' ResultByTime (HashMap Text MetricValue)-rbtTotal = lens _rbtTotal (\ s a -> s{_rbtTotal = a}) . _Default . _Map---- | Whether this result is estimated.-rbtEstimated :: Lens' ResultByTime (Maybe Bool)-rbtEstimated = lens _rbtEstimated (\ s a -> s{_rbtEstimated = a})--instance FromJSON ResultByTime where-        parseJSON-          = withObject "ResultByTime"-              (\ x ->-                 ResultByTime' <$>-                   (x .:? "Groups" .!= mempty) <*> (x .:? "TimePeriod")-                     <*> (x .:? "Total" .!= mempty)-                     <*> (x .:? "Estimated"))--instance Hashable ResultByTime where--instance NFData ResultByTime where---- | Hardware specifications for the service that you want recommendations for.------------ /See:/ 'serviceSpecification' smart constructor.-newtype ServiceSpecification = ServiceSpecification'-  { _ssEC2Specification :: Maybe EC2Specification-  } deriving (Eq, Read, Show, Data, Typeable, Generic)----- | Creates a value of 'ServiceSpecification' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ssEC2Specification' - The EC2 hardware specifications that you want AWS to provide recommendations for.-serviceSpecification-    :: ServiceSpecification-serviceSpecification = ServiceSpecification' {_ssEC2Specification = Nothing}----- | The EC2 hardware specifications that you want AWS to provide recommendations for.-ssEC2Specification :: Lens' ServiceSpecification (Maybe EC2Specification)-ssEC2Specification = lens _ssEC2Specification (\ s a -> s{_ssEC2Specification = a})--instance FromJSON ServiceSpecification where-        parseJSON-          = withObject "ServiceSpecification"-              (\ x ->-                 ServiceSpecification' <$> (x .:? "EC2Specification"))--instance Hashable ServiceSpecification where--instance NFData ServiceSpecification where--instance ToJSON ServiceSpecification where-        toJSON ServiceSpecification'{..}-          = object-              (catMaybes-                 [("EC2Specification" .=) <$> _ssEC2Specification])---- | The values that are available for a tag.------------ /See:/ 'tagValues' smart constructor.-data TagValues = TagValues'-  { _tvValues :: !(Maybe [Text])-  , _tvKey    :: !(Maybe Text)-  } deriving (Eq, Read, Show, Data, Typeable, Generic)----- | Creates a value of 'TagValues' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'tvValues' - The specific value of a tag.------ * 'tvKey' - The key for a tag.-tagValues-    :: TagValues-tagValues = TagValues' {_tvValues = Nothing, _tvKey = Nothing}----- | The specific value of a tag.-tvValues :: Lens' TagValues [Text]-tvValues = lens _tvValues (\ s a -> s{_tvValues = a}) . _Default . _Coerce---- | The key for a tag.-tvKey :: Lens' TagValues (Maybe Text)-tvKey = lens _tvKey (\ s a -> s{_tvKey = a})--instance Hashable TagValues where--instance NFData TagValues where--instance ToJSON TagValues where-        toJSON TagValues'{..}-          = object-              (catMaybes-                 [("Values" .=) <$> _tvValues, ("Key" .=) <$> _tvKey])---- | The amount of utilization, in hours.------------ /See:/ 'utilizationByTime' smart constructor.-data UtilizationByTime = UtilizationByTime'-  { _ubtGroups     :: !(Maybe [ReservationUtilizationGroup])-  , _ubtTimePeriod :: !(Maybe DateInterval)-  , _ubtTotal      :: !(Maybe ReservationAggregates)-  } deriving (Eq, Read, Show, Data, Typeable, Generic)----- | Creates a value of 'UtilizationByTime' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ubtGroups' - The groups that are included in this utilization result.------ * 'ubtTimePeriod' - The period of time over which this utilization was used.------ * 'ubtTotal' - The total number of RI hours that were used.-utilizationByTime-    :: UtilizationByTime-utilizationByTime =-  UtilizationByTime'-    {_ubtGroups = Nothing, _ubtTimePeriod = Nothing, _ubtTotal = Nothing}----- | The groups that are included in this utilization result.-ubtGroups :: Lens' UtilizationByTime [ReservationUtilizationGroup]-ubtGroups = lens _ubtGroups (\ s a -> s{_ubtGroups = a}) . _Default . _Coerce---- | The period of time over which this utilization was used.-ubtTimePeriod :: Lens' UtilizationByTime (Maybe DateInterval)-ubtTimePeriod = lens _ubtTimePeriod (\ s a -> s{_ubtTimePeriod = a})---- | The total number of RI hours that were used.-ubtTotal :: Lens' UtilizationByTime (Maybe ReservationAggregates)-ubtTotal = lens _ubtTotal (\ s a -> s{_ubtTotal = a})--instance FromJSON UtilizationByTime where-        parseJSON-          = withObject "UtilizationByTime"-              (\ x ->-                 UtilizationByTime' <$>-                   (x .:? "Groups" .!= mempty) <*> (x .:? "TimePeriod")-                     <*> (x .:? "Total"))--instance Hashable UtilizationByTime where--instance NFData UtilizationByTime where
− gen/Network/AWS/CostExplorer/Types/Sum.hs
@@ -1,338 +0,0 @@-{-# LANGUAGE DeriveDataTypeable #-}-{-# LANGUAGE DeriveGeneric      #-}-{-# LANGUAGE LambdaCase         #-}-{-# LANGUAGE OverloadedStrings  #-}--{-# OPTIONS_GHC -fno-warn-unused-imports #-}---- Derived from AWS service descriptions, licensed under Apache 2.0.---- |--- Module      : Network.AWS.CostExplorer.Types.Sum--- Copyright   : (c) 2013-2018 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)----module Network.AWS.CostExplorer.Types.Sum where--import Network.AWS.Prelude--data AccountScope =-  Payer-  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)---instance FromText AccountScope where-    parser = takeLowerText >>= \case-        "payer" -> pure Payer-        e -> fromTextError $ "Failure parsing AccountScope from value: '" <> e-           <> "'. Accepted values: payer"--instance ToText AccountScope where-    toText = \case-        Payer -> "PAYER"--instance Hashable     AccountScope-instance NFData       AccountScope-instance ToByteString AccountScope-instance ToQuery      AccountScope-instance ToHeader     AccountScope--instance ToJSON AccountScope where-    toJSON = toJSONText--instance FromJSON AccountScope where-    parseJSON = parseJSONText "AccountScope"--data Context-  = CostAndUsage-  | Reservations-  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)---instance FromText Context where-    parser = takeLowerText >>= \case-        "cost_and_usage" -> pure CostAndUsage-        "reservations" -> pure Reservations-        e -> fromTextError $ "Failure parsing Context from value: '" <> e-           <> "'. Accepted values: cost_and_usage, reservations"--instance ToText Context where-    toText = \case-        CostAndUsage -> "COST_AND_USAGE"-        Reservations -> "RESERVATIONS"--instance Hashable     Context-instance NFData       Context-instance ToByteString Context-instance ToQuery      Context-instance ToHeader     Context--instance ToJSON Context where-    toJSON = toJSONText--data Dimension-  = DimensionAZ-  | DimensionCacheEngine-  | DimensionDatabaseEngine-  | DimensionDeploymentOption-  | DimensionInstanceType-  | DimensionInstanceTypeFamily-  | DimensionLegalEntityName-  | DimensionLinkedAccount-  | DimensionOperatingSystem-  | DimensionOperation-  | DimensionPlatform-  | DimensionPurchaseType-  | DimensionRecordType-  | DimensionRegion-  | DimensionScope-  | DimensionService-  | DimensionSubscriptionId-  | DimensionTenancy-  | DimensionUsageType-  | DimensionUsageTypeGroup-  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)---instance FromText Dimension where-    parser = takeLowerText >>= \case-        "az" -> pure DimensionAZ-        "cache_engine" -> pure DimensionCacheEngine-        "database_engine" -> pure DimensionDatabaseEngine-        "deployment_option" -> pure DimensionDeploymentOption-        "instance_type" -> pure DimensionInstanceType-        "instance_type_family" -> pure DimensionInstanceTypeFamily-        "legal_entity_name" -> pure DimensionLegalEntityName-        "linked_account" -> pure DimensionLinkedAccount-        "operating_system" -> pure DimensionOperatingSystem-        "operation" -> pure DimensionOperation-        "platform" -> pure DimensionPlatform-        "purchase_type" -> pure DimensionPurchaseType-        "record_type" -> pure DimensionRecordType-        "region" -> pure DimensionRegion-        "scope" -> pure DimensionScope-        "service" -> pure DimensionService-        "subscription_id" -> pure DimensionSubscriptionId-        "tenancy" -> pure DimensionTenancy-        "usage_type" -> pure DimensionUsageType-        "usage_type_group" -> pure DimensionUsageTypeGroup-        e -> fromTextError $ "Failure parsing Dimension from value: '" <> e-           <> "'. Accepted values: az, cache_engine, database_engine, deployment_option, instance_type, instance_type_family, legal_entity_name, linked_account, operating_system, operation, platform, purchase_type, record_type, region, scope, service, subscription_id, tenancy, usage_type, usage_type_group"--instance ToText Dimension where-    toText = \case-        DimensionAZ -> "AZ"-        DimensionCacheEngine -> "CACHE_ENGINE"-        DimensionDatabaseEngine -> "DATABASE_ENGINE"-        DimensionDeploymentOption -> "DEPLOYMENT_OPTION"-        DimensionInstanceType -> "INSTANCE_TYPE"-        DimensionInstanceTypeFamily -> "INSTANCE_TYPE_FAMILY"-        DimensionLegalEntityName -> "LEGAL_ENTITY_NAME"-        DimensionLinkedAccount -> "LINKED_ACCOUNT"-        DimensionOperatingSystem -> "OPERATING_SYSTEM"-        DimensionOperation -> "OPERATION"-        DimensionPlatform -> "PLATFORM"-        DimensionPurchaseType -> "PURCHASE_TYPE"-        DimensionRecordType -> "RECORD_TYPE"-        DimensionRegion -> "REGION"-        DimensionScope -> "SCOPE"-        DimensionService -> "SERVICE"-        DimensionSubscriptionId -> "SUBSCRIPTION_ID"-        DimensionTenancy -> "TENANCY"-        DimensionUsageType -> "USAGE_TYPE"-        DimensionUsageTypeGroup -> "USAGE_TYPE_GROUP"--instance Hashable     Dimension-instance NFData       Dimension-instance ToByteString Dimension-instance ToQuery      Dimension-instance ToHeader     Dimension--instance ToJSON Dimension where-    toJSON = toJSONText--data Granularity-  = Daily-  | Monthly-  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)---instance FromText Granularity where-    parser = takeLowerText >>= \case-        "daily" -> pure Daily-        "monthly" -> pure Monthly-        e -> fromTextError $ "Failure parsing Granularity from value: '" <> e-           <> "'. Accepted values: daily, monthly"--instance ToText Granularity where-    toText = \case-        Daily -> "DAILY"-        Monthly -> "MONTHLY"--instance Hashable     Granularity-instance NFData       Granularity-instance ToByteString Granularity-instance ToQuery      Granularity-instance ToHeader     Granularity--instance ToJSON Granularity where-    toJSON = toJSONText--data GroupDefinitionType-  = Dimension-  | Tag-  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)---instance FromText GroupDefinitionType where-    parser = takeLowerText >>= \case-        "dimension" -> pure Dimension-        "tag" -> pure Tag-        e -> fromTextError $ "Failure parsing GroupDefinitionType from value: '" <> e-           <> "'. Accepted values: dimension, tag"--instance ToText GroupDefinitionType where-    toText = \case-        Dimension -> "DIMENSION"-        Tag -> "TAG"--instance Hashable     GroupDefinitionType-instance NFData       GroupDefinitionType-instance ToByteString GroupDefinitionType-instance ToQuery      GroupDefinitionType-instance ToHeader     GroupDefinitionType--instance ToJSON GroupDefinitionType where-    toJSON = toJSONText--instance FromJSON GroupDefinitionType where-    parseJSON = parseJSONText "GroupDefinitionType"--data LookbackPeriodInDays-  = SevenDays-  | SixtyDays-  | ThirtyDays-  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)---instance FromText LookbackPeriodInDays where-    parser = takeLowerText >>= \case-        "seven_days" -> pure SevenDays-        "sixty_days" -> pure SixtyDays-        "thirty_days" -> pure ThirtyDays-        e -> fromTextError $ "Failure parsing LookbackPeriodInDays from value: '" <> e-           <> "'. Accepted values: seven_days, sixty_days, thirty_days"--instance ToText LookbackPeriodInDays where-    toText = \case-        SevenDays -> "SEVEN_DAYS"-        SixtyDays -> "SIXTY_DAYS"-        ThirtyDays -> "THIRTY_DAYS"--instance Hashable     LookbackPeriodInDays-instance NFData       LookbackPeriodInDays-instance ToByteString LookbackPeriodInDays-instance ToQuery      LookbackPeriodInDays-instance ToHeader     LookbackPeriodInDays--instance ToJSON LookbackPeriodInDays where-    toJSON = toJSONText--instance FromJSON LookbackPeriodInDays where-    parseJSON = parseJSONText "LookbackPeriodInDays"--data OfferingClass-  = Convertible-  | Standard-  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)---instance FromText OfferingClass where-    parser = takeLowerText >>= \case-        "convertible" -> pure Convertible-        "standard" -> pure Standard-        e -> fromTextError $ "Failure parsing OfferingClass from value: '" <> e-           <> "'. Accepted values: convertible, standard"--instance ToText OfferingClass where-    toText = \case-        Convertible -> "CONVERTIBLE"-        Standard -> "STANDARD"--instance Hashable     OfferingClass-instance NFData       OfferingClass-instance ToByteString OfferingClass-instance ToQuery      OfferingClass-instance ToHeader     OfferingClass--instance ToJSON OfferingClass where-    toJSON = toJSONText--instance FromJSON OfferingClass where-    parseJSON = parseJSONText "OfferingClass"--data PaymentOption-  = AllUpfront-  | NoUpfront-  | PartialUpfront-  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)---instance FromText PaymentOption where-    parser = takeLowerText >>= \case-        "all_upfront" -> pure AllUpfront-        "no_upfront" -> pure NoUpfront-        "partial_upfront" -> pure PartialUpfront-        e -> fromTextError $ "Failure parsing PaymentOption from value: '" <> e-           <> "'. Accepted values: all_upfront, no_upfront, partial_upfront"--instance ToText PaymentOption where-    toText = \case-        AllUpfront -> "ALL_UPFRONT"-        NoUpfront -> "NO_UPFRONT"-        PartialUpfront -> "PARTIAL_UPFRONT"--instance Hashable     PaymentOption-instance NFData       PaymentOption-instance ToByteString PaymentOption-instance ToQuery      PaymentOption-instance ToHeader     PaymentOption--instance ToJSON PaymentOption where-    toJSON = toJSONText--instance FromJSON PaymentOption where-    parseJSON = parseJSONText "PaymentOption"--data TermInYears-  = OneYear-  | ThreeYears-  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)---instance FromText TermInYears where-    parser = takeLowerText >>= \case-        "one_year" -> pure OneYear-        "three_years" -> pure ThreeYears-        e -> fromTextError $ "Failure parsing TermInYears from value: '" <> e-           <> "'. Accepted values: one_year, three_years"--instance ToText TermInYears where-    toText = \case-        OneYear -> "ONE_YEAR"-        ThreeYears -> "THREE_YEARS"--instance Hashable     TermInYears-instance NFData       TermInYears-instance ToByteString TermInYears-instance ToQuery      TermInYears-instance ToHeader     TermInYears--instance ToJSON TermInYears where-    toJSON = toJSONText--instance FromJSON TermInYears where-    parseJSON = parseJSONText "TermInYears"
− gen/Network/AWS/CostExplorer/Waiters.hs
@@ -1,21 +0,0 @@-{-# LANGUAGE OverloadedStrings #-}-{-# LANGUAGE TypeFamilies      #-}--{-# OPTIONS_GHC -fno-warn-unused-imports #-}---- Derived from AWS service descriptions, licensed under Apache 2.0.---- |--- Module      : Network.AWS.CostExplorer.Waiters--- Copyright   : (c) 2013-2018 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)----module Network.AWS.CostExplorer.Waiters where--import Network.AWS.CostExplorer.Types-import Network.AWS.Lens-import Network.AWS.Prelude-import Network.AWS.Waiter
test/Main.hs view
@@ -2,20 +2,22 @@  -- | -- Module      : Main--- Copyright   : (c) 2013-2018 Brendan Hay+-- Copyright   : (c) 2013-2023 Brendan Hay -- License     : Mozilla Public License, v. 2.0.--- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Maintainer  : Brendan Hay -- Stability   : auto-generated -- Portability : non-portable (GHC extensions)--- module Main (main) where +import Test.Amazonka.CostExplorer+import Test.Amazonka.CostExplorer.Internal import Test.Tasty-import Test.AWS.CostExplorer-import Test.AWS.CostExplorer.Internal  main :: IO ()-main = defaultMain $ testGroup "CostExplorer"-    [ testGroup "tests"    tests-    , testGroup "fixtures" fixtures-    ]+main =+  defaultMain $+    testGroup+      "CostExplorer"+      [ testGroup "tests" tests,+        testGroup "fixtures" fixtures+      ]
− test/Test/AWS/CostExplorer.hs
@@ -1,20 +0,0 @@--- |--- Module      : Test.AWS.CostExplorer--- Copyright   : (c) 2013-2018 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)----module Test.AWS.CostExplorer-    ( tests-    , fixtures-    ) where--import Test.Tasty (TestTree)--tests :: [TestTree]-tests = []--fixtures :: [TestTree]-fixtures = []
− test/Test/AWS/CostExplorer/Internal.hs
@@ -1,9 +0,0 @@--- |--- Module      : Test.AWS.CostExplorer.Internal--- Copyright   : (c) 2013-2018 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)----module Test.AWS.CostExplorer.Internal where
− test/Test/AWS/Gen/CostExplorer.hs
@@ -1,147 +0,0 @@-{-# OPTIONS_GHC -fno-warn-unused-imports #-}-{-# OPTIONS_GHC -fno-warn-orphans        #-}---- Derived from AWS service descriptions, licensed under Apache 2.0.---- |--- Module      : Test.AWS.Gen.CostExplorer--- Copyright   : (c) 2013-2018 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)----module Test.AWS.Gen.CostExplorer where--import Data.Proxy-import Network.AWS.CostExplorer-import Test.AWS.CostExplorer.Internal-import Test.AWS.Fixture-import Test.AWS.Prelude-import Test.Tasty---- Auto-generated: the actual test selection needs to be manually placed into--- the top-level so that real test data can be incrementally added.------ This commented snippet is what the entire set should look like:---- fixtures :: TestTree--- fixtures =---     [ testGroup "request"---         [ requestGetReservationUtilization $---             getReservationUtilization------         , requestGetTags $---             getTags------         , requestGetReservationCoverage $---             getReservationCoverage------         , requestGetDimensionValues $---             getDimensionValues------         , requestGetReservationPurchaseRecommendation $---             getReservationPurchaseRecommendation------         , requestGetCostAndUsage $---             getCostAndUsage------           ]----     , testGroup "response"---         [ responseGetReservationUtilization $---             getReservationUtilizationResponse------         , responseGetTags $---             getTagsResponse------         , responseGetReservationCoverage $---             getReservationCoverageResponse------         , responseGetDimensionValues $---             getDimensionValuesResponse------         , responseGetReservationPurchaseRecommendation $---             getReservationPurchaseRecommendationResponse------         , responseGetCostAndUsage $---             getCostAndUsageResponse------           ]---     ]---- Requests--requestGetReservationUtilization :: GetReservationUtilization -> TestTree-requestGetReservationUtilization = req-    "GetReservationUtilization"-    "fixture/GetReservationUtilization.yaml"--requestGetTags :: GetTags -> TestTree-requestGetTags = req-    "GetTags"-    "fixture/GetTags.yaml"--requestGetReservationCoverage :: GetReservationCoverage -> TestTree-requestGetReservationCoverage = req-    "GetReservationCoverage"-    "fixture/GetReservationCoverage.yaml"--requestGetDimensionValues :: GetDimensionValues -> TestTree-requestGetDimensionValues = req-    "GetDimensionValues"-    "fixture/GetDimensionValues.yaml"--requestGetReservationPurchaseRecommendation :: GetReservationPurchaseRecommendation -> TestTree-requestGetReservationPurchaseRecommendation = req-    "GetReservationPurchaseRecommendation"-    "fixture/GetReservationPurchaseRecommendation.yaml"--requestGetCostAndUsage :: GetCostAndUsage -> TestTree-requestGetCostAndUsage = req-    "GetCostAndUsage"-    "fixture/GetCostAndUsage.yaml"---- Responses--responseGetReservationUtilization :: GetReservationUtilizationResponse -> TestTree-responseGetReservationUtilization = res-    "GetReservationUtilizationResponse"-    "fixture/GetReservationUtilizationResponse.proto"-    costExplorer-    (Proxy :: Proxy GetReservationUtilization)--responseGetTags :: GetTagsResponse -> TestTree-responseGetTags = res-    "GetTagsResponse"-    "fixture/GetTagsResponse.proto"-    costExplorer-    (Proxy :: Proxy GetTags)--responseGetReservationCoverage :: GetReservationCoverageResponse -> TestTree-responseGetReservationCoverage = res-    "GetReservationCoverageResponse"-    "fixture/GetReservationCoverageResponse.proto"-    costExplorer-    (Proxy :: Proxy GetReservationCoverage)--responseGetDimensionValues :: GetDimensionValuesResponse -> TestTree-responseGetDimensionValues = res-    "GetDimensionValuesResponse"-    "fixture/GetDimensionValuesResponse.proto"-    costExplorer-    (Proxy :: Proxy GetDimensionValues)--responseGetReservationPurchaseRecommendation :: GetReservationPurchaseRecommendationResponse -> TestTree-responseGetReservationPurchaseRecommendation = res-    "GetReservationPurchaseRecommendationResponse"-    "fixture/GetReservationPurchaseRecommendationResponse.proto"-    costExplorer-    (Proxy :: Proxy GetReservationPurchaseRecommendation)--responseGetCostAndUsage :: GetCostAndUsageResponse -> TestTree-responseGetCostAndUsage = res-    "GetCostAndUsageResponse"-    "fixture/GetCostAndUsageResponse.proto"-    costExplorer-    (Proxy :: Proxy GetCostAndUsage)
+ test/Test/Amazonka/CostExplorer.hs view
@@ -0,0 +1,20 @@+-- |+-- Module      : Test.Amazonka.CostExplorer+-- 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 Test.Amazonka.CostExplorer+  ( tests,+    fixtures,+  )+where++import Test.Tasty (TestTree)++tests :: [TestTree]+tests = []++fixtures :: [TestTree]+fixtures = []
+ test/Test/Amazonka/CostExplorer/Internal.hs view
@@ -0,0 +1,8 @@+-- |+-- Module      : Test.Amazonka.CostExplorer.Internal+-- 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 Test.Amazonka.CostExplorer.Internal where
+ test/Test/Amazonka/Gen/CostExplorer.hs view
@@ -0,0 +1,778 @@+{-# OPTIONS_GHC -fno-warn-orphans #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Test.Amazonka.Gen.CostExplorer+-- 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 Test.Amazonka.Gen.CostExplorer where++import Amazonka.CostExplorer+import qualified Data.Proxy as Proxy+import Test.Amazonka.CostExplorer.Internal+import Test.Amazonka.Fixture+import Test.Amazonka.Prelude+import Test.Tasty++-- Auto-generated: the actual test selection needs to be manually placed into+-- the top-level so that real test data can be incrementally added.+--+-- This commented snippet is what the entire set should look like:++-- fixtures :: TestTree+-- fixtures =+--     [ testGroup "request"+--         [ requestCreateAnomalyMonitor $+--             newCreateAnomalyMonitor+--+--         , requestCreateAnomalySubscription $+--             newCreateAnomalySubscription+--+--         , requestCreateCostCategoryDefinition $+--             newCreateCostCategoryDefinition+--+--         , requestDeleteAnomalyMonitor $+--             newDeleteAnomalyMonitor+--+--         , requestDeleteAnomalySubscription $+--             newDeleteAnomalySubscription+--+--         , requestDeleteCostCategoryDefinition $+--             newDeleteCostCategoryDefinition+--+--         , requestDescribeCostCategoryDefinition $+--             newDescribeCostCategoryDefinition+--+--         , requestGetAnomalies $+--             newGetAnomalies+--+--         , requestGetAnomalyMonitors $+--             newGetAnomalyMonitors+--+--         , requestGetAnomalySubscriptions $+--             newGetAnomalySubscriptions+--+--         , requestGetCostAndUsage $+--             newGetCostAndUsage+--+--         , requestGetCostAndUsageWithResources $+--             newGetCostAndUsageWithResources+--+--         , requestGetCostCategories $+--             newGetCostCategories+--+--         , requestGetCostForecast $+--             newGetCostForecast+--+--         , requestGetDimensionValues $+--             newGetDimensionValues+--+--         , requestGetReservationCoverage $+--             newGetReservationCoverage+--+--         , requestGetReservationPurchaseRecommendation $+--             newGetReservationPurchaseRecommendation+--+--         , requestGetReservationUtilization $+--             newGetReservationUtilization+--+--         , requestGetRightsizingRecommendation $+--             newGetRightsizingRecommendation+--+--         , requestGetSavingsPlansCoverage $+--             newGetSavingsPlansCoverage+--+--         , requestGetSavingsPlansPurchaseRecommendation $+--             newGetSavingsPlansPurchaseRecommendation+--+--         , requestGetSavingsPlansUtilization $+--             newGetSavingsPlansUtilization+--+--         , requestGetSavingsPlansUtilizationDetails $+--             newGetSavingsPlansUtilizationDetails+--+--         , requestGetTags $+--             newGetTags+--+--         , requestGetUsageForecast $+--             newGetUsageForecast+--+--         , requestListCostAllocationTags $+--             newListCostAllocationTags+--+--         , requestListCostCategoryDefinitions $+--             newListCostCategoryDefinitions+--+--         , requestListSavingsPlansPurchaseRecommendationGeneration $+--             newListSavingsPlansPurchaseRecommendationGeneration+--+--         , requestListTagsForResource $+--             newListTagsForResource+--+--         , requestProvideAnomalyFeedback $+--             newProvideAnomalyFeedback+--+--         , requestStartSavingsPlansPurchaseRecommendationGeneration $+--             newStartSavingsPlansPurchaseRecommendationGeneration+--+--         , requestTagResource $+--             newTagResource+--+--         , requestUntagResource $+--             newUntagResource+--+--         , requestUpdateAnomalyMonitor $+--             newUpdateAnomalyMonitor+--+--         , requestUpdateAnomalySubscription $+--             newUpdateAnomalySubscription+--+--         , requestUpdateCostAllocationTagsStatus $+--             newUpdateCostAllocationTagsStatus+--+--         , requestUpdateCostCategoryDefinition $+--             newUpdateCostCategoryDefinition+--+--           ]++--     , testGroup "response"+--         [ responseCreateAnomalyMonitor $+--             newCreateAnomalyMonitorResponse+--+--         , responseCreateAnomalySubscription $+--             newCreateAnomalySubscriptionResponse+--+--         , responseCreateCostCategoryDefinition $+--             newCreateCostCategoryDefinitionResponse+--+--         , responseDeleteAnomalyMonitor $+--             newDeleteAnomalyMonitorResponse+--+--         , responseDeleteAnomalySubscription $+--             newDeleteAnomalySubscriptionResponse+--+--         , responseDeleteCostCategoryDefinition $+--             newDeleteCostCategoryDefinitionResponse+--+--         , responseDescribeCostCategoryDefinition $+--             newDescribeCostCategoryDefinitionResponse+--+--         , responseGetAnomalies $+--             newGetAnomaliesResponse+--+--         , responseGetAnomalyMonitors $+--             newGetAnomalyMonitorsResponse+--+--         , responseGetAnomalySubscriptions $+--             newGetAnomalySubscriptionsResponse+--+--         , responseGetCostAndUsage $+--             newGetCostAndUsageResponse+--+--         , responseGetCostAndUsageWithResources $+--             newGetCostAndUsageWithResourcesResponse+--+--         , responseGetCostCategories $+--             newGetCostCategoriesResponse+--+--         , responseGetCostForecast $+--             newGetCostForecastResponse+--+--         , responseGetDimensionValues $+--             newGetDimensionValuesResponse+--+--         , responseGetReservationCoverage $+--             newGetReservationCoverageResponse+--+--         , responseGetReservationPurchaseRecommendation $+--             newGetReservationPurchaseRecommendationResponse+--+--         , responseGetReservationUtilization $+--             newGetReservationUtilizationResponse+--+--         , responseGetRightsizingRecommendation $+--             newGetRightsizingRecommendationResponse+--+--         , responseGetSavingsPlansCoverage $+--             newGetSavingsPlansCoverageResponse+--+--         , responseGetSavingsPlansPurchaseRecommendation $+--             newGetSavingsPlansPurchaseRecommendationResponse+--+--         , responseGetSavingsPlansUtilization $+--             newGetSavingsPlansUtilizationResponse+--+--         , responseGetSavingsPlansUtilizationDetails $+--             newGetSavingsPlansUtilizationDetailsResponse+--+--         , responseGetTags $+--             newGetTagsResponse+--+--         , responseGetUsageForecast $+--             newGetUsageForecastResponse+--+--         , responseListCostAllocationTags $+--             newListCostAllocationTagsResponse+--+--         , responseListCostCategoryDefinitions $+--             newListCostCategoryDefinitionsResponse+--+--         , responseListSavingsPlansPurchaseRecommendationGeneration $+--             newListSavingsPlansPurchaseRecommendationGenerationResponse+--+--         , responseListTagsForResource $+--             newListTagsForResourceResponse+--+--         , responseProvideAnomalyFeedback $+--             newProvideAnomalyFeedbackResponse+--+--         , responseStartSavingsPlansPurchaseRecommendationGeneration $+--             newStartSavingsPlansPurchaseRecommendationGenerationResponse+--+--         , responseTagResource $+--             newTagResourceResponse+--+--         , responseUntagResource $+--             newUntagResourceResponse+--+--         , responseUpdateAnomalyMonitor $+--             newUpdateAnomalyMonitorResponse+--+--         , responseUpdateAnomalySubscription $+--             newUpdateAnomalySubscriptionResponse+--+--         , responseUpdateCostAllocationTagsStatus $+--             newUpdateCostAllocationTagsStatusResponse+--+--         , responseUpdateCostCategoryDefinition $+--             newUpdateCostCategoryDefinitionResponse+--+--           ]+--     ]++-- Requests++requestCreateAnomalyMonitor :: CreateAnomalyMonitor -> TestTree+requestCreateAnomalyMonitor =+  req+    "CreateAnomalyMonitor"+    "fixture/CreateAnomalyMonitor.yaml"++requestCreateAnomalySubscription :: CreateAnomalySubscription -> TestTree+requestCreateAnomalySubscription =+  req+    "CreateAnomalySubscription"+    "fixture/CreateAnomalySubscription.yaml"++requestCreateCostCategoryDefinition :: CreateCostCategoryDefinition -> TestTree+requestCreateCostCategoryDefinition =+  req+    "CreateCostCategoryDefinition"+    "fixture/CreateCostCategoryDefinition.yaml"++requestDeleteAnomalyMonitor :: DeleteAnomalyMonitor -> TestTree+requestDeleteAnomalyMonitor =+  req+    "DeleteAnomalyMonitor"+    "fixture/DeleteAnomalyMonitor.yaml"++requestDeleteAnomalySubscription :: DeleteAnomalySubscription -> TestTree+requestDeleteAnomalySubscription =+  req+    "DeleteAnomalySubscription"+    "fixture/DeleteAnomalySubscription.yaml"++requestDeleteCostCategoryDefinition :: DeleteCostCategoryDefinition -> TestTree+requestDeleteCostCategoryDefinition =+  req+    "DeleteCostCategoryDefinition"+    "fixture/DeleteCostCategoryDefinition.yaml"++requestDescribeCostCategoryDefinition :: DescribeCostCategoryDefinition -> TestTree+requestDescribeCostCategoryDefinition =+  req+    "DescribeCostCategoryDefinition"+    "fixture/DescribeCostCategoryDefinition.yaml"++requestGetAnomalies :: GetAnomalies -> TestTree+requestGetAnomalies =+  req+    "GetAnomalies"+    "fixture/GetAnomalies.yaml"++requestGetAnomalyMonitors :: GetAnomalyMonitors -> TestTree+requestGetAnomalyMonitors =+  req+    "GetAnomalyMonitors"+    "fixture/GetAnomalyMonitors.yaml"++requestGetAnomalySubscriptions :: GetAnomalySubscriptions -> TestTree+requestGetAnomalySubscriptions =+  req+    "GetAnomalySubscriptions"+    "fixture/GetAnomalySubscriptions.yaml"++requestGetCostAndUsage :: GetCostAndUsage -> TestTree+requestGetCostAndUsage =+  req+    "GetCostAndUsage"+    "fixture/GetCostAndUsage.yaml"++requestGetCostAndUsageWithResources :: GetCostAndUsageWithResources -> TestTree+requestGetCostAndUsageWithResources =+  req+    "GetCostAndUsageWithResources"+    "fixture/GetCostAndUsageWithResources.yaml"++requestGetCostCategories :: GetCostCategories -> TestTree+requestGetCostCategories =+  req+    "GetCostCategories"+    "fixture/GetCostCategories.yaml"++requestGetCostForecast :: GetCostForecast -> TestTree+requestGetCostForecast =+  req+    "GetCostForecast"+    "fixture/GetCostForecast.yaml"++requestGetDimensionValues :: GetDimensionValues -> TestTree+requestGetDimensionValues =+  req+    "GetDimensionValues"+    "fixture/GetDimensionValues.yaml"++requestGetReservationCoverage :: GetReservationCoverage -> TestTree+requestGetReservationCoverage =+  req+    "GetReservationCoverage"+    "fixture/GetReservationCoverage.yaml"++requestGetReservationPurchaseRecommendation :: GetReservationPurchaseRecommendation -> TestTree+requestGetReservationPurchaseRecommendation =+  req+    "GetReservationPurchaseRecommendation"+    "fixture/GetReservationPurchaseRecommendation.yaml"++requestGetReservationUtilization :: GetReservationUtilization -> TestTree+requestGetReservationUtilization =+  req+    "GetReservationUtilization"+    "fixture/GetReservationUtilization.yaml"++requestGetRightsizingRecommendation :: GetRightsizingRecommendation -> TestTree+requestGetRightsizingRecommendation =+  req+    "GetRightsizingRecommendation"+    "fixture/GetRightsizingRecommendation.yaml"++requestGetSavingsPlansCoverage :: GetSavingsPlansCoverage -> TestTree+requestGetSavingsPlansCoverage =+  req+    "GetSavingsPlansCoverage"+    "fixture/GetSavingsPlansCoverage.yaml"++requestGetSavingsPlansPurchaseRecommendation :: GetSavingsPlansPurchaseRecommendation -> TestTree+requestGetSavingsPlansPurchaseRecommendation =+  req+    "GetSavingsPlansPurchaseRecommendation"+    "fixture/GetSavingsPlansPurchaseRecommendation.yaml"++requestGetSavingsPlansUtilization :: GetSavingsPlansUtilization -> TestTree+requestGetSavingsPlansUtilization =+  req+    "GetSavingsPlansUtilization"+    "fixture/GetSavingsPlansUtilization.yaml"++requestGetSavingsPlansUtilizationDetails :: GetSavingsPlansUtilizationDetails -> TestTree+requestGetSavingsPlansUtilizationDetails =+  req+    "GetSavingsPlansUtilizationDetails"+    "fixture/GetSavingsPlansUtilizationDetails.yaml"++requestGetTags :: GetTags -> TestTree+requestGetTags =+  req+    "GetTags"+    "fixture/GetTags.yaml"++requestGetUsageForecast :: GetUsageForecast -> TestTree+requestGetUsageForecast =+  req+    "GetUsageForecast"+    "fixture/GetUsageForecast.yaml"++requestListCostAllocationTags :: ListCostAllocationTags -> TestTree+requestListCostAllocationTags =+  req+    "ListCostAllocationTags"+    "fixture/ListCostAllocationTags.yaml"++requestListCostCategoryDefinitions :: ListCostCategoryDefinitions -> TestTree+requestListCostCategoryDefinitions =+  req+    "ListCostCategoryDefinitions"+    "fixture/ListCostCategoryDefinitions.yaml"++requestListSavingsPlansPurchaseRecommendationGeneration :: ListSavingsPlansPurchaseRecommendationGeneration -> TestTree+requestListSavingsPlansPurchaseRecommendationGeneration =+  req+    "ListSavingsPlansPurchaseRecommendationGeneration"+    "fixture/ListSavingsPlansPurchaseRecommendationGeneration.yaml"++requestListTagsForResource :: ListTagsForResource -> TestTree+requestListTagsForResource =+  req+    "ListTagsForResource"+    "fixture/ListTagsForResource.yaml"++requestProvideAnomalyFeedback :: ProvideAnomalyFeedback -> TestTree+requestProvideAnomalyFeedback =+  req+    "ProvideAnomalyFeedback"+    "fixture/ProvideAnomalyFeedback.yaml"++requestStartSavingsPlansPurchaseRecommendationGeneration :: StartSavingsPlansPurchaseRecommendationGeneration -> TestTree+requestStartSavingsPlansPurchaseRecommendationGeneration =+  req+    "StartSavingsPlansPurchaseRecommendationGeneration"+    "fixture/StartSavingsPlansPurchaseRecommendationGeneration.yaml"++requestTagResource :: TagResource -> TestTree+requestTagResource =+  req+    "TagResource"+    "fixture/TagResource.yaml"++requestUntagResource :: UntagResource -> TestTree+requestUntagResource =+  req+    "UntagResource"+    "fixture/UntagResource.yaml"++requestUpdateAnomalyMonitor :: UpdateAnomalyMonitor -> TestTree+requestUpdateAnomalyMonitor =+  req+    "UpdateAnomalyMonitor"+    "fixture/UpdateAnomalyMonitor.yaml"++requestUpdateAnomalySubscription :: UpdateAnomalySubscription -> TestTree+requestUpdateAnomalySubscription =+  req+    "UpdateAnomalySubscription"+    "fixture/UpdateAnomalySubscription.yaml"++requestUpdateCostAllocationTagsStatus :: UpdateCostAllocationTagsStatus -> TestTree+requestUpdateCostAllocationTagsStatus =+  req+    "UpdateCostAllocationTagsStatus"+    "fixture/UpdateCostAllocationTagsStatus.yaml"++requestUpdateCostCategoryDefinition :: UpdateCostCategoryDefinition -> TestTree+requestUpdateCostCategoryDefinition =+  req+    "UpdateCostCategoryDefinition"+    "fixture/UpdateCostCategoryDefinition.yaml"++-- Responses++responseCreateAnomalyMonitor :: CreateAnomalyMonitorResponse -> TestTree+responseCreateAnomalyMonitor =+  res+    "CreateAnomalyMonitorResponse"+    "fixture/CreateAnomalyMonitorResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateAnomalyMonitor)++responseCreateAnomalySubscription :: CreateAnomalySubscriptionResponse -> TestTree+responseCreateAnomalySubscription =+  res+    "CreateAnomalySubscriptionResponse"+    "fixture/CreateAnomalySubscriptionResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateAnomalySubscription)++responseCreateCostCategoryDefinition :: CreateCostCategoryDefinitionResponse -> TestTree+responseCreateCostCategoryDefinition =+  res+    "CreateCostCategoryDefinitionResponse"+    "fixture/CreateCostCategoryDefinitionResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy CreateCostCategoryDefinition)++responseDeleteAnomalyMonitor :: DeleteAnomalyMonitorResponse -> TestTree+responseDeleteAnomalyMonitor =+  res+    "DeleteAnomalyMonitorResponse"+    "fixture/DeleteAnomalyMonitorResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteAnomalyMonitor)++responseDeleteAnomalySubscription :: DeleteAnomalySubscriptionResponse -> TestTree+responseDeleteAnomalySubscription =+  res+    "DeleteAnomalySubscriptionResponse"+    "fixture/DeleteAnomalySubscriptionResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteAnomalySubscription)++responseDeleteCostCategoryDefinition :: DeleteCostCategoryDefinitionResponse -> TestTree+responseDeleteCostCategoryDefinition =+  res+    "DeleteCostCategoryDefinitionResponse"+    "fixture/DeleteCostCategoryDefinitionResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DeleteCostCategoryDefinition)++responseDescribeCostCategoryDefinition :: DescribeCostCategoryDefinitionResponse -> TestTree+responseDescribeCostCategoryDefinition =+  res+    "DescribeCostCategoryDefinitionResponse"+    "fixture/DescribeCostCategoryDefinitionResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy DescribeCostCategoryDefinition)++responseGetAnomalies :: GetAnomaliesResponse -> TestTree+responseGetAnomalies =+  res+    "GetAnomaliesResponse"+    "fixture/GetAnomaliesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetAnomalies)++responseGetAnomalyMonitors :: GetAnomalyMonitorsResponse -> TestTree+responseGetAnomalyMonitors =+  res+    "GetAnomalyMonitorsResponse"+    "fixture/GetAnomalyMonitorsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetAnomalyMonitors)++responseGetAnomalySubscriptions :: GetAnomalySubscriptionsResponse -> TestTree+responseGetAnomalySubscriptions =+  res+    "GetAnomalySubscriptionsResponse"+    "fixture/GetAnomalySubscriptionsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetAnomalySubscriptions)++responseGetCostAndUsage :: GetCostAndUsageResponse -> TestTree+responseGetCostAndUsage =+  res+    "GetCostAndUsageResponse"+    "fixture/GetCostAndUsageResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetCostAndUsage)++responseGetCostAndUsageWithResources :: GetCostAndUsageWithResourcesResponse -> TestTree+responseGetCostAndUsageWithResources =+  res+    "GetCostAndUsageWithResourcesResponse"+    "fixture/GetCostAndUsageWithResourcesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetCostAndUsageWithResources)++responseGetCostCategories :: GetCostCategoriesResponse -> TestTree+responseGetCostCategories =+  res+    "GetCostCategoriesResponse"+    "fixture/GetCostCategoriesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetCostCategories)++responseGetCostForecast :: GetCostForecastResponse -> TestTree+responseGetCostForecast =+  res+    "GetCostForecastResponse"+    "fixture/GetCostForecastResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetCostForecast)++responseGetDimensionValues :: GetDimensionValuesResponse -> TestTree+responseGetDimensionValues =+  res+    "GetDimensionValuesResponse"+    "fixture/GetDimensionValuesResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetDimensionValues)++responseGetReservationCoverage :: GetReservationCoverageResponse -> TestTree+responseGetReservationCoverage =+  res+    "GetReservationCoverageResponse"+    "fixture/GetReservationCoverageResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetReservationCoverage)++responseGetReservationPurchaseRecommendation :: GetReservationPurchaseRecommendationResponse -> TestTree+responseGetReservationPurchaseRecommendation =+  res+    "GetReservationPurchaseRecommendationResponse"+    "fixture/GetReservationPurchaseRecommendationResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetReservationPurchaseRecommendation)++responseGetReservationUtilization :: GetReservationUtilizationResponse -> TestTree+responseGetReservationUtilization =+  res+    "GetReservationUtilizationResponse"+    "fixture/GetReservationUtilizationResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetReservationUtilization)++responseGetRightsizingRecommendation :: GetRightsizingRecommendationResponse -> TestTree+responseGetRightsizingRecommendation =+  res+    "GetRightsizingRecommendationResponse"+    "fixture/GetRightsizingRecommendationResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetRightsizingRecommendation)++responseGetSavingsPlansCoverage :: GetSavingsPlansCoverageResponse -> TestTree+responseGetSavingsPlansCoverage =+  res+    "GetSavingsPlansCoverageResponse"+    "fixture/GetSavingsPlansCoverageResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetSavingsPlansCoverage)++responseGetSavingsPlansPurchaseRecommendation :: GetSavingsPlansPurchaseRecommendationResponse -> TestTree+responseGetSavingsPlansPurchaseRecommendation =+  res+    "GetSavingsPlansPurchaseRecommendationResponse"+    "fixture/GetSavingsPlansPurchaseRecommendationResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetSavingsPlansPurchaseRecommendation)++responseGetSavingsPlansUtilization :: GetSavingsPlansUtilizationResponse -> TestTree+responseGetSavingsPlansUtilization =+  res+    "GetSavingsPlansUtilizationResponse"+    "fixture/GetSavingsPlansUtilizationResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetSavingsPlansUtilization)++responseGetSavingsPlansUtilizationDetails :: GetSavingsPlansUtilizationDetailsResponse -> TestTree+responseGetSavingsPlansUtilizationDetails =+  res+    "GetSavingsPlansUtilizationDetailsResponse"+    "fixture/GetSavingsPlansUtilizationDetailsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetSavingsPlansUtilizationDetails)++responseGetTags :: GetTagsResponse -> TestTree+responseGetTags =+  res+    "GetTagsResponse"+    "fixture/GetTagsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetTags)++responseGetUsageForecast :: GetUsageForecastResponse -> TestTree+responseGetUsageForecast =+  res+    "GetUsageForecastResponse"+    "fixture/GetUsageForecastResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy GetUsageForecast)++responseListCostAllocationTags :: ListCostAllocationTagsResponse -> TestTree+responseListCostAllocationTags =+  res+    "ListCostAllocationTagsResponse"+    "fixture/ListCostAllocationTagsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListCostAllocationTags)++responseListCostCategoryDefinitions :: ListCostCategoryDefinitionsResponse -> TestTree+responseListCostCategoryDefinitions =+  res+    "ListCostCategoryDefinitionsResponse"+    "fixture/ListCostCategoryDefinitionsResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListCostCategoryDefinitions)++responseListSavingsPlansPurchaseRecommendationGeneration :: ListSavingsPlansPurchaseRecommendationGenerationResponse -> TestTree+responseListSavingsPlansPurchaseRecommendationGeneration =+  res+    "ListSavingsPlansPurchaseRecommendationGenerationResponse"+    "fixture/ListSavingsPlansPurchaseRecommendationGenerationResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListSavingsPlansPurchaseRecommendationGeneration)++responseListTagsForResource :: ListTagsForResourceResponse -> TestTree+responseListTagsForResource =+  res+    "ListTagsForResourceResponse"+    "fixture/ListTagsForResourceResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ListTagsForResource)++responseProvideAnomalyFeedback :: ProvideAnomalyFeedbackResponse -> TestTree+responseProvideAnomalyFeedback =+  res+    "ProvideAnomalyFeedbackResponse"+    "fixture/ProvideAnomalyFeedbackResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy ProvideAnomalyFeedback)++responseStartSavingsPlansPurchaseRecommendationGeneration :: StartSavingsPlansPurchaseRecommendationGenerationResponse -> TestTree+responseStartSavingsPlansPurchaseRecommendationGeneration =+  res+    "StartSavingsPlansPurchaseRecommendationGenerationResponse"+    "fixture/StartSavingsPlansPurchaseRecommendationGenerationResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy StartSavingsPlansPurchaseRecommendationGeneration)++responseTagResource :: TagResourceResponse -> TestTree+responseTagResource =+  res+    "TagResourceResponse"+    "fixture/TagResourceResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy TagResource)++responseUntagResource :: UntagResourceResponse -> TestTree+responseUntagResource =+  res+    "UntagResourceResponse"+    "fixture/UntagResourceResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UntagResource)++responseUpdateAnomalyMonitor :: UpdateAnomalyMonitorResponse -> TestTree+responseUpdateAnomalyMonitor =+  res+    "UpdateAnomalyMonitorResponse"+    "fixture/UpdateAnomalyMonitorResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateAnomalyMonitor)++responseUpdateAnomalySubscription :: UpdateAnomalySubscriptionResponse -> TestTree+responseUpdateAnomalySubscription =+  res+    "UpdateAnomalySubscriptionResponse"+    "fixture/UpdateAnomalySubscriptionResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateAnomalySubscription)++responseUpdateCostAllocationTagsStatus :: UpdateCostAllocationTagsStatusResponse -> TestTree+responseUpdateCostAllocationTagsStatus =+  res+    "UpdateCostAllocationTagsStatusResponse"+    "fixture/UpdateCostAllocationTagsStatusResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateCostAllocationTagsStatus)++responseUpdateCostCategoryDefinition :: UpdateCostCategoryDefinitionResponse -> TestTree+responseUpdateCostCategoryDefinition =+  res+    "UpdateCostCategoryDefinitionResponse"+    "fixture/UpdateCostCategoryDefinitionResponse.proto"+    defaultService+    (Proxy.Proxy :: Proxy.Proxy UpdateCostCategoryDefinition)