ynab 1.4.0 → 1.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (57) hide show
  1. checksums.yaml +5 -5
  2. data/Gemfile.lock +2 -2
  3. data/README.md +37 -27
  4. data/Rakefile +0 -6
  5. data/config.json +1 -1
  6. data/docs/Account.md +1 -0
  7. data/docs/AccountsApi.md +3 -3
  8. data/docs/BudgetsApi.md +4 -4
  9. data/docs/CategoriesApi.md +45 -4
  10. data/docs/HybridTransaction.md +2 -1
  11. data/docs/MonthDetail.md +1 -1
  12. data/docs/MonthsApi.md +3 -3
  13. data/docs/PayeeLocationsApi.md +4 -4
  14. data/docs/PayeesApi.md +3 -3
  15. data/docs/SaveMonthCategory.md +8 -0
  16. data/docs/SaveMonthCategoryWrapper.md +8 -0
  17. data/docs/SaveTransaction.md +2 -2
  18. data/docs/SaveTransactionsResponse.md +8 -0
  19. data/docs/SaveTransactionsResponseData.md +11 -0
  20. data/docs/SaveTransactionsWrapper.md +9 -0
  21. data/docs/ScheduledTransactionsApi.md +3 -3
  22. data/docs/TransactionDetail.md +2 -1
  23. data/docs/TransactionSummary.md +2 -1
  24. data/docs/TransactionsApi.md +25 -25
  25. data/docs/UserApi.md +1 -1
  26. data/examples/create-multiple-transactions.rb +44 -0
  27. data/examples/update-category-budgeted.rb +23 -0
  28. data/lib/ynab.rb +5 -0
  29. data/lib/ynab/api/accounts_api.rb +6 -6
  30. data/lib/ynab/api/budgets_api.rb +8 -8
  31. data/lib/ynab/api/categories_api.rb +142 -8
  32. data/lib/ynab/api/months_api.rb +6 -6
  33. data/lib/ynab/api/payee_locations_api.rb +8 -8
  34. data/lib/ynab/api/payees_api.rb +6 -6
  35. data/lib/ynab/api/scheduled_transactions_api.rb +6 -6
  36. data/lib/ynab/api/transactions_api.rb +54 -54
  37. data/lib/ynab/api/user_api.rb +2 -2
  38. data/lib/ynab/models/account.rb +16 -1
  39. data/lib/ynab/models/hybrid_transaction.rb +17 -1
  40. data/lib/ynab/models/month_detail.rb +1 -1
  41. data/lib/ynab/models/save_month_category.rb +189 -0
  42. data/lib/ynab/models/save_month_category_wrapper.rb +188 -0
  43. data/lib/ynab/models/save_transaction.rb +2 -2
  44. data/lib/ynab/models/save_transactions_response.rb +188 -0
  45. data/lib/ynab/models/save_transactions_response_data.rb +225 -0
  46. data/lib/ynab/models/save_transactions_wrapper.rb +194 -0
  47. data/lib/ynab/models/transaction_detail.rb +17 -1
  48. data/lib/ynab/models/transaction_summary.rb +17 -1
  49. data/lib/ynab/version.rb +1 -1
  50. data/pkg/ynab-1.4.0.gem +0 -0
  51. data/spec-v1-swagger.json +413 -245
  52. data/spec/api/categories_spec.rb +14 -2
  53. data/spec/api/transactions_spec.rb +31 -0
  54. data/spec/fixtures/vcr_cassettes/category.yml +1 -1
  55. data/spec/fixtures/vcr_cassettes/multiple_transactions.yml +46 -0
  56. data/spec/fixtures/vcr_cassettes/patch_month_category.yml +46 -0
  57. metadata +20 -3
@@ -13,7 +13,8 @@ Name | Type | Description | Notes
13
13
  **account_id** | **String** | |
14
14
  **payee_id** | **String** | |
15
15
  **category_id** | **String** | |
16
- **transfer_account_id** | **String** | |
16
+ **transfer_account_id** | **String** | If a transfer transaction, the account to which it transfers |
17
+ **transfer_transaction_id** | **String** | If a transfer transaction, the id of transaction on the other side of the transfer |
17
18
  **import_id** | **String** | If the Transaction was imported, this field is a unique (by account) import identifier. If this transaction was imported through File Based Import or Direct Import and not through the API, the import_id will have the format: 'YNAB:[milliunit_amount]:[iso_date]:[occurrence]'. For example, a transaction dated 2015-12-30 in the amount of -$294.23 USD would have an import_id of 'YNAB:-294230:2015-12-30:1'. If a second transaction on the same account was imported and had the same date and same amount, its import_id would be 'YNAB:-294230:2015-12-30:2'. |
