{
  "version": "2.0",
  "metadata": {
    "apiVersion": "2016-10-20",
    "endpointPrefix": "budgets",
    "jsonVersion": "1.1",
    "protocol": "json",
    "serviceAbbreviation": "AWSBudgets",
    "serviceFullName": "AWS Budgets",
    "signatureVersion": "v4",
    "targetPrefix": "AWSBudgetServiceGateway"
  },
  "operations": {
    "CreateBudget": {
      "input": {
        "type": "structure",
        "required": [
          "AccountId",
          "Budget"
        ],
        "members": {
          "AccountId": {},
          "Budget": {
            "shape": "S3"
          },
          "NotificationsWithSubscribers": {
            "type": "list",
            "member": {
              "type": "structure",
              "required": [
                "Notification",
                "Subscribers"
              ],
              "members": {
                "Notification": {
                  "shape": "Sj"
                },
                "Subscribers": {
                  "shape": "Sn"
                }
              }
            }
          }
        }
      },
      "output": {
        "type": "structure",
        "members": {}
      }
    },
    "CreateNotification": {
      "input": {
        "type": "structure",
        "required": [
          "AccountId",
          "BudgetName",
          "Notification",
          "Subscribers"
        ],
        "members": {
          "AccountId": {},
          "BudgetName": {},
          "Notification": {
            "shape": "Sj"
          },
          "Subscribers": {
            "shape": "Sn"
          }
        }
      },
      "output": {
        "type": "structure",
        "members": {}
      }
    },
    "CreateSubscriber": {
      "input": {
        "type": "structure",
        "required": [
          "AccountId",
          "BudgetName",
          "Notification",
          "Subscriber"
        ],
        "members": {
          "AccountId": {},
          "BudgetName": {},
          "Notification": {
            "shape": "Sj"
          },
          "Subscriber": {
            "shape": "So"
          }
        }
      },
      "output": {
        "type": "structure",
        "members": {}
      }
    },
    "DeleteBudget": {
      "input": {
        "type": "structure",
        "required": [
          "AccountId",
          "BudgetName"
        ],
        "members": {
          "AccountId": {},
          "BudgetName": {}
        }
      },
      "output": {
        "type": "structure",
        "members": {}
      }
    },
    "DeleteNotification": {
      "input": {
        "type": "structure",
        "required": [
          "AccountId",
          "BudgetName",
          "Notification"
        ],
        "members": {
          "AccountId": {},
          "BudgetName": {},
          "Notification": {
            "shape": "Sj"
          }
        }
      },
      "output": {
        "type": "structure",
        "members": {}
      }
    },
    "DeleteSubscriber": {
      "input": {
        "type": "structure",
        "required": [
          "AccountId",
          "BudgetName",
          "Notification",
          "Subscriber"
        ],
        "members": {
          "AccountId": {},
          "BudgetName": {},
          "Notification": {
            "shape": "Sj"
          },
          "Subscriber": {
            "shape": "So"
          }
        }
      },
      "output": {
        "type": "structure",
        "members": {}
      }
    },
    "DescribeBudget": {
      "input": {
        "type": "structure",
        "required": [
          "AccountId",
          "BudgetName"
        ],
        "members": {
          "AccountId": {},
          "BudgetName": {}
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "Budget": {
            "shape": "S3"
          }
        }
      }
    },
    "DescribeBudgets": {
      "input": {
        "type": "structure",
        "required": [
          "AccountId"
        ],
        "members": {
          "AccountId": {},
          "MaxResults": {
            "type": "integer"
          },
          "NextToken": {}
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "Budgets": {
            "type": "list",
            "member": {
              "shape": "S3"
            }
          },
          "NextToken": {}
        }
      }
    },
    "DescribeNotificationsForBudget": {
      "input": {
        "type": "structure",
        "required": [
          "AccountId",
          "BudgetName"
        ],
        "members": {
          "AccountId": {},
          "BudgetName": {},
          "MaxResults": {
            "type": "integer"
          },
          "NextToken": {}
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "Notifications": {
            "type": "list",
            "member": {
              "shape": "Sj"
            }
          },
          "NextToken": {}
        }
      }
    },
    "DescribeSubscribersForNotification": {
      "input": {
        "type": "structure",
        "required": [
          "AccountId",
          "BudgetName",
          "Notification"
        ],
        "members": {
          "AccountId": {},
          "BudgetName": {},
          "Notification": {
            "shape": "Sj"
          },
          "MaxResults": {
            "type": "integer"
          },
          "NextToken": {}
        }
      },
      "output": {
        "type": "structure",
        "members": {
          "Subscribers": {
            "shape": "Sn"
          },
          "NextToken": {}
        }
      }
    },
    "UpdateBudget": {
      "input": {
        "type": "structure",
        "required": [
          "AccountId",
          "NewBudget"
        ],
        "members": {
          "AccountId": {},
          "NewBudget": {
            "shape": "S3"
          }
        }
      },
      "output": {
        "type": "structure",
        "members": {}
      }
    },
    "UpdateNotification": {
      "input": {
        "type": "structure",
        "required": [
          "AccountId",
          "BudgetName",
          "OldNotification",
          "NewNotification"
        ],
        "members": {
          "AccountId": {},
          "BudgetName": {},
          "OldNotification": {
            "shape": "Sj"
          },
          "NewNotification": {
            "shape": "Sj"
          }
        }
      },
      "output": {
        "type": "structure",
        "members": {}
      }
    },
    "UpdateSubscriber": {
      "input": {
        "type": "structure",
        "required": [
          "AccountId",
          "BudgetName",
          "Notification",
          "OldSubscriber",
          "NewSubscriber"
        ],
        "members": {
          "AccountId": {},
          "BudgetName": {},
          "Notification": {
            "shape": "Sj"
          },
          "OldSubscriber": {
            "shape": "So"
          },
          "NewSubscriber": {
            "shape": "So"
          }
        }
      },
      "output": {
        "type": "structure",
        "members": {}
      }
    }
  },
  "shapes": {
    "S3": {
      "type": "structure",
      "required": [
        "BudgetName",
        "BudgetLimit",
        "CostTypes",
        "TimeUnit",
        "TimePeriod",
        "BudgetType"
      ],
      "members": {
        "BudgetName": {},
        "BudgetLimit": {
          "shape": "S5"
        },
        "CostFilters": {
          "type": "map",
          "key": {},
          "value": {
            "type": "list",
            "member": {}
          }
        },
        "CostTypes": {
          "type": "structure",
          "required": [
            "IncludeTax",
            "IncludeSubscription",
            "UseBlended"
          ],
          "members": {
            "IncludeTax": {
              "type": "boolean"
            },
            "IncludeSubscription": {
              "type": "boolean"
            },
            "UseBlended": {
              "type": "boolean"
            }
          }
        },
        "TimeUnit": {},
        "TimePeriod": {
          "type": "structure",
          "required": [
            "Start",
            "End"
          ],
          "members": {
            "Start": {
              "type": "timestamp"
            },
            "End": {
              "type": "timestamp"
            }
          }
        },
        "CalculatedSpend": {
          "type": "structure",
          "required": [
            "ActualSpend"
          ],
          "members": {
            "ActualSpend": {
              "shape": "S5"
            },
            "ForecastedSpend": {
              "shape": "S5"
            }
          }
        },
        "BudgetType": {}
      }
    },
    "S5": {
      "type": "structure",
      "required": [
        "Amount",
        "Unit"
      ],
      "members": {
        "Amount": {},
        "Unit": {}
      }
    },
    "Sj": {
      "type": "structure",
      "required": [
        "NotificationType",
        "ComparisonOperator",
        "Threshold"
      ],
      "members": {
        "NotificationType": {},
        "ComparisonOperator": {},
        "Threshold": {
          "type": "double"
        }
      }
    },
    "Sn": {
      "type": "list",
      "member": {
        "shape": "So"
      }
    },
    "So": {
      "type": "structure",
      "required": [
        "SubscriptionType",
        "Address"
      ],
      "members": {
        "SubscriptionType": {},
        "Address": {}
      }
    }
  }
}