1{
2    "smithy": "1.0",
3    "metadata": {
4        "suppressions": [
5            {
6                "id": "HttpMethodSemantics",
7                "namespace": "*"
8            },
9            {
10                "id": "HttpResponseCodeSemantics",
11                "namespace": "*"
12            },
13            {
14                "id": "PaginatedTrait",
15                "namespace": "*"
16            },
17            {
18                "id": "HttpHeaderTrait",
19                "namespace": "*"
20            },
21            {
22                "id": "HttpUriConflict",
23                "namespace": "*"
24            },
25            {
26                "id": "Service",
27                "namespace": "*"
28            }
29        ]
30    },
31    "shapes": {
32        "com.amazonaws.savingsplans#AWSSavingsPlan": {
33            "type": "service",
34            "version": "2019-06-28",
35            "operations": [
36                {
37                    "target": "com.amazonaws.savingsplans#CreateSavingsPlan"
38                },
39                {
40                    "target": "com.amazonaws.savingsplans#DeleteQueuedSavingsPlan"
41                },
42                {
43                    "target": "com.amazonaws.savingsplans#DescribeSavingsPlanRates"
44                },
45                {
46                    "target": "com.amazonaws.savingsplans#DescribeSavingsPlans"
47                },
48                {
49                    "target": "com.amazonaws.savingsplans#DescribeSavingsPlansOfferingRates"
50                },
51                {
52                    "target": "com.amazonaws.savingsplans#DescribeSavingsPlansOfferings"
53                },
54                {
55                    "target": "com.amazonaws.savingsplans#ListTagsForResource"
56                },
57                {
58                    "target": "com.amazonaws.savingsplans#TagResource"
59                },
60                {
61                    "target": "com.amazonaws.savingsplans#UntagResource"
62                }
63            ],
64            "traits": {
65                "aws.api#service": {
66                    "sdkId": "savingsplans",
67                    "arnNamespace": "savingsplans",
68                    "cloudFormationName": "Savingsplans",
69                    "cloudTrailEventSource": "savingsplans.amazonaws.com",
70                    "endpointPrefix": "savingsplans"
71                },
72                "aws.auth#sigv4": {
73                    "name": "savingsplans"
74                },
75                "aws.protocols#restJson1": {},
76                "smithy.api#documentation": "<p>Savings Plans are a pricing model that offer significant savings on AWS usage (for\n        example, on Amazon EC2 instances). You commit to a consistent amount of usage, in USD\n        per hour, for a term of 1 or 3 years, and receive a lower price for that usage. For\n        more information, see the <a href=\"https://docs.aws.amazon.com/savingsplans/latest/userguide/\">AWS Savings Plans User Guide</a>.</p>",
77                "smithy.api#title": "AWS Savings Plans"
78            }
79        },
80        "com.amazonaws.savingsplans#Amount": {
81            "type": "string"
82        },
83        "com.amazonaws.savingsplans#ClientToken": {
84            "type": "string"
85        },
86        "com.amazonaws.savingsplans#CreateSavingsPlan": {
87            "type": "operation",
88            "input": {
89                "target": "com.amazonaws.savingsplans#CreateSavingsPlanRequest"
90            },
91            "output": {
92                "target": "com.amazonaws.savingsplans#CreateSavingsPlanResponse"
93            },
94            "errors": [
95                {
96                    "target": "com.amazonaws.savingsplans#InternalServerException"
97                },
98                {
99                    "target": "com.amazonaws.savingsplans#ResourceNotFoundException"
100                },
101                {
102                    "target": "com.amazonaws.savingsplans#ServiceQuotaExceededException"
103                },
104                {
105                    "target": "com.amazonaws.savingsplans#ValidationException"
106                }
107            ],
108            "traits": {
109                "smithy.api#documentation": "<p>Creates a Savings Plan.</p>",
110                "smithy.api#http": {
111                    "method": "POST",
112                    "uri": "/CreateSavingsPlan",
113                    "code": 200
114                }
115            }
116        },
117        "com.amazonaws.savingsplans#CreateSavingsPlanRequest": {
118            "type": "structure",
119            "members": {
120                "savingsPlanOfferingId": {
121                    "target": "com.amazonaws.savingsplans#SavingsPlanOfferingId",
122                    "traits": {
123                        "smithy.api#documentation": "<p>The ID of the offering.</p>",
124                        "smithy.api#required": {}
125                    }
126                },
127                "commitment": {
128                    "target": "com.amazonaws.savingsplans#Amount",
129                    "traits": {
130                        "smithy.api#documentation": "<p>The hourly commitment, in USD. This is a value between 0.001 and 1 million. You cannot specify more\n        than three digits after the decimal point.</p>",
131                        "smithy.api#required": {}
132                    }
133                },
134                "upfrontPaymentAmount": {
135                    "target": "com.amazonaws.savingsplans#Amount",
136                    "traits": {
137                        "smithy.api#documentation": "<p>The up-front payment amount. This is a whole number between 50 and 99 percent of the total value of the Savings Plan.\n       This parameter is supported only if the payment option is <code>Partial Upfront</code>.</p>"
138                    }
139                },
140                "purchaseTime": {
141                    "target": "com.amazonaws.savingsplans#DateTime",
142                    "traits": {
143                        "smithy.api#documentation": "<p>The time at which to purchase the Savings Plan, in UTC format (YYYY-MM-DDTHH:MM:SSZ).</p>"
144                    }
145                },
146                "clientToken": {
147                    "target": "com.amazonaws.savingsplans#ClientToken",
148                    "traits": {
149                        "smithy.api#documentation": "<p>Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.</p>",
150                        "smithy.api#idempotencyToken": {}
151                    }
152                },
153                "tags": {
154                    "target": "com.amazonaws.savingsplans#TagMap",
155                    "traits": {
156                        "smithy.api#documentation": "<p>One or more tags.</p>"
157                    }
158                }
159            }
160        },
161        "com.amazonaws.savingsplans#CreateSavingsPlanResponse": {
162            "type": "structure",
163            "members": {
164                "savingsPlanId": {
165                    "target": "com.amazonaws.savingsplans#SavingsPlanId",
166                    "traits": {
167                        "smithy.api#documentation": "<p>The ID of the Savings Plan.</p>"
168                    }
169                }
170            }
171        },
172        "com.amazonaws.savingsplans#CurrencyCode": {
173            "type": "string",
174            "traits": {
175                "smithy.api#enum": [
176                    {
177                        "value": "CNY",
178                        "name": "CNY"
179                    },
180                    {
181                        "value": "USD",
182                        "name": "USD"
183                    }
184                ]
185            }
186        },
187        "com.amazonaws.savingsplans#CurrencyList": {
188            "type": "list",
189            "member": {
190                "target": "com.amazonaws.savingsplans#CurrencyCode"
191            }
192        },
193        "com.amazonaws.savingsplans#DateTime": {
194            "type": "timestamp"
195        },
196        "com.amazonaws.savingsplans#DeleteQueuedSavingsPlan": {
197            "type": "operation",
198            "input": {
199                "target": "com.amazonaws.savingsplans#DeleteQueuedSavingsPlanRequest"
200            },
201            "output": {
202                "target": "com.amazonaws.savingsplans#DeleteQueuedSavingsPlanResponse"
203            },
204            "errors": [
205                {
206                    "target": "com.amazonaws.savingsplans#InternalServerException"
207                },
208                {
209                    "target": "com.amazonaws.savingsplans#ResourceNotFoundException"
210                },
211                {
212                    "target": "com.amazonaws.savingsplans#ServiceQuotaExceededException"
213                },
214                {
215                    "target": "com.amazonaws.savingsplans#ValidationException"
216                }
217            ],
218            "traits": {
219                "smithy.api#documentation": "<p>Deletes the queued purchase for the specified Savings Plan.</p>",
220                "smithy.api#http": {
221                    "method": "POST",
222                    "uri": "/DeleteQueuedSavingsPlan",
223                    "code": 200
224                }
225            }
226        },
227        "com.amazonaws.savingsplans#DeleteQueuedSavingsPlanRequest": {
228            "type": "structure",
229            "members": {
230                "savingsPlanId": {
231                    "target": "com.amazonaws.savingsplans#SavingsPlanId",
232                    "traits": {
233                        "smithy.api#documentation": "<p>The ID of the Savings Plan.</p>",
234                        "smithy.api#required": {}
235                    }
236                }
237            }
238        },
239        "com.amazonaws.savingsplans#DeleteQueuedSavingsPlanResponse": {
240            "type": "structure",
241            "members": {}
242        },
243        "com.amazonaws.savingsplans#DescribeSavingsPlanRates": {
244            "type": "operation",
245            "input": {
246                "target": "com.amazonaws.savingsplans#DescribeSavingsPlanRatesRequest"
247            },
248            "output": {
249                "target": "com.amazonaws.savingsplans#DescribeSavingsPlanRatesResponse"
250            },
251            "errors": [
252                {
253                    "target": "com.amazonaws.savingsplans#ResourceNotFoundException"
254                },
255                {
256                    "target": "com.amazonaws.savingsplans#ValidationException"
257                }
258            ],
259            "traits": {
260                "smithy.api#documentation": "<p>Describes the specified Savings Plans rates.</p>",
261                "smithy.api#http": {
262                    "method": "POST",
263                    "uri": "/DescribeSavingsPlanRates",
264                    "code": 200
265                }
266            }
267        },
268        "com.amazonaws.savingsplans#DescribeSavingsPlanRatesRequest": {
269            "type": "structure",
270            "members": {
271                "savingsPlanId": {
272                    "target": "com.amazonaws.savingsplans#SavingsPlanId",
273                    "traits": {
274                        "smithy.api#documentation": "<p>The ID of the Savings Plan.</p>",
275                        "smithy.api#required": {}
276                    }
277                },
278                "filters": {
279                    "target": "com.amazonaws.savingsplans#SavingsPlanRateFilterList",
280                    "traits": {
281                        "smithy.api#documentation": "<p>The filters.</p>"
282                    }
283                },
284                "nextToken": {
285                    "target": "com.amazonaws.savingsplans#PaginationToken",
286                    "traits": {
287                        "smithy.api#documentation": "<p>The token for the next page of results.</p>"
288                    }
289                },
290                "maxResults": {
291                    "target": "com.amazonaws.savingsplans#MaxResults",
292                    "traits": {
293                        "smithy.api#documentation": "<p>The maximum number of results to return with a single call. To retrieve additional results, make another\n         call with the returned token value.</p>"
294                    }
295                }
296            }
297        },
298        "com.amazonaws.savingsplans#DescribeSavingsPlanRatesResponse": {
299            "type": "structure",
300            "members": {
301                "savingsPlanId": {
302                    "target": "com.amazonaws.savingsplans#SavingsPlanId",
303                    "traits": {
304                        "smithy.api#documentation": "<p>The ID of the Savings Plan.</p>"
305                    }
306                },
307                "searchResults": {
308                    "target": "com.amazonaws.savingsplans#SavingsPlanRateList",
309                    "traits": {
310                        "smithy.api#documentation": "<p>Information about the Savings Plans rates.</p>"
311                    }
312                },
313                "nextToken": {
314                    "target": "com.amazonaws.savingsplans#PaginationToken",
315                    "traits": {
316                        "smithy.api#documentation": "<p>The token to use to retrieve the next page of results. This value is null when there are no more \n         results to return.</p>"
317                    }
318                }
319            }
320        },
321        "com.amazonaws.savingsplans#DescribeSavingsPlans": {
322            "type": "operation",
323            "input": {
324                "target": "com.amazonaws.savingsplans#DescribeSavingsPlansRequest"
325            },
326            "output": {
327                "target": "com.amazonaws.savingsplans#DescribeSavingsPlansResponse"
328            },
329            "errors": [
330                {
331                    "target": "com.amazonaws.savingsplans#InternalServerException"
332                },
333                {
334                    "target": "com.amazonaws.savingsplans#ValidationException"
335                }
336            ],
337            "traits": {
338                "smithy.api#documentation": "<p>Describes the specified Savings Plans.</p>",
339                "smithy.api#http": {
340                    "method": "POST",
341                    "uri": "/DescribeSavingsPlans",
342                    "code": 200
343                }
344            }
345        },
346        "com.amazonaws.savingsplans#DescribeSavingsPlansOfferingRates": {
347            "type": "operation",
348            "input": {
349                "target": "com.amazonaws.savingsplans#DescribeSavingsPlansOfferingRatesRequest"
350            },
351            "output": {
352                "target": "com.amazonaws.savingsplans#DescribeSavingsPlansOfferingRatesResponse"
353            },
354            "errors": [
355                {
356                    "target": "com.amazonaws.savingsplans#InternalServerException"
357                },
358                {
359                    "target": "com.amazonaws.savingsplans#ValidationException"
360                }
361            ],
362            "traits": {
363                "smithy.api#documentation": "<p>Describes the specified Savings Plans offering rates.</p>",
364                "smithy.api#http": {
365                    "method": "POST",
366                    "uri": "/DescribeSavingsPlansOfferingRates",
367                    "code": 200
368                }
369            }
370        },
371        "com.amazonaws.savingsplans#DescribeSavingsPlansOfferingRatesRequest": {
372            "type": "structure",
373            "members": {
374                "savingsPlanOfferingIds": {
375                    "target": "com.amazonaws.savingsplans#UUIDs",
376                    "traits": {
377                        "smithy.api#documentation": "<p>The IDs of the offerings.</p>"
378                    }
379                },
380                "savingsPlanPaymentOptions": {
381                    "target": "com.amazonaws.savingsplans#SavingsPlanPaymentOptionList",
382                    "traits": {
383                        "smithy.api#documentation": "<p>The payment options.</p>"
384                    }
385                },
386                "savingsPlanTypes": {
387                    "target": "com.amazonaws.savingsplans#SavingsPlanTypeList",
388                    "traits": {
389                        "smithy.api#documentation": "<p>The plan types.</p>"
390                    }
391                },
392                "products": {
393                    "target": "com.amazonaws.savingsplans#SavingsPlanProductTypeList",
394                    "traits": {
395                        "smithy.api#documentation": "<p>The AWS products.</p>"
396                    }
397                },
398                "serviceCodes": {
399                    "target": "com.amazonaws.savingsplans#SavingsPlanRateServiceCodeList",
400                    "traits": {
401                        "smithy.api#documentation": "<p>The services.</p>"
402                    }
403                },
404                "usageTypes": {
405                    "target": "com.amazonaws.savingsplans#SavingsPlanRateUsageTypeList",
406                    "traits": {
407                        "smithy.api#documentation": "<p>The usage details of the line item in the billing report.</p>"
408                    }
409                },
410                "operations": {
411                    "target": "com.amazonaws.savingsplans#SavingsPlanRateOperationList",
412                    "traits": {
413                        "smithy.api#documentation": "<p>The specific AWS operation for the line item in the billing report.</p>"
414                    }
415                },
416                "filters": {
417                    "target": "com.amazonaws.savingsplans#SavingsPlanOfferingRateFiltersList",
418                    "traits": {
419                        "smithy.api#documentation": "<p>The filters.</p>"
420                    }
421                },
422                "nextToken": {
423                    "target": "com.amazonaws.savingsplans#PaginationToken",
424                    "traits": {
425                        "smithy.api#documentation": "<p>The token for the next page of results.</p>"
426                    }
427                },
428                "maxResults": {
429                    "target": "com.amazonaws.savingsplans#PageSize",
430                    "traits": {
431                        "smithy.api#documentation": "<p>The maximum number of results to return with a single call. To retrieve additional results, make another\n       call with the returned token value.</p>"
432                    }
433                }
434            }
435        },
436        "com.amazonaws.savingsplans#DescribeSavingsPlansOfferingRatesResponse": {
437            "type": "structure",
438            "members": {
439                "searchResults": {
440                    "target": "com.amazonaws.savingsplans#SavingsPlanOfferingRatesList",
441                    "traits": {
442                        "smithy.api#documentation": "<p>Information about the Savings Plans offering rates.</p>"
443                    }
444                },
445                "nextToken": {
446                    "target": "com.amazonaws.savingsplans#PaginationToken",
447                    "traits": {
448                        "smithy.api#documentation": "<p>The token to use to retrieve the next page of results. This value is null when there are no more \n       results to return.</p>"
449                    }
450                }
451            }
452        },
453        "com.amazonaws.savingsplans#DescribeSavingsPlansOfferings": {
454            "type": "operation",
455            "input": {
456                "target": "com.amazonaws.savingsplans#DescribeSavingsPlansOfferingsRequest"
457            },
458            "output": {
459                "target": "com.amazonaws.savingsplans#DescribeSavingsPlansOfferingsResponse"
460            },
461            "errors": [
462                {
463                    "target": "com.amazonaws.savingsplans#InternalServerException"
464                },
465                {
466                    "target": "com.amazonaws.savingsplans#ValidationException"
467                }
468            ],
469            "traits": {
470                "smithy.api#documentation": "<p>Describes the specified Savings Plans offerings.</p>",
471                "smithy.api#http": {
472                    "method": "POST",
473                    "uri": "/DescribeSavingsPlansOfferings",
474                    "code": 200
475                }
476            }
477        },
478        "com.amazonaws.savingsplans#DescribeSavingsPlansOfferingsRequest": {
479            "type": "structure",
480            "members": {
481                "offeringIds": {
482                    "target": "com.amazonaws.savingsplans#UUIDs",
483                    "traits": {
484                        "smithy.api#documentation": "<p>The IDs of the offerings.</p>"
485                    }
486                },
487                "paymentOptions": {
488                    "target": "com.amazonaws.savingsplans#SavingsPlanPaymentOptionList",
489                    "traits": {
490                        "smithy.api#documentation": "<p>The payment options.</p>"
491                    }
492                },
493                "productType": {
494                    "target": "com.amazonaws.savingsplans#SavingsPlanProductType",
495                    "traits": {
496                        "smithy.api#documentation": "<p>The product type.</p>"
497                    }
498                },
499                "planTypes": {
500                    "target": "com.amazonaws.savingsplans#SavingsPlanTypeList",
501                    "traits": {
502                        "smithy.api#documentation": "<p>The plan type.</p>"
503                    }
504                },
505                "durations": {
506                    "target": "com.amazonaws.savingsplans#DurationsList",
507                    "traits": {
508                        "smithy.api#documentation": "<p>The durations, in seconds.</p>"
509                    }
510                },
511                "currencies": {
512                    "target": "com.amazonaws.savingsplans#CurrencyList",
513                    "traits": {
514                        "smithy.api#documentation": "<p>The currencies.</p>"
515                    }
516                },
517                "descriptions": {
518                    "target": "com.amazonaws.savingsplans#SavingsPlanDescriptionsList",
519                    "traits": {
520                        "smithy.api#documentation": "<p>The descriptions.</p>"
521                    }
522                },
523                "serviceCodes": {
524                    "target": "com.amazonaws.savingsplans#SavingsPlanServiceCodeList",
525                    "traits": {
526                        "smithy.api#documentation": "<p>The services.</p>"
527                    }
528                },
529                "usageTypes": {
530                    "target": "com.amazonaws.savingsplans#SavingsPlanUsageTypeList",
531                    "traits": {
532                        "smithy.api#documentation": "<p>The usage details of the line item in the billing report.</p>"
533                    }
534                },
535                "operations": {
536                    "target": "com.amazonaws.savingsplans#SavingsPlanOperationList",
537                    "traits": {
538                        "smithy.api#documentation": "<p>The specific AWS operation for the line item in the billing report.</p>"
539                    }
540                },
541                "filters": {
542                    "target": "com.amazonaws.savingsplans#SavingsPlanOfferingFiltersList",
543                    "traits": {
544                        "smithy.api#documentation": "<p>The filters.</p>"
545                    }
546                },
547                "nextToken": {
548                    "target": "com.amazonaws.savingsplans#PaginationToken",
549                    "traits": {
550                        "smithy.api#documentation": "<p>The token for the next page of results.</p>"
551                    }
552                },
553                "maxResults": {
554                    "target": "com.amazonaws.savingsplans#PageSize",
555                    "traits": {
556                        "smithy.api#documentation": "<p>The maximum number of results to return with a single call. To retrieve additional results, make another\n       call with the returned token value.</p>"
557                    }
558                }
559            }
560        },
561        "com.amazonaws.savingsplans#DescribeSavingsPlansOfferingsResponse": {
562            "type": "structure",
563            "members": {
564                "searchResults": {
565                    "target": "com.amazonaws.savingsplans#SavingsPlanOfferingsList",
566                    "traits": {
567                        "smithy.api#documentation": "<p>Information about the Savings Plans offerings.</p>"
568                    }
569                },
570                "nextToken": {
571                    "target": "com.amazonaws.savingsplans#PaginationToken",
572                    "traits": {
573                        "smithy.api#documentation": "<p>The token to use to retrieve the next page of results. This value is null when there are no more \n       results to return.</p>"
574                    }
575                }
576            }
577        },
578        "com.amazonaws.savingsplans#DescribeSavingsPlansRequest": {
579            "type": "structure",
580            "members": {
581                "savingsPlanArns": {
582                    "target": "com.amazonaws.savingsplans#SavingsPlanArnList",
583                    "traits": {
584                        "smithy.api#documentation": "<p>The Amazon Resource Names (ARN) of the Savings Plans.</p>"
585                    }
586                },
587                "savingsPlanIds": {
588                    "target": "com.amazonaws.savingsplans#SavingsPlanIdList",
589                    "traits": {
590                        "smithy.api#documentation": "<p>The IDs of the Savings Plans.</p>"
591                    }
592                },
593                "nextToken": {
594                    "target": "com.amazonaws.savingsplans#PaginationToken",
595                    "traits": {
596                        "smithy.api#documentation": "<p>The token for the next page of results.</p>"
597                    }
598                },
599                "maxResults": {
600                    "target": "com.amazonaws.savingsplans#MaxResults",
601                    "traits": {
602                        "smithy.api#documentation": "<p>The maximum number of results to return with a single call. To retrieve additional results, make another\n       call with the returned token value.</p>"
603                    }
604                },
605                "states": {
606                    "target": "com.amazonaws.savingsplans#SavingsPlanStateList",
607                    "traits": {
608                        "smithy.api#documentation": "<p>The states.</p>"
609                    }
610                },
611                "filters": {
612                    "target": "com.amazonaws.savingsplans#SavingsPlanFilterList",
613                    "traits": {
614                        "smithy.api#documentation": "<p>The filters.</p>"
615                    }
616                }
617            }
618        },
619        "com.amazonaws.savingsplans#DescribeSavingsPlansResponse": {
620            "type": "structure",
621            "members": {
622                "savingsPlans": {
623                    "target": "com.amazonaws.savingsplans#SavingsPlanList",
624                    "traits": {
625                        "smithy.api#documentation": "<p>Information about the Savings Plans.</p>"
626                    }
627                },
628                "nextToken": {
629                    "target": "com.amazonaws.savingsplans#PaginationToken",
630                    "traits": {
631                        "smithy.api#documentation": "<p>The token to use to retrieve the next page of results. This value is null when there are no more \n       results to return.</p>"
632                    }
633                }
634            }
635        },
636        "com.amazonaws.savingsplans#DurationsList": {
637            "type": "list",
638            "member": {
639                "target": "com.amazonaws.savingsplans#SavingsPlansDuration"
640            }
641        },
642        "com.amazonaws.savingsplans#EC2InstanceFamily": {
643            "type": "string"
644        },
645        "com.amazonaws.savingsplans#FilterValuesList": {
646            "type": "list",
647            "member": {
648                "target": "com.amazonaws.savingsplans#JsonSafeFilterValueString"
649            }
650        },
651        "com.amazonaws.savingsplans#InternalServerException": {
652            "type": "structure",
653            "members": {
654                "message": {
655                    "target": "com.amazonaws.savingsplans#String",
656                    "traits": {
657                        "smithy.api#required": {}
658                    }
659                }
660            },
661            "traits": {
662                "smithy.api#documentation": "<p>An unexpected error occurred.</p>",
663                "smithy.api#error": "server",
664                "smithy.api#httpError": 500
665            }
666        },
667        "com.amazonaws.savingsplans#JsonSafeFilterValueString": {
668            "type": "string",
669            "traits": {
670                "smithy.api#pattern": "^[a-zA-Z0-9_ \\/.\\:\\-\\(\\)]+$"
671            }
672        },
673        "com.amazonaws.savingsplans#ListOfStrings": {
674            "type": "list",
675            "member": {
676                "target": "com.amazonaws.savingsplans#String"
677            }
678        },
679        "com.amazonaws.savingsplans#ListTagsForResource": {
680            "type": "operation",
681            "input": {
682                "target": "com.amazonaws.savingsplans#ListTagsForResourceRequest"
683            },
684            "output": {
685                "target": "com.amazonaws.savingsplans#ListTagsForResourceResponse"
686            },
687            "errors": [
688                {
689                    "target": "com.amazonaws.savingsplans#InternalServerException"
690                },
691                {
692                    "target": "com.amazonaws.savingsplans#ResourceNotFoundException"
693                },
694                {
695                    "target": "com.amazonaws.savingsplans#ValidationException"
696                }
697            ],
698            "traits": {
699                "smithy.api#documentation": "<p>Lists the tags for the specified resource.</p>",
700                "smithy.api#http": {
701                    "method": "POST",
702                    "uri": "/ListTagsForResource",
703                    "code": 200
704                }
705            }
706        },
707        "com.amazonaws.savingsplans#ListTagsForResourceRequest": {
708            "type": "structure",
709            "members": {
710                "resourceArn": {
711                    "target": "com.amazonaws.savingsplans#SavingsPlanArn",
712                    "traits": {
713                        "smithy.api#documentation": "<p>The Amazon Resource Name (ARN) of the resource.</p>",
714                        "smithy.api#required": {}
715                    }
716                }
717            }
718        },
719        "com.amazonaws.savingsplans#ListTagsForResourceResponse": {
720            "type": "structure",
721            "members": {
722                "tags": {
723                    "target": "com.amazonaws.savingsplans#TagMap",
724                    "traits": {
725                        "smithy.api#documentation": "<p>Information about the tags.</p>"
726                    }
727                }
728            }
729        },
730        "com.amazonaws.savingsplans#MaxResults": {
731            "type": "integer",
732            "traits": {
733                "smithy.api#box": {},
734                "smithy.api#range": {
735                    "min": 1,
736                    "max": 1000
737                }
738            }
739        },
740        "com.amazonaws.savingsplans#PageSize": {
741            "type": "integer",
742            "traits": {
743                "smithy.api#range": {
744                    "min": 0,
745                    "max": 1000
746                }
747            }
748        },
749        "com.amazonaws.savingsplans#PaginationToken": {
750            "type": "string",
751            "traits": {
752                "smithy.api#length": {
753                    "min": 0,
754                    "max": 1024
755                },
756                "smithy.api#pattern": "^[A-Za-z0-9/=\\+]+$"
757            }
758        },
759        "com.amazonaws.savingsplans#ParentSavingsPlanOffering": {
760            "type": "structure",
761            "members": {
762                "offeringId": {
763                    "target": "com.amazonaws.savingsplans#UUID",
764                    "traits": {
765                        "smithy.api#documentation": "<p>The ID of the offering.</p>"
766                    }
767                },
768                "paymentOption": {
769                    "target": "com.amazonaws.savingsplans#SavingsPlanPaymentOption",
770                    "traits": {
771                        "smithy.api#documentation": "<p>The payment option.</p>"
772                    }
773                },
774                "planType": {
775                    "target": "com.amazonaws.savingsplans#SavingsPlanType",
776                    "traits": {
777                        "smithy.api#documentation": "<p>The plan type.</p>"
778                    }
779                },
780                "durationSeconds": {
781                    "target": "com.amazonaws.savingsplans#SavingsPlansDuration",
782                    "traits": {
783                        "smithy.api#documentation": "<p>The duration, in seconds.</p>"
784                    }
785                },
786                "currency": {
787                    "target": "com.amazonaws.savingsplans#CurrencyCode",
788                    "traits": {
789                        "smithy.api#documentation": "<p>The currency.</p>"
790                    }
791                },
792                "planDescription": {
793                    "target": "com.amazonaws.savingsplans#SavingsPlanDescription",
794                    "traits": {
795                        "smithy.api#documentation": "<p>The description.</p>"
796                    }
797                }
798            },
799            "traits": {
800                "smithy.api#documentation": "<p>Information about a Savings Plan offering.</p>"
801            }
802        },
803        "com.amazonaws.savingsplans#Region": {
804            "type": "string"
805        },
806        "com.amazonaws.savingsplans#ResourceNotFoundException": {
807            "type": "structure",
808            "members": {
809                "message": {
810                    "target": "com.amazonaws.savingsplans#String",
811                    "traits": {
812                        "smithy.api#required": {}
813                    }
814                }
815            },
816            "traits": {
817                "smithy.api#documentation": "<p>The specified resource was not found.</p>",
818                "smithy.api#error": "client",
819                "smithy.api#httpError": 404
820            }
821        },
822        "com.amazonaws.savingsplans#SavingsPlan": {
823            "type": "structure",
824            "members": {
825                "offeringId": {
826                    "target": "com.amazonaws.savingsplans#SavingsPlanOfferingId",
827                    "traits": {
828                        "smithy.api#documentation": "<p>The ID of the offering.</p>"
829                    }
830                },
831                "savingsPlanId": {
832                    "target": "com.amazonaws.savingsplans#SavingsPlanId",
833                    "traits": {
834                        "smithy.api#documentation": "<p>The ID of the Savings Plan.</p>"
835                    }
836                },
837                "savingsPlanArn": {
838                    "target": "com.amazonaws.savingsplans#SavingsPlanArn",
839                    "traits": {
840                        "smithy.api#documentation": "<p>The Amazon Resource Name (ARN) of the Savings Plan.</p>"
841                    }
842                },
843                "description": {
844                    "target": "com.amazonaws.savingsplans#String",
845                    "traits": {
846                        "smithy.api#documentation": "<p>The description.</p>"
847                    }
848                },
849                "start": {
850                    "target": "com.amazonaws.savingsplans#String",
851                    "traits": {
852                        "smithy.api#documentation": "<p>The start time.</p>"
853                    }
854                },
855                "end": {
856                    "target": "com.amazonaws.savingsplans#String",
857                    "traits": {
858                        "smithy.api#documentation": "<p>The end time.</p>"
859                    }
860                },
861                "state": {
862                    "target": "com.amazonaws.savingsplans#SavingsPlanState",
863                    "traits": {
864                        "smithy.api#documentation": "<p>The state.</p>"
865                    }
866                },
867                "region": {
868                    "target": "com.amazonaws.savingsplans#Region",
869                    "traits": {
870                        "smithy.api#documentation": "<p>The AWS Region.</p>"
871                    }
872                },
873                "ec2InstanceFamily": {
874                    "target": "com.amazonaws.savingsplans#EC2InstanceFamily",
875                    "traits": {
876                        "smithy.api#documentation": "<p>The EC2 instance family.</p>"
877                    }
878                },
879                "savingsPlanType": {
880                    "target": "com.amazonaws.savingsplans#SavingsPlanType",
881                    "traits": {
882                        "smithy.api#documentation": "<p>The plan type.</p>"
883                    }
884                },
885                "paymentOption": {
886                    "target": "com.amazonaws.savingsplans#SavingsPlanPaymentOption",
887                    "traits": {
888                        "smithy.api#documentation": "<p>The payment option.</p>"
889                    }
890                },
891                "productTypes": {
892                    "target": "com.amazonaws.savingsplans#SavingsPlanProductTypeList",
893                    "traits": {
894                        "smithy.api#documentation": "<p>The product types.</p>"
895                    }
896                },
897                "currency": {
898                    "target": "com.amazonaws.savingsplans#CurrencyCode",
899                    "traits": {
900                        "smithy.api#documentation": "<p>The currency.</p>"
901                    }
902                },
903                "commitment": {
904                    "target": "com.amazonaws.savingsplans#Amount",
905                    "traits": {
906                        "smithy.api#documentation": "<p>The hourly commitment, in USD.</p>"
907                    }
908                },
909                "upfrontPaymentAmount": {
910                    "target": "com.amazonaws.savingsplans#Amount",
911                    "traits": {
912                        "smithy.api#documentation": "<p>The up-front payment amount.</p>"
913                    }
914                },
915                "recurringPaymentAmount": {
916                    "target": "com.amazonaws.savingsplans#Amount",
917                    "traits": {
918                        "smithy.api#documentation": "<p>The recurring payment amount.</p>"
919                    }
920                },
921                "termDurationInSeconds": {
922                    "target": "com.amazonaws.savingsplans#TermDurationInSeconds",
923                    "traits": {
924                        "smithy.api#documentation": "<p>The duration of the term, in seconds.</p>"
925                    }
926                },
927                "tags": {
928                    "target": "com.amazonaws.savingsplans#TagMap",
929                    "traits": {
930                        "smithy.api#documentation": "<p>One or more tags.</p>"
931                    }
932                }
933            },
934            "traits": {
935                "smithy.api#documentation": "<p>Information about a Savings Plan.</p>"
936            }
937        },
938        "com.amazonaws.savingsplans#SavingsPlanArn": {
939            "type": "string",
940            "traits": {
941                "smithy.api#pattern": "arn:aws:[a-z]+:([a-z]{2}-[a-z]+-\\d{1}|):(\\d{12}):savingsplan\\/([0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12})$"
942            }
943        },
944        "com.amazonaws.savingsplans#SavingsPlanArnList": {
945            "type": "list",
946            "member": {
947                "target": "com.amazonaws.savingsplans#SavingsPlanArn"
948            },
949            "traits": {
950                "smithy.api#length": {
951                    "min": 0,
952                    "max": 100
953                }
954            }
955        },
956        "com.amazonaws.savingsplans#SavingsPlanDescription": {
957            "type": "string",
958            "traits": {
959                "smithy.api#pattern": "^[a-zA-Z0-9_\\- ]+$"
960            }
961        },
962        "com.amazonaws.savingsplans#SavingsPlanDescriptionsList": {
963            "type": "list",
964            "member": {
965                "target": "com.amazonaws.savingsplans#SavingsPlanDescription"
966            }
967        },
968        "com.amazonaws.savingsplans#SavingsPlanFilter": {
969            "type": "structure",
970            "members": {
971                "name": {
972                    "target": "com.amazonaws.savingsplans#SavingsPlansFilterName",
973                    "traits": {
974                        "smithy.api#documentation": "<p>The filter name.</p>"
975                    }
976                },
977                "values": {
978                    "target": "com.amazonaws.savingsplans#ListOfStrings",
979                    "traits": {
980                        "smithy.api#documentation": "<p>The filter value.</p>"
981                    }
982                }
983            },
984            "traits": {
985                "smithy.api#documentation": "<p>Information about a filter.</p>"
986            }
987        },
988        "com.amazonaws.savingsplans#SavingsPlanFilterList": {
989            "type": "list",
990            "member": {
991                "target": "com.amazonaws.savingsplans#SavingsPlanFilter"
992            }
993        },
994        "com.amazonaws.savingsplans#SavingsPlanId": {
995            "type": "string"
996        },
997        "com.amazonaws.savingsplans#SavingsPlanIdList": {
998            "type": "list",
999            "member": {
1000                "target": "com.amazonaws.savingsplans#SavingsPlanId"
1001            }
1002        },
1003        "com.amazonaws.savingsplans#SavingsPlanList": {
1004            "type": "list",
1005            "member": {
1006                "target": "com.amazonaws.savingsplans#SavingsPlan"
1007            }
1008        },
1009        "com.amazonaws.savingsplans#SavingsPlanOffering": {
1010            "type": "structure",
1011            "members": {
1012                "offeringId": {
1013                    "target": "com.amazonaws.savingsplans#UUID",
1014                    "traits": {
1015                        "smithy.api#documentation": "<p>The ID of the offering.</p>"
1016                    }
1017                },
1018                "productTypes": {
1019                    "target": "com.amazonaws.savingsplans#SavingsPlanProductTypeList",
1020                    "traits": {
1021                        "smithy.api#documentation": "<p>The product type.</p>"
1022                    }
1023                },
1024                "planType": {
1025                    "target": "com.amazonaws.savingsplans#SavingsPlanType",
1026                    "traits": {
1027                        "smithy.api#documentation": "<p>The plan type.</p>"
1028                    }
1029                },
1030                "description": {
1031                    "target": "com.amazonaws.savingsplans#SavingsPlanDescription",
1032                    "traits": {
1033                        "smithy.api#documentation": "<p>The description.</p>"
1034                    }
1035                },
1036                "paymentOption": {
1037                    "target": "com.amazonaws.savingsplans#SavingsPlanPaymentOption",
1038                    "traits": {
1039                        "smithy.api#documentation": "<p>The payment option.</p>"
1040                    }
1041                },
1042                "durationSeconds": {
1043                    "target": "com.amazonaws.savingsplans#SavingsPlansDuration",
1044                    "traits": {
1045                        "smithy.api#documentation": "<p>The duration, in seconds.</p>"
1046                    }
1047                },
1048                "currency": {
1049                    "target": "com.amazonaws.savingsplans#CurrencyCode",
1050                    "traits": {
1051                        "smithy.api#documentation": "<p>The currency.</p>"
1052                    }
1053                },
1054                "serviceCode": {
1055                    "target": "com.amazonaws.savingsplans#SavingsPlanServiceCode",
1056                    "traits": {
1057                        "smithy.api#documentation": "<p>The service.</p>"
1058                    }
1059                },
1060                "usageType": {
1061                    "target": "com.amazonaws.savingsplans#SavingsPlanUsageType",
1062                    "traits": {
1063                        "smithy.api#documentation": "<p>The usage details of the line item in the billing report.</p>"
1064                    }
1065                },
1066                "operation": {
1067                    "target": "com.amazonaws.savingsplans#SavingsPlanOperation",
1068                    "traits": {
1069                        "smithy.api#documentation": "<p>The specific AWS operation for the line item in the billing report.</p>"
1070                    }
1071                },
1072                "properties": {
1073                    "target": "com.amazonaws.savingsplans#SavingsPlanOfferingPropertyList",
1074                    "traits": {
1075                        "smithy.api#documentation": "<p>The properties.</p>"
1076                    }
1077                }
1078            },
1079            "traits": {
1080                "smithy.api#documentation": "<p>Information about a Savings Plan offering.</p>"
1081            }
1082        },
1083        "com.amazonaws.savingsplans#SavingsPlanOfferingFilterAttribute": {
1084            "type": "string",
1085            "traits": {
1086                "smithy.api#enum": [
1087                    {
1088                        "value": "region",
1089                        "name": "region"
1090                    },
1091                    {
1092                        "value": "instanceFamily",
1093                        "name": "instanceFamily"
1094                    }
1095                ]
1096            }
1097        },
1098        "com.amazonaws.savingsplans#SavingsPlanOfferingFilterElement": {
1099            "type": "structure",
1100            "members": {
1101                "name": {
1102                    "target": "com.amazonaws.savingsplans#SavingsPlanOfferingFilterAttribute",
1103                    "traits": {
1104                        "smithy.api#documentation": "<p>The filter name.</p>"
1105                    }
1106                },
1107                "values": {
1108                    "target": "com.amazonaws.savingsplans#FilterValuesList",
1109                    "traits": {
1110                        "smithy.api#documentation": "<p>The filter values.</p>"
1111                    }
1112                }
1113            },
1114            "traits": {
1115                "smithy.api#documentation": "<p>Information about a filter.</p>"
1116            }
1117        },
1118        "com.amazonaws.savingsplans#SavingsPlanOfferingFiltersList": {
1119            "type": "list",
1120            "member": {
1121                "target": "com.amazonaws.savingsplans#SavingsPlanOfferingFilterElement"
1122            }
1123        },
1124        "com.amazonaws.savingsplans#SavingsPlanOfferingId": {
1125            "type": "string"
1126        },
1127        "com.amazonaws.savingsplans#SavingsPlanOfferingProperty": {
1128            "type": "structure",
1129            "members": {
1130                "name": {
1131                    "target": "com.amazonaws.savingsplans#SavingsPlanOfferingPropertyKey",
1132                    "traits": {
1133                        "smithy.api#documentation": "<p>The property name.</p>"
1134                    }
1135                },
1136                "value": {
1137                    "target": "com.amazonaws.savingsplans#JsonSafeFilterValueString",
1138                    "traits": {
1139                        "smithy.api#documentation": "<p>The property value.</p>"
1140                    }
1141                }
1142            },
1143            "traits": {
1144                "smithy.api#documentation": "<p>Information about a property.</p>"
1145            }
1146        },
1147        "com.amazonaws.savingsplans#SavingsPlanOfferingPropertyKey": {
1148            "type": "string",
1149            "traits": {
1150                "smithy.api#enum": [
1151                    {
1152                        "value": "region",
1153                        "name": "REGION"
1154                    },
1155                    {
1156                        "value": "instanceFamily",
1157                        "name": "INSTANCE_FAMILY"
1158                    }
1159                ]
1160            }
1161        },
1162        "com.amazonaws.savingsplans#SavingsPlanOfferingPropertyList": {
1163            "type": "list",
1164            "member": {
1165                "target": "com.amazonaws.savingsplans#SavingsPlanOfferingProperty"
1166            }
1167        },
1168        "com.amazonaws.savingsplans#SavingsPlanOfferingRate": {
1169            "type": "structure",
1170            "members": {
1171                "savingsPlanOffering": {
1172                    "target": "com.amazonaws.savingsplans#ParentSavingsPlanOffering",
1173                    "traits": {
1174                        "smithy.api#documentation": "<p>The Savings Plan offering.</p>"
1175                    }
1176                },
1177                "rate": {
1178                    "target": "com.amazonaws.savingsplans#SavingsPlanRatePricePerUnit",
1179                    "traits": {
1180                        "smithy.api#documentation": "<p>The Savings Plan rate.</p>"
1181                    }
1182                },
1183                "unit": {
1184                    "target": "com.amazonaws.savingsplans#SavingsPlanRateUnit",
1185                    "traits": {
1186                        "smithy.api#documentation": "<p>The unit.</p>"
1187                    }
1188                },
1189                "productType": {
1190                    "target": "com.amazonaws.savingsplans#SavingsPlanProductType",
1191                    "traits": {
1192                        "smithy.api#documentation": "<p>The product type.</p>"
1193                    }
1194                },
1195                "serviceCode": {
1196                    "target": "com.amazonaws.savingsplans#SavingsPlanRateServiceCode",
1197                    "traits": {
1198                        "smithy.api#documentation": "<p>The service.</p>"
1199                    }
1200                },
1201                "usageType": {
1202                    "target": "com.amazonaws.savingsplans#SavingsPlanRateUsageType",
1203                    "traits": {
1204                        "smithy.api#documentation": "<p>The usage details of the line item in the billing report.</p>"
1205                    }
1206                },
1207                "operation": {
1208                    "target": "com.amazonaws.savingsplans#SavingsPlanRateOperation",
1209                    "traits": {
1210                        "smithy.api#documentation": "<p>The specific AWS operation for the line item in the billing report.</p>"
1211                    }
1212                },
1213                "properties": {
1214                    "target": "com.amazonaws.savingsplans#SavingsPlanOfferingRatePropertyList",
1215                    "traits": {
1216                        "smithy.api#documentation": "<p>The properties.</p>"
1217                    }
1218                }
1219            },
1220            "traits": {
1221                "smithy.api#documentation": "<p>Information about a Savings Plan offering rate.</p>"
1222            }
1223        },
1224        "com.amazonaws.savingsplans#SavingsPlanOfferingRateFilterElement": {
1225            "type": "structure",
1226            "members": {
1227                "name": {
1228                    "target": "com.amazonaws.savingsplans#SavingsPlanRateFilterAttribute",
1229                    "traits": {
1230                        "smithy.api#documentation": "<p>The filter name.</p>"
1231                    }
1232                },
1233                "values": {
1234                    "target": "com.amazonaws.savingsplans#FilterValuesList",
1235                    "traits": {
1236                        "smithy.api#documentation": "<p>The filter values.</p>"
1237                    }
1238                }
1239            },
1240            "traits": {
1241                "smithy.api#documentation": "<p>Information about a filter.</p>"
1242            }
1243        },
1244        "com.amazonaws.savingsplans#SavingsPlanOfferingRateFiltersList": {
1245            "type": "list",
1246            "member": {
1247                "target": "com.amazonaws.savingsplans#SavingsPlanOfferingRateFilterElement"
1248            }
1249        },
1250        "com.amazonaws.savingsplans#SavingsPlanOfferingRateProperty": {
1251            "type": "structure",
1252            "members": {
1253                "name": {
1254                    "target": "com.amazonaws.savingsplans#JsonSafeFilterValueString",
1255                    "traits": {
1256                        "smithy.api#documentation": "<p>The property name.</p>"
1257                    }
1258                },
1259                "value": {
1260                    "target": "com.amazonaws.savingsplans#JsonSafeFilterValueString",
1261                    "traits": {
1262                        "smithy.api#documentation": "<p>The property value.</p>"
1263                    }
1264                }
1265            },
1266            "traits": {
1267                "smithy.api#documentation": "<p>Information about a property.</p>"
1268            }
1269        },
1270        "com.amazonaws.savingsplans#SavingsPlanOfferingRatePropertyList": {
1271            "type": "list",
1272            "member": {
1273                "target": "com.amazonaws.savingsplans#SavingsPlanOfferingRateProperty"
1274            }
1275        },
1276        "com.amazonaws.savingsplans#SavingsPlanOfferingRatesList": {
1277            "type": "list",
1278            "member": {
1279                "target": "com.amazonaws.savingsplans#SavingsPlanOfferingRate"
1280            }
1281        },
1282        "com.amazonaws.savingsplans#SavingsPlanOfferingsList": {
1283            "type": "list",
1284            "member": {
1285                "target": "com.amazonaws.savingsplans#SavingsPlanOffering"
1286            }
1287        },
1288        "com.amazonaws.savingsplans#SavingsPlanOperation": {
1289            "type": "string",
1290            "traits": {
1291                "smithy.api#length": {
1292                    "min": 0,
1293                    "max": 255
1294                },
1295                "smithy.api#pattern": "^[a-zA-Z0-9_ \\/.:-]*$"
1296            }
1297        },
1298        "com.amazonaws.savingsplans#SavingsPlanOperationList": {
1299            "type": "list",
1300            "member": {
1301                "target": "com.amazonaws.savingsplans#SavingsPlanOperation"
1302            }
1303        },
1304        "com.amazonaws.savingsplans#SavingsPlanPaymentOption": {
1305            "type": "string",
1306            "traits": {
1307                "smithy.api#enum": [
1308                    {
1309                        "value": "All Upfront",
1310                        "name": "ALL_UPFRONT"
1311                    },
1312                    {
1313                        "value": "Partial Upfront",
1314                        "name": "PARTIAL_UPFRONT"
1315                    },
1316                    {
1317                        "value": "No Upfront",
1318                        "name": "NO_UPFRONT"
1319                    }
1320                ]
1321            }
1322        },
1323        "com.amazonaws.savingsplans#SavingsPlanPaymentOptionList": {
1324            "type": "list",
1325            "member": {
1326                "target": "com.amazonaws.savingsplans#SavingsPlanPaymentOption"
1327            }
1328        },
1329        "com.amazonaws.savingsplans#SavingsPlanProductType": {
1330            "type": "string",
1331            "traits": {
1332                "smithy.api#enum": [
1333                    {
1334                        "value": "EC2",
1335                        "name": "EC2"
1336                    },
1337                    {
1338                        "value": "Fargate",
1339                        "name": "FARGATE"
1340                    },
1341                    {
1342                        "value": "Lambda",
1343                        "name": "LAMBDA"
1344                    }
1345                ]
1346            }
1347        },
1348        "com.amazonaws.savingsplans#SavingsPlanProductTypeList": {
1349            "type": "list",
1350            "member": {
1351                "target": "com.amazonaws.savingsplans#SavingsPlanProductType"
1352            }
1353        },
1354        "com.amazonaws.savingsplans#SavingsPlanRate": {
1355            "type": "structure",
1356            "members": {
1357                "rate": {
1358                    "target": "com.amazonaws.savingsplans#Amount",
1359                    "traits": {
1360                        "smithy.api#documentation": "<p>The rate.</p>"
1361                    }
1362                },
1363                "currency": {
1364                    "target": "com.amazonaws.savingsplans#CurrencyCode",
1365                    "traits": {
1366                        "smithy.api#documentation": "<p>The currency.</p>"
1367                    }
1368                },
1369                "unit": {
1370                    "target": "com.amazonaws.savingsplans#SavingsPlanRateUnit",
1371                    "traits": {
1372                        "smithy.api#documentation": "<p>The unit.</p>"
1373                    }
1374                },
1375                "productType": {
1376                    "target": "com.amazonaws.savingsplans#SavingsPlanProductType",
1377                    "traits": {
1378                        "smithy.api#documentation": "<p>The product type.</p>"
1379                    }
1380                },
1381                "serviceCode": {
1382                    "target": "com.amazonaws.savingsplans#SavingsPlanRateServiceCode",
1383                    "traits": {
1384                        "smithy.api#documentation": "<p>The service.</p>"
1385                    }
1386                },
1387                "usageType": {
1388                    "target": "com.amazonaws.savingsplans#SavingsPlanRateUsageType",
1389                    "traits": {
1390                        "smithy.api#documentation": "<p>The usage details of the line item in the billing report.</p>"
1391                    }
1392                },
1393                "operation": {
1394                    "target": "com.amazonaws.savingsplans#SavingsPlanRateOperation",
1395                    "traits": {
1396                        "smithy.api#documentation": "<p>The specific AWS operation for the line item in the billing report.</p>"
1397                    }
1398                },
1399                "properties": {
1400                    "target": "com.amazonaws.savingsplans#SavingsPlanRatePropertyList",
1401                    "traits": {
1402                        "smithy.api#documentation": "<p>The properties.</p>"
1403                    }
1404                }
1405            },
1406            "traits": {
1407                "smithy.api#documentation": "<p>Information about a Savings Plan rate.</p>"
1408            }
1409        },
1410        "com.amazonaws.savingsplans#SavingsPlanRateFilter": {
1411            "type": "structure",
1412            "members": {
1413                "name": {
1414                    "target": "com.amazonaws.savingsplans#SavingsPlanRateFilterName",
1415                    "traits": {
1416                        "smithy.api#documentation": "<p>The filter name.</p>"
1417                    }
1418                },
1419                "values": {
1420                    "target": "com.amazonaws.savingsplans#ListOfStrings",
1421                    "traits": {
1422                        "smithy.api#documentation": "<p>The filter values.</p>"
1423                    }
1424                }
1425            },
1426            "traits": {
1427                "smithy.api#documentation": "<p>Information about a filter.</p>"
1428            }
1429        },
1430        "com.amazonaws.savingsplans#SavingsPlanRateFilterAttribute": {
1431            "type": "string",
1432            "traits": {
1433                "smithy.api#enum": [
1434                    {
1435                        "value": "region",
1436                        "name": "REGION"
1437                    },
1438                    {
1439                        "value": "instanceFamily",
1440                        "name": "INSTANCE_FAMILY"
1441                    },
1442                    {
1443                        "value": "instanceType",
1444                        "name": "INSTANCE_TYPE"
1445                    },
1446                    {
1447                        "value": "productDescription",
1448                        "name": "PRODUCT_DESCRIPTION"
1449                    },
1450                    {
1451                        "value": "tenancy",
1452                        "name": "TENANCY"
1453                    },
1454                    {
1455                        "value": "productId",
1456                        "name": "PRODUCT_ID"
1457                    }
1458                ]
1459            }
1460        },
1461        "com.amazonaws.savingsplans#SavingsPlanRateFilterList": {
1462            "type": "list",
1463            "member": {
1464                "target": "com.amazonaws.savingsplans#SavingsPlanRateFilter"
1465            }
1466        },
1467        "com.amazonaws.savingsplans#SavingsPlanRateFilterName": {
1468            "type": "string",
1469            "traits": {
1470                "smithy.api#enum": [
1471                    {
1472                        "value": "region",
1473                        "name": "REGION"
1474                    },
1475                    {
1476                        "value": "instanceType",
1477                        "name": "INSTANCE_TYPE"
1478                    },
1479                    {
1480                        "value": "productDescription",
1481                        "name": "PRODUCT_DESCRIPTION"
1482                    },
1483                    {
1484                        "value": "tenancy",
1485                        "name": "TENANCY"
1486                    },
1487                    {
1488                        "value": "productType",
1489                        "name": "PRODUCT_TYPE"
1490                    },
1491                    {
1492                        "value": "serviceCode",
1493                        "name": "SERVICE_CODE"
1494                    },
1495                    {
1496                        "value": "usageType",
1497                        "name": "USAGE_TYPE"
1498                    },
1499                    {
1500                        "value": "operation",
1501                        "name": "OPERATION"
1502                    }
1503                ]
1504            }
1505        },
1506        "com.amazonaws.savingsplans#SavingsPlanRateList": {
1507            "type": "list",
1508            "member": {
1509                "target": "com.amazonaws.savingsplans#SavingsPlanRate"
1510            }
1511        },
1512        "com.amazonaws.savingsplans#SavingsPlanRateOperation": {
1513            "type": "string",
1514            "traits": {
1515                "smithy.api#length": {
1516                    "min": 0,
1517                    "max": 255
1518                },
1519                "smithy.api#pattern": "^[a-zA-Z0-9_ \\/.:-]*$"
1520            }
1521        },
1522        "com.amazonaws.savingsplans#SavingsPlanRateOperationList": {
1523            "type": "list",
1524            "member": {
1525                "target": "com.amazonaws.savingsplans#SavingsPlanRateOperation"
1526            }
1527        },
1528        "com.amazonaws.savingsplans#SavingsPlanRatePricePerUnit": {
1529            "type": "string"
1530        },
1531        "com.amazonaws.savingsplans#SavingsPlanRateProperty": {
1532            "type": "structure",
1533            "members": {
1534                "name": {
1535                    "target": "com.amazonaws.savingsplans#SavingsPlanRatePropertyKey",
1536                    "traits": {
1537                        "smithy.api#documentation": "<p>The property name.</p>"
1538                    }
1539                },
1540                "value": {
1541                    "target": "com.amazonaws.savingsplans#JsonSafeFilterValueString",
1542                    "traits": {
1543                        "smithy.api#documentation": "<p>The property value.</p>"
1544                    }
1545                }
1546            },
1547            "traits": {
1548                "smithy.api#documentation": "<p>Information about a property.</p>"
1549            }
1550        },
1551        "com.amazonaws.savingsplans#SavingsPlanRatePropertyKey": {
1552            "type": "string",
1553            "traits": {
1554                "smithy.api#enum": [
1555                    {
1556                        "value": "region",
1557                        "name": "REGION"
1558                    },
1559                    {
1560                        "value": "instanceType",
1561                        "name": "INSTANCE_TYPE"
1562                    },
1563                    {
1564                        "value": "instanceFamily",
1565                        "name": "INSTANCE_FAMILY"
1566                    },
1567                    {
1568                        "value": "productDescription",
1569                        "name": "PRODUCT_DESCRIPTION"
1570                    },
1571                    {
1572                        "value": "tenancy",
1573                        "name": "TENANCY"
1574                    }
1575                ]
1576            }
1577        },
1578        "com.amazonaws.savingsplans#SavingsPlanRatePropertyList": {
1579            "type": "list",
1580            "member": {
1581                "target": "com.amazonaws.savingsplans#SavingsPlanRateProperty"
1582            }
1583        },
1584        "com.amazonaws.savingsplans#SavingsPlanRateServiceCode": {
1585            "type": "string",
1586            "traits": {
1587                "smithy.api#enum": [
1588                    {
1589                        "value": "AmazonEC2",
1590                        "name": "EC2"
1591                    },
1592                    {
1593                        "value": "AmazonECS",
1594                        "name": "FARGATE"
1595                    },
1596                    {
1597                        "value": "AWSLambda",
1598                        "name": "LAMBDA"
1599                    }
1600                ]
1601            }
1602        },
1603        "com.amazonaws.savingsplans#SavingsPlanRateServiceCodeList": {
1604            "type": "list",
1605            "member": {
1606                "target": "com.amazonaws.savingsplans#SavingsPlanRateServiceCode"
1607            }
1608        },
1609        "com.amazonaws.savingsplans#SavingsPlanRateUnit": {
1610            "type": "string",
1611            "traits": {
1612                "smithy.api#enum": [
1613                    {
1614                        "value": "Hrs",
1615                        "name": "HOURS"
1616                    },
1617                    {
1618                        "value": "Lambda-GB-Second",
1619                        "name": "LAMBDA_GB_SECOND"
1620                    },
1621                    {
1622                        "value": "Request",
1623                        "name": "REQUEST"
1624                    }
1625                ]
1626            }
1627        },
1628        "com.amazonaws.savingsplans#SavingsPlanRateUsageType": {
1629            "type": "string",
1630            "traits": {
1631                "smithy.api#length": {
1632                    "min": 0,
1633                    "max": 255
1634                },
1635                "smithy.api#pattern": "^[a-zA-Z0-9_ \\/.:-]+$"
1636            }
1637        },
1638        "com.amazonaws.savingsplans#SavingsPlanRateUsageTypeList": {
1639            "type": "list",
1640            "member": {
1641                "target": "com.amazonaws.savingsplans#SavingsPlanRateUsageType"
1642            }
1643        },
1644        "com.amazonaws.savingsplans#SavingsPlanServiceCode": {
1645            "type": "string",
1646            "traits": {
1647                "smithy.api#length": {
1648                    "min": 0,
1649                    "max": 255
1650                },
1651                "smithy.api#pattern": "^[a-zA-Z]+$"
1652            }
1653        },
1654        "com.amazonaws.savingsplans#SavingsPlanServiceCodeList": {
1655            "type": "list",
1656            "member": {
1657                "target": "com.amazonaws.savingsplans#SavingsPlanServiceCode"
1658            }
1659        },
1660        "com.amazonaws.savingsplans#SavingsPlanState": {
1661            "type": "string",
1662            "traits": {
1663                "smithy.api#enum": [
1664                    {
1665                        "value": "payment-pending",
1666                        "name": "PAYMENT_PENDING"
1667                    },
1668                    {
1669                        "value": "payment-failed",
1670                        "name": "PAYMENT_FAILED"
1671                    },
1672                    {
1673                        "value": "active",
1674                        "name": "ACTIVE"
1675                    },
1676                    {
1677                        "value": "retired",
1678                        "name": "RETIRED"
1679                    },
1680                    {
1681                        "value": "queued",
1682                        "name": "QUEUED"
1683                    },
1684                    {
1685                        "value": "queued-deleted",
1686                        "name": "QUEUED_DELETED"
1687                    }
1688                ]
1689            }
1690        },
1691        "com.amazonaws.savingsplans#SavingsPlanStateList": {
1692            "type": "list",
1693            "member": {
1694                "target": "com.amazonaws.savingsplans#SavingsPlanState"
1695            }
1696        },
1697        "com.amazonaws.savingsplans#SavingsPlanType": {
1698            "type": "string",
1699            "traits": {
1700                "smithy.api#enum": [
1701                    {
1702                        "value": "Compute",
1703                        "name": "COMPUTE"
1704                    },
1705                    {
1706                        "value": "EC2Instance",
1707                        "name": "EC2_INSTANCE"
1708                    }
1709                ]
1710            }
1711        },
1712        "com.amazonaws.savingsplans#SavingsPlanTypeList": {
1713            "type": "list",
1714            "member": {
1715                "target": "com.amazonaws.savingsplans#SavingsPlanType"
1716            }
1717        },
1718        "com.amazonaws.savingsplans#SavingsPlanUsageType": {
1719            "type": "string",
1720            "traits": {
1721                "smithy.api#length": {
1722                    "min": 0,
1723                    "max": 255
1724                },
1725                "smithy.api#pattern": "^[a-zA-Z0-9_ \\/.:-]+$"
1726            }
1727        },
1728        "com.amazonaws.savingsplans#SavingsPlanUsageTypeList": {
1729            "type": "list",
1730            "member": {
1731                "target": "com.amazonaws.savingsplans#SavingsPlanUsageType"
1732            }
1733        },
1734        "com.amazonaws.savingsplans#SavingsPlansDuration": {
1735            "type": "long",
1736            "traits": {
1737                "smithy.api#range": {
1738                    "min": 0
1739                }
1740            }
1741        },
1742        "com.amazonaws.savingsplans#SavingsPlansFilterName": {
1743            "type": "string",
1744            "traits": {
1745                "smithy.api#enum": [
1746                    {
1747                        "value": "region",
1748                        "name": "REGION"
1749                    },
1750                    {
1751                        "value": "ec2-instance-family",
1752                        "name": "EC2_INSTANCE_FAMILY"
1753                    },
1754                    {
1755                        "value": "commitment",
1756                        "name": "COMMITMENT"
1757                    },
1758                    {
1759                        "value": "upfront",
1760                        "name": "UPFRONT"
1761                    },
1762                    {
1763                        "value": "term",
1764                        "name": "TERM"
1765                    },
1766                    {
1767                        "value": "savings-plan-type",
1768                        "name": "SAVINGS_PLAN_TYPE"
1769                    },
1770                    {
1771                        "value": "payment-option",
1772                        "name": "PAYMENT_OPTION"
1773                    },
1774                    {
1775                        "value": "start",
1776                        "name": "START"
1777                    },
1778                    {
1779                        "value": "end",
1780                        "name": "END"
1781                    }
1782                ]
1783            }
1784        },
1785        "com.amazonaws.savingsplans#ServiceQuotaExceededException": {
1786            "type": "structure",
1787            "members": {
1788                "message": {
1789                    "target": "com.amazonaws.savingsplans#String",
1790                    "traits": {
1791                        "smithy.api#required": {}
1792                    }
1793                }
1794            },
1795            "traits": {
1796                "smithy.api#documentation": "<p>A service quota has been exceeded.</p>",
1797                "smithy.api#error": "client",
1798                "smithy.api#httpError": 402
1799            }
1800        },
1801        "com.amazonaws.savingsplans#String": {
1802            "type": "string"
1803        },
1804        "com.amazonaws.savingsplans#TagKey": {
1805            "type": "string"
1806        },
1807        "com.amazonaws.savingsplans#TagKeyList": {
1808            "type": "list",
1809            "member": {
1810                "target": "com.amazonaws.savingsplans#TagKey"
1811            }
1812        },
1813        "com.amazonaws.savingsplans#TagMap": {
1814            "type": "map",
1815            "key": {
1816                "target": "com.amazonaws.savingsplans#TagKey"
1817            },
1818            "value": {
1819                "target": "com.amazonaws.savingsplans#TagValue"
1820            }
1821        },
1822        "com.amazonaws.savingsplans#TagResource": {
1823            "type": "operation",
1824            "input": {
1825                "target": "com.amazonaws.savingsplans#TagResourceRequest"
1826            },
1827            "output": {
1828                "target": "com.amazonaws.savingsplans#TagResourceResponse"
1829            },
1830            "errors": [
1831                {
1832                    "target": "com.amazonaws.savingsplans#InternalServerException"
1833                },
1834                {
1835                    "target": "com.amazonaws.savingsplans#ResourceNotFoundException"
1836                },
1837                {
1838                    "target": "com.amazonaws.savingsplans#ServiceQuotaExceededException"
1839                },
1840                {
1841                    "target": "com.amazonaws.savingsplans#ValidationException"
1842                }
1843            ],
1844            "traits": {
1845                "smithy.api#documentation": "<p>Adds the specified tags to the specified resource.</p>",
1846                "smithy.api#http": {
1847                    "method": "POST",
1848                    "uri": "/TagResource",
1849                    "code": 200
1850                }
1851            }
1852        },
1853        "com.amazonaws.savingsplans#TagResourceRequest": {
1854            "type": "structure",
1855            "members": {
1856                "resourceArn": {
1857                    "target": "com.amazonaws.savingsplans#SavingsPlanArn",
1858                    "traits": {
1859                        "smithy.api#documentation": "<p>The Amazon Resource Name (ARN) of the resource.</p>",
1860                        "smithy.api#required": {}
1861                    }
1862                },
1863                "tags": {
1864                    "target": "com.amazonaws.savingsplans#TagMap",
1865                    "traits": {
1866                        "smithy.api#documentation": "<p>One or more tags. For example, { \"tags\": {\"key1\":\"value1\", \"key2\":\"value2\"} }.</p>",
1867                        "smithy.api#required": {}
1868                    }
1869                }
1870            }
1871        },
1872        "com.amazonaws.savingsplans#TagResourceResponse": {
1873            "type": "structure",
1874            "members": {}
1875        },
1876        "com.amazonaws.savingsplans#TagValue": {
1877            "type": "string"
1878        },
1879        "com.amazonaws.savingsplans#TermDurationInSeconds": {
1880            "type": "long"
1881        },
1882        "com.amazonaws.savingsplans#UUID": {
1883            "type": "string",
1884            "traits": {
1885                "smithy.api#pattern": "^(([0-9a-f]+)(-?))+$"
1886            }
1887        },
1888        "com.amazonaws.savingsplans#UUIDs": {
1889            "type": "list",
1890            "member": {
1891                "target": "com.amazonaws.savingsplans#UUID"
1892            }
1893        },
1894        "com.amazonaws.savingsplans#UntagResource": {
1895            "type": "operation",
1896            "input": {
1897                "target": "com.amazonaws.savingsplans#UntagResourceRequest"
1898            },
1899            "output": {
1900                "target": "com.amazonaws.savingsplans#UntagResourceResponse"
1901            },
1902            "errors": [
1903                {
1904                    "target": "com.amazonaws.savingsplans#InternalServerException"
1905                },
1906                {
1907                    "target": "com.amazonaws.savingsplans#ResourceNotFoundException"
1908                },
1909                {
1910                    "target": "com.amazonaws.savingsplans#ValidationException"
1911                }
1912            ],
1913            "traits": {
1914                "smithy.api#documentation": "<p>Removes the specified tags from the specified resource.</p>",
1915                "smithy.api#http": {
1916                    "method": "POST",
1917                    "uri": "/UntagResource",
1918                    "code": 200
1919                }
1920            }
1921        },
1922        "com.amazonaws.savingsplans#UntagResourceRequest": {
1923            "type": "structure",
1924            "members": {
1925                "resourceArn": {
1926                    "target": "com.amazonaws.savingsplans#SavingsPlanArn",
1927                    "traits": {
1928                        "smithy.api#documentation": "<p>The Amazon Resource Name (ARN) of the resource.</p>",
1929                        "smithy.api#required": {}
1930                    }
1931                },
1932                "tagKeys": {
1933                    "target": "com.amazonaws.savingsplans#TagKeyList",
1934                    "traits": {
1935                        "smithy.api#documentation": "<p>The tag keys.</p>",
1936                        "smithy.api#required": {}
1937                    }
1938                }
1939            }
1940        },
1941        "com.amazonaws.savingsplans#UntagResourceResponse": {
1942            "type": "structure",
1943            "members": {}
1944        },
1945        "com.amazonaws.savingsplans#ValidationException": {
1946            "type": "structure",
1947            "members": {
1948                "message": {
1949                    "target": "com.amazonaws.savingsplans#String",
1950                    "traits": {
1951                        "smithy.api#required": {}
1952                    }
1953                }
1954            },
1955            "traits": {
1956                "smithy.api#documentation": "<p>One of the input parameters is not valid.</p>",
1957                "smithy.api#error": "client",
1958                "smithy.api#httpError": 400
1959            }
1960        }
1961    }
1962}
1963