/* * Copyright 2018-2023 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ package com.amazonaws.services.pricing; import javax.annotation.Generated; import com.amazonaws.*; import com.amazonaws.regions.*; import com.amazonaws.services.pricing.model.*; /** * Interface for accessing AWS Pricing. *

* Note: Do not directly implement this interface, new methods are added to it regularly. Extend from * {@link com.amazonaws.services.pricing.AbstractAWSPricing} instead. *

*

*

* The 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 do the following: *

* *

* Use GetServices without a service code to retrieve the service codes for all Amazon Web 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. *

*

* You can use the following endpoints for the Amazon Web Services Price List API: *

* */ @Generated("com.amazonaws:aws-java-sdk-code-generator") public interface AWSPricing { /** * The region metadata service name for computing region endpoints. You can use this value to retrieve metadata * (such as supported regions) of the service. * * @see RegionUtils#getRegionsForService(String) */ String ENDPOINT_PREFIX = "api.pricing"; /** *

* 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. *

* * @param describeServicesRequest * @return Result of the DescribeServices operation returned by the service. * @throws InvalidParameterException * One or more parameters had an invalid value. * @throws InvalidNextTokenException * The pagination token is invalid. Try again without a pagination token. * @throws NotFoundException * The requested resource can't be found. * @throws InternalErrorException * An error on the server occurred during the processing of your request. Try again later. * @throws ExpiredNextTokenException * The pagination token expired. Try again without a pagination token. * @sample AWSPricing.DescribeServices * @see AWS API * Documentation */ DescribeServicesResult describeServices(DescribeServicesRequest describeServicesRequest); /** *

* 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 Billing and Cost * Management User Guide. *

* * @param getAttributeValuesRequest * @return Result of the GetAttributeValues operation returned by the service. * @throws InvalidParameterException * One or more parameters had an invalid value. * @throws InvalidNextTokenException * The pagination token is invalid. Try again without a pagination token. * @throws NotFoundException * The requested resource can't be found. * @throws InternalErrorException * An error on the server occurred during the processing of your request. Try again later. * @throws ExpiredNextTokenException * The pagination token expired. Try again without a pagination token. * @sample AWSPricing.GetAttributeValues * @see AWS API * Documentation */ GetAttributeValuesResult getAttributeValues(GetAttributeValuesRequest getAttributeValuesRequest); /** *

* This feature is in preview release and is subject to change. Your use of Amazon Web Services Price List * API is subject to the Beta Service Participation terms of the Amazon Web Services Service Terms (Section 1.10). *

*

* This returns the URL that you can retrieve your Price List file from. This URL is based on the * PriceListArn and FileFormat that you retrieve from the * ListPriceLists response. *

* * @param getPriceListFileUrlRequest * @return Result of the GetPriceListFileUrl operation returned by the service. * @throws InvalidParameterException * One or more parameters had an invalid value. * @throws NotFoundException * The requested resource can't be found. * @throws AccessDeniedException * General authentication failure. The request wasn't signed correctly. * @throws InternalErrorException * An error on the server occurred during the processing of your request. Try again later. * @sample AWSPricing.GetPriceListFileUrl * @see AWS * API Documentation */ GetPriceListFileUrlResult getPriceListFileUrl(GetPriceListFileUrlRequest getPriceListFileUrlRequest); /** *

* Returns a list of all products that match the filter criteria. *

* * @param getProductsRequest * @return Result of the GetProducts operation returned by the service. * @throws InvalidParameterException * One or more parameters had an invalid value. * @throws InvalidNextTokenException * The pagination token is invalid. Try again without a pagination token. * @throws NotFoundException * The requested resource can't be found. * @throws InternalErrorException * An error on the server occurred during the processing of your request. Try again later. * @throws ExpiredNextTokenException * The pagination token expired. Try again without a pagination token. * @sample AWSPricing.GetProducts * @see AWS API * Documentation */ GetProductsResult getProducts(GetProductsRequest getProductsRequest); /** *

* This feature is in preview release and is subject to change. Your use of Amazon Web Services Price List * API is subject to the Beta Service Participation terms of the Amazon Web Services Service Terms (Section 1.10). *

*

* This returns a list of Price List references that the requester if authorized to view, given a * ServiceCode, CurrencyCode, and an EffectiveDate. Use without a * RegionCode filter to list Price List references from all available Amazon Web Services Regions. Use * with a RegionCode filter to get the Price List reference that's specific to a specific Amazon Web * Services Region. You can use the PriceListArn from the response to get your preferred Price List * files through the * GetPriceListFileUrl API. *

* * @param listPriceListsRequest * @return Result of the ListPriceLists operation returned by the service. * @throws InvalidParameterException * One or more parameters had an invalid value. * @throws InvalidNextTokenException * The pagination token is invalid. Try again without a pagination token. * @throws NotFoundException * The requested resource can't be found. * @throws AccessDeniedException * General authentication failure. The request wasn't signed correctly. * @throws InternalErrorException * An error on the server occurred during the processing of your request. Try again later. * @throws ExpiredNextTokenException * The pagination token expired. Try again without a pagination token. * @sample AWSPricing.ListPriceLists * @see AWS API * Documentation */ ListPriceListsResult listPriceLists(ListPriceListsRequest listPriceListsRequest); /** * Shuts down this client object, releasing any resources that might be held open. This is an optional method, and * callers are not expected to call it, but can if they want to explicitly release any open resources. Once a client * has been shutdown, it should not be used to make any more requests. */ void shutdown(); /** * Returns additional metadata for a previously executed successful request, typically used for debugging issues * where a service isn't acting as expected. This data isn't considered part of the result data returned by an * operation, so it's available through this separate, diagnostic interface. *

* Response metadata is only cached for a limited period of time, so if you need to access this extra diagnostic * information for an executed request, you should use this method to retrieve it as soon as possible after * executing a request. * * @param request * The originally executed request. * * @return The response metadata for the specified request, or null if none is available. */ ResponseMetadata getCachedResponseMetadata(AmazonWebServiceRequest request); }