From 3b301eb21e417a30fcc479b803953846df557d9b Mon Sep 17 00:00:00 2001
From: Andre Bocchini
Date: Wed, 12 Apr 2023 09:20:41 -0400
Subject: [PATCH] Release 2.1.0
---
Gemfile | 3 +-
Gemfile.lock | 51 +--
SwiftYNAB.podspec | 2 +-
SwiftYNAB/SwiftYNAB.xcodeproj/project.pbxproj | 24 +
SwiftYNAB/SwiftYNAB/Info.plist | 4 +-
SwiftYNAB/SwiftYNAB/YNAB.swift | 2 +-
SwiftYNAB/SwiftYNAB/models/Account.swift | 21 +
SwiftYNAB/SwiftYNAB/models/Category.swift | 24 +
.../models/DebtTransactionType.swift | 20 +
.../SwiftYNAB/models/HybridTransaction.swift | 12 +
.../SwiftYNAB/models/SubTransaction.swift | 9 +
.../SwiftYNAB/models/TransactionSummary.swift | 18 +-
SwiftYNAB/SwiftYNAB/networking/Client.swift | 2 +-
.../requests/DeleteTransactionRequest.swift | 36 ++
SwiftYNAB/SwiftYNAB/requests/Request.swift | 2 +-
.../SwiftYNAB/requests/RequestMethod.swift | 1 +
.../responses/DeleteTransactionResponse.swift | 13 +
.../services/TransactionService.swift | 21 +-
.../formatters/DateConverterTests.swift | 2 +-
SwiftYNAB/SwiftYNABTests/json/Account.json | 7 +-
.../SwiftYNABTests/json/AccountResponse.json | 9 +-
.../SwiftYNABTests/json/AccountsResponse.json | 7 +-
.../SwiftYNABTests/json/BudgetDetail.json | 9 +-
.../json/BudgetDetailResponse.json | 7 +-
.../json/CategoryGroupWithCategories.json | 2 +-
.../json/DeleteTransactionResponse.json | 30 ++
.../json/NewBudgetAccountResponse.json | 7 +-
.../DeleteTransactionRequestTests.swift | 30 ++
.../DeleteTransactionResponseTests.swift | 16 +
.../services/AccountServiceTests.swift | 21 +
.../services/CategoryServiceTests.swift | 21 +
.../services/TransactionServiceTests.swift | 58 +++
docs/Classes.html | 7 +-
docs/Classes/AccountService.html | 7 +-
docs/Classes/BudgetService.html | 7 +-
docs/Classes/CategoryService.html | 7 +-
docs/Classes/CurrencyFormatter.html | 7 +-
docs/Classes/DateConverter.html | 7 +-
docs/Classes/MonthService.html | 7 +-
docs/Classes/PayeeLocationService.html | 7 +-
docs/Classes/PayeeService.html | 7 +-
docs/Classes/ScheduledTransactionService.html | 7 +-
docs/Classes/TransactionService.html | 77 +++-
docs/Classes/UserService.html | 7 +-
docs/Classes/YNAB.html | 7 +-
docs/Enums.html | 35 +-
docs/Enums/DebtTransactionType.html | 422 ++++++++++++++++++
docs/Enums/TransactionType.html | 7 +-
docs/Structs.html | 7 +-
docs/Structs/Account.html | 196 +++++++-
docs/Structs/BudgetDetail.html | 7 +-
docs/Structs/BudgetSettings.html | 7 +-
docs/Structs/BudgetSummary.html | 7 +-
docs/Structs/Category.html | 199 ++++++++-
docs/Structs/CategoryGroup.html | 7 +-
docs/Structs/CategoryGroupWithCategories.html | 7 +-
docs/Structs/CurrencyFormat.html | 7 +-
docs/Structs/DateFormat.html | 7 +-
docs/Structs/ErrorDetail.html | 7 +-
docs/Structs/HybridTransaction.html | 115 ++++-
docs/Structs/MonthDetail.html | 7 +-
docs/Structs/MonthSummary.html | 7 +-
docs/Structs/Payee.html | 7 +-
docs/Structs/PayeeLocation.html | 7 +-
docs/Structs/SaveTransaction.html | 13 +-
docs/Structs/ScheduledSubTransaction.html | 7 +-
docs/Structs/ScheduledTransactionDetail.html | 7 +-
docs/Structs/ScheduledTransactionSummary.html | 7 +-
docs/Structs/SubTransaction.html | 88 +++-
docs/Structs/TransactionDetail.html | 7 +-
docs/Structs/TransactionSummary.html | 121 ++++-
docs/Structs/User.html | 7 +-
docs/Typealiases.html | 7 +-
.../Contents/Resources/Documents/Classes.html | 7 +-
.../Documents/Classes/AccountService.html | 7 +-
.../Documents/Classes/BudgetService.html | 7 +-
.../Documents/Classes/CategoryService.html | 7 +-
.../Documents/Classes/CurrencyFormatter.html | 7 +-
.../Documents/Classes/DateConverter.html | 7 +-
.../Documents/Classes/MonthService.html | 7 +-
.../Classes/PayeeLocationService.html | 7 +-
.../Documents/Classes/PayeeService.html | 7 +-
.../Classes/ScheduledTransactionService.html | 7 +-
.../Documents/Classes/TransactionService.html | 77 +++-
.../Documents/Classes/UserService.html | 7 +-
.../Resources/Documents/Classes/YNAB.html | 7 +-
.../Contents/Resources/Documents/Enums.html | 35 +-
.../Documents/Enums/DebtTransactionType.html | 422 ++++++++++++++++++
.../Documents/Enums/TransactionType.html | 7 +-
.../Contents/Resources/Documents/Structs.html | 7 +-
.../Resources/Documents/Structs/Account.html | 196 +++++++-
.../Documents/Structs/BudgetDetail.html | 7 +-
.../Documents/Structs/BudgetSettings.html | 7 +-
.../Documents/Structs/BudgetSummary.html | 7 +-
.../Resources/Documents/Structs/Category.html | 199 ++++++++-
.../Documents/Structs/CategoryGroup.html | 7 +-
.../Structs/CategoryGroupWithCategories.html | 7 +-
.../Documents/Structs/CurrencyFormat.html | 7 +-
.../Documents/Structs/DateFormat.html | 7 +-
.../Documents/Structs/ErrorDetail.html | 7 +-
.../Documents/Structs/HybridTransaction.html | 115 ++++-
.../Documents/Structs/MonthDetail.html | 7 +-
.../Documents/Structs/MonthSummary.html | 7 +-
.../Resources/Documents/Structs/Payee.html | 7 +-
.../Documents/Structs/PayeeLocation.html | 7 +-
.../Documents/Structs/SaveTransaction.html | 13 +-
.../Structs/ScheduledSubTransaction.html | 7 +-
.../Structs/ScheduledTransactionDetail.html | 7 +-
.../Structs/ScheduledTransactionSummary.html | 7 +-
.../Documents/Structs/SubTransaction.html | 88 +++-
.../Documents/Structs/TransactionDetail.html | 7 +-
.../Documents/Structs/TransactionSummary.html | 121 ++++-
.../Resources/Documents/Structs/User.html | 7 +-
.../Resources/Documents/Typealiases.html | 7 +-
.../Contents/Resources/Documents/index.html | 11 +-
.../Resources/Documents/js/jquery.min.js | 4 +-
.../Contents/Resources/Documents/search.json | 2 +-
.../Resources/Documents/undocumented.json | 2 +-
.../Contents/Resources/docSet.dsidx | Bin 81920 -> 94208 bytes
docs/docsets/SwiftYNAB.tgz | Bin 126843 -> 130164 bytes
docs/index.html | 11 +-
docs/js/jquery.min.js | 4 +-
docs/search.json | 2 +-
docs/undocumented.json | 66 ++-
124 files changed, 3339 insertions(+), 234 deletions(-)
create mode 100644 SwiftYNAB/SwiftYNAB/models/DebtTransactionType.swift
create mode 100644 SwiftYNAB/SwiftYNAB/requests/DeleteTransactionRequest.swift
create mode 100644 SwiftYNAB/SwiftYNAB/responses/DeleteTransactionResponse.swift
create mode 100644 SwiftYNAB/SwiftYNABTests/json/DeleteTransactionResponse.json
create mode 100644 SwiftYNAB/SwiftYNABTests/requests/DeleteTransactionRequestTests.swift
create mode 100644 SwiftYNAB/SwiftYNABTests/responses/DeleteTransactionResponseTests.swift
create mode 100644 docs/Enums/DebtTransactionType.html
create mode 100644 docs/docsets/SwiftYNAB.docset/Contents/Resources/Documents/Enums/DebtTransactionType.html
diff --git a/Gemfile b/Gemfile
index 74e2582..41ecd30 100644
--- a/Gemfile
+++ b/Gemfile
@@ -1,4 +1,3 @@
-ruby '2.7.6'
source 'https://rubygems.org'
-gem 'jazzy', '~> 0.14.2'
\ No newline at end of file
+gem 'jazzy', '~> 0.14.3'
\ No newline at end of file
diff --git a/Gemfile.lock b/Gemfile.lock
index dad174a..ecda25a 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -1,30 +1,29 @@
GEM
remote: https://rubygems.org/
specs:
- CFPropertyList (3.0.5)
+ CFPropertyList (3.0.6)
rexml
- activesupport (6.1.6)
+ activesupport (7.0.4.3)
concurrent-ruby (~> 1.0, >= 1.0.2)
i18n (>= 1.6, < 2)
minitest (>= 5.1)
tzinfo (~> 2.0)
- zeitwerk (~> 2.3)
- addressable (2.8.0)
- public_suffix (>= 2.0.2, < 5.0)
+ addressable (2.8.4)
+ public_suffix (>= 2.0.2, < 6.0)
algoliasearch (1.27.5)
httpclient (~> 2.8, >= 2.8.3)
json (>= 1.5.1)
atomos (0.1.3)
claide (1.1.0)
- cocoapods (1.11.3)
+ cocoapods (1.12.0)
addressable (~> 2.8)
claide (>= 1.0.2, < 2.0)
- cocoapods-core (= 1.11.3)
+ cocoapods-core (= 1.12.0)
cocoapods-deintegrate (>= 1.0.3, < 2.0)
- cocoapods-downloader (>= 1.4.0, < 2.0)
+ cocoapods-downloader (>= 1.6.0, < 2.0)
cocoapods-plugins (>= 1.0.0, < 2.0)
cocoapods-search (>= 1.0.0, < 2.0)
- cocoapods-trunk (>= 1.4.0, < 2.0)
+ cocoapods-trunk (>= 1.6.0, < 2.0)
cocoapods-try (>= 1.1.0, < 2.0)
colored2 (~> 3.1)
escape (~> 0.0.4)
@@ -32,10 +31,10 @@ GEM
gh_inspector (~> 1.0)
molinillo (~> 0.8.0)
nap (~> 1.0)
- ruby-macho (>= 1.0, < 3.0)
+ ruby-macho (>= 2.3.0, < 3.0)
xcodeproj (>= 1.21.0, < 2.0)
- cocoapods-core (1.11.3)
- activesupport (>= 5.0, < 7)
+ cocoapods-core (1.12.0)
+ activesupport (>= 5.0, < 8)
addressable (~> 2.8)
algoliasearch (~> 1.0)
concurrent-ruby (~> 1.1)
@@ -54,18 +53,18 @@ GEM
netrc (~> 0.11)
cocoapods-try (1.2.0)
colored2 (3.1.2)
- concurrent-ruby (1.1.10)
+ concurrent-ruby (1.2.2)
escape (0.0.4)
- ethon (0.15.0)
+ ethon (0.16.0)
ffi (>= 1.15.0)
ffi (1.15.5)
fourflusher (2.3.1)
fuzzy_match (2.0.4)
gh_inspector (1.1.3)
httpclient (2.8.3)
- i18n (1.10.0)
+ i18n (1.12.0)
concurrent-ruby (~> 1.0)
- jazzy (0.14.2)
+ jazzy (0.14.3)
cocoapods (~> 1.5)
mustache (~> 1.1)
open4 (~> 1.3)
@@ -75,9 +74,9 @@ GEM
sassc (~> 2.1)
sqlite3 (~> 1.3)
xcinvoke (~> 0.3.0)
- json (2.6.2)
+ json (2.6.3)
liferaft (0.0.6)
- minitest (5.16.2)
+ minitest (5.18.0)
molinillo (0.8.0)
mustache (1.1.1)
nanaimo (0.3.0)
@@ -85,16 +84,17 @@ GEM
netrc (0.11.0)
open4 (1.3.4)
public_suffix (4.0.7)
- redcarpet (3.5.1)
+ redcarpet (3.6.0)
rexml (3.2.5)
- rouge (3.29.0)
+ rouge (3.30.0)
ruby-macho (2.5.1)
sassc (2.4.0)
ffi (~> 1.9)
- sqlite3 (1.4.4)
+ sqlite3 (1.6.2-arm64-darwin)
+ sqlite3 (1.6.2-x86_64-darwin)
typhoeus (1.4.0)
ethon (>= 0.9.0)
- tzinfo (2.0.4)
+ tzinfo (2.0.6)
concurrent-ruby (~> 1.0)
xcinvoke (0.3.0)
liferaft (~> 0.0.6)
@@ -105,17 +105,14 @@ GEM
colored2 (~> 3.1)
nanaimo (~> 0.3.0)
rexml (~> 3.2.4)
- zeitwerk (2.6.0)
PLATFORMS
arm64-darwin-21
+ arm64-darwin-22
x86_64-darwin-21
DEPENDENCIES
- jazzy (~> 0.14.2)
-
-RUBY VERSION
- ruby 2.7.6p219
+ jazzy (~> 0.14.3)
BUNDLED WITH
2.3.17
diff --git a/SwiftYNAB.podspec b/SwiftYNAB.podspec
index 294a424..9e95a1e 100644
--- a/SwiftYNAB.podspec
+++ b/SwiftYNAB.podspec
@@ -1,7 +1,7 @@
Pod::Spec.new do |s|
s.name = "SwiftYNAB"
- s.version = "2.0.1"
+ s.version = "2.1.0"
s.summary = "YNAB API Framework"
s.description = "SwiftYNAB is an iOS/macOS/tvOS/WatchOS framework for the You Need a Budget API"
s.homepage = "http://github.com/andrebocchini/swiftynab"
diff --git a/SwiftYNAB/SwiftYNAB.xcodeproj/project.pbxproj b/SwiftYNAB/SwiftYNAB.xcodeproj/project.pbxproj
index a681139..a97e802 100644
--- a/SwiftYNAB/SwiftYNAB.xcodeproj/project.pbxproj
+++ b/SwiftYNAB/SwiftYNAB.xcodeproj/project.pbxproj
@@ -233,6 +233,7 @@
307350F82278CE8500456287 /* TransactionDetail.json in Resources */ = {isa = PBXBuildFile; fileRef = 307350F72278CE8500456287 /* TransactionDetail.json */; };
307350FC2278D22100456287 /* TransactionsResponse.json in Resources */ = {isa = PBXBuildFile; fileRef = 307350FB2278D22100456287 /* TransactionsResponse.json */; };
307350FE2278D27500456287 /* Serializer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 307350FD2278D27500456287 /* Serializer.swift */; };
+ 3074C81529D3E0450068F00B /* DebtTransactionType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3074C81429D3E0450068F00B /* DebtTransactionType.swift */; };
3076E6AA28B9C8A6006BAADC /* RequestMethod.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3076E6A928B9C8A6006BAADC /* RequestMethod.swift */; };
3076E6AC28B9CC13006BAADC /* RequestMethodTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3076E6AB28B9CC13006BAADC /* RequestMethodTests.swift */; };
307EA3B12878794A00E380E7 /* Response.swift in Sources */ = {isa = PBXBuildFile; fileRef = 307EA3B02878794A00E380E7 /* Response.swift */; };
@@ -257,6 +258,11 @@
307EA3D728788EB300E380E7 /* SaveTransactionsResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = 307EA3D628788EB300E380E7 /* SaveTransactionsResponse.swift */; };
307EA3D928788ECE00E380E7 /* HybridTransactionsResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = 307EA3D828788ECE00E380E7 /* HybridTransactionsResponse.swift */; };
307EA3DB2878A13C00E380E7 /* SerializerType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 307EA3DA2878A13C00E380E7 /* SerializerType.swift */; };
+ 3083131C29E6DB3700C33A45 /* DeleteTransactionRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3083131B29E6DB3700C33A45 /* DeleteTransactionRequest.swift */; };
+ 3083131E29E6DD4200C33A45 /* DeleteTransactionResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3083131D29E6DD4200C33A45 /* DeleteTransactionResponse.swift */; };
+ 3083132029E6E08D00C33A45 /* DeleteTransactionResponse.json in Resources */ = {isa = PBXBuildFile; fileRef = 3083131F29E6E08D00C33A45 /* DeleteTransactionResponse.json */; };
+ 3083132229E6E1B000C33A45 /* DeleteTransactionResponseTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3083132129E6E1B000C33A45 /* DeleteTransactionResponseTests.swift */; };
+ 3083132429E6E22200C33A45 /* DeleteTransactionRequestTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3083132329E6E22200C33A45 /* DeleteTransactionRequestTests.swift */; };
308C2B42227B8377005C5477 /* ScheduledTransactionDetail.json in Resources */ = {isa = PBXBuildFile; fileRef = 308C2B41227B8377005C5477 /* ScheduledTransactionDetail.json */; };
308C2B48227B85B6005C5477 /* ScheduledTransactionDetail.swift in Sources */ = {isa = PBXBuildFile; fileRef = 308C2B47227B85B6005C5477 /* ScheduledTransactionDetail.swift */; };
308C2B4A227B85EB005C5477 /* ScheduledTransactionDetailTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 308C2B49227B85EB005C5477 /* ScheduledTransactionDetailTests.swift */; };
@@ -553,6 +559,7 @@
307350F72278CE8500456287 /* TransactionDetail.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = TransactionDetail.json; sourceTree = ""; };
307350FB2278D22100456287 /* TransactionsResponse.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = TransactionsResponse.json; sourceTree = ""; };
307350FD2278D27500456287 /* Serializer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Serializer.swift; sourceTree = ""; };
+ 3074C81429D3E0450068F00B /* DebtTransactionType.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DebtTransactionType.swift; sourceTree = ""; };
3076E6A928B9C8A6006BAADC /* RequestMethod.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RequestMethod.swift; sourceTree = ""; };
3076E6AB28B9CC13006BAADC /* RequestMethodTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RequestMethodTests.swift; sourceTree = ""; };
307EA3B02878794A00E380E7 /* Response.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Response.swift; sourceTree = ""; };
@@ -577,6 +584,11 @@
307EA3D628788EB300E380E7 /* SaveTransactionsResponse.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SaveTransactionsResponse.swift; sourceTree = ""; };
307EA3D828788ECE00E380E7 /* HybridTransactionsResponse.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HybridTransactionsResponse.swift; sourceTree = ""; };
307EA3DA2878A13C00E380E7 /* SerializerType.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SerializerType.swift; sourceTree = ""; };
+ 3083131B29E6DB3700C33A45 /* DeleteTransactionRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeleteTransactionRequest.swift; sourceTree = ""; };
+ 3083131D29E6DD4200C33A45 /* DeleteTransactionResponse.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeleteTransactionResponse.swift; sourceTree = ""; };
+ 3083131F29E6E08D00C33A45 /* DeleteTransactionResponse.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; path = DeleteTransactionResponse.json; sourceTree = ""; };
+ 3083132129E6E1B000C33A45 /* DeleteTransactionResponseTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeleteTransactionResponseTests.swift; sourceTree = ""; };
+ 3083132329E6E22200C33A45 /* DeleteTransactionRequestTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeleteTransactionRequestTests.swift; sourceTree = ""; };
308C2B41227B8377005C5477 /* ScheduledTransactionDetail.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = ScheduledTransactionDetail.json; sourceTree = ""; };
308C2B47227B85B6005C5477 /* ScheduledTransactionDetail.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ScheduledTransactionDetail.swift; sourceTree = ""; };
308C2B49227B85EB005C5477 /* ScheduledTransactionDetailTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ScheduledTransactionDetailTests.swift; sourceTree = ""; };
@@ -767,6 +779,7 @@
302F16C728793D6A00A336AD /* TransactionsByCategoryRequestTests.swift */,
302F16CB28793E3100A336AD /* TransactionsByPayeeRequestTests.swift */,
30EBB51822791C18000FE07D /* UserRequestTests.swift */,
+ 3083132329E6E22200C33A45 /* DeleteTransactionRequestTests.swift */,
);
path = requests;
sourceTree = "";
@@ -817,6 +830,7 @@
30EBB567227BC629000FE07D /* CategoryResponse.json */,
307350E92278CA5F00456287 /* CurrencyFormat.json */,
307350ED2278CCE500456287 /* DateFormat.json */,
+ 3083131F29E6E08D00C33A45 /* DeleteTransactionResponse.json */,
307350F12278CDF800456287 /* ErrorDetail.json */,
307350F22278CDF800456287 /* ErrorResponse.json */,
308C2B4B227B870D005C5477 /* HybridTransaction.json */,
@@ -971,6 +985,7 @@
308C2B59227B8B82005C5477 /* TransactionSummary.swift */,
30DA1CA3227A27690005E34E /* TransactionType.swift */,
30EBB50A22791929000FE07D /* User.swift */,
+ 3074C81429D3E0450068F00B /* DebtTransactionType.swift */,
);
path = models;
sourceTree = "";
@@ -999,6 +1014,7 @@
302F16952879306A00A336AD /* CategoriesRequest.swift */,
302F1699287930F800A336AD /* CategoryByMonthRequest.swift */,
30EBB563227BC32C000FE07D /* CategoryRequest.swift */,
+ 3083131B29E6DB3700C33A45 /* DeleteTransactionRequest.swift */,
302F16A92879359A00A336AD /* LocationsForPayeeRequest.swift */,
302F16A12879332100A336AD /* MonthRequest.swift */,
30BA9B6E227C962100BD4281 /* MonthsRequest.swift */,
@@ -1087,6 +1103,7 @@
307EA3B62878854100E380E7 /* BudgetSummaryResponse.swift */,
307EA3BC28788A7800E380E7 /* CategoriesResponse.swift */,
307EA3BE28788A9B00E380E7 /* CategoryResponse.swift */,
+ 3083131D29E6DD4200C33A45 /* DeleteTransactionResponse.swift */,
30E1633D2277ED8D00A1222B /* ErrorResponse.swift */,
307EA3D828788ECE00E380E7 /* HybridTransactionsResponse.swift */,
307EA3C228788B3D00E380E7 /* MonthResponse.swift */,
@@ -1117,6 +1134,7 @@
3008B4492878AD420025034C /* BudgetSummaryResponseTests.swift */,
3008B44D2878AD9F0025034C /* CategoriesResponseTests.swift */,
30EBB55D227BC104000FE07D /* CategoryResponseTests.swift */,
+ 3083132129E6E1B000C33A45 /* DeleteTransactionResponseTests.swift */,
30DA1CC3227A50AC0005E34E /* ErrorResponseTests.swift */,
3008B45D2878AF150025034C /* HybridTransactionsResponseTests.swift */,
30BA9B64227C94C600BD4281 /* MonthResponseTests.swift */,
@@ -1393,6 +1411,7 @@
30BA9B7F227CCB6C00BD4281 /* HybridTransactionsResponse.json in Resources */,
307350F82278CE8500456287 /* TransactionDetail.json in Resources */,
30307FB1227B50F600CBF404 /* Payee.json in Resources */,
+ 3083132029E6E08D00C33A45 /* DeleteTransactionResponse.json in Resources */,
308C2B5C227B8CB1005C5477 /* TransactionSummary.json in Resources */,
30EBB56A227BC629000FE07D /* CategoryResponse.json in Resources */,
30EBB569227BC629000FE07D /* Category.json in Resources */,
@@ -1622,6 +1641,7 @@
302F16B62879392700A336AD /* SaveTransactionRequest.swift in Sources */,
3046F3DD227B6613007778A1 /* PayeeRequest.swift in Sources */,
3046A4EF2876A098006CB35A /* ClientType.swift in Sources */,
+ 3083131C29E6DB3700C33A45 /* DeleteTransactionRequest.swift in Sources */,
307EA3D728788EB300E380E7 /* SaveTransactionsResponse.swift in Sources */,
302F16C628793D4900A336AD /* TransactionsByCategoryRequest.swift in Sources */,
3046F3EF227B7281007778A1 /* Category.swift in Sources */,
@@ -1647,7 +1667,9 @@
30E1633E2277ED8D00A1222B /* ErrorResponse.swift in Sources */,
302F169A287930F800A336AD /* CategoryByMonthRequest.swift in Sources */,
307EA3C128788B1C00E380E7 /* MonthsResponse.swift in Sources */,
+ 3083131E29E6DD4200C33A45 /* DeleteTransactionResponse.swift in Sources */,
307EA3CB28788D1300E380E7 /* PayeesResponse.swift in Sources */,
+ 3074C81529D3E0450068F00B /* DebtTransactionType.swift in Sources */,
307EA3C328788B3D00E380E7 /* MonthResponse.swift in Sources */,
307350CC2278A0D200456287 /* SaveTransaction.swift in Sources */,
307EA3D128788E4700E380E7 /* TransactionResponse.swift in Sources */,
@@ -1720,6 +1742,7 @@
302F169C2879311500A336AD /* CategoryByMonthRequestTests.swift in Sources */,
3046F3F1227B73DD007778A1 /* PayeeLocationTests.swift in Sources */,
308F59A328B8DBF500445343 /* MonthServiceTests.swift in Sources */,
+ 3083132229E6E1B000C33A45 /* DeleteTransactionResponseTests.swift in Sources */,
307350DC2278BF8A00456287 /* BudgetSummaryTests.swift in Sources */,
308C2B4A227B85EB005C5477 /* ScheduledTransactionDetailTests.swift in Sources */,
302F16BC28793B3600A336AD /* SaveTransactionsRequestTests.swift in Sources */,
@@ -1740,6 +1763,7 @@
307350DE2278BFB600456287 /* JSONTools.swift in Sources */,
302F16B42879371E00A336AD /* ScheduledTransactionsRequestTests.swift in Sources */,
308F59A528B93ECF00445343 /* PayeeLocationServiceTests.swift in Sources */,
+ 3083132429E6E22200C33A45 /* DeleteTransactionRequestTests.swift in Sources */,
30BA9B51227C84BE00BD4281 /* PayeeLocationResponseTests.swift in Sources */,
308F599F28B86D3C00445343 /* BudgetServiceTests.swift in Sources */,
30DA1CC4227A50AC0005E34E /* ErrorResponseTests.swift in Sources */,
diff --git a/SwiftYNAB/SwiftYNAB/Info.plist b/SwiftYNAB/SwiftYNAB/Info.plist
index e47deeb..571d51d 100644
--- a/SwiftYNAB/SwiftYNAB/Info.plist
+++ b/SwiftYNAB/SwiftYNAB/Info.plist
@@ -15,8 +15,8 @@
CFBundlePackageType
FMWK
CFBundleShortVersionString
- 2.0.1
+ 2.1.0
CFBundleVersion
- 2.0.1
+ 2.1.0
diff --git a/SwiftYNAB/SwiftYNAB/YNAB.swift b/SwiftYNAB/SwiftYNAB/YNAB.swift
index fb00b0d..151df5b 100644
--- a/SwiftYNAB/SwiftYNAB/YNAB.swift
+++ b/SwiftYNAB/SwiftYNAB/YNAB.swift
@@ -45,7 +45,7 @@ public class YNAB {
/// - accessToken: Personal API access token, or token obtained via OAuth login
/// - urlSession: By default, it uses the default `URLSession.shared`, but allows the injection of a custom session
public init(accessToken: String, urlSession: URLSession = .shared) {
- self.client = Client(
+ client = Client(
accessToken: accessToken,
urlSession: urlSession,
serializer: Serializer.shared
diff --git a/SwiftYNAB/SwiftYNAB/models/Account.swift b/SwiftYNAB/SwiftYNAB/models/Account.swift
index ec06ff8..f812ed2 100644
--- a/SwiftYNAB/SwiftYNAB/models/Account.swift
+++ b/SwiftYNAB/SwiftYNAB/models/Account.swift
@@ -40,6 +40,27 @@ public struct Account: Codable, Equatable {
/// Payee id for transfers
public let transferPayeeId: String
+ /// Indicates whether the account is linked via direct import
+ public let directImportLinked: Bool
+
+ /// Indicates whether direct import is in an error state
+ public let directImportInError: Bool
+
+ /// Date when account was last reconciled
+ public let lastReconciledAt: String?
+
+ /// Original balance for a debt account
+ public let debtOriginalBalance: Int?
+
+ /// Interest rate at different points in time
+ public let debtInterestRates: [String: Int]
+
+ /// Minimum payment at different points in time
+ public let debtMinimumPayments: [String: Int]
+
+ /// Escrow amount at different points in time
+ public let debtEscrowAmounts: [String: Int]
+
/// Deleted account or not
public let deleted: Bool
}
diff --git a/SwiftYNAB/SwiftYNAB/models/Category.swift b/SwiftYNAB/SwiftYNAB/models/Category.swift
index cc73112..ed3d818 100644
--- a/SwiftYNAB/SwiftYNAB/models/Category.swift
+++ b/SwiftYNAB/SwiftYNAB/models/Category.swift
@@ -40,6 +40,15 @@ public struct Category: Codable, Equatable {
/// Type of goal associated with this category
public let goalType: String?
+ /// The day of the goal
+ public let goalDay: Int?
+
+ /// The goal cadence
+ public let goalCadence: Int?
+
+ /// The goal cadence frequency
+ public let goalCadenceFrequency: Int?
+
/// Goal creation month
public let goalCreationMonth: String?
@@ -52,6 +61,21 @@ public struct Category: Codable, Equatable {
/// Goal percentage complete
public let goalPercentageComplete: Int?
+ /// The number of months, including the current month, left in the current goal period.
+ public let goalMonthsToBudget: Int?
+
+ /// The amount of funding still needed in the current month to stay on track towards completing the goal within the current
+ /// goal period. This amount will generally correspond to the ‘Underfunded’ amount in the web and mobile clients except when
+ /// viewing a category with a Needed for Spending Goal in a future month. The web and mobile clients will ignore any funding
+ /// from a prior goal period when viewing category with a Needed for Spending Goal in a future month.
+ public let goalUnderFunded: Int?
+
+ /// The total amount funded towards the goal within the current goal period.
+ public let goalOverallFunded: Int?
+
+ /// The amount of funding still needed to complete the goal within the current goal period.
+ public let goalOverallLeft: Int?
+
/// Whether or not the goal is deleted
public let deleted: Bool
}
diff --git a/SwiftYNAB/SwiftYNAB/models/DebtTransactionType.swift b/SwiftYNAB/SwiftYNAB/models/DebtTransactionType.swift
new file mode 100644
index 0000000..5ddaafd
--- /dev/null
+++ b/SwiftYNAB/SwiftYNAB/models/DebtTransactionType.swift
@@ -0,0 +1,20 @@
+//
+// DebtTransactionType.swift
+// SwiftYNAB
+//
+// Created by Andre Bocchini on 3/28/23.
+// Copyright © 2023 Andre Bocchini. All rights reserved.
+//
+
+import Foundation
+
+public enum DebtTransactionType: String, Codable {
+ case payment
+ case refund
+ case fee
+ case interest
+ case escrow
+ case balancedAdjustment
+ case credit
+ case charge
+}
diff --git a/SwiftYNAB/SwiftYNAB/models/HybridTransaction.swift b/SwiftYNAB/SwiftYNAB/models/HybridTransaction.swift
index 8967a56..3ff37c8 100644
--- a/SwiftYNAB/SwiftYNAB/models/HybridTransaction.swift
+++ b/SwiftYNAB/SwiftYNAB/models/HybridTransaction.swift
@@ -52,6 +52,9 @@ public struct HybridTransaction: Codable, Equatable {
/// Category id
public let categoryId: String
+ /// Category name
+ public let categoryName: String
+
/// Transfer account id
public let transferAccountId: String?
@@ -64,6 +67,15 @@ public struct HybridTransaction: Codable, Equatable {
/// Import id
public let importId: String?
+ /// If the transaction was imported, the payee name that was used when importing and before applying any payee rename rules
+ public let importPayeeName: String?
+
+ /// If the transaction was imported, the original payee name as it appeared on the statement
+ public let importPayeeOriginal: String?
+
+ /// If the transaction is a debt/loan account transaction, the type of transaction
+ public let debtTransactionType: DebtTransactionType?
+
/// Whether or not the transaction is deleted
public let deleted: Bool
}
diff --git a/SwiftYNAB/SwiftYNAB/models/SubTransaction.swift b/SwiftYNAB/SwiftYNAB/models/SubTransaction.swift
index 6a15cd1..8647576 100644
--- a/SwiftYNAB/SwiftYNAB/models/SubTransaction.swift
+++ b/SwiftYNAB/SwiftYNAB/models/SubTransaction.swift
@@ -25,12 +25,21 @@ public struct SubTransaction: Codable, Equatable {
/// Payee id
public let payeeId: String?
+ /// Payee name
+ public let payeeName: String?
+
/// Category id
public let categoryId: String?
+ /// Category name
+ public let categoryName: String?
+
/// If it's a transfer transaction, the transfer account id
public let transferAccountId: String?
+ /// If a transfer, the id of transaction on the other side of the transfer
+ public let transferTransactionId: String?
+
/// Whether or not the transaction has been deleted
public let deleted: Bool
}
diff --git a/SwiftYNAB/SwiftYNAB/models/TransactionSummary.swift b/SwiftYNAB/SwiftYNAB/models/TransactionSummary.swift
index c56459e..b22386c 100644
--- a/SwiftYNAB/SwiftYNAB/models/TransactionSummary.swift
+++ b/SwiftYNAB/SwiftYNAB/models/TransactionSummary.swift
@@ -46,9 +46,25 @@ public struct TransactionSummary: Codable, Equatable {
/// If it's a transfer transaction, the transfer transaction id
public let transferTransactionId: String?
- /// Import id
+ /// If transaction is matched, the id of the matched transaction
+ public let matchedTransactionId: 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’.
public let importId: String?
+ /// If the transaction was imported, the payee name that was used when importing and before applying any payee rename rules
+ public let importPayeeName: String?
+
+ /// If the transaction was imported, the original payee name as it appeared on the statement
+ public let importPayeeNameOriginal: String?
+
+ /// If the transaction was imported, the original payee name as it appeared on the statement
+ public let debtTransactionType: DebtTransactionType?
+
/// Whether or not the transaction has been deleted
public let deleted: Bool
}
diff --git a/SwiftYNAB/SwiftYNAB/networking/Client.swift b/SwiftYNAB/SwiftYNAB/networking/Client.swift
index 53d40f3..b6c874b 100644
--- a/SwiftYNAB/SwiftYNAB/networking/Client.swift
+++ b/SwiftYNAB/SwiftYNAB/networking/Client.swift
@@ -14,7 +14,7 @@ class Client {
private let serializer: SerializerType
init(accessToken: String, urlSession: URLSessionType, serializer: SerializerType) {
- self.authorizationHeader = "Bearer \(accessToken)"
+ authorizationHeader = "Bearer \(accessToken)"
self.urlSession = urlSession
self.serializer = serializer
}
diff --git a/SwiftYNAB/SwiftYNAB/requests/DeleteTransactionRequest.swift b/SwiftYNAB/SwiftYNAB/requests/DeleteTransactionRequest.swift
new file mode 100644
index 0000000..3d523ef
--- /dev/null
+++ b/SwiftYNAB/SwiftYNAB/requests/DeleteTransactionRequest.swift
@@ -0,0 +1,36 @@
+//
+// DeleteTransactionRequest.swift
+// SwiftYNAB
+//
+// Created by Andre Bocchini on 4/12/23.
+// Copyright © 2023 Andre Bocchini. All rights reserved.
+//
+
+import Foundation
+
+struct DeleteTransactionRequest {
+ let budgetId: String
+ let transactionId: String
+}
+
+extension DeleteTransactionRequest {
+ struct Body: Codable {
+ let budgetId: String
+ let transactionId: String
+ }
+}
+
+extension DeleteTransactionRequest: Request {
+ var path: String {
+ "/v1/budgets/\(budgetId)/transactions/\(transactionId)"
+ }
+
+ var method: RequestMethod {
+ .delete
+ }
+
+ var body: Data? {
+ let body = Body(budgetId: budgetId, transactionId: transactionId)
+ return try? Serializer.shared.encode(body)
+ }
+}
diff --git a/SwiftYNAB/SwiftYNAB/requests/Request.swift b/SwiftYNAB/SwiftYNAB/requests/Request.swift
index 9bb7c12..4a8d284 100644
--- a/SwiftYNAB/SwiftYNAB/requests/Request.swift
+++ b/SwiftYNAB/SwiftYNAB/requests/Request.swift
@@ -54,7 +54,7 @@ extension Request {
case .patch, .post, .put:
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = body
- case .get:
+ case .delete, .get:
break
}
diff --git a/SwiftYNAB/SwiftYNAB/requests/RequestMethod.swift b/SwiftYNAB/SwiftYNAB/requests/RequestMethod.swift
index bdcf9d1..eae1074 100644
--- a/SwiftYNAB/SwiftYNAB/requests/RequestMethod.swift
+++ b/SwiftYNAB/SwiftYNAB/requests/RequestMethod.swift
@@ -9,6 +9,7 @@
import Foundation
enum RequestMethod: String {
+ case delete = "DELETE"
case get = "GET"
case patch = "PATCH"
case post = "POST"
diff --git a/SwiftYNAB/SwiftYNAB/responses/DeleteTransactionResponse.swift b/SwiftYNAB/SwiftYNAB/responses/DeleteTransactionResponse.swift
new file mode 100644
index 0000000..c897278
--- /dev/null
+++ b/SwiftYNAB/SwiftYNAB/responses/DeleteTransactionResponse.swift
@@ -0,0 +1,13 @@
+//
+// DeleteTransactionResponse.swift
+// SwiftYNAB
+//
+// Created by Andre Bocchini on 4/12/23.
+// Copyright © 2023 Andre Bocchini. All rights reserved.
+//
+
+import Foundation
+
+struct DeleteTransactionResponse: Codable {
+ let transaction: TransactionDetail
+}
diff --git a/SwiftYNAB/SwiftYNAB/services/TransactionService.swift b/SwiftYNAB/SwiftYNAB/services/TransactionService.swift
index 09d8b26..a66a515 100644
--- a/SwiftYNAB/SwiftYNAB/services/TransactionService.swift
+++ b/SwiftYNAB/SwiftYNAB/services/TransactionService.swift
@@ -193,7 +193,7 @@ extension TransactionService: TransactionServiceType {
)
}
- /// Updates a single transactions.
+ /// Updates a single transaction.
///
/// - Parameters:
/// - budgetId: The id of the budget (*last_used* can also be used to specify the last used budget)
@@ -242,4 +242,23 @@ extension TransactionService: TransactionServiceType {
response.duplicateImportIds
)
}
+
+ /// Delete a single transaction.
+ ///
+ /// - Parameters:
+ /// - budgetId: The id of the budget (*last_used* can also be used to specify the last used budget)
+ /// - transactionId: Id of the rransaction to be deleted
+ ///
+ /// - Returns: The updated transaction
+ public func deleteTransaction(
+ budgetId: String,
+ transactionId: String
+ ) async throws -> TransactionDetail {
+ let request = DeleteTransactionRequest(
+ budgetId: budgetId,
+ transactionId: transactionId
+ )
+ let response: DeleteTransactionResponse = try await client.request(request)
+ return response.transaction
+ }
}
diff --git a/SwiftYNAB/SwiftYNABTests/formatters/DateConverterTests.swift b/SwiftYNAB/SwiftYNABTests/formatters/DateConverterTests.swift
index dda6a70..78d630b 100644
--- a/SwiftYNAB/SwiftYNABTests/formatters/DateConverterTests.swift
+++ b/SwiftYNAB/SwiftYNABTests/formatters/DateConverterTests.swift
@@ -52,7 +52,7 @@ class DateConverterTests: XCTestCase {
XCTAssertEqual("2015.02.25", converter.budgetFormatDateString(from: "2015-02-25"))
}
- func testBudgetFormatDateStringIsNilWithInvalidDateString () {
+ func testBudgetFormatDateStringIsNilWithInvalidDateString() {
let format = DateFormat(format: "YYY.MM.DD")
let converter = DateConverter(dateFormat: format)
XCTAssertNil(converter.budgetFormatDateString(from: "i am not a date"))
diff --git a/SwiftYNAB/SwiftYNABTests/json/Account.json b/SwiftYNAB/SwiftYNABTests/json/Account.json
index 1d30211..c07edad 100644
--- a/SwiftYNAB/SwiftYNABTests/json/Account.json
+++ b/SwiftYNAB/SwiftYNABTests/json/Account.json
@@ -9,5 +9,10 @@
"cleared_balance": 0,
"uncleared_balance": 0,
"transfer_payee_id": "0bfe752a-89e1-65d4-73d4-0ae2c2f71d54",
- "deleted": false
+ "deleted": false,
+ "direct_import_linked": false,
+ "direct_import_in_error": false,
+ "debt_interest_rates": {},
+ "debt_minimum_payments": {},
+ "debt_escrow_amounts": {}
}
diff --git a/SwiftYNAB/SwiftYNABTests/json/AccountResponse.json b/SwiftYNAB/SwiftYNABTests/json/AccountResponse.json
index 12f51f4..90e20a6 100644
--- a/SwiftYNAB/SwiftYNABTests/json/AccountResponse.json
+++ b/SwiftYNAB/SwiftYNABTests/json/AccountResponse.json
@@ -10,6 +10,11 @@
"cleared_balance": 0,
"uncleared_balance": 0,
"transfer_payee_id": "0bfe752a-89e1-65d4-73d4-0ae2c2f71d54",
- "deleted": false
-}
+ "deleted": false,
+ "direct_import_linked": false,
+ "direct_import_in_error": false,
+ "debt_interest_rates": {},
+ "debt_minimum_payments": {},
+ "debt_escrow_amounts": {}
+ }
}
diff --git a/SwiftYNAB/SwiftYNABTests/json/AccountsResponse.json b/SwiftYNAB/SwiftYNABTests/json/AccountsResponse.json
index 2f3f641..08ea648 100644
--- a/SwiftYNAB/SwiftYNABTests/json/AccountsResponse.json
+++ b/SwiftYNAB/SwiftYNABTests/json/AccountsResponse.json
@@ -10,7 +10,12 @@
"cleared_balance": 0,
"uncleared_balance": 0,
"transfer_payee_id": "0bfe752a-89e1-65d4-73d4-0ae2c2f71d54",
- "deleted": false
+ "deleted": false,
+ "direct_import_linked": false,
+ "direct_import_in_error": false,
+ "debt_interest_rates": {},
+ "debt_minimum_payments": {},
+ "debt_escrow_amounts": {}
}],
"server_knowledge": 18814
}
diff --git a/SwiftYNAB/SwiftYNABTests/json/BudgetDetail.json b/SwiftYNAB/SwiftYNABTests/json/BudgetDetail.json
index 65909f4..57d521f 100644
--- a/SwiftYNAB/SwiftYNABTests/json/BudgetDetail.json
+++ b/SwiftYNAB/SwiftYNABTests/json/BudgetDetail.json
@@ -29,7 +29,12 @@
"cleared_balance": 0,
"uncleared_balance": 0,
"transfer_payee_id": "0bfe752a-89e1-65d4-73d4-0ae2c2f71d54",
- "deleted": false
+ "deleted": false,
+ "direct_import_linked": false,
+ "direct_import_in_error": false,
+ "debt_interest_rates": {},
+ "debt_minimum_payments": {},
+ "debt_escrow_amounts": {}
}
],
"payees": [
@@ -166,4 +171,4 @@
"deleted": false
}
]
-}
\ No newline at end of file
+}
diff --git a/SwiftYNAB/SwiftYNABTests/json/BudgetDetailResponse.json b/SwiftYNAB/SwiftYNABTests/json/BudgetDetailResponse.json
index 7249c0c..e0a8109 100644
--- a/SwiftYNAB/SwiftYNABTests/json/BudgetDetailResponse.json
+++ b/SwiftYNAB/SwiftYNABTests/json/BudgetDetailResponse.json
@@ -30,7 +30,12 @@
"cleared_balance": 0,
"uncleared_balance": 0,
"transfer_payee_id": "0bfe752a-89e1-65d4-73d4-0ae2c2f71d54",
- "deleted": false
+ "deleted": false,
+ "direct_import_linked": false,
+ "direct_import_in_error": false,
+ "debt_interest_rates": {},
+ "debt_minimum_payments": {},
+ "debt_escrow_amounts": {}
}
],
"payees": [
diff --git a/SwiftYNAB/SwiftYNABTests/json/CategoryGroupWithCategories.json b/SwiftYNAB/SwiftYNABTests/json/CategoryGroupWithCategories.json
index 1772303..43108a8 100644
--- a/SwiftYNAB/SwiftYNABTests/json/CategoryGroupWithCategories.json
+++ b/SwiftYNAB/SwiftYNABTests/json/CategoryGroupWithCategories.json
@@ -22,4 +22,4 @@
"deleted": false
}
]
-}
\ No newline at end of file
+}
diff --git a/SwiftYNAB/SwiftYNABTests/json/DeleteTransactionResponse.json b/SwiftYNAB/SwiftYNABTests/json/DeleteTransactionResponse.json
new file mode 100644
index 0000000..7f49384
--- /dev/null
+++ b/SwiftYNAB/SwiftYNABTests/json/DeleteTransactionResponse.json
@@ -0,0 +1,30 @@
+{
+ "transaction_ids": [
+ "8c203ffc-d0d0-44b3-8ab4-5aae9901b928"
+ ],
+ "transaction": {
+ "id": "8f203c6c-d1d0-42b3-82d4-5aae9900b928",
+ "date": "2020-06-24",
+ "amount": 10000,
+ "memo": null,
+ "cleared": "cleared",
+ "approved": true,
+ "flag_color": null,
+ "account_id": "7099375a-7905-46c5-b6ff-edef5676da96",
+ "account_name": "BofA",
+ "payee_id": "d76a5430-cbbb-482d-a22a-6c8cfcc198a6",
+ "payee_name": "Starting Balance",
+ "category_id": "5b88038c-7d15-48c4-8aa3-98c9774f1275",
+ "category_name": "Inflow: Ready to Assign",
+ "transfer_account_id": null,
+ "transfer_transaction_id": null,
+ "matched_transaction_id": null,
+ "import_id": null,
+ "import_payee_name": null,
+ "import_payee_name_original": null,
+ "debt_transaction_type": null,
+ "deleted": true,
+ "subtransactions": []
+ },
+ "server_knowledge": 1010
+}
diff --git a/SwiftYNAB/SwiftYNABTests/json/NewBudgetAccountResponse.json b/SwiftYNAB/SwiftYNABTests/json/NewBudgetAccountResponse.json
index 8aaa3a5..87b3516 100644
--- a/SwiftYNAB/SwiftYNABTests/json/NewBudgetAccountResponse.json
+++ b/SwiftYNAB/SwiftYNABTests/json/NewBudgetAccountResponse.json
@@ -11,7 +11,12 @@
"cleared_balance": 0,
"uncleared_balance": 0,
"transfer_payee_id": "47c0ff92-43rd-47da-1234-13d9e16cb394",
- "deleted": false
+ "deleted": false,
+ "direct_import_linked": false,
+ "direct_import_in_error": false,
+ "debt_interest_rates": {},
+ "debt_minimum_payments": {},
+ "debt_escrow_amounts": {}
},
"server_knowledge": 36971
}
diff --git a/SwiftYNAB/SwiftYNABTests/requests/DeleteTransactionRequestTests.swift b/SwiftYNAB/SwiftYNABTests/requests/DeleteTransactionRequestTests.swift
new file mode 100644
index 0000000..0558290
--- /dev/null
+++ b/SwiftYNAB/SwiftYNABTests/requests/DeleteTransactionRequestTests.swift
@@ -0,0 +1,30 @@
+//
+// DeleteTransactionRequestTests.swift
+// SwiftYNABTests
+//
+// Created by Andre Bocchini on 4/12/23.
+// Copyright © 2023 Andre Bocchini. All rights reserved.
+//
+
+import Foundation
+import XCTest
+@testable import SwiftYNAB
+
+class DeleteTransactionRequestTests: XCTestCase {
+ func deleteTransactionRequest() throws {
+ let request = DeleteTransactionRequest(
+ budgetId: "budget_id",
+ transactionId: "transaction_id"
+ )
+
+ let body = DeleteTransactionRequest.Body(
+ budgetId: "budget_id",
+ transactionId: "transaction_id"
+ )
+ let expectedBody = try XCTUnwrap(Serializer.shared.encode(body))
+
+ XCTAssertEqual(request.method, .delete)
+ XCTAssertEqual(request.body, expectedBody)
+ XCTAssertEqual(request.path, "/v1/budgets/budget_id/transactions/transaction_id")
+ }
+}
diff --git a/SwiftYNAB/SwiftYNABTests/responses/DeleteTransactionResponseTests.swift b/SwiftYNAB/SwiftYNABTests/responses/DeleteTransactionResponseTests.swift
new file mode 100644
index 0000000..487e7a1
--- /dev/null
+++ b/SwiftYNAB/SwiftYNABTests/responses/DeleteTransactionResponseTests.swift
@@ -0,0 +1,16 @@
+//
+// DeleteTransactionResponseTests.swift
+// SwiftYNABTests
+//
+// Created by Andre Bocchini on 4/12/23.
+// Copyright © 2023 Andre Bocchini. All rights reserved.
+//
+
+import XCTest
+@testable import SwiftYNAB
+
+class DeleteTransactionResponseTests: XCTestCase {
+ func testDeleteTransactionResponseDecoding() {
+ XCTAssertNoThrow(try JSONTools.testDecoding(type: DeleteTransactionResponse.self))
+ }
+}
diff --git a/SwiftYNAB/SwiftYNABTests/services/AccountServiceTests.swift b/SwiftYNAB/SwiftYNABTests/services/AccountServiceTests.swift
index 27d9c13..20ffe0d 100644
--- a/SwiftYNAB/SwiftYNABTests/services/AccountServiceTests.swift
+++ b/SwiftYNAB/SwiftYNABTests/services/AccountServiceTests.swift
@@ -23,6 +23,13 @@ class AccountServiceTests: XCTestCase {
clearedBalance: 0,
unclearedBalance: 0,
transferPayeeId: "payeed_id",
+ directImportLinked: false,
+ directImportInError: false,
+ lastReconciledAt: nil,
+ debtOriginalBalance: nil,
+ debtInterestRates: [:],
+ debtMinimumPayments: [:],
+ debtEscrowAmounts: [:],
deleted: false
)
let expectedResponse = AccountResponse(account: expectedAccount)
@@ -61,6 +68,13 @@ class AccountServiceTests: XCTestCase {
clearedBalance: 0,
unclearedBalance: 0,
transferPayeeId: "payeed_id",
+ directImportLinked: false,
+ directImportInError: false,
+ lastReconciledAt: nil,
+ debtOriginalBalance: nil,
+ debtInterestRates: [:],
+ debtMinimumPayments: [:],
+ debtEscrowAmounts: [:],
deleted: false
)
let expectedResponse = AccountsResponse(accounts: [expectedAccount], serverKnowledge: 2)
@@ -100,6 +114,13 @@ class AccountServiceTests: XCTestCase {
clearedBalance: 0,
unclearedBalance: 0,
transferPayeeId: "payeed_id",
+ directImportLinked: false,
+ directImportInError: false,
+ lastReconciledAt: nil,
+ debtOriginalBalance: nil,
+ debtInterestRates: [:],
+ debtMinimumPayments: [:],
+ debtEscrowAmounts: [:],
deleted: false
)
let expectedResponse = AccountResponse(account: expectedAccount)
diff --git a/SwiftYNAB/SwiftYNABTests/services/CategoryServiceTests.swift b/SwiftYNAB/SwiftYNABTests/services/CategoryServiceTests.swift
index 9cda7eb..a08466c 100644
--- a/SwiftYNAB/SwiftYNABTests/services/CategoryServiceTests.swift
+++ b/SwiftYNAB/SwiftYNABTests/services/CategoryServiceTests.swift
@@ -53,10 +53,17 @@ class CategoryServiceTests: XCTestCase {
activity: 0,
balance: 0,
goalType: nil,
+ goalDay: nil,
+ goalCadence: nil,
+ goalCadenceFrequency: nil,
goalCreationMonth: nil,
goalTarget: nil,
goalTargetMonth: nil,
goalPercentageComplete: nil,
+ goalMonthsToBudget: nil,
+ goalUnderFunded: nil,
+ goalOverallFunded: nil,
+ goalOverallLeft: nil,
deleted: false
)
let expectedResponse = CategoryResponse(category: expectedCategory)
@@ -92,10 +99,17 @@ class CategoryServiceTests: XCTestCase {
activity: 0,
balance: 0,
goalType: nil,
+ goalDay: nil,
+ goalCadence: nil,
+ goalCadenceFrequency: nil,
goalCreationMonth: nil,
goalTarget: nil,
goalTargetMonth: nil,
goalPercentageComplete: nil,
+ goalMonthsToBudget: nil,
+ goalUnderFunded: nil,
+ goalOverallFunded: nil,
+ goalOverallLeft: nil,
deleted: false
)
let expectedResponse = CategoryResponse(category: expectedCategory)
@@ -139,10 +153,17 @@ class CategoryServiceTests: XCTestCase {
activity: 0,
balance: 0,
goalType: nil,
+ goalDay: nil,
+ goalCadence: nil,
+ goalCadenceFrequency: nil,
goalCreationMonth: nil,
goalTarget: nil,
goalTargetMonth: nil,
goalPercentageComplete: nil,
+ goalMonthsToBudget: nil,
+ goalUnderFunded: nil,
+ goalOverallFunded: nil,
+ goalOverallLeft: nil,
deleted: false
)
let expectedResponse = CategoryResponse(category: expectedCategory)
diff --git a/SwiftYNAB/SwiftYNABTests/services/TransactionServiceTests.swift b/SwiftYNAB/SwiftYNABTests/services/TransactionServiceTests.swift
index 5fa98fb..fbfa811 100644
--- a/SwiftYNAB/SwiftYNABTests/services/TransactionServiceTests.swift
+++ b/SwiftYNAB/SwiftYNABTests/services/TransactionServiceTests.swift
@@ -170,10 +170,14 @@ class TransactionServiceTests: XCTestCase {
payeeId: nil,
payeeName: nil,
categoryId: "category_id",
+ categoryName: "",
transferAccountId: nil,
transferTransactionId: nil,
matchedTransactionId: nil,
importId: nil,
+ importPayeeName: nil,
+ importPayeeOriginal: nil,
+ debtTransactionType: .charge,
deleted: false
)
let expectedResponse = HybridTransactionsResponse(transactions: [expectedTransaction])
@@ -217,10 +221,14 @@ class TransactionServiceTests: XCTestCase {
payeeId: "payee_id",
payeeName: nil,
categoryId: "category_id",
+ categoryName: "",
transferAccountId: nil,
transferTransactionId: nil,
matchedTransactionId: nil,
importId: nil,
+ importPayeeName: nil,
+ importPayeeOriginal: nil,
+ debtTransactionType: .charge,
deleted: false
)
let expectedResponse = HybridTransactionsResponse(transactions: [expectedTransaction])
@@ -517,4 +525,54 @@ class TransactionServiceTests: XCTestCase {
XCTAssertEqual(error as? SwiftYNABError, .httpError(statusCode: 500))
}
}
+
+ func testDeleteTransactionsReturnsTransactionsWhenRequestSucceeds() async throws {
+ let expectedTransaction = TransactionDetail(
+ id: "transaction_id",
+ date: "2022-07-07",
+ amount: 0,
+ memo: nil,
+ cleared: "cleared",
+ approved: false,
+ flagColor: nil,
+ accountId: "account_id",
+ accountName: "account_name",
+ payeeId: "payee_id",
+ payeeName: nil,
+ categoryId: nil,
+ categoryName: nil,
+ transferAccountId: nil,
+ transferTransactionId: nil,
+ matchedTransactionId: nil,
+ importId: nil,
+ deleted: false,
+ subtransactions: []
+ )
+ let expectedResponse = DeleteTransactionResponse(transaction: expectedTransaction)
+
+ let client = MockSuccessClient(expectedResponse: expectedResponse)
+ let service = TransactionService(client: client)
+ let actualResponse = try await service.deleteTransaction(
+ budgetId: "budget_id",
+ transactionId: "transaction_id"
+ )
+
+ XCTAssertEqual(actualResponse, expectedTransaction)
+ }
+
+ func testDeleteTransactionsThrowsErrorWhenRequestFails() async throws {
+ let expectedError = SwiftYNABError.httpError(statusCode: 500)
+ let client = MockFailureClient(expectedError: expectedError)
+ let service = TransactionService(client: client)
+
+ do {
+ _ = try await service.deleteTransaction(
+ budgetId: "budget_id",
+ transactionId: "transaction_id"
+ )
+ XCTFail("Expected error to be thrown")
+ } catch {
+ XCTAssertEqual(error as? SwiftYNABError, .httpError(statusCode: 500))
+ }
+ }
}
diff --git a/docs/Classes.html b/docs/Classes.html
index 883a9cf..4c4f733 100644
--- a/docs/Classes.html
+++ b/docs/Classes.html
@@ -80,6 +80,9 @@
Enumerations
+
+ DebtTransactionType
+
TransactionType
@@ -523,8 +526,8 @@ Declaration
diff --git a/docs/Classes/AccountService.html b/docs/Classes/AccountService.html
index d67ae3c..5cd8fe9 100644
--- a/docs/Classes/AccountService.html
+++ b/docs/Classes/AccountService.html
@@ -80,6 +80,9 @@
Enumerations
+
+ DebtTransactionType
+
TransactionType
@@ -410,8 +413,8 @@ Return Value
diff --git a/docs/Classes/BudgetService.html b/docs/Classes/BudgetService.html
index e299d94..4ea9d87 100644
--- a/docs/Classes/BudgetService.html
+++ b/docs/Classes/BudgetService.html
@@ -80,6 +80,9 @@
Enumerations
+
+ DebtTransactionType
+
TransactionType
@@ -352,8 +355,8 @@ Return Value
diff --git a/docs/Classes/CategoryService.html b/docs/Classes/CategoryService.html
index 0bc0b03..8fc499f 100644
--- a/docs/Classes/CategoryService.html
+++ b/docs/Classes/CategoryService.html
@@ -80,6 +80,9 @@
Enumerations
+
+ DebtTransactionType
+
TransactionType
@@ -510,8 +513,8 @@ Return Value
diff --git a/docs/Classes/CurrencyFormatter.html b/docs/Classes/CurrencyFormatter.html
index 1bf4b09..d089816 100644
--- a/docs/Classes/CurrencyFormatter.html
+++ b/docs/Classes/CurrencyFormatter.html
@@ -80,6 +80,9 @@
Enumerations
+
+ DebtTransactionType
+
TransactionType
@@ -290,8 +293,8 @@ Return Value
diff --git a/docs/Classes/DateConverter.html b/docs/Classes/DateConverter.html
index aaa046a..10cc2d1 100644
--- a/docs/Classes/DateConverter.html
+++ b/docs/Classes/DateConverter.html
@@ -80,6 +80,9 @@
Enumerations
+
+ DebtTransactionType
+
TransactionType
@@ -390,8 +393,8 @@ Return Value
diff --git a/docs/Classes/MonthService.html b/docs/Classes/MonthService.html
index 9c71e9a..b6391c2 100644
--- a/docs/Classes/MonthService.html
+++ b/docs/Classes/MonthService.html
@@ -80,6 +80,9 @@
Enumerations
+
+ DebtTransactionType
+
TransactionType
@@ -329,8 +332,8 @@ Return Value
diff --git a/docs/Classes/PayeeLocationService.html b/docs/Classes/PayeeLocationService.html
index 576de4f..217e756 100644
--- a/docs/Classes/PayeeLocationService.html
+++ b/docs/Classes/PayeeLocationService.html
@@ -80,6 +80,9 @@
Enumerations
+
+ DebtTransactionType
+
TransactionType
@@ -380,8 +383,8 @@ Return Value
diff --git a/docs/Classes/PayeeService.html b/docs/Classes/PayeeService.html
index 40dabe6..9f575b5 100644
--- a/docs/Classes/PayeeService.html
+++ b/docs/Classes/PayeeService.html
@@ -80,6 +80,9 @@
Enumerations
+
+ DebtTransactionType
+
TransactionType
@@ -329,8 +332,8 @@ Return Value
diff --git a/docs/Classes/ScheduledTransactionService.html b/docs/Classes/ScheduledTransactionService.html
index c90fe2c..8eeebe7 100644
--- a/docs/Classes/ScheduledTransactionService.html
+++ b/docs/Classes/ScheduledTransactionService.html
@@ -80,6 +80,9 @@
Enumerations
+
+ DebtTransactionType
+
TransactionType
@@ -316,8 +319,8 @@ Return Value
diff --git a/docs/Classes/TransactionService.html b/docs/Classes/TransactionService.html
index 67b73e9..52a4031 100644
--- a/docs/Classes/TransactionService.html
+++ b/docs/Classes/TransactionService.html
@@ -80,6 +80,9 @@
Enumerations
+
+
+
+
+
+
+
+
Delete a single transaction.
+
+
+
+
Declaration
+
+
Swift
+
public func deleteTransaction (
+ budgetId : String ,
+ transactionId : String
+) async throws -> TransactionDetail
+
+
+
+
+
Parameters
+
+
+
+
+
+ budgetId
+
+
+
+
+
The id of the budget (last_used can also be used to specify the last used budget)
+
+
+
+
+
+
+ transactionId
+
+
+
+
+
Id of the rransaction to be deleted
+
+
+
+
+
+
+
+
Return Value
+
The updated transaction
+
+
+
+
diff --git a/docs/Classes/UserService.html b/docs/Classes/UserService.html
index da2e020..f68d517 100644
--- a/docs/Classes/UserService.html
+++ b/docs/Classes/UserService.html
@@ -80,6 +80,9 @@
Enumerations
+
+ DebtTransactionType
+
TransactionType
@@ -228,8 +231,8 @@ Return Value
diff --git a/docs/Classes/YNAB.html b/docs/Classes/YNAB.html
index b27ca16..5d5bc39 100644
--- a/docs/Classes/YNAB.html
+++ b/docs/Classes/YNAB.html
@@ -80,6 +80,9 @@
Enumerations
Sample code
-Once you have your personal access token, you can use it to try out the framework. Start by creating a new project and at the top of the file where you plan to use SwiftYNAB, add:
+Once you have your personal access token, you can use it to try out the framework in your app. Start by creating a new project and at the top of the file where you plan to use SwiftYNAB, add:
import SwiftYNAB
@@ -236,8 +239,8 @@ Sample code
diff --git a/docs/docsets/SwiftYNAB.docset/Contents/Resources/Documents/js/jquery.min.js b/docs/docsets/SwiftYNAB.docset/Contents/Resources/Documents/js/jquery.min.js
index c4c6022..2c69bc9 100644
--- a/docs/docsets/SwiftYNAB.docset/Contents/Resources/Documents/js/jquery.min.js
+++ b/docs/docsets/SwiftYNAB.docset/Contents/Resources/Documents/js/jquery.min.js
@@ -1,2 +1,2 @@
-/*! jQuery v3.6.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */
-!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.6.0",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML=" ",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML=" ";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML=" ",y.option=!!ce.lastChild;var ge={thead:[1,""],col:[2,""],tr:[2,""],td:[3,""],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=zt.pop()||S.expando+"_"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ut.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,"$1"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument("").body).innerHTML="",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&v(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!y||!y.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ve(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ye(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ve(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],y=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML=" ",e.querySelectorAll("[msallowcapture^='']").length&&y.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||y.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||y.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||y.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||y.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||y.push(".#.+[+~]"),e.querySelectorAll("\\\f"),y.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML=" ";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&y.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&y.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&y.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),y.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),y=y.length&&new RegExp(y.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),v=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&v(p,e)?-1:t==C||t.ownerDocument==p&&v(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!y||!y.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),v.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",v.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML=" ",v.option=!!ce.lastChild;var ge={thead:[1,""],col:[2,""],tr:[2,""],td:[3,""],_default:[0,"",""]};function ye(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ve(e,t){for(var n=0,r=e.length;n",""]);var me=/<|?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Ut,Xt=[],Vt=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Xt.pop()||S.expando+"_"+Ct.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Vt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Vt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Vt,"$1"+r):!1!==e.jsonp&&(e.url+=(Et.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Xt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),v.createHTMLDocument=((Ut=E.implementation.createHTMLDocument("").body).innerHTML="",2===Ut.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(v.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return B(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=_e(v.pixelPosition,function(e,t){if(t)return t=Be(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return B(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0YNAB calls the model SaveTransaction, but this name might be clearer when being passed as"},"Typealiases.html#/s:9SwiftYNAB17UpdateTransactiona":{"name":"UpdateTransaction","abstract":"YNAB calls the model SaveTransaction, but this name might be clearer when being passed as"},"Structs/User.html#/s:9SwiftYNAB4UserV2idSSvp":{"name":"id","abstract":"
User id
","parent_name":"User"},"Structs/TransactionSummary.html#/s:9SwiftYNAB18TransactionSummaryV2idSSvp":{"name":"id","abstract":"Transaction id
","parent_name":"TransactionSummary"},"Structs/TransactionSummary.html#/s:9SwiftYNAB18TransactionSummaryV4dateSSvp":{"name":"date","abstract":"Transaction date
","parent_name":"TransactionSummary"},"Structs/TransactionSummary.html#/s:9SwiftYNAB18TransactionSummaryV6amountSivp":{"name":"amount","abstract":"Amount of the transaction in milliunits
","parent_name":"TransactionSummary"},"Structs/TransactionSummary.html#/s:9SwiftYNAB18TransactionSummaryV4memoSSSgvp":{"name":"memo","abstract":"Transaction memo
","parent_name":"TransactionSummary"},"Structs/TransactionSummary.html#/s:9SwiftYNAB18TransactionSummaryV7clearedSSvp":{"name":"cleared","abstract":"Whether or not the transaction has been cleared
","parent_name":"TransactionSummary"},"Structs/TransactionSummary.html#/s:9SwiftYNAB18TransactionSummaryV8approvedSbvp":{"name":"approved","abstract":"Whether or not the transaction has been approved
","parent_name":"TransactionSummary"},"Structs/TransactionSummary.html#/s:9SwiftYNAB18TransactionSummaryV9flagColorSSSgvp":{"name":"flagColor","abstract":"Flag color
","parent_name":"TransactionSummary"},"Structs/TransactionSummary.html#/s:9SwiftYNAB18TransactionSummaryV9accountIdSSvp":{"name":"accountId","abstract":"Id of the account this transaction belongs to
","parent_name":"TransactionSummary"},"Structs/TransactionSummary.html#/s:9SwiftYNAB18TransactionSummaryV7payeeIdSSSgvp":{"name":"payeeId","abstract":"Payee id
","parent_name":"TransactionSummary"},"Structs/TransactionSummary.html#/s:9SwiftYNAB18TransactionSummaryV10categoryIdSSSgvp":{"name":"categoryId","abstract":"Category id
","parent_name":"TransactionSummary"},"Structs/TransactionSummary.html#/s:9SwiftYNAB18TransactionSummaryV17transferAccountIdSSSgvp":{"name":"transferAccountId","abstract":"If it’s a transfer transaction, the transfer account id
","parent_name":"TransactionSummary"},"Structs/TransactionSummary.html#/s:9SwiftYNAB18TransactionSummaryV08transferC2IdSSSgvp":{"name":"transferTransactionId","abstract":"If it’s a transfer transaction, the transfer transaction id
","parent_name":"TransactionSummary"},"Structs/TransactionSummary.html#/s:9SwiftYNAB18TransactionSummaryV8importIdSSSgvp":{"name":"importId","abstract":"Import id
","parent_name":"TransactionSummary"},"Structs/TransactionSummary.html#/s:9SwiftYNAB18TransactionSummaryV7deletedSbvp":{"name":"deleted","abstract":"Whether or not the transaction has been deleted
","parent_name":"TransactionSummary"},"Structs/TransactionDetail.html#/s:9SwiftYNAB17TransactionDetailV2idSSvp":{"name":"id","abstract":"Transaction id
","parent_name":"TransactionDetail"},"Structs/TransactionDetail.html#/s:9SwiftYNAB17TransactionDetailV4dateSSvp":{"name":"date","abstract":"Transaction date
","parent_name":"TransactionDetail"},"Structs/TransactionDetail.html#/s:9SwiftYNAB17TransactionDetailV6amountSivp":{"name":"amount","abstract":"Amount of the transaction in milliunits
","parent_name":"TransactionDetail"},"Structs/TransactionDetail.html#/s:9SwiftYNAB17TransactionDetailV4memoSSSgvp":{"name":"memo","abstract":"Transaction memo
","parent_name":"TransactionDetail"},"Structs/TransactionDetail.html#/s:9SwiftYNAB17TransactionDetailV7clearedSSvp":{"name":"cleared","abstract":"Whether or not the transaction has been cleared
","parent_name":"TransactionDetail"},"Structs/TransactionDetail.html#/s:9SwiftYNAB17TransactionDetailV8approvedSbvp":{"name":"approved","abstract":"Whether or not the transaction has been approved
","parent_name":"TransactionDetail"},"Structs/TransactionDetail.html#/s:9SwiftYNAB17TransactionDetailV9flagColorSSSgvp":{"name":"flagColor","abstract":"Flag color
","parent_name":"TransactionDetail"},"Structs/TransactionDetail.html#/s:9SwiftYNAB17TransactionDetailV9accountIdSSvp":{"name":"accountId","abstract":"Id of the account this transaction belongs to
","parent_name":"TransactionDetail"},"Structs/TransactionDetail.html#/s:9SwiftYNAB17TransactionDetailV11accountNameSSvp":{"name":"accountName","abstract":"Name of the account this transaction belongs to
","parent_name":"TransactionDetail"},"Structs/TransactionDetail.html#/s:9SwiftYNAB17TransactionDetailV7payeeIdSSSgvp":{"name":"payeeId","abstract":"Payee id
","parent_name":"TransactionDetail"},"Structs/TransactionDetail.html#/s:9SwiftYNAB17TransactionDetailV9payeeNameSSSgvp":{"name":"payeeName","abstract":"Payee name
","parent_name":"TransactionDetail"},"Structs/TransactionDetail.html#/s:9SwiftYNAB17TransactionDetailV10categoryIdSSSgvp":{"name":"categoryId","abstract":"Category id
","parent_name":"TransactionDetail"},"Structs/TransactionDetail.html#/s:9SwiftYNAB17TransactionDetailV12categoryNameSSSgvp":{"name":"categoryName","abstract":"Category name
","parent_name":"TransactionDetail"},"Structs/TransactionDetail.html#/s:9SwiftYNAB17TransactionDetailV17transferAccountIdSSSgvp":{"name":"transferAccountId","abstract":"If it’s a transfer transaction, the transfer account id
","parent_name":"TransactionDetail"},"Structs/TransactionDetail.html#/s:9SwiftYNAB17TransactionDetailV08transferC2IdSSSgvp":{"name":"transferTransactionId","abstract":"If it’s a transfer transaction, the id of the transfer
","parent_name":"TransactionDetail"},"Structs/TransactionDetail.html#/s:9SwiftYNAB17TransactionDetailV07matchedC2IdSSSgvp":{"name":"matchedTransactionId","abstract":"If it’s an imported transaction, the id of the matched transaction
","parent_name":"TransactionDetail"},"Structs/TransactionDetail.html#/s:9SwiftYNAB17TransactionDetailV8importIdSSSgvp":{"name":"importId","abstract":"Import id
","parent_name":"TransactionDetail"},"Structs/TransactionDetail.html#/s:9SwiftYNAB17TransactionDetailV7deletedSbvp":{"name":"deleted","abstract":"Whether or not the transaction has been deleted
","parent_name":"TransactionDetail"},"Structs/TransactionDetail.html#/s:9SwiftYNAB17TransactionDetailV15subtransactionsSayAA03SubC0VGvp":{"name":"subtransactions","abstract":"Sub transactions belonging to this transaction
","parent_name":"TransactionDetail"},"Structs/SubTransaction.html#/s:9SwiftYNAB14SubTransactionV2idSSvp":{"name":"id","abstract":"Sub transaction id
","parent_name":"SubTransaction"},"Structs/SubTransaction.html#/s:9SwiftYNAB14SubTransactionV13transactionIdSSvp":{"name":"transactionId","abstract":"Id of the transaction this sub transaction belongs to
","parent_name":"SubTransaction"},"Structs/SubTransaction.html#/s:9SwiftYNAB14SubTransactionV6amountSivp":{"name":"amount","abstract":"Amount of the transaction in milliunits
","parent_name":"SubTransaction"},"Structs/SubTransaction.html#/s:9SwiftYNAB14SubTransactionV4memoSSSgvp":{"name":"memo","abstract":"Transaction memo
","parent_name":"SubTransaction"},"Structs/SubTransaction.html#/s:9SwiftYNAB14SubTransactionV7payeeIdSSSgvp":{"name":"payeeId","abstract":"Payee id
","parent_name":"SubTransaction"},"Structs/SubTransaction.html#/s:9SwiftYNAB14SubTransactionV10categoryIdSSSgvp":{"name":"categoryId","abstract":"Category id
","parent_name":"SubTransaction"},"Structs/SubTransaction.html#/s:9SwiftYNAB14SubTransactionV17transferAccountIdSSSgvp":{"name":"transferAccountId","abstract":"If it’s a transfer transaction, the transfer account id
","parent_name":"SubTransaction"},"Structs/SubTransaction.html#/s:9SwiftYNAB14SubTransactionV7deletedSbvp":{"name":"deleted","abstract":"Whether or not the transaction has been deleted
","parent_name":"SubTransaction"},"Structs/ScheduledTransactionSummary.html#/s:9SwiftYNAB27ScheduledTransactionSummaryV2idSSvp":{"name":"id","abstract":"Transaction id
","parent_name":"ScheduledTransactionSummary"},"Structs/ScheduledTransactionSummary.html#/s:9SwiftYNAB27ScheduledTransactionSummaryV9dateFirstSSvp":{"name":"dateFirst","abstract":"First occurence of this transaction
","parent_name":"ScheduledTransactionSummary"},"Structs/ScheduledTransactionSummary.html#/s:9SwiftYNAB27ScheduledTransactionSummaryV8dateNextSSvp":{"name":"dateNext","abstract":"Date of next occurrence
","parent_name":"ScheduledTransactionSummary"},"Structs/ScheduledTransactionSummary.html#/s:9SwiftYNAB27ScheduledTransactionSummaryV9frequencySSvp":{"name":"frequency","abstract":"How often the transaction happens
","parent_name":"ScheduledTransactionSummary"},"Structs/ScheduledTransactionSummary.html#/s:9SwiftYNAB27ScheduledTransactionSummaryV6amountSivp":{"name":"amount","abstract":"Amount of the transaction in milliunits
","parent_name":"ScheduledTransactionSummary"},"Structs/ScheduledTransactionSummary.html#/s:9SwiftYNAB27ScheduledTransactionSummaryV4memoSSSgvp":{"name":"memo","abstract":"Transaction memo
","parent_name":"ScheduledTransactionSummary"},"Structs/ScheduledTransactionSummary.html#/s:9SwiftYNAB27ScheduledTransactionSummaryV9flagColorSSSgvp":{"name":"flagColor","abstract":"Flag color
","parent_name":"ScheduledTransactionSummary"},"Structs/ScheduledTransactionSummary.html#/s:9SwiftYNAB27ScheduledTransactionSummaryV9accountIdSSvp":{"name":"accountId","abstract":"Account id
","parent_name":"ScheduledTransactionSummary"},"Structs/ScheduledTransactionSummary.html#/s:9SwiftYNAB27ScheduledTransactionSummaryV7payeeIdSSvp":{"name":"payeeId","abstract":"Account name
","parent_name":"ScheduledTransactionSummary"},"Structs/ScheduledTransactionSummary.html#/s:9SwiftYNAB27ScheduledTransactionSummaryV10categoryIdSSSgvp":{"name":"categoryId","abstract":"Category id
","parent_name":"ScheduledTransactionSummary"},"Structs/ScheduledTransactionSummary.html#/s:9SwiftYNAB27ScheduledTransactionSummaryV17transferAccountIdSSSgvp":{"name":"transferAccountId","abstract":"If it’s a transfer transaction, the transfer account id
","parent_name":"ScheduledTransactionSummary"},"Structs/ScheduledTransactionSummary.html#/s:9SwiftYNAB27ScheduledTransactionSummaryV7deletedSbvp":{"name":"deleted","abstract":"Whether or not the transaction has been deleted
","parent_name":"ScheduledTransactionSummary"},"Structs/ScheduledTransactionDetail.html#/s:9SwiftYNAB26ScheduledTransactionDetailV2idSSvp":{"name":"id","abstract":"Transaction id
","parent_name":"ScheduledTransactionDetail"},"Structs/ScheduledTransactionDetail.html#/s:9SwiftYNAB26ScheduledTransactionDetailV9dateFirstSSvp":{"name":"dateFirst","abstract":"First occurence of this transaction
","parent_name":"ScheduledTransactionDetail"},"Structs/ScheduledTransactionDetail.html#/s:9SwiftYNAB26ScheduledTransactionDetailV8dateNextSSvp":{"name":"dateNext","abstract":"Date of next occurrence
","parent_name":"ScheduledTransactionDetail"},"Structs/ScheduledTransactionDetail.html#/s:9SwiftYNAB26ScheduledTransactionDetailV9frequencySSvp":{"name":"frequency","abstract":"How often the transaction happens
","parent_name":"ScheduledTransactionDetail"},"Structs/ScheduledTransactionDetail.html#/s:9SwiftYNAB26ScheduledTransactionDetailV6amountSivp":{"name":"amount","abstract":"Amount of the transaction in milliunits
","parent_name":"ScheduledTransactionDetail"},"Structs/ScheduledTransactionDetail.html#/s:9SwiftYNAB26ScheduledTransactionDetailV4memoSSSgvp":{"name":"memo","abstract":"Transaction memo
","parent_name":"ScheduledTransactionDetail"},"Structs/ScheduledTransactionDetail.html#/s:9SwiftYNAB26ScheduledTransactionDetailV9flagColorSSSgvp":{"name":"flagColor","abstract":"Flag color
","parent_name":"ScheduledTransactionDetail"},"Structs/ScheduledTransactionDetail.html#/s:9SwiftYNAB26ScheduledTransactionDetailV9accountIdSSvp":{"name":"accountId","abstract":"Account id
","parent_name":"ScheduledTransactionDetail"},"Structs/ScheduledTransactionDetail.html#/s:9SwiftYNAB26ScheduledTransactionDetailV11accountNameSSvp":{"name":"accountName","abstract":"Account name
","parent_name":"ScheduledTransactionDetail"},"Structs/ScheduledTransactionDetail.html#/s:9SwiftYNAB26ScheduledTransactionDetailV7payeeIdSSvp":{"name":"payeeId","abstract":"Payee id
","parent_name":"ScheduledTransactionDetail"},"Structs/ScheduledTransactionDetail.html#/s:9SwiftYNAB26ScheduledTransactionDetailV9payeeNameSSvp":{"name":"payeeName","abstract":"Payee name
","parent_name":"ScheduledTransactionDetail"},"Structs/ScheduledTransactionDetail.html#/s:9SwiftYNAB26ScheduledTransactionDetailV10categoryIdSSSgvp":{"name":"categoryId","abstract":"Category id
","parent_name":"ScheduledTransactionDetail"},"Structs/ScheduledTransactionDetail.html#/s:9SwiftYNAB26ScheduledTransactionDetailV12categoryNameSSSgvp":{"name":"categoryName","abstract":"Category name
","parent_name":"ScheduledTransactionDetail"},"Structs/ScheduledTransactionDetail.html#/s:9SwiftYNAB26ScheduledTransactionDetailV17transferAccountIdSSSgvp":{"name":"transferAccountId","abstract":"If it’s a transfer transaction, the transfer account id
","parent_name":"ScheduledTransactionDetail"},"Structs/ScheduledTransactionDetail.html#/s:9SwiftYNAB26ScheduledTransactionDetailV7deletedSbvp":{"name":"deleted","abstract":"Whether or not the transaction has been deleted
","parent_name":"ScheduledTransactionDetail"},"Structs/ScheduledTransactionDetail.html#/s:9SwiftYNAB26ScheduledTransactionDetailV15subtransactionsSayAA0c3SubD0VGvp":{"name":"subtransactions","abstract":"Sub transactions associated with this transaction
","parent_name":"ScheduledTransactionDetail"},"Structs/ScheduledSubTransaction.html#/s:9SwiftYNAB23ScheduledSubTransactionV2idSSvp":{"name":"id","abstract":"Transaction id
","parent_name":"ScheduledSubTransaction"},"Structs/ScheduledSubTransaction.html#/s:9SwiftYNAB23ScheduledSubTransactionV09scheduledE2IdSSvp":{"name":"scheduledTransactionId","abstract":"Id of the scheduled transaction this sub transaction belongs to
","parent_name":"ScheduledSubTransaction"},"Structs/ScheduledSubTransaction.html#/s:9SwiftYNAB23ScheduledSubTransactionV6amountSivp":{"name":"amount","abstract":"Transaction amount
","parent_name":"ScheduledSubTransaction"},"Structs/ScheduledSubTransaction.html#/s:9SwiftYNAB23ScheduledSubTransactionV4memoSSSgvp":{"name":"memo","abstract":"Transaction memo
","parent_name":"ScheduledSubTransaction"},"Structs/ScheduledSubTransaction.html#/s:9SwiftYNAB23ScheduledSubTransactionV7payeeIdSSSgvp":{"name":"payeeId","abstract":"Payee id
","parent_name":"ScheduledSubTransaction"},"Structs/ScheduledSubTransaction.html#/s:9SwiftYNAB23ScheduledSubTransactionV10categoryIdSSSgvp":{"name":"categoryId","abstract":"Category id
","parent_name":"ScheduledSubTransaction"},"Structs/ScheduledSubTransaction.html#/s:9SwiftYNAB23ScheduledSubTransactionV17transferAccountIdSSSgvp":{"name":"transferAccountId","abstract":"Transfer account id
","parent_name":"ScheduledSubTransaction"},"Structs/ScheduledSubTransaction.html#/s:9SwiftYNAB23ScheduledSubTransactionV7deletedSbvp":{"name":"deleted","abstract":"Whether or not the account is deleted
","parent_name":"ScheduledSubTransaction"},"Structs/SaveTransaction.html#/s:9SwiftYNAB15SaveTransactionV2idSSSgvp":{"name":"id","abstract":"Transaction id. Should be nil
if this is a new transaction. Should have a valid id for updating a transaction.
","parent_name":"SaveTransaction"},"Structs/SaveTransaction.html#/s:9SwiftYNAB15SaveTransactionV4dateSSvp":{"name":"date","abstract":"Transaction date
","parent_name":"SaveTransaction"},"Structs/SaveTransaction.html#/s:9SwiftYNAB15SaveTransactionV6amountSivp":{"name":"amount","abstract":"Transaction amount
","parent_name":"SaveTransaction"},"Structs/SaveTransaction.html#/s:9SwiftYNAB15SaveTransactionV4memoSSSgvp":{"name":"memo","abstract":"Transaction memo
","parent_name":"SaveTransaction"},"Structs/SaveTransaction.html#/s:9SwiftYNAB15SaveTransactionV7clearedSSvp":{"name":"cleared","abstract":"Whether or not the transaction is cleared
","parent_name":"SaveTransaction"},"Structs/SaveTransaction.html#/s:9SwiftYNAB15SaveTransactionV8approvedSbvp":{"name":"approved","abstract":"Whether or not the transaction is approved
","parent_name":"SaveTransaction"},"Structs/SaveTransaction.html#/s:9SwiftYNAB15SaveTransactionV9flagColorSSSgvp":{"name":"flagColor","abstract":"Flag color
","parent_name":"SaveTransaction"},"Structs/SaveTransaction.html#/s:9SwiftYNAB15SaveTransactionV9accountIdSSvp":{"name":"accountId","abstract":"Id of the account the transaction belongs to
","parent_name":"SaveTransaction"},"Structs/SaveTransaction.html#/s:9SwiftYNAB15SaveTransactionV7payeeIdSSSgvp":{"name":"payeeId","abstract":"Payeed id
","parent_name":"SaveTransaction"},"Structs/SaveTransaction.html#/s:9SwiftYNAB15SaveTransactionV9payeeNameSSSgvp":{"name":"payeeName","abstract":"Payee name
","parent_name":"SaveTransaction"},"Structs/SaveTransaction.html#/s:9SwiftYNAB15SaveTransactionV10categoryIdSSSgvp":{"name":"categoryId","abstract":"Category id
","parent_name":"SaveTransaction"},"Structs/SaveTransaction.html#/s:9SwiftYNAB15SaveTransactionV8importIdSSSgvp":{"name":"importId","abstract":"Import id
","parent_name":"SaveTransaction"},"Structs/SaveTransaction.html#/s:9SwiftYNAB15SaveTransactionV2id4date6amount9accountId05payeeI00J4Name06importI0ACSSSg_SSSiS3SAKtcfc":{"name":"init(id:date:amount:accountId:payeeId:payeeName:importId:)","abstract":"Creates a an instance used for creating or updating transactions
","parent_name":"SaveTransaction"},"Structs/PayeeLocation.html#/s:9SwiftYNAB13PayeeLocationV2idSSvp":{"name":"id","abstract":"Payee location id
","parent_name":"PayeeLocation"},"Structs/PayeeLocation.html#/s:9SwiftYNAB13PayeeLocationV7payeeIdSSvp":{"name":"payeeId","abstract":"Payeed id
","parent_name":"PayeeLocation"},"Structs/PayeeLocation.html#/s:9SwiftYNAB13PayeeLocationV9longitudeSSvp":{"name":"longitude","abstract":"Longitude of the payee location
","parent_name":"PayeeLocation"},"Structs/PayeeLocation.html#/s:9SwiftYNAB13PayeeLocationV8latitudeSSvp":{"name":"latitude","abstract":"Latitude of the payee location
","parent_name":"PayeeLocation"},"Structs/PayeeLocation.html#/s:9SwiftYNAB13PayeeLocationV7deletedSbvp":{"name":"deleted","abstract":"Whether or not the payee is deleted
","parent_name":"PayeeLocation"},"Structs/Payee.html#/s:9SwiftYNAB5PayeeV2idSSvp":{"name":"id","abstract":"Payeed id
","parent_name":"Payee"},"Structs/Payee.html#/s:9SwiftYNAB5PayeeV4nameSSvp":{"name":"name","abstract":"Payee name
","parent_name":"Payee"},"Structs/Payee.html#/s:9SwiftYNAB5PayeeV17transferAccountIdSSSgvp":{"name":"transferAccountId","abstract":"Transfer account id
","parent_name":"Payee"},"Structs/Payee.html#/s:9SwiftYNAB5PayeeV7deletedSbvp":{"name":"deleted","abstract":"Whether or not the payee is deleted
","parent_name":"Payee"},"Structs/MonthSummary.html#/s:9SwiftYNAB12MonthSummaryV5monthSSvp":{"name":"month","abstract":"Month
","parent_name":"MonthSummary"},"Structs/MonthSummary.html#/s:9SwiftYNAB12MonthSummaryV4noteSSSgvp":{"name":"note","abstract":"Note
","parent_name":"MonthSummary"},"Structs/MonthSummary.html#/s:9SwiftYNAB12MonthSummaryV6incomeSiSgvp":{"name":"income","abstract":"Amount of income for the month
","parent_name":"MonthSummary"},"Structs/MonthSummary.html#/s:9SwiftYNAB12MonthSummaryV8budgetedSiSgvp":{"name":"budgeted","abstract":"Budgeted amount for the month
","parent_name":"MonthSummary"},"Structs/MonthSummary.html#/s:9SwiftYNAB12MonthSummaryV8activitySiSgvp":{"name":"activity","abstract":"Activity for the month
","parent_name":"MonthSummary"},"Structs/MonthSummary.html#/s:9SwiftYNAB12MonthSummaryV12toBeBudgetedSiSgvp":{"name":"toBeBudgeted","abstract":"Amount available to be budgeted for the month
","parent_name":"MonthSummary"},"Structs/MonthSummary.html#/s:9SwiftYNAB12MonthSummaryV10ageOfMoneySiSgvp":{"name":"ageOfMoney","abstract":"Age of money
","parent_name":"MonthSummary"},"Structs/MonthSummary.html#/s:9SwiftYNAB12MonthSummaryV7deletedSbvp":{"name":"deleted","abstract":"Whether or not the month is deleted
","parent_name":"MonthSummary"},"Structs/MonthDetail.html#/s:9SwiftYNAB11MonthDetailV5monthSSvp":{"name":"month","abstract":"Month
","parent_name":"MonthDetail"},"Structs/MonthDetail.html#/s:9SwiftYNAB11MonthDetailV4noteSSSgvp":{"name":"note","abstract":"Month note
","parent_name":"MonthDetail"},"Structs/MonthDetail.html#/s:9SwiftYNAB11MonthDetailV6incomeSiSgvp":{"name":"income","abstract":"Income amount for the month
","parent_name":"MonthDetail"},"Structs/MonthDetail.html#/s:9SwiftYNAB11MonthDetailV8budgetedSiSgvp":{"name":"budgeted","abstract":"Amount budgeted for the month
","parent_name":"MonthDetail"},"Structs/MonthDetail.html#/s:9SwiftYNAB11MonthDetailV8activitySiSgvp":{"name":"activity","abstract":"Activity amount for the month
","parent_name":"MonthDetail"},"Structs/MonthDetail.html#/s:9SwiftYNAB11MonthDetailV12toBeBudgetedSiSgvp":{"name":"toBeBudgeted","abstract":"Available to be budgeted for the month
","parent_name":"MonthDetail"},"Structs/MonthDetail.html#/s:9SwiftYNAB11MonthDetailV10ageOfMoneySiSgvp":{"name":"ageOfMoney","abstract":"Age of money
","parent_name":"MonthDetail"},"Structs/MonthDetail.html#/s:9SwiftYNAB11MonthDetailV7deletedSbvp":{"name":"deleted","abstract":"Wether or not the month is deleted
","parent_name":"MonthDetail"},"Structs/MonthDetail.html#/s:9SwiftYNAB11MonthDetailV10categoriesSayAA8CategoryVGvp":{"name":"categories","abstract":"Categories for the month
","parent_name":"MonthDetail"},"Structs/HybridTransaction.html#/s:9SwiftYNAB17HybridTransactionV4typeSSvp":{"name":"type","abstract":"Transaction type
","parent_name":"HybridTransaction"},"Structs/HybridTransaction.html#/s:9SwiftYNAB17HybridTransactionV06parentD2IdSSSgvp":{"name":"parentTransactionId","abstract":"Id of the parent transaction
","parent_name":"HybridTransaction"},"Structs/HybridTransaction.html#/s:9SwiftYNAB17HybridTransactionV2idSSvp":{"name":"id","abstract":"Transaction id
","parent_name":"HybridTransaction"},"Structs/HybridTransaction.html#/s:9SwiftYNAB17HybridTransactionV4dateSSvp":{"name":"date","abstract":"Transaction date
","parent_name":"HybridTransaction"},"Structs/HybridTransaction.html#/s:9SwiftYNAB17HybridTransactionV6amountSivp":{"name":"amount","abstract":"Transaction amount
","parent_name":"HybridTransaction"},"Structs/HybridTransaction.html#/s:9SwiftYNAB17HybridTransactionV4memoSSSgvp":{"name":"memo","abstract":"Transaction memo
","parent_name":"HybridTransaction"},"Structs/HybridTransaction.html#/s:9SwiftYNAB17HybridTransactionV7clearedSSvp":{"name":"cleared","abstract":"Whether or not the transaction is cleared
","parent_name":"HybridTransaction"},"Structs/HybridTransaction.html#/s:9SwiftYNAB17HybridTransactionV8approvedSbvp":{"name":"approved","abstract":"Where or not the transaction is approved
","parent_name":"HybridTransaction"},"Structs/HybridTransaction.html#/s:9SwiftYNAB17HybridTransactionV9flagColorSSSgvp":{"name":"flagColor","abstract":"Flag color
","parent_name":"HybridTransaction"},"Structs/HybridTransaction.html#/s:9SwiftYNAB17HybridTransactionV9accountIdSSvp":{"name":"accountId","abstract":"Account id
","parent_name":"HybridTransaction"},"Structs/HybridTransaction.html#/s:9SwiftYNAB17HybridTransactionV11accountNameSSvp":{"name":"accountName","abstract":"Account name
","parent_name":"HybridTransaction"},"Structs/HybridTransaction.html#/s:9SwiftYNAB17HybridTransactionV7payeeIdSSSgvp":{"name":"payeeId","abstract":"Payee id
","parent_name":"HybridTransaction"},"Structs/HybridTransaction.html#/s:9SwiftYNAB17HybridTransactionV9payeeNameSSSgvp":{"name":"payeeName","abstract":"Payee name
","parent_name":"HybridTransaction"},"Structs/HybridTransaction.html#/s:9SwiftYNAB17HybridTransactionV10categoryIdSSvp":{"name":"categoryId","abstract":"Category id
","parent_name":"HybridTransaction"},"Structs/HybridTransaction.html#/s:9SwiftYNAB17HybridTransactionV17transferAccountIdSSSgvp":{"name":"transferAccountId","abstract":"Transfer account id
","parent_name":"HybridTransaction"},"Structs/HybridTransaction.html#/s:9SwiftYNAB17HybridTransactionV08transferD2IdSSSgvp":{"name":"transferTransactionId","abstract":"Transfer transaction id
","parent_name":"HybridTransaction"},"Structs/HybridTransaction.html#/s:9SwiftYNAB17HybridTransactionV07matchedD2IdSSSgvp":{"name":"matchedTransactionId","abstract":"Matched transaction id
","parent_name":"HybridTransaction"},"Structs/HybridTransaction.html#/s:9SwiftYNAB17HybridTransactionV8importIdSSSgvp":{"name":"importId","abstract":"Import id
","parent_name":"HybridTransaction"},"Structs/HybridTransaction.html#/s:9SwiftYNAB17HybridTransactionV7deletedSbvp":{"name":"deleted","abstract":"Whether or not the transaction is deleted
","parent_name":"HybridTransaction"},"Structs/ErrorDetail.html#/s:9SwiftYNAB11ErrorDetailV2idSSvp":{"name":"id","abstract":"Error id
","parent_name":"ErrorDetail"},"Structs/ErrorDetail.html#/s:9SwiftYNAB11ErrorDetailV4nameSSvp":{"name":"name","abstract":"Short name for the error
","parent_name":"ErrorDetail"},"Structs/ErrorDetail.html#/s:9SwiftYNAB11ErrorDetailV6detailSSvp":{"name":"detail","abstract":"Detailed message explaining the error
","parent_name":"ErrorDetail"},"Structs/DateFormat.html#/s:9SwiftYNAB10DateFormatV6formatSSvp":{"name":"format","abstract":"Date display format
","parent_name":"DateFormat"},"Structs/CurrencyFormat.html#/s:9SwiftYNAB14CurrencyFormatV7isoCodeSSvp":{"name":"isoCode","abstract":"ISO code
","parent_name":"CurrencyFormat"},"Structs/CurrencyFormat.html#/s:9SwiftYNAB14CurrencyFormatV07exampleD0SSvp":{"name":"exampleFormat","abstract":"Example currency format
","parent_name":"CurrencyFormat"},"Structs/CurrencyFormat.html#/s:9SwiftYNAB14CurrencyFormatV13decimalDigitsSivp":{"name":"decimalDigits","abstract":"Decimal digits to show
","parent_name":"CurrencyFormat"},"Structs/CurrencyFormat.html#/s:9SwiftYNAB14CurrencyFormatV16decimalSeparatorSSvp":{"name":"decimalSeparator","abstract":"Decimal separator
","parent_name":"CurrencyFormat"},"Structs/CurrencyFormat.html#/s:9SwiftYNAB14CurrencyFormatV11symbolFirstSbvp":{"name":"symbolFirst","abstract":"Placement of currency symbol
","parent_name":"CurrencyFormat"},"Structs/CurrencyFormat.html#/s:9SwiftYNAB14CurrencyFormatV14groupSeparatorSSvp":{"name":"groupSeparator","abstract":"Group separator
","parent_name":"CurrencyFormat"},"Structs/CurrencyFormat.html#/s:9SwiftYNAB14CurrencyFormatV14currencySymbolSSvp":{"name":"currencySymbol","abstract":"Currency symbol
","parent_name":"CurrencyFormat"},"Structs/CurrencyFormat.html#/s:9SwiftYNAB14CurrencyFormatV13displaySymbolSbvp":{"name":"displaySymbol","abstract":"Whether or not to display the currency symbol
","parent_name":"CurrencyFormat"},"Structs/CategoryGroupWithCategories.html#/s:9SwiftYNAB27CategoryGroupWithCategoriesV2idSSvp":{"name":"id","abstract":"Category group id
","parent_name":"CategoryGroupWithCategories"},"Structs/CategoryGroupWithCategories.html#/s:9SwiftYNAB27CategoryGroupWithCategoriesV4nameSSvp":{"name":"name","abstract":"Category name
","parent_name":"CategoryGroupWithCategories"},"Structs/CategoryGroupWithCategories.html#/s:9SwiftYNAB27CategoryGroupWithCategoriesV6hiddenSbvp":{"name":"hidden","abstract":"Whether or not the category is hidden
","parent_name":"CategoryGroupWithCategories"},"Structs/CategoryGroupWithCategories.html#/s:9SwiftYNAB27CategoryGroupWithCategoriesV7deletedSbvp":{"name":"deleted","abstract":"Whether or not the category is deleted
","parent_name":"CategoryGroupWithCategories"},"Structs/CategoryGroupWithCategories.html#/s:9SwiftYNAB27CategoryGroupWithCategoriesV10categoriesSayAA0C0VGvp":{"name":"categories","abstract":"Categories belonging to this group
","parent_name":"CategoryGroupWithCategories"},"Structs/CategoryGroup.html#/s:9SwiftYNAB13CategoryGroupV2idSSvp":{"name":"id","abstract":"Category group id
","parent_name":"CategoryGroup"},"Structs/CategoryGroup.html#/s:9SwiftYNAB13CategoryGroupV4nameSSvp":{"name":"name","abstract":"Category name
","parent_name":"CategoryGroup"},"Structs/CategoryGroup.html#/s:9SwiftYNAB13CategoryGroupV6hiddenSbvp":{"name":"hidden","abstract":"Whether or not the category is hidden
","parent_name":"CategoryGroup"},"Structs/CategoryGroup.html#/s:9SwiftYNAB13CategoryGroupV7deletedSbvp":{"name":"deleted","abstract":"Whether or not the category is deleted
","parent_name":"CategoryGroup"},"Structs/Category.html#/s:9SwiftYNAB8CategoryV2idSSvp":{"name":"id","abstract":"Category id
","parent_name":"Category"},"Structs/Category.html#/s:9SwiftYNAB8CategoryV15categoryGroupIdSSvp":{"name":"categoryGroupId","abstract":"Category group id
","parent_name":"Category"},"Structs/Category.html#/s:9SwiftYNAB8CategoryV4nameSSvp":{"name":"name","abstract":"Category name
","parent_name":"Category"},"Structs/Category.html#/s:9SwiftYNAB8CategoryV6hiddenSbvp":{"name":"hidden","abstract":"Whether or not the category is hidden
","parent_name":"Category"},"Structs/Category.html#/s:9SwiftYNAB8CategoryV08originalC7GroupIdSSSgvp":{"name":"originalCategoryGroupId","abstract":"Original category group id
","parent_name":"Category"},"Structs/Category.html#/s:9SwiftYNAB8CategoryV4noteSSSgvp":{"name":"note","abstract":"Category note
","parent_name":"Category"},"Structs/Category.html#/s:9SwiftYNAB8CategoryV8budgetedSivp":{"name":"budgeted","abstract":"Amount budgeted to this category
","parent_name":"Category"},"Structs/Category.html#/s:9SwiftYNAB8CategoryV8activitySivp":{"name":"activity","abstract":"Activity on this category
","parent_name":"Category"},"Structs/Category.html#/s:9SwiftYNAB8CategoryV7balanceSivp":{"name":"balance","abstract":"Current balance on this category
","parent_name":"Category"},"Structs/Category.html#/s:9SwiftYNAB8CategoryV8goalTypeSSSgvp":{"name":"goalType","abstract":"Type of goal associated with this category
","parent_name":"Category"},"Structs/Category.html#/s:9SwiftYNAB8CategoryV17goalCreationMonthSSSgvp":{"name":"goalCreationMonth","abstract":"Goal creation month
","parent_name":"Category"},"Structs/Category.html#/s:9SwiftYNAB8CategoryV10goalTargetSiSgvp":{"name":"goalTarget","abstract":"Goal target amount
","parent_name":"Category"},"Structs/Category.html#/s:9SwiftYNAB8CategoryV15goalTargetMonthSSSgvp":{"name":"goalTargetMonth","abstract":"Goal target date
","parent_name":"Category"},"Structs/Category.html#/s:9SwiftYNAB8CategoryV22goalPercentageCompleteSiSgvp":{"name":"goalPercentageComplete","abstract":"Goal percentage complete
","parent_name":"Category"},"Structs/Category.html#/s:9SwiftYNAB8CategoryV7deletedSbvp":{"name":"deleted","abstract":"Whether or not the goal is deleted
","parent_name":"Category"},"Structs/BudgetSummary.html#/s:9SwiftYNAB13BudgetSummaryV2idSSvp":{"name":"id","abstract":"Budget id
","parent_name":"BudgetSummary"},"Structs/BudgetSummary.html#/s:9SwiftYNAB13BudgetSummaryV4nameSSvp":{"name":"name","abstract":"Budget name
","parent_name":"BudgetSummary"},"Structs/BudgetSummary.html#/s:9SwiftYNAB13BudgetSummaryV14lastModifiedOnSSvp":{"name":"lastModifiedOn","abstract":"Date the budget was last modified
","parent_name":"BudgetSummary"},"Structs/BudgetSummary.html#/s:9SwiftYNAB13BudgetSummaryV10firstMonthSSvp":{"name":"firstMonth","abstract":"Budget’s first month
","parent_name":"BudgetSummary"},"Structs/BudgetSummary.html#/s:9SwiftYNAB13BudgetSummaryV9lastMonthSSvp":{"name":"lastMonth","abstract":"Budget’s last month
","parent_name":"BudgetSummary"},"Structs/BudgetSummary.html#/s:9SwiftYNAB13BudgetSummaryV10dateFormatAA04DateF0Vvp":{"name":"dateFormat","abstract":"Date formatting settings
","parent_name":"BudgetSummary"},"Structs/BudgetSummary.html#/s:9SwiftYNAB13BudgetSummaryV14currencyFormatAA08CurrencyF0Vvp":{"name":"currencyFormat","abstract":"Currency formatting settings
","parent_name":"BudgetSummary"},"Structs/BudgetSettings.html#/s:9SwiftYNAB14BudgetSettingsV10dateFormatAA04DateF0Vvp":{"name":"dateFormat","abstract":"Date formatting settings
","parent_name":"BudgetSettings"},"Structs/BudgetSettings.html#/s:9SwiftYNAB14BudgetSettingsV14currencyFormatAA08CurrencyF0Vvp":{"name":"currencyFormat","abstract":"Currency formatting settings
","parent_name":"BudgetSettings"},"Structs/BudgetDetail.html#/s:9SwiftYNAB12BudgetDetailV2idSSvp":{"name":"id","abstract":"Budget id
","parent_name":"BudgetDetail"},"Structs/BudgetDetail.html#/s:9SwiftYNAB12BudgetDetailV4nameSSvp":{"name":"name","abstract":"Budget name
","parent_name":"BudgetDetail"},"Structs/BudgetDetail.html#/s:9SwiftYNAB12BudgetDetailV14lastModifiedOnSSvp":{"name":"lastModifiedOn","abstract":"Date the budget was last modified
","parent_name":"BudgetDetail"},"Structs/BudgetDetail.html#/s:9SwiftYNAB12BudgetDetailV10dateFormatAA04DateF0Vvp":{"name":"dateFormat","abstract":"Date formatting settings
","parent_name":"BudgetDetail"},"Structs/BudgetDetail.html#/s:9SwiftYNAB12BudgetDetailV14currencyFormatAA08CurrencyF0Vvp":{"name":"currencyFormat","abstract":"Currency formatting settings
","parent_name":"BudgetDetail"},"Structs/BudgetDetail.html#/s:9SwiftYNAB12BudgetDetailV10firstMonthSSvp":{"name":"firstMonth","abstract":"Budget’s first month
","parent_name":"BudgetDetail"},"Structs/BudgetDetail.html#/s:9SwiftYNAB12BudgetDetailV9lastMonthSSvp":{"name":"lastMonth","abstract":"Budget’s last month
","parent_name":"BudgetDetail"},"Structs/BudgetDetail.html#/s:9SwiftYNAB12BudgetDetailV8accountsSayAA7AccountVGvp":{"name":"accounts","abstract":"Accounts on this budget
","parent_name":"BudgetDetail"},"Structs/BudgetDetail.html#/s:9SwiftYNAB12BudgetDetailV6payeesSayAA5PayeeVGvp":{"name":"payees","abstract":"Payees on this budget
","parent_name":"BudgetDetail"},"Structs/BudgetDetail.html#/s:9SwiftYNAB12BudgetDetailV14payeeLocationsSayAA13PayeeLocationVGvp":{"name":"payeeLocations","abstract":"All recorded payee locations
","parent_name":"BudgetDetail"},"Structs/BudgetDetail.html#/s:9SwiftYNAB12BudgetDetailV14categoryGroupsSayAA13CategoryGroupVGvp":{"name":"categoryGroups","abstract":"Budget category groups
","parent_name":"BudgetDetail"},"Structs/BudgetDetail.html#/s:9SwiftYNAB12BudgetDetailV10categoriesSayAA8CategoryVGvp":{"name":"categories","abstract":"Budget categories
","parent_name":"BudgetDetail"},"Structs/BudgetDetail.html#/s:9SwiftYNAB12BudgetDetailV6monthsSayAA05MonthD0VGvp":{"name":"months","abstract":"Budget months
","parent_name":"BudgetDetail"},"Structs/BudgetDetail.html#/s:9SwiftYNAB12BudgetDetailV12transactionsSayAA18TransactionSummaryVGvp":{"name":"transactions","abstract":"All transactions on this budget
","parent_name":"BudgetDetail"},"Structs/BudgetDetail.html#/s:9SwiftYNAB12BudgetDetailV15subtransactionsSayAA14SubTransactionVGvp":{"name":"subtransactions","abstract":"All subtransactions on this budget
","parent_name":"BudgetDetail"},"Structs/BudgetDetail.html#/s:9SwiftYNAB12BudgetDetailV21scheduledTransactionsSayAA27ScheduledTransactionSummaryVGvp":{"name":"scheduledTransactions","abstract":"All scheduled transactions on this budget
","parent_name":"BudgetDetail"},"Structs/BudgetDetail.html#/s:9SwiftYNAB12BudgetDetailV24scheduledSubtransactionsSayAA23ScheduledSubTransactionVGvp":{"name":"scheduledSubtransactions","abstract":"All scheduled sub transactions on this budget
","parent_name":"BudgetDetail"},"Structs/Account.html#/s:9SwiftYNAB7AccountV2idSSvp":{"name":"id","abstract":"Account id
","parent_name":"Account"},"Structs/Account.html#/s:9SwiftYNAB7AccountV4nameSSvp":{"name":"name","abstract":"Account name
","parent_name":"Account"},"Structs/Account.html#/s:9SwiftYNAB7AccountV4typeSSvp":{"name":"type","abstract":"Account type
","parent_name":"Account"},"Structs/Account.html#/s:9SwiftYNAB7AccountV8onBudgetSbvp":{"name":"onBudget","abstract":"Budget account or not
","parent_name":"Account"},"Structs/Account.html#/s:9SwiftYNAB7AccountV6closedSbvp":{"name":"closed","abstract":"Closed account or not
","parent_name":"Account"},"Structs/Account.html#/s:9SwiftYNAB7AccountV4noteSSSgvp":{"name":"note","abstract":"Note on the account
","parent_name":"Account"},"Structs/Account.html#/s:9SwiftYNAB7AccountV7balanceSivp":{"name":"balance","abstract":"Account balance
","parent_name":"Account"},"Structs/Account.html#/s:9SwiftYNAB7AccountV14clearedBalanceSivp":{"name":"clearedBalance","abstract":"Cleared account balance
","parent_name":"Account"},"Structs/Account.html#/s:9SwiftYNAB7AccountV16unclearedBalanceSivp":{"name":"unclearedBalance","abstract":"Uncleared account balance
","parent_name":"Account"},"Structs/Account.html#/s:9SwiftYNAB7AccountV15transferPayeeIdSSvp":{"name":"transferPayeeId","abstract":"Payee id for transfers
","parent_name":"Account"},"Structs/Account.html#/s:9SwiftYNAB7AccountV7deletedSbvp":{"name":"deleted","abstract":"Deleted account or not
","parent_name":"Account"},"Structs/Account.html":{"name":"Account","abstract":"Budget account model
"},"Structs/BudgetDetail.html":{"name":"BudgetDetail","abstract":"Full budget model. This represents a complete budget export.
"},"Structs/BudgetSettings.html":{"name":"BudgetSettings","abstract":"Budget settings model
"},"Structs/BudgetSummary.html":{"name":"BudgetSummary","abstract":"Budget summary model
"},"Structs/Category.html":{"name":"Category","abstract":"Budget category
"},"Structs/CategoryGroup.html":{"name":"CategoryGroup","abstract":"Category group model
"},"Structs/CategoryGroupWithCategories.html":{"name":"CategoryGroupWithCategories","abstract":"Category group including categories
"},"Structs/CurrencyFormat.html":{"name":"CurrencyFormat","abstract":"Currency formatting settings
"},"Structs/DateFormat.html":{"name":"DateFormat","abstract":"Date format settings
"},"Structs/ErrorDetail.html":{"name":"ErrorDetail","abstract":"Model for API errors
"},"Structs/HybridTransaction.html":{"name":"HybridTransaction","abstract":"Hybrid transaction
"},"Structs/MonthDetail.html":{"name":"MonthDetail","abstract":"Month detail model
"},"Structs/MonthSummary.html":{"name":"MonthSummary","abstract":"Month summary model
"},"Structs/Payee.html":{"name":"Payee","abstract":"Payee model
"},"Structs/PayeeLocation.html":{"name":"PayeeLocation","abstract":"Payee location model
"},"Structs/SaveTransaction.html":{"name":"SaveTransaction","abstract":"Model used for creating and updating transactions
"},"Structs/ScheduledSubTransaction.html":{"name":"ScheduledSubTransaction","abstract":"Scheduled sub transaction
"},"Structs/ScheduledTransactionDetail.html":{"name":"ScheduledTransactionDetail","abstract":"Full details of a scheduled transaction
"},"Structs/ScheduledTransactionSummary.html":{"name":"ScheduledTransactionSummary","abstract":"Summary of a scheduled transaction
"},"Structs/SubTransaction.html":{"name":"SubTransaction","abstract":"Subtransaction model
"},"Structs/TransactionDetail.html":{"name":"TransactionDetail","abstract":"Detailed model of a transaction
"},"Structs/TransactionSummary.html":{"name":"TransactionSummary","abstract":"Summary details of a transaction
"},"Structs/User.html":{"name":"User","abstract":"Authenticate user information
"},"Enums/TransactionType.html#/s:9SwiftYNAB15TransactionTypeO10unapprovedyA2CmF":{"name":"unapproved","abstract":"Unapproved transaction
","parent_name":"TransactionType"},"Enums/TransactionType.html#/s:9SwiftYNAB15TransactionTypeO13uncategorizedyA2CmF":{"name":"uncategorized","abstract":"Uncategorized transaction
","parent_name":"TransactionType"},"Enums/TransactionType.html":{"name":"TransactionType","abstract":"Supported transaction types by the API
"},"Classes/UserService.html#/s:9SwiftYNAB11UserServiceC03getC0AA0C0VyYaKF":{"name":"getUser()","abstract":"Returns authenticated user information
","parent_name":"UserService"},"Classes/TransactionService.html#/s:9SwiftYNAB18TransactionServiceC03getC08budgetId011transactionG0AA0C6DetailVSS_SStYaKF":{"name":"getTransaction(budgetId:transactionId:)","abstract":"Returns a single transaction.
","parent_name":"TransactionService"},"Classes/TransactionService.html#/s:9SwiftYNAB18TransactionServiceC15getTransactions8budgetId9sinceDate4type21lastKnowledgeOfServerSayAA0C6DetailVGSS_10Foundation0J0VSgAA0C4TypeOSgSiSgtYaKF":{"name":"getTransactions(budgetId:sinceDate:type:lastKnowledgeOfServer:)","abstract":"Returns all transactions for a budget.
","parent_name":"TransactionService"},"Classes/TransactionService.html#/s:9SwiftYNAB18TransactionServiceC15getTransactions8budgetId07accountH09sinceDate4type21lastKnowledgeOfServerSayAA0C6DetailVGSS_SS10Foundation0K0VSgAA0C4TypeOSgSiSgtYaKF":{"name":"getTransactions(budgetId:accountId:sinceDate:type:lastKnowledgeOfServer:)","abstract":"Returns all transactions for an account.
","parent_name":"TransactionService"},"Classes/TransactionService.html#/s:9SwiftYNAB18TransactionServiceC15getTransactions8budgetId08categoryH09sinceDate4type21lastKnowledgeOfServerSayAA06HybridC0VGSS_SS10Foundation0K0VSgAA0C4TypeOSgSiSgtYaKF":{"name":"getTransactions(budgetId:categoryId:sinceDate:type:lastKnowledgeOfServer:)","abstract":"Returns all transactions for a category.
","parent_name":"TransactionService"},"Classes/TransactionService.html#/s:9SwiftYNAB18TransactionServiceC15getTransactions8budgetId05payeeH09sinceDate4type21lastKnowledgeOfServerSayAA06HybridC0VGSS_SS10Foundation0K0VSgAA0C4TypeOSgSiSgtYaKF":{"name":"getTransactions(budgetId:payeeId:sinceDate:type:lastKnowledgeOfServer:)","abstract":"Returns all transactions for a payee.
","parent_name":"TransactionService"},"Classes/TransactionService.html#/s:9SwiftYNAB18TransactionServiceC04saveC08budgetId11transactionAA0C6DetailVSS_AA04SaveC0VtYaKF":{"name":"saveTransaction(budgetId:transaction:)","abstract":"Creates a new transactions.
","parent_name":"TransactionService"},"Classes/TransactionService.html#/s:9SwiftYNAB18TransactionServiceC16saveTransactions8budgetId12transactionsSayAA0C6DetailVGAF_SaySSG14transactionIdsAJ015duplicateImportL0tSS_SayAA04SaveC0VGtYaKF":{"name":"saveTransactions(budgetId:transactions:)","abstract":"Creates several new transactions.
","parent_name":"TransactionService"},"Classes/TransactionService.html#/s:9SwiftYNAB18TransactionServiceC06updateC08budgetId11transactionAA0C6DetailVSS_AA04SaveC0VtYaKF":{"name":"updateTransaction(budgetId:transaction:)","abstract":"Updates a single transactions.
","parent_name":"TransactionService"},"Classes/TransactionService.html#/s:9SwiftYNAB18TransactionServiceC18updateTransactions8budgetId12transactionsSayAA0C6DetailVGAF_SaySSG14transactionIdsAJ015duplicateImportL0tSS_SayAA04SaveC0VGtYaKF":{"name":"updateTransactions(budgetId:transactions:)","abstract":"Updates several transactions.
","parent_name":"TransactionService"},"Classes/ScheduledTransactionService.html#/s:9SwiftYNAB27ScheduledTransactionServiceC03getcD08budgetId011transactionH0AA0cD6DetailVSS_SStYaKF":{"name":"getScheduledTransaction(budgetId:transactionId:)","abstract":"Returns a single scheduled transaction for a budget.
","parent_name":"ScheduledTransactionService"},"Classes/ScheduledTransactionService.html#/s:9SwiftYNAB27ScheduledTransactionServiceC03getC12Transactions8budgetIdSayAA0cD6DetailVGSS_tYaKF":{"name":"getScheduledTransactions(budgetId:)","abstract":"Returns all scheduled transactions for a budget.
","parent_name":"ScheduledTransactionService"},"Classes/PayeeService.html#/s:9SwiftYNAB12PayeeServiceC9getPayees8budgetId21lastKnowledgeOfServerSayAA0C0VGSS_SiSgtYaKF":{"name":"getPayees(budgetId:lastKnowledgeOfServer:)","abstract":"Returns all payees
","parent_name":"PayeeService"},"Classes/PayeeService.html#/s:9SwiftYNAB12PayeeServiceC03getC08budgetId05payeeG0AA0C0VSS_SStYaKF":{"name":"getPayee(budgetId:payeeId:)","abstract":"Returns a single payee.
","parent_name":"PayeeService"},"Classes/PayeeLocationService.html#/s:9SwiftYNAB20PayeeLocationServiceC03getC9Locations8budgetIdSayAA0cD0VGSS_tYaKF":{"name":"getPayeeLocations(budgetId:)","abstract":"Returns a list of all payee locations for a budget.
","parent_name":"PayeeLocationService"},"Classes/PayeeLocationService.html#/s:9SwiftYNAB20PayeeLocationServiceC03getcD08budgetId05payeeH0AA0cD0VSS_SStYaKF":{"name":"getPayeeLocation(budgetId:payeeId:)","abstract":"Returns a specific payee location.
","parent_name":"PayeeLocationService"},"Classes/PayeeLocationService.html#/s:9SwiftYNAB20PayeeLocationServiceC015getLocationsForC08budgetId05payeeJ0SayAA0cD0VGSS_SStYaKF":{"name":"getLocationsForPayee(budgetId:payeeId:)","abstract":"Returns all locations for a payee.
","parent_name":"PayeeLocationService"},"Classes/MonthService.html#/s:9SwiftYNAB12MonthServiceC9getMonths8budgetId21lastKnowledgeOfServerSayAA0C7SummaryVGSS_SiSgtYaKF":{"name":"getMonths(budgetId:lastKnowledgeOfServer:)","abstract":"Returns a list of budget months.
","parent_name":"MonthService"},"Classes/MonthService.html#/s:9SwiftYNAB12MonthServiceC03getC08budgetId5monthAA0C6DetailVSS_SStYaKF":{"name":"getMonth(budgetId:month:)","abstract":"Returns a specific month for a budget.
","parent_name":"MonthService"},"Classes/CategoryService.html#/s:9SwiftYNAB15CategoryServiceC13getCategories8budgetId21lastKnowledgeOfServerSayAA0c9GroupWithF0VGSS_SiSgtYaKF":{"name":"getCategories(budgetId:lastKnowledgeOfServer:)","abstract":"Returns a list of budget categories.
","parent_name":"CategoryService"},"Classes/CategoryService.html#/s:9SwiftYNAB15CategoryServiceC03getC08budgetId08categoryG0AA0C0VSS_SStYaKF":{"name":"getCategory(budgetId:categoryId:)","abstract":"Returns a single category.
","parent_name":"CategoryService"},"Classes/CategoryService.html#/s:9SwiftYNAB15CategoryServiceC03getC08budgetId5month08categoryG0AA0C0VSS_S2StYaKF":{"name":"getCategory(budgetId:month:categoryId:)","abstract":"Returns a single category for a specific budget month.
","parent_name":"CategoryService"},"Classes/CategoryService.html#/s:9SwiftYNAB15CategoryServiceC06updateC08budgetId5month08categoryG08budgetedAA0C0VSS_S2SSitYaKF":{"name":"updateCategory(budgetId:month:categoryId:budgeted:)","abstract":"Update a category for a specific month.
","parent_name":"CategoryService"},"Classes/BudgetService.html#/s:9SwiftYNAB13BudgetServiceC10getBudgetsSayAA0C7SummaryVGyYaKF":{"name":"getBudgets()","abstract":"Returns budgets list with summary information.
","parent_name":"BudgetService"},"Classes/BudgetService.html#/s:9SwiftYNAB13BudgetServiceC03getC08budgetId21lastKnowledgeOfServerAA0C6DetailVSS_SiSgtYaKF":{"name":"getBudget(budgetId:lastKnowledgeOfServer:)","abstract":"Returns a single budget with all related entities.
","parent_name":"BudgetService"},"Classes/BudgetService.html#/s:9SwiftYNAB13BudgetServiceC03getC8Settings8budgetIdAA0cF0VSS_tYaKF":{"name":"getBudgetSettings(budgetId:)","abstract":"Returns settings for a budget.
","parent_name":"BudgetService"},"Classes/AccountService.html#/s:9SwiftYNAB14AccountServiceC03getC08budgetId07accountG0AA0C0VSS_SStYaKF":{"name":"getAccount(budgetId:accountId:)","abstract":"Retrieves a single account.
","parent_name":"AccountService"},"Classes/AccountService.html#/s:9SwiftYNAB14AccountServiceC11getAccounts8budgetId21lastKnowledgeOfServerSayAA0C0VGSS_SiSgtYaKF":{"name":"getAccounts(budgetId:lastKnowledgeOfServer:)","abstract":"Retrieves all accounts for a single budget.
","parent_name":"AccountService"},"Classes/AccountService.html#/s:9SwiftYNAB14AccountServiceC09newBudgetC08budgetId4name4type7balanceAA0C0VSS_S2SSitYaKF":{"name":"newBudgetAccount(budgetId:name:type:balance:)","abstract":"Creates a new unlinked account in a budget.
","parent_name":"AccountService"},"Classes/DateConverter.html#/s:9SwiftYNAB13DateConverterC10dateFormatAcA0cF0V_tcfc":{"name":"init(dateFormat:)","abstract":"Initializes the formatter with date format information from a budget
","parent_name":"DateConverter"},"Classes/DateConverter.html#/s:9SwiftYNAB13DateConverterC012budgetFormatC6String4fromSSSgSS_tF":{"name":"budgetFormatDateString(from:)","abstract":"Converts a date sent by the API into a displayable date according to the budget format
","parent_name":"DateConverter"},"Classes/DateConverter.html#/s:9SwiftYNAB13DateConverterC4date4from10Foundation0C0VSgSS_tFZ":{"name":"date(from:)","abstract":"Converts a date sent by the API into a Date
object
","parent_name":"DateConverter"},"Classes/DateConverter.html#/s:9SwiftYNAB13DateConverterC07iso8601C6String4fromSS10Foundation0C0V_tFZ":{"name":"iso8601DateString(from:)","abstract":"Converts a date into a API-friendly iso8601 date string
","parent_name":"DateConverter"},"Classes/CurrencyFormatter.html#/s:9SwiftYNAB17CurrencyFormatterC14currencyFormatAcA0cF0V_tcfc":{"name":"init(currencyFormat:)","abstract":"Initializes the formatter using format information from a budget
","parent_name":"CurrencyFormatter"},"Classes/CurrencyFormatter.html#/s:9SwiftYNAB17CurrencyFormatterC14currencyString4fromSSSgSi_tF":{"name":"currencyString(from:)","abstract":"Converts milliunit amounts into a budget format currency string
","parent_name":"CurrencyFormatter"},"Classes/YNAB.html#/s:9SwiftYNAB0B0C5usersAA11UserServiceCvp":{"name":"users","abstract":"Provides access to user operations
","parent_name":"YNAB"},"Classes/YNAB.html#/s:9SwiftYNAB0B0C7budgetsAA13BudgetServiceCvp":{"name":"budgets","abstract":"Provides access to budget operations
","parent_name":"YNAB"},"Classes/YNAB.html#/s:9SwiftYNAB0B0C8accountsAA14AccountServiceCvp":{"name":"accounts","abstract":"Provides access to account operations
","parent_name":"YNAB"},"Classes/YNAB.html#/s:9SwiftYNAB0B0C10categoriesAA15CategoryServiceCvp":{"name":"categories","abstract":"Provides access to category operations
","parent_name":"YNAB"},"Classes/YNAB.html#/s:9SwiftYNAB0B0C6payeesAA12PayeeServiceCvp":{"name":"payees","abstract":"Provides access to payee operations
","parent_name":"YNAB"},"Classes/YNAB.html#/s:9SwiftYNAB0B0C14payeeLocationsAA20PayeeLocationServiceCvp":{"name":"payeeLocations","abstract":"Provides access to payee location operations
","parent_name":"YNAB"},"Classes/YNAB.html#/s:9SwiftYNAB0B0C6monthsAA12MonthServiceCvp":{"name":"months","abstract":"Provides access to month operations
","parent_name":"YNAB"},"Classes/YNAB.html#/s:9SwiftYNAB0B0C12transactionsAA18TransactionServiceCvp":{"name":"transactions","abstract":"Provides access to transaction operations
","parent_name":"YNAB"},"Classes/YNAB.html#/s:9SwiftYNAB0B0C21scheduledTransactionsAA27ScheduledTransactionServiceCvp":{"name":"scheduledTransactions","abstract":"Provides access to scheduled transaction operations
","parent_name":"YNAB"},"Classes/YNAB.html#/s:9SwiftYNAB0B0C11accessToken10urlSessionACSS_So12NSURLSessionCtcfc":{"name":"init(accessToken:urlSession:)","abstract":"Initializes the YNAB API client
","parent_name":"YNAB"},"Classes/YNAB.html":{"name":"YNAB","abstract":"YNAB API client
"},"Classes/CurrencyFormatter.html":{"name":"CurrencyFormatter","abstract":"Converts currency data from API responses into displayeable strings
"},"Classes/DateConverter.html":{"name":"DateConverter","abstract":"Converts dates to and from API-friendly strings
"},"Classes/AccountService.html":{"name":"AccountService","abstract":"Provides access to account operations
"},"Classes/BudgetService.html":{"name":"BudgetService","abstract":"Provides access to account operations
"},"Classes/CategoryService.html":{"name":"CategoryService","abstract":"Provides access to category operations
"},"Classes/MonthService.html":{"name":"MonthService","abstract":"Provides access to month operations
"},"Classes/PayeeLocationService.html":{"name":"PayeeLocationService","abstract":"Provides access to payee location operations
"},"Classes/PayeeService.html":{"name":"PayeeService","abstract":"Provides access to payee operations
"},"Classes/ScheduledTransactionService.html":{"name":"ScheduledTransactionService","abstract":"Provides access to scheduled transaction operations
"},"Classes/TransactionService.html":{"name":"TransactionService","abstract":"Provides access to transaction operations
"},"Classes/UserService.html":{"name":"UserService","abstract":"Provides access to user operations
"},"Classes.html":{"name":"Classes","abstract":"The following classes are available globally.
"},"Enums.html":{"name":"Enumerations","abstract":"The following enumerations are available globally.
"},"Structs.html":{"name":"Structures","abstract":"The following structures are available globally.
"},"Typealiases.html":{"name":"Type Aliases","abstract":"The following type aliases are available globally.
"}}
\ No newline at end of file
+{"Typealiases.html#/s:9SwiftYNAB14NewTransactiona":{"name":"NewTransaction","abstract":"YNAB calls the model SaveTransaction, but this name might be clearer when being passed as"},"Typealiases.html#/s:9SwiftYNAB17UpdateTransactiona":{"name":"UpdateTransaction","abstract":"
YNAB calls the model SaveTransaction, but this name might be clearer when being passed as"},"Structs/User.html#/s:9SwiftYNAB4UserV2idSSvp":{"name":"id","abstract":"
User id
","parent_name":"User"},"Structs/TransactionSummary.html#/s:9SwiftYNAB18TransactionSummaryV2idSSvp":{"name":"id","abstract":"Transaction id
","parent_name":"TransactionSummary"},"Structs/TransactionSummary.html#/s:9SwiftYNAB18TransactionSummaryV4dateSSvp":{"name":"date","abstract":"Transaction date
","parent_name":"TransactionSummary"},"Structs/TransactionSummary.html#/s:9SwiftYNAB18TransactionSummaryV6amountSivp":{"name":"amount","abstract":"Amount of the transaction in milliunits
","parent_name":"TransactionSummary"},"Structs/TransactionSummary.html#/s:9SwiftYNAB18TransactionSummaryV4memoSSSgvp":{"name":"memo","abstract":"Transaction memo
","parent_name":"TransactionSummary"},"Structs/TransactionSummary.html#/s:9SwiftYNAB18TransactionSummaryV7clearedSSvp":{"name":"cleared","abstract":"Whether or not the transaction has been cleared
","parent_name":"TransactionSummary"},"Structs/TransactionSummary.html#/s:9SwiftYNAB18TransactionSummaryV8approvedSbvp":{"name":"approved","abstract":"Whether or not the transaction has been approved
","parent_name":"TransactionSummary"},"Structs/TransactionSummary.html#/s:9SwiftYNAB18TransactionSummaryV9flagColorSSSgvp":{"name":"flagColor","abstract":"Flag color
","parent_name":"TransactionSummary"},"Structs/TransactionSummary.html#/s:9SwiftYNAB18TransactionSummaryV9accountIdSSvp":{"name":"accountId","abstract":"Id of the account this transaction belongs to
","parent_name":"TransactionSummary"},"Structs/TransactionSummary.html#/s:9SwiftYNAB18TransactionSummaryV7payeeIdSSSgvp":{"name":"payeeId","abstract":"Payee id
","parent_name":"TransactionSummary"},"Structs/TransactionSummary.html#/s:9SwiftYNAB18TransactionSummaryV10categoryIdSSSgvp":{"name":"categoryId","abstract":"Category id
","parent_name":"TransactionSummary"},"Structs/TransactionSummary.html#/s:9SwiftYNAB18TransactionSummaryV17transferAccountIdSSSgvp":{"name":"transferAccountId","abstract":"If it’s a transfer transaction, the transfer account id
","parent_name":"TransactionSummary"},"Structs/TransactionSummary.html#/s:9SwiftYNAB18TransactionSummaryV08transferC2IdSSSgvp":{"name":"transferTransactionId","abstract":"If it’s a transfer transaction, the transfer transaction id
","parent_name":"TransactionSummary"},"Structs/TransactionSummary.html#/s:9SwiftYNAB18TransactionSummaryV07matchedC2IdSSSgvp":{"name":"matchedTransactionId","abstract":"If transaction is matched, the id of the matched transaction
","parent_name":"TransactionSummary"},"Structs/TransactionSummary.html#/s:9SwiftYNAB18TransactionSummaryV8importIdSSSgvp":{"name":"importId","abstract":"If the transaction was imported, this field is a unique (by account) import identifier. If this transaction was imported through","parent_name":"TransactionSummary"},"Structs/TransactionSummary.html#/s:9SwiftYNAB18TransactionSummaryV15importPayeeNameSSSgvp":{"name":"importPayeeName","abstract":"
If the transaction was imported, the payee name that was used when importing and before applying any payee rename rules
","parent_name":"TransactionSummary"},"Structs/TransactionSummary.html#/s:9SwiftYNAB18TransactionSummaryV23importPayeeNameOriginalSSSgvp":{"name":"importPayeeNameOriginal","abstract":"If the transaction was imported, the original payee name as it appeared on the statement
","parent_name":"TransactionSummary"},"Structs/TransactionSummary.html#/s:9SwiftYNAB18TransactionSummaryV04debtC4TypeAA04DebtcF0OSgvp":{"name":"debtTransactionType","abstract":"If the transaction was imported, the original payee name as it appeared on the statement
","parent_name":"TransactionSummary"},"Structs/TransactionSummary.html#/s:9SwiftYNAB18TransactionSummaryV7deletedSbvp":{"name":"deleted","abstract":"Whether or not the transaction has been deleted
","parent_name":"TransactionSummary"},"Structs/TransactionDetail.html#/s:9SwiftYNAB17TransactionDetailV2idSSvp":{"name":"id","abstract":"Transaction id
","parent_name":"TransactionDetail"},"Structs/TransactionDetail.html#/s:9SwiftYNAB17TransactionDetailV4dateSSvp":{"name":"date","abstract":"Transaction date
","parent_name":"TransactionDetail"},"Structs/TransactionDetail.html#/s:9SwiftYNAB17TransactionDetailV6amountSivp":{"name":"amount","abstract":"Amount of the transaction in milliunits
","parent_name":"TransactionDetail"},"Structs/TransactionDetail.html#/s:9SwiftYNAB17TransactionDetailV4memoSSSgvp":{"name":"memo","abstract":"Transaction memo
","parent_name":"TransactionDetail"},"Structs/TransactionDetail.html#/s:9SwiftYNAB17TransactionDetailV7clearedSSvp":{"name":"cleared","abstract":"Whether or not the transaction has been cleared
","parent_name":"TransactionDetail"},"Structs/TransactionDetail.html#/s:9SwiftYNAB17TransactionDetailV8approvedSbvp":{"name":"approved","abstract":"Whether or not the transaction has been approved
","parent_name":"TransactionDetail"},"Structs/TransactionDetail.html#/s:9SwiftYNAB17TransactionDetailV9flagColorSSSgvp":{"name":"flagColor","abstract":"Flag color
","parent_name":"TransactionDetail"},"Structs/TransactionDetail.html#/s:9SwiftYNAB17TransactionDetailV9accountIdSSvp":{"name":"accountId","abstract":"Id of the account this transaction belongs to
","parent_name":"TransactionDetail"},"Structs/TransactionDetail.html#/s:9SwiftYNAB17TransactionDetailV11accountNameSSvp":{"name":"accountName","abstract":"Name of the account this transaction belongs to
","parent_name":"TransactionDetail"},"Structs/TransactionDetail.html#/s:9SwiftYNAB17TransactionDetailV7payeeIdSSSgvp":{"name":"payeeId","abstract":"Payee id
","parent_name":"TransactionDetail"},"Structs/TransactionDetail.html#/s:9SwiftYNAB17TransactionDetailV9payeeNameSSSgvp":{"name":"payeeName","abstract":"Payee name
","parent_name":"TransactionDetail"},"Structs/TransactionDetail.html#/s:9SwiftYNAB17TransactionDetailV10categoryIdSSSgvp":{"name":"categoryId","abstract":"Category id
","parent_name":"TransactionDetail"},"Structs/TransactionDetail.html#/s:9SwiftYNAB17TransactionDetailV12categoryNameSSSgvp":{"name":"categoryName","abstract":"Category name
","parent_name":"TransactionDetail"},"Structs/TransactionDetail.html#/s:9SwiftYNAB17TransactionDetailV17transferAccountIdSSSgvp":{"name":"transferAccountId","abstract":"If it’s a transfer transaction, the transfer account id
","parent_name":"TransactionDetail"},"Structs/TransactionDetail.html#/s:9SwiftYNAB17TransactionDetailV08transferC2IdSSSgvp":{"name":"transferTransactionId","abstract":"If it’s a transfer transaction, the id of the transfer
","parent_name":"TransactionDetail"},"Structs/TransactionDetail.html#/s:9SwiftYNAB17TransactionDetailV07matchedC2IdSSSgvp":{"name":"matchedTransactionId","abstract":"If it’s an imported transaction, the id of the matched transaction
","parent_name":"TransactionDetail"},"Structs/TransactionDetail.html#/s:9SwiftYNAB17TransactionDetailV8importIdSSSgvp":{"name":"importId","abstract":"Import id
","parent_name":"TransactionDetail"},"Structs/TransactionDetail.html#/s:9SwiftYNAB17TransactionDetailV7deletedSbvp":{"name":"deleted","abstract":"Whether or not the transaction has been deleted
","parent_name":"TransactionDetail"},"Structs/TransactionDetail.html#/s:9SwiftYNAB17TransactionDetailV15subtransactionsSayAA03SubC0VGvp":{"name":"subtransactions","abstract":"Sub transactions belonging to this transaction
","parent_name":"TransactionDetail"},"Structs/SubTransaction.html#/s:9SwiftYNAB14SubTransactionV2idSSvp":{"name":"id","abstract":"Sub transaction id
","parent_name":"SubTransaction"},"Structs/SubTransaction.html#/s:9SwiftYNAB14SubTransactionV13transactionIdSSvp":{"name":"transactionId","abstract":"Id of the transaction this sub transaction belongs to
","parent_name":"SubTransaction"},"Structs/SubTransaction.html#/s:9SwiftYNAB14SubTransactionV6amountSivp":{"name":"amount","abstract":"Amount of the transaction in milliunits
","parent_name":"SubTransaction"},"Structs/SubTransaction.html#/s:9SwiftYNAB14SubTransactionV4memoSSSgvp":{"name":"memo","abstract":"Transaction memo
","parent_name":"SubTransaction"},"Structs/SubTransaction.html#/s:9SwiftYNAB14SubTransactionV7payeeIdSSSgvp":{"name":"payeeId","abstract":"Payee id
","parent_name":"SubTransaction"},"Structs/SubTransaction.html#/s:9SwiftYNAB14SubTransactionV9payeeNameSSSgvp":{"name":"payeeName","abstract":"Payee name
","parent_name":"SubTransaction"},"Structs/SubTransaction.html#/s:9SwiftYNAB14SubTransactionV10categoryIdSSSgvp":{"name":"categoryId","abstract":"Category id
","parent_name":"SubTransaction"},"Structs/SubTransaction.html#/s:9SwiftYNAB14SubTransactionV12categoryNameSSSgvp":{"name":"categoryName","abstract":"Category name
","parent_name":"SubTransaction"},"Structs/SubTransaction.html#/s:9SwiftYNAB14SubTransactionV17transferAccountIdSSSgvp":{"name":"transferAccountId","abstract":"If it’s a transfer transaction, the transfer account id
","parent_name":"SubTransaction"},"Structs/SubTransaction.html#/s:9SwiftYNAB14SubTransactionV08transferD2IdSSSgvp":{"name":"transferTransactionId","abstract":"If a transfer, the id of transaction on the other side of the transfer
","parent_name":"SubTransaction"},"Structs/SubTransaction.html#/s:9SwiftYNAB14SubTransactionV7deletedSbvp":{"name":"deleted","abstract":"Whether or not the transaction has been deleted
","parent_name":"SubTransaction"},"Structs/ScheduledTransactionSummary.html#/s:9SwiftYNAB27ScheduledTransactionSummaryV2idSSvp":{"name":"id","abstract":"Transaction id
","parent_name":"ScheduledTransactionSummary"},"Structs/ScheduledTransactionSummary.html#/s:9SwiftYNAB27ScheduledTransactionSummaryV9dateFirstSSvp":{"name":"dateFirst","abstract":"First occurence of this transaction
","parent_name":"ScheduledTransactionSummary"},"Structs/ScheduledTransactionSummary.html#/s:9SwiftYNAB27ScheduledTransactionSummaryV8dateNextSSvp":{"name":"dateNext","abstract":"Date of next occurrence
","parent_name":"ScheduledTransactionSummary"},"Structs/ScheduledTransactionSummary.html#/s:9SwiftYNAB27ScheduledTransactionSummaryV9frequencySSvp":{"name":"frequency","abstract":"How often the transaction happens
","parent_name":"ScheduledTransactionSummary"},"Structs/ScheduledTransactionSummary.html#/s:9SwiftYNAB27ScheduledTransactionSummaryV6amountSivp":{"name":"amount","abstract":"Amount of the transaction in milliunits
","parent_name":"ScheduledTransactionSummary"},"Structs/ScheduledTransactionSummary.html#/s:9SwiftYNAB27ScheduledTransactionSummaryV4memoSSSgvp":{"name":"memo","abstract":"Transaction memo
","parent_name":"ScheduledTransactionSummary"},"Structs/ScheduledTransactionSummary.html#/s:9SwiftYNAB27ScheduledTransactionSummaryV9flagColorSSSgvp":{"name":"flagColor","abstract":"Flag color
","parent_name":"ScheduledTransactionSummary"},"Structs/ScheduledTransactionSummary.html#/s:9SwiftYNAB27ScheduledTransactionSummaryV9accountIdSSvp":{"name":"accountId","abstract":"Account id
","parent_name":"ScheduledTransactionSummary"},"Structs/ScheduledTransactionSummary.html#/s:9SwiftYNAB27ScheduledTransactionSummaryV7payeeIdSSvp":{"name":"payeeId","abstract":"Account name
","parent_name":"ScheduledTransactionSummary"},"Structs/ScheduledTransactionSummary.html#/s:9SwiftYNAB27ScheduledTransactionSummaryV10categoryIdSSSgvp":{"name":"categoryId","abstract":"Category id
","parent_name":"ScheduledTransactionSummary"},"Structs/ScheduledTransactionSummary.html#/s:9SwiftYNAB27ScheduledTransactionSummaryV17transferAccountIdSSSgvp":{"name":"transferAccountId","abstract":"If it’s a transfer transaction, the transfer account id
","parent_name":"ScheduledTransactionSummary"},"Structs/ScheduledTransactionSummary.html#/s:9SwiftYNAB27ScheduledTransactionSummaryV7deletedSbvp":{"name":"deleted","abstract":"Whether or not the transaction has been deleted
","parent_name":"ScheduledTransactionSummary"},"Structs/ScheduledTransactionDetail.html#/s:9SwiftYNAB26ScheduledTransactionDetailV2idSSvp":{"name":"id","abstract":"Transaction id
","parent_name":"ScheduledTransactionDetail"},"Structs/ScheduledTransactionDetail.html#/s:9SwiftYNAB26ScheduledTransactionDetailV9dateFirstSSvp":{"name":"dateFirst","abstract":"First occurence of this transaction
","parent_name":"ScheduledTransactionDetail"},"Structs/ScheduledTransactionDetail.html#/s:9SwiftYNAB26ScheduledTransactionDetailV8dateNextSSvp":{"name":"dateNext","abstract":"Date of next occurrence
","parent_name":"ScheduledTransactionDetail"},"Structs/ScheduledTransactionDetail.html#/s:9SwiftYNAB26ScheduledTransactionDetailV9frequencySSvp":{"name":"frequency","abstract":"How often the transaction happens
","parent_name":"ScheduledTransactionDetail"},"Structs/ScheduledTransactionDetail.html#/s:9SwiftYNAB26ScheduledTransactionDetailV6amountSivp":{"name":"amount","abstract":"Amount of the transaction in milliunits
","parent_name":"ScheduledTransactionDetail"},"Structs/ScheduledTransactionDetail.html#/s:9SwiftYNAB26ScheduledTransactionDetailV4memoSSSgvp":{"name":"memo","abstract":"Transaction memo
","parent_name":"ScheduledTransactionDetail"},"Structs/ScheduledTransactionDetail.html#/s:9SwiftYNAB26ScheduledTransactionDetailV9flagColorSSSgvp":{"name":"flagColor","abstract":"Flag color
","parent_name":"ScheduledTransactionDetail"},"Structs/ScheduledTransactionDetail.html#/s:9SwiftYNAB26ScheduledTransactionDetailV9accountIdSSvp":{"name":"accountId","abstract":"Account id
","parent_name":"ScheduledTransactionDetail"},"Structs/ScheduledTransactionDetail.html#/s:9SwiftYNAB26ScheduledTransactionDetailV11accountNameSSvp":{"name":"accountName","abstract":"Account name
","parent_name":"ScheduledTransactionDetail"},"Structs/ScheduledTransactionDetail.html#/s:9SwiftYNAB26ScheduledTransactionDetailV7payeeIdSSvp":{"name":"payeeId","abstract":"Payee id
","parent_name":"ScheduledTransactionDetail"},"Structs/ScheduledTransactionDetail.html#/s:9SwiftYNAB26ScheduledTransactionDetailV9payeeNameSSvp":{"name":"payeeName","abstract":"Payee name
","parent_name":"ScheduledTransactionDetail"},"Structs/ScheduledTransactionDetail.html#/s:9SwiftYNAB26ScheduledTransactionDetailV10categoryIdSSSgvp":{"name":"categoryId","abstract":"Category id
","parent_name":"ScheduledTransactionDetail"},"Structs/ScheduledTransactionDetail.html#/s:9SwiftYNAB26ScheduledTransactionDetailV12categoryNameSSSgvp":{"name":"categoryName","abstract":"Category name
","parent_name":"ScheduledTransactionDetail"},"Structs/ScheduledTransactionDetail.html#/s:9SwiftYNAB26ScheduledTransactionDetailV17transferAccountIdSSSgvp":{"name":"transferAccountId","abstract":"If it’s a transfer transaction, the transfer account id
","parent_name":"ScheduledTransactionDetail"},"Structs/ScheduledTransactionDetail.html#/s:9SwiftYNAB26ScheduledTransactionDetailV7deletedSbvp":{"name":"deleted","abstract":"Whether or not the transaction has been deleted
","parent_name":"ScheduledTransactionDetail"},"Structs/ScheduledTransactionDetail.html#/s:9SwiftYNAB26ScheduledTransactionDetailV15subtransactionsSayAA0c3SubD0VGvp":{"name":"subtransactions","abstract":"Sub transactions associated with this transaction
","parent_name":"ScheduledTransactionDetail"},"Structs/ScheduledSubTransaction.html#/s:9SwiftYNAB23ScheduledSubTransactionV2idSSvp":{"name":"id","abstract":"Transaction id
","parent_name":"ScheduledSubTransaction"},"Structs/ScheduledSubTransaction.html#/s:9SwiftYNAB23ScheduledSubTransactionV09scheduledE2IdSSvp":{"name":"scheduledTransactionId","abstract":"Id of the scheduled transaction this sub transaction belongs to
","parent_name":"ScheduledSubTransaction"},"Structs/ScheduledSubTransaction.html#/s:9SwiftYNAB23ScheduledSubTransactionV6amountSivp":{"name":"amount","abstract":"Transaction amount
","parent_name":"ScheduledSubTransaction"},"Structs/ScheduledSubTransaction.html#/s:9SwiftYNAB23ScheduledSubTransactionV4memoSSSgvp":{"name":"memo","abstract":"Transaction memo
","parent_name":"ScheduledSubTransaction"},"Structs/ScheduledSubTransaction.html#/s:9SwiftYNAB23ScheduledSubTransactionV7payeeIdSSSgvp":{"name":"payeeId","abstract":"Payee id
","parent_name":"ScheduledSubTransaction"},"Structs/ScheduledSubTransaction.html#/s:9SwiftYNAB23ScheduledSubTransactionV10categoryIdSSSgvp":{"name":"categoryId","abstract":"Category id
","parent_name":"ScheduledSubTransaction"},"Structs/ScheduledSubTransaction.html#/s:9SwiftYNAB23ScheduledSubTransactionV17transferAccountIdSSSgvp":{"name":"transferAccountId","abstract":"Transfer account id
","parent_name":"ScheduledSubTransaction"},"Structs/ScheduledSubTransaction.html#/s:9SwiftYNAB23ScheduledSubTransactionV7deletedSbvp":{"name":"deleted","abstract":"Whether or not the account is deleted
","parent_name":"ScheduledSubTransaction"},"Structs/SaveTransaction.html#/s:9SwiftYNAB15SaveTransactionV2idSSSgvp":{"name":"id","abstract":"Transaction id. Should be nil
if this is a new transaction. Should have a valid id for updating a transaction.
","parent_name":"SaveTransaction"},"Structs/SaveTransaction.html#/s:9SwiftYNAB15SaveTransactionV4dateSSvp":{"name":"date","abstract":"Transaction date
","parent_name":"SaveTransaction"},"Structs/SaveTransaction.html#/s:9SwiftYNAB15SaveTransactionV6amountSivp":{"name":"amount","abstract":"Transaction amount
","parent_name":"SaveTransaction"},"Structs/SaveTransaction.html#/s:9SwiftYNAB15SaveTransactionV4memoSSSgvp":{"name":"memo","abstract":"Transaction memo
","parent_name":"SaveTransaction"},"Structs/SaveTransaction.html#/s:9SwiftYNAB15SaveTransactionV7clearedSSvp":{"name":"cleared","abstract":"Whether or not the transaction is cleared
","parent_name":"SaveTransaction"},"Structs/SaveTransaction.html#/s:9SwiftYNAB15SaveTransactionV8approvedSbvp":{"name":"approved","abstract":"Whether or not the transaction is approved
","parent_name":"SaveTransaction"},"Structs/SaveTransaction.html#/s:9SwiftYNAB15SaveTransactionV9flagColorSSSgvp":{"name":"flagColor","abstract":"Flag color
","parent_name":"SaveTransaction"},"Structs/SaveTransaction.html#/s:9SwiftYNAB15SaveTransactionV9accountIdSSvp":{"name":"accountId","abstract":"Id of the account the transaction belongs to
","parent_name":"SaveTransaction"},"Structs/SaveTransaction.html#/s:9SwiftYNAB15SaveTransactionV7payeeIdSSSgvp":{"name":"payeeId","abstract":"Payeed id
","parent_name":"SaveTransaction"},"Structs/SaveTransaction.html#/s:9SwiftYNAB15SaveTransactionV9payeeNameSSSgvp":{"name":"payeeName","abstract":"Payee name
","parent_name":"SaveTransaction"},"Structs/SaveTransaction.html#/s:9SwiftYNAB15SaveTransactionV10categoryIdSSSgvp":{"name":"categoryId","abstract":"Category id
","parent_name":"SaveTransaction"},"Structs/SaveTransaction.html#/s:9SwiftYNAB15SaveTransactionV8importIdSSSgvp":{"name":"importId","abstract":"Import id
","parent_name":"SaveTransaction"},"Structs/SaveTransaction.html#/s:9SwiftYNAB15SaveTransactionV2id4date6amount9accountId05payeeI00J4Name06importI0ACSSSg_SSSiSSAKSSAKtcfc":{"name":"init(id:date:amount:accountId:payeeId:payeeName:importId:)","abstract":"Creates a an instance used for creating or updating transactions
","parent_name":"SaveTransaction"},"Structs/PayeeLocation.html#/s:9SwiftYNAB13PayeeLocationV2idSSvp":{"name":"id","abstract":"Payee location id
","parent_name":"PayeeLocation"},"Structs/PayeeLocation.html#/s:9SwiftYNAB13PayeeLocationV7payeeIdSSvp":{"name":"payeeId","abstract":"Payeed id
","parent_name":"PayeeLocation"},"Structs/PayeeLocation.html#/s:9SwiftYNAB13PayeeLocationV9longitudeSSvp":{"name":"longitude","abstract":"Longitude of the payee location
","parent_name":"PayeeLocation"},"Structs/PayeeLocation.html#/s:9SwiftYNAB13PayeeLocationV8latitudeSSvp":{"name":"latitude","abstract":"Latitude of the payee location
","parent_name":"PayeeLocation"},"Structs/PayeeLocation.html#/s:9SwiftYNAB13PayeeLocationV7deletedSbvp":{"name":"deleted","abstract":"Whether or not the payee is deleted
","parent_name":"PayeeLocation"},"Structs/Payee.html#/s:9SwiftYNAB5PayeeV2idSSvp":{"name":"id","abstract":"Payeed id
","parent_name":"Payee"},"Structs/Payee.html#/s:9SwiftYNAB5PayeeV4nameSSvp":{"name":"name","abstract":"Payee name
","parent_name":"Payee"},"Structs/Payee.html#/s:9SwiftYNAB5PayeeV17transferAccountIdSSSgvp":{"name":"transferAccountId","abstract":"Transfer account id
","parent_name":"Payee"},"Structs/Payee.html#/s:9SwiftYNAB5PayeeV7deletedSbvp":{"name":"deleted","abstract":"Whether or not the payee is deleted
","parent_name":"Payee"},"Structs/MonthSummary.html#/s:9SwiftYNAB12MonthSummaryV5monthSSvp":{"name":"month","abstract":"Month
","parent_name":"MonthSummary"},"Structs/MonthSummary.html#/s:9SwiftYNAB12MonthSummaryV4noteSSSgvp":{"name":"note","abstract":"Note
","parent_name":"MonthSummary"},"Structs/MonthSummary.html#/s:9SwiftYNAB12MonthSummaryV6incomeSiSgvp":{"name":"income","abstract":"Amount of income for the month
","parent_name":"MonthSummary"},"Structs/MonthSummary.html#/s:9SwiftYNAB12MonthSummaryV8budgetedSiSgvp":{"name":"budgeted","abstract":"Budgeted amount for the month
","parent_name":"MonthSummary"},"Structs/MonthSummary.html#/s:9SwiftYNAB12MonthSummaryV8activitySiSgvp":{"name":"activity","abstract":"Activity for the month
","parent_name":"MonthSummary"},"Structs/MonthSummary.html#/s:9SwiftYNAB12MonthSummaryV12toBeBudgetedSiSgvp":{"name":"toBeBudgeted","abstract":"Amount available to be budgeted for the month
","parent_name":"MonthSummary"},"Structs/MonthSummary.html#/s:9SwiftYNAB12MonthSummaryV10ageOfMoneySiSgvp":{"name":"ageOfMoney","abstract":"Age of money
","parent_name":"MonthSummary"},"Structs/MonthSummary.html#/s:9SwiftYNAB12MonthSummaryV7deletedSbvp":{"name":"deleted","abstract":"Whether or not the month is deleted
","parent_name":"MonthSummary"},"Structs/MonthDetail.html#/s:9SwiftYNAB11MonthDetailV5monthSSvp":{"name":"month","abstract":"Month
","parent_name":"MonthDetail"},"Structs/MonthDetail.html#/s:9SwiftYNAB11MonthDetailV4noteSSSgvp":{"name":"note","abstract":"Month note
","parent_name":"MonthDetail"},"Structs/MonthDetail.html#/s:9SwiftYNAB11MonthDetailV6incomeSiSgvp":{"name":"income","abstract":"Income amount for the month
","parent_name":"MonthDetail"},"Structs/MonthDetail.html#/s:9SwiftYNAB11MonthDetailV8budgetedSiSgvp":{"name":"budgeted","abstract":"Amount budgeted for the month
","parent_name":"MonthDetail"},"Structs/MonthDetail.html#/s:9SwiftYNAB11MonthDetailV8activitySiSgvp":{"name":"activity","abstract":"Activity amount for the month
","parent_name":"MonthDetail"},"Structs/MonthDetail.html#/s:9SwiftYNAB11MonthDetailV12toBeBudgetedSiSgvp":{"name":"toBeBudgeted","abstract":"Available to be budgeted for the month
","parent_name":"MonthDetail"},"Structs/MonthDetail.html#/s:9SwiftYNAB11MonthDetailV10ageOfMoneySiSgvp":{"name":"ageOfMoney","abstract":"Age of money
","parent_name":"MonthDetail"},"Structs/MonthDetail.html#/s:9SwiftYNAB11MonthDetailV7deletedSbvp":{"name":"deleted","abstract":"Wether or not the month is deleted
","parent_name":"MonthDetail"},"Structs/MonthDetail.html#/s:9SwiftYNAB11MonthDetailV10categoriesSayAA8CategoryVGvp":{"name":"categories","abstract":"Categories for the month
","parent_name":"MonthDetail"},"Structs/HybridTransaction.html#/s:9SwiftYNAB17HybridTransactionV4typeSSvp":{"name":"type","abstract":"Transaction type
","parent_name":"HybridTransaction"},"Structs/HybridTransaction.html#/s:9SwiftYNAB17HybridTransactionV06parentD2IdSSSgvp":{"name":"parentTransactionId","abstract":"Id of the parent transaction
","parent_name":"HybridTransaction"},"Structs/HybridTransaction.html#/s:9SwiftYNAB17HybridTransactionV2idSSvp":{"name":"id","abstract":"Transaction id
","parent_name":"HybridTransaction"},"Structs/HybridTransaction.html#/s:9SwiftYNAB17HybridTransactionV4dateSSvp":{"name":"date","abstract":"Transaction date
","parent_name":"HybridTransaction"},"Structs/HybridTransaction.html#/s:9SwiftYNAB17HybridTransactionV6amountSivp":{"name":"amount","abstract":"Transaction amount
","parent_name":"HybridTransaction"},"Structs/HybridTransaction.html#/s:9SwiftYNAB17HybridTransactionV4memoSSSgvp":{"name":"memo","abstract":"Transaction memo
","parent_name":"HybridTransaction"},"Structs/HybridTransaction.html#/s:9SwiftYNAB17HybridTransactionV7clearedSSvp":{"name":"cleared","abstract":"Whether or not the transaction is cleared
","parent_name":"HybridTransaction"},"Structs/HybridTransaction.html#/s:9SwiftYNAB17HybridTransactionV8approvedSbvp":{"name":"approved","abstract":"Where or not the transaction is approved
","parent_name":"HybridTransaction"},"Structs/HybridTransaction.html#/s:9SwiftYNAB17HybridTransactionV9flagColorSSSgvp":{"name":"flagColor","abstract":"Flag color
","parent_name":"HybridTransaction"},"Structs/HybridTransaction.html#/s:9SwiftYNAB17HybridTransactionV9accountIdSSvp":{"name":"accountId","abstract":"Account id
","parent_name":"HybridTransaction"},"Structs/HybridTransaction.html#/s:9SwiftYNAB17HybridTransactionV11accountNameSSvp":{"name":"accountName","abstract":"Account name
","parent_name":"HybridTransaction"},"Structs/HybridTransaction.html#/s:9SwiftYNAB17HybridTransactionV7payeeIdSSSgvp":{"name":"payeeId","abstract":"Payee id
","parent_name":"HybridTransaction"},"Structs/HybridTransaction.html#/s:9SwiftYNAB17HybridTransactionV9payeeNameSSSgvp":{"name":"payeeName","abstract":"Payee name
","parent_name":"HybridTransaction"},"Structs/HybridTransaction.html#/s:9SwiftYNAB17HybridTransactionV10categoryIdSSvp":{"name":"categoryId","abstract":"Category id
","parent_name":"HybridTransaction"},"Structs/HybridTransaction.html#/s:9SwiftYNAB17HybridTransactionV12categoryNameSSvp":{"name":"categoryName","abstract":"Category name
","parent_name":"HybridTransaction"},"Structs/HybridTransaction.html#/s:9SwiftYNAB17HybridTransactionV17transferAccountIdSSSgvp":{"name":"transferAccountId","abstract":"Transfer account id
","parent_name":"HybridTransaction"},"Structs/HybridTransaction.html#/s:9SwiftYNAB17HybridTransactionV08transferD2IdSSSgvp":{"name":"transferTransactionId","abstract":"Transfer transaction id
","parent_name":"HybridTransaction"},"Structs/HybridTransaction.html#/s:9SwiftYNAB17HybridTransactionV07matchedD2IdSSSgvp":{"name":"matchedTransactionId","abstract":"Matched transaction id
","parent_name":"HybridTransaction"},"Structs/HybridTransaction.html#/s:9SwiftYNAB17HybridTransactionV8importIdSSSgvp":{"name":"importId","abstract":"Import id
","parent_name":"HybridTransaction"},"Structs/HybridTransaction.html#/s:9SwiftYNAB17HybridTransactionV15importPayeeNameSSSgvp":{"name":"importPayeeName","abstract":"If the transaction was imported, the payee name that was used when importing and before applying any payee rename rules
","parent_name":"HybridTransaction"},"Structs/HybridTransaction.html#/s:9SwiftYNAB17HybridTransactionV19importPayeeOriginalSSSgvp":{"name":"importPayeeOriginal","abstract":"If the transaction was imported, the original payee name as it appeared on the statement
","parent_name":"HybridTransaction"},"Structs/HybridTransaction.html#/s:9SwiftYNAB17HybridTransactionV04debtD4TypeAA04DebtdF0OSgvp":{"name":"debtTransactionType","abstract":"If the transaction is a debt/loan account transaction, the type of transaction
","parent_name":"HybridTransaction"},"Structs/HybridTransaction.html#/s:9SwiftYNAB17HybridTransactionV7deletedSbvp":{"name":"deleted","abstract":"Whether or not the transaction is deleted
","parent_name":"HybridTransaction"},"Structs/ErrorDetail.html#/s:9SwiftYNAB11ErrorDetailV2idSSvp":{"name":"id","abstract":"Error id
","parent_name":"ErrorDetail"},"Structs/ErrorDetail.html#/s:9SwiftYNAB11ErrorDetailV4nameSSvp":{"name":"name","abstract":"Short name for the error
","parent_name":"ErrorDetail"},"Structs/ErrorDetail.html#/s:9SwiftYNAB11ErrorDetailV6detailSSvp":{"name":"detail","abstract":"Detailed message explaining the error
","parent_name":"ErrorDetail"},"Structs/DateFormat.html#/s:9SwiftYNAB10DateFormatV6formatSSvp":{"name":"format","abstract":"Date display format
","parent_name":"DateFormat"},"Structs/CurrencyFormat.html#/s:9SwiftYNAB14CurrencyFormatV7isoCodeSSvp":{"name":"isoCode","abstract":"ISO code
","parent_name":"CurrencyFormat"},"Structs/CurrencyFormat.html#/s:9SwiftYNAB14CurrencyFormatV07exampleD0SSvp":{"name":"exampleFormat","abstract":"Example currency format
","parent_name":"CurrencyFormat"},"Structs/CurrencyFormat.html#/s:9SwiftYNAB14CurrencyFormatV13decimalDigitsSivp":{"name":"decimalDigits","abstract":"Decimal digits to show
","parent_name":"CurrencyFormat"},"Structs/CurrencyFormat.html#/s:9SwiftYNAB14CurrencyFormatV16decimalSeparatorSSvp":{"name":"decimalSeparator","abstract":"Decimal separator
","parent_name":"CurrencyFormat"},"Structs/CurrencyFormat.html#/s:9SwiftYNAB14CurrencyFormatV11symbolFirstSbvp":{"name":"symbolFirst","abstract":"Placement of currency symbol
","parent_name":"CurrencyFormat"},"Structs/CurrencyFormat.html#/s:9SwiftYNAB14CurrencyFormatV14groupSeparatorSSvp":{"name":"groupSeparator","abstract":"Group separator
","parent_name":"CurrencyFormat"},"Structs/CurrencyFormat.html#/s:9SwiftYNAB14CurrencyFormatV14currencySymbolSSvp":{"name":"currencySymbol","abstract":"Currency symbol
","parent_name":"CurrencyFormat"},"Structs/CurrencyFormat.html#/s:9SwiftYNAB14CurrencyFormatV13displaySymbolSbvp":{"name":"displaySymbol","abstract":"Whether or not to display the currency symbol
","parent_name":"CurrencyFormat"},"Structs/CategoryGroupWithCategories.html#/s:9SwiftYNAB27CategoryGroupWithCategoriesV2idSSvp":{"name":"id","abstract":"Category group id
","parent_name":"CategoryGroupWithCategories"},"Structs/CategoryGroupWithCategories.html#/s:9SwiftYNAB27CategoryGroupWithCategoriesV4nameSSvp":{"name":"name","abstract":"Category name
","parent_name":"CategoryGroupWithCategories"},"Structs/CategoryGroupWithCategories.html#/s:9SwiftYNAB27CategoryGroupWithCategoriesV6hiddenSbvp":{"name":"hidden","abstract":"Whether or not the category is hidden
","parent_name":"CategoryGroupWithCategories"},"Structs/CategoryGroupWithCategories.html#/s:9SwiftYNAB27CategoryGroupWithCategoriesV7deletedSbvp":{"name":"deleted","abstract":"Whether or not the category is deleted
","parent_name":"CategoryGroupWithCategories"},"Structs/CategoryGroupWithCategories.html#/s:9SwiftYNAB27CategoryGroupWithCategoriesV10categoriesSayAA0C0VGvp":{"name":"categories","abstract":"Categories belonging to this group
","parent_name":"CategoryGroupWithCategories"},"Structs/CategoryGroup.html#/s:9SwiftYNAB13CategoryGroupV2idSSvp":{"name":"id","abstract":"Category group id
","parent_name":"CategoryGroup"},"Structs/CategoryGroup.html#/s:9SwiftYNAB13CategoryGroupV4nameSSvp":{"name":"name","abstract":"Category name
","parent_name":"CategoryGroup"},"Structs/CategoryGroup.html#/s:9SwiftYNAB13CategoryGroupV6hiddenSbvp":{"name":"hidden","abstract":"Whether or not the category is hidden
","parent_name":"CategoryGroup"},"Structs/CategoryGroup.html#/s:9SwiftYNAB13CategoryGroupV7deletedSbvp":{"name":"deleted","abstract":"Whether or not the category is deleted
","parent_name":"CategoryGroup"},"Structs/Category.html#/s:9SwiftYNAB8CategoryV2idSSvp":{"name":"id","abstract":"Category id
","parent_name":"Category"},"Structs/Category.html#/s:9SwiftYNAB8CategoryV15categoryGroupIdSSvp":{"name":"categoryGroupId","abstract":"Category group id
","parent_name":"Category"},"Structs/Category.html#/s:9SwiftYNAB8CategoryV4nameSSvp":{"name":"name","abstract":"Category name
","parent_name":"Category"},"Structs/Category.html#/s:9SwiftYNAB8CategoryV6hiddenSbvp":{"name":"hidden","abstract":"Whether or not the category is hidden
","parent_name":"Category"},"Structs/Category.html#/s:9SwiftYNAB8CategoryV08originalC7GroupIdSSSgvp":{"name":"originalCategoryGroupId","abstract":"Original category group id
","parent_name":"Category"},"Structs/Category.html#/s:9SwiftYNAB8CategoryV4noteSSSgvp":{"name":"note","abstract":"Category note
","parent_name":"Category"},"Structs/Category.html#/s:9SwiftYNAB8CategoryV8budgetedSivp":{"name":"budgeted","abstract":"Amount budgeted to this category
","parent_name":"Category"},"Structs/Category.html#/s:9SwiftYNAB8CategoryV8activitySivp":{"name":"activity","abstract":"Activity on this category
","parent_name":"Category"},"Structs/Category.html#/s:9SwiftYNAB8CategoryV7balanceSivp":{"name":"balance","abstract":"Current balance on this category
","parent_name":"Category"},"Structs/Category.html#/s:9SwiftYNAB8CategoryV8goalTypeSSSgvp":{"name":"goalType","abstract":"Type of goal associated with this category
","parent_name":"Category"},"Structs/Category.html#/s:9SwiftYNAB8CategoryV7goalDaySiSgvp":{"name":"goalDay","abstract":"The day of the goal
","parent_name":"Category"},"Structs/Category.html#/s:9SwiftYNAB8CategoryV11goalCadenceSiSgvp":{"name":"goalCadence","abstract":"The goal cadence
","parent_name":"Category"},"Structs/Category.html#/s:9SwiftYNAB8CategoryV20goalCadenceFrequencySiSgvp":{"name":"goalCadenceFrequency","abstract":"The goal cadence frequency
","parent_name":"Category"},"Structs/Category.html#/s:9SwiftYNAB8CategoryV17goalCreationMonthSSSgvp":{"name":"goalCreationMonth","abstract":"Goal creation month
","parent_name":"Category"},"Structs/Category.html#/s:9SwiftYNAB8CategoryV10goalTargetSiSgvp":{"name":"goalTarget","abstract":"Goal target amount
","parent_name":"Category"},"Structs/Category.html#/s:9SwiftYNAB8CategoryV15goalTargetMonthSSSgvp":{"name":"goalTargetMonth","abstract":"Goal target date
","parent_name":"Category"},"Structs/Category.html#/s:9SwiftYNAB8CategoryV22goalPercentageCompleteSiSgvp":{"name":"goalPercentageComplete","abstract":"Goal percentage complete
","parent_name":"Category"},"Structs/Category.html#/s:9SwiftYNAB8CategoryV18goalMonthsToBudgetSiSgvp":{"name":"goalMonthsToBudget","abstract":"The number of months, including the current month, left in the current goal period.
","parent_name":"Category"},"Structs/Category.html#/s:9SwiftYNAB8CategoryV15goalUnderFundedSiSgvp":{"name":"goalUnderFunded","abstract":"The amount of funding still needed in the current month to stay on track towards completing the goal within the current","parent_name":"Category"},"Structs/Category.html#/s:9SwiftYNAB8CategoryV17goalOverallFundedSiSgvp":{"name":"goalOverallFunded","abstract":"
The total amount funded towards the goal within the current goal period.
","parent_name":"Category"},"Structs/Category.html#/s:9SwiftYNAB8CategoryV15goalOverallLeftSiSgvp":{"name":"goalOverallLeft","abstract":"The amount of funding still needed to complete the goal within the current goal period.
","parent_name":"Category"},"Structs/Category.html#/s:9SwiftYNAB8CategoryV7deletedSbvp":{"name":"deleted","abstract":"Whether or not the goal is deleted
","parent_name":"Category"},"Structs/BudgetSummary.html#/s:9SwiftYNAB13BudgetSummaryV2idSSvp":{"name":"id","abstract":"Budget id
","parent_name":"BudgetSummary"},"Structs/BudgetSummary.html#/s:9SwiftYNAB13BudgetSummaryV4nameSSvp":{"name":"name","abstract":"Budget name
","parent_name":"BudgetSummary"},"Structs/BudgetSummary.html#/s:9SwiftYNAB13BudgetSummaryV14lastModifiedOnSSvp":{"name":"lastModifiedOn","abstract":"Date the budget was last modified
","parent_name":"BudgetSummary"},"Structs/BudgetSummary.html#/s:9SwiftYNAB13BudgetSummaryV10firstMonthSSvp":{"name":"firstMonth","abstract":"Budget’s first month
","parent_name":"BudgetSummary"},"Structs/BudgetSummary.html#/s:9SwiftYNAB13BudgetSummaryV9lastMonthSSvp":{"name":"lastMonth","abstract":"Budget’s last month
","parent_name":"BudgetSummary"},"Structs/BudgetSummary.html#/s:9SwiftYNAB13BudgetSummaryV10dateFormatAA04DateF0Vvp":{"name":"dateFormat","abstract":"Date formatting settings
","parent_name":"BudgetSummary"},"Structs/BudgetSummary.html#/s:9SwiftYNAB13BudgetSummaryV14currencyFormatAA08CurrencyF0Vvp":{"name":"currencyFormat","abstract":"Currency formatting settings
","parent_name":"BudgetSummary"},"Structs/BudgetSettings.html#/s:9SwiftYNAB14BudgetSettingsV10dateFormatAA04DateF0Vvp":{"name":"dateFormat","abstract":"Date formatting settings
","parent_name":"BudgetSettings"},"Structs/BudgetSettings.html#/s:9SwiftYNAB14BudgetSettingsV14currencyFormatAA08CurrencyF0Vvp":{"name":"currencyFormat","abstract":"Currency formatting settings
","parent_name":"BudgetSettings"},"Structs/BudgetDetail.html#/s:9SwiftYNAB12BudgetDetailV2idSSvp":{"name":"id","abstract":"Budget id
","parent_name":"BudgetDetail"},"Structs/BudgetDetail.html#/s:9SwiftYNAB12BudgetDetailV4nameSSvp":{"name":"name","abstract":"Budget name
","parent_name":"BudgetDetail"},"Structs/BudgetDetail.html#/s:9SwiftYNAB12BudgetDetailV14lastModifiedOnSSvp":{"name":"lastModifiedOn","abstract":"Date the budget was last modified
","parent_name":"BudgetDetail"},"Structs/BudgetDetail.html#/s:9SwiftYNAB12BudgetDetailV10dateFormatAA04DateF0Vvp":{"name":"dateFormat","abstract":"Date formatting settings
","parent_name":"BudgetDetail"},"Structs/BudgetDetail.html#/s:9SwiftYNAB12BudgetDetailV14currencyFormatAA08CurrencyF0Vvp":{"name":"currencyFormat","abstract":"Currency formatting settings
","parent_name":"BudgetDetail"},"Structs/BudgetDetail.html#/s:9SwiftYNAB12BudgetDetailV10firstMonthSSvp":{"name":"firstMonth","abstract":"Budget’s first month
","parent_name":"BudgetDetail"},"Structs/BudgetDetail.html#/s:9SwiftYNAB12BudgetDetailV9lastMonthSSvp":{"name":"lastMonth","abstract":"Budget’s last month
","parent_name":"BudgetDetail"},"Structs/BudgetDetail.html#/s:9SwiftYNAB12BudgetDetailV8accountsSayAA7AccountVGvp":{"name":"accounts","abstract":"Accounts on this budget
","parent_name":"BudgetDetail"},"Structs/BudgetDetail.html#/s:9SwiftYNAB12BudgetDetailV6payeesSayAA5PayeeVGvp":{"name":"payees","abstract":"Payees on this budget
","parent_name":"BudgetDetail"},"Structs/BudgetDetail.html#/s:9SwiftYNAB12BudgetDetailV14payeeLocationsSayAA13PayeeLocationVGvp":{"name":"payeeLocations","abstract":"All recorded payee locations
","parent_name":"BudgetDetail"},"Structs/BudgetDetail.html#/s:9SwiftYNAB12BudgetDetailV14categoryGroupsSayAA13CategoryGroupVGvp":{"name":"categoryGroups","abstract":"Budget category groups
","parent_name":"BudgetDetail"},"Structs/BudgetDetail.html#/s:9SwiftYNAB12BudgetDetailV10categoriesSayAA8CategoryVGvp":{"name":"categories","abstract":"Budget categories
","parent_name":"BudgetDetail"},"Structs/BudgetDetail.html#/s:9SwiftYNAB12BudgetDetailV6monthsSayAA05MonthD0VGvp":{"name":"months","abstract":"Budget months
","parent_name":"BudgetDetail"},"Structs/BudgetDetail.html#/s:9SwiftYNAB12BudgetDetailV12transactionsSayAA18TransactionSummaryVGvp":{"name":"transactions","abstract":"All transactions on this budget
","parent_name":"BudgetDetail"},"Structs/BudgetDetail.html#/s:9SwiftYNAB12BudgetDetailV15subtransactionsSayAA14SubTransactionVGvp":{"name":"subtransactions","abstract":"All subtransactions on this budget
","parent_name":"BudgetDetail"},"Structs/BudgetDetail.html#/s:9SwiftYNAB12BudgetDetailV21scheduledTransactionsSayAA27ScheduledTransactionSummaryVGvp":{"name":"scheduledTransactions","abstract":"All scheduled transactions on this budget
","parent_name":"BudgetDetail"},"Structs/BudgetDetail.html#/s:9SwiftYNAB12BudgetDetailV24scheduledSubtransactionsSayAA23ScheduledSubTransactionVGvp":{"name":"scheduledSubtransactions","abstract":"All scheduled sub transactions on this budget
","parent_name":"BudgetDetail"},"Structs/Account.html#/s:9SwiftYNAB7AccountV2idSSvp":{"name":"id","abstract":"Account id
","parent_name":"Account"},"Structs/Account.html#/s:9SwiftYNAB7AccountV4nameSSvp":{"name":"name","abstract":"Account name
","parent_name":"Account"},"Structs/Account.html#/s:9SwiftYNAB7AccountV4typeSSvp":{"name":"type","abstract":"Account type
","parent_name":"Account"},"Structs/Account.html#/s:9SwiftYNAB7AccountV8onBudgetSbvp":{"name":"onBudget","abstract":"Budget account or not
","parent_name":"Account"},"Structs/Account.html#/s:9SwiftYNAB7AccountV6closedSbvp":{"name":"closed","abstract":"Closed account or not
","parent_name":"Account"},"Structs/Account.html#/s:9SwiftYNAB7AccountV4noteSSSgvp":{"name":"note","abstract":"Note on the account
","parent_name":"Account"},"Structs/Account.html#/s:9SwiftYNAB7AccountV7balanceSivp":{"name":"balance","abstract":"Account balance
","parent_name":"Account"},"Structs/Account.html#/s:9SwiftYNAB7AccountV14clearedBalanceSivp":{"name":"clearedBalance","abstract":"Cleared account balance
","parent_name":"Account"},"Structs/Account.html#/s:9SwiftYNAB7AccountV16unclearedBalanceSivp":{"name":"unclearedBalance","abstract":"Uncleared account balance
","parent_name":"Account"},"Structs/Account.html#/s:9SwiftYNAB7AccountV15transferPayeeIdSSvp":{"name":"transferPayeeId","abstract":"Payee id for transfers
","parent_name":"Account"},"Structs/Account.html#/s:9SwiftYNAB7AccountV18directImportLinkedSbvp":{"name":"directImportLinked","abstract":"Indicates whether the account is linked via direct import
","parent_name":"Account"},"Structs/Account.html#/s:9SwiftYNAB7AccountV19directImportInErrorSbvp":{"name":"directImportInError","abstract":"Indicates whether direct import is in an error state
","parent_name":"Account"},"Structs/Account.html#/s:9SwiftYNAB7AccountV16lastReconciledAtSSSgvp":{"name":"lastReconciledAt","abstract":"Date when account was last reconciled
","parent_name":"Account"},"Structs/Account.html#/s:9SwiftYNAB7AccountV19debtOriginalBalanceSiSgvp":{"name":"debtOriginalBalance","abstract":"Original balance for a debt account
","parent_name":"Account"},"Structs/Account.html#/s:9SwiftYNAB7AccountV17debtInterestRatesSDySSSiGvp":{"name":"debtInterestRates","abstract":"Interest rate at different points in time
","parent_name":"Account"},"Structs/Account.html#/s:9SwiftYNAB7AccountV19debtMinimumPaymentsSDySSSiGvp":{"name":"debtMinimumPayments","abstract":"Minimum payment at different points in time
","parent_name":"Account"},"Structs/Account.html#/s:9SwiftYNAB7AccountV17debtEscrowAmountsSDySSSiGvp":{"name":"debtEscrowAmounts","abstract":"Escrow amount at different points in time
","parent_name":"Account"},"Structs/Account.html#/s:9SwiftYNAB7AccountV7deletedSbvp":{"name":"deleted","abstract":"Deleted account or not
","parent_name":"Account"},"Structs/Account.html":{"name":"Account","abstract":"Budget account model
"},"Structs/BudgetDetail.html":{"name":"BudgetDetail","abstract":"Full budget model. This represents a complete budget export.
"},"Structs/BudgetSettings.html":{"name":"BudgetSettings","abstract":"Budget settings model
"},"Structs/BudgetSummary.html":{"name":"BudgetSummary","abstract":"Budget summary model
"},"Structs/Category.html":{"name":"Category","abstract":"Budget category
"},"Structs/CategoryGroup.html":{"name":"CategoryGroup","abstract":"Category group model
"},"Structs/CategoryGroupWithCategories.html":{"name":"CategoryGroupWithCategories","abstract":"Category group including categories
"},"Structs/CurrencyFormat.html":{"name":"CurrencyFormat","abstract":"Currency formatting settings
"},"Structs/DateFormat.html":{"name":"DateFormat","abstract":"Date format settings
"},"Structs/ErrorDetail.html":{"name":"ErrorDetail","abstract":"Model for API errors
"},"Structs/HybridTransaction.html":{"name":"HybridTransaction","abstract":"Hybrid transaction
"},"Structs/MonthDetail.html":{"name":"MonthDetail","abstract":"Month detail model
"},"Structs/MonthSummary.html":{"name":"MonthSummary","abstract":"Month summary model
"},"Structs/Payee.html":{"name":"Payee","abstract":"Payee model
"},"Structs/PayeeLocation.html":{"name":"PayeeLocation","abstract":"Payee location model
"},"Structs/SaveTransaction.html":{"name":"SaveTransaction","abstract":"Model used for creating and updating transactions
"},"Structs/ScheduledSubTransaction.html":{"name":"ScheduledSubTransaction","abstract":"Scheduled sub transaction
"},"Structs/ScheduledTransactionDetail.html":{"name":"ScheduledTransactionDetail","abstract":"Full details of a scheduled transaction
"},"Structs/ScheduledTransactionSummary.html":{"name":"ScheduledTransactionSummary","abstract":"Summary of a scheduled transaction
"},"Structs/SubTransaction.html":{"name":"SubTransaction","abstract":"Subtransaction model
"},"Structs/TransactionDetail.html":{"name":"TransactionDetail","abstract":"Detailed model of a transaction
"},"Structs/TransactionSummary.html":{"name":"TransactionSummary","abstract":"Summary details of a transaction
"},"Structs/User.html":{"name":"User","abstract":"Authenticate user information
"},"Enums/TransactionType.html#/s:9SwiftYNAB15TransactionTypeO10unapprovedyA2CmF":{"name":"unapproved","abstract":"Unapproved transaction
","parent_name":"TransactionType"},"Enums/TransactionType.html#/s:9SwiftYNAB15TransactionTypeO13uncategorizedyA2CmF":{"name":"uncategorized","abstract":"Uncategorized transaction
","parent_name":"TransactionType"},"Enums/DebtTransactionType.html#/s:9SwiftYNAB19DebtTransactionTypeO7paymentyA2CmF":{"name":"payment","abstract":"Undocumented
","parent_name":"DebtTransactionType"},"Enums/DebtTransactionType.html#/s:9SwiftYNAB19DebtTransactionTypeO6refundyA2CmF":{"name":"refund","abstract":"Undocumented
","parent_name":"DebtTransactionType"},"Enums/DebtTransactionType.html#/s:9SwiftYNAB19DebtTransactionTypeO3feeyA2CmF":{"name":"fee","abstract":"Undocumented
","parent_name":"DebtTransactionType"},"Enums/DebtTransactionType.html#/s:9SwiftYNAB19DebtTransactionTypeO8interestyA2CmF":{"name":"interest","abstract":"Undocumented
","parent_name":"DebtTransactionType"},"Enums/DebtTransactionType.html#/s:9SwiftYNAB19DebtTransactionTypeO6escrowyA2CmF":{"name":"escrow","abstract":"Undocumented
","parent_name":"DebtTransactionType"},"Enums/DebtTransactionType.html#/s:9SwiftYNAB19DebtTransactionTypeO18balancedAdjustmentyA2CmF":{"name":"balancedAdjustment","abstract":"Undocumented
","parent_name":"DebtTransactionType"},"Enums/DebtTransactionType.html#/s:9SwiftYNAB19DebtTransactionTypeO6credityA2CmF":{"name":"credit","abstract":"Undocumented
","parent_name":"DebtTransactionType"},"Enums/DebtTransactionType.html#/s:9SwiftYNAB19DebtTransactionTypeO6chargeyA2CmF":{"name":"charge","abstract":"Undocumented
","parent_name":"DebtTransactionType"},"Enums/DebtTransactionType.html":{"name":"DebtTransactionType","abstract":"Undocumented
"},"Enums/TransactionType.html":{"name":"TransactionType","abstract":"Supported transaction types by the API
"},"Classes/UserService.html#/s:9SwiftYNAB11UserServiceC03getC0AA0C0VyYaKF":{"name":"getUser()","abstract":"Returns authenticated user information
","parent_name":"UserService"},"Classes/TransactionService.html#/s:9SwiftYNAB18TransactionServiceC03getC08budgetId011transactionG0AA0C6DetailVSS_SStYaKF":{"name":"getTransaction(budgetId:transactionId:)","abstract":"Returns a single transaction.
","parent_name":"TransactionService"},"Classes/TransactionService.html#/s:9SwiftYNAB18TransactionServiceC15getTransactions8budgetId9sinceDate4type21lastKnowledgeOfServerSayAA0C6DetailVGSS_10Foundation0J0VSgAA0C4TypeOSgSiSgtYaKF":{"name":"getTransactions(budgetId:sinceDate:type:lastKnowledgeOfServer:)","abstract":"Returns all transactions for a budget.
","parent_name":"TransactionService"},"Classes/TransactionService.html#/s:9SwiftYNAB18TransactionServiceC15getTransactions8budgetId07accountH09sinceDate4type21lastKnowledgeOfServerSayAA0C6DetailVGSS_SS10Foundation0K0VSgAA0C4TypeOSgSiSgtYaKF":{"name":"getTransactions(budgetId:accountId:sinceDate:type:lastKnowledgeOfServer:)","abstract":"Returns all transactions for an account.
","parent_name":"TransactionService"},"Classes/TransactionService.html#/s:9SwiftYNAB18TransactionServiceC15getTransactions8budgetId08categoryH09sinceDate4type21lastKnowledgeOfServerSayAA06HybridC0VGSS_SS10Foundation0K0VSgAA0C4TypeOSgSiSgtYaKF":{"name":"getTransactions(budgetId:categoryId:sinceDate:type:lastKnowledgeOfServer:)","abstract":"Returns all transactions for a category.
","parent_name":"TransactionService"},"Classes/TransactionService.html#/s:9SwiftYNAB18TransactionServiceC15getTransactions8budgetId05payeeH09sinceDate4type21lastKnowledgeOfServerSayAA06HybridC0VGSS_SS10Foundation0K0VSgAA0C4TypeOSgSiSgtYaKF":{"name":"getTransactions(budgetId:payeeId:sinceDate:type:lastKnowledgeOfServer:)","abstract":"Returns all transactions for a payee.
","parent_name":"TransactionService"},"Classes/TransactionService.html#/s:9SwiftYNAB18TransactionServiceC04saveC08budgetId11transactionAA0C6DetailVSS_AA04SaveC0VtYaKF":{"name":"saveTransaction(budgetId:transaction:)","abstract":"Creates a new transactions.
","parent_name":"TransactionService"},"Classes/TransactionService.html#/s:9SwiftYNAB18TransactionServiceC16saveTransactions8budgetId12transactionsSayAA0C6DetailVGAF_SaySSG14transactionIdsAJ015duplicateImportL0tSS_SayAA04SaveC0VGtYaKF":{"name":"saveTransactions(budgetId:transactions:)","abstract":"Creates several new transactions.
","parent_name":"TransactionService"},"Classes/TransactionService.html#/s:9SwiftYNAB18TransactionServiceC06updateC08budgetId11transactionAA0C6DetailVSS_AA04SaveC0VtYaKF":{"name":"updateTransaction(budgetId:transaction:)","abstract":"Updates a single transaction.
","parent_name":"TransactionService"},"Classes/TransactionService.html#/s:9SwiftYNAB18TransactionServiceC18updateTransactions8budgetId12transactionsSayAA0C6DetailVGAF_SaySSG14transactionIdsAJ015duplicateImportL0tSS_SayAA04SaveC0VGtYaKF":{"name":"updateTransactions(budgetId:transactions:)","abstract":"Updates several transactions.
","parent_name":"TransactionService"},"Classes/TransactionService.html#/s:9SwiftYNAB18TransactionServiceC06deleteC08budgetId011transactionG0AA0C6DetailVSS_SStYaKF":{"name":"deleteTransaction(budgetId:transactionId:)","abstract":"Delete a single transaction.
","parent_name":"TransactionService"},"Classes/ScheduledTransactionService.html#/s:9SwiftYNAB27ScheduledTransactionServiceC03getcD08budgetId011transactionH0AA0cD6DetailVSS_SStYaKF":{"name":"getScheduledTransaction(budgetId:transactionId:)","abstract":"Returns a single scheduled transaction for a budget.
","parent_name":"ScheduledTransactionService"},"Classes/ScheduledTransactionService.html#/s:9SwiftYNAB27ScheduledTransactionServiceC03getC12Transactions8budgetIdSayAA0cD6DetailVGSS_tYaKF":{"name":"getScheduledTransactions(budgetId:)","abstract":"Returns all scheduled transactions for a budget.
","parent_name":"ScheduledTransactionService"},"Classes/PayeeService.html#/s:9SwiftYNAB12PayeeServiceC9getPayees8budgetId21lastKnowledgeOfServerSayAA0C0VGSS_SiSgtYaKF":{"name":"getPayees(budgetId:lastKnowledgeOfServer:)","abstract":"Returns all payees
","parent_name":"PayeeService"},"Classes/PayeeService.html#/s:9SwiftYNAB12PayeeServiceC03getC08budgetId05payeeG0AA0C0VSS_SStYaKF":{"name":"getPayee(budgetId:payeeId:)","abstract":"Returns a single payee.
","parent_name":"PayeeService"},"Classes/PayeeLocationService.html#/s:9SwiftYNAB20PayeeLocationServiceC03getC9Locations8budgetIdSayAA0cD0VGSS_tYaKF":{"name":"getPayeeLocations(budgetId:)","abstract":"Returns a list of all payee locations for a budget.
","parent_name":"PayeeLocationService"},"Classes/PayeeLocationService.html#/s:9SwiftYNAB20PayeeLocationServiceC03getcD08budgetId05payeeH0AA0cD0VSS_SStYaKF":{"name":"getPayeeLocation(budgetId:payeeId:)","abstract":"Returns a specific payee location.
","parent_name":"PayeeLocationService"},"Classes/PayeeLocationService.html#/s:9SwiftYNAB20PayeeLocationServiceC015getLocationsForC08budgetId05payeeJ0SayAA0cD0VGSS_SStYaKF":{"name":"getLocationsForPayee(budgetId:payeeId:)","abstract":"Returns all locations for a payee.
","parent_name":"PayeeLocationService"},"Classes/MonthService.html#/s:9SwiftYNAB12MonthServiceC9getMonths8budgetId21lastKnowledgeOfServerSayAA0C7SummaryVGSS_SiSgtYaKF":{"name":"getMonths(budgetId:lastKnowledgeOfServer:)","abstract":"Returns a list of budget months.
","parent_name":"MonthService"},"Classes/MonthService.html#/s:9SwiftYNAB12MonthServiceC03getC08budgetId5monthAA0C6DetailVSS_SStYaKF":{"name":"getMonth(budgetId:month:)","abstract":"Returns a specific month for a budget.
","parent_name":"MonthService"},"Classes/CategoryService.html#/s:9SwiftYNAB15CategoryServiceC13getCategories8budgetId21lastKnowledgeOfServerSayAA0c9GroupWithF0VGSS_SiSgtYaKF":{"name":"getCategories(budgetId:lastKnowledgeOfServer:)","abstract":"Returns a list of budget categories.
","parent_name":"CategoryService"},"Classes/CategoryService.html#/s:9SwiftYNAB15CategoryServiceC03getC08budgetId08categoryG0AA0C0VSS_SStYaKF":{"name":"getCategory(budgetId:categoryId:)","abstract":"Returns a single category.
","parent_name":"CategoryService"},"Classes/CategoryService.html#/s:9SwiftYNAB15CategoryServiceC03getC08budgetId5month08categoryG0AA0C0VSS_S2StYaKF":{"name":"getCategory(budgetId:month:categoryId:)","abstract":"Returns a single category for a specific budget month.
","parent_name":"CategoryService"},"Classes/CategoryService.html#/s:9SwiftYNAB15CategoryServiceC06updateC08budgetId5month08categoryG08budgetedAA0C0VSS_S2SSitYaKF":{"name":"updateCategory(budgetId:month:categoryId:budgeted:)","abstract":"Update a category for a specific month.
","parent_name":"CategoryService"},"Classes/BudgetService.html#/s:9SwiftYNAB13BudgetServiceC10getBudgetsSayAA0C7SummaryVGyYaKF":{"name":"getBudgets()","abstract":"Returns budgets list with summary information.
","parent_name":"BudgetService"},"Classes/BudgetService.html#/s:9SwiftYNAB13BudgetServiceC03getC08budgetId21lastKnowledgeOfServerAA0C6DetailVSS_SiSgtYaKF":{"name":"getBudget(budgetId:lastKnowledgeOfServer:)","abstract":"Returns a single budget with all related entities.
","parent_name":"BudgetService"},"Classes/BudgetService.html#/s:9SwiftYNAB13BudgetServiceC03getC8Settings8budgetIdAA0cF0VSS_tYaKF":{"name":"getBudgetSettings(budgetId:)","abstract":"Returns settings for a budget.
","parent_name":"BudgetService"},"Classes/AccountService.html#/s:9SwiftYNAB14AccountServiceC03getC08budgetId07accountG0AA0C0VSS_SStYaKF":{"name":"getAccount(budgetId:accountId:)","abstract":"Retrieves a single account.
","parent_name":"AccountService"},"Classes/AccountService.html#/s:9SwiftYNAB14AccountServiceC11getAccounts8budgetId21lastKnowledgeOfServerSayAA0C0VGSS_SiSgtYaKF":{"name":"getAccounts(budgetId:lastKnowledgeOfServer:)","abstract":"Retrieves all accounts for a single budget.
","parent_name":"AccountService"},"Classes/AccountService.html#/s:9SwiftYNAB14AccountServiceC09newBudgetC08budgetId4name4type7balanceAA0C0VSS_S2SSitYaKF":{"name":"newBudgetAccount(budgetId:name:type:balance:)","abstract":"Creates a new unlinked account in a budget.
","parent_name":"AccountService"},"Classes/DateConverter.html#/s:9SwiftYNAB13DateConverterC10dateFormatAcA0cF0V_tcfc":{"name":"init(dateFormat:)","abstract":"Initializes the formatter with date format information from a budget
","parent_name":"DateConverter"},"Classes/DateConverter.html#/s:9SwiftYNAB13DateConverterC012budgetFormatC6String4fromSSSgSS_tF":{"name":"budgetFormatDateString(from:)","abstract":"Converts a date sent by the API into a displayable date according to the budget format
","parent_name":"DateConverter"},"Classes/DateConverter.html#/s:9SwiftYNAB13DateConverterC4date4from10Foundation0C0VSgSS_tFZ":{"name":"date(from:)","abstract":"Converts a date sent by the API into a Date
object
","parent_name":"DateConverter"},"Classes/DateConverter.html#/s:9SwiftYNAB13DateConverterC07iso8601C6String4fromSS10Foundation0C0V_tFZ":{"name":"iso8601DateString(from:)","abstract":"Converts a date into a API-friendly iso8601 date string
","parent_name":"DateConverter"},"Classes/CurrencyFormatter.html#/s:9SwiftYNAB17CurrencyFormatterC14currencyFormatAcA0cF0V_tcfc":{"name":"init(currencyFormat:)","abstract":"Initializes the formatter using format information from a budget
","parent_name":"CurrencyFormatter"},"Classes/CurrencyFormatter.html#/s:9SwiftYNAB17CurrencyFormatterC14currencyString4fromSSSgSi_tF":{"name":"currencyString(from:)","abstract":"Converts milliunit amounts into a budget format currency string
","parent_name":"CurrencyFormatter"},"Classes/YNAB.html#/s:9SwiftYNAB0B0C5usersAA11UserServiceCvp":{"name":"users","abstract":"Provides access to user operations
","parent_name":"YNAB"},"Classes/YNAB.html#/s:9SwiftYNAB0B0C7budgetsAA13BudgetServiceCvp":{"name":"budgets","abstract":"Provides access to budget operations
","parent_name":"YNAB"},"Classes/YNAB.html#/s:9SwiftYNAB0B0C8accountsAA14AccountServiceCvp":{"name":"accounts","abstract":"Provides access to account operations
","parent_name":"YNAB"},"Classes/YNAB.html#/s:9SwiftYNAB0B0C10categoriesAA15CategoryServiceCvp":{"name":"categories","abstract":"Provides access to category operations
","parent_name":"YNAB"},"Classes/YNAB.html#/s:9SwiftYNAB0B0C6payeesAA12PayeeServiceCvp":{"name":"payees","abstract":"Provides access to payee operations
","parent_name":"YNAB"},"Classes/YNAB.html#/s:9SwiftYNAB0B0C14payeeLocationsAA20PayeeLocationServiceCvp":{"name":"payeeLocations","abstract":"Provides access to payee location operations
","parent_name":"YNAB"},"Classes/YNAB.html#/s:9SwiftYNAB0B0C6monthsAA12MonthServiceCvp":{"name":"months","abstract":"Provides access to month operations
","parent_name":"YNAB"},"Classes/YNAB.html#/s:9SwiftYNAB0B0C12transactionsAA18TransactionServiceCvp":{"name":"transactions","abstract":"Provides access to transaction operations
","parent_name":"YNAB"},"Classes/YNAB.html#/s:9SwiftYNAB0B0C21scheduledTransactionsAA27ScheduledTransactionServiceCvp":{"name":"scheduledTransactions","abstract":"Provides access to scheduled transaction operations
","parent_name":"YNAB"},"Classes/YNAB.html#/s:9SwiftYNAB0B0C11accessToken10urlSessionACSS_So12NSURLSessionCtcfc":{"name":"init(accessToken:urlSession:)","abstract":"Initializes the YNAB API client
","parent_name":"YNAB"},"Classes/YNAB.html":{"name":"YNAB","abstract":"YNAB API client
"},"Classes/CurrencyFormatter.html":{"name":"CurrencyFormatter","abstract":"Converts currency data from API responses into displayeable strings
"},"Classes/DateConverter.html":{"name":"DateConverter","abstract":"Converts dates to and from API-friendly strings
"},"Classes/AccountService.html":{"name":"AccountService","abstract":"Provides access to account operations
"},"Classes/BudgetService.html":{"name":"BudgetService","abstract":"Provides access to account operations
"},"Classes/CategoryService.html":{"name":"CategoryService","abstract":"Provides access to category operations
"},"Classes/MonthService.html":{"name":"MonthService","abstract":"Provides access to month operations
"},"Classes/PayeeLocationService.html":{"name":"PayeeLocationService","abstract":"Provides access to payee location operations
"},"Classes/PayeeService.html":{"name":"PayeeService","abstract":"Provides access to payee operations
"},"Classes/ScheduledTransactionService.html":{"name":"ScheduledTransactionService","abstract":"Provides access to scheduled transaction operations
"},"Classes/TransactionService.html":{"name":"TransactionService","abstract":"Provides access to transaction operations
"},"Classes/UserService.html":{"name":"UserService","abstract":"Provides access to user operations
"},"Classes.html":{"name":"Classes","abstract":"The following classes are available globally.
"},"Enums.html":{"name":"Enumerations","abstract":"The following enumerations are available globally.
"},"Structs.html":{"name":"Structures","abstract":"The following structures are available globally.
"},"Typealiases.html":{"name":"Type Aliases","abstract":"The following type aliases are available globally.
"}}
\ No newline at end of file
diff --git a/docs/docsets/SwiftYNAB.docset/Contents/Resources/Documents/undocumented.json b/docs/docsets/SwiftYNAB.docset/Contents/Resources/Documents/undocumented.json
index 9da9e87..8165656 100644
--- a/docs/docsets/SwiftYNAB.docset/Contents/Resources/Documents/undocumented.json
+++ b/docs/docsets/SwiftYNAB.docset/Contents/Resources/Documents/undocumented.json
@@ -2,5 +2,5 @@
"warnings": [
],
- "source_directory": "/Users/andrebocchini/Developer/swiftynab/SwiftYNAB"
+ "source_directory": "/Users/andre.bocchini/Downloads/silent-development-2.0.0/SwiftYNAB"
}
\ No newline at end of file
diff --git a/docs/docsets/SwiftYNAB.docset/Contents/Resources/docSet.dsidx b/docs/docsets/SwiftYNAB.docset/Contents/Resources/docSet.dsidx
index fb0d284fb3591b233fd718ae8a236f97885c8a38..7786832c276d7501c068fa246b04a2e553eb425e 100644
GIT binary patch
delta 13721
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
delta 9375
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