1{
2  "version":"2.0",
3  "metadata":{
4    "apiVersion":"2017-10-15",
5    "endpointPrefix":"api.pricing",
6    "jsonVersion":"1.1",
7    "protocol":"json",
8    "serviceAbbreviation":"AWS Pricing",
9    "serviceFullName":"AWS Price List Service",
10    "serviceId":"Pricing",
11    "signatureVersion":"v4",
12    "signingName":"pricing",
13    "targetPrefix":"AWSPriceListService",
14    "uid":"pricing-2017-10-15"
15  },
16  "operations":{
17    "DescribeServices":{
18      "name":"DescribeServices",
19      "http":{
20        "method":"POST",
21        "requestUri":"/"
22      },
23      "input":{"shape":"DescribeServicesRequest"},
24      "output":{"shape":"DescribeServicesResponse"},
25      "errors":[
26        {"shape":"InvalidParameterException"},
27        {"shape":"InvalidNextTokenException"},
28        {"shape":"NotFoundException"},
29        {"shape":"InternalErrorException"},
30        {"shape":"ThrottlingException"},
31        {"shape":"ExpiredNextTokenException"}
32      ],
33      "documentation":"<p>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 <code>AmazonEC2</code>, 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 <code>volumeType</code>, <code>maxIopsVolume</code>, <code>operation</code>, <code>locationType</code>, and <code>instanceCapacity10xlarge</code>.</p>"
34    },
35    "GetAttributeValues":{
36      "name":"GetAttributeValues",
37      "http":{
38        "method":"POST",
39        "requestUri":"/"
40      },
41      "input":{"shape":"GetAttributeValuesRequest"},
42      "output":{"shape":"GetAttributeValuesResponse"},
43      "errors":[
44        {"shape":"InvalidParameterException"},
45        {"shape":"InvalidNextTokenException"},
46        {"shape":"NotFoundException"},
47        {"shape":"InternalErrorException"},
48        {"shape":"ThrottlingException"},
49        {"shape":"ExpiredNextTokenException"}
50      ],
51      "documentation":"<p>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 <a href=\"https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/reading-an-offer.html#pps-defs\">Offer File Definitions</a> in the <a href=\"https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/billing-what-is.html\">Billing and Cost Management User Guide</a>.</p>"
52    },
53    "GetPriceListFileUrl":{
54      "name":"GetPriceListFileUrl",
55      "http":{
56        "method":"POST",
57        "requestUri":"/"
58      },
59      "input":{"shape":"GetPriceListFileUrlRequest"},
60      "output":{"shape":"GetPriceListFileUrlResponse"},
61      "errors":[
62        {"shape":"InvalidParameterException"},
63        {"shape":"NotFoundException"},
64        {"shape":"AccessDeniedException"},
65        {"shape":"InternalErrorException"},
66        {"shape":"ThrottlingException"}
67      ],
68      "documentation":"<p> <i> <b>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 <a href=\"https://aws.amazon.com/service-terms/\">Amazon Web Services Service Terms</a> (Section 1.10).</b> </i> </p> <p>This returns the URL that you can retrieve your Price List file from. This URL is based on the <code>PriceListArn</code> and <code>FileFormat</code> that you retrieve from the <a href=\"https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_pricing_ListPriceLists.html\">ListPriceLists</a> response. </p>"
69    },
70    "GetProducts":{
71      "name":"GetProducts",
72      "http":{
73        "method":"POST",
74        "requestUri":"/"
75      },
76      "input":{"shape":"GetProductsRequest"},
77      "output":{"shape":"GetProductsResponse"},
78      "errors":[
79        {"shape":"InvalidParameterException"},
80        {"shape":"InvalidNextTokenException"},
81        {"shape":"NotFoundException"},
82        {"shape":"InternalErrorException"},
83        {"shape":"ThrottlingException"},
84        {"shape":"ExpiredNextTokenException"}
85      ],
86      "documentation":"<p>Returns a list of all products that match the filter criteria.</p>"
87    },
88    "ListPriceLists":{
89      "name":"ListPriceLists",
90      "http":{
91        "method":"POST",
92        "requestUri":"/"
93      },
94      "input":{"shape":"ListPriceListsRequest"},
95      "output":{"shape":"ListPriceListsResponse"},
96      "errors":[
97        {"shape":"InvalidParameterException"},
98        {"shape":"InvalidNextTokenException"},
99        {"shape":"NotFoundException"},
100        {"shape":"AccessDeniedException"},
101        {"shape":"InternalErrorException"},
102        {"shape":"ThrottlingException"},
103        {"shape":"ExpiredNextTokenException"}
104      ],
105      "documentation":"<p> <i> <b>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 <a href=\"https://aws.amazon.com/service-terms/\">Amazon Web Services Service Terms</a> (Section 1.10).</b> </i> </p> <p>This returns a list of Price List references that the requester if authorized to view, given a <code>ServiceCode</code>, <code>CurrencyCode</code>, and an <code>EffectiveDate</code>. Use without a <code>RegionCode</code> filter to list Price List references from all available Amazon Web Services Regions. Use with a <code>RegionCode</code> filter to get the Price List reference that's specific to a specific Amazon Web Services Region. You can use the <code>PriceListArn</code> from the response to get your preferred Price List files through the <a href=\"https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_pricing_GetPriceListFileUrl.html\">GetPriceListFileUrl</a> API.</p>"
106    }
107  },
108  "shapes":{
109    "AccessDeniedException":{
110      "type":"structure",
111      "members":{
112        "Message":{"shape":"errorMessage"}
113      },
114      "documentation":"<p>General authentication failure. The request wasn't signed correctly.</p>",
115      "exception":true
116    },
117    "AttributeNameList":{
118      "type":"list",
119      "member":{"shape":"String"}
120    },
121    "AttributeValue":{
122      "type":"structure",
123      "members":{
124        "Value":{
125          "shape":"String",
126          "documentation":"<p>The specific value of an <code>attributeName</code>.</p>"
127        }
128      },
129      "documentation":"<p>The values of a given attribute, such as <code>Throughput Optimized HDD</code> or <code>Provisioned IOPS</code> for the <code>Amazon EC2</code> <code>volumeType</code> attribute.</p>"
130    },
131    "AttributeValueList":{
132      "type":"list",
133      "member":{"shape":"AttributeValue"}
134    },
135    "BoxedInteger":{
136      "type":"integer",
137      "box":true,
138      "max":100,
139      "min":1
140    },
141    "CurrencyCode":{
142      "type":"string",
143      "pattern":"[A-Z]{3}"
144    },
145    "DescribeServicesRequest":{
146      "type":"structure",
147      "members":{
148        "ServiceCode":{
149          "shape":"String",
150          "documentation":"<p>The code for the service whose information you want to retrieve, such as <code>AmazonEC2</code>. You can use the <code>ServiceCode</code> to filter the results in a <code>GetProducts</code> call. To retrieve a list of all services, leave this blank.</p>"
151        },
152        "FormatVersion":{
153          "shape":"String",
154          "documentation":"<p>The format version that you want the response to be in.</p> <p>Valid values are: <code>aws_v1</code> </p>"
155        },
156        "NextToken":{
157          "shape":"String",
158          "documentation":"<p>The pagination token that indicates the next set of results that you want to retrieve.</p>"
159        },
160        "MaxResults":{
161          "shape":"BoxedInteger",
162          "documentation":"<p>The maximum number of results that you want returned in the response.</p>"
163        }
164      }
165    },
166    "DescribeServicesResponse":{
167      "type":"structure",
168      "members":{
169        "Services":{
170          "shape":"ServiceList",
171          "documentation":"<p>The service metadata for the service or services in the response.</p>"
172        },
173        "FormatVersion":{
174          "shape":"String",
175          "documentation":"<p>The format version of the response. For example, <code>aws_v1</code>.</p>"
176        },
177        "NextToken":{
178          "shape":"String",
179          "documentation":"<p>The pagination token for the next set of retrievable results.</p>"
180        }
181      }
182    },
183    "EffectiveDate":{"type":"timestamp"},
184    "ExpiredNextTokenException":{
185      "type":"structure",
186      "members":{
187        "Message":{"shape":"errorMessage"}
188      },
189      "documentation":"<p>The pagination token expired. Try again without a pagination token.</p>",
190      "exception":true
191    },
192    "FileFormat":{
193      "type":"string",
194      "max":255,
195      "min":1
196    },
197    "FileFormats":{
198      "type":"list",
199      "member":{"shape":"FileFormat"}
200    },
201    "Filter":{
202      "type":"structure",
203      "required":[
204        "Type",
205        "Field",
206        "Value"
207      ],
208      "members":{
209        "Type":{
210          "shape":"FilterType",
211          "documentation":"<p>The type of filter that you want to use.</p> <p>Valid values are: <code>TERM_MATCH</code>. <code>TERM_MATCH</code> returns only products that match both the given filter field and the given value.</p>"
212        },
213        "Field":{
214          "shape":"String",
215          "documentation":"<p>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.</p> <p>Valid values include: <code>ServiceCode</code>, and all attribute names</p> <p>For example, you can filter by the <code>AmazonEC2</code> service code and the <code>volumeType</code> attribute name to get the prices for only Amazon EC2 volumes.</p>"
216        },
217        "Value":{
218          "shape":"String",
219          "documentation":"<p>The service code or attribute value that you want to filter by. If you're filtering by service code this is the actual service code, such as <code>AmazonEC2</code>. If you're filtering by attribute name, this is the attribute value that you want the returned products to match, such as a <code>Provisioned IOPS</code> volume.</p>"
220        }
221      },
222      "documentation":"<p>The constraints that you want all returned products to match.</p>"
223    },
224    "FilterType":{
225      "type":"string",
226      "enum":["TERM_MATCH"]
227    },
228    "Filters":{
229      "type":"list",
230      "member":{"shape":"Filter"}
231    },
232    "GetAttributeValuesRequest":{
233      "type":"structure",
234      "required":[
235        "ServiceCode",
236        "AttributeName"
237      ],
238      "members":{
239        "ServiceCode":{
240          "shape":"String",
241          "documentation":"<p>The service code for the service whose attributes you want to retrieve. For example, if you want the retrieve an EC2 attribute, use <code>AmazonEC2</code>.</p>"
242        },
243        "AttributeName":{
244          "shape":"String",
245          "documentation":"<p>The name of the attribute that you want to retrieve the values for, such as <code>volumeType</code>.</p>"
246        },
247        "NextToken":{
248          "shape":"String",
249          "documentation":"<p>The pagination token that indicates the next set of results that you want to retrieve.</p>"
250        },
251        "MaxResults":{
252          "shape":"BoxedInteger",
253          "documentation":"<p>The maximum number of results to return in response.</p>"
254        }
255      }
256    },
257    "GetAttributeValuesResponse":{
258      "type":"structure",
259      "members":{
260        "AttributeValues":{
261          "shape":"AttributeValueList",
262          "documentation":"<p>The list of values for an attribute. For example, <code>Throughput Optimized HDD</code> and <code>Provisioned IOPS</code> are two available values for the <code>AmazonEC2</code> <code>volumeType</code>.</p>"
263        },
264        "NextToken":{
265          "shape":"String",
266          "documentation":"<p>The pagination token that indicates the next set of results to retrieve.</p>"
267        }
268      }
269    },
270    "GetPriceListFileUrlRequest":{
271      "type":"structure",
272      "required":[
273        "PriceListArn",
274        "FileFormat"
275      ],
276      "members":{
277        "PriceListArn":{
278          "shape":"PriceListArn",
279          "documentation":"<p>The unique identifier that maps to where your Price List files are located. <code>PriceListArn</code> can be obtained from the <a href=\"https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_pricing_ListPriceLists.html\">ListPriceLists</a> response. </p>"
280        },
281        "FileFormat":{
282          "shape":"FileFormat",
283          "documentation":"<p>The format that you want to retrieve your Price List files in. The <code>FileFormat</code> can be obtained from the <a href=\"https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_pricing_ListPriceLists.html\">ListPriceLists</a> response. </p>"
284        }
285      }
286    },
287    "GetPriceListFileUrlResponse":{
288      "type":"structure",
289      "members":{
290        "Url":{
291          "shape":"String",
292          "documentation":"<p>The URL to download your Price List file from. </p>"
293        }
294      }
295    },
296    "GetProductsRequest":{
297      "type":"structure",
298      "required":["ServiceCode"],
299      "members":{
300        "ServiceCode":{
301          "shape":"String",
302          "documentation":"<p>The code for the service whose products you want to retrieve. </p>"
303        },
304        "Filters":{
305          "shape":"Filters",
306          "documentation":"<p>The list of filters that limit the returned products. only products that match all filters are returned.</p>"
307        },
308        "FormatVersion":{
309          "shape":"String",
310          "documentation":"<p>The format version that you want the response to be in.</p> <p>Valid values are: <code>aws_v1</code> </p>"
311        },
312        "NextToken":{
313          "shape":"String",
314          "documentation":"<p>The pagination token that indicates the next set of results that you want to retrieve.</p>"
315        },
316        "MaxResults":{
317          "shape":"BoxedInteger",
318          "documentation":"<p>The maximum number of results to return in the response.</p>"
319        }
320      }
321    },
322    "GetProductsResponse":{
323      "type":"structure",
324      "members":{
325        "FormatVersion":{
326          "shape":"String",
327          "documentation":"<p>The format version of the response. For example, aws_v1.</p>"
328        },
329        "PriceList":{
330          "shape":"PriceListJsonItems",
331          "documentation":"<p>The list of products that match your filters. The list contains both the product metadata and the price information.</p>"
332        },
333        "NextToken":{
334          "shape":"String",
335          "documentation":"<p>The pagination token that indicates the next set of results to retrieve.</p>"
336        }
337      }
338    },
339    "InternalErrorException":{
340      "type":"structure",
341      "members":{
342        "Message":{"shape":"errorMessage"}
343      },
344      "documentation":"<p>An error on the server occurred during the processing of your request. Try again later.</p>",
345      "exception":true,
346      "fault":true,
347      "retryable":{"throttling":false}
348    },
349    "InvalidNextTokenException":{
350      "type":"structure",
351      "members":{
352        "Message":{"shape":"errorMessage"}
353      },
354      "documentation":"<p>The pagination token is invalid. Try again without a pagination token.</p>",
355      "exception":true
356    },
357    "InvalidParameterException":{
358      "type":"structure",
359      "members":{
360        "Message":{"shape":"errorMessage"}
361      },
362      "documentation":"<p>One or more parameters had an invalid value.</p>",
363      "exception":true
364    },
365    "ListPriceListsRequest":{
366      "type":"structure",
367      "required":[
368        "ServiceCode",
369        "EffectiveDate",
370        "CurrencyCode"
371      ],
372      "members":{
373        "ServiceCode":{
374          "shape":"ServiceCode",
375          "documentation":"<p>The service code or the Savings Plan service code for the attributes that you want to retrieve. For example, to get the list of applicable Amazon EC2 price lists, use <code>AmazonEC2</code>. For a full list of service codes containing On-Demand and Reserved Instance (RI) pricing, use the <a href=\"https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_pricing_DescribeServices.html#awscostmanagement-pricing_DescribeServices-request-FormatVersion\">DescribeServices</a> API.</p> <p>To retrieve the Reserved Instance and Compute Savings Plan price lists, use <code>ComputeSavingsPlans</code>. </p> <p>To retrieve Machine Learning Savings Plans price lists, use <code>MachineLearningSavingsPlans</code>. </p>"
376        },
377        "EffectiveDate":{
378          "shape":"EffectiveDate",
379          "documentation":"<p>The date that the Price List file prices are effective from. </p>"
380        },
381        "RegionCode":{
382          "shape":"RegionCode",
383          "documentation":"<p>This is used to filter the Price List by Amazon Web Services Region. For example, to get the price list only for the <code>US East (N. Virginia)</code> Region, use <code>us-east-1</code>. If nothing is specified, you retrieve price lists for all applicable Regions. The available <code>RegionCode</code> list can be retrieved from <a href=\"https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_pricing_GetAttributeValues.html\">GetAttributeValues</a> API.</p>"
384        },
385        "CurrencyCode":{
386          "shape":"CurrencyCode",
387          "documentation":"<p>The three alphabetical character ISO-4217 currency code that the Price List files are denominated in. </p>"
388        },
389        "NextToken":{
390          "shape":"String",
391          "documentation":"<p>The pagination token that indicates the next set of results that you want to retrieve. </p>"
392        },
393        "MaxResults":{
394          "shape":"MaxResults",
395          "documentation":"<p>The maximum number of results to return in the response. </p>"
396        }
397      }
398    },
399    "ListPriceListsResponse":{
400      "type":"structure",
401      "members":{
402        "PriceLists":{
403          "shape":"PriceLists",
404          "documentation":"<p>The type of price list references that match your request. </p>"
405        },
406        "NextToken":{
407          "shape":"String",
408          "documentation":"<p>The pagination token that indicates the next set of results to retrieve. </p>"
409        }
410      }
411    },
412    "MaxResults":{
413      "type":"integer",
414      "box":true,
415      "max":100,
416      "min":1
417    },
418    "NotFoundException":{
419      "type":"structure",
420      "members":{
421        "Message":{"shape":"errorMessage"}
422      },
423      "documentation":"<p>The requested resource can't be found.</p>",
424      "exception":true
425    },
426    "PriceList":{
427      "type":"structure",
428      "members":{
429        "PriceListArn":{
430          "shape":"PriceListArn",
431          "documentation":"<p>The unique identifier that maps to where your Price List files are located. <code>PriceListArn</code> can be obtained from the <a href=\"https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_pricing_ListPriceLists.html\"> <code>ListPriceList</code> </a> response. </p>"
432        },
433        "RegionCode":{
434          "shape":"RegionCode",
435          "documentation":"<p>This is used to filter the Price List by Amazon Web Services Region. For example, to get the price list only for the <code>US East (N. Virginia)</code> Region, use <code>us-east-1</code>. If nothing is specified, you retrieve price lists for all applicable Regions. The available <code>RegionCode</code> list can be retrieved from <a href=\"https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_pricing_GetAttributeValues.html\"> <code>GetAttributeValues</code> </a> API. </p>"
436        },
437        "CurrencyCode":{
438          "shape":"CurrencyCode",
439          "documentation":"<p>The three alphabetical character ISO-4217 currency code the Price List files are denominated in. </p>"
440        },
441        "FileFormats":{
442          "shape":"FileFormats",
443          "documentation":"<p>The format you want to retrieve your Price List files. The <code>FileFormat</code> can be obtained from the <a href=\"https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_pricing_ListPriceLists.html\"> <code>ListPriceList</code> </a> response. </p>"
444        }
445      },
446      "documentation":"<p> <i> <b>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 <a href=\"https://aws.amazon.com/service-terms/\">Amazon Web Services Service Terms</a> (Section 1.10).</b> </i> </p> <p>This is the type of price list references that match your request. </p>"
447    },
448    "PriceListArn":{
449      "type":"string",
450      "max":2048,
451      "min":18,
452      "pattern":"arn:[A-Za-z0-9][-.A-Za-z0-9]{0,62}:pricing:::price-list/[A-Za-z0-9+_/.-]{1,1023}"
453    },
454    "PriceListJsonItems":{
455      "type":"list",
456      "member":{
457        "shape":"SynthesizedJsonPriceListJsonItem",
458        "jsonvalue":true
459      }
460    },
461    "PriceLists":{
462      "type":"list",
463      "member":{"shape":"PriceList"}
464    },
465    "RegionCode":{
466      "type":"string",
467      "max":255,
468      "min":1
469    },
470    "Service":{
471      "type":"structure",
472      "required":["ServiceCode"],
473      "members":{
474        "ServiceCode":{
475          "shape":"String",
476          "documentation":"<p>The code for the Amazon Web Services service.</p>"
477        },
478        "AttributeNames":{
479          "shape":"AttributeNameList",
480          "documentation":"<p>The attributes that are available for this service.</p>"
481        }
482      },
483      "documentation":"<p>The metadata for a service, such as the service code and available attribute names.</p>"
484    },
485    "ServiceCode":{
486      "type":"string",
487      "max":32,
488      "min":1
489    },
490    "ServiceList":{
491      "type":"list",
492      "member":{"shape":"Service"}
493    },
494    "String":{"type":"string"},
495    "SynthesizedJsonPriceListJsonItem":{"type":"string"},
496    "ThrottlingException":{
497      "type":"structure",
498      "members":{
499        "Message":{"shape":"errorMessage"}
500      },
501      "documentation":"<p>You've made too many requests exceeding service quotas. </p>",
502      "exception":true,
503      "retryable":{"throttling":true}
504    },
505    "errorMessage":{"type":"string"}
506  },
507  "documentation":"<p>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 <code>Location</code>, <code>Storage Class</code>, and <code>Operating System</code>, and provides prices at the SKU level. You can use the Amazon Web Services Price List to do the following:</p> <ul> <li> <p>Build cost control and scenario planning tools</p> </li> <li> <p>Reconcile billing data</p> </li> <li> <p>Forecast future spend for budgeting purposes</p> </li> <li> <p>Provide cost benefit analysis that compare your internal workloads with Amazon Web Services</p> </li> </ul> <p>Use <code>GetServices</code> without a service code to retrieve the service codes for all Amazon Web Services, then <code>GetServices</code> with a service code to retrieve the attribute names for that service. After you have the service code and attribute names, you can use <code>GetAttributeValues</code> to see what values are available for an attribute. With the service code and an attribute name and value, you can use <code>GetProducts</code> to find specific products that you're interested in, such as an <code>AmazonEC2</code> instance, with a <code>Provisioned IOPS</code> <code>volumeType</code>.</p> <p>For more information, see <a href=\"https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/price-changes.html\">Using the Amazon Web Services Price List API</a> in the <i>Billing User Guide</i>.</p>"
508}
509