GetFreeTierUsage

enum_Dimension := [ "SERVICE", "OPERATION", "USAGE_TYPE", "REGION", "FREE_TIER_TYPE", "DESCRIPTION", "USAGE_PERCENTAGE" ]
enum_MatchOption := [ "EQUALS", "STARTS_WITH", "ENDS_WITH", "CONTAINS", "GREATER_THAN_OR_EQUAL" ]

valid {
    input.Body.filter.And[_] == NESTED
    input.Body.filter.Dimensions.Key == enum_Dimension[_]
    input.Body.filter.Dimensions.MatchOptions[_] == enum_MatchOption[_]
    input.Body.filter.Dimensions.Values[_] == STRING
    input.Body.filter.Not == NESTED
    input.Body.filter.Or[_] == NESTED
    input.Body.maxResults == INTEGER
    input.Body.nextToken == STRING
    input.ProviderMetadata.Account == STRING
    input.ProviderMetadata.AccessKeyId == STRING
    input.ProviderMetadata.Region == STRING
}