/* * Copyright 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. */ /* * Do not modify this file. This file is generated from the pricing-2017-10-15.normal.json service model. */ using System; using System.Runtime.ExceptionServices; using System.Threading; using System.Threading.Tasks; using System.Collections.Generic; using System.Net; using Amazon.Pricing.Model; using Amazon.Pricing.Model.Internal.MarshallTransformations; using Amazon.Pricing.Internal; using Amazon.Runtime; using Amazon.Runtime.Internal; using Amazon.Runtime.Internal.Auth; using Amazon.Runtime.Internal.Transform; namespace Amazon.Pricing { /// /// Implementation for accessing Pricing /// /// 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: /// /// /// public partial class AmazonPricingClient : AmazonServiceClient, IAmazonPricing { private static IServiceMetadata serviceMetadata = new AmazonPricingMetadata(); #region Constructors /// /// Constructs AmazonPricingClient with the credentials loaded from the application's /// default configuration, and if unsuccessful from the Instance Profile service on an EC2 instance. /// /// Example App.config with credentials set. /// /// <?xml version="1.0" encoding="utf-8" ?> /// <configuration> /// <appSettings> /// <add key="AWSProfileName" value="AWS Default"/> /// </appSettings> /// </configuration> /// /// /// public AmazonPricingClient() : base(FallbackCredentialsFactory.GetCredentials(), new AmazonPricingConfig()) { } /// /// Constructs AmazonPricingClient with the credentials loaded from the application's /// default configuration, and if unsuccessful from the Instance Profile service on an EC2 instance. /// /// Example App.config with credentials set. /// /// <?xml version="1.0" encoding="utf-8" ?> /// <configuration> /// <appSettings> /// <add key="AWSProfileName" value="AWS Default"/> /// </appSettings> /// </configuration> /// /// /// /// The region to connect. public AmazonPricingClient(RegionEndpoint region) : base(FallbackCredentialsFactory.GetCredentials(), new AmazonPricingConfig{RegionEndpoint = region}) { } /// /// Constructs AmazonPricingClient with the credentials loaded from the application's /// default configuration, and if unsuccessful from the Instance Profile service on an EC2 instance. /// /// Example App.config with credentials set. /// /// <?xml version="1.0" encoding="utf-8" ?> /// <configuration> /// <appSettings> /// <add key="AWSProfileName" value="AWS Default"/> /// </appSettings> /// </configuration> /// /// /// /// The AmazonPricingClient Configuration Object public AmazonPricingClient(AmazonPricingConfig config) : base(FallbackCredentialsFactory.GetCredentials(config), config){} /// /// Constructs AmazonPricingClient with AWS Credentials /// /// AWS Credentials public AmazonPricingClient(AWSCredentials credentials) : this(credentials, new AmazonPricingConfig()) { } /// /// Constructs AmazonPricingClient with AWS Credentials /// /// AWS Credentials /// The region to connect. public AmazonPricingClient(AWSCredentials credentials, RegionEndpoint region) : this(credentials, new AmazonPricingConfig{RegionEndpoint = region}) { } /// /// Constructs AmazonPricingClient with AWS Credentials and an /// AmazonPricingClient Configuration object. /// /// AWS Credentials /// The AmazonPricingClient Configuration Object public AmazonPricingClient(AWSCredentials credentials, AmazonPricingConfig clientConfig) : base(credentials, clientConfig) { } /// /// Constructs AmazonPricingClient with AWS Access Key ID and AWS Secret Key /// /// AWS Access Key ID /// AWS Secret Access Key public AmazonPricingClient(string awsAccessKeyId, string awsSecretAccessKey) : this(awsAccessKeyId, awsSecretAccessKey, new AmazonPricingConfig()) { } /// /// Constructs AmazonPricingClient with AWS Access Key ID and AWS Secret Key /// /// AWS Access Key ID /// AWS Secret Access Key /// The region to connect. public AmazonPricingClient(string awsAccessKeyId, string awsSecretAccessKey, RegionEndpoint region) : this(awsAccessKeyId, awsSecretAccessKey, new AmazonPricingConfig() {RegionEndpoint=region}) { } /// /// Constructs AmazonPricingClient with AWS Access Key ID, AWS Secret Key and an /// AmazonPricingClient Configuration object. /// /// AWS Access Key ID /// AWS Secret Access Key /// The AmazonPricingClient Configuration Object public AmazonPricingClient(string awsAccessKeyId, string awsSecretAccessKey, AmazonPricingConfig clientConfig) : base(awsAccessKeyId, awsSecretAccessKey, clientConfig) { } /// /// Constructs AmazonPricingClient with AWS Access Key ID and AWS Secret Key /// /// AWS Access Key ID /// AWS Secret Access Key /// AWS Session Token public AmazonPricingClient(string awsAccessKeyId, string awsSecretAccessKey, string awsSessionToken) : this(awsAccessKeyId, awsSecretAccessKey, awsSessionToken, new AmazonPricingConfig()) { } /// /// Constructs AmazonPricingClient with AWS Access Key ID and AWS Secret Key /// /// AWS Access Key ID /// AWS Secret Access Key /// AWS Session Token /// The region to connect. public AmazonPricingClient(string awsAccessKeyId, string awsSecretAccessKey, string awsSessionToken, RegionEndpoint region) : this(awsAccessKeyId, awsSecretAccessKey, awsSessionToken, new AmazonPricingConfig{RegionEndpoint = region}) { } /// /// Constructs AmazonPricingClient with AWS Access Key ID, AWS Secret Key and an /// AmazonPricingClient Configuration object. /// /// AWS Access Key ID /// AWS Secret Access Key /// AWS Session Token /// The AmazonPricingClient Configuration Object public AmazonPricingClient(string awsAccessKeyId, string awsSecretAccessKey, string awsSessionToken, AmazonPricingConfig clientConfig) : base(awsAccessKeyId, awsSecretAccessKey, awsSessionToken, clientConfig) { } #endregion #if AWS_ASYNC_ENUMERABLES_API private IPricingPaginatorFactory _paginators; /// /// Paginators for the service /// public IPricingPaginatorFactory Paginators { get { if (this._paginators == null) { this._paginators = new PricingPaginatorFactory(this); } return this._paginators; } } #endif #region Overrides /// /// Creates the signer for the service. /// protected override AbstractAWSSigner CreateSigner() { return new AWS4Signer(); } /// /// Customizes the runtime pipeline. /// /// Runtime pipeline for the current client. protected override void CustomizeRuntimePipeline(RuntimePipeline pipeline) { pipeline.RemoveHandler(); pipeline.AddHandlerAfter(new AmazonPricingEndpointResolver()); } /// /// Capture metadata for the service. /// protected override IServiceMetadata ServiceMetadata { get { return serviceMetadata; } } #endregion #region Dispose /// /// Disposes the service client. /// protected override void Dispose(bool disposing) { base.Dispose(disposing); } #endregion #region DescribeServices internal virtual DescribeServicesResponse DescribeServices(DescribeServicesRequest request) { var options = new InvokeOptions(); options.RequestMarshaller = DescribeServicesRequestMarshaller.Instance; options.ResponseUnmarshaller = DescribeServicesResponseUnmarshaller.Instance; return Invoke(request, options); } /// /// 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. /// /// Container for the necessary parameters to execute the DescribeServices service method. /// /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// /// /// The response from the DescribeServices service method, as returned by Pricing. /// /// The pagination token expired. Try again without a pagination token. /// /// /// An error on the server occurred during the processing of your request. Try again later. /// /// /// The pagination token is invalid. Try again without a pagination token. /// /// /// One or more parameters had an invalid value. /// /// /// The requested resource can't be found. /// /// REST API Reference for DescribeServices Operation public virtual Task DescribeServicesAsync(DescribeServicesRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken)) { var options = new InvokeOptions(); options.RequestMarshaller = DescribeServicesRequestMarshaller.Instance; options.ResponseUnmarshaller = DescribeServicesResponseUnmarshaller.Instance; return InvokeAsync(request, options, cancellationToken); } #endregion #region GetAttributeValues internal virtual GetAttributeValuesResponse GetAttributeValues(GetAttributeValuesRequest request) { var options = new InvokeOptions(); options.RequestMarshaller = GetAttributeValuesRequestMarshaller.Instance; options.ResponseUnmarshaller = GetAttributeValuesResponseUnmarshaller.Instance; return Invoke(request, options); } /// /// 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. /// /// Container for the necessary parameters to execute the GetAttributeValues service method. /// /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// /// /// The response from the GetAttributeValues service method, as returned by Pricing. /// /// The pagination token expired. Try again without a pagination token. /// /// /// An error on the server occurred during the processing of your request. Try again later. /// /// /// The pagination token is invalid. Try again without a pagination token. /// /// /// One or more parameters had an invalid value. /// /// /// The requested resource can't be found. /// /// REST API Reference for GetAttributeValues Operation public virtual Task GetAttributeValuesAsync(GetAttributeValuesRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken)) { var options = new InvokeOptions(); options.RequestMarshaller = GetAttributeValuesRequestMarshaller.Instance; options.ResponseUnmarshaller = GetAttributeValuesResponseUnmarshaller.Instance; return InvokeAsync(request, options, cancellationToken); } #endregion #region GetPriceListFileUrl internal virtual GetPriceListFileUrlResponse GetPriceListFileUrl(GetPriceListFileUrlRequest request) { var options = new InvokeOptions(); options.RequestMarshaller = GetPriceListFileUrlRequestMarshaller.Instance; options.ResponseUnmarshaller = GetPriceListFileUrlResponseUnmarshaller.Instance; return Invoke(request, options); } /// /// 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. /// /// /// Container for the necessary parameters to execute the GetPriceListFileUrl service method. /// /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// /// /// The response from the GetPriceListFileUrl service method, as returned by Pricing. /// /// General authentication failure. The request wasn't signed correctly. /// /// /// An error on the server occurred during the processing of your request. Try again later. /// /// /// One or more parameters had an invalid value. /// /// /// The requested resource can't be found. /// /// REST API Reference for GetPriceListFileUrl Operation public virtual Task GetPriceListFileUrlAsync(GetPriceListFileUrlRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken)) { var options = new InvokeOptions(); options.RequestMarshaller = GetPriceListFileUrlRequestMarshaller.Instance; options.ResponseUnmarshaller = GetPriceListFileUrlResponseUnmarshaller.Instance; return InvokeAsync(request, options, cancellationToken); } #endregion #region GetProducts internal virtual GetProductsResponse GetProducts(GetProductsRequest request) { var options = new InvokeOptions(); options.RequestMarshaller = GetProductsRequestMarshaller.Instance; options.ResponseUnmarshaller = GetProductsResponseUnmarshaller.Instance; return Invoke(request, options); } /// /// Returns a list of all products that match the filter criteria. /// /// Container for the necessary parameters to execute the GetProducts service method. /// /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// /// /// The response from the GetProducts service method, as returned by Pricing. /// /// The pagination token expired. Try again without a pagination token. /// /// /// An error on the server occurred during the processing of your request. Try again later. /// /// /// The pagination token is invalid. Try again without a pagination token. /// /// /// One or more parameters had an invalid value. /// /// /// The requested resource can't be found. /// /// REST API Reference for GetProducts Operation public virtual Task GetProductsAsync(GetProductsRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken)) { var options = new InvokeOptions(); options.RequestMarshaller = GetProductsRequestMarshaller.Instance; options.ResponseUnmarshaller = GetProductsResponseUnmarshaller.Instance; return InvokeAsync(request, options, cancellationToken); } #endregion #region ListPriceLists internal virtual ListPriceListsResponse ListPriceLists(ListPriceListsRequest request) { var options = new InvokeOptions(); options.RequestMarshaller = ListPriceListsRequestMarshaller.Instance; options.ResponseUnmarshaller = ListPriceListsResponseUnmarshaller.Instance; return Invoke(request, options); } /// /// 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. /// /// /// Container for the necessary parameters to execute the ListPriceLists service method. /// /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// /// /// The response from the ListPriceLists service method, as returned by Pricing. /// /// General authentication failure. The request wasn't signed correctly. /// /// /// The pagination token expired. Try again without a pagination token. /// /// /// An error on the server occurred during the processing of your request. Try again later. /// /// /// The pagination token is invalid. Try again without a pagination token. /// /// /// One or more parameters had an invalid value. /// /// /// The requested resource can't be found. /// /// REST API Reference for ListPriceLists Operation public virtual Task ListPriceListsAsync(ListPriceListsRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken)) { var options = new InvokeOptions(); options.RequestMarshaller = ListPriceListsRequestMarshaller.Instance; options.ResponseUnmarshaller = ListPriceListsResponseUnmarshaller.Instance; return InvokeAsync(request, options, cancellationToken); } #endregion } }