///
import * as SDK from "aws-sdk";
export declare type PriceList = Price[];
export declare type Price = {
product: Price.Product;
serviceCode: Price.ServiceCode;
terms: Price.Terms;
version: Price.Version;
publicationDate: Price.PublicationDate;
};
export declare namespace Price {
type ServiceCode = string;
type Version = string;
type Product = {
productFamily: Product.Family;
attributes: Product.Attributes;
sku: Product.SKU;
};
type Terms = {
OnDemand?: Terms.OnDemand;
Reserved?: Terms.Reserved;
};
type PublicationDate = Date;
namespace Product {
type Family = string;
type SKU = string;
type Attributes = {
instanceType: Attributes.InstanceType;
};
namespace Attributes {
type InstanceType = string;
}
}
namespace Terms {
type Base = {
[id in string]?: Term;
};
export type OnDemand = Base;
export type Reserved = Base;
export type Term = {
priceDimensions: Terms.PriceDimensions;
sku: Product.SKU;
effectiveDate: Date;
offerTermCode: Terms.OfferCode;
termAttributes: Terms.Attributes;
};
export type PriceDimensions = {
[id in string]?: PriceDimension;
};
export type PriceDimension = {
unit: string;
pricePerUnit: {
USD: string;
};
};
export type Attributes = any;
export type OfferCode = string;
export {};
}
}
export declare class Pricing {
priceList: PriceList;
constructor(priceList: PriceList);
static instance: Pricing | undefined;
averageOnDemandHourlyPricePerUnit(): number | undefined;
onDemandHourlyPricesPerUnit(): number[];
onDemandTerms(): Price.Terms.Term[];
reservedTerms(): Price.Terms.Term[];
onDemandPriceDimensions(): Price.Terms.PriceDimension[];
reservedPriceDimensions(): Price.Terms.PriceDimension[];
static init(params: SDK.Pricing.Types.GetProductsRequest, timer?: number): Promise;
static Exception: {
new (params: SDK.Pricing.GetProductsRequest, message: string): {
name: string;
message: string;
stack?: string | undefined;
};
captureStackTrace(targetObject: Object, constructorOpt?: Function | undefined): void;
prepareStackTrace?: ((err: Error, stackTraces: NodeJS.CallSite[]) => any) | undefined;
stackTraceLimit: number;
};
static NoDataException: {
new (params: SDK.Pricing.GetProductsRequest): {
name: string;
message: string;
stack?: string | undefined;
};
captureStackTrace(targetObject: Object, constructorOpt?: Function | undefined): void;
prepareStackTrace?: ((err: Error, stackTraces: NodeJS.CallSite[]) => any) | undefined;
stackTraceLimit: number;
};
}