Pricing
Service object for interacting with AWS Pricing service.
public struct Pricing: AWSService
Amazon Web Services Price List Service API (Amazon Web Services Price List Service) is a centralized and convenient way to
programmatically query Amazon Web Services for services, products, and pricing information. The Amazon Web Services 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 Amazon Web Services 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 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
Inheritance
AWSService
Initializers
init(client:region:partition:endpoint:timeout:byteBufferAllocator:options:)
Initialize the Pricing client
public init(
client: AWSClient,
region: SotoCore.Region? = nil,
partition: AWSPartition = .aws,
endpoint: String? = nil,
timeout: TimeAmount? = nil,
byteBufferAllocator: ByteBufferAllocator = ByteBufferAllocator(),
options: AWSServiceConfig.Options = []
)
Parameters
- client: AWSClient used to process requests
- region: Region of server you want to communicate with. This will override the partition parameter.
- partition: AWS partition where service resides, standard (.aws), china (.awscn), government (.awsusgov).
- endpoint: Custom endpoint URL to use instead of standard AWS servers
- timeout: Timeout value for HTTP requests
init(from:patch:)
Initializer required by AWSService.with(middlewares:timeout:byteBufferAllocator:options)
. You are not able to use this initializer directly as there are no public initializers for AWSServiceConfig.Patch
. Please use AWSService.with(middlewares:timeout:byteBufferAllocator:options)
instead.
public init(from: Pricing, patch: AWSServiceConfig.Patch)
Properties
client
Client used for communication with AWS
public let client: AWSClient
config
Service configuration
public let config: AWSServiceConfig
Methods
describeServices(_:logger:on:)
public func describeServices(_ input: DescribeServicesRequest, logger: Logger = AWSClient.loggingDisabled, on eventLoop: EventLoop? = nil) -> EventLoopFuture<DescribeServicesResponse>
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
.
getAttributeValues(_:logger:on:)
public func getAttributeValues(_ input: GetAttributeValuesRequest, logger: Logger = AWSClient.loggingDisabled, on eventLoop: EventLoop? = nil) -> EventLoopFuture<GetAttributeValuesResponse>
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 Offer File Definitions in the Amazon Web Services Billing and Cost Management User Guide.
getProducts(_:logger:on:)
public func getProducts(_ input: GetProductsRequest, logger: Logger = AWSClient.loggingDisabled, on eventLoop: EventLoop? = nil) -> EventLoopFuture<GetProductsResponse>
Returns a list of all products that match the filter criteria.
describeServicesPaginator(_:logger:on:)
compiler(>=5.5.2) && canImport(_Concurrency)
public func describeServicesPaginator( _ input: DescribeServicesRequest, logger: Logger = AWSClient.loggingDisabled, on eventLoop: EventLoop? = nil ) -> AWSClient.PaginatorSequence<DescribeServicesRequest, DescribeServicesResponse>
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
Return PaginatorSequence for operation. - Parameters: - input: Input for request - logger: Logger used flot logging - eventLoop: EventLoop to run this process onAmazonEC2
, 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 arevolumeType
,maxIopsVolume
,operation
,locationType
, andinstanceCapacity10xlarge
.
getAttributeValuesPaginator(_:logger:on:)
compiler(>=5.5.2) && canImport(_Concurrency)
public func getAttributeValuesPaginator( _ input: GetAttributeValuesRequest, logger: Logger = AWSClient.loggingDisabled, on eventLoop: EventLoop? = nil ) -> AWSClient.PaginatorSequence<GetAttributeValuesRequest, GetAttributeValuesResponse>
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 Offer File Definitions in the Amazon Web Services Billing and Cost Management User Guide.
Return PaginatorSequence for operation. - Parameters: - input: Input for request - logger: Logger used flot logging - eventLoop: EventLoop to run this process on
getProductsPaginator(_:logger:on:)
compiler(>=5.5.2) && canImport(_Concurrency)
public func getProductsPaginator( _ input: GetProductsRequest, logger: Logger = AWSClient.loggingDisabled, on eventLoop: EventLoop? = nil ) -> AWSClient.PaginatorSequence<GetProductsRequest, GetProductsResponse>
Returns a list of all products that match the filter criteria.
Return PaginatorSequence for operation. - Parameters: - input: Input for request - logger: Logger used flot logging - eventLoop: EventLoop to run this process on
describeServicesPaginator(_:_:logger:on:onPage:)
Provide paginated results to closure onPage
for it to combine them into one result. This works in a similar manner to Array.reduce<Result>(_:_:) -> Result
.
public func describeServicesPaginator<Result>(
_ input: DescribeServicesRequest,
_ initialValue: Result,
logger: Logger = AWSClient.loggingDisabled,
on eventLoop: EventLoop? = nil,
onPage: @escaping (Result, DescribeServicesResponse, EventLoop) -> EventLoopFuture<(Bool, Result)>
) -> EventLoopFuture<Result>
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
.
Parameters:
- input: Input for request
- initialValue: The value to use as the initial accumulating value.
initialValue
is passed toonPage
the first time it is called.
- logger: Logger used flot logging
- eventLoop: EventLoop to run this process on
- onPage: closure called with each paginated response. It combines an accumulating result with the contents of response. This combined result is then returned along with a boolean indicating if the paginate operation should continue.
describeServicesPaginator(_:logger:on:onPage:)
Provide paginated results to closure onPage
.
public func describeServicesPaginator(
_ input: DescribeServicesRequest,
logger: Logger = AWSClient.loggingDisabled,
on eventLoop: EventLoop? = nil,
onPage: @escaping (DescribeServicesResponse, EventLoop) -> EventLoopFuture<Bool>
) -> EventLoopFuture<Void>
Parameters
- input: Input for request
- logger: Logger used flot logging
- eventLoop: EventLoop to run this process on
- onPage: closure called with each block of entries. Returns boolean indicating whether we should continue.
getAttributeValuesPaginator(_:_:logger:on:onPage:)
Provide paginated results to closure onPage
for it to combine them into one result. This works in a similar manner to Array.reduce<Result>(_:_:) -> Result
.
public func getAttributeValuesPaginator<Result>(
_ input: GetAttributeValuesRequest,
_ initialValue: Result,
logger: Logger = AWSClient.loggingDisabled,
on eventLoop: EventLoop? = nil,
onPage: @escaping (Result, GetAttributeValuesResponse, EventLoop) -> EventLoopFuture<(Bool, Result)>
) -> EventLoopFuture<Result>
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 Offer File Definitions in the Amazon Web Services Billing and Cost Management User Guide.
Parameters:
- input: Input for request
- initialValue: The value to use as the initial accumulating value.
initialValue
is passed toonPage
the first time it is called.
- logger: Logger used flot logging
- eventLoop: EventLoop to run this process on
- onPage: closure called with each paginated response. It combines an accumulating result with the contents of response. This combined result is then returned along with a boolean indicating if the paginate operation should continue.
getAttributeValuesPaginator(_:logger:on:onPage:)
Provide paginated results to closure onPage
.
public func getAttributeValuesPaginator(
_ input: GetAttributeValuesRequest,
logger: Logger = AWSClient.loggingDisabled,
on eventLoop: EventLoop? = nil,
onPage: @escaping (GetAttributeValuesResponse, EventLoop) -> EventLoopFuture<Bool>
) -> EventLoopFuture<Void>
Parameters
- input: Input for request
- logger: Logger used flot logging
- eventLoop: EventLoop to run this process on
- onPage: closure called with each block of entries. Returns boolean indicating whether we should continue.
getProductsPaginator(_:_:logger:on:onPage:)
Provide paginated results to closure onPage
for it to combine them into one result. This works in a similar manner to Array.reduce<Result>(_:_:) -> Result
.
public func getProductsPaginator<Result>(
_ input: GetProductsRequest,
_ initialValue: Result,
logger: Logger = AWSClient.loggingDisabled,
on eventLoop: EventLoop? = nil,
onPage: @escaping (Result, GetProductsResponse, EventLoop) -> EventLoopFuture<(Bool, Result)>
) -> EventLoopFuture<Result>
Returns a list of all products that match the filter criteria.
Parameters:
- input: Input for request
- initialValue: The value to use as the initial accumulating value.
initialValue
is passed toonPage
the first time it is called.
- logger: Logger used flot logging
- eventLoop: EventLoop to run this process on
- onPage: closure called with each paginated response. It combines an accumulating result with the contents of response. This combined result is then returned along with a boolean indicating if the paginate operation should continue.
getProductsPaginator(_:logger:on:onPage:)
Provide paginated results to closure onPage
.
public func getProductsPaginator(
_ input: GetProductsRequest,
logger: Logger = AWSClient.loggingDisabled,
on eventLoop: EventLoop? = nil,
onPage: @escaping (GetProductsResponse, EventLoop) -> EventLoopFuture<Bool>
) -> EventLoopFuture<Void>
Parameters
- input: Input for request
- logger: Logger used flot logging
- eventLoop: EventLoop to run this process on
- onPage: closure called with each block of entries. Returns boolean indicating whether we should continue.