@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api AWS Savings Plans
@version 2019-06-28
@auth AWS SigV4
@endpoints 10
@toc CreateSavingsPlan(1), DeleteQueuedSavingsPlan(1), DescribeSavingsPlanRates(1), DescribeSavingsPlans(1), DescribeSavingsPlansOfferingRates(1), DescribeSavingsPlansOfferings(1), ListTagsForResource(1), ReturnSavingsPlan(1), TagResource(1), UntagResource(1)

@group CreateSavingsPlan
@endpoint POST /CreateSavingsPlan
@desc Creates a Savings Plan.
@required {savingsPlanOfferingId: str, commitment: str}
@optional {upfrontPaymentAmount: str, purchaseTime: str(timestamp), clientToken: str, tags: map<str,str>}
@returns(200) {savingsPlanId: str?}

@endgroup

@group DeleteQueuedSavingsPlan
@endpoint POST /DeleteQueuedSavingsPlan
@desc Deletes the queued purchase for the specified Savings Plan.
@required {savingsPlanId: str}

@endgroup

@group DescribeSavingsPlanRates
@endpoint POST /DescribeSavingsPlanRates
@desc Describes the rates for the specified Savings Plan.
@required {savingsPlanId: str}
@optional {filters: [SavingsPlanRateFilter], nextToken: str, maxResults: int}
@returns(200) {savingsPlanId: str?, searchResults: [SavingsPlanRate]?, nextToken: str?}

@endgroup

@group DescribeSavingsPlans
@endpoint POST /DescribeSavingsPlans
@desc Describes the specified Savings Plans.
@optional {savingsPlanArns: [str], savingsPlanIds: [str], nextToken: str, maxResults: int, states: [str], filters: [SavingsPlanFilter]}
@returns(200) {savingsPlans: [SavingsPlan]?, nextToken: str?}

@endgroup

@group DescribeSavingsPlansOfferingRates
@endpoint POST /DescribeSavingsPlansOfferingRates
@desc Describes the offering rates for the specified Savings Plans.
@optional {savingsPlanOfferingIds: [str], savingsPlanPaymentOptions: [str], savingsPlanTypes: [str], products: [str], serviceCodes: [str], usageTypes: [str], operations: [str], filters: [SavingsPlanOfferingRateFilterElement], nextToken: str, maxResults: int}
@returns(200) {searchResults: [SavingsPlanOfferingRate]?, nextToken: str?}

@endgroup

@group DescribeSavingsPlansOfferings
@endpoint POST /DescribeSavingsPlansOfferings
@desc Describes the offerings for the specified Savings Plans.
@optional {offeringIds: [str], paymentOptions: [str], productType: str, planTypes: [str], durations: [int(i64)], currencies: [str], descriptions: [str], serviceCodes: [str], usageTypes: [str], operations: [str], filters: [SavingsPlanOfferingFilterElement], nextToken: str, maxResults: int}
@returns(200) {searchResults: [SavingsPlanOffering]?, nextToken: str?}

@endgroup

@group ListTagsForResource
@endpoint POST /ListTagsForResource
@desc Lists the tags for the specified resource.
@required {resourceArn: str}
@returns(200) {tags: map<str,str>?}

@endgroup

@group ReturnSavingsPlan
@endpoint POST /ReturnSavingsPlan
@desc Returns the specified Savings Plan.
@required {savingsPlanId: str}
@optional {clientToken: str}
@returns(200) {savingsPlanId: str?}

@endgroup

@group TagResource
@endpoint POST /TagResource
@desc Adds the specified tags to the specified resource.
@required {resourceArn: str, tags: map<str,str>}

@endgroup

@group UntagResource
@endpoint POST /UntagResource
@desc Removes the specified tags from the specified resource.
@required {resourceArn: str, tagKeys: [str]}

@endgroup

@end
