amazonka-pricing 1.6.1 → 2.0
raw patch · 29 files changed
+1828/−1278 lines, 29 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.Pricing: TermMatch :: FilterType
- Network.AWS.Pricing: _ExpiredNextTokenException :: AsError a => Getting (First ServiceError) a ServiceError
- Network.AWS.Pricing: _InternalErrorException :: AsError a => Getting (First ServiceError) a ServiceError
- Network.AWS.Pricing: _InvalidNextTokenException :: AsError a => Getting (First ServiceError) a ServiceError
- Network.AWS.Pricing: _InvalidParameterException :: AsError a => Getting (First ServiceError) a ServiceError
- Network.AWS.Pricing: _NotFoundException :: AsError a => Getting (First ServiceError) a ServiceError
- Network.AWS.Pricing: attributeValue :: AttributeValue
- Network.AWS.Pricing: avValue :: Lens' AttributeValue (Maybe Text)
- Network.AWS.Pricing: data AttributeValue
- Network.AWS.Pricing: data Filter
- Network.AWS.Pricing: data FilterType
- Network.AWS.Pricing: data PricingService
- Network.AWS.Pricing: fField :: Lens' Filter Text
- Network.AWS.Pricing: fType :: Lens' Filter FilterType
- Network.AWS.Pricing: fValue :: Lens' Filter Text
- Network.AWS.Pricing: filter' :: FilterType -> Text -> Text -> Filter
- Network.AWS.Pricing: pricing :: Service
- Network.AWS.Pricing: pricingService :: PricingService
- Network.AWS.Pricing: psAttributeNames :: Lens' PricingService [Text]
- Network.AWS.Pricing: psServiceCode :: Lens' PricingService (Maybe Text)
- Network.AWS.Pricing.DescribeServices: data DescribeServices
- Network.AWS.Pricing.DescribeServices: data DescribeServicesResponse
- Network.AWS.Pricing.DescribeServices: describeServices :: DescribeServices
- Network.AWS.Pricing.DescribeServices: describeServicesResponse :: Int -> DescribeServicesResponse
- Network.AWS.Pricing.DescribeServices: dsFormatVersion :: Lens' DescribeServices (Maybe Text)
- Network.AWS.Pricing.DescribeServices: dsMaxResults :: Lens' DescribeServices (Maybe Natural)
- Network.AWS.Pricing.DescribeServices: dsNextToken :: Lens' DescribeServices (Maybe Text)
- Network.AWS.Pricing.DescribeServices: dsServiceCode :: Lens' DescribeServices (Maybe Text)
- Network.AWS.Pricing.DescribeServices: dsrsFormatVersion :: Lens' DescribeServicesResponse (Maybe Text)
- Network.AWS.Pricing.DescribeServices: dsrsNextToken :: Lens' DescribeServicesResponse (Maybe Text)
- Network.AWS.Pricing.DescribeServices: dsrsResponseStatus :: Lens' DescribeServicesResponse Int
- Network.AWS.Pricing.DescribeServices: dsrsServices :: Lens' DescribeServicesResponse [PricingService]
- Network.AWS.Pricing.DescribeServices: instance Control.DeepSeq.NFData Network.AWS.Pricing.DescribeServices.DescribeServices
- Network.AWS.Pricing.DescribeServices: instance Control.DeepSeq.NFData Network.AWS.Pricing.DescribeServices.DescribeServicesResponse
- Network.AWS.Pricing.DescribeServices: instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Pricing.DescribeServices.DescribeServices
- Network.AWS.Pricing.DescribeServices: instance Data.Data.Data Network.AWS.Pricing.DescribeServices.DescribeServices
- Network.AWS.Pricing.DescribeServices: instance Data.Data.Data Network.AWS.Pricing.DescribeServices.DescribeServicesResponse
- Network.AWS.Pricing.DescribeServices: instance Data.Hashable.Class.Hashable Network.AWS.Pricing.DescribeServices.DescribeServices
- Network.AWS.Pricing.DescribeServices: instance GHC.Classes.Eq Network.AWS.Pricing.DescribeServices.DescribeServices
- Network.AWS.Pricing.DescribeServices: instance GHC.Classes.Eq Network.AWS.Pricing.DescribeServices.DescribeServicesResponse
- Network.AWS.Pricing.DescribeServices: instance GHC.Generics.Generic Network.AWS.Pricing.DescribeServices.DescribeServices
- Network.AWS.Pricing.DescribeServices: instance GHC.Generics.Generic Network.AWS.Pricing.DescribeServices.DescribeServicesResponse
- Network.AWS.Pricing.DescribeServices: instance GHC.Read.Read Network.AWS.Pricing.DescribeServices.DescribeServices
- Network.AWS.Pricing.DescribeServices: instance GHC.Read.Read Network.AWS.Pricing.DescribeServices.DescribeServicesResponse
- Network.AWS.Pricing.DescribeServices: instance GHC.Show.Show Network.AWS.Pricing.DescribeServices.DescribeServices
- Network.AWS.Pricing.DescribeServices: instance GHC.Show.Show Network.AWS.Pricing.DescribeServices.DescribeServicesResponse
- Network.AWS.Pricing.DescribeServices: instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Pricing.DescribeServices.DescribeServices
- Network.AWS.Pricing.DescribeServices: instance Network.AWS.Data.Path.ToPath Network.AWS.Pricing.DescribeServices.DescribeServices
- Network.AWS.Pricing.DescribeServices: instance Network.AWS.Data.Query.ToQuery Network.AWS.Pricing.DescribeServices.DescribeServices
- Network.AWS.Pricing.DescribeServices: instance Network.AWS.Pager.AWSPager Network.AWS.Pricing.DescribeServices.DescribeServices
- Network.AWS.Pricing.DescribeServices: instance Network.AWS.Types.AWSRequest Network.AWS.Pricing.DescribeServices.DescribeServices
- Network.AWS.Pricing.GetAttributeValues: data GetAttributeValues
- Network.AWS.Pricing.GetAttributeValues: data GetAttributeValuesResponse
- Network.AWS.Pricing.GetAttributeValues: gavAttributeName :: Lens' GetAttributeValues Text
- Network.AWS.Pricing.GetAttributeValues: gavMaxResults :: Lens' GetAttributeValues (Maybe Natural)
- Network.AWS.Pricing.GetAttributeValues: gavNextToken :: Lens' GetAttributeValues (Maybe Text)
- Network.AWS.Pricing.GetAttributeValues: gavServiceCode :: Lens' GetAttributeValues Text
- Network.AWS.Pricing.GetAttributeValues: gavrsAttributeValues :: Lens' GetAttributeValuesResponse [AttributeValue]
- Network.AWS.Pricing.GetAttributeValues: gavrsNextToken :: Lens' GetAttributeValuesResponse (Maybe Text)
- Network.AWS.Pricing.GetAttributeValues: gavrsResponseStatus :: Lens' GetAttributeValuesResponse Int
- Network.AWS.Pricing.GetAttributeValues: getAttributeValues :: Text -> Text -> GetAttributeValues
- Network.AWS.Pricing.GetAttributeValues: getAttributeValuesResponse :: Int -> GetAttributeValuesResponse
- Network.AWS.Pricing.GetAttributeValues: instance Control.DeepSeq.NFData Network.AWS.Pricing.GetAttributeValues.GetAttributeValues
- Network.AWS.Pricing.GetAttributeValues: instance Control.DeepSeq.NFData Network.AWS.Pricing.GetAttributeValues.GetAttributeValuesResponse
- Network.AWS.Pricing.GetAttributeValues: instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Pricing.GetAttributeValues.GetAttributeValues
- Network.AWS.Pricing.GetAttributeValues: instance Data.Data.Data Network.AWS.Pricing.GetAttributeValues.GetAttributeValues
- Network.AWS.Pricing.GetAttributeValues: instance Data.Data.Data Network.AWS.Pricing.GetAttributeValues.GetAttributeValuesResponse
- Network.AWS.Pricing.GetAttributeValues: instance Data.Hashable.Class.Hashable Network.AWS.Pricing.GetAttributeValues.GetAttributeValues
- Network.AWS.Pricing.GetAttributeValues: instance GHC.Classes.Eq Network.AWS.Pricing.GetAttributeValues.GetAttributeValues
- Network.AWS.Pricing.GetAttributeValues: instance GHC.Classes.Eq Network.AWS.Pricing.GetAttributeValues.GetAttributeValuesResponse
- Network.AWS.Pricing.GetAttributeValues: instance GHC.Generics.Generic Network.AWS.Pricing.GetAttributeValues.GetAttributeValues
- Network.AWS.Pricing.GetAttributeValues: instance GHC.Generics.Generic Network.AWS.Pricing.GetAttributeValues.GetAttributeValuesResponse
- Network.AWS.Pricing.GetAttributeValues: instance GHC.Read.Read Network.AWS.Pricing.GetAttributeValues.GetAttributeValues
- Network.AWS.Pricing.GetAttributeValues: instance GHC.Read.Read Network.AWS.Pricing.GetAttributeValues.GetAttributeValuesResponse
- Network.AWS.Pricing.GetAttributeValues: instance GHC.Show.Show Network.AWS.Pricing.GetAttributeValues.GetAttributeValues
- Network.AWS.Pricing.GetAttributeValues: instance GHC.Show.Show Network.AWS.Pricing.GetAttributeValues.GetAttributeValuesResponse
- Network.AWS.Pricing.GetAttributeValues: instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Pricing.GetAttributeValues.GetAttributeValues
- Network.AWS.Pricing.GetAttributeValues: instance Network.AWS.Data.Path.ToPath Network.AWS.Pricing.GetAttributeValues.GetAttributeValues
- Network.AWS.Pricing.GetAttributeValues: instance Network.AWS.Data.Query.ToQuery Network.AWS.Pricing.GetAttributeValues.GetAttributeValues
- Network.AWS.Pricing.GetAttributeValues: instance Network.AWS.Pager.AWSPager Network.AWS.Pricing.GetAttributeValues.GetAttributeValues
- Network.AWS.Pricing.GetAttributeValues: instance Network.AWS.Types.AWSRequest Network.AWS.Pricing.GetAttributeValues.GetAttributeValues
- Network.AWS.Pricing.GetProducts: data GetProducts
- Network.AWS.Pricing.GetProducts: data GetProductsResponse
- Network.AWS.Pricing.GetProducts: getProducts :: GetProducts
- Network.AWS.Pricing.GetProducts: getProductsResponse :: Int -> GetProductsResponse
- Network.AWS.Pricing.GetProducts: gpFilters :: Lens' GetProducts [Filter]
- Network.AWS.Pricing.GetProducts: gpFormatVersion :: Lens' GetProducts (Maybe Text)
- Network.AWS.Pricing.GetProducts: gpMaxResults :: Lens' GetProducts (Maybe Natural)
- Network.AWS.Pricing.GetProducts: gpNextToken :: Lens' GetProducts (Maybe Text)
- Network.AWS.Pricing.GetProducts: gpServiceCode :: Lens' GetProducts (Maybe Text)
- Network.AWS.Pricing.GetProducts: gprsFormatVersion :: Lens' GetProductsResponse (Maybe Text)
- Network.AWS.Pricing.GetProducts: gprsNextToken :: Lens' GetProductsResponse (Maybe Text)
- Network.AWS.Pricing.GetProducts: gprsPriceList :: Lens' GetProductsResponse [Text]
- Network.AWS.Pricing.GetProducts: gprsResponseStatus :: Lens' GetProductsResponse Int
- Network.AWS.Pricing.GetProducts: instance Control.DeepSeq.NFData Network.AWS.Pricing.GetProducts.GetProducts
- Network.AWS.Pricing.GetProducts: instance Control.DeepSeq.NFData Network.AWS.Pricing.GetProducts.GetProductsResponse
- Network.AWS.Pricing.GetProducts: instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Pricing.GetProducts.GetProducts
- Network.AWS.Pricing.GetProducts: instance Data.Data.Data Network.AWS.Pricing.GetProducts.GetProducts
- Network.AWS.Pricing.GetProducts: instance Data.Data.Data Network.AWS.Pricing.GetProducts.GetProductsResponse
- Network.AWS.Pricing.GetProducts: instance Data.Hashable.Class.Hashable Network.AWS.Pricing.GetProducts.GetProducts
- Network.AWS.Pricing.GetProducts: instance GHC.Classes.Eq Network.AWS.Pricing.GetProducts.GetProducts
- Network.AWS.Pricing.GetProducts: instance GHC.Classes.Eq Network.AWS.Pricing.GetProducts.GetProductsResponse
- Network.AWS.Pricing.GetProducts: instance GHC.Generics.Generic Network.AWS.Pricing.GetProducts.GetProducts
- Network.AWS.Pricing.GetProducts: instance GHC.Generics.Generic Network.AWS.Pricing.GetProducts.GetProductsResponse
- Network.AWS.Pricing.GetProducts: instance GHC.Read.Read Network.AWS.Pricing.GetProducts.GetProducts
- Network.AWS.Pricing.GetProducts: instance GHC.Read.Read Network.AWS.Pricing.GetProducts.GetProductsResponse
- Network.AWS.Pricing.GetProducts: instance GHC.Show.Show Network.AWS.Pricing.GetProducts.GetProducts
- Network.AWS.Pricing.GetProducts: instance GHC.Show.Show Network.AWS.Pricing.GetProducts.GetProductsResponse
- Network.AWS.Pricing.GetProducts: instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Pricing.GetProducts.GetProducts
- Network.AWS.Pricing.GetProducts: instance Network.AWS.Data.Path.ToPath Network.AWS.Pricing.GetProducts.GetProducts
- Network.AWS.Pricing.GetProducts: instance Network.AWS.Data.Query.ToQuery Network.AWS.Pricing.GetProducts.GetProducts
- Network.AWS.Pricing.GetProducts: instance Network.AWS.Pager.AWSPager Network.AWS.Pricing.GetProducts.GetProducts
- Network.AWS.Pricing.GetProducts: instance Network.AWS.Types.AWSRequest Network.AWS.Pricing.GetProducts.GetProducts
- Network.AWS.Pricing.Types: TermMatch :: FilterType
- Network.AWS.Pricing.Types: _ExpiredNextTokenException :: AsError a => Getting (First ServiceError) a ServiceError
- Network.AWS.Pricing.Types: _InternalErrorException :: AsError a => Getting (First ServiceError) a ServiceError
- Network.AWS.Pricing.Types: _InvalidNextTokenException :: AsError a => Getting (First ServiceError) a ServiceError
- Network.AWS.Pricing.Types: _InvalidParameterException :: AsError a => Getting (First ServiceError) a ServiceError
- Network.AWS.Pricing.Types: _NotFoundException :: AsError a => Getting (First ServiceError) a ServiceError
- Network.AWS.Pricing.Types: attributeValue :: AttributeValue
- Network.AWS.Pricing.Types: avValue :: Lens' AttributeValue (Maybe Text)
- Network.AWS.Pricing.Types: data AttributeValue
- Network.AWS.Pricing.Types: data Filter
- Network.AWS.Pricing.Types: data FilterType
- Network.AWS.Pricing.Types: data PricingService
- Network.AWS.Pricing.Types: fField :: Lens' Filter Text
- Network.AWS.Pricing.Types: fType :: Lens' Filter FilterType
- Network.AWS.Pricing.Types: fValue :: Lens' Filter Text
- Network.AWS.Pricing.Types: filter' :: FilterType -> Text -> Text -> Filter
- Network.AWS.Pricing.Types: pricing :: Service
- Network.AWS.Pricing.Types: pricingService :: PricingService
- Network.AWS.Pricing.Types: psAttributeNames :: Lens' PricingService [Text]
- Network.AWS.Pricing.Types: psServiceCode :: Lens' PricingService (Maybe Text)
+ Amazonka.Pricing: AttributeValue' :: Maybe Text -> AttributeValue
+ Amazonka.Pricing: DescribeServices' :: Maybe Text -> Maybe Natural -> Maybe Text -> Maybe Text -> DescribeServices
+ Amazonka.Pricing: DescribeServicesResponse' :: Maybe Text -> Maybe Text -> Maybe [PricingService] -> Int -> DescribeServicesResponse
+ Amazonka.Pricing: Filter' :: FilterType -> Text -> Text -> Filter
+ Amazonka.Pricing: FilterType' :: Text -> FilterType
+ Amazonka.Pricing: GetAttributeValues' :: Maybe Natural -> Maybe Text -> Text -> Text -> GetAttributeValues
+ Amazonka.Pricing: GetAttributeValuesResponse' :: Maybe [AttributeValue] -> Maybe Text -> Int -> GetAttributeValuesResponse
+ Amazonka.Pricing: GetProducts' :: Maybe [Filter] -> Maybe Text -> Maybe Natural -> Maybe Text -> Text -> GetProducts
+ Amazonka.Pricing: GetProductsResponse' :: Maybe Text -> Maybe Text -> Maybe [Text] -> Int -> GetProductsResponse
+ Amazonka.Pricing: PricingService' :: Maybe [Text] -> Text -> PricingService
+ Amazonka.Pricing: [fromFilterType] :: FilterType -> Text
+ Amazonka.Pricing: _ExpiredNextTokenException :: AsError a => Fold a ServiceError
+ Amazonka.Pricing: _InternalErrorException :: AsError a => Fold a ServiceError
+ Amazonka.Pricing: _InvalidNextTokenException :: AsError a => Fold a ServiceError
+ Amazonka.Pricing: _InvalidParameterException :: AsError a => Fold a ServiceError
+ Amazonka.Pricing: _NotFoundException :: AsError a => Fold a ServiceError
+ Amazonka.Pricing: data AttributeValue
+ Amazonka.Pricing: data DescribeServices
+ Amazonka.Pricing: data DescribeServicesResponse
+ Amazonka.Pricing: data Filter
+ Amazonka.Pricing: data GetAttributeValues
+ Amazonka.Pricing: data GetAttributeValuesResponse
+ Amazonka.Pricing: data GetProducts
+ Amazonka.Pricing: data GetProductsResponse
+ Amazonka.Pricing: data PricingService
+ Amazonka.Pricing: defaultService :: Service
+ Amazonka.Pricing: newAttributeValue :: AttributeValue
+ Amazonka.Pricing: newDescribeServices :: DescribeServices
+ Amazonka.Pricing: newDescribeServicesResponse :: Int -> DescribeServicesResponse
+ Amazonka.Pricing: newFilter :: FilterType -> Text -> Text -> Filter
+ Amazonka.Pricing: newGetAttributeValues :: Text -> Text -> GetAttributeValues
+ Amazonka.Pricing: newGetAttributeValuesResponse :: Int -> GetAttributeValuesResponse
+ Amazonka.Pricing: newGetProducts :: Text -> GetProducts
+ Amazonka.Pricing: newGetProductsResponse :: Int -> GetProductsResponse
+ Amazonka.Pricing: newPricingService :: Text -> PricingService
+ Amazonka.Pricing: newtype FilterType
+ Amazonka.Pricing: pattern FilterType_TERM_MATCH :: FilterType
+ Amazonka.Pricing.DescribeServices: DescribeServices' :: Maybe Text -> Maybe Natural -> Maybe Text -> Maybe Text -> DescribeServices
+ Amazonka.Pricing.DescribeServices: DescribeServicesResponse' :: Maybe Text -> Maybe Text -> Maybe [PricingService] -> Int -> DescribeServicesResponse
+ Amazonka.Pricing.DescribeServices: [$sel:formatVersion:DescribeServices'] :: DescribeServices -> Maybe Text
+ Amazonka.Pricing.DescribeServices: [$sel:formatVersion:DescribeServicesResponse'] :: DescribeServicesResponse -> Maybe Text
+ Amazonka.Pricing.DescribeServices: [$sel:httpStatus:DescribeServicesResponse'] :: DescribeServicesResponse -> Int
+ Amazonka.Pricing.DescribeServices: [$sel:maxResults:DescribeServices'] :: DescribeServices -> Maybe Natural
+ Amazonka.Pricing.DescribeServices: [$sel:nextToken:DescribeServices'] :: DescribeServices -> Maybe Text
+ Amazonka.Pricing.DescribeServices: [$sel:nextToken:DescribeServicesResponse'] :: DescribeServicesResponse -> Maybe Text
+ Amazonka.Pricing.DescribeServices: [$sel:serviceCode:DescribeServices'] :: DescribeServices -> Maybe Text
+ Amazonka.Pricing.DescribeServices: [$sel:services:DescribeServicesResponse'] :: DescribeServicesResponse -> Maybe [PricingService]
+ Amazonka.Pricing.DescribeServices: data DescribeServices
+ Amazonka.Pricing.DescribeServices: data DescribeServicesResponse
+ Amazonka.Pricing.DescribeServices: describeServicesResponse_formatVersion :: Lens' DescribeServicesResponse (Maybe Text)
+ Amazonka.Pricing.DescribeServices: describeServicesResponse_httpStatus :: Lens' DescribeServicesResponse Int
+ Amazonka.Pricing.DescribeServices: describeServicesResponse_nextToken :: Lens' DescribeServicesResponse (Maybe Text)
+ Amazonka.Pricing.DescribeServices: describeServicesResponse_services :: Lens' DescribeServicesResponse (Maybe [PricingService])
+ Amazonka.Pricing.DescribeServices: describeServices_formatVersion :: Lens' DescribeServices (Maybe Text)
+ Amazonka.Pricing.DescribeServices: describeServices_maxResults :: Lens' DescribeServices (Maybe Natural)
+ Amazonka.Pricing.DescribeServices: describeServices_nextToken :: Lens' DescribeServices (Maybe Text)
+ Amazonka.Pricing.DescribeServices: describeServices_serviceCode :: Lens' DescribeServices (Maybe Text)
+ Amazonka.Pricing.DescribeServices: instance Amazonka.Data.Headers.ToHeaders Amazonka.Pricing.DescribeServices.DescribeServices
+ Amazonka.Pricing.DescribeServices: instance Amazonka.Data.Path.ToPath Amazonka.Pricing.DescribeServices.DescribeServices
+ Amazonka.Pricing.DescribeServices: instance Amazonka.Data.Query.ToQuery Amazonka.Pricing.DescribeServices.DescribeServices
+ Amazonka.Pricing.DescribeServices: instance Amazonka.Pager.AWSPager Amazonka.Pricing.DescribeServices.DescribeServices
+ Amazonka.Pricing.DescribeServices: instance Amazonka.Types.AWSRequest Amazonka.Pricing.DescribeServices.DescribeServices
+ Amazonka.Pricing.DescribeServices: instance Control.DeepSeq.NFData Amazonka.Pricing.DescribeServices.DescribeServices
+ Amazonka.Pricing.DescribeServices: instance Control.DeepSeq.NFData Amazonka.Pricing.DescribeServices.DescribeServicesResponse
+ Amazonka.Pricing.DescribeServices: instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.Pricing.DescribeServices.DescribeServices
+ Amazonka.Pricing.DescribeServices: instance Data.Hashable.Class.Hashable Amazonka.Pricing.DescribeServices.DescribeServices
+ Amazonka.Pricing.DescribeServices: instance GHC.Classes.Eq Amazonka.Pricing.DescribeServices.DescribeServices
+ Amazonka.Pricing.DescribeServices: instance GHC.Classes.Eq Amazonka.Pricing.DescribeServices.DescribeServicesResponse
+ Amazonka.Pricing.DescribeServices: instance GHC.Generics.Generic Amazonka.Pricing.DescribeServices.DescribeServices
+ Amazonka.Pricing.DescribeServices: instance GHC.Generics.Generic Amazonka.Pricing.DescribeServices.DescribeServicesResponse
+ Amazonka.Pricing.DescribeServices: instance GHC.Read.Read Amazonka.Pricing.DescribeServices.DescribeServices
+ Amazonka.Pricing.DescribeServices: instance GHC.Read.Read Amazonka.Pricing.DescribeServices.DescribeServicesResponse
+ Amazonka.Pricing.DescribeServices: instance GHC.Show.Show Amazonka.Pricing.DescribeServices.DescribeServices
+ Amazonka.Pricing.DescribeServices: instance GHC.Show.Show Amazonka.Pricing.DescribeServices.DescribeServicesResponse
+ Amazonka.Pricing.DescribeServices: newDescribeServices :: DescribeServices
+ Amazonka.Pricing.DescribeServices: newDescribeServicesResponse :: Int -> DescribeServicesResponse
+ Amazonka.Pricing.GetAttributeValues: GetAttributeValues' :: Maybe Natural -> Maybe Text -> Text -> Text -> GetAttributeValues
+ Amazonka.Pricing.GetAttributeValues: GetAttributeValuesResponse' :: Maybe [AttributeValue] -> Maybe Text -> Int -> GetAttributeValuesResponse
+ Amazonka.Pricing.GetAttributeValues: [$sel:attributeName:GetAttributeValues'] :: GetAttributeValues -> Text
+ Amazonka.Pricing.GetAttributeValues: [$sel:attributeValues:GetAttributeValuesResponse'] :: GetAttributeValuesResponse -> Maybe [AttributeValue]
+ Amazonka.Pricing.GetAttributeValues: [$sel:httpStatus:GetAttributeValuesResponse'] :: GetAttributeValuesResponse -> Int
+ Amazonka.Pricing.GetAttributeValues: [$sel:maxResults:GetAttributeValues'] :: GetAttributeValues -> Maybe Natural
+ Amazonka.Pricing.GetAttributeValues: [$sel:nextToken:GetAttributeValues'] :: GetAttributeValues -> Maybe Text
+ Amazonka.Pricing.GetAttributeValues: [$sel:nextToken:GetAttributeValuesResponse'] :: GetAttributeValuesResponse -> Maybe Text
+ Amazonka.Pricing.GetAttributeValues: [$sel:serviceCode:GetAttributeValues'] :: GetAttributeValues -> Text
+ Amazonka.Pricing.GetAttributeValues: data GetAttributeValues
+ Amazonka.Pricing.GetAttributeValues: data GetAttributeValuesResponse
+ Amazonka.Pricing.GetAttributeValues: getAttributeValuesResponse_attributeValues :: Lens' GetAttributeValuesResponse (Maybe [AttributeValue])
+ Amazonka.Pricing.GetAttributeValues: getAttributeValuesResponse_httpStatus :: Lens' GetAttributeValuesResponse Int
+ Amazonka.Pricing.GetAttributeValues: getAttributeValuesResponse_nextToken :: Lens' GetAttributeValuesResponse (Maybe Text)
+ Amazonka.Pricing.GetAttributeValues: getAttributeValues_attributeName :: Lens' GetAttributeValues Text
+ Amazonka.Pricing.GetAttributeValues: getAttributeValues_maxResults :: Lens' GetAttributeValues (Maybe Natural)
+ Amazonka.Pricing.GetAttributeValues: getAttributeValues_nextToken :: Lens' GetAttributeValues (Maybe Text)
+ Amazonka.Pricing.GetAttributeValues: getAttributeValues_serviceCode :: Lens' GetAttributeValues Text
+ Amazonka.Pricing.GetAttributeValues: instance Amazonka.Data.Headers.ToHeaders Amazonka.Pricing.GetAttributeValues.GetAttributeValues
+ Amazonka.Pricing.GetAttributeValues: instance Amazonka.Data.Path.ToPath Amazonka.Pricing.GetAttributeValues.GetAttributeValues
+ Amazonka.Pricing.GetAttributeValues: instance Amazonka.Data.Query.ToQuery Amazonka.Pricing.GetAttributeValues.GetAttributeValues
+ Amazonka.Pricing.GetAttributeValues: instance Amazonka.Pager.AWSPager Amazonka.Pricing.GetAttributeValues.GetAttributeValues
+ Amazonka.Pricing.GetAttributeValues: instance Amazonka.Types.AWSRequest Amazonka.Pricing.GetAttributeValues.GetAttributeValues
+ Amazonka.Pricing.GetAttributeValues: instance Control.DeepSeq.NFData Amazonka.Pricing.GetAttributeValues.GetAttributeValues
+ Amazonka.Pricing.GetAttributeValues: instance Control.DeepSeq.NFData Amazonka.Pricing.GetAttributeValues.GetAttributeValuesResponse
+ Amazonka.Pricing.GetAttributeValues: instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.Pricing.GetAttributeValues.GetAttributeValues
+ Amazonka.Pricing.GetAttributeValues: instance Data.Hashable.Class.Hashable Amazonka.Pricing.GetAttributeValues.GetAttributeValues
+ Amazonka.Pricing.GetAttributeValues: instance GHC.Classes.Eq Amazonka.Pricing.GetAttributeValues.GetAttributeValues
+ Amazonka.Pricing.GetAttributeValues: instance GHC.Classes.Eq Amazonka.Pricing.GetAttributeValues.GetAttributeValuesResponse
+ Amazonka.Pricing.GetAttributeValues: instance GHC.Generics.Generic Amazonka.Pricing.GetAttributeValues.GetAttributeValues
+ Amazonka.Pricing.GetAttributeValues: instance GHC.Generics.Generic Amazonka.Pricing.GetAttributeValues.GetAttributeValuesResponse
+ Amazonka.Pricing.GetAttributeValues: instance GHC.Read.Read Amazonka.Pricing.GetAttributeValues.GetAttributeValues
+ Amazonka.Pricing.GetAttributeValues: instance GHC.Read.Read Amazonka.Pricing.GetAttributeValues.GetAttributeValuesResponse
+ Amazonka.Pricing.GetAttributeValues: instance GHC.Show.Show Amazonka.Pricing.GetAttributeValues.GetAttributeValues
+ Amazonka.Pricing.GetAttributeValues: instance GHC.Show.Show Amazonka.Pricing.GetAttributeValues.GetAttributeValuesResponse
+ Amazonka.Pricing.GetAttributeValues: newGetAttributeValues :: Text -> Text -> GetAttributeValues
+ Amazonka.Pricing.GetAttributeValues: newGetAttributeValuesResponse :: Int -> GetAttributeValuesResponse
+ Amazonka.Pricing.GetProducts: GetProducts' :: Maybe [Filter] -> Maybe Text -> Maybe Natural -> Maybe Text -> Text -> GetProducts
+ Amazonka.Pricing.GetProducts: GetProductsResponse' :: Maybe Text -> Maybe Text -> Maybe [Text] -> Int -> GetProductsResponse
+ Amazonka.Pricing.GetProducts: [$sel:filters:GetProducts'] :: GetProducts -> Maybe [Filter]
+ Amazonka.Pricing.GetProducts: [$sel:formatVersion:GetProducts'] :: GetProducts -> Maybe Text
+ Amazonka.Pricing.GetProducts: [$sel:formatVersion:GetProductsResponse'] :: GetProductsResponse -> Maybe Text
+ Amazonka.Pricing.GetProducts: [$sel:httpStatus:GetProductsResponse'] :: GetProductsResponse -> Int
+ Amazonka.Pricing.GetProducts: [$sel:maxResults:GetProducts'] :: GetProducts -> Maybe Natural
+ Amazonka.Pricing.GetProducts: [$sel:nextToken:GetProducts'] :: GetProducts -> Maybe Text
+ Amazonka.Pricing.GetProducts: [$sel:nextToken:GetProductsResponse'] :: GetProductsResponse -> Maybe Text
+ Amazonka.Pricing.GetProducts: [$sel:priceList:GetProductsResponse'] :: GetProductsResponse -> Maybe [Text]
+ Amazonka.Pricing.GetProducts: [$sel:serviceCode:GetProducts'] :: GetProducts -> Text
+ Amazonka.Pricing.GetProducts: data GetProducts
+ Amazonka.Pricing.GetProducts: data GetProductsResponse
+ Amazonka.Pricing.GetProducts: getProductsResponse_formatVersion :: Lens' GetProductsResponse (Maybe Text)
+ Amazonka.Pricing.GetProducts: getProductsResponse_httpStatus :: Lens' GetProductsResponse Int
+ Amazonka.Pricing.GetProducts: getProductsResponse_nextToken :: Lens' GetProductsResponse (Maybe Text)
+ Amazonka.Pricing.GetProducts: getProductsResponse_priceList :: Lens' GetProductsResponse (Maybe [Text])
+ Amazonka.Pricing.GetProducts: getProducts_filters :: Lens' GetProducts (Maybe [Filter])
+ Amazonka.Pricing.GetProducts: getProducts_formatVersion :: Lens' GetProducts (Maybe Text)
+ Amazonka.Pricing.GetProducts: getProducts_maxResults :: Lens' GetProducts (Maybe Natural)
+ Amazonka.Pricing.GetProducts: getProducts_nextToken :: Lens' GetProducts (Maybe Text)
+ Amazonka.Pricing.GetProducts: getProducts_serviceCode :: Lens' GetProducts Text
+ Amazonka.Pricing.GetProducts: instance Amazonka.Data.Headers.ToHeaders Amazonka.Pricing.GetProducts.GetProducts
+ Amazonka.Pricing.GetProducts: instance Amazonka.Data.Path.ToPath Amazonka.Pricing.GetProducts.GetProducts
+ Amazonka.Pricing.GetProducts: instance Amazonka.Data.Query.ToQuery Amazonka.Pricing.GetProducts.GetProducts
+ Amazonka.Pricing.GetProducts: instance Amazonka.Pager.AWSPager Amazonka.Pricing.GetProducts.GetProducts
+ Amazonka.Pricing.GetProducts: instance Amazonka.Types.AWSRequest Amazonka.Pricing.GetProducts.GetProducts
+ Amazonka.Pricing.GetProducts: instance Control.DeepSeq.NFData Amazonka.Pricing.GetProducts.GetProducts
+ Amazonka.Pricing.GetProducts: instance Control.DeepSeq.NFData Amazonka.Pricing.GetProducts.GetProductsResponse
+ Amazonka.Pricing.GetProducts: instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.Pricing.GetProducts.GetProducts
+ Amazonka.Pricing.GetProducts: instance Data.Hashable.Class.Hashable Amazonka.Pricing.GetProducts.GetProducts
+ Amazonka.Pricing.GetProducts: instance GHC.Classes.Eq Amazonka.Pricing.GetProducts.GetProducts
+ Amazonka.Pricing.GetProducts: instance GHC.Classes.Eq Amazonka.Pricing.GetProducts.GetProductsResponse
+ Amazonka.Pricing.GetProducts: instance GHC.Generics.Generic Amazonka.Pricing.GetProducts.GetProducts
+ Amazonka.Pricing.GetProducts: instance GHC.Generics.Generic Amazonka.Pricing.GetProducts.GetProductsResponse
+ Amazonka.Pricing.GetProducts: instance GHC.Read.Read Amazonka.Pricing.GetProducts.GetProducts
+ Amazonka.Pricing.GetProducts: instance GHC.Read.Read Amazonka.Pricing.GetProducts.GetProductsResponse
+ Amazonka.Pricing.GetProducts: instance GHC.Show.Show Amazonka.Pricing.GetProducts.GetProducts
+ Amazonka.Pricing.GetProducts: instance GHC.Show.Show Amazonka.Pricing.GetProducts.GetProductsResponse
+ Amazonka.Pricing.GetProducts: newGetProducts :: Text -> GetProducts
+ Amazonka.Pricing.GetProducts: newGetProductsResponse :: Int -> GetProductsResponse
+ Amazonka.Pricing.Lens: attributeValue_value :: Lens' AttributeValue (Maybe Text)
+ Amazonka.Pricing.Lens: describeServicesResponse_formatVersion :: Lens' DescribeServicesResponse (Maybe Text)
+ Amazonka.Pricing.Lens: describeServicesResponse_httpStatus :: Lens' DescribeServicesResponse Int
+ Amazonka.Pricing.Lens: describeServicesResponse_nextToken :: Lens' DescribeServicesResponse (Maybe Text)
+ Amazonka.Pricing.Lens: describeServicesResponse_services :: Lens' DescribeServicesResponse (Maybe [PricingService])
+ Amazonka.Pricing.Lens: describeServices_formatVersion :: Lens' DescribeServices (Maybe Text)
+ Amazonka.Pricing.Lens: describeServices_maxResults :: Lens' DescribeServices (Maybe Natural)
+ Amazonka.Pricing.Lens: describeServices_nextToken :: Lens' DescribeServices (Maybe Text)
+ Amazonka.Pricing.Lens: describeServices_serviceCode :: Lens' DescribeServices (Maybe Text)
+ Amazonka.Pricing.Lens: filter_field :: Lens' Filter Text
+ Amazonka.Pricing.Lens: filter_type :: Lens' Filter FilterType
+ Amazonka.Pricing.Lens: filter_value :: Lens' Filter Text
+ Amazonka.Pricing.Lens: getAttributeValuesResponse_attributeValues :: Lens' GetAttributeValuesResponse (Maybe [AttributeValue])
+ Amazonka.Pricing.Lens: getAttributeValuesResponse_httpStatus :: Lens' GetAttributeValuesResponse Int
+ Amazonka.Pricing.Lens: getAttributeValuesResponse_nextToken :: Lens' GetAttributeValuesResponse (Maybe Text)
+ Amazonka.Pricing.Lens: getAttributeValues_attributeName :: Lens' GetAttributeValues Text
+ Amazonka.Pricing.Lens: getAttributeValues_maxResults :: Lens' GetAttributeValues (Maybe Natural)
+ Amazonka.Pricing.Lens: getAttributeValues_nextToken :: Lens' GetAttributeValues (Maybe Text)
+ Amazonka.Pricing.Lens: getAttributeValues_serviceCode :: Lens' GetAttributeValues Text
+ Amazonka.Pricing.Lens: getProductsResponse_formatVersion :: Lens' GetProductsResponse (Maybe Text)
+ Amazonka.Pricing.Lens: getProductsResponse_httpStatus :: Lens' GetProductsResponse Int
+ Amazonka.Pricing.Lens: getProductsResponse_nextToken :: Lens' GetProductsResponse (Maybe Text)
+ Amazonka.Pricing.Lens: getProductsResponse_priceList :: Lens' GetProductsResponse (Maybe [Text])
+ Amazonka.Pricing.Lens: getProducts_filters :: Lens' GetProducts (Maybe [Filter])
+ Amazonka.Pricing.Lens: getProducts_formatVersion :: Lens' GetProducts (Maybe Text)
+ Amazonka.Pricing.Lens: getProducts_maxResults :: Lens' GetProducts (Maybe Natural)
+ Amazonka.Pricing.Lens: getProducts_nextToken :: Lens' GetProducts (Maybe Text)
+ Amazonka.Pricing.Lens: getProducts_serviceCode :: Lens' GetProducts Text
+ Amazonka.Pricing.Lens: pricingService_attributeNames :: Lens' PricingService (Maybe [Text])
+ Amazonka.Pricing.Lens: pricingService_serviceCode :: Lens' PricingService Text
+ Amazonka.Pricing.Types: AttributeValue' :: Maybe Text -> AttributeValue
+ Amazonka.Pricing.Types: Filter' :: FilterType -> Text -> Text -> Filter
+ Amazonka.Pricing.Types: FilterType' :: Text -> FilterType
+ Amazonka.Pricing.Types: PricingService' :: Maybe [Text] -> Text -> PricingService
+ Amazonka.Pricing.Types: [$sel:attributeNames:PricingService'] :: PricingService -> Maybe [Text]
+ Amazonka.Pricing.Types: [$sel:field:Filter'] :: Filter -> Text
+ Amazonka.Pricing.Types: [$sel:serviceCode:PricingService'] :: PricingService -> Text
+ Amazonka.Pricing.Types: [$sel:type':Filter'] :: Filter -> FilterType
+ Amazonka.Pricing.Types: [$sel:value:AttributeValue'] :: AttributeValue -> Maybe Text
+ Amazonka.Pricing.Types: [$sel:value:Filter'] :: Filter -> Text
+ Amazonka.Pricing.Types: [fromFilterType] :: FilterType -> Text
+ Amazonka.Pricing.Types: _ExpiredNextTokenException :: AsError a => Fold a ServiceError
+ Amazonka.Pricing.Types: _InternalErrorException :: AsError a => Fold a ServiceError
+ Amazonka.Pricing.Types: _InvalidNextTokenException :: AsError a => Fold a ServiceError
+ Amazonka.Pricing.Types: _InvalidParameterException :: AsError a => Fold a ServiceError
+ Amazonka.Pricing.Types: _NotFoundException :: AsError a => Fold a ServiceError
+ Amazonka.Pricing.Types: attributeValue_value :: Lens' AttributeValue (Maybe Text)
+ Amazonka.Pricing.Types: data AttributeValue
+ Amazonka.Pricing.Types: data Filter
+ Amazonka.Pricing.Types: data PricingService
+ Amazonka.Pricing.Types: defaultService :: Service
+ Amazonka.Pricing.Types: filter_field :: Lens' Filter Text
+ Amazonka.Pricing.Types: filter_type :: Lens' Filter FilterType
+ Amazonka.Pricing.Types: filter_value :: Lens' Filter Text
+ Amazonka.Pricing.Types: newAttributeValue :: AttributeValue
+ Amazonka.Pricing.Types: newFilter :: FilterType -> Text -> Text -> Filter
+ Amazonka.Pricing.Types: newPricingService :: Text -> PricingService
+ Amazonka.Pricing.Types: newtype FilterType
+ Amazonka.Pricing.Types: pattern FilterType_TERM_MATCH :: FilterType
+ Amazonka.Pricing.Types: pricingService_attributeNames :: Lens' PricingService (Maybe [Text])
+ Amazonka.Pricing.Types: pricingService_serviceCode :: Lens' PricingService Text
+ Amazonka.Pricing.Types.AttributeValue: AttributeValue' :: Maybe Text -> AttributeValue
+ Amazonka.Pricing.Types.AttributeValue: [$sel:value:AttributeValue'] :: AttributeValue -> Maybe Text
+ Amazonka.Pricing.Types.AttributeValue: attributeValue_value :: Lens' AttributeValue (Maybe Text)
+ Amazonka.Pricing.Types.AttributeValue: data AttributeValue
+ Amazonka.Pricing.Types.AttributeValue: instance Control.DeepSeq.NFData Amazonka.Pricing.Types.AttributeValue.AttributeValue
+ Amazonka.Pricing.Types.AttributeValue: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.Pricing.Types.AttributeValue.AttributeValue
+ Amazonka.Pricing.Types.AttributeValue: instance Data.Hashable.Class.Hashable Amazonka.Pricing.Types.AttributeValue.AttributeValue
+ Amazonka.Pricing.Types.AttributeValue: instance GHC.Classes.Eq Amazonka.Pricing.Types.AttributeValue.AttributeValue
+ Amazonka.Pricing.Types.AttributeValue: instance GHC.Generics.Generic Amazonka.Pricing.Types.AttributeValue.AttributeValue
+ Amazonka.Pricing.Types.AttributeValue: instance GHC.Read.Read Amazonka.Pricing.Types.AttributeValue.AttributeValue
+ Amazonka.Pricing.Types.AttributeValue: instance GHC.Show.Show Amazonka.Pricing.Types.AttributeValue.AttributeValue
+ Amazonka.Pricing.Types.AttributeValue: newAttributeValue :: AttributeValue
+ Amazonka.Pricing.Types.Filter: Filter' :: FilterType -> Text -> Text -> Filter
+ Amazonka.Pricing.Types.Filter: [$sel:field:Filter'] :: Filter -> Text
+ Amazonka.Pricing.Types.Filter: [$sel:type':Filter'] :: Filter -> FilterType
+ Amazonka.Pricing.Types.Filter: [$sel:value:Filter'] :: Filter -> Text
+ Amazonka.Pricing.Types.Filter: data Filter
+ Amazonka.Pricing.Types.Filter: filter_field :: Lens' Filter Text
+ Amazonka.Pricing.Types.Filter: filter_type :: Lens' Filter FilterType
+ Amazonka.Pricing.Types.Filter: filter_value :: Lens' Filter Text
+ Amazonka.Pricing.Types.Filter: instance Control.DeepSeq.NFData Amazonka.Pricing.Types.Filter.Filter
+ Amazonka.Pricing.Types.Filter: instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.Pricing.Types.Filter.Filter
+ Amazonka.Pricing.Types.Filter: instance Data.Hashable.Class.Hashable Amazonka.Pricing.Types.Filter.Filter
+ Amazonka.Pricing.Types.Filter: instance GHC.Classes.Eq Amazonka.Pricing.Types.Filter.Filter
+ Amazonka.Pricing.Types.Filter: instance GHC.Generics.Generic Amazonka.Pricing.Types.Filter.Filter
+ Amazonka.Pricing.Types.Filter: instance GHC.Read.Read Amazonka.Pricing.Types.Filter.Filter
+ Amazonka.Pricing.Types.Filter: instance GHC.Show.Show Amazonka.Pricing.Types.Filter.Filter
+ Amazonka.Pricing.Types.Filter: newFilter :: FilterType -> Text -> Text -> Filter
+ Amazonka.Pricing.Types.FilterType: FilterType' :: Text -> FilterType
+ Amazonka.Pricing.Types.FilterType: [fromFilterType] :: FilterType -> Text
+ Amazonka.Pricing.Types.FilterType: instance Amazonka.Data.ByteString.ToByteString Amazonka.Pricing.Types.FilterType.FilterType
+ Amazonka.Pricing.Types.FilterType: instance Amazonka.Data.Headers.ToHeader Amazonka.Pricing.Types.FilterType.FilterType
+ Amazonka.Pricing.Types.FilterType: instance Amazonka.Data.Log.ToLog Amazonka.Pricing.Types.FilterType.FilterType
+ Amazonka.Pricing.Types.FilterType: instance Amazonka.Data.Query.ToQuery Amazonka.Pricing.Types.FilterType.FilterType
+ Amazonka.Pricing.Types.FilterType: instance Amazonka.Data.Text.FromText Amazonka.Pricing.Types.FilterType.FilterType
+ Amazonka.Pricing.Types.FilterType: instance Amazonka.Data.Text.ToText Amazonka.Pricing.Types.FilterType.FilterType
+ Amazonka.Pricing.Types.FilterType: instance Amazonka.Data.XML.FromXML Amazonka.Pricing.Types.FilterType.FilterType
+ Amazonka.Pricing.Types.FilterType: instance Amazonka.Data.XML.ToXML Amazonka.Pricing.Types.FilterType.FilterType
+ Amazonka.Pricing.Types.FilterType: instance Control.DeepSeq.NFData Amazonka.Pricing.Types.FilterType.FilterType
+ Amazonka.Pricing.Types.FilterType: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.Pricing.Types.FilterType.FilterType
+ Amazonka.Pricing.Types.FilterType: instance Data.Aeson.Types.FromJSON.FromJSONKey Amazonka.Pricing.Types.FilterType.FilterType
+ Amazonka.Pricing.Types.FilterType: instance Data.Aeson.Types.ToJSON.ToJSON Amazonka.Pricing.Types.FilterType.FilterType
+ Amazonka.Pricing.Types.FilterType: instance Data.Aeson.Types.ToJSON.ToJSONKey Amazonka.Pricing.Types.FilterType.FilterType
+ Amazonka.Pricing.Types.FilterType: instance Data.Hashable.Class.Hashable Amazonka.Pricing.Types.FilterType.FilterType
+ Amazonka.Pricing.Types.FilterType: instance GHC.Classes.Eq Amazonka.Pricing.Types.FilterType.FilterType
+ Amazonka.Pricing.Types.FilterType: instance GHC.Classes.Ord Amazonka.Pricing.Types.FilterType.FilterType
+ Amazonka.Pricing.Types.FilterType: instance GHC.Generics.Generic Amazonka.Pricing.Types.FilterType.FilterType
+ Amazonka.Pricing.Types.FilterType: instance GHC.Read.Read Amazonka.Pricing.Types.FilterType.FilterType
+ Amazonka.Pricing.Types.FilterType: instance GHC.Show.Show Amazonka.Pricing.Types.FilterType.FilterType
+ Amazonka.Pricing.Types.FilterType: newtype FilterType
+ Amazonka.Pricing.Types.FilterType: pattern FilterType_TERM_MATCH :: FilterType
+ Amazonka.Pricing.Types.PricingService: PricingService' :: Maybe [Text] -> Text -> PricingService
+ Amazonka.Pricing.Types.PricingService: [$sel:attributeNames:PricingService'] :: PricingService -> Maybe [Text]
+ Amazonka.Pricing.Types.PricingService: [$sel:serviceCode:PricingService'] :: PricingService -> Text
+ Amazonka.Pricing.Types.PricingService: data PricingService
+ Amazonka.Pricing.Types.PricingService: instance Control.DeepSeq.NFData Amazonka.Pricing.Types.PricingService.PricingService
+ Amazonka.Pricing.Types.PricingService: instance Data.Aeson.Types.FromJSON.FromJSON Amazonka.Pricing.Types.PricingService.PricingService
+ Amazonka.Pricing.Types.PricingService: instance Data.Hashable.Class.Hashable Amazonka.Pricing.Types.PricingService.PricingService
+ Amazonka.Pricing.Types.PricingService: instance GHC.Classes.Eq Amazonka.Pricing.Types.PricingService.PricingService
+ Amazonka.Pricing.Types.PricingService: instance GHC.Generics.Generic Amazonka.Pricing.Types.PricingService.PricingService
+ Amazonka.Pricing.Types.PricingService: instance GHC.Read.Read Amazonka.Pricing.Types.PricingService.PricingService
+ Amazonka.Pricing.Types.PricingService: instance GHC.Show.Show Amazonka.Pricing.Types.PricingService.PricingService
+ Amazonka.Pricing.Types.PricingService: newPricingService :: Text -> PricingService
+ Amazonka.Pricing.Types.PricingService: pricingService_attributeNames :: Lens' PricingService (Maybe [Text])
+ Amazonka.Pricing.Types.PricingService: pricingService_serviceCode :: Lens' PricingService Text
Files
- README.md +3/−4
- Setup.hs +0/−2
- amazonka-pricing.cabal +79/−77
- gen/Amazonka/Pricing.hs +138/−0
- gen/Amazonka/Pricing/DescribeServices.hs +282/−0
- gen/Amazonka/Pricing/GetAttributeValues.hs +274/−0
- gen/Amazonka/Pricing/GetProducts.hs +286/−0
- gen/Amazonka/Pricing/Lens.hs +68/−0
- gen/Amazonka/Pricing/Types.hs +163/−0
- gen/Amazonka/Pricing/Types/AttributeValue.hs +68/−0
- gen/Amazonka/Pricing/Types/Filter.hs +153/−0
- gen/Amazonka/Pricing/Types/FilterType.hs +66/−0
- gen/Amazonka/Pricing/Types/PricingService.hs +87/−0
- gen/Amazonka/Pricing/Waiters.hs +24/−0
- gen/Network/AWS/Pricing.hs +0/−125
- gen/Network/AWS/Pricing/DescribeServices.hs +0/−197
- gen/Network/AWS/Pricing/GetAttributeValues.hs +0/−191
- gen/Network/AWS/Pricing/GetProducts.hs +0/−206
- gen/Network/AWS/Pricing/Types.hs +0/−128
- gen/Network/AWS/Pricing/Types/Product.hs +0/−152
- gen/Network/AWS/Pricing/Types/Sum.hs +0/−44
- gen/Network/AWS/Pricing/Waiters.hs +0/−21
- test/Main.hs +11/−9
- test/Test/AWS/Gen/Pricing.hs +0/−93
- test/Test/AWS/Pricing.hs +0/−20
- test/Test/AWS/Pricing/Internal.hs +0/−9
- test/Test/Amazonka/Gen/Pricing.hs +98/−0
- test/Test/Amazonka/Pricing.hs +20/−0
- test/Test/Amazonka/Pricing/Internal.hs +8/−0
README.md view
@@ -7,9 +7,8 @@ ## Version--`1.6.1`-+ +`2.0` - Derived from API version @2017-10-15@ 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.Pricing](http://hackage.haskell.org/package/amazonka-pricing/docs/Network-AWS-Pricing.html)+See [Amazonka.Pricing](http://hackage.haskell.org/package/amazonka-pricing/docs/Amazonka-Pricing.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-pricing.cabal view
@@ -1,88 +1,90 @@-name: amazonka-pricing-version: 1.6.1-synopsis: Amazon Price List 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-pricing+version: 2.0+synopsis: Amazon Price List 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.Pricing" or <https://aws.amazon.com/documentation/ the AWS documentation>- to get started.+ Derived from API version @2017-10-15@ 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.Pricing.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.Pricing" 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-pricing+ type: git+ location: git://github.com/brendanhay/amazonka.git+ subdir: amazonka-pricing 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.Pricing- , Network.AWS.Pricing.DescribeServices- , Network.AWS.Pricing.GetAttributeValues- , Network.AWS.Pricing.GetProducts- , Network.AWS.Pricing.Types- , Network.AWS.Pricing.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.Pricing.Types.Product- , Network.AWS.Pricing.Types.Sum+ exposed-modules:+ Amazonka.Pricing+ Amazonka.Pricing.DescribeServices+ Amazonka.Pricing.GetAttributeValues+ Amazonka.Pricing.GetProducts+ Amazonka.Pricing.Lens+ Amazonka.Pricing.Types+ Amazonka.Pricing.Types.AttributeValue+ Amazonka.Pricing.Types.Filter+ Amazonka.Pricing.Types.FilterType+ Amazonka.Pricing.Types.PricingService+ Amazonka.Pricing.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-pricing-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.Pricing- , Test.AWS.Gen.Pricing- , Test.AWS.Pricing.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.Gen.Pricing+ Test.Amazonka.Pricing+ Test.Amazonka.Pricing.Internal - build-depends:- amazonka-core == 1.6.1.*- , amazonka-test == 1.6.1.*- , amazonka-pricing- , base- , bytestring- , tasty- , tasty-hunit- , text- , time- , unordered-containers+ build-depends:+ , amazonka-core >=2.0 && <2.1+ , amazonka-pricing+ , amazonka-test >=2.0 && <2.1+ , base+ , bytestring+ , case-insensitive+ , tasty+ , tasty-hunit+ , text+ , time+ , unordered-containers
+ gen/Amazonka/Pricing.hs view
@@ -0,0 +1,138 @@+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module : Amazonka.Pricing+-- 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-15@ of the AWS service descriptions, licensed under Apache 2.0.+--+-- Amazon Web Services Price List API is a centralized and convenient way+-- to programmatically query Amazon Web Services for services, products,+-- and pricing information. The Amazon Web Services Price List uses+-- standardized product attributes such as @Location@, @Storage Class@, and+-- @Operating System@, and provides prices at the SKU level. You can use+-- the Amazon Web Services Price List to build cost control and scenario+-- planning tools, reconcile billing data, forecast future spend for+-- budgeting purposes, and provide cost benefit analysis that compare your+-- internal workloads with Amazon Web Services.+--+-- Use @GetServices@ without a service code to retrieve the service codes+-- for all AWS services, then @GetServices@ with a service code to retrieve+-- the attribute names for that service. After you have the service code+-- and attribute names, you can use @GetAttributeValues@ to see what values+-- are available for an attribute. With the service code and an attribute+-- name and value, you can use @GetProducts@ to find specific products that+-- you\'re interested in, such as an @AmazonEC2@ instance, with a+-- @Provisioned IOPS@ @volumeType@.+--+-- Service Endpoint+--+-- Amazon Web Services Price List service API provides the following two+-- endpoints:+--+-- - https:\/\/api.pricing.us-east-1.amazonaws.com+--+-- - https:\/\/api.pricing.ap-south-1.amazonaws.com+module Amazonka.Pricing+ ( -- * Service Configuration+ defaultService,++ -- * Errors+ -- $errors++ -- ** ExpiredNextTokenException+ _ExpiredNextTokenException,++ -- ** InternalErrorException+ _InternalErrorException,++ -- ** InvalidNextTokenException+ _InvalidNextTokenException,++ -- ** InvalidParameterException+ _InvalidParameterException,++ -- ** NotFoundException+ _NotFoundException,++ -- * Waiters+ -- $waiters++ -- * Operations+ -- $operations++ -- ** DescribeServices (Paginated)+ DescribeServices (DescribeServices'),+ newDescribeServices,+ DescribeServicesResponse (DescribeServicesResponse'),+ newDescribeServicesResponse,++ -- ** GetAttributeValues (Paginated)+ GetAttributeValues (GetAttributeValues'),+ newGetAttributeValues,+ GetAttributeValuesResponse (GetAttributeValuesResponse'),+ newGetAttributeValuesResponse,++ -- ** GetProducts (Paginated)+ GetProducts (GetProducts'),+ newGetProducts,+ GetProductsResponse (GetProductsResponse'),+ newGetProductsResponse,++ -- * Types++ -- ** FilterType+ FilterType (..),++ -- ** AttributeValue+ AttributeValue (AttributeValue'),+ newAttributeValue,++ -- ** Filter+ Filter (Filter'),+ newFilter,++ -- ** PricingService+ PricingService (PricingService'),+ newPricingService,+ )+where++import Amazonka.Pricing.DescribeServices+import Amazonka.Pricing.GetAttributeValues+import Amazonka.Pricing.GetProducts+import Amazonka.Pricing.Lens+import Amazonka.Pricing.Types+import Amazonka.Pricing.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 'Pricing'.++-- $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/Pricing/DescribeServices.hs view
@@ -0,0 +1,282 @@+{-# 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.Pricing.DescribeServices+-- 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 metadata for one service or a list of the metadata for all+-- services. Use this without a service code to get the service codes for+-- all services. Use it with a service code, such as @AmazonEC2@, to get+-- information specific to that service, such as the attribute names+-- available for that service. For example, some of the attribute names+-- available for EC2 are @volumeType@, @maxIopsVolume@, @operation@,+-- @locationType@, and @instanceCapacity10xlarge@.+--+-- This operation returns paginated results.+module Amazonka.Pricing.DescribeServices+ ( -- * Creating a Request+ DescribeServices (..),+ newDescribeServices,++ -- * Request Lenses+ describeServices_formatVersion,+ describeServices_maxResults,+ describeServices_nextToken,+ describeServices_serviceCode,++ -- * Destructuring the Response+ DescribeServicesResponse (..),+ newDescribeServicesResponse,++ -- * Response Lenses+ describeServicesResponse_formatVersion,+ describeServicesResponse_nextToken,+ describeServicesResponse_services,+ describeServicesResponse_httpStatus,+ )+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+import Amazonka.Pricing.Types+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newDescribeServices' smart constructor.+data DescribeServices = DescribeServices'+ { -- | The format version that you want the response to be in.+ --+ -- Valid values are: @aws_v1@+ formatVersion :: Prelude.Maybe Prelude.Text,+ -- | The maximum number of results that you want returned in the response.+ maxResults :: Prelude.Maybe Prelude.Natural,+ -- | The pagination token that indicates the next set of results that you+ -- want to retrieve.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The code for the service whose information you want to retrieve, such as+ -- @AmazonEC2@. You can use the @ServiceCode@ to filter the results in a+ -- @GetProducts@ call. To retrieve a list of all services, leave this+ -- blank.+ serviceCode :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeServices' 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:+--+-- 'formatVersion', 'describeServices_formatVersion' - The format version that you want the response to be in.+--+-- Valid values are: @aws_v1@+--+-- 'maxResults', 'describeServices_maxResults' - The maximum number of results that you want returned in the response.+--+-- 'nextToken', 'describeServices_nextToken' - The pagination token that indicates the next set of results that you+-- want to retrieve.+--+-- 'serviceCode', 'describeServices_serviceCode' - The code for the service whose information you want to retrieve, such as+-- @AmazonEC2@. You can use the @ServiceCode@ to filter the results in a+-- @GetProducts@ call. To retrieve a list of all services, leave this+-- blank.+newDescribeServices ::+ DescribeServices+newDescribeServices =+ DescribeServices'+ { formatVersion = Prelude.Nothing,+ maxResults = Prelude.Nothing,+ nextToken = Prelude.Nothing,+ serviceCode = Prelude.Nothing+ }++-- | The format version that you want the response to be in.+--+-- Valid values are: @aws_v1@+describeServices_formatVersion :: Lens.Lens' DescribeServices (Prelude.Maybe Prelude.Text)+describeServices_formatVersion = Lens.lens (\DescribeServices' {formatVersion} -> formatVersion) (\s@DescribeServices' {} a -> s {formatVersion = a} :: DescribeServices)++-- | The maximum number of results that you want returned in the response.+describeServices_maxResults :: Lens.Lens' DescribeServices (Prelude.Maybe Prelude.Natural)+describeServices_maxResults = Lens.lens (\DescribeServices' {maxResults} -> maxResults) (\s@DescribeServices' {} a -> s {maxResults = a} :: DescribeServices)++-- | The pagination token that indicates the next set of results that you+-- want to retrieve.+describeServices_nextToken :: Lens.Lens' DescribeServices (Prelude.Maybe Prelude.Text)+describeServices_nextToken = Lens.lens (\DescribeServices' {nextToken} -> nextToken) (\s@DescribeServices' {} a -> s {nextToken = a} :: DescribeServices)++-- | The code for the service whose information you want to retrieve, such as+-- @AmazonEC2@. You can use the @ServiceCode@ to filter the results in a+-- @GetProducts@ call. To retrieve a list of all services, leave this+-- blank.+describeServices_serviceCode :: Lens.Lens' DescribeServices (Prelude.Maybe Prelude.Text)+describeServices_serviceCode = Lens.lens (\DescribeServices' {serviceCode} -> serviceCode) (\s@DescribeServices' {} a -> s {serviceCode = a} :: DescribeServices)++instance Core.AWSPager DescribeServices where+ page rq rs+ | Core.stop+ ( rs+ Lens.^? describeServicesResponse_nextToken+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Core.stop+ ( rs+ Lens.^? describeServicesResponse_services+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Prelude.otherwise =+ Prelude.Just+ Prelude.$ rq+ Prelude.& describeServices_nextToken+ Lens..~ rs+ Lens.^? describeServicesResponse_nextToken+ Prelude.. Lens._Just++instance Core.AWSRequest DescribeServices where+ type+ AWSResponse DescribeServices =+ DescribeServicesResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ DescribeServicesResponse'+ Prelude.<$> (x Data..?> "FormatVersion")+ Prelude.<*> (x Data..?> "NextToken")+ Prelude.<*> (x Data..?> "Services" Core..!@ Prelude.mempty)+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable DescribeServices where+ hashWithSalt _salt DescribeServices' {..} =+ _salt+ `Prelude.hashWithSalt` formatVersion+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` serviceCode++instance Prelude.NFData DescribeServices where+ rnf DescribeServices' {..} =+ Prelude.rnf formatVersion+ `Prelude.seq` Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf serviceCode++instance Data.ToHeaders DescribeServices where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "AWSPriceListService.DescribeServices" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON DescribeServices where+ toJSON DescribeServices' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("FormatVersion" Data..=) Prelude.<$> formatVersion,+ ("MaxResults" Data..=) Prelude.<$> maxResults,+ ("NextToken" Data..=) Prelude.<$> nextToken,+ ("ServiceCode" Data..=) Prelude.<$> serviceCode+ ]+ )++instance Data.ToPath DescribeServices where+ toPath = Prelude.const "/"++instance Data.ToQuery DescribeServices where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newDescribeServicesResponse' smart constructor.+data DescribeServicesResponse = DescribeServicesResponse'+ { -- | The format version of the response. For example, @aws_v1@.+ formatVersion :: Prelude.Maybe Prelude.Text,+ -- | The pagination token for the next set of retrievable results.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The service metadata for the service or services in the response.+ services :: Prelude.Maybe [PricingService],+ -- | The response's http status code.+ httpStatus :: Prelude.Int+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'DescribeServicesResponse' 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:+--+-- 'formatVersion', 'describeServicesResponse_formatVersion' - The format version of the response. For example, @aws_v1@.+--+-- 'nextToken', 'describeServicesResponse_nextToken' - The pagination token for the next set of retrievable results.+--+-- 'services', 'describeServicesResponse_services' - The service metadata for the service or services in the response.+--+-- 'httpStatus', 'describeServicesResponse_httpStatus' - The response's http status code.+newDescribeServicesResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ DescribeServicesResponse+newDescribeServicesResponse pHttpStatus_ =+ DescribeServicesResponse'+ { formatVersion =+ Prelude.Nothing,+ nextToken = Prelude.Nothing,+ services = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The format version of the response. For example, @aws_v1@.+describeServicesResponse_formatVersion :: Lens.Lens' DescribeServicesResponse (Prelude.Maybe Prelude.Text)+describeServicesResponse_formatVersion = Lens.lens (\DescribeServicesResponse' {formatVersion} -> formatVersion) (\s@DescribeServicesResponse' {} a -> s {formatVersion = a} :: DescribeServicesResponse)++-- | The pagination token for the next set of retrievable results.+describeServicesResponse_nextToken :: Lens.Lens' DescribeServicesResponse (Prelude.Maybe Prelude.Text)+describeServicesResponse_nextToken = Lens.lens (\DescribeServicesResponse' {nextToken} -> nextToken) (\s@DescribeServicesResponse' {} a -> s {nextToken = a} :: DescribeServicesResponse)++-- | The service metadata for the service or services in the response.+describeServicesResponse_services :: Lens.Lens' DescribeServicesResponse (Prelude.Maybe [PricingService])+describeServicesResponse_services = Lens.lens (\DescribeServicesResponse' {services} -> services) (\s@DescribeServicesResponse' {} a -> s {services = a} :: DescribeServicesResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+describeServicesResponse_httpStatus :: Lens.Lens' DescribeServicesResponse Prelude.Int+describeServicesResponse_httpStatus = Lens.lens (\DescribeServicesResponse' {httpStatus} -> httpStatus) (\s@DescribeServicesResponse' {} a -> s {httpStatus = a} :: DescribeServicesResponse)++instance Prelude.NFData DescribeServicesResponse where+ rnf DescribeServicesResponse' {..} =+ Prelude.rnf formatVersion+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf services+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Pricing/GetAttributeValues.hs view
@@ -0,0 +1,274 @@+{-# 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.Pricing.GetAttributeValues+-- 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 attribute values. Attributes are similar to the+-- details in a Price List API offer file. For a list of available+-- attributes, see+-- <https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/reading-an-offer.html#pps-defs Offer File Definitions>+-- in the+-- <https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/billing-what-is.html Billing and Cost Management User Guide>.+--+-- This operation returns paginated results.+module Amazonka.Pricing.GetAttributeValues+ ( -- * Creating a Request+ GetAttributeValues (..),+ newGetAttributeValues,++ -- * Request Lenses+ getAttributeValues_maxResults,+ getAttributeValues_nextToken,+ getAttributeValues_serviceCode,+ getAttributeValues_attributeName,++ -- * Destructuring the Response+ GetAttributeValuesResponse (..),+ newGetAttributeValuesResponse,++ -- * Response Lenses+ getAttributeValuesResponse_attributeValues,+ getAttributeValuesResponse_nextToken,+ getAttributeValuesResponse_httpStatus,+ )+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+import Amazonka.Pricing.Types+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetAttributeValues' smart constructor.+data GetAttributeValues = GetAttributeValues'+ { -- | The maximum number of results to return in response.+ maxResults :: Prelude.Maybe Prelude.Natural,+ -- | The pagination token that indicates the next set of results that you+ -- want to retrieve.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The service code for the service whose attributes you want to retrieve.+ -- For example, if you want the retrieve an EC2 attribute, use @AmazonEC2@.+ serviceCode :: Prelude.Text,+ -- | The name of the attribute that you want to retrieve the values for, such+ -- as @volumeType@.+ attributeName :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetAttributeValues' 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', 'getAttributeValues_maxResults' - The maximum number of results to return in response.+--+-- 'nextToken', 'getAttributeValues_nextToken' - The pagination token that indicates the next set of results that you+-- want to retrieve.+--+-- 'serviceCode', 'getAttributeValues_serviceCode' - The service code for the service whose attributes you want to retrieve.+-- For example, if you want the retrieve an EC2 attribute, use @AmazonEC2@.+--+-- 'attributeName', 'getAttributeValues_attributeName' - The name of the attribute that you want to retrieve the values for, such+-- as @volumeType@.+newGetAttributeValues ::+ -- | 'serviceCode'+ Prelude.Text ->+ -- | 'attributeName'+ Prelude.Text ->+ GetAttributeValues+newGetAttributeValues pServiceCode_ pAttributeName_ =+ GetAttributeValues'+ { maxResults = Prelude.Nothing,+ nextToken = Prelude.Nothing,+ serviceCode = pServiceCode_,+ attributeName = pAttributeName_+ }++-- | The maximum number of results to return in response.+getAttributeValues_maxResults :: Lens.Lens' GetAttributeValues (Prelude.Maybe Prelude.Natural)+getAttributeValues_maxResults = Lens.lens (\GetAttributeValues' {maxResults} -> maxResults) (\s@GetAttributeValues' {} a -> s {maxResults = a} :: GetAttributeValues)++-- | The pagination token that indicates the next set of results that you+-- want to retrieve.+getAttributeValues_nextToken :: Lens.Lens' GetAttributeValues (Prelude.Maybe Prelude.Text)+getAttributeValues_nextToken = Lens.lens (\GetAttributeValues' {nextToken} -> nextToken) (\s@GetAttributeValues' {} a -> s {nextToken = a} :: GetAttributeValues)++-- | The service code for the service whose attributes you want to retrieve.+-- For example, if you want the retrieve an EC2 attribute, use @AmazonEC2@.+getAttributeValues_serviceCode :: Lens.Lens' GetAttributeValues Prelude.Text+getAttributeValues_serviceCode = Lens.lens (\GetAttributeValues' {serviceCode} -> serviceCode) (\s@GetAttributeValues' {} a -> s {serviceCode = a} :: GetAttributeValues)++-- | The name of the attribute that you want to retrieve the values for, such+-- as @volumeType@.+getAttributeValues_attributeName :: Lens.Lens' GetAttributeValues Prelude.Text+getAttributeValues_attributeName = Lens.lens (\GetAttributeValues' {attributeName} -> attributeName) (\s@GetAttributeValues' {} a -> s {attributeName = a} :: GetAttributeValues)++instance Core.AWSPager GetAttributeValues where+ page rq rs+ | Core.stop+ ( rs+ Lens.^? getAttributeValuesResponse_nextToken+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Core.stop+ ( rs+ Lens.^? getAttributeValuesResponse_attributeValues+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Prelude.otherwise =+ Prelude.Just+ Prelude.$ rq+ Prelude.& getAttributeValues_nextToken+ Lens..~ rs+ Lens.^? getAttributeValuesResponse_nextToken+ Prelude.. Lens._Just++instance Core.AWSRequest GetAttributeValues where+ type+ AWSResponse GetAttributeValues =+ GetAttributeValuesResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ GetAttributeValuesResponse'+ Prelude.<$> ( x+ Data..?> "AttributeValues"+ Core..!@ Prelude.mempty+ )+ Prelude.<*> (x Data..?> "NextToken")+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable GetAttributeValues where+ hashWithSalt _salt GetAttributeValues' {..} =+ _salt+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` serviceCode+ `Prelude.hashWithSalt` attributeName++instance Prelude.NFData GetAttributeValues where+ rnf GetAttributeValues' {..} =+ Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf serviceCode+ `Prelude.seq` Prelude.rnf attributeName++instance Data.ToHeaders GetAttributeValues where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "AWSPriceListService.GetAttributeValues" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON GetAttributeValues where+ toJSON GetAttributeValues' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("MaxResults" Data..=) Prelude.<$> maxResults,+ ("NextToken" Data..=) Prelude.<$> nextToken,+ Prelude.Just ("ServiceCode" Data..= serviceCode),+ Prelude.Just+ ("AttributeName" Data..= attributeName)+ ]+ )++instance Data.ToPath GetAttributeValues where+ toPath = Prelude.const "/"++instance Data.ToQuery GetAttributeValues where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetAttributeValuesResponse' smart constructor.+data GetAttributeValuesResponse = GetAttributeValuesResponse'+ { -- | The list of values for an attribute. For example,+ -- @Throughput Optimized HDD@ and @Provisioned IOPS@ are two available+ -- values for the @AmazonEC2@ @volumeType@.+ attributeValues :: Prelude.Maybe [AttributeValue],+ -- | The pagination token that indicates the next set of results to retrieve.+ 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 'GetAttributeValuesResponse' 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:+--+-- 'attributeValues', 'getAttributeValuesResponse_attributeValues' - The list of values for an attribute. For example,+-- @Throughput Optimized HDD@ and @Provisioned IOPS@ are two available+-- values for the @AmazonEC2@ @volumeType@.+--+-- 'nextToken', 'getAttributeValuesResponse_nextToken' - The pagination token that indicates the next set of results to retrieve.+--+-- 'httpStatus', 'getAttributeValuesResponse_httpStatus' - The response's http status code.+newGetAttributeValuesResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ GetAttributeValuesResponse+newGetAttributeValuesResponse pHttpStatus_ =+ GetAttributeValuesResponse'+ { attributeValues =+ Prelude.Nothing,+ nextToken = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The list of values for an attribute. For example,+-- @Throughput Optimized HDD@ and @Provisioned IOPS@ are two available+-- values for the @AmazonEC2@ @volumeType@.+getAttributeValuesResponse_attributeValues :: Lens.Lens' GetAttributeValuesResponse (Prelude.Maybe [AttributeValue])+getAttributeValuesResponse_attributeValues = Lens.lens (\GetAttributeValuesResponse' {attributeValues} -> attributeValues) (\s@GetAttributeValuesResponse' {} a -> s {attributeValues = a} :: GetAttributeValuesResponse) Prelude.. Lens.mapping Lens.coerced++-- | The pagination token that indicates the next set of results to retrieve.+getAttributeValuesResponse_nextToken :: Lens.Lens' GetAttributeValuesResponse (Prelude.Maybe Prelude.Text)+getAttributeValuesResponse_nextToken = Lens.lens (\GetAttributeValuesResponse' {nextToken} -> nextToken) (\s@GetAttributeValuesResponse' {} a -> s {nextToken = a} :: GetAttributeValuesResponse)++-- | The response's http status code.+getAttributeValuesResponse_httpStatus :: Lens.Lens' GetAttributeValuesResponse Prelude.Int+getAttributeValuesResponse_httpStatus = Lens.lens (\GetAttributeValuesResponse' {httpStatus} -> httpStatus) (\s@GetAttributeValuesResponse' {} a -> s {httpStatus = a} :: GetAttributeValuesResponse)++instance Prelude.NFData GetAttributeValuesResponse where+ rnf GetAttributeValuesResponse' {..} =+ Prelude.rnf attributeValues+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Pricing/GetProducts.hs view
@@ -0,0 +1,286 @@+{-# 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.Pricing.GetProducts+-- 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 all products that match the filter criteria.+--+-- This operation returns paginated results.+module Amazonka.Pricing.GetProducts+ ( -- * Creating a Request+ GetProducts (..),+ newGetProducts,++ -- * Request Lenses+ getProducts_filters,+ getProducts_formatVersion,+ getProducts_maxResults,+ getProducts_nextToken,+ getProducts_serviceCode,++ -- * Destructuring the Response+ GetProductsResponse (..),+ newGetProductsResponse,++ -- * Response Lenses+ getProductsResponse_formatVersion,+ getProductsResponse_nextToken,+ getProductsResponse_priceList,+ getProductsResponse_httpStatus,+ )+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+import Amazonka.Pricing.Types+import qualified Amazonka.Request as Request+import qualified Amazonka.Response as Response++-- | /See:/ 'newGetProducts' smart constructor.+data GetProducts = GetProducts'+ { -- | The list of filters that limit the returned products. only products that+ -- match all filters are returned.+ filters :: Prelude.Maybe [Filter],+ -- | The format version that you want the response to be in.+ --+ -- Valid values are: @aws_v1@+ formatVersion :: Prelude.Maybe Prelude.Text,+ -- | The maximum number of results to return in the response.+ maxResults :: Prelude.Maybe Prelude.Natural,+ -- | The pagination token that indicates the next set of results that you+ -- want to retrieve.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The code for the service whose products you want to retrieve.+ serviceCode :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'GetProducts' 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:+--+-- 'filters', 'getProducts_filters' - The list of filters that limit the returned products. only products that+-- match all filters are returned.+--+-- 'formatVersion', 'getProducts_formatVersion' - The format version that you want the response to be in.+--+-- Valid values are: @aws_v1@+--+-- 'maxResults', 'getProducts_maxResults' - The maximum number of results to return in the response.+--+-- 'nextToken', 'getProducts_nextToken' - The pagination token that indicates the next set of results that you+-- want to retrieve.+--+-- 'serviceCode', 'getProducts_serviceCode' - The code for the service whose products you want to retrieve.+newGetProducts ::+ -- | 'serviceCode'+ Prelude.Text ->+ GetProducts+newGetProducts pServiceCode_ =+ GetProducts'+ { filters = Prelude.Nothing,+ formatVersion = Prelude.Nothing,+ maxResults = Prelude.Nothing,+ nextToken = Prelude.Nothing,+ serviceCode = pServiceCode_+ }++-- | The list of filters that limit the returned products. only products that+-- match all filters are returned.+getProducts_filters :: Lens.Lens' GetProducts (Prelude.Maybe [Filter])+getProducts_filters = Lens.lens (\GetProducts' {filters} -> filters) (\s@GetProducts' {} a -> s {filters = a} :: GetProducts) Prelude.. Lens.mapping Lens.coerced++-- | The format version that you want the response to be in.+--+-- Valid values are: @aws_v1@+getProducts_formatVersion :: Lens.Lens' GetProducts (Prelude.Maybe Prelude.Text)+getProducts_formatVersion = Lens.lens (\GetProducts' {formatVersion} -> formatVersion) (\s@GetProducts' {} a -> s {formatVersion = a} :: GetProducts)++-- | The maximum number of results to return in the response.+getProducts_maxResults :: Lens.Lens' GetProducts (Prelude.Maybe Prelude.Natural)+getProducts_maxResults = Lens.lens (\GetProducts' {maxResults} -> maxResults) (\s@GetProducts' {} a -> s {maxResults = a} :: GetProducts)++-- | The pagination token that indicates the next set of results that you+-- want to retrieve.+getProducts_nextToken :: Lens.Lens' GetProducts (Prelude.Maybe Prelude.Text)+getProducts_nextToken = Lens.lens (\GetProducts' {nextToken} -> nextToken) (\s@GetProducts' {} a -> s {nextToken = a} :: GetProducts)++-- | The code for the service whose products you want to retrieve.+getProducts_serviceCode :: Lens.Lens' GetProducts Prelude.Text+getProducts_serviceCode = Lens.lens (\GetProducts' {serviceCode} -> serviceCode) (\s@GetProducts' {} a -> s {serviceCode = a} :: GetProducts)++instance Core.AWSPager GetProducts where+ page rq rs+ | Core.stop+ ( rs+ Lens.^? getProductsResponse_nextToken+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Core.stop+ ( rs+ Lens.^? getProductsResponse_priceList+ Prelude.. Lens._Just+ ) =+ Prelude.Nothing+ | Prelude.otherwise =+ Prelude.Just+ Prelude.$ rq+ Prelude.& getProducts_nextToken+ Lens..~ rs+ Lens.^? getProductsResponse_nextToken+ Prelude.. Lens._Just++instance Core.AWSRequest GetProducts where+ type AWSResponse GetProducts = GetProductsResponse+ request overrides =+ Request.postJSON (overrides defaultService)+ response =+ Response.receiveJSON+ ( \s h x ->+ GetProductsResponse'+ Prelude.<$> (x Data..?> "FormatVersion")+ Prelude.<*> (x Data..?> "NextToken")+ Prelude.<*> (x Data..?> "PriceList" Core..!@ Prelude.mempty)+ Prelude.<*> (Prelude.pure (Prelude.fromEnum s))+ )++instance Prelude.Hashable GetProducts where+ hashWithSalt _salt GetProducts' {..} =+ _salt+ `Prelude.hashWithSalt` filters+ `Prelude.hashWithSalt` formatVersion+ `Prelude.hashWithSalt` maxResults+ `Prelude.hashWithSalt` nextToken+ `Prelude.hashWithSalt` serviceCode++instance Prelude.NFData GetProducts where+ rnf GetProducts' {..} =+ Prelude.rnf filters+ `Prelude.seq` Prelude.rnf formatVersion+ `Prelude.seq` Prelude.rnf maxResults+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf serviceCode++instance Data.ToHeaders GetProducts where+ toHeaders =+ Prelude.const+ ( Prelude.mconcat+ [ "X-Amz-Target"+ Data.=# ( "AWSPriceListService.GetProducts" ::+ Prelude.ByteString+ ),+ "Content-Type"+ Data.=# ( "application/x-amz-json-1.1" ::+ Prelude.ByteString+ )+ ]+ )++instance Data.ToJSON GetProducts where+ toJSON GetProducts' {..} =+ Data.object+ ( Prelude.catMaybes+ [ ("Filters" Data..=) Prelude.<$> filters,+ ("FormatVersion" Data..=) Prelude.<$> formatVersion,+ ("MaxResults" Data..=) Prelude.<$> maxResults,+ ("NextToken" Data..=) Prelude.<$> nextToken,+ Prelude.Just ("ServiceCode" Data..= serviceCode)+ ]+ )++instance Data.ToPath GetProducts where+ toPath = Prelude.const "/"++instance Data.ToQuery GetProducts where+ toQuery = Prelude.const Prelude.mempty++-- | /See:/ 'newGetProductsResponse' smart constructor.+data GetProductsResponse = GetProductsResponse'+ { -- | The format version of the response. For example, aws_v1.+ formatVersion :: Prelude.Maybe Prelude.Text,+ -- | The pagination token that indicates the next set of results to retrieve.+ nextToken :: Prelude.Maybe Prelude.Text,+ -- | The list of products that match your filters. The list contains both the+ -- product metadata and the price information.+ priceList :: 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 'GetProductsResponse' 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:+--+-- 'formatVersion', 'getProductsResponse_formatVersion' - The format version of the response. For example, aws_v1.+--+-- 'nextToken', 'getProductsResponse_nextToken' - The pagination token that indicates the next set of results to retrieve.+--+-- 'priceList', 'getProductsResponse_priceList' - The list of products that match your filters. The list contains both the+-- product metadata and the price information.+--+-- 'httpStatus', 'getProductsResponse_httpStatus' - The response's http status code.+newGetProductsResponse ::+ -- | 'httpStatus'+ Prelude.Int ->+ GetProductsResponse+newGetProductsResponse pHttpStatus_ =+ GetProductsResponse'+ { formatVersion =+ Prelude.Nothing,+ nextToken = Prelude.Nothing,+ priceList = Prelude.Nothing,+ httpStatus = pHttpStatus_+ }++-- | The format version of the response. For example, aws_v1.+getProductsResponse_formatVersion :: Lens.Lens' GetProductsResponse (Prelude.Maybe Prelude.Text)+getProductsResponse_formatVersion = Lens.lens (\GetProductsResponse' {formatVersion} -> formatVersion) (\s@GetProductsResponse' {} a -> s {formatVersion = a} :: GetProductsResponse)++-- | The pagination token that indicates the next set of results to retrieve.+getProductsResponse_nextToken :: Lens.Lens' GetProductsResponse (Prelude.Maybe Prelude.Text)+getProductsResponse_nextToken = Lens.lens (\GetProductsResponse' {nextToken} -> nextToken) (\s@GetProductsResponse' {} a -> s {nextToken = a} :: GetProductsResponse)++-- | The list of products that match your filters. The list contains both the+-- product metadata and the price information.+getProductsResponse_priceList :: Lens.Lens' GetProductsResponse (Prelude.Maybe [Prelude.Text])+getProductsResponse_priceList = Lens.lens (\GetProductsResponse' {priceList} -> priceList) (\s@GetProductsResponse' {} a -> s {priceList = a} :: GetProductsResponse) Prelude.. Lens.mapping Lens.coerced++-- | The response's http status code.+getProductsResponse_httpStatus :: Lens.Lens' GetProductsResponse Prelude.Int+getProductsResponse_httpStatus = Lens.lens (\GetProductsResponse' {httpStatus} -> httpStatus) (\s@GetProductsResponse' {} a -> s {httpStatus = a} :: GetProductsResponse)++instance Prelude.NFData GetProductsResponse where+ rnf GetProductsResponse' {..} =+ Prelude.rnf formatVersion+ `Prelude.seq` Prelude.rnf nextToken+ `Prelude.seq` Prelude.rnf priceList+ `Prelude.seq` Prelude.rnf httpStatus
+ gen/Amazonka/Pricing/Lens.hs view
@@ -0,0 +1,68 @@+{-# 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.Pricing.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.Pricing.Lens+ ( -- * Operations++ -- ** DescribeServices+ describeServices_formatVersion,+ describeServices_maxResults,+ describeServices_nextToken,+ describeServices_serviceCode,+ describeServicesResponse_formatVersion,+ describeServicesResponse_nextToken,+ describeServicesResponse_services,+ describeServicesResponse_httpStatus,++ -- ** GetAttributeValues+ getAttributeValues_maxResults,+ getAttributeValues_nextToken,+ getAttributeValues_serviceCode,+ getAttributeValues_attributeName,+ getAttributeValuesResponse_attributeValues,+ getAttributeValuesResponse_nextToken,+ getAttributeValuesResponse_httpStatus,++ -- ** GetProducts+ getProducts_filters,+ getProducts_formatVersion,+ getProducts_maxResults,+ getProducts_nextToken,+ getProducts_serviceCode,+ getProductsResponse_formatVersion,+ getProductsResponse_nextToken,+ getProductsResponse_priceList,+ getProductsResponse_httpStatus,++ -- * Types++ -- ** AttributeValue+ attributeValue_value,++ -- ** Filter+ filter_type,+ filter_field,+ filter_value,++ -- ** PricingService+ pricingService_attributeNames,+ pricingService_serviceCode,+ )+where++import Amazonka.Pricing.DescribeServices+import Amazonka.Pricing.GetAttributeValues+import Amazonka.Pricing.GetProducts+import Amazonka.Pricing.Types.AttributeValue+import Amazonka.Pricing.Types.Filter+import Amazonka.Pricing.Types.PricingService
+ gen/Amazonka/Pricing/Types.hs view
@@ -0,0 +1,163 @@+{-# 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.Pricing.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.Pricing.Types+ ( -- * Service Configuration+ defaultService,++ -- * Errors+ _ExpiredNextTokenException,+ _InternalErrorException,+ _InvalidNextTokenException,+ _InvalidParameterException,+ _NotFoundException,++ -- * FilterType+ FilterType (..),++ -- * AttributeValue+ AttributeValue (..),+ newAttributeValue,+ attributeValue_value,++ -- * Filter+ Filter (..),+ newFilter,+ filter_type,+ filter_field,+ filter_value,++ -- * PricingService+ PricingService (..),+ newPricingService,+ pricingService_attributeNames,+ pricingService_serviceCode,+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Core.Lens.Internal as Lens+import qualified Amazonka.Prelude as Prelude+import Amazonka.Pricing.Types.AttributeValue+import Amazonka.Pricing.Types.Filter+import Amazonka.Pricing.Types.FilterType+import Amazonka.Pricing.Types.PricingService+import qualified Amazonka.Sign.V4 as Sign++-- | API version @2017-10-15@ of the Amazon Price List Service SDK configuration.+defaultService :: Core.Service+defaultService =+ Core.Service+ { Core.abbrev = "Pricing",+ Core.signer = Sign.v4,+ Core.endpointPrefix = "api.pricing",+ Core.signingName = "pricing",+ Core.version = "2017-10-15",+ Core.s3AddressingStyle = Core.S3AddressingStyleAuto,+ Core.endpoint = Core.defaultEndpoint defaultService,+ Core.timeout = Prelude.Just 70,+ Core.check = Core.statusSuccess,+ Core.error = Core.parseJSONError "Pricing",+ 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 pagination token expired. Try again without a pagination token.+_ExpiredNextTokenException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_ExpiredNextTokenException =+ Core._MatchServiceError+ defaultService+ "ExpiredNextTokenException"++-- | An error on the server occurred during the processing of your request.+-- Try again later.+_InternalErrorException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InternalErrorException =+ Core._MatchServiceError+ defaultService+ "InternalErrorException"++-- | 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"++-- | One or more parameters had an invalid value.+_InvalidParameterException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_InvalidParameterException =+ Core._MatchServiceError+ defaultService+ "InvalidParameterException"++-- | The requested resource can\'t be found.+_NotFoundException :: (Core.AsError a) => Lens.Fold a Core.ServiceError+_NotFoundException =+ Core._MatchServiceError+ defaultService+ "NotFoundException"
+ gen/Amazonka/Pricing/Types/AttributeValue.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.Pricing.Types.AttributeValue+-- 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.Pricing.Types.AttributeValue 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 values of a given attribute, such as @Throughput Optimized HDD@ or+-- @Provisioned IOPS@ for the @Amazon EC2@ @volumeType@ attribute.+--+-- /See:/ 'newAttributeValue' smart constructor.+data AttributeValue = AttributeValue'+ { -- | The specific value of an @attributeName@.+ value :: Prelude.Maybe Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'AttributeValue' 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:+--+-- 'value', 'attributeValue_value' - The specific value of an @attributeName@.+newAttributeValue ::+ AttributeValue+newAttributeValue =+ AttributeValue' {value = Prelude.Nothing}++-- | The specific value of an @attributeName@.+attributeValue_value :: Lens.Lens' AttributeValue (Prelude.Maybe Prelude.Text)+attributeValue_value = Lens.lens (\AttributeValue' {value} -> value) (\s@AttributeValue' {} a -> s {value = a} :: AttributeValue)++instance Data.FromJSON AttributeValue where+ parseJSON =+ Data.withObject+ "AttributeValue"+ ( \x ->+ AttributeValue' Prelude.<$> (x Data..:? "Value")+ )++instance Prelude.Hashable AttributeValue where+ hashWithSalt _salt AttributeValue' {..} =+ _salt `Prelude.hashWithSalt` value++instance Prelude.NFData AttributeValue where+ rnf AttributeValue' {..} = Prelude.rnf value
+ gen/Amazonka/Pricing/Types/Filter.hs view
@@ -0,0 +1,153 @@+{-# 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.Pricing.Types.Filter+-- 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.Pricing.Types.Filter 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+import Amazonka.Pricing.Types.FilterType++-- | The constraints that you want all returned products to match.+--+-- /See:/ 'newFilter' smart constructor.+data Filter = Filter'+ { -- | The type of filter that you want to use.+ --+ -- Valid values are: @TERM_MATCH@. @TERM_MATCH@ returns only products that+ -- match both the given filter field and the given value.+ type' :: FilterType,+ -- | The product metadata field that you want to filter on. You can filter by+ -- just the service code to see all products for a specific service, filter+ -- by just the attribute name to see a specific attribute for multiple+ -- services, or use both a service code and an attribute name to retrieve+ -- only products that match both fields.+ --+ -- Valid values include: @ServiceCode@, and all attribute names+ --+ -- For example, you can filter by the @AmazonEC2@ service code and the+ -- @volumeType@ attribute name to get the prices for only Amazon EC2+ -- volumes.+ field :: Prelude.Text,+ -- | The service code or attribute value that you want to filter by. If you+ -- are filtering by service code this is the actual service code, such as+ -- @AmazonEC2@. If you are filtering by attribute name, this is the+ -- attribute value that you want the returned products to match, such as a+ -- @Provisioned IOPS@ volume.+ value :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'Filter' 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'', 'filter_type' - The type of filter that you want to use.+--+-- Valid values are: @TERM_MATCH@. @TERM_MATCH@ returns only products that+-- match both the given filter field and the given value.+--+-- 'field', 'filter_field' - The product metadata field that you want to filter on. You can filter by+-- just the service code to see all products for a specific service, filter+-- by just the attribute name to see a specific attribute for multiple+-- services, or use both a service code and an attribute name to retrieve+-- only products that match both fields.+--+-- Valid values include: @ServiceCode@, and all attribute names+--+-- For example, you can filter by the @AmazonEC2@ service code and the+-- @volumeType@ attribute name to get the prices for only Amazon EC2+-- volumes.+--+-- 'value', 'filter_value' - The service code or attribute value that you want to filter by. If you+-- are filtering by service code this is the actual service code, such as+-- @AmazonEC2@. If you are filtering by attribute name, this is the+-- attribute value that you want the returned products to match, such as a+-- @Provisioned IOPS@ volume.+newFilter ::+ -- | 'type''+ FilterType ->+ -- | 'field'+ Prelude.Text ->+ -- | 'value'+ Prelude.Text ->+ Filter+newFilter pType_ pField_ pValue_ =+ Filter'+ { type' = pType_,+ field = pField_,+ value = pValue_+ }++-- | The type of filter that you want to use.+--+-- Valid values are: @TERM_MATCH@. @TERM_MATCH@ returns only products that+-- match both the given filter field and the given value.+filter_type :: Lens.Lens' Filter FilterType+filter_type = Lens.lens (\Filter' {type'} -> type') (\s@Filter' {} a -> s {type' = a} :: Filter)++-- | The product metadata field that you want to filter on. You can filter by+-- just the service code to see all products for a specific service, filter+-- by just the attribute name to see a specific attribute for multiple+-- services, or use both a service code and an attribute name to retrieve+-- only products that match both fields.+--+-- Valid values include: @ServiceCode@, and all attribute names+--+-- For example, you can filter by the @AmazonEC2@ service code and the+-- @volumeType@ attribute name to get the prices for only Amazon EC2+-- volumes.+filter_field :: Lens.Lens' Filter Prelude.Text+filter_field = Lens.lens (\Filter' {field} -> field) (\s@Filter' {} a -> s {field = a} :: Filter)++-- | The service code or attribute value that you want to filter by. If you+-- are filtering by service code this is the actual service code, such as+-- @AmazonEC2@. If you are filtering by attribute name, this is the+-- attribute value that you want the returned products to match, such as a+-- @Provisioned IOPS@ volume.+filter_value :: Lens.Lens' Filter Prelude.Text+filter_value = Lens.lens (\Filter' {value} -> value) (\s@Filter' {} a -> s {value = a} :: Filter)++instance Prelude.Hashable Filter where+ hashWithSalt _salt Filter' {..} =+ _salt+ `Prelude.hashWithSalt` type'+ `Prelude.hashWithSalt` field+ `Prelude.hashWithSalt` value++instance Prelude.NFData Filter where+ rnf Filter' {..} =+ Prelude.rnf type'+ `Prelude.seq` Prelude.rnf field+ `Prelude.seq` Prelude.rnf value++instance Data.ToJSON Filter where+ toJSON Filter' {..} =+ Data.object+ ( Prelude.catMaybes+ [ Prelude.Just ("Type" Data..= type'),+ Prelude.Just ("Field" Data..= field),+ Prelude.Just ("Value" Data..= value)+ ]+ )
+ gen/Amazonka/Pricing/Types/FilterType.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.Pricing.Types.FilterType+-- 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.Pricing.Types.FilterType+ ( FilterType+ ( ..,+ FilterType_TERM_MATCH+ ),+ )+where++import qualified Amazonka.Core as Core+import qualified Amazonka.Data as Data+import qualified Amazonka.Prelude as Prelude++newtype FilterType = FilterType'+ { fromFilterType ::+ 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 FilterType_TERM_MATCH :: FilterType+pattern FilterType_TERM_MATCH = FilterType' "TERM_MATCH"++{-# COMPLETE+ FilterType_TERM_MATCH,+ FilterType'+ #-}
+ gen/Amazonka/Pricing/Types/PricingService.hs view
@@ -0,0 +1,87 @@+{-# 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.Pricing.Types.PricingService+-- 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.Pricing.Types.PricingService 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 for a service, such as the service code and available+-- attribute names.+--+-- /See:/ 'newPricingService' smart constructor.+data PricingService = PricingService'+ { -- | The attributes that are available for this service.+ attributeNames :: Prelude.Maybe [Prelude.Text],+ -- | The code for the Amazon Web Services service.+ serviceCode :: Prelude.Text+ }+ deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)++-- |+-- Create a value of 'PricingService' 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:+--+-- 'attributeNames', 'pricingService_attributeNames' - The attributes that are available for this service.+--+-- 'serviceCode', 'pricingService_serviceCode' - The code for the Amazon Web Services service.+newPricingService ::+ -- | 'serviceCode'+ Prelude.Text ->+ PricingService+newPricingService pServiceCode_ =+ PricingService'+ { attributeNames = Prelude.Nothing,+ serviceCode = pServiceCode_+ }++-- | The attributes that are available for this service.+pricingService_attributeNames :: Lens.Lens' PricingService (Prelude.Maybe [Prelude.Text])+pricingService_attributeNames = Lens.lens (\PricingService' {attributeNames} -> attributeNames) (\s@PricingService' {} a -> s {attributeNames = a} :: PricingService) Prelude.. Lens.mapping Lens.coerced++-- | The code for the Amazon Web Services service.+pricingService_serviceCode :: Lens.Lens' PricingService Prelude.Text+pricingService_serviceCode = Lens.lens (\PricingService' {serviceCode} -> serviceCode) (\s@PricingService' {} a -> s {serviceCode = a} :: PricingService)++instance Data.FromJSON PricingService where+ parseJSON =+ Data.withObject+ "PricingService"+ ( \x ->+ PricingService'+ Prelude.<$> (x Data..:? "AttributeNames" Data..!= Prelude.mempty)+ Prelude.<*> (x Data..: "ServiceCode")+ )++instance Prelude.Hashable PricingService where+ hashWithSalt _salt PricingService' {..} =+ _salt+ `Prelude.hashWithSalt` attributeNames+ `Prelude.hashWithSalt` serviceCode++instance Prelude.NFData PricingService where+ rnf PricingService' {..} =+ Prelude.rnf attributeNames+ `Prelude.seq` Prelude.rnf serviceCode
+ gen/Amazonka/Pricing/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.Pricing.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.Pricing.Waiters 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+import Amazonka.Pricing.Lens+import Amazonka.Pricing.Types
− gen/Network/AWS/Pricing.hs
@@ -1,125 +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.Pricing--- 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)------ AWS Price List Service API (AWS Price List Service) is a centralized and convenient way to programmatically query Amazon Web Services for services, products, and pricing information. The AWS Price List Service uses standardized product attributes such as @Location@ , @Storage Class@ , and @Operating System@ , and provides prices at the SKU level. You can use the AWS Price List Service to build cost control and scenario planning tools, reconcile billing data, forecast future spend for budgeting purposes, and provide cost benefit analysis that compare your internal workloads with AWS.--------- Use @GetServices@ without a service code to retrieve the service codes for all AWS services, then @GetServices@ with a service code to retreive the attribute names for that service. After you have the service code and attribute names, you can use @GetAttributeValues@ to see what values are available for an attribute. With the service code and an attribute name and value, you can use @GetProducts@ to find specific products that you're interested in, such as an @AmazonEC2@ instance, with a @Provisioned IOPS@ @volumeType@ .------ Service Endpoint------ AWS Price List Service API provides the following two endpoints:------ * https://api.pricing.us-east-1.amazonaws.com------ * https://api.pricing.ap-south-1.amazonaws.com----------module Network.AWS.Pricing- (- -- * Service Configuration- pricing-- -- * Errors- -- $errors-- -- ** InvalidParameterException- , _InvalidParameterException-- -- ** InternalErrorException- , _InternalErrorException-- -- ** ExpiredNextTokenException- , _ExpiredNextTokenException-- -- ** NotFoundException- , _NotFoundException-- -- ** InvalidNextTokenException- , _InvalidNextTokenException-- -- * Waiters- -- $waiters-- -- * Operations- -- $operations-- -- ** GetAttributeValues (Paginated)- , module Network.AWS.Pricing.GetAttributeValues-- -- ** DescribeServices (Paginated)- , module Network.AWS.Pricing.DescribeServices-- -- ** GetProducts (Paginated)- , module Network.AWS.Pricing.GetProducts-- -- * Types-- -- ** FilterType- , FilterType (..)-- -- ** AttributeValue- , AttributeValue- , attributeValue- , avValue-- -- ** Filter- , Filter- , filter'- , fType- , fField- , fValue-- -- ** PricingService- , PricingService- , pricingService- , psAttributeNames- , psServiceCode- ) where--import Network.AWS.Pricing.DescribeServices-import Network.AWS.Pricing.GetAttributeValues-import Network.AWS.Pricing.GetProducts-import Network.AWS.Pricing.Types-import Network.AWS.Pricing.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 'Pricing'.--}--{- $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/Pricing/DescribeServices.hs
@@ -1,197 +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.Pricing.DescribeServices--- 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)------ Returns the metadata for one service or a list of the metadata for all services. Use this without a service code to get the service codes for all services. Use it with a service code, such as @AmazonEC2@ , to get information specific to that service, such as the attribute names available for that service. For example, some of the attribute names available for EC2 are @volumeType@ , @maxIopsVolume@ , @operation@ , @locationType@ , and @instanceCapacity10xlarge@ .------------ This operation returns paginated results.-module Network.AWS.Pricing.DescribeServices- (- -- * Creating a Request- describeServices- , DescribeServices- -- * Request Lenses- , dsFormatVersion- , dsNextToken- , dsServiceCode- , dsMaxResults-- -- * Destructuring the Response- , describeServicesResponse- , DescribeServicesResponse- -- * Response Lenses- , dsrsFormatVersion- , dsrsNextToken- , dsrsServices- , dsrsResponseStatus- ) where--import Network.AWS.Lens-import Network.AWS.Pager-import Network.AWS.Prelude-import Network.AWS.Pricing.Types-import Network.AWS.Pricing.Types.Product-import Network.AWS.Request-import Network.AWS.Response---- | /See:/ 'describeServices' smart constructor.-data DescribeServices = DescribeServices'- { _dsFormatVersion :: !(Maybe Text)- , _dsNextToken :: !(Maybe Text)- , _dsServiceCode :: !(Maybe Text)- , _dsMaxResults :: !(Maybe Nat)- } deriving (Eq, Read, Show, Data, Typeable, Generic)----- | Creates a value of 'DescribeServices' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'dsFormatVersion' - The format version that you want the response to be in. Valid values are: @aws_v1@------ * 'dsNextToken' - The pagination token that indicates the next set of results that you want to retrieve.------ * 'dsServiceCode' - The code for the service whose information you want to retrieve, such as @AmazonEC2@ . You can use the @ServiceCode@ to filter the results in a @GetProducts@ call. To retrieve a list of all services, leave this blank.------ * 'dsMaxResults' - The maximum number of results that you want returned in the response.-describeServices- :: DescribeServices-describeServices =- DescribeServices'- { _dsFormatVersion = Nothing- , _dsNextToken = Nothing- , _dsServiceCode = Nothing- , _dsMaxResults = Nothing- }----- | The format version that you want the response to be in. Valid values are: @aws_v1@-dsFormatVersion :: Lens' DescribeServices (Maybe Text)-dsFormatVersion = lens _dsFormatVersion (\ s a -> s{_dsFormatVersion = a})---- | The pagination token that indicates the next set of results that you want to retrieve.-dsNextToken :: Lens' DescribeServices (Maybe Text)-dsNextToken = lens _dsNextToken (\ s a -> s{_dsNextToken = a})---- | The code for the service whose information you want to retrieve, such as @AmazonEC2@ . You can use the @ServiceCode@ to filter the results in a @GetProducts@ call. To retrieve a list of all services, leave this blank.-dsServiceCode :: Lens' DescribeServices (Maybe Text)-dsServiceCode = lens _dsServiceCode (\ s a -> s{_dsServiceCode = a})---- | The maximum number of results that you want returned in the response.-dsMaxResults :: Lens' DescribeServices (Maybe Natural)-dsMaxResults = lens _dsMaxResults (\ s a -> s{_dsMaxResults = a}) . mapping _Nat--instance AWSPager DescribeServices where- page rq rs- | stop (rs ^. dsrsNextToken) = Nothing- | stop (rs ^. dsrsServices) = Nothing- | otherwise =- Just $ rq & dsNextToken .~ rs ^. dsrsNextToken--instance AWSRequest DescribeServices where- type Rs DescribeServices = DescribeServicesResponse- request = postJSON pricing- response- = receiveJSON- (\ s h x ->- DescribeServicesResponse' <$>- (x .?> "FormatVersion") <*> (x .?> "NextToken") <*>- (x .?> "Services" .!@ mempty)- <*> (pure (fromEnum s)))--instance Hashable DescribeServices where--instance NFData DescribeServices where--instance ToHeaders DescribeServices where- toHeaders- = const- (mconcat- ["X-Amz-Target" =#- ("AWSPriceListService.DescribeServices" ::- ByteString),- "Content-Type" =#- ("application/x-amz-json-1.1" :: ByteString)])--instance ToJSON DescribeServices where- toJSON DescribeServices'{..}- = object- (catMaybes- [("FormatVersion" .=) <$> _dsFormatVersion,- ("NextToken" .=) <$> _dsNextToken,- ("ServiceCode" .=) <$> _dsServiceCode,- ("MaxResults" .=) <$> _dsMaxResults])--instance ToPath DescribeServices where- toPath = const "/"--instance ToQuery DescribeServices where- toQuery = const mempty---- | /See:/ 'describeServicesResponse' smart constructor.-data DescribeServicesResponse = DescribeServicesResponse'- { _dsrsFormatVersion :: !(Maybe Text)- , _dsrsNextToken :: !(Maybe Text)- , _dsrsServices :: !(Maybe [PricingService])- , _dsrsResponseStatus :: !Int- } deriving (Eq, Read, Show, Data, Typeable, Generic)----- | Creates a value of 'DescribeServicesResponse' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'dsrsFormatVersion' - The format version of the response. For example, @aws_v1@ .------ * 'dsrsNextToken' - The pagination token for the next set of retreivable results.------ * 'dsrsServices' - The service metadata for the service or services in the response.------ * 'dsrsResponseStatus' - -- | The response status code.-describeServicesResponse- :: Int -- ^ 'dsrsResponseStatus'- -> DescribeServicesResponse-describeServicesResponse pResponseStatus_ =- DescribeServicesResponse'- { _dsrsFormatVersion = Nothing- , _dsrsNextToken = Nothing- , _dsrsServices = Nothing- , _dsrsResponseStatus = pResponseStatus_- }----- | The format version of the response. For example, @aws_v1@ .-dsrsFormatVersion :: Lens' DescribeServicesResponse (Maybe Text)-dsrsFormatVersion = lens _dsrsFormatVersion (\ s a -> s{_dsrsFormatVersion = a})---- | The pagination token for the next set of retreivable results.-dsrsNextToken :: Lens' DescribeServicesResponse (Maybe Text)-dsrsNextToken = lens _dsrsNextToken (\ s a -> s{_dsrsNextToken = a})---- | The service metadata for the service or services in the response.-dsrsServices :: Lens' DescribeServicesResponse [PricingService]-dsrsServices = lens _dsrsServices (\ s a -> s{_dsrsServices = a}) . _Default . _Coerce---- | -- | The response status code.-dsrsResponseStatus :: Lens' DescribeServicesResponse Int-dsrsResponseStatus = lens _dsrsResponseStatus (\ s a -> s{_dsrsResponseStatus = a})--instance NFData DescribeServicesResponse where
− gen/Network/AWS/Pricing/GetAttributeValues.hs
@@ -1,191 +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.Pricing.GetAttributeValues--- 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)------ Returns a list of attribute values. Attibutes are similar to the details in a Price List API offer file. For a list of available attributes, see <http://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/reading-an-offer.html#pps-defs Offer File Definitions> in the <http://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/billing-what-is.html AWS Billing and Cost Management User Guide> .------------ This operation returns paginated results.-module Network.AWS.Pricing.GetAttributeValues- (- -- * Creating a Request- getAttributeValues- , GetAttributeValues- -- * Request Lenses- , gavNextToken- , gavMaxResults- , gavServiceCode- , gavAttributeName-- -- * Destructuring the Response- , getAttributeValuesResponse- , GetAttributeValuesResponse- -- * Response Lenses- , gavrsAttributeValues- , gavrsNextToken- , gavrsResponseStatus- ) where--import Network.AWS.Lens-import Network.AWS.Pager-import Network.AWS.Prelude-import Network.AWS.Pricing.Types-import Network.AWS.Pricing.Types.Product-import Network.AWS.Request-import Network.AWS.Response---- | /See:/ 'getAttributeValues' smart constructor.-data GetAttributeValues = GetAttributeValues'- { _gavNextToken :: !(Maybe Text)- , _gavMaxResults :: !(Maybe Nat)- , _gavServiceCode :: !Text- , _gavAttributeName :: !Text- } deriving (Eq, Read, Show, Data, Typeable, Generic)----- | Creates a value of 'GetAttributeValues' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'gavNextToken' - The pagination token that indicates the next set of results that you want to retrieve.------ * 'gavMaxResults' - The maximum number of results to return in response.------ * 'gavServiceCode' - The service code for the service whose attributes you want to retrieve. For example, if you want the retrieve an EC2 attribute, use @AmazonEC2@ .------ * 'gavAttributeName' - The name of the attribute that you want to retrieve the values for, such as @volumeType@ .-getAttributeValues- :: Text -- ^ 'gavServiceCode'- -> Text -- ^ 'gavAttributeName'- -> GetAttributeValues-getAttributeValues pServiceCode_ pAttributeName_ =- GetAttributeValues'- { _gavNextToken = Nothing- , _gavMaxResults = Nothing- , _gavServiceCode = pServiceCode_- , _gavAttributeName = pAttributeName_- }----- | The pagination token that indicates the next set of results that you want to retrieve.-gavNextToken :: Lens' GetAttributeValues (Maybe Text)-gavNextToken = lens _gavNextToken (\ s a -> s{_gavNextToken = a})---- | The maximum number of results to return in response.-gavMaxResults :: Lens' GetAttributeValues (Maybe Natural)-gavMaxResults = lens _gavMaxResults (\ s a -> s{_gavMaxResults = a}) . mapping _Nat---- | The service code for the service whose attributes you want to retrieve. For example, if you want the retrieve an EC2 attribute, use @AmazonEC2@ .-gavServiceCode :: Lens' GetAttributeValues Text-gavServiceCode = lens _gavServiceCode (\ s a -> s{_gavServiceCode = a})---- | The name of the attribute that you want to retrieve the values for, such as @volumeType@ .-gavAttributeName :: Lens' GetAttributeValues Text-gavAttributeName = lens _gavAttributeName (\ s a -> s{_gavAttributeName = a})--instance AWSPager GetAttributeValues where- page rq rs- | stop (rs ^. gavrsNextToken) = Nothing- | stop (rs ^. gavrsAttributeValues) = Nothing- | otherwise =- Just $ rq & gavNextToken .~ rs ^. gavrsNextToken--instance AWSRequest GetAttributeValues where- type Rs GetAttributeValues =- GetAttributeValuesResponse- request = postJSON pricing- response- = receiveJSON- (\ s h x ->- GetAttributeValuesResponse' <$>- (x .?> "AttributeValues" .!@ mempty) <*>- (x .?> "NextToken")- <*> (pure (fromEnum s)))--instance Hashable GetAttributeValues where--instance NFData GetAttributeValues where--instance ToHeaders GetAttributeValues where- toHeaders- = const- (mconcat- ["X-Amz-Target" =#- ("AWSPriceListService.GetAttributeValues" ::- ByteString),- "Content-Type" =#- ("application/x-amz-json-1.1" :: ByteString)])--instance ToJSON GetAttributeValues where- toJSON GetAttributeValues'{..}- = object- (catMaybes- [("NextToken" .=) <$> _gavNextToken,- ("MaxResults" .=) <$> _gavMaxResults,- Just ("ServiceCode" .= _gavServiceCode),- Just ("AttributeName" .= _gavAttributeName)])--instance ToPath GetAttributeValues where- toPath = const "/"--instance ToQuery GetAttributeValues where- toQuery = const mempty---- | /See:/ 'getAttributeValuesResponse' smart constructor.-data GetAttributeValuesResponse = GetAttributeValuesResponse'- { _gavrsAttributeValues :: !(Maybe [AttributeValue])- , _gavrsNextToken :: !(Maybe Text)- , _gavrsResponseStatus :: !Int- } deriving (Eq, Read, Show, Data, Typeable, Generic)----- | Creates a value of 'GetAttributeValuesResponse' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'gavrsAttributeValues' - The list of values for an attribute. For example, @Throughput Optimized HDD@ and @Provisioned IOPS@ are two available values for the @AmazonEC2@ @volumeType@ .------ * 'gavrsNextToken' - The pagination token that indicates the next set of results to retrieve.------ * 'gavrsResponseStatus' - -- | The response status code.-getAttributeValuesResponse- :: Int -- ^ 'gavrsResponseStatus'- -> GetAttributeValuesResponse-getAttributeValuesResponse pResponseStatus_ =- GetAttributeValuesResponse'- { _gavrsAttributeValues = Nothing- , _gavrsNextToken = Nothing- , _gavrsResponseStatus = pResponseStatus_- }----- | The list of values for an attribute. For example, @Throughput Optimized HDD@ and @Provisioned IOPS@ are two available values for the @AmazonEC2@ @volumeType@ .-gavrsAttributeValues :: Lens' GetAttributeValuesResponse [AttributeValue]-gavrsAttributeValues = lens _gavrsAttributeValues (\ s a -> s{_gavrsAttributeValues = a}) . _Default . _Coerce---- | The pagination token that indicates the next set of results to retrieve.-gavrsNextToken :: Lens' GetAttributeValuesResponse (Maybe Text)-gavrsNextToken = lens _gavrsNextToken (\ s a -> s{_gavrsNextToken = a})---- | -- | The response status code.-gavrsResponseStatus :: Lens' GetAttributeValuesResponse Int-gavrsResponseStatus = lens _gavrsResponseStatus (\ s a -> s{_gavrsResponseStatus = a})--instance NFData GetAttributeValuesResponse where
− gen/Network/AWS/Pricing/GetProducts.hs
@@ -1,206 +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.Pricing.GetProducts--- 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)------ Returns a list of all products that match the filter criteria.------------ This operation returns paginated results.-module Network.AWS.Pricing.GetProducts- (- -- * Creating a Request- getProducts- , GetProducts- -- * Request Lenses- , gpFilters- , gpFormatVersion- , gpNextToken- , gpServiceCode- , gpMaxResults-- -- * Destructuring the Response- , getProductsResponse- , GetProductsResponse- -- * Response Lenses- , gprsFormatVersion- , gprsNextToken- , gprsPriceList- , gprsResponseStatus- ) where--import Network.AWS.Lens-import Network.AWS.Pager-import Network.AWS.Prelude-import Network.AWS.Pricing.Types-import Network.AWS.Pricing.Types.Product-import Network.AWS.Request-import Network.AWS.Response---- | /See:/ 'getProducts' smart constructor.-data GetProducts = GetProducts'- { _gpFilters :: !(Maybe [Filter])- , _gpFormatVersion :: !(Maybe Text)- , _gpNextToken :: !(Maybe Text)- , _gpServiceCode :: !(Maybe Text)- , _gpMaxResults :: !(Maybe Nat)- } deriving (Eq, Read, Show, Data, Typeable, Generic)----- | Creates a value of 'GetProducts' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'gpFilters' - The list of filters that limit the returned products. only products that match all filters are returned.------ * 'gpFormatVersion' - The format version that you want the response to be in. Valid values are: @aws_v1@------ * 'gpNextToken' - The pagination token that indicates the next set of results that you want to retrieve.------ * 'gpServiceCode' - The code for the service whose products you want to retrieve.------ * 'gpMaxResults' - The maximum number of results to return in the response.-getProducts- :: GetProducts-getProducts =- GetProducts'- { _gpFilters = Nothing- , _gpFormatVersion = Nothing- , _gpNextToken = Nothing- , _gpServiceCode = Nothing- , _gpMaxResults = Nothing- }----- | The list of filters that limit the returned products. only products that match all filters are returned.-gpFilters :: Lens' GetProducts [Filter]-gpFilters = lens _gpFilters (\ s a -> s{_gpFilters = a}) . _Default . _Coerce---- | The format version that you want the response to be in. Valid values are: @aws_v1@-gpFormatVersion :: Lens' GetProducts (Maybe Text)-gpFormatVersion = lens _gpFormatVersion (\ s a -> s{_gpFormatVersion = a})---- | The pagination token that indicates the next set of results that you want to retrieve.-gpNextToken :: Lens' GetProducts (Maybe Text)-gpNextToken = lens _gpNextToken (\ s a -> s{_gpNextToken = a})---- | The code for the service whose products you want to retrieve.-gpServiceCode :: Lens' GetProducts (Maybe Text)-gpServiceCode = lens _gpServiceCode (\ s a -> s{_gpServiceCode = a})---- | The maximum number of results to return in the response.-gpMaxResults :: Lens' GetProducts (Maybe Natural)-gpMaxResults = lens _gpMaxResults (\ s a -> s{_gpMaxResults = a}) . mapping _Nat--instance AWSPager GetProducts where- page rq rs- | stop (rs ^. gprsNextToken) = Nothing- | stop (rs ^. gprsPriceList) = Nothing- | otherwise =- Just $ rq & gpNextToken .~ rs ^. gprsNextToken--instance AWSRequest GetProducts where- type Rs GetProducts = GetProductsResponse- request = postJSON pricing- response- = receiveJSON- (\ s h x ->- GetProductsResponse' <$>- (x .?> "FormatVersion") <*> (x .?> "NextToken") <*>- (x .?> "PriceList" .!@ mempty)- <*> (pure (fromEnum s)))--instance Hashable GetProducts where--instance NFData GetProducts where--instance ToHeaders GetProducts where- toHeaders- = const- (mconcat- ["X-Amz-Target" =#- ("AWSPriceListService.GetProducts" :: ByteString),- "Content-Type" =#- ("application/x-amz-json-1.1" :: ByteString)])--instance ToJSON GetProducts where- toJSON GetProducts'{..}- = object- (catMaybes- [("Filters" .=) <$> _gpFilters,- ("FormatVersion" .=) <$> _gpFormatVersion,- ("NextToken" .=) <$> _gpNextToken,- ("ServiceCode" .=) <$> _gpServiceCode,- ("MaxResults" .=) <$> _gpMaxResults])--instance ToPath GetProducts where- toPath = const "/"--instance ToQuery GetProducts where- toQuery = const mempty---- | /See:/ 'getProductsResponse' smart constructor.-data GetProductsResponse = GetProductsResponse'- { _gprsFormatVersion :: !(Maybe Text)- , _gprsNextToken :: !(Maybe Text)- , _gprsPriceList :: !(Maybe [Text])- , _gprsResponseStatus :: !Int- } deriving (Eq, Read, Show, Data, Typeable, Generic)----- | Creates a value of 'GetProductsResponse' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'gprsFormatVersion' - The format version of the response. For example, aws_v1.------ * 'gprsNextToken' - The pagination token that indicates the next set of results to retrieve.------ * 'gprsPriceList' - The list of products that match your filters. The list contains both the product metadata and the price information.------ * 'gprsResponseStatus' - -- | The response status code.-getProductsResponse- :: Int -- ^ 'gprsResponseStatus'- -> GetProductsResponse-getProductsResponse pResponseStatus_ =- GetProductsResponse'- { _gprsFormatVersion = Nothing- , _gprsNextToken = Nothing- , _gprsPriceList = Nothing- , _gprsResponseStatus = pResponseStatus_- }----- | The format version of the response. For example, aws_v1.-gprsFormatVersion :: Lens' GetProductsResponse (Maybe Text)-gprsFormatVersion = lens _gprsFormatVersion (\ s a -> s{_gprsFormatVersion = a})---- | The pagination token that indicates the next set of results to retrieve.-gprsNextToken :: Lens' GetProductsResponse (Maybe Text)-gprsNextToken = lens _gprsNextToken (\ s a -> s{_gprsNextToken = a})---- | The list of products that match your filters. The list contains both the product metadata and the price information.-gprsPriceList :: Lens' GetProductsResponse [Text]-gprsPriceList = lens _gprsPriceList (\ s a -> s{_gprsPriceList = a}) . _Default . _Coerce---- | -- | The response status code.-gprsResponseStatus :: Lens' GetProductsResponse Int-gprsResponseStatus = lens _gprsResponseStatus (\ s a -> s{_gprsResponseStatus = a})--instance NFData GetProductsResponse where
− gen/Network/AWS/Pricing/Types.hs
@@ -1,128 +0,0 @@-{-# LANGUAGE OverloadedStrings #-}---- Derived from AWS service descriptions, licensed under Apache 2.0.---- |--- Module : Network.AWS.Pricing.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.Pricing.Types- (- -- * Service Configuration- pricing-- -- * Errors- , _InvalidParameterException- , _InternalErrorException- , _ExpiredNextTokenException- , _NotFoundException- , _InvalidNextTokenException-- -- * FilterType- , FilterType (..)-- -- * AttributeValue- , AttributeValue- , attributeValue- , avValue-- -- * Filter- , Filter- , filter'- , fType- , fField- , fValue-- -- * PricingService- , PricingService- , pricingService- , psAttributeNames- , psServiceCode- ) where--import Network.AWS.Lens-import Network.AWS.Prelude-import Network.AWS.Pricing.Types.Product-import Network.AWS.Pricing.Types.Sum-import Network.AWS.Sign.V4---- | API version @2017-10-15@ of the Amazon Price List Service SDK configuration.-pricing :: Service-pricing =- Service- { _svcAbbrev = "Pricing"- , _svcSigner = v4- , _svcPrefix = "api.pricing"- , _svcVersion = "2017-10-15"- , _svcEndpoint = defaultEndpoint pricing- , _svcTimeout = Just 70- , _svcCheck = statusSuccess- , _svcError = parseJSONError "Pricing"- , _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----- | One or more parameters had an invalid value.-------_InvalidParameterException :: AsError a => Getting (First ServiceError) a ServiceError-_InvalidParameterException =- _MatchServiceError pricing "InvalidParameterException"----- | An error on the server occurred during the processing of your request. Try again later.-------_InternalErrorException :: AsError a => Getting (First ServiceError) a ServiceError-_InternalErrorException = _MatchServiceError pricing "InternalErrorException"----- | The pagination token expired. Try again without a pagination token.-------_ExpiredNextTokenException :: AsError a => Getting (First ServiceError) a ServiceError-_ExpiredNextTokenException =- _MatchServiceError pricing "ExpiredNextTokenException"----- | The requested resource can't be found.-------_NotFoundException :: AsError a => Getting (First ServiceError) a ServiceError-_NotFoundException = _MatchServiceError pricing "NotFoundException"----- | The pagination token is invalid. Try again without a pagination token.-------_InvalidNextTokenException :: AsError a => Getting (First ServiceError) a ServiceError-_InvalidNextTokenException =- _MatchServiceError pricing "InvalidNextTokenException"-
− gen/Network/AWS/Pricing/Types/Product.hs
@@ -1,152 +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.Pricing.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.Pricing.Types.Product where--import Network.AWS.Lens-import Network.AWS.Prelude-import Network.AWS.Pricing.Types.Sum---- | The values of a given attribute, such as @Throughput Optimized HDD@ or @Provisioned IOPS@ for the @Amazon EC2@ @volumeType@ attribute.------------ /See:/ 'attributeValue' smart constructor.-newtype AttributeValue = AttributeValue'- { _avValue :: Maybe Text- } deriving (Eq, Read, Show, Data, Typeable, Generic)----- | Creates a value of 'AttributeValue' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'avValue' - The specific value of an @attributeName@ .-attributeValue- :: AttributeValue-attributeValue = AttributeValue' {_avValue = Nothing}----- | The specific value of an @attributeName@ .-avValue :: Lens' AttributeValue (Maybe Text)-avValue = lens _avValue (\ s a -> s{_avValue = a})--instance FromJSON AttributeValue where- parseJSON- = withObject "AttributeValue"- (\ x -> AttributeValue' <$> (x .:? "Value"))--instance Hashable AttributeValue where--instance NFData AttributeValue where---- | The constraints that you want all returned products to match.------------ /See:/ 'filter'' smart constructor.-data Filter = Filter'- { _fType :: !FilterType- , _fField :: !Text- , _fValue :: !Text- } deriving (Eq, Read, Show, Data, Typeable, Generic)----- | Creates a value of 'Filter' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'fType' - The type of filter that you want to use. Valid values are: @TERM_MATCH@ . @TERM_MATCH@ returns only products that match both the given filter field and the given value.------ * 'fField' - The product metadata field that you want to filter on. You can filter by just the service code to see all products for a specific service, filter by just the attribute name to see a specific attribute for multiple services, or use both a service code and an attribute name to retrieve only products that match both fields. Valid values include: @ServiceCode@ , and all attribute names For example, you can filter by the @AmazonEC2@ service code and the @volumeType@ attribute name to get the prices for only Amazon EC2 volumes.------ * 'fValue' - The service code or attribute value that you want to filter by. If you are filtering by service code this is the actual service code, such as @AmazonEC2@ . If you are filtering by attribute name, this is the attribute value that you want the returned products to match, such as a @Provisioned IOPS@ volume.-filter'- :: FilterType -- ^ 'fType'- -> Text -- ^ 'fField'- -> Text -- ^ 'fValue'- -> Filter-filter' pType_ pField_ pValue_ =- Filter' {_fType = pType_, _fField = pField_, _fValue = pValue_}----- | The type of filter that you want to use. Valid values are: @TERM_MATCH@ . @TERM_MATCH@ returns only products that match both the given filter field and the given value.-fType :: Lens' Filter FilterType-fType = lens _fType (\ s a -> s{_fType = a})---- | The product metadata field that you want to filter on. You can filter by just the service code to see all products for a specific service, filter by just the attribute name to see a specific attribute for multiple services, or use both a service code and an attribute name to retrieve only products that match both fields. Valid values include: @ServiceCode@ , and all attribute names For example, you can filter by the @AmazonEC2@ service code and the @volumeType@ attribute name to get the prices for only Amazon EC2 volumes.-fField :: Lens' Filter Text-fField = lens _fField (\ s a -> s{_fField = a})---- | The service code or attribute value that you want to filter by. If you are filtering by service code this is the actual service code, such as @AmazonEC2@ . If you are filtering by attribute name, this is the attribute value that you want the returned products to match, such as a @Provisioned IOPS@ volume.-fValue :: Lens' Filter Text-fValue = lens _fValue (\ s a -> s{_fValue = a})--instance Hashable Filter where--instance NFData Filter where--instance ToJSON Filter where- toJSON Filter'{..}- = object- (catMaybes- [Just ("Type" .= _fType), Just ("Field" .= _fField),- Just ("Value" .= _fValue)])---- | The metadata for a service, such as the service code and available attribute names.------------ /See:/ 'pricingService' smart constructor.-data PricingService = PricingService'- { _psAttributeNames :: !(Maybe [Text])- , _psServiceCode :: !(Maybe Text)- } deriving (Eq, Read, Show, Data, Typeable, Generic)----- | Creates a value of 'PricingService' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'psAttributeNames' - The attributes that are available for this service.------ * 'psServiceCode' - The code for the AWS service.-pricingService- :: PricingService-pricingService =- PricingService' {_psAttributeNames = Nothing, _psServiceCode = Nothing}----- | The attributes that are available for this service.-psAttributeNames :: Lens' PricingService [Text]-psAttributeNames = lens _psAttributeNames (\ s a -> s{_psAttributeNames = a}) . _Default . _Coerce---- | The code for the AWS service.-psServiceCode :: Lens' PricingService (Maybe Text)-psServiceCode = lens _psServiceCode (\ s a -> s{_psServiceCode = a})--instance FromJSON PricingService where- parseJSON- = withObject "PricingService"- (\ x ->- PricingService' <$>- (x .:? "AttributeNames" .!= mempty) <*>- (x .:? "ServiceCode"))--instance Hashable PricingService where--instance NFData PricingService where
− gen/Network/AWS/Pricing/Types/Sum.hs
@@ -1,44 +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.Pricing.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.Pricing.Types.Sum where--import Network.AWS.Prelude--data FilterType =- TermMatch- deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)---instance FromText FilterType where- parser = takeLowerText >>= \case- "term_match" -> pure TermMatch- e -> fromTextError $ "Failure parsing FilterType from value: '" <> e- <> "'. Accepted values: term_match"--instance ToText FilterType where- toText = \case- TermMatch -> "TERM_MATCH"--instance Hashable FilterType-instance NFData FilterType-instance ToByteString FilterType-instance ToQuery FilterType-instance ToHeader FilterType--instance ToJSON FilterType where- toJSON = toJSONText
− gen/Network/AWS/Pricing/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.Pricing.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.Pricing.Waiters where--import Network.AWS.Lens-import Network.AWS.Prelude-import Network.AWS.Pricing.Types-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.Pricing+import Test.Amazonka.Pricing.Internal import Test.Tasty-import Test.AWS.Pricing-import Test.AWS.Pricing.Internal main :: IO ()-main = defaultMain $ testGroup "Pricing"- [ testGroup "tests" tests- , testGroup "fixtures" fixtures- ]+main =+ defaultMain $+ testGroup+ "Pricing"+ [ testGroup "tests" tests,+ testGroup "fixtures" fixtures+ ]
− test/Test/AWS/Gen/Pricing.hs
@@ -1,93 +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.Pricing--- 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.Pricing where--import Data.Proxy-import Network.AWS.Pricing-import Test.AWS.Fixture-import Test.AWS.Prelude-import Test.AWS.Pricing.Internal-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"--- [ requestGetAttributeValues $--- getAttributeValues------ , requestDescribeServices $--- describeServices------ , requestGetProducts $--- getProducts------ ]---- , testGroup "response"--- [ responseGetAttributeValues $--- getAttributeValuesResponse------ , responseDescribeServices $--- describeServicesResponse------ , responseGetProducts $--- getProductsResponse------ ]--- ]---- Requests--requestGetAttributeValues :: GetAttributeValues -> TestTree-requestGetAttributeValues = req- "GetAttributeValues"- "fixture/GetAttributeValues.yaml"--requestDescribeServices :: DescribeServices -> TestTree-requestDescribeServices = req- "DescribeServices"- "fixture/DescribeServices.yaml"--requestGetProducts :: GetProducts -> TestTree-requestGetProducts = req- "GetProducts"- "fixture/GetProducts.yaml"---- Responses--responseGetAttributeValues :: GetAttributeValuesResponse -> TestTree-responseGetAttributeValues = res- "GetAttributeValuesResponse"- "fixture/GetAttributeValuesResponse.proto"- pricing- (Proxy :: Proxy GetAttributeValues)--responseDescribeServices :: DescribeServicesResponse -> TestTree-responseDescribeServices = res- "DescribeServicesResponse"- "fixture/DescribeServicesResponse.proto"- pricing- (Proxy :: Proxy DescribeServices)--responseGetProducts :: GetProductsResponse -> TestTree-responseGetProducts = res- "GetProductsResponse"- "fixture/GetProductsResponse.proto"- pricing- (Proxy :: Proxy GetProducts)
− test/Test/AWS/Pricing.hs
@@ -1,20 +0,0 @@--- |--- Module : Test.AWS.Pricing--- 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.Pricing- ( tests- , fixtures- ) where--import Test.Tasty (TestTree)--tests :: [TestTree]-tests = []--fixtures :: [TestTree]-fixtures = []
− test/Test/AWS/Pricing/Internal.hs
@@ -1,9 +0,0 @@--- |--- Module : Test.AWS.Pricing.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.Pricing.Internal where
+ test/Test/Amazonka/Gen/Pricing.hs view
@@ -0,0 +1,98 @@+{-# 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.Pricing+-- 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.Pricing where++import Amazonka.Pricing+import qualified Data.Proxy as Proxy+import Test.Amazonka.Fixture+import Test.Amazonka.Prelude+import Test.Amazonka.Pricing.Internal+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"+-- [ requestDescribeServices $+-- newDescribeServices+--+-- , requestGetAttributeValues $+-- newGetAttributeValues+--+-- , requestGetProducts $+-- newGetProducts+--+-- ]++-- , testGroup "response"+-- [ responseDescribeServices $+-- newDescribeServicesResponse+--+-- , responseGetAttributeValues $+-- newGetAttributeValuesResponse+--+-- , responseGetProducts $+-- newGetProductsResponse+--+-- ]+-- ]++-- Requests++requestDescribeServices :: DescribeServices -> TestTree+requestDescribeServices =+ req+ "DescribeServices"+ "fixture/DescribeServices.yaml"++requestGetAttributeValues :: GetAttributeValues -> TestTree+requestGetAttributeValues =+ req+ "GetAttributeValues"+ "fixture/GetAttributeValues.yaml"++requestGetProducts :: GetProducts -> TestTree+requestGetProducts =+ req+ "GetProducts"+ "fixture/GetProducts.yaml"++-- Responses++responseDescribeServices :: DescribeServicesResponse -> TestTree+responseDescribeServices =+ res+ "DescribeServicesResponse"+ "fixture/DescribeServicesResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy DescribeServices)++responseGetAttributeValues :: GetAttributeValuesResponse -> TestTree+responseGetAttributeValues =+ res+ "GetAttributeValuesResponse"+ "fixture/GetAttributeValuesResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy GetAttributeValues)++responseGetProducts :: GetProductsResponse -> TestTree+responseGetProducts =+ res+ "GetProductsResponse"+ "fixture/GetProductsResponse.proto"+ defaultService+ (Proxy.Proxy :: Proxy.Proxy GetProducts)
+ test/Test/Amazonka/Pricing.hs view
@@ -0,0 +1,20 @@+-- |+-- Module : Test.Amazonka.Pricing+-- 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.Pricing+ ( tests,+ fixtures,+ )+where++import Test.Tasty (TestTree)++tests :: [TestTree]+tests = []++fixtures :: [TestTree]+fixtures = []
+ test/Test/Amazonka/Pricing/Internal.hs view
@@ -0,0 +1,8 @@+-- |+-- Module : Test.Amazonka.Pricing.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.Pricing.Internal where