{
  "version":"2.0",
  "metadata":{
    "apiVersion":"2016-10-20",
    "endpointPrefix":"budgets",
    "jsonVersion":"1.1",
    "protocol":"json",
    "serviceAbbreviation":"AWSBudgets",
    "serviceFullName":"AWS Budgets",
    "serviceId":"Budgets",
    "signatureVersion":"v4",
    "targetPrefix":"AWSBudgetServiceGateway",
    "uid":"budgets-2016-10-20"
  },
  "operations":{
    "CreateBudget":{
      "name":"CreateBudget",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"CreateBudgetRequest"},
      "output":{"shape":"CreateBudgetResponse"},
      "errors":[
        {"shape":"InvalidParameterException"},
        {"shape":"InternalErrorException"},
        {"shape":"CreationLimitExceededException"},
        {"shape":"DuplicateRecordException"},
        {"shape":"AccessDeniedException"}
      ]
    },
    "CreateNotification":{
      "name":"CreateNotification",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"CreateNotificationRequest"},
      "output":{"shape":"CreateNotificationResponse"},
      "errors":[
        {"shape":"InternalErrorException"},
        {"shape":"InvalidParameterException"},
        {"shape":"NotFoundException"},
        {"shape":"CreationLimitExceededException"},
        {"shape":"DuplicateRecordException"},
        {"shape":"AccessDeniedException"}
      ]
    },
    "CreateSubscriber":{
      "name":"CreateSubscriber",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"CreateSubscriberRequest"},
      "output":{"shape":"CreateSubscriberResponse"},
      "errors":[
        {"shape":"InternalErrorException"},
        {"shape":"InvalidParameterException"},
        {"shape":"CreationLimitExceededException"},
        {"shape":"DuplicateRecordException"},
        {"shape":"NotFoundException"},
        {"shape":"AccessDeniedException"}
      ]
    },
    "DeleteBudget":{
      "name":"DeleteBudget",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"DeleteBudgetRequest"},
      "output":{"shape":"DeleteBudgetResponse"},
      "errors":[
        {"shape":"InternalErrorException"},
        {"shape":"InvalidParameterException"},
        {"shape":"NotFoundException"},
        {"shape":"AccessDeniedException"}
      ]
    },
    "DeleteNotification":{
      "name":"DeleteNotification",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"DeleteNotificationRequest"},
      "output":{"shape":"DeleteNotificationResponse"},
      "errors":[
        {"shape":"InvalidParameterException"},
        {"shape":"InternalErrorException"},
        {"shape":"NotFoundException"},
        {"shape":"AccessDeniedException"}
      ]
    },
    "DeleteSubscriber":{
      "name":"DeleteSubscriber",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"DeleteSubscriberRequest"},
      "output":{"shape":"DeleteSubscriberResponse"},
      "errors":[
        {"shape":"InternalErrorException"},
        {"shape":"InvalidParameterException"},
        {"shape":"NotFoundException"},
        {"shape":"AccessDeniedException"}
      ]
    },
    "DescribeBudget":{
      "name":"DescribeBudget",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"DescribeBudgetRequest"},
      "output":{"shape":"DescribeBudgetResponse"},
      "errors":[
        {"shape":"InternalErrorException"},
        {"shape":"InvalidParameterException"},
        {"shape":"NotFoundException"},
        {"shape":"AccessDeniedException"}
      ]
    },
    "DescribeBudgetPerformanceHistory":{
      "name":"DescribeBudgetPerformanceHistory",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"DescribeBudgetPerformanceHistoryRequest"},
      "output":{"shape":"DescribeBudgetPerformanceHistoryResponse"},
      "errors":[
        {"shape":"InternalErrorException"},
        {"shape":"InvalidParameterException"},
        {"shape":"NotFoundException"},
        {"shape":"InvalidNextTokenException"},
        {"shape":"ExpiredNextTokenException"},
        {"shape":"AccessDeniedException"}
      ]
    },
    "DescribeBudgets":{
      "name":"DescribeBudgets",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"DescribeBudgetsRequest"},
      "output":{"shape":"DescribeBudgetsResponse"},
      "errors":[
        {"shape":"InternalErrorException"},
        {"shape":"InvalidParameterException"},
        {"shape":"NotFoundException"},
        {"shape":"InvalidNextTokenException"},
        {"shape":"ExpiredNextTokenException"},
        {"shape":"AccessDeniedException"}
      ]
    },
    "DescribeNotificationsForBudget":{
      "name":"DescribeNotificationsForBudget",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"DescribeNotificationsForBudgetRequest"},
      "output":{"shape":"DescribeNotificationsForBudgetResponse"},
      "errors":[
        {"shape":"InternalErrorException"},
        {"shape":"InvalidParameterException"},
        {"shape":"NotFoundException"},
        {"shape":"InvalidNextTokenException"},
        {"shape":"ExpiredNextTokenException"},
        {"shape":"AccessDeniedException"}
      ]
    },
    "DescribeSubscribersForNotification":{
      "name":"DescribeSubscribersForNotification",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"DescribeSubscribersForNotificationRequest"},
      "output":{"shape":"DescribeSubscribersForNotificationResponse"},
      "errors":[
        {"shape":"InternalErrorException"},
        {"shape":"NotFoundException"},
        {"shape":"InvalidParameterException"},
        {"shape":"InvalidNextTokenException"},
        {"shape":"ExpiredNextTokenException"},
        {"shape":"AccessDeniedException"}
      ]
    },
    "UpdateBudget":{
      "name":"UpdateBudget",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"UpdateBudgetRequest"},
      "output":{"shape":"UpdateBudgetResponse"},
      "errors":[
        {"shape":"InternalErrorException"},
        {"shape":"InvalidParameterException"},
        {"shape":"NotFoundException"},
        {"shape":"AccessDeniedException"}
      ]
    },
    "UpdateNotification":{
      "name":"UpdateNotification",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"UpdateNotificationRequest"},
      "output":{"shape":"UpdateNotificationResponse"},
      "errors":[
        {"shape":"InternalErrorException"},
        {"shape":"InvalidParameterException"},
        {"shape":"NotFoundException"},
        {"shape":"DuplicateRecordException"},
        {"shape":"AccessDeniedException"}
      ]
    },
    "UpdateSubscriber":{
      "name":"UpdateSubscriber",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"UpdateSubscriberRequest"},
      "output":{"shape":"UpdateSubscriberResponse"},
      "errors":[
        {"shape":"InternalErrorException"},
        {"shape":"InvalidParameterException"},
        {"shape":"NotFoundException"},
        {"shape":"DuplicateRecordException"},
        {"shape":"AccessDeniedException"}
      ]
    }
  },
  "shapes":{
    "AccessDeniedException":{
      "type":"structure",
      "members":{
        "Message":{"shape":"errorMessage"}
      },
      "exception":true
    },
    "AccountId":{
      "type":"string",
      "max":12,
      "min":12,
      "pattern":"\\d{12}"
    },
    "Budget":{
      "type":"structure",
      "required":[
        "BudgetName",
        "TimeUnit",
        "BudgetType"
      ],
      "members":{
        "BudgetName":{"shape":"BudgetName"},
        "BudgetLimit":{"shape":"Spend"},
        "PlannedBudgetLimits":{"shape":"PlannedBudgetLimits"},
        "CostFilters":{"shape":"CostFilters"},
        "CostTypes":{"shape":"CostTypes"},
        "TimeUnit":{"shape":"TimeUnit"},
        "TimePeriod":{"shape":"TimePeriod"},
        "CalculatedSpend":{"shape":"CalculatedSpend"},
        "BudgetType":{"shape":"BudgetType"},
        "LastUpdatedTime":{"shape":"GenericTimestamp"}
      }
    },
    "BudgetName":{
      "type":"string",
      "max":100,
      "min":1,
      "pattern":"[^:\\\\]+"
    },
    "BudgetPerformanceHistory":{
      "type":"structure",
      "members":{
        "BudgetName":{"shape":"BudgetName"},
        "BudgetType":{"shape":"BudgetType"},
        "CostFilters":{"shape":"CostFilters"},
        "CostTypes":{"shape":"CostTypes"},
        "TimeUnit":{"shape":"TimeUnit"},
        "BudgetedAndActualAmountsList":{"shape":"BudgetedAndActualAmountsList"}
      }
    },
    "BudgetType":{
      "type":"string",
      "enum":[
        "USAGE",
        "COST",
        "RI_UTILIZATION",
        "RI_COVERAGE",
        "SAVINGS_PLANS_UTILIZATION",
        "SAVINGS_PLANS_COVERAGE"
      ]
    },
    "BudgetedAndActualAmounts":{
      "type":"structure",
      "members":{
        "BudgetedAmount":{"shape":"Spend"},
        "ActualAmount":{"shape":"Spend"},
        "TimePeriod":{"shape":"TimePeriod"}
      }
    },
    "BudgetedAndActualAmountsList":{
      "type":"list",
      "member":{"shape":"BudgetedAndActualAmounts"}
    },
    "Budgets":{
      "type":"list",
      "member":{"shape":"Budget"}
    },
    "CalculatedSpend":{
      "type":"structure",
      "required":["ActualSpend"],
      "members":{
        "ActualSpend":{"shape":"Spend"},
        "ForecastedSpend":{"shape":"Spend"}
      }
    },
    "ComparisonOperator":{
      "type":"string",
      "enum":[
        "GREATER_THAN",
        "LESS_THAN",
        "EQUAL_TO"
      ]
    },
    "CostFilters":{
      "type":"map",
      "key":{"shape":"GenericString"},
      "value":{"shape":"DimensionValues"}
    },
    "CostTypes":{
      "type":"structure",
      "members":{
        "IncludeTax":{"shape":"NullableBoolean"},
        "IncludeSubscription":{"shape":"NullableBoolean"},
        "UseBlended":{"shape":"NullableBoolean"},
        "IncludeRefund":{"shape":"NullableBoolean"},
        "IncludeCredit":{"shape":"NullableBoolean"},
        "IncludeUpfront":{"shape":"NullableBoolean"},
        "IncludeRecurring":{"shape":"NullableBoolean"},
        "IncludeOtherSubscription":{"shape":"NullableBoolean"},
        "IncludeSupport":{"shape":"NullableBoolean"},
        "IncludeDiscount":{"shape":"NullableBoolean"},
        "UseAmortized":{"shape":"NullableBoolean"}
      }
    },
    "CreateBudgetRequest":{
      "type":"structure",
      "required":[
        "AccountId",
        "Budget"
      ],
      "members":{
        "AccountId":{"shape":"AccountId"},
        "Budget":{"shape":"Budget"},
        "NotificationsWithSubscribers":{"shape":"NotificationWithSubscribersList"}
      }
    },
    "CreateBudgetResponse":{
      "type":"structure",
      "members":{
      }
    },
    "CreateNotificationRequest":{
      "type":"structure",
      "required":[
        "AccountId",
        "BudgetName",
        "Notification",
        "Subscribers"
      ],
      "members":{
        "AccountId":{"shape":"AccountId"},
        "BudgetName":{"shape":"BudgetName"},
        "Notification":{"shape":"Notification"},
        "Subscribers":{"shape":"Subscribers"}
      }
    },
    "CreateNotificationResponse":{
      "type":"structure",
      "members":{
      }
    },
    "CreateSubscriberRequest":{
      "type":"structure",
      "required":[
        "AccountId",
        "BudgetName",
        "Notification",
        "Subscriber"
      ],
      "members":{
        "AccountId":{"shape":"AccountId"},
        "BudgetName":{"shape":"BudgetName"},
        "Notification":{"shape":"Notification"},
        "Subscriber":{"shape":"Subscriber"}
      }
    },
    "CreateSubscriberResponse":{
      "type":"structure",
      "members":{
      }
    },
    "CreationLimitExceededException":{
      "type":"structure",
      "members":{
        "Message":{"shape":"errorMessage"}
      },
      "exception":true
    },
    "DeleteBudgetRequest":{
      "type":"structure",
      "required":[
        "AccountId",
        "BudgetName"
      ],
      "members":{
        "AccountId":{"shape":"AccountId"},
        "BudgetName":{"shape":"BudgetName"}
      }
    },
    "DeleteBudgetResponse":{
      "type":"structure",
      "members":{
      }
    },
    "DeleteNotificationRequest":{
      "type":"structure",
      "required":[
        "AccountId",
        "BudgetName",
        "Notification"
      ],
      "members":{
        "AccountId":{"shape":"AccountId"},
        "BudgetName":{"shape":"BudgetName"},
        "Notification":{"shape":"Notification"}
      }
    },
    "DeleteNotificationResponse":{
      "type":"structure",
      "members":{
      }
    },
    "DeleteSubscriberRequest":{
      "type":"structure",
      "required":[
        "AccountId",
        "BudgetName",
        "Notification",
        "Subscriber"
      ],
      "members":{
        "AccountId":{"shape":"AccountId"},
        "BudgetName":{"shape":"BudgetName"},
        "Notification":{"shape":"Notification"},
        "Subscriber":{"shape":"Subscriber"}
      }
    },
    "DeleteSubscriberResponse":{
      "type":"structure",
      "members":{
      }
    },
    "DescribeBudgetPerformanceHistoryRequest":{
      "type":"structure",
      "required":[
        "AccountId",
        "BudgetName"
      ],
      "members":{
        "AccountId":{"shape":"AccountId"},
        "BudgetName":{"shape":"BudgetName"},
        "TimePeriod":{"shape":"TimePeriod"},
        "MaxResults":{"shape":"MaxResults"},
        "NextToken":{"shape":"GenericString"}
      }
    },
    "DescribeBudgetPerformanceHistoryResponse":{
      "type":"structure",
      "members":{
        "BudgetPerformanceHistory":{"shape":"BudgetPerformanceHistory"},
        "NextToken":{"shape":"GenericString"}
      }
    },
    "DescribeBudgetRequest":{
      "type":"structure",
      "required":[
        "AccountId",
        "BudgetName"
      ],
      "members":{
        "AccountId":{"shape":"AccountId"},
        "BudgetName":{"shape":"BudgetName"}
      }
    },
    "DescribeBudgetResponse":{
      "type":"structure",
      "members":{
        "Budget":{"shape":"Budget"}
      }
    },
    "DescribeBudgetsRequest":{
      "type":"structure",
      "required":["AccountId"],
      "members":{
        "AccountId":{"shape":"AccountId"},
        "MaxResults":{"shape":"MaxResults"},
        "NextToken":{"shape":"GenericString"}
      }
    },
    "DescribeBudgetsResponse":{
      "type":"structure",
      "members":{
        "Budgets":{"shape":"Budgets"},
        "NextToken":{"shape":"GenericString"}
      }
    },
    "DescribeNotificationsForBudgetRequest":{
      "type":"structure",
      "required":[
        "AccountId",
        "BudgetName"
      ],
      "members":{
        "AccountId":{"shape":"AccountId"},
        "BudgetName":{"shape":"BudgetName"},
        "MaxResults":{"shape":"MaxResults"},
        "NextToken":{"shape":"GenericString"}
      }
    },
    "DescribeNotificationsForBudgetResponse":{
      "type":"structure",
      "members":{
        "Notifications":{"shape":"Notifications"},
        "NextToken":{"shape":"GenericString"}
      }
    },
    "DescribeSubscribersForNotificationRequest":{
      "type":"structure",
      "required":[
        "AccountId",
        "BudgetName",
        "Notification"
      ],
      "members":{
        "AccountId":{"shape":"AccountId"},
        "BudgetName":{"shape":"BudgetName"},
        "Notification":{"shape":"Notification"},
        "MaxResults":{"shape":"MaxResults"},
        "NextToken":{"shape":"GenericString"}
      }
    },
    "DescribeSubscribersForNotificationResponse":{
      "type":"structure",
      "members":{
        "Subscribers":{"shape":"Subscribers"},
        "NextToken":{"shape":"GenericString"}
      }
    },
    "DimensionValues":{
      "type":"list",
      "member":{"shape":"GenericString"}
    },
    "DuplicateRecordException":{
      "type":"structure",
      "members":{
        "Message":{"shape":"errorMessage"}
      },
      "exception":true
    },
    "ExpiredNextTokenException":{
      "type":"structure",
      "members":{
        "Message":{"shape":"errorMessage"}
      },
      "exception":true
    },
    "GenericString":{
      "type":"string",
      "max":2147483647,
      "min":0,
      "pattern":".*"
    },
    "GenericTimestamp":{"type":"timestamp"},
    "InternalErrorException":{
      "type":"structure",
      "members":{
        "Message":{"shape":"errorMessage"}
      },
      "exception":true
    },
    "InvalidNextTokenException":{
      "type":"structure",
      "members":{
        "Message":{"shape":"errorMessage"}
      },
      "exception":true
    },
    "InvalidParameterException":{
      "type":"structure",
      "members":{
        "Message":{"shape":"errorMessage"}
      },
      "exception":true
    },
    "MaxResults":{
      "type":"integer",
      "box":true,
      "max":100,
      "min":1
    },
    "NotFoundException":{
      "type":"structure",
      "members":{
        "Message":{"shape":"errorMessage"}
      },
      "exception":true
    },
    "Notification":{
      "type":"structure",
      "required":[
        "NotificationType",
        "ComparisonOperator",
        "Threshold"
      ],
      "members":{
        "NotificationType":{"shape":"NotificationType"},
        "ComparisonOperator":{"shape":"ComparisonOperator"},
        "Threshold":{"shape":"NotificationThreshold"},
        "ThresholdType":{"shape":"ThresholdType"},
        "NotificationState":{"shape":"NotificationState"}
      }
    },
    "NotificationState":{
      "type":"string",
      "enum":[
        "OK",
        "ALARM"
      ]
    },
    "NotificationThreshold":{
      "type":"double",
      "max":1000000000,
      "min":0
    },
    "NotificationType":{
      "type":"string",
      "enum":[
        "ACTUAL",
        "FORECASTED"
      ]
    },
    "NotificationWithSubscribers":{
      "type":"structure",
      "required":[
        "Notification",
        "Subscribers"
      ],
      "members":{
        "Notification":{"shape":"Notification"},
        "Subscribers":{"shape":"Subscribers"}
      }
    },
    "NotificationWithSubscribersList":{
      "type":"list",
      "member":{"shape":"NotificationWithSubscribers"},
      "max":5
    },
    "Notifications":{
      "type":"list",
      "member":{"shape":"Notification"}
    },
    "NullableBoolean":{
      "type":"boolean",
      "box":true
    },
    "NumericValue":{
      "type":"string",
      "max":2147483647,
      "min":1,
      "pattern":"([0-9]*\\.)?[0-9]+"
    },
    "PlannedBudgetLimits":{
      "type":"map",
      "key":{"shape":"GenericString"},
      "value":{"shape":"Spend"}
    },
    "Spend":{
      "type":"structure",
      "required":[
        "Amount",
        "Unit"
      ],
      "members":{
        "Amount":{"shape":"NumericValue"},
        "Unit":{"shape":"UnitValue"}
      }
    },
    "Subscriber":{
      "type":"structure",
      "required":[
        "SubscriptionType",
        "Address"
      ],
      "members":{
        "SubscriptionType":{"shape":"SubscriptionType"},
        "Address":{"shape":"SubscriberAddress"}
      }
    },
    "SubscriberAddress":{
      "type":"string",
      "max":2147483647,
      "min":1,
      "pattern":"(.*[\\n\\r\\t\\f\\ ]?)*",
      "sensitive":true
    },
    "Subscribers":{
      "type":"list",
      "member":{"shape":"Subscriber"},
      "max":11,
      "min":1
    },
    "SubscriptionType":{
      "type":"string",
      "enum":[
        "SNS",
        "EMAIL"
      ]
    },
    "ThresholdType":{
      "type":"string",
      "enum":[
        "PERCENTAGE",
        "ABSOLUTE_VALUE"
      ]
    },
    "TimePeriod":{
      "type":"structure",
      "members":{
        "Start":{"shape":"GenericTimestamp"},
        "End":{"shape":"GenericTimestamp"}
      }
    },
    "TimeUnit":{
      "type":"string",
      "enum":[
        "DAILY",
        "MONTHLY",
        "QUARTERLY",
        "ANNUALLY"
      ]
    },
    "UnitValue":{
      "type":"string",
      "max":2147483647,
      "min":1,
      "pattern":".*"
    },
    "UpdateBudgetRequest":{
      "type":"structure",
      "required":[
        "AccountId",
        "NewBudget"
      ],
      "members":{
        "AccountId":{"shape":"AccountId"},
        "NewBudget":{"shape":"Budget"}
      }
    },
    "UpdateBudgetResponse":{
      "type":"structure",
      "members":{
      }
    },
    "UpdateNotificationRequest":{
      "type":"structure",
      "required":[
        "AccountId",
        "BudgetName",
        "OldNotification",
        "NewNotification"
      ],
      "members":{
        "AccountId":{"shape":"AccountId"},
        "BudgetName":{"shape":"BudgetName"},
        "OldNotification":{"shape":"Notification"},
        "NewNotification":{"shape":"Notification"}
      }
    },
    "UpdateNotificationResponse":{
      "type":"structure",
      "members":{
      }
    },
    "UpdateSubscriberRequest":{
      "type":"structure",
      "required":[
        "AccountId",
        "BudgetName",
        "Notification",
        "OldSubscriber",
        "NewSubscriber"
      ],
      "members":{
        "AccountId":{"shape":"AccountId"},
        "BudgetName":{"shape":"BudgetName"},
        "Notification":{"shape":"Notification"},
        "OldSubscriber":{"shape":"Subscriber"},
        "NewSubscriber":{"shape":"Subscriber"}
      }
    },
    "UpdateSubscriberResponse":{
      "type":"structure",
      "members":{
      }
    },
    "errorMessage":{"type":"string"}
  }
}