18
19
  **deleted** | **BOOLEAN** | Whether or not the transaction has been deleted. Deleted transactions will only be included in delta requests. |
19
20
  **account_name** | **String** | |
@@ -13,7 +13,8 @@ Name | Type | Description | Notes
13
13
  **account_id** | **String** | |
14
14
  **payee_id** | **String** | |
15
15
  **category_id** | **String** | |
16
- **transfer_account_id** | **String** | |
16
+ **transfer_account_id** | **String** | If a transfer transaction, the account to which it transfers |
17
+ **transfer_transaction_id** | **String** | If a transfer transaction, the id of transaction on the other side of the transfer |
17
18
  **import_id** | **String** | If the Transaction was imported, this field is a unique (by account) import identifier. If this transaction was imported through File Based Import or Direct Import and not through the API, the import_id will have the format: 'YNAB:[milliunit_amount]:[iso_date]:[occurrence]'. For example, a transaction dated 2015-12-30 in the amount of -$294.23 USD would have an import_id of 'YNAB:-294230:2015-12-30:1'. If a second transaction on the same account was imported and had the same date and same amount, its import_id would be 'YNAB:-294230:2015-12-30:2'. |
18
19
  **deleted** | **BOOLEAN** | Whether or not the transaction has been deleted. Deleted transactions will only be included in delta requests. |
19
20
 
@@ -5,7 +5,7 @@ All URIs are relative to *https://api.youneedabudget.com/v1*
5
5
  Method | HTTP request | Description
6
6
  ------------- | ------------- | -------------
