diff --git a/bankfeeds/README.md b/bankfeeds/README.md
index f3430b843..942b4d07d 100755
--- a/bankfeeds/README.md
+++ b/bankfeeds/README.md
@@ -14,28 +14,21 @@ pip install codat-bankfeeds
import codat
from codat.models import operations, shared
-s = codat.Codat()
-s.config_security(
+s = codat.Codat(
security=shared.Security(
- api_key="YOUR_API_KEY_HERE",
- )
+ auth_header="YOUR_API_KEY_HERE",
+ ),
)
-
+
+
req = operations.GetBankAccountPushOptionsRequest(
- security=operations.GetBankAccountPushOptionsSecurity(
- api_key="YOUR_API_KEY_HERE",
- ),
- path_params=operations.GetBankAccountPushOptionsPathParams(
- account_id="unde",
- company_id="deserunt",
- connection_id="porro",
- ),
- query_params=operations.GetBankAccountPushOptionsQueryParams(
- order_by="nulla",
- page=6027.63,
- page_size=8579.46,
- query="perspiciatis",
- ),
+ account_id="unde",
+ company_id="deserunt",
+ connection_id="porro",
+ order_by="nulla",
+ page=6027.63,
+ page_size=8579.46,
+ query="perspiciatis",
)
res = s.bank_account_transactions.get_bank_account_push_options(req)
@@ -52,13 +45,13 @@ if res.push_option is not None:
### bank_account_transactions
* `get_bank_account_push_options` - List push options for bank account bank transactions
-* `list_all_bank_transactionscount` - List bank transactions for bank account
+* `list_bank_account_transactions` - List bank transactions for bank account
* `post_bank_transactions` - Create bank transactions
### bank_feed_accounts
+* `create_bank_feed` - Create bank feed bank accounts
* `get_bank_feeds` - List bank feed bank accounts
-* `put_bank_feeds` - Update bank feed bank accounts
* `update_bank_feed` - Update bank feed bank account
diff --git a/bankfeeds/RELEASES.md b/bankfeeds/RELEASES.md
index 7095d08de..b62fc6680 100644
--- a/bankfeeds/RELEASES.md
+++ b/bankfeeds/RELEASES.md
@@ -14,4 +14,68 @@ Based on:
- OpenAPI Doc 2.1.0 https://raw.githubusercontent.com/codatio/oas/main/yaml/Codat-Bank-Feeds.yaml
- Speakeasy CLI 1.7.1 https://github.com/speakeasy-api/speakeasy
### Releases
-- [PyPI v0.1.1] https://pypi.org/project/codat-bankfeeds/0.1.1 - bankfeeds
\ No newline at end of file
+- [PyPI v0.1.1] https://pypi.org/project/codat-bankfeeds/0.1.1 - bankfeeds
+
+## 2023-03-04 00:17:14
+### Changes
+Based on:
+- OpenAPI Doc 2.1.0 https://raw.githubusercontent.com/codatio/oas/main/yaml/Codat-Bank-Feeds.yaml
+- Speakeasy CLI 1.8.2 https://github.com/speakeasy-api/speakeasy
+### Releases
+- [PyPI v0.2.0] https://pypi.org/project/codat-bankfeeds/0.2.0 - bankfeeds
+
+## 2023-03-06 00:19:15
+### Changes
+Based on:
+- OpenAPI Doc 2.1.0 https://raw.githubusercontent.com/codatio/oas/main/yaml/Codat-Bank-Feeds.yaml
+- Speakeasy CLI 1.8.4 https://github.com/speakeasy-api/speakeasy
+### Releases
+- [PyPI v0.2.1] https://pypi.org/project/codat-bankfeeds/0.2.1 - bankfeeds
+
+## 2023-03-07 00:19:35
+### Changes
+Based on:
+- OpenAPI Doc 2.1.0 https://raw.githubusercontent.com/codatio/oas/main/yaml/Codat-Bank-Feeds.yaml
+- Speakeasy CLI 1.8.5 https://github.com/speakeasy-api/speakeasy
+### Releases
+- [PyPI v0.2.2] https://pypi.org/project/codat-bankfeeds/0.2.2 - bankfeeds
+
+## 2023-03-08 00:18:50
+### Changes
+Based on:
+- OpenAPI Doc 2.1.0 https://raw.githubusercontent.com/codatio/oas/main/yaml/Codat-Bank-Feeds.yaml
+- Speakeasy CLI 1.8.6 https://github.com/speakeasy-api/speakeasy
+### Releases
+- [PyPI v0.2.3] https://pypi.org/project/codat-bankfeeds/0.2.3 - bankfeeds
+
+## 2023-03-09 00:18:55
+### Changes
+Based on:
+- OpenAPI Doc 2.1.0 https://raw.githubusercontent.com/codatio/oas/main/yaml/Codat-Bank-Feeds.yaml
+- Speakeasy CLI 1.8.7 https://github.com/speakeasy-api/speakeasy
+### Releases
+- [PyPI v0.2.4] https://pypi.org/project/codat-bankfeeds/0.2.4 - bankfeeds
+
+## 2023-03-10 00:18:44
+### Changes
+Based on:
+- OpenAPI Doc 2.1.0 https://raw.githubusercontent.com/codatio/oas/main/yaml/Codat-Bank-Feeds.yaml
+- Speakeasy CLI 1.9.1 https://github.com/speakeasy-api/speakeasy
+### Releases
+- [PyPI v0.3.0] https://pypi.org/project/codat-bankfeeds/0.3.0 - bankfeeds
+
+## 2023-03-11 00:16:21
+### Changes
+Based on:
+- OpenAPI Doc 2.1.0 https://raw.githubusercontent.com/codatio/oas/main/yaml/Codat-Bank-Feeds.yaml
+- Speakeasy CLI 1.9.2 https://github.com/speakeasy-api/speakeasy
+### Releases
+- [PyPI v0.3.1] https://pypi.org/project/codat-bankfeeds/0.3.1 - bankfeeds
+
+## 2023-03-15 00:18:03
+### Changes
+Based on:
+- OpenAPI Doc 2.1.0 https://raw.githubusercontent.com/codatio/oas/main/yaml/Codat-Bank-Feeds.yaml
+- Speakeasy CLI 1.11.0 https://github.com/speakeasy-api/speakeasy
+### Releases
+- [PyPI v0.4.0] https://pypi.org/project/codat-bankfeeds/0.4.0 - bankfeeds
\ No newline at end of file
diff --git a/bankfeeds/USAGE.md b/bankfeeds/USAGE.md
index c802447be..f1ecce9cd 100755
--- a/bankfeeds/USAGE.md
+++ b/bankfeeds/USAGE.md
@@ -3,28 +3,21 @@
import codat
from codat.models import operations, shared
-s = codat.Codat()
-s.config_security(
+s = codat.Codat(
security=shared.Security(
- api_key="YOUR_API_KEY_HERE",
- )
+ auth_header="YOUR_API_KEY_HERE",
+ ),
)
-
+
+
req = operations.GetBankAccountPushOptionsRequest(
- security=operations.GetBankAccountPushOptionsSecurity(
- api_key="YOUR_API_KEY_HERE",
- ),
- path_params=operations.GetBankAccountPushOptionsPathParams(
- account_id="unde",
- company_id="deserunt",
- connection_id="porro",
- ),
- query_params=operations.GetBankAccountPushOptionsQueryParams(
- order_by="nulla",
- page=6027.63,
- page_size=8579.46,
- query="perspiciatis",
- ),
+ account_id="unde",
+ company_id="deserunt",
+ connection_id="porro",
+ order_by="nulla",
+ page=6027.63,
+ page_size=8579.46,
+ query="perspiciatis",
)
res = s.bank_account_transactions.get_bank_account_push_options(req)
diff --git a/bankfeeds/files.gen b/bankfeeds/files.gen
index fc0f39a39..1551d704b 100755
--- a/bankfeeds/files.gen
+++ b/bankfeeds/files.gen
@@ -1,6 +1,7 @@
src/codat/bank_account_transactions.py
src/codat/bank_feed_accounts.py
src/codat/sdk.py
+pylintrc
setup.py
src/codat/__init__.py
src/codat/models/__init__.py
@@ -8,10 +9,10 @@ src/codat/utils/__init__.py
src/codat/utils/retries.py
src/codat/utils/utils.py
src/codat/models/operations/get_bank_account_push_options.py
-src/codat/models/operations/list_all_bank_transactionscount.py
+src/codat/models/operations/list_bank_account_transactions.py
src/codat/models/operations/post_bank_transactions.py
+src/codat/models/operations/create_bank_feed.py
src/codat/models/operations/get_bank_feeds.py
-src/codat/models/operations/put_bank_feeds.py
src/codat/models/operations/update_bank_feed.py
src/codat/models/operations/__init__.py
src/codat/models/shared/security.py
diff --git a/bankfeeds/gen.yaml b/bankfeeds/gen.yaml
index 1a715dfde..3b6d88b76 100644
--- a/bankfeeds/gen.yaml
+++ b/bankfeeds/gen.yaml
@@ -1,14 +1,14 @@
configVersion: 1.0.0
management:
- docChecksum: 2850b50909854a03af955e915ac1f608
+ docChecksum: 5d482fdc77beeaca660224bb3f31b4ec
docVersion: 2.1.0
- speakeasyVersion: 1.7.1
+ speakeasyVersion: 1.11.0
generation:
telemetryEnabled: false
sdkClassName: codat
sdkFlattening: true
python:
- version: 0.1.1
+ version: 0.4.0
author: Speakeasy
description: Python Client SDK Generated by Speakeasy
packageName: codat-bankfeeds
diff --git a/bankfeeds/pylintrc b/bankfeeds/pylintrc
new file mode 100755
index 000000000..532df1904
--- /dev/null
+++ b/bankfeeds/pylintrc
@@ -0,0 +1,641 @@
+[MAIN]
+
+# Analyse import fallback blocks. This can be used to support both Python 2 and
+# 3 compatible code, which means that the block might have code that exists
+# only in one or another interpreter, leading to false positives when analysed.
+analyse-fallback-blocks=no
+
+# Clear in-memory caches upon conclusion of linting. Useful if running pylint
+# in a server-like mode.
+clear-cache-post-run=no
+
+# Load and enable all available extensions. Use --list-extensions to see a list
+# all available extensions.
+#enable-all-extensions=
+
+# In error mode, messages with a category besides ERROR or FATAL are
+# suppressed, and no reports are done by default. Error mode is compatible with
+# disabling specific errors.
+#errors-only=
+
+# Always return a 0 (non-error) status code, even if lint errors are found.
+# This is primarily useful in continuous integration scripts.
+#exit-zero=
+
+# A comma-separated list of package or module names from where C extensions may
+# be loaded. Extensions are loading into the active Python interpreter and may
+# run arbitrary code.
+extension-pkg-allow-list=
+
+# A comma-separated list of package or module names from where C extensions may
+# be loaded. Extensions are loading into the active Python interpreter and may
+# run arbitrary code. (This is an alternative name to extension-pkg-allow-list
+# for backward compatibility.)
+extension-pkg-whitelist=
+
+# Return non-zero exit code if any of these messages/categories are detected,
+# even if score is above --fail-under value. Syntax same as enable. Messages
+# specified are enabled, while categories only check already-enabled messages.
+fail-on=
+
+# Specify a score threshold under which the program will exit with error.
+fail-under=10
+
+# Interpret the stdin as a python script, whose filename needs to be passed as
+# the module_or_package argument.
+#from-stdin=
+
+# Files or directories to be skipped. They should be base names, not paths.
+ignore=CVS
+
+# Add files or directories matching the regular expressions patterns to the
+# ignore-list. The regex matches against paths and can be in Posix or Windows
+# format. Because '\\' represents the directory delimiter on Windows systems,
+# it can't be used as an escape character.
+ignore-paths=
+
+# Files or directories matching the regular expression patterns are skipped.
+# The regex matches against base names, not paths. The default value ignores
+# Emacs file locks
+ignore-patterns=^\.#
+
+# List of module names for which member attributes should not be checked
+# (useful for modules/projects where namespaces are manipulated during runtime
+# and thus existing member attributes cannot be deduced by static analysis). It
+# supports qualified module names, as well as Unix pattern matching.
+ignored-modules=
+
+# Python code to execute, usually for sys.path manipulation such as
+# pygtk.require().
+#init-hook=
+
+# Use multiple processes to speed up Pylint. Specifying 0 will auto-detect the
+# number of processors available to use, and will cap the count on Windows to
+# avoid hangs.
+jobs=1
+
+# Control the amount of potential inferred values when inferring a single
+# object. This can help the performance when dealing with large functions or
+# complex, nested conditions.
+limit-inference-results=100
+
+# List of plugins (as comma separated values of python module names) to load,
+# usually to register additional checkers.
+load-plugins=
+
+# Pickle collected data for later comparisons.
+persistent=yes
+
+# Minimum Python version to use for version dependent checks. Will default to
+# the version used to run pylint.
+py-version=3.9
+
+# Discover python modules and packages in the file system subtree.
+recursive=no
+
+# When enabled, pylint would attempt to guess common misconfiguration and emit
+# user-friendly hints instead of false-positive error messages.
+suggestion-mode=yes
+
+# Allow loading of arbitrary C extensions. Extensions are imported into the
+# active Python interpreter and may run arbitrary code.
+unsafe-load-any-extension=no
+
+# In verbose mode, extra non-checker-related info will be displayed.
+#verbose=
+
+
+[BASIC]
+
+# Naming style matching correct argument names.
+argument-naming-style=snake_case
+
+# Regular expression matching correct argument names. Overrides argument-
+# naming-style. If left empty, argument names will be checked with the set
+# naming style.
+#argument-rgx=
+
+# Naming style matching correct attribute names.
+attr-naming-style=snake_case
+
+# Regular expression matching correct attribute names. Overrides attr-naming-
+# style. If left empty, attribute names will be checked with the set naming
+# style.
+#attr-rgx=
+
+# Bad variable names which should always be refused, separated by a comma.
+bad-names=foo,
+ bar,
+ baz,
+ toto,
+ tutu,
+ tata
+
+# Bad variable names regexes, separated by a comma. If names match any regex,
+# they will always be refused
+bad-names-rgxs=
+
+# Naming style matching correct class attribute names.
+class-attribute-naming-style=any
+
+# Regular expression matching correct class attribute names. Overrides class-
+# attribute-naming-style. If left empty, class attribute names will be checked
+# with the set naming style.
+#class-attribute-rgx=
+
+# Naming style matching correct class constant names.
+class-const-naming-style=UPPER_CASE
+
+# Regular expression matching correct class constant names. Overrides class-
+# const-naming-style. If left empty, class constant names will be checked with
+# the set naming style.
+#class-const-rgx=
+
+# Naming style matching correct class names.
+class-naming-style=PascalCase
+
+# Regular expression matching correct class names. Overrides class-naming-
+# style. If left empty, class names will be checked with the set naming style.
+#class-rgx=
+
+# Naming style matching correct constant names.
+const-naming-style=UPPER_CASE
+
+# Regular expression matching correct constant names. Overrides const-naming-
+# style. If left empty, constant names will be checked with the set naming
+# style.
+#const-rgx=
+
+# Minimum line length for functions/classes that require docstrings, shorter
+# ones are exempt.
+docstring-min-length=-1
+
+# Naming style matching correct function names.
+function-naming-style=snake_case
+
+# Regular expression matching correct function names. Overrides function-
+# naming-style. If left empty, function names will be checked with the set
+# naming style.
+#function-rgx=
+
+# Good variable names which should always be accepted, separated by a comma.
+good-names=i,
+ j,
+ k,
+ ex,
+ Run,
+ _,
+ id
+
+# Good variable names regexes, separated by a comma. If names match any regex,
+# they will always be accepted
+good-names-rgxs=
+
+# Include a hint for the correct naming format with invalid-name.
+include-naming-hint=no
+
+# Naming style matching correct inline iteration names.
+inlinevar-naming-style=any
+
+# Regular expression matching correct inline iteration names. Overrides
+# inlinevar-naming-style. If left empty, inline iteration names will be checked
+# with the set naming style.
+#inlinevar-rgx=
+
+# Naming style matching correct method names.
+method-naming-style=snake_case
+
+# Regular expression matching correct method names. Overrides method-naming-
+# style. If left empty, method names will be checked with the set naming style.
+#method-rgx=
+
+# Naming style matching correct module names.
+module-naming-style=snake_case
+
+# Regular expression matching correct module names. Overrides module-naming-
+# style. If left empty, module names will be checked with the set naming style.
+#module-rgx=
+
+# Colon-delimited sets of names that determine each other's naming style when
+# the name regexes allow several styles.
+name-group=
+
+# Regular expression which should only match function or class names that do
+# not require a docstring.
+no-docstring-rgx=^_
+
+# List of decorators that produce properties, such as abc.abstractproperty. Add
+# to this list to register other decorators that produce valid properties.
+# These decorators are taken in consideration only for invalid-name.
+property-classes=abc.abstractproperty
+
+# Regular expression matching correct type variable names. If left empty, type
+# variable names will be checked with the set naming style.
+#typevar-rgx=
+
+# Naming style matching correct variable names.
+variable-naming-style=snake_case
+
+# Regular expression matching correct variable names. Overrides variable-
+# naming-style. If left empty, variable names will be checked with the set
+# naming style.
+#variable-rgx=
+
+
+[CLASSES]
+
+# Warn about protected attribute access inside special methods
+check-protected-access-in-special-methods=no
+
+# List of method names used to declare (i.e. assign) instance attributes.
+defining-attr-methods=__init__,
+ __new__,
+ setUp,
+ __post_init__
+
+# List of member names, which should be excluded from the protected access
+# warning.
+exclude-protected=_asdict,
+ _fields,
+ _replace,
+ _source,
+ _make
+
+# List of valid names for the first argument in a class method.
+valid-classmethod-first-arg=cls
+
+# List of valid names for the first argument in a metaclass class method.
+valid-metaclass-classmethod-first-arg=mcs
+
+
+[DESIGN]
+
+# List of regular expressions of class ancestor names to ignore when counting
+# public methods (see R0903)
+exclude-too-few-public-methods=
+
+# List of qualified class names to ignore when counting class parents (see
+# R0901)
+ignored-parents=
+
+# Maximum number of arguments for function / method.
+max-args=5
+
+# Maximum number of attributes for a class (see R0902).
+max-attributes=7
+
+# Maximum number of boolean expressions in an if statement (see R0916).
+max-bool-expr=5
+
+# Maximum number of branch for function / method body.
+max-branches=12
+
+# Maximum number of locals for function / method body.
+max-locals=15
+
+# Maximum number of parents for a class (see R0901).
+max-parents=7
+
+# Maximum number of public methods for a class (see R0904).
+max-public-methods=25
+
+# Maximum number of return / yield for function / method body.
+max-returns=6
+
+# Maximum number of statements in function / method body.
+max-statements=50
+
+# Minimum number of public methods for a class (see R0903).
+min-public-methods=2
+
+
+[EXCEPTIONS]
+
+# Exceptions that will emit a warning when caught.
+overgeneral-exceptions=builtins.BaseException,builtins.Exception
+
+
+[FORMAT]
+
+# Expected format of line ending, e.g. empty (any line ending), LF or CRLF.
+expected-line-ending-format=
+
+# Regexp for a line that is allowed to be longer than the limit.
+ignore-long-lines=^\s*(# )??$
+
+# Number of spaces of indent required inside a hanging or continued line.
+indent-after-paren=4
+
+# String used as indentation unit. This is usually " " (4 spaces) or "\t" (1
+# tab).
+indent-string=' '
+
+# Maximum number of characters on a single line.
+max-line-length=100
+
+# Maximum number of lines in a module.
+max-module-lines=1000
+
+# Allow the body of a class to be on the same line as the declaration if body
+# contains single statement.
+single-line-class-stmt=no
+
+# Allow the body of an if to be on the same line as the test if there is no
+# else.
+single-line-if-stmt=no
+
+
+[IMPORTS]
+
+# List of modules that can be imported at any level, not just the top level
+# one.
+allow-any-import-level=
+
+# Allow explicit reexports by alias from a package __init__.
+allow-reexport-from-package=no
+
+# Allow wildcard imports from modules that define __all__.
+allow-wildcard-with-all=no
+
+# Deprecated modules which should not be used, separated by a comma.
+deprecated-modules=
+
+# Output a graph (.gv or any supported image format) of external dependencies
+# to the given file (report RP0402 must not be disabled).
+ext-import-graph=
+
+# Output a graph (.gv or any supported image format) of all (i.e. internal and
+# external) dependencies to the given file (report RP0402 must not be
+# disabled).
+import-graph=
+
+# Output a graph (.gv or any supported image format) of internal dependencies
+# to the given file (report RP0402 must not be disabled).
+int-import-graph=
+
+# Force import order to recognize a module as part of the standard
+# compatibility libraries.
+known-standard-library=
+
+# Force import order to recognize a module as part of a third party library.
+known-third-party=enchant
+
+# Couples of modules and preferred modules, separated by a comma.
+preferred-modules=
+
+
+[LOGGING]
+
+# The type of string formatting that logging methods do. `old` means using %
+# formatting, `new` is for `{}` formatting.
+logging-format-style=old
+
+# Logging modules to check that the string format arguments are in logging
+# function parameter format.
+logging-modules=logging
+
+
+[MESSAGES CONTROL]
+
+# Only show warnings with the listed confidence levels. Leave empty to show
+# all. Valid levels: HIGH, CONTROL_FLOW, INFERENCE, INFERENCE_FAILURE,
+# UNDEFINED.
+confidence=HIGH,
+ CONTROL_FLOW,
+ INFERENCE,
+ INFERENCE_FAILURE,
+ UNDEFINED
+
+# Disable the message, report, category or checker with the given id(s). You
+# can either give multiple identifiers separated by comma (,) or put this
+# option multiple times (only on the command line, not in the configuration
+# file where it should appear only once). You can also use "--disable=all" to
+# disable everything first and then re-enable specific checks. For example, if
+# you want to run only the similarities checker, you can use "--disable=all
+# --enable=similarities". If you want to run only the classes checker, but have
+# no Warning level messages displayed, use "--disable=all --enable=classes
+# --disable=W".
+disable=raw-checker-failed,
+ bad-inline-option,
+ locally-disabled,
+ file-ignored,
+ suppressed-message,
+ useless-suppression,
+ deprecated-pragma,
+ use-symbolic-message-instead,
+ trailing-whitespace,
+ line-too-long,
+ missing-class-docstring,
+ missing-module-docstring,
+ missing-function-docstring,
+ too-many-instance-attributes,
+ wrong-import-order,
+ too-many-arguments,
+ broad-exception-raised,
+ too-few-public-methods,
+ too-many-branches,
+ chained-comparison,
+ duplicate-code,
+ trailing-newlines,
+ too-many-public-methods,
+ too-many-locals
+
+# Enable the message, report, category or checker with the given id(s). You can
+# either give multiple identifier separated by comma (,) or put this option
+# multiple time (only on the command line, not in the configuration file where
+# it should appear only once). See also the "--disable" option for examples.
+enable=c-extension-no-member
+
+
+[METHOD_ARGS]
+
+# List of qualified names (i.e., library.method) which require a timeout
+# parameter e.g. 'requests.api.get,requests.api.post'
+timeout-methods=requests.api.delete,requests.api.get,requests.api.head,requests.api.options,requests.api.patch,requests.api.post,requests.api.put,requests.api.request
+
+
+[MISCELLANEOUS]
+
+# List of note tags to take in consideration, separated by a comma.
+notes=FIXME,
+ XXX,
+ TODO
+
+# Regular expression of note tags to take in consideration.
+notes-rgx=
+
+
+[REFACTORING]
+
+# Maximum number of nested blocks for function / method body
+max-nested-blocks=5
+
+# Complete name of functions that never returns. When checking for
+# inconsistent-return-statements if a never returning function is called then
+# it will be considered as an explicit return statement and no message will be
+# printed.
+never-returning-functions=sys.exit,argparse.parse_error
+
+
+[REPORTS]
+
+# Python expression which should return a score less than or equal to 10. You
+# have access to the variables 'fatal', 'error', 'warning', 'refactor',
+# 'convention', and 'info' which contain the number of messages in each
+# category, as well as 'statement' which is the total number of statements
+# analyzed. This score is used by the global evaluation report (RP0004).
+evaluation=max(0, 0 if fatal else 10.0 - ((float(5 * error + warning + refactor + convention) / statement) * 10))
+
+# Template used to display messages. This is a python new-style format string
+# used to format the message information. See doc for all details.
+msg-template=
+
+# Set the output format. Available formats are text, parseable, colorized, json
+# and msvs (visual studio). You can also give a reporter class, e.g.
+# mypackage.mymodule.MyReporterClass.
+#output-format=
+
+# Tells whether to display a full report or only the messages.
+reports=no
+
+# Activate the evaluation score.
+score=yes
+
+
+[SIMILARITIES]
+
+# Comments are removed from the similarity computation
+ignore-comments=yes
+
+# Docstrings are removed from the similarity computation
+ignore-docstrings=yes
+
+# Imports are removed from the similarity computation
+ignore-imports=yes
+
+# Signatures are removed from the similarity computation
+ignore-signatures=yes
+
+# Minimum lines number of a similarity.
+min-similarity-lines=4
+
+
+[SPELLING]
+
+# Limits count of emitted suggestions for spelling mistakes.
+max-spelling-suggestions=4
+
+# Spelling dictionary name. Available dictionaries: none. To make it work,
+# install the 'python-enchant' package.
+spelling-dict=
+
+# List of comma separated words that should be considered directives if they
+# appear at the beginning of a comment and should not be checked.
+spelling-ignore-comment-directives=fmt: on,fmt: off,noqa:,noqa,nosec,isort:skip,mypy:
+
+# List of comma separated words that should not be checked.
+spelling-ignore-words=
+
+# A path to a file that contains the private dictionary; one word per line.
+spelling-private-dict-file=
+
+# Tells whether to store unknown words to the private dictionary (see the
+# --spelling-private-dict-file option) instead of raising a message.
+spelling-store-unknown-words=no
+
+
+[STRING]
+
+# This flag controls whether inconsistent-quotes generates a warning when the
+# character used as a quote delimiter is used inconsistently within a module.
+check-quote-consistency=no
+
+# This flag controls whether the implicit-str-concat should generate a warning
+# on implicit string concatenation in sequences defined over several lines.
+check-str-concat-over-line-jumps=no
+
+
+[TYPECHECK]
+
+# List of decorators that produce context managers, such as
+# contextlib.contextmanager. Add to this list to register other decorators that
+# produce valid context managers.
+contextmanager-decorators=contextlib.contextmanager
+
+# List of members which are set dynamically and missed by pylint inference
+# system, and so shouldn't trigger E1101 when accessed. Python regular
+# expressions are accepted.
+generated-members=
+
+# Tells whether to warn about missing members when the owner of the attribute
+# is inferred to be None.
+ignore-none=yes
+
+# This flag controls whether pylint should warn about no-member and similar
+# checks whenever an opaque object is returned when inferring. The inference
+# can return multiple potential results while evaluating a Python object, but
+# some branches might not be evaluated, which results in partial inference. In
+# that case, it might be useful to still emit no-member and other checks for
+# the rest of the inferred objects.
+ignore-on-opaque-inference=yes
+
+# List of symbolic message names to ignore for Mixin members.
+ignored-checks-for-mixins=no-member,
+ not-async-context-manager,
+ not-context-manager,
+ attribute-defined-outside-init
+
+# List of class names for which member attributes should not be checked (useful
+# for classes with dynamically set attributes). This supports the use of
+# qualified names.
+ignored-classes=optparse.Values,thread._local,_thread._local,argparse.Namespace
+
+# Show a hint with possible names when a member name was not found. The aspect
+# of finding the hint is based on edit distance.
+missing-member-hint=yes
+
+# The minimum edit distance a name should have in order to be considered a
+# similar match for a missing member name.
+missing-member-hint-distance=1
+
+# The total number of similar names that should be taken in consideration when
+# showing a hint for a missing member.
+missing-member-max-choices=1
+
+# Regex pattern to define which classes are considered mixins.
+mixin-class-rgx=.*[Mm]ixin
+
+# List of decorators that change the signature of a decorated function.
+signature-mutators=
+
+
+[VARIABLES]
+
+# List of additional names supposed to be defined in builtins. Remember that
+# you should avoid defining new builtins when possible.
+additional-builtins=
+
+# Tells whether unused global variables should be treated as a violation.
+allow-global-unused-variables=yes
+
+# List of names allowed to shadow builtins
+allowed-redefined-builtins=
+
+# List of strings which can identify a callback function by name. A callback
+# name must start or end with one of those strings.
+callbacks=cb_,
+ _cb
+
+# A regular expression matching the name of dummy variables (i.e. expected to
+# not be used).
+dummy-variables-rgx=_+$|(_[a-zA-Z0-9_]*[a-zA-Z0-9]+?$)|dummy|^ignored_|^unused_
+
+# Argument names that match this expression will be ignored.
+ignored-argument-names=_.*|^ignored_|^unused_
+
+# Tells whether we should check for unused import in __init__ files.
+init-import=no
+
+# List of qualified module names which can have objects that can redefine
+# builtins.
+redefining-builtins-modules=six.moves,past.builtins,future.builtins,builtins,io
diff --git a/bankfeeds/setup.py b/bankfeeds/setup.py
index 518a207f8..bb42e9ccc 100755
--- a/bankfeeds/setup.py
+++ b/bankfeeds/setup.py
@@ -8,7 +8,7 @@
setuptools.setup(
name="codat-bankfeeds",
- version="0.1.1",
+ version="0.4.0",
author="Speakeasy",
description="Python Client SDK Generated by Speakeasy",
long_description=long_description,
@@ -30,6 +30,7 @@
"typing-inspect==0.8.0",
"typing_extensions==4.3.0",
"urllib3==1.26.12",
+ "pylint==2.16.2",
],
package_dir={'': 'src'},
python_requires='>=3.9'
diff --git a/bankfeeds/src/codat/__init__.py b/bankfeeds/src/codat/__init__.py
index 8d74a7d2f..0f9f50e91 100755
--- a/bankfeeds/src/codat/__init__.py
+++ b/bankfeeds/src/codat/__init__.py
@@ -1 +1 @@
-from .sdk import *
\ No newline at end of file
+from .sdk import *
diff --git a/bankfeeds/src/codat/bank_account_transactions.py b/bankfeeds/src/codat/bank_account_transactions.py
index c37da07f2..547728169 100755
--- a/bankfeeds/src/codat/bank_account_transactions.py
+++ b/bankfeeds/src/codat/bank_account_transactions.py
@@ -1,25 +1,24 @@
-import requests
+import requests as requests_http
from . import utils
from codat.models import operations
from typing import Optional
class BankAccountTransactions:
- _client: requests.Session
- _security_client: requests.Session
+ _client: requests_http.Session
+ _security_client: requests_http.Session
_server_url: str
_language: str
_sdk_version: str
_gen_version: str
- def __init__(self, client: requests.Session, security_client: requests.Session, server_url: str, language: str, sdk_version: str, gen_version: str) -> None:
+ def __init__(self, client: requests_http.Session, security_client: requests_http.Session, server_url: str, language: str, sdk_version: str, gen_version: str) -> None:
self._client = client
self._security_client = security_client
self._server_url = server_url
self._language = language
self._sdk_version = sdk_version
self._gen_version = gen_version
-
-
+
def get_bank_account_push_options(self, request: operations.GetBankAccountPushOptionsRequest) -> operations.GetBankAccountPushOptionsResponse:
r"""List push options for bank account bank transactions
Gets the options of pushing bank account transactions.
@@ -27,51 +26,49 @@ def get_bank_account_push_options(self, request: operations.GetBankAccountPushOp
base_url = self._server_url
- url = utils.generate_url(base_url, "/companies/{companyId}/connections/{connectionId}/options/bankAccounts/{accountId}/bankTransactions", request.path_params)
+ url = utils.generate_url(operations.GetBankAccountPushOptionsRequest, base_url, '/companies/{companyId}/connections/{connectionId}/options/bankAccounts/{accountId}/bankTransactions', request)
- query_params = utils.get_query_params(request.query_params)
+ query_params = utils.get_query_params(operations.GetBankAccountPushOptionsRequest, request)
- client = utils.configure_security_client(self._client, request.security)
+ client = self._security_client
- r = client.request("GET", url, params=query_params)
- content_type = r.headers.get("Content-Type")
+ http_res = client.request('GET', url, params=query_params)
+ content_type = http_res.headers.get('Content-Type')
- res = operations.GetBankAccountPushOptionsResponse(status_code=r.status_code, content_type=content_type)
+ res = operations.GetBankAccountPushOptionsResponse(status_code=http_res.status_code, content_type=content_type, raw_response=http_res)
- if r.status_code == 200:
- if utils.match_content_type(content_type, "application/json"):
- out = utils.unmarshal_json(r.text, Optional[operations.GetBankAccountPushOptionsPushOption])
+ if http_res.status_code == 200:
+ if utils.match_content_type(content_type, 'application/json'):
+ out = utils.unmarshal_json(http_res.text, Optional[operations.GetBankAccountPushOptionsPushOption])
res.push_option = out
return res
-
- def list_all_bank_transactionscount(self, request: operations.ListAllBankTransactionscountRequest) -> operations.ListAllBankTransactionscountResponse:
+ def list_bank_account_transactions(self, request: operations.ListBankAccountTransactionsRequest) -> operations.ListBankAccountTransactionsResponse:
r"""List bank transactions for bank account
Gets bank transactions for a given bank account ID
"""
base_url = self._server_url
- url = utils.generate_url(base_url, "/companies/{companyId}/connections/{connectionId}/data/bankAccounts/{accountId}/bankTransactions", request.path_params)
+ url = utils.generate_url(operations.ListBankAccountTransactionsRequest, base_url, '/companies/{companyId}/connections/{connectionId}/data/bankAccounts/{accountId}/bankTransactions', request)
- query_params = utils.get_query_params(request.query_params)
+ query_params = utils.get_query_params(operations.ListBankAccountTransactionsRequest, request)
- client = utils.configure_security_client(self._client, request.security)
+ client = self._security_client
- r = client.request("GET", url, params=query_params)
- content_type = r.headers.get("Content-Type")
+ http_res = client.request('GET', url, params=query_params)
+ content_type = http_res.headers.get('Content-Type')
- res = operations.ListAllBankTransactionscountResponse(status_code=r.status_code, content_type=content_type)
+ res = operations.ListBankAccountTransactionsResponse(status_code=http_res.status_code, content_type=content_type, raw_response=http_res)
- if r.status_code == 200:
- if utils.match_content_type(content_type, "application/json"):
- out = utils.unmarshal_json(r.text, Optional[operations.ListAllBankTransactionscountLinks])
+ if http_res.status_code == 200:
+ if utils.match_content_type(content_type, 'application/json'):
+ out = utils.unmarshal_json(http_res.text, Optional[operations.ListBankAccountTransactionsLinks])
res.links = out
return res
-
def post_bank_transactions(self, request: operations.PostBankTransactionsRequest) -> operations.PostBankTransactionsResponse:
r"""Create bank transactions
Posts bank transactions to the accounting package for a given company.
@@ -83,24 +80,24 @@ def post_bank_transactions(self, request: operations.PostBankTransactionsRequest
base_url = self._server_url
- url = utils.generate_url(base_url, "/companies/{companyId}/connections/{connectionId}/push/bankAccounts/{accountId}}/bankTransactions", request.path_params)
+ url = utils.generate_url(operations.PostBankTransactionsRequest, base_url, '/companies/{companyId}/connections/{connectionId}/push/bankAccounts/{accountId}}/bankTransactions', request)
headers = {}
- req_content_type, data, form = utils.serialize_request_body(request)
- if req_content_type != "multipart/form-data" and req_content_type != "multipart/mixed":
- headers["content-type"] = req_content_type
- query_params = utils.get_query_params(request.query_params)
+ req_content_type, data, form = utils.serialize_request_body(request, "request_body", 'json')
+ if req_content_type not in ('multipart/form-data', 'multipart/mixed'):
+ headers['content-type'] = req_content_type
+ query_params = utils.get_query_params(operations.PostBankTransactionsRequest, request)
- client = utils.configure_security_client(self._client, request.security)
+ client = self._security_client
- r = client.request("POST", url, params=query_params, data=data, files=form, headers=headers)
- content_type = r.headers.get("Content-Type")
+ http_res = client.request('POST', url, params=query_params, data=data, files=form, headers=headers)
+ content_type = http_res.headers.get('Content-Type')
- res = operations.PostBankTransactionsResponse(status_code=r.status_code, content_type=content_type)
+ res = operations.PostBankTransactionsResponse(status_code=http_res.status_code, content_type=content_type, raw_response=http_res)
- if r.status_code == 200:
- if utils.match_content_type(content_type, "application/json"):
- out = utils.unmarshal_json(r.text, Optional[operations.PostBankTransactions200ApplicationJSON])
+ if http_res.status_code == 200:
+ if utils.match_content_type(content_type, 'application/json'):
+ out = utils.unmarshal_json(http_res.text, Optional[operations.PostBankTransactions200ApplicationJSON])
res.post_bank_transactions_200_application_json_object = out
return res
diff --git a/bankfeeds/src/codat/bank_feed_accounts.py b/bankfeeds/src/codat/bank_feed_accounts.py
index 10e23659a..4c682ea2d 100755
--- a/bankfeeds/src/codat/bank_feed_accounts.py
+++ b/bankfeeds/src/codat/bank_feed_accounts.py
@@ -1,79 +1,76 @@
-import requests
+import requests as requests_http
from . import utils
from codat.models import operations
from typing import Optional
class BankFeedAccounts:
- _client: requests.Session
- _security_client: requests.Session
+ _client: requests_http.Session
+ _security_client: requests_http.Session
_server_url: str
_language: str
_sdk_version: str
_gen_version: str
- def __init__(self, client: requests.Session, security_client: requests.Session, server_url: str, language: str, sdk_version: str, gen_version: str) -> None:
+ def __init__(self, client: requests_http.Session, security_client: requests_http.Session, server_url: str, language: str, sdk_version: str, gen_version: str) -> None:
self._client = client
self._security_client = security_client
self._server_url = server_url
self._language = language
self._sdk_version = sdk_version
self._gen_version = gen_version
-
-
- def get_bank_feeds(self, request: operations.GetBankFeedsRequest) -> operations.GetBankFeedsResponse:
- r"""List bank feed bank accounts
- Get BankFeed BankAccounts for a single data source connected to a single company.
+
+ def create_bank_feed(self, request: operations.CreateBankFeedRequest) -> operations.CreateBankFeedResponse:
+ r"""Create bank feed bank accounts
+ Put BankFeed BankAccounts for a single data source connected to a single company.
"""
base_url = self._server_url
- url = utils.generate_url(base_url, "/companies/{companyId}/connections/{connectionId}/connectionInfo/bankFeedAccounts", request.path_params)
+ url = utils.generate_url(operations.CreateBankFeedRequest, base_url, '/companies/{companyId}/connections/{connectionId}/connectionInfo/bankFeedAccounts', request)
+ headers = {}
+ req_content_type, data, form = utils.serialize_request_body(request, "request_body", 'json')
+ if req_content_type not in ('multipart/form-data', 'multipart/mixed'):
+ headers['content-type'] = req_content_type
- client = utils.configure_security_client(self._client, request.security)
+ client = self._security_client
- r = client.request("GET", url)
- content_type = r.headers.get("Content-Type")
+ http_res = client.request('PUT', url, data=data, files=form, headers=headers)
+ content_type = http_res.headers.get('Content-Type')
- res = operations.GetBankFeedsResponse(status_code=r.status_code, content_type=content_type)
+ res = operations.CreateBankFeedResponse(status_code=http_res.status_code, content_type=content_type, raw_response=http_res)
- if r.status_code == 200:
- if utils.match_content_type(content_type, "application/json"):
- out = utils.unmarshal_json(r.text, Optional[list[operations.GetBankFeedsBankFeedBankAccount]])
+ if http_res.status_code == 200:
+ if utils.match_content_type(content_type, 'application/json'):
+ out = utils.unmarshal_json(http_res.text, Optional[list[operations.CreateBankFeedBankFeedBankAccount]])
res.bank_feed_bank_accounts = out
return res
-
- def put_bank_feeds(self, request: operations.PutBankFeedsRequest) -> operations.PutBankFeedsResponse:
- r"""Update bank feed bank accounts
- Put BankFeed BankAccounts for a single data source connected to a single company.
+ def get_bank_feeds(self, request: operations.GetBankFeedsRequest) -> operations.GetBankFeedsResponse:
+ r"""List bank feed bank accounts
+ Get BankFeed BankAccounts for a single data source connected to a single company.
"""
base_url = self._server_url
- url = utils.generate_url(base_url, "/companies/{companyId}/connections/{connectionId}/connectionInfo/bankFeedAccounts", request.path_params)
+ url = utils.generate_url(operations.GetBankFeedsRequest, base_url, '/companies/{companyId}/connections/{connectionId}/connectionInfo/bankFeedAccounts', request)
- headers = {}
- req_content_type, data, form = utils.serialize_request_body(request)
- if req_content_type != "multipart/form-data" and req_content_type != "multipart/mixed":
- headers["content-type"] = req_content_type
- client = utils.configure_security_client(self._client, request.security)
+ client = self._security_client
- r = client.request("PUT", url, data=data, files=form, headers=headers)
- content_type = r.headers.get("Content-Type")
+ http_res = client.request('GET', url)
+ content_type = http_res.headers.get('Content-Type')
- res = operations.PutBankFeedsResponse(status_code=r.status_code, content_type=content_type)
+ res = operations.GetBankFeedsResponse(status_code=http_res.status_code, content_type=content_type, raw_response=http_res)
- if r.status_code == 200:
- if utils.match_content_type(content_type, "application/json"):
- out = utils.unmarshal_json(r.text, Optional[list[operations.PutBankFeedsBankFeedBankAccount]])
+ if http_res.status_code == 200:
+ if utils.match_content_type(content_type, 'application/json'):
+ out = utils.unmarshal_json(http_res.text, Optional[list[operations.GetBankFeedsBankFeedBankAccount]])
res.bank_feed_bank_accounts = out
return res
-
def update_bank_feed(self, request: operations.UpdateBankFeedRequest) -> operations.UpdateBankFeedResponse:
r"""Update bank feed bank account
Update a single BankFeed BankAccount for a single data source connected to a single company.
@@ -81,23 +78,23 @@ def update_bank_feed(self, request: operations.UpdateBankFeedRequest) -> operati
base_url = self._server_url
- url = utils.generate_url(base_url, "/companies/{companyId}/connections/{connectionId}/connectionInfo/bankFeedAccounts/{bankAccountId}", request.path_params)
+ url = utils.generate_url(operations.UpdateBankFeedRequest, base_url, '/companies/{companyId}/connections/{connectionId}/connectionInfo/bankFeedAccounts/{bankAccountId}', request)
headers = {}
- req_content_type, data, form = utils.serialize_request_body(request)
- if req_content_type != "multipart/form-data" and req_content_type != "multipart/mixed":
- headers["content-type"] = req_content_type
+ req_content_type, data, form = utils.serialize_request_body(request, "request_body", 'json')
+ if req_content_type not in ('multipart/form-data', 'multipart/mixed'):
+ headers['content-type'] = req_content_type
- client = utils.configure_security_client(self._client, request.security)
+ client = self._security_client
- r = client.request("PATCH", url, data=data, files=form, headers=headers)
- content_type = r.headers.get("Content-Type")
+ http_res = client.request('PATCH', url, data=data, files=form, headers=headers)
+ content_type = http_res.headers.get('Content-Type')
- res = operations.UpdateBankFeedResponse(status_code=r.status_code, content_type=content_type)
+ res = operations.UpdateBankFeedResponse(status_code=http_res.status_code, content_type=content_type, raw_response=http_res)
- if r.status_code == 200:
- if utils.match_content_type(content_type, "application/json"):
- out = utils.unmarshal_json(r.text, Optional[operations.UpdateBankFeedBankFeedBankAccount])
+ if http_res.status_code == 200:
+ if utils.match_content_type(content_type, 'application/json'):
+ out = utils.unmarshal_json(http_res.text, Optional[operations.UpdateBankFeedBankFeedBankAccount])
res.bank_feed_bank_account = out
return res
diff --git a/bankfeeds/src/codat/models/operations/__init__.py b/bankfeeds/src/codat/models/operations/__init__.py
index 79c97921b..ac5c78948 100755
--- a/bankfeeds/src/codat/models/operations/__init__.py
+++ b/bankfeeds/src/codat/models/operations/__init__.py
@@ -1,8 +1,8 @@
+from .create_bank_feed import *
from .get_bank_account_push_options import *
from .get_bank_feeds import *
-from .list_all_bank_transactionscount import *
+from .list_bank_account_transactions import *
from .post_bank_transactions import *
-from .put_bank_feeds import *
from .update_bank_feed import *
-__all__ = ["GetBankAccountPushOptionsPathParams","GetBankAccountPushOptionsPushOption","GetBankAccountPushOptionsPushOptionOptionTypeEnum","GetBankAccountPushOptionsPushOptionPushOptionChoice","GetBankAccountPushOptionsPushOptionPushOptionChoiceOptionTypeEnum","GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoice","GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoiceOptionTypeEnum","GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoicePushOptionChoice","GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoicePushOptionChoiceOptionTypeEnum","GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoicePushOptionChoicePushOptionChoice","GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoicePushOptionChoicePushOptionChoiceOptionTypeEnum","GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoicePushOptionChoicePushOptionChoicePushValidationInfo","GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoicePushOptionChoicePushOptionChoicePushValidationInfoPushFieldValidation","GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoicePushOptionChoicePushValidationInfo","GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoicePushOptionChoicePushValidationInfoPushFieldValidation","GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoicePushValidationInfo","GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoicePushValidationInfoPushFieldValidation","GetBankAccountPushOptionsPushOptionPushOptionChoicePushValidationInfo","GetBankAccountPushOptionsPushOptionPushOptionChoicePushValidationInfoPushFieldValidation","GetBankAccountPushOptionsPushOptionPushValidationInfo","GetBankAccountPushOptionsPushOptionPushValidationInfoPushFieldValidation","GetBankAccountPushOptionsQueryParams","GetBankAccountPushOptionsRequest","GetBankAccountPushOptionsResponse","GetBankAccountPushOptionsSecurity","GetBankFeedsBankFeedBankAccount","GetBankFeedsBankFeedBankAccountAccountTypeEnum","GetBankFeedsPathParams","GetBankFeedsRequest","GetBankFeedsResponse","GetBankFeedsSecurity","ListAllBankTransactionscountLinks","ListAllBankTransactionscountLinksLinks","ListAllBankTransactionscountLinksLinksCurrent","ListAllBankTransactionscountLinksLinksNext","ListAllBankTransactionscountLinksLinksPrevious","ListAllBankTransactionscountLinksLinksSelf","ListAllBankTransactionscountLinksResults","ListAllBankTransactionscountLinksResultsTransactions","ListAllBankTransactionscountLinksResultsTransactionsTransactionTypeEnum","ListAllBankTransactionscountPathParams","ListAllBankTransactionscountQueryParams","ListAllBankTransactionscountRequest","ListAllBankTransactionscountResponse","ListAllBankTransactionscountSecurity","PostBankTransactions200ApplicationJSON","PostBankTransactions200ApplicationJSONChanges","PostBankTransactions200ApplicationJSONChangesPushOperationRecordRef","PostBankTransactions200ApplicationJSONChangesTypeEnum","PostBankTransactions200ApplicationJSONData","PostBankTransactions200ApplicationJSONDataTransactions","PostBankTransactions200ApplicationJSONDataTransactionsTransactionTypeEnum","PostBankTransactions200ApplicationJSONStatusEnum","PostBankTransactions200ApplicationJSONValidation","PostBankTransactions200ApplicationJSONValidationValidationItem","PostBankTransactionsPathParams","PostBankTransactionsQueryParams","PostBankTransactionsRequest","PostBankTransactionsRequestBody","PostBankTransactionsRequestBodyTransactions","PostBankTransactionsRequestBodyTransactionsTransactionTypeEnum","PostBankTransactionsResponse","PostBankTransactionsSecurity","PutBankFeedsBankFeedBankAccount","PutBankFeedsBankFeedBankAccountAccountTypeEnum","PutBankFeedsPathParams","PutBankFeedsRequest","PutBankFeedsResponse","PutBankFeedsSecurity","UpdateBankFeedBankFeedBankAccount","UpdateBankFeedBankFeedBankAccountAccountTypeEnum","UpdateBankFeedPathParams","UpdateBankFeedRequest","UpdateBankFeedResponse","UpdateBankFeedSecurity"]
\ No newline at end of file
+__all__ = ["CreateBankFeedBankFeedBankAccount","CreateBankFeedBankFeedBankAccountAccountTypeEnum","CreateBankFeedRequest","CreateBankFeedResponse","GetBankAccountPushOptionsPushOption","GetBankAccountPushOptionsPushOptionOptionTypeEnum","GetBankAccountPushOptionsPushOptionPushOptionProperty","GetBankAccountPushOptionsPushOptionPushOptionPropertyOptionTypeEnum","GetBankAccountPushOptionsPushOptionPushOptionPropertyPushOptionChoice","GetBankAccountPushOptionsPushOptionPushOptionPropertyPushOptionChoiceOptionTypeEnum","GetBankAccountPushOptionsPushOptionPushOptionPropertyPushOptionProperty","GetBankAccountPushOptionsPushOptionPushOptionPropertyPushOptionPropertyOptionTypeEnum","GetBankAccountPushOptionsPushOptionPushOptionPropertyPushOptionPropertyPushOptionChoice","GetBankAccountPushOptionsPushOptionPushOptionPropertyPushOptionPropertyPushOptionChoiceOptionTypeEnum","GetBankAccountPushOptionsPushOptionPushOptionPropertyPushOptionPropertyPushOptionProperty","GetBankAccountPushOptionsPushOptionPushOptionPropertyPushOptionPropertyPushOptionPropertyOptionTypeEnum","GetBankAccountPushOptionsPushOptionPushOptionPropertyPushOptionPropertyPushOptionPropertyPushOptionChoice","GetBankAccountPushOptionsPushOptionPushOptionPropertyPushOptionPropertyPushOptionPropertyPushOptionChoiceOptionTypeEnum","GetBankAccountPushOptionsPushOptionPushOptionPropertyPushOptionPropertyPushOptionPropertyPushOptionProperty","GetBankAccountPushOptionsPushOptionPushOptionPropertyPushOptionPropertyPushOptionPropertyPushOptionPropertyOptionTypeEnum","GetBankAccountPushOptionsPushOptionPushOptionPropertyPushOptionPropertyPushOptionPropertyPushOptionPropertyPushOptionChoice","GetBankAccountPushOptionsPushOptionPushOptionPropertyPushOptionPropertyPushOptionPropertyPushOptionPropertyPushOptionChoiceOptionTypeEnum","GetBankAccountPushOptionsPushOptionPushOptionPropertyPushOptionPropertyPushOptionPropertyPushOptionPropertyPushValidationInfo","GetBankAccountPushOptionsPushOptionPushOptionPropertyPushOptionPropertyPushOptionPropertyPushOptionPropertyPushValidationInfoPushFieldValidation","GetBankAccountPushOptionsPushOptionPushOptionPropertyPushOptionPropertyPushOptionPropertyPushValidationInfo","GetBankAccountPushOptionsPushOptionPushOptionPropertyPushOptionPropertyPushOptionPropertyPushValidationInfoPushFieldValidation","GetBankAccountPushOptionsPushOptionPushOptionPropertyPushOptionPropertyPushValidationInfo","GetBankAccountPushOptionsPushOptionPushOptionPropertyPushOptionPropertyPushValidationInfoPushFieldValidation","GetBankAccountPushOptionsPushOptionPushOptionPropertyPushValidationInfo","GetBankAccountPushOptionsPushOptionPushOptionPropertyPushValidationInfoPushFieldValidation","GetBankAccountPushOptionsRequest","GetBankAccountPushOptionsResponse","GetBankFeedsBankFeedBankAccount","GetBankFeedsBankFeedBankAccountAccountTypeEnum","GetBankFeedsRequest","GetBankFeedsResponse","ListBankAccountTransactionsLinks","ListBankAccountTransactionsLinksLinks","ListBankAccountTransactionsLinksLinksCurrent","ListBankAccountTransactionsLinksLinksNext","ListBankAccountTransactionsLinksLinksPrevious","ListBankAccountTransactionsLinksLinksSelf","ListBankAccountTransactionsLinksResults","ListBankAccountTransactionsLinksResultsTransactions","ListBankAccountTransactionsLinksResultsTransactionsTransactionTypeEnum","ListBankAccountTransactionsRequest","ListBankAccountTransactionsResponse","PostBankTransactions200ApplicationJSON","PostBankTransactions200ApplicationJSONChanges","PostBankTransactions200ApplicationJSONChangesPushOperationRecordRef","PostBankTransactions200ApplicationJSONChangesTypeEnum","PostBankTransactions200ApplicationJSONData","PostBankTransactions200ApplicationJSONDataTransactions","PostBankTransactions200ApplicationJSONDataTransactionsTransactionTypeEnum","PostBankTransactions200ApplicationJSONStatusEnum","PostBankTransactions200ApplicationJSONValidation","PostBankTransactions200ApplicationJSONValidationValidationItem","PostBankTransactionsRequest","PostBankTransactionsRequestBody","PostBankTransactionsRequestBodyTransactions","PostBankTransactionsRequestBodyTransactionsTransactionTypeEnum","PostBankTransactionsResponse","UpdateBankFeedBankFeedBankAccount","UpdateBankFeedBankFeedBankAccountAccountTypeEnum","UpdateBankFeedRequest","UpdateBankFeedResponse"]
diff --git a/bankfeeds/src/codat/models/operations/create_bank_feed.py b/bankfeeds/src/codat/models/operations/create_bank_feed.py
new file mode 100755
index 000000000..e0f58e0cf
--- /dev/null
+++ b/bankfeeds/src/codat/models/operations/create_bank_feed.py
@@ -0,0 +1,50 @@
+from __future__ import annotations
+import dataclasses
+import dateutil.parser
+import requests as requests_http
+from codat import utils
+from dataclasses_json import Undefined, dataclass_json
+from datetime import datetime
+from enum import Enum
+from marshmallow import fields
+from typing import Optional
+
+class CreateBankFeedBankFeedBankAccountAccountTypeEnum(str, Enum):
+ UNKNOWN = "Unknown"
+ CREDIT = "Credit"
+ DEBIT = "Debit"
+
+
+@dataclass_json(undefined=Undefined.EXCLUDE)
+@dataclasses.dataclass
+class CreateBankFeedBankFeedBankAccount:
+ r"""CreateBankFeedBankFeedBankAccount
+ The target bank account in a supported accounting package for ingestion into a bank feed.
+ """
+
+ id: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('id') }})
+ account_name: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('accountName'), 'exclude': lambda f: f is None }})
+ account_number: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('accountNumber'), 'exclude': lambda f: f is None }})
+ account_type: Optional[CreateBankFeedBankFeedBankAccountAccountTypeEnum] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('accountType'), 'exclude': lambda f: f is None }})
+ balance: Optional[float] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('balance'), 'exclude': lambda f: f is None }})
+ currency: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('currency'), 'exclude': lambda f: f is None }})
+ feed_start_date: Optional[datetime] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('feedStartDate'), 'encoder': utils.datetimeisoformat(True), 'decoder': dateutil.parser.isoparse, 'mm_field': fields.DateTime(format='iso'), 'exclude': lambda f: f is None }})
+ modified_date: Optional[datetime] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('modifiedDate'), 'encoder': utils.datetimeisoformat(True), 'decoder': dateutil.parser.isoparse, 'mm_field': fields.DateTime(format='iso'), 'exclude': lambda f: f is None }})
+ sort_code: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('sortCode'), 'exclude': lambda f: f is None }})
+ status: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('status'), 'exclude': lambda f: f is None }})
+
+
+@dataclasses.dataclass
+class CreateBankFeedRequest:
+ company_id: str = dataclasses.field(metadata={'path_param': { 'field_name': 'companyId', 'style': 'simple', 'explode': False }})
+ connection_id: str = dataclasses.field(metadata={'path_param': { 'field_name': 'connectionId', 'style': 'simple', 'explode': False }})
+ request_body: Optional[list[CreateBankFeedBankFeedBankAccount]] = dataclasses.field(default=None, metadata={'request': { 'media_type': 'application/json' }})
+
+
+@dataclasses.dataclass
+class CreateBankFeedResponse:
+ content_type: str = dataclasses.field()
+ status_code: int = dataclasses.field()
+ bank_feed_bank_accounts: Optional[list[CreateBankFeedBankFeedBankAccount]] = dataclasses.field(default=None)
+ raw_response: Optional[requests_http.Response] = dataclasses.field(default=None)
+
\ No newline at end of file
diff --git a/bankfeeds/src/codat/models/operations/get_bank_account_push_options.py b/bankfeeds/src/codat/models/operations/get_bank_account_push_options.py
index 1f6b7d5e8..4237c91fa 100755
--- a/bankfeeds/src/codat/models/operations/get_bank_account_push_options.py
+++ b/bankfeeds/src/codat/models/operations/get_bank_account_push_options.py
@@ -1,5 +1,6 @@
from __future__ import annotations
import dataclasses
+import requests as requests_http
from codat import utils
from dataclasses_json import Undefined, dataclass_json
from enum import Enum
@@ -7,32 +8,36 @@
@dataclasses.dataclass
-class GetBankAccountPushOptionsPathParams:
+class GetBankAccountPushOptionsRequest:
account_id: str = dataclasses.field(metadata={'path_param': { 'field_name': 'accountId', 'style': 'simple', 'explode': False }})
company_id: str = dataclasses.field(metadata={'path_param': { 'field_name': 'companyId', 'style': 'simple', 'explode': False }})
connection_id: str = dataclasses.field(metadata={'path_param': { 'field_name': 'connectionId', 'style': 'simple', 'explode': False }})
-
-
-@dataclasses.dataclass
-class GetBankAccountPushOptionsQueryParams:
page: float = dataclasses.field(metadata={'query_param': { 'field_name': 'page', 'style': 'form', 'explode': True }})
order_by: Optional[str] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'orderBy', 'style': 'form', 'explode': True }})
page_size: Optional[float] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'pageSize', 'style': 'form', 'explode': True }})
query: Optional[str] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'query', 'style': 'form', 'explode': True }})
+class GetBankAccountPushOptionsPushOptionPushOptionPropertyPushOptionChoiceOptionTypeEnum(str, Enum):
+ ARRAY = "Array"
+ OBJECT = "Object"
+ STRING = "String"
+ NUMBER = "Number"
+ BOOLEAN = "Boolean"
+ DATE_TIME = "DateTime"
+ FILE = "File"
+ MULTI_PART = "MultiPart"
-@dataclasses.dataclass
-class GetBankAccountPushOptionsSecurity:
- api_key: str = dataclasses.field(metadata={'security': { 'scheme': True, 'type': 'apiKey', 'sub_type': 'header', 'field_name': 'Authorization' }})
-
+@dataclass_json(undefined=Undefined.EXCLUDE)
@dataclasses.dataclass
-class GetBankAccountPushOptionsRequest:
- path_params: GetBankAccountPushOptionsPathParams = dataclasses.field()
- query_params: GetBankAccountPushOptionsQueryParams = dataclasses.field()
- security: GetBankAccountPushOptionsSecurity = dataclasses.field()
+class GetBankAccountPushOptionsPushOptionPushOptionPropertyPushOptionChoice:
+ description: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('description'), 'exclude': lambda f: f is None }})
+ display_name: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('displayName'), 'exclude': lambda f: f is None }})
+ required: Optional[bool] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('required'), 'exclude': lambda f: f is None }})
+ type: Optional[GetBankAccountPushOptionsPushOptionPushOptionPropertyPushOptionChoiceOptionTypeEnum] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('type'), 'exclude': lambda f: f is None }})
+ value: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('value'), 'exclude': lambda f: f is None }})
-class GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoicePushOptionChoicePushOptionChoiceOptionTypeEnum(str, Enum):
+class GetBankAccountPushOptionsPushOptionPushOptionPropertyPushOptionPropertyPushOptionChoiceOptionTypeEnum(str, Enum):
ARRAY = "Array"
OBJECT = "Object"
STRING = "String"
@@ -45,31 +50,54 @@ class GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoicePushOpt
@dataclass_json(undefined=Undefined.EXCLUDE)
@dataclasses.dataclass
-class GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoicePushOptionChoicePushOptionChoicePushValidationInfoPushFieldValidation:
- details: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.field_name('details') }})
- field: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.field_name('field') }})
- ref: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('ref'), 'exclude': lambda f: f is None }})
+class GetBankAccountPushOptionsPushOptionPushOptionPropertyPushOptionPropertyPushOptionChoice:
+ description: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('description'), 'exclude': lambda f: f is None }})
+ display_name: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('displayName'), 'exclude': lambda f: f is None }})
+ required: Optional[bool] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('required'), 'exclude': lambda f: f is None }})
+ type: Optional[GetBankAccountPushOptionsPushOptionPushOptionPropertyPushOptionPropertyPushOptionChoiceOptionTypeEnum] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('type'), 'exclude': lambda f: f is None }})
+ value: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('value'), 'exclude': lambda f: f is None }})
+class GetBankAccountPushOptionsPushOptionPushOptionPropertyPushOptionPropertyPushOptionPropertyPushOptionChoiceOptionTypeEnum(str, Enum):
+ ARRAY = "Array"
+ OBJECT = "Object"
+ STRING = "String"
+ NUMBER = "Number"
+ BOOLEAN = "Boolean"
+ DATE_TIME = "DateTime"
+ FILE = "File"
+ MULTI_PART = "MultiPart"
+
@dataclass_json(undefined=Undefined.EXCLUDE)
@dataclasses.dataclass
-class GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoicePushOptionChoicePushOptionChoicePushValidationInfo:
- information: Optional[list[GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoicePushOptionChoicePushOptionChoicePushValidationInfoPushFieldValidation]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('information'), 'exclude': lambda f: f is None }})
- warnings: Optional[list[GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoicePushOptionChoicePushOptionChoicePushValidationInfoPushFieldValidation]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('warnings'), 'exclude': lambda f: f is None }})
+class GetBankAccountPushOptionsPushOptionPushOptionPropertyPushOptionPropertyPushOptionPropertyPushOptionChoice:
+ description: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('description'), 'exclude': lambda f: f is None }})
+ display_name: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('displayName'), 'exclude': lambda f: f is None }})
+ required: Optional[bool] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('required'), 'exclude': lambda f: f is None }})
+ type: Optional[GetBankAccountPushOptionsPushOptionPushOptionPropertyPushOptionPropertyPushOptionPropertyPushOptionChoiceOptionTypeEnum] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('type'), 'exclude': lambda f: f is None }})
+ value: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('value'), 'exclude': lambda f: f is None }})
+class GetBankAccountPushOptionsPushOptionPushOptionPropertyPushOptionPropertyPushOptionPropertyPushOptionPropertyPushOptionChoiceOptionTypeEnum(str, Enum):
+ ARRAY = "Array"
+ OBJECT = "Object"
+ STRING = "String"
+ NUMBER = "Number"
+ BOOLEAN = "Boolean"
+ DATE_TIME = "DateTime"
+ FILE = "File"
+ MULTI_PART = "MultiPart"
+
@dataclass_json(undefined=Undefined.EXCLUDE)
@dataclasses.dataclass
-class GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoicePushOptionChoicePushOptionChoice:
- description: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.field_name('description') }})
- display_name: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.field_name('displayName') }})
- required: bool = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.field_name('required') }})
- type: GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoicePushOptionChoicePushOptionChoiceOptionTypeEnum = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.field_name('type') }})
- value: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.field_name('value') }})
- rel: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('rel'), 'exclude': lambda f: f is None }})
- validation: Optional[GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoicePushOptionChoicePushOptionChoicePushValidationInfo] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('validation'), 'exclude': lambda f: f is None }})
+class GetBankAccountPushOptionsPushOptionPushOptionPropertyPushOptionPropertyPushOptionPropertyPushOptionPropertyPushOptionChoice:
+ description: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('description'), 'exclude': lambda f: f is None }})
+ display_name: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('displayName'), 'exclude': lambda f: f is None }})
+ required: Optional[bool] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('required'), 'exclude': lambda f: f is None }})
+ type: Optional[GetBankAccountPushOptionsPushOptionPushOptionPropertyPushOptionPropertyPushOptionPropertyPushOptionPropertyPushOptionChoiceOptionTypeEnum] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('type'), 'exclude': lambda f: f is None }})
+ value: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('value'), 'exclude': lambda f: f is None }})
-class GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoicePushOptionChoiceOptionTypeEnum(str, Enum):
+class GetBankAccountPushOptionsPushOptionPushOptionPropertyPushOptionPropertyPushOptionPropertyPushOptionPropertyOptionTypeEnum(str, Enum):
ARRAY = "Array"
OBJECT = "Object"
STRING = "String"
@@ -82,32 +110,30 @@ class GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoicePushOpt
@dataclass_json(undefined=Undefined.EXCLUDE)
@dataclasses.dataclass
-class GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoicePushOptionChoicePushValidationInfoPushFieldValidation:
- details: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.field_name('details') }})
- field: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.field_name('field') }})
- ref: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('ref'), 'exclude': lambda f: f is None }})
+class GetBankAccountPushOptionsPushOptionPushOptionPropertyPushOptionPropertyPushOptionPropertyPushOptionPropertyPushValidationInfoPushFieldValidation:
+ details: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('details') }})
+ field: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('field'), 'exclude': lambda f: f is None }})
+ ref: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('ref'), 'exclude': lambda f: f is None }})
@dataclass_json(undefined=Undefined.EXCLUDE)
@dataclasses.dataclass
-class GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoicePushOptionChoicePushValidationInfo:
- information: Optional[list[GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoicePushOptionChoicePushValidationInfoPushFieldValidation]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('information'), 'exclude': lambda f: f is None }})
- warnings: Optional[list[GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoicePushOptionChoicePushValidationInfoPushFieldValidation]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('warnings'), 'exclude': lambda f: f is None }})
+class GetBankAccountPushOptionsPushOptionPushOptionPropertyPushOptionPropertyPushOptionPropertyPushOptionPropertyPushValidationInfo:
+ information: Optional[list[GetBankAccountPushOptionsPushOptionPushOptionPropertyPushOptionPropertyPushOptionPropertyPushOptionPropertyPushValidationInfoPushFieldValidation]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('information'), 'exclude': lambda f: f is None }})
+ warnings: Optional[list[GetBankAccountPushOptionsPushOptionPushOptionPropertyPushOptionPropertyPushOptionPropertyPushOptionPropertyPushValidationInfoPushFieldValidation]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('warnings'), 'exclude': lambda f: f is None }})
@dataclass_json(undefined=Undefined.EXCLUDE)
@dataclasses.dataclass
-class GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoicePushOptionChoice:
- description: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.field_name('description') }})
- display_name: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.field_name('displayName') }})
- required: bool = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.field_name('required') }})
- type: GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoicePushOptionChoiceOptionTypeEnum = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.field_name('type') }})
- value: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.field_name('value') }})
- options: Optional[list[GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoicePushOptionChoicePushOptionChoice]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('options'), 'exclude': lambda f: f is None }})
- rel: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('rel'), 'exclude': lambda f: f is None }})
- validation: Optional[GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoicePushOptionChoicePushValidationInfo] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('validation'), 'exclude': lambda f: f is None }})
+class GetBankAccountPushOptionsPushOptionPushOptionPropertyPushOptionPropertyPushOptionPropertyPushOptionProperty:
+ description: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('description') }})
+ display_name: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('displayName') }})
+ required: bool = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('required') }})
+ type: GetBankAccountPushOptionsPushOptionPushOptionPropertyPushOptionPropertyPushOptionPropertyPushOptionPropertyOptionTypeEnum = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('type') }})
+ options: Optional[list[GetBankAccountPushOptionsPushOptionPushOptionPropertyPushOptionPropertyPushOptionPropertyPushOptionPropertyPushOptionChoice]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('options'), 'exclude': lambda f: f is None }})
+ validation: Optional[GetBankAccountPushOptionsPushOptionPushOptionPropertyPushOptionPropertyPushOptionPropertyPushOptionPropertyPushValidationInfo] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('validation'), 'exclude': lambda f: f is None }})
-class GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoiceOptionTypeEnum(str, Enum):
+class GetBankAccountPushOptionsPushOptionPushOptionPropertyPushOptionPropertyPushOptionPropertyOptionTypeEnum(str, Enum):
ARRAY = "Array"
OBJECT = "Object"
STRING = "String"
@@ -120,32 +146,31 @@ class GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoiceOptionT
@dataclass_json(undefined=Undefined.EXCLUDE)
@dataclasses.dataclass
-class GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoicePushValidationInfoPushFieldValidation:
- details: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.field_name('details') }})
- field: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.field_name('field') }})
- ref: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('ref'), 'exclude': lambda f: f is None }})
+class GetBankAccountPushOptionsPushOptionPushOptionPropertyPushOptionPropertyPushOptionPropertyPushValidationInfoPushFieldValidation:
+ details: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('details') }})
+ field: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('field'), 'exclude': lambda f: f is None }})
+ ref: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('ref'), 'exclude': lambda f: f is None }})
@dataclass_json(undefined=Undefined.EXCLUDE)
@dataclasses.dataclass
-class GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoicePushValidationInfo:
- information: Optional[list[GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoicePushValidationInfoPushFieldValidation]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('information'), 'exclude': lambda f: f is None }})
- warnings: Optional[list[GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoicePushValidationInfoPushFieldValidation]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('warnings'), 'exclude': lambda f: f is None }})
+class GetBankAccountPushOptionsPushOptionPushOptionPropertyPushOptionPropertyPushOptionPropertyPushValidationInfo:
+ information: Optional[list[GetBankAccountPushOptionsPushOptionPushOptionPropertyPushOptionPropertyPushOptionPropertyPushValidationInfoPushFieldValidation]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('information'), 'exclude': lambda f: f is None }})
+ warnings: Optional[list[GetBankAccountPushOptionsPushOptionPushOptionPropertyPushOptionPropertyPushOptionPropertyPushValidationInfoPushFieldValidation]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('warnings'), 'exclude': lambda f: f is None }})
@dataclass_json(undefined=Undefined.EXCLUDE)
@dataclasses.dataclass
-class GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoice:
- description: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.field_name('description') }})
- display_name: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.field_name('displayName') }})
- required: bool = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.field_name('required') }})
- type: GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoiceOptionTypeEnum = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.field_name('type') }})
- value: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.field_name('value') }})
- options: Optional[list[GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoicePushOptionChoice]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('options'), 'exclude': lambda f: f is None }})
- rel: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('rel'), 'exclude': lambda f: f is None }})
- validation: Optional[GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoicePushValidationInfo] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('validation'), 'exclude': lambda f: f is None }})
+class GetBankAccountPushOptionsPushOptionPushOptionPropertyPushOptionPropertyPushOptionProperty:
+ description: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('description') }})
+ display_name: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('displayName') }})
+ required: bool = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('required') }})
+ type: GetBankAccountPushOptionsPushOptionPushOptionPropertyPushOptionPropertyPushOptionPropertyOptionTypeEnum = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('type') }})
+ options: Optional[list[GetBankAccountPushOptionsPushOptionPushOptionPropertyPushOptionPropertyPushOptionPropertyPushOptionChoice]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('options'), 'exclude': lambda f: f is None }})
+ properties: Optional[dict[str, GetBankAccountPushOptionsPushOptionPushOptionPropertyPushOptionPropertyPushOptionPropertyPushOptionProperty]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('properties'), 'exclude': lambda f: f is None }})
+ validation: Optional[GetBankAccountPushOptionsPushOptionPushOptionPropertyPushOptionPropertyPushOptionPropertyPushValidationInfo] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('validation'), 'exclude': lambda f: f is None }})
-class GetBankAccountPushOptionsPushOptionPushOptionChoiceOptionTypeEnum(str, Enum):
+class GetBankAccountPushOptionsPushOptionPushOptionPropertyPushOptionPropertyOptionTypeEnum(str, Enum):
ARRAY = "Array"
OBJECT = "Object"
STRING = "String"
@@ -158,32 +183,31 @@ class GetBankAccountPushOptionsPushOptionPushOptionChoiceOptionTypeEnum(str, Enu
@dataclass_json(undefined=Undefined.EXCLUDE)
@dataclasses.dataclass
-class GetBankAccountPushOptionsPushOptionPushOptionChoicePushValidationInfoPushFieldValidation:
- details: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.field_name('details') }})
- field: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.field_name('field') }})
- ref: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('ref'), 'exclude': lambda f: f is None }})
+class GetBankAccountPushOptionsPushOptionPushOptionPropertyPushOptionPropertyPushValidationInfoPushFieldValidation:
+ details: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('details') }})
+ field: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('field'), 'exclude': lambda f: f is None }})
+ ref: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('ref'), 'exclude': lambda f: f is None }})
@dataclass_json(undefined=Undefined.EXCLUDE)
@dataclasses.dataclass
-class GetBankAccountPushOptionsPushOptionPushOptionChoicePushValidationInfo:
- information: Optional[list[GetBankAccountPushOptionsPushOptionPushOptionChoicePushValidationInfoPushFieldValidation]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('information'), 'exclude': lambda f: f is None }})
- warnings: Optional[list[GetBankAccountPushOptionsPushOptionPushOptionChoicePushValidationInfoPushFieldValidation]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('warnings'), 'exclude': lambda f: f is None }})
+class GetBankAccountPushOptionsPushOptionPushOptionPropertyPushOptionPropertyPushValidationInfo:
+ information: Optional[list[GetBankAccountPushOptionsPushOptionPushOptionPropertyPushOptionPropertyPushValidationInfoPushFieldValidation]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('information'), 'exclude': lambda f: f is None }})
+ warnings: Optional[list[GetBankAccountPushOptionsPushOptionPushOptionPropertyPushOptionPropertyPushValidationInfoPushFieldValidation]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('warnings'), 'exclude': lambda f: f is None }})
@dataclass_json(undefined=Undefined.EXCLUDE)
@dataclasses.dataclass
-class GetBankAccountPushOptionsPushOptionPushOptionChoice:
- description: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.field_name('description') }})
- display_name: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.field_name('displayName') }})
- required: bool = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.field_name('required') }})
- type: GetBankAccountPushOptionsPushOptionPushOptionChoiceOptionTypeEnum = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.field_name('type') }})
- value: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.field_name('value') }})
- options: Optional[list[GetBankAccountPushOptionsPushOptionPushOptionChoicePushOptionChoice]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('options'), 'exclude': lambda f: f is None }})
- rel: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('rel'), 'exclude': lambda f: f is None }})
- validation: Optional[GetBankAccountPushOptionsPushOptionPushOptionChoicePushValidationInfo] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('validation'), 'exclude': lambda f: f is None }})
+class GetBankAccountPushOptionsPushOptionPushOptionPropertyPushOptionProperty:
+ description: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('description') }})
+ display_name: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('displayName') }})
+ required: bool = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('required') }})
+ type: GetBankAccountPushOptionsPushOptionPushOptionPropertyPushOptionPropertyOptionTypeEnum = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('type') }})
+ options: Optional[list[GetBankAccountPushOptionsPushOptionPushOptionPropertyPushOptionPropertyPushOptionChoice]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('options'), 'exclude': lambda f: f is None }})
+ properties: Optional[dict[str, GetBankAccountPushOptionsPushOptionPushOptionPropertyPushOptionPropertyPushOptionProperty]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('properties'), 'exclude': lambda f: f is None }})
+ validation: Optional[GetBankAccountPushOptionsPushOptionPushOptionPropertyPushOptionPropertyPushValidationInfo] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('validation'), 'exclude': lambda f: f is None }})
-class GetBankAccountPushOptionsPushOptionOptionTypeEnum(str, Enum):
+class GetBankAccountPushOptionsPushOptionPushOptionPropertyOptionTypeEnum(str, Enum):
ARRAY = "Array"
OBJECT = "Object"
STRING = "String"
@@ -196,29 +220,49 @@ class GetBankAccountPushOptionsPushOptionOptionTypeEnum(str, Enum):
@dataclass_json(undefined=Undefined.EXCLUDE)
@dataclasses.dataclass
-class GetBankAccountPushOptionsPushOptionPushValidationInfoPushFieldValidation:
- details: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.field_name('details') }})
- field: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.field_name('field') }})
- ref: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('ref'), 'exclude': lambda f: f is None }})
+class GetBankAccountPushOptionsPushOptionPushOptionPropertyPushValidationInfoPushFieldValidation:
+ details: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('details') }})
+ field: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('field'), 'exclude': lambda f: f is None }})
+ ref: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('ref'), 'exclude': lambda f: f is None }})
+
+
+@dataclass_json(undefined=Undefined.EXCLUDE)
+@dataclasses.dataclass
+class GetBankAccountPushOptionsPushOptionPushOptionPropertyPushValidationInfo:
+ information: Optional[list[GetBankAccountPushOptionsPushOptionPushOptionPropertyPushValidationInfoPushFieldValidation]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('information'), 'exclude': lambda f: f is None }})
+ warnings: Optional[list[GetBankAccountPushOptionsPushOptionPushOptionPropertyPushValidationInfoPushFieldValidation]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('warnings'), 'exclude': lambda f: f is None }})
@dataclass_json(undefined=Undefined.EXCLUDE)
@dataclasses.dataclass
-class GetBankAccountPushOptionsPushOptionPushValidationInfo:
- information: Optional[list[GetBankAccountPushOptionsPushOptionPushValidationInfoPushFieldValidation]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('information'), 'exclude': lambda f: f is None }})
- warnings: Optional[list[GetBankAccountPushOptionsPushOptionPushValidationInfoPushFieldValidation]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('warnings'), 'exclude': lambda f: f is None }})
+class GetBankAccountPushOptionsPushOptionPushOptionProperty:
+ description: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('description') }})
+ display_name: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('displayName') }})
+ required: bool = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('required') }})
+ type: GetBankAccountPushOptionsPushOptionPushOptionPropertyOptionTypeEnum = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('type') }})
+ options: Optional[list[GetBankAccountPushOptionsPushOptionPushOptionPropertyPushOptionChoice]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('options'), 'exclude': lambda f: f is None }})
+ properties: Optional[dict[str, GetBankAccountPushOptionsPushOptionPushOptionPropertyPushOptionProperty]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('properties'), 'exclude': lambda f: f is None }})
+ validation: Optional[GetBankAccountPushOptionsPushOptionPushOptionPropertyPushValidationInfo] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('validation'), 'exclude': lambda f: f is None }})
+class GetBankAccountPushOptionsPushOptionOptionTypeEnum(str, Enum):
+ ARRAY = "Array"
+ OBJECT = "Object"
+ STRING = "String"
+ NUMBER = "Number"
+ BOOLEAN = "Boolean"
+ DATE_TIME = "DateTime"
+ FILE = "File"
+ MULTI_PART = "MultiPart"
+
@dataclass_json(undefined=Undefined.EXCLUDE)
@dataclasses.dataclass
class GetBankAccountPushOptionsPushOption:
- description: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.field_name('description') }})
- display_name: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.field_name('displayName') }})
- required: bool = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.field_name('required') }})
- type: GetBankAccountPushOptionsPushOptionOptionTypeEnum = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.field_name('type') }})
- options: Optional[list[GetBankAccountPushOptionsPushOptionPushOptionChoice]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('options'), 'exclude': lambda f: f is None }})
- rel: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('rel'), 'exclude': lambda f: f is None }})
- validation: Optional[GetBankAccountPushOptionsPushOptionPushValidationInfo] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('validation'), 'exclude': lambda f: f is None }})
+ display_name: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('displayName') }})
+ required: bool = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('required') }})
+ type: GetBankAccountPushOptionsPushOptionOptionTypeEnum = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('type') }})
+ description: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('description'), 'exclude': lambda f: f is None }})
+ properties: Optional[dict[str, GetBankAccountPushOptionsPushOptionPushOptionProperty]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('properties'), 'exclude': lambda f: f is None }})
@dataclasses.dataclass
@@ -226,4 +270,5 @@ class GetBankAccountPushOptionsResponse:
content_type: str = dataclasses.field()
status_code: int = dataclasses.field()
push_option: Optional[GetBankAccountPushOptionsPushOption] = dataclasses.field(default=None)
+ raw_response: Optional[requests_http.Response] = dataclasses.field(default=None)
\ No newline at end of file
diff --git a/bankfeeds/src/codat/models/operations/get_bank_feeds.py b/bankfeeds/src/codat/models/operations/get_bank_feeds.py
index 3cec64489..ca789c6b0 100755
--- a/bankfeeds/src/codat/models/operations/get_bank_feeds.py
+++ b/bankfeeds/src/codat/models/operations/get_bank_feeds.py
@@ -1,6 +1,7 @@
from __future__ import annotations
import dataclasses
import dateutil.parser
+import requests as requests_http
from codat import utils
from dataclasses_json import Undefined, dataclass_json
from datetime import datetime
@@ -10,21 +11,10 @@
@dataclasses.dataclass
-class GetBankFeedsPathParams:
+class GetBankFeedsRequest:
company_id: str = dataclasses.field(metadata={'path_param': { 'field_name': 'companyId', 'style': 'simple', 'explode': False }})
connection_id: str = dataclasses.field(metadata={'path_param': { 'field_name': 'connectionId', 'style': 'simple', 'explode': False }})
-
-@dataclasses.dataclass
-class GetBankFeedsSecurity:
- api_key: str = dataclasses.field(metadata={'security': { 'scheme': True, 'type': 'apiKey', 'sub_type': 'header', 'field_name': 'Authorization' }})
-
-
-@dataclasses.dataclass
-class GetBankFeedsRequest:
- path_params: GetBankFeedsPathParams = dataclasses.field()
- security: GetBankFeedsSecurity = dataclasses.field()
-
class GetBankFeedsBankFeedBankAccountAccountTypeEnum(str, Enum):
UNKNOWN = "Unknown"
CREDIT = "Credit"
@@ -38,16 +28,16 @@ class GetBankFeedsBankFeedBankAccount:
The target bank account in a supported accounting package for ingestion into a bank feed.
"""
- id: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.field_name('id') }})
- account_name: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('accountName'), 'exclude': lambda f: f is None }})
- account_number: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('accountNumber'), 'exclude': lambda f: f is None }})
- account_type: Optional[GetBankFeedsBankFeedBankAccountAccountTypeEnum] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('accountType'), 'exclude': lambda f: f is None }})
- balance: Optional[float] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('balance'), 'exclude': lambda f: f is None }})
- currency: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('currency'), 'exclude': lambda f: f is None }})
- feed_start_date: Optional[datetime] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('feedStartDate'), 'encoder': utils.datetimeisoformat(True), 'decoder': dateutil.parser.isoparse, 'mm_field': fields.DateTime(format='iso'), 'exclude': lambda f: f is None }})
- modified_date: Optional[datetime] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('modifiedDate'), 'encoder': utils.datetimeisoformat(True), 'decoder': dateutil.parser.isoparse, 'mm_field': fields.DateTime(format='iso'), 'exclude': lambda f: f is None }})
- sort_code: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('sortCode'), 'exclude': lambda f: f is None }})
- status: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('status'), 'exclude': lambda f: f is None }})
+ id: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('id') }})
+ account_name: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('accountName'), 'exclude': lambda f: f is None }})
+ account_number: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('accountNumber'), 'exclude': lambda f: f is None }})
+ account_type: Optional[GetBankFeedsBankFeedBankAccountAccountTypeEnum] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('accountType'), 'exclude': lambda f: f is None }})
+ balance: Optional[float] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('balance'), 'exclude': lambda f: f is None }})
+ currency: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('currency'), 'exclude': lambda f: f is None }})
+ feed_start_date: Optional[datetime] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('feedStartDate'), 'encoder': utils.datetimeisoformat(True), 'decoder': dateutil.parser.isoparse, 'mm_field': fields.DateTime(format='iso'), 'exclude': lambda f: f is None }})
+ modified_date: Optional[datetime] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('modifiedDate'), 'encoder': utils.datetimeisoformat(True), 'decoder': dateutil.parser.isoparse, 'mm_field': fields.DateTime(format='iso'), 'exclude': lambda f: f is None }})
+ sort_code: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('sortCode'), 'exclude': lambda f: f is None }})
+ status: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('status'), 'exclude': lambda f: f is None }})
@dataclasses.dataclass
@@ -55,4 +45,5 @@ class GetBankFeedsResponse:
content_type: str = dataclasses.field()
status_code: int = dataclasses.field()
bank_feed_bank_accounts: Optional[list[GetBankFeedsBankFeedBankAccount]] = dataclasses.field(default=None)
+ raw_response: Optional[requests_http.Response] = dataclasses.field(default=None)
\ No newline at end of file
diff --git a/bankfeeds/src/codat/models/operations/list_all_bank_transactionscount.py b/bankfeeds/src/codat/models/operations/list_all_bank_transactionscount.py
deleted file mode 100755
index f22cf3eb0..000000000
--- a/bankfeeds/src/codat/models/operations/list_all_bank_transactionscount.py
+++ /dev/null
@@ -1,154 +0,0 @@
-from __future__ import annotations
-import dataclasses
-import dateutil.parser
-from codat import utils
-from dataclasses_json import Undefined, dataclass_json
-from datetime import datetime
-from enum import Enum
-from marshmallow import fields
-from typing import Optional
-
-
-@dataclasses.dataclass
-class ListAllBankTransactionscountPathParams:
- account_id: str = dataclasses.field(metadata={'path_param': { 'field_name': 'accountId', 'style': 'simple', 'explode': False }})
- company_id: str = dataclasses.field(metadata={'path_param': { 'field_name': 'companyId', 'style': 'simple', 'explode': False }})
- connection_id: str = dataclasses.field(metadata={'path_param': { 'field_name': 'connectionId', 'style': 'simple', 'explode': False }})
-
-
-@dataclasses.dataclass
-class ListAllBankTransactionscountQueryParams:
- page: float = dataclasses.field(metadata={'query_param': { 'field_name': 'page', 'style': 'form', 'explode': True }})
- order_by: Optional[str] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'orderBy', 'style': 'form', 'explode': True }})
- page_size: Optional[float] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'pageSize', 'style': 'form', 'explode': True }})
- query: Optional[str] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'query', 'style': 'form', 'explode': True }})
-
-
-@dataclasses.dataclass
-class ListAllBankTransactionscountSecurity:
- api_key: str = dataclasses.field(metadata={'security': { 'scheme': True, 'type': 'apiKey', 'sub_type': 'header', 'field_name': 'Authorization' }})
-
-
-@dataclasses.dataclass
-class ListAllBankTransactionscountRequest:
- path_params: ListAllBankTransactionscountPathParams = dataclasses.field()
- query_params: ListAllBankTransactionscountQueryParams = dataclasses.field()
- security: ListAllBankTransactionscountSecurity = dataclasses.field()
-
-
-@dataclass_json(undefined=Undefined.EXCLUDE)
-@dataclasses.dataclass
-class ListAllBankTransactionscountLinksLinksCurrent:
- href: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.field_name('href') }})
-
-
-@dataclass_json(undefined=Undefined.EXCLUDE)
-@dataclasses.dataclass
-class ListAllBankTransactionscountLinksLinksNext:
- href: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('href'), 'exclude': lambda f: f is None }})
-
-
-@dataclass_json(undefined=Undefined.EXCLUDE)
-@dataclasses.dataclass
-class ListAllBankTransactionscountLinksLinksPrevious:
- href: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('href'), 'exclude': lambda f: f is None }})
-
-
-@dataclass_json(undefined=Undefined.EXCLUDE)
-@dataclasses.dataclass
-class ListAllBankTransactionscountLinksLinksSelf:
- href: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.field_name('href') }})
-
-
-@dataclass_json(undefined=Undefined.EXCLUDE)
-@dataclasses.dataclass
-class ListAllBankTransactionscountLinksLinks:
- current: ListAllBankTransactionscountLinksLinksCurrent = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.field_name('current') }})
- self: ListAllBankTransactionscountLinksLinksSelf = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.field_name('self') }})
- next: Optional[ListAllBankTransactionscountLinksLinksNext] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('next'), 'exclude': lambda f: f is None }})
- previous: Optional[ListAllBankTransactionscountLinksLinksPrevious] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('previous'), 'exclude': lambda f: f is None }})
-
-class ListAllBankTransactionscountLinksResultsTransactionsTransactionTypeEnum(str, Enum):
- UNKNOWN = "Unknown"
- CREDIT = "Credit"
- DEBIT = "Debit"
- INT = "Int"
- DIV = "Div"
- FEE = "Fee"
- SER_CHG = "SerChg"
- DEP = "Dep"
- ATM = "Atm"
- POS = "Pos"
- XFER = "Xfer"
- CHECK = "Check"
- PAYMENT = "Payment"
- CASH = "Cash"
- DIRECT_DEP = "DirectDep"
- DIRECT_DEBIT = "DirectDebit"
- REPEAT_PMT = "RepeatPmt"
- OTHER = "Other"
-
-
-@dataclass_json(undefined=Undefined.EXCLUDE)
-@dataclasses.dataclass
-class ListAllBankTransactionscountLinksResultsTransactions:
- amount: float = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.field_name('amount') }})
- balance: float = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.field_name('balance') }})
- date_: datetime = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.field_name('date'), 'encoder': utils.datetimeisoformat(False), 'decoder': dateutil.parser.isoparse, 'mm_field': fields.DateTime(format='iso') }})
- reconciled: bool = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.field_name('reconciled') }})
- transaction_type: ListAllBankTransactionscountLinksResultsTransactionsTransactionTypeEnum = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.field_name('transactionType') }})
- counterparty: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('counterparty'), 'exclude': lambda f: f is None }})
- description: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('description'), 'exclude': lambda f: f is None }})
- id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('id'), 'exclude': lambda f: f is None }})
- modified_date: Optional[datetime] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('modifiedDate'), 'encoder': utils.datetimeisoformat(True), 'decoder': dateutil.parser.isoparse, 'mm_field': fields.DateTime(format='iso'), 'exclude': lambda f: f is None }})
- reference: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('reference'), 'exclude': lambda f: f is None }})
- source_modified_date: Optional[datetime] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('sourceModifiedDate'), 'encoder': utils.datetimeisoformat(True), 'decoder': dateutil.parser.isoparse, 'mm_field': fields.DateTime(format='iso'), 'exclude': lambda f: f is None }})
-
-
-@dataclass_json(undefined=Undefined.EXCLUDE)
-@dataclasses.dataclass
-class ListAllBankTransactionscountLinksResults:
- r"""ListAllBankTransactionscountLinksResults
- > **Accessing Bank Accounts through Banking API**
- >
- > This datatype was originally used for accessing bank account data both in accounting integrations and open banking aggregators.
- >
- > To view bank account data through the Banking API, please refer to the new datatype [here](https://docs.codat.io/banking-api#/operations/list-all-banking-transactions)
-
- > View the coverage for bank transactions in the Data coverage explorer.
-
- ## Overview
-
- Transactional banking data for a specific company and account.
-
- Bank transactions include the:
- * Amount of the transaction.
- * Current account balance.
- * Transaction type, for example, credit, debit, or transfer.
- """
-
- account_id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('accountId'), 'exclude': lambda f: f is None }})
- contract_version: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('contractVersion'), 'exclude': lambda f: f is None }})
- transactions: Optional[list[ListAllBankTransactionscountLinksResultsTransactions]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('transactions'), 'exclude': lambda f: f is None }})
-
-
-@dataclass_json(undefined=Undefined.EXCLUDE)
-@dataclasses.dataclass
-class ListAllBankTransactionscountLinks:
- r"""ListAllBankTransactionscountLinks
- Codat's Paging Model
- """
-
- links: ListAllBankTransactionscountLinksLinks = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.field_name('_links') }})
- page_number: int = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.field_name('pageNumber') }})
- page_size: int = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.field_name('pageSize') }})
- total_results: int = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.field_name('totalResults') }})
- results: Optional[list[ListAllBankTransactionscountLinksResults]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('results'), 'exclude': lambda f: f is None }})
-
-
-@dataclasses.dataclass
-class ListAllBankTransactionscountResponse:
- content_type: str = dataclasses.field()
- status_code: int = dataclasses.field()
- links: Optional[ListAllBankTransactionscountLinks] = dataclasses.field(default=None)
-
\ No newline at end of file
diff --git a/bankfeeds/src/codat/models/operations/list_bank_account_transactions.py b/bankfeeds/src/codat/models/operations/list_bank_account_transactions.py
new file mode 100755
index 000000000..882ad180f
--- /dev/null
+++ b/bankfeeds/src/codat/models/operations/list_bank_account_transactions.py
@@ -0,0 +1,140 @@
+from __future__ import annotations
+import dataclasses
+import dateutil.parser
+import requests as requests_http
+from codat import utils
+from dataclasses_json import Undefined, dataclass_json
+from datetime import datetime
+from enum import Enum
+from marshmallow import fields
+from typing import Optional
+
+
+@dataclasses.dataclass
+class ListBankAccountTransactionsRequest:
+ account_id: str = dataclasses.field(metadata={'path_param': { 'field_name': 'accountId', 'style': 'simple', 'explode': False }})
+ company_id: str = dataclasses.field(metadata={'path_param': { 'field_name': 'companyId', 'style': 'simple', 'explode': False }})
+ connection_id: str = dataclasses.field(metadata={'path_param': { 'field_name': 'connectionId', 'style': 'simple', 'explode': False }})
+ page: float = dataclasses.field(metadata={'query_param': { 'field_name': 'page', 'style': 'form', 'explode': True }})
+ order_by: Optional[str] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'orderBy', 'style': 'form', 'explode': True }})
+ page_size: Optional[float] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'pageSize', 'style': 'form', 'explode': True }})
+ query: Optional[str] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'query', 'style': 'form', 'explode': True }})
+
+
+@dataclass_json(undefined=Undefined.EXCLUDE)
+@dataclasses.dataclass
+class ListBankAccountTransactionsLinksLinksCurrent:
+ href: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('href') }})
+
+
+@dataclass_json(undefined=Undefined.EXCLUDE)
+@dataclasses.dataclass
+class ListBankAccountTransactionsLinksLinksNext:
+ href: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('href'), 'exclude': lambda f: f is None }})
+
+
+@dataclass_json(undefined=Undefined.EXCLUDE)
+@dataclasses.dataclass
+class ListBankAccountTransactionsLinksLinksPrevious:
+ href: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('href'), 'exclude': lambda f: f is None }})
+
+
+@dataclass_json(undefined=Undefined.EXCLUDE)
+@dataclasses.dataclass
+class ListBankAccountTransactionsLinksLinksSelf:
+ href: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('href') }})
+
+
+@dataclass_json(undefined=Undefined.EXCLUDE)
+@dataclasses.dataclass
+class ListBankAccountTransactionsLinksLinks:
+ current: ListBankAccountTransactionsLinksLinksCurrent = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('current') }})
+ self: ListBankAccountTransactionsLinksLinksSelf = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('self') }})
+ next: Optional[ListBankAccountTransactionsLinksLinksNext] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('next'), 'exclude': lambda f: f is None }})
+ previous: Optional[ListBankAccountTransactionsLinksLinksPrevious] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('previous'), 'exclude': lambda f: f is None }})
+
+class ListBankAccountTransactionsLinksResultsTransactionsTransactionTypeEnum(str, Enum):
+ UNKNOWN = "Unknown"
+ CREDIT = "Credit"
+ DEBIT = "Debit"
+ INT = "Int"
+ DIV = "Div"
+ FEE = "Fee"
+ SER_CHG = "SerChg"
+ DEP = "Dep"
+ ATM = "Atm"
+ POS = "Pos"
+ XFER = "Xfer"
+ CHECK = "Check"
+ PAYMENT = "Payment"
+ CASH = "Cash"
+ DIRECT_DEP = "DirectDep"
+ DIRECT_DEBIT = "DirectDebit"
+ REPEAT_PMT = "RepeatPmt"
+ OTHER = "Other"
+
+
+@dataclass_json(undefined=Undefined.EXCLUDE)
+@dataclasses.dataclass
+class ListBankAccountTransactionsLinksResultsTransactions:
+ amount: float = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('amount') }})
+ balance: float = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('balance') }})
+ date_: datetime = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('date'), 'encoder': utils.datetimeisoformat(False), 'decoder': dateutil.parser.isoparse, 'mm_field': fields.DateTime(format='iso') }})
+ reconciled: bool = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('reconciled') }})
+ transaction_type: ListBankAccountTransactionsLinksResultsTransactionsTransactionTypeEnum = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('transactionType') }})
+ counterparty: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('counterparty'), 'exclude': lambda f: f is None }})
+ description: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('description'), 'exclude': lambda f: f is None }})
+ id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('id'), 'exclude': lambda f: f is None }})
+ modified_date: Optional[datetime] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('modifiedDate'), 'encoder': utils.datetimeisoformat(True), 'decoder': dateutil.parser.isoparse, 'mm_field': fields.DateTime(format='iso'), 'exclude': lambda f: f is None }})
+ reference: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('reference'), 'exclude': lambda f: f is None }})
+ source_modified_date: Optional[datetime] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('sourceModifiedDate'), 'encoder': utils.datetimeisoformat(True), 'decoder': dateutil.parser.isoparse, 'mm_field': fields.DateTime(format='iso'), 'exclude': lambda f: f is None }})
+
+
+@dataclass_json(undefined=Undefined.EXCLUDE)
+@dataclasses.dataclass
+class ListBankAccountTransactionsLinksResults:
+ r"""ListBankAccountTransactionsLinksResults
+ > **Accessing Bank Accounts through Banking API**
+ >
+ > This datatype was originally used for accessing bank account data both in accounting integrations and open banking aggregators.
+ >
+ > To view bank account data through the Banking API, please refer to the new datatype [here](https://docs.codat.io/banking-api#/operations/list-all-banking-transactions)
+
+ > View the coverage for bank transactions in the Data coverage explorer.
+
+ ## Overview
+
+ Transactional banking data for a specific company and account.
+
+ Bank transactions include the:
+ * Amount of the transaction.
+ * Current account balance.
+ * Transaction type, for example, credit, debit, or transfer.
+ """
+
+ account_id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('accountId'), 'exclude': lambda f: f is None }})
+ contract_version: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('contractVersion'), 'exclude': lambda f: f is None }})
+ transactions: Optional[list[ListBankAccountTransactionsLinksResultsTransactions]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('transactions'), 'exclude': lambda f: f is None }})
+
+
+@dataclass_json(undefined=Undefined.EXCLUDE)
+@dataclasses.dataclass
+class ListBankAccountTransactionsLinks:
+ r"""ListBankAccountTransactionsLinks
+ Codat's Paging Model
+ """
+
+ links: ListBankAccountTransactionsLinksLinks = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('_links') }})
+ page_number: int = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('pageNumber') }})
+ page_size: int = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('pageSize') }})
+ total_results: int = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('totalResults') }})
+ results: Optional[list[ListBankAccountTransactionsLinksResults]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('results'), 'exclude': lambda f: f is None }})
+
+
+@dataclasses.dataclass
+class ListBankAccountTransactionsResponse:
+ content_type: str = dataclasses.field()
+ status_code: int = dataclasses.field()
+ links: Optional[ListBankAccountTransactionsLinks] = dataclasses.field(default=None)
+ raw_response: Optional[requests_http.Response] = dataclasses.field(default=None)
+
\ No newline at end of file
diff --git a/bankfeeds/src/codat/models/operations/post_bank_transactions.py b/bankfeeds/src/codat/models/operations/post_bank_transactions.py
index 6577ecd0f..91c1d8202 100755
--- a/bankfeeds/src/codat/models/operations/post_bank_transactions.py
+++ b/bankfeeds/src/codat/models/operations/post_bank_transactions.py
@@ -1,6 +1,7 @@
from __future__ import annotations
import dataclasses
import dateutil.parser
+import requests as requests_http
from codat import utils
from dataclasses_json import Undefined, dataclass_json
from datetime import datetime
@@ -8,19 +9,6 @@
from marshmallow import fields
from typing import Optional
-
-@dataclasses.dataclass
-class PostBankTransactionsPathParams:
- account_id: str = dataclasses.field(metadata={'path_param': { 'field_name': 'accountId', 'style': 'simple', 'explode': False }})
- company_id: str = dataclasses.field(metadata={'path_param': { 'field_name': 'companyId', 'style': 'simple', 'explode': False }})
- connection_id: str = dataclasses.field(metadata={'path_param': { 'field_name': 'connectionId', 'style': 'simple', 'explode': False }})
-
-
-@dataclasses.dataclass
-class PostBankTransactionsQueryParams:
- allow_sync_on_push_complete: Optional[bool] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'allowSyncOnPushComplete', 'style': 'form', 'explode': True }})
- timeout_in_minutes: Optional[int] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'timeoutInMinutes', 'style': 'form', 'explode': True }})
-
class PostBankTransactionsRequestBodyTransactionsTransactionTypeEnum(str, Enum):
UNKNOWN = "Unknown"
CREDIT = "Credit"
@@ -45,17 +33,17 @@ class PostBankTransactionsRequestBodyTransactionsTransactionTypeEnum(str, Enum):
@dataclass_json(undefined=Undefined.EXCLUDE)
@dataclasses.dataclass
class PostBankTransactionsRequestBodyTransactions:
- amount: float = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.field_name('amount') }})
- balance: float = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.field_name('balance') }})
- date_: datetime = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.field_name('date'), 'encoder': utils.datetimeisoformat(False), 'decoder': dateutil.parser.isoparse, 'mm_field': fields.DateTime(format='iso') }})
- reconciled: bool = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.field_name('reconciled') }})
- transaction_type: PostBankTransactionsRequestBodyTransactionsTransactionTypeEnum = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.field_name('transactionType') }})
- counterparty: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('counterparty'), 'exclude': lambda f: f is None }})
- description: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('description'), 'exclude': lambda f: f is None }})
- id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('id'), 'exclude': lambda f: f is None }})
- modified_date: Optional[datetime] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('modifiedDate'), 'encoder': utils.datetimeisoformat(True), 'decoder': dateutil.parser.isoparse, 'mm_field': fields.DateTime(format='iso'), 'exclude': lambda f: f is None }})
- reference: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('reference'), 'exclude': lambda f: f is None }})
- source_modified_date: Optional[datetime] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('sourceModifiedDate'), 'encoder': utils.datetimeisoformat(True), 'decoder': dateutil.parser.isoparse, 'mm_field': fields.DateTime(format='iso'), 'exclude': lambda f: f is None }})
+ amount: float = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('amount') }})
+ balance: float = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('balance') }})
+ date_: datetime = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('date'), 'encoder': utils.datetimeisoformat(False), 'decoder': dateutil.parser.isoparse, 'mm_field': fields.DateTime(format='iso') }})
+ reconciled: bool = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('reconciled') }})
+ transaction_type: PostBankTransactionsRequestBodyTransactionsTransactionTypeEnum = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('transactionType') }})
+ counterparty: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('counterparty'), 'exclude': lambda f: f is None }})
+ description: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('description'), 'exclude': lambda f: f is None }})
+ id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('id'), 'exclude': lambda f: f is None }})
+ modified_date: Optional[datetime] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('modifiedDate'), 'encoder': utils.datetimeisoformat(True), 'decoder': dateutil.parser.isoparse, 'mm_field': fields.DateTime(format='iso'), 'exclude': lambda f: f is None }})
+ reference: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('reference'), 'exclude': lambda f: f is None }})
+ source_modified_date: Optional[datetime] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('sourceModifiedDate'), 'encoder': utils.datetimeisoformat(True), 'decoder': dateutil.parser.isoparse, 'mm_field': fields.DateTime(format='iso'), 'exclude': lambda f: f is None }})
@dataclass_json(undefined=Undefined.EXCLUDE)
@@ -80,29 +68,26 @@ class PostBankTransactionsRequestBody:
* Transaction type, for example, credit, debit, or transfer.
"""
- account_id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('accountId'), 'exclude': lambda f: f is None }})
- contract_version: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('contractVersion'), 'exclude': lambda f: f is None }})
- transactions: Optional[list[PostBankTransactionsRequestBodyTransactions]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('transactions'), 'exclude': lambda f: f is None }})
-
-
-@dataclasses.dataclass
-class PostBankTransactionsSecurity:
- api_key: str = dataclasses.field(metadata={'security': { 'scheme': True, 'type': 'apiKey', 'sub_type': 'header', 'field_name': 'Authorization' }})
+ account_id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('accountId'), 'exclude': lambda f: f is None }})
+ contract_version: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('contractVersion'), 'exclude': lambda f: f is None }})
+ transactions: Optional[list[PostBankTransactionsRequestBodyTransactions]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('transactions'), 'exclude': lambda f: f is None }})
@dataclasses.dataclass
class PostBankTransactionsRequest:
- path_params: PostBankTransactionsPathParams = dataclasses.field()
- query_params: PostBankTransactionsQueryParams = dataclasses.field()
- security: PostBankTransactionsSecurity = dataclasses.field()
- request: Optional[PostBankTransactionsRequestBody] = dataclasses.field(default=None, metadata={'request': { 'media_type': 'application/json' }})
+ account_id: str = dataclasses.field(metadata={'path_param': { 'field_name': 'accountId', 'style': 'simple', 'explode': False }})
+ company_id: str = dataclasses.field(metadata={'path_param': { 'field_name': 'companyId', 'style': 'simple', 'explode': False }})
+ connection_id: str = dataclasses.field(metadata={'path_param': { 'field_name': 'connectionId', 'style': 'simple', 'explode': False }})
+ allow_sync_on_push_complete: Optional[bool] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'allowSyncOnPushComplete', 'style': 'form', 'explode': True }})
+ request_body: Optional[PostBankTransactionsRequestBody] = dataclasses.field(default=None, metadata={'request': { 'media_type': 'application/json' }})
+ timeout_in_minutes: Optional[int] = dataclasses.field(default=None, metadata={'query_param': { 'field_name': 'timeoutInMinutes', 'style': 'form', 'explode': True }})
@dataclass_json(undefined=Undefined.EXCLUDE)
@dataclasses.dataclass
class PostBankTransactions200ApplicationJSONChangesPushOperationRecordRef:
- data_type: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('dataType'), 'exclude': lambda f: f is None }})
- id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('id'), 'exclude': lambda f: f is None }})
+ data_type: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('dataType'), 'exclude': lambda f: f is None }})
+ id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('id'), 'exclude': lambda f: f is None }})
class PostBankTransactions200ApplicationJSONChangesTypeEnum(str, Enum):
UNKNOWN = "Unknown"
@@ -115,9 +100,9 @@ class PostBankTransactions200ApplicationJSONChangesTypeEnum(str, Enum):
@dataclass_json(undefined=Undefined.EXCLUDE)
@dataclasses.dataclass
class PostBankTransactions200ApplicationJSONChanges:
- attachment_id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('attachmentId'), 'exclude': lambda f: f is None }})
- record_ref: Optional[PostBankTransactions200ApplicationJSONChangesPushOperationRecordRef] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('recordRef'), 'exclude': lambda f: f is None }})
- type: Optional[PostBankTransactions200ApplicationJSONChangesTypeEnum] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('type'), 'exclude': lambda f: f is None }})
+ attachment_id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('attachmentId'), 'exclude': lambda f: f is None }})
+ record_ref: Optional[PostBankTransactions200ApplicationJSONChangesPushOperationRecordRef] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('recordRef'), 'exclude': lambda f: f is None }})
+ type: Optional[PostBankTransactions200ApplicationJSONChangesTypeEnum] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('type'), 'exclude': lambda f: f is None }})
class PostBankTransactions200ApplicationJSONDataTransactionsTransactionTypeEnum(str, Enum):
UNKNOWN = "Unknown"
@@ -143,17 +128,17 @@ class PostBankTransactions200ApplicationJSONDataTransactionsTransactionTypeEnum(
@dataclass_json(undefined=Undefined.EXCLUDE)
@dataclasses.dataclass
class PostBankTransactions200ApplicationJSONDataTransactions:
- amount: float = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.field_name('amount') }})
- balance: float = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.field_name('balance') }})
- date_: datetime = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.field_name('date'), 'encoder': utils.datetimeisoformat(False), 'decoder': dateutil.parser.isoparse, 'mm_field': fields.DateTime(format='iso') }})
- reconciled: bool = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.field_name('reconciled') }})
- transaction_type: PostBankTransactions200ApplicationJSONDataTransactionsTransactionTypeEnum = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.field_name('transactionType') }})
- counterparty: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('counterparty'), 'exclude': lambda f: f is None }})
- description: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('description'), 'exclude': lambda f: f is None }})
- id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('id'), 'exclude': lambda f: f is None }})
- modified_date: Optional[datetime] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('modifiedDate'), 'encoder': utils.datetimeisoformat(True), 'decoder': dateutil.parser.isoparse, 'mm_field': fields.DateTime(format='iso'), 'exclude': lambda f: f is None }})
- reference: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('reference'), 'exclude': lambda f: f is None }})
- source_modified_date: Optional[datetime] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('sourceModifiedDate'), 'encoder': utils.datetimeisoformat(True), 'decoder': dateutil.parser.isoparse, 'mm_field': fields.DateTime(format='iso'), 'exclude': lambda f: f is None }})
+ amount: float = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('amount') }})
+ balance: float = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('balance') }})
+ date_: datetime = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('date'), 'encoder': utils.datetimeisoformat(False), 'decoder': dateutil.parser.isoparse, 'mm_field': fields.DateTime(format='iso') }})
+ reconciled: bool = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('reconciled') }})
+ transaction_type: PostBankTransactions200ApplicationJSONDataTransactionsTransactionTypeEnum = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('transactionType') }})
+ counterparty: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('counterparty'), 'exclude': lambda f: f is None }})
+ description: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('description'), 'exclude': lambda f: f is None }})
+ id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('id'), 'exclude': lambda f: f is None }})
+ modified_date: Optional[datetime] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('modifiedDate'), 'encoder': utils.datetimeisoformat(True), 'decoder': dateutil.parser.isoparse, 'mm_field': fields.DateTime(format='iso'), 'exclude': lambda f: f is None }})
+ reference: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('reference'), 'exclude': lambda f: f is None }})
+ source_modified_date: Optional[datetime] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('sourceModifiedDate'), 'encoder': utils.datetimeisoformat(True), 'decoder': dateutil.parser.isoparse, 'mm_field': fields.DateTime(format='iso'), 'exclude': lambda f: f is None }})
@dataclass_json(undefined=Undefined.EXCLUDE)
@@ -178,9 +163,9 @@ class PostBankTransactions200ApplicationJSONData:
* Transaction type, for example, credit, debit, or transfer.
"""
- account_id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('accountId'), 'exclude': lambda f: f is None }})
- contract_version: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('contractVersion'), 'exclude': lambda f: f is None }})
- transactions: Optional[list[PostBankTransactions200ApplicationJSONDataTransactions]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('transactions'), 'exclude': lambda f: f is None }})
+ account_id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('accountId'), 'exclude': lambda f: f is None }})
+ contract_version: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('contractVersion'), 'exclude': lambda f: f is None }})
+ transactions: Optional[list[PostBankTransactions200ApplicationJSONDataTransactions]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('transactions'), 'exclude': lambda f: f is None }})
class PostBankTransactions200ApplicationJSONStatusEnum(str, Enum):
PENDING = "Pending"
@@ -192,9 +177,9 @@ class PostBankTransactions200ApplicationJSONStatusEnum(str, Enum):
@dataclass_json(undefined=Undefined.EXCLUDE)
@dataclasses.dataclass
class PostBankTransactions200ApplicationJSONValidationValidationItem:
- item_id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('itemId'), 'exclude': lambda f: f is None }})
- message: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('message'), 'exclude': lambda f: f is None }})
- validator_name: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('validatorName'), 'exclude': lambda f: f is None }})
+ item_id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('itemId'), 'exclude': lambda f: f is None }})
+ message: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('message'), 'exclude': lambda f: f is None }})
+ validator_name: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('validatorName'), 'exclude': lambda f: f is None }})
@dataclass_json(undefined=Undefined.EXCLUDE)
@@ -204,27 +189,27 @@ class PostBankTransactions200ApplicationJSONValidation:
A human-readable object describing validation decisions Codat has made when pushing data into the platform. If a push has failed because of validation errors, they will be detailed here.
"""
- errors: Optional[list[PostBankTransactions200ApplicationJSONValidationValidationItem]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('errors'), 'exclude': lambda f: f is None }})
- warnings: Optional[list[PostBankTransactions200ApplicationJSONValidationValidationItem]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('warnings'), 'exclude': lambda f: f is None }})
+ errors: Optional[list[PostBankTransactions200ApplicationJSONValidationValidationItem]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('errors'), 'exclude': lambda f: f is None }})
+ warnings: Optional[list[PostBankTransactions200ApplicationJSONValidationValidationItem]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('warnings'), 'exclude': lambda f: f is None }})
@dataclass_json(undefined=Undefined.EXCLUDE)
@dataclasses.dataclass
class PostBankTransactions200ApplicationJSON:
- company_id: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.field_name('companyId') }})
- data_connection_key: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.field_name('dataConnectionKey') }})
- push_operation_key: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.field_name('pushOperationKey') }})
- requested_on_utc: datetime = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.field_name('requestedOnUtc'), 'encoder': utils.datetimeisoformat(False), 'decoder': dateutil.parser.isoparse, 'mm_field': fields.DateTime(format='iso') }})
- status: PostBankTransactions200ApplicationJSONStatusEnum = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.field_name('status') }})
- status_code: int = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.field_name('statusCode') }})
- changes: Optional[list[PostBankTransactions200ApplicationJSONChanges]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('changes'), 'exclude': lambda f: f is None }})
- completed_on_utc: Optional[datetime] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('completedOnUtc'), 'encoder': utils.datetimeisoformat(True), 'decoder': dateutil.parser.isoparse, 'mm_field': fields.DateTime(format='iso'), 'exclude': lambda f: f is None }})
- data: Optional[PostBankTransactions200ApplicationJSONData] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('data'), 'exclude': lambda f: f is None }})
- data_type: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('dataType'), 'exclude': lambda f: f is None }})
- error_message: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('errorMessage'), 'exclude': lambda f: f is None }})
- timeout_in_minutes: Optional[int] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('timeoutInMinutes'), 'exclude': lambda f: f is None }})
- timeout_in_seconds: Optional[int] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('timeoutInSeconds'), 'exclude': lambda f: f is None }})
- validation: Optional[PostBankTransactions200ApplicationJSONValidation] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('validation'), 'exclude': lambda f: f is None }})
+ company_id: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('companyId') }})
+ data_connection_key: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('dataConnectionKey') }})
+ push_operation_key: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('pushOperationKey') }})
+ requested_on_utc: datetime = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('requestedOnUtc'), 'encoder': utils.datetimeisoformat(False), 'decoder': dateutil.parser.isoparse, 'mm_field': fields.DateTime(format='iso') }})
+ status: PostBankTransactions200ApplicationJSONStatusEnum = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('status') }})
+ status_code: int = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('statusCode') }})
+ changes: Optional[list[PostBankTransactions200ApplicationJSONChanges]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('changes'), 'exclude': lambda f: f is None }})
+ completed_on_utc: Optional[datetime] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('completedOnUtc'), 'encoder': utils.datetimeisoformat(True), 'decoder': dateutil.parser.isoparse, 'mm_field': fields.DateTime(format='iso'), 'exclude': lambda f: f is None }})
+ data: Optional[PostBankTransactions200ApplicationJSONData] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('data'), 'exclude': lambda f: f is None }})
+ data_type: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('dataType'), 'exclude': lambda f: f is None }})
+ error_message: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('errorMessage'), 'exclude': lambda f: f is None }})
+ timeout_in_minutes: Optional[int] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('timeoutInMinutes'), 'exclude': lambda f: f is None }})
+ timeout_in_seconds: Optional[int] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('timeoutInSeconds'), 'exclude': lambda f: f is None }})
+ validation: Optional[PostBankTransactions200ApplicationJSONValidation] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('validation'), 'exclude': lambda f: f is None }})
@dataclasses.dataclass
@@ -232,4 +217,5 @@ class PostBankTransactionsResponse:
content_type: str = dataclasses.field()
status_code: int = dataclasses.field()
post_bank_transactions_200_application_json_object: Optional[PostBankTransactions200ApplicationJSON] = dataclasses.field(default=None)
+ raw_response: Optional[requests_http.Response] = dataclasses.field(default=None)
\ No newline at end of file
diff --git a/bankfeeds/src/codat/models/operations/put_bank_feeds.py b/bankfeeds/src/codat/models/operations/put_bank_feeds.py
deleted file mode 100755
index ca7676e72..000000000
--- a/bankfeeds/src/codat/models/operations/put_bank_feeds.py
+++ /dev/null
@@ -1,59 +0,0 @@
-from __future__ import annotations
-import dataclasses
-import dateutil.parser
-from codat import utils
-from dataclasses_json import Undefined, dataclass_json
-from datetime import datetime
-from enum import Enum
-from marshmallow import fields
-from typing import Optional
-
-
-@dataclasses.dataclass
-class PutBankFeedsPathParams:
- company_id: str = dataclasses.field(metadata={'path_param': { 'field_name': 'companyId', 'style': 'simple', 'explode': False }})
- connection_id: str = dataclasses.field(metadata={'path_param': { 'field_name': 'connectionId', 'style': 'simple', 'explode': False }})
-
-class PutBankFeedsBankFeedBankAccountAccountTypeEnum(str, Enum):
- UNKNOWN = "Unknown"
- CREDIT = "Credit"
- DEBIT = "Debit"
-
-
-@dataclass_json(undefined=Undefined.EXCLUDE)
-@dataclasses.dataclass
-class PutBankFeedsBankFeedBankAccount:
- r"""PutBankFeedsBankFeedBankAccount
- The target bank account in a supported accounting package for ingestion into a bank feed.
- """
-
- id: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.field_name('id') }})
- account_name: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('accountName'), 'exclude': lambda f: f is None }})
- account_number: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('accountNumber'), 'exclude': lambda f: f is None }})
- account_type: Optional[PutBankFeedsBankFeedBankAccountAccountTypeEnum] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('accountType'), 'exclude': lambda f: f is None }})
- balance: Optional[float] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('balance'), 'exclude': lambda f: f is None }})
- currency: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('currency'), 'exclude': lambda f: f is None }})
- feed_start_date: Optional[datetime] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('feedStartDate'), 'encoder': utils.datetimeisoformat(True), 'decoder': dateutil.parser.isoparse, 'mm_field': fields.DateTime(format='iso'), 'exclude': lambda f: f is None }})
- modified_date: Optional[datetime] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('modifiedDate'), 'encoder': utils.datetimeisoformat(True), 'decoder': dateutil.parser.isoparse, 'mm_field': fields.DateTime(format='iso'), 'exclude': lambda f: f is None }})
- sort_code: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('sortCode'), 'exclude': lambda f: f is None }})
- status: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('status'), 'exclude': lambda f: f is None }})
-
-
-@dataclasses.dataclass
-class PutBankFeedsSecurity:
- api_key: str = dataclasses.field(metadata={'security': { 'scheme': True, 'type': 'apiKey', 'sub_type': 'header', 'field_name': 'Authorization' }})
-
-
-@dataclasses.dataclass
-class PutBankFeedsRequest:
- path_params: PutBankFeedsPathParams = dataclasses.field()
- security: PutBankFeedsSecurity = dataclasses.field()
- request: Optional[list[PutBankFeedsBankFeedBankAccount]] = dataclasses.field(default=None, metadata={'request': { 'media_type': 'application/json' }})
-
-
-@dataclasses.dataclass
-class PutBankFeedsResponse:
- content_type: str = dataclasses.field()
- status_code: int = dataclasses.field()
- bank_feed_bank_accounts: Optional[list[PutBankFeedsBankFeedBankAccount]] = dataclasses.field(default=None)
-
\ No newline at end of file
diff --git a/bankfeeds/src/codat/models/operations/update_bank_feed.py b/bankfeeds/src/codat/models/operations/update_bank_feed.py
index 9e95637b0..f77509970 100755
--- a/bankfeeds/src/codat/models/operations/update_bank_feed.py
+++ b/bankfeeds/src/codat/models/operations/update_bank_feed.py
@@ -1,6 +1,7 @@
from __future__ import annotations
import dataclasses
import dateutil.parser
+import requests as requests_http
from codat import utils
from dataclasses_json import Undefined, dataclass_json
from datetime import datetime
@@ -8,13 +9,6 @@
from marshmallow import fields
from typing import Optional
-
-@dataclasses.dataclass
-class UpdateBankFeedPathParams:
- bank_account_id: str = dataclasses.field(metadata={'path_param': { 'field_name': 'bankAccountId', 'style': 'simple', 'explode': False }})
- company_id: str = dataclasses.field(metadata={'path_param': { 'field_name': 'companyId', 'style': 'simple', 'explode': False }})
- connection_id: str = dataclasses.field(metadata={'path_param': { 'field_name': 'connectionId', 'style': 'simple', 'explode': False }})
-
class UpdateBankFeedBankFeedBankAccountAccountTypeEnum(str, Enum):
UNKNOWN = "Unknown"
CREDIT = "Credit"
@@ -28,28 +22,24 @@ class UpdateBankFeedBankFeedBankAccount:
The target bank account in a supported accounting package for ingestion into a bank feed.
"""
- id: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.field_name('id') }})
- account_name: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('accountName'), 'exclude': lambda f: f is None }})
- account_number: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('accountNumber'), 'exclude': lambda f: f is None }})
- account_type: Optional[UpdateBankFeedBankFeedBankAccountAccountTypeEnum] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('accountType'), 'exclude': lambda f: f is None }})
- balance: Optional[float] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('balance'), 'exclude': lambda f: f is None }})
- currency: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('currency'), 'exclude': lambda f: f is None }})
- feed_start_date: Optional[datetime] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('feedStartDate'), 'encoder': utils.datetimeisoformat(True), 'decoder': dateutil.parser.isoparse, 'mm_field': fields.DateTime(format='iso'), 'exclude': lambda f: f is None }})
- modified_date: Optional[datetime] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('modifiedDate'), 'encoder': utils.datetimeisoformat(True), 'decoder': dateutil.parser.isoparse, 'mm_field': fields.DateTime(format='iso'), 'exclude': lambda f: f is None }})
- sort_code: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('sortCode'), 'exclude': lambda f: f is None }})
- status: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.field_name('status'), 'exclude': lambda f: f is None }})
-
-
-@dataclasses.dataclass
-class UpdateBankFeedSecurity:
- api_key: str = dataclasses.field(metadata={'security': { 'scheme': True, 'type': 'apiKey', 'sub_type': 'header', 'field_name': 'Authorization' }})
+ id: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('id') }})
+ account_name: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('accountName'), 'exclude': lambda f: f is None }})
+ account_number: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('accountNumber'), 'exclude': lambda f: f is None }})
+ account_type: Optional[UpdateBankFeedBankFeedBankAccountAccountTypeEnum] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('accountType'), 'exclude': lambda f: f is None }})
+ balance: Optional[float] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('balance'), 'exclude': lambda f: f is None }})
+ currency: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('currency'), 'exclude': lambda f: f is None }})
+ feed_start_date: Optional[datetime] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('feedStartDate'), 'encoder': utils.datetimeisoformat(True), 'decoder': dateutil.parser.isoparse, 'mm_field': fields.DateTime(format='iso'), 'exclude': lambda f: f is None }})
+ modified_date: Optional[datetime] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('modifiedDate'), 'encoder': utils.datetimeisoformat(True), 'decoder': dateutil.parser.isoparse, 'mm_field': fields.DateTime(format='iso'), 'exclude': lambda f: f is None }})
+ sort_code: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('sortCode'), 'exclude': lambda f: f is None }})
+ status: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('status'), 'exclude': lambda f: f is None }})
@dataclasses.dataclass
class UpdateBankFeedRequest:
- path_params: UpdateBankFeedPathParams = dataclasses.field()
- security: UpdateBankFeedSecurity = dataclasses.field()
- request: Optional[UpdateBankFeedBankFeedBankAccount] = dataclasses.field(default=None, metadata={'request': { 'media_type': 'application/json' }})
+ bank_account_id: str = dataclasses.field(metadata={'path_param': { 'field_name': 'bankAccountId', 'style': 'simple', 'explode': False }})
+ company_id: str = dataclasses.field(metadata={'path_param': { 'field_name': 'companyId', 'style': 'simple', 'explode': False }})
+ connection_id: str = dataclasses.field(metadata={'path_param': { 'field_name': 'connectionId', 'style': 'simple', 'explode': False }})
+ request_body: Optional[UpdateBankFeedBankFeedBankAccount] = dataclasses.field(default=None, metadata={'request': { 'media_type': 'application/json' }})
@dataclasses.dataclass
@@ -57,4 +47,5 @@ class UpdateBankFeedResponse:
content_type: str = dataclasses.field()
status_code: int = dataclasses.field()
bank_feed_bank_account: Optional[UpdateBankFeedBankFeedBankAccount] = dataclasses.field(default=None)
+ raw_response: Optional[requests_http.Response] = dataclasses.field(default=None)
\ No newline at end of file
diff --git a/bankfeeds/src/codat/models/shared/__init__.py b/bankfeeds/src/codat/models/shared/__init__.py
index b6972b92a..ade20fff1 100755
--- a/bankfeeds/src/codat/models/shared/__init__.py
+++ b/bankfeeds/src/codat/models/shared/__init__.py
@@ -1,3 +1,3 @@
from .security import *
-__all__ = ["Security"]
\ No newline at end of file
+__all__ = ["Security"]
diff --git a/bankfeeds/src/codat/models/shared/security.py b/bankfeeds/src/codat/models/shared/security.py
index 7fe4a9463..72db7f899 100755
--- a/bankfeeds/src/codat/models/shared/security.py
+++ b/bankfeeds/src/codat/models/shared/security.py
@@ -2,8 +2,7 @@
import dataclasses
-
@dataclasses.dataclass
class Security:
- api_key: str = dataclasses.field(metadata={'security': { 'scheme': True, 'type': 'apiKey', 'sub_type': 'header', 'field_name': 'Authorization' }})
+ auth_header: str = dataclasses.field(metadata={'security': { 'scheme': True, 'type': 'apiKey', 'sub_type': 'header', 'field_name': 'Authorization' }})
\ No newline at end of file
diff --git a/bankfeeds/src/codat/sdk.py b/bankfeeds/src/codat/sdk.py
index a71d2b7ec..3e8ea04a2 100755
--- a/bankfeeds/src/codat/sdk.py
+++ b/bankfeeds/src/codat/sdk.py
@@ -1,5 +1,11 @@
+__doc__ = """ SDK Documentation: Bank Feeds API enables your SMB users to set up bank feeds from accounts in your application to supported accounting platforms.
-import requests
+A bank feed is a connection between a source bank account—in your application—and a target bank account in a supported accounting package.
+
+[Read more...](https://docs.codat.io/bank-feeds-api/overview)
+
+[See our OpenAPI spec](https://github.com/codatio/oas) """
+import requests as requests_http
from . import utils
from .bank_account_transactions import BankAccountTransactions
from .bank_feed_accounts import BankFeedAccounts
@@ -9,51 +15,48 @@
"https://api.codat.io",
]
-
class Codat:
+ r"""SDK Documentation: Bank Feeds API enables your SMB users to set up bank feeds from accounts in your application to supported accounting platforms.
+ A bank feed is a connection between a source bank account—in your application—and a target bank account in a supported accounting package.
+
+ [Read more...](https://docs.codat.io/bank-feeds-api/overview)
+
+ [See our OpenAPI spec](https://github.com/codatio/oas) """
bank_account_transactions: BankAccountTransactions
bank_feed_accounts: BankFeedAccounts
-
- _client: requests.Session
- _security_client: requests.Session
- _security: shared.Security
+
+ _client: requests_http.Session
+ _security_client: requests_http.Session
_server_url: str = SERVERS[0]
_language: str = "python"
- _sdk_version: str = "0.1.1"
- _gen_version: str = "1.7.1"
-
- def __init__(self) -> None:
- self._client = requests.Session()
- self._security_client = requests.Session()
- self._init_sdks()
-
-
- def config_server_url(self, server_url: str, params: dict[str, str]):
- if params is not None:
- self._server_url = utils.replace_parameters(server_url, params)
- else:
- self._server_url = server_url
-
- self._init_sdks()
-
+ _sdk_version: str = "0.4.0"
+ _gen_version: str = "1.11.0"
- def config_client(self, client: requests.Session):
- self._client = client
+ def __init__(self,
+ security: shared.Security = None,
+ server_url: str = None,
+ url_params: dict[str, str] = None,
+ client: requests_http.Session = None
+ ) -> None:
+ self._client = requests_http.Session()
- if self._security is not None:
- self._security_client = utils.configure_security_client(self._client, self._security)
- self._init_sdks()
-
+
+ if server_url is not None:
+ if url_params is not None:
+ self._server_url = utils.template_url(server_url, url_params)
+ else:
+ self._server_url = server_url
- def config_security(self, security: shared.Security):
- self._security = security
+ if client is not None:
+ self._client = client
+
self._security_client = utils.configure_security_client(self._client, security)
+
+
self._init_sdks()
-
def _init_sdks(self):
-
self.bank_account_transactions = BankAccountTransactions(
self._client,
self._security_client,
@@ -71,5 +74,5 @@ def _init_sdks(self):
self._sdk_version,
self._gen_version
)
-
+
\ No newline at end of file
diff --git a/bankfeeds/src/codat/utils/retries.py b/bankfeeds/src/codat/utils/retries.py
index 983d0d462..515316ba8 100755
--- a/bankfeeds/src/codat/utils/retries.py
+++ b/bankfeeds/src/codat/utils/retries.py
@@ -50,67 +50,67 @@ def __init__(self, inner: Exception):
self.inner = inner
-def retry(fn, retries: Retries):
+def retry(func, retries: Retries):
if retries.config.strategy == 'backoff':
def do_request():
res: requests.Response
try:
- res = fn()
+ res = func()
for code in retries.status_codes:
if "X" in code.upper():
- codeRange = int(code[0])
+ code_range = int(code[0])
- s = res.status_code / 100
+ status_major = res.status_code / 100
- if s >= codeRange and s < codeRange + 1:
+ if status_major >= code_range and status_major < code_range + 1:
raise TemporaryError(res)
else:
parsed_code = int(code)
if res.status_code == parsed_code:
raise TemporaryError(res)
- except requests.exceptions.ConnectionError as e:
+ except requests.exceptions.ConnectionError as exception:
if not retries.config.config.retry_connection_errors:
raise
- else:
- raise PermanentError(e)
- except requests.exceptions.Timeout as e:
+
+ raise PermanentError(exception) from exception
+ except requests.exceptions.Timeout as exception:
if not retries.config.config.retry_connection_errors:
raise
- else:
- raise PermanentError(e)
+
+ raise PermanentError(exception) from exception
except TemporaryError:
raise
- except Exception as e:
- raise PermanentError(e)
+ except Exception as exception:
+ raise PermanentError(exception) from exception
return res
return retry_with_backoff(do_request, retries.config.backoff.initial_interval, retries.config.backoff.max_interval, retries.config.backoff.exponent, retries.config.backoff.max_elapsed_time)
- else:
- fn()
+
+ return func()
-def retry_with_backoff(fn, initial_interval=500, max_interval=60000, exponent=1.5, max_elapsed_time=3600000):
+def retry_with_backoff(func, initial_interval=500, max_interval=60000, exponent=1.5, max_elapsed_time=3600000):
start = round(time.time()*1000)
- x = 0
+ retries = 0
while True:
try:
- return fn()
- except PermanentError as e:
- raise e.inner
- except Exception as e:
+ return func()
+ except PermanentError as exception:
+ raise exception.inner
+ except Exception as exception: # pylint: disable=broad-exception-caught
now = round(time.time()*1000)
if now - start > max_elapsed_time:
- if isinstance(e, TemporaryError):
- return e.response
- else:
- raise
+ if isinstance(exception, TemporaryError):
+ return exception.response
+
+ raise
sleep = ((initial_interval/1000) *
- exponent**x + random.uniform(0, 1))
+ exponent**retries + random.uniform(0, 1))
if sleep > max_interval/1000:
sleep = max_interval/1000
time.sleep(sleep)
- x += 1
+ retries += 1
diff --git a/bankfeeds/src/codat/utils/utils.py b/bankfeeds/src/codat/utils/utils.py
index e9bf17b97..10c6d4f92 100755
--- a/bankfeeds/src/codat/utils/utils.py
+++ b/bankfeeds/src/codat/utils/utils.py
@@ -5,7 +5,7 @@
from datetime import date, datetime
from email.message import Message
from enum import Enum
-from typing import Callable, Optional, Tuple, Union, get_args, get_origin
+from typing import Any, Callable, Optional, Tuple, Union, get_args, get_origin
from xmlrpc.client import boolean
import dateutil.parser
@@ -30,6 +30,9 @@ def request(self, method, url, **kwargs):
def configure_security_client(client: requests.Session, security: dataclass):
client = SecurityClient(client)
+ if security is None:
+ return client
+
sec_fields: Tuple[Field, ...] = fields(security)
for sec_field in sec_fields:
value = getattr(security, sec_field.name)
@@ -42,7 +45,7 @@ def configure_security_client(client: requests.Session, security: dataclass):
if metadata.get('option'):
_parse_security_option(client, value)
return client
- elif metadata.get('scheme'):
+ if metadata.get('scheme'):
# Special case for basic auth which could be a flattened struct
if metadata.get("sub_type") == "basic" and not is_dataclass(value):
_parse_security_scheme(client, metadata, security)
@@ -136,62 +139,73 @@ def _parse_basic_auth_scheme(client: SecurityClient, scheme: dataclass):
client.client.headers['Authorization'] = f'Basic {base64.b64encode(data).decode()}'
-def generate_url(server_url: str, path: str, path_params: dataclass) -> str:
- path_param_fields: Tuple[Field, ...] = fields(path_params)
- for f in path_param_fields:
- param_metadata = f.metadata.get('path_param')
+def generate_url(clazz: type, server_url: str, path: str, path_params: dataclass, gbls: dict[str, dict[str, dict[str, Any]]] = None) -> str:
+ path_param_fields: Tuple[Field, ...] = fields(clazz)
+ for field in path_param_fields:
+ request_metadata = field.metadata.get('request')
+ if request_metadata is not None:
+ continue
+
+ param_metadata = field.metadata.get('path_param')
if param_metadata is None:
continue
+
if param_metadata.get('style', 'simple') == 'simple':
- param = getattr(path_params, f.name)
+ param = getattr(
+ path_params, field.name) if path_params is not None else None
+ param = _populate_from_globals(
+ field.name, param, 'pathParam', gbls)
+
if param is None:
continue
- if type(param) is list:
+ if isinstance(param, list):
pp_vals: list[str] = []
for pp_val in param:
if pp_val is None:
continue
- pp_vals.append(val_to_string(pp_val))
+ pp_vals.append(_val_to_string(pp_val))
path = path.replace(
- '{' + param_metadata.get('field_name', f.name) + '}', ",".join(pp_vals), 1)
- elif type(param) is dict:
+ '{' + param_metadata.get('field_name', field.name) + '}', ",".join(pp_vals), 1)
+ elif isinstance(param, dict):
pp_vals: list[str] = []
for pp_key in param:
if param[pp_key] is None:
continue
if param_metadata.get('explode'):
pp_vals.append(
- f"{pp_key}={val_to_string(param[pp_key])}")
+ f"{pp_key}={_val_to_string(param[pp_key])}")
else:
pp_vals.append(
- f"{pp_key},{val_to_string(param[pp_key])}")
+ f"{pp_key},{_val_to_string(param[pp_key])}")
path = path.replace(
- '{' + param_metadata.get('field_name', f.name) + '}', ",".join(pp_vals), 1)
+ '{' + param_metadata.get('field_name', field.name) + '}', ",".join(pp_vals), 1)
elif not isinstance(param, (str, int, float, complex, bool)):
pp_vals: list[str] = []
param_fields: Tuple[Field, ...] = fields(param)
- for field in param_fields:
- param_value_metadata = field.metadata.get('path_param')
+ for param_field in param_fields:
+ param_value_metadata = param_field.metadata.get(
+ 'path_param')
if not param_value_metadata:
continue
- parm_name = param_value_metadata.get('field_name', f.name)
+ parm_name = param_value_metadata.get(
+ 'field_name', field.name)
- param_field_val = getattr(param, field.name)
+ param_field_val = getattr(param, param_field.name)
if param_field_val is None:
continue
- elif param_metadata.get('explode'):
+ if param_metadata.get('explode'):
pp_vals.append(
- f"{parm_name}={val_to_string(param_field_val)}")
+ f"{parm_name}={_val_to_string(param_field_val)}")
else:
pp_vals.append(
- f"{parm_name},{val_to_string(param_field_val)}")
+ f"{parm_name},{_val_to_string(param_field_val)}")
path = path.replace(
- '{' + param_metadata.get('field_name', f.name) + '}', ",".join(pp_vals), 1)
+ '{' + param_metadata.get('field_name', field.name) + '}', ",".join(pp_vals), 1)
else:
path = path.replace(
- '{' + param_metadata.get('field_name', f.name) + '}', val_to_string(param), 1)
+ '{' + param_metadata.get('field_name', field.name) + '}', _val_to_string(param), 1)
return server_url.removesuffix("/") + path
@@ -200,40 +214,46 @@ def is_optional(field):
return get_origin(field) is Union and type(None) in get_args(field)
-def replace_parameters(string_with_params: str, params: dict[str, str]) -> str:
+def template_url(url_with_params: str, params: dict[str, str]) -> str:
for key, value in params.items():
- string_with_params = string_with_params.replace(
+ url_with_params = url_with_params.replace(
'{' + key + '}', value)
- return string_with_params
+ return url_with_params
-def get_query_params(query_params: dataclass) -> dict[str, list[str]]:
- if query_params is None:
- return {}
-
+def get_query_params(clazz: type, query_params: dataclass, gbls: dict[str, dict[str, dict[str, Any]]] = None) -> dict[str, list[str]]:
params: dict[str, list[str]] = {}
- param_fields: Tuple[Field, ...] = fields(query_params)
- for f in param_fields:
- metadata = f.metadata.get('query_param')
+ param_fields: Tuple[Field, ...] = fields(clazz)
+ for field in param_fields:
+ request_metadata = field.metadata.get('request')
+ if request_metadata is not None:
+ continue
+
+ metadata = field.metadata.get('query_param')
if not metadata:
continue
- param_name = f.name
+ param_name = field.name
+ value = getattr(
+ query_params, param_name) if query_params is not None else None
+
+ value = _populate_from_globals(param_name, value, 'queryParam', gbls)
+
f_name = metadata.get("field_name")
serialization = metadata.get('serialization', '')
if serialization != '':
params = params | _get_serialized_query_params(
- metadata, f_name, getattr(query_params, param_name))
+ metadata, f_name, value)
else:
style = metadata.get('style', 'form')
if style == 'deepObject':
params = params | _get_deep_object_query_params(
- metadata, f_name, getattr(query_params, param_name))
+ metadata, f_name, value)
elif style == 'form':
params = params | _get_form_query_params(
- metadata, f_name, getattr(query_params, param_name))
+ metadata, f_name, value)
else:
raise Exception('not yet implemented')
return params
@@ -246,16 +266,16 @@ def get_headers(headers_params: dataclass) -> dict[str, str]:
headers: dict[str, str] = {}
param_fields: Tuple[Field, ...] = fields(headers_params)
- for f in param_fields:
- metadata = f.metadata.get('header')
+ for field in param_fields:
+ metadata = field.metadata.get('header')
if not metadata:
continue
value = _serialize_header(metadata.get(
- 'explode', False), getattr(headers_params, f.name))
+ 'explode', False), getattr(headers_params, field.name))
if value != '':
- headers[metadata.get('field_name', f.name)] = value
+ headers[metadata.get('field_name', field.name)] = value
return headers
@@ -283,13 +303,13 @@ def _get_deep_object_query_params(metadata: dict, field_name: str, obj: any) ->
if not obj_param_metadata:
continue
- val = getattr(obj, obj_field.name)
- if val is None:
+ obj_val = getattr(obj, obj_field.name)
+ if obj_val is None:
continue
- if isinstance(val, list):
- for v in val:
- if v is None:
+ if isinstance(obj_val, list):
+ for val in obj_val:
+ if val is None:
continue
if params.get(f'{metadata.get("field_name", field_name)}[{obj_param_metadata.get("field_name", obj_field.name)}]') is None:
@@ -297,11 +317,11 @@ def _get_deep_object_query_params(metadata: dict, field_name: str, obj: any) ->
]
params[
- f'{metadata.get("field_name", field_name)}[{obj_param_metadata.get("field_name", obj_field.name)}]'].append(val_to_string(v))
+ f'{metadata.get("field_name", field_name)}[{obj_param_metadata.get("field_name", obj_field.name)}]'].append(_val_to_string(val))
else:
params[
f'{metadata.get("field_name", field_name)}[{obj_param_metadata.get("field_name", obj_field.name)}]'] = [
- val_to_string(val)]
+ _val_to_string(obj_val)]
elif isinstance(obj, dict):
for key, value in obj.items():
if value is None:
@@ -317,10 +337,10 @@ def _get_deep_object_query_params(metadata: dict, field_name: str, obj: any) ->
]
params[
- f'{metadata.get("field_name", field_name)}[{key}]'].append(val_to_string(val))
+ f'{metadata.get("field_name", field_name)}[{key}]'].append(_val_to_string(val))
else:
params[f'{metadata.get("field_name", field_name)}[{key}]'] = [
- val_to_string(value)]
+ _val_to_string(value)]
return params
@@ -337,46 +357,44 @@ def _get_form_query_params(metadata: dict, field_name: str, obj: any) -> dict[st
return _populate_form(field_name, metadata.get("explode", True), obj, _get_query_param_field_name)
-def serialize_request_body(request: dataclass) -> Tuple[str, any, any]:
+SERIALIZATION_METHOD_TO_CONTENT_TYPE = {
+ 'json': 'application/json',
+ 'form': 'application/x-www-form-urlencoded',
+ 'multipart': 'multipart/form-data',
+ 'raw': 'application/octet-stream',
+ 'string': 'text/plain',
+}
+
+
+def serialize_request_body(request: dataclass, request_field_name: str, serialization_method: str) -> Tuple[str, any, any]:
if request is None:
return None, None, None, None
- request_val = getattr(request, "request")
- if request_val is None:
- raise Exception("request body not found")
+ if not is_dataclass(request) or not hasattr(request, request_field_name):
+ return serialize_content_type(request_field_name, SERIALIZATION_METHOD_TO_CONTENT_TYPE[serialization_method], request)
+
+ request_val = getattr(request, request_field_name)
request_fields: Tuple[Field, ...] = fields(request)
request_metadata = None
- for f in request_fields:
- if f.name == "request":
- request_metadata = f.metadata.get('request')
+ for field in request_fields:
+ if field.name == request_field_name:
+ request_metadata = field.metadata.get('request')
break
- if request_metadata is not None:
- # single request
- return serialize_content_type('request', request_metadata.get('media_type', 'application/octet-stream'), request_val)
-
- request_fields: Tuple[Field, ...] = fields(request_val)
- for f in request_fields:
- req = getattr(request_val, f.name)
- if req is None:
- continue
-
- request_metadata = f.metadata.get('request')
- if request_metadata is None:
- raise Exception(
- f'missing request tag on request body field {f.name}')
+ if request_metadata is None:
+ raise Exception('invalid request type')
- return serialize_content_type(f.name, request_metadata.get('media_type', 'application/octet-stream'), req)
+ return serialize_content_type(request_field_name, request_metadata.get('media_type', 'application/octet-stream'), request_val)
def serialize_content_type(field_name: str, media_type: str, request: dataclass) -> Tuple[str, any, list[list[any]]]:
- if re.match(r'(application|text)\/.*?\+*json.*', media_type) != None:
+ if re.match(r'(application|text)\/.*?\+*json.*', media_type) is not None:
return media_type, marshal_json(request), None
- if re.match(r'multipart\/.*', media_type) != None:
+ if re.match(r'multipart\/.*', media_type) is not None:
return serialize_multipart_form(media_type, request)
- if re.match(r'application\/x-www-form-urlencoded.*', media_type) != None:
+ if re.match(r'application\/x-www-form-urlencoded.*', media_type) is not None:
return media_type, serialize_form_data(field_name, request), None
if isinstance(request, (bytes, bytearray)):
return media_type, request, None
@@ -434,9 +452,9 @@ def serialize_multipart_form(media_type: str, request: dataclass) -> Tuple[str,
if value is None:
continue
form.append(
- [field_name + "[]", [None, val_to_string(value)]])
+ [field_name + "[]", [None, _val_to_string(value)]])
else:
- form.append([field_name, [None, val_to_string(val)]])
+ form.append([field_name, [None, _val_to_string(val)]])
return media_type, None, form
@@ -446,15 +464,15 @@ def serialize_dict(original: dict, explode: bool, field_name, existing: Optional
existing = []
if explode is True:
- for k, v in original.items():
- if k not in existing:
- existing[k] = []
- existing[k].append(v)
+ for key, val in original.items():
+ if key not in existing:
+ existing[key] = []
+ existing[key].append(val)
else:
temp = []
- for k, v in original.items():
- temp.append(str(k))
- temp.append(str(v))
+ for key, val in original.items():
+ temp.append(str(key))
+ temp.append(str(val))
if field_name not in existing:
existing[field_name] = []
existing[field_name].append(",".join(temp))
@@ -487,7 +505,7 @@ def serialize_form_data(field_name: str, data: dataclass) -> dict[str, any]:
f'Invalid form style for field {field.name}')
elif isinstance(data, dict):
for key, value in data.items():
- form[key] = [val_to_string(value)]
+ form[key] = [_val_to_string(value)]
else:
raise Exception(f'Invalid request body type for field {field_name}')
@@ -504,7 +522,7 @@ def _get_form_field_name(obj_field: Field) -> str:
def _populate_form(field_name: str, explode: boolean, obj: any, get_field_name_func: Callable) -> dict[str, list[str]]:
- params: dict[str, str | list[str]] = {}
+ params: dict[str, list[str]] = {}
if obj is None:
return params
@@ -523,10 +541,10 @@ def _populate_form(field_name: str, explode: boolean, obj: any, get_field_name_f
continue
if explode:
- params[obj_field_name] = [val_to_string(val)]
+ params[obj_field_name] = [_val_to_string(val)]
else:
items.append(
- f'{obj_field_name},{val_to_string(val)}')
+ f'{obj_field_name},{_val_to_string(val)}')
if len(items) > 0:
params[field_name] = [','.join(items)]
@@ -537,9 +555,9 @@ def _populate_form(field_name: str, explode: boolean, obj: any, get_field_name_f
continue
if explode:
- params[key] = val_to_string(value)
+ params[key] = _val_to_string(value)
else:
- items.append(f'{key},{val_to_string(value)}')
+ items.append(f'{key},{_val_to_string(value)}')
if len(items) > 0:
params[field_name] = [','.join(items)]
@@ -553,19 +571,19 @@ def _populate_form(field_name: str, explode: boolean, obj: any, get_field_name_f
if explode:
if not field_name in params:
params[field_name] = []
- params[field_name].append(val_to_string(value))
+ params[field_name].append(_val_to_string(value))
else:
- items.append(val_to_string(value))
+ items.append(_val_to_string(value))
if len(items) > 0:
params[field_name] = [','.join([str(item) for item in items])]
else:
- params[field_name] = val_to_string(obj)
+ params[field_name] = [_val_to_string(obj)]
return params
-def _serialize_header(explode: boolean, obj: any) -> str:
+def _serialize_header(explode: bool, obj: any) -> str:
if obj is None:
return ''
@@ -589,10 +607,10 @@ def _serialize_header(explode: boolean, obj: any) -> str:
if explode:
items.append(
- f'{obj_field_name}={val_to_string(val)}')
+ f'{obj_field_name}={_val_to_string(val)}')
else:
items.append(obj_field_name)
- items.append(val_to_string(val))
+ items.append(_val_to_string(val))
if len(items) > 0:
return ','.join(items)
@@ -604,10 +622,10 @@ def _serialize_header(explode: boolean, obj: any) -> str:
continue
if explode:
- items.append(f'{key}={val_to_string(value)}')
+ items.append(f'{key}={_val_to_string(value)}')
else:
items.append(key)
- items.append(val_to_string(value))
+ items.append(_val_to_string(value))
if len(items) > 0:
return ','.join([str(item) for item in items])
@@ -618,83 +636,98 @@ def _serialize_header(explode: boolean, obj: any) -> str:
if value is None:
continue
- items.append(val_to_string(value))
+ items.append(_val_to_string(value))
- return ','.join(items)
+ if len(items) > 0:
+ return ','.join(items)
else:
- return f'{val_to_string(obj)}'
+ return f'{_val_to_string(obj)}'
+
+ return ''
-def unmarshal_json(data, t):
- Unmarhsal = make_dataclass('Unmarhsal', [('res', t)],
+def unmarshal_json(data, typ):
+ unmarhsal = make_dataclass('Unmarhsal', [('res', typ)],
bases=(DataClassJsonMixin,))
- d = json.loads(data)
- out = Unmarhsal.from_dict({"res": d})
+ json_dict = json.loads(data)
+ out = unmarhsal.from_dict({"res": json_dict})
return out.res
-def marshal_json(c):
- Marshal = make_dataclass('Marshal', [('res', type(c))],
+def marshal_json(val):
+ marshal = make_dataclass('Marshal', [('res', type(val))],
bases=(DataClassJsonMixin,))
- m = Marshal(res=c)
- d = m.to_dict()
- return json.dumps(d["res"])
+ marshaller = marshal(res=val)
+ json_dict = marshaller.to_dict()
+ return json.dumps(json_dict["res"])
def match_content_type(content_type: str, pattern: str) -> boolean:
- if content_type == pattern or pattern == "*" or pattern == "*/*":
+ if pattern in (content_type, "*", "*/*"):
return True
- m = Message()
- m['content-type'] = content_type
- media_type = m.get_content_type()
+ msg = Message()
+ msg['content-type'] = content_type
+ media_type = msg.get_content_type()
if media_type == pattern:
return True
parts = media_type.split("/")
if len(parts) == 2:
- if f'{parts[0]}/*' == pattern or f'*/{parts[1]}' == pattern:
+ if pattern in (f'{parts[0]}/*', f'*/{parts[1]}'):
return True
return False
def datetimeisoformat(optional: bool):
- def isoformatoptional(v):
- if optional and v is None:
+ def isoformatoptional(val):
+ if optional and val is None:
return None
- return val_to_string(v)
+ return _val_to_string(val)
return isoformatoptional
def dateisoformat(optional: bool):
- def isoformatoptional(v):
- if optional and v is None:
+ def isoformatoptional(val):
+ if optional and val is None:
return None
- return date.isoformat(v)
+ return date.isoformat(val)
return isoformatoptional
-def datefromisoformat(date: str):
- return dateutil.parser.parse(date).date()
+def datefromisoformat(date_str: str):
+ return dateutil.parser.parse(date_str).date()
-def field_name(name):
+def get_field_name(name):
def override(_, _field_name=name):
return _field_name
return override
-def val_to_string(val):
+def _val_to_string(val):
if isinstance(val, bool):
return str(val).lower()
- elif isinstance(val, datetime):
+ if isinstance(val, datetime):
return val.isoformat().replace('+00:00', 'Z')
- elif isinstance(val, Enum):
+ if isinstance(val, Enum):
return val.value
return str(val)
+
+
+def _populate_from_globals(param_name: str, value: any, param_type: str, gbls: dict[str, dict[str, dict[str, Any]]]):
+ if value is None and gbls is not None:
+ if 'parameters' in gbls:
+ if param_type in gbls['parameters']:
+ if param_name in gbls['parameters'][param_type]:
+ global_value = gbls['parameters'][param_type][param_name]
+ if global_value is not None:
+ value = global_value
+
+ return value