{
  "version": "2.0",
  "service": "<p>Savings Plans are a pricing model that offer significant savings on AWS usage (for example, on Amazon EC2 instances). You commit to a consistent amount of usage, in USD per hour, for a term of 1 or 3 years, and receive a lower price for that usage. For more information, see the <a href=\"https://docs.aws.amazon.com/savingsplans/latest/userguide/\">AWS Savings Plans User Guide</a>.</p>",
  "operations": {
    "CreateSavingsPlan": "<p>Creates a Savings Plan.</p>",
    "DeleteQueuedSavingsPlan": "<p>Deletes the queued purchase for the specified Savings Plan.</p>",
    "DescribeSavingsPlanRates": "<p>Describes the specified Savings Plans rates.</p>",
    "DescribeSavingsPlans": "<p>Describes the specified Savings Plans.</p>",
    "DescribeSavingsPlansOfferingRates": "<p>Describes the specified Savings Plans offering rates.</p>",
    "DescribeSavingsPlansOfferings": "<p>Describes the specified Savings Plans offerings.</p>",
    "ListTagsForResource": "<p>Lists the tags for the specified resource.</p>",
    "TagResource": "<p>Adds the specified tags to the specified resource.</p>",
    "UntagResource": "<p>Removes the specified tags from the specified resource.</p>"
  },
  "shapes": {
    "Amount": {
      "base": null,
      "refs": {
        "CreateSavingsPlanRequest$commitment": "<p>The hourly commitment, in USD. This is a value between 0.001 and 1 million. You cannot specify more than five digits after the decimal point.</p>",
        "CreateSavingsPlanRequest$upfrontPaymentAmount": "<p>The up-front payment amount. This is a whole number between 50 and 99 percent of the total value of the Savings Plan. This parameter is supported only if the payment option is <code>Partial Upfront</code>.</p>",
        "SavingsPlan$commitment": "<p>The hourly commitment, in USD.</p>",
        "SavingsPlan$upfrontPaymentAmount": "<p>The up-front payment amount.</p>",
        "SavingsPlan$recurringPaymentAmount": "<p>The recurring payment amount.</p>",
        "SavingsPlanRate$rate": "<p>The rate.</p>"
      }
    },
    "ClientToken": {
      "base": null,
      "refs": {
        "CreateSavingsPlanRequest$clientToken": "<p>Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.</p>"
      }
    },
    "CreateSavingsPlanRequest": {
      "base": null,
      "refs": {
      }
    },
    "CreateSavingsPlanResponse": {
      "base": null,
      "refs": {
      }
    },
    "CurrencyCode": {
      "base": null,
      "refs": {
        "CurrencyList$member": null,
        "ParentSavingsPlanOffering$currency": "<p>The currency.</p>",
        "SavingsPlan$currency": "<p>The currency.</p>",
        "SavingsPlanOffering$currency": "<p>The currency.</p>",
        "SavingsPlanRate$currency": "<p>The currency.</p>"
      }
    },
    "CurrencyList": {
      "base": null,
      "refs": {
        "DescribeSavingsPlansOfferingsRequest$currencies": "<p>The currencies.</p>"
      }
    },
    "DateTime": {
      "base": null,
      "refs": {
        "CreateSavingsPlanRequest$purchaseTime": "<p>The time at which to purchase the Savings Plan, in UTC format (YYYY-MM-DDTHH:MM:SSZ).</p>"
      }
    },
    "DeleteQueuedSavingsPlanRequest": {
      "base": null,
      "refs": {
      }
    },
    "DeleteQueuedSavingsPlanResponse": {
      "base": null,
      "refs": {
      }
    },
    "DescribeSavingsPlanRatesRequest": {
      "base": null,
      "refs": {
      }
    },
    "DescribeSavingsPlanRatesResponse": {
      "base": null,
      "refs": {
      }
    },
    "DescribeSavingsPlansOfferingRatesRequest": {
      "base": null,
      "refs": {
      }
    },
    "DescribeSavingsPlansOfferingRatesResponse": {
      "base": null,
      "refs": {
      }
    },
    "DescribeSavingsPlansOfferingsRequest": {
      "base": null,
      "refs": {
      }
    },
    "DescribeSavingsPlansOfferingsResponse": {
      "base": null,
      "refs": {
      }
    },
    "DescribeSavingsPlansRequest": {
      "base": null,
      "refs": {
      }
    },
    "DescribeSavingsPlansResponse": {
      "base": null,
      "refs": {
      }
    },
    "DurationsList": {
      "base": null,
      "refs": {
        "DescribeSavingsPlansOfferingsRequest$durations": "<p>The durations, in seconds.</p>"
      }
    },
    "EC2InstanceFamily": {
      "base": null,
      "refs": {
        "SavingsPlan$ec2InstanceFamily": "<p>The EC2 instance family.</p>"
      }
    },
    "FilterValuesList": {
      "base": null,
      "refs": {
        "SavingsPlanOfferingFilterElement$values": "<p>The filter values.</p>",
        "SavingsPlanOfferingRateFilterElement$values": "<p>The filter values.</p>"
      }
    },
    "InternalServerException": {
      "base": "<p>An unexpected error occurred.</p>",
      "refs": {
      }
    },
    "JsonSafeFilterValueString": {
      "base": null,
      "refs": {
        "FilterValuesList$member": null,
        "SavingsPlanOfferingProperty$value": "<p>The property value.</p>",
        "SavingsPlanOfferingRateProperty$name": "<p>The property name.</p>",
        "SavingsPlanOfferingRateProperty$value": "<p>The property value.</p>",
        "SavingsPlanRateProperty$value": "<p>The property value.</p>"
      }
    },
    "ListOfStrings": {
      "base": null,
      "refs": {
        "SavingsPlanFilter$values": "<p>The filter value.</p>",
        "SavingsPlanRateFilter$values": "<p>The filter values.</p>"
      }
    },
    "ListTagsForResourceRequest": {
      "base": null,
      "refs": {
      }
    },
    "ListTagsForResourceResponse": {
      "base": null,
      "refs": {
      }
    },
    "MaxResults": {
      "base": null,
      "refs": {
        "DescribeSavingsPlanRatesRequest$maxResults": "<p>The maximum number of results to return with a single call. To retrieve additional results, make another call with the returned token value.</p>",
        "DescribeSavingsPlansRequest$maxResults": "<p>The maximum number of results to return with a single call. To retrieve additional results, make another call with the returned token value.</p>"
      }
    },
    "PageSize": {
      "base": null,
      "refs": {
        "DescribeSavingsPlansOfferingRatesRequest$maxResults": "<p>The maximum number of results to return with a single call. To retrieve additional results, make another call with the returned token value.</p>",
        "DescribeSavingsPlansOfferingsRequest$maxResults": "<p>The maximum number of results to return with a single call. To retrieve additional results, make another call with the returned token value.</p>"
      }
    },
    "PaginationToken": {
      "base": null,
      "refs": {
        "DescribeSavingsPlanRatesRequest$nextToken": "<p>The token for the next page of results.</p>",
        "DescribeSavingsPlanRatesResponse$nextToken": "<p>The token to use to retrieve the next page of results. This value is null when there are no more results to return. </p>",
        "DescribeSavingsPlansOfferingRatesRequest$nextToken": "<p>The token for the next page of results.</p>",
        "DescribeSavingsPlansOfferingRatesResponse$nextToken": "<p>The token to use to retrieve the next page of results. This value is null when there are no more results to return.</p>",
        "DescribeSavingsPlansOfferingsRequest$nextToken": "<p>The token for the next page of results.</p>",
        "DescribeSavingsPlansOfferingsResponse$nextToken": "<p>The token to use to retrieve the next page of results. This value is null when there are no more results to return.</p>",
        "DescribeSavingsPlansRequest$nextToken": "<p>The token for the next page of results.</p>",
        "DescribeSavingsPlansResponse$nextToken": "<p>The token to use to retrieve the next page of results. This value is null when there are no more results to return.</p>"
      }
    },
    "ParentSavingsPlanOffering": {
      "base": "<p>Information about a Savings Plan offering.</p>",
      "refs": {
        "SavingsPlanOfferingRate$savingsPlanOffering": "<p>The Savings Plan offering.</p>"
      }
    },
    "Region": {
      "base": null,
      "refs": {
        "SavingsPlan$region": "<p>The AWS Region.</p>"
      }
    },
    "ResourceNotFoundException": {
      "base": "<p>The specified resource was not found.</p>",
      "refs": {
      }
    },
    "SavingsPlan": {
      "base": "<p>Information about a Savings Plan.</p>",
      "refs": {
        "SavingsPlanList$member": null
      }
    },
    "SavingsPlanArn": {
      "base": null,
      "refs": {
        "ListTagsForResourceRequest$resourceArn": "<p>The Amazon Resource Name (ARN) of the resource.</p>",
        "SavingsPlan$savingsPlanArn": "<p>The Amazon Resource Name (ARN) of the Savings Plan.</p>",
        "SavingsPlanArnList$member": null,
        "TagResourceRequest$resourceArn": "<p>The Amazon Resource Name (ARN) of the resource.</p>",
        "UntagResourceRequest$resourceArn": "<p>The Amazon Resource Name (ARN) of the resource.</p>"
      }
    },
    "SavingsPlanArnList": {
      "base": null,
      "refs": {
        "DescribeSavingsPlansRequest$savingsPlanArns": "<p>The Amazon Resource Names (ARN) of the Savings Plans.</p>"
      }
    },
    "SavingsPlanDescription": {
      "base": null,
      "refs": {
        "ParentSavingsPlanOffering$planDescription": "<p>The description.</p>",
        "SavingsPlanDescriptionsList$member": null,
        "SavingsPlanOffering$description": "<p>The description.</p>"
      }
    },
    "SavingsPlanDescriptionsList": {
      "base": null,
      "refs": {
        "DescribeSavingsPlansOfferingsRequest$descriptions": "<p>The descriptions.</p>"
      }
    },
    "SavingsPlanFilter": {
      "base": "<p>Information about a filter.</p>",
      "refs": {
        "SavingsPlanFilterList$member": null
      }
    },
    "SavingsPlanFilterList": {
      "base": null,
      "refs": {
        "DescribeSavingsPlansRequest$filters": "<p>The filters.</p>"
      }
    },
    "SavingsPlanId": {
      "base": null,
      "refs": {
        "CreateSavingsPlanResponse$savingsPlanId": "<p>The ID of the Savings Plan.</p>",
        "DeleteQueuedSavingsPlanRequest$savingsPlanId": "<p>The ID of the Savings Plan.</p>",
        "DescribeSavingsPlanRatesRequest$savingsPlanId": "<p>The ID of the Savings Plan.</p>",
        "DescribeSavingsPlanRatesResponse$savingsPlanId": "<p>The ID of the Savings Plan.</p>",
        "SavingsPlan$savingsPlanId": "<p>The ID of the Savings Plan.</p>",
        "SavingsPlanIdList$member": null
      }
    },
    "SavingsPlanIdList": {
      "base": null,
      "refs": {
        "DescribeSavingsPlansRequest$savingsPlanIds": "<p>The IDs of the Savings Plans.</p>"
      }
    },
    "SavingsPlanList": {
      "base": null,
      "refs": {
        "DescribeSavingsPlansResponse$savingsPlans": "<p>Information about the Savings Plans.</p>"
      }
    },
    "SavingsPlanOffering": {
      "base": "<p>Information about a Savings Plan offering.</p>",
      "refs": {
        "SavingsPlanOfferingsList$member": null
      }
    },
    "SavingsPlanOfferingFilterAttribute": {
      "base": null,
      "refs": {
        "SavingsPlanOfferingFilterElement$name": "<p>The filter name.</p>"
      }
    },
    "SavingsPlanOfferingFilterElement": {
      "base": "<p>Information about a filter.</p>",
      "refs": {
        "SavingsPlanOfferingFiltersList$member": null
      }
    },
    "SavingsPlanOfferingFiltersList": {
      "base": null,
      "refs": {
        "DescribeSavingsPlansOfferingsRequest$filters": "<p>The filters.</p>"
      }
    },
    "SavingsPlanOfferingId": {
      "base": null,
      "refs": {
        "CreateSavingsPlanRequest$savingsPlanOfferingId": "<p>The ID of the offering.</p>",
        "SavingsPlan$offeringId": "<p>The ID of the offering.</p>"
      }
    },
    "SavingsPlanOfferingProperty": {
      "base": "<p>Information about a property.</p>",
      "refs": {
        "SavingsPlanOfferingPropertyList$member": null
      }
    },
    "SavingsPlanOfferingPropertyKey": {
      "base": null,
      "refs": {
        "SavingsPlanOfferingProperty$name": "<p>The property name.</p>"
      }
    },
    "SavingsPlanOfferingPropertyList": {
      "base": null,
      "refs": {
        "SavingsPlanOffering$properties": "<p>The properties.</p>"
      }
    },
    "SavingsPlanOfferingRate": {
      "base": "<p>Information about a Savings Plan offering rate.</p>",
      "refs": {
        "SavingsPlanOfferingRatesList$member": null
      }
    },
    "SavingsPlanOfferingRateFilterElement": {
      "base": "<p>Information about a filter.</p>",
      "refs": {
        "SavingsPlanOfferingRateFiltersList$member": null
      }
    },
    "SavingsPlanOfferingRateFiltersList": {
      "base": null,
      "refs": {
        "DescribeSavingsPlansOfferingRatesRequest$filters": "<p>The filters.</p>"
      }
    },
    "SavingsPlanOfferingRateProperty": {
      "base": "<p>Information about a property.</p>",
      "refs": {
        "SavingsPlanOfferingRatePropertyList$member": null
      }
    },
    "SavingsPlanOfferingRatePropertyList": {
      "base": null,
      "refs": {
        "SavingsPlanOfferingRate$properties": "<p>The properties.</p>"
      }
    },
    "SavingsPlanOfferingRatesList": {
      "base": null,
      "refs": {
        "DescribeSavingsPlansOfferingRatesResponse$searchResults": "<p>Information about the Savings Plans offering rates.</p>"
      }
    },
    "SavingsPlanOfferingsList": {
      "base": null,
      "refs": {
        "DescribeSavingsPlansOfferingsResponse$searchResults": "<p>Information about the Savings Plans offerings.</p>"
      }
    },
    "SavingsPlanOperation": {
      "base": null,
      "refs": {
        "SavingsPlanOffering$operation": "<p>The specific AWS operation for the line item in the billing report.</p>",
        "SavingsPlanOperationList$member": null
      }
    },
    "SavingsPlanOperationList": {
      "base": null,
      "refs": {
        "DescribeSavingsPlansOfferingsRequest$operations": "<p>The specific AWS operation for the line item in the billing report.</p>"
      }
    },
    "SavingsPlanPaymentOption": {
      "base": null,
      "refs": {
        "ParentSavingsPlanOffering$paymentOption": "<p>The payment option.</p>",
        "SavingsPlan$paymentOption": "<p>The payment option.</p>",
        "SavingsPlanOffering$paymentOption": "<p>The payment option.</p>",
        "SavingsPlanPaymentOptionList$member": null
      }
    },
    "SavingsPlanPaymentOptionList": {
      "base": null,
      "refs": {
        "DescribeSavingsPlansOfferingRatesRequest$savingsPlanPaymentOptions": "<p>The payment options.</p>",
        "DescribeSavingsPlansOfferingsRequest$paymentOptions": "<p>The payment options.</p>"
      }
    },
    "SavingsPlanProductType": {
      "base": null,
      "refs": {
        "DescribeSavingsPlansOfferingsRequest$productType": "<p>The product type.</p>",
        "SavingsPlanOfferingRate$productType": "<p>The product type.</p>",
        "SavingsPlanProductTypeList$member": null,
        "SavingsPlanRate$productType": "<p>The product type.</p>"
      }
    },
    "SavingsPlanProductTypeList": {
      "base": null,
      "refs": {
        "DescribeSavingsPlansOfferingRatesRequest$products": "<p>The AWS products.</p>",
        "SavingsPlan$productTypes": "<p>The product types.</p>",
        "SavingsPlanOffering$productTypes": "<p>The product type.</p>"
      }
    },
    "SavingsPlanRate": {
      "base": "<p>Information about a Savings Plan rate.</p>",
      "refs": {
        "SavingsPlanRateList$member": null
      }
    },
    "SavingsPlanRateFilter": {
      "base": "<p>Information about a filter.</p>",
      "refs": {
        "SavingsPlanRateFilterList$member": null
      }
    },
    "SavingsPlanRateFilterAttribute": {
      "base": null,
      "refs": {
        "SavingsPlanOfferingRateFilterElement$name": "<p>The filter name.</p>"
      }
    },
    "SavingsPlanRateFilterList": {
      "base": null,
      "refs": {
        "DescribeSavingsPlanRatesRequest$filters": "<p>The filters.</p>"
      }
    },
    "SavingsPlanRateFilterName": {
      "base": null,
      "refs": {
        "SavingsPlanRateFilter$name": "<p>The filter name.</p>"
      }
    },
    "SavingsPlanRateList": {
      "base": null,
      "refs": {
        "DescribeSavingsPlanRatesResponse$searchResults": "<p>Information about the Savings Plans rates.</p>"
      }
    },
    "SavingsPlanRateOperation": {
      "base": null,
      "refs": {
        "SavingsPlanOfferingRate$operation": "<p>The specific AWS operation for the line item in the billing report.</p>",
        "SavingsPlanRate$operation": "<p>The specific AWS operation for the line item in the billing report.</p>",
        "SavingsPlanRateOperationList$member": null
      }
    },
    "SavingsPlanRateOperationList": {
      "base": null,
      "refs": {
        "DescribeSavingsPlansOfferingRatesRequest$operations": "<p>The specific AWS operation for the line item in the billing report.</p>"
      }
    },
    "SavingsPlanRatePricePerUnit": {
      "base": null,
      "refs": {
        "SavingsPlanOfferingRate$rate": "<p>The Savings Plan rate.</p>"
      }
    },
    "SavingsPlanRateProperty": {
      "base": "<p>Information about a property.</p>",
      "refs": {
        "SavingsPlanRatePropertyList$member": null
      }
    },
    "SavingsPlanRatePropertyKey": {
      "base": null,
      "refs": {
        "SavingsPlanRateProperty$name": "<p>The property name.</p>"
      }
    },
    "SavingsPlanRatePropertyList": {
      "base": null,
      "refs": {
        "SavingsPlanRate$properties": "<p>The properties.</p>"
      }
    },
    "SavingsPlanRateServiceCode": {
      "base": null,
      "refs": {
        "SavingsPlanOfferingRate$serviceCode": "<p>The service.</p>",
        "SavingsPlanRate$serviceCode": "<p>The service.</p>",
        "SavingsPlanRateServiceCodeList$member": null
      }
    },
    "SavingsPlanRateServiceCodeList": {
      "base": null,
      "refs": {
        "DescribeSavingsPlansOfferingRatesRequest$serviceCodes": "<p>The services.</p>"
      }
    },
    "SavingsPlanRateUnit": {
      "base": null,
      "refs": {
        "SavingsPlanOfferingRate$unit": "<p>The unit.</p>",
        "SavingsPlanRate$unit": "<p>The unit.</p>"
      }
    },
    "SavingsPlanRateUsageType": {
      "base": null,
      "refs": {
        "SavingsPlanOfferingRate$usageType": "<p>The usage details of the line item in the billing report.</p>",
        "SavingsPlanRate$usageType": "<p>The usage details of the line item in the billing report.</p>",
        "SavingsPlanRateUsageTypeList$member": null
      }
    },
    "SavingsPlanRateUsageTypeList": {
      "base": null,
      "refs": {
        "DescribeSavingsPlansOfferingRatesRequest$usageTypes": "<p>The usage details of the line item in the billing report.</p>"
      }
    },
    "SavingsPlanServiceCode": {
      "base": null,
      "refs": {
        "SavingsPlanOffering$serviceCode": "<p>The service.</p>",
        "SavingsPlanServiceCodeList$member": null
      }
    },
    "SavingsPlanServiceCodeList": {
      "base": null,
      "refs": {
        "DescribeSavingsPlansOfferingsRequest$serviceCodes": "<p>The services.</p>"
      }
    },
    "SavingsPlanState": {
      "base": null,
      "refs": {
        "SavingsPlan$state": "<p>The state.</p>",
        "SavingsPlanStateList$member": null
      }
    },
    "SavingsPlanStateList": {
      "base": null,
      "refs": {
        "DescribeSavingsPlansRequest$states": "<p>The states.</p>"
      }
    },
    "SavingsPlanType": {
      "base": null,
      "refs": {
        "ParentSavingsPlanOffering$planType": "<p>The plan type.</p>",
        "SavingsPlan$savingsPlanType": "<p>The plan type.</p>",
        "SavingsPlanOffering$planType": "<p>The plan type.</p>",
        "SavingsPlanTypeList$member": null
      }
    },
    "SavingsPlanTypeList": {
      "base": null,
      "refs": {
        "DescribeSavingsPlansOfferingRatesRequest$savingsPlanTypes": "<p>The plan types.</p>",
        "DescribeSavingsPlansOfferingsRequest$planTypes": "<p>The plan type.</p>"
      }
    },
    "SavingsPlanUsageType": {
      "base": null,
      "refs": {
        "SavingsPlanOffering$usageType": "<p>The usage details of the line item in the billing report.</p>",
        "SavingsPlanUsageTypeList$member": null
      }
    },
    "SavingsPlanUsageTypeList": {
      "base": null,
      "refs": {
        "DescribeSavingsPlansOfferingsRequest$usageTypes": "<p>The usage details of the line item in the billing report.</p>"
      }
    },
    "SavingsPlansDuration": {
      "base": null,
      "refs": {
        "DurationsList$member": null,
        "ParentSavingsPlanOffering$durationSeconds": "<p>The duration, in seconds.</p>",
        "SavingsPlanOffering$durationSeconds": "<p>The duration, in seconds.</p>"
      }
    },
    "SavingsPlansFilterName": {
      "base": null,
      "refs": {
        "SavingsPlanFilter$name": "<p>The filter name.</p>"
      }
    },
    "ServiceQuotaExceededException": {
      "base": "<p>A service quota has been exceeded.</p>",
      "refs": {
      }
    },
    "String": {
      "base": null,
      "refs": {
        "InternalServerException$message": null,
        "ListOfStrings$member": null,
        "ResourceNotFoundException$message": null,
        "SavingsPlan$description": "<p>The description.</p>",
        "SavingsPlan$start": "<p>The start time.</p>",
        "SavingsPlan$end": "<p>The end time.</p>",
        "ServiceQuotaExceededException$message": null,
        "ValidationException$message": null
      }
    },
    "TagKey": {
      "base": null,
      "refs": {
        "TagKeyList$member": null,
        "TagMap$key": null
      }
    },
    "TagKeyList": {
      "base": null,
      "refs": {
        "UntagResourceRequest$tagKeys": "<p>The tag keys.</p>"
      }
    },
    "TagMap": {
      "base": null,
      "refs": {
        "CreateSavingsPlanRequest$tags": "<p>One or more tags.</p>",
        "ListTagsForResourceResponse$tags": "<p>Information about the tags.</p>",
        "SavingsPlan$tags": "<p>One or more tags.</p>",
        "TagResourceRequest$tags": "<p>One or more tags. For example, { \"tags\": {\"key1\":\"value1\", \"key2\":\"value2\"} }.</p>"
      }
    },
    "TagResourceRequest": {
      "base": null,
      "refs": {
      }
    },
    "TagResourceResponse": {
      "base": null,
      "refs": {
      }
    },
    "TagValue": {
      "base": null,
      "refs": {
        "TagMap$value": null
      }
    },
    "TermDurationInSeconds": {
      "base": null,
      "refs": {
        "SavingsPlan$termDurationInSeconds": "<p>The duration of the term, in seconds.</p>"
      }
    },
    "UUID": {
      "base": null,
      "refs": {
        "ParentSavingsPlanOffering$offeringId": "<p>The ID of the offering.</p>",
        "SavingsPlanOffering$offeringId": "<p>The ID of the offering.</p>",
        "UUIDs$member": null
      }
    },
    "UUIDs": {
      "base": null,
      "refs": {
        "DescribeSavingsPlansOfferingRatesRequest$savingsPlanOfferingIds": "<p>The IDs of the offerings.</p>",
        "DescribeSavingsPlansOfferingsRequest$offeringIds": "<p>The IDs of the offerings.</p>"
      }
    },
    "UntagResourceRequest": {
      "base": null,
      "refs": {
      }
    },
    "UntagResourceResponse": {
      "base": null,
      "refs": {
      }
    },
    "ValidationException": {
      "base": "<p>One of the input parameters is not valid.</p>",
      "refs": {
      }
    }
  }
}