7
7
  [**bulk_create_transactions**](TransactionsApi.md#bulk_create_transactions) | **POST** /budgets/{budget_id}/transactions/bulk | Bulk create transactions
8
- [**create_transaction**](TransactionsApi.md#create_transaction) | **POST** /budgets/{budget_id}/transactions | Create new transaction
8
+ [**create_transaction**](TransactionsApi.md#create_transaction) | **POST** /budgets/{budget_id}/transactions | Create a single transaction or multiple transactions
9
9
  [**get_transaction_by_id**](TransactionsApi.md#get_transaction_by_id) | **GET** /budgets/{budget_id}/transactions/{transaction_id} | Single transaction
10
10
  [**get_transactions**](TransactionsApi.md#get_transactions) | **GET** /budgets/{budget_id}/transactions | List transactions
11
11
  [**get_transactions_by_account**](TransactionsApi.md#get_transactions_by_account) | **GET** /budgets/{budget_id}/accounts/{account_id}/transactions | List account transactions
@@ -25,30 +25,30 @@ Creates multiple transactions
25
25
 
26
26
  Name | Type | Description | Notes
27
27
  ------------- | ------------- | ------------- | -------------
28
- **budget_id** | [**String**](.md)| The ID of the Budget. \"last-used\" can also be used to specify the last used budget. |
29
- **transactions** | [**BulkTransactions**](BulkTransactions.md)| The list of Transactions to create. |
28
+ **budget_id** | [**String**](.md)| The id of the budget (\"last-used\" can also be used to specify the last used budget) |
29
+ **transactions** | [**BulkTransactions**](BulkTransactions.md)| The list of transactions to create |
30
30
 
31
31
  ### Return type
32
32
 
33
33
  [**BulkResponse**](BulkResponse.md)
34
34
 
35
35
  # **create_transaction**
36
- > TransactionResponse create_transaction(budget_id, transaction)
36
+ > SaveTransactionsResponse create_transaction(budget_id, save_transactions)
37
37
 
38
- Create new transaction
38
+ Create a single transaction or multiple transactions
39
39
 
40
- Creates a transaction
40
+ Creates a single transaction or multiple transactions. If you provide a body containing a 'transaction' object, a single transaction will be created and if you provide a body containing a 'transactions' array, multiple transactions will be created.
41
41
 
42
42
  ### Parameters
43
43
 
44
44
  Name | Type | Description | Notes
45
45
  ------------- | ------------- | ------------- | -------------
46
- **budget_id** | [**String**](.md)| The ID of the Budget. \"last-used\" can also be used to specify the last used budget. |
47
- **transaction** | [**SaveTransactionWrapper**](SaveTransactionWrapper.md)| The Transaction to create. |
46
+ **budget_id** | [**String**](.md)| The id of the budget (\"last-used\" can also be used to specify the last used budget) |
47
+ **save_transactions** | [**SaveTransactionsWrapper**](SaveTransactionsWrapper.md)| The transaction or transactions to create |
48
48
 
49
49
  ### Return type
50
50
 
51
- [**TransactionResponse**](TransactionResponse.md)
51
+ [**SaveTransactionsResponse**](SaveTransactionsResponse.md)
52
52
 
53
53
  # **get_transaction_by_id**
54
54
  > TransactionResponse get_transaction_by_id(budget_id, transaction_id)
@@ -61,8 +61,8 @@ Returns a single transaction
61
61
 
62
62
  Name | Type | Description | Notes
63
63
  ------------- | ------------- | ------------- | -------------
64
- **budget_id** | [**String**](.md)| The ID of the Budget. \"last-used\" can also be used to specify the last used budget. |
65
- **transaction_id** | [**String**](.md)| The ID of the Transaction. |
64
+ **budget_id** | [**String**](.md)| The id of the budget (\"last-used\" can also be used to specify the last used budget) |
65
+ **transaction_id** | [**String**](.md)| The id of the transaction |
66
66
 
67
67
  ### Return type
68
68
 
@@ -79,8 +79,8 @@ Returns budget transactions
79
79
 
80
80
  Name | Type | Description | Notes
81
81
  ------------- | ------------- | ------------- | -------------
82
- **budget_id** | [**String**](.md)| The ID of the Budget. \"last-used\" can also be used to specify the last used budget. |
83
- **since_date** | **Date**| Only return transactions on or after this date. | [optional]
82
+ **budget_id** | [**String**](.md)| The id of the budget (\"last-used\" can also be used to specify the last used budget) |
83
+ **since_date** | **Date**| Only return transactions on or after this date | [optional]
84
84
  **type** | **String**| Only return transactions of a certain type ('uncategorized' and 'unapproved' are currently supported) | [optional]
85
85
 
86
86
  ### Return type
@@ -98,9 +98,9 @@ Returns all transactions for a specified account
98
98
 
99
99
  Name | Type | Description | Notes
100
100
  ------------- | ------------- | ------------- | -------------
101
- **budget_id** | [**String**](.md)| The ID of the Budget. \"last-used\" can also be used to specify the last used budget. |
102
- **account_id** | [**String**](.md)| The ID of the Account. |
103
- **since_date** | **Date**| Only return transactions on or after this date. | [optional]
101
+ **budget_id** | [**String**](.md)| The id of the budget (\"last-used\" can also be used to specify the last used budget) |
102
+ **account_id** | [**String**](.md)| The id of the account |
103
+ **since_date** | **Date**| Only return transactions on or after this date | [optional]
104
104
  **type** | **String**| Only return transactions of a certain type (i.e. 'uncategorized', 'unapproved') | [optional]
105
105
 
106
106
  ### Return type
@@ -118,9 +118,9 @@ Returns all transactions for a specified category
118
118
 
119
119
  Name | Type | Description | Notes
120
120
  ------------- | ------------- | ------------- | -------------
121
- **budget_id** | [**String**](.md)| The ID of the Budget. \"last-used\" can also be used to specify the last used budget. |
122
- **category_id** | [**String**](.md)| The ID of the Category. |
123
- **since_date** | **Date**| Only return transactions on or after this date. | [optional]
121
+ **budget_id** | [**String**](.md)| The id of the budget (\"last-used\" can also be used to specify the last used budget) |
122
+ **category_id** | [**String**](.md)| The id of the category |
123
+ **since_date** | **Date**| Only return transactions on or after this date | [optional]
124
124
  **type** | **String**| Only return transactions of a certain type (i.e. 'uncategorized', 'unapproved') | [optional]
125
125
 
126
126
  ### Return type
@@ -138,9 +138,9 @@ Returns all transactions for a specified payee
138
138
 
139
139
  Name | Type | Description | Notes
140
140
  ------------- | ------------- | ------------- | -------------
141
- **budget_id** | [**String**](.md)| The ID of the Budget. \"last-used\" can also be used to specify the last used budget. |
142
- **payee_id** | [**String**](.md)| The ID of the Payee. |
143
- **since_date** | **Date**| Only return transactions on or after this date. | [optional]
141
+ **budget_id** | [**String**](.md)| The id of the budget (\"last-used\" can also be used to specify the last used budget) |
142
+ **payee_id** | [**String**](.md)| The id of the payee |
143
+ **since_date** | **Date**| Only return transactions on or after this date | [optional]
144
144
  **type** | **String**| Only return transactions of a certain type (i.e. 'uncategorized', 'unapproved') | [optional]
145
145
 
146
146
  ### Return type
@@ -158,9 +158,9 @@ Updates a transaction
158
158
 
159
159
  Name | Type | Description | Notes
160
160
  ------------- | ------------- | ------------- | -------------
161
- **budget_id** | [**String**](.md)| The ID of the Budget. \"last-used\" can also be used to specify the last used budget. |
162
- **transaction_id** | [**String**](.md)| The ID of the Transaction. |
163
- **transaction** | [**SaveTransactionWrapper**](SaveTransactionWrapper.md)| The Transaction to update. |
161
+ **budget_id** | [**String**](.md)| The id of the budget (\"last-used\" can also be used to specify the last used budget) |
162
+ **transaction_id** | [**String**](.md)| The id of the transaction |
163
+ **transaction** | [**SaveTransactionWrapper**](SaveTransactionWrapper.md)| The transaction to update |
164
164
 
165
165
  ### Return type
166
166
 
data/docs/UserApi.md CHANGED
@@ -12,7 +12,7 @@ Method | HTTP request | Description
12
12
 
13
13
  User info
14
14
 
15
- Returns authenticated user information.
15
+ Returns authenticated user information
16
16
 
17
17
  ### Parameters
18
18
  This endpoint does not need any parameter.
@@ -0,0 +1,44 @@
1
+ require 'date'
2
+ require 'ynab'
3
+
4
+ def create_multiple_transactions
5
+ access_token = 'bf0cbb14b4330-not-real-3de12e66a389eaafe2'
6
+ ynab = YNAB::API.new(access_token)
7
+
8
+ budget_id = 'f968197b-2863-not-real-c2406dbe7f0d'
9
+ account_id = 'f6fe07cb-c895-not-real-acfac0b7f026'
10
+ category_id = 'a191ac84-de09-not-real-6c5ed8cfdabe'
11
+
12
+ begin
13
+ ynab.transactions.create_transaction(budget_id, {
14
+ transactions: [
15
+ {
16
+ account_id: account_id,
17
+ category_id: category_id,
18
+ date: Date.today,
19
+ payee_name: 'A Test Payee',
20
+ memo: 'I was created through the API',
21
+ cleared: 'Cleared',
22
+ approved: true,
23
+ flag_color: 'Blue',
24
+ amount: 20000
25
+ },
26
+ {
27
+ account_id: account_id,
28
+ category_id: category_id,
29
+ date: Date.today,
30
+ payee_name: 'Another Test Payee',
31
+ memo: 'I was also created through the API',
32
+ cleared: 'Uncleared',
33
+ approved: false,
34
+ flag_color: 'Red',
35
+ amount: 39453
36
+ }
37
+ ]
38
+ })
39
+ rescue => e
40
+ puts "ERROR: id=#{e.id}; name=#{e.name}; detail: #{e.detail}"
41
+ end
42
+ end
43
+
44
+ create_multiple_transactions
@@ -0,0 +1,23 @@
1
+ require 'date'
2
+ require 'ynab'
3
+
4
+ def update_category_budgeted
5
+ access_token = 'bf0cbb14b4330-not-real-3de12e66a389eaafe2'
6
+ ynab = YNAB::API.new(access_token)
7
+
8
+ budget_id = 'f968197b-2863-not-real-c2406dbe7f0d'
9
+ category_id = 'a191ac84-de09-not-real-6c5ed8cfdabe'
10
+ month = '2018-09-01'
11
+ month_category = { budgeted: 20382 }
12
+
13
+ begin
14
+ # Update budgeted amount to 203.82 in 2018-09-01 for category_id
15
+ response = ynab.categories.update_month_category(budget_id, '2018-09-01', category_id, month_category: month_category)
16
+ month_category_response = response.data.category
17
+ puts "[budgeted: #{month_category_response.budgeted}, balance: #{month_category_response.balance}]"
18
+ rescue => e
19
+ puts "ERROR: id=#{e.id}; name=#{e.name}; detail: #{e.detail}"
20
+ end
21
+ end
22
+
23
+ update_category_budgeted
data/lib/ynab.rb CHANGED
@@ -61,8 +61,13 @@ require 'ynab/models/payee_response'
61
61
  require 'ynab/models/payee_wrapper'
62
62
  require 'ynab/models/payees_response'
63
63
  require 'ynab/models/payees_wrapper'
64
+ require 'ynab/models/save_month_category'
65
+ require 'ynab/models/save_month_category_wrapper'
64
66
  require 'ynab/models/save_transaction'
65
67
  require 'ynab/models/save_transaction_wrapper'
68
+ require 'ynab/models/save_transactions_response'
69
+ require 'ynab/models/save_transactions_response_data'
70
+ require 'ynab/models/save_transactions_wrapper'
66
71
  require 'ynab/models/scheduled_sub_transaction'
67
72
  require 'ynab/models/scheduled_transaction_response'
68
73
  require 'ynab/models/scheduled_transaction_summary'
@@ -21,8 +21,8 @@ module YNAB
21
21
  end
22
22
  # Single account
23
23
  # Returns a single account
24
- # @param budget_id The ID of the Budget. \"last-used\" can also be used to specify the last used budget.
25
- # @param account_id The ID of the Account.
24
+ # @param budget_id The id of the budget (\"last-used\" can also be used to specify the last used budget)
25
+ # @param account_id The id of the account
26
26
  # @param [Hash] opts the optional parameters
27
27
  # @return [AccountResponse]
28
28
  def get_account_by_id(budget_id, account_id, opts = {})
@@ -32,8 +32,8 @@ module YNAB
32
32
 
33
33
  # Single account
34
34
  # Returns a single account
35
- # @param budget_id The ID of the Budget. \"last-used\" can also be used to specify the last used budget.
36
- # @param account_id The ID of the Account.
35
+ # @param budget_id The id of the budget (\"last-used\" can also be used to specify the last used budget)
36
+ # @param account_id The id of the account
37
37
  # @param [Hash] opts the optional parameters
38
38
  # @return [Array<(AccountResponse, Fixnum, Hash)>] AccountResponse data, response status code and response headers
39
39
  def get_account_by_id_with_http_info(budget_id, account_id, opts = {})
@@ -79,7 +79,7 @@ module YNAB
79
79
  end
80
80
  # Account list
81
81
  # Returns all accounts
82
- # @param budget_id The ID of the Budget. \&quot;last-used\&quot; can also be used to specify the last used budget.
82
+ # @param budget_id The id of the budget (\&quot;last-used\&quot; can also be used to specify the last used budget)
83
83
  # @param [Hash] opts the optional parameters
84
84
  # @return [AccountsResponse]
85
85
  def get_accounts(budget_id, opts = {})
@@ -89,7 +89,7 @@ module YNAB
89
89
 
90
90
  # Account list
91
91
  # Returns all accounts
92
- # @param budget_id The ID of the Budget. \&quot;last-used\&quot; can also be used to specify the last used budget.
92
+ # @param budget_id The id of the budget (\&quot;last-used\&quot; can also be used to specify the last used budget)
93
93
  # @param [Hash] opts the optional parameters
94
94
  # @return [Array<(AccountsResponse, Fixnum, Hash)>] AccountsResponse data, response status code and response headers
95
95
  def get_accounts_with_http_info(budget_id, opts = {})
@@ -21,7 +21,7 @@ module YNAB
21
21
  end
22
22
  # Single budget
23
23
  # Returns a single budget with all related entities. This resource is effectively a full budget export.
24
- # @param budget_id The ID of the Budget. \&quot;last-used\&quot; can also be used to specify the last used budget.
24
+ # @param budget_id The id of the budget (\&quot;last-used\&quot; can also be used to specify the last used budget)
25
25
  # @param [Hash] opts the optional parameters
26
26
  # @option opts [Integer] :last_knowledge_of_server The starting server knowledge. If provided, only entities that have changed since last_knowledge_of_server will be included.
27
27
  # @return [BudgetDetailResponse]
@@ -32,7 +32,7 @@ module YNAB
32
32
 
33
33
  # Single budget
34
34
  # Returns a single budget with all related entities. This resource is effectively a full budget export.
35
- # @param budget_id The ID of the Budget. \&quot;last-used\&quot; can also be used to specify the last used budget.
35
+ # @param budget_id The id of the budget (\&quot;last-used\&quot; can also be used to specify the last used budget)
36
36
  # @param [Hash] opts the optional parameters
37
37
  # @option opts [Integer] :last_knowledge_of_server The starting server knowledge. If provided, only entities that have changed since last_knowledge_of_server will be included.
38
38
  # @return [Array<(BudgetDetailResponse, Fixnum, Hash)>] BudgetDetailResponse data, response status code and response headers
@@ -75,8 +75,8 @@ module YNAB
75
75
  return data, status_code, headers
76
76
  end
77
77
  # Budget Settings
78
- # Returns settings for a budget.
79
- # @param budget_id The ID of the Budget. \&quot;last-used\&quot; can also be used to specify the last used budget.
78
+ # Returns settings for a budget
79
+ # @param budget_id The id of the budget (\&quot;last-used\&quot; can also be used to specify the last used budget)
80
80
  # @param [Hash] opts the optional parameters
81
81
  # @return [BudgetSettingsResponse]
82
82
  def get_budget_settings_by_id(budget_id, opts = {})
@@ -85,8 +85,8 @@ module YNAB
85
85
  end
86
86
 
87
87
  # Budget Settings
88
- # Returns settings for a budget.
89
- # @param budget_id The ID of the Budget. \&quot;last-used\&quot; can also be used to specify the last used budget.
88
+ # Returns settings for a budget
89
+ # @param budget_id The id of the budget (\&quot;last-used\&quot; can also be used to specify the last used budget)
90
90
  # @param [Hash] opts the optional parameters
91
91
  # @return [Array<(BudgetSettingsResponse, Fixnum, Hash)>] BudgetSettingsResponse data, response status code and response headers
92
92
  def get_budget_settings_by_id_with_http_info(budget_id, opts = {})
@@ -127,7 +127,7 @@ module YNAB
127
127
  return data, status_code, headers
128
128
  end
129
129
  # List budgets
130
- # Returns budgets list with summary information.
130
+ # Returns budgets list with summary information
131
131
  # @param [Hash] opts the optional parameters
132
132
  # @return [BudgetSummaryResponse]
133
133
  def get_budgets(opts = {})
@@ -136,7 +136,7 @@ module YNAB
136
136
  end
137
137
 
138
138
  # List budgets
139
- # Returns budgets list with summary information.
139
+ # Returns budgets list with summary information
140
140
  # @param [Hash] opts the optional parameters
141
141
  # @return [Array<(BudgetSummaryResponse, Fixnum, Hash)>] BudgetSummaryResponse data, response status code and response headers
142
142
  def get_budgets_with_http_info(opts = {})
@@ -20,8 +20,8 @@ module YNAB
20
20
  @api_client = api_client
21
21
  end
22
22
  # List categories
23
- # Returns all categories grouped by category group.
24
- # @param budget_id The ID of the Budget. \&quot;last-used\&quot; can also be used to specify the last used budget.
23
+ # Returns all categories grouped by category group
24
+ # @param budget_id The id of the budget (\&quot;last-used\&quot; can also be used to specify the last used budget)
25
25
  # @param [Hash] opts the optional parameters
26
26
  # @return [CategoriesResponse]
27
27
  def get_categories(budget_id, opts = {})
@@ -30,8 +30,8 @@ module YNAB
30
30
  end
31
31
 
32
32
  # List categories
33
- # Returns all categories grouped by category group.
34
- # @param budget_id The ID of the Budget. \&quot;last-used\&quot; can also be used to specify the last used budget.
33
+ # Returns all categories grouped by category group
34
+ # @param budget_id The id of the budget (\&quot;last-used\&quot; can also be used to specify the last used budget)
35
35
  # @param [Hash] opts the optional parameters
36
36
  # @return [Array<(CategoriesResponse, Fixnum, Hash)>] CategoriesResponse data, response status code and response headers
37
37
  def get_categories_with_http_info(budget_id, opts = {})
@@ -73,8 +73,8 @@ module YNAB
73
73
  end
74
74
  # Single category
75
75
  # Returns a single category
76
- # @param budget_id The ID of the Budget. \&quot;last-used\&quot; can also be used to specify the last used budget.
77
- # @param category_id The ID of the Category.
76
+ # @param budget_id The id of the budget (\&quot;last-used\&quot; can also be used to specify the last used budget)
77
+ # @param category_id The id of the category
78
78
  # @param [Hash] opts the optional parameters
79
79
  # @return [CategoryResponse]
80
80
  def get_category_by_id(budget_id, category_id, opts = {})
@@ -84,8 +84,8 @@ module YNAB
84
84
 
85
85
  # Single category
86
86
  # Returns a single category
87
- # @param budget_id The ID of the Budget. \&quot;last-used\&quot; can also be used to specify the last used budget.
88
- # @param category_id The ID of the Category.
87
+ # @param budget_id The id of the budget (\&quot;last-used\&quot; can also be used to specify the last used budget)
88
+ # @param category_id The id of the category
89
89
  # @param [Hash] opts the optional parameters
90
90
  # @return [Array<(CategoryResponse, Fixnum, Hash)>] CategoryResponse data, response status code and response headers
91
91
  def get_category_by_id_with_http_info(budget_id, category_id, opts = {})
@@ -129,5 +129,139 @@ module YNAB
129
129
  end
130
130
  return data, status_code, headers
131
131
  end
132
+ # Single category for a specific budget month
133
+ # Returns a single category for a specific budget month
134
+ # @param budget_id The id of the budget (\&quot;last-used\&quot; can also be used to specify the last used budget)
135
+ # @param month the budget month in ISO format (e.g. 2016-12-30). (\&quot;current\&quot; can also be used to specify the current calendar month (UTC))
136
+ # @param category_id The id of the category
137
+ # @param [Hash] opts the optional parameters
138
+ # @return [CategoryResponse]
139
+ def get_month_category_by_id(budget_id, month, category_id, opts = {})
140
+ data, _status_code, _headers = get_month_category_by_id_with_http_info(budget_id, month, category_id, opts)
141
+ data
142
+ end
143
+
144
+ # Single category for a specific budget month
145
+ # Returns a single category for a specific budget month
146
+ # @param budget_id The id of the budget (\&quot;last-used\&quot; can also be used to specify the last used budget)
147
+ # @param month the budget month in ISO format (e.g. 2016-12-30). (\&quot;current\&quot; can also be used to specify the current calendar month (UTC))
148
+ # @param category_id The id of the category
149
+ # @param [Hash] opts the optional parameters
150
+ # @return [Array<(CategoryResponse, Fixnum, Hash)>] CategoryResponse data, response status code and response headers
151
+ def get_month_category_by_id_with_http_info(budget_id, month, category_id, opts = {})
152
+ if @api_client.config.debugging
153
+ @api_client.config.logger.debug 'Calling API: CategoriesApi.get_month_category_by_id ...'
154
+ end
155
+ # verify the required parameter 'budget_id' is set
156
+ if @api_client.config.client_side_validation && budget_id.nil?
157
+ fail ArgumentError, "Missing the required parameter 'budget_id' when calling CategoriesApi.get_month_category_by_id"
158
+ end
159
+ # verify the required parameter 'month' is set
160
+ if @api_client.config.client_side_validation && month.nil?
161
+ fail ArgumentError, "Missing the required parameter 'month' when calling CategoriesApi.get_month_category_by_id"
162
+ end
163
+ # verify the required parameter 'category_id' is set
164
+ if @api_client.config.client_side_validation && category_id.nil?
165
+ fail ArgumentError, "Missing the required parameter 'category_id' when calling CategoriesApi.get_month_category_by_id"
166
+ end
167
+ # resource path
168
+ local_var_path = '/budgets/{budget_id}/months/{month}/categories/{category_id}'.sub('{' + 'budget_id' + '}', budget_id.to_s).sub('{' + 'month' + '}', month.to_s).sub('{' + 'category_id' + '}', category_id.to_s)
169
+
170
+ # query parameters
171
+ query_params = {}
172
+
173
+ # header parameters
174
+ header_params = {}
175
+ # HTTP header 'Accept' (if needed)
176
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
177
+
178
+ # form parameters
179
+ form_params = {}
180
+
181
+ # http body (model)
182
+ post_body = nil
183
+ auth_names = ['bearer']
184
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path,
185
+ :header_params => header_params,
186
+ :query_params => query_params,
187
+ :form_params => form_params,
188
+ :body => post_body,
189
+ :auth_names => auth_names,
190
+ :return_type => 'CategoryResponse')
191
+ if @api_client.config.debugging
192
+ @api_client.config.logger.debug "API called: CategoriesApi#get_month_category_by_id\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
193
+ end
194
+ return data, status_code, headers
195
+ end
196
+ # Update an existing month category
197
+ # Update an existing month category
198
+ # @param budget_id The id of the budget (\&quot;last-used\&quot; can also be used to specify the last used budget)
199
+ # @param month the budget month in ISO format (e.g. 2016-12-01). \&quot;current\&quot; can also be used to specify the current calendar month (UTC).
200
+ # @param category_id The id of the category
201
+ # @param month_category The month category to update
202
+ # @param [Hash] opts the optional parameters
203
+ # @return [CategoryResponse]
204
+ def update_month_category(budget_id, month, category_id, month_category, opts = {})
205
+ data, _status_code, _headers = update_month_category_with_http_info(budget_id, month, category_id, month_category, opts)
206
+ data
207
+ end
208
+
209
+ # Update an existing month category
210
+ # Update an existing month category
211
+ # @param budget_id The id of the budget (\&quot;last-used\&quot; can also be used to specify the last used budget)
212
+ # @param month the budget month in ISO format (e.g. 2016-12-01). \&quot;current\&quot; can also be used to specify the current calendar month (UTC).
213
+ # @param category_id The id of the category
214
+ # @param month_category The month category to update
215
+ # @param [Hash] opts the optional parameters
216
+ # @return [Array<(CategoryResponse, Fixnum, Hash)>] CategoryResponse data, response status code and response headers
217
+ def update_month_category_with_http_info(budget_id, month, category_id, month_category, opts = {})
218
+ if @api_client.config.debugging
219
+ @api_client.config.logger.debug 'Calling API: CategoriesApi.update_month_category ...'
220
+ end
221
+ # verify the required parameter 'budget_id' is set
222
+ if @api_client.config.client_side_validation && budget_id.nil?
223
+ fail ArgumentError, "Missing the required parameter 'budget_id' when calling CategoriesApi.update_month_category"
224
+ end
225
+ # verify the required parameter 'month' is set
226
+ if @api_client.config.client_side_validation && month.nil?
227
+ fail ArgumentError, "Missing the required parameter 'month' when calling CategoriesApi.update_month_category"
228
+ end
229
+ # verify the required parameter 'category_id' is set
230
+ if @api_client.config.client_side_validation && category_id.nil?
231
+ fail ArgumentError, "Missing the required parameter 'category_id' when calling CategoriesApi.update_month_category"
232
+ end
233
+ # verify the required parameter 'month_category' is set
234
+ if @api_client.config.client_side_validation && month_category.nil?
235
+ fail ArgumentError, "Missing the required parameter 'month_category' when calling CategoriesApi.update_month_category"
236
+ end
237
+ # resource path
238
+ local_var_path = '/budgets/{budget_id}/months/{month}/categories/{category_id}'.sub('{' + 'budget_id' + '}', budget_id.to_s).sub('{' + 'month' + '}', month.to_s).sub('{' + 'category_id' + '}', category_id.to_s)
239
+
240
+ # query parameters
241
+ query_params = {}
242
+
243
+ # header parameters
244
+ header_params = {}
245
+ # HTTP header 'Accept' (if needed)
246
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
247
+
248
+ # form parameters
249
+ form_params = {}
250
+
251
+ # http body (model)
252
+ post_body = @api_client.object_to_http_body(month_category)
253
+ auth_names = ['bearer']
254
+ data, status_code, headers = @api_client.call_api(:PATCH, local_var_path,
255
+ :header_params => header_params,
256
+ :query_params => query_params,
257
+ :form_params => form_params,
258
+ :body => post_body,
259
+ :auth_names => auth_names,
260
+ :return_type => 'CategoryResponse')
261
+ if @api_client.config.debugging
262
+ @api_client.config.logger.debug "API called: CategoriesApi#update_month_category\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
263
+ end
264
+ return data, status_code, headers
265
+ end
132
266
  end
133
267
  end